【前へ】

第3章 ハイエンドコンピューティング研究開発の動向

3.3.3 P2Pの理念およびその実現技術:SIONetの全貌

星合 隆成 講師

1. はじめに
 筆者[1]-[53]は、1998年にブローカレス型探索モデル(ブローカレスモデル)を提唱して以来、その実現技術として「意味情報ネットワーク(SIONet: Semantic Information-Oriented Network)」を考案し、これまで提案してきた。そして、1998年末にSIONetプロトタイプ_版、1999年末にSIONetプロトタイプ_版の試作を完了した。さらに、2000年末にSIONet ver.1.0の開発を完了した。
 本稿では、ブローカレス型探索モデル(図A , 図B)を紹介することにより、「P2Pの本質」について論ずる。さらに、ブローカレス型探索モデル(P2Pモデル)の実現技術であるSIONetについて解説する[1]-[31]、[34]-[44]。

2. ブローカレス型探索モデル ― 情報のよりよい探索と配信をめざして ―
 米国国防総省が1969年に開始した実験ネットワーク(ARPANET)を礎とするインターネットは、今では我々の生活に欠かせないものになっている。世界中のあらゆるコンピュータを相互接続したインターネットは、いくつかの技術革新を経て、誰もがいつでもどこでも、気軽にネットワーク上の情報にアクセスできるネットワーク環境を我々に提供するようになった。
 第1世代におけるインターネットでは、「ブローカ型配信モデル」に基づいた情報配信が一般的であった。このビジネスモデルでは、ブローカとして位置付けられる情報配信者(例えば、パソコン通信会社)が、情報提供者の情報を集中管理し、必要に応じてユーザに対して情報の配信を行った。すなわち、ブローカがユーザと情報提供者を結びつける役割を果たしていた。そのため、ブローカは、膨大な情報を格納するための格納庫(ハードディスクなどのストレージ)、情報を処理するための高性能演算装置(高性能ワークステーションなど)、そしてユーザとの通信帯域の十分な確保など、膨大な設備投資が必要であった。
 これに対し、インターネットの利便性を飛躍的に向上させ、利用者の裾野を拡大させた革新技術が、1992年に発表されたWWW(World Wide Web)である。これがインターネット第2世代への扉を開いた。ユーザはブラウザを介して、世界中のあらゆる情報(コンテンツ)を利用できる一方で、情報提供者はブローカ(情報配信者)を介することなく、自らが情報発信することが可能になった。


図A


