Remote Procedure Call (RPC) Protocol i distribuert system
⚡ Smart oppsummering
Remote Procedure Call (RPC) er en kommunikasjonsprotokoll mellom prosesser som lar et program utføre en prosedyre i et annet adresserom eller på en annen maskin, og skjuler nettverksdetaljer bak et vanlig lokalt funksjonskall i distribuerte klient-server-systemer.
Hva er RPC?
Remote Procedure Call (RPC) er en kommunikasjon mellom prosesser teknikk som brukes for klient-server-applikasjoner. Den fulle formen for RPC er Remote Procedure Call. RPC-mekanismer brukes når et dataprogram får en prosedyre eller subrutine til å kjøre i et annet adresserom, kodet som et normalt prosedyrekall uten at programmereren eksplisitt koder detaljene for den eksterne interaksjonen.
Dette prosedyrekallet administrerer også lavnivåtransportprotokoller, som UDP og TCP/IP, for å frakte meldingsdata mellom programmer.
Typer RPC
Tre typer RPC er:
- Tilbakeringing RPC
- Kringkast RPC
- Batch-modus RPC
Tilbakeringing RPC
Denne typen RPC muliggjør et peer-to-peer (P2P)-paradigme mellom deltakende prosesser. Det hjelper en prosess å fungere som både en klient og en server.
Funksjoner for tilbakeringings-RPC:
- Håndterer eksternt behandlede, interaktive applikasjonsproblemer.
- Gir serveren klientens handle.
- Tilbakeringing får klientprosessen til å vente.
- Håndterer vranglåser ved tilbakeringing.
- Det legger til rette for et likemann-til-likemann-paradigme mellom deltakende prosesser.
Kringkast RPC
En kringkastet RPC er en klientforespørsel som kringkastes på nettverket og behandles av alle servere som har metoden for å behandle 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 med å legge separate RPC-forespørsler i kø i en overføringsbuffer på klientsiden, og deretter sende dem over et nettverk i én batch til serveren.
Funksjoner til batchmodus RPC:
- Det minimerer administrasjonskostnadene forbundet med å sende en forespørsel, ettersom forespørsler sendes over nettverket i én batch til serveren.
- Denne typen RPC-protokoll er bare effektiv for applikasjoner som trenger lavere samtalerater.
- Den trenger en pålitelig overføringsprotokoll.
RPC Architecture
RPC-arkitektur har hovedsakelig fem komponenter i programmet:
- kunde
- Klientstubb
- RPC kjøretid
- Server Stubb
- Server
RPC Architecture
Hvordan fungerer RPC?
Følgende trinn finner sted under RPC-prosessen:
Trinn 1) Klienten, klientstubben og én forekomst av RPC-kjøretidsprogrammet kjøres på klientmaskinen.
Trinn 2) Klienten starter en klientstub-prosess ved å sende parametere på vanlig måte. Klientstubben lagres i klientens eget adresseområde. Den ber også den lokale RPC Runtime om å sende forespørselen til serverstubben.
Trinn 3) I denne fasen får brukeren tilgang til RPC ved å foreta et vanlig lokalt prosedyrekall. RPC Runtime administrerer overføringen av meldinger mellom klienten og serveren over nettverket. Den utfører også jobben med retransmisjon, bekreftelse, ruting og kryptering.
Trinn 4) Etter at serverprosedyren er fullført, går kjøringen tilbake til serverstubben, som pakker (marshalerer) returverdiene i en melding. Serverstubben sender deretter meldingen tilbake til transportlaget.
Trinn 5) I dette trinnet sender transportlaget resultatmeldingen tilbake til klientens transportlag, som returnerer meldingen til klientstubben.
Trinn 6) I denne fasen demarshaler klienten (pakker ut) returparametrene i den resulterende pakken, og kjøringen returnerer til den som kaller.
Kjennetegn ved RPC
Her er de viktigste egenskapene til RPC:
- Den kalte prosedyren er i en annen prosess, som sannsynligvis befinner seg på 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 den kallende prosedyrens miljø.
Funksjoner av RPC
Her er de viktige funksjonene til RPC:
- Enkel anropssyntaks.
- Tilbyr kjent semantikk.
- Gir et veldefinert grensesnitt.
- Den kan kommunisere mellom prosesser på samme eller forskjellige maskiner.
Fordeler med RPC
Her er fordelene/fordelene med RPC:
- RPC hjelper klienter med å kommunisere med servere gjennom konvensjonell bruk av prosedyrekall i høynivåspråk.
- RPC er modellert etter det lokale prosedyrekallet, men den kalte prosedyren utføres mest sannsynlig i en annen prosess og vanligvis på en annen datamaskin.
- RPC støtter prosessorienterte og trådorienterte modeller.
- RPC gjør den interne meldingsoverføringsmekanismen skjult for brukeren.
- Den forplikter mange av protokolllagene for å forbedre ytelsen.
- RPC gir magemusklertracsjon; for eksempel forblir meldingsoverføringskarakteren til nettverkskommunikasjon skjult for brukeren.
- RPC kan brukes i både distribuerte og lokale miljøer.
- Innsatsen som kreves for å omskrive og utvikle koden på nytt er minimal.
Ulemper med RPC
Her er ulempene/ulempene ved å bruke RPC:
- Remote Procedure Call sender kun parametere etter verdier; pekerverdier (referanseverdier) er ikke tillatt.
- Tiden for fjernprosedyrekall (og retur) – overhead – er betydelig høyere enn for en lokal prosedyre.
- Denne mekanismen er svært sårbar for feil, ettersom den involverer et kommunikasjonssystem, en annen maskin og en annen prosess.
- RPC-konseptet kan implementeres på forskjellige måter, så det finnes ingen enkelt standard.
- Den tilbyr ikke fleksibilitet for maskinvarearkitektur, ettersom den stort sett er interaksjonsbasert.
- Kostnaden for prosessen øker på grunn av det eksterne prosedyrekallet.


