Web-Enabled Environment Based on CORBA Technology Background of the project Aim to improve the co-operation between China and Europe in the area of information science interconnectivity and product design/manufacture. 4 Partners Participated: The Nottingham Trent University Nottingham, UK Foundation Labein, Bilbao, Spain Harbin Institute of Technology, Harbin, China Chongqing University, Chongqing, China “Web-Enabled Environment” What is it on about? It is on about An working environment For product design/manufacture Focuson the collaboration over network Background and tendency of product design/manufacture Background The increasing complexity of modern products complex engineering design, involves experts from multiple disciplines such as geometrical design, stress analysis, material selection and manufacturing, vibration simulation, etc. The experts might be in different organisations and located in different geographical regions. Different experts might use different resources including computing applications, CAD systems languages such as Pro-E, UG, AutoCAD, ANYSIS, etc. which are written in different, ported in different platforms and linked in different networks. Background Thecruel competition pressure requires globalisation of product development/manufacture Expand the market Transfer divisions to appreciate locations (to get cheaper labors, materials and resources) Fast reaction to suit for the unpredictable changes in market Data are Distributed and heterogeneous Computation applications are Distributed and heterogeneous Users are Distributed Tendency Allof these necessitate a collaborative design environment, where different computer programs and distributed experts in similar or different domains can be collaboratively involved on a common design/manufacture activity. An effective collaboration mechanism is highly demanded “Web-Enabled Environment based on CORBA” is the mechanism it needs Make it clearer We are talking about a high-efficiency collaborative environment for the demand of modern product design/manufacture The collaborative environment can be a range from a desktop pc/a workshop to the world wide participating sections Make it clearer In this environment, geographically dispersed designers can collaborate online in real time Designers engaged in a project can be distributed in different rooms in a building, within a city or maybe in any where over the world. They can cooperate with each other without being troubled by distance. Make it clearer Ignore difference of the IT platforms they use There may be dozens of different CAD/CAE software packages, operating systems and programming languages are involved in the same project during cooperation. In our environment, no need to spend extra money and time to unify these difference, collaborators treat them as same. Got some idea about the Environment so far? Let’s call the environment Briefly, “WEE based on CORBA” Obviously, CORBA is the main technology on which our “Web- Enabled Environment (WEE)” is based What is CORBA then? Definition of CORBA CORBA is the acronym of “common object request broker architecture” defined by the Object Management Group (OMG), is a standard for the distributed computing and systems integration The OMG comprises over 700 companies and organizations, including almost all the major vendors and developers of distributed object technology, including platform, database, and application vendors as well as software tool and corporate developers. Basic idea of CORBA CORBA is a architecture to provide a communication mechanism It is not for communication between human and computer/internet but for the communication among computing applications over network The applications are emphasised to be with different languages, platforms and protocols The applications may be distributed in different locations An envision for CORBA library help desk. It will assist you to get the books you want in library. All the books are registered in the help desk with some specific references (ISBN, names, authors, brief descriptions etc.). The help desk can search any book in different ways and help you to get hold of them from different frames. the system will assist you to get the books you exact want, or tell you what it has now following the general requirements you give. It is the similar way CORBA does Imagine applications with different functions are the books required in dispersed computers (book frames) in the networks ( huge library). CORBA is the help desk that will help to find out and get the applications (books) you want CORBA “wraps” program code into a bundle (object) and uses an interface definition language (IDL) to specify the interfaces that objects will present to the world containing information about the functions of the code inside and how to call it in a language neutral way. The resulting wrapped objects can then be called from other programs across a network. CORBA then specifies a “mapping” from IDL to a specific implementation language in its specific ORB (Object Request Broker) written for those languages like C++ or Java. Standard mappings exist for Ada, C++, Smalltalk, Java,etc The CORBA’s ORB is utilized as the communication bus for all objects in the system. It enables objects to transparently make requests to---and receive responses from---objects located locally or remotely. The client is not aware of the mechanisms used to communicate with, activate, or store the server objects. Key technical points Name sever--- A server where all the application objects register their object reference with related unique meaningful names IDL----Interface definition language, specify the requested operations performed in the invocated application object in client side and the operations supplied by application object in server side. ORB---Object request broker, Generated for mapping specific programming language and locating the remote object on the network. It directs the request to the object, waits for the results and when available delivers those results back to the client. IDL Stub and IDL Skeleton--- produced by ORB, Serve as proxies to marshal and unmarshal the operations arguments specified by IDL for delivery in ORB. Diagram of basic CORBA work flow: Object ref Client Object Implementation Name sever Meaningful IDL Skeleton IDL Stub names of application Request Object Request Broker Description of the work flow Client visit the name server to find out the name of the requested application object and get the object reference. With the unique object reference, client must use IDL interface to specify the operations it wants to perform in the invocated object and marshal the arguments it sends using the IDL stub. ORB is used to direct and deliver the request and response between client and specific object server . When the invocation reaches the target object in server, same IDL interface is used to unmarshal the arguments in IDL skeleton so that the object can perform the requested operations and marshal the results get from application object for their back trip. Finally, results are sent back and unmarshaled by IDL stub in client side and ready for use. What we have from CORBA The client application is completely isolated from the server application. It does not know what hardware it is running on, what operating system it is using, what language it is written in, or where it is located -- in the next room or halfway around the world. All it knows is that if it calls It will get a response it can count on. This is all about providing a service like the telephone or the electric company. When you pick up your phone you expect to get a dial tone and a clear connection for your call. You don't care if the call is being routed through fiber optic cables or bounced off a satellite Conclusion for CORBA CORBA uses IDL to enable distributed Applications (objects) talk to each other and share power with recognizable interface ORB is universal communication bus of the CORBA, It does all the jobs for interaction between applications transparently. CORBA is the architecture base of our WEE Back to the WEE Contents involved A Web-enabled environment (WEE) Two associated techniques based on WEE: Remote execution of large size programs/packages Web-based collaborative CAD. Architecture of WEE The Web-enabled environment consists of three tiers based on the CORBA: User tier Web server tier Application tier Architecture of WEE NTU PDM Serv User Interface er CAD CAM LABEIN PDM Serv er CAD CAM HIT PDM Serv CAD User Tier er Web Server Tier CAM CORBA Objects CQU PDM Serv er CAD Firewall CAM Application Tier Figure 1 Architecture of WEE Functions of User tier User tier — Valid customers of the WEE are allowed to visit HTML or XML pages located on the Web server tier over the Internet. The user needs to know only how to use the graphic interface and does not to have to be aware of the technical details behind this. Functions of Web server tier Web server tier — It consists of three modules: Graphical user interface CORBA agent object Intelligent control of virtual design systems Modules of web server tier The graphical user interface includes the whole activities flow according to the design and manufacturing process and Web service tools. All these Web pages contain the inside linkage to the CORBA agent objects. Modules of web server tier CORBA agent objects are associated with the remote applications or software and activate them and retrieving the results. Through CORBA the applications dispersed on the remote systems can be encapsulated into the CORBA objects so as to be reached and managed by CORBA agent objects Modules of web server tier The artificial intelligent control is for the intelligent control of the whole process of design and manufacture. The CAD/CAM connection using feature recognition, Intelligent distribution with neural networks, Intelligent scheduling using Genetic Algorithm Generally to tell when to use what available/alternative resources Functions of Application tier Application tier — It consists of a number of applications for design and manufacture dispersed geographically and in different languages and operating systems (PDM, CAD,CAE, CAM ,SQL, DBMS or JDBC) They are wrapped into CORBA objects. The interface of each is mapped into a CORBA agent object in web server tier and separated from the implementation language partner uses. Two working models on WEE In the WEE system, many necessary applications are integrated in a standard interface based on CORBA. There are two kinds of working models are considered: Web server centralised structure. Direct point-to-point mechanism. Server Centralised Model A central server is LABEIN employed to manage the NTU global and administrative information of whole Server in NTU distributed system. It works as a mediator, CQU HIT communication between HEU client applications and design applications must go through the centre server. Conducting the following tasks: Authentificationof the user information Resource registration and finding services Management of global product information conduct the data sharing among multiple partners How does it work? Partners wish to access same design task first copy the data into the local system and edit During editing, the data is locked by the central server and only accessable for the current partner. When finishing, they must update the modifications in the central server, unlock the data and send a message to the other partners regarding this update. Other partners must therefore re-download the modified data to proceed to the design task. Advantage and Disadvantage Advantages: Easy to manage the user identification provide a unified interface for partners or users to register their own resources and find other’s resources . administrate the global product information, and ensure design data consistency. Disadvantages: Requires high network bandwidth. Potentially less fault-tolerant because the central host is a single point of possible system-wide failure. Point-to-point Model It provides a totally decentralized system. NTU LABEIN Each partner node acts as both an application server and a client. CQU HIT The partners can HEU exchange their resources to each other directly How does it work? partners want to modify a CAD model together contain the copies of the shared CAD data in the local systems. Modifications made to the local model are identified and then propagated to other collaborative designers in standardised format, or semantic design messages. A reduced data volume is distributed since only the modifications are transferred rather than the whole modified model. Each node has equivalent capabilities as well as responsibilities that either request or provide service, Advantage and Disadvantage Advantage: point-to-point eliminates the single-source bottleneck. partners have full access to the data at any time. Increase the fault-tolerant capability Only the modifications are transferred rather than the whole modified model which release the intensity of bandwidth occupation Disadvantage: maintaining administrative data consistency among distributed replicas is more complex while the number of propagating messages is much larger. Solution--- Hybrid Structure for the WEE System Two models are NTU LABEIN together utilised to provide more flexibility and robustness. CQU HIT HEU Basic working rule The name Server is ported on the central server site, which provides the naming service Clients obtaining the object reference from the Name Server and invoke the object directly based on the point-to-point structure high efficiency. Basic working rule In order to efficiently fulfil collaborative design: high efficient point-to-point structure is used for graphical data operation ( CAD/CAE models or drawings, etc.) Centralised model is used to operate non-graphical data. (naming service, administrative data, global product data, etc.) Itcombines all the advantages of both structures and eliminates their shortages Features of the WEE Scalability -- The system architecture can accommodate any growth in future load such as new computer processors and/or architectures and tools. Openness -- The system can be easily extended and modified. Any new components integrated in the system can communicate and work together with some of components that already exist in the system. Features of the WEE Heterogeneity -- communicates and interoperates amongst the components basing on different programming languages, different hardware platforms and different protocols. Legacy codes reusability -- Existing applications can be integrated and interoperated seamlessly together with a new application without code- rewriting. The reusable components enable efficient development processes and reliable application systems. Features of the WEE intelligence -- Artificial neural Artificial networks, fuzzy logic and genetic algorithms are utilized for the control of process and conflict checking. Development of the WEE For collaboration amongst the partners, the environment has to be provided with the following modules: Integration of application Communication and interoperation between partners Unified graphical user interface Intelligent process management Two associated techniques based on WEE Remoteexecution of large size programs/packages Web-based collaborative CAD Remote execution of large size application based on WEE In order to achieve best product design and low production costs, some large-sized programs, such as design optimization and finite element analysis software, are often used in the design phase. such programs/packages are time-consuming in computation and may not be valid to download due to software copyright, or due to their large size and the limited network bandwidth. Approach has been developed to remotely execute such software in an effective way for collaborative design within the WEE. Remote execution of large size application based on WEE System structure using Java Servlets Technology Java Servlets can be seen as a set of pre- programmed functions packed in server side and ready to be triggered by some actions of user Application of CORBA Technology in the System Works flow with Java Servlets The executable program is located and executed on the server-side and the results are sent to the client-side after the completion of the program. To accomplish this, a combination of Java Servlets, HTML, etc. are utilized. The user on the client side inputs the parameters of the program via the input interface in the HTML page. When the user clicks on the submit button on the HTML page, these parameters are sent to the server and a Servlets program is activated by the HTML code. It parses the parameters and writes them into the input files and invokes the executable program which is located on the server. When the execution is completed and output files are created, Servlets return the results to the client. System structure Client Server Login Welcome Page Login Servlet N Stop Unregistered Valid user? Input files user page Y Parameters Executable Input interface Main Servlet program in HTML page Stop Result pages Result Servlet Output files Figure 2 Remote execution environment based on Java Servlets Application of CORBA Technology in the System CORBA is used as Middleware between Java servlets and executable programs such as C/C++ applications distributed in remote application servers. IDL and ORB help to turn a local application (distributed) into the Web-based object, so that it can be accessed over the network such as the Intranet, Ethernet or Internet. With other words, Java servlets also can be treated as the middleware connecting the user and CORBA system Application of CORBA Technology in the System Client GUI Executable program Client IDL Interface Server IDL Interface Object Request Broker Core Figure 3: Situation with direct data transfer Features of the system user can easily access the application through an Internet explorer regardless the platform type used. user can easily input data, monitor the executing process, and receive resultant data in a demanding way. Without impaction on program execution in case of the interruption of Internet. (input/output files, CORBA will resolve the problem) Multiple users’ complementation and authentication (Java servlets do the job) Web-based Collaborative Computer Aided Design File Approach for CAD Data Neutral Transfer Web-based CAD Data Sharing Neutral File Approach for CAD Data Transfer Many CAD and finite element analysis (FEA) software packages, such as Pro-E, SolidWorks, AutoCAD,etc, are widely used in product design and manufacturing. In the distributed collaborative environment, the given partners may have different CAD and FEA software with different data format. In order to collaborate, it is necessary to effectively exchange and share data between heterogeneous CAD systems. CORBA based neutral files is the one we need A Comparison between two system Directtranslator system Neutral file system Direct translator system Direct translators system uses a pair of translators to exchange data between two CAD software. The numbers of required translators becomes too large when many CAD systems involved in the data transfer. (For each pair of CAD systems to be able to communicate, two translators are required, one for each direction). For a new additional CAD system, several translators have to be added fro every existing CAD system. Direct data transfer Pro-E UG SolidWork AutoCAD Ansys Figure 4: Situation with direct data transfer Neutral file system Neutral file system utilizes pre- and post- processor for each CAD system. When a new CAD system is added, only one pre- and post-processor needs to be added for exchanging data with all the existing CAD software. All the exchanging data will be collected into neutral file format firstly and sent back to any partner with its required data format. Data transfer with neutral file system Pro-E Pre- and post- processor Neutral UG SolidWork File AutoCAD Ansys Figure 5 Situation using a neutral file Web-based CAD Data Sharing Current communication software currently Internet communication software, such as Windows Netmeeting, enables two or more users to share CAD drawings by remote desktop sharing. However, massive bitmap data transferring across the Internet is greatly constrained by the limited network bandwidth Moreover, such sharing software can only run on the same operating system. To solve this problem, a Web-based approach for real time CAD data sharing across different operating systems is developed within the WEE. Web-based CAD Data Sharing Thisframework is to enable geographically dispersed team members to discuss and modify CAD data simultaneously within the Web-enabled environment effectively. Basic rules Users in different locations start their own process instance (a copy of design data on which cooperative designer can work )with the same CAD software. Connect to the same server by Internet communications that follow CORBA rules. The information transferred through the Internet is not the bitmap data, but the design instructions and display parameters Work flow partner A is sharing CAD data with partner Partner A Server Partner B B with same software but different Operation Modellin CORBA Modellin g Object g system. A develops a model CAD CAD and the modeling Softwa Softwa re re instructions and display parameters will be transferred to the CORBA CORBA server in the meantime Object Object and then to B using Modelling CORBA rules instructions and display parameters Figure 6: Flow chart of CAD sharing system When B works on the model, the process is reversed. Advantages The quantity of the Internet transferred data can be greatly reduced. The response speed of this collaborative design environment increases manifold. Ignore the difference of operation systems Case study: computer aided simulation and analysis for gear using WEE http://www.admec.ntu.ac.uk/asia-itc/WEE.html Thank you!