JP2004265325A - 意味情報ネットワークにおけるサービス提供方法および意味情報ネットワークシステム並びにプログラム - Google Patents

意味情報ネットワークにおけるサービス提供方法および意味情報ネットワークシステム並びにプログラム Download PDF

Info

Publication number
JP2004265325A
JP2004265325A JP2003057307A JP2003057307A JP2004265325A JP 2004265325 A JP2004265325 A JP 2004265325A JP 2003057307 A JP2003057307 A JP 2003057307A JP 2003057307 A JP2003057307 A JP 2003057307A JP 2004265325 A JP2004265325 A JP 2004265325A
Authority
JP
Japan
Prior art keywords
entity
event
event place
place
base
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.)
Pending
Application number
JP2003057307A
Other languages
English (en)
Inventor
Takanari Hoshiai
隆成 星合
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 JP2003057307A priority Critical patent/JP2004265325A/ja
Publication of JP2004265325A publication Critical patent/JP2004265325A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】大きな設備投資をすることなく極めて多くの参加希望エンティティ(PC等)を収容することができ、しかも、認証、課金を行うことができるSIONetにおけるサービス提供方法を提供する。
【解決手段】サービス提供者がベースエンティティαを基にベースイベントプレースEPaを生成する。サービス希望者のエンティティβが、ベースエンティティαへ参加申込をすることによってイベントプレースEPaに参加する。イベントプレースEPaの参加者のエンティティが、イベントプレースEPaに所属しつつ新たな個別イベントプレースEPb、EPc…を生成する。イベントプレースEPaの他の参加者のエンティティβがイベントプレースEPaにおいて希望する個別イベントプレースを検出する。他の参加希望者のエンティティβが、検出した個別イベントプレースに参加し、個別イベントプレースの他のエンティティからサービスを受ける。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、汎用的なP2P(Peer 2 Peer)プラットフォームである意味情報ネットワークに係り,特に、ネットワークを使用した対戦型ゲーム等に用いて好適な意味情報ネットワークにおけるサービス提供方法および意味情報ネットワークシステム並びにプログラムに関する。
【0002】
【従来の技術】
近年、ネットワークの業界において、「ブローカレス型探索モデル」という新たな概念が考え出された。このブローカレス型探索モデルが、2000年3月に発表されたGnutellaのような、世界中で注目されるようになったP2P(Peer−to−Peer)に相当する。また、2001年4月に発表されたJXTAもP2P、すなわちブローカレス型探索モデルに相当する。P2Pは、WWW以来の革新技術であり、第3世代と呼ばれている。なお、近年、伝送レイヤにP2Pの概念を適用したブローカレス型伝送モデルや、ポリシーレイヤにP2Pの考え方を適用したブローカレス型ポリシーモデルの研究開発が活発化していている。ブローカレス(配信)モデルのディメンションを図23に示す。このブローカレス型探索モデルの1つがSIONet(Semantic Infomation 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を利用した意味情報ネットワークシステムとして、次のモデルが知られている。
(1)クライアントサーバモデル(図25)
予め決められたエンティティE1〜E5のみでイベントプレースEP1を運営する形態である。すなわち、予め決められたエンティティE1〜E5が、例えば、ゲーム会社のコンピュータであってイベントプレースEP1に参加(Join)することが可能であり、参加を許されたエンティティは、エンティティ間のシェアードリンクSLを確立することにより、イベントプレースEP1を構成する。一方、ゲーム参加希望者の端末であるエンティティE6〜E11は当該イベントプレースEP1のエンティティE1〜E4に対してセッションSSを確立し、当該セッションSSを介したイベントの送受信を行う。
【0009】
すなわち、イベントプレースEP1が全体としてサーバとして機能し、その以外のエンティティE6〜E11がクライアントに相当する。このモデルでは、イベントプレースEP1のメンバーである各エンティティE1〜E5は、自律分散コンピュータとして振舞い、任意のエンティティが障害に陥った際には、残されたエンティティが自己組織化しイベントプレースEP1の運営を継続する。また、サーバの処理能力向上を図りたい場合には、新たなエンティティを当該イベントプレースEP1に参加させれば良い。そのため、従来のサーバ実現方式と比べて、耐故障性に強く、安価で、スケーラブルなサーバを実現することができる。
【0010】
(2)ハイブリッドモデル(図26)
上述したクライアントサーバモデルと同様に、予め決められたエンティティE1〜E4のみでイベントプレースEP1を運営する。すなわち、予め決められたエンティティE1〜E4のみが当該イベントプレースEP1に参加することが可能であり、参加を許されたエンティティは、エンティティ間のシェアードリンクSLを確立することにより、イベントプレースEP1を構成する。一方、参加希望者のエンティティはそれぞれイベントプレースEP2〜EP4を形成し、各イベントプレースEP2〜EP4のベースエンティティEbがイベントプレースEP1のエンティティE1〜E4とセッションSSを確立し、当該セッションSSを介したイベントの送受信を行う。すなわち、このモデルもイベントプレースEP1がサーバとして機能し、その以外のイベントプレースEP2〜EP4がクライアントに相当する。
(3)ピュアモデル(図27)
すべてのエンティティEが自由にイベントプレースEPに対して参加(退去)することが可能なモデルであり、サーバに相当するイベントプレースは存在しない。
【0011】
【発明が解決しようとする課題】
ところで、上述した(1)クライアントサーバモデルには次の問題がある。すなわち、ユーザ数が増加し、参加希望エンティティが増えるほど、イベントプレースEP1のエンティティE1〜E5の容量が不足し、このため、エンティティの増加に比例して新たな設備投資(CPUパワー、ストレージ、通信帯域など)が必要となる。他方、新たなゲームサイトを開催しようと考えた場合、参加エンティティ数を開催前に正確に把握することは難しく、このため、初期設備投資を大きくし過ぎて大きな損害を発生させる場合がある。(2)ハイブリッドモデルにおいても同様な問題がある。
【0012】
一方、(3)ピュアモデルは参加希望者が自由に参加できるため、認証、課金のシステムを作ることができず、ゲームサイト等の事業化には不適である。
この発明はこのような事情に鑑みてなされたもので、その目的は、大きな設備投資をすることなく極めて多くの参加希望エンティティを収容することができ、しかも、認証、課金を行うことができる意味情報ネットワークにおけるサービス提供方法および意味情報ネットワークシステム並びにプログラムを提供することにある。
【0013】
【課題を解決するための手段】
本発明は上記の課題を解決するためになされたもので、請求項1に記載の発明は、サービス提供者が、自らが管理するエンティティをベースエンティティとしてベースイベントプレースを生成する過程と、サービス希望者のエンティティが、前記ベースエンティティへ参加申込をすることによって前記ベースイベントプレースに参加する過程と、前記ベースイベントプレースの参加者のエンティティが、該ベースイベントプレースに所属しつつ新たな個別イベントプレースを生成する過程と、前記ベースイベントプレースの他の参加者のエンティティが前記ベースイベントプレースにおいて希望する個別イベントプレースを検出する過程と、前記他の参加希望者のエンティティが前記個別イベントプレースに参加する過程とを有することを特徴とする意味情報ネットワークにおけるサービス提供方法である。
【0014】
請求項2に記載の発明は、請求項1に記載の意味情報ネットワークにおけるサービス提供方法において、前記サービス提供者は、前記サービス希望者のエンティティが前記ベースエンティティに参加申込を行った時に、前記参加希望者に対し認証および課金を行うことを特徴とする。
請求項3に記載の発明は、請求項1または請求項2に記載の意味情報ネットワークにおけるサービス提供方法において、前記ベースエンティティのアプリケーションに「共有」が指定された時、前記ベースイベントプレースに参加したエンティティに前記ベースエンティティのアプリケーションが自動的にプラグインされることを特徴とする。
請求項4に記載の発明は、請求項1〜請求項3のいずれかの項に記載の意味情報ネットワークにおけるサービス提供方法において、前記ベースイベントプレースに参加したエンティティにおいてアプリケーションの「保存」が指定された時、前記アプリケーションは新たに参加した前記個別イベントプレースにおいても自動プラグインされることを特徴とする。
【0015】
請求項5に記載の発明は、サービス提供者が管理するエンティティをベースエンティティとするベースイベントプレースと、サービス希望者のエンティティによって構成された複数の個別イベントプレースとからなり、前記個別イベントプレースを構成するエンティティの少なくとも1つが前記ベースイベントプレースにも属していることを特徴とする意味情報ネットワークシステムである。
請求項6に記載の発明は、請求項5に記載の意味情報ネットワークシステムにおいて、前記サービス提供者が管理するエンティティは、前記ベースイベントプレースの参加者のエンティティに対し認証および課金の通知を行うことを特徴とする。
請求項7に記載の発明は、コンピュータに、ベースイベントプレースを生成する処理と、サービス希望者のエンティティによる参加申込に対する認証および課金の処理と、前記サービス希望者のエンティティに接続先エンティティを知らせる処理とを実行させるためのプログラムである。
【0016】
なお、この明細書において、エンティティとは、パーソナルコンピュータ、ワークステーション、情報携帯端末、携帯電話、ウエアラブルコンピュータなどのあらゆるコンピュータの総称である。
イベントプレースとは、複数のエンティティをシェアードリンクによって接続した構成をいう。
シェアードリンクとは、2つのエンティティを接続するソフトウエアであり、データ転送要件を相互に設定できるソフトウエアをいう。
プラグインとは、エンティティ内のアプリケーションあるいは制御ソフト等のソフトウエアが、シェアードリンクを通して別のエンティティへデータを転送し、また、別のエンティティからデータを受信できる状態にすることをいう。
【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が語彙概念のみ(照合条件は常に真)をフィルタに設定する「語彙概念によるイベントルーティング」と、語彙概念と語彙との照合条件をフィルタに設定する「語彙によるイベントルーティング」に大別される。前者は主にマルチホップ型属性付きマルチキャスト通信に、後者は主にマルチホップ型ユニキャスト通信、マルチホップ型マルチキャスト通信に用いられる。これは、障害処理通知、統計情報通知、アライブ通知、リプライ通知、アドバタイズメント通知などで用いられている。
【0054】
なお、マルチホップ型ブロードキャスト通信、マルチホップ型属性付きマルチキャスト通信、マルチホップ型ユニキャスト通信、マルチホップ型マルチキャスト通信のようなマルチホップ通信のほかに、SI−Rの設定するフィルタ値により、通信先エンティティのエントリポイントを用いた直接通信も可能である。なお、マルチホップ型ブロードキャスト通信、マルチホップ型属性付きマルチキャスト通信、マルチホップ型ユニキャスト通信、マルチホップ型マルチキャスト通信については後述する。
【0055】
(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を発火させないことができる。
【0056】
<イベントパスの確立>
イベント転送(イベントルーティング)のための経路選択情報(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に波及することにより、イベントパスが確立される。これを「イベントパスの設定、もしくは波及」と呼ぶ。
【0057】
ここで、上述した「語彙概念によるイベントルーティング」のためのイベントパスの確立について説明する。図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において行う。
【0058】
また、上述した「語彙によるイベントルーティング」のためのイベントパスの確立について説明する。図15において、「語彙によるイベントルーティング」のためのイベントパス確立に際しては、エンティティ2のSI−R2,1 は、SE3が登録したフィルタ値を、そのままエンティティ1のSI−SW1へのフィルタ値として設定する。すなわち、SI−R2,1 は、SE3がフィルタ登録したイベントタイプと意味情報との両者をエンティティ1のSI−SW1へとフィルタ登録し、SI−SW1において完全なフィルタリングを行う形態である。
【0059】
そのため、語彙によるイベントルーティング方式では、無駄なイベント転送が全く発生しないが、ルーティングのためのイベントパス設定オーバヘッドが膨大になるため、フィルタ登録数に比べてイベント送出数が十分大きい場合に有効な方式である。一方、イベントタイプに基づくルーティング方式は、前述の2方式の折衷案的な位置付けにある。すなわち、フィルタ登録数とイベント送出数が同程度の場合、もしくは、フィルタ登録数とイベント送出数の比率を予測できないような利用形態において有効である。これらの仕組みにより、意味情報に基づく、イベントのマルチホップ通信が実現される。なお、イベントプレースの生成時、もしくは、SEからのフィルタ登録時に、イベントルーティング方式を指定できる。
【0060】
イベントパスの設定要求はイベントプレース内のすべてのSI−Rに対して波及するが、TTL値により、その波及範囲を制限することができる。図16を用いて、その動作を簡単に説明する。ここでは説明の便宜上、語彙概念ルーティングのためのイベントパス確立を前提とするが、これに限られるわけではない。また、各エンティティは、同じ語彙概念をアドバタイズ(フィルタ登録)するものとする。また、TTL値を2として説明する。
【0061】
図16(a)において、エンティティ2のSI−Rがイベントパスの設定要求を開始する。ここでは、TTL値が2であるため、エンティティ1、エンティティ3、そしてエンティティ4に対してのみイベントパスの設定要求が波及し、その結果、図16(b)に示すようにイベントパスが確立される。
【0062】
上述と同様に、エンティティ11のSI−Rがイベントパスの設定要求を開始すると、エンティティ10、及びエンティティ9に対してイベントパスが確立される。図16に示す構成では、エンティティ2のSI−R及びエンティティ11のSI−Rがイベントパスの設定要求をすると、エンティティ5にはイベントパスが設定されないため、エンティティ2とエンティティ11の間では、イベントの共有が行われない。つまり、エンティティ2から生起したイベントは、エンティティ5〜11に連鎖反応せず、エンティティ5〜11へはイベントが転送されないことになる。
【0063】
しかしながら、図16(b)に示すように、エンティティ5のSI−Rがイベントパスの設定要求を開始することにより、エンティティ4、エンティティ5、エンティティ6、エンティティ7、そしてエンティティ9に対してイベントパスが確立される。結果的に、図16(c)に示すように、エンティティ8を除く、イベントプレース内のすべてのエンティティに対してイベントパスが確立される。
【0064】
このように、当該語彙概念が当該イベントプレースにおいて、使用頻度の高いもの(評判が高い、流行しているもの)であるならば、最終的に、イベントプレース内にイベントパスの確立が行き渡ることになる。その逆で、あまり流行していない語彙概念は、いずれ淘汰されることになり、これにより緩やかな連鎖反応を実現できる。なお、図16におけるイベントパス上の数字は、その多重度を示している。
【0065】
なお、エンティティは、イベントパスの多重度をエンティティプロパティの属性として公開することができる。一方、エンティティプロパティのディスカバリにより、イベントパスの多重度が高いエンティティを発見することができる。このとき、当該エンティティに対して、シェアードリンクの張り替えを行うことにより、同好の志(同好のエンティティ)が緩やかに近傍に集まることができる(同好エンティティの局所化)。エンティティプロパティの詳細については後述する。
【0066】
分散オブジェクト技術の観点から、イベントパスを以下のように解釈することもできる。世界中に超分散しているエンティティは、エンティティ間でなんらかの「相関関係」を有する。相関関係を与えるものとしては、エンティティ名、グループ名、属性(位置、興味、評判、流行、サービス)など様々なプロパティがある。エンティティは、相関関係に基づいて、エンティティ間の結びつきを持ち分散協調する。この、エンティティの相関関係を与えるものを、エンティティプロパティという。
【0067】
SIONetでは、この相関関係を語彙概念と語彙により表現し、シェアードリンクに基づいて、イベントパスとして設定する。また、相関関係の強弱が、語彙概念の汎化・特化、イベントパスの多重度などに相当する。すなわち、SIONetでは、イベントパスにより、エンティティ間の相関関係を動的に制御・管理している。これこそが、フィルタによる連鎖反応の制御である。そのため、エンティティは固定的なエンティティ識別子を有していない。
【0068】
例えば、IPアドレスは、位置に基づいたエンティティの固定的な識別子であるが、SIONetでは、これの代わりに、エンティティプロパティを語彙概念・語彙として記述したものをエンティティ識別子として用いる。エンティティは、これらをフィルタとしてSI−SWに登録することにより、エンティティのプロパティ(エンティティ識別子)を宣言するとともに、自身のプロパティをシェアードリンクに基づいてアドバタイズする。これがイベントパスの波及に相当する。これにより、イベントパスが確立される。
【0069】
上述したように、SI−Rは、イベント送信とイベント受信の両者の側面を持つネットワークエンティティであり、一般のサービスエンティティと本質的な違いはない。SIONetでは、SI−RのようなSIONetの制御に用いられるエンティティを、サービスエンティティ(SE)と特に区別して、ネットワークエンティティ(NE)と呼ぶ。SIONetにおいては、サービスエンティティ、ネットワークエンティティのすべてのエンティティを共通のエンティティとして扱い、さらに、イベント送出とイベント受信、すなわち刺激と発火の連鎖反応という単純かつ一貫性のある共通ロジックに従って自律動作させることにより、すべてのエンティティが自律分散協調可能な超分散・超疎結合アーキテクチャを提供する。
【0070】
<シェアードリンクの解除と再確立>
イベントプレースに参加しているエンティティが、障害に陥ったり、イベントプレースから退去する場合など、様々な理由により当該エンティティがネットワークの運営に関わることができないケースにおいては、残されたエンティティが自己組織化することによりネットワークサービスを継続できることが必要になる。
SIONetでは、このようなケースにおいては、SI−SW間において確立されているシェアードリンクを解除し、さらにシェアードリンクの再確立を行う。その動作を図17を参照して説明する。
【0071】
図17において、シェアードリンク確立要求の先頭数字(図中▲1▼や▲2▼など)は、それらの要求順序を示している。つまり、シェアードリンク確立要求の順序は、まず、エンティティ2からエンティティ1へシェアードリンクの確立要求を行う。次にエンティティ3からエンティティ2へシェアードリンクの確立要求を行う。最後に、エンティティ4からエンティティ2へシェアードリンクの確立要求を行うものとする。なお、ここで、「各エンティティは、同一イベントプレース内においてシェアードリンクの確立要求を高々1回しかできないが、無制限に確立要求を受け付けることが可能なリンクトポロジーに基づいて、シェアードリンクの確立を行う」リンク確立手法を提案する。これにより、シェアードリンクで結合されたエンティティ間に、ループが発生しないことが保証される。すなわち、この手法を用いることにより、隣接エンティティ間のリンク再確立のみで開リンクトポロジーを簡単に実現できる。
【0072】
上述した順序で確立要求が成功すると、前述した手順で各SI−SW間にシェアードリンクが確立される。シェアードリンクが確立されると、各エンティティのエンティティ制御部は、自身が確立要求を行ったエンティティと、自身への確立を受け付けたエンティティを記憶している。例えば、エンティティ2は、自身が確立要求を行ったエンティティ1と、自身への確立を受け付けたエンティティ3、エンティティ4のリストを保持している。
この状況において、例えば、エンティティ2の退去、減設などが行われる場合、自身のSI−SW2に対して確立されているシェアードリンクの解除要求を発行し、シェアードリンクの解除を行う。その後、各エンティティは新たなシェアードリンクの確立を行う。以下、その動作を説明する。
【0073】
(1)エンティティ2が退去する場合、エンティティ2のエンティティ制御部は、自身のシェアードリンクを解除する旨を、1ホップのエンティティ(エンティティ1、エンティティ3、エンティティ4)に対して通知する。これは、イベントのTTL値を1にしてイベント送出を行うことにより可能になる。なお、このとき、自身へのシェアードリンク確立を受け付けたエンティティ(エンティティ3、エンティティ4)に対しては、自身に代わる新たなシェアードリンクの確立要求先として、自身が確立要求を行ったエンティティ1を教える。なお、自身が確立要求を行ったエンティティが存在しない場合には、自身への確立要求元エンティティ(1ホップ先のエンティティ)の中から任意のエンティティを選択して、これを自身に代わるシェアードリンクの確立要求先とする。
【0074】
(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へのセッションを解除する。
【0075】
(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 を確立させる。
【0076】
上述したように、シェアードリンクの確立処理、再確立処理は、隣接するエンティティ間においてのみ行われ、他のエンティティには影響を与えない。すなわち、全てのエンティティに対するリンクの再構築を必要としない。
【0077】
なお、エンティティの退去や減設などの正当な手順を踏んだシェアードリンクの解除要求ばかりでなく、エンティティの障害、電源断、セッション(物理的な通信路)の障害などに起因して、シェアードリンクを再確立しなければならないケースがある。しかしながら、このようなケースにおいては、シェアードリンクの再確立時に必要となる代わりのエンティティを教授できない可能性がある。SIONetでは、このような状況に対応するために、各エンティティはnホップ(nは任意の自然数)のイベントを送出することにより、代わりの確立要求先エンティティの把握を行っている。なお、SIONetでは、TTL値とホップ属性を用いることにより、更にきめこまかなホップ制御が可能である。ホップ属性の例として、以下のものがある。
【0078】
▲1▼シェアードリンクの確立要求先エンティティのみをホップ対象とする。
▲2▼シェアードリンクの確立要求元エンティティのみをホップ対象とする。
▲3▼すべてのエンティティをホップ対象とする。
【0079】
▲1▼のホップ属性を指定した場合の、イベントの流れの例を図18の破線で示している。図18において、(i/j)は各エンティティにおいて記憶しているシェアードリンクの確立情報である。iはエンティティがシェアードリンクの確立要求を行った先のエンティティを示しており、一方、jはエンティティがシェアードリンクの確立要求を受け付けたエンティティを示している。例えば、エンティティ3の(2/5、6)は、エンティティ3がエンティティ2に対して確立要求を行い、エンティティ5及びエンティティ6から確立要求を受け付けていることを表している。各エンティティがシェアードリンクの確立情報を保持することにより、例えば、エンティティ3が他のエンティティに対して、更なるシェアードリンクの確立要求を行った場合、その要求をエラーとしてリジェクトすることができる。これにより、前述した開リンクトポロジーの一貫性を保証している。この状況において、エンティティ6が3ホップで、上述▲1▼のホップ属性を持つイベントを送出することにより、エンティティ1とエンティティ2の存在を知ることが可能になり、これらがエンティティ3障害時の代替エンティティとなる。
【0080】
なお、上述したホップ属性は、障害時の代替エンティティの探索ばかりでなく、シェアードリンクの確立を受け付け可能なエンティティの探索、トップ(誰にもシェアードリンクの確立を行っていない)エンティティの探索などに有効である。SIONetでは、トップのエンティティのみが、他のイベントプレースに対して、フェデレーション(連携、イベントプレース間のシェアードリンクに相当)を確立することができる。
【0081】
<オンライン増減設の目的>
SIONetにおけるエンティティ増減設の目的は、主に以下の二つに大別される。
(1)イベントプレースのトータル処理能力向上の観点から、イベントプレース内のエンティティを増設し、イベントのフィルタリング処理を負荷分散する。その逆の観点から、エンティティを減設する。これは、主に、ハイブリッドP2P、バックボーンP2Pネットワークの運用において用いられる。
(2)動的に生成されたエンティティに対して、シェアードリンクを柔軟に確立することにより、フレキシブルでグローバルなP2Pネットワークをボトムアップ的に構築する。これは、主に、ピュアP2Pネットワークの運営において用いられる。
【0082】
なお、ハイブリッド型P2Pネットワークとは、例えばネットワークプロバイダなどの運営者がホスト等にイベントプレースをあらかじめ生成し、個人の端末等のサービスエンティティがセッションによりイベントプレースと接続することにより構成されるネットワークである。また、ピュア型P2Pネットワークとは、個人の送受信端末たるエンティティがシェアードリンクで各々接続されることにより構成されるネットワークであり、このネットワークのうち、イベントを共有する最小単位がイベントプレースである。バックボーン型P2Pネットワークとは、ネットワーク間の接続形態のことであり、例えば、複数の地域のピュア型P2Pネットワークをハイブリッド型P2Pネットワークを経由して接続した状態のネットワークのことをいう。
【0083】
<増減設の形態>
SIONでは幾つかの増減設形態を提供しているが、ここでは、図19、図20に例を示す代表的な形態について述べる。
(1)イベントプレースの合成と分離
図19(a)に示すように、複数のイベントプレースを合成することができる。ここで合成とは、複数のイベントプレースにそれぞれ属するエンティティを、一つのイベントプレース内のメンバーとして集めることを言う。典型的な例として、異なるサービス運営者間の業務提携に基づく、サービス統合(情報共有)が考えられる。
【0084】
これは、イベントプレースに属する任意のエンティティ、もしくはイベントプレースに対して合成要求を行うことにより、合成要求先イベントプレース内のエンティティに対してシェアードリンクの確立要求が発行される。その結果、SI−SW間にシェアードリンクが確立され、両者の合成が実現される。なお、合成の要求元及び要求先は、それぞれ、エンティティでもイベントプレースでもどちらであってもかまわない。一方、分割する場合には、確立されているシェアードリンクを解除し、それぞれのイベントプレースに分離する。
【0085】
(2)イベントプレースへの参加と退去
図19(b)に示すように、イベントプレース内のエンティティ、もしくは、イベントプレースに対してJoin(参加)要求を行うことにより、要求元エンティティにSI−SWが生成される。そして、要求先エンティティに対してシェアードリンクの確立要求が発行されることにより、SI−SW間にシェアードリンクが確立され、当該イベントプレースに参加することができる。
エンティティがイベントプレースから退去する場合には、上述と同様に、エンティティ間のシェアードリンクを解除し、さらに、シェアードリンクの再構築を行い、当該イベントプレースから退去する。このとき、退去したエンティティの状態は、サスペンド状態へと遷移する。
【0086】
なお、イベントプレース側からエンティティに対してシェアードリンクの確立を要求することにより、当該エンティティをイベントプレース内に取り込むことも可能である。これを吸収という。その逆を分裂という。
(3)エンティティ(SI−SW)の増減設
図20(c)に示すように、イベントプレース内のエンティティ、もしくは、イベントプレースに対して、エンティティの増設要求を行うと、指定されたエンティティにSI−SWが新たに生成され、既存のSI−SWとの間にシェアードリンクが確立される。一方、イベントプレースにエンティティの減設要求を行うと、指定されたエンティティに対しシェアードリンクの解除要求が発行され、SI−SW間のシェアードリンクが解除された後、シェアードリンクの再確立が行われ、当該エンティティが削除される。このとき、エンティティの状態は、Non−Existentに遷移する。
【0087】
(4)イベントプレース間のフェデレーション
図20(d)に示すように、イベントプレース内のエンティティ、もしくは、イベントプレースに対して、フェデレーション(連携)要求を行うことにより、イベントプレース間でイベントを転送するSI−GWが動的に生成され、セッションを介して両イベントプレースが連携する。なお、フェデレーションの要求元及び要求先は、それぞれ、エンティティでもイベントプレースでもどちらであってもかまわない。
【0088】
<エンティティのアドバタイズメント>
図21、図22を参照し、エンティティのアドバタイズメント(公開)について説明する。SIONetにおけるエンティティのアドバタイズメントには、以下の2つの観点がある。
観点1:エントランスのアドバタイズメント
観点2:エンティティプロパティのアドバタイズメント
以下、各々の観点について説明する。
観点1:エントランスのアドバタイズメント
ベースイベントプレースは、エンティティに取って、最適なイベントプレースをいもづる式に探索(ディスカバリ)するためのベース(起点)となるイベントプレースである。つまり、ベースイベントプレースがSIONetへのエントランス(入り口)となる。そのため、ベースイベントプレースに参加しているエンティティは、SIONetのエントランスを公開することができる。ここで、エントランスの公開とは、シェアードリンクの確立要求先となるエンティティのエントリポイントとグローバルエンティティ名をアドバタイズすることを意味する。この公開情報は、後述するブロードキャストを用いた探索により発見される。
【0089】
観点2:エンティティプロパティのアドバタイズメント
シェアードリンクで接続されている任意のエンティティグループ(ベースイベントプレースを含むすべてのイベントプレース)において、各エンティティは自身のエンティティプロパティをアドバタイズすることができる。これが前述したイベントパスの波及に相当する。この公開情報は、後述するディスカバリイベントの送出により発見される。
【0090】
以下に、エンティティの公開、探索から、エンティティグループ形成までの流れを説明する。なお、以下では、ベースエンティティ、エンティティ1、エンティティ2、エンティティ3、エンティティ4、エンティティ5、エンティティ6はベースイベントプレースに属しており、エンティティ3、エンティティ11、エンティティ12、エンティティ13はイベントプレースαに属しているものとして説明する。
【0091】
▲1▼図21に示すように、SIONetソフトウエアをホストにインストールする。この時点でのエンティティの状態は、前述したように”Non−Existent”である。
説明の便宜上、このエンティティをエンティティYとする。
▲2▼SIONetソフトウエアを実行することにより、エンティティYは”Non−Existent”から”サスペンド”状態に遷移する。この状態のエンティティは、SIONetからその存在がまだ認知されていない。
【0092】
▲3▼”サスペンド”状態のエンティティYは、SIONetの構成要素としてネットワークに参加するために、ベースイベントプレースに属している他のエンティティのエントランス(エントリポイントとグローバルエンティティ名)を探索する。具体的には、ブロードキャストにより、ベースイベントプレースに参加しているエンティティの中から、近傍のエンティティを探索する。ブロードキャストの方法は、実装に依存する。例えば、無線ネットワークで実装されている場合には、無線の到達範囲すべてのエンティティが探索の対象となる。一方、IPネットワークで実装されている場合には、IPブロードキャストもしくはIPマルチキャストを行うことになる。図21では、ブロードキャストによる探索により、エンティティ1(エンティティ1のエントリポイントとグローバルエンティティ名)が発見されたことを表している。なお、ブロードキャストにより、近傍のエンティティを発見できない場合には、Well−Known(周知)のエンティティを利用することもできる。Well−Knownのエンティティをベースエンティティと呼ぶ。なお、ベースエンティティは、ベースイベントプレースを含むすべてのイベントプレース内に存在することができる。
【0093】
▲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は、”サスペンド”状態から”アクティブ”状態へと遷移する。
【0094】
ベースイベントプレースにJoinしたエンティティYは、エントランスの公開が可能になる。また、エンティティプロパティをアドバタイズすることもできる。エンティティプロパティには、グローバルエンティティ名(及びエントリポイント)、ニックネーム、グループ名、アライブ(存在だけの表明であり、シェアードリンクの確立先情報となるエントリポイントとグローバルエンティティ名は公開しない、エンティティが非公開モードの場合でも公開の対象)、ディスクリプション(エンティティの説明文)、属性などがある。属性には、プラグインされているSE情報、イベントパス多重度、イベントプレース情報などがある。なお、エンティティプロパティの記述言語としては、XMLなどがある。
【0095】
図21において、例えばエンティティ3のエンティティ制御部は、エンティティ3が同時に参加しているイベントプレースαをエンティティプロパティの属性として公開することができる。さらに、エンティティ制御部は、現在Joinしているイベントプレースばかりでなく、過去にJoinしたイベントプレースのイベントプレース情報を公開することもできる。このイベントプレース情報とは、例えば、イベントプレースのディスクリプション(イベントプレースの説明文、説明情報)や、当該イベントプレースに参加する際にシェアードリンクを確立したエンティティ(意味情報スイッチ)のグローバルエンティティ名(イベントプレース名+エンティティ名、コネクション確立情報)、エントリポイント(エントリポイント情報)などである。この、過去にJoinしたイベントプレース情報をエンティティが保持できる数は任意とし、例えば、コントロールパネルによりエンティティ所有者等が設定できるものとする。この公開されたイベントプレース情報を取得したエンティティは、当該イベントプレース情報をコントロールパネル等により出力することで当該エンティティ所有者に提示する。これにより、エンティティ所有者は、他のイベントプレースの存在を認識することが出来る。
【0096】
SIONetでは、どこにどのようなイベントプレースがあり当該イベントプレースではどのようなサービスを提供しているか、というようなイベントプレース情報を集中管理する機能がないので、イベントプレース情報を取得しようとする場合、他のエンティティのエンティティプロパティからイベントプレース情報を取得する必要がある。現在参加しているイベントプレースのみならず、過去に参加したイベントプレース情報を公開することにより、イベントプレース情報を取得する機会が増え、自身の求めるサービスを提供するイベントプレースに参加できる確立が高くなる。
【0097】
エンティティYのエントランスの公開時には、これらのエンティティプロパティを、エンティティ内の意味情報スイッチにフィルタとして登録することにより、エンティティプロパティがシェアードリンクに基づいて他のエンティティに波及し、イベントパスが確立される。基本的には、イベントパスの確立要求がイベントプレース内のすべてのエンティティに対して波及するが、TTL値で、イベントパス確立要求の波及範囲を制限することができる。なお、グローバルエンティティ名はマルチホップ型ユニキャスト通信時の識別子として、グループ名はマルチホップ型マルチキャスト通信時の識別子として、属性はマルチホップ型属性付きマルチキャスト通信時の識別子として用いられる。例えば、マルチホップ型ユニキャスト通信の代表例として、イベント受信エンティティからイベント送信元エンティティへのリプライ通知がある。
【0098】
すなわち、グローバルエンティティ名はマルチホップ型ユニキャスト通信とは、グローバルエンティティ名で特定されるエンティティのSI−SWからnホップのイベントを送信する通信方式である。また、マルチホップ型マルチキャスト通信とは、グループ名で特定されるグループに属するエンティティのSI−SWにnホップのイベントを送信する通信方式である。また、マルチホップ型属性付きマルチキャスト通信とは、自身と同様の属性のエンティティのSI−SWにnホップのイベントを送信する通信方式である。また、マルチホップ型ブロードキャスト通信とは、任意のエンティティのSI−SWにnホップのイベントを送信する通信方式である。
【0099】
▲5▼図22において、ベースイベントプレースに参加したエンティティYは、「自身が参加したいイベントプレース」を探索するためのディスカバリイベントを送出することにより、「自身のニーズに合致するエンティティプロパティ」を公開しているエンティティを探索する。このディスカバリイベントは、SIONetの制御のために用いられるイベントであり、SEが送出するイベントと同等のものである。ディスカバリイベントとは、NEを発火させるためのイベントであり、イベントの意味情報部には、エンティティプロパティとの照合条件が設定される。すなわち、SIONetにおける新たな機能追加とは、新たな語彙概念と語彙を規定することを意味する(仕組みの追加ではなく、連鎖反応条件の追加)。これにより、単一な仕組み(連鎖反応)だけで、様々な機能追加を可能にしている。
【0100】
ここでは、探索の結果、エンティティ3が発見されたものとする。上述したように、エンティティ3は、ベースイベントプレースと同時にイベントプレースαに参加している。エンティティ3を発見したことにより、エンティティYはイベントプレースαの存在を知ることができる。
▲6▼エンティティYは、エンティティ3に対してイベントプレースαへのJoin要求を発行し、イベントプレースαに参加する。なお、エンティティ3は、前述したように、自身の状態遷移が”アクティブ”であり、かつ、公開モードのときに、Join要求(シェアードリンクの確立要求)を受け付ける。
【0101】
▲7▼さらに、エンティティYは、イベントプレースαにおいて、同様の探索のためのイベントを送出することができる。これにより、自身のニーズに合致する新たなエンティティを発見することができる。例えば、ここでは、エンティティ12が発見されたものとする。すなわち、エンティティYは、ベースイベントプレースにおいて発見することができなかったエンティティ12を、エンティティ3を介して発見できるということを意味している。このような操作を繰り返すことにより、自身のニーズに合致したイベントプレースに、次第にたどり着くことが可能になる。
【0102】
ここで示したアドバタイズメント方式は以下の効果がある。
(1)エンティティの公開情報を管理するブローカ(管理部)が存在しないため、耐障害性に強い自己組織化ネットワークを低コストで構築することができる。また、膨大な数の公開情報(エントリポイントやエンティティプロパティ)をブローカで管理することは現実的でない。
(2)エンティティに取って相応しいイベントプレースを、芋づる式に絞り込むことができるので、効率的に所望のイベントプレースを探索することができる。例えば、連鎖反応の波及範囲(ディスカバリイベントのホップ数、及び、エンティティプロパティのためのイベントパス設定要求の波及範囲)がTTL値で制限されたとしても、上述のように、エンティティ3経由でエンティティ12を発見し、その結果、エンティティ12が同時に属している別のイベントプレースを発見することができる。なお、連鎖反応の波及範囲を制限することにより、ネットワークトラフィック(イベントの転送回数、イベントパス設定要求の転送回数)を軽減することができる。
【0103】
なお、自身は情報を提供することなく(例えば、エンティティプロパティを公開することなく)、他のエンティティからの情報提供を受けるだけのエンティティは、ペナルティーとして、強制的にシェアードリンクが解除され、一定条件を満足しない限り、再度イベントプレースに参加できないようにすることもできる。
【0104】
<SEの共有方法(自動配信)>
以下に、ゲームイベントプレースにおけるSE(ゲームアプリケーションプログラム)の共有を例に、SEの共有方法の仕組みを示す。
(1)ゲームイベントプレースの運営者であるエンティティ2の所有者はエンティティ2のコントロールパネルを介してイベントプレース名を付与する。なお、ここで付与されたイベントプレース名は「ゲーム」であるものとして説明する。
【0105】
(2)エンティティ2のエンティティ制御部は、上述と同様に、NEファクトリにより生成されたSI−SWに対してグローバルエンティティ名「ゲーム+エンティティ2」を付与する。これにより、イベントプレースが生成される。このとき、ゲームイベントプレースの生成者であるエンティティ2は、イベントプレース生成時に当該イベントプレースに自動的に参加する。
(3)エンティティ2の所有者は、当該エンティティ2のコントロールパネルに対して、ゲームアプリケーションプログラム(SE)のプラグインを指示する。このとき、プラグインするアプリケーションの実行ファイル名、及び、SE共有の有無をパラメータとして与える。
【0106】
(4)エンティティ2のコントロールパネルはこの旨をエンティティ制御部に通知する。
(5)エンティティ2のエンティティ制御部は、プラグインする実行ファイル名を記憶するとともに、与えられた実行ファイル名を用いてアプリケーション(SE)を起動し、上述と同様に、SI−SWとアプリケーション間にセッションを確立する。すなわち、SIONetにおけるプラグインとは、アプリケーションとSI−SWとの間にセッションを確立することを意味する。
【0107】
(6)エンティティ2のエンティティ制御部は、エンティティ2のエンティティプロパティをアドバタイズ(公開)する。エンティティ2のエンティティプロパティの公開形態としては、例えば、以下のものがある。
・エンティティ2がベースイベントプレースに参加し、ベースイベントプレース内で、エンティティ2のエンティティプロパティを公開する。
・エンティティ2が、芋づる式探索を行うことにより、ゲームイベントプレースと関係の深いイベントプレースを発見、参加し、当該イベントプレース内で、エンティティ2のエンティティプロパティを公開する。
・エンティティ2をベースエンティティとする。すなわち、エンティティ2のエンティティプロパティ(エントリポイントとグローバルエンティティ名)を周知する。
【0108】
(7)エンティティ2の存在を知ったエンティティ1が、エンティティ2に対して、ゲームイベントプレースへの参加を要求する。
(8)この要求が承認された場合、エンティティ1は、エンティティ2に対して、シェアードリンクの確立を要求する。そして、上述と同様に、エンティティ1とエンティティ2の間にシェアードリンクが確立する。
(9)シェアードリンクが確立された場合、シェアードリンクの確立要求先(エンティティ2)は確立要求元(エンティティ1)に対して、当該イベントプレース内でイベントの送受信に必要な情報を返却する。具体的には、例えば、イベントプレース名(グローバルエンティティ名)、参加したイベントプレースがベースイベントプレースであるか否か、当該イベントプレースにおけるイベント転送方式(ルーティング方式)、イベントプレースのディスクリプション、プラグインされているSE情報(SE共有が有りの場合)等である。
【0109】
SE共有を共有する場合にシェアードリンク確立要求元に返却するSE情報とは、具体的には、例えば、上述したプラグインするアプリケーションの実行ファイル名や当該アプリケーションのファイル等である。
(10)当該ファイルを受けたエンティティ1のエンティティ制御部は、上述と同様に、与えられた実行ファイル名を用いてアプリケーションを起動し、エンティティ1内のSI−SWとアプリケーションとの間にセッションを確立する。これにより、エンティティ1内部に、ゲームアプリケーションプログラムをSEとしてプラグインする。
【0110】
すなわち、イベントプレースへの参加とは、シェアードリンクにより結合されたエンティティグループを形成し、プラグイン済みのアプリケーションプログラムを参加者が共有することを意味する。これにより、イベントプレースに参加するだけで、当該イベントプレース内のメンバーであるエンティティが、プラグインされているアプリケーションを、自動的に利用することが可能になる。なお、エンティティ1がゲームイベントプレースから退去するとき、プラグインされたゲームアプリケーションプログラムは、プラグアウトされる。なおその際、エンティティ1は、受信した当該ファイルを保有しつづけることもできるし、プラグアウト時に、当該ファイルが削除されることもある。
【0111】
上述した動作は、ピュア型のP2Pネットワーク環境でのアプリケーション共有である。そのため、アプリケーションプログラムの配信は、シェアードリンク確立先エンティティと確立元エンティティの2者間でのみ行われるため、シェアードリンクにより既に結合されている他のエンティティに対して影響を与えない。すなわち、ファイル転送のため処理は2者間に局所化されるため、スケーラブルなSE共有を達成することができる。
【0112】
〔この発明の実施形態〕
以下、この発明の実施形態によるSIONet(意味情報ネットワーク)システムを適用したネットワークゲームシステムについて説明する。このシステムはエンタープライズモデルの一つであり、従来のエンタープライズモデルであるクライアントサーバモデル、ハイブリッドモデル、ピュアモデルに比較して、対戦型ネットゲーム等に用いて好適である。この実施形態に係るシステムをセミピュアモデルという。
【0113】
図1はこの発明の一実施形態によるネットワークゲームシステムの構成を示す図である。この図において、EPa〜EPeはネットワークゲームシステムを構成するイベントプレースであり、EPfはネットワークゲームシステムと直接関係のないイベントプレースである。このイベントプレースEPfはネットワークゲームシステムを構成するイベントプレースの存在を広告するためのイベントプレースである。イベントプレースEPaにおいて、αはネットワークゲームシステムの運営者が管理するベースエンティティ(コンピュータ)である。Eb1はエンティティαにシェアードリンクSLによって接続されたエンティティであり、このエンティティEb1は同時にイベントプレースEPbにも所属している。Ec1はエンティティEb1にシェアードリンクSLによって接続されたエンティティであり、このエンティティEc1は同時にイベントプレースEPcにも所属している。Ed1はエンティティEb1にシェアードリンクSLによって接続されたエンティティであり、このエンティティEd1は同時にイベントプレースEPdにも所属している。
【0114】
イベントプレースEPbは、シェアードリンクSLによって接続されたエンティティEb1、Eb2、Eb3によって構成されている。イベントプレースEPcは、シェアードリンクSLによって接続されたエンティティEc1、Ec2によって構成されている。イベントプレースEPdは、シェアードリンクSLによって接続されたエンティティEd1、Ed2、Ed3によって構成されている。イベントプレースEPeは、シェアードリンクSLによって接続されたエンティティEe1、Ee2、Ee3、Ee4によって構成されている。
【0115】
また、イベントプレースEPfは、シェアードリンクSLによって接続されたエンティティβ、Ef1、Ef2、Ef3、αによって構成されている。ここで、エンティティαはイベントプレースEPaを運営するエンティティであり、イベントプレースEPaを宣伝するために(すなわち、ネットワークゲームシステムを宣伝するために)イベントプレースEPfに属しているものである。また、エンティティβはイベントプレースEPaのゲームに参加を希望しているエンティティである。なお、エンティティβはイベントプレースEPfに所属しているエンティティαによりイベントプレースEPaの存在を知ることができる。
【0116】
次に、このネットワークゲームシステムの動作を対戦型ネット麻雀ゲームを例にとり、詳細に説明する。ここで、説明を分かりやすくするため、イベントプレースEPaを麻雀荘イベントプレースと称し、イベントプレースEPb〜EPeを麻雀卓イベントプレースと称する。
【0117】
(1)麻雀荘イベントプレースEPaの運営者が、対戦型ネット麻雀ゲームの主催者であり、麻雀荘イベントプレースEPaに配置されるベースエンティティαのオーナーでもある。このシステムにおけるベースエンティティαは、認証・課金を主目的としたグルーピングの役割を担ったブローカである。ここでは、対戦型ネット麻雀ゲームの主催者が、ベースエンティティαのローカルエンティティ名をエンティティαと命名する。
【0118】
(2)エンティティαは、麻雀荘イベントプレースEPaを生成することにより、当該イベントプレースEPaの最初のメンバーとなる。また、イベントプレースEPaの生成時に、イベントプレースEPaの属性として、「麻雀荘」を設定し、また、麻雀ゲームアプリケーションを、共有モードを指定してプラグインする。
なお、SIONetでは、イベントプレースEPaの管理実体は存在しない。そのため、イベントプレースEPaのメンバーである各エンティティが、イベントプレース属性を管理する。これが、プロパティ項目の一つであるイベントプレース情報であり、エンティティEb1、Ec1、Ed1がイベントプレースEPaのメンバーになった時点で、エンティティマネージャは、イベントプレース情報をプロパティとして自動的に設定する。
【0119】
(3)ベースエンティティαが麻雀荘イベントプレースEPaの存在を外部に公開する。例えば、イベントプレースEPfに参加し、プロパティの公開、つまり、プロパティ項目の一つである「同時に参加しているイベントプレース情報」の公開を用いて、そのイベントプレースEPfのメンバーに麻雀荘イベントプレースを公開する。この方法以外にも、エントランスの公開、Well−Knownポイント(例えば、IPアドレスとグローバルエンティティ名)のアナウンスメントなどの公開手段を用いることができる。
【0120】
(4)いま、イベントプレースEPfのメンバーであるエンティティβが、プロパティのディスカバリイベントを送出する場合を考える。このとき、エンティティβは、プロパティのイベントプレース情報を検索項目として選択し、検索キーワードとして「雀荘」を設定してディスカバリイベントを送出する。これにより、エンティティαが発火する。エンティティαは、受信したディスカバリイベントに対して、リプライイベントを送出する。リプライイベントには、エンティティαのエントリポイントとグローバルエンティティ名「麻雀荘+エンティティα」が格納されている。なお、エンティティαは二つのグローバルエンティティ名を持っている。
【0121】
(5)エンティティβがリプライイベントを受信する。これにより、エンティティβは、麻雀荘イベントプレースEPaおよびそのメンバーであるエンティティαを発見したことになる。ここで、エンティティβのオーナーが麻雀ゲームの参加者に相当する。これで、エンティティβは、エンティティαに対して、麻雀荘イベントプレースEPaへの「参加要求」を行うことが可能となる。
【0122】
(6)エンティティαは、エンティティβからの参加要求を受け、承認判定を行い、次いで、認証・課金を行う。そして、エンティティβの参加要求が承認されたとき、エンティティαは、ディスカバリイベントを送出することにより、エンティティβのシェアードリンク確立先となるエンティティの探索を行う。つまり、プロパティの探索、具体的には、プロパティ項目の一つである「シェアードリンクの確立を受付可能なエンティティ」の探索を行う。その結果、エンティティEc1が発見されるものとする。なお、代替エンティティ(シェアードリンクの受付可能なエンティティ)の探索で適当なエンティティを発見することができるが、この方法以外にも、ベースエンティティであるエンティティαにイベントプレースマネージャの機能を持たせることにより、エンティティαがイベントプレース内のトポロジーを管理することが可能になる。この場合は、自身でシェアードリンクの確立を受付可能なエンティティを把握できるため、代替エンティティの探索が不要になる。
【0123】
(7)エンティティαは、エンティティβにシェアードリンクの確立先エンティティEc1を通知する。このように、エンティティαは、認証・課金、シェアードリンク確立先の通知などグルーピングの役割を担ったブローカである。したがって、エンティティαがダウンした時点で、エンティティβが麻雀荘イベントプレースへ参加することが困難になる。
(8)エンティティβはエンティティEc1にシェアードリンクの確立要求を行うことにより、麻雀荘イベントプレースEPaのメンバーになる。この時、ベースエンティティαの麻雀ゲームアプリケーション(共有が指定されている)がエンティティβに対して自動的にプラグインされる。
【0124】
ここで、エンティティβのユーザはサービスエンティティとしてプラグインされた麻雀ゲームアプリケーションの「保存」を指定する。この「保存」には、次の機能がある。
▲1▼電源断等の後のエンティティの再起動時において、麻雀ゲームアプリケーションがプラグインされた状態で立ち上がる。
▲2▼新たに参加したイベントプレースおいても、保存したアプリケーションが自動的にプラグインされ、利用可能となる。
なお、前述したように、プラグインとは、サービスエンティティとして組み込まれた麻雀ゲームアプリケーションとSI−SWとの間にセッションを確立することをいう。
【0125】
(9)麻雀荘イベントプレースEPaのメンバーになったエンティティβは、麻雀荘イベントプレースEPaにおいて例えば、「女性」をキーワードに麻雀卓イベントプレースの探索を行う。いま、イベントプレースEPdの発火条件が「女性」であったとすると、エンティティβは麻雀卓イベントプレースEPdおよびそのメンバーであるエンティティEd1を発見する。
なお、エンティティβが、既存の麻雀卓イベントプレースを探索するのではなく、新たな属性を持つ麻雀卓イベントプレースを自ら生成・公開し、他の麻雀参加者を集うこともできる。
【0126】
(10)エンティティβは、エンティティEd1に対して麻雀卓イベントプレースEPdへの参加要求を行う。その結果、エンティティβは、麻雀卓イベントプレースEPdのメンバーになることができる。この時、前述した「保存」が指定されている麻雀ゲームアプリケーションがプラグインされ、この麻雀ゲームアプリケーションによるゲームが可能になる。
【0127】
(11)これで、麻雀卓イベントプレースEPdは、4人のメンバーが揃ったことになり、この時点で、麻雀ゲームアプリケーションを用いた麻雀ゲームが開始される。ここで、エンティティEd1は、麻雀荘イベントプレースEPaから退去してもよく、また、麻雀荘イベントプレースEPaの残留してもよい。残留した場合、麻雀卓イベントプレースEPdのメンバーが1人抜け、補充の必要が生じた場合に、麻雀荘イベントプレースEPaを介して容易に補充することができる。
なお、麻雀卓イベントプレースEPeは、メンバー4人が揃い、既にゲームを始めており、麻雀荘イベントプレースEPaにエンティティが残留していない状態を示している。
【0128】
次に、上述したシステムの特徴について考察する。
(A)ブローカレス型配信モデルに基づく麻雀卓イベントプレースの運営
各麻雀卓イベントプレースの運営を司るブローカは存在しない。すなわち、例えば、麻雀卓イベントプレースEPeは、シェアードリンクSLで結合された4つのエンティティにより平等に運営される。ここでは、リーチ情報や捨牌情報などがイベントとして送出されることになる。そして、このようなイベントを受信するのは、麻雀卓イベントプレースのメンバーエンティティだけであり、それ以外のエンティティに影響を与えることはない。
【0129】
これは、イベントプレースの特徴であるイベント波及範囲の制限により保証される。そのため、この利用形態では、イベントプレース内でのイベントルーティング制御を行うよりも、無条件ルーティングを用いたイベントのブロードキャスト通信を用いた方が、イベント転送効率が良いと言える。また、各エンティティは、シェアードリンクによりグループを形成しているため、例えば、エンティティEd3が、麻雀卓イベントプレースEPdから退去しても、シェアードリンクSLの再確立を行うことにより、他のメンバーエンティティに影響を与えることなく、イベントプレースEPdの運営を継続し、新たな参加者を集うことができる。これは、麻雀メンバーの変更を容易にする。
【0130】
麻雀ゲームは、例えば、麻雀卓イベントプレースEPeの場合、そのメンバーである4つのエンティティEe1〜Ee4が提供するコンピューティングリソースを用いて運営される。そのため、麻雀荘イベントプレースEPaの運営者は、麻雀卓イベントプレースの数に比例した設備投資の追加を一切行う必要がない。
【0131】
このように、麻雀卓イベントプレースEPb〜EPeは、ブローカレス配信モデルに基づいて運営されるイベントプレースである。そして、メンバー間での情報共有、すなわち、GnutellaやNapsterのような点(エンティティ)と点(エンティティ)の間での情報配信ではなく、面(メンバーグループとしての広がりを持つイベントプレース)内での複数の点(メンバーであるエンティティ)への情報配信を、ブローカレスで行うための場である。
【0132】
(B)ブローカレス型探索モデルに基づく麻雀卓イベントプレースの発見
麻雀卓イベントプレースEPaのメンバーであるエンティティEb1、Ec1、Ed1は、メンバー募集のために、当該イベントプレースの情報公開を、麻雀荘イベントプレースEPaに対して行う。例えば、エンティティEd1は、女性専用の麻雀卓イベントプレースEPdの紹介を麻雀荘イベントプレースEPaに対して行う。
【0133】
これは、麻雀卓イベントプレースEPdのメンバーであるエンティティEd1〜Ed3の中で、その代表エンティティEd1もしくは全エンティティが、麻雀荘イベントプレースEPaにも参加し、麻雀荘イベントプレースEPaに対してプロパティの公開を行うことにより可能になる。具体的には、プロパティ項目の中で、「同時に参加しているイベントプレース情報」の公開を行う。これにより、メンバーの募集条件である「女性専用」が、ディスカバリイベントの発火条件としてフィルタ登録されることになる。なお、図は、代表者エンティティEd1のみが麻雀荘イベントプレースに参加している様子を表している。ここで、麻雀卓イベントプレースEPdの生成者が、代表者の典型的な例として考えられる。そして、メンバーの募集を終えた当該エンティティEd1は、麻雀荘イベントプレースから退去し、または残留したままで麻雀ゲームを開始する。
【0134】
これまでの説明から明らかなように、麻雀荘イベントプレースEPaは、参加者が、自身に相応しい麻雀卓イベントプレースを探索するための場、もしくは、自身の好みの麻雀卓イベントプレースを生成し、その存在を公開するための場である。そして、この麻雀荘イベントプレースEPaは、麻雀卓イベントプレースを紹介したいエンティティと、自身に相応しい麻雀卓イベントプレースを探索したいエンティティが、シェアードリンクSLで結合されることにより構築される。これにより、麻雀荘イベントプレースEPaに属しているエンティティEb1〜Ed1は、自由に当該イベントプレースEPaから退去することが可能であり、例えば、エンティティEb1に異常が発生しても、シェアードリンクSLの再確立により、エンティティEc1およびエンティティEd1は、麻雀荘イベントプレースEPaにおいて継続的に運営されるため、麻雀卓イベントプレースEPc、および、麻雀卓イベントプレースEPdの公開に支障をきたすことない。
【0135】
また、麻雀荘イベントプレースEPaのメンバーであるエンティティα、Eb1、Ec1、Ed1が提供するコンピューティングリソースを用いて、麻雀荘イベントプレースEPaが運営される。これにより、麻雀荘イベントプレースEPaの運営者(ベースエンティティαのオーナー)は、麻雀卓イベントプレースの数に比例して新たな設備投資を行う必要が全くない。このように、麻雀荘イベントプレースEPaは、ブローカレス型探索モデルに基づいて運営されるイベントプレースである。
【0136】
(C)ベースエンティティを用いた課金・認証
上述したように、この実施形態によるネットワークゲームシステムにおいては、情報探索と情報配信(面としての広がりを持つエンティティグループの探索およびメンバーへの情報配信)がブローカレスで行われる。しかしながら、このネットワークゲームシステムにおいては、ブローカとして、認証・課金機能を司るベースエンティティαが配置、運営される。これのみが、システム運営者に要求される設備投資となる。つまり、ベースエンティティαにより認証されたエンティティのみが麻雀荘イベントプレースEPaに参加することができ、これを契機に、参加者に対し課金することが可能となる。そのため、ベースエンティティαがシステムダウンした場合や、当該イベントプレースEPaから退去した時点で、麻雀ネットワークゲームシステムの運営が困難になり、サービスを提供できなくなる。そのため、ベースエンティティであるエンティティαは安定的に運営される必要がある。
上述したシステムは、SIONetの仕組みによって初めて可能になる新たなエンタープライズモデルと言える。
【0137】
なお、エンティティが起動される時、プロパティ項目の一つである動作環境属性が設定され、アプリケーション(サービスエンティティ(SE))のプラグインや共有はこの動作環境属性に基づいて行われる。動作環境属性には、以下のものがある。
▲1▼エンティティの処理能力(CPUパワー、メモリ容量、通信帯域等)
▲2▼エンティティが動作するために必要なOS種別、ミドルウエア種別等
▲3▼サービスエンティティ(アプリケーション)の実行形態(実装形態):実行形式ファイル、分散オブジェクト、もしくは、プロキシであるのか等の実装依存情報
▲4▼サービスエンティティ実体の配置場所
【0138】
エンティティは、上述した動作環境属性を用いて、以下のような機能を実現する。
▲1▼プラグインは、P2Pソフトウエアをサービスエンティティ(アプリケーション)としてエンティティ内に組み込むことにより、P2PソフトウエアをSIONetの動作単位として仮想化する。この時、サービスエンティティは、動作環境属性に基づいて、アプリケーションの実装形態、アプリケーションの配置場所などの物理的な動作環境を隠蔽する。
▲2▼動作環境属性を指定したサービスエンティティ探索に用いられる。すなわち、探索元エンティティの動作環境に合致するサービスエンティティの探索に利用される。
【0139】
▲3▼以下のようなサービスエンティティ共有機構を実現する。
▲3▼−(1) P2Pアプリケーションの実装情報を隠蔽する。たとえば、P2Pアプリケーションの動作環境、格納場所、実行形式などを隠蔽し、アプリケーションをSIONetのコンピューティング資源として仮想化する。これにより、P2Pアプリケーションの着脱化を容易にする。
【0140】
▲3▼−(2) 動作環境属性(共有されるサービスエンティティの動作環境であるOS種別、ミドルウエア種別などに基づいて、共有するSE実体を選定する。
▲3▼−(3) 動作環境属性に基づくSE実体の配置場所の決定、 SE実体の共有度に基づく配置方法など、さまざまな実装方法があるが、サービスエンティティという抽象化の概念がこれらの実装方法を完全に隠蔽する。サービスエンティティの実体であるアプリケーションプログラムが、どこに配置されているか等の情報を隠蔽する。すなわち、サービスエンティティのコピーとは、仮想化された概念をコピーするのであって、その実体をコピーすることを意味していない。
【0141】
▲3▼−(4) サービスエンティティの実体であるアプリケーションプログラムを隠蔽する。たとえば、アプリケーションプログラムが、実行形式ファイル、分散オブジェクト、もしくは、プロキシであるのか等の実装依存情報を意識する必要がない。
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【0142】
【発明の効果】
以上説明したように、本発明によれば、サービス希望者がイベントプレースに参加することにより、サービス希望者自身のエンティティをサービス運営のために提供することになる。これにより、イベントプレース運営者は新たな設備投資を必要とせず、したがって、安価で、スケーラブルなP2Pサ−ビス環境を構築することができる。また、この発明によれば、サービス提供者のエンティティにおいて、当該イベントプレースに参加するサービス希望者(エンティティ)の認証、課金を行うことができる。
【図面の簡単な説明】
【図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】SIONetを用いた従来のサービス提供システムの構成例を示すブロック図である。
【図26】SIONetを用いた従来のサービス提供システムの構成例を示すブロック図である。
【図27】SIONetを用いた従来のサービス提供システムの構成例を示すブロック図である。
【符号の説明】
EPa〜EPf…イベントプレース
Eb1〜Eb3、Ec1、Ec2、Ed1〜Ed3、Ee1〜Ee4、Ef1〜Ef3…エンティティ
SL…シェアードリンク

Claims (7)

  1. サービス提供者が、自らが管理するエンティティをベースエンティティとしてベースイベントプレースを生成する過程と、
    サービス希望者のエンティティが、前記ベースエンティティへ参加申込をすることによって前記ベースイベントプレースに参加する過程と、
    前記ベースイベントプレースの参加者のエンティティが、該ベースイベントプレースに所属しつつ新たな個別イベントプレースを生成する過程と、
    前記ベースイベントプレースの他の参加者のエンティティが前記ベースイベントプレースにおいて希望する個別イベントプレースを検出する過程と、
    前記他の参加希望者のエンティティが前記個別イベントプレースに参加する過程と、
    を有することを特徴とする意味情報ネットワークにおけるサービス提供方法。
  2. 前記サービス提供者は、前記サービス希望者のエンティティが前記ベースエンティティに参加申込を行った時に、前記参加希望者に対し認証および課金を行うことを特徴とする請求項1に記載の意味情報ネットワークにおけるサービス提供方法。
  3. 前記ベースエンティティのアプリケーションに「共有」が指定された時、前記ベースイベントプレースに参加したエンティティに前記ベースエンティティのアプリケーションが自動的にプラグインされることを特徴とする請求項1または請求項2に記載の意味情報ネットワークにおけるサービス提供方法。
  4. 前記ベースイベントプレースに参加したエンティティにおいてアプリケーションの「保存」が指定された時、前記アプリケーションは新たに参加した前記個別イベントプレースにおいても自動プラグインされることを特徴とする請求項1〜請求項3のいずれかの項に記載の意味情報ネットワークにおけるサービス提供方法。
  5. サービス提供者が管理するエンティティをベースエンティティとするベースイベントプレースと、
    サービス希望者のエンティティによって構成された複数の個別イベントプレースとからなり、
    前記個別イベントプレースを構成するエンティティの少なくとも1つが前記ベースイベントプレースにも属していることを特徴とする意味情報ネットワークシステム。
  6. 前記サービス提供者が管理するエンティティは、前記ベースイベントプレースの参加者のエンティティに対し認証および課金の通知を行うことを特徴とする請求項5に記載の意味情報ネットワークシステム。
  7. コンピュータに、
    ベースイベントプレースを生成する処理と、
    サービス希望者のエンティティによる参加申込に対する認証および課金の処理と、
    前記サービス希望者のエンティティに接続先エンティティを知らせる処理と、
    を実行させるためのプログラム。
JP2003057307A 2003-03-04 2003-03-04 意味情報ネットワークにおけるサービス提供方法および意味情報ネットワークシステム並びにプログラム Pending JP2004265325A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003057307A JP2004265325A (ja) 2003-03-04 2003-03-04 意味情報ネットワークにおけるサービス提供方法および意味情報ネットワークシステム並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003057307A JP2004265325A (ja) 2003-03-04 2003-03-04 意味情報ネットワークにおけるサービス提供方法および意味情報ネットワークシステム並びにプログラム

Publications (1)

Publication Number Publication Date
JP2004265325A true JP2004265325A (ja) 2004-09-24

Family

ID=33120766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003057307A Pending JP2004265325A (ja) 2003-03-04 2003-03-04 意味情報ネットワークにおけるサービス提供方法および意味情報ネットワークシステム並びにプログラム

Country Status (1)

Country Link
JP (1) JP2004265325A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008525132A (ja) * 2004-12-29 2008-07-17 ▲ホア▼▲ウェイ▼技術有限公司 モバイルオンラインゲームシステム、及びモバイルゲーム端末間の通信方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008525132A (ja) * 2004-12-29 2008-07-17 ▲ホア▼▲ウェイ▼技術有限公司 モバイルオンラインゲームシステム、及びモバイルゲーム端末間の通信方法
JP4833995B2 (ja) * 2004-12-29 2011-12-07 ▲ホア▼▲ウェイ▼技術有限公司 モバイルオンラインゲームシステム、及びモバイルゲーム端末間の通信方法
US8353771B2 (en) 2004-12-29 2013-01-15 Huawei Technologies Co., Ltd. System of mobile online game and method for communicating between mobile game terminals

Similar Documents

Publication Publication Date Title
JP3850378B2 (ja) エンティティ装置、アドホックネットワーク構築方法及びアドホックネットワーク構築プログラム並びにその記憶媒体
JP3946658B2 (ja) エンティティ装置、イベント転送制御方法、イベント転送制御プログラム及びその記録媒体
JP3987817B2 (ja) エンティティ装置、サービス共有方法、及び、コンピュータプログラム
JP3803329B2 (ja) エンティティ装置、代替エンティティ探索方法及び代替エンティティ探索プログラム並びにその記録媒体
JP3723126B2 (ja) エンティティ装置、名称付与方法、記録媒体及びプログラム
JP2004265325A (ja) 意味情報ネットワークにおけるサービス提供方法および意味情報ネットワークシステム並びにプログラム
JP3723127B2 (ja) エンティティ装置、情報公開システム、方法、記録媒体及びプログラム
Li ECSP: An efficient clustered super-peer architecture for P2P networks
JP3822178B2 (ja) エンティティ装置、障害回復方法、及び、コンピュータプログラム
JP3983187B2 (ja) エンティティ装置、リンク再確立方法、及び、コンピュータプログラム
JP3850379B2 (ja) 意味情報ネットワークの構築方法および意味情報ネットワークシステム並びにプログラム
JP3792664B2 (ja) エンティティ装置、リプライ通知制御方法、リプライ通知制御プログラム及びその記録媒体
JP3910550B2 (ja) 意味情報ネットワークにおけるデータ検索方法および意味情報ネットワークシステム並びにプログラム
JP4028429B2 (ja) コンピュータ、イベントプレース探索方法、及び、コンピュータプログラム
JP3844747B2 (ja) エンティティ装置、シェアードリンク再確立方法、シェアードリンク再確立プログラム及びその記録媒体
JP3782345B2 (ja) 組み込みシステム、方法、記録媒体及びプログラム
JP3974357B2 (ja) シェアードリンク設定方法、通信システム、エンティティ装置、およびそのコンピュータプログラムならびにその記録媒体
JP3974054B2 (ja) エンティティ装置、シェアードリンク制御方法、認証方法及びシェアードリンク制御プログラム並びにその記録媒体
CN100433657C (zh) 适用于大规模流媒体直播系统的对等网络成员管理方法
JP3974158B2 (ja) イベントプレース探索方法、通信システム、エンティティ装置、およびそのコンピュータプログラムならびにその記録媒体
JP3977387B2 (ja) 意味情報スイッチ、意味情報ルータ、方法、記録媒体、プログラム
JP2003032292A (ja) 意味情報スイッチ、意味情報ルータ、方法、記録媒体、プログラム
KR100834450B1 (ko) P 2 p 그룹핑과 서칭 방식을 통한 w i p i모바일커뮤니티 네트워크 구현 장치 및 방법
JP4060325B2 (ja) 意味情報スイッチ、意味情報ルータ、方法、記録媒体、プログラム
JP3977388B2 (ja) 意味情報スイッチ、意味情報ルータ、方法、記録媒体、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061010

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061211

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070703