JP3822178B2 - エンティティ装置、障害回復方法、及び、コンピュータプログラム - Google Patents

エンティティ装置、障害回復方法、及び、コンピュータプログラム Download PDF

Info

Publication number
JP3822178B2
JP3822178B2 JP2003070038A JP2003070038A JP3822178B2 JP 3822178 B2 JP3822178 B2 JP 3822178B2 JP 2003070038 A JP2003070038 A JP 2003070038A JP 2003070038 A JP2003070038 A JP 2003070038A JP 3822178 B2 JP3822178 B2 JP 3822178B2
Authority
JP
Japan
Prior art keywords
entity
event
shared link
entity device
search
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003070038A
Other languages
English (en)
Other versions
JP2004282346A (ja
Inventor
隆成 星合
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2003070038A priority Critical patent/JP3822178B2/ja
Publication of JP2004282346A publication Critical patent/JP2004282346A/ja
Application granted granted Critical
Publication of JP3822178B2 publication Critical patent/JP3822178B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、エンティティ装置、障害回復方法、及び、コンピュータプログラムに関する。
【0002】
【従来の技術】
近年、ネットワークの業界において、「ブローカレス型探索モデル」という新たな概念が考え出された。このブローカレス型探索モデルが、2000年3月に発表されたGnutellaのような、世界中で注目されるようになったP2P(Peer-to-Peer)に相当する。また、2001年4月に発表されたJXTAもP2P、すなわちブローカレス型探索モデルに相当する。P2Pは、WWW以来の革新技術であり、第3世代と呼ばれている。なお、近年、伝送レイヤにP2Pの概念を適用したブローカレス型伝送モデルや、ポリシーレイヤにP2Pの考え方を適用したブローカレス型ポリシーモデルの研究開発が活発化していている。ブローカレス(配信)モデルのディメンションを図23に示す。このブローカレス型探索モデルの1つがSIONet(Semantic Information-Oriented Network、意味情報ネットワーク)である。
【0003】
SIONetは、意味情報(メタデータ)に基づいて、データと当該データの意味情報とからなるイベントを配送するメタネットワークである。図24に示すように、イベント受信者は、受信したいイベントの条件を示す意味情報を予めSIONetに登録しておく。イベント送信者からイベントがSIONetに送信されると、SIONetは、当該イベントの意味情報と、登録された意味情報とを照合し、その照合結果に基づいて、当該イベントをイベント受信者に送信する。このように、イベントをSIONetに送信することを「刺激」といい、登録した意味情報とイベントの意味情報とが合致し、当該意味情報を登録したイベント受信者に、当該イベントを通知することを「発火」という。
【0004】
これにより、ネットワーク上に超分散する不特定多数のエンティティの中から、特定のエンティティを動的に探索・発見することができる。すなわち、SIONetは、従来のネットワークで用いていた宛先アドレス(誰に対して送信する)の代わりに、意味情報(どういう人に対して送信する)に基づいてイベントを配送するネットワークである。
【0005】
また、SIONetは、SIONetの構成要素を含めたすべてのエンティティが自律分散協調することにより、ネットワークが自己組織化される自律分散協調ネットワーク(自律分散コンピュータ)である。SIONetのネットワーク構成要素には、「意味情報スイッチ(SI-SW)」、「意味情報ルータ(SI-R)」、「意味情報ゲートウェイ(SI-GW)」、「イベントプレース」、「セッション」などがあり、これらが必要に応じて自己組織化することにより、セキュアーでスケーラブルなP2Pネットワークをボトムアップアプローチで構築することができる。
【0006】
SIONetの基本概念・原理は単純で一元的である。“エンティティによるフィルタの登録とイベントの送出“という単純操作の繰り返し、すなわち、”エンティティの「刺激」と「発火」が、SIONetのネットワーク構成要素間で「連鎖反応」”することにより、すべてのエンティティを自律分散協調させる点にある。この連鎖反応の振舞いを制御するものが、上述のイベント受信者がSIONetに登録した意味情報であり、これを「フィルタ」という。フィルタに登録するフィルタ値により、エンティティの連鎖反応の仕方を動的に制御することができる。SIONetにおけるもう一つの基本概念がイベントプレースである。イベントプレースは、シェアードリンクにより相互に接続されたエンティティグループであり、これにより連鎖反応の範囲を制限することができる。
なお、SIONetの詳細については非特許文献1、2に記載されている。また、この発明の出願人は、先に、特願2001-394980によってSIONetに関する出願を行っている。
【0007】
【非特許文献1】
星合隆成、小柳恵一、ビルゲー・スクバタール、久保田稔、柴田弘、酒井隆道、"意味情報ネットワークアーキテクチャ"、電子情報通信学会論文誌B、Vol.J84-B、No.3、pp.4,11-4,2,4(2000.7受付、 2001-3掲載)
【非特許文献2】
星合隆成、柴田弘、酒井隆道、小柳恵一:"意味情報ネットワークアーキテクチャ:SIONアーキテクチャ"、NTT R&D、Vol.50、No.3、pp.157-164(2000.12受付、2001.3掲載)
【0008】
【発明が解決しようとする課題】
SIONetでは、イベントプレースに参加しているエンティティが障害に陥った場合、このエンティティと確立されているシェアードリンクを解除し、他の上流のエンティティとシェアードリンクの再確立を行う。
そのため、各エンティティは探索イベントを送出することにより、シェアードリンクの再確立先となる上流のエンティティ(以下、代替エンティティ)の把握を行っている。しかし、エンティティは、把握済みの代替エンティティが退去、あるいは、障害に陥ってもそれを知ることができず、シェアードリンクの再確立ができない場合があった。
【0009】
本発明はこのような事情に鑑みてなされたもので、代替エンティティの状態を常に把握し、自身の接続先の上流のエンティティに障害が発生した場合に、接続可能な代替エンティティへの切替を行い、イベントプレースの再構築を行うことができるエンティティ装置、障害回復方法、及び、コンピュータプログラムを提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明は上記の目的を達成するためになされたもので、請求項1に記載の発明は、複数のエンティティ装置をシェアードリンクを介して接続して構成されるイベントプレースにおいて、障害発生時に前記イベントプレースの再構築を行うエンティティ装置であって、自身のシェアードリンクの確立要求先である上流のエンティティ装置および自身に対するシェアードリンク確立要求元である下流のエンティティ装置を示すシェアードリンク確立情報を保持し、自身が接続している上流のエンティティ装置に障害が発生したときの代替の接続先となる上流のエンティティ装置を探索するための、探索を行う範囲の情報を含む探索イベントを送信する探索手段と、下流のエンティティ装置からの探索イベントを受信して自身が保持する前記シェアードリンク確立情報と照合し、受信した前記探索イベントの示す探索を行う範囲が自身の接続している上流のエンティティ装置を含む場合には、この上流のエンティティ装置へ該探索イベントを転送し、受信した前記探索イベントの示す探索を行う範囲が自身を含む場合には、自身のエントリポイントとグローバルエンティティ名を含む応答イベントを返送する応答手段と、自身が送出した前記探索イベントに対応した上流のエンティティ装置からの応答イベントを受信し、該応答イベントに含まれる送信元のエンティティ装置のエントリポイントとグローバルエンティティ名を用いて、当該送信元のエンティティ装置を代替エンティティ装置として予備の接続を確立する接続確立手段と、自身が接続している前記上流のエンティティ装置に障害が発生した場合に、予備の接続が確立されている代替エンティティ装置へ接続切替を行う接続切替手段と、を備えることを特徴とするエンティティ装置である。
【0011】
請求項2に記載の発明は、請求項1に記載のエンティティ装置であって、さらに、予備の接続を確立した代替エンティティ装置に対して、この予備の接続を用いてヘルスチェックを行い、該代替エンティティ装置の退去あるいは障害の発生を認識したときに、該代替エンティティ装置との予備の接続を解放する状態確認手段、を備えることを特徴とする。
【0014】
請求項に記載の発明は、複数のエンティティ装置をシェアードリンクを介して接続して構成されるイベントプレースにおいて、障害発生時に前記イベントプレースの再構築を行うエンティティ装置に用いられる障害回復方法であって、自身のシェアードリンクの確立要求先である上流のエンティティ装置および自身に対するシェアードリンク確立要求元である下流のエンティティ装置を示すシェアードリンク確立情報を保持し、自身が接続している上流のエンティティ装置に障害が発生したときの代替の接続先となる上流のエンティティ装置を探索するための、探索を行う範囲の情報を含む探索イベントを送信し、下流のエンティティ装置からの探索イベントを受信して自身が保持する前記シェアードリンク確立情報と照合し、受信した前記探索イベントの示す探索を行う範囲が自身の接続している上流のエンティティ装置を含む場合には、この上流のエンティティ装置へ該探索イベントを転送し、受信した前記探索イベントの示す探索を行う範囲が自身を含む場合には、自身のエントリポイントとグローバルエンティティ名を含む応答イベントを返送し、自身が送出した前記探索イベントに対応した応答イベントを受信して、該応答イベントに含まれている送信元のエンティティ装置のエントリポイントとグローバルエンティティ名を用いて、当該送信元のエンティティ装置を代替エンティティ装置として予備の接続を確立し、自身が接続している前記上流のエンティティ装置に障害が発生した場合に、予備の接続が確立されている代替エンティティ装置へ接続切替を行う、ことを特徴とする障害回復方法である。
【0015】
請求項に記載の発明は、複数のエンティティ装置をシェアードリンクを介して接続して構成されるイベントプレースにおいて、障害発生時に前記イベントプレースの再構築を行うエンティティ装置に用いられるコンピュータプログラムであって、自身のシェアードリンクの確立要求先である上流のエンティティ装置および自身に対するシェアードリンク確立要求元である下流のエンティティ装置を示すシェアードリンク確立情報を保持するステップと、自身が接続している上流のエンティティ装置に障害が発生したときの代替の接続先となる上流のエンティティ装置を探索するための、探索を行う範囲の情報を含む探索イベントを送信するステップと、下流のエンティティ装置からの探索イベントを受信して自身が保持する前記シェアードリンク確立情報と照合し、受信した前記探索イベントの示す探索を行う範囲が自身の接続している上流のエンティティ装置を含む場合には、この上流のエンティティ装置へ該探索イベントを転送し、受信した前記探索イベントの示す探索を行う範囲が自身を含む場合には、自身のエントリポイントとグローバルエンティティ名を含む応答イベントを返送するステップと、自身が送出した前記探索イベントに対応した応答イベントを受信し、該応答イベントに含まれている送信元のエンティティ装置のエントリポイントとグローバルエンティティ名を用いて、当該送信元のエンティティ装置を代替エンティティ装置として予備の接続を確立するステップと、自身が接続している前記上流のエンティティ装置に障害が発生した場合に、予備の接続が確立されている代替エンティティ装置へ接続切替を行うステップと、をコンピュータに実行させることを特徴とするコンピュータプログラムである。
なお、この明細書において、エンティティ装置とは、パーソナルコンピュータ、ワークステーション、情報携帯端末、携帯電話、ウエアラブルコンピュータなどのあらゆるコンピュータの総称である。
【0016】
【発明の実施の形態】
[SIONetの詳細]
<SIONetエンティティの定義>
ここでは、パーソナルコンピュータ、ワークステーション、情報携帯端末、携帯電話、ウエアラブルコンピュータなどのあらゆるコンピュータを総称して、ホストと呼ぶ。さらに、SIONetソフトウェアを実装したホストを、「SIONetエンティティ」もしくは単に「エンティティ」と呼ぶ。エンティティ(エンティティ装置)は、図2(a)に例を示すように、SIONetソフトウェアを実装したホストを、SIONetにおける自律分散協調の単位として仮想化したものである。SIONetソフトウェアは、個々のエンティティが自律分散協調を行うための仕組みを提供する。このSIONetソフトウェアにより、各ホストが自律分散コンピュータとなることが可能となる。
【0017】
エンティティは、図2(b)に示すように、主に以下の3つのタイプに分類される。
・サービスとして振る舞うアプリケーション(サービスエンティティ:SE、サービスエンティティ部)をエンティティ内部に含むもの
・ネットワーク構成要素として振る舞うモジュール(ネットワークエンティティ:NE)をエンティティ内部に含むもの
・上記SEとNEとの両方をエンティティ内部に含むもの
【0018】
<エンティティ構造と状態遷移>
図3は、エンティティの状態遷移を示す図である。この図に示すように、エンティティの状態として、”Non-Existent”、”サスペンド”、”アクティブ”という3つの状態がある。
”Non-Existent”状態は、ホストにSIONetソフトウェアをインストールした時点でのエンティティ状態を表している。
SIONetソフトウェアを実行(ラウンチ)することにより、”Non-Existent”状態から”サスペンド”状態に遷移する。このとき、エンティティ内に、図4に一例を示すように、エンティティ制御部、コントロールパネル、ネットワークエンティティファクトリ(NEファクトリ)、ネットワークエンティティ(NE)、などの内部モジュールが生成される。以下に、それぞれの役割を簡単に説明する。
【0019】
エンティティ制御部とは、エンティティの実体であり、他のエンティティやコントロールパネルからの様々な要求(後述するセッションの確立要求、シェアードリンクの確立要求など)を受け付ける。なお、”サスペンド”状態のエンティティに対して、他のエンティティからセッションの確立要求、シェアードリンクの確立要求などを行うことはできない。
【0020】
コントロールパネルは、人などのエンティティの所有者に対して、GUI(Graphical User Interface)を提供する。コントロールパネルにより、例えば、エンティティの所有者にエンティティ名の入力を促し、入力されたエンティティ名に基づいて、エンティティ制御部が当該エンティティにエンティティ名を付与する。図4の例では、エンティティ名を”エンティティ2”としている。このエンティティ名を、後述する「グローバルエンティティ名」と特に区別して「ローカルエンティティ名」と呼ぶことがある。このローカルエンティティ名は、当該エンティティの所有者等が任意で設定できるものとする。
【0021】
NE(ネットワークエンティティ)ファクトリとは、NEを動的に生成する機能を備える。
NE(ネットワークエンティティ)とは、SI-R(Semantic Information Router、意味情報ルータ)、SI-GW(Semantic Information Gateway、意味情報ゲートウェイ)、アライブエンティティ、障害処理エンティティ、統計情報収集エンティティなど、ネットワーク制御のために振る舞うモジュールの総称である。
【0022】
SE(サービスエンティティ)とは、エンティティが提供するプラグイン機構を用いて、エンティティ内にSEとして組み込まれたアプリケーションであり、SIONet上で動作するP2Pアプリケーションを仮想化したものである。エンティティが提供するプラグイン機構を用いて、アプリケーションをSEとしてエンティティ内に組み込むことができる。また、SEは、SI-SWに対して、任意数のセッションを確立することができる。SEはセッションを介してのみ、イベントの送受信が可能である。SEは、SIONetのネットワーク構築・運営に関与しない。なお、SEをエンティティ内に組み込むプラグイン機構については後述する。
【0023】
図3における”サスペンド”状態のエンティティ(エンティティ2)が、例えば、図5に例を示すように自らイベントプレースを生成したり、図6に例を示すように既存のイベントプレースにJoin(参加)などして、任意のイベントプレースに属し、エンティティグループのメンバーになったときに、エンティティ(エンティティ2)は”サスペンド”状態から”アクティブ”状態へと遷移する。”アクティブ”状態のエンティティのみが自身の存在をアドバタイズ(公開、詳細は後述する)し、他のエンティティからのセッションの確立要求やシェアードリンクの確立要求を受け付けることができる。
【0024】
ここで、ソフトウェアがホストにインストールされ、NE、NEファクトリ、エンティティ制御部、コントロールパネルなどを備えるエンティティが生成された後、当該エンティティが”アクティブ”状態となるまでの動作を説明する。エンティティが、当該エンティティの所有者などからコントロールパネルを介して、イベントプレースの生成や他のイベントプレースへの参加の指示を受けたものとする。エンティティのエンティティ制御部は、当該エンティティのNEファクトリにSI-SW(Semantic Information Switch、意味情報スイッチ)の生成を依頼する。NEファクトリがSI-SWを生成すると、エンティティ制御部は、生成されたSI-SWと、NEなどの内部モジュールとの間にセッションを確立する。これにより、アドバタイズや、他のエンティティからのセッションの確立要求、シェアードリンクの確立要求等を受け付けることが可能となる。
【0025】
ここで、図7を参照し、SI-SWとセッションの役割について説明する。
セッションとは、SI-SWとSE間のコネクションであり、SEは、セッションを介してのみイベントの送受信を行うことができる。セッションには、イベントの送信セッション、受信セッション、送受信セッションの3タイプがある。
SI-SWは、意味情報に基づいて、イベントをスイッチングするスイッチング機構を提供する。SI-SWはセッションを介して、NEや、プラグイン機構によりエンティティ内に組み込まれたSEやNEなどの内部エンティティをスター型で収容する。以下では、SEを例にとり説明するが、NEなど、エンティティに内包された他の内部エンティティも同様である。
【0026】
ここで、イベントの構成について説明する。図8に一例を示すように、イベントは、制御情報部、意味情報部、データ部から構成される。データ部には、送信データが格納される。送信データとして、テキストデータ、バイナリデータ、リファレンス、プロキシ、エージェントなど、様々なデータ、プログラムを格納することができる。
【0027】
意味情報部には、送信データの意味情報(語彙とその値)、及び、意味情報の語彙概念(イベントタイプ)が格納される。ここで、意味情報とは、送信データの特性を記述したメタデータであり、イベントタイプのインスタンスである。また、イベントタイプは意味情報のテンプレートである。イベントタイプ間には継承関係を定義できる。図9に、意味情報体系の一例を示す。この図において、”タイトル;イエスタデイ”、”価格;$30”、”アーティスト名;ビートルズ”という意味情報は、”ポピュラー”というイベントタイプに属しており、また”音楽”というイベントタイプにも属している。また、”タイトル;きよしこの夜”、”価格;$20”、”シチュエーション;クリスマス”という意味情報は、”BGM”というイベントタイプに属しており、また”音楽”というイベントタイプにも属している。
【0028】
意味情報体系の記述言語としてはXML(Extensible Markup Language)などがある。なお、ネットワークエンティティ用に一部のイベントタイプ名(SIONetから始まるすべての名称)が予約済みである。
図8に一例を示すイベントの制御情報部は、SIONetの実行制御のために用いられる制御フィールドであり、これのみがSIONetのユーザであるSEに対して開放されていない。制御情報部には、合致したフィルタの識別子、合致したフィルタの照合得点、同期型統計情報収集フラグ、イベントプレース内、イベントプレース間におけるTTL(Time To Live)値、イベントプレース内、イベントプレース間におけるホップ数、ホップ属性などの制御情報が設定される。
【0029】
図7に示すようなエンティティの構成において、SEの機能を説明する。SEは、受信セッションを介して、イベントの取得条件をSI-SWに登録する。これを「フィルタ」と呼ぶ。フィルタには、取得したいイベントの語彙概念(イベントタイプ)、及び、意味情報との照合条件(例えば、語彙”Price”が”$20から$40の範囲”のものを取得対象とする)等を設定する。なお、当該イベントタイプに定義されているすべての語彙との「完全一致」、一部の語彙との「部分一致」、「重み付け一致」など、照合条件をフィルタ単位で選択することができる。
【0030】
SEは、一つの受信セッションから、複数のフィルタを登録することが可能であるが、同一セッションを介して登録されたフィルタ間は”or”関係を有する。すなわち、一つのイベントに対して、一つの受信セッションは高々1回しか発火しない。取得したいイベントのイベントタイプにワイルドカードを指定した場合には、すべてのイベントタイプが取得の対象となる。また、意味情報との照合条件に1(論理値が真)が設定された場合には、無条件に意味情報との照合条件が満足されたことを意味する。
【0031】
また、SEは、送信セッションを介して、SI-SWにイベントの送信を行う。このとき、SI-SWはイベントの意味情報部とフィルタとを照合する。具体的には、まず、受信したいイベントタイプであるかどうかをチェックし、これを満足した場合には、意味情報と照合条件をチェックする。この照合の結果、意味情報が照合条件を満足している場合には、合致したフィルタを登録したエンティティを起動するとともに、当該イベントを通知する。
SIONetでは、イベントの送信を「刺激」、フィルタがイベントに合致することを「反応」、合致したフィルタを登録したエンティティを起動しイベント通知することを「発火」と呼ぶ。
【0032】
<エンティティの名称付与方法>
図5に示すように、エンティティ2が”イベントプレースA”と命名したイベントプレースを生成する場合を説明する。エンティティ2の所有者は、コントロールパネルを介するなどして、エンティティ2にイベントプレース名を入力する。ここでは、入力等されたイベントプレース名を「イベントプレースA」とする。すると、エンティティ制御部は、NEファクトリにSI-SWの生成を依頼し、生成されたSI-SWと、NEなどの内部モジュールとの間にセッションを確立する。さらに、エンティティ制御部は、生成されたSI-SWの名前を「イベントプレース名+ローカルエンティティ名」、すなわち「イベントプレースA+エンティティ2」として記憶する。この名前を「グローバルエンティティ名」と呼ぶ。このグローバルエンティティ名の作成がイベントプレースの生成に相当する。
【0033】
すなわち、SIONetでは、イベントプレースの生成により、必ずしも何らかの管理実体が生成されるとは限らない。つまり、SIONetでは、イベントプレースに属しているエンティティのメンバー管理を、後述するエンティティ間のシェアードリンクにより実現しているため、メンバー管理を行う集中管理部自体が存在しない。そのため、イベントプレースを生成したエンティティが当該イベントプレースから退去しても、当該イベントプレースに残されたエンティティが自律的に自己組織化することにより、当該イベントプレースの運営が継続される。すなわち、イベントプレースから最後のエンティティが退去することが、イベントプレースの消滅に相当する。
【0034】
このグローバルエンティティ名は、シェアードリンクやセッションを確立する場合に用いられる。図5に示すようなエンティティ2が、イベントプレースBをさらに生成し、エンティティ1からのシェアードリンクを確立する動作を、図10を参照して説明する。
【0035】
まず、既にイベントプレースAに参加しているエンティティ2が、イベントプレースBを生成する動作を説明する。エンティティ2のエンティティ制御部は、前述と同様に、NEファクトリに新たなSI-SWを生成させる。エンティティ制御部は、生成された新たなSI-SWにグローバルエンティティ名として「イベントプレースB+エンティティ2」を付与する。これにより、イベントプレースBが生成される。この時点で、エンティティ2は、「イベントプレースA+エンティティ2」と「イベントプレースB+エンティティ2」という二つのグローバルエンティティ名(SI-SW名)を持つ。
【0036】
次に、エンティティ1がイベントプレースAにJoin(参加)する動作を説明する。上述のようにイベントプレースA及びイベントプレースBに参加したエンティティ2は、“アクティブ”状態となっている。“アクティブ”状態のエンティティは、自身の存在を他のエンティティにアドバタイズ(公開)することができるが、その際にはグローバルエンティティ名が公開される。
【0037】
エンティティ1がエンティティ2を発見し、当該エンティティ2に対してJoin要求を行うとき、エンティティ1は、Join先のエンティティであるエンティティ2のグローバルエンティティ名が「イベントプレースA+エンティティ2」である旨をエンティティ2に通知する。
【0038】
このように、グローバルエンティティ名により、シェアードリンクを確立するSI-SWを一意に特定することが可能になり、ひいては、イベントプレースAへの参加が可能になる。このように、シェアードリンクやセッションの確立先であるSI-SWはグローバルエンティティ名として仮想化されるため、エンティティの所有者等は、SI-SWを直接意識することはない。
【0039】
<SEのプラグイン方法>
以下に、図11に示すエンティティへのSEの組み込みの動作を説明する。
(1)エンティティの所有者は、コントロールパネルに対して、アプリケーションのプラグインを指示する。このとき、プラグインするアプリケーションの実行ファイル名をパラメータとして与える。
(2)コントロールパネルは、プラグインの指示を受けた旨と、プラグインするアプリケーションの実行ファイル名とをエンティティ制御部に通知する。
【0040】
(3)エンティティ制御部は、プラグインする実行ファイル名を記憶するとともに、与えられた実行ファイル名を用いて、アプリケーションを起動し、SI-SWと起動したアプリケーションとの間にセッションを確立する。
すなわち、SIONetにおけるプラグインとは、アプリケーションとSI-SWとの間にセッションを確立することに他ならない。SIONetでは、SE、NEなどのすべての動作実体は、セッションを介して連携する。そのため、プラグイン/プラグアウト(着脱)を容易に実現できるとともに、プラグイン/プラグアウトが他の動作実体に影響を与えない(超疎結合)。この考え方を拡張することにより、後述するようなエンティティ間でのSE共有が実現できる。
【0041】
<PREFERENCEアーキテクチャ>
SIONetは図12に一例を示すようなリファレンスモデルの考え方を採用している。図12に示すPREFERENCEアーキテクチャは、フィルタに意味情報を登録し、イベントの意味情報部に配布条件(照合条件)を設定する御用聞き社会(御用聞き型サイバーソサイアティ)構築に向けたアーキテクチャであり、ブローカレス型配信モデル、ブローカレス型探索モデル、ブローカレス型ポリシーモデルに対するトータルソリューションを提供する。具体的には、ストリームインターフェース、SIONet、COMNetなどから構成される。
SIONetはイベントの伝達層であり、上位層に対してネットワークインタフェースを提供する。ミドルウエア層がコミュニティ(コミュニティネットワーク:COMNet)であり、SIONetのインテリジェンス層に相当する。このレイヤにおいて、情報の局所化、認証、セキュリティ、情報の権利保証、ポリシー制御などが行われる。そして、最上位層がアプリケーション層となっている。このアプリケーション層には、SEが実装される。SEとしては、例えば、個人TV局、メッセージ交換サービスのスマートメッセンジャーなどがある。
【0042】
このように、SIONetは、分散コンピューティング、情報交換、コラボレーション、メッセージ配信などのあらゆるP2Pサービス(SEがサービスを提供する)に対して、共通のP2Pネットワーク基盤を提供するとともに、プラグイン機構の提供により、アプリケーション開発の効率化をサポートする。
【0043】
<SIONetにおけるエンティティの役割>
SIONetは、個々のエンティティが互いに助け合うことにより、ボランティア型のネットワークを構築する形態であり、それぞれが自律分散協調することにより、ネットワークを自己組織化する。例えば、図6の構成において、エンティティ1の生成したイベントプレースにエンティティ2が参加し、その後、エンティティ1が当該イベントプレースから退去する動作を説明する。
【0044】
予め、エンティティ1はイベントプレースを生成し、当該イベントプレースに参加している。ここに、エンティティ2がエンティティ1に対して、イベントプレースへのJoin要求を行うと、図13に示すように、エンティティ2にSI-SWが生成され、さらに、エンティティ1及びエンティティ2のSI-SW間にシェアードリンクが確立され、エンティティグループが形成される。
このようにエンティティ1とエンティティ2のSI-SW間にシェアードリンクが確立され、エンティティ2がイベントプレースに参加した後、イベントプレースの生成者であるエンティティ1がイベントプレースから退去するものとする。すると、SI-SW間のシェアードリンクが解除され、以降は、エンティティ2のみでイベントプレースの構築・運営が継続される。このように、個々のエンティティが自己組織化するため、あるエンティティが退去、消失等しても他のエンティティが当該エンティティの機能を果たす。
【0045】
SIONetでは、目的に応じてエンティティを配置・組み合わせることにより、様々な形態のP2Pネットワークを構築することができる。また、異なる形態のP2Pネットワークをシームレスに連携させることもできる。これは、以下を実現させることにより達成される。
(1)すべてのエンティティを、”刺激と発火に基づく連鎖反応”という一元的かつ単純な仕組みで自律分散協調させること
(2)P2Pネットワーク形態の差異をエンティティの配置・運営問題に帰着させること
このように、単一の仕組みで様々な形態のP2Pネットワークを構築できる点がSIONetの特徴の一つである。
【0046】
<シェアードリンク>
「シェアードリンク(共有リンク)」は、複数の異なるエンティティ間において、双方向のイベント共有を行うための概念である。例えば、図14に示すように、エンティティ2がエンティティ1に対して、シェアードリンク(SL: Shared Link)の確立要求を行うことにより、図15に示すように、SI-SW2とSI-SW1との間にシェアードリンクが確立され、新たなエンティティグループが形成される。すなわち、シェアードリンクは、エンティティグループを形成するための仕組みであり、また、マルチホップの経路でもある。
【0047】
図14において、シェアードリンクの確立に成功したエンティティ2には、エンティティ1からイベントプレース名(グローバルエンティティ名)、当該イベントプレースにおけるイベント転送方式(ルーティング方式)、当該イベントプレースのディスクリプション(説明文)、プラグインされているSE情報等のさまざまな情報が送信される。なお、後述するSI-Rによるフィルタ値の設定によって、SI-SW間に様々なイベントルーティング方式を動的に設定できる。以降において、シェアードリンクの確立の動作を説明し、さらに、SI-Rの役割、仕組みを詳述する。
【0048】
<シェアードリンクの確立>
図14及び図15を用いて、シェアードリンク確立までの仕組みを説明する。まず、図14において、エンティティ2がエンティティ1に対して、シェアードリンクの確立要求を発行した場合を考える。
(1)エンティティ2がエンティティ1に対して、シェアードリンクの確立要求を発行する。
【0049】
(2)図15に示すように、エンティティ1のエンティティ制御部は、SL1,2(エンティティ2からのイベントを受信するためのシェアードリンク)を確立するために、NEファクトリに、意味情報に基づいてSI-SW間のイベントルーティング(イベント転送)を行うSI-R1,2 を、エンティティ1内部に動的に生成させる。さらに、エンティティ制御部は、エンティティ2がシェアードリンクの確立要求元であることを記憶する。厳密には、エンティティ2のエントリポイントとグローバルエンティティ名(SI-SW2)とをシェアードリンクの確立要求元として記憶する。
【0050】
(3)SI-R1,2は、エンティティ2に対してイベント受信セッションの確立要求要求を行うことでSI-SW2に対してイベント受信セッションを確立する。このとき、SI-SW2に、エンティティ1が受信するイベントの条件を示すフィルタを登録する。さらに、SI-R1,2は、自身が属するSI-SW1に対して、イベント送信のためのセッションを確立する。このような、SI-Rが確立する送受信セッションの組み合せをシェアードリンクという。これによりSL1,2が確立され、例えば、SE4がSI-SW2に対して送出したイベントは、SI-R1,2を介して、SI-SW1へも送出される。
【0051】
(4)このとき、SI-R1,2がSI-SW2に対して登録するフィルタの設定値により、イベントの転送方式を動的に制御できる。その例を以下に示す。
(a)SI-SW2に対して送出されたイベントを、無条件にSI-SW1へと転送する。すなわち、すべてのイベントに対して、SI-R1,2が発火する。これはSI-RがSI-SWに登録するフィルタとして、「取得する語彙概念にワイルドカードを、及び意味情報(語彙)との照合条件に真」を設定することにより可能になる。これを「無条件ルーティング」と呼ぶ。この設定は、シェアードリンク確立時に一度だけ行えばよい。この方式では、無駄なイベント転送と転送先でのイベント照合処理オーバヘッドが発生する可能性があるが、後述するイベントパス確立(ルーティング情報の設定)のためのオーバヘッドが発生しないため、フィルタ登録数がイベント送出数よりも十分大きい場合に有効な方式である。このルーティング方式は、主に、マルチホップ型ブロードキャスト通信に用いられる。
【0052】
(b)エンティティ1に取って必要なイベントのみをSI-SW2からSI-SW1へ転送する。これにより、不要なイベント転送を行わない。すなわち、特定のイベントに対してのみ、SI-R1,2が発火する。これは、SI-Rが語彙概念のみ(照合条件は常に真)をフィルタに設定する「語彙概念によるイベントルーティング」と、語彙概念と語彙との照合条件をフィルタに設定する「語彙によるイベントルーティング」に大別される。前者は主にマルチホップ型属性付きマルチキャスト通信に、後者は主にマルチホップ型ユニキャスト通信、マルチホップ型マルチキャスト通信に用いられる。これは、障害処理通知、統計情報通知、アライブ通知、リプライ通知、アドバタイズメント通知などで用いられている。
なお、マルチホップ型ブロードキャスト通信、マルチホップ型属性付きマルチキャスト通信、マルチホップ型ユニキャスト通信、マルチホップ型マルチキャスト通信のようなマルチホップ通信のほかに、SI-Rの設定するフィルタ値により、通信先エンティティのエントリポイントを用いた直接通信も可能である。なお、マルチホップ型ブロードキャスト通信、マルチホップ型属性付きマルチキャスト通信、マルチホップ型ユニキャスト通信、マルチホップ型マルチキャスト通信については後述する。
【0053】
(4)前述(2)から(3)の手順は、シェアードリンクの確立要求元であるエンティティ2においても同様に行われる。すなわち、エンティティ2のエンティティ制御部は、エンティティ1(SI-SW1)をシェアードリンクの確立要求先として記憶するとともに、SL2,1を確立するために、NEファクトリにSI-R2,1を動的に生成させる。この生成されたSI-R2,1は、上述と同様にSI-SW1にフィルタを登録し、シェアードリンクを確立する。これにより、SI-SW1とSI-SW2の間に、双方向のシェアードリンクが確立され、エンティティ間でイベントを互いに共有することが可能になる。なお、SI-Rがフィルタの登録を行わないことにより、片方向のシェアードリンクを確立すること、すなわち、SI-Rを発火させないことができる。
【0054】
<イベントパスの確立>
イベント転送(イベントルーティング)のための経路選択情報(SI-Rがイベント共有のために登録するフィルタの集合)を「イベントパス」と呼ぶ。例えば、図15に示すように、エンティティ2とエンティティ3とが各々エンティティ1とシェアードリンクを確立している構成において、エンティティ2のSE3がSI-SW2に対してフィルタを登録した場合を考える。このとき、エンティティ2のSI-R2,1はSE3の登録したフィルタを、受信セッションを介して、エンティティ1のSI-SW1に登録する。同様に、エンティティ1のSI-R1,3は当該フィルタを、受信セッションを介して、エンティティ3のSI-SW3に登録する。このようにSE3によるフィルタ登録をトリガに、SI-Rの登録したフィルタがシェアードリンクに基づいて、順次隣接するSI-Rに波及することにより、イベントパスが確立される。これを「イベントパスの設定、もしくは波及」と呼ぶ。
【0055】
ここで、上述した「語彙概念によるイベントルーティング」のためのイベントパスの確立について説明する。図15において、「語彙概念によるイベントルーティング」のためのイベントパスを確立するためには、エンティティ2のSE3がSI-SW2に対して登録したフィルタにおいて、SI-R2,1は、イベントタイプのみ(照合条件は常に真)をエンティティ1のSI-SW1へのフィルタとして設定する。すなわち、SE3がフィルタ登録した照合条件を活用しない。つまり、イベントタイプのみを活用することにより、例えば、エンティティ1のSE1がイベント送信したとき、イベントタイプのみをSI-SW1において照合し、その結果、SI-R2,1が発火すると、SI-R2,1は当該イベントをSI-SW2へと送出し、意味情報との照合をSI-SW2において行う。
【0056】
また、上述した「語彙によるイベントルーティング」のためのイベントパスの確立について説明する。図15において、「語彙によるイベントルーティング」のためのイベントパス確立に際しては、エンティティ2のSI-R2,1は、SE3が登録したフィルタ値を、そのままエンティティ1のSI-SW1へのフィルタ値として設定する。すなわち、SI-R2,1は、SE3がフィルタ登録したイベントタイプと意味情報との両者をエンティティ1のSI-SW1へとフィルタ登録し、SI-SW1において完全なフィルタリングを行う形態である。
【0057】
そのため、語彙によるイベントルーティング方式では、無駄なイベント転送が全く発生しないが、ルーティングのためのイベントパス設定オーバヘッドが膨大になるため、フィルタ登録数に比べてイベント送出数が十分大きい場合に有効な方式である。一方、イベントタイプに基づくルーティング方式は、前述の2方式の折衷案的な位置付けにある。すなわち、フィルタ登録数とイベント送出数が同程度の場合、もしくは、フィルタ登録数とイベント送出数の比率を予測できないような利用形態において有効である。これらの仕組みにより、意味情報に基づく、イベントのマルチホップ通信が実現される。なお、イベントプレースの生成時、もしくは、SEからのフィルタ登録時に、イベントルーティング方式を指定できる。
【0058】
イベントパスの設定要求はイベントプレース内のすべてのSI-Rに対して波及するが、TTL値により、その波及範囲を制限することができる。図16を用いて、その動作を簡単に説明する。ここでは説明の便宜上、語彙概念ルーティングのためのイベントパス確立を前提とするが、これに限られるわけではない。また、各エンティティは、同じ語彙概念をアドバタイズ(フィルタ登録)するものとする。また、TTL値を2として説明する。
【0059】
図16(a)において、エンティティ2のSI-Rがイベントパスの設定要求を開始する。ここでは、TTL値が2であるため、エンティティ1、エンティティ3、そしてエンティティ4に対してのみイベントパスの設定要求が波及し、その結果、図16(b)に示すようにイベントパスが確立される。
【0060】
上述と同様に、エンティティ11のSI-Rがイベントパスの設定要求を開始すると、エンティティ10、及びエンティティ9に対してイベントパスが確立される。図16に示す構成では、エンティティ2のSI-R及びエンティティ11のSI-Rがイベントパスの設定要求をすると、エンティティ5にはイベントパスが設定されないため、エンティティ2とエンティティ11の間では、イベントの共有が行われない。つまり、エンティティ2から生起したイベントは、エンティティ5〜11に連鎖反応せず、エンティティ5〜11へはイベントが転送されないことになる。
【0061】
しかしながら、図16(b)に示すように、エンティティ5のSI-Rがイベントパスの設定要求を開始することにより、エンティティ4、エンティティ5、エンティティ6、エンティティ7、そしてエンティティ9に対してイベントパスが確立される。結果的に、図16(c)に示すように、エンティティ8を除く、イベントプレース内のすべてのエンティティに対してイベントパスが確立される。
【0062】
このように、当該語彙概念が当該イベントプレースにおいて、使用頻度の高いもの(評判が高い、流行しているもの)であるならば、最終的に、イベントプレース内にイベントパスの確立が行き渡ることになる。その逆で、あまり流行していない語彙概念は、いずれ淘汰されることになり、これにより緩やかな連鎖反応を実現できる。なお、図16におけるイベントパス上の数字は、その多重度を示している。
【0063】
なお、エンティティは、イベントパスの多重度をエンティティプロパティの属性として公開することができる。一方、エンティティプロパティのディスカバリにより、イベントパスの多重度が高いエンティティを発見することができる。このとき、当該エンティティに対して、シェアードリンクの張り替えを行うことにより、同好の志(同好のエンティティ)が緩やかに近傍に集まることができる(同好エンティティの局所化)。エンティティプロパティの詳細については後述する。
【0064】
分散オブジェクト技術の観点から、イベントパスを以下のように解釈することもできる。世界中に超分散しているエンティティは、エンティティ間でなんらかの「相関関係」を有する。相関関係を与えるものとしては、エンティティ名、グループ名、属性(位置、興味、評判、流行、サービス)など様々なプロパティがある。エンティティは、相関関係に基づいて、エンティティ間の結びつきを持ち分散協調する。この、エンティティの相関関係を与えるものを、エンティティプロパティという。
【0065】
SIONetでは、この相関関係を語彙概念と語彙により表現し、シェアードリンクに基づいて、イベントパスとして設定する。また、相関関係の強弱が、語彙概念の汎化・特化、イベントパスの多重度などに相当する。すなわち、SIONetでは、イベントパスにより、エンティティ間の相関関係を動的に制御・管理している。これこそが、フィルタによる連鎖反応の制御である。そのため、エンティティは固定的なエンティティ識別子を有していない。
【0066】
例えば、IPアドレスは、位置に基づいたエンティティの固定的な識別子であるが、SIONetでは、これの代わりに、エンティティプロパティを語彙概念・語彙として記述したものをエンティティ識別子として用いる。エンティティは、これらをフィルタとしてSI-SWに登録することにより、エンティティのプロパティ(エンティティ識別子)を宣言するとともに、自身のプロパティをシェアードリンクに基づいてアドバタイズする。これがイベントパスの波及に相当する。これにより、イベントパスが確立される。
【0067】
上述したように、SI-Rは、イベント送信とイベント受信の両者の側面を持つネットワークエンティティであり、一般のサービスエンティティと本質的な違いはない。SIONetでは、SI-RのようなSIONetの制御に用いられるエンティティを、サービスエンティティ(SE)と特に区別して、ネットワークエンティティ(NE)と呼ぶ。SIONetにおいては、サービスエンティティ、ネットワークエンティティのすべてのエンティティを共通のエンティティとして扱い、さらに、イベント送出とイベント受信、すなわち刺激と発火の連鎖反応という単純かつ一貫性のある共通ロジックに従って自律動作させることにより、すべてのエンティティが自律分散協調可能な超分散・超疎結合アーキテクチャを提供する。
【0068】
<シェアードリンクの解除と再確立>
イベントプレースに参加しているエンティティが、障害に陥ったり、イベントプレースから退去する場合など、様々な理由により当該エンティティがネットワークの運営に関わることができないケースにおいては、残されたエンティティが自己組織化することによりネットワークサービスを継続できることが必要になる。
SIONetでは、このようなケースにおいては、SI-SW間において確立されているシェアードリンクを解除し、さらにシェアードリンクの再確立を行う。その動作を図17を参照して説明する。
【0069】
図17において、シェアードリンク確立要求の先頭数字(図中▲1▼や▲2▼など)は、それらの要求順序を示している。つまり、シェアードリンク確立要求の順序は、まず、エンティティ2からエンティティ1へシェアードリンクの確立要求を行う。次にエンティティ3からエンティティ2へシェアードリンクの確立要求を行う。最後に、エンティティ4からエンティティ2へシェアードリンクの確立要求を行うものとする。なお、ここで、「各エンティティは、同一イベントプレース内においてシェアードリンクの確立要求を高々1回しかできないが、無制限に確立要求を受け付けることが可能なリンクトポロジーに基づいて、シェアードリンクの確立を行う」リンク確立手法を提案する。これにより、シェアードリンクで結合されたエンティティ間に、ループが発生しないことが保証される。すなわち、この手法を用いることにより、隣接エンティティ間のリンク再確立のみで開リンクトポロジーを簡単に実現できる。
【0070】
上述した順序で確立要求が成功すると、前述した手順で各SI-SW間にシェアードリンクが確立される。シェアードリンクが確立されると、各エンティティのエンティティ制御部は、自身が確立要求を行ったエンティティと、自身への確立を受け付けたエンティティを記憶している。例えば、エンティティ2は、自身が確立要求を行ったエンティティ1と、自身への確立を受け付けたエンティティ3、エンティティ4のリストを保持している。
この状況において、例えば、エンティティ2の退去、減設などが行われる場合、自身のSI-SW2に対して確立されているシェアードリンクの解除要求を発行し、シェアードリンクの解除を行う。その後、各エンティティは新たなシェアードリンクの確立を行う。以下、その動作を説明する。
【0071】
(1)エンティティ2が退去する場合、エンティティ2のエンティティ制御部は、自身のシェアードリンクを解除する旨を、1ホップのエンティティ(エンティティ1、エンティティ3、エンティティ4)に対して通知する。これは、イベントのTTL値を1にしてイベント送出を行うことにより可能になる。なお、このとき、自身へのシェアードリンク確立を受け付けたエンティティ(エンティティ3、エンティティ4)に対しては、自身に代わる新たなシェアードリンクの確立要求先として、自身が確立要求を行ったエンティティ1を教える。なお、自身が確立要求を行ったエンティティが存在しない場合には、自身への確立要求元エンティティ(1ホップ先のエンティティ)の中から任意のエンティティを選択して、これを自身に代わるシェアードリンクの確立要求先とする。
【0072】
(2)エンティティ2のエンティティ制御部は、自身が確立したシェアードリンク(SL2,1、SL2,3、SL2,4)を解除するために、その旨をSI-R2,1、SI-R2,3、SI-R2,4(図示略)に通知する。なお、SI-R2,1、SI-R2,3、SI-R2,4とはエンティティ2のSI-Rであり、上述したように、エンティティ1、エンティティ3、エンティティ4に対し、シェアードリンクSL2,1、SL2,3、SL2,4を確立したものである。これらのSI-Rは、これをトリガとしてエンティティ2のSI-SW2へのセッションを解除する。
【0073】
(3)エンティティ1のエンティティ制御部は、SI-R1,2(図示略)に、シェアードリンクSL1,2の解除を指示する。SI-R1,2は、シェアードリンクSL1,2を解除する。エンティティ1は、エンティティ3、エンティティ4からの確立要求を待つ。
(4)エンティティ3、エンティティ4は、エンティティ1と同様に、自身がSI-SW2(エンティティ2のSI-SW2)に対して確立していたシェアードリンク(SL3,2、SL4,2)をすべて解除し、エンティティ2からシェアードリンクの確立要求先として教えられた新たなエンティティ(エンティティ1)に対してシェアードリンクの確立要求を行い、シェアードリンクを再確立する。すなわち、上述と同様に、各々のエンティティ制御部は、NEファクトリに各々SI-R3,1、SI-R4,1を生成させ、当該SI-R3,1、SI-R4,1にシェアードリンクSL3,1、SL4,1を確立させる。
【0074】
上述したように、シェアードリンクの確立処理、再確立処理は、隣接するエンティティ間においてのみ行われ、他のエンティティには影響を与えない。すなわち、全てのエンティティに対するリンクの再構築を必要としない。
【0075】
なお、エンティティの退去や減設などの正当な手順を踏んだシェアードリンクの解除要求ばかりでなく、エンティティの障害、電源断、セッション(物理的な通信路)の障害などに起因して、シェアードリンクを再確立しなければならないケースがある。しかしながら、このようなケースにおいては、シェアードリンクの再確立時に必要となる代わりのエンティティを教授できない可能性がある。SIONetでは、このような状況に対応するために、各エンティティはnホップ(nは任意の自然数)のイベントを送出することにより、代わりの確立要求先エンティティの把握を行っている。なお、SIONetでは、TTL値とホップ属性を用いることにより、更にきめこまかなホップ制御が可能である。ホップ属性の例として、以下のものがある。
【0076】
▲1▼シェアードリンクの確立要求先エンティティのみをホップ対象とする。
▲2▼シェアードリンクの確立要求元エンティティのみをホップ対象とする。
▲3▼すべてのエンティティをホップ対象とする。
【0077】
▲1▼のホップ属性を指定した場合の、イベントの流れの例を図18の破線で示している。図18において、(i/j)は各エンティティにおいて記憶しているシェアードリンクの確立情報である。iはエンティティがシェアードリンクの確立要求を行った先のエンティティを示しており、一方、jはエンティティがシェアードリンクの確立要求を受け付けたエンティティを示している。例えば、エンティティ3の(2/5、6)は、エンティティ3がエンティティ2に対して確立要求を行い、エンティティ5及びエンティティ6から確立要求を受け付けていることを表している。各エンティティがシェアードリンクの確立情報を保持することにより、例えば、エンティティ3が他のエンティティに対して、更なるシェアードリンクの確立要求を行った場合、その要求をエラーとしてリジェクトすることができる。これにより、前述した開リンクトポロジーの一貫性を保証している。この状況において、エンティティ6が3ホップで、上述▲1▼のホップ属性を持つイベントを送出することにより、エンティティ1とエンティティ2の存在を知ることが可能になり、これらがエンティティ3障害時の代替エンティティとなる。
【0078】
なお、上述したホップ属性は、障害時の代替エンティティの探索ばかりでなく、シェアードリンクの確立を受け付け可能なエンティティの探索、トップ(誰にもシェアードリンクの確立を行っていない)エンティティの探索などに有効である。SIONetでは、トップのエンティティのみが、他のイベントプレースに対して、フェデレーション(連携、イベントプレース間のシェアードリンクに相当)を確立することができる。
【0079】
<オンライン増減設の目的>
SIONetにおけるエンティティ増減設の目的は、主に以下の二つに大別される。
(1)イベントプレースのトータル処理能力向上の観点から、イベントプレース内のエンティティを増設し、イベントのフィルタリング処理を負荷分散する。その逆の観点から、エンティティを減設する。これは、主に、ハイブリッドP2P、バックボーンP2Pネットワークの運用において用いられる。
(2)動的に生成されたエンティティに対して、シェアードリンクを柔軟に確立することにより、フレキシブルでグローバルなP2Pネットワークをボトムアップ的に構築する。これは、主に、ピュアP2Pネットワークの運営において用いられる。
【0080】
なお、ハイブリッド型P2Pネットワークとは、例えばネットワークプロバイダなどの運営者がホスト等にイベントプレースをあらかじめ生成し、個人の端末等のサービスエンティティがセッションによりイベントプレースと接続することにより構成されるネットワークである。また、ピュア型P2Pネットワークとは、個人の送受信端末たるエンティティがシェアードリンクで各々接続されることにより構成されるネットワークであり、このネットワークのうち、イベントを共有する最小単位がイベントプレースである。バックボーン型P2Pネットワークとは、ネットワーク間の接続形態のことであり、例えば、複数の地域のピュア型P2Pネットワークをハイブリッド型P2Pネットワークを経由して接続した状態のネットワークのことをいう。
【0081】
<増減設の形態>
SIONでは幾つかの増減設形態を提供しているが、ここでは、図19、図20に例を示す代表的な形態について述べる。
(1)イベントプレースの合成と分離
図19(a)に示すように、複数のイベントプレースを合成することができる。ここで合成とは、複数のイベントプレースにそれぞれ属するエンティティを、一つのイベントプレース内のメンバーとして集めることを言う。典型的な例として、異なるサービス運営者間の業務提携に基づく、サービス統合(情報共有)が考えられる。
【0082】
これは、イベントプレースに属する任意のエンティティ、もしくはイベントプレースに対して合成要求を行うことにより、合成要求先イベントプレース内のエンティティに対してシェアードリンクの確立要求が発行される。その結果、SI-SW間にシェアードリンクが確立され、両者の合成が実現される。なお、合成の要求元及び要求先は、それぞれ、エンティティでもイベントプレースでもどちらであってもかまわない。一方、分割する場合には、確立されているシェアードリンクを解除し、それぞれのイベントプレースに分離する。
【0083】
(2)イベントプレースへの参加と退去
図19(b)に示すように、イベントプレース内のエンティティ、もしくは、イベントプレースに対してJoin(参加)要求を行うことにより、要求元エンティティにSI-SWが生成される。そして、要求先エンティティに対してシェアードリンクの確立要求が発行されることにより、SI-SW間にシェアードリンクが確立され、当該イベントプレースに参加することができる。
エンティティがイベントプレースから退去する場合には、上述と同様に、エンティティ間のシェアードリンクを解除し、さらに、シェアードリンクの再構築を行い、当該イベントプレースから退去する。このとき、退去したエンティティの状態は、サスペンド状態へと遷移する。
【0084】
なお、イベントプレース側からエンティティに対してシェアードリンクの確立を要求することにより、当該エンティティをイベントプレース内に取り込むことも可能である。これを吸収という。その逆を***という。
(3)エンティティ(SI-SW)の増減設
図20(c)に示すように、イベントプレース内のエンティティ、もしくは、イベントプレースに対して、エンティティの増設要求を行うと、指定されたエンティティにSI-SWが新たに生成され、既存のSI-SWとの間にシェアードリンクが確立される。一方、イベントプレースにエンティティの減設要求を行うと、指定されたエンティティに対しシェアードリンクの解除要求が発行され、SI-SW間のシェアードリンクが解除された後、シェアードリンクの再確立が行われ、当該エンティティが削除される。このとき、エンティティの状態は、Non-Existentに遷移する。
【0085】
(4)イベントプレース間のフェデレーション
図20(d)に示すように、イベントプレース内のエンティティ、もしくは、イベントプレースに対して、フェデレーション(連携)要求を行うことにより、イベントプレース間でイベントを転送するSI-GWが動的に生成され、セッションを介して両イベントプレースが連携する。なお、フェデレーションの要求元及び要求先は、それぞれ、エンティティでもイベントプレースでもどちらであってもかまわない。
【0086】
<エンティティのアドバタイズメント>
図21、図22を参照し、エンティティのアドバタイズメント(公開)について説明する。SIONetにおけるエンティティのアドバタイズメントには、以下の2つの観点がある。
観点1:エントランスのアドバタイズメント
観点2:エンティティプロパティのアドバタイズメント
以下、各々の観点について説明する。
観点1:エントランスのアドバタイズメント
ベースイベントプレースは、エンティティに取って、最適なイベントプレースをいもづる式に探索(ディスカバリ)するためのベース(起点)となるイベントプレースである。つまり、ベースイベントプレースがSIONetへのエントランス(入り口)となる。そのため、ベースイベントプレースに参加しているエンティティは、SIONetのエントランスを公開することができる。ここで、エントランスの公開とは、シェアードリンクの確立要求先となるエンティティのエントリポイントとグローバルエンティティ名をアドバタイズすることを意味する。この公開情報は、後述するブロードキャストを用いた探索により発見される。
【0087】
観点2:エンティティプロパティのアドバタイズメント
シェアードリンクで接続されている任意のエンティティグループ(ベースイベントプレースを含むすべてのイベントプレース)において、各エンティティは自身のエンティティプロパティをアドバタイズすることができる。これが前述したイベントパスの波及に相当する。この公開情報は、後述するディスカバリイベントの送出により発見される。
【0088】
以下に、エンティティの公開、探索から、エンティティグループ形成までの流れを説明する。なお、以下では、ベースエンティティ、エンティティ1、エンティティ2、エンティティ3、エンティティ4、エンティティ5、エンティティ6はベースイベントプレースに属しており、エンティティ3、エンティティ11、エンティティ12、エンティティ13はイベントプレースαに属しているものとして説明する。
【0089】
▲1▼図21に示すように、SIONetソフトウェアをホストにインストールする。この時点でのエンティティの状態は、前述したように“Non-Existent”である。説明の便宜上、このエンティティをエンティティYとする。
▲2▼SIONetソフトウェアを実行することにより、エンティティYは“Non-Existent”から“サスペンド”状態に遷移する。この状態のエンティティは、SIONetからその存在がまだ認知されていない。
【0090】
▲3▼“サスペンド”状態のエンティティYは、SIONetの構成要素としてネットワークに参加するために、ベースイベントプレースに属している他のエンティティのエントランス(エントリポイントとグローバルエンティティ名)を探索する。具体的には、ブロードキャストにより、ベースイベントプレースに参加しているエンティティの中から、近傍のエンティティを探索する。ブロードキャストの方法は、実装に依存する。例えば、無線ネットワークで実装されている場合には、無線の到達範囲すべてのエンティティが探索の対象となる。一方、IPネットワークで実装されている場合には、IPブロードキャストもしくはIPマルチキャストを行うことになる。図21では、ブロードキャストによる探索により、エンティティ1(エンティティ1のエントリポイントとグローバルエンティティ名)が発見されたことを表している。なお、ブロードキャストにより、近傍のエンティティを発見できない場合には、Well-Known(周知)のエンティティを利用することもできる。Well-Knownのエンティティをベースエンティティと呼ぶ。なお、ベースエンティティは、ベースイベントプレースを含むすべてのイベントプレース内に存在することができる。
【0091】
▲4▼エンティティYは、発見されたエンティティ1に対して、ベースイベントプレースへのJoin(参加)要求を行う。すなわち、エンティティYは、エンティティ1のエントリポイントに対して、エンティティ1のグローバルエンティティ名をパラメータとしたJoin要求を行う。エンティティYからのJoin要求を受けたエンティティ1は、自身の状態遷移が“アクティブ”であり、かつ、エントランスやエンティティプロパティが公開モードの場合のみ、当該Join要求を受け付ける。なお、エンティティYは、最大Join数を超えてJoin要求を発行することはできない。この最大Join数は、エンティティYのコントロールパネルで、エンティティYの所有者等が設定可能である。エンティティ1がエンティティYのJoin要求を受け付けると、上述と同様の動作により、エンティティY及びエンティティ1のSI-SW間にシェアードリンクが確立される。これにより、エンティティYは、ベースイベントプレース内のネットワーク構成要素として自己組織化される。このとき、エンティティYは、“サスペンド”状態から“アクティブ”状態へと遷移する。
【0092】
ベースイベントプレースにJoinしたエンティティYは、エントランスの公開が可能になる。また、エンティティプロパティをアドバタイズすることもできる。エンティティプロパティには、グローバルエンティティ名(及びエントリポイント)、ニックネーム、グループ名、アライブ(存在だけの表明であり、シェアードリンクの確立先情報となるエントリポイントとグローバルエンティティ名は公開しない、エンティティが非公開モードの場合でも公開の対象)、ディスクリプション(エンティティの説明文)、属性などがある。属性には、プラグインされているSE情報、イベントパス多重度、イベントプレース情報などがある。なお、エンティティプロパティの記述言語としては、XMLなどがある。
【0093】
図21において、例えばエンティティ3のエンティティ制御部は、エンティティ3が同時に参加しているイベントプレースαをエンティティプロパティの属性として公開することができる。さらに、エンティティ制御部は、現在Joinしているイベントプレースばかりでなく、過去にJoinしたイベントプレースのイベントプレース情報を公開することもできる。このイベントプレース情報とは、例えば、イベントプレースのディスクリプション(イベントプレースの説明文、説明情報)や、当該イベントプレースに参加する際にシェアードリンクを確立したエンティティ(意味情報スイッチ)のグローバルエンティティ名(イベントプレース名+エンティティ名、コネクション確立情報)、エントリポイント(エントリポイント情報)などである。この、過去にJoinしたイベントプレース情報をエンティティが保持できる数は任意とし、例えば、コントロールパネルによりエンティティ所有者等が設定できるものとする。この公開されたイベントプレース情報を取得したエンティティは、当該イベントプレース情報をコントロールパネル等により出力することで当該エンティティ所有者に提示する。これにより、エンティティ所有者は、他のイベントプレースの存在を認識することが出来る。
SIONetでは、どこにどのようなイベントプレースがあり当該イベントプレースではどのようなサービスを提供しているか、というようなイベントプレース情報を集中管理する機能がないので、イベントプレース情報を取得しようとする場合、他のエンティティのエンティティプロパティからイベントプレース情報を取得する必要がある。現在参加しているイベントプレースのみならず、過去に参加したイベントプレース情報を公開することにより、イベントプレース情報を取得する機会が増え、自身の求めるサービスを提供するイベントプレースに参加できる確立が高くなる。
【0094】
エンティティYのエントランスの公開時には、これらのエンティティプロパティを、エンティティ内の意味情報スイッチにフィルタとして登録することにより、エンティティプロパティがシェアードリンクに基づいて他のエンティティに波及し、イベントパスが確立される。基本的には、イベントパスの確立要求がイベントプレース内のすべてのエンティティに対して波及するが、TTL値で、イベントパス確立要求の波及範囲を制限することができる。なお、グローバルエンティティ名はマルチホップ型ユニキャスト通信時の識別子として、グループ名はマルチホップ型マルチキャスト通信時の識別子として、属性はマルチホップ型属性付きマルチキャスト通信時の識別子として用いられる。例えば、マルチホップ型ユニキャスト通信の代表例として、イベント受信エンティティからイベント送信元エンティティへのリプライ通知がある。
【0095】
すなわち、グローバルエンティティ名はマルチホップ型ユニキャスト通信とは、グローバルエンティティ名で特定されるエンティティのSI-SWからnホップのイベントを送信する通信方式である。また、マルチホップ型マルチキャスト通信とは、グループ名で特定されるグループに属するエンティティのSI-SWにnホップのイベントを送信する通信方式である。また、マルチホップ型属性付きマルチキャスト通信とは、自身と同様の属性のエンティティのSI-SWにnホップのイベントを送信する通信方式である。また、マルチホップ型ブロードキャスト通信とは、任意のエンティティのSI-SWにnホップのイベントを送信する通信方式である。
【0096】
▲5▼図22において、ベースイベントプレースに参加したエンティティYは、「自身が参加したいイベントプレース」を探索するためのディスカバリイベントを送出することにより、「自身のニーズに合致するエンティティプロパティ」を公開しているエンティティを探索する。このディスカバリイベントは、SIONetの制御のために用いられるイベントであり、SEが送出するイベントと同等のものである。ディスカバリイベントとは、NEを発火させるためのイベントであり、イベントの意味情報部には、エンティティプロパティとの照合条件が設定される。すなわち、SIONetにおける新たな機能追加とは、新たな語彙概念と語彙を規定することを意味する(仕組みの追加ではなく、連鎖反応条件の追加)。これにより、単一な仕組み(連鎖反応)だけで、様々な機能追加を可能にしている。
【0097】
ここでは、探索の結果、エンティティ3が発見されたものとする。上述したように、エンティティ3は、ベースイベントプレースと同時にイベントプレースαに参加している。エンティティ3を発見したことにより、エンティティYはイベントプレースαの存在を知ることができる。
▲6▼エンティティYは、エンティティ3に対してイベントプレースαへのJoin要求を発行し、イベントプレースαに参加する。なお、エンティティ3は、前述したように、自身の状態遷移が”アクティブ”であり、かつ、公開モードのときに、Join要求(シェアードリンクの確立要求)を受け付ける。
【0098】
▲7▼さらに、エンティティYは、イベントプレースαにおいて、同様の探索のためのイベントを送出することができる。これにより、自身のニーズに合致する新たなエンティティを発見することができる。例えば、ここでは、エンティティ12が発見されたものとする。すなわち、エンティティYは、ベースイベントプレースにおいて発見することができなかったエンティティ12を、エンティティ3を介して発見できるということを意味している。このような操作を繰り返すことにより、自身のニーズに合致したイベントプレースに、次第にたどり着くことが可能になる。
【0099】
ここで示したアドバタイズメント方式は以下の効果がある。
(1)エンティティの公開情報を管理するブローカ(管理部)が存在しないため、耐障害性に強い自己組織化ネットワークを低コストで構築することができる。また、膨大な数の公開情報(エントリポイントやエンティティプロパティ)をブローカで管理することは現実的でない。
(2)エンティティに取って相応しいイベントプレースを、芋づる式に絞り込むことができるので、効率的に所望のイベントプレースを探索することができる。例えば、連鎖反応の波及範囲(ディスカバリイベントのホップ数、及び、エンティティプロパティのためのイベントパス設定要求の波及範囲)がTTL値で制限されたとしても、上述のように、エンティティ3経由でエンティティ12を発見し、その結果、エンティティ12が同時に属している別のイベントプレースを発見することができる。なお、連鎖反応の波及範囲を制限することにより、ネットワークトラフィック(イベントの転送回数、イベントパス設定要求の転送回数)を軽減することができる。
【0100】
なお、自身は情報を提供することなく(例えば、エンティティプロパティを公開することなく)、他のエンティティからの情報提供を受けるだけのエンティティは、ペナルティーとして、強制的にシェアードリンクが解除され、一定条件を満足しない限り、再度イベントプレースに参加できないようにすることもできる。
【0101】
<SEの共有方法(自動配信)>
以下に、ゲームイベントプレースにおけるSE(ゲームアプリケーションプログラム)の共有を例に、SEの共有方法の仕組みを示す。
(1)ゲームイベントプレースの運営者であるエンティティ2の所有者はエンティティ2のコントロールパネルを介してイベントプレース名を付与する。なお、ここで付与されたイベントプレース名は「ゲーム」であるものとして説明する。
【0102】
(2)エンティティ2のエンティティ制御部は、上述と同様に、NEファクトリにより生成されたSI-SWに対してグローバルエンティティ名「ゲーム+エンティティ2」を付与する。これにより、イベントプレースが生成される。このとき、ゲームイベントプレースの生成者であるエンティティ2は、イベントプレース生成時に当該イベントプレースに自動的に参加する。
(3)エンティティ2の所有者は、当該エンティティ2のコントロールパネルに対して、ゲームアプリケーションプログラム(SE)のプラグインを指示する。このとき、プラグインするアプリケーションの実行ファイル名、及び、SE共有の有無をパラメータとして与える。
【0103】
(4)エンティティ2のコントロールパネルはこの旨をエンティティ制御部に通知する。
(5)エンティティ2のエンティティ制御部は、プラグインする実行ファイル名を記憶するとともに、与えられた実行ファイル名を用いてアプリケーション(SE)を起動し、上述と同様に、SI-SWとアプリケーション間にセッションを確立する。すなわち、SIONetにおけるプラグインとは、アプリケーションとSI-SWとの間にセッションを確立することを意味する。
【0104】
(6)エンティティ2のエンティティ制御部は、エンティティ2のエンティティプロパティをアドバタイズ(公開)する。エンティティ2のエンティティプロパティの公開形態としては、例えば、以下のものがある。
・エンティティ2がベースイベントプレースに参加し、ベースイベントプレース内で、エンティティ2のエンティティプロパティを公開する。
・エンティティ2が、芋づる式探索を行うことにより、ゲームイベントプレースと関係の深いイベントプレースを発見、参加し、当該イベントプレース内で、エンティティ2のエンティティプロパティを公開する。
・エンティティ2をベースエンティティとする。すなわち、エンティティ2のエンティティプロパティ(エントリポイントとグローバルエンティティ名)を周知する。
【0105】
(7)エンティティ2の存在を知ったエンティティ1が、エンティティ2に対して、ゲームイベントプレースへの参加を要求する。
(8)この要求が承認された場合、エンティティ1は、エンティティ2に対して、シェアードリンクの確立を要求する。そして、上述と同様に、エンティティ1とエンティティ2の間にシェアードリンクが確立する。
(9)シェアードリンクが確立された場合、シェアードリンクの確立要求先(エンティティ2)は確立要求元(エンティティ1)に対して、当該イベントプレース内でイベントの送受信に必要な情報を返却する。具体的には、例えば、イベントプレース名(グローバルエンティティ名)、参加したイベントプレースがベースイベントプレースであるか否か、当該イベントプレースにおけるイベント転送方式(ルーティング方式)、イベントプレースのディスクリプション、プラグインされているSE情報(SE共有が有りの場合)等である。
【0106】
SE共有を共有する場合にシェアードリンク確立要求元に返却するSE情報とは、具体的には、例えば、上述したプラグインするアプリケーションの実行ファイル名や当該アプリケーションのファイル等である。
(10)当該ファイルを受けたエンティティ1のエンティティ制御部は、上述と同様に、与えられた実行ファイル名を用いてアプリケーションを起動し、エンティティ1内のSI-SWとアプリケーションとの間にセッションを確立する。これにより、エンティティ1内部に、ゲームアプリケーションプログラムをSEとしてプラグインする。
【0107】
すなわち、イベントプレースへの参加とは、シェアードリンクにより結合されたエンティティグループを形成し、プラグイン済みのアプリケーションプログラムを参加者が共有することを意味する。これにより、イベントプレースに参加するだけで、当該イベントプレース内のメンバーであるエンティティが、プラグインされているアプリケーションを、自動的に利用することが可能になる。なお、エンティティ1がゲームイベントプレースから退去するとき、プラグインされたゲームアプリケーションプログラムは、プラグアウトされる。なおその際、エンティティ1は、受信した当該ファイルを保有しつづけることもできるし、プラグアウト時に、当該ファイルが削除されることもある。
【0108】
上述した動作は、ピュア型のP2Pネットワーク環境でのアプリケーション共有である。そのため、アプリケーションプログラムの配信は、シェアードリンク確立先エンティティと確立元エンティティの2者間でのみ行われるため、シェアードリンクにより既に結合されている他のエンティティに対して影響を与えない。すなわち、ファイル転送のため処理は2者間に局所化されるため、スケーラブルなSE共有を達成することができる。
【0109】
<ビジネスモデル>
ここで、上述したSIONetを、サービスとして提供する実施例を説明する。
(1)クライアントサーバモデル
予め決められたエンティティのみでイベントプレースを運営する形態である。すなわち、予め決められたエンティティのみが当該イベントプレースに参加(Join)することが可能であり、参加を許されたエンティティは、エンティティ間のシェアードリンクを確立することにより、エンティティグループを構成する。一方、それ以外のエンティティは当該エンティティグループに対してセッションを確立し、当該セッションを介したイベントの送受信を行う。すなわち、イベントプレース(予め定められたエンティティのグループ)がサーバであり、その以外のエンティティがクライアントに相当する。このビジネスモデルでは、エンティティグループのメンバーである各エンティティは、自律分散コンピュータとして振舞い、任意のエンティティが障害に陥った際には、残されたエンティティが自己組織化しイベントプレースの運営を継続する。また、サーバの処理能力向上を図りたい場合には、新たなエンティティを当該イベントプレースに参加させれば良い。そのため、従来のサーバ実現方式と比べて、耐故障性に強く、安価で、スケーラブルなサーバを実現することができる。
【0110】
(2)ハイブリッドモデル
例えば、ゲームイベントプレースの運営者となるエンティティは、ゲームイベントプレースを生成し、当該イベントプレース内でのベースエンティティとなる。一方、ゲームイベントプレースのユーザとして位置付けられるエンティティは、当該イベントプレースに参加することにより、当該イベントプレースでのサービスを享受する。従来のクライアントサーバモデルでは、ユーザ数の増加に比例して新たな設備投資(CPUパワー、ストレージ、通信帯域など)が必要とされたが、本ビジネスモデルは、ユーザがイベントプレースに参加することにより、ユーザ自身のエンティティをサービス運営のために提供するため、イベントプレース運営者は新たな設備投資を必要としない。そのため、安価で、スケーラブルなP2Pサ-ビス環境を構築できる。なお、ベースエンティティにおいて、当該イベントプレースに参加するユーザ(エンティティ)の認証、課金が可能である。また、ベースエンティティは、ディスカバリイベントを送出することにより、エンティティグループの中から、シェアードリンクの確立が可能なエンティティ(代替エンティティ)を発見し、発見されたエンティティを参加希望のエンティティに対し通知し、両者の間でシェアードリンクを確立させることも可能である。
【0111】
(3)ピュアモデル
すべてのエンティティが自由にイベントプレースに対して参加(退去)することが可能なビジネスモデルである。
上述したように、SIONetでは、運営・配置問題に帰着することにより、様々なビジネスモデルを共通の仕組みで実現できる。そのため、開発工数、規模、デバッグ効率、維持管理の容易性等に大きな効果を与える。
【0112】
なお、上述したように、“サスペンド”状態のエンティティは、エントランスやエンティティプロパティを公開することはできない。“サスペンド”状態のエンティティは、任意のイベントプレースにJoinすることにより“アクティブ”状態に遷移する。“アクティブ”状態のエンティティのみが、エントランスやエンティティプロパティを公開することが可能である。また、ベースイベントプレースにJoinしているエンティティのみがエントランスの公開が可能である。「コントロールパネルにより、公開が指示されている」かつ「当該エンティティに対するセッション(シェアードリンク)の確立数がデフォルト値を超えていない」を満足するとき、エンティティはエントランスやエンティティプロパティを実際に公開できる。例えば、エンティティの所有者がコントロールパネルを用いて公開を指示しても、デフォルト値を超えてシェアードリンクが確立している場合には、自動的に非公開モードとなる。なお、デフォルト値は、コントロールパネルで設定可能であり、例えば、エンティティの所有者が、当該エンティティの能力等により設定することができる。
【0113】
なお、ネットワークエンティティ、ネットワークエンティティファクトリ、エンティティ制御部、コントロールパネル、サービスエンティティ、意味情報スイッチ、意味情報ルータ、意味情報ゲートウェイは専用のハードウェアにより実現されるものであってもよく、また、メモリ及びCPU(中央演算装置)により構成され、その機能を実現するためのプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
【0114】
また、ネットワークエンティティ、ネットワークエンティティファクトリ、エンティティ制御部、コントロールパネル、サービスエンティティ、意味情報スイッチ、意味情報ルータ、意味情報ゲートウェイの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより実現させてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
【0115】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0116】
[この発明の実施形態]
以下、本発明の一実施形態について説明する。
図1を用いて、障害発生時の動作概要を説明する。
同図において、あるイベントプレースがエンティティ1〜6から構成されている。そして、エンティティ1が最上流であり、その下流(シェアードリンクの確立要求元)はエンティティ2である。また、エンティティ2の上流(シェアードリンクの確立要求先)はエンティティ1、下流はエンティティ3及び5であり、エンティティ3の上流はエンティティ2、下流はエンティティ4、エンティティ5の上流はエンティティ2、下流はエンティティ6である。
【0117】
例えば、この構成においてエンティティ2が障害に陥った場合、エンティティ3は、下流に位置づけられるエンティティ4に対してイベントを送出することはできるが、上流に位置づけられるエンティティ1と、エンティティ2の下流のエンティティ5及び6に対してはイベント送出ができなくなる。しかし、このとき、SIONetでは、エンティティ2の復旧には努めない。なぜなら、SIONetのキーコンセプトである「緩やかさの追求」の精神に反することになるからである。各エンティティに障害時の復旧機構を具備させるためには、高性能なホストを前提にしなければならず、さらに、SIONetソフトウエアが複雑な障害処理ロジックを具備する必要がある。これには、これらの実装に伴う過大な投資コストや開発コストがかかってしまう。
そこで、SIONetでは、障害に陥ったエンティティを即座に切り離し、残されたエンティティのみでネットワークの自己組織化を行う。これにより、障害の波及範囲を最小限に局所化するとともに、低コストでのネットワークの継続的な運営を可能にする。このため、エンティティ3及び5は、予め代替のシェアードリンク確立先となる上流のエンティティ(代替エンティティ)の探索を行い、検出された代替エンティティであるエンティティ1と予備のシェアードリンクを確立しておく。そして、エンティティ2が障害に陥った場合には、この予備のシェアードリンクへ接続先を切り替える。これにより、エンティティ1の下流がエンティティ3及び5となり、エンティティ3及び5の上流がエンティティ1となる。
【0118】
図25を用いて、障害処理プロトコルの詳細な動作について説明する。ここでは、イベントプレースがエンティティ1〜3により構成されており、エンティティ1が最上流、そしてその下流がエンティティ2、さらにエンティティ2の下流がエンティティ3である。
(1)エンティティ3は、シェアードリンク確立先のエンティティ2が障害に陥った場合の代替エンティティの探索(ディスカバリ)イベントを、エンティティ2との間で確立しているイベント転送用シェアードリンクを用いて送出する。なお、この探索イベントは、nホップ先の上流に位置付けられるエンティティに対してのみ送出される。探索イベントの転送制御用の意味情報部には、イベント種別として障害ルート(イベントタイプ名)が、ホップ属性として上流が、TTL値としてn(nは任意の値)が設定される。ここでは、n=2であるとする。
(2)エンティティ2を介して受信した探索イベントに発火したエンティティ1は、自身のエントリポイントとグローバルエンティティ名を設定したリプライイベントを通知する。このリプライイベントは、探索イベントの転送ルートを辿ってエンティティ3へ送信される。
(3)エンティティ2を介してエンティティ1からのリプライイベントを受信したエンティティ3は、このリプライイベントから取得したエンティティ1のエントリポイントとグローバルエンティティ名を用いて、予備のシェアードリンクを確立する。これ以降、この確立した予備のシェアードリンクを用いて、代替エンティティのヘルスチェックを行うことが可能になる。
なお、この予備のシェアードリンクに対するエンティティ3内のSI-SW3のフィルタ1−3には、照合条件(発火条件)として、「ホップ属性が上流または上下流」かつ「TTLが1以上」かつ「転送元がエンティティ1ではない」が設定される。また、この予備のシェアードリンクに対するエンティティ1のSI-SW1のフィルタ3−1には、照合条件(発火条件)として、「ホップ属性が下流」かつ「TTLが1以上」かつ「転送元がエンティティ3ではない」が設定される。
また、ヘルスチェックにより代替エンティティの退去や障害等を検出した場合には、この予備のシェアードリンクを解放し、新たな探索イベントで検出した他の代替エンティティと予備のシェアードリンクを確立する。
(4)エンティティ2の電源断やハングアップ等により、イベント転送用シェアードリンクが障害に陥った場合、エンティティ3はこれを検出すると、エンティティ1との予備シェアードリンクへの切り替えを行い、エンティティ2とのシェアードリンクを解除する。
【0119】
なお、nホップ先までの代替エンティティの探索イベントを送出したエンティティが、この探索イベントに発火してリプライイベントを送信した(n−1)個の代替エンティティのうち、どの代替エンティティと予備のシェアードリンクを確立するかについては様々な形態がある。
例えば、図26において、あるイベントプレースがエンティティ1〜5から構成され、エンティティ1が最上流であり、その下流がエンティティ2、エンティティ2下流がエンティティ3、エンティティ3の下流がエンティティ4、エンティティ4の下流がエンティティ5であるとする。ここで、エンティティ5が、4ホップ先までの代替エンティティの探索イベントを送出した場合、エンティティ1、エンティティ2、及び、エンティティ3からのリプライイベントを受信する。このとき、エンティティ5は、リプライイベントを送信したエンティティ1〜3の全てと予備のシェアードリンクを確立してもよいし、1つおき、例えば、エンティティ1及びエンティティ3と予備のシェアードリンクを確立してもよい。あるいは、2ホップ先のエンティティ(エンティティ3)とさらにもう1つ(エンティティ1あるいはエンティティ2)など所定の数の代替エンティティと予備のシェアードリンクを確立するなどしてもよい。
【0120】
上述した障害処理機構を用いない場合、エンティティがnホップ先までの代替エンティティの探索を行っても、これらn個のエンティティが、同時に退去、もしくは、障害に陥った場合には、シェアードリンクの確立先となるすべての代替エンティティが存在しないことになる。これに起因し、ネットワークの分断が発生する。たとえば、図25において、エンティティ3のシェアードリンク確立先であるエンティティ2と、代替エンティティとなるエンティティ1が同時に障害に陥った場合、例えエンティティ1やエンティティ2のさらに上流にエンティティが存在している場合であってもネットワークの分断が発生し、エンティティ3は孤立してしまう。このような場合、エンティティ3は、最初に当該イベントプレースに所属するために行った操作を、再度、繰り返す必要がある。これにより分断を回避することは可能となるが、一方で、ネットワークサービスの一時的中断が発生する。
【0121】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【0122】
【発明の効果】
以上説明したように、本発明によれば、イベントプレースに参加しているエンティティ装置は、探索イベントを送出することにより、シェアードリンクの再確立先となる上流に位置する代替エンティティ装置の探索を行い、検出された代替エンティティ装置との間に予備のシェアードリンクを確立する。これにより、自身とシェアードリンクを確立している上流のエンティティ装置に障害が発生した場合に、代替エンティティ装置との予備のシェアードリンクへ接続切替を行うことでイベントプレースの再構築を行い、その機能を維持することができる。
また、確立した予備のシェアードリンクを使用して、他のエンティティ装置を介さずに代替のエンティティヘルスチェックを行うことができるため、ネットワークリソースの有効利用を図りながら、常に代替エンティティ装置の状態を監視することができる。これにより、障害時の切替先となる予備のシェアードリンクを常に保持することが可能となる。
【図面の簡単な説明】
【図1】 本発明の一実施形態による障害発生時の動作概要を説明するための図である。
【図2】 本発明の前提技術であるSIONet(意味情報ネットワーク)におけるエンティティを説明するための図である。
【図3】 SIONetにおけるエンティティの状態遷移を説明するための図である。
【図4】 SIONetにおけるエンティティの内部構成を示すブロック図である。
【図5】 SIONetにおけるイベントプレースの生成を説明するための図である。
【図6】 SIONetにおけるエンティティがイベントプレースへ参加する動作を説明するための図である。
【図7】 SIONetにおける意味情報スイッチSI-SWとセッションを説明するための図である。
【図8】 SIONetにおけるイベントの構成を示す図である。
【図9】 SIONetにおける意味情報体系を説明するための図である。
【図10】 SIONetにおいて、あるイベントプレースに参加しているエンティティが、さらに他のイベントプレースに参加する動作を説明するための図である。
【図11】 SIONetにおけるサービスエンティティのプラグインを説明するための図である。
【図12】 SIONetにおけるリファレンスモデルを説明するための図である。
【図13】 SIONetにおけるシェアードリンクを説明するための図である。
【図14】 SIONetにおけるシェアードリンクを説明するための図である。
【図15】 SIONetにおけるシェアードリンクを説明するための図である。
【図16】 SIONetにおけるイベントパスを説明するための図である。
【図17】 SIONetにおけるシェアードリンクの再確立を説明するための図である。
【図18】 SIONetにおけるホップ属性を説明するための図である。
【図19】 SIONetにおけるイベントプレース及びエンティティの増減設を説明するための図である。
【図20】 SIONetにおけるイベントプレース及びエンティティの増減設を説明するための図である。
【図21】 SIONetにおけるエンティティのアドバタイズメントを説明するための図である。
【図22】 SIONetにおけるエンティティのアドバタイズメントを説明するための図である。
【図23】 P2Pモデルのディメンションを示す図である。
【図24】 SIONetの概念を説明する図である。
【図25】 本発明の一実施形態による障害処理プロトコルを説明するための図である。
【図26】 本発明の一実施形態による予備のシェアードリンクの確立パターンを説明するための図である。

Claims (4)

  1. 複数のエンティティ装置をシェアードリンクを介して接続して構成されるイベントプレースにおいて、障害発生時に前記イベントプレースの再構築を行うエンティティ装置であって、
    自身のシェアードリンクの確立要求先である上流のエンティティ装置および自身に対するシェアードリンク確立要求元である下流のエンティティ装置を示すシェアードリンク確立情報を保持し、
    自身が接続している上流のエンティティ装置に障害が発生したときの代替の接続先となる上流のエンティティ装置を探索するための、探索を行う範囲の情報を含む探索イベントを送信する探索手段と、
    下流のエンティティ装置からの探索イベントを受信して自身が保持する前記シェアードリンク確立情報と照合し、受信した前記探索イベントの示す探索を行う範囲が自身の接続している上流のエンティティ装置を含む場合には、この上流のエンティティ装置へ該探索イベントを転送し、受信した前記探索イベントの示す探索を行う範囲が自身を含む場合には、自身のエントリポイントとグローバルエンティティ名を含む応答イベントを返送する応答手段と、
    自身が送出した前記探索イベントに対応した上流のエンティティ装置からの応答イベントを受信し、該応答イベントに含まれる送信元のエンティティ装置のエントリポイントとグローバルエンティティ名を用いて、当該送信元のエンティティ装置を代替エンティティ装置として予備の接続を確立する接続確立手段と、
    自身が接続している前記上流のエンティティ装置に障害が発生した場合に、予備の接続が確立されている代替エンティティ装置へ接続切替を行う接続切替手段と、
    を備えることを特徴とするエンティティ装置。
  2. さらに、予備の接続を確立した代替エンティティ装置に対して、この予備の接続を用いてヘルスチェックを行い、該代替エンティティ装置の退去あるいは障害の発生を認識したときに、該代替エンティティ装置との予備の接続を解放する状態確認手段、
    を備えることを特徴とする請求項1に記載のエンティティ装置。
  3. 複数のエンティティ装置をシェアードリンクを介して接続して構成されるイベントプレースにおいて、障害発生時に前記イベントプレースの再構築を行うエンティティ装置に用いられる障害回復方法であって、
    自身のシェアードリンクの確立要求先である上流のエンティティ装置および自身に対するシェアードリンク確立要求元である下流のエンティティ装置を示すシェアードリンク確立情報を保持し、
    自身が接続している上流のエンティティ装置に障害が発生したときの代替の接続先となる上流のエンティティ装置を探索するための、探索を行う範囲の情報を含む探索イベントを送信し、
    下流のエンティティ装置からの探索イベントを受信して自身が保持する前記シェアードリンク確立情報と照合し、受信した前記探索イベントの示す探索を行う範囲が自身の接続している上流のエンティティ装置を含む場合には、この上流のエンティティ装置へ該探索イベントを転送し、受信した前記探索イベントの示す探索を行う範囲が自身を含む場合には、自身のエントリポイントとグローバルエンティティ名を含む応答イベントを返送し、
    自身が送出した前記探索イベントに対応した応答イベントを受信して、該応答イベントに含まれている送信元のエンティティ装置のエントリポイントとグローバルエンティティ名を用いて、当該送信元のエンティティ装置を代替エンティティ装置として予備の接続を確立し、
    自身が接続している前記上流のエンティティ装置に障害が発生した場合に、予備の接続が確立されている代替エンティティ装置へ接続切替を行う、
    ことを特徴とする障害回復方法。
  4. 複数のエンティティ装置をシェアードリンクを介して接続して構成さ れるイベントプレースにおいて、障害発生時に前記イベントプレースの再構築を行うエンティティ装置に用いられるコンピュータプログラムであって、
    自身のシェアードリンクの確立要求先である上流のエンティティ装置および自身に対するシェアードリンク確立要求元である下流のエンティティ装置を示すシェアードリンク確立情報を保持するステップと、
    自身が接続している上流のエンティティ装置に障害が発生したときの代替の接続先となる上流のエンティティ装置を探索するための、探索を行う範囲の情報を含む探索イベントを送信するステップと、
    下流のエンティティ装置からの探索イベントを受信して自身が保持する前記シェアードリンク確立情報と照合し、受信した前記探索イベントの示す探索を行う範囲が自身の接続している上流のエンティティ装置を含む場合には、この上流のエンティティ装置へ該探索イベントを転送し、受信した前記探索イベントの示す探索を行う範囲が自身を含む場合には、自身のエントリポイントとグローバルエンティティ名を含む応答イベントを返送するステップと、
    自身が送出した前記探索イベントに対応した応答イベントを受信し、該応答イベントに含まれている送信元のエンティティ装置のエントリポイントとグローバルエンティティ名を用いて、当該送信元のエンティティ装置を代替エンティティ装置として予備の接続を確立するステップと、
    自身が接続している前記上流のエンティティ装置に障害が発生した場合に、予備の接続が確立されている代替エンティティ装置へ接続切替を行うステップと、
    をコンピュータに実行させることを特徴とするコンピュータプログラム。
JP2003070038A 2003-03-14 2003-03-14 エンティティ装置、障害回復方法、及び、コンピュータプログラム Expired - Fee Related JP3822178B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003070038A JP3822178B2 (ja) 2003-03-14 2003-03-14 エンティティ装置、障害回復方法、及び、コンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003070038A JP3822178B2 (ja) 2003-03-14 2003-03-14 エンティティ装置、障害回復方法、及び、コンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2004282346A JP2004282346A (ja) 2004-10-07
JP3822178B2 true JP3822178B2 (ja) 2006-09-13

Family

ID=33286892

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003070038A Expired - Fee Related JP3822178B2 (ja) 2003-03-14 2003-03-14 エンティティ装置、障害回復方法、及び、コンピュータプログラム

Country Status (1)

Country Link
JP (1) JP3822178B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5049618B2 (ja) * 2007-03-15 2012-10-17 株式会社日立製作所 ディザスタリカバリシステムおよび方法
JP2018148430A (ja) * 2017-03-06 2018-09-20 株式会社東芝 データ配信システム、通信装置、通信制御方法、およびプログラム

Also Published As

Publication number Publication date
JP2004282346A (ja) 2004-10-07

Similar Documents

Publication Publication Date Title
CN101595688B (zh) 跨越公共网络以连接任意主机的虚拟专用lan
JP3850378B2 (ja) エンティティ装置、アドホックネットワーク構築方法及びアドホックネットワーク構築プログラム並びにその記憶媒体
JP3822178B2 (ja) エンティティ装置、障害回復方法、及び、コンピュータプログラム
JP3946658B2 (ja) エンティティ装置、イベント転送制御方法、イベント転送制御プログラム及びその記録媒体
JP3987817B2 (ja) エンティティ装置、サービス共有方法、及び、コンピュータプログラム
JP3983187B2 (ja) エンティティ装置、リンク再確立方法、及び、コンピュータプログラム
JP3723127B2 (ja) エンティティ装置、情報公開システム、方法、記録媒体及びプログラム
JP3723126B2 (ja) エンティティ装置、名称付与方法、記録媒体及びプログラム
JP3803329B2 (ja) エンティティ装置、代替エンティティ探索方法及び代替エンティティ探索プログラム並びにその記録媒体
JP3844747B2 (ja) エンティティ装置、シェアードリンク再確立方法、シェアードリンク再確立プログラム及びその記録媒体
JP3792664B2 (ja) エンティティ装置、リプライ通知制御方法、リプライ通知制御プログラム及びその記録媒体
JP3850379B2 (ja) 意味情報ネットワークの構築方法および意味情報ネットワークシステム並びにプログラム
JP3782345B2 (ja) 組み込みシステム、方法、記録媒体及びプログラム
JP3910550B2 (ja) 意味情報ネットワークにおけるデータ検索方法および意味情報ネットワークシステム並びにプログラム
JP4028429B2 (ja) コンピュータ、イベントプレース探索方法、及び、コンピュータプログラム
Borch Social peer-to-peer for social people
JP3974054B2 (ja) エンティティ装置、シェアードリンク制御方法、認証方法及びシェアードリンク制御プログラム並びにその記録媒体
JP3732762B2 (ja) 意味情報スイッチ、意味情報ルータ、方法、記録媒体、プログラム
JP3974357B2 (ja) シェアードリンク設定方法、通信システム、エンティティ装置、およびそのコンピュータプログラムならびにその記録媒体
JP2004265325A (ja) 意味情報ネットワークにおけるサービス提供方法および意味情報ネットワークシステム並びにプログラム
JP3977387B2 (ja) 意味情報スイッチ、意味情報ルータ、方法、記録媒体、プログラム
Niazi Self-organized customized content delivery architecture for ambient assisted environments
JP3977388B2 (ja) 意味情報スイッチ、意味情報ルータ、方法、記録媒体、プログラム
JP4170322B2 (ja) 意味情報スイッチ、意味情報ルータ、方法、記録媒体、プログラム
JP4060325B2 (ja) 意味情報スイッチ、意味情報ルータ、方法、記録媒体、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060315

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060328

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060522

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060621

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090630

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100630

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100630

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110630

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120630

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees