RPC срещу RMI
Основната разлика между RPC и RMI е, че RPC е механизъм, който позволява извикване на процедура на отдалечен компютър, докато RMI е изпълнението на RPC в java. RPC е неутрален за езика, но поддържа само примитивни типове данни, които трябва да бъдат предадени. От друга страна, RMI е ограничен до Java, но позволява преминаване на обекти. RPC следва традиционните процедурни езикови конструкции, докато RMI поддържа обектно-ориентиран дизайн.
Какво е RPC?
RPC, което е съкращение от Remote Procedure Call, е вид комуникация между процесите. Това позволява извикване на функция в друг процес, работещ на локален компютър или отдалечен компютър. Тази концепция се появи отдавна през 1980 г., но първата известна реализация беше забелязана в Unix.
RPC включва няколко стъпки. Клиентът извиква процедура на локалния компютър, както обикновено. Модулът, наречен client stub, събира аргументите и създава съобщение и предава на операционната система, операционната система извършва системно обаждане и изпраща това съобщение на отдалечения компютър. Операционната система в сървъра събира съобщението и преминава към модула на сървъра, наречен сървърно заглушаване. Тогава сървърният заглушител извиква процедурата на сървъра. Накрая резултатите се изпращат обратно на клиента.
Предимството на използването на RPC е, че той е независим от мрежовите детайли. Програмистът просто трябва да посочи абстрактно, докато операционната система ще се грижи за вътрешните детайли на мрежата. Така че това улеснява програмирането и позволява RPC да работи във всяка мрежа въпреки физическите и протоколни разлики. RPC внедряванията присъстват във всички масови операционни системи като Unix, Linux, Windows и OS X. RPC обикновено е езиково неутрален, поради което ограничава типовете данни до най-примитивните, тъй като те трябва да са общи за всички езици. Подходът в RPC не е обектно ориентиран, но е традиционен процедурен механизъм като в C.
Какво е RMI?
RMI, което е съкращение от Remote Method Invocation, е API (Application Programming Interface), който реализира RPC в Java, за да поддържа обектно ориентирана природа. Това позволява извикване на Java методи на друга Java виртуална машина, пребиваваща на същия компютър или отдалечена. Ограничението на RMI е, че само Java методите могат да бъдат извикани, но това идва с предимството, че обектите могат да се предават като аргументи и връщани стойности. Когато се счита, че производителността е по-бавна от RPC, поради участието на байт код на виртуалната машина Java, но RMI е много удобен за програмисти и е много лесен за използване.
RMI използва вградени механизми за сигурност в Java и също така дава фабрика за сокети, която позволява използването на не-TCP протоколи от персонализиран транспортен слой. Освен това RMI предоставя методи за заобикаляне на защитни стени. Стъпките, които се случват в RMI, са подобни на RPC. Внедряването на RMI се грижи за вътрешните подробности за мрежата, където програмистът не трябва да се притеснява за тях.
Каква е разликата между RPC и RMI?
• RPC е езиково неутрален, докато RMI е ограничен до Java.
• RPC е процедурен като в C, но RMI е обектно ориентиран.
• RPC поддържа само примитивни типове данни, докато RMI позволява обектите да се предават като аргументи и връщани стойности. Когато използва RPC, програмистът трябва да раздели всички съставни обекти на примитивни типове данни.
• RMI е лесен за програмиране, че RPC.
• RMI е по-бавен от RPC, тъй като RMI включва изпълнение на java байт код.
• RMI позволява използването на дизайнерски модели поради обектно ориентирания характер, докато RPC няма тази възможност.
Резюме:
RPC срещу RMI
RPC е езиково неутрален механизъм, който позволява извикване на процедура на отдалечен компютър. Въпреки това, езиково неутралната функция ограничава типовете данни, които се предават като аргументи и връщат стойности към примитивни типове. RMI е внедряването на RPC в Java и поддържа предаване на обекти, което прави живота на програмиста по-лесен. Предимството на RMI е обектно-ориентираната поддръжка на дизайна, но ограничението до Java е недостатък.
Снимките са предоставени: