0
|
1 \chapter{比較}
|
|
2
|
15
|
3 ここではSun Microsystems社の提案する高レベルの分散アーキテクチャである、
|
16
|
4 Jini 及び、産業技術総合研究所の首藤一幸氏が開発を行っているOverlay Weaver
|
|
5 と、 Federated Linda の比較を行う。
|
0
|
6
|
15
|
7 \section{Jini}
|
|
8 Jiniとは、ハードウェア/ソフトウェアに関わらず様々な資源をネットワークに接続し、
|
|
9 お互いにその機能を提供し合う為の、Javaをベースとした技術である。
|
|
10 Jiniは比較的小さな実行単位が、多数集まって仕事をするのに適した、
|
|
11 柔軟で、動的な、信頼性の高い分散アーキテクチャの提供をうたい、
|
|
12 その集合をfederation(連合体)と呼んでいる。
|
|
13 Jiniのアイデアの基本にあるのは、ネットワーク上の「連合」を、
|
|
14 単なるノードの接続とデータの交換として捉えるのではなく、
|
|
15 それぞれのノードが、固有の「サービス」の担い手としてネットワークに存在し、
|
|
16 相互に「サービス」を交換し合うという考えである。
|
0
|
17
|
15
|
18 Jiniにおける「サービス」を、ネットワーク上の何処からでも利用する事ができるモデルを
|
|
19 実現する為に、ネットワーク上で自由に移動可能な「オブジェクト」、すなわち分散オブジェクト
|
|
20 技術が用いられる。
|
|
21 Jiniがこの分散オブジェクトと「サービス」を結びつける機能をLookupとよび、Jini上での様々な
|
|
22 サービスの「連合」は、実際にはこのLookupサービスの仲立ちによって各々のサービスを提供する。
|
0
|
23
|
15
|
24 Jiniが分散オブジェクト、すなわちネットワーク上でオブジェクトを共有する空間を構築する為
|
|
25 の仕組みは、JavaSpaceという技術によって提供される。
|
|
26 JavaSpaceはネットワーク上に共通領域として存在し、オブジェクトを登録する「エントリー」
|
|
27 という単位での入れ物として機能する。JavaSpaceのエントリーに対するアクセスは、
|
|
28 write(書き込み)、read(読み出し)、take(取り出し)、という操作によって得られる。
|
|
29 このような仕組みはLindaシステムのタプルスペースに非常によく似ている。
|
0
|
30
|
15
|
31 対して、Federated Lindaはソフトウェアにおける資源の、ネットワーク上での相互の接続を
|
|
32 提供する。ベースとなる技術はC言語,Java言語であり、Jiniにおけるサービスを実現させるのは、
|
|
33 Federated Lindaに接続されるクライアントプログラムの機能によって実現される。
|
0
|
34
|
15
|
35 Jiniの持つ様な分散オブジェクト技術は、現在のデータ単位での通信を行うFederated Lindaでは
|
|
36 実現されていないが、今回Java言語によるFederated Lindaの実装を得た事により、そのような
|
|
37 機能追加を行う事は実現可能である。Java言語により実現が可能である理由は、Javaではオブジェクト
|
|
38 単位でのネットワークを介した移動を実現する、シリアライズ機能やRMIという仕組みが存在することや、
|
|
39 複数のThread(プロセス)が同一のオブジェクトに同期を取ってアクセスする
|
|
40 メカニズムが備わっているということからである。
|
0
|
41
|
15
|
42 Jiniに対してFederated Lindaが優れていると考えられる点は、Jiniでは分散オブジェクト実現の
|
|
43 為に、エントリーに対して強い型宣言が強制されるが、Federated Lindaでは自由なデータ形式での
|
|
44 通信単位を許可している事。Jiniがそのサービスを立ち上げるのに必要な要素として、
|
|
45 RMI Activation Daemon, ,Jiniサービスプロバイダ, Jini Lookupサービス, Lookupサービスブラウザ,
|
|
46 webサーバー, クライアントプログラムといった、多くの要素を要求するのに対して、Federated Linda
|
|
47 はLindaサーバー, Protocol Engine, クライアントプログラムの3要素で済むという点などが挙げられる。
|
0
|
48
|
15
|
49 %表\ref{comp}にJiniとFederated Lindaの比較を示す。
|
16
|
50
|
17
|
51 \section{Overlay Weaver}
|
16
|
52 Overlay Weaver は産業技術総合研究所の首藤一幸氏が開発を行っているオーバーレイ
|
|
53 ネットワーク構築ツールキットであり、2006年 1月
|
|
54 17日にVersion 0.1がリリースされた。アプリケーション開発とオーバーレイの
|
|
55 アルゴリズム設計をサポートしている。Java で開発されており、DHTやマルチキャ
|
|
56 ストといった高レベルサービスに対する共通API や、ルーティングアルゴリズム
|
|
57 としてDHTやIterative/Recursive ルーティングを提供している。また、開発し
|
|
58 たアルゴリズムを試験、評価、比較するためのエミュレータも提供している。
|
|
59
|
|
60 Overlay Weaver はオーバーレイネットワークを構築するアルゴリズムやその上に
|
|
61 実装するルーティングアルゴリズムの開発支援やそれらを試験・評価するための
|
|
62 エミュレータを提供しており、ネットワークを意識したプログラムを作るのに適
|
|
63 している。ルーティング処理とアルゴリズムを分離するので、使用するアルゴリ
|
|
64 ズムを切り替えることが可能である。しかし、Javaでしか開発できない点とプロ
|
|
65 グラミングモデルが明かではなく、ツールとしてしか使用できない。
|
|
66
|
|
67 Federated Linda はタプルスペースとタプルスペースへアクセスするAPIを提供し、
|
|
68 かつ分散プログラムを記述するプログラミングモデルを示した。さらに
|
|
69 ``Protocol Engine'', ``Local Access'', ``Link Configuration''などの要素に
|
|
70 分け、よりポータビリティ性を向上させることが期待できる。また、C, Perl,
|
17
|
71 Python, Ruby など複数言語による開発も可能である。
|
|
72 Overlay Weaverの物と比べ、Federated Lindaのクライアントプログ
|
16
|
73 ラムは Protocol Engine に実装された分散アルゴリズムへの接続・切断が容易で
|
17
|
74 あるという点もFederated Lindaの利点である。 |