Разлика между RPC и RMI

RPC срещу RMI

RPC (Remote Procedure Call) и RMI (Remote Method Invocation) са два механизма, които позволяват на потребителя да извика илиобадете сепроцеси, които щебягайна различенкомпютърот този, който потребителят използва. Основната разлика между двете е използваният подход или парадигма. RMI използва обектно ориентирана парадигма, където потребителят трябва да познава обекта и метода на обекта, който трябва да извика. За сравнение, RPC не е обектно ориентиран и не се занимава с обекти. По-скоро той нарича специфични подпрограми, които вече са установени.



RPC е относително старпротоколкойто се основава на езика C,като по този начин наследи своята парадигма. С RPC виевземетепроцедурно повикване, което почти прилича на местно обаждане. RPC се справя със сложността, свързана с предаването на обаждането от локалния към отдалечения компютър. RMI прави същото нещо; справяне със сложностите при преминаване по призоваването от локалния към отдалечения компютър. Но вместо да предаде процедурно повикване, RMI препраща препратка към обекта и метода, който се извиква. RMI е разработен отJavaи използва своята виртуална машина. Следователно използването му е изключително за Java приложения за извикване на методи на отдалечени компютри.

В крайна сметка RPC и RMI са само две средства за постигане на едно и също нещо. Всичко се свежда до това какъв език използвате и коя парадигма сте свикнали. Използването на обектно ориентиран RMI е по-добрият подход между двете, особено при по-големите програми, тъй като осигурява по-чистокодтова е по-лесно да се проследи, след като нещо се обърка. Използването на RPC все още е широко прието, особено когато някой оталтернативаотдалечените процедурни протоколи не са опция.

Резюме:

1. RMI е обектно ориентиран, докато RPC не е
2. RPC е C бази, докато RMI е само Java
3. RMI извиква методи, докато RPC извиква функции
4. RPC е остарял, докато RMI е бъдещето