The 19th Annual Conference of the Japanese Society for Artificial Intelligence, 2005

1B2-02

ネットワークの物理的構成を考慮したエージェントに基づく情報共有ネットワーク MiNet の実装について
An implementation of network system for Information sharing based on the agents
山谷孝史∗1

大囿忠親∗1伊藤孝行∗1新谷虎松∗1

Takafumi Yamaya

Tadachika Ozono

Takayuki ItoToramatsu Shintani∗1

名古屋工業大学大学院

Graduate School of Engineering, Nagoya Institute of Technology

The Internet is a very popular for information sharing technology since users can share information in organizations and communities. In this paper, we present a flexible peer-to-peer networking technology for information
sharing on the Internet called MiNet. In some certain communities, MiNet can construct an ad-hoc network for
information sharing. MiNet enables users to share information based on mobile agents, which are implemented ina mobile agent framework MiLog. MiNet can organize the peers to search sharing contents efficiently in the P2Pnetwork. MiNet can construct ad-hoc peer-to-peer networks by encapsulating information and sending it as mobileagents that can migrate in MiNet beyond firewalls, proxies, and NATs in LANs. Therefore, MiNet can construct
VPNs, which consist of several LANs covered by firewalls, etc. MiNet agents can automatically choose a destination
platform according to their policies.

1.

はじめにい．FreeNet [4] では可能性の高いルートを順に検索し，効率的なリソース発見を実現している．また，分散ハッシュを用いてピア名やリソース名が明確に付与された状況において，スケーラビリティが高く，効率的な検索を行える P2P プラット
フォームとして Chord [8] や Tapestry [9], および Pastry [7]が研究されている．また，一度見つけたユーザの求める情報と類似した情報を持つピアとグループを組み，連携することによりネットワークトラフィックの少ない効率的なグループの組織化を行うことが研究されている．
また，既存の P2P 型の情報共有システムでは，複数のユーザが，インターネットを介して自由に情報をやり取りできる．しかし，ユーザが利用する計算機が Local Area Network (LAN)に接続されており，ファイアウォール，Proxy，および Network
Address Translation (NAT) によってインターネットを介した通信が制限される場合，情報の共有が妨げられる．例えば，社内で構築された LAN 上での利用に限定した情報で共有ネットワークを構成している場合，出張先から情報共有のサービスを利用することができない．すなわち，社内ネットワークはファイアウォールで守られているため，外部からアクセスできず，情報の共有ができない．ファイアウォールの設定を変更すれば，外部からの通信を許可できるが，設定の変更のためには管理者の権限が必要であり，また設定を変更することによってネットワーク管理上の安全性を損なう危険がある．以上のように，ネットワークの安全性の確保と，ネットワークシステムの利便性の向上はトレードオフの関係にあり，実践的な情報共有システムの構築において問題となる．
そこで，本論文では，ネットワーク参加時にユーザの共有する情報に基づいてピアを組織化し，また，物理的な構成を考慮し，NAT 等の制限を受けずに効率的な情報共有を実現する
P2P ネットワーク構築システム MiNet を提案する．MiNet はモバイルエージェント構築環境 MiLog [5] に基づいた，情報共有基盤を構築するためのネットワークシステムである．MiNetはピアがネットワークに参加する際，ピアに設定された共有情報メタデータから，ピアを類似したメタデータを持つピアグループへ参加させる．ピアグループ内のピアは類似した情報を持つため，同種の情報を効率的に共有できる．また，ピアは現在，インターネットを介して膨大な情報が入手可能である．入手可能な情報から有用な情報を取り出し，効果的に活用・共有することは重要な研究課題であり，様々な手法，およびシステムが提案されている [1]．ブロードバンドの急速な普及とコンピュータ の性能の向上により，旧来のサーバの保持する機能以上の処理能力をクライアント端末が持つようになった．様々な端末同士でのリッチコンテンツの送受信が多く行われるようになり，従来のサーバ・クライアントモデルとは違う通信方式として P2P(Peer to Peer) モデルが注目を浴びている．特にサーバ・クライアントモデルはサーバにアクセスが集中するという問題を抱えており，アクセス集中を改善するものとして注目されている．P2P 型のアーキテクチャに基づく，具体的なシステムとして，Gnutella [2]，Napster [3]，およびFreeNet [4] が挙げられる．これらは主としてコンテンツ配信及び情報共有システムとして用いられており，情報共有を行うためのシステムの構築に関連して，P2P 型のアーキテクチャに基づくネットワークシステムが近年注目を集めている．本論
文では，P2P モデルを用いた情報共有システムの問題に関して焦点をあて，ネットワークの物理的構成を考慮したエージェ
ントに基づく情報共有ネットワーク MiNet の実装について述べる．
本論文の構成は以下の通りである．2. では，既存の P2P に関する研究をあげ，既存のネットワークシステムにおける情報共有を行う上での問題点を示す．3. では MiNet の概要を述べる．問題点の解決手法を 4.，および 5. で述べる．最後に，6.
でまとめる．

