logo

Wat is RPC in besturingssysteem?

Remote Procedure Call of RPC is een krachtige techniek voor het bouwen van gedistribueerde, client-server-gebaseerde applicaties. Het wordt ook wel een functieaanroep of een subroutineaanroep genoemd. Van een externe procedureaanroep is sprake wanneer een computerprogramma ervoor zorgt dat een procedure wordt uitgevoerd in een andere adresruimte, gecodeerd als een lokale procedureaanroep, zonder dat de programmeur expliciet de details voor de externe interactie vermeldt. De programmeur schrijft in essentie dezelfde code, ongeacht of de subroutine lokaal is voor het uitvoerende programma of op afstand. Dit is een vorm van client-server-interactie die wordt geïmplementeerd via een request-response-berichtdoorgeefsysteem.

Wat is RPC in besturingssysteem

Het RPC-model impliceert dit transparantie van de locatie dat de oproepprocedures grotendeels hetzelfde zijn, zowel lokaal als op afstand. Meestal zijn ze niet identiek, zodat lokale gesprekken kunnen worden onderscheiden van gesprekken op afstand. Oproepen op afstand zijn gewoonlijk ordes van grootte langzamer en minder betrouwbaar dan lokale oproepen, dus het is belangrijk om ze van elkaar te onderscheiden.

RPC's zijn een vorm van interprocescommunicatie (IPC), in die zin dat verschillende processen verschillende adresruimten hebben. Ze hebben verschillende virtuele adresruimten op dezelfde hostmachine, ook al is de fysieke adresruimte hetzelfde. Terwijl als ze zich op verschillende hosts bevinden, de fysieke adresruimte anders is.

Een procedureoproep op afstand maken

De aanroepende omgeving wordt opgeschort, procedureparameters worden via het netwerk overgedragen naar de omgeving waar de procedure moet worden uitgevoerd, en de procedure wordt daar uitgevoerd.

Wat is RPC in besturingssysteem

Wanneer de procedure is voltooid en de resultaten oplevert, wordt deze teruggestuurd naar de aanroepende omgeving, waar de uitvoering wordt hervat alsof deze terugkeert van een normale procedureaanroep.

OPMERKING: RPC is vooral geschikt voor client-server-interactie (bijvoorbeeld bij vraag-antwoord), waarbij de controlestroom wisselt tussen de beller en de gebelde. Conceptueel voeren de client en de server niet tegelijkertijd uit; in plaats daarvan springt de uitvoeringsdraad van de beller naar de opgeroepene en dan weer terug.

Soorten RPC

Er zijn drie soorten Remote Procedure Call (RPC) in een besturingssysteem, zoals:

Wat is RPC in besturingssysteem

1. Terugbel-RPC

Dit type RPC maakt een P2P-paradigma tussen deelnemende processen mogelijk. Het helpt een proces om zowel client- als serverdiensten te zijn. Callback RPC heeft de volgende functies, zoals:

huidige datum in Java
  • Op afstand verwerkte interactieve applicatieproblemen.
  • Biedt een server met clienthandle.
  • Terugbellen zorgt ervoor dat het clientproces wacht.
  • Beheer callback-impasses.
  • Het faciliteert een peer-to-peer-paradigma tussen deelnemende processen.

2. RPC uitzenden

Broadcast RPC is een verzoek van een client dat wordt uitgezonden op het netwerk en wordt verwerkt door alle servers met de methode voor het verwerken van dat verzoek. Broadcast RPC heeft de volgende functies, zoals:

  • Hiermee kunt u opgeven dat het verzoekbericht van de client moet worden uitgezonden.
  • U kunt uitzendpoorten declareren.
  • Het helpt de belasting van het fysieke netwerk te verminderen.

3. RPC in batchmodus

RPC in batchmodus helpt bij het in de wachtrij plaatsen, scheiden van RPC-verzoeken in een transmissiebuffer aan de clientzijde en het vervolgens in één batch via een netwerk naar de server sturen. Batch-modus RPC heeft de volgende functies, zoals:

  • Het minimaliseert de overhead die gepaard gaat met het verzenden van een verzoek door deze in één batch via het netwerk naar de server te verzenden.
  • Dit type RPC-protocol is alleen efficiënt voor een toepassing die lagere beltarieven nodig heeft.
  • Het heeft een betrouwbaar transmissieprotocol nodig.

Wat doet RPC?

Wanneer programma-instructies die het RPC-framework gebruiken, worden gecompileerd tot een uitvoerbaar programma, wordt een stub opgenomen in de gecompileerde code die de code voor de externe procedure vertegenwoordigt.

Wanneer het programma wordt uitgevoerd en de procedureaanroep wordt gedaan, ontvangt de stub het verzoek en stuurt dit door naar een clientruntimeprogramma op de lokale computer. De eerste keer dat de client-stub wordt aangeroepen, neemt deze contact op met een naamserver om het transportadres te bepalen waar de server zich bevindt.

Het clientruntimeprogramma weet hoe het de externe computer en servertoepassing moet aanspreken en verzendt het bericht over het netwerk waarin om de externe procedure wordt gevraagd. Op dezelfde manier bevat de server een runtimeprogramma en een stub die communiceren met de externe procedure zelf, en Response-request-protocollen worden op dezelfde manier geretourneerd.

Kenmerken van RPC

In een besturingssysteem heeft Remote Procedure Call (RPC) de volgende kenmerken, zoals:

  • RPC verbergt de complexiteit van het berichtdoorgifteproces voor de gebruiker.
  • RPC gebruikt alleen specifieke lagen van het OSI-model, zoals de transportlaag.
  • Clients kunnen met de server communiceren door talen van een hoger niveau te gebruiken.
  • RPC werkt goed met zowel lokale omgevingen als externe omgevingen.
  • Het programma van RPC is geschreven in eenvoudige code en is gemakkelijk te begrijpen voor de programmeur.
  • Het besturingssysteem kan eenvoudig omgaan met processen en threads die bij RPC betrokken zijn.
  • Het besturingssysteem verbergt de abstracties van RPC voor de gebruiker.

Hoe werkt RPC?

Wanneer een externe procedureaanroep wordt aangeroepen, wordt de aanroepende omgeving opgeschort, worden de procedureparameters via het netwerk overgedragen naar de omgeving waar de procedure moet worden uitgevoerd, en wordt de procedure vervolgens in die omgeving uitgevoerd.

Wanneer de procedure is voltooid, worden de resultaten teruggestuurd naar de aanroepende omgeving, waar de uitvoering wordt hervat alsof u terugkeert van een normale procedureaanroep.

arrays retourneren in Java
Wat is RPC in besturingssysteem

Een remote procedure call (RPC) werkt in de volgende stappen in een besturingssysteem:

Stap 1: De client, client-stub en RPC-runtime worden uitgevoerd op de clientcomputer.

Stap 2: Een client start een client-stubproces door op de gebruikelijke manier parameters door te geven. Het verpakken van de procedureparameters wordt aangeroepen rangschikken . De client-stub wordt opgeslagen in de eigen adresruimte van de client en vraagt ​​ook de lokale RPC Runtime om terug te sturen naar de server-stub.

Stap 3: In deze fase heeft de gebruiker toegang tot RPC door regelmatig een lokaal procedureel gesprek te voeren. RPC Runtime beheert de overdracht van berichten tussen het netwerk via client en server, en voert ook de taak van herverzending, bevestiging, routering en codering uit.

Stap 4: Na het voltooien van de serverprocedure keert het terug naar de serverstub, die de geretourneerde waarden in een bericht verpakt (samenvoegt). De serverstub stuurt vervolgens een bericht terug naar de transportlaag.

Stap 5: In deze stap stuurt de transportlaag het resultaatbericht terug naar de clienttransportlaag, die een bericht terugstuurt naar de clientstub.

Stap 6: In deze fase demarshall (pakt) de client-stub de retourparameters in het resulterende pakket uit, en keert het uitvoeringsproces terug naar de aanroeper.

Problemen met Remote Procedure Call (RPC)

In een besturingssysteem werden bij Remote Procedure Call of RPC enkele problemen ondervonden die moesten worden aangepakt, zoals:

Wat is RPC in besturingssysteem

1. RPC-runtime

Java 8

Het RPC-runtimesysteem is een bibliotheek van routines en services die de netwerkcommunicatie afhandelen die ten grondslag ligt aan het RPC-mechanisme. Tijdens een RPC-oproep verwerken runtime-systemen aan de client- en serverzijde de binding, brengen communicatie tot stand via een geschikt protocol, geven oproepgegevens door tussen de client en de server en behandelen communicatiefouten.

2. Stomp

