ZAWWW-2st1.2-w03.tresc-1.0-Slajd7
Architektura CORBA
Slajd przedstawia schemat architektury CORBA. Klient wykorzystuje kompilator IDL, który na podstawie definicji interfejsu generuje kod pieńka (ang. stub). Pieniek jest obiektem automatycznie generowanym po stronie klienta i odpowiedzialnym za uszykowanie (ang. marshal) zlecenia. Szeregowanie zlecenia polega na zamianę wywołania metody lokalnej, którego użył klient, na postać dogodną do transmisji sieciowej i wywołanie metody na właściwym obiekcie zdalnym. Po stronie serwera znajduje się automatycznie wygenerowany szkielet (ang. skeleton), który przeprowadza operację odwrotną do pieńka. Szkielet transformuje żądanie klienta (ang. unmarshal) do postaci zrozumiałej dla obiektu i wykonuje żądaną operację. Wynik operacji, wraz z wartościami parametrów wyjściowych, jest przesyłany z powrotem do klienta. Zarówno pieniek, jak i szkielet, są automatycznie generowane przez kompilator IDL na podstawie plików IDL zawierających niezależny od języka implementacji opis usługi. Komunikacja między klientem i obiektem odbywa się poprzez brokera obiektów. Interfejs dostępu do warstwy ORB jest standardowy dla wszystkich implementacji architektury CORBA. Po stronie serwera występuje także adapter obiektów (ang. Object Adapter). Jest to obiekt odpowiedzialny przede wszystkim za adaptowanie interfejsu obiektu świadczącego usługę (ang. servant) do interfejsu klienta składającego żądanie.
Większość wywołań metod w architekturze CORBA ma charakter statyczny. Kompilator IDL generuje kod pieńka i szkieletu na podstawie statycznej, znanej w momencie kompilacji specyfikacji. Czasem jednak zachodzi konieczność wywołania dynamicznego metody. CORBA oferuje taką możliwość za pomocą mechanizmu dynamicznej inwokacji interfejsu (po stronie klienta) i dynamicznego budowania szkieletu interfejsu (po stronie serwera). W przypadku stosowania tej metody zamiast statycznych pieńków i szkieletów klient komunikujący się z obiektem zdalnym wykorzystuje fragmenty dynamicznie wygenerowanego kodu, które funkcjonują tak samo jak pieńki.