Remote Procedure Call (RPC) Protocol i distribuert system

Hva er RPC?

Remote Procedure Call (RPC) er en kommunikasjonsteknikk mellom prosesser. Den fullstendige formen for RPC er Remote Procedure Call. Den brukes til klient-serverapplikasjoner. RPC-mekanismer brukes når et dataprogram får en prosedyre eller subrutine til å kjøre i et annet adresserom, som er kodet som et normalt prosedyrekall uten at programmereren spesifikt koder detaljene for den eksterne interaksjonen.

Dette prosedyrekallet administrerer også transportprotokoller på lavt nivå, for eksempel User Datagram Protocol, Transmission Control Protocol/Internet Protocol etc. Den brukes til å overføre meldingsdata mellom programmer.

Typer RPC

Tre typer RPC er:

  • Tilbakeringing RPC
  • Kringkast RPC
  • Batch-modus RPC

Tilbakeringing RPC

Denne typen RPC muliggjør et P2P-paradigme mellom deltakende prosesser. Det hjelper en prosess å være både klient- og servertjenester.

Funksjoner for tilbakeringings-RPC:

  • Fjernbehandlede interaktive applikasjonsproblemer
  • Tilbyr server med klienthåndtering
  • Tilbakeringing får klientprosessen til å vente
  • Administrer vranglåser for tilbakeringing
  • Det legger til rette for et peer-to-peer-paradigme blant deltakende prosesser.

Kringkast RPC

Broadcast RPC er en klients forespørsel, som kringkastes på nettverket, behandlet av alle servere som har metoden for å behandle den forespørselen.

Funksjoner til kringkastings-RPC:

  • Lar deg spesifisere at klientens forespørselsmelding må kringkastes.
  • Du kan deklarere kringkastingsporter.
  • Det bidrar til å redusere belastningen på det fysiske nettverket

Batch-modus RPC

Batch-modus RPC hjelper til med å sette i kø, separere RPC-forespørsler, i en overføringsbuffer, på klientsiden, og deretter sende dem på et nettverk i én batch til serveren.

Funksjoner til batch-modus RPC:

  • Det minimerer overhead involvert i å sende en forespørsel, ettersom den sender dem over nettverket i én batch til serveren.
  • Denne typen RPC-protokoll er kun effektiv for applikasjoner som trenger lavere samtaletakster.
  • Den trenger en pålitelig overføringsprotokoll.

RPC Architecture

RPC-arkitektur har hovedsakelig fem komponenter i programmet:

  1. kunde
  2. Klientstubb
  3. RPC kjøretid
  4. Server Stubb
  5. Server
RPC Architecture
RPC Architecture

Hvordan fungerer RPC?

Følgende trinn finner sted under RPC-prosessen:

Trinn 1) Klienten, klientstubben og en forekomst av RPC-kjøringstid kjøres på klientmaskinen.

Trinn 2) En klient starter en klientstubprosess ved å sende parametere på vanlig måte. Klientstubben lagrer i klientens eget adresseområde. Den ber også den lokale RPC Runtime sende tilbake til serverstubben.

Trinn 3) I dette stadiet får brukeren tilgang til RPC ved å gjøre vanlig lokal prosedyrekalkulering. RPC Runtime styrer overføringen av meldinger mellom nettverket på tvers av klient og server. Den utfører også jobben med reoverføring, bekreftelse, ruting og kryptering.

Trinn 4) Etter å ha fullført serverprosedyren, går den tilbake til serverstubben, som pakker (marshaller) returverdiene inn i en melding. Serverstubben sender deretter en melding tilbake til transportlaget.

Trinn 5) I dette trinnet sender transportlaget tilbake resultatmeldingen til klienttransportlaget, som returnerer en melding til klientstubben.

Trinn 6) I dette stadiet demarshaller (pakker ut) klientstubben returparametrene, i den resulterende pakken, og utførelsesprosessen returnerer til den som ringer.

Kjennetegn ved RPC

Her er de viktigste egenskapene til RPC:

  • Den kalte prosedyren er i en annen prosess, som sannsynligvis vil ligge i en annen maskin.
  • Prosessene deler ikke adresseplass.
  • Parametre sendes kun av verdier.
  • RPC kjøres i miljøet til serverprosessen.
  • Den gir ikke tilgang til anropsprosedyrens miljø.

Funksjoner av RPC

Her er de viktige funksjonene til RPC:

  • Enkel samtalesyntaks
  • Tilbyr kjent semantikk
  • Gi et veldefinert grensesnitt
  • Den kan kommunisere mellom prosesser på samme eller forskjellige maskiner

Fordeler med RPC

Her er fordeler/fordeler med RPC:

  • RPC-metoden hjelper klienter til å kommunisere med servere ved konvensjonell bruk av prosedyrekall på høynivåspråk.
  • RPC-metoden er modellert på det lokale prosedyrekallet, men den kalte prosedyren vil mest sannsynlig bli utført i en annen prosess og vanligvis en annen datamaskin.
  • RPC støtter prosess- og trådorienterte modeller.
  • RPC gjør den interne meldingsoverføringsmekanismen skjult for brukeren.
  • Arbeidet med å omskrive og re-utvikle koden er minimum.
  • Fjernprosedyreanrop kan brukes til distribuert og lokalt miljø.
  • Den forplikter mange av protokolllagene for å forbedre ytelsen.
  • RPC gir abstraksjon. For eksempel forblir nettverkskommunikasjonen skjult for brukeren.
  • RPC tillater bruk av applikasjonene i et distribuert miljø som ikke bare er i det lokale miljøet.
  • Med RPC-kode minimeres re-skriving og re-utvikling innsats.
  • Prosessorienterte og trådorienterte modeller støttes av RPC.

Ulemper med RPC

Her er ulempene/ulempene ved å bruke RPC:

  • Ekstern prosedyreanrop passerer parametere kun etter verdier og pekerverdier, noe som ikke er tillatt.
  • Anrops- (og retur)tid for ekstern prosedyre (dvs. faste kostnader) kan være betydelig lavere enn for en lokal prosedyre.
  • Denne mekanismen er svært sårbar for feil da den involverer et kommunikasjonssystem, en annen maskin og en annen prosess.
  • RPC-konseptet kan implementeres på forskjellige måter, noe som ikke er standard.
  • Ikke tilbyr noen fleksibilitet i RPC for maskinvarearkitektur da den for det meste er interaksjonsbasert.
  • Kostnaden for prosessen øker på grunn av et eksternt prosedyrekall.

Sammendrag

  • Et eksternt prosedyrekall er en kommunikasjon mellom prosesser teknikk.
  • Tre typer RPC er 1) Callback RPC 2) Broadcast RPC og 3) Batch-modus RPC
  • RPC-arkitektur har hovedsakelig fem komponenter i programmet: 1) Client 2) Client Stub 3) RPC Runtime 4) Server Stub og 5) Server
  • I RPC-metoden deler ikke prosessene adresserom
  • RPC tilbyr enkel samtalesyntaks og kjent semantikk
  • RPC-metoden hjelper klienter til å kommunisere med servere ved konvensjonell bruk av prosedyrekall på høynivåspråk.
  • Den største ulempen med RPC-metoden er at den er svært sårbar for feil da den involverer et kommunikasjonssystem, en annen maskin og en annen prosess.