Ajánlott, 2024

Szerkesztő Választása

Az RPC és az RMI közötti különbség

Az RPC és az RMI azok a mechanizmusok, amelyek lehetővé teszik az ügyfél számára, hogy az eljárást vagy a módszert a kiszolgálóról az ügyfél és a kiszolgáló közötti kommunikáció létrehozásával hozza létre. Az RPC és az RMI közötti általános különbség az, hogy az RPC csak az eljárási programozást támogatja, míg az RMI támogatja az objektum-orientált programozást .

A két másik fontos különbség az, hogy a távoli eljárások hívására átadott paraméterek szokásos adatstruktúrákból állnak. Másrészt a távoli módszerre átadott paraméterek objektumokból állnak.

Összehasonlító táblázat

Az összehasonlítás alapjaRPCRMI
támaszokEljárási programozás
Objektumorientált programozás
paraméterekA szokásos adatstruktúrák távoli eljárásokhoz kerülnek átadásra.Az objektumok távoli módszerekre kerülnek átadásra.
HatékonyságAlacsonyabb, mint az RMITöbb, mint az RPC és a modern programozási megközelítés (azaz az objektum-orientált paradigmák) támogatása
Általános költségekTöbb
Kevésbé viszonylag
A kimeneti paraméterek kötelezőek.IgenNem feltétlenül
Könnyű programozás
Magas
alacsony

Az RPC meghatározása

A távoli eljáráshívás (RPC) egy olyan programozási nyelv, amely az elosztott számítástechnikára és a helyi eljáráshívások szemantikájára épül. Ez a távoli szolgáltatás leggyakoribb formája, és úgy lett kialakítva, hogy elvonja a hálózaton keresztül összekapcsolt rendszerek közötti eljáráshívási mechanizmust. Hasonló az IPC-mechanizmushoz, ahol az operációs rendszer lehetővé teszi a folyamatok számára a megosztott adatok kezelését és olyan környezetek kezelését, ahol a különböző folyamatok külön rendszereken futnak, és szükségszerűen üzenetalapú kommunikációt igényelnek.

Tegyük fel, hogy az RPC-t hogyan hajtják végre az adott lépésekben:

  • Az ügyfélprocesszor az ügyfél stubját paraméterekkel hívja, és végrehajtását a hívás befejezéséig felfüggesztik.
  • Ezután a paramétereket gépi független formába fordítják az ügyfél stub-ján keresztül rendezve. Ezután elkészül az üzenet, amely tartalmazza a paraméterek ábrázolását.
  • A webhely azonosságának megkeresése a kliens által összekapcsolt névkiszolgálóval, amelyen a távoli eljárás létezik.
  • A blokkolási protokoll használatával az ügyfél stub elküldi az üzenetet arra a helyre, ahol a távoli eljáráshívás létezik. Ez a lépés megállítja az ügyfélcsonkot, amíg nem kap választ.
  • A kiszolgáló oldal megkapja az ügyféloldalról küldött üzenetet, és konvertálja azt gépspecifikus formátumra.
  • Most a szerver stub végrehajtja a hívást a kiszolgálói eljáráson a paraméterekkel együtt, és a kiszolgáló stubját megszakítjuk, amíg az eljárás befejeződik.
  • A szerver eljárás visszaadja a generált eredményeket a szerver stub-ra, és az eredmények konvertálóvá válnak a szerver stubban, és létrehozzák az eredményeket tartalmazó üzenetet.
  • Az eredményüzenetet elküldjük a kliens csonknak, amely az ügyfélcsonknak megfelelő gépi formátumra alakul át.
  • Végül az ügyfél, a stub visszaadja az eredményeket az ügyfél folyamatának.

Az RMI meghatározása

A Remote Method Invocation (RMI) hasonló az RPC-hez, de a nyelvi és a java jellemzője. A szál engedélyezett a módszer távoli objektumon való hívása. Az ügyfél és a kiszolgáló oldalának átláthatóságának fenntartása érdekében távoli objektumot hajt végre a csonkokkal és a csontvázakkal. A csonk az ügyfélhez tartozik, és a távoli objektumhoz proxyként viselkedik.

Amikor egy kliens távoli eljárást hív, a távoli módszer csonkját hívják. A kliens csonkja felelős a csomag nevének létrehozásáról és küldéséről, amely tartalmazza a módszer nevét és a rendezett paramétereket, és a csontváz felelős a csomag fogadásáért.

A csontváz nem ismeri fel a paramétereket, és meghívja a kívánt módszert a kiszolgálón. A csontváz a megadott értéket (vagy kivételeket) a csomaggal rendezi, és elküldi az ügyfélcsonknak. A csonk újra összeállítja a visszatérő csomagot és elküldi azt az ügyfélnek.

Java-ban a paraméterek átadódnak a módszereknek, és visszatérési formában kerülnek visszaadásra. Ez problémát jelenthet az RMI szolgáltatás számára, mivel nem minden objektum lehet távoli módszer. Tehát meg kell határoznia, hogy melyik referenciaként adható meg, és amely nem.

A Java a sorosításnak nevezett folyamatot használja, ahol az objektumok értékként kerülnek átadásra. A távoli objektum az érték szerinti érték alapján kerül lokalizálásra. Az objektumot referencián keresztül is továbbíthatja egy távoli hivatkozás átadásával az objektumhoz, valamint a stub osztály URL-jével együtt. A referenciakeresés korlátozza a távoli objektum csonkját.

Az RPC és az RMI közötti különbségek

  1. Az RPC támogatja az eljárási programozási paradigmákat, így C alapú, míg az RMI támogatja az objektum-orientált programozási paradigmákat, és a java alapú.
  2. Az RPC-ben távoli eljárásokhoz továbbított paraméterek a szokásos adatstruktúrák. Éppen ellenkezőleg, az RMI átmásol egy objektumot mint paramétert a távoli módszerhez.
  3. Az RPC az RMI régebbi verziójának tekinthető, és az eljárási programokat támogató programozási nyelvekben használják, és csak az átviteli érték módszert használhatja. Ezzel szemben az RMI létesítményt a modern programozási megközelítés alapján alakították ki, amely értéket vagy referenciát használhat. Az RMI másik előnye, hogy a referencia által átadott paraméterek megváltoztathatók.
  4. Az RPC protokoll több általános költséget generál, mint az RMI.
  5. Az RPC-ben átadott paramétereknek „ in-out ” -nak kell lenniük , ami azt jelenti, hogy az eljáráshoz továbbított értéknek és a kimeneti értéknek azonos adattípusokkal kell rendelkeznie. Ezzel ellentétben nincs kényszer az „ in-out ” paraméterek átadására az RMI-ben.
  6. Az RPC-ben a hivatkozások nem valószínűek, mert a két folyamatnak külön címtartománya van, de lehetséges az RMI esetében.

Következtetés

Mind az RPC, mind az RMI ugyanazt a célt szolgálja, de a nyelvek különböző programozási paradigmákat támogatnak, ezért különböző jellemzőkkel rendelkeznek.

Top