Sr-12-wyk-1.0-Slajd17

From Studia Informatyczne

Typy wiadomości GIOP

Typy wiadomości GIOP


W tabeli ukazano osiem typów wiadomości zdefiniowanych w protokole GIOP.

Komunikat Zamówienie zawiera kompletne, przetworzone do postaci komunikatu wywołanie, obejmujące odniesienie obiektowe, nazwę uaktywnianej metody i wszystkie parametry wejściowe. Odniesienie obiektowe i nazwa metody są częścią nagłówka. Każdy komunikat Zamówienie ma także własny identyfikator zamówienia, który później jest używany do dopasowania do właściwej odpowiedzi.

Komunikat Odpowiedź zawiera przetworzone do postaci komunikatu parametry wyjściowe skojarzone z poprzednio wywołaną metodą. Metody obiektu nie trzeba jawnie określać – wystarczy zwrócenie tego samego identyfikatora zamówienia co użyty w odpowiednim komunikacie Zamówienie .

W przypadku poszukiwania implementacji obiektu klient wysyła do magazynu implementacji komunikat ZamówienieLokalizacji (ang. LocateRequest ). Magazyn implementacji odpowie komunikatem Odp_z_lokalizacją (ang. LocateReply ), który zazwyczaj wskaże na właściwy serwer obiektu, zawierającego obiekt.

Klient, który chce skasować poprzednio wysłany komunikat, gdyż nie może dłużej oczekiwać na odpowiedź serwera, może wysłać do serwera komunikat ZamówienieKasowania (ang. CancelRequest ). Przyczyny kasowania przez klienta odpowiedzi na zamówienie mogą być różne, lecz na ogół są powodowane upływem czasu w aplikacji klienta. Należy zauważyć, że ze skasowania zamówienia nie wynika, że nie zostanie ono wykonane. Z tym problemem musi sobie poradzić aplikacja klienta.

Zarówno klient, jak i serwer mogą zamknąć połączenie – odbywa się to poprzez wysłanie komunikatu ZamknijPołączenie (ang. CloseConnection ).

Do powiadomienia drugiej strony o wystąpieniu błędu służy komunikat typu BłądKomunikatu (ang. MessageError ). Ma on charakter wyłącznie kontrolny i przypomina komunikat protokołu ICMP w protokołach internetowych.

Protokół GIOP umożliwia też dzielenie na części poszczególnych komunikatów zamówień i odpowiedzi. W ten sposób łatwo możemy realizować wywołania wymagające wysłania dużej ilości danych między klientem a serwerem. Części są specjalnymi komunikatami Fragment , w których jest identyfikowany komunikat oryginalny i jest możliwe ponowne jego zestawienie u odbiorcy.


<< Poprzedni slajd | Spis treści | Następny slajd >>