CORBA Áttekintés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 10. 15. Mi a CORBA? osztott objektum modell szabvány, amely definiálja a komponensek közötti interface-eket definiál bizonyos eszközöket ezen interface-ek implementálására meghatároz szolgáltatásokat: directory naming persistent object transaction stb platform független nyelv független A CORBA (Áttekintés) CORBA / 2 OMG and OMA OMG (Object Management Group) 1989, nyolc taggal. (Jelenleg kb. 800 tag.) OMA (Object Management Architecture) 1995 Szabványok együttese Egy közös architekturális keretrendszer (common architectural framework) Object Request Broker (ORB) object services (CORBAservices) common facilities (CORBAfacilities) domain interfaces application objects A CORBA (Áttekintés) CORBA / 3
Object Management Architecture Application Objects Common Facilities (CORBAfacilities) Vertical Common Facilities Horizontal Common Facilities Distributed Information Systems Task Documents Management Management Management Object Request Broker NamingPersistenceLife cyclepropertiesconcurrencycollection Security Trader Events Transactio Time Startup LicensingQuery Common Objects ns Services (CORBAservices) A CORBA (Áttekintés) CORBA / 4 CORBA - legfontosabb jellemzők Statikus és dinamikus metódushívás Magasszintű nyelvi kötés Elválasztja az interface-t az implementációjától Nem API szintű szolgáltatásokat biztosít Önmagát leíró rendszer (Self-describing system) Meta-adatok az interface-ek leírására Local-remote transzparencia Beépített biztonsági és tranzakció kezelési lehetőségek A CORBA (Áttekintés) CORBA / 5 CORBA - legfontosabb jellemzők k (folyt.) Üzenetküldés a polimorfizmus elvének betartásával Nem távoli eljárás, hanem a (távoli) célobjektum metódusának hívása Létező rendszerekkel való együttműködés Már létező alkalmazások "becsomagolhatók" IDL wrapper-ek segítségével A CORBA (Áttekintés) CORBA / 6
CORBA kommunikációs modell Kliens (objektum) Object Reference Szerver (objektum) Kliens oldali ORB Szerver oldali ORB GIOP (General( Inter-ORB Protocol) - specifikáci ció IIOP (Internet Inter-ORB Protocol) - implementáci ció TCP/IP protokol verem - működtető közeg A CORBA (Áttekintés) CORBA / 7 CORBA komm. modell l (folyt) Megjegyzések és kérdések: Túl egyszerűnek tűnik Egy egy klasszikus kliens/szerver modell. Mi az újdonság ebben? A rövid válasz: A kliens program egy objektuma ugyanúgy hívhatja meg valamelyik szerver objektumának egy metódusát, mintha az lokális objektum lenne. Hosszabb válasz: a további slide-okon. A CORBA (Áttekintés) CORBA / 8 CORBA architekt ktúra Source: Douglas C. Schmidt: Overview of CORBA A CORBA (Áttekintés) CORBA / 9
A CORBA architektúra a elemee lemei ORB transzparens kommunikációs mechanizmust biztosít a kliens és a szerver között Megkeresi az objektum implementációját Transzparens módon aktivizálja azt, ha szükséges Továbbítja az üzenetet az objektumnak Visszaadja a választ a hivónak GIOP (General Inter-ORB Protocol) szabványos protokoll az ORB-k közötti kommunikációra A CORBA (Áttekintés) CORBA / 10 A CORBA architektúra a elemee lemei i (folyt.) IIOP (Internet Inter-ORB Protocol) egy GIOP implementáció TCP/IP felett ORB interface elválasztja az alkalmazást az ORB implementációs részleteitől Argumentumlistákat készít, ha szükséges Konvertálja az objektum referenciákat A CORBA (Áttekintés) CORBA / 11 A CORBA architektúra a elemee lemei i (folyt.) IDL (Interface Definition Language) nyelvfüggetlen interface-t specifikál CORBA objektumok között. Bármely programozási nyelvre leképezhető. IDL stubs and skeletons Az IDL fordító készíti. A kliens és a szerver objektumok ezeket használják közvetlenül DII (Dynamic Invocation Interface) ezen keresztül a kliens közvetlenül elérheti az ORB-t. A CORBA (Áttekintés) CORBA / 12
A CORBA architektúra a elemee lemei i (folyt.) DSI (Dynamic Skeleton Interface) A DII szerver oldai megfelelője Object Adapter az objektum implementációkat ismertté teszi az ORB számára. Segíti az ORB-t az alábbiakban A kérések eljuttatása az objektumhoz Az objektum aktiválása Az Object Adapter specializálható bizonyos objektum fajtákra (OODB, library objects) A CORBA (Áttekintés) CORBA / 13 A CORBA architektúra a elemee lemei i (folyt.) Interface Repository futásidejű információk az IDL interface-ekről. Implementation Repository ORB specifikus repository az Object Adapter által használt objektumokról A CORBA (Áttekintés) CORBA / 14 2 CORBA alkalmazás s készk szítésese Interface Repository Load 1 3 Create IDL Definitions Precomp. User 6 Client IDL stub Implementation Repository Uses Skeleton Example Servant User 8 Implement Client 4 Implemen t Servant User Object 7 Adapter Instantiate Client Class 9 Compile 5 Compile Servant Class A CORBA (Áttekintés) CORBA / 15
CORBA alkalmazás s készk szítése se (folyt.) 1. Szerver interface definiálása IDL segítségével attribútumok exportált módszerek módszer paraméterek 2. Az interface betöltése az Interface Repositoryba A program az IDL információt el tudja érni futási időben A CORBA (Áttekintés) CORBA / 16 CORBA alkalmazás s készk szítése se (folyt. 3. Az IDL precompiler elkészíti a kliens és szerver oldali stub vázát (hogy elválassza az alkalmazást az ORB implementációtól.) Példa osztálydefiníciót, aminek segítségével elkészíthető a szerver oldali objektum implementációja 4. A servant (a szerver oldali objektum) funkcionális kódjának hozzáadása Ez implementálja a szerver objektum tényleges tevékenységét A CORBA (Áttekintés) CORBA / 17 CORBA alkalmazás s készk szítése se (folyt. 5. A kód lefordítása 6. A futásidejű objektum regisztrációja Az ORB az Implementation Repository-t használja az aktív objektum megkeresésére vagy arra, hogy kérje az objektum aktivizálását a szerveren. 7. Az objektum példányosítása a szerveren A szerver Object Adapter-e végzi 8. A kliens kód implementálása 9. A kliens kód lefordítása A CORBA (Áttekintés) CORBA / 18
CORBA kliensek és szerver erverekek Hagyományosan: a szerver egy olyan komponens, amely egy másik komponens (a kliens) számára biztosít szolgáltatásokat CORBA szerver: egy komponens (a szerver) egy másik komponens (a kliens) kérésére végrehajtja valamelyik metódusát. Egy CORBA objektum számos interakcióban részt vehet, és akár egyidőben működhet kliens és szerver szerepben. A CORBA (Áttekintés) CORBA / 19 CORBA kliensek és szerver erverekek (folyt.) A "B" komponens egyszerre kliens és szerver: A Kliens B Kliens és szerver C szerver D szerver A CORBA (Áttekintés) CORBA / 20 Hivatkozások On-line információforrások Az OMG honlapja: www.omg.org Douglas C. Schmidt honlapja: www.cs.wustl.edu/~schmidt/corba.html Újonnan megjelent könyvek és tutoriálok: www.cs.wustl.edu/~schmidt/new.html#corba CORBA3: www.omg.org/technology/corba/corba3releaseinfo.htm A CORBA, DCOM és Java RMI összehasonlítása: www.execpc.com/~gopalan/misc/compare.html ORB-k listája: www.cetus-links.org/oo_object_request_brokers.html A CORBA (Áttekintés) CORBA / 21
Hivatkozások (folyt.) Csizmazia Balázs: Hálózati alkalmazások készítése (második kiadás), 9. fejezet Kiadó: Kalibán Bt., Budapest. 1998 ISBN 963 03 5113 7 Sok szerző: JAVA 2 útikalauz programozóknak. (Hatodik kiadás) 22. Fejezet Kiadó: ELTE TTK Hallgatói Alapítvány Budapest, 2000 ISBN 963 463 364 1 A CORBA (Áttekintés) CORBA / 22 Hivatkozások (folyt.) Robert Orfali, Dan Harkey: Client/Sserver Programming with JAVA and CORBA (Second Edition) John Wiley & Sons, 1998 ISBN 0 471 24578 X A CORBA (Áttekintés) CORBA / 23