分散オブジェクト通信

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

分散コンピューティング環境では、分散オブジェクト通信は分散オブジェクト間の通信を実現します主な役割は、オブジェクトがデータにアクセスし、リモートオブジェクト(非ローカルメモリ空間に存在するオブジェクト)のメソッドを呼び出せるようにすることですリモートオブジェクトでメソッドを呼び出すことは、リモートメソッド呼び出しRMI)またはリモート呼び出しと呼ばれ、リモートプロシージャコール(RPC) のオブジェクト指向プログラミングアナログです。

クラススタブとスケルトン

通信チャネルの実装方法で広く使用されているアプローチは、スタブスケルトンを使用して実現されます。これらは生成されたオブジェクトであり、その構造と動作は選択した通信プロトコルによって異なりますが、一般に、ネットワークを介した信頼性の高い通信を保証する追加機能を提供します。

RMIでは、スタブ(クライアントのビット)はプログラマーによってインターフェースとして定義されます。rmic(rmiコンパイラ)はこれを使用してクラススタブを作成します。スタブは型チェックを実行します。スケルトンは、インターフェイススタブを実装するクラスで定義されます。[1]

分散オブジェクトcommunication.png

呼び出し元が呼び出されたオブジェクトに対してリモート呼び出しを実行する場合、呼び出し元はそのスタブに要求を委任し、リモートスケルトンとの通信を開始します。その結果、スタブは呼び出し元の引数をネットワーク経由でサーバースケルトンに渡します。次に、スケルトンは受信したデータを呼び出されたオブジェクトに渡し、応答を待ち、結果をクライアントスタブに返します。呼び出し元と呼び出されたオブジェクトの間には直接の通信がないことに注意してください。

詳細については、通信はいくつかのステップで構成されています。

  1. 呼び出し元は、スタブによって実装されたローカルプロシージャを呼び出します
  2. スタブマーシャルは、呼び出しタイプと要求メッセージへの入力引数をマーシャルします
  3. クライアントスタブは、ネットワークを介してサーバーにメッセージを送信し、現在の実行スレッドをブロックします
  4. サーバースケルトンはネットワークから要求メッセージを受信します
  5. スケルトンは、要求メッセージから呼び出しタイプを解凍し、呼び出されたオブジェクトのプロシージャを検索します
  6. スケルトンはプロシージャの引数をアンマーシャルします
  7. スケルトンは、呼び出されたオブジェクトに対してプロシージャを実行します
  8. 呼び出されたオブジェクトは計算を実行し、結果を返します
  9. スケルトンは、出力引数を応答メッセージにパックします
  10. スケルトンは、ネットワークを介してメッセージをクライアントに送り返します
  11. クライアントスタブはネットワークから応答メッセージを受信します
  12. スタブはメッセージから出力引数を解凍します
  13. スタブは出力引数を呼び出し元に渡し、実行スレッドを解放し、呼び出し元は実行を続行します

このアーキテクチャの利点は、呼び出し元も呼び出されたオブジェクトもネットワーク関連のロジックを実装する必要がないことです。ネットワーク上で信頼性の高い通信チャネルを保証するこの機能は、スタブスケルトンレイヤーに移動されました。

スタブ

分散オブジェクト通信に参加するクライアント側オブジェクトは、スタブまたはプロキシと呼ばれ、プロキシオブジェクトの例です

スタブは、クライアント側オブジェクトと、スタブを介してルーティングされるサーバー側オブジェクトへのすべての送信要求のゲートウェイとして機能します。スタブはクライアントオブジェクトの機能をラップし、ネットワークロジックを追加することで、クライアントとサーバー間の信頼性の高い通信チャネルを確保します。スタブは、選択した通信プロトコルに応じて、手動で作成することも、自動的に生成することもできます。

スタブの責任は次のとおりです。

スケルトン

分散オブジェクト通信に参加するサーバー側オブジェクトは、スケルトン(またはスタブ。ここでは回避される用語)と呼ばれます。

スケルトンはサーバー側オブジェクトのゲートウェイとして機能し、すべての着信クライアント要求はスケルトンを介してルーティングされます。スケルトンはサーバーオブジェクトの機能をラップしてクライアントに公開します。さらに、ネットワークロジックを追加することで、クライアントとサーバー間の信頼性の高い通信チャネルを確保します。スケルトンは、選択した通信プロトコルに応じて、手動で作成することも、自動的に生成することもできます。

スケルトンは次の責任があります。

スタブ/スケルトンアプローチを使用するプロトコル

も参照してください

参考文献