INTERNET-BASED COMPUTER-AIDED DESIGN: LEVERAGING PRODUCT MODEL, DISTRIBUTED OBJECT, AND WORLD WIDE WEB STANDARDS

Similar documents
AN INTERNET-BASED DISTRIBUTED BUILDING DESIGN SERVICE FRAMEWORK Internet-Based Building Design Services

University, Stanford, CA 94305, 2 Senior Research Associate, Center for Integrated Facility Engineering, Stanford

AN INTERNET-BASED DISTRIBUTED SERVICE ARCHITECTURE

Building Design Services in a Distributed Service Architecture

GUI framework communication via the WWW

METADATA INTERCHANGE IN SERVICE BASED ARCHITECTURE

ODMG 2.0: A Standard for Object Storage

Emergence of Distributed Engineering Web Services

PROJECT OBJECTIVES 2. PREVIOUS RESULTS

Inventors: Wilson et al. PATENT APPLICATION Serial No. Navy Case No. 80,172

CORBA (Common Object Request Broker Architecture)

Advanced Lectures on knowledge Engineering

informatory frame VRML browser window Java applet

Distributed Object Bridges and Java-based Object Mediator

Generalized Document Data Model for Integrating Autonomous Applications

On Design of 3D and Multimedia Extension of Information System Using VRML

Multi-stakeholder collaboration: The CIFE iroom

ACKNOWLEDGEMENTS REFERENCES BIOGRAPHY

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Appendix A - Glossary(of OO software term s)

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only

KEYWORD. Manufacturing, simulation, architectures, HLA, standards ABSTRACT

Remote Database Queries in Open Distributed Systems

Java- and CORBA-Based Network Management. Mika Leppinen, Pekka Pulkkinen, and Aapo Rautiainen

Component-based Architecture Buy, don t build Fred Broks

(9A05803) WEB SERVICES (ELECTIVE - III)

ISO/IEC INTERNATIONAL STANDARD

This document is a preview generated by EVS

SCOS-2000 Technical Note

Framework for Collaborative Structural Analysis Software Development. Jun Peng and Kincho H. Law Stanford University

SYSPRO s Fluid Interface Design

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform.

AN INTEGRATED COMPONENT-BASED APPROACH TO ENTERPRISE SYSTEM SPECIFICATION AND DEVELOPMENT

RM-ODP: The ISO Reference Model for Open Distributed Processing

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model

Towards Lean and Open Multi-User Technologies

CORBA Navigator, A Versatile CORBA Client and its application to Network Management

Overview. Borland VisiBroker 7.0

Irbid National University, Irbid, Jordan. 1. The concept of distributed corporate systems

Java RMI Middleware Project

Chapter 2 Distributed Computing Infrastructure

Integrating Domain Specific Modeling into the Production Method of a Software Product Line

Object-Oriented Middleware for Distributed Systems

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach

New version of program STeelCON

MUSIC: an interactive MUltimedia ServIce Composition environment for distributed systems.

AN EXTENSION TO A CORBA TRADER TO SUPPORT XML SERVICE DESCRIPTIONS

Mill Model Concept for Paper Mill Life Cycle Management

CHARLES UNIVERSITY, PRAGUE FACULTY OF MATHEMATICS AND PHYSICS. Master Thesis. Michael Cífka Visual Development of Software Components

Interconnection of Distributed Components: An Overview of Current Middleware Solutions *

Information technology Process assessment Concepts and terminology

CORBA and COM TIP. Two practical techniques for object composition. X LIU, School of Computing, Napier University

An introduction to MOF MetaObject Facility.

Next-Generation Architecture for Virtual Prototyping

ISO/IEC INTERNATIONAL STANDARD. Information technology Open distributed processing Reference model: Architecture

IIOP: Internet Inter-ORB Protocol Make your code accessible even in future, with the next universal protocol

Practical Database Design Methodology and Use of UML Diagrams Design & Analysis of Database Systems

Security Training Seminars An integral part of The Open Group Security Programme

2.5 Animations. Applications. Learning & Teaching Design User Interfaces. Content Process ing. Group Communi cations. Documents.

2.5 Animations. Contents. Basics. S ystem s. Services. Usage. Computer Architectures. Learning & Teaching Design User Interfaces.

1.264 Lecture 16. Legacy Middleware

Operating Systems. Lecture 09: Input/Output Management. Elvis C. Foster

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Distributed Objects. Object-Oriented Application Development

JavaPolis 2004 Access Control Architectures: COM+ vs. EJB

ISO/IEC INTERNATIONAL STANDARD

Making AutoCAD better for architects.

Application Servers in E-Commerce Applications

Data structures for electronic product catalogues for building services. Part 2: Geometry

Chapter 4 Communication

Engineering CORBA-based Distributed Systems

Constraint-based Generation of Connectors

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution:

A Taxonomy of Web Agents

Towards a Web-centric Legacy System Migration Framework

SOFTWARE ENGINEERING DECEMBER. Q2a. What are the key challenges being faced by software engineering?

ISO/IEC/ IEEE INTERNATIONAL STANDARD. Systems and software engineering Architecture description

3 ITS Standards Deployment and Testing Strategies

Michael Böge, Jan Chrin

ITM DEVELOPMENT (ITMD)

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

ISO/IEC TR TECHNICAL REPORT

Hospitality Industry Technology Integration Standards Glossary of Terminology

CS2 Advanced Programming in Java note 8

The Free implementation of CORBA standard

Minding The Store, Autodesk Revit for Retail Users

Reference Model of Open Distributed Processing (RM-ODP): Introduction

Sandvik Coromant Technical White Paper GTC Guidelines Introduction to Generic Tool Classification

Vendor: SUN. Exam Code: Exam Name: SUN Certified ENITRPRISE ARCHITECT FOR J2EE(tm)TECHNOLOGY. Version: Demo

Distribution Transparencies For Integrated Systems*

Using Java Applets and CORBA for Distributed Application Development

Content Sharing and Reuse in PTC Integrity Lifecycle Manager

CAD on the World Wide Web: Virtual Assembly of Furniture with BEAVER

Reference Model of Open Distributed Processing (RM-ODP): Introduction

Crop Production Recognize Frameworks using Mobile Enterprise Application

FRAMEWORK OF THE EXTENDED PROCESS TO PRODUCT MODELING (XPPM) FOR EFFICIENT IDM DEVELOPMENT

DS 2009: middleware. David Evans

TINA-CAT WorkGroup Request For Proposals

DKMS Brief No. Five: Is Data Staging Relational? A Comment

Transcription:

PAPER REFERENCE: T191-4 INTERNET-BASED COMPUTER-AIDED DESIGN: LEVERAGING PRODUCT MODEL, DISTRIBUTED OBJECT, AND WORLD WIDE WEB STANDARDS Charles S. Han, John C. Kunz, Kincho H. Law EXTENDED ABSTRACT Non-Internet and Internet-based technologies have matured to a point that Internet-based CAD systems can be implemented. This paper reviews and discusses the technologies in relation to a prototype Internet-based CAD system that is being developed. In addition, we discuss further enhancements necessary to make the prototype a viable commercial working system. Regli has outlined the technologies now available to make Internet-based, or Network, CAD a reality. Among the various issues discussed are leveraging the Internet, online documentation and services, data modeling, and security. We have experimented and integrated the available technologies to demonstrate a simple working prototype that focuses on a browser-based user interface and a backend distributed object environment. The three technologies we present and have utilized in our prototype are 1. A standard product model based on the International Alliance for Interoperability Industry Foundation classes. We use this product model as the point of departure. 2. A distributed object environment that allows for the development and transfer of a design using the product model. We are utilizing the Common Object Request Broker Architecture (CORBA). 3. Standard browser technologies that serve as the user interface (UI). We are the ISO standard VRML 97 for the graphical portion of the UI and a Java applet window as the command/text portion of the UI. We use the External Authoring Interface (EAI) to communicate between these two modules of the UI. Our research focuses on issues concerning the Architecture-Engineering-Construction (AEC) industry so the product model discussed here relates to buildings and building facilities. However, one can easily substitute the product model for one that is more applicable to a specific discipline. Though our initial efforts have incorporated network computing technologies that will enable a model for the next generation of CAD systems beyond current CAD technology, a complete Internet-wide infrastructure which includes the participation of vendors and product-related services is necessary to realize the full potential of Internet-based CAD. We briefly review and discuss the necessary components for a successful implementation of our Internet-based CAD system.

PAPER REFERENCE: T191-4 INTERNET-BASED COMPUTER-AIDED DESIGN: LEVERAGING PRODUCT MODEL, DISTRIBUTED OBJECT, AND WORLD WIDE WEB STANDARDS Charles S. Han 1, John C. Kunz 2, Kincho H. Law 1 1 Department of Civil and Environmental Engineering, Stanford University Stanford, CA 94305-4020 2 Center for Integrated Facility Engineering, Stanford University Stanford, CA 94305-4020 ABSTRACT Non-Internet and Internet-based technologies have matured to a point that Internet-based CAD systems can be implemented. This paper reviews and discusses the technologies in relation to a prototype Internet-based CAD system that is being developed. In addition, we discuss further enhancements necessary to make the prototype a viable commercial working system. INTRODUCTION With the maturation of several technologies, both non-internet- and Internet-based, concepts that have been proposed for the development Internet-based Computer-Aided Design (CAD) can now be realized. We present a brief overview of these technologies along with a demonstration system leveraging these technologies. The three types of technologies discussed in this paper are: 4. The use of a standard product model. 5. A distributed object environment that allows for the development and transfer of a design using the product model. 6. Standard browser technologies that serve as the user interface (UI). This paper provides an overview on the structure of an Internet-based CAD prototype we have developed (see Figure 1). Our research focuses on issues concerning the Architecture-Engineering-Construction (AEC) industry so the product model discussed here relates to buildings and building facilities. However, one can easily substitute the product model for one that is more applicable to a specific discipline. Though our initial efforts have incorporated network computing technologies that will enable a model for the next generation of CAD systems beyond current CAD technology, a complete Internet-wide infrastructure which includes the participation of vendors and product-related services is necessary to realize the full potential of Internet-based CAD. We briefly review and discuss the necessary components for a successful implementation of our Internet-based CAD system.

BACKGROUND Regli has outlined the technologies now available to make Internet-based, or Network, CAD a reality [Regli97]. Among the various issues discussed are leveraging the Internet, online documentation and services, data modeling, and security. We have experimented and integrated the available technologies to demonstrate a simple working prototype that focuses on a browser-based user interface and a backend distributed object environment. Figure 1: The Web page UI for the prototype. THE PRODUCT MODEL The development of a standard product model is essential for efficient transfer of design information between various disciplines as well as to standardize and automate design analyses. The standard model

must provide more information than what is contained in drawing primitives such as lines and arcs that are supported by current CAD systems. Of course, these primitives can be grouped to form objects that are associated with desired behaviors, but beyond certain standards such as dimension lines, these objects are not universally recognized. Currently, there is an effort by the International Alliance of Interoperability (IAI) to develop standards for a project model that enables interoperability between applications by different software vendors [IAI97]. The IAI is a consortium of CAD vendors and other AEC industry partners, and it has defined a set of objects called Industry Foundation Classes (IFCs) that conform to current objectoriented philosophy. Figure 2 shows part of the IFC class hierarchy. Floor Building Layered RoofSlab Assembled Filling Door Window Wall Opening Project Object Product Object Manufactured Fixture Space Space Figure 2: Part of the IFC class hierarchy We have adopted the IFC model as a point of departure for the product model implemented in our prototype. The classes and their respective attributes and relationships that have been developed by the IAI are building-industry-specific. For example, the various professions related to the construction industry, the relationships between walls, openings, doors, and windows are critical, and these relationships have been addressed in the IFC product model. The class Building (of which Wall is a grandchild class) has a container class RelVoids which can hold instances of openings (Opening). An Opening, in turn, has a container class RelFills which can hold instances of Filling (of which Door and Window are child classes). The EXPRESS schema for the class Building is illustrated in Figure 3. IFC Release 1.0 currently defines two standard formats for sharing project data: standard EXPRESS file format and software interfaces [IAI97]. In the prototype, we have selected to implement our own version of the Interface Definition Language (IDL) for the software interface since we have implemented the prototype in a distributed object environment.

EXPRESS: ENTITY Building ABSTRACT SUPERTYPE OF ( ONE OF ( Layered, Covering, BuiltIn, Profiled ) ) SUBTYPE OF ( Assembled ) INVERSE HasOpenings : SET [0:?] OF RelVoids FOR VoidsBuilding; END_ENTITY; IDL: interface Building : Assembled { typedef sequence <RelVoids> HasOpenings; }; Figure 3: EXPRESS schema for the class Building and the corresponding IDL interface. A DISTRIBUTED OBJECT ENVIRONMENT Leveraging network computing technologies is a logical extension to current CAD systems. Network technologies ranging from information and service retrieval and transfer of design data to the client, consultants, and contractors are examples of increased communication flow. From a practical and organizational standpoint, implementation of network technologies should be transparent to the users the user should have the same ease of access to information whether it is local on one s own computer or on a remote server. The implementation of the World Wide Web (WWW) is an obvious example in which users have easy access to information regardless of the location of the source. In order for such transparent access to information within a CAD environment, an underlying distributed object environment must be implemented. There are several emerging distributed computing environments. For the prototype, we have used the Common Object Request Broker Architecture (CORBA), a standard that is published by the Object Management Group (OMG). CORBA provides both the transparency and the object-oriented structure. From [Vogel97]: The ORB provides location transparency to objects. That is, an object is represented by an object reference on which a client can invoke operations as if they were methods on a local object. Object references may refer to objects that are in the same problem, in a different process on the same machine, or located on a remote machine The other transparency that assists in the integration of distributed applications is programming language transparency These transparencies are achieved by the use of OMG s Interface Definition Language (IDL). Using IDL, we define the class hierarchy of the IFC objects discussed in the previous section with the appropriate attributes and relationships. The IFC definitions are then used to generate the objects in the desired programming language, in this case, Java. In addition, we define the methods in IDL that operate on the specified object, and these methods are in turn mapped to methods of the appropriate objects in the desired programming language (in our implementation, also Java). As noted, there is no requirement that

both the server and the client be written in the same programming language. Java is used on the server side as a matter of convenience, but a commercial implementation in which computing speed is a factor would benefit from using a programming language that can be compiled to take advantage of the server architecture. We use IDL to define the IFC class hierarchy and methods that the server application needs to access the IFC classes in this case, the prototype s server application is a simple building component repository (BCR) that has methods for saving, deleting, and retrieving the objects. See Figure 3 for an example of the EXPRESS schema-to-idl mapping of an example IFC object. The IDL-to-Java utility also generates Java code for the client application implementation of the objects and methods in this case, the prototype s client application is the CAD system s UI. STANDARD BROWSER TECHNOLOGIES As noted in the previous section, the implementation of the World Wide Web (WWW) has made ubiquitous network access a reality. It is logical, then, to leverage browser standards to implement the client side of the prototype. Thus, anyone with a network connection and standard browser software (as well as the necessary permissions) can use the prototype. In this section, we discuss the standard browser technologies implemented for the UI. JAVA Java has been integrated into standard browser technology for the following reasons. Paraphrasing from [Cornell96]: 1. It is a true programming language making a Java applet more responsive than other Web page technologies such as exclusive use of a CGI script. 2. Processing is off-loaded to the user s system thus following a client-server model. 3. Since Java uses a byte-code model, it is platform independent as long as the particular architecture fully supports the Java virtual machine. 4. And, finally, from the Java White Paper from Sun Microsystems, Inc.: Another aspect of being simple is being small. From a software development standpoint, Java is an efficient, straightforward, and, relative to C++, headache-free implementation of an object-oriented programming language. Examples of this simplicity include elimination of pointers and elimination of multiple inheritance, and replace it with the concept of interfaces. Another claim made in the White Paper is the simplicity of network or distributed programming in Java. While this is indeed true and would seem to be important for a distributed CAD system, since the prototype uses the CORBA distributed architecture in which remote objects are transparently accessed, the distributed programming simplicity is not a factor. The main motivation for writing the prototype client side in Java is the ubiquity of the standard browser technologies, among which is the integration of Java in the form of applets. For security reasons, Java applets cannot directly store objects on the server (there is no persistence of objects). This is, of course, the reason that some kind of component database such as our CORBA implementation is necessary. A Java applet can communicate with a socket on the server, and this communication protocol used to handle communication between the applet and the BCR server.

