(57)【要約】【課題】複数の実空間サービス間で入出力及びリソースの干渉を減らして一貫性及び公平性を保持すると共に拡張性を高める。【解決手段】エージェントモデルを構成する各エージェントのうち、ＵＡ及びＦＡを、管理機能を担う親エージェント（ＵＡ−ｐ）、（ＦＡ−ｐ）と、実空間サービスの実行機能を担う複数の子エージェント（ＵＡ−ｃ），（ＦＡ−ｃ）にそれぞれ階層化し、機器を駆動する際には、ＵＡ−ｃ、ＦＡ−ｃが送信した駆動要求をＵＡ−ｐ，ＦＡ−ｐを経由してＤＡに送信し、ＤＡからの応答はＵＡ−ｃ、ＦＡ−ｃが直接受信するようにしている。また、上記機器を駆動する際には、当該機器を配下に含むＵＡ−ｐ、ＦＡ−ｐが機器競合調停の判定を行い、またＦＡのＦＡ−ｐが環境競合調停の判定を行うようにしている。【選択図】図４
2016038737.tif 000002
【特許請求の範囲】
【請求項１】
ユーザを抽象化したユーザエージェントと、場を抽象化したフィールドエージェントと、機器を抽象化したデバイスエージェントと、実空間サービス及び競合調停サービスを抽象化したサービス提供エージェントとからなるソフトウエアエージェントモデルを構成し、このソフトウエアエージェントモデルをコンピュータに実行させることにより実空間サービス及び競合調停サービスを提供する実空間サービス提供システムであって、
前記ユーザエージェントは、
複数の実空間サービスの各々に対応付けて設けられ、前記ユーザとのインタフェースを提供する複数の子エージェントと、
前記ユーザが使用する実空間サービスに対応する前記子エージェント、前記ユーザが使用する前記機器の管理及び当該機器に対する駆動要求を行う親エージェントと
を階層化し、
前記フィールドエージェントは、
複数の実空間サービスの各々に対応付けて設けられ、当該実空下における実空間サービスの実行及びユーザと実空間サービスとの間の仲介を行う複数の子エージェントと、
空間下における前記ユーザ及び機器の管理と当該機器に対する駆動要求、空間下で使用される実空間サービスに対応する子エージェントの管理を行う親エージェントと
を階層化し、
前記ユーザエージェント及びフィールドエージェントは、前記機器を駆動する際に、子エージェントから親エージェントを経由して前記機器に対応するデバイスエージェントに対し要求を転送し、当該要求に対する前記デバイスエージェントの応答を前記子エージェントが直接受信するように動作し、
前記ユーザエージェント及びフィールドエージェントの親エージェントは、前記要求を転送する際に、前記サービス提供エージェントから取得した競合調停ルールに従い転送条件を満足するか否かを判定し、当該転送条件を満足する場合に前記要求をデバイスエージェントに対し転送し、前記条件を満足しない場合には前記要求の転送を拒否する競合調停処理を行う
ことを特徴とする実空間サービス提供システム。
【請求項２】
前記ユーザエージェント及びフィールドエージェントの親エージェントは、前記要求を転送する際に、前記サービス提供エージェントから取得した競合調停ルールに従い機器間の競合及び環境間の競合の少なくとも一方について転送条件を満足するか否かを判定し、当該転送条件を満足する場合に前記要求をデバイスエージェントに対し転送し、前記転送条件を満足しない場合には前記要求の転送を拒否する競合調停処理を行うことを特徴とする請求項１記載の実空間サービス提供システム。
【請求項３】
前記ユーザエージェント、フィールドエージェント、デバイスエージェント及びサービス提供エージェントは、当該エージェントの役割ごとに又は実空間サービスの種類ごとにグループ化され、実行する実空間サービスごとに対応するグループに属するエージェント間で、前記機器を駆動するための動作を実行することを特徴とする請求項１又は２記載の実空間サービス提供システム。
【請求項４】
ユーザを抽象化したユーザエージェントと、場を抽象化したフィールドエージェントと、機器を抽象化したデバイスエージェントと、実空間サービス及び競合調停サービスを抽象化したサービス提供エージェントとからなるソフトウエアエージェントモデルを構成し、このソフトウエアエージェントモデルをコンピュータに実行させることにより実空間サービスを提供する実空間サービス提供方法であって、
前記ユーザエージェントを、複数の実空間サービスの各々に対応付けて設けられ前記ユーザとのインタフェースを提供する複数の子エージェントと、前記ユーザが使用する実空間サービスに対応する前記子エージェント、前記ユーザが使用する前記機器の管理及び当該機器に対する駆動要求を行う親エージェントとに階層化し、
かつ前記フィールドエージェントを、複数の実空間サービスの各々に対応付けて設けられ当該実空下における実空間サービスの実行及びユーザと実空間サービスとの間の仲介を行う複数の子エージェントと、空間下における前記ユーザ及び機器の管理と当該機器に対する駆動要求、空間下で使用される実空間サービスに対応する子エージェントの管理を行う親エージェントとに階層化し、
前記ユーザエージェント及びフィールドエージェントが、前記機器を駆動する際に、子エージェントから親エージェントを経由して前記機器に対応するデバイスエージェントに対し要求を転送し、当該要求に対する前記デバイスエージェントの応答を前記子エージェントが直接受信するように動作し、
前記ユーザエージェント及びフィールドエージェントの親エージェントが、前記要求を転送する際に、前記サービス提供エージェントから取得した競合調停ルールに従い転送条件を満足するか否かを判定し、当該転送条件を満足する場合に前記要求をデバイスエージェントに対し転送し、前記転送条件を満足しない場合には前記要求の転送を拒否する競合調停処理を行う
ことを特徴とする実空間サービス提供方法。
【請求項５】
前記ユーザエージェント、フィールドエージェント、デバイスエージェント及びサービス提供エージェントを、当該エージェントの役割ごとに又は実空間サービスの種類ごとにグループ化し、実行する実空間サービスごとに対応するグループに属するエージェント間で、前記機器を駆動するための動作を実行することを特徴とする請求項４記載の実空間サービス提供方法。
【請求項６】
ユーザを抽象化したユーザエージェントと、場を抽象化したフィールドエージェントと、機器を抽象化したデバイスエージェントと、実空間サービス及び競合調停サービスを抽象化したサービス提供エージェントとからなるソフトウエアエージェントモデルを構成し、このソフトウエアエージェントモデルをコンピュータに実行させることにより実空間サービス及び競合調停サービスを提供する実空間サービス提供システムにあって、前記ユーザエージェントとして動作するエージェント装置であって、
複数の実空間サービスの各々に対応付けて設けられ、前記ユーザとのインタフェースを提供する複数の子エージェントと、
前記ユーザが使用する実空間サービスに対応する前記子エージェント、前記ユーザが使用する前記機器の管理及び当該機器に対する駆動要求を行う親エージェントと
を階層化し、
前記機器を駆動する際に、子エージェントから親エージェントを経由して前記機器に対応するデバイスエージェントに対し要求を転送し、当該要求に対する前記デバイスエージェントの応答を前記子エージェントが直接受信するように動作し、
前記要求を転送する際に、前記サービス提供エージェントから取得した競合調停ルールに従い転送条件を満足するか否かを判定し、当該転送条件を満足する場合に前記要求をデバイスエージェントに対し転送し、前記転送条件を満足しない場合には前記要求の転送を拒否する競合調停処理を行う
ことを特徴とするエージェント装置。
【請求項７】
ユーザを抽象化したユーザエージェントと、場を抽象化したフィールドエージェントと、機器を抽象化したデバイスエージェントと、実空間サービス及び競合調停サービスを抽象化したサービス提供エージェントとからなるソフトウエアエージェントモデルを構成し、このソフトウエアエージェントモデルをコンピュータに実行させることにより実空間サービス及び競合調停サービスを提供する実空間サービス提供システムにあって、前記フィールドエージェントとして動作するエージェント装置であって、
複数の実空間サービスの各々に対応付けて設けられ、当該実空下における実空間サービスの実行及びユーザと実空間サービスとの間の仲介を行う複数の子エージェントと、
空間下における前記ユーザ及び機器の管理と当該機器に対する駆動要求、空間下で使用される実空間サービスに対応する子エージェントの管理を行う親エージェントと
を階層化し、
前記機器を駆動する際に、子エージェントから親エージェントを経由して前記機器に対応するデバイスエージェントに対し要求を転送し、当該要求に対する前記デバイスエージェントの応答を前記子エージェントが直接受信するように動作し、
前記要求を転送する際に、前記サービス提供エージェントから取得した競合調停ルールに従い転送条件を満足するか否かを判定し、当該転送条件を満足する場合に前記要求をデバイスエージェントに対し転送し、前記転送条件を満足しない場合には前記要求の転送を拒否する競合調停処理を行う
ことを特徴とするエージェント装置。
【請求項８】
請求項６又は７記載のエージェント装置が実行する動作を、当該エージェント装置が備えるコンピュータに実行されるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、実空間サービス提供システムと、このシステムで使用される方法、エージェント装置及びプログラムに関する。
【背景技術】
【０００２】
近年、ネットワークによって相互接続された家電製品や情報機器、センサ、アクチュエータ等の機器を使用して、ユーザに対し様々な実空間サービスを提供するシステムが提案されている。例えば、ホームネットワークサービスの分野では、図１８に示すようにユーザが存在する場所の温度や湿度、人感、体動、生体情報を検出するセンサ２１〜２５と、エアコンやサッシ、扉、テレビジョン受信機等の機器３１〜３４を使用して、睡眠支援やサッシ制御、防犯制御、ヘルスケア等の各種実空間サービス１１〜１４を提供する。
【０００３】
ところで、この種のシステムを実現しようとする場合、ユーザ、場、機器に対しそれぞれエージェントを定義し、このエージェントモデルを用いて実空間サービスを制御する手法が提案されている（例えば、特許文献１又は特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４７７９０２７号公報
【特許文献２】特開２０１２−１８６０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、エージェントモデルを採用した従来の実空間サービス提供システムには、解決すべき以下のような課題があった。  
すなわち、例えば図１８に例示したようにユーザ、センサ、機器及び実空間サービスの関係が多数同士の関係になる場合に、同一空間又は同一ユーザ下で複数の実空間サービスを同時に稼働させようとすると、サービス同士が干渉を起こすおそれがある。サービスの干渉としては、入出力の干渉及びリソースの干渉がある。入出力の干渉は、特定のサービスを制御しているエージェントにおいて、同一エージェント内の他のサービス又は異なるエージェントの他サービスから、想定しない入力を受信して想定しない制御が実行される場合に生じるもので、特に上記想定しない入力が悪意のある場合には大きな問題となる。一方リソースの干渉は、複数のサービスが同時並行で実行された場合にエージェントのコンピュータリソースに負荷が集中し、要求される時間内に処理を完了できなくなるものである。
【０００６】
また、稼働中のシステムに新たな実空間サービスを追加する場合に、エージェントの機能を単純に冗長化すると全てのエージェント間でサービス利用状況やプロファイル等を保持する必要があり、一貫性を保てなくなるおそれがある。また、環境に影響を与える機器駆動が同時多発的に発生し、優先度が判断することが困難となって公平性を保てなくなる場合がある。
【０００７】
さらに、複数の実空間サービスが競合した場合に備えて競合調停サービスを用意する必要がある。ところが、新たな実空間サービスを追加する場合、サービス提供者はその都度競合調停を想定したサービスを構成する必要があり、サービスの構成に多くの手間と時間を必要とする。
【０００８】
この発明は上記事情に着目してなされたもので、その目的とするところは、複数の実空間サービス間で入出力及びリソースの干渉を減らして一貫性及び公平性を保持すると共に拡張性を高めた実空間サービス提供システムと、このシステムで使用される方法、エージェント装置及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するためにこの発明の第１の観点は、ユーザを抽象化したユーザエージェントと、場を抽象化したフィールドエージェントと、機器を抽象化したデバイスエージェントと、実空間サービス及び競合調停サービスを抽象化したサービス提供エージェントとからなるソフトウエアエージェントモデルを構成し、このソフトウエアエージェントモデルをコンピュータに実行させることにより実空間サービス及び競合調停サービスを提供する実空間サービス提供システムにあって、
上記ユーザエージェントを、複数の実空間サービスの各々に対応付けて設けられ上記ユーザとのインタフェースを提供する複数の子エージェントと、上記ユーザが使用する実空間サービスに対応する上記子エージェント、上記ユーザが使用する上記機器の管理及び当該機器に対する駆動要求を行う親エージェントとに階層化すると共に、上記フィールドエージェントを、複数の実空間サービスの各々に対応付けて設けられ、当該実空下における実空間サービスの実行及びユーザと実空間サービスとの間の仲介を行う複数の子エージェントと、空間下における上記ユーザ及び機器の管理と当該機器に対する駆動要求、空間下で使用される実空間サービスに対応する子エージェントの管理を行う親エージェントとに階層化する。  
そして、上記ユーザエージェント及びフィールドエージェントが、上記機器を駆動する際に、子エージェントから親エージェントを経由して上記機器に対応するデバイスエージェントに対し要求を転送し、当該要求に対する上記デバイスエージェントの応答を上記子エージェントが直接受信するように動作し、かつ上記要求を転送する際に、上記サービス提供エージェントから取得した競合調停ルールに従い転送条件を満足するか否かを判定し、当該転送条件を満足する場合に上記要求をデバイスエージェントに対し転送し、上記転送条件を満足しない場合には上記要求の転送を拒否する競合調停処理を行うようにしたものである。
【００１０】
具体的には、ユーザエージェント及びフィールドエージェントの親エージェントは、上記要求を転送する際に、サービス提供エージェントから取得した競合調停ルールに従い機器間の競合及び環境間の競合の少なくとも一方について転送条件を満足するか否かを判定し、当該転送条件を満足する場合に上記要求をデバイスエージェントに対し転送し、上記転送条件を満足しない場合には上記要求の転送を拒否する競合調停処理を行う。
【００１１】
また、この発明の第２の観点は、上記ユーザエージェント、フィールドエージェント、デバイスエージェント及びサービス提供エージェントを、エージェントの役割ごとに又は実空間サービスの種類ごとにグループ化し、実行する実空間サービスごとに対応するグループに属するエージェント間で、上記機器を駆動するための動作を実行するようにしたものである。
【発明の効果】
【００１２】
この発明の第１の観点によれば、ユーザエージェント及びフィールドエージェントは、管理機能を担う親エージェントと、実空間サービスごとに設けられた子エージェントとに階層化され、各実空間サービスが子エージェントにより個別に実行される。このため、例えば同一空間又はユーザの下で動作する実空間サービスを追加する場合には、子エージェントを別途追加するだけで実現できる。したがって、追加された子エージェントを異なるコンピュータに実行させることが可能となり、これにより親エージェントの機能を実行するコンピュータの処理負荷の増加を抑制することができる。また、実空間サービスを追加しても、管理機能は親エージェントで一括管理されているので、管理に係る一貫性が維持される。さらに、同時多発的に機器に対する駆動要求が発生した場合でも、当該要求はすべて親エージェントで一括管理されるので、各要求に対する公平性が維持される。
【００１３】
また、機器を駆動する際に、その要求は子エージェントから親エージェントを経由してデバイスエージェントに転送されるが、当該要求に対するデバイスエージェントの応答は親エージェントを経由せずに子エージェントで直接受信される。このため、上記公平性を維持した上で、親エージェントの負荷を軽減することができる。
さらに、上記機器の駆動に際しては、親エージェントにおいて、サービス提供エージェントから取得した競合調停ルールに従い機器間の競合及び環境間の競合の少なくとも一方について転送条件を満足するか否かが判定され、その判定結果に応じて上記駆動要求の転送制御が行われる。このため、複数のサービスをそれぞれ子エージェントとして分割し、異なるコンピュータ上で動作させたとしても、公平性を確保できる。
【００１４】
この発明の第２の観点によれば、ユーザエージェント、フィールドエージェント、デバイスエージェント及びサービス提供エージェントが、実空間サービスの種類ごとにグループ化され、このグループ内で実空間サービスが実行される。すなわち、実空間サービスごとに利用対象となるエージェントが隔離される。このため、各エージェントにおける処理負荷を抑制して、より一層一貫性及び公平性を高めることが可能となる。
【００１５】
すなわちこの発明によれば、複数の実空間サービス間で入出力及びリソースの干渉を減らして一貫性及び公平性を保持すると共に拡張性を高めた実空間サービス提供システムと、このシステムで使用される方法、エージェント装置及びプログラムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】この発明の一実施形態に係る実空間サービス提供システムのエージェントモデルの構成を示す図。
【図２】図１に示したエージェントの機能構成を示すブロック図。
【図３】実空間サービス登録手順の概要を示すフローチャート。
【図４】実空間サービス動作手順の概要を示すフローチャート。
【図５】実空間サービス登録手順の前半部分を詳細に示したフローチャート。
【図６】実空間サービス登録手順の後半部分を詳細に示したフローチャート。
【図７】実空間サービス動作手順の前半部分を詳細に示したフローチャート。
【図８】実空間サービス動作手順の後半部分を詳細に示したフローチャート。
【図９】競合調停サービス登録手順の概要を示すフローチャート。
【図１０】競合調停サービス動作手順の概要を示すフローチャート。
【図１１】フィールドエージェントにおける競合調停サービスの実行例を示すフローチャート。
【図１２】ユーザエージェントにおける競合調停サービスの実行例を示すフローチャート。
【図１３】エージェントの構成例を示す図。
【図１４】役割によるエージェントのグループ化の一例を示す図。
【図１５】サービス・管理主体ごとのグループ化の一例を示す図。
【図１６】グループ化されたエージェントに対する実空間サービスの登録手順を示すフローチャート。
【図１７】グループ化されたエージェントに対する実空間サービスの動作手順を示すフローチャート。
【図１８】想定される実空間サービスの一例を示す図。
【発明を実施するための形態】
【００１７】
以下、図面を参照してこの発明に係わる実施形態を説明する。  
［第１の実施形態］
（構成）
この発明の第１の実施形態に係る実空間サービス提供システム（実空間サービス提供基盤）は、図１８に示したように同一の空間（場）においてユーザ、機器及び実空間サービスがいずれも複数存在する場合に、ソフトウエアエージェントモデルとして、上記空間を抽象化したフィールドエージェント（ＦＡ）を設けると共に、複数のユーザ及び複数の機器のそれぞれを抽象化した複数のユーザエージェント（ＵＡ）及び複数のデバイスエージェント（ＤＡ）を設け、さらに実空間サービス及び競合調停サービスを抽象化したサービス提供エージェント（ＰＡ）を設けたものである。
【００１８】
図１は、上記エージェントモデルの構成を示すものである。なお、図１では図示の簡単のためユーザエージェント（ＵＡ）４０、フィールドエージェント（ＦＡ）５０、デバイスエージェント（ＤＡ）６０及びサービス提供エージェント（ＰＡ）７０は何れも１つずつ示している。
【００１９】
これらのエージェントのうち、ユーザエージェント（ＵＡ）４０は、管理機能を担う親エージェント（ＵＡ−ｐ）４１０と、実空間サービスの実行機能を担う複数の子エージェント（ＵＡ−ｃ）４２１，４２２に階層化されている。また、フィールドエージェント（ＦＡ）５０も同様に、管理機能を担う親エージェント（ＦＡ−ｐ）５１０と、実空間サービスの実行機能を担う複数の子エージェント（ＦＡ−ｃ）５２１，５２２に階層化されている。
【００２０】
ユーザエージェント（ＵＡ）４０の親エージェント（ＵＡ−ｐ）４１０は、ユーザが利用する実空間サービス及び子エージェント（ＵＡ−ｃ）４２１，４２２の管理、ユーザが所持する機器の管理と駆動要求を行う機能を有する。また競合調停サービスを担当する機能も有する。子エージェント（ＵＡ−ｃ）４２１，４２２は、複数の実空間サービスに対し個別に設けられ、当該実空間サービスのみを担当し、ユーザとのインタフェースを提供する機能を有する。
【００２１】
フィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−ｐ）５１０は、空間下のユーザや機器の管理とその駆動、空間下で利用される実空間サービス及び子エージェント（ＦＡ−ｃ）５２１，５２２の管理を行う機能を有する。また競合調停サービスを担当する機能も有する。子エージェント（ＦＡ−ｃ）５２１，５２２は、複数の実空間サービスに対し個別に設けられ、当該対応する実空間サービスのみを担当し、空間下での当該実空間サービスの実行又はユーザと実空間サービスとの仲介を行う機能を有する。
【００２２】
デバイスエージェント（ＤＡ）６０は、先に述べたように機器３１〜３４を抽象化したソフトウェアエージェントであり、ユーザエージェント（ＵＡ）４０又はフィールドエージェント（ＦＡ）５０のいずれか１つに所有される。
【００２３】
サービス提供エージェント（ＰＡ）７０は、先に述べたように１つの独立した実空間サービス及び競合調停サービスを抽象化したエージェントであり、外部資源、例えばプログラムや制御データ等を管理するサーバ等を利用して、フィールドエージェント（ＦＡ）５０及びユーザエージェント（ＵＡ）４０に対し、実空間サービス及び競合調停サービスを実行するためのプログラムを提供する。
【００２４】
図２は、上記ユーザエージェント（ＵＡ）４０の親エージェント（ＵＡ−ｐ）４１０と子エージェント（ＵＡ−ｃ）４２１，４２２、フィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−ｐ）５１０と子エージェント（ＦＡ−ｃ）５２１，５２２、デバイスエージェント（ＤＡ）６０及びサービス提供エージェント（ＰＡ）７０の機能構成を示すブロック図である。なお、これらのエージェントはそれぞれ別のコンピュータに実行させるようにしてもよいし、同じコンピュータに実行させるようにしてもよい。
【００２５】
ユーザエージェント（ＵＡ）４０の親エージェント（ＵＡ−ｐ）４１０は、先に述べた各機能を実行するために、利用サービス管理部４１１と、利用機器管理部４１２と、子エージェント管理部４１３と、担当プログラム保持部４１４と、プログラム実行部４１５と、外部エージェント通信部４１６を備えている。このうち担当プログラム保持部４１４及びプログラム実行部４１５は競合調停サービス実行用として使用される。
【００２６】
子エージェント（ＵＡ−ｃ）４２１，４２２は、担当プログラム保持部４２１１と、プログラム実行部４２１２と、外部エージェント通信部４２１３を備えている。これらの機能部４２１１〜４２１３は、自エージェントが担当する実空間サービス実行用のプログラムをサービス提供エージェント（ＰＡ）７０から取得して保存し、実行するために用いられる。
【００２７】
フィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−ｐ）５１０も、上記ユーザエージェント（ＵＡ）４０の親エージェント（ＵＡ−ｐ）４１０と同様に、利用サービス管理部５１１と、利用機器管理部５１２と、子エージェント管理部５１３と、担当プログラム保持部５１４と、プログラム実行部５１５と、外部エージェント通信部５１６を備えている。このうち担当プログラム保持部５１４及びプログラム実行部５１５は競合調停サービス実行用として使用される。
【００２８】
子エージェント（ＦＡ−ｃ）５２１，５２２も、上記ユーザエージェント（ＵＡ）４０の子エージェント（ＵＡ−ｃ）４２１，４２２と同様に、担当プログラム保持部５２１１と、プログラム実行部５２１２と、外部エージェント通信部５２１３を備えている。これらの機能部５２１１〜５２１３は、自エージェントが担当する実空間サービス実行用のプログラムをサービス提供エージェント（ＰＡ）７０から取得して保存し、実行するために用いられる。
【００２９】
デバイスエージェント（ＤＡ）６０は、担当プログラム保持部６１１と、プログラム実行部６１２と、外部エージェント通信部６１３を備えている。これらの機能部６１１〜６１３は、上記ユーザエージェント（ＵＡ）４０又はフィールドエージェント（ＦＡ）５０の各親エージェント（ＵＡ−ｐ）４１０、（ＦＡ−ｐ）５１０からの要求に応じて担当する機器を駆動し、その駆動結果を上記要求元のユーザエージェント（ＵＡ）４０又はフィールドエージェント（ＦＡ）５０の子エージェント（ＵＡ−ｃ）４２１，４２２、（ＦＡ−ｃ）５２１，５２２に直接返送する機能を有する。
【００３０】
サービス提供エージェント（ＰＡ）７０は、サービスプログラムレポジトリ管理部７１１と、利用者管理部７１２と、担当プログラム保持部７１３と、プログラム実行部７１４と、外部エージェント通信部７１５を備えている。サービスプログラムレポジトリ管理部７１１は、利用が想定される実空間サービス及び競合調停サービスの実行に必要なプログラムを管理するもので、レポジトリとしてルール、スクリプトを保存し管理する。
【００３１】
利用者管理部７１２は、利用登録を行ったユーザに関する情報を管理するもので、実空間サービスの提供に先立ち要求元のユーザの認証を行う機能を有する。担当プログラム保持部７１３、プログラム実行部７１４及び外部エージェント通信部７１５は、上記フィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−ｐ）５１０からのサービス登録要求に応じて該当するプログラムを返送する処理と、ユーザエージェント（ＵＡ）４０又はフィールドエージェント（ＦＡ）５０の子エージェント（ＵＡ−ｃ）４２１，４２２、（ＦＡ−ｃ）５２１，５２２からの実行要求に応じて処理結果を返答する処理を行う機能を有する。
【００３２】
（動作）
次に、以上のように構成されたシステムの動作を説明する。  
（１）実空間サービスの利用登録
（１−１）サービス登録処理の概要
実空間においてあるユーザが所望の実空間サービスを利用する場合、先ず以下のようなサービス利用登録が行われる。図３はその処理手順と処理内容の概要を示すフローチャートである。
【００３３】
すなわち、先ずユーザエージェント（ＵＡ）４０の親エージェント（ＵＡ−ｐ）４１０からフィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−ｐ）５１０に対しステップＳ１によりサービス起動要求が送信される。このサービス起動要求を受信するとフィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−ｐ）５１０は、ステップＳ２により、サービス提供エージェント（ＰＡ）７０に対しサービス登録要求を送信する。サービス提供エージェント（ＰＡ）７０は、上記サービス登録要求を受信すると、ステップＳ３において、該当するプログラムを登録許可通知と共にフィールドエージェント（ＦＡ）５０に返送する。
【００３４】
フィールドエージェント（ＦＡ）５０は、ステップＳ４において親エージェント（ＦＡ−ｐ）５１０が、上記返送されたプログラムを実行させるための子エージェント（ＦＡ−ｃ）５２１を生成すると共に、この生成された子エージェント（ＦＡ−ｃ）５２１に上記プログラムを割り当てる。またそれと共に親エージェント（ＦＡ−ｐ）５１０は、ステップＳ５において、上記プログラムをユーザエージェント（ＵＡ）４０へ転送する。
【００３５】
ユーザエージェント（ＵＡ）４０は、ステップＳ６において親エージェント（ＵＡ−ｐ）４１０が、上記転送されたプログラムを実行させるための子エージェント（ＵＡ−ｃ）４２１を生成すると共に、この生成された子エージェント（ＵＡ−ｃ）４２１に上記プログラムを割り当てる。
【００３６】
（１−２）サービス登録処理の詳細
次に、以上のサービス利用登録処理を詳細に説明する。図５及び図６はその詳細を示すフローチャートであり、図５はサービス提供エージェント（ＰＡ）７０でサービスプログラムが準備されるまでの処理手順と処理内容を、図６はサービスプログラムがフィールドエージェント（ＦＡ）５０及びユーザエージェント（ＵＡ）４０に登録されるまでの処理手順と処理内容をそれぞれ示している。
【００３７】
ユーザエージェント（ＵＡ）４０の親エージェント（ＵＡ−ｐ）４１０では、先ずステップＳ１において利用サービス管理部４１１から外部エージェント通信部４１６へサービス起動要求の送信指示が与えられ、これにより外部エージェント通信部４１６からフィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−ｐ）５１０へステップＳ２によりサービス起動要求が送信される。
【００３８】
フィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−ｐ）５１０では、上記サービス起動要求が外部エージェント通信部５１６で受信されると、当該要求がステップＳ３により利用サービス管理部５１１に通知される。この通知を受けると利用サービス管理部５１１ではサービス登録要求が発生され、このサービス登録要求はステップＳ４により外部エージェント通信部５１６に通知され、当該外部エージェント通信部５１６からサービス提供エージェント（ＰＡ）７０へステップＳ５により送信される。
【００３９】
サービス提供エージェント（ＰＡ）７０では、上記サービス起動要求が外部エージェント通信部７１５で受信されると、当該サービス起動要求がステップＳ６により利用管理部７１２に通知される。利用管理部７１２では、要求元となるユーザの認証が行われ、その結果がステップＳ７によりサービスプログラムレポジトリ７１１に通知される。サービスプログラムレポジトリ７１１では、上記認証結果より要求元ユーザの正当性が確認されると、登録対象となる実空間サービスプログラムが読み出され、ステップＳ８により外部エージェント通信部７１５に通知される。この実空間サービスプログラムは、外部エージェント通信部７１５から要求元となるフィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−ｐ）５２０にステップＳ９により送信される。
【００４０】
親エージェント（ＦＡ−ｐ）５２０では、外部エージェント通信部５１６により上記実空間サービスプログラムが受信されると、当該プログラムがステップＳ１０により利用サービス管理部５１１に伝えられる。利用サービス管理部５１１は、ステップＳ１１により子エージェント管理部５１３にプログラムの登録指示を与える。この指示を受けると子エージェント管理部５１３は、ステップＳ１２により子エージェント（ＦＡ−ｃ）５２１を起動すると共に、ステップＳ１３により上記プログラムを外部エージェント通信部５１６に渡す。この結果、外部エージェント通信部５１６から子エージェント（ＦＡ−ｃ）５２１へ、ステップＳ１４により上記プログラムが送られる。
【００４１】
子エージェント（ＦＡ−ｃ）５２１では、外部エージェント通信部５１３により上記プログラムが受信されると、当該受信されたプログラムがステップＳ１５により担当プログラム保持部５２１１に格納される。
【００４２】
また上記プログラムは、親エージェント（ＦＡ−ｐ）５２０の外部エージェント通信部５１６からユーザエージェント（ＵＡ）４０の親エージェント（ＵＡ−ｐ）４１０へステップＳ１６により転送される。親エージェント（ＵＡ−ｐ）４１０では、外部エージェント通信部４１６により上記プログラムが受信されると、当該プログラムがステップＳ１７により利用サービス管理部４１１に伝えられる。利用サービス管理部４１１は、ステップＳ１８により子エージェント管理部４１３にプログラムの登録指示を与える。この指示を受けると子エージェント管理部４１３は、ステップＳ１９により子エージェント（ＵＡ−ｃ）４２１を起動すると共に、ステップＳ２０により上記プログラムを外部エージェント通信部４１６に渡す。この結果、外部エージェント通信部４１６から子エージェント（ＵＡ−ｃ）４２１へステップＳ２１により上記プログラムが送られる。
【００４３】
子エージェント（ＵＡ−ｃ）４２１では、外部エージェント通信部４１３により上記プログラムが受信されると、当該受信されたプログラムがステップＳ２２により担当プログラム保持部４２１１に格納される。
【００４４】
（２）実空間サービスの実行動作
（２−１）実空間サービスの実行動作の概要
ここでは、ユーザエージェント（ＵＡ）４０が所持する機器３１により得られる測定値に基づいて、フィールドエージェント（ＦＡ）５０が所持する機器３２を駆動する場合を例にとって説明を行う。なお、ここでは機器３１，３２に対しそれぞれデバイスエージェント６１，６２が対応付けられているものとして説明を行う。図４はその動作の概要を示すフローチャートである。
【００４５】
ユーザエージェント（ＵＡ）４０では、子エージェント（ＵＡ−ｃ）４２１が、先に述べた登録処理により格納されたプログラムに従い、先ずステップＳ１により親エージェント（ＵＡ−ｐ）４１０に対し測定要求を送る。この要求を受けると親エージェント（ＵＡ−ｐ）４１０は、デバイスエージェント（ＤＡ）６１に対しステップＳ２により指令を送る。デバイスエージェント（ＤＡ）６１は、上記指令を受けると図示しない機器３１から測定値を取得し、当該測定値をステップＳ３により子エージェント（ＵＡ−ｃ）４２１に直接返送する。
【００４６】
次に子エージェント（ＵＡ−ｃ）４２１は、ステップＳ４によりサービス提供エージェント（ＰＡ）７０に対し処理要求を送る。サービス提供エージェント（ＰＡ）７０は、上記処理要求に応じて所定の処理を実行した後、その処理結果をステップＳ５によりフィールドエージェント（ＦＡ）５０の子エージェント（ＦＡ−ｃ）５２１に返送する。
【００４７】
フィールドエージェント（ＦＡ）５０の子エージェント（ＦＡ−ｃ）５２１は、上記返送された処理結果に基づいて、ステップＳ６により親エージェント（ＦＡ−ｐ）５１０に対し駆動要求を送る。この要求を受けると親エージェント（ＦＡ−ｐ）５１０は、デバイスエージェント（ＤＡ）６２に対しステップＳ７により駆動指令を送る。デバイスエージェント（ＤＡ）６２は、上記駆動指令を受けると図示しない機器を駆動する。
【００４８】
（２−２）実空間サービスの実行動作の詳細
次に、以上の実空間サービスの実行動作を詳細に説明する。図７及び図８はその詳細を示すフローチャートである。  
ユーザエージェント（ＵＡ）４０の子エージェント（ＵＡ−ｃ）４２１では、プログラム実行部４２２がステップＳ１，Ｓ２により担当プログラム保持部４２１１からプログラムを読み込み、当該プログラムに従い先ずステップＳ３により親エージェント（ＵＡ−ｐ）４１０に対し測定要求を送る。
【００４９】
親エージェント（ＵＡ−ｐ）４１０は、上記測定要求を受けると利用機器管理部４１２がデバイスエージェント（ＤＡ）６１に対しステップＳ４により指令を送信する。デバイスエージェント（ＤＡ）６１は、上記指令を受信するとプログラム実行部６１２がステップＳ５，Ｓ６により担当プログラム保持部６１１からプログラムを読み込む。そして、このプログラムに従い機器３１から測定値を取得して、当該測定値をステップＳ７により上記子エージェント（ＵＡ−ｃ）４２１に直接返送する。
【００５０】
上記測定値が取得されると子エージェント（ＵＡ−ｃ）４２１は、プログラム実行部４２１２がフィールドエージェント（ＦＡ）の子エージェント（ＦＡ−ｃ）５２１に対し、ステップＳ８により機器の駆動リクエストを送る。このリクエストを受け取ると子エージェント（ＦＡ−ｃ）５２１は、プログラム実行部５２１２がステップＳ８−ａ，Ｓ８−ｂにより担当プログラム保持部６１１からプログラムを読み込む。そして、このプログラムに従い、サービス提供エージェント（ＰＡ）７０に対し処理要求を送る。
【００５１】
サービス提供エージェント（ＰＡ）７０では、プログラム実行部７１４がステップＳ９，Ｓ１０により担当プログラム保持部７１３からプログラムを読み込む。そして、このプログラムに従い所定の処理を実行し、その結果をステップＳ１１により、フィールドエージェント（ＦＡ）５０の子エージェント（ＦＡ−ｃ）５２１及びユーザエージェント（ＵＡ）４０の子エージェント（ＵＡ−ｃ）４２１にそれぞれ返送する。
【００５２】
フィールドエージェント（ＦＡ）５０の子エージェント（ＦＡ−ｃ）５２１は、プログラム実行部５２１２が親エージェント（ＦＡ−ｐ）５１０に対し、ステップＳ１４により駆動要求を送る。この駆動要求を受信すると親エージェント（ＦＡ−ｐ）５１０は、デバイスエージェント（ＤＡ）６２に対しステップＳ１５により指令を送る。デバイスエージェント（ＤＡ）６２は、上記指令を受信するとプログラム実行部６１２が、機器３２を駆動制御する。
【００５３】
（３）競合調停サービスの登録
（３−１）サービス登録動作の概要
競合調停サービスを実行するには、そのサービスプログラムの登録を行う必要がある。図９はその処理手順と処理内容の概要を示すフローチャートである。
【００５４】
競合調停サービスには、環境競合サービスと、機器競合サービスとがある。環境競合サービスは、特定の実空間サービスによるデバイスエージェント（ＤＡ）６１の駆動によって生じる環境因子（温度、光、音など）への影響が、他の実空間サービスに影響を及ぼさないように調停するサービスである。機器競合サービスは、複数の実空間サービスから同一のデバイスエージェント（ＤＡ）６１に対する駆動要求が発生した場合に、矛盾や干渉が発生しないように調停するサービスである。この実施形態では、環境競合調停サービスと、機器競合調停サービスを別々に登録する。
【００５５】
先ず環境競合調停サービスを登録する場合には、システムの管理者がフィールドエージェント（ＦＡ）５０に対し競合調停サービスの登録要求を入力する。そうすると、フィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−Ｐ）５１０が、先ずステップＳ１によりサービス提供エージェント（ＰＡ）７０に対しサービスの登録要求を送信する。これに対しサービス提供エージェント（ＰＡ）７０は、管理者の認証を行ってその正当性が確認されると、競合調停サービスの実行プログラム（ルール及びスクリプト等）を登録許可通知と共にステップＳ２により要求元の親エージェント（ＦＡ−Ｐ）５１０に返送する。親エージェント（ＦＡ−Ｐ）５１０は、上記登録許可通知を受信すると、当該通知と共に受信したプログラムを担当プログラム保持部５１４に格納する。
【００５６】
また、フィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−Ｐ）５１０は、上記返送された競合調停サービスの実行プログラムを、ステップＳ４によりユーザエージェント（ＵＡ）４０に転送する。ユーザエージェント（ＵＡ）４０の親エージェント（ＵＡ−ｐ）４１０は、上記転送されたプログラムを環境競合調停サービス用として担当プログラム保持部４１４に格納する。
【００５７】
次に、機器競合調停サービスを登録する場合には、フィールドエージェント（ＦＡ）５０の配下にある機器の競合調停用と、ユーザエージェント（ＵＡ）４０の配下にある機器の競合調停用とに分けて行われる。
【００５８】
先ずフィールドエージェント（ＦＡ）５０の配下にある機器の競合調停用サービスを登録する場合には、先に述べた環境競合調停サービスの登録時と同様に、システムの管理者がフィールドエージェント（ＦＡ）５０に対し競合調停サービスの登録要求を入力する。そうすると、フィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−Ｐ）５１０からサービス提供エージェント（ＰＡ）７０に対しサービスの登録要求が送られる。これに対しサービス提供エージェント（ＰＡ）７０からは、競合調停サービスの実行プログラム（ルール及びスクリプト等）が登録許可通知と共に要求元の親エージェント（ＦＡ−Ｐ）５１０に返送され、担当プログラム保持部５１４に格納される。
【００５９】
なお、フィールドエージェント（ＦＡ）５０が複数ある場合には、これらのフィールドエージェント（ＦＡ）５０ごとに上記競合調停サービスプログラムの登録処理が実行される。
【００６０】
一方、ユーザエージェント（ＵＡ）４０の配下にある機器の競合調停用サービスを登録する場合には、ステップＳ１によりユーザエージェント（ＵＡ）４０の親エージェント（ＵＡ−ｐ）４１０からフィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−Ｐ）５１０に対しサービス登録要求が送信され、このサービス登録要求はステップＳ２により親エージェント（ＦＡ−Ｐ）５１０からサービス提供エージェント（ＰＡ）７０に転送される。
【００６１】
これに対しサービス提供エージェント（ＰＡ）７０からは、ステップＳ３により競合調停サービスの実行プログラム（ルール及びスクリプト等）が登録許可通知と共に要求元の親エージェント（ＦＡ−Ｐ）５１０に返送され、さらにステップＳ４により要求元のユーザエージェント（ＵＡ）４０の親エージェント（ＵＡ−ｐ）４１０に転送される。そして、当該親エージェント（ＵＡ−ｐ）４１０において、ステップＳ５により担当プログラム保持部４１４に格納される。なお、ユーザエージェント（ＵＡ）が複数ある場合には、これらのユーザエージェント（ＵＡ）ごとに上記競合調停サービスプログラムの登録処理が実行される。
【００６２】
（４）競合調停サービスの実行
（４−１）競合調停サービスの概要
ここでも、先に述べた実空間サービスの実行の場合と同様に、ユーザエージェント（ＵＡ）４０が所持する機器３１により得られる測定値に基づいて、フィールドエージェント（ＦＡ）５０が所持する機器３２を駆動する場合を例にとって説明を行う。
【００６３】
図１０はその処理手順を示すフローチャートである。同図において、ユーザエージェント（ＵＡ）４０では、子エージェント（ＵＡ−ｃ）４２１が、事前に登録された実空間サービスプログラムに従い、ステップＳ１により親エージェント（ＵＡ−ｐ）４１０に対し測定要求を送る。この要求を受けると親エージェント（ＵＡ−ｐ）４１０は、事前に登録された競合調停サービスプログラムの下で、先ずステップＳ２により、自己のユーザエージェント（ＵＡ）４０の配下にある機器について機器競合の調停ルールを満足するか否かを判定する。
【００６４】
例えば、１つの機器に対し１つの実空間サービスから測定要求が発生している場合には、機器競合の調停ルールを満足していると判定する。これに対し、１つの機器に対し異なる実空間サービスから同時に複数の測定要求が発生した場合には、機器競合の調停ルールを満足しないと判定する。
【００６５】
上記判定の結果、機器競合の調停ルールを満足している場合には、フィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−ｐ）５１０に対し環境競合の調停の要否について判定を依頼する。この依頼を受けた親エージェント（ＦＡ−ｐ）５１０は、ステップＳ３において、機器の駆動によって生じる環境因子への影響が他の実空間サービスに影響を及ぼすか否かを環境競合の調停ルールに従い判定し、その判定結果を依頼元のユーザエージェント（ＵＡ）４０の親エージェント４１０に返送する。
【００６６】
親エージェント４１０は、上記判定結果環境競合の調停が不要であれば、デバイスエージェント（ＤＡ）６１に対しステップＳ４により指令を送る。デバイスエージェント（ＤＡ）６１は、上記指令を受けると図示しない機器３１から測定値を取得し、当該測定値をステップＳ５により子エージェント（ＵＡ−ｃ）４２１に直接返送する。
【００６７】
上記測定値を受信すると子エージェント（ＵＡ−ｃ）４２１は、次にステップＳ６において、フィールドエージェント（ＦＡ）５０の子エージェント（ＦＡ−ｃ）５２１に対し機器の駆動リクエストを送信する。このリクエストを受信するとフィールドエージェント（ＦＡ）５０の子エージェント（ＦＡ−ｃ）５２１は、サービス提供エージェント（ＰＡ）７０に対し処理要求を送り、その処理結果をステップＳ７により受け取る。
【００６８】
次に子エージェント（ＦＡ−ｃ）５２１は、ステップＳ８により親エージェント（ＦＡ−ｐ）５１０に対し駆動要求を送る。この要求を受けると親エージェント（ＦＡ−ｐ）５１０は、事前に登録された競合調停サービスプログラムの下で、先ずステップＳ９において、自己のフィールドエージェント（ＦＡ）５０の配下にある機器について、機器競合の調停ルールを満足するか否かを判定する。
【００６９】
そして、機器競合の調停ルールを満足している場合には、続いてステップＳ１０において、機器の駆動によって生じる環境因子への影響が他の実空間サービスに影響を及ぼすか否かを環境競合の調停ルールに従い判定する。そして、この判定の結果環境競合の調停も不要であれば、ステップＳ１１によりデバイスエージェント（ＤＡ）６１に対し指令を送る。デバイスエージェント（ＤＡ）６２は、上記指令を受けると図示しない機器３２を駆動する。
【００７０】
なお、上記ユーザエージェント（ＵＡ）４０及びフィールドエージェント（ＦＡ）５０の各親エージェント（ＵＡ−ｐ）４１０、（ＦＡ−ｐ）５１０において、機器競合の調停又は環境競合の調停が必要と判定された場合には、対応するサービス提供エージェント（ＰＡ）７０に対し機器競合又は環境競合の調停サービスを依頼する。
【００７１】
（４−２）競合調停判定動作の詳細
（４−２−１）フィールドエージェント（ＦＡ）５０内で子エージェント（ＦＡ−ｃ）５２１からフィールドエージェント配下の機器への駆動要求を調停する場合
図１１はその処理手順と処理内容を示すフローチャートである。なお、親エージェント（ＦＡ−ｐ）５１０には予め機器競合調停ルール及び環境競合調停ルールが登録されているものとする。これらの調停ルールはいずれも（if ([K],[E]) then command）で構成され、commandには親エージェント（ＦＡ−ｐ）５１０内で処理できるものと、ユーザエージェント（ＵＡ）４０の親エージェント（ＵＡ−ｐ）４２１に送信して確認するものがあり、true/falseの２値をとるものとする。
【００７２】
すなわち、親エージェント（ＦＡ−ｐ）５１０は、子エージェント（ＦＡ−ｃ）５２１から機器［Ｄ］の駆動［Ｅ］要求をステップＳ１で受信すると、先ずステップＳ２において機器［Ｄ］の機種［Ｋ］を特定する。次にステップＳ３において、予め登録されている機器競合調停ルールをもとに、上記（［Ｋ］，［Ｅ］）に一致するコマンドがすべて“true”か否かを判定する。
【００７３】
そして、コマンドがすべて“true”であれば、続いてステップＳ５において、予め登録されている環境競合調停ルールをもとに、上記（［Ｋ］，［Ｅ］）に一致するコマンドがすべて“true”か否かを判定する。そして、この環境競合調停においてもコマンドがすべて“true”であれば、ステップＳ７において機器［Ｄ］のデバイスエージェント（ＤＡ）６１，６２に対し駆動指令を送出する。  
なお、親エージェント（ＦＡ−ｐ）５１０内で処理ができないコマンドについては、サービス提供エージェント（ＰＡ）７０の調停サービス（ステップＳ４，Ｓ６）に判定を依頼する。
【００７４】
一方、上記ステップＳ３による機器競合調停の判定とステップＳ５による環境競合調停の判定の少なくとも一方においてコマンドがすべて“true”ではないと判定された場合には、ステップＳ８においてデバイスエージェント（ＤＡ）６１，６２に対する駆動指令の送出を拒否する。
【００７５】
（４−２−２）ユーザエージェント（ＵＡ）４０内で子エージェント（ＵＡ−ｃ）４２１からユーザエージェント配下の機器への駆動要求を調停する場合
図１２はその処理手順と処理内容を示すフローチャートである。なお、親エージェント（ＵＡ−ｐ）４１０には予め機器競合調停ルールが登録されているものとし、環境競合調停ルールについてはフィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−ｐ）５１０への転送指示のみが定義されているものとする。
【００７６】
すなわち、親エージェント（ＵＡ−ｐ）４１０は、子エージェント（ＵＡ−ｃ）４２１から機器［Ｄ］の駆動［Ｅ］要求をステップＳ１で受信すると、先ずステップＳ２において機器［Ｄ］の機種［Ｋ］を特定する。次にステップＳ３において、予め登録されている機器競合調停ルールをもとに、上記（［Ｋ］，［Ｅ］）に一致するコマンドがすべて“true”か否かを判定する。
【００７７】
そして、コマンドがすべて“true”であれば、続いてステップＳ５において、フィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−ｐ）５１０に対し環境競合調停の判定を依頼する。親エージェント（ＦＡ−ｐ）５１０では、ステップＳ６において、予め登録されている環境競合調停ルールをもとに、上記（［Ｋ］，［Ｅ］）に一致するコマンドがすべて“true”か否かが判定される。そして、この環境競合調停の結果が親エージェント（ＵＡ−ｐ）４１０に返却される。
【００７８】
親エージェント（ＵＡ−ｐ）４１０では、上記環境競合調停の判定においてもコマンドがすべて“true”と判定されれば、ステップＳ７において機器［Ｄ］のデバイスエージェント（ＤＡ）６１に対し駆動指令を送出する。この結果、デバイスエージェント（ＤＡ）６１により機器が駆動される（ステップＳ９）。
【００７９】
なお、親エージェント（ＵＡ−ｐ）４１０内で処理ができないコマンドについては、サービス提供エージェント（ＰＡ）７０の調停サービス（ステップＳ４）に判定を依頼する。
【００８０】
一方、上記ステップＳ３による機器競合調停の判定とステップＳ５による環境競合調停の判定の少なくとも一方においてコマンドがすべて“true”ではないと判定された場合には、ステップＳ８においてデバイスエージェント（ＤＡ）６１，６２に対する駆動指令の送出を拒否する。
【００８１】
（効果）
以上詳述したように第１の実施形態では、エージェントモデルを構成する各エージェントのうち、ユーザエージェント（ＵＡ）４０及びフィールドエージェント（ＦＡ）５０を、管理機能を担う親エージェント（ＵＡ−ｐ）４１０、（ＦＡ−ｐ）５１０と、実空間サービスの実行機能を担う複数の子エージェント（ＵＡ−ｃ）４２１，４２２，（ＦＡ−ｃ）５２１，５２２にそれぞれ階層化し、機器を駆動する際には、子エージェント（ＵＡ−ｃ）４２１，４２２、（ＦＡ−ｃ）５２１，５２２が送信した駆動要求を親エージェント（ＵＡ−ｐ）４１０，（ＦＡ−ｐ）５１０を経由してデバイスエージェント（ＤＡ）６０に送信し、デバイスエージェント（ＤＡ）６０からの応答は子エージェント（ＵＡ−ｃ）４２１，４２２、（ＦＡ−ｃ）５２１，５２２が直接受信するようにしている。また、上記機器を駆動する際には、当該機器を配下に含む親エージェント（ＵＡ−ｐ）４１０、（ＦＡ−ｐ）５１０が機器競合調停の判定を行い、またフィールドエージェント（ＦＡ）５０の親エージェント（ＦＡ−ｐ）５１０が環境競合調停の判定を行うようにしている。
【００８２】
したがって、ユーザエージェント（ＵＡ）４０及びフィールドエージェント（ＦＡ）５０が、親エージェント（ＵＡ−ｐ）４１０、（ＦＡ−ｐ）５１０と、子エージェント（ＵＡ−ｃ）４２１，４２２、（ＦＡ−ｃ）５２１，５２２とに階層化され、各実空間サービスが子エージェント（ＵＡ−ｃ）４２１，４２２、（ＦＡ−ｃ）５２１，５２２により個別に実行される。このため、例えば同一空間又はユーザの下で動作する実空間サービスを追加する場合には、子エージェントを別途追加するだけで実現できる。したがって、追加された子エージェントを異なるコンピュータに実行させることが可能となり、これにより親エージェント（ＵＡ−ｐ）４１０、（ＦＡ−ｐ）５１０の機能を実行するコンピュータの処理負荷の増加を抑制することができる。
【００８３】
また、実空間サービスを追加しても、管理機能は親エージェント（ＵＡ−ｐ）４１０、（ＦＡ−ｐ）５１０で一括管理されているので、管理に係る一貫性が維持される。さらに、同時多発的に機器に対する駆動要求が発生した場合でも、当該要求はすべて親エージェント（ＵＡ−ｐ）４１０、（ＦＡ−ｐ）５１０で一括管理されるので、各要求に対する公平性が維持される。
【００８４】
さらに、機器３１〜３４を駆動する際に、その要求は子エージェント（ＵＡ−ｃ）４２１，４２２、（ＦＡ−ｃ）５２１，５２２から親エージェント（ＵＡ−ｐ）４１０、（ＦＡ−ｐ）５１０を経由してデバイスエージェント（ＤＡ）６０に転送されるが、当該要求に対するデバイスエージェント（ＤＡ）６０の応答は親エージェント（ＵＡ−ｐ）４１０、（ＦＡ−ｐ）５１０を経由せずに子エージェント（ＵＡ−ｃ）４２１，４２２、（ＦＡ−ｃ）５２１，５２２で直接受信される。このため、上記公平性を維持した上で、親エージェント（ＵＡ−ｐ）４１０、（ＦＡ−ｐ）５１０の負荷を軽減することができる。
【００８５】
さらに、上記機器３１〜３４の駆動に際しては、親エージェント（ＵＡ−ｐ）４１０、（ＦＡ−ｐ）５１０において、サービス提供エージェント（ＰＡ）７０から取得した競合調停ルールに従い機器間の競合及び環境間の競合が判定される。このため、複数のサービスをそれぞれ子エージェントとして分割し、異なるコンピュータ上で動作させたとしても、公平性を確保できる利点がある。
【００８６】
［第２の実施形態］
この発明の第２の実施形態は、第１の実施形態の各機能に加え、エージェントのグループ化機能を備えたものである。グループ化機能とは、ユーザエージェント（ＵＡ）４０、フィールドエージェント（ＦＡ）５０、デバイスエージェント（ＤＡ）６０及びサービス提供エージェント（ＰＡ）７０が複数存在する場合に、これらのエージェントをその役割ごとに又は実空間サービスの種類ごとにグループ化し、実行する実空間サービスごとに対応するグループに属するエージェント間で、機器を駆動するための動作を実行するものである。
【００８７】
（構成）
以下に各グループの定義を説明する。  
ＧＰ：空間下におけるすべての親エージェントを１つのグループとし、このグループを空間ごとに設定する。これらのグループにより、実空間サービスの管理と登録、機器の登録と管理、機器の探索、競合調停サービスへの対応を行う。一方で、機器制御等、実空間サービス実行にかかるアクセスは、各エージェントにおいて無効とする。また、競合調停サービスのルール送受や機器駆動への割り込みにも利用する。
【００８８】
ＧＨ：親エージェントと子エージェントとの間のすべてのエージェントを１つのグループとし、このグループをユーザごと及び空間ごとに設定する。これらのグループにより、フィールドエージェント（ＦＡ）及びユーザエージェント（ＵＡ）において、親エージェントと子エージェントとの間でのアクセスを提供する。
【００８９】
ＧＤ：機器のデバイスエージェント（ＤＡ）を１つのグループとし、このグループをユーザごとに又は空間ごとに設ける。これらのグループにより、フィールドエージェント（ＦＡ）又はユーザエージェント（ＵＡ）によるデバイスエージェント（ＤＡ）の管理と指令の伝達を行う。一方、計測データの送信（デバイスエージェント（ＤＡ）から他エージェント）は、このグループでは無効となる。
【００９０】
ＧＴ：データ送信対象を１つのグループとし、機器ごとにグループを設定する。これらのグループでは、デバイスエージェント（ＤＡ）での計測データの送信が行われる。データの伝達は、デバイスエージェント（ＤＡ）から他のエージェントへの一方通行とし、計測方法等の指定は無効となる。
【００９１】
ＧＳ：実空間サービスごとに１つのグループを構成するもので、特定の実空間サービスに対する管理以外のアクセスを提供する。
【００９２】
以下に、グループ化の具体例を説明する。  
例えば、いま特定の空間α下に２人のユーザ（Ａ，Ｂ）、３台の機器（イ，ロ，ハ）、３種類の実空間サービス（１，２，３）を利用する場合に、図１３に示すようなエージェントモデルが構成されているものとする。このエージェントモデルに対し、エージェントの役割ごとにグループ化した例を図１４に示す。また、上記エージェントモデルを実空間サービスの管理主体ごとにグループ化した例を図１５に示す。図１４及び図１５において、凡例はＡ＝サービス登録・探索をメンバに送出可、Ｄ＝他メンバの生成・消去可、Ｓ＝データ／指令の送信可、Ｒ＝データ／指令の受信可を示す。
【００９３】
（動作）
次に、以上のようにグループ化されたエージェントモデルを使用した場合の動作を説明する。  
（１）実空間サービスの登録
ユーザエージェント（ＵＡ）Ｂがサービス提供エージェント（ＰＡ）７０を利用登録する際の一連の動作を以下に説明する。図１６はその処理手順と処理内容を示すフローチャートである。
【００９４】
先ずユーザエージェント（ＵＡ）Ｂの親エージェント（ＵＡ−ｐ）Ｂから、フィールドエージェント（ＦＡ）αの親エージェント（ＦＡ−ｐ）に対し、ステップＳ１によりサービス起動要求が送信される。このサービス起動要求を受信するとフィールドエージェント（ＦＡ）αの親エージェント（ＦＡ−ｐ）は、ステップＳ２により、サービス提供エージェント（ＰＡ）３に対しサービス登録要求を送信する。サービス提供エージェント（ＰＡ）３は、上記サービス登録要求を受信すると、該当するプログラムを登録許可通知と共にフィールドエージェント（ＦＡ）αの親エージェント（ＦＡ−ｐ）に返送する。
【００９５】
フィールドエージェント（ＦＡ）αの親エージェント（ＦＡ−ｐ）は、ステップＳ４において、上記返送されたプログラムを実行させるための子エージェント（ＦＡ−ｃ）３に上記プログラムを割り当てる。またそれと共に親エージェント（ＦＡ−ｐ）は、ステップＳ５において、上記プログラムをユーザエージェント（ＵＡ）Ｂの親エージェント（ＵＡ−ｐ）Ｂへ転送する。
【００９６】
ユーザエージェント（ＵＡ）４０の親エージェント（ＵＡ−ｐ）Ｂは、ステップＳ６において、上記転送されたプログラムを実行させるための子エージェント（ＵＡ−ｃ）Ｂ３に上記プログラムを割り当てる。
【００９７】
（２）実空間サービスの実行動作
ここでは、ユーザエージェント（ＵＡ）Ｂがサービス提供エージェント（ＰＡ）３を利用する際の一連の動作について説明する。図１７はその処理手順と処理内容を示すフローチャートである。
【００９８】
ユーザエージェント（ＵＡ）Ｂの子エージェント（ＵＡ−ｃ）Ｂ３は、事前に登録されたプログラムに従い、先ずステップＳ１により親エージェント（ＵＡ−ｐ）Ｂに対しデータ取得要求を送る。この要求を受けると親エージェント（ＵＡ−ｐ）Ｂは、デバイスエージェント（ＤＡ）ハに対しステップＳ２によりデータ送信指令を送る。デバイスエージェント（ＤＡ）ハは、上記指令を受けると図示しない機器３１から例えば測定データを取得し、当該測定データをステップＳ３により子エージェント（ＵＡ−ｃ）Ｂ３に直接返送する。
【００９９】
次に子エージェント（ＵＡ−ｃ）Ｂ３は、ステップＳ４によりサービス提供エージェント（ＰＡ）３に対し処理要求を送る。サービス提供エージェント（ＰＡ）３は、上記処理要求に応じて所定の処理を実行した後、その処理結果をステップＳ５によりフィールドエージェント（ＦＡ）Ｂの子エージェント（ＦＡ−ｃ）Ｂ３に返送する。
【０１００】
フィールドエージェント（ＦＡ）Ｂの子エージェント（ＦＡ−ｃ）Ｂ３は、上記返送された処理結果に基づいて、ステップＳ６−１により親エージェント（ＦＡ−ｐ）に対し駆動要求を送る。この要求を受けると親エージェント（ＦＡ−ｐ）は、デバイスエージェント（ＤＡ）ロに対しステップＳ７により駆動指令を送る。デバイスエージェント（ＤＡ）ロは、上記駆動指令を受けると図示しない機器を駆動する。
【０１０１】
なお、フィールドエージェント（ＦＡ）Ｂの子エージェント（ＦＡ−ｃ）Ｂ３は、上記サービス提供エージェント（ＰＡ）３から返送された処理結果を、ステップＳ６−２によりユーザエージェント（ＵＡ）Ｂの子エージェント（ＵＡ−ｃ）Ｂ３に転送する。
【０１０２】
（効果）
以上詳述したように第２の実施形態では、ユーザエージェント（ＵＡ）、フィールドエージェント（ＦＡ）、デバイスエージェント（ＤＡ）及びサービス提供エージェント（ＰＡ）を、エージェントの役割ごとに、また実空間サービスの種類ごとにグループ化し、実行する実空間サービスごとに対応するグループに属するエージェント間で、上記機器を駆動するための動作を実行するようにしている。
【０１０３】
したがって、エージェントの役割ごとに、また実空間サービスごとに利用対象となるエージェントが隔離される。このため、各エージェントにおける処理負荷を抑制して、より一層一貫性及び公平性を高めることが可能となる。
【０１０４】
［他の実施形態］
なお、この発明は上記各実施形態に限定されるものではない。例えば、前記実施形態では機器競合調停と環境競合調停の両方を実行するようにしたが、条件によりいずれか一方を実行するようにしてもよい。また、エージェントを実行するコンピュータの数や設置位置、実空間サービスの種類や機器の種類等についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
【０１０５】
要するにこの発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【０１０６】
４０…ユーザエージェント（ＵＡ）、５０…フィールドエージェント（ＦＡ）、６０…デバイスエージェント（ＤＡ）、７０…サービス提供エージェント（ＰＡ）、４１０…ユーザ親エージェント（ＵＡ−ｐ）、４２１，４２２…ユーザ子エージェント（ＵＡ−ｃ）、５１０…フィールド親エージェント（ＦＡ−ｐ）、５２１，５２２…フィールド子エージェント（ＦＡ−ｃ）、４１１，５１１…利用サービス管理部、４１２，５１２…利用機器管理部、４１３，５１３…子エージェント管理部、４１４，４２１１，５１４，５２１１，６１１，７１３…担当プログラム保持部、４１５，４２１２，５１５，５２１１，６１２，７１４…プログラム実行部、４１６，４２１３，５１６，５２１３，６１３，７１５…外部エージェント通信部、７１１…サービスプログラムレポジトリ、７１２…利用者管理部。
【図１】
2016038737.tif 000003
【図２】
2016038737.tif 000004
【図３】
2016038737.tif 000005
【図４】
2016038737.tif 000006
【図５】
2016038737.tif 000007
【図６】
2016038737.tif 000008
【図７】
2016038737.tif 000009
【図８】
2016038737.tif 000010
【図９】
2016038737.tif 000011
【図１０】
2016038737.tif 000012
【図１１】
2016038737.tif 000013
【図１２】
2016038737.tif 000014
【図１３】
2016038737.tif 000015
【図１４】
2016038737.tif 000016
【図１５】
2016038737.tif 000017
【図１６】
2016038737.tif 000018
【図１７】
2016038737.tif 000019
【図１８】
2016038737.tif 000020