Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Distributed Systems 第10章 Distributed Object-Based Systems

610 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Distributed Systems 第10章 Distributed Object-Based Systems

  1. 1.          アーキテクチャ プロセス 通信 名前付け 同期 一貫性と複製 フォールトトレラント性 セキュリティ まとめ
  2. 2.  共通の呼び出し規約に従って動作するソフトウェア部品(オブジェ クト)をネットワーク上の複数のコンピュータに配置し、それらを 連携動作させることによりシステムを構築する
  3. 3.  オブジェクト指向の分散システムの一般的アーキテクチャ  Enterprise Java Beans (EJB)  Globe分散共有オブジェクト
  4. 4.   オブジェクトの「状態」は分散していない インタフェースのみが分散
  5. 5.  コンパイル時オブジェクト ◦ (Javaの場合) オブジェクトの分散を意識せず、Javaコードのみを見て 開発することができる ◦ 特定のプログラミング言語に依存してしまう  実行時オブジェクト ◦ 分散アプリケーションを書いたプログラミング言語から独立できる ◦ 遠隔オブジェクトを呼び出すためのラッパーとして機能する オブジェクトアダプタを使用するのが一般的
  6. 6.  永続オブジェクト ◦ サーバプロセスのアドレス空間に含まれていなくても存在し続ける オブジェクト ◦ 永続オブジェクトを管理しているサーバは、オブジェクトの状態を補助 ストレージに格納し、終了することができる  一時オブジェクト ◦ サーバが管理している間だけ存在するオブジェクト ◦ サーバが終了するとオブジェクトは消滅する  ほとんどのオブジェクト指向分散システムは両方をサポートする
  7. 7.  Javaで書かれた再利用可能コン ポーネント(JavaBeans)の分散版  Container : アプリケーション サーバが実装する下位層への サービスインタフェースを提供 する  RMI : 遠隔メソッド呼び出し JDBC: データベースアクセス JNDI: 名前付け JMS: メッセージング    EJBサーバの一般的アーキテクチャ
  8. 8.  状態不保持セッションビーン (Stateless session beans) ◦ 一度だけ呼び出される一時オブジェクト  状態保持セッションビーン (Stateful session beans) ◦ クライアントの状態を保持するオブジェクト ◦ ライフタイムに制限がある  エンティティビーン (Entity beans) ◦ 永続オブジェクト  メッセージ駆動ビーン (Message-driven beans) ◦ メッセージに対応するプログラムオブジェクト
  9. 9.  オブジェクトの状態が複数のプロ セス上に分散・複製される  例:それぞれ別のマシン上で実行 している4つのプロセスによりオ ブジェクトが分散している
  10. 10.  Globeのローカルオブジェクトを構 成する4つのサブオブジェクト  セマンティクスサブオブジェクト ◦ 分散共有オブジェクトが提供する機能  通信サブオブジェクト ◦ 下位ネットワークへのインタフェース  複製サブオブジェクト ◦ オブジェクトの実際の分散を担当 ◦ セマンティクスサブオブジェクトが提供す るメソッドがいつ実行されるべきかを制御  制御サブオブジェクト
  11. 11.   オブジェクトサーバ Ice実行時システム
  12. 12.  分散オブジェクトをサポートするためのサーバ サービスを提供するのはサーバ内のオブジェクト それ自身ではサービスを提供しない  オブジェクトサーバにより異なる要素   ◦ オブジェクトのデータ・メソッドが分離しているか ◦ メソッドの実装が複数のオブジェクトで共有されているか ◦ オブジェクトの呼び出し方法
  13. 13.     全てのオブジェクトが同じように見え、 オブジェクトを呼び出す方法は1つだけと仮定する 最初の呼び出し要求時に一時オブジェクトを生成し、 そのオブジェクトに結ばれるクライアントがなくなると消滅 サーバが立ち上がったとき、すべての一時オブジェクトを生成 サーバの各オブジェクトを固有のメモリセグメントに配置する ◦ 各オブジェクトはコードもデータも共有しない  オブジェクトのコードのみ共有する
  14. 14.  スレッドの単位 ◦ 単一スレッド制御 ◦ オブジェクトごとにスレッドを持つ ◦ メソッドごとにスレッドを持つ  スレッドの寿命 ◦ スレッドをリクエストごとに生成 ◦ サーバがスレッドのプールを維持
  15. 15.  Object Adapter ◦ 起動ポリシー(どのようにオブジェク トを呼び出すか)に沿ってオブジェク トをグループ化するメカニズム   サーバには異なる起動ポリシーを持つ 複数のObject Adapterが存在する Object Adapter自体は各オブジェクトの 直接のインターフェースには関与しな い
  16. 16.  Iceでのオブジェクトサーバ生成例  Communicator: 基本的リソースを管理するコンポーネント ◦ 上記例ではオブジェクトアダプタの生成に使用されている
  17. 17.  オブジェクト指向分散システムで処理される通信方法について ◦ 遠隔クライアントに対してオブジェクトを呼び出す手段 ◦ Remote Procedure Call (RPC) に基づく
  18. 18.  (a) 暗黙的バインディング (implicit binding) ◦ クライアントはオブジェクトへのリファレンスのみを使ってメソッドを直接 呼び出す  (b) 明示的バインディング (explicit binding) ◦ クライアントはオブジェクトにバインドするために特別な関数を呼び出す
  19. 19.  一番単純なオブジェクトリファレンス ◦ オブジェクトが存在するマシンのネットワークアドレスと オブジェクトを管理するサーバを識別するエンドポイント、 どのオブジェクトへの指示かを含む ◦ サーバがクラッシュ->回復して異なったエンドポイントが割り当てられ ると、リファレンスが無効になる  改善版 ◦ サーバからエンドポイントへの割り当てを記録したエンドポイント表を 持つ位置サーバを設置する
  20. 20.  遠隔メソッド呼び出し (Remote Method Invocation, RMI) ◦ RPCと違って、システム全体に有効なオブジェクトリファレンスを提供する  静的呼び出し (static invocation) ◦ 事前に定義されたインタフェース定義を使用する ◦ インタフェースが変わった場合は再コンパイルが必要 ◦ fobject.append(int)  動的呼び出し (dynamic invocation) ◦ どのメソッドが遠隔オブジェクトで呼び出されるかを アプリケーションが実行時に選択する ◦ invoke(fobject, id(append), int)
  21. 21.    ローカルオブジェクトはオブジェクトそのものがコピーされ、 遠隔オブジェクトは参照がコピーされる 上記の違いから、ローカルオブジェクトと遠隔オブジェクトを区別 して扱わなければいけない (言語レベルでは隠蔽可能) Java RMIはこのアプローチ
  22. 22.  非同期メソッド呼び出し (asynchronous method invocation) の2つの形式 ◦ コールバックモデル ◦ ポーリングモデル
  23. 23.          アーキテクチャ プロセス 通信 名前付け 同期 一貫性と複製 フォールトトレラント性 セキュリティ まとめ

×