Sr-2-wyk-1.0-Slajd18
Organizacja zdalnego obiektu
Kluczową cechą obiektu jest jego budowa. Obiekt tworzą dane, nazywane stanem , oraz operacje, które manipulują tymi danymi, nazywane metodami . Dostęp do danych obiektu odbywa się wyłącznie za pośrednictwem metod. Zbiór metod obiektu udostępnionych na zewnątrz to tak zwany interfejs obiektu. Jeden obiekt może implementować kilka interfejsów, i na odwrót – jeden interfejs może być implementowany przez wiele obiektów. Podobnie jak w RPC, interfejs obiektu jest zazwyczaj definiowany w specjalnym języku deklaratywnym, IDL. Proces na maszynie serwera, który przechowuje dany obiekt, będziemy nazywać serwerem; pojęcia serwera i obiektu będziemy często używać zamiennie.
Rozgraniczenie pomiędzy interfejsami a obiektami je implementującymi ma w systemach rozproszonych kluczowe znaczenie. Możliwe jest bowiem umieszczenie interfejsu i obiektu na różnych maszynach . Taka organizacja jest powszechnie nazywana rozproszonym obiektem lub zdalnym obiektem . Należy zaznaczyć, że wbrew nazwie stan obiektu rozproszonego nie musi być rozproszony.
Kiedy klient dowiązuje się (ang. bind ) do obiektu, implementacja interfejsu obiektu po stronie klienta, nazywana pośrednikiem (ang. proxy ), jest ładowana do przestrzeni adresowej klienta. Pośrednik jest tym samym, co pieniek klienta w modelu RPC. Jedynym jego zadaniem jest przetwarzanie wywołań metod zdalnego obiektu do postaci komunikatu sieciowego oraz odtwarzanie wyników tych wywołań z odbieranych od serwera komunikatów.
Rzeczywisty obiekt znajduje się na maszynie serwera. Obiekt ten udostępnia taki sam interfejs, jak pośrednik klienta. Rolę pieńka serwera pełni tak zwany szkielet (ang. skeleton ), który przetwarza odbierane z sieci wiadomości na wywołania metod oraz wyniki tych wywołań na wiadomości sieciowe, odsyłane klientowi.
Kod pośrednika oraz szkieletu jest, podobnie jak w przypadku RPC, jest automatycznie generowany na podstawie definicji interfejsu obiektu.