(57)【要約】【課題】  分散システム環境においてデータ共有が行われる場合に、個々の分散コンポーネントが、通信状況に影響されずに、共有データの管理を行えるようにする。【解決手段】  黒板アーキテクチャを、通信状態が不安定な通信端末（例えば、モバイル端末）に対応するように拡張する。例えば、拡張された黒板アーキテクチャでは、知識源を黒板に格納し、各モバイル端末上に黒板単位に分散多重化して、各モバイル端末が、それぞれ分散型黒板を有するようにする。また、分散型黒板間のデータ一貫性を保つために、任意のモバイル端末が無線遮断中に更新された知識源に対して、そのモバイル端末が無線遮断状況から回復した時点で、そのモバイル端末が有する分散型黒板に格納されている知識源を遅延同期できるようにする。【選択図】  図４
2006126972.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信端末によってデータが共有されるデータ共有システムであって、
共有されるべき前記データが前記複数の通信端末のそれぞれに対して分散多重化されており、前記複数の通信端末のそれぞれが独立して、自端末内の前記データを参照及び更新するとともに、他の前記通信端末との間で通信が可能か否かを監視し、前記通信が可能な場合に、他の前記通信端末に対して前記データの更新結果を通知することによって前記データの同期化が行われるように構成されているデータ共有システム。
【請求項２】
前記複数の通信端末のうちの少なくとも１つが無線通信環境を有するモバイル端末であって、前記モバイル端末が無線遮断時においても自端末内の前記データを参照及び更新するとともに、無線遮断回復時に、他の前記通信端末に対して前記データの更新結果を通知するように構成されている請求項１に記載のデータ共有システム。
【請求項３】
前記複数の通信端末のうちの少なくとも１つが無線通信環境を有するモバイル端末であって、前記モバイル端末が無線遮断回復時に、前記データの更新結果の通知を受けるように構成されている請求項１又は２に記載のデータ共有システム。
【請求項４】
前記通信端末が、前記他の通信端末から受けた前記データの更新結果を自通信端末内に格納されている前記データに反映する際、前記データの同期化を正しく行うために前記データの更新に係る競合を解決するように構成されている請求項１から３のいずれか１つに記載のデータ共有システム。
【請求項５】
前記データの分散多重化機構及び前記データの同期化機構と、データモデルとが分離されており、前記分散多重化機構及び前記同期化機構における前記データモデルの制御方法が、アクセスポリシーによって規定されている請求項１から４のいずれか１つに記載のデータ共有システム。
【請求項６】
前記分散多重化機構及び前記同期化機構の追加又は変更、並びに前記アクセスポリシーの追加又は変更を行うことによって、異種機器又は異種システム間における前記データの共有を可能とする請求項１から５のいずれか１つに記載のデータ共有システム。
【請求項７】
前記データを共有する前記複数の通信端末のうちのいずれか１つによって保持される前記データに対して、マスタ識別子が設定される請求項１から６のいずれか１つに記載のデータ共有システム。
【請求項８】
複数のエージェントによって共有されるデータが格納される共有データ空間を有する黒板モデルにおけるデータ共有システムであって、
前記共有データ空間及び前記共有データ空間内の前記データを前記複数のエージェントのそれぞれに対して分散多重化する分散多重化機構と、
前記分散多重化機構において前記複数のエージェントのそれぞれが更新した前記データの更新結果が、他のエージェントに対して通知されることによって、前記共有データ空間内のデータ同期化を行う同期化機構と、
前記分散多重化機構及び前記同期化機構によるデータモデルの制御方法を規定するアクセスポリシーが格納されているアクセスポリシー部とを、
有するデータ共有システム。
【請求項９】
前記同期化機構において、前記エージェント間の通信状況に基づいて、前記更新結果の通知タイミングが決定されるように構成されている請求項８に記載のデータ共有システム。
【請求項１０】
前記エージェントが、無線遮断時においても自エージェントが管理する前記データを参照及び更新するとともに、無線遮断回復時に、他の前記エージェントに対して前記データの更新結果を通知するように構成されている請求項８又は９に記載のデータ共有システム。
【請求項１１】
前記エージェントが、無線遮断回復時に前記データの更新結果の通知を受けるように構成されている請求項８から１０のいずれか１つに記載のデータ共有システム。
【請求項１２】
前記同期化機構が、前記データの同期化を正しく行うために、前記エージェント間における前記データの更新に係る競合を解決する競合解決機構を有する請求項８から１１のいずれか１つに記載のデータ共有システム。
【請求項１３】
前記データを共有する前記複数のエージェントのうちのいずれか１つによって保持される前記データに対して、マスタ識別子が設定される請求項８から１２のいずれか１つに記載のデータ共有システム。
【請求項１４】
複数のエージェントがデータの共有を行う分散システム環境におけるデータ共有方法であって、
前記複数のエージェントのそれぞれが、自エージェントが属する通信端末内に保持されているデータ書庫に、共有すべき前記データを格納する共有データ格納ステップと、
前記複数のエージェントのうちの任意のエージェントが、自エージェントが属する通信端末内の前記データ書庫に格納されている前記データを参照及び更新するデータ更新ステップと、
前記データ更新ステップで前記データの更新を行った前記任意のエージェントが、前記他のエージェントと通信を行うことが可能か否かを判断する通信状況監視ステップと、
前記通信状況監視ステップで前記他のエージェントと前記通信を行うことが可能であると判断された場合に、前記データの更新を行った前記任意のエージェントが、他のエージェントに対して、前記データ更新ステップにおける前記データの更新結果を通知する更新結果通知ステップと、
前記他のエージェントが、前記データの前記更新結果に基づいて、自エージェントが属する通信端末内に保持されている前記データ書庫の前記データを更新する更新結果反映ステップとを、
有するデータ共有方法。
【請求項１５】
前記更新結果通知ステップにおいて、前記データ更新ステップにおける前記データの前記更新結果として、更新された前記データの差分情報が通知される請求項１４に記載のデータ共有方法。
【請求項１６】
前記データ更新ステップと前記更新結果通知ステップとがそれぞれ独立した処理として制御される請求項１４又は１５に記載のデータ共有方法。
【請求項１７】
前記エージェントが、前記他のエージェントから受けた前記データの更新結果を自通信端末内の前記データ書庫に格納されている前記データに反映する際、前記データの更新に係る競合を解決する競合解決ステップを有する請求項１４から１６のいずれか１つに記載のデータ共有方法。
【請求項１８】
前記複数のエージェントのそれぞれが属する通信端末のうちの少なくとも１つの通信端末が、モバイル端末である請求項１４から１７のいずれか１つに記載のデータ共有方法。
【請求項１９】
前記複数の通信端末のうちのいずれか１つによって保持される前記データに対して、マスタ識別子を設定する識別子設定ステップを有する請求項１４から１８のいずれか１つに記載のデータ共有方法。
【請求項２０】
所定のポリシーに基づいて、前記通信端末間で、前記データに対して設定される前記マスタ識別子を移動する識別子設定変更ステップを有する請求項１９に記載のデータ共有方法。
【請求項２１】
分散システム環境において、他のエージェントと同一のデータを共有する黒板モデルにおけるエージェントを実現するためのエージェントプログラムであって、
前記他のエージェントと共有する前記データを、自通信端末内のデータ書庫に格納する共有データ格納ステップと、
前記自通信端末内の前記データ書庫に格納されている前記データを参照及び更新するデータ更新ステップと、
前記データ更新ステップで前記データの更新を行った場合には、前記他のエージェントと通信を行うことが可能か否かを判断する通信状況監視ステップと、
前記通信状況監視ステップで前記他のエージェントと前記通信を行うことが可能であると判断された場合に、他のエージェントに対して、前記データ更新ステップにおける前記データの更新結果を通知する更新結果通知ステップとを、
有するデータ共有方法を実行するためのエージェントプログラム。
【請求項２２】
前記エージェントが、前記他のエージェントとの無線通信が遮断している場合においても前記データ更新ステップを実行するとともに、無線遮断回復時に前記更新結果通知ステップを実行する請求項２１に記載のエージェントプログラム。
【請求項２３】
前記データ更新ステップの実行タイミングと、前記更新結果通知ステップの実行タイミングとをそれぞれ異なる短期トランザクション区間として設定するとともに、前記データ更新ステップに係る前記短期トランザクション区間と、前記更新結果通知ステップに係る前記短期トランザクション区間とを含む長期トランザクション区間を設定することによって、前記データ更新ステップにおける前記データの更新結果に関して、遅延同期を可能とする請求項２１又は２２に記載のエージェントプログラム。
【請求項２４】
前記他のエージェントから受けた前記データの更新結果を自通信端末内の前記データ書庫に格納されている前記データに反映する際、前記データの更新に係る競合を解決する競合解決ステップを有する請求項２１から２３のいずれか１つに記載のエージェントプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散システム環境（分散環境）における通信端末のデータ共有方法及びデータ共有システム並びにエージェントプログラムに関し、特に、無線通信環境に置かれた移動通信端末間において、黒板モデルを利用したエージェント間のデータ共有方法及びデータ共有システム並びにエージェントプログラムに関する。
【背景技術】
【０００２】
近年、異種システム間のデータ共有化・データ同期化技術の進歩（例えば、分散オブジェクトデータベース技術や、ＸＭＬ（eXtensible Markup Language）メタスキーマ技術などの進歩）によって、オープンネットワークにおけるＢ２Ｂ（Business to Business）・Ｂ２Ｃ（Business to Consumer）などの情報サービスの連携が、効率的に実現されるようになった。また、来るユビキタスネットワーク社会（非特許文献１参照）に向けて、異種システム間の情報サービス連携を高効率化するための技術が研究されており、エージェント技術が活発に利用されている。ユビキタスネットワーク社会では、移動する人や機器（以下、移動体）に対し、コンテキストに応じてサービスを提供し、移動体を支援するシステムが不可欠である。現在のカーナビに代表される各種ナビゲーションシステムは、その先駆けとして考えられる。現在、これらのシステムはそれぞれ独自に発展してきている。今後、これらのシステムが連携して、統合したサービスとして移動体を支援することが課題となってくると考えられる。
【０００３】
また、次世代ナビゲーションシステムにおいては、移動体が持つ情報端末（例えば、カーナビゲーション、携帯電話、ＰＤＡ（Personal Digital Assistant）。以降、モバイル端末と呼ぶ）が、無線通信を始めとした様々な通信ネットワークを利用して、バックネット側のホストの役割を果たすホストコンピュータ機器（例えば、自宅・オフィスのパソコンやセンターサーバ。以降、ホストと呼ぶ）と連携するとともに、さらにはモバイル端末間で連携し、移動体を支援すると考えられる（図１参照）。なお、図１には、次世代ナビゲーションの世界が模式的に図示されている。
【０００４】
我々は、この世界における新しい情報サービスのアプリケーションコンセプトとして、『ランデブーアシスタンス』を提案している（非特許文献２参照）。これは、移動体がモノ（人、未知なる場所や情報）に出会うことを支援するナビゲーションサービスである。『ランデブーアシスタンス』では、例えば、複数のユーザが集合する際は、道路案内、情報提案、自分や相手の位置把握、自分や相手のスケジュール監視による連携などにより支援が行われる。また、不慮の事態の場合は、集合地点を適宜、変更する。これらの実現には、各ノード（ホスト、モバイル端末）が連携することによる、移動体の「移動に追従する情報サービス」や移動体間の「情報端末非依存のコミュニケーション」が基本となる。
【０００５】
また、ノードの連携には、ノード間の情報共有が不可欠である。情報共有として、個人におけるノード間の情報共有と、複数人におけるノード間の情報共有を実現する必要がある。前者は、「移動に追従する情報サービス」に、後者は「情報端末非依存のコミュニケーション」に必要となる。例えば、「スケジュールの連携」のアプリにおいて、前者は、個人が移動シーンに応じて端末を切り替えながらシングルトン（実現方式において多重化される場合であっても、概念的・仮想的に唯一の存在であること）なスケジュールデータを利用、編集するような場面で実施される。後者は、関係する各ユーザが、シングルトンなスケジュールデータをほぼリアルタイムに利用、編集する場面で実施される（図２参照）。なお、図２（Ａ）には個人におけるスケジュールの連携が、図２（Ｂ）には複数人によるスケジュールの連携が、それぞれ模式的に図示されている。
【０００６】
これら連携を行う上では、移動状態にあるユーザに負担をかけないことが必要である。そこで、個々のノード間及びノード内部で相互作用するアプリケーションプロセスを、コンテキストに応じ自律的に振る舞えるようにエージェント化することが考えられる。各連携の実現には、これらエージェント間の情報共有方法の確立が必要である。例えば、分散システム環境におけるエージェントの情報共有方法としては、「黒板モデル」がよく知られている。黒板モデルとは、複数のエージェントに対し共有データ空間を用意して、エージェント間の協調を実現するモデルである。この黒板モデルは、『ランデブーアシスタンス』のエージェント間での情報共有の基盤になり得ると考えられる。
【０００７】
非特許文献１２には、黒板モデルを実現する構造である黒板アーキテクチャは、分散オブジェクト間で知識源（データ）を共有化し、共有化された知識源を用いて相互作用・協調動作するためのアーキテクチャパターンとして紹介されている（図３参照）。なお、図３は、黒板モデルの静的モデルをＵＭＬ（Unified Modeling Language）によって図示したクラス図である。黒板コンポーネントであるBlackboard、知識源コンポーネントであるKnowledgeSourceと、これらの制御担当コンポーネントであるcontrolから構成される。それぞれは、共有データを格納する共通領域（共有データ書庫）、共有データ自体（共有データ）、共有データの制御（スケジューラ）の役割を持っていると考えてよい。各部分問題を割り当てられたエージェントは、これを利用して相互に、問題や解に関するデータ共有を行うことで、全体の問題を解決することができるようになる。
【０００８】
また、分散システム環境における共有データシステムとして、古典的にはLinda（非特許文献８参照）が存在する。Lindaは、tuple spaceと呼ばれる分散共有メモリシステムを使用した分散システム環境での並列処理システムである。しかしながら、Lindaが持つ共有データリポジトリは１つであり、モバイル環境で必要なノードの移動性に対応していない。一方、これをモバイル環境に拡張したLIME（Linda in a Mobile Environment：非特許文献９参照）や、MARS（Mobile Agent Reactive Space：非特許文献１０参照）のシステムが存在している。LIMEは、モバイルエージェントが決められたtupleとそのtuple spaceを保持し、エージェントの移動やノードの通信接続により、一時的なtuple spaceを作りだすことでデータ共有を実現する。また、MARSは、モバイルエージェントが、所望のtupleがあるtuple spaceが存在するノードに移動して、データ共有を図る方法である。
【非特許文献１】総務省：情報通信白書（２００４年版）
【非特許文献２】FIPA(The Foundation for Intelligent Physical Agents)：http://www.fipa.org
【非特許文献３】ランデブーアシスタンス：http://www.d-itlab.co.jp/ja/research/nag.html
【非特許文献４】増永良文、上林弥彦、金森吉成、北川博之、今井浩、古川哲也、徐海燕、加藤和彦：協調能動型データベースシステム技術の研究に向けて
【非特許文献５】宮西洋太郎、中村健二、佐藤文明、水野忠則：分散システムにおけるデータの複製管理方式
【非特許文献６】黒田正博、Lousheng Peng、渡辺尚、水野忠則、下間芳樹：オブジェクト同期化モデルを用いた無線ネットワークでのデータ転送方式
【非特許文献７】黒田正博、井上淳、渡辺尚、水野忠則：楽観的データ整合性モデルを用いた放浪型メッセージングシステム
【非特許文献８】GD.Gelernter. Generative Communication in Linda. ACM Computing Surveys, 7(1):80-112, Jan. 1985.
【非特許文献９】G.Picco, A.Murphy, and G.-C.Roman. LIME:Linda Meets Mobility. In D.Garlan, editor, Proc. Of the 21st Int. Conf. on Software Engineering, pages 368-377, May 1999.
【非特許文献１０】G.Cabri, L.Leonardi, and F.Zambornelli. MARS:A programmable coordination architecture for mobile agents. IEEE Internet Computing, 2000.
【非特許文献１１】Erich Gamma：オブジェクト指向における再利用のためのデザインパターン
【非特許文献１２】Ｆ．ブッシュマン、Ｈ．ローネルト、Ｍ．スタル、Ｒ．ムニエ、Ｐ．ゾンメルラード：ソフトウェアアーキテクチャ −ソフトウェア開発のためのパターン体系−
【非特許文献１３】JADE:http://jade.tilab.com/
【非特許文献１４】SyncML:http://www.openmobilealliance.org/tech/affiliates/syncml/syncmlindex.html
【非特許文献１５】Sync4j:http://sync4j.funambol.com
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述のような情報共有方法を実現するためには、サービスの稼働環境、アプリケーション、ビジネス要因より、それぞれ、以下のような課題がある。
（１）移動体環境におけるデータ共有
モバイル端末が中心の移動体が置かれる環境では、無線通信による接続が前提となる。さらに各端末は、突然電源が切られるなど稼働は保証されない。そのため、安定した接続が保証されない。無線遮断時にはデータ共有が不可能となる。そのため、各エージェントは他のノードの接続状態や、共有データのアクセス状態にかかわらず、処理を継続することが必要になる。そのために、共有データを分散させ、同期化手法を用いて、データ共有を行うことになる。さらに、無線環境ではナローバンドであり、また端末はリソース制約が厳しいため、同期のための転送データ量は、なるべく少なくする必要がある。
（２）共有データのアクセスコントロール
例えば、『ランデブーアシスタンス』においては、「スケジュール連携」をはじめとして、個人の情報を共有することが必須である。よって、アクセスコントロールは基本機能となる。そのため、まず、アクセスの単位となる、共有データのグループ化や、共有データ間の関連を構造化できる必要がある。さらに、同期化手法には、アクセス単位に応じた制御機構が必要になる。
（３）異種機器・システムベンダへの対応
多くの異種の機器、システムが関係するため、多ベンダへの対応を図るためには、ポータビリティ性の確保（実装の入れ替え、変更が可能）が必要になる。
【００１０】
また、上述のLIME及びMARSは、両手法とも、モバイルエージェントを利用しているため、異種のシステムを対象にした場合、移動先での動作の保証が出来ないため直接前提にできない。また、複数の端末が共に共有データにアクセスできないような状況で、端末間でそのデータの共有をしたい場合があるが、対応するには多重化への拡張が必要となる。
【００１１】
本発明は、上記の課題に鑑み、分散システム環境においてデータ共有が行われる場合に、個々の分散コンポーネントが、通信状況に影響されずに、共有データの管理を行うことを可能とするデータ共有システム及びデータ共有方法並びにエージェントプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明のデータ共有システムは、複数の通信端末によってデータが共有されるデータ共有システムであって、
共有されるべき前記データが前記複数の通信端末のそれぞれに対して分散多重化されており、前記複数の通信端末のそれぞれが独立して、自端末内の前記データを参照及び更新するとともに、他の前記通信端末との間で通信が可能か否かを監視し、前記通信が可能な場合に、他の前記通信端末に対して前記データの更新結果を通知することによって前記データの同期化が行われるように構成されている。
【００１３】
また、本発明のデータ共有システムは、上記構成に加えて、前記複数の通信端末のうちの少なくとも１つが無線通信環境を有するモバイル端末であって、前記モバイル端末が無線遮断時においても自端末内の前記データを参照及び更新するとともに、無線遮断回復時に、他の前記通信端末に対して前記データの更新結果を通知するように構成されている。
【００１４】
また、本発明のデータ共有システムは、上記構成に加えて、前記複数の通信端末のうちの少なくとも１つが無線通信環境を有するモバイル端末であって、前記モバイル端末が無線遮断回復時に、前記データの更新結果の通知を受けるように構成されている。
【００１５】
また、本発明のデータ共有システムは、上記構成に加えて、前記通信端末が、前記他の通信端末から受けた前記データの更新結果を自通信端末内に格納されている前記データに反映する際、前記データの同期化を正しく行うために前記データの更新に係る競合を解決するように構成されている。
【００１６】
また、本発明のデータ共有システムは、上記構成に加えて、前記データの分散多重化機構及び前記データの同期化機構と、データモデルとが分離されており、前記分散多重化機構及び前記同期化機構における前記データモデルの制御方法が、アクセスポリシーによって規定されている。
【００１７】
また、本発明のデータ共有システムは、上記構成に加えて、前記分散多重化機構及び前記同期化機構の追加又は変更、並びに前記アクセスポリシーの追加又は変更を行うことによって、異種機器又は異種システム間における前記データの共有を可能とする。
【００１８】
また、本発明のデータ共有システムは、上記構成に加えて、前記データを共有する前記複数の通信端末のうちのいずれか１つによって保持される前記データに対して、マスタ識別子が設定される。
【００１９】
また、上記目的を達成するため、本発明のデータ共有システムは、複数のエージェントによって共有されるデータが格納される共有データ空間を有する黒板モデルにおけるデータ共有システムであって、
前記共有データ空間及び前記共有データ空間内の前記データを前記複数のエージェントのそれぞれに対して分散多重化する分散多重化機構と、
前記分散多重化機構において前記複数のエージェントのそれぞれが更新した前記データの更新結果が、他のエージェントに対して通知されることによって、前記共有データ空間内のデータ同期化を行う同期化機構と、
前記分散多重化機構及び前記同期化機構によるデータモデルの制御方法を規定するアクセスポリシーが格納されているアクセスポリシー部とを、
有する。
【００２０】
また、本発明のデータ共有システムは、上記構成に加えて、前記同期化機構において、前記エージェント間の通信状況に基づいて、前記更新結果の通知タイミングが決定されるように構成されている。
【００２１】
また、本発明のデータ共有システムは、上記構成に加えて、前記エージェントが、無線遮断時においても自エージェントが管理する前記データを参照及び更新するとともに、無線遮断回復時に、他の前記エージェントに対して前記データの更新結果を通知するように構成されている。
【００２２】
また、本発明のデータ共有システムは、上記構成に加えて、前記エージェントが、無線遮断回復時に前記データの更新結果の通知を受けるように構成されている。
【００２３】
また、本発明のデータ共有システムは、上記構成に加えて、前記同期化機構が、前記データの同期化を正しく行うために、前記エージェント間における前記データの更新に係る競合を解決する競合解決機構を有する。
【００２４】
また、本発明のデータ共有システムは、上記構成に加えて、前記データを共有する前記複数のエージェントのうちのいずれか１つによって保持される前記データに対して、マスタ識別子が設定される。
【００２５】
また、上記目的を達成するため、本発明のデータ共有方法は、複数のエージェントがデータの共有を行う分散システム環境におけるデータ共有方法であって、
前記複数のエージェントのそれぞれが、自エージェントが属する通信端末内に保持されているデータ書庫に、共有すべき前記データを格納する共有データ格納ステップと、
前記複数のエージェントのうちの任意のエージェントが、自エージェントが属する通信端末内の前記データ書庫に格納されている前記データを参照及び更新するデータ更新ステップと、
前記データ更新ステップで前記データの更新を行った前記任意のエージェントが、前記他のエージェントと通信を行うことが可能か否かを判断する通信状況監視ステップと、
前記通信状況監視ステップで前記他のエージェントと前記通信を行うことが可能であると判断された場合に、前記データの更新を行った前記任意のエージェントが、他のエージェントに対して、前記データ更新ステップにおける前記データの更新結果を通知する更新結果通知ステップと、
前記他のエージェントが、前記データの前記更新結果に基づいて、自エージェントが属する通信端末内に保持されている前記データ書庫の前記データを更新する更新結果反映ステップとを、
有する。
【００２６】
また、本発明のデータ共有方法は、上記構成に加えて、前記更新結果通知ステップにおいて、前記データ更新ステップにおける前記データの前記更新結果として、更新された前記データの差分情報が通知される。
【００２７】
また、本発明のデータ共有方法は、上記構成に加えて、前記データ更新ステップと前記更新結果通知ステップとがそれぞれ独立した処理として制御される。
【００２８】
また、本発明のデータ共有方法は、上記構成に加えて、前記エージェントが、前記他のエージェントから受けた前記データの更新結果を自通信端末内の前記データ書庫に格納されている前記データに反映する際、前記データの更新に係る競合を解決する競合解決ステップを有する。
【００２９】
また、本発明のデータ共有方法は、上記構成に加えて、前記複数のエージェントのそれぞれが属する通信端末のうちの少なくとも１つの通信端末が、モバイル端末である。
【００３０】
また、本発明のデータ共有方法は、上記構成に加えて、前記複数の通信端末のうちのいずれか１つによって保持される前記データに対して、マスタ識別子を設定する識別子設定ステップを有する。
【００３１】
また、本発明のデータ共有方法は、上記構成に加えて、所定のポリシーに基づいて、前記通信端末間で、前記データに対して設定される前記マスタ識別子を移動する識別子設定変更ステップを有する。
【００３２】
また、上記目的を達成するため、本発明のエージェントプログラムは、分散システム環境において、他のエージェントと同一のデータを共有する黒板モデルにおけるエージェントを実現するためのエージェントプログラムであって、
前記他のエージェントと共有する前記データを、自通信端末内のデータ書庫に格納する共有データ格納ステップと、
前記自通信端末内の前記データ書庫に格納されている前記データを参照及び更新するデータ更新ステップと、
前記データ更新ステップで前記データの更新を行った場合には、前記他のエージェントと通信を行うことが可能か否かを判断する通信状況監視ステップと、
前記通信状況監視ステップで前記他のエージェントと前記通信を行うことが可能であると判断された場合に、他のエージェントに対して、前記データ更新ステップにおける前記データの更新結果を通知する更新結果通知ステップとを、
有するデータ共有方法を実行するものである。
【００３３】
また、本発明のエージェントプログラムは、上記構成に加えて、前記エージェントが、前記他のエージェントとの無線通信が遮断している場合においても前記データ更新ステップを実行するとともに、無線遮断回復時に前記更新結果通知ステップを実行する。
【００３４】
また、本発明のエージェントプログラムは、上記構成に加えて、前記データ更新ステップの実行タイミングと、前記更新結果通知ステップの実行タイミングとをそれぞれ異なる短期トランザクション区間として設定するとともに、前記データ更新ステップに係る前記短期トランザクション区間と、前記更新結果通知ステップに係る前記短期トランザクション区間とを含む長期トランザクション区間を設定することによって、前記データ更新ステップにおける前記データの更新結果に関して、遅延同期を可能とする。
【００３５】
また、本発明のエージェントプログラムは、上記構成に加えて、前記他のエージェントから受けた前記データの更新結果を自通信端末内の前記データ書庫に格納されている前記データに反映する際、前記データの更新に係る競合を解決する競合解決ステップを有する。
【発明の効果】
【００３６】
本発明は、上記の構成を有しており、分散システム環境においてデータ共有を行う場合に、個々の分散コンポーネントが、通信状況に影響されずに、共有データの管理を行うことができるという効果を有している。また、本発明は、特に、モバイル端末を含むデータ共有システムにおいて、自端末又は相手端末の無線通信環境に影響を受けることなく、データの共有・参照・更新を行うことができるという効果を有している。また、本発明は、特に、無線通信環境において分散協調するマルチエージェントに対応した黒板モデルを提供することができるという効果を有している。
【発明を実施するための最良の形態】
【００３７】
＜概要＞
以下、図面を参照しながら、本発明の実施の形態について説明する。まず、図４を参照しながら、本発明の概要について説明する。図４は、本発明の基本概念を黒板アーキテクチャに適用した場合の一例を模式的に示す図である。なお、以下では、本発明の基本概念を黒板アーキテクチャに適用したシステムを、分散黒板アーキテクチャと呼ぶことにする。
【００３８】
図４に示す分散黒板アーキテクチャは、移動体環境に対応するように黒板アーキテクチャを拡張したシステムであり、無線通信環境において分散協調するマルチエージェントのために、黒板に格納された知識源の共有を可能とするシステムである。図４に示す分散黒板アーキテクチャでは、知識源を黒板に格納し、各モバイル端末（図４には、モバイル端末Ａ及びモバイル端末Ｂを図示）上に黒板単位に分散多重化する。これにより、各モバイル端末は、それぞれ分散型黒板を有することになる。また、黒板の分散多重化によって知識源が分散多重化されることで、複製間（分散型黒板間）のデータ一貫性を保つという副次要件が発生するので、任意のモバイル端末が無線遮断中に更新された知識源に対して、そのモバイル端末が無線遮断状況から回復した時点で、そのモバイル端末が有する分散型黒板に格納されている知識源を遅延同期させる処置が可能となる。そのため、任意のモバイル端末の無線通信環境が不確実な状況（無線遮断されている場合など）であっても、接続相手のモバイル端末の接続状況や、分散協調する相手側マルチエージェントの稼動状況を意識せず、知識源の参照・更新が可能となる。
【００３９】
＜参照モデル＞
また、図５は、図４に示す分散黒板アーキテクチャの参照モデルの一例をＵＭＬによって記述したクラス図である。なお、図５に示す参照モデルは、図３に図示されている黒板アーキテクチャを拡張して、黒板と知識源を分散多重化させたものである。
【００４０】
＜分散型知識源＞
図５に図示されている分散型知識源は、ユーザデータを格納して分散共有データとして扱うクラスである。知識源は、黒板に格納することで各モバイル端末及びホストに分散多重化することができる。分散多重化におけるオブジェクトの複製は、分散多重化手法によって施行される。複製されたオブジェクト（レプリカ）とその基点となったオブジェクト（マスタ）の関係は、マスタとレプリカ間の従属関係である。
【００４１】
＜分散型黒板＞
また、図５に図示されている分散型黒板は、知識源を格納して分散共有データリポジトリとして扱うクラスである。この黒板を単位として、黒板に格納した知識源の集合を各情報端末及びホストに分散多重化することができる。また、この単位で同期化することができる。また、このクラスは知識源の汎化であるため、知識源と同様に、黒板に格納することができる。
【００４２】
＜アクセスポリシー＞
また、図５に図示されているアクセスポリシーは、各種のアクセス制御のためのアクセスポリシーを格納するクラスである。知識源と黒板に対してアクセスポリシーを割り当てられるようになっている。また、アクセスポリシーを運用する対象（参照し施行するもの）としては、知識源、知識源から派生する黒板、分散多重化手法、同期化手法である。アクセスポリシーの種類としては、コピーポリシー（copyPolicy）、複製ポリシー（clonePolicy）、更新ポリシー（updatePolicy）、参照ポリシー（referPolicy）、マスタ権移譲ポリシー（delegatePolicy）、同期化ポリシー（syncPolicy）をサポートする。
【００４３】
＜分散多重化手法＞
また、図５に図示されている分散多重化手法は、分散多重化を施行するメカニズムクラスである。本発明においては、分散多重化におけるオブジェクト複製のメカニズムを実現し、これを提供する。また、このクラスはポータビリティ性を持っている。
【００４４】
＜同期化手法＞
また、図５に図示されている同期化手法は、同期化を施行するメカニズムクラスである。本発明においては、同期化のデフォルト手法として集中型同期化手法と分散型同期化手法のメカニズムを実装し、これを提供する。また、このクラスは分散多重化手法と同様にポータビリティ性を持つ。
【００４５】
＜黒板構造について＞
また、図６は、本発明に係る分散多重化・同期化の概念を模式的に示す図である。図６に図示されるように、本発明では、移動体環境におけるデータ共有を実現するため、ノード間及びエージェント間における黒板と知識源の共有化を可能とする。知識源はマスタからレプリカに黒板の単位で分散多重化し、同期化する。さらに、複数の黒板の単位でも、分散多重化及び同期化を行える黒板は、役割単位（異種ベンダーアプリケーション間の相互運用におけるデータ管理の責務分担など）にデータ集合を形成することが可能である。
【００４６】
＜分散多重化と同期化の分離＞
無線遮断中や相手側モバイル端末が停止中の状況では、知識源のマスタとレプリカ間における同期化ができない問題が発生し、黒板システムを使用するマルチエージェントの分散協調動作が阻害される。「移動体環境におけるデータ共有」を実現するため、本発明では、知識源（黒板を含む）のマスタ及びレプリカ間の同期化の方式に楽観的データ整合性方式を採用する。楽観的データ整合性方式とは、分散データベース技術における、データ更新開始から同期化完了までの長期的なトランザクション区間を提供し、更新・参照の開始時点から終了時点の短期的なトランザクション区間（以降、参照・更新フェーズと呼ぶ）と、同期化の開始時点から終了時点の短期的なトランザクション区間（以降、同期化フェーズと呼ぶ）を別離し、遅延同期を可能とする方式である。参照・更新フェーズと同期化フェーズを別離することによって、無線遮断中や相手側モバイル端末が停止中であっても知識源の参照・更新を実現できる。なお、同期化フェーズは、参照・更新フェーズの前後に存在することが可能である。
【００４７】
＜知識源のオブジェクト複製制御＞
また、本発明では、分散オブジェクト環境における異種アプリケーション間のデータ相互運用を考慮する必要がある。そして、オブジェクト複製におけるディープコピーとシャローコピーの制御が必要である。また、不正なコピーを抑止する制御が必要である。図５に示す通り、分散多重化手法は、アクセスポリシーのコピーポリシー（copyPolicy）を使用して、この制御を実現する。（図７参照）。なお、図７（Ａ）には、本発明に係るオブジェクト複製におけるディープコピーの制御の一例が図示されており、図７（Ｂ）には、本発明に係るオブジェクト複製におけるシャローコピーの制御の一例が図示されている。これによって、マルチエージェント開発者は、分散オブジェクト環境における異種アプリケーション間のデータ相互運用に対して、正しいオブジェクトの複製をもって振舞うことが可能となる。また、異種アプリケーションが提供するオブジェクト複製のコピーポリシーがブラックボックス化した知識源を、自分が管理する黒板に包含することが可能となる。
【００４８】
＜黒板と知識源の木構造化＞
また、異種アプリケーション間のデータ相互運用や、複数のユーザ間で共有される黒板及び知識源のデータモデルは、黒板及び知識源の単位に複雑なアクセスポリシーの設定を要求される。そのため、黒板及び知識源は役割・責務などに応じて柔軟なデータモデル構造を提供する必要がある。
【００４９】
こうした要件を満たすために、本発明では、図５に示す通り、知識源は、Compositeパターン（入れ子関係）とし、黒板は知識源の派生となることで、黒板を含む知識源に関して木構造の関係を実現可能とした。これによって、マルチエージェント開発者は、分散オブジェクト環境における異種アプリケーション間のデータ相互運用に対して、黒板及び知識源の柔軟なモデル構造を設計できる。
【００５０】
＜オブジェクト複製間のマスタ交代＞
また、移動体は移動シーンに合わせて適時モバイル端末を切り替える。また、モバイル端末の種類によっては稼働時間が端的かつ断続的である。つまり、これらモバイル端末上にインスタンス化される知識源のマスタとレプリカ間の同期化については、マスタが設置されているモバイル端末が停止中の状態で同期化できない場合がある。したがって、知識源のマスタとレプリカ間において、マスタ権の移譲ができる仕組みが必要である（図８参照）。なお、図８には、本発明に係るモバイル端末間におけるマスタ権の委譲（マスタ権の交代）の様子が図示されている。また、マスタが設置されているモバイル端末が停止中の場合は、自動的にマスタ権を移譲する仕組みが必要である。このマスタ権の移譲の仕組みは、知識源のアクセスポリシーであるマスタ権移譲ポリシー（delegatePolicy）の制御ルールによって実現する。制御ルールの決定要因としては、以下の例がある。
・頻繁に更新が発生するレプリカに権利移譲
・安定永続性の高いレプリカに権利移譲
【００５１】
＜制御とモデルの分離＞
また、既存の黒板システムの多くは、閉鎖的なシステムにおいて専用のデータモデル（黒板と知識源）と制御機構で実現され、マルチエージェントのプラットフォームに汎用的ではない。つまり、データモデルと制御機構に「異種機器・システムベンダへの対応」を行うためのポータビリティ性が無い。本発明では、ポータビリティ性を実現するために、データモデルと分散多重化手法と同期化手法を含む制御機構の分離が可能な仕組みを提供する。また制御機構の追加・交換できる仕組みを提供する。これは、図５に示す通り、アクセスポリシーを媒介として、制御とモデル（黒板、知識源）を分離することで実現を可能とした。これによって、黒板及び知識源へのアクセス制御を施行するセキュリティ制御機構を後付けで搭載することなどが可能である。
【００５２】
＜本発明に係る同期化手法＞
また、本発明では、同期化手法として集中型同期化手法と分散型同期化手法を例として実現した。これは分散データベース技術において、一貫性を保障する機構を大別したものである。両者共に会話人数（ｎ）における同期１回分の会話総数のオーダーはＯ（ｎ）となり、完全Ｐ２Ｐ通信（Ｏ（ｎ2））と比較して、会話人数の増加に対する高完遂性と高リアルタイム性の獲得が期待できる。ただし、知識源として扱うデータの特質とユーザアプリケーションの運用特性によって両者の有効性が変化することが予想される。
【００５３】
＜集中型同期化手法＞
上記の集中型同期化手法は、一貫性保証方法における中央集権的なマージ方法である。同期処理プロトコルは分散型同期化手法にくらべて単純である。データの永続性を考慮した場合はこの手法が有効である。この集中型同期化手法に関連して、分散協調する各同期化手法インスタンス間の同期処理プロトコルについては、図９に図示されている。
【００５４】
＜分散型同期化手法＞
また、上記の分散型同期化手法は、一貫性保証方法における非中央集権的なマージ方法である。同期のプロトコルは集中型同期化手法にくらべて複雑である。分散オブジェクトネットワーク環境、完全Ｐ２Ｐ環境の場合は会話総数オーダー（Ｏ（ｎ2））の問題を改善できる。この分散型同期化手法に関連して、分散協調する各同期化手法インスタンス間の同期処理プロトコルについては、図１０に図示されている。
【００５５】
＜同期化ポリシーの例＞
また、各同期化手法における汎用的な同期化ポリシーを事例的に実現した。これはモバイル端末用の同期化手法として最も標準的なＩ／Ｆ仕様を提供しているSyncML（非特許文献１４参照）を参考としたものである。
（ａ）ユーザ決定
ユーザ介入によってマージ時の競合解決を行う。自立的に競合解決できない場合、このメッセージを用いて解決することができる。
（ｂ） レプリカ勝ち
無条件にレプリカの更新内容をマスタへ反映させる。分散型同期化手法で使用した場合、マージした結果が複数レプリカ間で再度競合する可能性がある。
（ｃ）マスタ勝ち
無条件にマスタの更新内容をレプリカへ反映させる。分散型同期化手法で使用した場合、集中型同期化手法と等しい効率でマージ時の競合解決ができる。
（ｄ）タイムスタンプベース
タイムスタンプが新しい更新内容を反映させる。バージョン管理機構などの履歴管理機構を使用することで高機能な競合解決ができる。
（ｅ）ラスト／ファースト勝ち
メッセージキューシステムのスケジュール管理に従って更新内容を反映させる。集中型同期化手法、分散型同期化手法に関わらず、スケジュール管理に従った高機能な競合解決ができる。
【００５６】
＜プロトタイプ評価＞
また、本発明について、実現可否と速度性能についてプロトタイプ評価を行った。なお、以下に記載するプロトタイプ評価は、簡単な初期評価である。
【００５７】
＜実験環境＞
実験環境は以下の通りである。ハードウェア以下のスペックのＰＣ複数台にて実験を行った。
・CPU：Pentium(登録商標)4  2.60GHz
・Memory：2.0GB
・OS：Windows(登録商標) XP Professional
・LAN：100Mbps
また、以下の前提ソフトウェアを使用した。
・Java(登録商標)：J2SE1.4.2
・JADE：jade snapshot20040323
・Sync4j：SyncServer-4.0.1
・SyncClient command line edition 1.0
【００５８】
＜無線遮断時の黒板アーキテクチャの効果＞
本発明において、最も特徴的である無線遮断時の知識源の参照更新の可能な状況について、実現可否の確認と実行時の速度性能を確認するためにプロトタイプ実装を行った。プロトタイプ実装では、集中型同期化手法（図９参照）を組み込み、マルチエージェントが黒板のレプリカ知識源にデータ更新する状況を実装した。また、比較対象とする従来方式の黒板アーキテクチャの実装には、SyncMLの仕様に準拠したSync4j（非特許文献１５参照）を用いた。これは参照・更新フェーズと同期化フェーズの短期トランザクション区間が同一（遅延同期しない状況）であるように調整を行った。確認方法は、黒板から２５メガバイトのデータを８７８バイト単位に更新（同期化のマージ処理における競合は発生させていない）する処理（図９におけるシーケンス番号１〜３の工程）にて、通信開始５秒後に強制的にＬＡＮ線を切断し、１０秒後に再接続する操作を行うこととした。これによって、従来の黒板アーキテクチャは更新が中断することが確認でき、本発明では、更新が中断しないことが確認できる。
【００５９】
確認結果によれば、図１１に示す通り、従来方式では約５秒間の更新中断が発生した。これに対して、本発明では更新を継続することができた。速度性能においては、本発明では、無線通信をせず、レプリカ知識源を更新するのみであることに対して、従来方式では、ネットワーク通信を行う分、本発明のほうが高性能であった。
【００６０】
＜同期性能に対するクライアント数の影響＞
また、本発明では、上述のように、会話人数（ｎ）における同期１回分の会話総数のオーダーはＯ（ｎ）となるはずである。よって、この会話人数（クライアント数）の増加に対してリニアな速度性能であるか確認を行う。確認方法は、上述のプロトタイプ実装に対して、クライアント数の増加を施行するものである。また、比較参考値として、上述の従来方式に係る実装も同様に実行した。ただし、従来方式に係る実装と本発明に係る実装では、１回のデータ更新に対する通信処理コストに差があるため（厳密には従来方式が無駄にファイルアクセスをしている分）、これについては速度性能に計上しない仕組みを加えた。
【００６１】
確認結果によれば、図１２に示す通り、クライアント数の増加に対して予測通りにリニアな速度性能であった。これによってクライアント数の増加に対するスケーラビリティの確保が確認できた。また、ネットワーク通信コストを差し引いても、従来方式と比較して１０倍程度高速に動作することが判明した。本発明の性能が良好であった要因は、従来方式がデータ更新のたびに毎時通信するのに対して、本発明が、図９におけるシーケンス番号３の更新差分記録によって、通信回数を削減できるという効果による。
【００６２】
＜まとめ＞
以上、説明したように、本発明は、無線遮断の状況に影響されずに黒板の共有データにアクセス可能であることから、分散多重化手法の効果を実証できたと考える。また、クライアント数の増加にも影響されず、リニアな速度性能劣化であることが確認できた。スケーラビリティも確保できたと考える。
【産業上の利用可能性】
【００６３】
本発明は、分散システム環境においてデータ共有を行う場合に、個々の分散コンポーネントが、通信状況に影響されずに、共有データの管理を行うことができるという効果を有し、分散システム環境における通信端末のデータ共有に係る技術に適用可能であり、特に、無線通信環境に置かれた移動通信端末間において、黒板モデルを利用したエージェント間のデータ共有に係る技術に適用可能である。
【図面の簡単な説明】
【００６４】
【図１】本発明の適用対象の一例となる次世代ナビゲーションの世界を模式的に示す図である。
【図２】本発明の適用対象の一例となるスケジュール連携を示す図であり、（Ａ）は、個人におけるスケジュールの連携を示す図、（Ｂ）は、複数人によるスケジュールの連携を示す図である。
【図３】本発明に係る黒板モデルの静的モデルをＵＭＬ（Unified Modeling Language）によって図示したクラス図である。
【図４】本発明の基本概念を黒板アーキテクチャに適用した場合の一例を模式的に示す図である。
【図５】図４に示す分散黒板アーキテクチャの参照モデルの一例をＵＭＬによって記述したクラス図である。
【図６】本発明に係る分散多重化・同期化の概念を模式的に示す図である。
【図７】本発明に係る知識源のオブジェクト複製制御の一例を示す図であり、（Ａ）は、本発明に係るオブジェクト複製におけるディープコピーの制御の一例を示す図、図７（Ｂ）は、本発明に係るオブジェクト複製におけるシャローコピーの制御の一例を示す図である。
【図８】本発明に係るモバイル端末間におけるマスタ権の委譲（マスタ権の交代）の様子を示す図である。
【図９】本発明において利用可能な集中型同期化手法を示す図である。
【図１０】本発明において利用可能な分散型同期化手法を示す図である。
【図１１】本発明に係る黒板アーキテクチャの無線遮断における効果を示すグラフである。
【図１２】本発明に係る速度性能の効果を示す同期速度性能グラフである。
【図１】
2006126972.tif 000003
【図２】
2006126972.tif 000004
【図３】
2006126972.tif 000005
【図４】
2006126972.tif 000006
【図５】
2006126972.tif 000007
【図６】
2006126972.tif 000008
【図７】
2006126972.tif 000009
【図８】
2006126972.tif 000010
【図９】
2006126972.tif 000011
【図１０】
2006126972.tif 000012
【図１１】
2006126972.tif 000013
【図１２】
2006126972.tif 000014