現在すでに、インターネット上の300万台を越えるコンピュータからなる分散システム(例:eDonkey2k)が出現している。今後も、人類が扱う情報の量やネットワークにつながる機器の数は爆発的に増加していくため、数百万台からなる超大規模システムを構築、管理する技術が重要となる。
数万、数百万という台数となっても性能と耐故障性を保つためには、自律的・非集中的にネットワークを構成することが不可欠である。このようなアプリケーションレベルのネットワークはオーバレイネットワークと呼ばれ、検索やマルチキャストなどの機能を提供する。
研究と応用の距離
オーバレイの動作アルゴリズムを設計・評価するには、多数のノードを想定した実験が欠かせない。大規模な実験環境、例えば1000台のPCの用意は難しいため、アルゴリズムの動作と有用性の確認はシミュレーションで行われる。その後、インターネット上の実環境で動作させるためには、実環境向けのソフトウェアを、別途開発する必要がある。われわれが開発したオーバレイ構築ツールキットOverlay Weaverは、この、アルゴリズム研究から応用までの距離を短縮する。このツールキットによりアルゴリズムの実環境での動作と、計算機1台上での大規模エミュレーションの双方が可能となる。そのため、エミュレータを使って大規模な動作試験を繰り返し行いながらアルゴリズムを設計・実装して品質を向上させ、そのまま実環境で動作させることができる。
ルーティングアルゴリズムの実装を容易に
structuredオーバレイは、ID(例えば160ビットの数値)に対応するノードへのルーティングを基本として、その上で、分散ハッシュ表(DHT)やマルチキャスト等の機能を提供する。Overlay Weaverは、ルーティングアルゴリズム固有の処理を、多くのアルゴリズムに共通する処理から分離することに成功した。共通処理の実装はツールキットが提供するため、アルゴリズムの新規実装が容易になり、Chord、Kademlia、Koorde、Pastry、Tapestry、といったアルゴリズムをそれぞれ数百ステップで実装できた(図1)。同時に、共通処理側の切り替えも可能となり、性質の異なる複数のルーティング手法(iterative/recursiveルーティング)から応用に適切なものを選択できるようになった。
![]() |
|
図1 各アルゴリズムのコード量 |
ツールキットの構成
Overlay Weaverは、図2中の各コンポーネントと次の各ツールからなる。
- 分散環境エミュレータ
- エミュレーションシナリオ生成器
- メッセージカウンタ
- メッセージング可視化ツール(図3)
高レベルサービスとしてDHTに加えて、マルチキャスト機能を提供している。サンプルアプリケーションとしては、DHTシェルとマルチキャストシェルを提供している。これらシェルをエミュレータと組み合わせることで、アルゴリズムの動作試験や比較を行うことができる。

首藤 一幸



