CORBA Sissejuhatus IDL CORBA struktuur Serveri ehitus Objekti adapter Lisateenused MEELIS ROOS 1
CORBA sissejuhatus CORBA Common Object Request Broker Architecture Üldine Objektipäringute Vahendaja Arhitektuur:) Spetsifitseeritud OMG poolt Objekt-orienteeritud komponentprogrammeerimise tehnoloogia Põhineb klient-server ühendusel Suhtlemine toimub teenuse nõudmise kaudu Server ühenduse passiivne pool, pakub teenuseid Klient ühenduse aktiivne pool, nõuab serverilt teenuseid Objektiviite kaudu saadetakse teenuse nõudmine serverile MEELIS ROOS 2
CORBA IDL OMG poolt spetsifitseeritud liideste kirjeldamise keel IDL liideste kaudu kirjeldatakse serveri poolt pakutavaid teenuseid IDL liidesed on programmeerimiskeeltest sõltumatud Spetsifitseeritud on IDL liideste kujutused mitmesse programmeerimiskeelde(c/c++, Java, jne.) IDL struktuur: Moodul(Module) Liides(Interface) Väärtusena edastatav tüüp(value type) Operatsioon(Operation) Erind(Exception) MEELIS ROOS 3
VeelüksCORBAIDLnäide module MinuMoodul { abstract interface A {}; interface B {}; interface A1:A,B { const long my_int=10; const string my_string="minu tekst"; enum RGB {Red,Green,Blue}; struct some_structure { long index; string some_text; }; exception some_exception {}; void Hello() raises (some_exception); oneway void Message(in string msg); attribute float some_number; readonly attribute string some_text; }; }; MEELIS ROOS 4
CORBA eelised ja puudused Eelised: Tootjast sõltumatu avatud standard Programmeerimiskeelest sõltumatu Pakub mugavaid vahendeid tarkvara väljatöötamiseks Puudused: Pole keeltesse ja keskkondadesse otseselt integreeritud Sisemiselt keeruline ja vähe läbipaistev Kuna teiste poolt loodud komponente saame sageli kasutada ainult"musta kastina", puudub garantii antud komponendi kvaliteedi ja sobivuse kohta Paljud võimalused on spetsifitseeritud mittekohustuslikuna ja mõnes realisatsioonis puuduvad Eri realisatsioonid ei tarvitse alati koos toimida MEELIS ROOS 5
CORBA struktuur Objekt olem identifikaatori, liidese ja realisatsiooniga Teenindaja(servant) liidese realisatsioon mingis programmeerimiskeeles Klient programm, mis kutsub välja kaugobjektide teenuseid ORB(Object Request Broker) CORBA tuum, objektipäringute vahendaja ORB liides standardsed teenused, mida ORB pakub Kliendi tüükad ja serveri skeletid "liim" rakenduse ja ORBi vahel, IDL kompilaatori genereeritud DII(Dynamic Invocation Interface) ORB liides kliendile ilma tüügasteta suhtlemiseks(lisafunktsionaalsus) DSI(Dynamic Skeleton Interface) ORB liides teenindajaga ilma skeletita suhtlemiseks MEELIS ROOS 6
CORBA struktuur DII klient obj ref IDL tüükad ORB liides IDL skelett objekt (teenindaja) DSI objektiadapter GIOP/IIOP ORB tuum MEELIS ROOS 7
CORBA serveri ehitus Teenust pakkuv objekt teenindaja ühe teenindaja seotus mitme teenust pakkuva objektiga Objekti adapter teenust pakkuvate objektide objektiviidete vahendamine teenust pakkuvate objektide tegevuse juhtimine ja haldamine Portatiivne Objekti Adapter POA(Portable Object Adapter) adapterite struktureerimine teguviiside määramine POA haldur(poa manager) teenindajate haldur(servant manager) vaikimisi määratud teenindaja MEELIS ROOS 8
Objekti adapter Objekti adapter on vahend objekti realiseerimiseks ORBis OA ekspordib avaliku liidese objekti realisatsioonile, privaatse liidese skeletile Objektiviidete genereerimine ja interpreteerimine Meetodite käivitamine Objekti kasutamise turvalisus Objekti ja realisatsiooni aktiveerimine ja deaktiveerimine Objektiviidete realisatsioonidega vastavusse seadmine MEELIS ROOS 9
POA Portable Object Adapter Mõned eesmärgid: Peab võimaldama luua erinevate ORB vahel porditavaid objekti realisatsioone Peab toetama püsiva identiteediga objekte Looma vahendid objekti transparentseks aktiveerimiseks Üks teenindaja peab toetama samaaegselt mitmeid objekti identiteete Lubama serveris eksisteerida mitut POA esindajat Võimaldama minimaalse tööga kasutada väikese elueaga objekte Võimaldama luua objekti realisatsioone lähtudes staatilistest ja dünaamilistest skelettidest MEELIS ROOS 10
CORBA lisateenused OMG on defineerinud hulga lisateenuseid COS(Common Object Service) korduvalt vajaminev funktsionaalsus kliendi ja serveri vahelise suhtluse täiendus ühtne spetsifikatsioon erinevate lisateenuste komplektide võimalus MEELIS ROOS 11
Nimeteenus Objektide sidumine arusaadavate nimedega Nimedega seotud objektide struktureerimine Nimekontekst konteiner Nimede graaf URL-stiilis objektiviidete kasutamine corbaname::localhost:5000/nameservice#context/object Nimeteenuse säilivus(persistency) Nimeteenuse konsool INS Interoperable Naming Service MEELIS ROOS 12
GIOP ja IIOP protokollid GIOP(General Inter ORB Protocol) on protokoll ORB ide omavaheliseks suhtlemiseks(minimaalne tarvilik komplekt kokkulepitud eeldusi piisava lihtsuse tagamiseks) IIOP(Internet Inter ORB Protocol) lisab GIOP põhispetsifikatsioonile TCP/IP transpordikihi kasutamise MEELIS ROOS 13