Was ist Remote Procedure Call (RPC)? - Definition von Computer Weekly (2024)

von

Was ist ein Remote Procedure Call (RPC)?

Ein Remote Procedure Call (RPC), zu Deutsch entfernter Prozeduraufruf, ist ein Software-Kommunikationsprotokoll, das ein Programm verwendet, um einen Dienst von einem anderen Programm anzufordern, das sich auf einem anderen Computer und in einem anderen Netzwerk befindet, ohne die Details des Netzwerks verstehen zu müssen. RPC wird insbesondere verwendet, um andere Prozesse auf entfernten Systemen aufzurufen, als ob der Prozess ein lokales System wäre. Ein Prozeduraufruf wird manchmal auch als Funktionsaufruf (Function Call) oder Unterprogrammaufruf (Subroutine Call) bezeichnet.

RPC funktioniert wie ein Low-Level-Transportprotokoll für die Übertragung von Datenpaketen zwischen kommunizierenden Programmen. Es verwendet dazu ein Client-Server-Modell. Das anfragende Programm wird als Client bezeichnet, während das dienstleistende Programm als Server bezeichnet wird. Wie ein lokaler Prozeduraufruf ist ein RPC eine synchrone Operation, bei der das anfragende Programm angehalten werden muss, bis die Ergebnisse der entfernten Prozedur zurückgegeben werden. Durch die Verwendung von leichtgewichtigen Prozessen oder Threads, die sich denselben Adressraum teilen, können jedoch mehrere RPCs gleichzeitig ausgeführt werden.

Die Schnittstellendefinitionssprache (Interface Definition Language, IDL) – die Spezifikationssprache, die zur Beschreibung der Programmierschnittstelle (API) einer Softwarekomponente verwendet wird – wird üblicherweise in RPC-Software eingesetzt. In diesem Fall bildet IDL eine Brücke zwischen den Rechnern an beiden Enden der Verbindung, die unterschiedliche Betriebssysteme und Computersprachen verwenden können. Dies bedeutet, dass RPC auf Betriebssystemen wie Windows, Unix und macOS verwendet werden kann.

Wozu dient RPC?

RPC wird häufig für den Aufbau und die Interaktion mit verteilten Systemen verwendet. RPC ermöglicht es einem Programm, ein Unterprogramm auf einem anderen Computer aufzurufen, ohne dass es weiß, dass es entfernt ist. Obwohl sich RPC wie ein Transportprotokoll verhält, handelt es sich in Wirklichkeit um ein prozessübergreifendes Kommunikationsverfahren.

Wenn eine Programmanweisung oder ein Befehl, der das RPC-Framework verwendet, in ein ausführbares Programm kompiliert wird, wird ein Stub eingefügt. Ein Stub ist ein Stück Code, das zur Umwandlung von Parametern verwendet wird, die zwischen einem Client und einem Server übergeben werden. Der Stub fungiert als Repräsentant des Remote Procedure Codes. Wenn das Programm ausgeführt und der Prozeduraufruf getätigt wird, empfängt der Stub die Anfrage und leitet sie an ein Client-Laufzeitprogramm auf dem lokalen Computer weiter. Wenn der Client-Stub zum ersten Mal aufgerufen wird, kontaktiert er einen Nameserver, um die Transportadresse zu ermitteln, unter der sich der Server befindet.

Das Client-Laufzeitprogramm weiß, wie der entfernte Computer und die Serveranwendung zu adressieren sind, und sendet die Nachricht, die die entfernte Prozedur anfordert, über das Netzwerk. In ähnlicher Weise enthält der Server ein Laufzeitprogramm und einen Stub, der die Schnittstelle zur entfernten Prozedur selbst bildet. Response-Request-Protokolle werden auf die gleiche Weise zurückgesendet.

Wie funktioniert RPC?

Beim Aufruf einer entfernten Prozedur wird zunächst die aufrufende Umgebung angehalten. Die Parameter der Prozedur werden dann über das Netzwerk an das Gerät übertragen, auf dem die Prozedur ausgeführt werden soll. Danach beginnt die Ausführung der Prozedur in dieser Umgebung.

Wenn die Prozedur abgeschlossen ist, werden die Daten zurück in die aufrufende Umgebung übertragen, wo die Programmausführung fortgesetzt wird, als ob sie von einem normalen Prozeduraufruf zurückgekehrt wäre.

Die folgenden Schritte laufen bei einem RPC ab:

  1. Der Client ruft den Client-Stub auf. Der Aufruf ist ein lokaler Prozeduraufruf mit Parametern, die auf die übliche Weise auf den Stack gelegt werden.
  2. Der Client-Stub packt die Prozedurparameter in eine Nachricht und macht einen Systemaufruf, um die Nachricht zu senden. Das Verpacken der Prozedurparameter wird als marshaling bezeichnet.
  3. Das lokale Betriebssystem des Clients sendet die Nachricht vom Client-Gerät an das entfernte Server-Gerät.
  4. Die Transportschicht des Server-Betriebssystems leitet die eingehenden Pakete an den Server-Stub weiter.
  5. Der Server-Stub entpackt die Parameter aus der Nachricht, was als unmarshaling bezeichnet wird.
  6. Wenn die Server-Prozedur beendet ist, kehrt sie zum Server-Stub zurück und fasst die Rückgabewerte in einer Nachricht zusammen. Der Server-Stub sendet die Nachricht dann an die Transportschicht.
  7. Die Transportschicht sendet die Nachricht an die Client-Transportschicht, die die Nachricht dann an den Client-Stub zurückschickt.
  8. Der Client-Stub gibt die Rückgabeparameter frei und die Ausführung kehrt zum Aufrufer zurück.

RPC kann auch so modifiziert werden, dass es in anderen Umgebungen, zum Beispiel in Microservices, effektiv funktioniert.

Arten von RPC

Es gibt verschiedene RPC-Modelle und Implementierungen des Distributed Computings. Ein beliebtes Modell und eine Implementierung ist die Distributed Computing Environment der Open Software Foundation. Das Institute of Electrical and Electronics Engineers definiert RPC in seiner ISO-RPC-Spezifikation ISO/IEC 11578:1996.

Beispiele für RPC-Konfigurationen sind

  • Synchron. Dies ist die Standardmethode von RPC. Der Client tätigt einen Aufruf und wartet auf eine Antwort des Servers.
  • Nicht blockierend. Der Client tätigt einen Aufruf, aber anstatt auf eine Antwort zu warten, fährt er mit seiner eigenen Verarbeitung fort.
  • Batch-Modus. Ein Client sendet mehrere nicht blockierende Aufrufe in einer Gruppe.
  • Broadcast. Ein Client sendet eine Nachricht an mehrere Server und empfängt dann alle daraus resultierenden Antworten.
  • Callback. Ein Client tätigt einen nicht blockierenden Client-Server-Aufruf.

Zu den alternativen Methoden für die Client-Server-Kommunikation gehören Message Queueing, IBMs Advanced Program-to-Program Communication und Representational State Transfer (REST).

Vor- und Nachteile von RPC

RPC bietet folgende Vorteile:

  • Unterstützt die Kommunikation zwischen Clients und Servern durch die traditionelle Verwendung von Prozeduraufrufen in verschiedenen Sprachen.
  • Kann in lokalen und verteilten Umgebungen verwendet werden.
  • Unterstützt prozessorientierte und thread-orientierte Modelle.
  • Versteckt den internen Message-Passing-Mechanismus vor dem Benutzer und bietet Abstraktion.
  • Lässt viele der Protokollschichten weg, um die Leistung zu verbessern.

Obwohl RPC eine Vielzahl von Vorteilen hat, sollten sich die Benutzer auch der folgenden Fallstricke bewusst sein:

  • Der Client und der Server verwenden unterschiedliche Ausführungsumgebungen für ihre jeweiligen Routinen, und die Nutzung von Ressourcen ist komplexer. Daher sind RPC-Systeme nicht immer für die Übertragung großer Datenmengen geeignet.
  • RPC ist störanfällig, weil es ein Kommunikationssystem, einen anderen Rechner und einen anderen Prozess einbezieht.
  • RPC ist nicht so flexibel wie andere APIs, zum Beispiel REST.

RPC versus REST

REST ist ein Architekturstil für verteilte Systeme, der in der Softwareentwicklung häufig für Webdienste und Systeme verwendet wird, die problemlos miteinander kommunizieren können. Systeme, Dienstschnittstellen und APIs, die mit REST übereinstimmen, werden als RESTful APIs bezeichnet.

REST- und RPC-Protokolle weisen ähnliche Eigenschaften auf. So werden beide Protokolle beispielsweise für die Kommunikation über ein verteiltes System verwendet. Dennoch haben sie unterschiedliche Grundstrukturen und Anwendungsfälle. Während RPC es ermöglicht, Funktionen aus der Ferne aufzurufen, als ob sie lokal wären, ermöglichen REST APIs den Benutzern, Datenoperationen auf entfernten Servern durchzuführen.

REST muss zustandslos sein, während RPC-Systeme zustandsabhängig oder zustandslos sein können. REST ermöglicht auch eine größere Flexibilität, da es Daten in mehreren Formaten, wie JavaScript Object Notation (JSON) oder Extensible Markup Language (XML), in einer einzigen API senden kann, während RPC ein festes Datenformat verwendet.

RPCs werden in der Regel verwendet, um Remote-Funktionen auf einem Server aufzurufen, während REST in der Regel verwendet wird, um Standardoperationen wie das Erstellen, Lesen oder Löschen von Datensätzen auf einem Server durchzuführen.

Diese Definition wurde zuletzt im Juni 2024 aktualisiert

Ähnliche Begriffe

Elektrische Impedanz
Impedanz oder Scheinwiderstand bezeichnet den Gesamtwiderstand von elektrischen Komponenten, Schaltungen oder Systemen mit ...Gesamte Definition ansehen
Portnummer
Portnummern ermöglichen es, mehrere Verbindungen zwischen zwei Geräten zu unterscheiden. Außerdem lassen sich mit Ports ...Gesamte Definition ansehen
Private IP-Adresse
Ursprünglich wurden private IP-Adressen entwickelt, um den Mangel an IPv4-Adressen hinauszuzögern. Eine private IP-Adresse gilt ...Gesamte Definition ansehen

Erfahren Sie mehr über Netzwerkhardware

  • Welche Arten von APIs gibt es und wie unterscheiden sie sich?Von: StephenBigelow
  • REST versus SOAP: den passenden Webservice wählenVon: SwatiDhingra
  • Anwendungsschicht (Application Layer, OSI-Layer 7)Von: PaulKirvan
  • Microsoft Outlook AnywhereVon: Rahul Awati
Was ist Remote Procedure Call (RPC)? - Definition von Computer Weekly (2024)

FAQs

Was ist Remote Procedure Call (RPC)? - Definition von Computer Weekly? ›

A Remote Procedure Call (RPC) is a software communication protocol that one program uses to request a service from another program located on a different computer and network, without having to understand the network's details.

What is remote procedure call RPC in detail? ›

RPC is a request–response protocol. An RPC is initiated by the client, which sends a request message to a known remote server to execute a specified procedure with supplied parameters. The remote server sends a response to the client, and the application continues its process.

What is the meaning of RPC? ›

Remote Procedure Call (RPC) protocol is generally used to communicate between processes on different workstations. However, RPC works just as well for communication between different processes on the same workstation.

What is an example of a RPC? ›

Other Examples

In fact a program which is a server from one point of view may also be a client of another facility. A client may call back routines within the client it is serving. (picture ommitted): RPC allows software modules responsible for different areas to call each other irrespective of processor boundaries.

Why is the remote procedure call running on my computer? ›

Remote Procedure Call is used when your Windows is searching for updates.

Is it safe to disable RPC? ›

Microsoft recommends that you don't disable the RPC service.

How to fix RPC server is unavailable? ›

Resolution
  1. Verify correct DNS settings. Troubleshooting "RPC Server is Unavailable" in Windows.
  2. Verify correct Time and Time Zone settings.
  3. Verify that "TCP/IP NetBIOS Helper" is running and set to auto start after restart.
  4. Verify that "Remote Registry" is running and set to auto start after restart.
Jun 5, 2024

What does RPC mean on a PC? ›

A Remote Procedure Call (RPC) is a software communication protocol that one program uses to request a service from another program located on a different computer and network, without having to understand the network's details.

When to use RPC? ›

Remote Procedure Call (RPC) is typically used to call remote functions on a server that require an action result. You can use it when you require complex calculations or want to trigger a remote procedure on the server, with the process hidden from the client.

What is remote procedure call failed? ›

The error message 'the remote procedure call failed' typically arises due to communication issues between various processes on your computer. I would suggest trying the following steps: Start your computer and wait for the login screen. Hold down the Shift key and click on the Power icon in the bottom right.

What is RPC primarily used for? ›

Remote Procedure Call (RPC) is a powerful technique for constructing distributed, client-server based applications. It is based on extending the conventional local procedure calling so that the called procedure need not exist in the same address space as the calling procedure.

What services use RPC? ›

The most common RPC-based services are NFS (Network File System) and NIS (Network Information System). See the previous section for more information about NIS. The File Alteration Monitor (FAM) provided by the package fam is also an RPC service, and thus depends on portmap.

What applications use RPC? ›

You can use RPC in all client/server applications based on Windows operating systems. It can also be used to create client and server programs for heterogeneous network environments that include such operating systems as Unix and Apple.

How do I disable remote procedure call? ›

Start > search box, type ser > Enter > scroll down to Remote Procedur... > right click at it > Properties > ar Startup Type heading, click the pointer and select Disable > OK when done.

How do I stop remote service on my computer? ›

You can also use WMI to stop a remote service. Just retrieve the specific service from a remote computer by using the Get-WmiObject cmdlet and use the StopService method to stop the service. WMI is intended to work remote so this command gives the correct result! :-) # Stop-Service does not accept pipelined input!

How can I fix my computer remotely? ›

Use Quick Assist
  1. Select Start , enter Quick Assist, then select it in the list of results (or press the Windows key + Ctrl + Q). ...
  2. Select Help someone, then share the 6-digit code with the person you're helping.

What is RPC in call center? ›

Right Party Connects (RPC) is an outbound call center metric examining how well companies connect with the “right” person. The metric is defined as the percentage of calls made where the agent was able to connect with the intended person, divided by the total number of attempted calls.

What is the difference between rest call and RPC call? ›

Actions are limited to create, read, update, and delete (CRUD) only and are conveyed as HTTP verbs or HTTP methods. RPC focuses on functions or actions, while REST focuses on resources or objects.

What is msrpc used for? ›

MSRPC is Microsoft's implementation of the Distributed Computing Environment/Remote Procedure Calls (DCE\RPC) call system, used for creating and facilitating communication between distributed client and server programs.

Top Articles
Latest Posts
Article information

Author: Moshe Kshlerin

Last Updated:

Views: 5572

Rating: 4.7 / 5 (77 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Moshe Kshlerin

Birthday: 1994-01-25

Address: Suite 609 315 Lupita Unions, Ronnieburgh, MI 62697

Phone: +2424755286529

Job: District Education Designer

Hobby: Yoga, Gunsmithing, Singing, 3D printing, Nordic skating, Soapmaking, Juggling

Introduction: My name is Moshe Kshlerin, I am a gleaming, attractive, outstanding, pleasant, delightful, outstanding, famous person who loves writing and wants to share my knowledge and understanding with you.