Remote Procedure Call (RPC) protokol i distribueret system
Hvad er RPC?
Remote Procedure Call (RPC) er en interproceskommunikationsteknik. Den fulde form for RPC er Remote Procedure Call. Det bruges til klient-server-applikationer. RPC-mekanismer bruges, når et computerprogram får en procedure eller subrutine til at udføre i et andet adresserum, som er kodet som et normalt procedurekald, uden at programmøren specifikt koder detaljerne for fjerninteraktionen.
Dette procedurekald styrer også transportprotokol på lavt niveau, såsom User Datagram Protocol, Transmission Kontrolprotokol/internetprotokol osv. Den bruges til at overføre meddelelsesdata mellem programmer.
Typer af RPC
Tre typer RPC er:
- Callback RPC
- Udsend RPC
- Batch-mode RPC
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.
Funktioner af Callback RPC:
- 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.
Udsend RPC
Broadcast RPC er en klients anmodning, som udsendes på netværket, behandlet af alle servere, som har metoden til at behandle denne anmodning.
Funktioner af Broadcast RPC:
- 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
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.
Funktioner af batch-mode RPC:
- Det minimerer overhead involveret i at sende en anmodning, da det sender dem over netværket i én batch til serveren.
- Denne type RPC-protokol er kun effektiv til den applikation, der har brug for lavere opkaldstakster.
- Den har brug for en pålidelig transmissionsprotokol.
RPC Architecture
RPC-arkitektur har hovedsageligt fem komponenter i programmet:
- Klient
- Klient Stub
- RPC Runtime
- Server Stub
- Server

Hvordan fungerer RPC?
Følgende trin finder sted under RPC-processen:
Trin 1) Klienten, klientstubben og en forekomst af RPC-kørselstid udføres på klientmaskinen.
Trin 2) En klient starter en klientstub-proces ved at videregive parametre på den sædvanlige måde. Klientstubben gemmer i klientens eget adresseområde. Den beder også den lokale RPC Runtime om at sende tilbage til serverstubben.
Trin 3) I dette trin tilgås RPC af brugeren ved at lave en almindelig lokal procedurekalkulation. RPC Runtime styrer transmissionen af meddelelser mellem netværket på tværs af klient og server. 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 udførelsesprocessen vender tilbage til den, der ringer.
Karakteristika for RPC
Her er de væsentlige egenskaber ved RPC:
- 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ø.
Funktioner af RPC
Her er de vigtige funktioner i RPC:
- Simpel opkaldssyntaks
- Tilbyder kendt semantik
- Giv en veldefineret grænseflade
- Det kan kommunikere mellem processer på samme eller forskellige maskiner
Fordele ved RPC
Her er fordele/fordele ved RPC:
- 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 den kaldte procedure 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 med det formål at distribuere 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øttes af RPC.
Ulemper ved RPC
Her er ulemperne/ulemperne ved at bruge RPC:
- Fjernprocedureopkald passerer kun parametre efter værdier og pointerværdier, hvilket ikke er tilladt.
- Tidspunkt for fjernopkald (og retur) (dvs. faste omkostninger) kan være væsentligt lavere end for 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.
- Ikke tilbyder nogen fleksibilitet i RPC til hardwarearkitektur, da det for det meste er interaktionsbaseret.
- Omkostningerne ved processen øges på grund af et fjernprocedurekald.
Resumé
- Et fjernprocedurekald er et kommunikation mellem processer teknik.
- Tre typer RPC er 1) Callback RPC 2) Broadcast RPC og 3) Batch-mode RPC
- RPC-arkitektur har hovedsageligt fem komponenter i programmet: 1) Client 2) Client Stub 3) RPC Runtime 4) Server Stub og 5) Server
- I RPC-metoden deler processerne ikke adresseplads
- RPC tilbyder enkel opkaldssyntaks og kendt semantik
- RPC-metoden hjælper klienter med at kommunikere med servere ved den konventionelle brug af procedurekald på højt niveau sprog.
- Den største ulempe ved RPC-metoden er, at den er meget sårbar over for fejl, da den involverer et kommunikationssystem, en anden maskine og en anden proces.