図B

 WWWでは、個々の情報提供者が情報を超分散管理し、情報同士をハイパーリンクすることにより、情報提供者のみで情報の超分散データベースを構築することができる。これにより、情報配信者を必要としない「情報配信ネットワークの構築」が可能になった。これこそが、インターネットが目指した真の姿であり、WWWが第2世代の革新技術と言われる所以である。本稿では、WWWのような配信技術によって可能になった新たなビジネスモデルを、「ブローカレス型配信モデル」と呼ぶ。[1]
 ブローカレス型配信モデルに基づく情報配信、すなわち、情報提供者主導の情報配信が可能になる一方で、世界中に氾濫する情報の中から、ユーザが望む情報を簡単に特定することや、情報提供者に取って情報を配信するに相応しいユーザを特定できることが重要な課題になった。残念ながら、WWWはこの課題に対するソリューションを与えてはくれない。そのため、ポータルサイト、検索サービス、リコメンデーションサービス、ディレクトリサービス、トレーダ、ルックアップサーバと呼ばれる新たなブローカが登場した。このビジネスモデルを「ブローカ型探索モデル」と呼ぶ。ブローカ型探索モデルでは、情報(源)の探索、もしくは、情報の配信先の探索まではブローカを介して行うが、発見された相手との情報配信は、end-to-end (peer-to-peer)で直接的に、すなわち、ブローカレス型配信モデルに基づいて行われる。従って、1999年1月に発表され話題になったNapsterも、ブローカ型探索モデルに位置付けることができる。[2]
 しかしながら、ブローカ型探索モデルでは、ブローカが情報のメタデータを一括管理しているために、ユーザや情報提供者の多用なニーズにリアルタイムに応えることが困難であること、すべてをブローカの運営ポリシーに委ねなければならないこと、ブローカが運営しているシステム(サーバ)がダウンするとすべてのサービスが停止してしまうこと、ユーザや情報提供者のプライバシー保護が困難なことなどから、より自由で、特定のブローカに支配されない新たなビジネスモデルが求められるようになった。すなわち、これまでのビジネスモデルにおいて一般的に用いられてきたブローカ(集中管理者)を排除し、エンティティ間(例えば、ユーザと情報提供者との間)で、互いに相応しい相手を直接探索・発見することが可能なビジネスモデルが求められるようになった。
 このような問題認識から、筆者が1998年に提唱した新たな概念が、「ブローカレス型探索モデル」である。これは、2000年3月に発表されたGnutellaを契機に、世界中で注目されるようになったP2P(Peer-to-Peer)と同じ世界を指向しているものである。また、2001年4月に発表されたJXTAも同様の世界を目指している。P2Pは、WWW以来の革新技術であり、第3世代と呼ばれている。なお、近年、伝送レイヤにP2Pの概念を適用したブローカレス型伝送モデルや、ポリシーレイヤにP2Pの考え方を適用したブローカレス型ポリシーモデル(COMNet [4], [5])の研究開発が活発化していている。
ブローカレス型探索モデル(P2Pモデル)は、ビジョン・概念・理念であり、これが目指す世界は非常に単純で明快である。具体的には、以下のような世界を構築することを目標としている。

 SIONetは、互いに相応しい人が、自律的に、ダイナミックに、フレキシブルに、ゆるやかに、グループ(コミュニティ)を形成することを支援する次世代コミュニケーションツールであり、そのキーコンセプトは「緩やかさの追求」と「局所性の追求」にある。以下では、SIONetがどのような技術で、ブローカレス型探索モデルを実現しているかについて解説する。特に、以下の項目について述べる。

(1) 自己組織化機構
 -  自律性、増殖、縮退
 -  ブローカレス(集中管理部が存在しない)
 -  エンティティの寿命(ライフタイム)は短いことを前提
 -  セキュアー、スケーラブル、耐障害性、低コスト(設備投資が少ない)
(2) アドバタイズメントとディスカバリ
 -  ベースイベントプレースに参加しているエンティティによるエントランスの公開と探索(SIONetの入り口の探索)
 -  エンティティプロパティの公開とディスカバリイベント
 -  最適なイベントプレースの芋づる式探索(緩やかな絞込み)
(3) 刺激と発火の連鎖反応
 -  セッション、シェアードリンク
 -  イベントパス(エンティティ間の相関関係)
 -  機能追加は、語彙概念の追加に相当(仕組みは連鎖反応のみ)
(4) プラグイン機構とアプリケーション共有(SE共有)
(5) サーバ、ハイブリッド、ピュアP2Pネットワークの構築
 -  エンティティの運営・配置問題に帰着
 -  共通の仕組み(連鎖反応のみ)で様々なP2Pネットワークを実現

3. SIONet概要

