En anden væsentlig forskel mellem de to er, at parametrene passeret til fjernproceduropkald består af almindelige datastrukturer . På den anden side består parametrene til fjernmetoden af objekter .
Sammenligningstabel
Grundlag for sammenligning | RPC | RMI |
---|---|---|
Bakker op | Procedurel programmering | Objektorienteret programmering |
Parametre | Almindelige datastrukturer overføres til fjernprocedurer. | Objekter overføres til fjernmetoder. |
Effektivitet | Lavere end RMI | Mere end RPC og understøttet af moderne programmeringsmetode (dvs. Objektorienterede paradigmer) |
Overheads | Mere | Mindre forholdsmæssigt |
In-out parametre er obligatoriske. | Ja | Ikke nødvendigvis |
Tilvejebringelse af nem programmering | Høj | lav |
Definition af RPC
Remote Procedure Call (RPC) er en programmeringssprogfunktion udformet til den distribuerede computer og baseret på semantik af lokale procedureopkald . Det er de mest almindelige former for fjernbetjening og blev udformet som en måde at abstrahere proceduren til opkaldsmekanismen til at bruge mellem systemer, der er tilsluttet via et netværk. Det ligner IPC-mekanismen, hvor operativsystemet gør det muligt for processerne at styre delte data og håndtere et miljø, hvor forskellige processer udføres på separate systemer og nødvendigvis kræver meddelelsesbaseret kommunikation.
Lad os forstå, hvordan RPC implementeres gennem de givne trin:
- Klientprocessen kalder klientstubben med parametre, og udførelsen suspenderes, indtil opkaldet er afsluttet.
- Parametrene omdannes derefter til maskinuafhængig form ved at skifte gennem klientstub. Derefter udarbejdes meddelelsen, som indeholder repræsentationen af parametrene.
- For at finde stedets identitet kommunikerer klientens stub med navneserver, hvor der findes en fjern procedure.
- Ved hjælp af blokeringsprotokol sender klientstub meddelelsen til det sted, hvor der findes eksternt procedureopkald. Dette trin stopper klientens stub, indtil det får et svar.
- Serverwebstedet modtager meddelelsen sendt fra klientsiden og konverterer den til maskinens specifikke format.
- Nu server stub udfører et opkald på server procedure sammen med parametrene, og server stub er afbrudt indtil proceduren bliver afsluttet.
- Serverproceduren returnerer de genererede resultater til serverstuben, og resultaterne konverteres til maskinuafhængigt format ved serverstub og opretter en meddelelse, der indeholder resultaterne.
- Resultatmeddelelsen sendes til klientstuben, som konverteres tilbage til maskinens specifikke format, der passer til klientstubben.
- Ved sidste klient returnerer stub resultaterne til klientprocessen.
Definition af RMI
Remote Method Invocation (RMI) svarer til RPC, men er sprogspecifik og en funktion af java. En tråd er tilladt at kalde metoden på et fjernt objekt. For at opretholde gennemsigtigheden på klient- og serversiden implementeres det fjerntliggende objekt ved hjælp af stubber og skeletter. Stubben befinder sig hos klienten, og for det fjernliggende objekt opfører det sig som en proxy.
Når en klient kalder en fjernmetode, kaldes stubben til den eksterne metode. Klientstubben er ansvarlig for at oprette og sende pakken, der indeholder navnet på en metode og de parametre, og skeletet er ansvarligt for at modtage pakken.
I Java sendes parametrene til metoder og returneres i form af reference. Dette kan være besværligt for RMI-tjenesten, da ikke alle objekter muligvis er fjernmetoder. Så det skal bestemme, hvilke der kunne overføres som reference og som ikke kunne.
Java bruger proces kaldet serialisering, hvor objekterne sendes som værdi. Det fjerne objekt er lokaliseret ved at passere for værdi. Det kan også bestå en genstand ved reference ved at sende en fjernreference til objektet sammen med stubklassens URL. Pass ved reference begrænser en stub for fjernobjektet.
Nøgleforskelle mellem RPC og RMI
- RPC understøtter processuelle programmeringsparadigmer, således er C baseret, mens RMI understøtter objektorienterede programmeringsparadigmer og er Java-baseret.
- Parametrene, der overføres til fjernprocedurer i RPC, er de almindelige datastrukturer. Tværtimod overfører RMI objekter som en parameter til fjernmetoden.
- RPC kan betragtes som den ældre version af RMI, og den bruges i programmeringssprogene, der understøtter procedurel programmering, og den kan kun bruge pass-by-værdi metode. Imidlertid er RMI-anlægget udformet på baggrund af moderne programmeringsmetode, som kunne bruge passere efter værdi eller reference. En anden fordel ved RMI er, at parametrene ved reference kan ændres.
- RPC-protokol genererer flere generalomkostninger end RMI.
- Parametrene, der passeres i RPC, skal være " in-out ", hvilket betyder at værdien, der overføres til proceduren og outputværdien, skal have de samme datatyper. Derimod er der ingen tvang om at sende " in-out " parametre i RMI.
- I RPC kunne referencer ikke være sandsynlige, fordi de to processer har det adskilte adresserum, men det er muligt i tilfælde af RMI.
Konklusion
Både RPC og RMI tjener samme formål, men anvendes på sprog, understøtter forskellige programmeringsparadigmer, og derfor har de forskellige funktioner.