Рецоммендед, 2020

Избор Уредника

Разлика између РПЦ и РМИ

РПЦ и РМИ су механизми који омогућавају клијенту да позове процедуру или методу са сервера кроз успостављање комуникације између клијента и сервера. Заједничка разлика између РПЦ и РМИ је у томе што РПЦ подржава само процедурално програмирање, док РМИ подржава објектно оријентисано програмирање .

Још једна велика разлика између ова два је да се параметри прослеђени позивима удаљених процедура састоје од обичних структура података . С друге стране, параметри који се преносе на удаљену методу састоје се од објеката .

Цомпарисон Цхарт

Основа за поређењеРПЦРМИ
ПодржаваПроцедурално програмирање
Објектно оријентисано програмирање
ПараметерсОбичне структуре података се прослеђују удаљеним процедурама.Објекти се прослеђују удаљеним методама.
ЕфикасностНиже од РМИВише од РПЦ-а и подржани сувременим програмским приступом (тј. Објектно-оријентисаним парадигмама)
ОверхеадсВише
Мање упоредно
Ин-оут параметри су обавезни.даНе нужно
Обезбеђивање једноставности програмирања
Високо
лов

Дефиниција РПЦ-а

Ремоте Процедуре Цалл (РПЦ) је функција програмског језика осмишљена за дистрибуирано рачунање и заснована на семантици позива локалних процедура . То је најчешћи облик удаљене услуге и дизајниран је као начин да се апстрахује механизам позива на процедуру за кориштење између система повезаних преко мреже. То је слично ИПЦ механизму гдје оперативни систем омогућава процесима да управљају заједничким подацима и баве се окружењем у којем се различити процеси извршавају на засебним системима и нужно захтијевају комуникацију засновану на порукама.

Да разумемо како се РПЦ имплементира кроз дате кораке:

  • Клијентски процес позива клијентски стуб са параметрима, а његово извршење се обуставља док се позив не доврши.
  • Параметри се затим преводе у машински независан облик марсхаллинг-ом преко клијентског стуб-а. Затим се припрема порука која садржи приказ параметара.
  • Да би пронашли идентитет сајта, клијентски стуб комуницира са сервером имена на којем постоји удаљена процедура.
  • Користећи блокирање протокола, клијентски блок шаље поруку на локацију на којој постоји удаљени позив. Овај корак зауставља клијента док не добије одговор.
  • Сите сервер прима поруку која је послата са стране клијента и претвара је у специфичан формат машине.
  • Сада сервер стуб извршава позив на серверској процедури заједно са параметрима, а серверски стуб се прекида док се процедура не доврши.
  • Процедура сервера враћа генерисане резултате на серверски стуб, а резултати се претварају у машински независан формат на серверском стубу и креирају поруку која садржи резултате.
  • Порука резултата се шаље клијентском стубу који се конвертује назад у специфичан формат машине који је погодан за клијентски стуб.
  • На последњем клијенту, стуб враћа резултате у процес клијента.

Дефиниција РМИ

Удаљено позивање методе (РМИ) слично је РПЦ-у, али је специфично за језик и карактеристика јаве. Нити је дозвољено да позове метод на удаљеном објекту. Да би се одржала транспарентност на страни клијента и сервера, она имплементира удаљени објекат користећи стуб и скелет. Стуб се налази на клијенту, а за удаљени објекат се понаша као проки.

Када клијент позове даљинску методу, позива се удаљени метод. Клијентски стуб је одговоран за креирање и слање пакета који садржи име методе и распоређене параметре, а костур је одговоран за пријем пакета.

Скелет уклања параметре и покреће жељени метод на серверу. Костур додељује дату вредност (или изузеће) са парцелом и шаље је клијенту. Стуб поново саставља повратну парцелу и шаље је клијенту.

У Јави, параметри се прослеђују методама и враћају се у облику референце. Ово може бити проблематично за РМИ услугу, јер нису сви објекти можда удаљене методе. Дакле, она мора одредити које би се могле прослиједити као референца, а које не могу.

Јава користи процес назван сериализатион где се објекти прослеђују као вредност. Удаљени објекат је локализован помоћу пасс би валуе. Такође може да проследи објекат референцом кроз пропуштање удаљене референце на објекат заједно са УРЛ-ом класе стуб. Пасс би референце ограничава стуб за удаљени објекат.

Кључне разлике између РПЦ и РМИ

  1. РПЦ подржава процедуралне парадигме програмирања тако да је базиран на Ц, док РМИ подржава парадигме објектно оријентисаног програмирања и базиран је на Јава.
  2. Параметри који се прослеђују удаљеним процедурама у РПЦ су обичне структуре података. Напротив, РМИ прелази објекте као параметар на удаљену методу.
  3. РПЦ се може сматрати старијом верзијом РМИ-а, и користи се у програмским језицима који подржавају процедурално програмирање, и може користити само пасс би валуе метод. Насупрот томе, РМИ објекат је осмишљен на основу савременог програмског приступа, који би могао користити пасс би валуе или референце. Још једна предност РМИ-а је да се параметри који се прослеђују референцом могу променити.
  4. РПЦ протокол генерише више трошкова него РМИ.
  5. Параметри који се прослеђују у РПЦ морају бити „ ин-оут “, што значи да вредност која је прослеђена процедури и излазној вредности морају имати исте типове података. Насупрот томе, не постоји обавеза преношења „ ин-оут “ параметара у РМИ.
  6. У РПЦ-у, референце не могу бити вјероватне јер два процеса имају различит адресни простор, али је могуће у случају РМИ-а.

Закључак

И РПЦ и РМИ служе истој сврси, али се користе у језицима који подржавају различите парадигме програмирања, стога имају различите карактеристике.

Top