Remote Procedure Call (RPC) Protocol i distribuerat system
Vad är RPC?
Remote Procedure Call (RPC) är en kommunikationsteknik mellan processer. Den fullständiga formen av RPC är Remote Procedure Call. Den används för klient-serverapplikationer. RPC-mekanismer används när ett datorprogram får en procedur eller subrutin att köras i ett annat adressutrymme, vilket kodas som ett normalt proceduranrop utan att programmeraren specifikt kodar detaljerna för fjärrinteraktionen.
Detta proceduranrop hanterar även lågnivåtransportprotokoll, såsom User Datagram Protocol, Transmission Control Protocol/Internet Protocol etc. Det används för att överföra meddelandedata mellan program.
Typer av RPC
Tre typer av RPC är:
- Callback RPC
- Sänd RPC
- RPC i batchläge
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.
Funktioner för Callback RPC:
- 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.
Sänd RPC
Broadcast RPC är en klients begäran, som sänds på nätverket, bearbetad av alla servrar som har metoden för att bearbeta den begäran.
Funktioner för Broadcast RPC:
- Låter dig ange att klientens begäranmeddelande måste sändas.
- Du kan deklarera sändningsportar.
- Det hjälper till att minska belastningen på det fysiska nätverket
RPC i batchläge
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.
Funktioner för RPC i batchläge:
- Det minimerar overhead som är involverat i att skicka en förfrågan eftersom den skickar dem över nätverket i en batch till servern.
- Den här typen av RPC-protokoll är endast effektiv för den applikation som behöver lägre samtalstaxor.
- Den behöver ett pålitligt överföringsprotokoll.
RPC Architecture
RPC-arkitekturen har huvudsakligen fem komponenter i programmet:
- Klient
- Klientstubb
- RPC körtid
- Server Stub
- server
Hur RPC fungerar?
Följande steg sker under RPC-processen:
Steg 1) Klienten, klientstubben och en instans av RPC-körtid körs på klientdatorn.
Steg 2) En klient startar en klientstubprocess genom att skicka parametrar på vanligt sätt. Klientstubben lagras i klientens eget adressutrymme. Den ber också den lokala RPC Runtime att skicka tillbaka till serverstubben.
Steg 3) I detta skede, RPC nås av användaren genom att göra en vanlig lokal procedurkal. RPC Runtime hanterar överföringen av meddelanden mellan nätverket över klient och server. Den utför också jobbet med återsändning, bekräftelse, routing och kryptering.
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 den som ringer.
Egenskaper för RPC
Här är de väsentliga egenskaperna hos RPC:
- 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ö.
Funktioner i RPC
Här är de viktiga funktionerna i RPC:
- Enkel syntax för samtal
- Erbjuder känd semantik
- Ge ett väldefinierat gränssnitt
- Den kan kommunicera mellan processer på samma eller olika maskiner
Fördelar med RPC
Här är fördelar/fördelar med RPC:
- 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 den anropade 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 distribuerad och lokal miljö.
- 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 omskrivning och omutveckling.
- Processorienterade och trådorienterade modeller stöds av RPC.
Nackdelar med RPC
Här är nackdelarna/nackdelarna med att använda RPC:
- 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 (dvs. omkostnader) kan vara betydligt lägre än för 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.
- Inte erbjuder någon flexibilitet i RPC för hårdvaruarkitektur eftersom det mestadels är interaktionsbaserat.
- Kostnaden för processen ökar på grund av ett fjärranrop.
Sammanfattning
- Ett fjärranrop är ett interprocesskommunikation teknik.
- Tre typer av RPC är 1) Callback RPC 2) Broadcast RPC och 3) Batch-mode RPC
- RPC-arkitekturen har huvudsakligen fem komponenter i programmet: 1) Client 2) Client Stub 3) RPC Runtime 4) Server Stub och 5) Server
- I RPC-metoden delar inte processerna adressutrymme
- RPC erbjuder enkel samtalssyntax och känd semantik
- RPC-metoden hjälper klienter att kommunicera med servrar genom konventionell användning av proceduranrop på högnivåspråk.
- Den största nackdelen med RPC-metoden är att den är mycket sårbar för misslyckanden eftersom den involverar ett kommunikationssystem, en annan maskin och en annan process.