Основна разлика између РПЦ-а и РМИ-а је та што је РПЦ механизам који омогућава позивање процедуре на удаљеном рачунару док је РМИ имплементација РПЦ-а у јави. РПЦ је неутралан за језик, али подржава само примитивне типове података које треба пренијети. С друге стране, РМИ је ограничен на Јаву, али допушта пролазак објеката. РПЦ следи традиционалне конструктивне језичке конструкције док РМИ подржава објектно оријентисан дизајн.
РПЦ, што је кратица за даљински поступак, врста је међупроцесне комуникације. Ово омогућава позивање функције у другом процесу који ради на локалном или удаљеном рачунару. Овај концепт се појавио давно 1980. године, али прва позната примена виђена је у Унику.
РПЦ укључује неколико корака. Клијент обавља поступак позива на локалном рачунару као и обично. Модул који се зове клиент клијента сакупља аргументе и креира поруку и прослеђује оперативном систему, а оперативни систем позива систем и шаље ту поруку удаљеном рачунару. Оперативни систем на серверу сакупља поруку и прелази у модул на серверу који се зове стуб сервера. Затим штитник сервера позива процедуру на серверу. Коначно, резултати се враћају клијенту.
Предност употребе РПЦ-а је та што је независан од детаља о мрежи. Програмер једноставно мора навести апстрактно, док ће се оперативни систем побринути за детаље о интерној мрежи. То олакшава програмирање и омогућава РПЦ-у да ради на било којој мрежи упркос физичким и протоколарним разликама. Имплементације РПЦ-а присутне су у свим маинстреам оперативним системима као што су Уник, Линук, Виндовс и ОС Кс. РПЦ је генерално неутралан према језику, па ограничава врсте података на најпримитивније јер морају бити заједнички свим језицима. Приступ у РПЦ-у није објектно оријентисан, али то је традиционални процедурални механизам као на Ц.
РМИ, што је кратица за удаљени позив, је АПИ (апликацијски програмски интерфејс) који имплементира РПЦ у јави да подржи објектно оријентисану природу. Ово омогућава позивање Јава метода на другој Јава виртуелној машини која се налази на истом рачунару или удаљеном уређају. Ограничење РМИ-а је што се могу позивати само Јава методе, али то долази уз предност што се објекти могу пренијети као аргументи и вратити вредности. Када се сматра да је перформанса РМИ спорији од РПЦ-а због укључивања бајт-кода на Јава Виртуалном строју, али РМИ је веома прилагођен програмерима и веома је једноставан за употребу.
РМИ користи уграђене сигурносне механизме на Јави и такође даје фабрику утичница која омогућава употребу не-ТЦП протокола прилагођеног транспортног слоја. Штавише, РМИ пружа методе за заобилажење фиревалл-а. Кораци који се појављују у РМИ-у су слични РПЦ-у. Примена РМИ води рачуна о детаљима интерне мреже у којима програмер не мора да се брине о њима.
• РПЦ је неутралан за језик док је РМИ ограничен на Јаву.
• РПЦ је процедурални као у Ц, али РМИ је објектно оријентисан.
• РПЦ подржава само примитивне типове података док РМИ дозвољава да се објекти преносе као аргументи и враћају вредности. Када користи РПЦ, програмер мора поделити све сложене објекте на примитивне типове података.
• РМИ је једноставно програмирати тај РПЦ.
• РМИ је спорији од РПЦ-а, јер РМИ укључује извршење јава битецоде-а.
• РМИ омогућава употребу образаца дизајна због објектно оријентисане природе док РПЦ нема ту могућност.
Резиме:
РПЦ је језички неутралан механизам који омогућава позивање процедуре на удаљени рачунар. Међутим, језично неутрална карактеристика ограничава типове података који се просљеђују као аргументе и враћају вриједности на примитивне типове. РМИ је имплементација РПЦ-а на Јави и подржава и пролазак предмета, што олакшава живот програмеру. Предност РМИ-а је објектно оријентисана подршка дизајна, али ограничење Јава је недостатак.
Љубазношћу слика: