Zdalne wywołanie procedury

Zdalne wywołanie procedury (ang. remote procedure call, RPC) – protokół zdalnego wywoływania procedur, stworzony przez firmę Sun i dość popularny w systemach z rodziny Unix, obsługiwany w bibliotekach języka Java. Współcześnie wypierany przez bardziej rozbudowane protokoły takie jak CORBA, XML-RPC, czy JSON-RPC. RPC zdefiniowany jest w RFC 1057[1] i używa do kodowania danych formatu XDR (eXternal Data Representation) zdefiniowanego w RFC 1832[2].

Protokoły tego typu (jak RPC, CORBA, DCOM czy XML-RPC) mają na celu ułatwienie komunikacji pomiędzy komputerami. Na typowy scenariusz użytkowania takiego protokołu składają się:

  1. Serwer (czyli program oferujący usługi, np. drukowania) przez cały czas nasłuchuje na wybranym porcie, czy ktoś się z nim nie łączy.
  2. Klient (czyli program, który potrzebuje jakiejś usługi od serwera na innym komputerze) nawiązuje z nim łączność poprzez sieć komputerową.
  3. Klient wysyła swoje dane we wcześniej ustalonym przez programistów klienta i serwera formacie.
  4. Serwer realizuje usługę i odsyła potwierdzenie lub kod błędu.

Wymienione protokoły same zapewniają cały powyższy mechanizm działania, ukrywając go przed klientem. Może on nawet „nie wiedzieć”, że łączy się z innym komputerem – z punktu widzenia programisty zdalne wywołanie procedury serwera wygląda jak wywołanie dowolnej innej procedury z programu klienta.

Przypisy