Know-how: Kommunikation mit Remote Procedure Calls

Grundlagen

Im Folgenden wird zunächst eine kurze Beschreibung der grundlegenden Mechanismen von RPC gegeben. RPC ist allerdings eher ein allgemeines Konzept als ein gemeinsames Protokoll. Es gibt eine ganze Reihe von Implementierungen (Sun RPC, Microsoft RPC et cetera), die sich in den Details unterscheiden. Daneben stehen in anderen Programmiersprachen ähnliche Möglichkeiten zur Verfügung. Java bezeichnet dieses Konzept als Remote Methode Invocation (RMI). Im Folgenden werden Details der Realisierung an Hand eines einfachen Beispiels für ein Telefonbuch besprochen. Die Entwicklung erfolgt mit Visual C unter Windows 2000. Die Darstellung versteht sich als Einführung in die Programmierung mit RPC anhand der Basisfunktionalitäten.

RPC soll möglichst weit gehend alle netzwerkrelevanten Details übernehmen. Im Idealfall ist für den Anwender nicht sichtbar, dass die Anwendung über ein Netzwerk läuft. Die Kapselung erfolgt durch so genannte Stubs (Englisch: (Baum)Stumpf, Stummel). Die Stubs wirken als Mittler zwischen der Anwendung und dem RPC-Protokoll. Ein entsprechender Generator oder Compiler erzeugt die Stubs für die jeweilige Programmiersprache automatisch aus einer abstrakten Definition des Interface. Der Client ruft den Client-Stub als normale Prozedur auf und übergibt die notwendigen Argumente. Im Stub erfolgen die Umsetzung auf eine netzwerktaugliche Darstellung und der Aufruf des RPC-Protokolls.