3.1 概念モデル
 SIONetは、意味情報(メタデータ)に基づいてイベントを配送するメタネットワークであり、ネットワーク上に超分散する不特定多数のエンティティの中から、特定のエンティティを動的に探索・発見することができる。すなわち、SIONetは、従来のネットワークで用いていた宛先アドレス(誰に対して送信する)の代わりに、意味情報(どういう人に対して送信する)に基づいてイベントを配送するネットワークである(図C)。
 また、SIONetは、SIONetの構成要素を含めたすべてのエンティティが自律分散協調することにより、ネットワークが自己組織化される自律分散協調ネットワーク(自律分散コンピュータ)である。SIONetのネットワーク構成要素には、「意味情報スイッチ(SI-SW)」、「意味情報ルータ(SI-R)」、「意味情報ゲートウエイ(SI-GW)」、「イベントプレース」、「セッション」などがあり、これらが必要に応じて自己組織化することにより、セキュアーでスケーラブルなP2Pネットワークをボトムアップアプローチで構築することができる。
 SIONetの基本概念・原理は単純で一元的である。“エンティティによるフィルタの登録とイベントの送出”という単純操作の繰り返し、すなわち、“エンティティの「刺激」と「発火」の「連鎖反応」”により、すべてのエンティティを自律分散協調させる点にある。この連鎖反応の振舞いを制御するものが「フィルタ」である。フィルタに登録するフィルタ値により、エンティティの連鎖反応の仕方を動的に制御することができる。SIONetにおけるもう一つの基本概念がイベントプレースである。イベントプレースは、シェアードリンクにより、相互に接続されたエンティティグループであり、これにより連鎖反応の範囲を制限することができる。
 具体的には、イベントルーティング、イベント転送モード(ユニキャスト、ブロードキャスト、マルチキャスト、属性付きマルチキャスト、リプライ通知)、ファイアウォール機構、エンティティのオンライン増減設機構、障害処理機構、統計情報収集機構などが、これらの考え方に基づいて設計・実装されている。


図C

3.2 SIONetエンティティの定義
パーソナルコンピュータ、ワークステーション、情報携帯端末、携帯電話、ウエアラブルコンピュータなどのあらゆるコンピュータを総称して、ホストと呼ぶ。さらに、SIONetソフトウエアを実装したホストを、「SIONetエンティティ」もしくは単に「エンティティ」と呼ぶ。エンティティは、SIONetソフトウエアを実装したホストを、SIONetにおける自律分散協調の単位として仮想化したものである(図1)。なお、SIONetソフトウエアは、個々のエンティティが自律分散協調を行うための仕組みを提供する。すなわち、各ホストが自律分散コンピュータとなる。SIONetでは各エンティティが自律分散協調することによりエンティティグループ(イベントプレース)を形成する。
エンティティは、図2に示すように主に3つのタイプに分類される。


図1

図2

3.3 エンティティ構造と状態遷移
 図3にエンティティの状態遷移を示す。“Non-Existent”状態は、ホストにSIONetソフトウエアをインストールした時点でのエンティティ状態を表している。
 SIONetソフトウエアを実行(ラウンチ)することにより、“Non-Existent”状態から“Suspend”状態に遷移する。このとき、エンティティ内に、エンティティ制御部、コントロールパネル、ネットワークエンティティファクトリ、ネットワークエンティティ、などの内部モジュールが生成される(図4)。以下に、それぞれの役割を簡単に説明する。


図3

図4

@ エンティティ制御部:エンティティの実体であり、他のエンティティやコントロールパネルからの様々な要求(後述するセッションの確立要求、シェアードリンクの確立要求など)を受け付ける。なお、“Suspend”状態のエンティティに対して、他のエンティティからセッションの確立要求、シェアードリンクの確立要求などを行うことはできない。
A コントロールパネル:人などのエンティティの所有者に対して、GUIを提供する。例えば、エンティティにエンティティ名を付与することができる。図4においては、“エンティティ 2”と命名している。このエンティティ名を、後述する「グローバルエンティティ名」と特に区別して「ローカルエンティティ名」と呼ぶことがある。
B NEファクトリ:NEを動的に生成するためのファクトリ
C NE(ネットワークエンティティ):SI-R、SI-GW、アライブエンティティ、障害処理エンティティ、統計情報収集エンティティなど、ネットワーク制御のために振る舞うエンティティ
D SE(サービスエンティティ):エンティティが提供するプラグイン機構を用いて、エンティティ内にSEとして組み込まれたアプリケーション。SEは、SIONet上で動作するP2Pアプリケーションを仮想化したものである。エンティティが提供するプラグイン機構を用いて、アプリケーションをSEとしてエンティティ内に組み込むことができる(図11参照)。また、SEは、SI-SWに対して、任意数のセッションを確立することができる。SEはセッションを介してのみ、イベントの送受信が可能である。SEは、SIONetのネットワーク構築・運営に関与しない。なお、SEをエンティティ内に組み込むプラグイン機構について後述する。

