JP4028429B2 - Computer, event place search method, and computer program - Google Patents

Computer, event place search method, and computer program Download PDF

Info

Publication number
JP4028429B2
JP4028429B2 JP2003112907A JP2003112907A JP4028429B2 JP 4028429 B2 JP4028429 B2 JP 4028429B2 JP 2003112907 A JP2003112907 A JP 2003112907A JP 2003112907 A JP2003112907 A JP 2003112907A JP 4028429 B2 JP4028429 B2 JP 4028429B2
Authority
JP
Japan
Prior art keywords
entity
event
event place
search
place
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
JP2003112907A
Other languages
Japanese (ja)
Other versions
JP2004318594A (en
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 JP2003112907A priority Critical patent/JP4028429B2/en
Publication of JP2004318594A publication Critical patent/JP2004318594A/en
Application granted granted Critical
Publication of JP4028429B2 publication Critical patent/JP4028429B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Figure 0004028429
【0130】
図27は、一実施の形態によるコミュニティの自動探索の概要フローを示す図である。
まず、ユーザは、探索元エンティティの表示する探索を行うためのメイン画面上に、探索キーワード(探索情報)を入力し(ステップS100)、探索開始ボタンをクリックする(ステップS110)。これにより、探索元エンティティは、後述する参加候補コミュニティ探索処理を実施する(ステップS120)。この参加候補コミュニティ探索処理は、初回の場合、探索を開始した時点で自身が参加しているコミュニティの全てを対象とし、参加候補最大数、もしくは、自動探索タイムアウト値を満たすまで実施される。
【0131】
このコミュニティ探索処理の結果、参加候補コミュニティがあった場合(ステップS130yes)、探索元エンティティは、コントロールパネルにより参加候補のコミュニティと、その評価とを表示する(ステップS140)。なお、SIONetにおけるイベントプレース参加最大数の設定値により、ユーザが選択可能なコミュニティの参加数は制限されて表示される。
一方、コミュニティ探索処理の結果、参加候補がなかった場合(ステップS130no)、探索の結果参加候補が発見できなかった旨をエンティティのダイアログに表示する(ステップS150)。
【0132】
図28は、一実施の形態による参加候補コミュニティ探索処理の概要フローを示す図である。
まず、探索元エンティティは、現在自身が属しているコミュニティを通過履歴に追加する(ステップS200)。このとき、引き継がれた通過履歴がある場合には、その履歴に現在のコミュニティを追加するが、引き継がれた通過履歴がない場合には、通過履歴を新規に追加する。
続いて、探索元エンティティは、同好(同じあるいは類似の属性を持つエンティティ)の探索処理を実行する(ステップS210)。同好の探索は、入力された探索キーワードと、エンティティが公開しているコミュニティの説明との文字列を比較することにより行う。これは、同好最大数、もしくは、オペレーション複数応答タイムアウト値を満たすまで実施される。
【0133】
同好が発見できた場合(ステップS220yes)、探索元エンティティは、発見した同好数分だけコミュニティ紹介要求処理を実施する(ステップS230)。これは、発見した同好に対して、コミュニティを紹介してもらうための処理であり、これにより、同好が参加しているコミュニティの探索キーワードに対する評価(コミュニティ評価)を取得する。そして、このコミュニティ評価値を基に参加候補となるコミュニティを判断してこの処理の呼び出し元に対して通知することにより、次探索候補コミュニティがあるか否かが判断される(ステップS240)。なお、この次探索候補のコミュニティは、コミュニティ評価がコミュニティ評価閾値を超えるコミュニティ全てを対象とする。あるいは、全てがコミュニティ評価閾値を超えなかった場合は、そのうち、コミュニティ評価が最大のものを対象とする。ただし、取得した全ての評価が「0」の場合、次探索候補のコミュニティはなしとなる。
次探索候補コミュニティがある場合、続いて探索元エンティティは、参加候補最大数に達した、もしくは、自動探索タイマー値を満たしたかにより、処理を継続か否かを判断する(ステップS250)。処理を継続する場合には、次探索候補数分だけ次探索候補のコミュニティに参加する(ステップS260)。そして、この参加したコミュニティに対して「参加候補コミュニティ探索処理」を次探索候補数分だけ実施する(ステップS270)。そして、探索元エンティティは、現在属しているコミュニティが、探索の為に参加していたコミュニティである場合には、そのコミュニティから退去する(ステップS280)。
なお、ステップS220において、同好を発見できない場合、ステップS240において、自探索候補コミュニティがない場合、あるいは、ステップS250において、処理を継続しない場合には、ステップS280のコミュニティからの退去を行う。
【0134】
図29〜図33は、一実施の形態によるコミュニティ自動探索の機能部間詳細シーケンス図である。
図29において、ユーザは、エンティティのコントロールパネルに表示されている同好探索のためのアイコンをダブルクリックする(ステップS300)。これにより、イベント解析部は同好検索のための画面表示イベントを受信し(ステップS301)、ユーザインタフェース部に探索のための画面表示を指示する(ステップS302)。ユーザインタフェース部は、探索のための画面表示に対する受付応答を返送し(ステップS303)、メイン画面を表示する。
【0135】
続いてユーザは、メイン画面に探索情報(探索キーワード)を設定し、START(探索開始)ボタンをクリックして探索開始を要求する(ステップS304)。すると、ユーザインタフェース部は、セッション管理部から自身の属するイベントプレースのEP情報のリストを取得する(ステップS305、ステップS306)。続いて、ユーザインタフェース部は、セッション管理部へ探索開始を通知する(ステップS307)。セッション管理部は、参加候補EPリストを初期化するとともに、受け付け応答を返送する(ステップS308)。ユーザインタフェース部は、受付応答を受信すると、探索時間の測定を開始し、自身の属するEP数分のスレッドを起動して、該イベントプレースにおける芋づる探索処理を実行する(ステップS309)。
【0136】
芋づる探索処理において、ユーザインタフェース部は、実行制御部を起動し、探索元EP−ID及び探索キーワードを受け渡す(ステップS310)。これにより、実行制御部は、同好探索処理を実行する(ステップS311)。
【0137】
図30に示す同好探索処理において、実行制御部は、同好探索部へ探索元EP−ID及び探索キーワードを受け渡し、同好探索を要求する(ステップS320)。同好探索部は、SIONetインタフェース部へ探索元EP−ID及び探索キーワードを受け渡して同好探索を指示すると(ステップS321)、探索の結果として同好のエンティティのグローバルエンティティ名(Global Entity Name)のリストが返送される(ステップS322)。実行制御部は、同好探索部からグローバルエンティティ名のリストを受信し(ステップS323)、このリストがNull、すなわち、同好が見つからなかった場合には、後述する探索結果表示処理を行う(ステップS324)。一方、グローバルエンティティ名のリストがNullではない、すなわち、同好のエンティティが見つかった場合には、以下に示すコミュニティ紹介要求処理を実行する(ステップS325)。
【0138】
図31に示すコミュニティ紹介要求処理において、実行制御部は、コミュニティ評価部へ探索元EP−ID、紹介要求先グローバルエンティティ名のリスト及び探索キーワードを受け渡し、コミュニティ紹介を要求する(ステップS330)。コミュニティ評価部は、SIONetインタフェース部へ探索元EP−ID、紹介要求先グローバルエンティティ名のリスト及び探索キーワードを受け渡し、コミュニティ紹介要求指示を行う(ステップS331)、同好のWell Known(周知)ポイント及びコミュニティ評価点の組のリストが返送される(ステップS332)。コミュニティ評価部は、セッション管理部へ紹介元グローバルエンティティ名と、探索キーワードと、参加候補Well Knownポイント及びコミュニティ評価点の組のリストと、通過履歴とを受け渡し、参加候補の登録を行う(ステップS333)。セッション管理部が参加候補の登録を行い、コミュニティ評価部が受け付け応答を受信すると(ステップS334)、ユーザインタフェース部へ芋づる探索継続可否判定を要求する(ステップS335)。ユーザインタフェース部は、セッション管理部から参加候補コミュニティ数を取得する(ステップS336、ステップS337)。そして、(参加候補コミュニティ総数<閾値)であり、かつ、(探索経過時間<閾値)である場合には「true(処理を継続する)」、(参加候補コミュニティ総数≧閾値)、あるいは、(探索経過時間≧閾値)である場合には「false(処理を継続しない)」の判定結果をコミュニティ評価部へ返送する(ステップS338)。コミュニティ評価部は、「true(処理を継続する)」を受信した場合に、次の探索先のWell Knownポイント及びコミュニティ評価点の組のリストを実行制御部へ送信する(ステップS339)。なお、次に探索を行うコミュニティとは、評価が閾値を超えているもの全てか、あるいは閾値を超えるものがない場合は評価点が最大のものである。また、直前の芋づる探索継続可否判定が「false(処理を継続しない)」であった場合には、「null」を返送する。
【0139】
実行制御部は、コミュニティ評価部から次の探索先のWell Knownポイント及びコミュニティ評価点の組のリストを受信すると、芋づるの深さが1以外の場合、すなわち、探索のための参加であった場合には、SIONetインタフェース部へ探索元EP−IDを受け渡し、退去指示を送信する(ステップS340)。SIONetインタフェース部は、退去指示を受けると受付応答を返送し、コミュニティからの退去を行う(ステップS341)。
【0140】
そして、図32において、コミュニティ制御部から受信した次の探索先のWell Knownポイント及びコミュニティ評価点の組のリストが「null」であった場合には、後述する探索結果表示処理を行う(ステップS350)。また、「null」以外であった場合には、Well Knownポイント数分のスレッドを起動し、紹介されたコミュニティへ参加するための移動処理を実行する(ステップS351)。
【0141】
移動処理において、実行制御部は、SIONetインタフェース部へWell Knownポイントを受け渡し、参加指示を行う(ステップS360)。SIONetインタフェース部がコミュニティへの参加を行い、実行制御部がEP−IDを受信すると、再び同好探索処理が行われる(ステップS361、ステップS362)。
【0142】
図33の探索処理表示処理において、ユーザインタフェース部は、一定時間待機を行っている(ステップS370)。この間、実行制御部では、起動したスレッドにおける探索を終了する。そして、待機時間が満了すると、参加候補が存在する場合、ユーザインタフェース部は、コントロールパネルへ探索結果を通知し(ステップS371)、ユーザは、コントロールパネルが表示する探索結果を確認する(ステップS372)。一方、参加候補が存在しない場合、ユーザインタフェース部は、通知ダイアログ表示の指示を受け、コミュニティ未発見を通知するための画面を表示する(ステップS375)。ユーザは、通知ダイアログにより、参加候補が存在しない旨を認識すると、OKボタンをクリックする(ステップS376)。
【0143】
図34は、一実施の形態によるメイン画面を示す図である。
図34に示す探索のためのメイン画面には、探索キーワードを入力する[探索情報]フィールド▲1▼と、現在広告を行っているコミュニティの情報を表示する[ナビゲート情報]リストボックス▲2▼と、[探索情報]フィールド▲1▼に入力された探索キーワードによる探索を開始するための[探索開始]ボタン▲3▼が備えられる。そして、[探索情報]フィールド▲1▼に探索キーワードを入力し、[探索開始]ボタン▲3▼を押下することにより、探索開始時点で、自身が参加しているコミュニティの全てを探索元として検索を開始する。なお、[ナビゲート情報]リストボックス▲2▼には、常に最新の状態が表示される。
【0144】
図35は、一実施の形態によるコミュニティ未発見時の探索結果表示画面を示す図である。
図33のステップS375において参加候補が存在しない場合に、ユーザインタフェース部は、図35に示す探索結果表示画面を表示する。ユーザは、通知ダイアログにより、コミュニティが発見できなかった旨を認識すると、OKボタン▲1▼をクリックし、この画面を閉じる。
【0145】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【0146】
【発明の効果】
以上説明したように、イベントプレース(コミュニティ)内の任意のエンティティが退去、参加等しても、同時に複数のイベントプレースに参加しているエンティティを介してイベントプレースを探索するための機能が阻害されることのないエンティティ装置、コミュニティ探索方法、及び、コンピュータプログラムを提供することができる。さらに、エンティティが属するイベントプレースにおいて自身を広告する価値があるか否かを学習することにより、適切なコミュニティの探索を自動的に行うことが可能なため、探索の待ち時間を少なくすることができ、さらには、リソースを有効に使用できる、また、探索ノウハウのないコミュニティ探索者(探索エンティティ)が適切なコミュニティを探索できる、などの利点及び効果がある。
【図面の簡単な説明】
【図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】 同実施形態によるコミュニティ探索の動作例を示す図である。
【図27】 同実施形態によるコミュニティの自動探索の概要フローを示す図である。
【図28】 同実施形態による参加候補コミュニティ探索処理の概要フローを示す図である。
【図29】 同実施形態によるコミュニティ自動探索の機能部間詳細シーケンス図である。
【図30】 同実施形態によるコミュニティ自動探索の機能部間詳細シーケンス図である。
【図31】 同実施形態によるコミュニティ自動探索の機能部間詳細シーケンス図である。
【図32】 同実施形態によるコミュニティ自動探索の機能部間詳細シーケンス図である。
【図33】 同実施形態によるコミュニティ自動探索の機能部間詳細シーケンス図である。
【図34】 同実施形態によるメイン画面を示す図である。
【図35】 同実施形態によるコミュニティ未発見時の探索結果表示画面を示す図である。[0001]
BACKGROUND OF THE INVENTION
The present invention is a community (Event place) Entities that make up Computer used as Automatically controls the expression search based on entities Event place The present invention relates to a search method and a program. The present invention also relates to a community formation technique. In particular, the present invention relates to a field of searching for an inter-community network in which a plurality of communities exist and a user can transition between the plurality of communities by joining and leaving the community.
[0002]
[Prior art]
In recent years, a new concept of “brokerless search model” has been devised in the networking industry. This brokerless search model is equivalent to P2P (Peer-to-Peer) that has gained worldwide attention, such as Gnutella, which was announced in March 2000. JXTA, announced in April 2001, also corresponds to P2P, a brokerless search model. P2P is an innovative technology since the WWW and is called the third generation. In recent years, research and development of brokerless transmission models that apply the P2P concept to the transmission layer and brokerless policy models that apply the P2P concept to the policy layer have become active. The dimensions of the brokerless (distribution) model are shown in FIG. One of these brokerless search models is SIONet (Semantic Information-Oriented Network).
[0003]
SIONet is a meta network that delivers an event composed of data and semantic information of the data based on semantic information (metadata). As shown in FIG. 24, the event receiver registers semantic information indicating the condition of the event to be received in advance in SIONet. When an event is transmitted from the event sender to the SIONet, the SIONet collates the semantic information of the event with the registered semantic information, and transmits the event to the event receiver based on the collation result. In this way, sending an event to SIONet is called “stimulation”, and the registered semantic information matches the semantic information of the event, and notifying the event recipient who registered the semantic information of the event. It is called “ignition”.
[0004]
As a result, it is possible to dynamically search and discover a specific entity from among an unspecified number of entities that are super-distributed on the network. That is, SIONet is a network that delivers events based on semantic information (sending to whom) instead of the destination address (sending to whom) used in the conventional network.
[0005]
SIONet is an autonomous distributed cooperative network (autonomous distributed computer) in which all entities including the components of SIONet perform autonomous distributed cooperation to self-organize the network. Network components of SIONet include "Semantic Information Switch (SI-SW)", "Semantic Information Router (SI-R)", "Semantic Information Gateway (SI-GW)", "Event Place", "Session", etc. These can be self-organized as needed to build a secure and scalable P2P network with a bottom-up approach.
[0006]
The basic concept and principle of SIONet is simple and unified. Repeating the simple operation of “registering a filter by an entity and dispatching an event”, that is, “entity“ stimulation ”and“ ignition ”“ chain reaction ”between the network components of SIONet. The thing that controls the behavior of this chain reaction is the semantic information registered in the SIONet by the above-mentioned event receiver, and this is called the “filter”. The method of chain reaction of entities can be dynamically controlled by the filter value registered in the filter. Another basic concept in SIONet is event place. An event place is an entity group connected to each other by a shared link, thereby limiting the scope of a chain reaction.
Details of SIONet are described in Non-Patent Documents 1 and 2. The applicant of the present invention has previously filed an application relating to SIONet according to Japanese Patent Application No. 2001-394980.
[0007]
[Non-Patent Document 1]
Takanari Hoshiai, Keiichi Koyanagi, Birge Sukubatar, Kei Kubota, Hiroshi Shibata, Takamichi Sakai, "Semantic Information Network Architecture", IEICE Transactions B, Vol. J84-B, No. 3, pp. 4, 11- 4,2,4 (2000.7 reception, 2001-3 publication)
[Non-Patent Document 2]
Takanari Hoshiai, Hiroshi Shibata, Takamichi Sakai, Keiichi Koyanagi: "Semantic Information Network Architecture: SION Architecture", NTT R & D, Vol.50, No.3, pp.157-164 (Received 2000.12, published in 2001.3)
[0008]
[Problems to be solved by the invention]
SIONet advocates the concept of an event place. An event place is a spillover range of an event or an event path, in other words, a group of entities linked by a shared link. Each entity establishes a connection by connecting the semantic information switches included in each entity through a session or a shared link. This semantic information switch is included in each entity in the event place. There are as many as there are. For example, when an entity participates in event place A and event place B at the same time, the entity includes two semantic information switches. One of the semantic information switches establishes a connection only to the semantic information switch for the event place A of the entity participating in the event place A, and the other semantic information switch is the event place B of the entity participating in the event place B. Establish a connection only to the semantic information switch. In this way, since the semantic information switch included in the entity is different for each event place, even the semantic information switch included in the same entity establishes a connection with the semantic information switch that can participate in the event place desired by the entity owner. Must.
[0009]
However, if an entity continues to belong to an event place where desired information cannot be obtained, resources such as useless computers are consumed, and the network becomes inefficient. Therefore, it has been desired to automatically lead the entity to the optimal event place.
[0010]
The present invention has been made in view of such circumstances, and an entity that can search an entity belonging to a plurality of communities (event places) according to an expression and guide the entity to the optimum community. Computer used as , Event place An object is to provide a search method and a computer program.
[0011]
[Means for Solving the Problems]
The present invention has been made to achieve the above-mentioned object, and the invention according to claim 1 is a plurality of inventions. Event place Entities belonging to I Through Event place Appropriate while transitioning between Event place Entity to search for As a computer The user interface means for providing an input / output interface to the user, receiving search information from the user, and displaying the search result, and the current user belongs Event place The user interface means matches or is similar to the search information received Event place Information Hold publicly Like search instructions for searching for like entities and detected like entities Showing information returned from a computer acting as other Event place Move to within a given time or destination Event place Execution control means that performs recursively until the number reaches a predetermined number, and receives an instruction of a like search from the execution control means, and currently belongs to Event place A favorite search means for searching for a favorite entity in the list, and a favorite entity detected by the favorite search means Showing information returned from a computer acting as other Event place Evaluate this other Event place Other destination Event place Select and notify the execution control means Event place Evaluation means and own Event place To other to which he belongs at the same time Event place Information By sending Advertise and the one to which you belong Event place An advertisement control means for canceling the advertisement based on the evaluation of Computer It is.
[0012]
The invention described in claim 2 is described in claim 1. Computer And the other execution control means has moved. Event place Information By sending Advertisement It is carried out, Enthusiastic entity As a computer To this other Event place Feedback control means for notifying the user satisfaction level in the advertisement, wherein the advertising means Event place Other entities moved to As a computer Based on user satisfaction received from Event place It is characterized by performing evaluation.
[0013]
Invention of Claim 3 is described in Claim 1 or Claim 2. Computer A semantic information network access means for providing access to the semantic information network, and other entities participating in the semantic information network. As a computer Managing sessions with and currently advertising Event place The session management means for holding and providing the latest information related to the session including at least the navigation information that is the information of the information, and the user interface means receives an event from the semantic information network. And event analysis means for dispatching the event.
[0014]
The invention according to claim 4 is the invention according to any one of claims 1 to 3. Computer And do advertising Event place Joined in response to user operations Event place Or, the execution control means has moved. Event place Any of Event place It is characterized by being.
[0015]
The invention according to claim 5 includes a plurality of Event place Entities belonging to I Through Event place Appropriate while transitioning between Event place Entity to search for As a computer Used for Event place A search method, In the computer functioning as the entity, user interface means includes: Receive search information from user After , Execution control means Currently belongs to Event place Within the search information that matches or resembles the input search information Event place Information Hold publicly Enthusiastic entity The search Shi , Event place evaluation means Favored entity detected Showing information returned from a computer acting as other Event place Evaluation Shi , The execution control means is Others based on the above assessment Event place Other destination Event place Choice And Other selected Event place Move to Processing Within a given time or destination Event place Do it recursively until a certain number is reached, The user interface means comprises: While displaying search results, Ad control means Belongs to Event place To other to which he belongs at the same time Event place Information By sending Advertising Together , The one to which it belongs Event place The advertisement is canceled based on the evaluation of Event place This is a search method.
[0016]
The invention according to claim 6 includes a plurality of Event place Entities belonging to I Through Event place Appropriate while transitioning between Event place Entity to search for Used as a computer A computer program, an input step for receiving search information input from a user, and a current program Event place Within the search information that matches or resembles the input search information Event place Information Hold publicly Search for like entities and find like entities found Showing information returned from a computer acting as other Event place And other based on that rating Event place Other destination Event place Selected and selected Event place Move to within a given time or destination Event place Recursively until the number reaches a predetermined number, displaying the search results, Event place To other to which he belongs at the same time Event place Information By sending A step of performing an advertisement, Event place A computer program that causes a computer to execute the step of canceling the advertisement based on the evaluation.
In this specification, the entity device is a general term for all computers such as a personal computer, a workstation, an information portable terminal, a mobile phone, and a wearable computer.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
[Details of SIONet]
<Definition of SIONet entity>
Here, all computers such as personal computers, workstations, portable information terminals, mobile phones, and wearable computers are collectively referred to as hosts. Furthermore, a host that implements SIONet software is called a “SIONet entity” or simply an “entity”. As shown in FIG. 2A, an entity (entity device) is a virtualized host in which SIONet software is implemented as a unit of autonomous distributed cooperation in SIONet. SIONet software provides a mechanism for individual entities to perform autonomous distributed cooperation. With this SIONet software, each host can become an autonomous distributed computer.
[0018]
Entities are mainly classified into the following three types as shown in FIG.
・ Applications that act as services (service entity: SE, service entity part) are included inside the entity.
· Modules that act as network components (network entity: NE) are included inside the entity
・ Including both SE and NE in the entity
[0019]
<Entity structure and state transition>
FIG. 3 is a diagram illustrating state transition of an entity. As shown in this figure, there are three states of an entity, “Non-Existent”, “Suspend”, and “Active”.
The “Non-Existent” state represents the entity state when the SIONet software is installed on the host.
By executing (launching) the SIONet software, transition from the “Non-Existent” state to the “Suspend” state. At this time, internal modules such as an entity control unit, a control panel, a network entity factory (NE factory), and a network entity (NE) are generated in the entity as shown in FIG. Below, each role is demonstrated easily.
[0020]
The entity control unit is an entity entity, and accepts various requests (session establishment request, shared link establishment request, etc., which will be described later) from other entities and the control panel. Note that a request for establishing a session, a request for establishing a shared link, etc. cannot be made from another entity to an entity in the “suspend” state.
[0021]
The control panel provides a GUI (Graphical User Interface) to owners of entities such as people. For example, the control panel prompts the owner of the entity to input the entity name, and the entity control unit assigns the entity name to the entity based on the input entity name. In the example of FIG. 4, the entity name is “entity 2”. This entity name may be referred to as a “local entity name”, particularly distinguished from a “global entity name” described later. The local entity name can be arbitrarily set by the owner of the entity.
[0022]
The NE (network entity) factory has a function of dynamically generating an NE.
NE (Network Entity) means SI-R (Semantic Information Router), SI-GW (Semantic Information Gateway), alive entity, fault handling entity, statistics collection entity, etc. It is a general term for modules that behave in order to achieve this.
[0023]
The SE (service entity) is an application embedded as an SE in an entity using a plug-in mechanism provided by the entity, and is a virtualized P2P application operating on SIONet. An application can be embedded in an entity as an SE using a plug-in mechanism provided by the entity. Also, the SE can establish an arbitrary number of sessions with the SI-SW. The SE can send and receive events only through a session. SE is not involved in SIONet network construction and operation. A plug-in mechanism for incorporating SE into an entity will be described later.
[0024]
The entity (entity 2) in the “suspend” state in FIG. 3 generates an event place by itself as shown in FIG. 5, for example, or joins (joins) an existing event place as shown in FIG. When the entity (entity 2) belongs to an arbitrary event place and becomes a member of an entity group, the entity (entity 2) transitions from the “suspend” state to the “active” state. Only an entity in the “active” state advertises its existence (public, details will be described later), and can accept a session establishment request or a shared link establishment request from another entity.
[0025]
Here, after the software is installed in the host and the entity including the NE, the NE factory, the entity control unit, the control panel, and the like is generated, the operation until the entity enters the “active” state will be described. Assume that an entity receives an instruction to create an event place or participate in another event place via the control panel from the owner of the entity. The entity control unit of the entity requests the NE factory of the entity to generate SI-SW (Semantic Information Switch). When the NE factory generates SI-SW, the entity control unit establishes a session between the generated SI-SW and an internal module such as NE. This makes it possible to accept advertisements, session establishment requests from other entities, shared link establishment requests, and the like.
[0026]
Here, the role of SI-SW and session will be described with reference to FIG.
A session is a connection between SI-SW and SE, and SE can send and receive events only through the session. There are three types of sessions: event transmission sessions, reception sessions, and transmission / reception sessions.
SI-SW provides a switching mechanism that switches events based on semantic information. The SI-SW accommodates NEs and internal entities such as SEs and NEs incorporated in the entities by a plug-in mechanism through a session in a star shape. In the following, SE will be described as an example, but the same applies to other internal entities included in an entity such as NE.
[0027]
Here, the configuration of the event will be described. As shown in an example in FIG. 8, the event includes a control information part, a semantic information part, and a data part. Transmission data is stored in the data portion. Various data and programs such as text data, binary data, reference, proxy, and agent can be stored as transmission data.
[0028]
The semantic information portion stores semantic information (vocabulary and its value) of transmission data and a vocabulary concept (event type) of semantic information. Here, the semantic information is metadata describing the characteristics of transmission data and is an instance of an event type. The event type is a semantic information template. You can define inheritance relationships between event types. FIG. 9 shows an example of the semantic information system. In this figure, the meaning information “title; yesterday”, “price; $ 30”, “artist name; beatles” belongs to the event type “popular” and also belongs to the event type “music”. Yes. In addition, the meaning information “Title; Kiyoshi no Koto”, “Price; $ 20”, “Situation; Christmas” belongs to the event type “BGM”, and also belongs to the event type “Music”. .
[0029]
As a description language of the semantic information system, there is XML (Extensible Markup Language). Note that some event type names (all names starting with SIONet) are reserved for network entities.
The event control information part shown in FIG. 8 is a control field used for SIONet execution control, and only this is not open to the SE who is the user of SIONet. The control information section includes matched filter identifiers, matched filter verification scores, synchronous statistical information collection flags, TTL (Time To Live) values within event places, between event places, within event places, and between event places. Control information such as the number of hops and hop attributes is set.
[0030]
In the entity configuration as shown in FIG. 7, the function of the SE will be described. The SE registers event acquisition conditions in the SI-SW via the reception session. This is called a “filter”. In the filter, set the vocabulary concept (event type) of the event you want to acquire, and the matching condition with the semantic information (for example, the vocabulary “Price” is in the range of “$ 20 to $ 40”) . Note that collation conditions such as “complete match” with all vocabularies defined in the event type, “partial match” with some vocabularies, and “weighted match” can be selected in units of filters.
[0031]
The SE can register a plurality of filters from one reception session, but the filters registered through the same session have an “or” relationship. That is, for one event, one receiving session is fired at most once. If a wildcard is specified for the event type of the event to be acquired, all event types are targeted for acquisition. Further, when 1 (logical value is true) is set as the matching condition with the semantic information, it means that the matching condition with the semantic information is satisfied unconditionally.
[0032]
In addition, the SE transmits an event to the SI-SW via a transmission session. At this time, the SI-SW collates the semantic information part of the event with the filter. Specifically, first, it is checked whether or not the event type is desired to be received. If the event type is satisfied, the semantic information and the matching condition are checked. As a result of the collation, when the semantic information satisfies the collation condition, the entity that registered the matched filter is activated and the event is notified.
In SIONet, event transmission is referred to as “stimulation”, that the filter matches the event as “reaction”, and that the entity that registered the matched filter is activated to notify the event is referred to as “ignition”.
[0033]
<Entity name assignment method>
As shown in FIG. 5, the case where the entity 2 generates an event place named “event place A” will be described. The owner of the entity 2 inputs an event place name to the entity 2 through a control panel or the like. Here, the input event place name is “event place A”. Then, the entity control unit requests the NE factory to generate SI-SW, and establishes a session between the generated SI-SW and an internal module such as NE. Further, the entity control unit stores the name of the generated SI-SW as “event place name + local entity name”, that is, “event place A + entity 2”. This name is called “global entity name”. Creation of this global entity name corresponds to generation of an event place.
[0034]
That is, in SIONet, some management entity is not necessarily generated by generating an event place. That is, in SIONet, member management of entities belonging to an event place is realized by a shared link between entities described later, and therefore there is no centralized management unit itself that performs member management. For this reason, even if the entity that generated the event place leaves the event place, the entity remaining in the event place autonomously self-organizes, whereby the operation of the event place is continued. In other words, the removal of the last entity from the event place corresponds to the disappearance of the event place.
[0035]
This global entity name is used when a shared link or session is established. An operation in which the entity 2 as shown in FIG. 5 further generates an event place B and establishes a shared link from the entity 1 will be described with reference to FIG.
[0036]
First, an operation in which the entity 2 already participating in the event place A generates the event place B will be described. The entity control unit of entity 2 causes the NE factory to generate a new SI-SW, as described above. The entity control unit assigns “event place B + entity 2” as the global entity name to the generated new SI-SW. Thereby, the event place B is generated. At this time, the entity 2 has two global entity names (SI-SW names) “event place A + entity 2” and “event place B + entity 2”.
[0037]
Next, an operation in which the entity 1 joins (joins) the event place A will be described. As described above, the entity 2 participating in the event place A and the event place B is in the “active” state. An entity in the “active” state can advertise (publish) its existence to other entities, in which case the global entity name is published.
[0038]
When entity 1 discovers entity 2 and makes a join request to entity 2, entity 1 indicates that the global entity name of entity 2 that is the join destination entity is “event place A + entity 2”. Entity 2 is notified.
[0039]
In this way, the global entity name can uniquely identify the SI-SW that establishes the shared link, and thus can participate in the event place A. In this way, the SI-SW, which is the shared link or session establishment destination, is virtualized as a global entity name, so that the entity owner or the like is not directly aware of the SI-SW.
[0040]
<SE plug-in method>
The operation of incorporating SE into the entity shown in FIG. 11 will be described below.
(1) The entity owner instructs an application plug-in to the control panel. At this time, the executable file name of the application to be plugged in is given as a parameter.
(2) The control panel notifies the entity control unit that the plug-in instruction has been received and the execution file name of the plug-in application.
[0041]
(3) The entity control unit stores an execution file name to be plugged in, starts an application using the given execution file name, and establishes a session between the SI-SW and the started application.
That is, the plug-in in SIONet is nothing but to establish a session between the application and SI-SW. In SIONet, all operation entities such as SE and NE cooperate through a session. Therefore, plug-in / plug-out (detachment) can be easily realized, and the plug-in / plug-out does not affect other operation entities (super loose coupling). By extending this concept, SE sharing between entities as described later can be realized.
[0042]
<PREFERENCE architecture>
SIONet adopts the concept of a reference model as shown in FIG. The PREFERENCE architecture shown in FIG. 12 is an architecture for building a listening society (a listening-oriented cyber society) in which semantic information is registered in a filter and distribution conditions (matching conditions) are set in an event semantic information section. Provides total solutions for less-less distribution model, broker-less search model, and broker-less policy model. Specifically, it consists of a stream interface, SIONet, COMNet, and the like.
SIONet is an event transmission layer and provides a network interface to higher layers. The middleware layer is a community (community network: COMNet) and corresponds to the intelligence layer of SIONet. In this layer, information localization, authentication, security, information right guarantee, policy control, and the like are performed. The highest layer is the application layer. SE is implemented in this application layer. Examples of the SE include a personal TV station and a smart messenger for a message exchange service.
[0043]
In this way, SIONet provides a common P2P network infrastructure and a plug-in mechanism for all P2P services (SEs provide services) such as distributed computing, information exchange, collaboration, and message delivery. To support efficient application development.
[0044]
<Role of entity in SIONet>
SIONet is a form of constructing a volunteer network by helping each other's entities to help each other, and each network is self-organizing through autonomous distributed cooperation. For example, in the configuration of FIG. 6, an operation in which the entity 2 participates in the event place generated by the entity 1 and then the entity 1 leaves the event place will be described.
[0045]
In advance, the entity 1 generates an event place and participates in the event place. Here, when entity 2 makes a join request to event place for entity 1, as shown in FIG. 13, SI-SW is generated for entity 2, and SI-SW of entity 1 and entity 2 is further generated. A shared link is established between them and an entity group is formed.
In this way, after the shared link is established between the SI-SWs of the entity 1 and the entity 2 and the entity 2 participates in the event place, the entity 1 that is the creator of the event place leaves the event place. Then, the shared link between SI and SW is released, and thereafter, the event place construction / operation is continued only by entity 2. Thus, since each entity self-organizes, even if an entity leaves, disappears, etc., another entity performs the function of the entity.
[0046]
In SIONet, various forms of P2P networks can be constructed by arranging and combining entities according to the purpose. It is also possible to seamlessly link different forms of P2P networks. This is achieved by realizing:
(1) All entities are autonomously distributed and coordinated using a simple and simple mechanism called “chain reaction based on stimulation and firing”.
(2) Reducing the difference in P2P network form to the problem of entity placement and management
As described above, one of the features of SIONet is that various forms of P2P networks can be constructed with a single mechanism.
[0047]
<Shared link>
The “shared link” is a concept for performing bidirectional event sharing between a plurality of different entities. For example, as shown in FIG. 14, when entity 2 makes a request for establishment of a shared link (SL) to entity 1, as shown in FIG. 15, SI-SW2 and SI-SW1 A shared link is established between them and a new entity group is formed. That is, the shared link is a mechanism for forming an entity group, and is also a multi-hop route.
[0048]
In FIG. 14, the entity 2 that has successfully established the shared link includes the event place name (global entity name) from the entity 1, the event transfer method (routing method) in the event place, and the description (description) of the event place. Various information such as SE information that is plugged in is transmitted. Various event routing methods can be dynamically set between SI-SWs by setting filter values using SI-R, which will be described later. In the following, the operation of establishing a shared link will be described, and the role and mechanism of SI-R will be described in detail.
[0049]
<Establishment of shared link>
A mechanism up to establishment of a shared link will be described with reference to FIGS. 14 and 15. First, in FIG. 14, consider a case where entity 2 issues a shared link establishment request to entity 1.
(1) The entity 2 issues a shared link establishment request to the entity 1.
[0050]
(2) As shown in FIG. 15, the entity control unit of entity 1 is SL 1,2 SI-R that performs event routing (event transfer) between SI and SW based on semantic information to NE factory to establish (shared link for receiving event from entity 2) 1,2 Are dynamically generated inside the entity 1. Further, the entity control unit stores that the entity 2 is a shared link establishment request source. Strictly speaking, the entry point of the entity 2 and the global entity name (SI-SW2) are stored as a shared link establishment request source.
[0051]
(3) SI-R 1,2 Establishes an event reception session for SI-SW 2 by making a request for establishment of an event reception session to entity 2. At this time, a filter indicating a condition of an event received by the entity 1 is registered in the SI-SW 2. In addition, SI-R 1,2 Establishes a session for event transmission to the SI-SW 1 to which it belongs. Such a combination of transmission and reception sessions established by SI-R is called a shared link. SL 1,2 For example, the event sent by SE4 to SI-SW2 is SI-R 1,2 Is also sent to SI-SW1.
[0052]
(4) At this time, SI-R 1,2 The event transfer method can be dynamically controlled according to the setting value of the filter registered in SI-SW2. An example is shown below.
(A) The event sent to SI-SW2 is unconditionally transferred to SI-SW1. That is, for all events, SI-R 1,2 Fires. This is made possible by setting “wildcard for the acquired vocabulary concept and true for the matching condition with semantic information (vocabulary)” as a filter that SI-R registers in SI-SW. This is called “unconditional routing”. This setting only needs to be performed once when the shared link is established. In this method, there is a possibility that unnecessary event transfer and event collation processing overhead at the transfer destination may occur. However, since there is no overhead for event path establishment (routing information setting) described later, the number of registered filters is small. This method is effective when it is sufficiently larger than the number of event transmissions. This routing method is mainly used for multi-hop broadcast communication.
[0053]
(B) Transfer only events necessary for entity 1 from SI-SW 2 to SI-SW 1. Thereby, unnecessary event transfer is not performed. That is, SI-R only for specific events 1,2 Fires. This is because SI-R sets only the vocabulary concept (matching condition is always true) in the filter as “event routing by vocabulary concept”, and sets the matching condition between the vocabulary concept and vocabulary as “filter”. It is divided roughly into. The former is mainly used for multicast communication with a multi-hop type attribute, and the latter is mainly used for multi-hop type unicast communication and multi-hop type multicast communication. This is used in failure processing notifications, statistical information notifications, alive notifications, reply notifications, advertisement notifications, and the like.
In addition to multi-hop communication such as multi-hop broadcast communication, multi-hop attribute multicast communication, multi-hop unicast communication, and multi-hop multicast communication, the communication destination can be set according to the filter value set by SI-R. Direct communication using entity entry points is also possible. Multi-hop broadcast communication, multi-hop attributed multicast communication, multi-hop unicast communication, and multi-hop multicast communication will be described later.
[0054]
(4) The procedures (2) to (3) described above are performed in the same way in the entity 2 that is the shared link establishment request source. That is, the entity control unit of entity 2 stores entity 1 (SI-SW1) as a shared link establishment request destination and SL. 2,1 SI-R to NE factory to establish 2,1 Is generated dynamically. This generated SI-R 2,1 Registers a filter in SI-SW1 in the same manner as described above, and establishes a shared link. Thereby, a bidirectional shared link is established between SI-SW1 and SI-SW2, and events can be shared among entities. Since SI-R does not register the filter, it is possible to establish a one-way shared link, that is, to prevent SI-R from being fired.
[0055]
<Establishing an event path>
Route selection information for event forwarding (event routing) (a set of filters that SI-R registers for event sharing) is called an “event path”. For example, as shown in FIG. 15, in a configuration in which entity 2 and entity 3 each establish a shared link with entity 1, consider a case where SE3 of entity 2 registers a filter for SI-SW2. At this time, SI-R of entity 2 2,1 Registers the filter registered by SE3 to SI-SW1 of entity 1 via the reception session. Similarly, the SI-R of entity 1 1,3 Registers the filter in the SI-SW 3 of the entity 3 via the reception session. In this way, with the filter registration by SE3 as a trigger, the SI-R registered filter sequentially spreads to adjacent SI-Rs based on the shared link, thereby establishing an event path. This is called “event path setting or spreading”.
[0056]
Here, the establishment of the event path for the above-described “event routing based on the vocabulary concept” will be described. In FIG. 15, in order to establish an event path for “event routing based on vocabulary concept”, in the filter registered by the SE3 of the entity 2 with respect to the SI-SW2, the SI-R 2,1 Sets only the event type (the matching condition is always true) as a filter to entity 1's SI-SW1. That is, the collation condition registered by SE3 as a filter is not used. In other words, by utilizing only the event type, for example, when SE1 of entity 1 sends an event, only the event type is collated in SI-SW1, and as a result, SI-R 2,1 When the fire ignites, SI-R 2,1 Sends the event to SI-SW 2 and collates with semantic information in SI-SW 2.
[0057]
In addition, establishment of an event path for the above-mentioned “event routing by vocabulary” will be described. In FIG. 15, when establishing an event path for “event routing by vocabulary”, the SI-R of entity 2 2,1 Sets the filter value registered by SE3 as it is as the filter value to SI-SW1 of entity 1. That is, SI-R 2,1 Is a form in which both the event type and semantic information registered by SE3 as a filter are registered in SI-SW1 of entity 1 and complete filtering is performed in SI-SW1.
[0058]
Therefore, the event routing method based on vocabulary does not cause any unnecessary event transfer, but the event path setting overhead for routing becomes enormous, so this method is effective when the number of event transmissions is sufficiently larger than the number of registered filters. It is. On the other hand, the routing method based on the event type is positioned as a compromise between the two methods described above. In other words, it is effective when the number of filter registrations and the number of event transmissions are about the same, or when the ratio between the number of filter registrations and the number of event transmissions cannot be predicted. With these mechanisms, multi-hop communication of events based on semantic information is realized. An event routing method can be specified when generating an event place or registering a filter from an SE.
[0059]
The event path setting request is propagated to all SI-Rs in the event place, but the propagation range can be limited by the TTL value. The operation will be briefly described with reference to FIG. Here, for convenience of explanation, it is assumed that an event path is established for vocabulary concept routing, but the present invention is not limited to this. Further, each entity advertises (filter registration) the same vocabulary concept. The description will be made assuming that the TTL value is 2.
[0060]
In FIG. 16A, the SI-R of the entity 2 starts an event path setting request. Here, since the TTL value is 2, the event path setting request is propagated only to entity 1, entity 3, and entity 4, and as a result, the event path is established as shown in FIG. The
[0061]
Similarly to the above, when the SI-R of the entity 11 starts an event path setting request, an event path is established for the entity 10 and the entity 9. In the configuration shown in FIG. 16, when the SI-R of entity 2 and the SI-R of entity 11 make an event path setting request, the event path is not set in entity 5. Is not shared. That is, the event that has occurred from the entity 2 does not cause a chain reaction with the entities 5 to 11, and the event is not transferred to the entities 5 to 11.
[0062]
However, as shown in FIG. 16B, when the SI-R of the entity 5 initiates an event path setting request, the event path for the entity 4, the entity 5, the entity 6, the entity 7, and the entity 9 is determined. Is established. As a result, as shown in FIG. 16C, an event path is established for all entities in the event place except the entity 8.
[0063]
Thus, if the vocabulary concept is frequently used (reputed or popular) in the event place, the event path will eventually be established in the event place. Become. On the other hand, vocabulary concepts that are not so popular will eventually be deceived, which allows a mild chain reaction to be realized. Note that the numbers on the event path in FIG. 16 indicate the multiplicity.
[0064]
An entity can publish the multiplicity of event paths as an attribute of an entity property. On the other hand, an entity having a high multiplicity of event paths can be found by entity property discovery. At this time, by re-sharing the shared link with respect to the entity, it is possible to gradually gather like-minds (like entities) in the vicinity (localization of like-entities). Details of the entity property will be described later.
[0065]
From the viewpoint of distributed object technology, the event path can also be interpreted as follows. Entities that are super-distributed around the world have some “correlation” between them. There are various properties such as an entity name, a group name, and attributes (location, interest, reputation, fashion, service) that give a correlation. Based on the correlation, the entities have a connection between the entities and perform distributed cooperation. This entity that gives an entity correlation is called an entity property.
[0066]
In SIONet, this correlation is expressed by the vocabulary concept and vocabulary and set as an event path based on the shared link. The strength of the correlation corresponds to generalization / specialization of vocabulary concepts, multiplicity of event paths, and the like. That is, in SIONet, the correlation between entities is dynamically controlled and managed by an event path. This is the control of the chain reaction by the filter. Therefore, the entity does not have a fixed entity identifier.
[0067]
For example, an IP address is a fixed identifier of an entity based on a position. In SIONet, instead of this, an entity property described as a vocabulary concept / vocabulary is used as an entity identifier. Entities register these as filters in SI-SW, thereby declaring entity properties (entity identifiers) and advertising their properties based on shared links. This corresponds to the propagation of the event path. Thereby, an event path is established.
[0068]
As described above, SI-R is a network entity having both aspects of event transmission and event reception, and is not fundamentally different from a general service entity. In SIONet, an entity used for SIONet control such as SI-R is called a network entity (NE), particularly distinguished from a service entity (SE). In SIONet, all service entities and network entities are treated as a common entity, and autonomously operated according to a simple and consistent common logic of event transmission and event reception, that is, chain reaction of stimulus and firing. , Provide a super-distributed and super-loosely coupled architecture in which all entities can cooperate autonomously and distributedly.
[0069]
<Release and re-establish shared link>
In cases where an entity participating in the event place falls into a failure or leaves the event place, the remaining entity is not able to participate in the operation of the network for various reasons. By doing so, it is necessary to be able to continue the network service.
In such a case, SIONet releases the shared link established between SI and SW, and re-establishes the shared link. The operation will be described with reference to FIG.
[0070]
In FIG. 17, the first numbers (1) and (2) in the shared link establishment request indicate the order of those requests. That is, in order of the shared link establishment request, first, the shared link establishment request is made from the entity 2 to the entity 1. Next, a request for establishment of a shared link is made from entity 3 to entity 2. Finally, a shared link establishment request is made from entity 4 to entity 2. Here, “Each entity can make a shared link establishment request at most once in the same event place, but establishes a shared link based on a link topology that can accept an unlimited number of establishment requests. Propose a link establishment method. This guarantees that no loop will occur between entities linked by a shared link. That is, by using this method, an open link topology can be easily realized only by link re-establishment between adjacent entities.
[0071]
If the establishment request is successful in the above-described order, a shared link is established between each SI-SW by the above-described procedure. When the shared link is established, the entity control unit of each entity stores the entity that has made the establishment request and the entity that has accepted the establishment to itself. For example, the entity 2 holds a list of the entity 1 that has requested establishment and the entities 3 and 4 that have accepted the establishment of the entity 2.
In this situation, for example, when the entity 2 is moved out or removed, a shared link release request is issued to its own SI-SW 2 to release the shared link. Thereafter, each entity establishes a new shared link. The operation will be described below.
[0072]
(1) When the entity 2 leaves, the entity control unit of the entity 2 notifies the one-hop entity (entity 1, entity 3, entity 4) that the shared link is released. This can be done by sending an event with the TTL value of the event set to 1. At this time, for the entity (entity 3 and entity 4) that has accepted the establishment of the shared link to itself, the entity 1 that has made the establishment request is used as the establishment request destination of the new shared link on behalf of itself. teach. If there is no entity that has made an establishment request, an arbitrary entity is selected from the establishment requesting entities (one hop ahead) to itself, and this is used for the shared link on behalf of itself. The establishment request destination.
[0073]
(2) The entity control unit of entity 2 uses the shared link (SL 2,1 , SL 2,3 , SL 2,4 ) 2,1 , SI-R 2,3 , SI-R 2,4 (Not shown). SI-R 2,1 , SI-R 2,3 , SI-R 2,4 Is the SI-R of entity 2, and as described above, shared link SL for entity 1, entity 3, and entity 4 2,1 , SL 2,3 , SL 2,4 Is established. These SI-Rs use this as a trigger to release the session of entity 2 to SI-SW2.
[0074]
(3) The entity control unit of entity 1 is SI-R 1,2 (Not shown) Shared Link SL 1,2 Instruct to cancel. SI-R 1,2 Shared link SL 1,2 Is released. The entity 1 waits for establishment requests from the entities 3 and 4.
(4) Similar to entity 1, entity 3 and entity 4 share a shared link (SL) established for SI-SW 2 (SI-SW 2 of entity 2). 3,2 , SL 4,2 ) Are all released, a shared link establishment request is made to the new entity (entity 1) instructed as the shared link establishment request destination from the entity 2, and the shared link is reestablished. That is, as described above, each entity control unit sends an SI factory to the NE factory. 3,1 , SI-R 4,1 To generate the SI-R 3,1 , SI-R 4,1 Shared link SL 3,1 , SL 4,1 Establish.
[0075]
As described above, the shared link establishment process and re-establishment process are performed only between adjacent entities and do not affect other entities. That is, there is no need to reconstruct links for all entities.
[0076]
The shared link is not only requested to release the shared link by following proper procedures such as moving out or deinstalling the entity, but also due to an entity failure, power failure, session (physical communication path) failure, etc. There are cases where you must re-establish. However, in such cases, it may not be possible to teach alternative entities that are needed when reestablishing a shared link. In SIONet, in order to cope with such a situation, each entity transmits an event of n hops (n is an arbitrary natural number) to grasp an alternative establishment request destination entity. In SIONet, finer hop control is possible by using TTL values and hop attributes. Examples of hop attributes include:
[0077]
(1) Only the entity requesting shared link establishment is targeted for hopping.
(2) Only the entity requesting the establishment of a shared link is a hop target.
(3) All entities are targeted for hopping.
[0078]
An example of an event flow when the hop attribute of (1) is designated is indicated by a broken line in FIG. In FIG. 18, (i / j) is shared link establishment information stored in each entity. i indicates the entity to which the entity has made a shared link establishment request, while j indicates the entity that has accepted the shared link establishment request. For example, (2/5, 6) of the entity 3 indicates that the entity 3 makes an establishment request to the entity 2 and accepts the establishment requests from the entities 5 and 6. Each entity holds shared link establishment information, so that, for example, when the entity 3 makes a further shared link establishment request to another entity, the request can be rejected as an error. This guarantees the consistency of the open link topology described above. In this situation, entity 6 has 3 hops and sends an event having the above-mentioned hop attribute (1), so that it becomes possible to know the existence of entity 1 and entity 2, which are alternatives when entity 3 fails. Become an entity.
[0079]
The hop attribute described above is used not only for searching for an alternative entity at the time of failure, but also for searching for an entity that can accept establishment of a shared link, and for searching for a top entity (nobody establishes a shared link). It is valid. In SIONet, only the top entity can establish a federation (corresponding to a shared link between event places) for other event places.
[0080]
<Purpose of online increase / decrease>
The purpose of the entity increase / decrease in SIONet is mainly divided into the following two.
(1) From the viewpoint of improving the total processing capacity of the event place, the number of entities in the event place is increased, and the event filtering process is load-balanced.
From the opposite point of view, the entity is reduced. This is mainly used in the operation of hybrid P2P and backbone P2P networks.
(2) A flexible and global P2P network is built from the bottom up by flexibly establishing a shared link for dynamically generated entities. This is mainly used in the operation of a pure P2P network.
[0081]
Note that a hybrid P2P network is a network that is configured by, for example, an operator such as a network provider generating an event place in advance on a host or the like, and a service entity such as a personal terminal connecting to the event place through a session. . The pure P2P network is a network configured by connecting entities that are individual transmission / reception terminals via shared links, and among these networks, the smallest unit for sharing an event is an event place. The backbone P2P network is a connection form between networks, for example, a network in a state where pure P2P networks in a plurality of regions are connected via a hybrid P2P network.
[0082]
<Type of increase / decrease>
SION provides several types of increase / decrease configurations, but here, typical configurations shown in FIGS. 19 and 20 will be described.
(1) Combining and separating event places
As shown in FIG. 19A, a plurality of event places can be synthesized. Here, composition refers to collecting entities belonging to a plurality of event places as members in one event place. As a typical example, service integration (information sharing) based on a business alliance between different service operators can be considered.
[0083]
This is because a request for establishing a shared link is issued to any entity belonging to the event place or an entity in the event place where the request is made, by issuing a composition request. As a result, a shared link is established between SI and SW, and the combination of both is realized. The request source and the request destination of synthesis may be either an entity or an event place. On the other hand, in the case of division, the established shared link is released and separated into event places.
[0084]
(2) Participating in and leaving the event place
As shown in FIG. 19B, an SI-SW is generated in the request source entity by making a Join request to the entity in the event place or the event place. Then, by issuing a shared link establishment request to the request destination entity, the shared link is established between the SI and SW, and can participate in the event place.
When the entity leaves the event place, the shared link between the entities is released, the shared link is reconstructed, and the entity leaves the event place as described above. At this time, the state of the entity that has moved out transitions to the suspended state.
[0085]
By requesting the entity to establish a shared link from the event place side, the entity can be taken into the event place. This is called absorption. The opposite is called splitting.
(3) Increase / decrease of entities (SI-SW)
As shown in FIG. 20 (c), when an entity expansion request is made to an entity in an event place or an event place, an SI-SW is newly generated for the specified entity, and an existing SI-SW is generated. A shared link is established with the SW. On the other hand, when an entity reduction request is made to the event place, a shared link release request is issued to the specified entity, and after the shared link between SI and SW is released, the shared link is reestablished. , The entity is deleted. At this time, the state of the entity transitions to Non-Existent.
[0086]
(4) Federation between event places
As shown in Fig. 20 (d), a SI-GW that transfers events between event places is dynamically generated by making a federation (cooperation) request to the entities in the event place or to the event place. Both event places cooperate through the session. Note that the federation request source and request destination may be either an entity or an event place.
[0087]
<Entity advertisement>
With reference to FIGS. 21 and 22, the advertisement (publication) of an entity will be described. There are the following two aspects to entity advertisement in SIONet.
Viewpoint 1: Entrance advertisement
Viewpoint 2: Entity property advertisement
Hereinafter, each viewpoint will be described.
Viewpoint 1: Entrance advertisement
The base event place is an event place serving as a base (starting point) for searching for (discovering) an optimal event place based on an entity. In other words, the base event place is the entrance to SIONet. Therefore, entities participating in the base event place can make the SIONet entrance public. Here, opening the entrance means advertising the entry point and the global entity name of the entity that is the shared link establishment request destination. This public information is found by a search using a broadcast described later.
[0088]
Viewpoint 2: Entity property advertisement
In any entity group connected by a shared link (all event places including the base event place), each entity can advertise its entity properties. This corresponds to the propagation of the event path described above. This public information is discovered by sending out a discovery event described later.
[0089]
The flow from entity disclosure and search to entity group formation will be described below. In the following, base entity, entity 1, entity 2, entity 3, entity 4, entity 5, and entity 6 belong to the base event place, and entity 3, entity 11, entity 12, and entity 13 belong to event place α. It will be described as belonging.
[0090]
(1) Install SIONet software on the host as shown in FIG. The state of the entity at this point is “Non-Existent” as described above. For convenience of explanation, this entity is assumed to be entity Y.
(2) By executing the SIONet software, the entity Y transitions from the “Non-Existent” state to the “Suspend” state. An entity in this state has not yet been recognized by SIONet.
[0091]
{Circle around (3)} The entity Y in the “suspend” state searches for the entrance (entry point and global entity name) of other entities belonging to the base event place in order to participate in the network as a component of SIONet.
Specifically, a nearby entity is searched from among entities participating in the base event place by broadcasting. The broadcast method depends on the implementation. For example, when implemented in a wireless network, all entities within the wireless reach are targeted for search. On the other hand, when implemented in an IP network, IP broadcast or IP multicast is performed. FIG. 21 shows that the entity 1 (entry point of the entity 1 and the global entity name) is found by the search by broadcast. If a nearby entity cannot be found by broadcasting, a well-known entity can be used. Well-known entities are called base entities. Note that the base entity can exist in all event places including the base event place.
[0092]
{Circle around (4)} The entity Y makes a join request to the base event place for the discovered entity 1. That is, the entity Y makes a Join request to the entry point of the entity 1 using the global entity name of the entity 1 as a parameter. The entity 1 that has received the join request from the entity Y accepts the join request only when the state transition of the entity 1 is “active” and the entrance and the entity property are in the public mode. The entity Y cannot issue a Join request exceeding the maximum number of Joins. The maximum number of Joins can be set by the owner of the entity Y or the like on the control panel of the entity Y. When the entity 1 receives the join request of the entity Y, a shared link is established between the entity Y and the SI-SW of the entity 1 by the same operation as described above. Thereby, the entity Y is self-organized as a network component in the base event place. At this time, the entity Y transitions from the “suspend” state to the “active” state.
[0093]
Entity Y joined to the base event place can open the entrance. You can also advertise entity properties.
Entity properties include global entity name (and entry point), nickname, group name, alive (only assertion exists, entry point and global entity name as shared link establishment information are not disclosed, entity is not disclosed (Even if it is a mode, there are disclosure targets), descriptions (descriptions of entities), attributes, etc. The attributes include plug-in SE information, event path multiplicity, event place information, and the like. The entity property description language includes XML.
[0094]
In FIG. 21, for example, the entity control unit of the entity 3 can publish the event place α in which the entity 3 participates simultaneously as an attribute of the entity property. Furthermore, the entity control unit can disclose not only the event place that is currently joined but also the event place information of the event place that has been joined in the past. This event place information is, for example, a description of the event place (description of the event place, explanation information), or the global entity name of the entity (semantic information switch) that established the shared link when participating in the event place ( Event place name + entity name, connection establishment information), entry point (entry point information), and the like. The number of entities that can hold the event place information joined in the past is arbitrary. For example, the entity owner or the like can be set by the control panel. The entity that has obtained the public event place information presents the event place information to the entity owner by outputting the event place information through a control panel or the like. Thereby, the entity owner can recognize the existence of another event place.
In SIONet, there is no function to centrally manage event place information such as where and what event place and what service is provided in that event place, so if you want to get event place information, Event place information needs to be obtained from entity properties of other entities. By making public the event place information that participated in the past as well as the event place that you are currently participating in, the chances of acquiring the event place information will increase, and the chances of participating in the event place that provides the service you want will increase. .
[0095]
When the entrance of the entity Y is released, these entity properties are registered as filters in the semantic information switch in the entity, whereby the entity properties are propagated to other entities based on the shared link, and an event path is established. Basically, the event path establishment request is propagated to all the entities in the event place, but the propagation range of the event path establishment request can be limited by the TTL value. The global entity name is used as an identifier during multi-hop type unicast communication, the group name is used as an identifier during multi-hop type multicast communication, and the attribute is used as an identifier during multicast communication with a multi-hop type attribute. For example, as a typical example of multi-hop unicast communication, there is a reply notification from an event reception entity to an event transmission source entity.
[0096]
In other words, the global entity name is multi-hop unicast communication, which is a communication method for transmitting an n-hop event from the SI-SW of the entity specified by the global entity name. Multi-hop multicast communication is a communication method for transmitting n-hop events to SI-SWs of entities belonging to a group specified by a group name. Multi-hop attributed multicast communication is a communication method for transmitting an n-hop event to an SI-SW of an entity having the same attribute as that of itself. Multi-hop broadcast communication is a communication method for transmitting an n-hop event to SI-SW of an arbitrary entity.
[0097]
(5) In FIG. 22, the entity Y who participated in the base event place releases “entity properties that meet his / her needs” by sending out a discovery event to search for the “event place where he / she wants to participate”. Search for the entity This discovery event is an event used for control of SIONet, and is equivalent to an event transmitted by SE. A discovery event is an event for igniting an NE, and a matching condition with an entity property is set in the semantic information portion of the event. In other words, adding a new function in SIONet means defining a new vocabulary concept and vocabulary (not adding a mechanism, but adding a chain reaction condition). As a result, various functions can be added only by a single mechanism (chain reaction).
[0098]
Here, it is assumed that the entity 3 is found as a result of the search. As described above, the entity 3 participates in the event place α simultaneously with the base event place. By discovering the entity 3, the entity Y can know the existence of the event place α.
(6) The entity Y issues a Join request to the event place α to the entity 3 and participates in the event place α. As described above, the entity 3 accepts a Join request (shared link establishment request) when its state transition is “active” and in the public mode.
[0099]
(7) Furthermore, the entity Y can send an event for the same search at the event place α. Thereby, it is possible to find a new entity that meets its own needs. For example, it is assumed here that the entity 12 has been discovered. That is, entity Y means that entity 12 that could not be found in the base event place can be found via entity 3. By repeating such an operation, it is possible to gradually reach an event place that meets its needs.
[0100]
The advertisement method shown here has the following effects.
(1) Since there is no broker (management unit) that manages public information of entities, it is possible to construct a self-organizing network that is strong in fault tolerance at low cost. In addition, it is not realistic to manage a huge number of public information (entry points and entity properties) with a broker.
(2) Since the event place suitable for the entity can be narrowed down to the formula to be determined, a desired event place can be efficiently searched. For example, even if the spillover range of the chain reaction (the hop number of the discovery event and the spillover range of the event path setting request for the entity property) is limited by the TTL value, as described above, the entity 12 via the entity 3 As a result, another event place to which the entity 12 belongs can be found. It should be noted that network traffic (event transfer count, event path setup request transfer count) can be reduced by limiting the spread range of the chain reaction.
[0101]
Note that entities that simply receive information from other entities without providing information (for example, without disclosing entity properties) will be forced to release the shared link as a penalty, As long as you are not satisfied, you can prevent them from participating in the event place again.
[0102]
<SE sharing method (automatic distribution)>
In the following, the mechanism of the SE sharing method will be described by taking SE (game application program) sharing in the game event place as an example.
(1) The owner of the entity 2 who is an operator of the game event place gives an event place name via the control panel of the entity 2. It is assumed that the event place name assigned here is “game”.
[0103]
(2) The entity control unit of entity 2 gives the global entity name “game + entity 2” to the SI-SW generated by the NE factory, as described above. Thereby, an event place is generated. At this time, the entity 2 that is the creator of the game event place automatically participates in the event place when the event place is generated.
(3) The owner of the entity 2 instructs the control panel of the entity 2 to plug in the game application program (SE). At this time, the executable file name of the application to be plugged in and the presence or absence of SE sharing are given as parameters.
[0104]
(4) The control panel of entity 2 notifies the entity control unit of this fact.
(5) The entity control unit of entity 2 stores the name of the executable file to be plugged in, and starts the application (SE) using the given executable file name, and between SI-SW and the application as described above Establish a session on That is, the plug-in in SIONet means establishing a session between the application and SI-SW.
[0105]
(6) The entity control unit of entity 2 advertises (publishes) the entity property of entity 2. Examples of the entity property public form of entity 2 include the following.
Entity 2 participates in the base event place and publishes the entity properties of entity 2 in the base event place.
Entity 2 discovers and participates in an event place that is closely related to the game event place by performing an expression search, and publishes the entity property of entity 2 in the event place.
-Entity 2 is a base entity. That is, the entity properties (entry point and global entity name) of entity 2 are made known.
[0106]
(7) The entity 1 that knows the existence of the entity 2 requests the entity 2 to participate in the game event place.
(8) If this request is approved, entity 1 requests entity 2 to establish a shared link. Then, a shared link is established between entity 1 and entity 2 as described above.
(9) When the shared link is established, the shared link establishment request destination (entity 2) returns information necessary for transmission / reception of the event in the event place to the establishment request source (entity 1). Specifically, for example, an event place name (global entity name), whether or not the event place that participated is a base event place, an event transfer method (routing method) in the event place, a description of the event place, a plug-in SE information (when there is SE sharing) and the like.
[0107]
Specifically, the SE information returned to the shared link establishment request source when sharing the SE share is, for example, an execution file name of the application to be plugged in or a file of the application.
(10) The entity control unit of the entity 1 that has received the file activates the application using the given executable file name as described above, and establishes a session between the SI-SW in the entity 1 and the application. Establish. As a result, the game application program is plugged into the entity 1 as SE.
[0108]
In other words, participation in an event place means that an entity group connected by a shared link is formed, and a participant shares a plug-in-completed application program. As a result, an entity that is a member in the event place can automatically use the plugged-in application simply by participating in the event place. Note that when the entity 1 leaves the game event place, the plugged-in game application program is plugged out. At that time, the entity 1 can continue to hold the received file, or the file may be deleted at the time of plug-out.
[0109]
The operation described above is application sharing in a pure P2P network environment. Therefore, the distribution of the application program is performed only between the two parties, that is, the shared link establishment destination entity and the establishment source entity, and thus does not affect other entities that are already coupled by the shared link. That is, since the processing is localized between the two parties for file transfer, scalable SE sharing can be achieved.
[0110]
<Business model>
Here, an embodiment in which the above-described SIONet is provided as a service will be described.
(1) Client server model
This is a form in which an event place is operated only by a predetermined entity. That is, only a predetermined entity can participate (Join) in the event place, and an entity permitted to participate constitutes an entity group by establishing a shared link between the entities. On the other hand, the other entities establish a session with the entity group, and send and receive events via the session. That is, an event place (a predetermined group of entities) is a server, and other entities correspond to clients. In this business model, each entity that is a member of an entity group behaves as an autonomous distributed computer, and when any entity falls into a failure, the remaining entities are self-organized and continue to operate the event place. In order to improve the processing capacity of the server, a new entity may be added to the event place. Therefore, it is possible to realize a scalable server that is strong in fault tolerance, inexpensive, and scalable as compared with the conventional server realization method.
[0111]
(2) Hybrid model
For example, an entity that is an operator of a game event place generates a game event place and becomes a base entity in the event place. On the other hand, an entity positioned as a user of a game event place enjoys the service at the event place by participating in the event place. In the conventional client server model, new capital investment (CPU power, storage, communication bandwidth, etc.) was required in proportion to the increase in the number of users, but this business model is based on the fact that users participate in the event place. In order to provide the user's own entity for service operation, the event place operator does not need new capital investment. Therefore, an inexpensive and scalable P2P service environment can be constructed. Note that the base entity can authenticate and charge a user (entity) participating in the event place. In addition, the base entity sends out a discovery event to discover an entity that can establish a shared link (alternate entity) from the entity group, and notifies the entity that wants to participate to the discovered entity. It is also possible to establish a shared link between the two.
[0112]
(3) Pure model
This is a business model in which all entities can freely participate (leave) in the event place.
As mentioned above, SIONet can realize various business models with a common mechanism by reducing to operation / placement problem. Therefore, it has a great effect on development man-hours, scale, debugging efficiency, ease of maintenance and the like.
[0113]
As described above, an entity in the “suspended” state cannot disclose an entrance or an entity property. An entity in the “suspend” state transitions to an “active” state by joining an arbitrary event place. Only entities in the “active” state can expose entrances and entity properties. Also, only the entities that are joined to the base event place can open the entrance. An entity can actually publish an entrance or an entity property when satisfying “publication is instructed by the control panel” and “the number of established sessions (shared link) for the entity does not exceed the default value”. For example, even if the owner of an entity instructs the disclosure using the control panel, if the shared link is established beyond the default value, the private mode is automatically set. The default value can be set on the control panel. For example, the entity owner can set the default value based on the ability of the entity.
[0114]
The network entity, network entity factory, entity control unit, control panel, service entity, semantic information switch, semantic information router, semantic information gateway may be realized by dedicated hardware, It may be configured by a CPU (Central Processing Unit), and the function may be realized by loading a program for realizing the function into a memory and executing it.
[0115]
In addition, a program for realizing the functions of a network entity, a network entity factory, an entity control unit, a control panel, a service entity, a semantic information switch, a semantic information router, and a semantic information gateway is recorded on a computer-readable recording medium, You may implement | achieve by making a computer system read the program recorded on this recording medium, and executing it. Here, the “computer system” includes an OS and hardware such as peripheral devices.
Further, the “computer system” includes a homepage providing environment (or display environment) if a WWW system is used.
[0116]
The “computer-readable recording medium” refers to a storage device such as a flexible medium, a magneto-optical disk, a portable medium such as a ROM and a CD-ROM, and a hard disk incorporated in a computer system. Furthermore, the “computer-readable recording medium” dynamically holds a program for a short time like a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line. In this case, a volatile memory in a computer system serving as a server or a client in that case, and a program that holds a program for a certain period of time are included. The program may be a program for realizing a part of the functions described above, and may be a program capable of realizing the functions described above in combination with a program already recorded in a computer system.
[0117]
[Embodiment of the Invention]
Hereinafter, an embodiment of the present invention will be described.
Self-organization operations such as synthesis, association, participation, and absorption of event places in SIONet, exploring formulas, chain reaction ripple range control (TTL value setting, event path setting request ripple range), high event path multiplicity By automating the function items that the entity owner (user) has instructed via the control panel, such as re-establishing the shared link to the entity (searching for alternative entities), the panelless (user input from the control panel Is unnecessary). In addition, the entity performs automation control such as addition, withdrawal, migration, etc. of the entity according to the load status and topology, automatic collection of statistical information, automatic collection of popular information and popular information.
In addition, a user agent (UA) capable of grasping user preferences and situations as a user agent and sharing user preferences among different services, a content agent (CA) acting as a content provider agent, and service provision A multi-agent, such as a service agent (SA), which is an agent of the service provider, is plugged into the entity as a service entity. These dynamically determine the behavior of the entity based on the user's filter registration history, event transmission history, service history used, and the like. This is a technology for grasping, negotiating and determining preferences, technology, thinking, behavior, values, sensibilities, and emotions. It also realizes automatic community construction and community collaboration between communities based on entity policies. In addition, free vocabulary communication, automatic ontology conversion in SI-GW, complete automation of entities to eliminate the need for instructions from the owner (panelless), intelligent discovery, etc.
[0118]
Here, as an example of automation control, we propose a method for automating formula search. FIG. 1 is a diagram for explaining automatic control for formula search according to an embodiment of the present invention. In the expression search, the event place information to which the entities belong simultaneously can be disclosed to the appropriate event place, that is, the dynamic construction of an organic and efficient expression search network is determined. This is the main factor that determines the search accuracy of the expression search. In SIONet, there are the following event opportunity information disclosure opportunities by entities.
[0119]
(1) When an entity wants to actively introduce its own event place or event place to which it belongs as a member, it becomes a member of the referral event place, and the generated event place (created by itself) Publish event place) property information to other event places. For example, in FIG. 1, the entity 4 that is a member of the event place D simultaneously becomes a member of the event place C, so that the introduction information of the event place D is disclosed to the event place C as a property. Yes (▲ 1 ▼). In general, a similar event place such as an event place with a high event path multiplicity, an event place with a high trust, or an event place with a high incentive is selected as an introduction destination event place.
(2) For example, an entity that desires information on both “baseball” and “movie” belongs to two event places “baseball event place” and “movie event place” simultaneously. At this time, the property information of “movie event place” is disclosed in “baseball event place” as event place information to which the user belongs at the same time. On the other hand, the property information of “baseball event place” is made public in “movie event place”.
(3) As described above, as a result of the expression search based on the event place through the entities belonging to a plurality of event places at the same time, the entity that has found the desired event place contributes as a volunteer to the expression search determined by other entities that follow. In order to do so, it is obliged to establish a formula search path. For example, the entity 1 belonging to the event place A discovers the event place D via the event place B and the event place C by performing property discovery, and stays there ((2)). . At this time, the entity 1 publishes the property information of the event place D to the event place by belonging to an event place arbitrarily selected from its own passing event place. This is intended to prevent, for example, the loss of an expression search path that occurs when the entities 2 belonging to the event places A, B, and E retreat, and to establish a shortcut route for the event place D. As a typical example of the latter, the entity 1 that newly becomes a member of the event place D causes the entity 1's virtual entity to participate in the search path event place such as the event place A or the event place B, The entity publishes the property information of event place D. As a result, the event place D can be found directly from the event place A even without going through the event place C or when the entity 3 leaves. Note that the temporary entity refers to an entity that simultaneously belongs to an event place other than the event place that is explicitly participating by the user operating (inputting) the entity.
In opportunity (1) and (3), lifetime management of “event place information belonging simultaneously” published as a property is performed. For example, contribution points are paid out to the entity 4 belonging to the event place C who introduced the event place D to the entity 1 ((3)). Then, as long as the contribution point does not fall below the threshold value (lower limit value), the entity 4 continues to disclose the event place information at the event place C. If the contribution point falls below the threshold, the next publication destination is selected from event places that the entity 4 has passed in the past ((4)). This concept is also applied to the entity 1 that discloses the event place information of the event place D in the event place A. In this way, this function automatically determines the event destination place where the simultaneous event place information is disclosed, which is an important factor when performing a formula search based on it, and by disclosing information at the event place, Efficient expression search is realized.
[0120]
If the contribution point exceeds the threshold value (upper limit value), the entity 4 adds an event place as a disclosure destination ((5)). In addition, as described in (4), when the contribution point falls below the threshold value, and the next publication destination, for example, event place B, is selected from the event places that the entity 4 has passed in the past, the event place C is selected. Leave, participate in Event Place B, and publish the properties ((6)).
On the other hand, in the search path (passage path) of the entity 1, the entity's alternation (temporary body) publishes the event place D (7).
[0121]
In order to achieve the purpose of formula search, it is a means of attracting advertisements to the community after the transition according to the history information of the members who transition the community and the history information, and the means by which multiple advertisements are naturally selected by evaluating the effect of the advertisement Thus, it is possible to automate and search part or all of the processes leading to the discovery of communities based on user preferences and the discovery of communities with necessary services. Note that a community is a group of people or things that share the hobbies, interests, interests, and the like, or that combine services to realize services and functions, and are here an event place. This is different from the prior art in that the present invention uses the history information of members who make transitions in the community, and the call-in advertisement to the community and the evaluation to make the advertisement natural.
[0122]
FIG. 25 shows a block diagram of an entity according to one embodiment.
The user interface unit accepts a search start instruction from the main screen for searching by the user, and activates the execution control unit.
The execution control unit recursively repeats the instruction for the likes search process and the process of moving to the community advertised by the found likes group. As a routine for performing these processes, the control unit calls the preference search unit and the community evaluation unit.
The similarity search unit treats the search keyword input by the user as desired, and the determination of desired match is made by character string comparison (partial match search) with respect to the explanatory text of the community in which the entity participates, or the user's desire is analyzed The determination can be made by finding an entity that matches (or resembles) the desired information.
The community evaluation unit first makes a community introduction request to the entity group discovered by the preference search unit. Next, the community introduced by those entities is evaluated (scored). At this time, evaluation can be performed by using only the community evaluation point returned from the introduction source entity as the evaluation value of the community.
[0123]
On the other hand, the advertisement control unit holds a community evaluation table in order to advertise the community in which it participates and to evaluate the community in which it participates. The evaluation values in this table are based on the evaluation by the community evaluation unit (community evaluation points) at the time of introduction, and user satisfaction at the introduction destination from the entity that introduced the community in the past (for example, a score based on the stay time) ) Is always changed by receiving (or not receiving) feedback from the feedback control unit. When there are no more communities to be introduced in the community evaluation table, the current advertisement is interrupted, moved to another community, and the advertisement is started again.
[0124]
The feedback control unit notifies community evaluation based on user satisfaction. This control unit can be called from the session management unit after participating in a community by automatic search, and can feed back the user satisfaction (for example, a score based on the staying time) for the referral entity of the community to the advertisement control unit It is.
Therefore, it is possible to automate and search a part or all of the process leading to the discovery of the community based on the user's preference and the discovery of the community having the necessary service, which is the object of the present invention.
[0125]
In addition, the session management unit manages the session with the semantic information network and accepts status update notifications and inquiries from each functional block, so that the latest session-related management and navigation information, etc. It is possible to hold and provide information.
The event analysis unit receives an event from the semantic information network and dispatches the event, extracts a request ID from the received event, and calls a registered listener. Also, a session forced deletion notification is received by the semantic information network.
The semantic information network (SIONet) interface (semantic information network access means) provides basic operations provided by the semantic information network, as well as routine operations (session establishment, participation, advertisement start, etc.) that combine them. It has a role of hiding the function block. Therefore, to realize a function on the semantic information network that can automate and search part or all of the processes leading to the discovery of communities based on user preferences and the discovery of communities with necessary services, which is the object of the present invention. Is possible.
[0126]
FIG. 26 is an example of community search operation according to one embodiment.
In FIG. 26, the entity: M starts searching from above the community: A. It is assumed that all entities other than the entity performing the search: M advertise simultaneous EP (event place) information (community information). In addition, there are other entities that make advertisements in the community: A, and in the entity: N and the entity: O, the search keyword and the description set in the self match and fire. Thereby, entity: N and entity: O introduce community: B and community: C that respectively match the search keyword. Entity: M is a candidate for participation if the score of the introduced community is higher than the community evaluation threshold. In this case, the entity: M does not leave because it participates according to the intention of the user. Further, the entity: M performs “participation for search” to the community: B and the community: C introduced as candidates for participation, and continues the search.
[0127]
In the community: B, the search keyword in the entity: N and the entity: Q matches the description set in itself, and fires. Thereby, the entity: N and the entity: Q introduce the community: A and the community: E that respectively match the search keyword. Here, if the evaluation score of the introduced community is higher than the community evaluation threshold, the entity: M is a candidate for participation, but the community: A is excluded because it has already passed. Further, “participation for search” is performed on the community: E, and the user leaves the community: B.
[0128]
On the other hand, in the community: C, the entity: O, the entity: R, and the entity: S are fired, and the community: A, community: F, and community: G that match the search keyword are introduced. Entity: M is a candidate for participation if the evaluation score of the introduced community is higher than the community evaluation threshold, but community: A is excluded because it has already passed. Moreover, since community: F and community: G are less than the evaluation threshold of entity: M, they are not considered as participation candidates. At this time, “participation for search” is to move to the community of the highest evaluation point among evaluation points below the evaluation threshold. Here, “participation for search” is performed to the community: G, and the search is performed. to continue.
By repeating this process, participation candidates are searched, recorded, and presented to the user as candidates until the maximum number of participation candidates or the automatic search timeout value is reached.
At the start of the search, these tasks are carried out simultaneously from all participating communities.
[0129]
Table 1 is a tune-up parameter table that is a list of tuning parameters held by an entity, and specifies various conditions (parameter items, their valid values, default values, etc.) used for community search, community evaluation, etc. Yes. The setting values of these tuning parameters can be defined by an external file, but if no external file exists, default values are used. The item number is a value used for convenience to specify a record. The explanation column shows the usage and usage of each parameter item.
[Table 1]
Figure 0004028429
[0130]
FIG. 27 is a diagram illustrating an outline flow of automatic community search according to an embodiment.
First, the user inputs a search keyword (search information) on the main screen for performing a search displayed by the search source entity (step S100), and clicks a search start button (step S110). Thereby, the search source entity performs a participation candidate community search process to be described later (step S120). In the case of the first time, this participation candidate community search process is performed until all the communities in which the participant participates at the time of starting the search and until the maximum number of participation candidates or the automatic search timeout value is satisfied.
[0131]
If there is a participation candidate community as a result of the community search processing (step S130 yes), the search source entity displays the participation candidate community and its evaluation by the control panel (step S140). Note that the number of community participation that the user can select is limited and displayed by the setting value of the maximum number of event place participation in SIONet.
On the other hand, if there is no participation candidate as a result of the community search process (step S130no), the fact that the participation candidate could not be found as a result of the search is displayed in the entity dialog (step S150).
[0132]
FIG. 28 is a diagram showing an outline flow of a participation candidate community search process according to an embodiment.
First, the search source entity adds the community to which it currently belongs to the passage history (step S200). At this time, if there is a passage history that has been taken over, the current community is added to the history, but if there is no passage history that has been taken over, a passage history is newly added.
Subsequently, the search source entity executes a search process for likes (entities having the same or similar attributes) (step S210). The favorite search is performed by comparing the input search keyword and the character string of the community description published by the entity. This is performed until the maximum number of likes or the operation multiple response timeout value is met.
[0133]
If the likes can be found (step S220yes), the search source entity performs the community introduction request process for the found number of likes (step S230). This is a process for introducing the community to the found likes, thereby obtaining an evaluation (community assessment) for the search keyword of the community in which the likes are participating. Then, it is determined whether there is a next search candidate community by determining a community as a participation candidate based on the community evaluation value and notifying the caller of this process (step S240). Note that this next search candidate community covers all communities whose community evaluation exceeds the community evaluation threshold. Or when all do not exceed a community evaluation threshold value, the thing with the largest community evaluation is made into object among them. However, when all the acquired evaluations are “0”, there is no community for the next search candidate.
If there is a next search candidate community, the search source entity subsequently determines whether or not to continue the process depending on whether the maximum number of participation candidates has been reached or the automatic search timer value has been satisfied (step S250). When the process is continued, the next search candidate community is joined by the number of next search candidates (step S260). Then, the “participation candidate community search process” is performed for the participating communities by the number of next search candidates (step S270). Then, if the community to which the search currently belongs is a community that has participated in the search, the search source entity leaves the community (step S280).
If no preference is found in step S220, if there is no self-search candidate community in step S240, or if the process is not continued in step S250, the process leaves the community in step S280.
[0134]
29 to 33 are detailed sequence diagrams between functional units of the community automatic search according to the embodiment.
In FIG. 29, the user double-clicks a favorite search icon displayed on the entity control panel (step S300). Thereby, the event analysis unit receives a screen display event for a favorite search (step S301), and instructs the user interface unit to display a screen for search (step S302). The user interface unit returns an acceptance response to the screen display for search (step S303) and displays the main screen.
[0135]
Subsequently, the user sets search information (search keyword) on the main screen, and requests a start of search by clicking a START (start of search) button (step S304). Then, the user interface unit obtains a list of event place EP information to which the user interface unit belongs (steps S305 and S306). Subsequently, the user interface unit notifies the session management unit of the search start (step S307). The session management unit initializes the participation candidate EP list and returns an acceptance response (step S308). Upon receiving the acceptance response, the user interface unit starts measuring the search time, activates threads for the number of EPs to which the user interface unit belongs, and executes search processing according to the event place (step S309).
[0136]
In the search process, the user interface unit activates the execution control unit, and passes the search source EP-ID and the search keyword (step S310). As a result, the execution control unit executes a preference search process (step S311).
[0137]
In the like search process shown in FIG. 30, the execution control unit passes the search source EP-ID and the search keyword to the like search unit, and requests a like search (step S320). When the favorite search unit delivers a search source EP-ID and a search keyword to the SIONet interface unit and instructs the favorite search (step S321), a list of global entity names (Global Entity Names) of the favorite entities is returned as a result of the search. (Step S322). The execution control unit receives a list of global entity names from the preference search unit (step S323). If the list is Null, that is, if no preference is found, a search result display process described later is performed (step S324). . On the other hand, when the list of global entity names is not Null, that is, when a similar entity is found, a community introduction request process shown below is executed (step S325).
[0138]
In the community introduction request process shown in FIG. 31, the execution control unit passes a search source EP-ID, a list of introduction request destination global entity names and a search keyword to the community evaluation unit, and requests community introduction (step S330). The community evaluation unit delivers a search source EP-ID, a list of introduction request destination global entity names and a search keyword to the SIONet interface unit, and issues a community introduction request instruction (step S331). A list of sets of evaluation points is returned (step S332). The community evaluation unit delivers the introduction source global entity name, the search keyword, the list of participation candidate Well Known points and the community evaluation point set, and the passage history to the session management unit, and registers the participation candidate (step S333). ). When the session management unit registers participation candidates and the community evaluation unit receives an acceptance response (step S334), it requests the user interface unit to determine whether or not to continue the search (step S335). The user interface unit acquires the number of participation candidate communities from the session management unit (steps S336 and S337). When (total number of participating candidate communities <threshold) and (elapsed search time <threshold), “true (continue processing)”, (total number of participating candidate communities ≧ threshold), or (search If (elapsed time ≧ threshold), a determination result of “false (do not continue processing)” is returned to the community evaluation unit (step S338). When the community evaluation unit receives “true (continues the processing)”, the community evaluation unit transmits a list of sets of the well-known well known points and community evaluation points to the execution control unit (step S339). The community to be searched next is all those whose evaluation exceeds the threshold value, or the evaluation score is the maximum when there is no evaluation exceeding the threshold value. Also, if the immediately preceding search continuability determination is “false (do not continue processing)”, “null” is returned.
[0139]
When the execution control unit receives a list of well-known points and community evaluation point sets of the next search destination from the community evaluation unit, if the depth of spelling is other than 1, that is, if it is participation for search In step S340, the search source EP-ID is transferred to the SIONet interface unit, and an exit instruction is transmitted. When the SIONet interface unit receives the leaving instruction, it returns an acceptance response to leave the community (step S341).
[0140]
Then, in FIG. 32, when the list of the next well-known point of the well-known search destination and community evaluation point received from the community control unit is “null”, search result display processing described later is performed (step S350). ). If it is other than “null”, threads corresponding to the number of Well Known points are activated, and a movement process for participating in the introduced community is executed (step S351).
[0141]
In the movement process, the execution control unit delivers a Well Known point to the SIONet interface unit and issues a participation instruction (step S360). When the SIONet interface unit participates in the community and the execution control unit receives the EP-ID, the preference search process is performed again (steps S361 and S362).
[0142]
In the search process display process of FIG. 33, the user interface unit waits for a predetermined time (step S370). During this time, the execution control unit ends the search in the activated thread. When the waiting time expires and there are participation candidates, the user interface unit notifies the search result to the control panel (step S371), and the user confirms the search result displayed on the control panel (step S372). . On the other hand, if there is no participation candidate, the user interface unit receives a notification dialog display instruction and displays a screen for notifying that the community has not been found (step S375). When the user recognizes from the notification dialog that there is no participation candidate, the user clicks the OK button (step S376).
[0143]
FIG. 34 is a diagram showing a main screen according to one embodiment.
In the main screen for searching shown in FIG. 34, a [search information] field (1) for inputting a search keyword and a [navigation information] list box (2) for displaying information of a community that is currently advertising. And a [search start] button (3) for starting a search with the search keyword input in the [search information] field (1). Then, by entering a search keyword in the [Search Information] field (1) and pressing the [Start Search] button (3), all the communities in which the user participates are searched as the search source at the start of the search. To start. In the [Navigation Information] list box (2), the latest state is always displayed.
[0144]
FIG. 35 is a diagram showing a search result display screen when no community is found according to one embodiment.
When there is no participation candidate in step S375 in FIG. 33, the user interface unit displays a search result display screen shown in FIG. When the user recognizes from the notification dialog that the community has not been found, the user clicks the OK button (1) to close this screen.
[0145]
The embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes design changes and the like within a scope not departing from the gist of the present invention.
[0146]
【The invention's effect】
As described above, even if any entity in the event place (community) leaves, participates, etc., the function for searching for the event place through entities participating in multiple event places at the same time is hindered. An entity device, a community search method, and a computer program can be provided. In addition, it is possible to automatically search for an appropriate community by learning whether or not it is worth advertising in the event place to which the entity belongs, so the waiting time for searching can be reduced. Furthermore, there are advantages and effects such that resources can be used effectively, and a community searcher (search entity) without search know-how can search for an appropriate community.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining automatic control of a formula search based on an embodiment of the present invention.
FIG. 2 is a diagram for explaining entities in SIONet (semantic information network), which is a prerequisite technology of the present invention.
FIG. 3 is a diagram for explaining entity state transition in SIONet;
FIG. 4 is a block diagram showing an internal configuration of an entity in SIONet.
FIG. 5 is a diagram for explaining generation of an event place in SIONet.
FIG. 6 is a diagram for explaining an operation in which an entity in SIONet participates in an event place.
FIG. 7 is a diagram for explaining a semantic information switch SI-SW and a session in SIONet.
FIG. 8 is a diagram showing a configuration of events in SIONet.
FIG. 9 is a diagram for explaining a semantic information system in SIONet.
FIG. 10 is a diagram for explaining an operation in which an entity participating in a certain event place further participates in another event place in SIONet.
FIG. 11 is a diagram for explaining a service entity plug-in in SIONet;
FIG. 12 is a diagram for explaining a reference model in SIONet.
FIG. 13 is a diagram for explaining a shared link in SIONet.
FIG. 14 is a diagram for explaining a shared link in SIONet.
FIG. 15 is a diagram for explaining a shared link in SIONet;
FIG. 16 is a diagram for explaining an event path in SIONet;
FIG. 17 is a diagram for explaining re-establishment of a shared link in SIONet.
FIG. 18 is a diagram for explaining a hop attribute in SIONet;
FIG. 19 is a diagram for explaining event place and entity increase / decrease in SIONet;
FIG. 20 is a diagram for explaining event place and entity increase / decrease in SIONet;
FIG. 21 is a diagram for explaining entity advertisement in SIONet;
FIG. 22 is a diagram for explaining entity advertisement in SIONet;
FIG. 23 is a diagram showing dimensions of a P2P model.
FIG. 24 is a diagram for explaining the concept of SIONet.
FIG. 25 is a block diagram of an entity according to an embodiment of the present invention.
FIG. 26 is a diagram showing an operation example of community search according to the embodiment.
FIG. 27 is a diagram showing an outline flow of automatic community search according to the embodiment;
FIG. 28 is a diagram showing an outline flow of a participation candidate community search process according to the embodiment.
FIG. 29 is a detailed sequence diagram between functional units of the community automatic search according to the embodiment;
FIG. 30 is a detailed sequence diagram between functional units of community automatic search according to the embodiment;
FIG. 31 is a detailed sequence diagram between functional units of the community automatic search according to the embodiment;
FIG. 32 is a detailed sequence diagram between functional units of community automatic search according to the embodiment;
FIG. 33 is a detailed sequence diagram between functional units of the community automatic search according to the embodiment;
FIG. 34 is a diagram showing a main screen according to the embodiment.
FIG. 35 is a diagram showing a search result display screen when no community is found according to the embodiment.

