Forskjellen mellom RPC og RMI

Forfatter: Laura McKinney
Opprettelsesdato: 1 April 2021
Oppdater Dato: 17 Kan 2024
Anonim
RPC programming in C using RPCGEN on Ubuntu OS
Video: RPC programming in C using RPCGEN on Ubuntu OS

Innhold


RPC og RMI er mekanismene som gjør det mulig for en klient å påkalle prosedyren eller metoden fra serveren gjennom å etablere kommunikasjon mellom klient og server. Den vanlige forskjellen mellom RPC og RMI er at RPC bare støtter prosessuell programmering mens RMI støtter Objektorientert programmering.

En annen stor forskjell mellom de to er at parametrene som sendes til eksterne prosedyrer samtale består av vanlige datastrukturer. På den annen side består parametrene som er sendt til ekstern metode objekter.

  1. Sammenligningstabell
  2. Definisjon
  3. Viktige forskjeller
  4. Konklusjon

Sammenligningstabell

Grunnlag for sammenligningRPCRMI
støtterProsedyreprogrammering
Objektorientert programmering
parametereVanlige datastrukturer overføres til eksterne prosedyrer.Objekter sendes til eksterne metoder.
EffektivitetLavere enn RMIMer enn RPC og støttet av moderne programmeringsmetoder (dvs. objektorienterte paradigmer)
overheadMer
Mindre sammenlignelig
Inn-ut-parametere er obligatoriske.JaIkke nødvendigvis
Tilveiebringelse av enkel programmering
Høy
lav


Definisjon av RPC

RPC (Remote Procedure Call) er et programmeringsspråkfunksjon utviklet for distribuert databehandling og basert på semantikk av lokal prosedyre samtaler. Det er de vanligste formene for fjerntjeneste og ble designet som en måte å abstrahere prosedyresamtalemekanismen for å bruke mellom systemer koblet gjennom et nettverk. Det ligner på IPC-mekanisme der operativsystemet lar prosessene administrere delte data og håndtere et miljø der forskjellige prosesser kjøres på separate systemer og nødvendigvis krever kommunikasjon basert.

La oss forstå hvordan RPC implementeres gjennom de gitte trinnene:

  • Klientprosessen kaller klientstubben med parametere, og utførelsen er avbrutt til samtalen er fullført.
  • Parametrene blir deretter oversatt til maskinuavhengig form ved å styre gjennom klientstubben. Deretter utarbeides den som inneholder representasjonen av parametrene.
  • For å finne identiteten til nettstedet, klientstubben kommuniserer med navneserveren der ekstern prosedyre eksisterer.
  • Ved hjelp av blokkeringsprotokoll stenger klienten til stedet der ekstern prosedyre samtale eksisterer. Dette trinnet stopper klientstubben til den får svar.


  • Serverstedet mottar sendt fra klientsiden og konverterer det til maskinspesifikt format.
  • Nå utfører serverstubb et anrop på serverprosedyren sammen med parametrene, og serverstubben blir avbrutt til prosedyren blir fullført.
  • Serverprosedyren returnerer de genererte resultatene til serverstubben, og resultatene blir konvertert til maskinuavhengig format på serverstubben og oppretter en som inneholder resultatene.
  • Resultatet sendes til klientstubben som konverteres tilbake til maskinspesifikt format som passer for klientstubben.
  • Ved siste klient returnerer stubben resultatene til klientprosessen.

Definisjon av RMI

Remote Method Invocation (RMI) ligner RPC, men er språkspesifikk og en funksjon i java. En tråd har lov til å kalle metoden på et eksternt objekt. For å opprettholde åpenheten på klient- og serversiden implementerer den eksternt objekt ved hjelp av stubber og skjeletter. Stubben er hos klienten og for det eksterne objektet oppfører det seg som en proxy.

Når en klient ringer en ekstern metode, kalles stubben for den eksterne metoden. Klientstubben er ansvarlig for å lage og innføre pakken som inneholder navnet på en metode og de innsamlede parametrene, og skjelettet er ansvarlig for å motta pakken.

Skjelettet avmarkerer parametere og påkaller ønsket metode på serveren. Skjelettet marsjalerer den gitte verdien (eller unntak) med pakken og s den til klientstubben. Stubben setter sammen returpakken og sender den til klienten.

I Java overføres parametrene til metoder og returneres i referanseform. Dette kan være plagsomt for RMI-tjenesten, siden ikke alle objekter muligens er eksterne metoder. Så det må avgjøre hvilken som kan gis som referanse og hvilken som ikke kunne.

Java bruker prosess som heter serialisering der objektene sendes som verdi. Det eksterne objektet er lokalisert etter forbi av verdi. Det kan også passere et objekt ved henvisning gjennom å gi en ekstern referanse til objektet sammen med URL til stubbklassen. Pass by reference begrenser en stubbe for det eksterne objektet.

  1. RPC støtter prosessuelle programmeringsparadigmer er således C-basert, mens RMI støtter objektorientert programmeringsparadigmer og er java-basert.
  2. Parametrene som sendes til eksterne prosedyrer i RPC, er de vanlige datastrukturene. Tvert imot, RMI overfører objekter som en parameter til den eksterne metoden.
  3. RPC kan betraktes som den eldre versjonen av RMI, og den brukes på programmeringsspråk som støtter prosedyreprogrammering, og den kan bare bruke pass by value-metoden. I motsetning er RMI-anlegget utviklet basert på moderne programmeringsmetoder, som kan bruke pass etter verdi eller referanse. En annen fordel med RMI er at parametrene som er gitt ved referanse, kan endres.
  4. RPC-protokollen genererer mer overhead enn RMI.
  5. Parametrene som er gitt i RPC, må være "inn-ut”Som betyr at verdien som sendes til prosedyren og utgangsverdien må ha de samme datatypene. Derimot er det ingen tvang om å passere “inn-ut”Parametere i RMI.
  6. I RPC kan referanser ikke være sannsynlige fordi de to prosessene har det distinkte adresseområdet, men det er mulig i tilfelle RMI.

Konklusjon

Både RPC og RMI tjener samme formål, men brukes på språk som støtter forskjellige programmeringsparadigmer, og har derfor forskjellige funksjoner.