distributed systems 第10章 distributed object-based systems (後編)
Post on 08-Jul-2015
598 Views
Preview:
TRANSCRIPT
アーキテクチャ
プロセス
通信
名前付け
同期
一貫性と複製
フォールトトレラント性
セキュリティ
まとめ
CORBA ◦ Common Object Request Broker Architecture
Java EE (J2EE)/EJB
Globe ◦ 情報が全然見つからない
CORBAオブジェクトリファレンス ◦ 相互運用可能オブジェクトリファレンス
(Interoperable Object Reference: IOR)
Globeオブジェクトリファレンス
遠隔オブジェクトを参照するのに必要な情報を いろいろ持ってる
Globeの分散共有オブジェクトには全体で一意なオブジェクト識別子(OID)が割り当てられる
位置サービスにアクセスすることでコンタクトアドレスを得る
◦ 位置サービスについては第5章を参照
フィールド 説明
プロトコル識別子 既知のプロトコルを示す定数 (‘TCP’, ‘UDP’, ‘IP’...)
プロトコルアドレス プロトコル固有のアドレス (TCPポート番号 or IPv4アドレス etc.)
実装ハンドル クラスリポジトリにおけるファイルへのリファレンス
フィールド 説明
実装ハンドル クラスリポジトリにおけるファイルへのリファレンス
初期化ストリング 実装を起動するのに使われる文字列
スタックコンタクトアドレス
インスタンスコンタクトアドレス
CORBAオブジェクトリファレンス ◦ どのオブジェクトへコンタクトすべきか、
正確な情報を含む
Globeオブジェクトリファレンス ◦ 情報を取り出すための追加的な探索段階が必要
ロックオブジェクトに対する制御フローの違い
(a) オブジェクトの呼び出しが連鎖し、ロックの連続が起こる可能性がある
(b) プロセスは問題が起こった時にロックを解除するなどの対処ができる
トランザクションプロセスシステムは通常 (b) のパターンを使用する
同期を行なうのはふつうオブジェクトサーバ ◦ クライアントがクラッシュしたときに面倒なことに
クライアント側でロックをしたらどうか? (Javaが採用している) ◦ 異なるマシンの異なるクライアントを同期させる必要があり、複雑
(第6章を参照)
他にもいろいろ書いてあるがよくわからない
複製をどのようにシステム内で処理するか? 基本的には第7章を参照
エントリ一貫性
複製呼び出し
◦ 複製されたオブジェクトサーバに対する決定論的なスレッドスケジューリング
るべきにスケジューリングすをそれぞれ呼び出す前と
場合、び出し要求を処理するが到着してくる同じ呼と2
2
1
2
1
2
1
1
TT
TT
◦ EJB環境におけるオブジェクトから複製アルゴリズムを分離するための 一般的なフレームワーク
◦ とばします
◦ 複製されたメソッド呼び出しの問題 AがBを、BがCを呼び出す Bが複製されていると、Cは複数回呼ばれる
◦ Cで実行されるメソッドが「10万ドル送金」だと死ぬ
◦ (a) 複製されたオブジェクトから他の複製されたオブジェクトへの呼び出し要求の転送
BがCを呼び出すとき、Bの各複製は呼び出し要求に一意の識別子を割り当てる
Bのコーディネータが要求を転送、Bの他の複製は呼び出し要求のコピーを持って待機
◦ (b) ある複製されたオブジェクトから別のオブジェクトへの結果の返信
CのコーディネータがBの複製へ返答を転送、Cの他の複製は返答メッセージのコピーを持って待機
フォールトトレラントCORBA ◦ 相互運用可能オブジェクトグループリファレンス
(Interoperable Object Group Reference: IOGR)
フォールトトレラントJava
◦ プライマリとバックアップを持つオブジェクトグループに対する IOGRの可能な構成
◦ 名前付けに登場したIORをグループ化し、障害に備える
クライアントがcreate_objectを呼び出したとき、 複製マネージャがオブジェクトグループを生成する
クライアントはオブジェクトが複製されていることを意識しない
Java実行時システムはフォールトトレラント機能を持つ
アクティブ複製(第7章)は決定論的な有限状態マシンのようにレプリカサーバが実行することを指示する
JVMは決定論的ではない、という話
セキュアオブジェクトバインディング
セキュアメソッド呼び出し
(a) ユーザ証明書 ◦ 特定のユーザに関連 / ユーザが許可されている呼び出しメソッドを明確にする
◦ U: オブジェクトが利用可能なメソッドの数と同じ長さのビット文字列 ユーザがメソッドM_i を利用可能 -> U[i] = 1
(b) レプリカ証明書 ◦ サーバがメソッドM_i を実行可能 -> R[i] = 1
(c) 管理証明書 ◦ 認可されたエンティティによって使用され、ユーザ証明証とレプリカ証明書を
発行する
◦ RとUはどのメソッドとエンティティに対して証明書が生成されたかを特定する
◦ D: 管理エンティティが他へ権利を委託できるかどうかを示すビット
10.1 「Globe分散共有オブジェクト」 ローカルオブジェクトの一般的な構成図 (再掲) ◦ Globeでは以下の構成でどのようにセキュアなメソッド呼び出しを実現しているか?
top related