Különbség RPC és RMI között | RPC vs RMI

Anonim

RPC vs RMI

az RPC és az RMI közötti különbség az, hogy az RPC egy olyan mechanizmus, amely lehetővé teszi egy eljárás meghívását egy távoli számítógépen, miközben az RMI az RPC végrehajtását a Java-ban. Az RPC nyelv semleges, de csak támogatja a primitív adattípusokat. Másrészt az RMI Java-re korlátozódik, de lehetővé teszi az objektumok átadását. Az RPC a hagyományos eljárási nyelvi konstrukciókat követi, míg az RMI támogatja az objektumorientált tervezést.

Mi az RPC?

Az RPC, amely a távoli eljáráshívást jelenti, egyfajta folyamatközi kommunikáció. Ez lehetővé teszi egy funkció hívását egy másik, a helyi számítógépen vagy távoli számítógépen futó folyamat során. Ez a koncepció már régen 1980-ban jelent meg, de az első híres implementáció a Unix-ban jelent meg.

Az RPC számos lépést tartalmaz. Az ügyfél a szokásos módon kezdeményezi a helyi számítógépen történő hívást. A kliens klippnek nevezett modul összegyűjti az argumentumokat, létrehoz egy üzenetet és átadja az operációs rendszert, az operációs rendszer rendszerhívást indít, és ezt az üzenetet elküldi a távoli számítógépnek. Az operációs rendszer a kiszolgálóban összegyűjti az üzenetet, és átmegy a kiszolgálón lévő kiszolgáló modulra. Ezután a szerver felhúzza az eljárást a kiszolgálón. Végül az eredményeket visszaadják az ügyfélnek.

Az RPC használatának előnye, hogy független a hálózati részletekben. A programozónak csak absztrakt módon kell meghatároznia, míg az operációs rendszer gondoskodik a belső hálózati részletekről. Tehát ez megkönnyíti a programozást, és lehetővé teszi az RPC működését minden hálózaton a fizikai és protokollbeli különbségek ellenére. Az RPC-implementációk mindegyik mainstream operációs rendszerben megtalálhatók, például a Unix, a Linux, a Windows és az OS X. Az RPC általában nyelvi semleges, így az adattípusokat a legprimitívebbekre korlátozza, hiszen minden nyelven meg kell egyeznie. Az RPC-ben alkalmazott megközelítés nem objektum orientált, hanem egy hagyományos eljárási mechanizmus, mint a C.

Mi az RMI?

Az RMI, ami a Remote Method Invocation kifejezésre vonatkozik, egy API (Application Programming Interface), amely RPC-t valósít meg Java-ban az objektumorientált természet támogatására. Ez lehetővé teszi a Java-eljárások hívását egy másik Java virtuális gépen, amely ugyanazon a számítógépen vagy egy távoli gépen található. Az RMI korlátozása az, hogy csak Java-módszereket lehet meghívni, de ez azzal az előnnyel jár, hogy az objektumok argumentumként és visszatérési értékként adhatók át. Ha a teljesítményt úgy tekintik, hogy az RMI lassabb, mint az RPC, a bytecode bevonása a Java virtuális gépen, de az RMI nagyon programozóbarát, és nagyon könnyű használni.

Az RMI beépített biztonsági mechanizmusokat használ Java-ban és egy socket gyárat is ad, amely lehetővé teszi a nem TCP-szabványú egyedi szállítási réteg protokollok használatát. Ráadásul az RMI a tűzfalak megkerülésének módszereit is biztosítja. Az RMI-ben végrehajtott lépések hasonlóak az RPC-hez. Az RMI végrehajtása a belső hálózaton figyel, ahol a programozónak nem kell aggódnia róluk.

Mi a különbség RPC és RMI között?

• Az RPC nyelvi semleges, míg az RMI Java-re korlátozódik.

• Az RPC procedúrájú, mint a C, de az RMI objektum orientált.

• Az RPC csak primitív adattípusokat támogat, míg az RMI lehetővé teszi objektumok átadását argumentumként és visszatérési értékként. RPC használata esetén a programozónak minden összetett objektumot primitív adattípusokra kell bontania.

• Az RMI könnyen programozható az RPC-hez.

• Az RMI lassabb, mint az RPC, mivel az RMI a java bytecode végrehajtását foglalja magában.

• Az RMI lehetővé teszi a tervezési minták használatát az objektum orientáltság miatt, míg az RPC nem rendelkezik ezzel a képességgel.

Összefoglaló:

RPC vs RMI

RPC egy olyan nyelv semleges mechanizmus, amely lehetővé teszi egy eljárás meghívását egy távoli számítógépen. Azonban a nyelv semleges szolgáltatás korlátozza az argumentumként átadott adattípusokat és a visszatérési értékeket primitív típusokra. Az RMI az RPC-t Java-ban valósítja meg, és támogatja az objektum átadását is, ami megkönnyíti a programozó életét. Az RMI előnye az objektum orientált tervezési támogatás, de a Java-ra való korlátozás hátrány.

Képek jóvoltából:

  1. A szinkron és aszinkron RPC a CAPS vállalatnál (CC BY-SA 3. 0)