Pokročil ilé aspekty distribuovaných objektových systémů Petr Grygárek rek 1
Komunikační protokoly 2
General Inter-ORB Interoperability Protocol (GIOP) Původně v CORBA Postupně přejat do RMI Implementace EJB obvykle založeny na CORBA, takže e používaj vají GIOP Nezávislý na síťovs ové architektuře Stačí libovolný spojově orientovaný spolehlivý protokol Pro TCP/IP balen do TCP protokol IIOP Binárn rně orientovaný Pro kódovk dování parametrů používá Common Data Reprezentation (CDR) CDR podporuje všechny v typy IDL a objektové reference 7 typů zpráv Klient-server architektura Spojení navazuje klient požaduj adující volání operace (metody objektu) Od GIOP 1.2 lze spojení využívat vat symetricky v obou směrech Možnost průchodu přes p firewally při i obousměrn rném m volání operací mezi dvěmi objekty Objekt na serveru při i volání objektu na klientu využívá spojení,, které navázal klient 3
Zprávy GIOP Request, Reply Volání operace a vrácen cení výsledku+out parammetrů,, příp. p p. výjimky LocateRequest, LocateReply Základ pro podporu migrace objektů Reáln lně neimplementováno no CancelRequest, CloseConnection, MessageErro 4
Zprávy Request a Reply Request Header: request_id, operation, object_key, principal, reply_expected_flag, service_context Request Body: in/inout parameters, context Reply Header request_id, reply_status, service_context Reply Body return value, out/inout parameters exception new location 5
HIOP GIOP přesp HTTP Průchodnost přes p firewally testující aplikační vrstvu nestačí provozovat IIOP nad portem 80/TCP 6
CORBA 7
CORBA Interface Repository Ukládání IDL definic Výhodné znát t při p i použit ití Dynamic Invocation Interface (DII) Definice zpřístupn stupněny ny formou objektů s hierarchickou strukturou odpovídaj dající struktuře e IDL definic Moduly, rozhraní,, operace, parametry Interface Repository poskytuje možnost postupného procházen zení hierarchie uložených IDL definic Jednoznačná identifikace IDL typů Absolutní jména Relativní jména RepositoryID 8
Typ Any Nese hodnotu libovolného typu objektového i neobjektového typu omezíme me-li se na objektové typy, postačí typ Object buffer s definovanou délkou d pro uložen ení hodnotu + identifikace typu Typ identifikován n pomocí TypeCode TypeCode je objekt, mám metody pro zjištění vnitřní struktury typu, který jeho instance reprezentujé 9
Neblokující volání operací Oneway operace nevrací výsledek klient neček eká na dokončen ení Asynchronní volání Řízení se vrátí klientovi okamžit itě po zavolání oprace Možnost zjištění,, zda již dorazila odpověď Převzetí odpovědi di Paralelní zaslání požadavk adavků na volání operací na více v objektů postupné asynchronní zpracovávání dorazivší ších odpovědí 10
Kontext Pole asociací klíč-hodnota, které se můžm ůže e spolu s parametry operace předp edávat z klienta na implementaci objektu Reprezentuje volitelné parametry operace V signatuře e operace (IDL) specifikováno, které klíče e z kontextu se mají předávat Pokud asociace klíč-hodnota neexistuje, tiše e se ignoruje Klient můžm ůže e obsah kontextu definovat, serverová implementace objektu číst Nezaměň ěňovat se Service context 11
Podpůrn rné služby CORBA CORBA Services Naming Event Transaction Security Persistance CORBA Facilities Vertical Horizontal 12
Dynamická kompozice aplikací z distribuovaných objektů Dynamické vyhledávání služeb instancí objektů požadovaných typů a jejich dočasn asné provázání Mechanismus vyhledávání multicasting Se zohledněním QoS kanálu k objektům m služeb QoS routing a mezi službami vzájemn jemně (!) Kritéria ria výběru z ekvivalentních služeb Koncepce časově omezeného pronájmu služeb Zabraňuje blokování služeb při p i výpadku klientů,, kteří je používaj vají Ukládání a obnovování vnitřního stavu služeb svázaných s jednotlivými klienty 13
Framework pro dynamickou kompozice aplikací z distribuovaných objektů JAVA Jini ambiciózn zní, ale st, ale stále spíš íše e experimentáln lní Speciáln lní architektury vyvinuté pro výzkumné účely 14
Současn asná pozice klasických technologií distribuovaných objektových systémů CORBA, RMI, COM+ Pro málo m rozsáhl hlé aplikace Pro speciáln lní aplikace kombinace různých r platforem, různr zné programovací jazyky, omezená kapacita komunikačních kanálů Spíš íše e slouží jako komunikační infrastruktura vyšší šších architektur EJB,.NET Postupný přechod p na webové služby SOAP/HTTP HTTP/XML,, WSDL, 15