2.

P2P モデルを用いた情報共有

P2P モデルを用いた情報共有において，ユーザは自身の求める情報を探すためにネットワークに対して，毎回ブロードキャストしたり，集中サーバに管理させるのは非常に効率が悪
連絡先: 山谷孝史，名古屋工業大学大学院，〒 466-8555 名古屋市昭和区御器所町，電話番号:052-733-6550，FAX 番
号:052-735-5584，yamaya@ics.nitech.ac.jp1

The 19th Annual Conference of the Japanese Society for Artificial Intelligence, 2005
ネットワーク参加時にグループへ組織化されるため，グループ外のピアグループの影響を受けづらい．従って，ピアを一度組織化してしまえば，グループ外からのピア管理における余計なトラフィックが発生しづらい．また，MiNet はモバイルエージェントに基づいた情報の共有を可能とする．情報の送受信はエージェントのプラットフォーム間の移動として実現され，エージェントはインターネットで一般的に用いられる HTTPプロトコルを用いて，転送される．モバイルエージェントの移動を HTTP プロトコルを用いて実装することで，各 LAN における設定を変更すること無く，エージェントが異なる LAN間を移動できる．MiNet により，ファイアウォール，Proxy，および NAT に関して透過な Virtual Private Network (VPN)が構築でき，上記のトレードオフを解消して，ネットワークの局所的な安全性を確保しつつ，インターネットを介した情報共有が実現できる．

ピア A-C 間通信
ピア B を経由しなければならない
ピア C

ピア B
ピア A
ピア D
ピア A-D 間通信
直接通信できる

ピア E

図 1: ピア間の結合

ピアの追加

3.

ピア P

MiNet の概要

Relay ピアグループ

MiNet はアドホックな情報共有のためのネットワークを構築するシステムとして実装された特別なサーバを必要としな
い，P2P 型のネットワークシステムである．具体的には以下のサービスを持つ．

OrganizeAgent

Relay ピア
organize(A)Relay ピア

コンテンツメタデータ
ピア

organize(A(B(C))).
ピアグループピア

ネットワークの自動構築サービス MiNet は，ピアの組織化におけるメタデータの設定を行い，エージェントの活動用のソフトウェアを起動するだけで，自動的に他のピアに対して自身の情報を送信し，接続する．接続時には自動的にピアの組織化が行われる．従って，複雑な設定の必要がなく，容易に MiNet によるネットワークに参加できる．他のピアに対して情報を送信する機構は JmDNS[6]を用いて実装している．JmDNS は Apple 社の提供するRendezvous 技術を Java 上で実現するためのライブラリである．JmDNS は，サブネット内の計算機に対して，自身の起動／終了情報をマルチキャストするサービスを提供する．

ピア
organize(A(B))

ピア
ピア

ピア

ピア P
organize(A(B(C)))

図 2: MiNet におけるピアの組織化

際，接続しているピア D とは直接通信できるが，ピア A と直接接続していなピア C に対して検索要求を発行する場合，ピア C と接続しているピア B を介して要求を届けなければならない．検索要求を発行するまで経由しなければならないピアが多ければ多いほど，トラフィックは多くなる．従って，求めるコンテンツを保持するピアが，検索元のピアから，余分なピアの経由数が多い場合，検索効率は下がる．つまり，希望するコンテンツを持つピアが自分のピアからなるべく直接通信できる位置にあればあるほど検索効率はあがるため，情報共有の効率も上がる．ピア間の検索効率を上げる試みとして，FreeNet[4] のようにピアにコンテンツのキャッシュを置く方法や，一度発見したピアへの接続を作成し，以後の検索を効率化する方法が研究されているが，キャッシュの作成はネットワークトラフィックが増大する．
MiNet では，ピアがネットワークに参加する際，自身の持っている共有コンテンツと類似した共有コンテンツを持つピアと隣接するようにグループ化を行う．図 2 は MiNet において，ピアのネットワーク参加時の様子を示している．MiNet ではピ
アは図 2 で示されるツリー構造をとり，ツリーのノードはピアのグループ単位で構成される．ツリーの最上位ノードは Relay
ピアと呼ばれる NAT 等から通信の影響をうけないグローバルIP アドレスを持つピアのグループで構成される．Relay ピア
は NAT やファイアウォールといったネットワークの制限を回避するためのハブとして動作するためのピアである．Relay ピ
アグループの下位ノードには通常のピアで構成されるグループがノードとして接続される．各ピアには，ピアが提供するコンテンツに関するメタデータを管理している Organize Agent がネームサービス MiNet のネットワーク内のピアは名前によって管理される．ユーザは，MiNet ピアに対して自由に名前付けを行うことができ，通信，およびエージェントの移動先の指定を，ピアの名前を用いて行うことができる．
ネットワーク内に存在する MiNet ピアの名前は自由に参照することができる．従って，物理的な IP アドレスを意識することなく，アドホックにネットワークサービスを受けることができる．
コンテンツ共有サービス 特定のピアに対して，ファイル等のコンテンツを送信したり，また特定のピアからコンテンツをダウンロードするサービスを備える．また，特定のコンテンツを周辺のピアから検索できる．

4.

Relay ピア
Relay ピア

MiNet ピアの組織化

P2P モデルを用いた情報共有を行う場合，自分が直接接続しているピアが自分に必要なコンテンツを共有しているとは限らない．そのため，複数のピアをまたいで，他のピアへ検索要求を発行し，必要なコンテンツを発見する必要がある．図 1
は一般的な P2P ネットワークにおけるピア間の通信例である．
一般的な P2P モデルでは，コンテンツの検索要求や通信要求が発生した場合，ブロードキャスト等を用いて，通信相手であるピアを発見する．図 1 では，ピア A が検索要求を発行した

2

The 19th Annual Conference of the Japanese Society for Artificial Intelligence, 2005存在する．Organize Agent は管理しているメタデータをピア間で交換し，ピアのグループを組織化するためのエージェントである．Organize Agent の管理するメタデータは，自身のピアの持つ情報が階層的に記述されている．ピアはメタデータの階層構造により，ツリーの階層を決定し，グループ化を行う．
新規ピアを追加する場合は，新規ピアはまず接続されたピアのツリー最上位の Relay ピアに接続される．次に Relay ピアの属するグループの中から，関連するコンテンツメタデータを持つピアを Organize Agent が検索する．関連する Relay
ピアが見つからない場合，新規ピアが Relay ピアとして動作できる場合，自身を Relay ピアとして動作する．新規ピアがRelay ピアとして動作できない場合，Relay ピアのうち，最も管理する直下の子ノードが少ない Relay ピアに対して，自身のコンテンツメタデータを渡し，新規ピアが子ノードとなる．
関連する Relay ピアが見つかった場合，Relay ピアの子ノードから，関連するコンテンツメタデータがないか，同様に検索を行う．メタデータの検索を繰り返すことにより，ツリー構造を形成し，また関連するメタデータを持つピアとグループを形成する．従って，新規に追加されたピアと関連するコンテンツを持つピアが同じグループ，もしくは近い上位下位ノードのグループに存在するよう組織化される．
本手法では，以下の特長があげられる．

エージェントの移動プロトコル

