Разлика между 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 е бъдещето