CORBA Áttekintés Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 10. 15. Ficsor Lajos
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 Ficsor Lajos
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 Ficsor Lajos
A CORBA (Áttekintés)
Ficsor Lajos Általános Infromatikai Tanszék Miskolci Egyetem
CORBA / 3
1
Object Management Architecture (CORBAfacilities) Application ObjectsCommon Facilities Vertical Common Facilities Horizontal Common Facilities Distributed Information Task Systems Documents Management ManagementManagement
Object Request Broker Collection Security NamingPersistenceLife cycleProperties Concurrency Trader
Events Transactio
Time
Startup
LicensingQuery
ns Common Objects Services (CORBAservices) Ficsor Lajos
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 Ficsor Lajos
A CORBA (Áttekintés)
CORBA / 5
CORBA - legfontosabb jellemző jellemző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
Ficsor Lajos
A CORBA (Áttekintés)
Ficsor Lajos Általános Infromatikai Tanszék Miskolci Egyetem
CORBA / 6
2
CORBA kommunikációs modell Kliens (objektum) Object
Szerver (objektum)
Reference
Kliens oldali ORB
Szerver oldali ORB
GIOP (General (General InterInter-ORB Protocol) Protocol) - specifiká specifikáció ció IIOP (Internet InterInter-ORB Protocol) Protocol) - implementá implementáció ció TCP/IP protokol verem - működtető dtető közeg Ficsor Lajos
A CORBA (Áttekintés)
CORBA / 7
CORBA komm. modell (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. Ficsor Lajos
A CORBA (Áttekintés)
CORBA / 8
CORBA architektúra
Source: Douglas C. Schmidt: Overview of CORBA Ficsor Lajos
A CORBA (Áttekintés)
Ficsor Lajos Általános Infromatikai Tanszék Miskolci Egyetem
CORBA / 9
3
A CORBA architektúra elemei 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
Ficsor Lajos
A CORBA (Áttekintés)
CORBA / 10
A CORBA architektúra elemei (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
Ficsor Lajos
A CORBA (Áttekintés)
CORBA / 11
A CORBA architektúra elemei (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. Ficsor Lajos
A CORBA (Áttekintés)
Ficsor Lajos Általános Infromatikai Tanszék Miskolci Egyetem
CORBA / 12
4
A CORBA architektúra elemei (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) Ficsor Lajos
A CORBA (Áttekintés)
CORBA / 13
A CORBA architektúra elemei (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
Ficsor Lajos
A CORBA (Áttekintés)
CORBA / 14
CORBA alkalmazás készítése 2 Interface Repository Load
1Create IDL Definitions
3 Precomp.
6 User
User 8
Client Uses Implement IDL stub Client Skeleton Example Servant
4 Implemen t Servant
9 Compile
5 Compile
User
Object 7
Servant Adapter Instantiate Class
Implementation Repository Ficsor Lajos
Client Class
A CORBA (Áttekintés)
Ficsor Lajos Általános Infromatikai Tanszék Miskolci Egyetem
CORBA / 15
5
CORBA alkalmazás készíté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 Ficsor Lajos
A CORBA (Áttekintés)
CORBA / 16
CORBA alkalmazás készíté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 Ficsor Lajos
A CORBA (Áttekintés)
CORBA / 17
CORBA alkalmazás készíté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 Ficsor Lajos
A CORBA (Áttekintés)
Ficsor Lajos Általános Infromatikai Tanszék Miskolci Egyetem
CORBA / 18
6
CORBA kliensek és szerverek 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. Ficsor Lajos
A CORBA (Áttekintés)
CORBA / 19
CORBA kliensek és szerverek (folyt.) A "B" komponens egyszerre kliens és szerver:
C szerver
A
B
Kliens
Kliens és szerver
D szerver
Ficsor Lajos
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 Ficsor Lajos
A CORBA (Áttekintés)
Ficsor Lajos Általános Infromatikai Tanszék Miskolci Egyetem
CORBA / 21
7
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 Ficsor Lajos
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
Ficsor Lajos
A CORBA (Áttekintés)
Ficsor Lajos Általános Infromatikai Tanszék Miskolci Egyetem
CORBA / 23
8