annotate paper/comparing.tex @ 15:c3eb838fb504

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