26.11.2014 Views

Dassault Enovia, a Case Study of CORBA

Dassault Enovia, a Case Study of CORBA

Dassault Enovia, a Case Study of CORBA

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!