Forskel mellem RPC og RMI

Forfatter: Laura McKinney
Oprettelsesdato: 1 April 2021
Opdateringsdato: 14 Kan 2024
Anonim
Tim Urban: Inside the mind of a master procrastinator | TED
Video.: Tim Urban: Inside the mind of a master procrastinator | TED

Indhold


RPC og RMI er de mekanismer, der sætter en klient i stand til at påkalde proceduren eller metoden fra serveren gennem etablering af kommunikation mellem klient og server. Den fælles forskel mellem RPC og RMI er, at RPC kun understøtter procedureprogrammering hvorimod RMI understøtter objektorienteret programmering.

En anden vigtig forskel mellem de to er, at de parametre, der overføres til eksterne procedurer, består af almindelige datastrukturer. På den anden side består parametrene, der overføres til fjernmetoden, af objekter.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel

Grundlag for sammenligningRPCRMI
Bakker opProcedureprogrammering
Objektorienteret programmering
ParametreAlmindelige datastrukturer overføres til eksterne procedurer.Objekter overføres til fjernmetoder.
EffektivitetLavere end RMIMere end RPC og understøttet af moderne programmeringsmetode (dvs. objektorienterede paradigmer)
OverheadsMere
Mindre sammenligneligt
Udgående parametre er obligatoriske.JaIkke nødvendigvis
Tilvejebringelse af let programmering
Høj
lav


Definition af RPC

Fjernprocedurekald (RPC) er en programmeringssprogsfunktion udviklet til den distribuerede computing og baseret på semantik af lokal procedure opkald. Det er de mest almindelige former for fjerntjeneste og blev designet som en måde at abstrahere proceduren opkaldsmekanisme til brug mellem systemer forbundet via et netværk. Det ligner IPC-mekanisme, hvor operativsystemet tillader processerne at administrere delte data og håndtere et miljø, hvor forskellige processer udføres på separate systemer og nødvendigvis kræver -baseret kommunikation.

Lad os forstå, hvordan RPC implementeres gennem de givne trin:

  • Klientprocessen kalder klientstubben med parametre, og dens udførelse suspenderes, indtil opkaldet er afsluttet.
  • Parametrene oversættes derefter til maskinuafhængig form ved marchering gennem klientstub. Derefter forberedes den, der indeholder repræsentationen af ​​parametrene.
  • For at finde identiteten på webstedet kommunikerer klientstubben med navneserveren, hvor der findes en fjernprocedure.
  • Ved hjælp af blokeringsprotokol sættes klienten til det sted, hvor der findes et opkald til fjernproceduren. Dette trin stopper klientstubben, indtil den får svar.


  • Serverwebstedet modtager det sendte fra klientsiden og konverterer det til maskinspecifikt format.
  • Nu udfører serverstub et opkald på serverproceduren sammen med parametrene, og serverstuben afbrydes, indtil proceduren er afsluttet.
  • Serverproceduren returnerer de genererede resultater til serverstubben, og resultaterne konverteres til maskinuafhængigt format på serverstubben og skaber en der indeholder resultaterne.
  • Resultatet sendes til klientstubben, der konverteres tilbage til maskinspecifikt format, der er egnet til klientstubben.
  • Ved sidste klient returnerer stuben resultaterne til klientprocessen.

Definition af RMI

Remote Method Invocation (RMI) svarer til RPC, men er sprogspecifik og en funktion i java. En tråd er tilladt at kalde metoden på et fjernt objekt. For at bevare gennemsigtigheden på klient- og serversiden implementerer den fjernobjekter ved hjælp af stubber og skelet. Stubben er hos klienten, og for det eksterne objekt opfører den sig som en proxy.

Når en klient kalder en fjernmetode, kaldes stubben til fjernmetoden. Klientstubben er ansvarlig for at oprette og indsætte pakken, der indeholder navnet på en metode og de sammenføjede parametre, og skelettet er ansvarlig for at modtage pakken.

Skelettet afmarkerer parametre og påkalder den ønskede metode på serveren. Skelettet marscherer den givne værdi (eller undtagelser) med pakken og s den til klientstubben. Stuben samler returpakken og sælger den til klienten.

I Java overføres parametrene til metoder og returneres i form af reference. Dette kan være besværligt for RMI-service, da ikke alle objekter muligvis er fjernmetoder. Så det skal bestemme, hvad der kan sendes som reference, og hvem der ikke kunne.

Java bruger en proces, der er navngivet som serialisering hvor objekterne sendes som værdi. Det fjerne objekt er lokaliseret ved hjælp af værdi. Det kan også videregive et objekt ved henvisning gennem at videregive en fjernreference til objektet sammen med URL'en til stubklassen. Pass by reference begrænser en stub for det eksterne objekt.

  1. RPC understøtter procedureprogrammeringsparadigmer er således C-baseret, mens RMI understøtter objektorienteret programmeringsparadigmer og er java-baseret.
  2. Parametrene, der overføres til eksterne procedurer i RPC, er de almindelige datastrukturer. Tværtimod overfører RMI objekter som en parameter til fjernmetoden.
  3. RPC kan betragtes som den ældre version af RMI, og den bruges på programmeringssprog, der understøtter procedureprogrammering, og den kan kun bruge en metode for pass by value. I modsætning hertil er RMI-anlægget udarbejdet baseret på moderne programmeringsmetode, som kan bruge pass by value eller reference. En anden fordel ved RMI er, at de parametre, der er givet ved reference, kan ændres.
  4. RPC-protokol genererer flere omkostninger end RMI.
  5. De parametre, der er givet i RPC, skal være "ind ud”Hvilket betyder, at den værdi, der overføres til proceduren og outputværdien, skal have de samme datatyper. I modsætning hertil er der ingen tvang om at gå forbi ”ind ud”Parametre i RMI.
  6. I RPC kunne referencer ikke være sandsynlige, fordi de to processer har det distinkte adresserum, men det er muligt i tilfælde af RMI.

Konklusion

Både RPC og RMI tjener det samme formål, men bruges på sprog, der understøtter forskellige programmeringsparadigmer, og har derfor forskellige funktioner.