Entfernte Funktionsaufrufe (RPC)

Aus dev.kaibel.net
Version vom 23. September 2025, 13:31 Uhr von PhilKa (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „{{DISPLAYTITLE:Entfernte Funktionsaufrufe (RPC)}} {{Infobox Software | Name = Entfernte Funktionsaufrufe (RPC) | Entwickler = Verschiedene | Erscheinungsjahr = ab 1980er | Typ = Kommunikationsprotokoll | Standard = ONC RPC, DCE/RPC }} == Überblick == '''Entfernte Funktionsaufrufe (Remote Procedure Calls, RPC)''' sind ein Konzept, bei dem ein Programm auf einem Rechner eine Prozedur (Funktion) auf einem entfernten Rechn…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Vorlage:Infobox Software

Überblick

Entfernte Funktionsaufrufe (Remote Procedure Calls, RPC) sind ein Konzept, bei dem ein Programm auf einem Rechner eine Prozedur (Funktion) auf einem entfernten Rechner aufruft, als handele es sich um eine lokale Funktion. RPC abstrahiert die Details der Netzwerkkommunikation und erleichtert so verteilte Systeme und Client-Server-Architekturen.

Funktionsprinzip

RPC ermöglicht es, dass der aufrufende Prozess („Client“) und der ausführende Prozess („Server“) transparent über ein Netzwerk kommunizieren. Der Client ruft eine Prozedur auf, übergibt Parameter, und erhält Rückgabewerte, ohne direkt mit Netzwerk-Sockets oder Protokollen umgehen zu müssen.

Typischer Ablauf:

  1. Der Client ruft eine lokale Stub-Funktion auf.
  2. Der Stub serialisiert die Parameter („Marshalling“) und sendet sie an den Server.
  3. Der Serverstub empfängt die Daten, deserialisiert sie und ruft die tatsächliche Serverfunktion auf.
  4. Das Ergebnis wird zurückserialisiert („Unmarshalling“) und an den Client übertragen.

ONC RPC-Standard

ONC RPC (Open Network Computing Remote Procedure Call) ist ein Standard, der ursprünglich von Sun Microsystems entwickelt wurde. Er ist im RFC 5531 spezifiziert und basiert auf UDP oder TCP. ONC RPC wird in UNIX-Umgebungen häufig verwendet, z. B. im Network File System (NFS).

Wichtige Merkmale von ONC RPC:

  • Plattformunabhängigkeit durch einheitliche Datenrepräsentation
  • Unterstützung mehrerer Transportschichten (UDP/TCP)
  • Nutzung von Portmapper-/rpcbind-Diensten zur Dienstzuordnung
  • Weit verbreitet in klassischen UNIX/Linux-Systemen

Schnittstellendefinition

Bei RPC werden Schnittstellen in einer Schnittstellenbeschreibungssprache (IDL) definiert.

  • Bei ONC RPC wird die RPC Language (XDR/RPCGen) verwendet.
  • Der Entwickler beschreibt die Prozeduren, Parameter und Datentypen in einer .x-Datei.
  • Das Werkzeug rpcgen generiert aus dieser Datei automatisch Client- und Server-Stubs in C.

Beispiel (vereinfachter Auszug): ```c program ADD_PROG {

   version ADD_VERS {
       int ADD(int, int) = 1;
   } = 1;

} = 0x23451111;