CORBA Common Object Request Broker Architecture Av Heinar
Generelt OMG – Object Management Group OO Spesifikasjon 90-tallet Siste versjon 3 Interoperabilitet
Konseptuel Modell CORBA
Moduler Klient InterfaceDefinitionLanguage Stubbe (pråksi) DynamicInvocationInterface ORB Interface Server InterfaceDefinitionLanguage Skjelett DynamicSkeletonInterface ObjectAdapter OA ORB Interface
Arkitektur
ORB Kommunist Transparens Distribusjon Heterogenitet Bestyrer av InterfaceRepository Benyttes av DII og DSI En ORB per CORBA Håndterer objektreferanser (identifisere, lokalisere, marshalling)
IDL – InterfaceDefinitionLanguage Sterk typing Definerer Objekter Tjenester Lag en IDL pr klasse
Stubber Klient Produsert av ORBens IDL-kompilator En stubb pr IDL CORBAs representasjon av objekt Marshalling
Skjelett Tjener Produsert av ORBens IDL-kompilator Ett skjelett pr IDL Håndterer objektkall Marshalling
DII DynamicInvocationInterfjes Dynamisk konstruksjon av objekt Fleksibel Komplisert Mindre typesterkt Object::get_interface InterfaceDef::describe_interface Object::create_request Request::add_argument Request::invoke
IR Interfjes Repository Tilgjengelig via ORB Brukes av DII og DSI Persistent lagring av IDL Debug info Stubb- og skjelettbibliotek
Implementation Repository Inneholder hvordan implementere og aktivere objekter. Avhengig av ORB/OS
POA Portabel Objekt Adapter Kontroller livssyklusen til objekter Server kode -> CORBA objekter Servant -> Utførende hardware (OMG!) Utførende objekt (boka(?)) 1xN eller Nx1 eller blandings
Agenter ?
COS Common Object Services Tjenester tilbudt av ORB Applikasjons- uavhengig ServiceDescription CollectionFacilities for grouping objects into lists, queue, sets, etc. QueryFacilities for querying collections of objects in a declarative manner ConcurrencyFacilities to allow concurrent access to shared objects TransactionFlat and nested transactions on method calls over multiple objects EventFacilities for asynchronous communication through events NotificationAdvanced facilities for event-based asynchronous communication ExternalizationFacilities for marshaling and unmarshaling of objects Life cycleFacilities for creation, deletion, copying, and moving of objects LicensingFacilities for attaching a license to an object NamingFacilities for systemwide name of objects PropertyFacilities for associating (attribute, value) pairs with objects TradingFacilities to publish and find the services on object has to offer PersistenceFacilities for persistently storing objects RelationshipFacilities for expressing relationships between objects SecurityMechanisms for secure channels, authorization, and auditing TimeProvides the current time within specified error margins
Invokasjonsmodeller Request typeFailure semanticsDescription SynchronousAt-most-onceCaller blocks until a response is returned or an exception is raised One-wayBest effort deliveryCaller continues immediately without waiting for any response from the server Deferred synchronous At-most-onceCaller continues immediately and can later block until response is delivered
Interoperabilitet General Inter-ORB Protocol (GIOP) Internet Inter-ORB Protocol (IIOP) 8 meldingstyper Inter-ORB References (IOR)
Event & Notification Leverandør, forbruker og hendelseskanal Push Pull (polling) Alle sender til alle Løsning: Notification
Namnegjevingsyting (id, kind) – par Naming context Mapper navn -> OR resolve
Synkronisering Samtidighetskontroll tjeneste Transaksjons tjeneste Gir: Distribuert og nøsta transaksjoner 2PL 2PC (Recoverable vs. Transactional)
Caching og replisering For ytelse Kopier organisert i hierarki CASCADE gir transparens…nesten
Feiltoleranse Objektgrupper Interoperable Object Group Reference (IOGR) Replication Manager
Sikkerhet Når og hvor? Policy objekter Aksess-kontroll Sikker invokasjon Vault objekt Security Context (De-)krypterer Security association
Takk for alt? ”Whenever a client passes an IOGR to its ORB, that ORB attempts to bind to one of the referenced replicas. In the case of IIOP, the ORB may possibly use additional information it finds in one of the IIOP profiles of the IOGR” Hvis dere har spørsmål, er det greiest om de kommer underveis….