Sr-12-wyk-1.0-Slajd25

Z Studia Informatyczne
Wersja z dnia 13:28, 28 sie 2006 autorstwa Bgrabiec (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Usługa przesyłania – model przywołania

Usługa przesyłania – model przywołania


W modelu przywołania klient dostarcza obiekt, który implementuje interfejs zawierający metody, które mogą być wywołane przez pośrednika ORB w celu przekazania klientowi wyników wcześniejszego wywołania.

Co ważne, asynchroniczne wywoływanie metod nie ma wpływu na oryginalną implementację obiektu. Od strony obiektu wywoływana operacja jest postrzegana tak, jak została zdefiniowana w interfejsie; może to być na przykład operacja synchroniczna. Innymi słowy, zmiana trybu wywołania z synchronicznego na asynchroniczny jest dokonywana wyłącznie po stronie klienta (może to jednak zostać w dużej mierze wykonane automatycznie na etapie kompilacji interfejsu IDL).

Na slajdzie pokazano przykład operacji, którą klient przekształca do postaci asynchronicznej. Synchroniczna metoda interfejsu add, obliczająca sumę zmiennych i oraz j i zapisująca wynik w wyjściowej zmiennej k , jest realizowana w postaci pary wywołań sendcb_add i replycb_add. Pierwsza z nich w sposób asynchroniczny wywołuje operację dodawania w obiekcie. Definicja wywołania nie zawiera zmiennej pamiętającej wynik, gdyż jest to wywołanie asynchroniczne - po wykonaniu go klient natychmiast kontynuuje swoje przetwarzanie, nie czekając na wynik. Odczytanie wyniku następuje poprzez wywołanie drugiej z asynchronicznych operacji, replycb_add. Jej pierwszy parametr, ret_val , pamięta wartość zwróconą przez zdalną operację, a wejściowa zmienna k zawiera sumę zmiennych i oraz j .


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