DSRG | Interests | Projects | Publications | Laboratories | Local info | People 
Distributed Systems Research Group

Zdalne wywołanie procedury (RPC)

Celem laboratorium jest teoretyczne i praktyczne zapoznanie ze standardem zdalnego wywołania procedury - Sun RPC. Mechanizm ten rozwiązuje część problemów komunikacyjnych (np. przekazywanie argumentów), z którymi programista boryka się używając do komunikacji pomiędzy systemami gniazd.

Ćwiczenia przeprowadzone będą w środowisku UNIX z implementacją standardu RPC firmy Sun. Laboratorium zakłada podstawową znajomość standardu RPC oraz implementacji Sun RPC.

Materiały do ćwiczenia:

Zadanie domowe:

Zadanie: 1

Należy napisać system powiadamiania (podobny do zadania 2 z gniazd) przy
użyciu mechanizmu SunRPC. Nadawcy zgłaszają do serwisu EventService wiadomości z
określonymi tematami i treścią. Zadaniem serwera jest powiadomienie wszystkich
zainteresowanych danym tematem odbiorców. Najwyżej punktowane rozwiązania
powinny realizować powiadamianie w sposób asynchroniczny. Można w tym celu rozważyć
wykorzystanie dodatkowych wątków czy procesów. Najlepiej jednak wykorzystać własności mechanizmu SunRPC
(www.e-technik.fh-kiel.de/~felten/van/rpc.txt).

Realizacja zadania powinna obejmować:
* określenie struktury wiadomości oraz opracowanie odpowiednich interfejsów w języku RPCGEN,
* implementacje nadawcy, serwisu EventService oraz odbiorcy wiadomości,
* udokumentowanie kodu źródłowego.

Zagadnienia do kolokwium:

  • Idea i cele mechanizmu RPC
  • Wywołanie zdalne i lokalne procedury – porównanie, problemy
  • Przekazywanie parametrów, marshalling/unmashalling
  • Stub klienta i serwera – cele i funkcjonowanie
  • Kroki realizacji zdalnego wywołania procedury
  • Problematyka awarii, semantyki awarii
  • Standard RPC rfc1831 – znajomość ogólna
  • Standard XDR rfc1832 – znajomość ogólna
  • Typy danych zdefiniowane w XDR i ich mapowanie na typy języka C
  • Podstawowe funkcje pakietu SUN-RPC (clnt_create, clnt_control, clnt_destroy)
  • Podstawowe programy pakietu SUN-RPC (rpcbind, rpcinfo, rpcgen) – przeznaczenie, działanie (ogólnie)
  • Identyfikowanie, rejestrowanie i wyszukiwanie procedur, Port Mapper
  • Definiowanie struktur danych oraz programów w XDR

| ćwiczenie poprzednie | powrót | ćwiczenie następne |

-->