0
|
1 \chapter{比較}
|
|
2
|
15
|
3 ここではSun Microsystems社の提案する高レベルの分散アーキテクチャである、
|
|
4 Jini と Federated Linda の比較を行う。
|
0
|
5
|
15
|
6 \section{Jini}
|
|
7 Jiniとは、ハードウェア/ソフトウェアに関わらず様々な資源をネットワークに接続し、
|
|
8 お互いにその機能を提供し合う為の、Javaをベースとした技術である。
|
|
9 Jiniは比較的小さな実行単位が、多数集まって仕事をするのに適した、
|
|
10 柔軟で、動的な、信頼性の高い分散アーキテクチャの提供をうたい、
|
|
11 その集合をfederation(連合体)と呼んでいる。
|
|
12 Jiniのアイデアの基本にあるのは、ネットワーク上の「連合」を、
|
|
13 単なるノードの接続とデータの交換として捉えるのではなく、
|
|
14 それぞれのノードが、固有の「サービス」の担い手としてネットワークに存在し、
|
|
15 相互に「サービス」を交換し合うという考えである。
|
0
|
16
|
15
|
17 Jiniにおける「サービス」を、ネットワーク上の何処からでも利用する事ができるモデルを
|
|
18 実現する為に、ネットワーク上で自由に移動可能な「オブジェクト」、すなわち分散オブジェクト
|
|
19 技術が用いられる。
|
|
20 Jiniがこの分散オブジェクトと「サービス」を結びつける機能をLookupとよび、Jini上での様々な
|
|
21 サービスの「連合」は、実際にはこのLookupサービスの仲立ちによって各々のサービスを提供する。
|
0
|
22
|
15
|
23 Jiniが分散オブジェクト、すなわちネットワーク上でオブジェクトを共有する空間を構築する為
|
|
24 の仕組みは、JavaSpaceという技術によって提供される。
|
|
25 JavaSpaceはネットワーク上に共通領域として存在し、オブジェクトを登録する「エントリー」
|
|
26 という単位での入れ物として機能する。JavaSpaceのエントリーに対するアクセスは、
|
|
27 write(書き込み)、read(読み出し)、take(取り出し)、という操作によって得られる。
|
|
28 このような仕組みはLindaシステムのタプルスペースに非常によく似ている。
|
0
|
29
|
15
|
30 対して、Federated Lindaはソフトウェアにおける資源の、ネットワーク上での相互の接続を
|
|
31 提供する。ベースとなる技術はC言語,Java言語であり、Jiniにおけるサービスを実現させるのは、
|
|
32 Federated Lindaに接続されるクライアントプログラムの機能によって実現される。
|
0
|
33
|
15
|
34 Jiniの持つ様な分散オブジェクト技術は、現在のデータ単位での通信を行うFederated Lindaでは
|
|
35 実現されていないが、今回Java言語によるFederated Lindaの実装を得た事により、そのような
|
|
36 機能追加を行う事は実現可能である。Java言語により実現が可能である理由は、Javaではオブジェクト
|
|
37 単位でのネットワークを介した移動を実現する、シリアライズ機能やRMIという仕組みが存在することや、
|
|
38 複数のThread(プロセス)が同一のオブジェクトに同期を取ってアクセスする
|
|
39 メカニズムが備わっているということからである。
|
0
|
40
|
15
|
41 Jiniに対してFederated Lindaが優れていると考えられる点は、Jiniでは分散オブジェクト実現の
|
|
42 為に、エントリーに対して強い型宣言が強制されるが、Federated Lindaでは自由なデータ形式での
|
|
43 通信単位を許可している事。Jiniがそのサービスを立ち上げるのに必要な要素として、
|
|
44 RMI Activation Daemon, ,Jiniサービスプロバイダ, Jini Lookupサービス, Lookupサービスブラウザ,
|
|
45 webサーバー, クライアントプログラムといった、多くの要素を要求するのに対して、Federated Linda
|
|
46 はLindaサーバー, Protocol Engine, クライアントプログラムの3要素で済むという点などが挙げられる。
|
0
|
47
|
15
|
48 %表\ref{comp}にJiniとFederated Lindaの比較を示す。
|