RPC vs RMI
RPC (zdalne wywołanie procedury) i RMI (zdalne wywołanie metody) to dwa mechanizmy, które pozwalają użytkownikowi wywoływać lub wywoływać procesy uruchomione 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 wykorzystuje paradygmat zorientowany obiektowo, w którym użytkownik musi znać obiekt i metodę obiektu, który musi wywołać. Dla porównania RPC nie jest zorientowane obiektowo i nie zajmuje się obiektami. Raczej wywołuje określone podprogramy, które zostały już ustanowione.
RPC jest stosunkowo starym protokołem opartym na języku C, dziedziczącym w ten sposób jego paradygmat. Dzięki RPC otrzymujesz wywołanie procedury, które wygląda prawie jak wywołanie lokalne. RPC radzi sobie ze złożonością związaną z przekazywaniem połączenia z komputera lokalnego na komputer zdalny. RMI robi to samo; radzenie sobie ze złożonością przekazywania wywołania z komputera lokalnego na komputer zdalny. Ale zamiast przekazać wywołanie proceduralne RMI przekazuje odwołanie do obiektu i wywoływanej metody. RMI został opracowany przez Javę i wykorzystuje swoją maszynę wirtualną. Dlatego jest on przeznaczony wyłącznie do aplikacji Java do wywoływania metod na komputerach zdalnych.
Ostatecznie RPC i RMI to tylko dwa sposoby na osiągnięcie tego samego dokładnego celu. Wszystko sprowadza się do tego, jakiego języka używasz i jakiego paradygmatu jesteś przyzwyczajony. Korzystanie z obiektowego interfejsu RMI jest lepszym podejściem między nimi, zwłaszcza w przypadku większych programów, ponieważ zapewnia bardziej przejrzysty kod, który łatwiej jest wyśledzić, gdy coś pójdzie nie tak. Korzystanie z RPC jest nadal powszechnie akceptowane, zwłaszcza gdy żaden z alternatywnych protokołów zdalnych procedur nie jest opcją.
Streszczenie:
1.RMI jest zorientowany obiektowo, podczas gdy RPC nie
2.RPC jest bazami C, podczas gdy RMI to tylko Java
3.RMI wywołuje metody, a RPC wywołuje funkcje
4. RPC jest przestarzałe, a RMI to przyszłość