Zdalne wywołanie procedury

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania

Remote Procedure Call (RPC - zdalne wywołanie procedury) to protokół zdalnego wywoływania procedur, stworzony przez firmę Sun i swego czasu dość popularny na Uniksach, 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. RPC używa do kodowania danych formatu XDR (eXternal Data Representation) zdefiniowanego w RFC 1832.

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 składają się:

  • 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.
  • Klient (czyli program który potrzebuje jakiejś usługi od serwera na innym komputerze) nawiązuje z nim łączność poprzez sieć komputerową.
  • Klient wysyła swoje dane we wcześniej ustalonym przez programistów klienta i serwera formacie.
  • Serwer realizuje usługę i odsyła potwierdzenie lub kod błędu.

Powyższe protokoły same zapewniają cały powyższy mechanizm, 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.