Remote Procedure Call eller RPC er en kraftig teknikk for å konstruere distribuerte, klient-server-baserte applikasjoner. Det er også kjent som et funksjonsanrop eller et subrutineanrop. Et eksternt prosedyrekall er når et dataprogram får en prosedyre til å kjøre i et annet adresserom, kodet som et lokalt prosedyrekall, uten at programmereren eksplisitt oppgir detaljene for den eksterne interaksjonen. Programmereren skriver i hovedsak den samme koden enten subrutinen er lokal for det kjørende programmet eller ekstern. Dette er en form for klient-tjener-interaksjon implementert via et forespørsel-svar-meldingsoverføringssystem.
RPC-modellen innebærer plasseringsgjennomsiktighet at anropsprosedyrer stort sett er de samme, enten lokale eller eksterne. Vanligvis er de ikke identiske, slik at lokale samtaler kan skilles fra eksterne samtaler. Fjernanrop er vanligvis tregere og mindre pålitelige enn lokale anrop, så det er viktig å skille dem.
RPC-er er en form for interprosesskommunikasjon (IPC), ved at ulike prosesser har ulike adresserom. De har distinkte virtuelle adresseområder på samme vertsmaskin, selv om den fysiske adresseplassen er den samme. Mens hvis de er på forskjellige verter, er den fysiske adresseplassen annerledes.
Hvordan foreta en ekstern prosedyresamtale
Det anropende miljøet suspenderes, prosedyreparametere overføres over nettverket til miljøet der prosedyren skal utføres, og prosedyren utføres der.
Når prosedyren er ferdig og produserer resultatene, overføres den tilbake til anropsmiljøet, hvor kjøringen fortsetter som om den kom tilbake fra et vanlig prosedyrekall.
MERK: RPC er spesielt godt egnet for klient-server (f.eks. spørring-svar) interaksjon der kontrollflyten veksler mellom den som ringer og den som ringer. Konseptuelt kjører ikke klienten og serveren samtidig; i stedet hopper utførelsestråden fra den som ringer til den som ringer og deretter tilbake igjen.
Typer RPC
Det er tre typer fjernprosedyrekall (RPC) i et operativsystem, for eksempel:
1. Tilbakeringings-RPC
Denne typen RPC muliggjør et P2P-paradigme mellom deltakende prosesser. Det hjelper en prosess å være både klient- og servertjenester. Callback RPC har følgende funksjoner, for eksempel:
liste over fonter i gimp
- 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.
2. Kringkast RPC
Broadcast RPC er en klients forespørsel som sendes på nettverket, behandlet av alle servere med metoden for å behandle den forespørselen. Broadcast RPC har følgende funksjoner, for eksempel:
- Lar deg spesifisere at klientens forespørselsmelding må kringkastes.
- Du kan deklarere kringkastingsporter.
- Det bidrar til å redusere belastningen på det fysiske nettverket.
3. 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. Batch-modus RPC har følgende funksjoner, for eksempel:
- Det minimerer overheaden involvert i å sende en forespørsel ved å sende dem over nettverket i én batch til serveren.
- Denne typen RPC-protokoll er bare effektiv for en applikasjon som trenger lavere samtaletakster.
- Den trenger en pålitelig overføringsprotokoll.
Hva gjør RPC?
Når programsetninger som bruker RPC-rammeverket kompileres til et kjørbart program, er en stubb inkludert i den kompilerte koden som representerer den eksterne prosedyrekoden.
Når programmet kjøres og prosedyrekallet utstedes, mottar stubben forespørselen og videresender den til et klientkjøringsprogram på den lokale datamaskinen. Første gang klientstubben påkalles, kontakter den en navneserver for å finne transportadressen der serveren befinner seg.
Klientkjøringsprogrammet vet hvordan det skal adressere den eksterne datamaskinen og serverapplikasjonen og sender meldingen over nettverket som ber om den eksterne prosedyren. På samme måte inkluderer serveren et kjøretidsprogram og stub som har grensesnitt med selve fjernprosedyren, og Response-request-protokoller returneres på samme måte.
Funksjoner av RPC
I et operativsystem har ekstern prosedyrekall (RPC) følgende funksjoner, for eksempel:
array som legger til elementer java
- RPC skjuler kompleksiteten i meldingsoverføringsprosessen for brukeren.
- RPC bruker bare spesifikke lag av OSI-modellen som transportlaget.
- Klienter kan kommunisere med serveren ved å bruke språk på høyere nivå.
- RPC fungerer godt med både lokale miljøer og eksterne miljøer.
- Programmet til RPC er skrevet i enkel kode og er lett å forstå av programmereren.
- Operativsystemet kan enkelt håndtere prosesser og tråder involvert i RPC.
- Operativsystemet skjuler abstraksjonene av RPC for brukeren.
Hvordan fungerer RPC?
Når et eksternt prosedyrekall påkalles, blir det anropende miljøet suspendert, prosedyreparameterne overføres over nettverket til miljøet der prosedyren skal utføres, og prosedyren blir deretter utført i det miljøet.
Når prosedyren er fullført, overføres resultatene tilbake til anropsmiljøet, hvor kjøringen fortsetter som om de returnerte fra et vanlig prosedyrekall.
Et eksternt prosedyrekall (RPC) fungerer i følgende trinn i et operativsystem:
Trinn 1: Klienten, klientstubben og RPC kjøretiden kjøres på klientmaskinen.
Steg 2: En klient starter en klientstubprosess ved å sende parametere på vanlig måte. Pakkingen av prosedyreparametrene kalles rangering . Klientstubben lagrer i klientens eget adresseområde, og den ber også den lokale RPC Runtime sende tilbake til serverstubben.
Trinn 3: I dette stadiet kan brukeren få tilgang til RPC ved å foreta vanlige lokale prosedyreanrop. RPC Runtime styrer overføringen av meldinger mellom nettverket på tvers av klient og server, og 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 returparameterne i den resulterende pakken, og utførelsesprosessen går tilbake til den som ringer.
binær trepostordregjennomgang
Problemer med Remote Procedure Call (RPC)
I et operativsystem møtte Ekstern prosedyrekall eller RPC noen problemer som må løses, for eksempel:
1. RPC-kjøring
RPC-runtime-systemet er et bibliotek av rutiner og tjenester som håndterer nettverkskommunikasjonen som ligger til grunn for RPC-mekanismen. I løpet av et RPC-anrop håndterer kjøretidssystemer på klientsiden og serversiden binding, etablerer kommunikasjon over en passende protokoll, sender samtaledata mellom klienten og serveren og håndterer kommunikasjonsfeil.
2. Stubb
Funksjonen til stubben er å gi åpenhet til den programmerer-skrevne applikasjonskoden.
3. Innbinding
strengformat i java
Hvordan vet kunden hvem han skal ringe og hvor tjenesten holder til?
Den mest fleksible løsningen er å bruke dynamisk binding og finne serveren på kjøretid når RPC først lages. Første gang klientstubben påkalles, kontakter den en navneserver for å fastslå transportadressen serveren befinner seg på. Bindingen består av to deler:
4. Ringesemantikken knyttet til RPC
Det er hovedsakelig klassifisert i følgende valg,
Kjennetegn ved RPC
Her er de essensielle egenskapene til ekstern prosedyrekall:
- 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ø.
Fordeler med RPC
Her er noen fordeler med RPC, for eksempel:
- 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 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 distribusjon og lokalmiljø.
- 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øttet av RPC.
Ulemper med RPC
Her er noen ulemper eller ulemper ved å bruke RPC, for eksempel:
- Ekstern prosedyreanrop passerer parametere kun etter verdier og pekerverdier, noe som ikke er tillatt.
- Anrops- (og retur)tid for ekstern prosedyre (dvs. overhead) kan være betydelig lavere enn 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.
- Tilbyr ikke noen fleksibilitet i RPC for maskinvarearkitektur da den for det meste er interaksjonsbasert.
- Kostnaden for prosessen øker på grunn av et eksternt prosedyrekall.