VRML AND THE EXTERNAL AUTHORING INTERFACE Using the Virtual Reality Modeling Language (VRML, formerly Virtual Reality Markup Language) for the graphical portion of the UI as opposed to developing a graphical UI within the client side of the prototype was consistent with leveraging existing standards. As opposed to Java, which is currently not a formal standard, VRML97 (almost identical to VRML 2.0) is the informal name of the International Standard file format for describing interactive three-dimensional multimedia on the Internet [ISO97]. Briefly, VRML allows the author to construct objects in a three-dimensional world in a logical hierarchical structure. This hierarchical structure is made up of nodes that have specialized functionality. For example, the Shape node is used to describe the physical properties of an object, the Transform node describes an object s orientation in space, and a sensor is a node that senses some kind of interaction with an object (for example, clicking on an object). Sensor interaction is one type of event. Other events include changing certain properties (attributes that are exposed, or allowed to be changed) of a node. For example, an event sent to a Material node can change the ambientintensity attribute of an object thus allowing an object to be highlighted in a certain state. The External Authoring Interface (EAI) 1 is a proposal for a VRML97 Informative Annex that allows a Java applet to send and receive events to and from a VRML world within the standard browser environment. Thus, we have utilized the EAI to communicate between the command window the graphics window. INTEGRATION OF TECHNOLOGIES Figure 4 illustrates the structure of the prototype. To simplify this discussion of the integration of the aforementioned technologies, we step through the current version of the prototype that implemented a primitive object. Development and implementation of the prototype was carried out on a Sun Ultra1 which has both the CORBA ORB and the Web server. However, since the CORBA environment (both the Sun implementation and the prototype server) has been written in Java, any platform that supports the Java Virtual Machine and has a Web server can theoretically run the prototype. As illustrated in Figure 4, we have tried to keep the different functional modules of the client-side of the prototype as separate as possible. One module, the command interface (the class CommandInterface), sends and receives messages from the CORBA module (the class CORBAInterface) to communicate with the BCR. It also sends and receives messages from the VRML module (the class VRMLInterface). Currently, the prototype is accessible by viewing the Web page using Netscape Communicator 4.04 with Cosmo Player 1.0.2, the VRML plugin from Silicon Graphics, in the Microsoft Windows environment. This is currently the only platform for which Java Applet-EAI-VRML support exists. In addition to leveraging the ISO VRML97 standard, using Silicon Graphics Cosmo Player VRML viewer technology relieves us of writing viewpoint navigation methods. These methods include zooming, panning, and rotating the view in the three-dimensional environment. Note that the navigation methods of a particular VRML viewer are not part of the ISO standard [ISO97]. 1 As proposed by Chris Marrin, Silicon Graphics. See http://vrml.sgi.com/moving-worlds/spec/externalinterface.html.

CLIENT: SERVER: VRML World CADApplet VRMLInterface CommandInterface Building Component Repository CORBAInterface Figure 4: The basic prototype structure. DISCUSSION We have integrated existing technologies to demonstrate the feasibility of an Internet-based CAD system. We have focused on implementing a CAD browser UI with a backend distributed object environment that allows a user to retrieve and update a building component repository. The next step is to address issues concerning security and services. The BCR represents a portion of the shared model paradigm [Fischer96]. With a shared model, issues of security including digital signature and revision control must be implemented. The protocol for the implementation of services is an additional component of the shared model environment. Since we have utilized the CORBA environment, we envision implementing services using the CORBA Trading Service protocol which has its basis in the ISO Open Distributed Processing (ODP) standards [Vogel97]. In this environment, a service will register its services with the trading service. Another application can query this trading service about the registered services. For example, in the prototype, suppose the user would like to design a bathroom with a certain fixture in mind. The user could insert a fixture, and if the maker of the specific fixture is registered with a predetermined trading service, the critical attributes of the fixture could be automatically retrieved by the BCR and passed along to the CAD UI. For more complex services, a querying protocol must be considered [Arnold97]. Such a protocol would adhere to standards such as Parts Library (PLIB) [ISO95]. ACKNOWLEDGMENTS This research is partially sponsored by the Center for Integrated Facility Engineering (CIFE) at Stanford University.

REFERENCES [Arnold97] Arnold, James Andrew, Paul Teicholz, John Kunz (1997). An Approach for the Interoperation of Web-distributed Applications with a Design Model, submitted for publication in Automation in Construction. [Cornell96] Cornell, Gary and Cay S. Horstmann (1996). Core Java, Prentice Hall, Upper Saddle River, NJ. [IAI97] International Alliance for Interoperability (1997). Industry Foundation Classes Release 1.0, Specifications Volumes 1-4, Washington DC. [ISO95] ISO CD 13584-10:1995 Parts Library Part 10, ISO, Geneva, Switzerland. [ISO97] VRML97, ISO/IEC 14772-1:1997Information Technology The Virtual Reality Modeling Language, ISO/IEC, Geneva, Switzerland. [Regli97] Regli, William C. (1997) Internet-Enabled Computer-Aided Design, IEEE Internet Computing, IEEE 1(1), pp. 39-50. [Vogel97] Vogel, Andreas, and Keith Duddy (1997). Java Programming with CORBA, John Wiley and Sons, Inc., New York, NY.