Das Programmiermodell

In den frühen Tagen der Computerprogrammierung wurde jedes Programm als ein großer monolithischer Block geschrieben, gefüllt mit Goto-Anweisungen . Jedes Programm musste seine eigene Eingabe und Ausgabe auf verschiedenen Hardwaregeräten verwalten. Als die Programmierdisziplin gereift war, wurde dieser monolithische Code in Prozeduren organisiert, wobei die am häufigsten verwendeten Prozeduren in Bibliotheken für die Freigabe und Wiederverwendung verpackt wurden.

monolithische Goto-Anweisungen im Vergleich zu Prozeduren, die in freigegebene Bibliotheken verpackt sind

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

Isolation von Aktivitäten, die in externen Prozeduren ausgeführt werden

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

Microsoft RPC baut auf diesem Programmiermodell auf, indem Prozeduren, die in Schnittstellen gruppiert sind, sich in anderen Prozessen befinden als der Aufrufer. Microsoft RPC fügt auch einen formaleren Ansatz zur Prozedurdefinition hinzu, der es dem Aufrufer und der aufgerufenen Routine ermöglicht, einen Vertrag für den Remoteaustausch von Daten und das Aufrufen von Funktionen anzunehmen. Im Microsoft RPC-Programmiermodell werden herkömmliche Funktionsaufrufe durch zwei zusätzliche Elemente ergänzt.

  • Das erste Element ist eine IDL/.acf-Datei, die den Datenaustausch- und Parameterübergabemechanismus zwischen dem Aufrufer und der aufgerufenen Prozedur genau beschreibt.
  • Das zweite Element ist eine Reihe von Laufzeit-APIs, die Entwicklern eine präzise Steuerung des Remoteprozeduraufrufs ermöglichen, einschließlich Sicherheitsaspekten, Verwalten des Zustands auf dem Server, Angeben, welche Clients mit dem Server kommunizieren können usw.