Km`gjc?eclr@wrcB_r_@wrcB_r_FRRNFRRNFc_bcp

ý̈́ବFRRNFc_bcp

図 3: MiNet エージェントの移動

トが移動する際，まずバイトデータに変換され，HTTP ヘッダを付加して他のピアに HTTP 経由で送信される．HTTP プ
ロトコルによってエージェントを構成するデータを送信するため，ファイアウォールの設定によらず，外部のピアにも移動が可能である．移動先のピアでは，通信終了後，バイトデータから元のエージェントが復元され，処理が再開される．

5.2

ファイアウォールを越える移動手法

LAN のセキュリティを確保するためのファイアウォールの設定では，外部からのアクセスが制限される．しかし，内部からの通信要求に関しては制限されない．そこで MiNet では，外部からエージェントの送信を要求するのではなく，内部からエージェントの受信を要求することで，ファイアウォールで保護された異なる LAN 間をエージェントが移動する事を可能にする．そのために，MiNet では，Relay ピアと呼ばれる MiNetピアを利用する．MiNet は，モバイルエージェントフレーム
ワーク MiLog を利用し，HTTP パケットがファイアウォールを内側から通過する性質を利用し，ファイアウォールを通過してエージェントを移動させることができる．
MiNet エージェントは，Relay ピアを経由した２段階の通信によって，ファイアウォールを通過して，異なる LAN 間を移動する．最初に，ファイアウォールの内部のピアから，Relayピアへ移動する．ここでは，エージェントを構成するバイトデータが，HTTP プロトコルに基づいてファイアウォールの内部から Relay ピアへアップロードされることになる．ファイアウォールは，内部から外部への通信要求を制限しないため，この通信は問題無く実現できる．次に，Relay ピアから，ファイアウォールに保護された LAN 上にある，移動先のピアに移動する．Relay ピアからの通信要求はファイアウォールによって拒否されるため，Relay ピアから移動先のピアに向けてエージェントを送信することができない．そこで，移動先のピアが，Relay ピアからエージェントをダウンロードすることによって，ファイアウォールの内部にエージェントを移動させる．
より具体的には，各ピアが，Relay ピア上に，Scout Agent と呼ばれる監視用のエージェントを事前に送信する．送信元のピアは定期的に Scout Agent に対してダウンロードしなければならないエージェントがいるのかを問い合わせ，Scout Agentがダウンロードの指示を出した場合，エージェントのダウンロードが実行される．ここでは，エージェントを移動させるための通信要求が内部から発行されるため，ファイアウォールによる通信の制限を受けない．
ファイアウォールで保護された２つの LAN（LAN1，および LAN2）の間のエージェントの移動の様子を例示した図 4 を用いて，異なる LAN 間でのエージェントの移動の手順を具体的に説明する．ここでは，LAN1 内の PeerA から，ファイア情報共有が切断され難い ツリー上位のピアとネットワークが切断されても，下位，もしくはグループ内にユーザの望む共有情報がある可能性が高いため，情報共有が妨げられにくい．

5.1

Km`gjc?eclrಒ‫؍‬

組織化が単純なため，構造を把握しやすい メタデータにそってグループとツリー構造を構成しているため，ネットワーク構造を把握しやすい．また，新規ピア追加時に組織化を行うため，以降の処理でピアの接続が変わりづらく，ネットワーク構造の変化によるトラフィックを抑えることができる．

MiNet エージェントのファイアウォールを越える移動

KgLcrNccp

೅ҙ

関連するコンテンツを検索しやすい 関連するコンテンツが同じグループ内に存在するため，検索効率がよい．

5.

KgLcrNccp

ファイアウォールは，一般に，内部から外部への通信を制限する．そのため，ソフトウェアに特化した特殊なプロトコルを用いて通信を行う場合，ファイアウォールの設定を適宜変更しなければ通信ができない．MiNet エージェントの移動は，HTTP プロトコルを利用して実現されている．図 3 は MiNet
におけるエージェントの移動の仕組みを示している．HTTPプロトコルとは，Web サーバとクライアントがデータを送受信するために用いられるプロトコルである．HTTP プロトコ
ルは，今日，広く普及している通信プロトコルであるため，通常のファイアウォールの設定では，HTTP プロトコルのデータパケットをファイアウォールの外部へ発信することが許可されている．また，メール送信プロトコルである SMTP を用いてファイアウォールを越える方法に比べ，HTTPS プロトコルを利用できる環境であれば，SSL の利用により，エージェントの移動時のセキュリティを確保できる．そのため，MiNet のエージェントは，ファイアウォールの内部から Relay サーバに移動することができる．図 3 に示す通り，MiNet エージェン

3The 19th Annual Conference of the Japanese Society for Artificial Intelligence, 2005

Nccp@

FirewallFirewallNccp@ȅ̈́ବ෋પǻȨĘȸȧɳɈ

まとめ

本論文では，物理的な構成を考慮した情報共有のための P2P
ネットワーク構築環境 MiNet を示した．MiNet はモバイルエー
ジェント構築環境 MiLog に基づいた，情報共有基盤を構築するためのネットワークシステムである．MiNet によるネットワーク上では，ピアを自動的に組織化し，ピアをグループすることによって，効率的な情報共有を行うネットワークを構築する．また，インターネット上の LAN は，多くの場合ファイアウォール等で保護されており，通信が制限されるが，MiNet の構築する VPN 上では，ファイアウォールに対して特別な設定変更をすることなく，ファイアウォールを越えた制限のない情報共有を実現している．今後の課題として，ピアの組織化におけるメタデータの生成や．組織化が妥当であるかの評価があげられる．現在，ピアの保持するコンテンツメタデータは手動で設定されている．メタデータの生成を自動化することにより，より容易に自動化されたネットワークの組織化を行うことができる．

