Rozproszone obiekty

Co to jest CORBA?

CORBA jest to obiektowy zestaw oprogramowania (middleware), służący do obsługi komunikacji między rozproszonymi obiektami i aplikacjami w sieci, działającymi na różnych systemach komputerowych. CORBA ma swe podłoże w sieciach, a produkty zgodne ze specyfikacją CORBA 2.0 są oparte na protokole TCP/IP.

CORBA dostarcza ram komunikacyjnych za pośrednictwem tzw. brokera obiektowego (Object Request Broker - ORB), opartego na założeniu, że standardowe obiekty komunikują się z innymi za pośrednictwem prawidłowo zdefiniowanego interfejsu. Podobnie jak obiekty w C++ czy Smalltalku, ORB wywołuje metody innych obiektów oraz przesyła im i otrzymuje od nich dane.

Koncepcja ORB pochodzi z wczesnych lat rozwoju techniki obiektowej, gdy pojawiła się potrzeba łączenia w jednej aplikacji obiektów opracowanych za pomocą różnych narzędzi. Obiekty są zależne od narzędzia, za pomocą którego je opracowano (C++, PowerBuilder, Smalltalk), toteż zwykle nie współpracują dobrze z sobą. Programiści potrzebowali więc jednolitego interfejsu binarnego, zapewniającego prawidłową współpracę.

Współpracę obiektów za pomocą ORB zapewniają dwa mechanizmy: statyczne definiowanie interfejsu do metod zawartych w obiekcie (określenie granic obiektu) przy użyciu języka Interface Definition Language (IDL) lub dynamicznego wywołania metody Dynamic Invocation Interface (DII).

Definiowanie statyczne za pomocą IDL oznacza, że już w momencie pisania programu wiadomo, iż dany obiekt będzie dostępny i znany jest jego dokładny interfejs programistyczny. Pozwala to na sprawdzenie zgodności typów danych w momencie kompilacji. Wywołanie dynamiczne za pomocą DII pozwala na uruchamianie obiektów w miarę potrzeby, wywoływanie ich metody oraz podejmowanie decyzji w podczas pracy programu. Jest bardziej elastyczne, ale mniej bezpieczne.

Budowa ORB

CORBA ORB (to jest ORB zgodny ze specyfikacją CORBA; mogą istnieć także inne ORB-y) zawiera cztery główne elementy: ORB, zestaw usług obiektowych, wspólne właściwości oraz obiekty aplikacyjne.

ORB właściwy to motor komunikacji między różnymi obiektami w sieci

korzystający z dobrze zdefiniowanego interfejsu i przyjętego protokołu

komunikacyjnego.

Usługi obiektowe to zbiór podstawowych usług systemowych, w postaci obiektów dostępnych za pomocą interfejsu IDL. Umożliwiają one budowę nowych obiektów, włączanie ich do systemu, znajdowanie obiektów dostępnych w sieci itp. OMG zdefiniowało kilkanaście podstawowych usług obiektowych związanych z cyklem życia obiektu, trwałym pamiętaniem obiektu, bezpieczeństwem, jednolitym nazewnictwem obiektów w systemie, obsługą zdarzeń i transakcji, synchronizacją czasu (ważna przy obsłudze transakcji) i in.

Wspólne właściwości CORBA ORB to wyższy poziom obiektów

używanych bezpośrednio przez aplikacje, służących np. do zdefiniowania interfejsu użytkowego aplikacji lub kompletnej formy dokumentu.

Obiekty aplikacyjne (ramy aplikacji) mają postać większych elementów

składowych aplikacji (arkusz obliczeniowy, moduł grafiki użytkowej czy moduł księgowy). OMG nie ingeruje w tę część specyfikacji uznając, że potrzeby aplikacji zdefiniują wspólne ramy.

Protokół komunikacyjny

Od niedawna OMG zdecydowało, że komunikację między rozproszonymi obiektami zapewni General Inter-ORB Protocol (GIOP), oparty początkowo na wykorzystaniu mechanizmów zdalnego wywołania procedur (RPC). Obecnie korzysta się z szybszego mechanizmu gniazdek (sockets). W przemyśle istnieje szerokie wsparcie dla tego protokołu, zwłaszcza w wersji okrojonej, przeznaczonej do komunikacji między obiektami w Internecie - Internet Inter-ORB Protocol (IIOP). Najwięksi dostawcy produktów dla Internetu (Netscape i Sun) oraz dostawcy baz danych do zastosowań internetowych (Oracle) wspierają ten protokół.


TOP 200