Claims (6)

複数のイベントプレースに属するエンティティを介し、該イベントプレース間を遷移しながら適切なイベントプレースの探索を行うエンティティとして機能するコンピュータであって、
ユーザへの入出力インタフェースを提供し、ユーザから探索情報の入力を受けるとともに、探索結果を表示するユーザインタフェース手段と、
現在自身が属するイベントプレース内において、前記ユーザインタフェース手段が入力を受けた探索情報と一致あるいは類似するイベントプレースの情報を公開可能に保持している同好のエンティティの探索を行うための同好探索の指示と、検出された同好のエンティティとして機能するコンピュータから返送された情報の示す他のイベントプレースへの移動とを、所定の時間内あるいは移動先となるイベントプレースが所定の数に達するまで再帰的に行う実行制御手段と、
前記実行制御手段から同好探索の指示を受け、現在自身が属するイベントプレース内の同好のエンティティの探索を行う同好探索手段と、
前記同好探索手段が検出した同好のエンティティとして機能するコンピュータから返送された情報の示す他のイベントプレースを評価し、この他のイベントプレースのうち移動先となる他のイベントプレースを選択して前記実行制御手段に通知するイベントプレース評価手段と、
自身が属するイベントプレースへ、自身が同時に属する他のイベントプレースの情報を送信することにより広告を行うとともに、自身が属する該イベントプレースの評価に基づき広告を中止する広告制御手段と、
を備えることを特徴とするコンピュータ
Through Entite I belonging to a plurality of event places, a computer functioning as an entity that performs a search for the appropriate event place while transition between the event place,
User interface means for providing an input / output interface to a user, receiving search information from the user, and displaying a search result;
In the event place to which the user currently belongs, an instruction for a favorite search for searching for a favorite entity that holds information about the event place that matches or is similar to the search information input by the user interface means. And the movement to another event place indicated by the information returned from the computer functioning as the detected preferred entity is recursively within a predetermined time or until the predetermined number of event places are reached. Execution control means to perform,
A preference search means for receiving a preference search instruction from the execution control means and searching for a favorite entity in an event place to which the current position belongs;
The other event place indicated by the information returned from the computer functioning as the favorite entity detected by the favorite search means is evaluated, and the other event place as the movement destination is selected from the other event places , and the execution is performed. Event place evaluation means to notify the control means,
Itself to belong event place, with itself to advertise by transmitting information about other events places belonging simultaneously, and advertisement control means to stop the advertisement based on the evaluation of the event place to which it belongs,
A computer comprising:
前記実行制御手段が移動した他のイベントプレースの情報を送信することにより広告を行っている、同好のエンティティとして機能するコンピュータへ、この他のイベントプレースにおけるユーザ満足度を通知するフィードバック制御手段をさらに備え、
前記広告手段は、自身が広告する他のイベントプレースへ移動した他のエンティティとして機能するコンピュータから受信したユーザ満足度を基に、自身が属するイベントプレースの評価を行うこと、
を特徴とする請求項1に記載のコンピュータ
Feedback control means for notifying the user satisfaction level in the other event place to a computer functioning as a favorite entity that is advertising by transmitting information of the other event place to which the execution control means has moved Prepared,
The ad unit, based on the user satisfaction that it has received from the computer that functions as other entities moved to other events place advertising, to perform the evaluation of the event place to which it belongs,
The computer according to claim 1.
さらに、意味情報ネットワークとのアクセスを提供する意味情報ネットワークアクセス手段と、
前記意味情報ネットワークに参加している他のエンティティとして機能するコンピュータとのセッションを管理するとともに、現在広告を行っているイベントプレースの情報であるナビゲート情報を少なくとも含む、セッションに関連する最新の情報を保持及び提供するセッション管理手段と、
前記ユーザインタフェース手段が受けたユーザの操作により、前記意味情報ネットワークからのイベントを受信し、該イベントのディスパッチを行うイベント解析手段と、
を備えることを特徴とする請求項1または請求項2に記載のコンピュータ
A semantic information network access means for providing access to the semantic information network;
The latest information related to the session, including at least navigation information, which is information about an event place that is currently advertised, while managing a session with a computer functioning as another entity participating in the semantic information network Session management means for holding and providing
Event analysis means for receiving an event from the semantic information network and dispatching the event by a user operation received by the user interface means;
The computer according to claim 1, further comprising:
広告を行うイベントプレースは、ユーザの操作を受けて参加したイベントプレース、あるいは、前記実行制御手段が移動を行ったイベントプレースの中の任意のイベントプレースであることを特徴とする請求項1から請求項3のいずれかの項に記載のコンピュータ Event place to advertise the event place participated in response to the operation of the user or, according claim 1, wherein the execution control means is any event place in the event place performing the movement Item 4. The computer according to item 3. 複数のイベントプレースに属するエンティティを介し、該イベントプレース間を遷移しながら適切なイベントプレースの探索を行うエンティティとして機能するコンピュータに用いられるイベントプレース探索方法であって、
前記エンティティとして機能するコンピュータにおいて、
ユーザインタフェース手段が、ユーザから探索情報の入力を受けた後
実行制御手段が、現在自身が属するイベントプレース内において、入力された探索情報と一致あるいは類似するイベントプレースの情報を公開可能に保持している同好のエンティティ探索
イベントプレース評価手段が、検出した同好のエンティティとして機能するコンピュータから返送された情報の示す他のイベントプレースを評価
前記実行制御手段が、
前記評価を基にしたこの他のイベントプレースのうち移動先となる他のイベントプレースを選択し、
選択された他のイベントプレースへ移動する処理を、
所定の時間内あるいは移動先となるイベントプレースが所定の数に達するまで再帰的に行い、
前記ユーザインタフェース手段が、探索結果を表示する一方、
広告制御手段が、自身が属するイベントプレースへ、自身が同時に属する他のイベントプレースの情報を送信することにより広告を行うとともに、自身が属する前記イベントプレースの評価に基づき広告を中止する、
ことを特徴とするイベントプレース探索方法。
Through Entite I belonging to a plurality of event places, a event place search method used in a computer that functions as an entity that performs a search for the appropriate event place while transition between the event place,
In a computer functioning as the entity,
User interface means, after receiving an input of search information from the user,
Execution control means, in the event in a place to which the current itself belongs, to explore the club entities that publish can hold the information of the event place that matches or similar input search information,
Event place evaluation means evaluates the other event place indicated by the sent back from the computer to function as an entity of the detected club information,
The execution control means is
Select another event place to move to among other event places based on the rating ,
Move to another selected event place
Do it recursively within a certain time or until the number of event places to be moved reaches a certain number,
While the user interface means displays search results,
Advertisement control means, to the event place to which it belongs, itself to stop advertising based on the evaluation of the event place a row Utotomoni, it belongs to advertisement by sending information about other events places belonging simultaneously,
The event place search method characterized by this.
複数のイベントプレースに属するエンティティを介し、該イベントプレース間を遷移しながら適切なイベントプレースの探索を行うエンティティとして用いられるコンピュータのコンピュータプログラムであって、
ユーザから探索情報の入力を受ける入力ステップと、
現在自身が属するイベントプレース内において、入力された探索情報と一致あるいは類似するイベントプレースの情報を公開可能に保持している同好のエンティティの探索と、
検出した同好のエンティティとして機能するコンピュータから返送された情報の示す他のイベントプレースの評価と、
前記評価を基にしたこの他のイベントプレースのうち移動先となる他のイベントプレースの選択と、
選択されたイベントプレースへの移動とを、
所定の時間内あるいは移動先となるイベントプレースが所定の数に達するまで再帰的に行うステップと、
探索結果を表示するステップと、
自身が属するイベントプレースへ、自身が同時に属する他のイベントプレースの情報を送信することにより広告を行うステップと、
自身が属する前記イベントプレースの評価に基づき広告を中止するステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
Through Entite I belonging to a plurality of event places, a computer computer program which is used as an entity that performs a search for the appropriate event place while transition between the event place,
An input step for receiving search information from a user;
In the event place to which the current user belongs, search for a favorite entity that holds information on event places that match or are similar to the input search information,
The evaluation of other event places indicated by the information returned from the computer acting as the preferred entity found,
Of the other event places based on the evaluation, the selection of another event place to be moved to,
Move to the selected event place ,
Performing recursively within a predetermined period of time or until a predetermined number of event places are reached,
Displaying the search results;
Itself to belong event place, and the step of performing an advertisement by sending the information of other events place belonging itself at the same time,
Stopping the advertisement based on the evaluation of the event place to which it belongs;
A computer program for causing a computer to execute.
JP2003112907A 2003-04-17 2003-04-17 Computer, event place search method, and computer program Expired - Fee Related JP4028429B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003112907A JP4028429B2 (en) 2003-04-17 2003-04-17 Computer, event place search method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003112907A JP4028429B2 (en) 2003-04-17 2003-04-17 Computer, event place search method, and computer program