KgLcr?eclr

KgLcr?eclr

/,̈́ବ

6.

J?L0

J?L/
Nccp?

1,ɀȦɳɭĘɉ
0,̈́ବ෋પǻȨĘȸȧɳɈȟɁȧɃȯ
Pcj_wɔȢ

図 4: エージェントのファイアウォールの通過

ウォールを通過して，LAN2 内の PeerB へエージェントが移動するケースにおける手順を示す．事前の処理として，PeerBは，Relay ピアに Scout Agent を送信する．Scout Agent は，Relay ピア上に，PeerB に移動しようとしているエージェントがいないかを監視する．PeerB は，一定時間ごとに Scout
Agent に HTTP によるリクエストを送信し，監視結果を受け取る．既に述べた通り，ファイアウォールは内部から外部への通信要求を制限しないため，Scout Agent の Relay ピアへの移動は容易である．

参考文献[1] S. Goto, T. Ozono, and T. Shintani, ”A Method forInformation Source Selection using Thesaurus for Distributed Information Retrieval.”, In the Proceedingsof the Pacific Asian Conference on Intelligent Systems
2001(PAIS2001),pp.272-277, Nov, 2001.

Step 1: エージェントの移動元の Peer A は，エージェントをシリアライズしてバイトデータに変換した後，HTTP プロトコルを用いて，LAN1 の外部に存在する Relay ピアにエージェントを移動させる．Scout Agent と同様に，本ステップにおける，エージェントの Relay ピアへの移動も，ファイアウォールに制限されることなく可能である．

[2] Gnutella : http://www.gnutella.com/.
[3] Napster. http://www.napster.com/.
[4] I.Clarke, O.Sandberg, B.Wiley, and T.W.Hong.
Freenet: A distributed anonymous information storage
and retrieval system. In Workshop on Design Issues inAnonymity and Unobservability, pages 311-320, July
2000. ICSI, Berkeley, CA, USA.

Step 2: エージェントは，Relay ピア上でバイトデータから復元され，移動先のピアからの通信を受信するまでピア上で待機する．

[5] N. Fukuta, T. Ito, and T. Shintani:” MiLog: A Mobile
Agent Framework for Implementing Intelligent Information Agents with Logic Programming, ” In the Proceedings of the First Pacific Rim International Workshop on Intelligent Information Agents(PRIIA2000),
pp.113-123, 2000.

Step 3: Relay ピア上に Peer B へ移動しようとしているエージェントがいるため，Peer B は，Scout Agent からエージェントをダウンロード可能，という監視結果を受け取る．ここで，Peer B は，Scout Agent を介してエージェントをシリアライズし，生成されたバイトデータを Relayピアからダウンロードする．PeerB は，LAN2 の内部に存在するため，バイトデータのダウンロード要求をファイアウォールに制限されない．そのため，エージェントを構成するバイトデータを，ファイアウォールを通過して受信可能である．

[6] JmDNS : http://jmdns.sourceforge.net/[7] A. Rowstron and P.Druschel, ”Pastry: Scalable,distributed object location and routing for largescale peer-to-peer systems.” IFIP/ACM International Conference on Distributed Systems Platforms(Middleware), 2001.

Step 4: Peer B はバイトデータからエージェントを復元する．
エージェントは Peer B 上で継続的に処理を実行可能である．

[8] I.Stoica, R.Morris, D.Karger, F.Kaashoek, andH.Balakrishnan, ”Chord:A scalable peer-to-peer
lookup service for internet applications.” in Proc ofACM SIGCOMM, San Diego, California, August,2001.

以上の手順により，異なる LAN 間をエージェントが移動でき，LAN 間の通信経路を構築できる．その結果，ファイアウォールで保護された LAN を VPN として利用が可能となる．
また，ここでは，ファイアウォールの存在を仮定していたが，同様の手順によって，Proxy，および NAT を通過してエージェントが移動可能である．従って，ピアの位置情報を IP アドレス等で明示的に与えることにより，通信先のピアがインターネットに接続されたどのような LAN に属する場合でも，通信が可能となる．

[9] B. Y. Zhao, L. Huang, J. Stribling, S. C. Rhea, A. D.
Joseph, and J. Kubiatowicz, ”Tapestry: A Resilient
Global-scale Overlay for Service Deployment.” IEEE
Journal on Selected Areas in Communications, Vol. 22,
No. 1, January, 2004.

4