Dassault Enovia, a Case Study of CORBA Introduction Distributed Architecture Orbix Im plem entation Detail Conlcusion
Introduction What's a PLM solution? Who uses PLM products? The distributed requirem ent of the users
Distributed Architecture of Enovia Relevant components Client, VPM Navigator Enovia LCA Server Manager Enovia Vault Manager Relational Database Engine Requirements Accessibility Transparency Openness Scalability
Basic Enovia Architecture
Accessibility Requirement Different disciplines Aerospace Engineer Industrial Engineer Repeairman Integration with existing Authentication mechanism Difference in measure systems Difference in language
Transparency Requirement Access: hide physical representation of data Different IT infrastructure Location: Hide the real location of a data Server Manager proxies requests Distributed Vaults Migration: No reconfigurations required DNS, IP Aliases Replication: Hide data replication Using master vault and read-only vault
Distributed Enovia Architecture
Openness Requirement Extendability CORBA CAA C/C++/Java API
scalability Requirement Geographically Distributed vaults Remote invocation using CORBA Load wise Clustering of independent vault managers Scalable underlying technologies Oracle NFS
IONA Orbix CORBA3 Compliant Orb Most Deployed in the industry Available for leading applicative platforms Linux, Windows, UNIX Advanced Features DII Bidirectional GIOP etc
Technical Implementation Details Client configuration VPM Navigator Orbix naming daemon host:port VaultClient.properties 3DCom Web Client Naming Daemon configuration Implementation Repository Server Manager Configuration Vault Manager Configuration
Client Configuration Centralized Ease of administration Consistent across all sites Single point of failure can be avoided Dynamic configuration Load balancing Failover Use of local vault replica
Centralized Dynamic Configuration
Sample VaultClient.propreties Host A VaultClient_DefaultAliasName = Vault VaultClient_Vault_ReadVaultServerName = Vault VaultClient_Vault_ReadVaultServerHostName = X VaultClient_Vault_ReadVaultServerDaemonPort = 54270 VaultClient_Vault_WriteVaultServerName = Vault VaultClient_Vault_WriteVaultServerHostName = Z VaultClient_Vault_WriteVaultServerDaemonPort = 54270 Host B VaultClient_DefaultAliasName = Vault VaultClient_Vault_ReadVaultServerName = Vault VaultClient_Vault_ReadVaultServerHostName = Y VaultClient_Vault_ReadVaultServerDaemonPort = 54270 VaultClient_Vault_WriteVaultServerName = Vault VaultClient_Vault_WriteVaultServerHostName = Z VaultClient_Vault_WriteVaultServerDaemonPort = 54270
Naming Deamon Configuration Indirect Binding Object persistence Enovia LCA server Manager ( CATIAServerManager) Enovia Vault Manager Orbix Implementation Repository Text, editable.imp file Read at runtime
Vault Manager.imp file Name : Vault Comms : cdr/tcp Activation : shared Owner : root Launch : ;all; Invoke : ;all; ImpRep Version : 2 no. of servers : 1 server's port : 0 Marker Launch Command * /...somepath.../runenovvaultstarter 319 300
Server Manager Details Started by indirect binding Responsible for activating object for clients VPM example See following chart
Flow of initial VPM invocation
Vault Manager details Started by Indirect binding Takes requests from Server Manager to setup file transfers Only one servant is required to handle file transfers Only receives incoming connections from clients.
Conclusion Enovia is a Distributed system Accessible Transparent Open Scalable CORBA is a key component in making it possible Remote invocation Naming service & indirect binding Openness & Extendability