“Suspend”状態のエンティティ(エンティティ2)が、自らイベントプレースを生成したとき(図5)、既存のイベントプレースにJoin(参加)したとき(図6)、など任意のイベントプレースに属し、エンティティグループのメンバーになったときに、エンティティ(エンティティ2)は“Suspend”状態から“Active”状態へと遷移する。“Active”状態のエンティティのみが自身の存在をアドバタイズし、他のエンティティからのセッションの確立要求やシェアードリンクの確立要求を受け付けることができる。
 ここでは、図5に示すように、エンティティ2が“イベントプレースA”と命名したイベントプレースを生成した場合を考える。このとき、エンティティ制御部は、NEファクトリにSI-SWの生成を依頼し、生成されたSI-SWと、NEなどの内部モジュールとの間にセッションを確立する。
 以下にSI-SWとセッションの役割について説明する。SI-SW(意味情報スイッチ)は、意味情報に基づいて、イベントをスイッチングするスイッチング機構を提供する。SI-SWはセッションを介して、NEや、プラグイン機構によりエンティティ内に組み込まれたSEをスター型で収容する。以下では、SEを例にとり説明するが、NEなどの他の内部エンティティも同様である。
 「セッション」とは、SI-SWとSE間のコネクションであり、SEは、セッションを介してのみイベントの送受信を行うことができる(図7)。セッションには、イベントの送信セッション、受信セッション、送受信セッションの3タイプがある。


図5

 図7に示すように、SEは、受信セッションを介して、イベントの取得条件をSI-SWに登録する。これを「フィルタ」と呼ぶ。フィルタには、取得したいイベントの語彙概念(イベントタイプ)、および、意味情報との照合条件(例えば、語彙“Price”が“$20から$40の範囲”のものを取得対象とする)を設定する。なお、当該イベントタイプに定義されているすべての語彙との「完全一致」、一部の語彙との「部分一致」、「重み付け一致」など、照合条件をフィルタ単位で選択することができる。


図6-図7

 

 一つの受信セッションから、複数のフィルタを登録可能であるが、同一セッションを介して登録されたフィルタ間は“or”関係を有する。すなわち、一つのイベントに対して、一つの受信セッションは高々1回しか発火しない。取得したいイベントのイベントタイプにワイルドカードを指定した場合には、すべてのイベントタイプが取得の対象となる。また、意味情報との照合条件に1(論理値が真)が設定された場合には、無条件に意味情報との照合条件が満足されたことを意味する。
 一方、SEは、送信セッションを介して、SI-SWにイベントの送信を行う。このとき、SI-SWはイベントの意味情報部とフィルタとを照合する。具体的には、まず、受信したいイベントタイプであるかどうかをチェックし、これを満足した場合には、意味情報と照合条件をチェックする。照合の結果、条件を満足した場合には、合致したフィルタを登録したエンティティを起動するととともに、当該イベントを通知する。
 SIONetでは、イベントの送信を「刺激」、フィルタがイベントに合致することを「反応」、合致したフィルタを登録したエンティティを起動しイベント通知することを「発火」と呼ぶ。
 イベントは、制御情報部、意味情報部、データ部から構成される(図8)。データ部には、送信データが格納される。送信データとして、テキストデータ、バイナリデータ、リファレンス、プロキシ、エージェントなど、様々なデータ、プログラムを格納することができる。
 意味情報部には、送信データの意味情報(語彙とその値)、および、意味情報の語彙概念(イベントタイプ)が格納される。ここで、意味情報とは、送信データの特性を記述したメタデータであり、イベントタイプのインスタンスである。一方、イベントタイプは意味情報のテンプレートである。イベントタイプ間には継承関係を定義できる。
 図9に、意味情報体系の一例を示す。意味情報体系の記述言語としてはXMLなどがある。なお、ネットワークエンティティ用に一部のイベントタイプ名(SIONetから始まるすべての名称)が予約済みである。
 制御情報部は、SIONetの実行制御のために用いられる制御フィールドであり、これのみがSIONetのユーザであるSEに対して開放されていない。制御情報部には、合致したフィルタの識別子、合致したフィルタの照合得点、同期型統計情報収集フラグ、TTL値(イベントプレース内、イベントプレース間)、ホップ数(イベントプレース内、イベントプレース間)、ホップ属性などの制御情報が設定される。


図9

 

3.4 エンティティの名称付与方法
 図5に示すように、エンティティ2が“イベントプレースA”と命名したイベントプレースを生成した場合を考える。このとき、前述したように、エンティティ制御部は、NEファクトリにSI-SWの生成を依頼し、生成されたSI-SWと、NEなどの内部モジュールとの間にセッションを確立する。さらに、生成されたSI-SWの名前を「イベントプレース名+ローカルエンティティ名」、すなわち「イベントプレースA + エンティティ2」として記憶する。この名前を「グローバルエンティティ名」と呼ぶ。このグローバルエンティティ名の作成がイベントプレースの生成に相当する。すなわち、SIONetでは、イベントプレースの生成により、必ずしも何らかの管理実体が生成されるとは限らない。つまり、SIONetでは、イベントプレースに属しているエンティティのメンバー管理を、後述するエンティティ間のシェアードリンクにより実現しているため、メンバー管理を行う集中管理部自体が存在しない。そのため、イベントプレースを生成したエンティティが当該イベントプレースから退去しても、残されたエンティティが自律的に自己組織化することにより、イベントプレースの運営が継続される。すなわち、イベントプレースから最後のエンティティが退去することが、イベントプレースの消滅に相当する。
 グローバルエンティティ名の役割を以下に示す。図5に示したエンティティ2がさらにイベントプレースBを生成した場合を考える(図10)。前述と同じ手順で、エンティティ2内部に新たなSI-SWが生成され、生成された新たなSI-SWにグローバルエンティティ名として「イベントプレースB +エンティティ2」が付与される。すなわち、エンティティ2は二つのグローバルエンティティ名(SI-SW名)を持つ。ここで、エンティティ1がイベントプレースAにJoinする場合を考える。エンティティ1が、エンティティ2に対してJoin要求を行うとき、エンティティ2のグローバルエンティティ名が「イベントプレースA + エンティティ2」である旨を通知する。これにより、シェアードリンクを確立するSI-SWを一意に特定することが可能になり、ひいては、イベントプレースAへの参加が可能になる。このように、シェアードリンクやセッションの確立先であるSI-SWはグローバルエンティティ名として仮想化されるため、SI-SWを直接意識することはない。なお、"Active"状態のエンティティは、自身の存在を公開することができるが、その際にはグローバルエンティティ名が公開されることになる。

3.5 SEのプラグイン方法
 以下に、エンティティへのSEの組み込み方法を示す(図11)。


図10


図11

(1) エンティティの所有者は、コントロールパネルに対して、アプリケーションのプラグインを指示する。このとき、プラグインするアプリケーションの実行ファイル名をパラメータとして与える。なお、アプリケーションプログラムの実体がファイルであるかどうかは実装依存である。
(2) コントロールパネルはこの旨をエンティティ制御部に通知する。
(3) エンティティ制御部は、プラグインする実行ファイル名を記憶するとともに、与えられた実行ファイル名を用いて、アプリケーションを起動し、SI-SWとアプリケーション間にセッションを確立する(アプリケーションにセッションを払い出す)。すなわち、SIONetにおけるプラグインとは、アプリケーションとSI-SWとの間にセッションを確立し、アプリケーションやCOMNetなどのミドルウエアを、エンティティ内の内部エンティティ(SE)として仮想化することに他ならない。すなわち、エンティティを汎用ゲーム機として、プラグインされたSEをゲームソフトとして見なすことができる。SIONetでは、SE、NEなどのすべての動作実体は、セッションを介して連携する。そのため、プラグイン/プラグアウト(着脱)を容易に実現できるとともに、プラグイン/プラグアウトが他の動作実体(内部エンティティ)に影響を与えない(超疎結合)。
(4) この考え方を拡張することにより、後述するようなエンティティ間でのSE共有が実現できる。

3.6 PREFERENCEアーキテクチャ
 SIONetは図12に示すようにリファレンスモデルの考え方を採用している。[4] SIONetはイベントの伝達層であり、上位層に対してネットワークインタフェースを提供する。ミドルウエア層がコミュニティ(コミュニティネットワーク: COMNet)であり、SIONetのインテリジェンス層に相当する。このレイヤにおいて、情報の局所化、認証(信頼性、信用度、価値観など)、セキュリティ、インセンティブ(名誉、貢献度、寄付など)、情報の権利保証、ポリシー制御、自動化制御などが行われる。そして、最上位層がアプリケーション層(SE)となっている。SEとしては、Personal TV Service(個人TV局)、Smart Messenger(メッセージ交換サービス)などがすでに実装されている。SIONetは、分散コンピューティング、情報交換、コラボレーション、メッセージ配信などのあらゆるP2Pサービス(SE)に対して、共通のP2Pネットワーク基盤を提供するとともに、プラグイン機構やSE共有機構の提供により、アプリケーション開発の効率化をサポートする。


図12

 


[1] End-to-Endでストリームデータの配送を行うストリームインタフェース[32],[33]もブローカレス型配信モデルに位置付けられる。
[2] 余談ですが、NapsterをP2P(ブローカレス型配信モデル)として位置付けることに若干の疑念があります。それは、WWWによって初めて提唱されたブローカレス型配信モデルは、ブローカの存在なしに、自らが情報の配信ネットワークを構築できる点にあります。しかしながら、Napsterはネットワーク(面)ではなく、単なるポイント(点)に過ぎません。すなわち、NapsterをP2Pと定義した時点で、FTPや糸電話、ありとあらゆる通信形態がP2Pとして定義されることになります。これは、P2P(ブローカレス)の本質を全く反映しておりません。なぜなら、通信の起源は、peerとpeerの通信からスタートしているからです。これは、P2P通信方式(P2Pインタラクション方式)と呼ばれる古典的な考え方であり、今、話題のP2Pとは次元の違うものです。現状を省みると、このような誤解が多々見受けられます。これらについては文献[1], [2], [3], [13]を参照ください。
[3] エンティティグループへの参加・退去は、各エンティティの自律性に委ねられる。さらに、膨大な数のエンティティの各々に、規則性がなく、行動予測が困難であるブローカレス型探索モデルにおいては、エンティティの寿命が短いことを想定する必要がある。すなわち、IPルータなどは、無限の寿命を持つ(安定的に運営される)ものとして見なすことができる。そのため、P2Pの世界ではこの点に十分配慮した方式設計が重要になる。
[4] PREFERENCEアーキテクチャは、御用聞き社会(御用聞き型サイバーソサイアティ)構築に向けたアーキテクチャであり、ブローカレス型配信モデル、ブローカレス型探索モデル、ブローカレス型ポリシーモデルに対するトータルソリューションを提供する。具体的には、ストリームインタフェース、SIONet、COMNetなどから構成される。これは、誰もが、自由に、相応しい人と出会うことが可能な仮想社会の構築を目指すものであり、SIONetはそのための次世代コミュニケーションツールとして位置付けられる。

 

【次へ】