プログラミング モデル
コンピューター プログラミングの初期の頃、各プログラムは大きなモノリシック チャンクとして記述され、 goto ステートメントでいっぱいになりました。 各プログラムは、異なるハードウェア デバイスへの独自の入力と出力を管理する必要がありました。 プログラミング規範が成熟するにつれて、このモノリシック コードはプロシージャに編成され、最も一般的に使用されるプロシージャがライブラリに詰め込まれ、共有と再利用が行われました。
C プログラミング言語では、プロシージャ指向プログラミングがサポートされています。 C では、メイン プロシージャは、他のすべてのプロシージャにブラック ボックスとして関連しています。 たとえば、メイン プロシージャでは、プロシージャ A、B、X が処理を行う方法を確認できません。 メイン プロシージャは別のプロシージャのみを呼び出します。プロシージャの実装方法に関する情報はありません。
プロシージャ指向プログラミング言語は、プロシージャを指定および記述するための簡単なメカニズムを提供します。 たとえば、ANSI 標準 C 関数プロトタイプは、プロシージャの名前、返される結果の型 (存在する場合)、およびパラメーターの数、シーケンス、および型を指定するために使用されるコンストラクトです。 関数プロトタイプを使用することは、プロシージャ間のインターフェイスを指定するための正式な方法です。
Microsoft RPC は、インターフェイスでグループ化されたプロシージャを呼び出し元とは異なるプロセスに配置できるようにすることで、そのプログラミング モデルに基づいています。 また、Microsoft RPC は、呼び出し元と呼び出されたルーチンがデータをリモートで交換し、機能を呼び出すためのコントラクトを採用できるようにする、より正式な方法をプロシージャ定義に追加します。 Microsoft RPC プログラミング モデルでは、従来の関数呼び出しに 2 つの追加要素が追加されています。
- 最初の要素は、呼び出し元と呼び出されたプロシージャの間のデータ交換とパラメーター渡しメカニズムを正確に記述する .idl/.acf ファイルです。
- 2 つ目の要素は、セキュリティの側面、サーバー上の状態の管理、サーバーと通信できるクライアントの指定など、リモート プロシージャ コールの詳細な制御を開発者に提供するランタイム API のセットです。