Das Programmiermodell

In den frühen Tagen der Computerprogrammierung wurde jedes Programm als großer monolithischer Block geschrieben, der mit Goto-Anweisungen gefüllt ist. Jedes Programm musste seine eigene Eingabe und Ausgabe auf verschiedenen Hardwaregeräten verwalten. Da die Programmierdisziplin reifte, wurde dieser monolithische Code in Prozeduren organisiert, wobei die am häufigsten verwendeten Verfahren in Bibliotheken zum Teilen und Wiederverwenden verpackt sind.

monolithic goto statements versus procedures packed into shared libraries

Die C-Programmiersprache unterstützt die prozedurorientierte Programmierung. In C bezieht sich das Hauptverfahren auf alle anderen Verfahren als Schwarze Felder. Die Hauptprozedur kann beispielsweise nicht herausfinden, wie Prozeduren A, B und X ihre Arbeit erledigen. Die Hauptprozedur ruft nur eine andere Prozedur auf; es enthält keine Informationen darüber, wie diese Prozedur implementiert wird.

isolation of activities performed in outside procedures

Prozedurorientierte Programmiersprachen bieten einfache Mechanismen zum Angeben und Schreiben von Prozeduren. Beispielsweise ist der ANSI-Standard-C-Funktionsprototyp ein Konstrukt, das verwendet wird, um den Namen einer Prozedur anzugeben, den Typ des zurückgegebenen Ergebnisses (falls vorhanden) und die Zahl, Sequenz und den Typ seiner Parameter. Die Verwendung des Funktionsprototyps ist eine formale Möglichkeit, eine Schnittstelle zwischen Prozeduren anzugeben.

Microsoft RPC baut auf diesem Programmiermodell auf, indem Prozeduren, gruppiert in Schnittstellen, sich in verschiedenen Prozessen befinden als der Aufrufer. Microsoft RPC fügt außerdem einen formelleren Ansatz zur Prozedurdefinition hinzu, der es dem Aufrufer und der aufgerufenen Routine ermöglicht, einen Vertrag für remoteen Austausch von Daten und aufrufende Funktionen zu übernehmen. Im Microsoft RPC-Programmiermodell werden herkömmliche Funktionsaufrufe durch zwei zusätzliche Elemente ergänzt.

  • Das erste Element ist eine IDL/ACF-Datei, die genau den Datenaustausch- und Parameterübergabemechanismus zwischen dem Aufrufer und der aufgerufenen Prozedur beschreibt.
  • Das zweite Element ist eine Reihe von Laufzeit-APIs, die Entwicklern eine präzise Kontrolle über den Remoteprozeduraufruf bieten, einschließlich Sicherheitsaspekten, Verwalten des Zustands auf dem Server, angeben, welche Clients mit dem Server sprechen können usw.