Remote Procedure Call eller RPC är en kraftfull teknik för att konstruera distribuerade, klient-serverbaserade applikationer. Det är också känt som ett funktionsanrop eller ett subrutinsamtal. Ett fjärrproceduranrop är när ett datorprogram får en procedur att köras i ett annat adressutrymme, kodat som ett lokalt proceduranrop, utan att programmeraren uttryckligen anger detaljerna för fjärrinteraktionen. Programmeraren skriver i huvudsak samma kod oavsett om subrutinen är lokal för det exekverande programmet eller fjärrkontroll. Detta är en form av klient-server-interaktion som implementeras via ett förfrågningssvar-meddelandeöverföringssystem.
RPC-modellen innebär platstransparens att anropsprocedurerna i stort sett är desamma, vare sig de är lokala eller fjärranslutna. Vanligtvis är de inte identiska, så att lokala samtal kan särskiljas från fjärrsamtal. Fjärrsamtal är vanligtvis storleksordningar långsammare och mindre tillförlitliga än lokala samtal, så det är viktigt att skilja dem åt.
RPC:er är en form av inter-process communication (IPC), genom att olika processer har olika adressutrymmen. De har distinkta virtuella adressutrymmen på samma värddator, även om det fysiska adressutrymmet är detsamma. Om de finns på olika värdar är det fysiska adressutrymmet annorlunda.
Hur man ringer ett fjärrsamtal
Den anropande miljön avbryts, procedurparametrar överförs över nätverket till miljön där proceduren ska utföras, och proceduren utförs där.
När proceduren avslutas och ger sina resultat, överförs den tillbaka till den anropande miljön, där exekveringen återupptas som om den återvände från ett vanligt proceduranrop.
OBS: RPC är särskilt väl lämpad för klient-server-interaktion (t.ex. fråga-svar) där kontrollflödet växlar mellan den som ringer och den som ringer. Konceptuellt körs inte klienten och servern samtidigt; istället hoppar utförandetråden från den som ringer till den som ringer och sedan tillbaka igen.
Typer av RPC
Det finns tre typer av fjärranrop (RPC) i ett operativsystem, till exempel:
1. Callback RPC
Denna typ av RPC möjliggör ett P2P-paradigm mellan deltagande processer. Det hjälper en process att vara både klient- och servertjänster. Callback RPC har följande funktioner, såsom:
pseudokod java
- Fjärrbehandlade interaktiva applikationsproblem.
- Erbjuder server med klienthantering.
- Återuppringning får klientprocessen att vänta.
- Hantera låsningar för återuppringning.
- Det underlättar ett peer-to-peer-paradigm bland deltagande processer.
2. Sänd RPC
Broadcast RPC är en klients begäran som sänds på nätverket, bearbetad av alla servrar med metoden för att bearbeta den begäran. Broadcast RPC har följande funktioner, såsom:
- Låter dig ange att klientens begärandemeddelande måste sändas.
- Du kan deklarera sändningsportar.
- Det hjälper till att minska belastningen på det fysiska nätverket.
3. Batch-mode RPC
Batch-mode RPC hjälper till att köa, separera RPC-förfrågningar, i en överföringsbuffert, på klientsidan, och sedan skicka dem på ett nätverk i en batch till servern. Batch-mode RPC har följande funktioner, såsom:
- Det minimerar de omkostnader som är involverade i att skicka en begäran genom att skicka dem över nätverket i en batch till servern.
- Den här typen av RPC-protokoll är endast effektiv för en applikation som behöver lägre samtalstaxor.
- Den behöver ett pålitligt överföringsprotokoll.
Vad gör RPC?
När programsatser som använder RPC-ramverket kompileras till ett körbart program, ingår en stubb i den kompilerade koden som representerar fjärrprocedurkoden.
vad är en stack i java
När programmet körs och proceduranropet utfärdas, tar stubben emot begäran och vidarebefordrar den till ett klientkörningsprogram i den lokala datorn. Första gången klientstubben anropas kontaktar den en namnserver för att fastställa transportadressen där servern finns.
Klientkörningsprogrammet vet hur det adresserar fjärrdatorn och serverapplikationen och skickar meddelandet över nätverket som begär fjärrproceduren. På liknande sätt inkluderar servern ett runtime-program och stubb som gränssnitt med själva fjärrproceduren, och svarsförfrågan-protokoll returneras på samma sätt.
Funktioner i RPC
I ett operativsystem har RPC (Remote Procedure Call) följande funktioner, till exempel:
- RPC döljer komplexiteten i meddelandeöverföringsprocessen för användaren.
- RPC använder bara specifika lager av OSI-modellen som transportlagret.
- Klienter kan kommunicera med servern genom att använda språk på högre nivå.
- RPC fungerar bra med både lokala miljöer och fjärrmiljöer.
- Programmet för RPC är skrivet i enkel kod och är lätt att förstå av programmeraren.
- Operativsystemet kan enkelt hantera processer och trådar som är involverade i RPC.
- Operativsystemet döljer abstraktionerna av RPC för användaren.
Hur fungerar RPC?
När ett fjärrproceduranrop anropas, avbryts den anropande miljön, procedurparametrarna överförs över nätverket till miljön där proceduren ska utföras, och proceduren exekveras sedan i den miljön.
När proceduren är klar, överförs resultaten tillbaka till den anropande miljön, där exekveringen återupptas som om den återvände från ett vanligt proceduranrop.
Ett fjärranrop (RPC) fungerar i följande steg i ett operativsystem:
Steg 1: Klienten, klientstubben och RPC-körtiden körs på klientdatorn.
Steg 2: En klient startar en klientstubprocess genom att skicka parametrar på vanligt sätt. Packningen av procedurparametrarna kallas rangering . Klientstubben lagras i klientens eget adressutrymme, och den ber också den lokala RPC Runtime att skicka tillbaka till serverstubben.
Steg 3: I detta skede kan användaren komma åt RPC genom att göra ett vanligt lokalt förfarandesamtal. RPC Runtime hanterar överföringen av meddelanden mellan nätverket över klient och server, och den utför även jobbet med återsändning, bekräftelse, routing och kryptering.
java index för
Steg 4: Efter att ha slutfört serverproceduren återgår den till serverstubben, som packar (marshallar) returvärdena i ett meddelande. Serverstubben skickar sedan ett meddelande tillbaka till transportlagret.
Steg 5: I detta steg skickar transportlagret tillbaka resultatmeddelandet till klienttransportlagret, vilket returnerar ett meddelande till klientstubben.
Steg 6: I detta steg demarshallar (uppackar) klientstubben returparametrarna i det resulterande paketet, och exekveringsprocessen återgår till anroparen.
Problem med Remote Procedure Call (RPC)
I ett operativsystem mötte Fjärrproceduranrop eller RPC några problem som måste åtgärdas, till exempel:
1. RPC Runtime
RPC-runtime-systemet är ett bibliotek av rutiner och tjänster som hanterar nätverkskommunikationen som ligger till grund för RPC-mekanismen. Under loppet av ett RPC-samtal hanterar kod för körtidssystem på klientsidan och serversidan bindning, upprättar kommunikation över ett lämpligt protokoll, skickar samtalsdata mellan klienten och servern och hanterar kommunikationsfel.
2. Stubb
Stubbens funktion är att ge transparens till den programmerarskrivna applikationskoden.
3. Bindning
beräkning av anställning i excel
Hur vet kunden vem han ska ringa och var tjänsten finns?
Den mest flexibla lösningen är att använda dynamisk bindning och hitta servern vid körning när RPC:n först görs. Första gången klientstubben anropas kontaktar den en namnserver för att fastställa transportadressen där servern finns. Bindningen består av två delar:
4. Den anropssemantik som är associerad med RPC
Det är huvudsakligen klassificerat i följande val,
Egenskaper för RPC
Här är de väsentliga egenskaperna för fjärranrop:
- Den anropade proceduren är i en annan process, som sannolikt finns i en annan maskin.
- Processerna delar inte adressutrymme.
- Parametrar skickas endast av värden.
- RPC körs inom serverprocessens miljö.
- Den ger inte åtkomst till anropsprocedurens miljö.
Fördelar med RPC
Här är några fördelar med RPC, till exempel:
- RPC-metoden hjälper klienter att kommunicera med servrar genom konventionell användning av proceduranrop på högnivåspråk.
- RPC-metoden är modellerad på det lokala proceduranropet, men proceduren kommer troligen att exekveras i en annan process och vanligtvis en annan dator.
- RPC stöder process- och trådorienterade modeller.
- RPC gör den interna meddelandeöverföringsmekanismen dold för användaren.
- Ansträngningen behöver för att skriva om och återutveckla koden är minimal.
- Fjärrproceduranrop kan användas för distribution och den lokala miljön.
- Den binder många av protokolllagren för att förbättra prestandan.
- RPC ger abstraktion. Till exempel förblir nätverkskommunikationens karaktär av meddelandeöverföring dold för användaren.
- RPC tillåter användningen av applikationerna i en distribuerad miljö som inte bara finns i den lokala miljön.
- Med RPC-kod minimeras omskrivnings- och omutvecklingsinsatser.
- Processorienterade och trådorienterade modeller som stöds av RPC.
Nackdelar med RPC
Här är några nackdelar eller nackdelar med att använda RPC, till exempel:
- Fjärrproceduranrop passerar parametrar endast med värden och pekarvärden, vilket inte är tillåtet.
- Tid för anrop (och retur) för fjärrprocedurer (d.v.s. omkostnader) kan vara betydligt lägre än en lokal procedur.
- Denna mekanism är mycket sårbar för misslyckanden eftersom den involverar ett kommunikationssystem, en annan maskin och en annan process.
- RPC-konceptet kan implementeras på olika sätt, vilket inte är standard.
- Erbjuder ingen flexibilitet i RPC för hårdvaruarkitektur eftersom den mestadels är interaktionsbaserad.
- Kostnaden för processen ökar på grund av ett fjärranrop.