
En annan stor skillnad mellan de två är att parametrarna passerade till fjärrproceduranrop består av vanliga datastrukturer . Å andra sidan består parametrarna som passeras till avlägsen metod av föremål .
Jämförelsediagram
Grunder för jämförelse | RPC | RMI |
---|---|---|
stöder | Procedurell programmering | Objektorienterad programmering |
parametrar | Vanliga datastrukturer överförs till fjärrprocedurer. | Objekt skickas till avlägsna metoder. |
Effektivitet | Lägre än RMI | Mer än RPC och stödd av moderna programmeringsmetoder (dvs Objektorienterade paradigmer) |
Allmänna omkostnader | Mer | Mindre jämförelsevis |
In-out parametrar är obligatoriska. | Ja | Inte nödvändigtvis |
Tillhandahållande av enkel programmering | Hög | låg |
Definition av RPC
Remote Procedure Call (RPC) är en programmeringsspråkfunktion konstruerad för distribuerad databehandling och baserad på semantik för lokala procedurer . Det är de vanligaste formerna för fjärrservice och utformades som ett sätt att abstrahera proceduren för samtalsmetod för att använda mellan system som är anslutna via ett nätverk. Det liknar IPC-mekanismen där operativsystemet tillåter processerna att hantera delad data och hantera en miljö där olika processer exekveras på separata system och nödvändigtvis kräver meddelandebaserad kommunikation.
Låt oss förstå hur RPC implementeras genom de angivna stegen:
- Klientprocessen kallar klientstubben med parametrar, och dess körning avbryts tills samtalet är klart.
- Parametrarna översätts därefter till maskinoberoende form genom marshallering genom klientstubben. Därefter förbereds meddelandet som innehåller parameterns representation.
- För att hitta webbplatsens identitet kommunicerar klientstubben med namnservern vid vilken fjärrprocedur som finns.
- Med hjälp av blockeringsprotokoll skickar klientstubben meddelandet till den plats där fjärrproceduranrop existerar. Detta steg stoppar klientstubben tills det får ett svar.
- På serverns webbplats mottas meddelandet som skickas från klientsidan och omvandlar det till maskinspecifik format.
- Nu server stub kör ett samtal på serverproceduren tillsammans med parametrarna och serverns stubben avbryts tills proceduren blir klar.
- Serverproceduren returnerar de genererade resultaten till serverns stub, och resultaten omvandlas till maskinoberoende format vid serverstubben och skapar ett meddelande som innehåller resultaten.
- Resultatmeddelandet skickas till klientstubben som konverteras tillbaka till maskinspecifikt format som är lämpligt för klientstubben.
- Slutligen returnerar stubben resultaten till klientprocessen.
Definition av RMI
Remote Method Invocation (RMI) liknar RPC men är språkspecifik och en funktion av Java. En tråd får ringa metoden på ett fjärrobjekt. För att behålla insynen på klient- och serversidan implementeras det fjärrobjekt med stubbar och skelett. Stubben ligger hos klienten och för det fjärranslutna objektet uppträder det som en proxy.
När en klient ringer en fjärransluten metod kallas stubben för fjärrmetoden. Klientstubben är ansvarig för att skapa och skicka paketet med namnet på en metod och de marshallerade parametrarna, och skelettet är ansvarigt för att ta emot paketet.

I Java skickas parametrarna till metoder och returneras i referensform. Detta kan vara besvärligt för RMI-tjänsten eftersom inte alla objekt är möjligen avlägsna metoder. Så måste det avgöra vilken som skulle kunna överföras som referens och som inte kunde.
Java använder process som heter serialisering där objekten överförs som värde. Det avlägsna objektet är lokaliserat med passera för värde. Det kan också passera ett objekt genom referens genom att ge en fjärrreferens till objektet tillsammans med webbadressen till stubklassen. Passera vid referens begränsar en stub för fjärrobjektet.
Viktiga skillnader mellan RPC och RMI
- RPC stöder procedurprogrammeringsparadigmer sålunda är C-baserade, medan RMI stöder objektorienterade programmeringsparadigmer och är baserad på Java.
- Parametrarna som skickas till fjärrprocedurer i RPC är de vanliga datastrukturerna. Tvärtom överför RMI objekt som en parameter till fjärrmetoden.
- RPC kan betraktas som den äldre versionen av RMI, och den används i programmeringsspråken som stöder procedurprogrammering, och den kan bara använda överföringsmetod. I motsats till är RMI-anläggningen utformad utifrån moderna programmeringsmetoder som kan använda passera efter värde eller referens. En annan fördel med RMI är att parametrarna som skickas genom referens kan ändras.
- RPC-protokollet genererar mer omkostnader än RMI.
- Parametrarna som passeras i RPC måste vara " in-out " vilket innebär att värdet som passeras till proceduren och utgångsvärdet måste ha samma datatyper. Däremot är det ingen tvång att överföra parametrar i RMI.
- I RPC kan referenser inte vara sannolika eftersom de två processerna har det tydliga adressutrymmet, men det är möjligt om det gäller RMI.
Slutsats
Både RPC och RMI tjänar samma syfte men används på språk som stödjer olika programmeringsparadigmer, har därför olika egenskaper.