distributed systems 第10章 distributed object-based systems (後編)

24

Upload: aomori-ringo

Post on 08-Jul-2015

598 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Distributed Systems 第10章 Distributed Object-Based Systems (後編)
Page 2: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

アーキテクチャ

プロセス

通信

名前付け

同期

一貫性と複製

フォールトトレラント性

セキュリティ

まとめ

Page 3: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

CORBA ◦ Common Object Request Broker Architecture

Java EE (J2EE)/EJB

Globe ◦ 情報が全然見つからない

Page 4: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

CORBAオブジェクトリファレンス ◦ 相互運用可能オブジェクトリファレンス

(Interoperable Object Reference: IOR)

Globeオブジェクトリファレンス

Page 5: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

遠隔オブジェクトを参照するのに必要な情報を いろいろ持ってる

Page 6: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

Globeの分散共有オブジェクトには全体で一意なオブジェクト識別子(OID)が割り当てられる

位置サービスにアクセスすることでコンタクトアドレスを得る

◦ 位置サービスについては第5章を参照

Page 7: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

フィールド 説明

プロトコル識別子 既知のプロトコルを示す定数 (‘TCP’, ‘UDP’, ‘IP’...)

プロトコルアドレス プロトコル固有のアドレス (TCPポート番号 or IPv4アドレス etc.)

実装ハンドル クラスリポジトリにおけるファイルへのリファレンス

フィールド 説明

実装ハンドル クラスリポジトリにおけるファイルへのリファレンス

初期化ストリング 実装を起動するのに使われる文字列

スタックコンタクトアドレス

インスタンスコンタクトアドレス

Page 8: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

CORBAオブジェクトリファレンス ◦ どのオブジェクトへコンタクトすべきか、

正確な情報を含む

Globeオブジェクトリファレンス ◦ 情報を取り出すための追加的な探索段階が必要

Page 9: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

ロックオブジェクトに対する制御フローの違い

(a) オブジェクトの呼び出しが連鎖し、ロックの連続が起こる可能性がある

(b) プロセスは問題が起こった時にロックを解除するなどの対処ができる

トランザクションプロセスシステムは通常 (b) のパターンを使用する

Page 10: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

同期を行なうのはふつうオブジェクトサーバ ◦ クライアントがクラッシュしたときに面倒なことに

クライアント側でロックをしたらどうか? (Javaが採用している) ◦ 異なるマシンの異なるクライアントを同期させる必要があり、複雑

(第6章を参照)

他にもいろいろ書いてあるがよくわからない

Page 11: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

複製をどのようにシステム内で処理するか? 基本的には第7章を参照

エントリ一貫性

複製呼び出し

Page 12: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

◦ 複製されたオブジェクトサーバに対する決定論的なスレッドスケジューリング

るべきにスケジューリングすをそれぞれ呼び出す前と

場合、び出し要求を処理するが到着してくる同じ呼と2

2

1

2

1

2

1

1

TT

TT

Page 13: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

◦ EJB環境におけるオブジェクトから複製アルゴリズムを分離するための 一般的なフレームワーク

◦ とばします

Page 14: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

◦ 複製されたメソッド呼び出しの問題 AがBを、BがCを呼び出す Bが複製されていると、Cは複数回呼ばれる

◦ Cで実行されるメソッドが「10万ドル送金」だと死ぬ

Page 15: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

◦ (a) 複製されたオブジェクトから他の複製されたオブジェクトへの呼び出し要求の転送

BがCを呼び出すとき、Bの各複製は呼び出し要求に一意の識別子を割り当てる

Bのコーディネータが要求を転送、Bの他の複製は呼び出し要求のコピーを持って待機

◦ (b) ある複製されたオブジェクトから別のオブジェクトへの結果の返信

CのコーディネータがBの複製へ返答を転送、Cの他の複製は返答メッセージのコピーを持って待機

Page 16: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

フォールトトレラントCORBA ◦ 相互運用可能オブジェクトグループリファレンス

(Interoperable Object Group Reference: IOGR)

フォールトトレラントJava

Page 17: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

◦ プライマリとバックアップを持つオブジェクトグループに対する IOGRの可能な構成

◦ 名前付けに登場したIORをグループ化し、障害に備える

Page 18: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

クライアントがcreate_objectを呼び出したとき、 複製マネージャがオブジェクトグループを生成する

クライアントはオブジェクトが複製されていることを意識しない

Page 19: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

Java実行時システムはフォールトトレラント機能を持つ

アクティブ複製(第7章)は決定論的な有限状態マシンのようにレプリカサーバが実行することを指示する

JVMは決定論的ではない、という話

Page 20: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

セキュアオブジェクトバインディング

セキュアメソッド呼び出し

Page 21: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

(a) ユーザ証明書 ◦ 特定のユーザに関連 / ユーザが許可されている呼び出しメソッドを明確にする

◦ U: オブジェクトが利用可能なメソッドの数と同じ長さのビット文字列 ユーザがメソッドM_i を利用可能 -> U[i] = 1

(b) レプリカ証明書 ◦ サーバがメソッドM_i を実行可能 -> R[i] = 1

Page 22: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

(c) 管理証明書 ◦ 認可されたエンティティによって使用され、ユーザ証明証とレプリカ証明書を

発行する

◦ RとUはどのメソッドとエンティティに対して証明書が生成されたかを特定する

◦ D: 管理エンティティが他へ権利を委託できるかどうかを示すビット

Page 23: Distributed Systems 第10章 Distributed Object-Based Systems (後編)

10.1 「Globe分散共有オブジェクト」 ローカルオブジェクトの一般的な構成図 (再掲) ◦ Globeでは以下の構成でどのようにセキュアなメソッド呼び出しを実現しているか?

Page 24: Distributed Systems 第10章 Distributed Object-Based Systems (後編)