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