Publications (2)

Publication Number Publication Date
JP2004318594A JP2004318594A (en) 2004-11-11
JP4028429B2 true JP4028429B2 (en) 2007-12-26

Family

ID=33472992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003112907A Expired - Fee Related JP4028429B2 (en) 2003-04-17 2003-04-17 Computer, event place search method, and computer program

Country Status (1)

Country Link
JP (1) JP4028429B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5146539B2 (en) 2008-12-12 2013-02-20 富士通株式会社 Group management device
CN109885180B (en) 2019-02-21 2022-12-06 北京百度网讯科技有限公司 Error correction method and apparatus, computer readable medium

Also Published As

Publication number Publication date
JP2004318594A (en) 2004-11-11

Similar Documents

Publication Publication Date Title
da Silva et al. Middleware proposals for mobile ad hoc networks
Chavan et al. Design and implementation of event-based multicast AODV routing protocol for ubiquitous network
JP4028429B2 (en) Computer, event place search method, and computer program
JP3850378B2 (en) Entity device, ad hoc network construction method, ad hoc network construction program, and storage medium thereof
JP3946658B2 (en) Entity device, event transfer control method, event transfer control program, and recording medium therefor
JP3723127B2 (en) Entity device, information disclosure system, method, recording medium, and program
JP3723126B2 (en) Entity device, name assigning method, recording medium, and program
JP3803329B2 (en) Entity device, alternative entity search method, alternative entity search program, and recording medium thereof
JP3983187B2 (en) Entity device, link re-establishing method, and computer program
JP3822178B2 (en) Entity device, failure recovery method, and computer program
JP3987817B2 (en) Entity device, service sharing method, and computer program
JP3792664B2 (en) Entity device, reply notification control method, reply notification control program, and recording medium thereof
JP3844747B2 (en) Entity device, shared link re-establishment method, shared link re-establishment program, and recording medium thereof
JP3782345B2 (en) Embedded system, method, recording medium, and program
JP3910550B2 (en) Semantic information network data retrieval method, semantic information network system and program
JP3974054B2 (en) Entity device, shared link control method, authentication method, shared link control program, and recording medium thereof
JP3974357B2 (en) Shared link setting method, communication system, entity device, computer program thereof, and recording medium thereof
JP3850379B2 (en) Semantic information network construction method, semantic information network system, and program
JP2004265325A (en) Service providing method in semantic information network, semantic information network system, and program
JP3732762B2 (en) Semantic information switch, semantic information router, method, recording medium, program
JP3977387B2 (en) Semantic information switch, semantic information router, method, recording medium, program
Baklouti Service composition in opportunistic networks
JP2006351036A (en) Advertisement method, communication system, entity system and its computer program and recording medium
JP3977388B2 (en) Semantic information switch, semantic information router, method, recording medium, program
JP3977389B2 (en) Semantic information switch, semantic information router, method, recording medium, program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070827

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: 20071002

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071011

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

Free format text: PAYMENT UNTIL: 20101019

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101019

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101019

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111019

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111019

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121019

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121019

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131019

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees