Remote Procedure Call eller RPC er en kraftfuld teknik til at konstruere distribuerede, klient-server-baserede applikationer. Det er også kendt som et funktionskald eller et subrutinekald. Et fjernprocedurekald er, når et computerprogram får en procedure til at udføres i et andet adresserum, kodet som et lokalt procedurekald, uden at programmøren eksplicit angiver detaljerne for fjerninteraktionen. Programmøren skriver i det væsentlige den samme kode, uanset om subrutinen er lokal for det eksekverende program eller fjernbetjening. Dette er en form for klient-server-interaktion implementeret via et anmodning-svar-meddelelses-overførselssystem.
RPC-modellen indebærer lokationsgennemsigtighed at opkaldsprocedurerne stort set er de samme, uanset om de er lokalt eller eksternt. Normalt er de ikke identiske, så lokale opkald kan skelnes fra fjernopkald. Fjernopkald er normalt af størrelsesorden langsommere og mindre pålidelige end lokale opkald, så det er vigtigt at skelne dem.
RPC'er er en form for inter-process communication (IPC), idet forskellige processer har forskellige adresserum. De har forskellige virtuelle adresserum på den samme værtsmaskine, selvom det fysiske adresserum er det samme. Mens hvis de er på forskellige værter, er det fysiske adresserum anderledes.
Sådan foretager du et fjernopkald
Det kaldende miljø suspenderes, procedureparametre overføres på tværs af netværket til det miljø, hvor proceduren skal udføres, og proceduren udføres der.
Når proceduren afsluttes og producerer sine resultater, overføres den tilbage til det kaldende miljø, hvor udførelsen genoptages, som om den vender tilbage fra et almindeligt procedurekald.
BEMÆRK: RPC er især velegnet til klient-server (f.eks. forespørgsel-svar) interaktion, hvor kontrolstrømmen skifter mellem den, der ringer og den, der ringer. Konceptuelt kører klienten og serveren ikke samtidigt; i stedet springer udførelsestråden fra den, der ringer til den, der kalder, og derefter tilbage igen.
Typer af RPC
Der er tre typer fjernprocedurekald (RPC) i et operativsystem, såsom:
1. Callback RPC
Denne type RPC muliggør et P2P-paradigme mellem deltagende processer. Det hjælper en proces at være både klient- og servertjenester. Callback RPC har følgende funktioner, såsom:
java scan.nextstring
- Fjernbehandlede interaktive applikationsproblemer.
- Tilbyder server med klienthåndtering.
- Callback får klientprocessen til at vente.
- Administrer tilbagekalds-deadlocks.
- Det letter et peer-to-peer-paradigme blandt deltagende processer.
2. Broadcast RPC
Broadcast RPC er en klients anmodningsudsendelse på netværket, behandlet af alle servere med metoden til at behandle den anmodning. Broadcast RPC har følgende funktioner, såsom:
- Giver dig mulighed for at angive, at klientens anmodningsmeddelelse skal udsendes.
- Du kan erklære broadcast-porte.
- Det er med til at reducere belastningen på det fysiske netværk.
3. Batch-mode RPC
Batch-mode RPC hjælper med at sætte RPC-anmodninger i kø, adskille RPC-anmodninger i en transmissionsbuffer på klientsiden og derefter sende dem på et netværk i én batch til serveren. Batch-mode RPC har følgende funktioner, såsom:
- Det minimerer omkostningerne ved at sende en anmodning ved at sende dem over netværket i én batch til serveren.
- Denne type RPC-protokol er kun effektiv til en applikation, der har brug for lavere opkaldstakster.
- Den har brug for en pålidelig transmissionsprotokol.
Hvad gør RPC?
Når programsætninger, der bruger RPC-rammeværket, kompileres til et eksekverbart program, er en stub inkluderet i den kompilerede kode, der repræsenterer fjernprocedurekoden.
Når programmet køres, og procedurekaldet udstedes, modtager stubben anmodningen og videresender den til et klient-runtime-program på den lokale computer. Første gang klientstubben kaldes, kontakter den en navneserver for at bestemme transportadressen, hvor serveren er.
Klient-runtime-programmet ved, hvordan det adresserer fjerncomputeren og serverapplikationen og sender beskeden på tværs af netværket, der anmoder om fjernproceduren. På samme måde inkluderer serveren et runtime-program og stub, der interfacer med selve fjernproceduren, og Response-request-protokoller returneres på samme måde.
Funktioner af RPC
I et operativsystem har RPC (Remote Procedure Call) følgende funktioner, såsom:
round robin planlægningsalgoritme
- RPC skjuler kompleksiteten af meddelelsesoverførselsprocessen for brugeren.
- RPC bruger kun specifikke lag af OSI-modellen som transportlaget.
- Klienter kan kommunikere med serveren ved at bruge sprog på højere niveau.
- RPC fungerer godt med både lokale miljøer og fjerntliggende miljøer.
- RPC-programmet er skrevet i simpel kode og er let at forstå af programmøren.
- Operativsystemet kan nemt håndtere processer og tråde involveret i RPC.
- Operativsystemet skjuler abstraktionerne af RPC for brugeren.
Hvordan fungerer RPC?
Når et fjernprocedurekald påkaldes, suspenderes det kaldende miljø, procedureparametrene overføres på tværs af netværket til det miljø, hvor proceduren skal udføres, og proceduren udføres derefter i det miljø.
Når proceduren er færdig, overføres resultaterne tilbage til det kaldende miljø, hvor udførelsen genoptages, som om den vender tilbage fra et almindeligt procedurekald.
Et fjernprocedurekald (RPC) fungerer i følgende trin i et operativsystem:
Trin 1: Klienten, klientstubben og RPC-køretiden udføres på klientmaskinen.
Trin 2: En klient starter en klientstub-proces ved at videregive parametre på den sædvanlige måde. Pakningen af procedureparametrene kaldes rangering . Klientstubben gemmer i klientens eget adresserum, og den beder også den lokale RPC Runtime om at sende tilbage til serverstubben.
Trin 3: I dette trin kan brugeren få adgang til RPC ved at foretage et almindeligt lokalt procedureopkald. RPC Runtime styrer transmissionen af meddelelser mellem netværket på tværs af klient og server, og den udfører også jobbet med gentransmission, bekræftelse, routing og kryptering.
Trin 4: Efter at have gennemført serverproceduren vender den tilbage til serverstubben, som pakker (marshaller) returværdierne i en besked. Serverstubben sender derefter en besked tilbage til transportlaget.
Trin 5: I dette trin sender transportlaget resultatmeddelelsen tilbage til klienttransportlaget, som returnerer en meddelelse til klientstubben.
Trin 6: I dette trin demarshaller (udpakker) klientstubben returparametrene i den resulterende pakke, og eksekveringsprocessen vender tilbage til den, der ringer.
rr algoritme
Problemer med Remote Procedure Call (RPC)
I et operativsystem stod fjernprocedurekald eller RPC over for nogle problemer, der skal løses, såsom:
1. RPC Runtime
RPC-runtime-systemet er et bibliotek af rutiner og tjenester, der håndterer den netværkskommunikation, der ligger til grund for RPC-mekanismen. I løbet af et RPC-opkald håndterer runtime-systemkode på klientsiden og serversiden binding, etablerer kommunikation over en passende protokol, videregiver opkaldsdata mellem klienten og serveren og håndterer kommunikationsfejl.
2. Stub
Stubbens funktion er at give gennemsigtighed til den programmørskrevne applikationskode.
3. Indbinding
hvordan man udfører et script
Hvordan ved kunden, hvem han skal ringe til, og hvor tjenesten er bosat?
Den mest fleksible løsning er at bruge dynamisk binding og finde serveren på køretid, når RPC'en først laves. Første gang klientstubben kaldes, kontakter den en navneserver for at bestemme transportadressen, hvor serveren ligger. Indbindingen består af to dele:
4. Den kaldende semantik forbundet med RPC
Det er hovedsageligt klassificeret i følgende valg,
Karakteristika for RPC
Her er de væsentlige egenskaber ved fjernprocedurekald:
- Den kaldte procedure er i en anden proces, som sandsynligvis vil ligge i en anden maskine.
- Processerne deler ikke adresseplads.
- Parametre sendes kun af værdier.
- RPC udføres i miljøet af serverprocessen.
- Det giver ikke adgang til opkaldsprocedurens miljø.
Fordele ved RPC
Her er nogle fordele eller fordele ved RPC, såsom:
- RPC-metoden hjælper klienter med at kommunikere med servere ved den konventionelle brug af procedurekald på højt niveau sprog.
- RPC-metoden er modelleret på det lokale procedurekald, men proceduren vil højst sandsynligt blive udført i en anden proces og normalt en anden computer.
- RPC understøtter proces- og trådorienterede modeller.
- RPC gør den interne meddelelsesoverførselsmekanisme skjult for brugeren.
- Indsatsen for at omskrive og genudvikle koden er et minimum.
- Fjernprocedurekald kan bruges til distribution og det lokale miljø.
- Det forpligter mange af protokollagene til at forbedre ydeevnen.
- RPC giver abstraktion. For eksempel forbliver netværkskommunikationens meddelelsesoverførsel skjult for brugeren.
- RPC tillader brugen af applikationerne i et distribueret miljø, der ikke kun er i det lokale miljø.
- Med RPC-kode minimeres indsatsen for omskrivning og omudvikling.
- Procesorienterede og trådorienterede modeller understøttet af RPC.
Ulemper ved RPC
Her er nogle ulemper eller ulemper ved at bruge RPC, såsom:
- Fjernprocedureopkald passerer kun parametre efter værdier og pointerværdier, hvilket ikke er tilladt.
- Tid til fjernopkald (og retur) (dvs. omkostninger) kan være betydeligt lavere end en lokal procedure.
- Denne mekanisme er meget sårbar over for fejl, da den involverer et kommunikationssystem, en anden maskine og en anden proces.
- RPC-konceptet kan implementeres på forskellige måder, hvilket ikke er standard.
- Tilbyder ikke nogen fleksibilitet i RPC til hardwarearkitektur, da det for det meste er interaktionsbaseret.
- Omkostningerne ved processen øges på grund af et fjernprocedurekald.