De functie van de stub is om transparantie te bieden aan de door de programmeur geschreven applicatiecode.

    Aan de klantzijde:De stub verzorgt de interface tussen de lokale procedureaanroep van de client en het runtimesysteem, waarbij gegevens worden verzameld en ontkoppeld, het RPC-runtimeprotocol wordt aangeroepen en, indien gevraagd, enkele van de bindende stappen worden uitgevoerd.Aan de serverkant:De stub biedt een vergelijkbare interface tussen het runtime-systeem en de lokale managerprocedures die door de server worden uitgevoerd.

3. Bindend

Hoe weet de klant wie hij moet bellen en waar de dienst zich bevindt?

De meest flexibele oplossing is om dynamische binding te gebruiken en de server tijdens runtime te vinden wanneer de RPC voor het eerst wordt gemaakt. De eerste keer dat de client-stub wordt aangeroepen, maakt deze contact met een naamserver om het transportadres te bepalen waarop de server zich bevindt. De binding bestaat uit twee delen:

    Wij:Een server die een dienst aanbiedt, exporteert er een interface voor. Als u een interface exporteert, wordt deze bij het systeem geregistreerd, zodat klanten deze kunnen gebruiken.Lokaliseren:Een Klant moet een (geëxporteerde) interface importeren voordat de communicatie kan beginnen.

4. De aanroepende semantiek geassocieerd met RPC

probeer catchblock eens in java

Het is hoofdzakelijk ingedeeld in de volgende keuzes,

    Bericht over verzoek opnieuw proberen:Of er opnieuw moet worden geprobeerd een verzoekbericht te verzenden wanneer een server is uitgevallen of de ontvanger het bericht niet heeft ontvangen.Dubbele filtering:Verwijder de dubbele serververzoeken.Doorgifte van resultaten:Om verloren berichten opnieuw te verzenden zonder de bewerkingen aan de serverzijde opnieuw uit te voeren.

Kenmerken van RPC

Dit zijn de essentiële kenmerken van een procedureoproep op afstand:

  • De aangeroepen procedure bevindt zich in een ander proces, dat zich waarschijnlijk op een andere machine bevindt.
  • De processen delen geen adresruimte.
  • Parameters worden alleen door waarden doorgegeven.
  • RPC wordt uitgevoerd binnen de omgeving van het serverproces.
  • Het biedt geen toegang tot de omgeving van de aanroepprocedure.

Voordelen van RPC

Hier zijn enkele voordelen of voordelen van RPC, zoals:

  • De RPC-methode helpt clients te communiceren met servers door het conventionele gebruik van procedureaanroepen in talen op hoog niveau.
  • De RPC-methode is gemodelleerd naar de lokale procedureaanroep, maar de procedure wordt hoogstwaarschijnlijk in een ander proces en meestal op een andere computer uitgevoerd.
  • RPC ondersteunt proces- en thread-georiënteerde modellen.
  • RPC zorgt ervoor dat het interne mechanisme voor het doorgeven van berichten verborgen blijft voor de gebruiker.
  • De inspanning die nodig is om de code te herschrijven en opnieuw te ontwikkelen is minimaal.
  • Remote procedure calls kunnen worden gebruikt voor distributie en de lokale omgeving.
  • Het zet veel van de protocollagen in om de prestaties te verbeteren.
  • RPC zorgt voor abstractie. Het doorgeven van berichten door netwerkcommunicatie blijft bijvoorbeeld verborgen voor de gebruiker.
  • RPC maakt het gebruik van de applicaties mogelijk in een gedistribueerde omgeving die zich niet alleen in de lokale omgeving bevindt.
  • Met RPC-code worden herschrijf- en herontwikkelingsinspanningen geminimaliseerd.
  • Procesgerichte en threadgerichte modellen ondersteund door RPC.

Nadelen van RPC

Hier zijn enkele nadelen of nadelen van het gebruik van RPC, zoals:

  • Remote Procedure Call geeft parameters alleen waarden en pointerwaarden door, wat niet is toegestaan.
  • De tijd voor het aanroepen (en retourneren) van procedures op afstand (d.w.z. overhead) kan aanzienlijk lager zijn dan bij een lokale procedure.
  • Dit mechanisme is zeer kwetsbaar voor storingen, omdat er een communicatiesysteem, een andere machine en een ander proces bij betrokken zijn.
  • Het RPC-concept kan op verschillende manieren worden geïmplementeerd, wat niet standaard is.
  • Biedt geen enkele flexibiliteit in RPC voor hardwarearchitectuur, omdat deze grotendeels op interactie is gebaseerd.
  • De kosten van het proces nemen toe vanwege een externe procedureaanroep.