RPC i RMI

Anonim

RPC vs RMI

RPC (Remote Procedure Call) i RMI (Remote Method Invocation) to dwa mechanizmy, które pozwalają użytkownikowi wywoływać lub wywoływać procesy, które będą działać na innym komputerze niż ten, z którego korzysta użytkownik. Główną różnicą między nimi jest zastosowane podejście lub paradygmat. RMI używa paradygmatu zorientowanego obiektowo, w którym użytkownik musi znać obiekt i metodę obiektu, który musi wywołać. Dla porównania, RPC nie jest zorientowany obiektowo i nie zajmuje się obiektami. Raczej nazywa konkretne podprogramy, które już zostały ustanowione.

RPC jest stosunkowo starym protokołem opartym na języku C, który dziedziczy jego paradygmat. Z RPC otrzymujesz wywołanie procedury przypominające połączenie lokalne. Usługa RPC obsługuje złożoność związaną z przekazywaniem połączenia z komputera lokalnego na zdalny. RMI robi to samo; obsługa złożoności przekazywania wzdłuż wywołania z lokalnego do zdalnego komputera. Ale zamiast przekazania wywołania proceduralnego, RMI przekazuje odwołanie do obiektu i metody, która jest wywoływana. RMI został opracowany przez Javę i korzysta z jego maszyny wirtualnej. Jego użycie jest zatem możliwe wyłącznie w przypadku aplikacji Java do wywoływania metod na zdalnych komputerach.

Ostatecznie, RPC i RMI to tylko dwa sposoby osiągnięcia tego samego dokładnie. Wszystko sprowadza się do tego, jakiego języka używasz i do jakiego paradygmatu przywykłeś. Korzystanie z zorientowanego obiektowo interfejsu RMI jest lepszym rozwiązaniem pomiędzy tymi dwoma, zwłaszcza w przypadku większych programów, ponieważ zapewnia czystszy kod, który łatwiej jest wyśledzić, gdy coś pójdzie nie tak. Korzystanie z RPC jest nadal szeroko akceptowane, zwłaszcza gdy żaden z alternatywnych zdalnych protokołów proceduralnych nie wchodzi w grę.

Streszczenie:

1.RMI jest zorientowany obiektowo, podczas gdy RPC nie jest 2.RPC to baza C, podczas gdy RMI to tylko Java 3.RMI wywołuje metody, podczas gdy RPC wywołuje funkcje 4.RPC jest przestarzałe, a RMI to przyszłość