(57)【特許請求の範囲】
【請求項１】
一つ以上の外部機器を識別する識別手段と、
前記外部機器が有するハードウェアをインタフェースとして利用し、前記外部機器ごとに定められた所定の処理を代行するエージェントを生成するエージェント生成手段と、
前記エージェントを実行させるエージェント実行手段と、
前記外部機器から、当該外部機器を識別するためのデータであるメタデータを取得し、当該取得したメタデータに基づいて、代行すべき処理に関する情報である機器情報を、前記機器情報をユーザと関連付けて記憶しているサーバ装置から取得する機器情報取得手段と、
を有し、
前記エージェント生成手段は、前記機器情報を用いて前記エージェントを生成し、
前記機器情報取得手段は、ユーザに対応する認証情報を前記サーバ装置に送信し、前記ユーザに対応する機器情報のみを前記サーバ装置から取得する
ことを特徴とする、情報処理装置。
【請求項２】
前記外部機器とペアリングによる無線接続を行う通信手段をさらに有し、
前記機器情報取得手段は、前記外部機器と接続したタイミングで当該外部機器からメタデータを取得する
ことを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記メタデータは、ネットワーク上における前記機器情報の取得先を含み、
前記機器情報取得手段は、前記メタデータが示す取得先から前記機器情報を取得する
ことを特徴とする、請求項１または２に記載の情報処理装置。
【請求項４】
前記機器情報は、前記外部機器によって取得可能なデータに関する第一の情報と、前記データを用いて行う処理に関する第二の情報と、を含み、
前記エージェントは、前記第一および第二の情報を用いて前記所定の処理を実行する
ことを特徴とする、請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
一つ以上の外部機器について、前記外部機器が有するハードウェアをインタフェースと
して利用し、前記外部機器ごとに定められた所定の処理を代行するエージェントを実行する情報処理装置と、サーバ装置と、からなるエージェントシステムであって、
前記情報処理装置は、
代行すべき処理に関する情報である機器情報を前記サーバ装置から取得する機器情報取得手段と、
前記機器情報を用いて前記エージェントを生成するエージェント生成手段と、を有し、
前記サーバ装置は、
前記一つ以上の外部機器に対応する機器情報を記憶する記憶手段と、
前記情報処理装置からの要求に応じて、対応する機器情報を送信する機器情報提供手段と、を有し、
前記記憶手段は、前記機器情報をユーザと関連付けて記憶し、
前記機器情報取得手段は、ユーザに対応する認証情報を前記サーバ装置に送信し、
前記機器情報提供手段は、前記ユーザに対応する機器情報のみを前記情報処理装置に送信する
ことを特徴とする、エージェントシステム。
【請求項６】
前記機器情報は、前記外部機器に紐付いた鍵情報を含み、
前記エージェントは、前記鍵情報を用いて前記外部機器と暗号通信を行う
ことを特徴とする、請求項５に記載のエージェントシステム。
【請求項７】
前記エージェントは、前記情報処理装置に接続された外部装置のうち、前記ユーザに対応する認証情報と同一の認証情報を有する外部装置とのみ通信を行う
ことを特徴とする請求項５または６に記載のエージェントシステム。
【請求項８】
一つ以上の外部機器を識別する識別ステップと、
前記外部機器が有するハードウェアをインタフェースとして利用し、前記外部機器ごとに定められた所定の処理を代行するエージェントを生成するエージェント生成ステップと、
前記エージェントを実行させるエージェント実行ステップと、
前記外部機器から、当該外部機器を識別するためのデータであるメタデータを取得し、当該取得したメタデータに基づいて、代行すべき処理に関する情報である機器情報を、前記機器情報をユーザと関連付けて記憶しているサーバ装置から取得する機器情報取得ステップと、
を有し、
前記エージェント生成ステップでは、前記機器情報を用いて前記エージェントを生成し、
前記機器情報取得ステップでは、ユーザに対応する認証情報を前記サーバ装置に送信し、前記ユーザに対応する機器情報のみを前記サーバ装置から取得する
ことを特徴とする、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器が行う処理をエージェントによって代行するシステムに関する。
【背景技術】
【０００２】
近年、様々な機器をネットワークに接続し、複数の機器を協調させて利用することができるシステムが普及し始めている。例えば、特許文献１には、複数の家電機器をネットワークに接続し、その家電機器にそれぞれ対応するエージェントを有し、マスタコンピュータによって、各エージェントを管理するシステムが記載されている。
【０００３】
特許文献１に記載のシステムでは、ネットワークの中枢に位置するマスタ機器が、複数の家電機器にそれぞれ対応するエージェントを実行し、当該エージェントが当該複数の家電機器の制御の一部を分担している。このような構成にすることで、複数の家電機器に対して最適な制御（例えば消費電力の最小化など）が行えるだけでなく、家電機器単位のモデルを他のマスタ機器に移行させることもできる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−０９９１１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一方で、ネットワークに接続される機器が増えると、それぞれの機器に対して機能を追加しようとした際のコストが増大するという問題がある。例えば、特許文献１に記載されたようなエージェントシステムでは、情報の収集と管理を行うことはできるが、情報の生成自体は家電機器が行っているため、家電機器に新規の機能を追加したようとした場合は、家電機器そのもののソフトウェアを更新しなければならない。このようなコストは、機器の数に比例して増大する。
また、個々の機器の処理能力には限界があるため、求める機能が増えた場合、家電機器のハードウェアを強化しなければならず、機器の大型化や消費電力の増加を招くという課題があった。
【０００６】
特許文献１に記載されたエージェントシステムは、ネットワーク上でサーバや複数の機器などと接続するため、ネットワーク上のセキュリティ対策が必要となる。この対策であるセキュリティ機能を家電機器に追加することも機器の大型化や消費電力の増加を招くことになる。
【０００７】
本発明は上記の課題を考慮してなされたものであり、ネットワークに接続された機器をエージェントによって制御するシステムにおいて低コスト化を図ることを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る情報処理装置は、一つ以上の外部機器を識別する識別手段と、前記外部機器が有するハードウェアをインタフェースとして利用し、前記外部機器ごとに定められた所定の処理を代行するエージェントを生成するエージェント生成手段と、前記エージェントを実行させるエージェント実行手段と、を有することを特徴とする。
【０００９】
本発明に係る情報処理装置は、外部機器に対応するエージェントを生成し実行させる装置である。エージェントとは、従来、外部機器においてソフトウェアが実行していた処理
を代行するソフトウェアである。エージェントは、外部機器が有するハードウェアをインタフェースとして利用し、外部機器ごとに定められた所定の機能を実行する。すなわち、外部機器は入出力のみを行い、それらに付随する処理はエージェントを実行している装置が行う。
かかる構成によると、外部機器は、インタフェースと、インタフェースに付随する小規模なハードウェアのみを実装していればよく、その他の機能を実現するための大規模なソフトウェア実行手段を省略することができる。すなわち、外部機器にかかるコストを抑えることができる。また、エージェントを更新することにより、複数の外部機器の機能を更新することができる。
【００１０】
なお、インタフェースとなるハードウェアは、典型的には、センサやアクチュエータなどであるが、これらに限られない。実世界との接点を担うものであれば、どのようなものであってもよい。
また、エージェントはその都度生成してもよいし、生成したものを記憶しておき、再利用してもよい。一度生成されたエージェントは、外部機器が有する機能が更新されない限り再利用することもできる。
【００１１】
また、本発明に係る情報処理装置は、前記外部機器から、当該外部機器を識別するためのデータであるメタデータを取得し、当該取得したメタデータに基づいて、代行すべき処理に関する情報である機器情報を取得する機器情報取得手段をさらに有し、前記エージェント生成手段は、前記機器情報を用いて前記エージェントを生成することを特徴としてもよい。
【００１２】
メタデータとは、外部機器を識別するための情報である。メタデータは、例えば、外部機器の識別子、属性、シリアル番号などであるが、これらに限られない。例えば、これらの情報の場所を示すＵＲＬなどであってもよい。機器情報取得手段は、メタデータの内容に基づいて、対応する機器情報を取得する。
機器情報とは、外部機器が有するハードウェアを用いて実現すべき処理（機能）に関する情報である。機器情報は、例えば、外部機器が有しているハードウェアに関する情報（例えば、ハードウェアにアクセスして得られる情報の詳細など）や、当該情報を用いてデータを生成ないし加工すべき方法などを含む。
このように、外部機器は自己を識別するための情報のみを送信し、機器情報取得手段が、当該メタデータに基づいて具体的な情報を取得するようにしてもよい。かかる構成によると、外部機器に関連付いた機能を当該装置の外部で管理できるようになる。
【００１３】
また、前記通信手段は、前記外部機器とペアリングによる無線接続を行い、前記機器情報取得手段は、前記外部機器と接続したタイミングで当該外部機器からメタデータを取得することを特徴としてもよい。
【００１４】
外部機器との接続が発生するごとにメタデータを取得することで、当該外部機器を適切なタイミングで識別することができる。
【００１５】
また、前記メタデータは、ネットワーク上における前記機器情報の取得先を含み、前記機器情報取得手段は、前記メタデータが示す取得先から前記機器情報を取得することを特徴としてもよい。
【００１６】
機器情報の取得先は、例えば、ＵＲＬやＵＲＩ、ネットワークアドレスなどによって表してもよい。このように、ネットワークから機器情報を取得するようにすることで、機器情報を容易に更新することができるようになる。
【００１７】
また、前記機器情報は、前記外部機器によって取得可能なデータに関する第一の情報と、前記データを用いて行う処理に関する第二の情報と、を含み、前記エージェントは、前記第一および第二の情報を用いて前記所定の処理を実行することを特徴としてもよい。
【００１８】
本発明に係る情報処理装置は、例えば、外部機器がデータ（例えばセンサデータ）のみを提供し、エージェントが当該データを用いて情報の生成や加工を行う形態に好適に適用することができる。
【００１９】
また、本発明の第二の形態に係る情報処理装置は、
一つ以上の外部機器と通信を行う通信手段と、前記外部機器が有するハードウェアをインタフェースとして利用し、前記外部機器ごとに定められた所定の処理を代行するエージェントを実行するエージェント実行手段と、を有することを特徴とする。
【００２０】
このように、本発明は、エージェントを実行する情報処理装置として特定することもできる。
【００２１】
また、本発明に係るエージェントシステムは、
一つ以上の外部機器について、前記外部機器が有するハードウェアをインタフェースとして利用し、前記外部機器ごとに定められた所定の処理を代行するエージェントを実行する情報処理装置と、サーバ装置と、からなるエージェントシステムであって、前記情報処理装置は、代行すべき処理に関する情報である機器情報を前記サーバ装置から取得する機器情報取得手段と、前記機器情報を用いて前記エージェントを生成するエージェント生成手段と、を有し、前記サーバ装置は、前記一つ以上の外部機器に対応する機器情報を記憶する記憶手段と、前記情報処理装置からの要求に応じて、対応する機器情報を送信する機器情報提供手段と、を有することを特徴とする。
【００２２】
このように、本発明は、上記情報処理装置とサーバ装置とからなるシステムとして特定することもできる。このように、機器情報を管理するサーバを用いることで、機器情報の一元管理が可能になる。
【００２３】
また、前記記憶手段は、前記機器情報をユーザと関連付けて記憶し、前記機器情報取得手段は、ユーザに対応する認証情報を前記サーバ装置に送信し、前記機器情報提供手段は、前記ユーザに対応する機器情報のみを前記情報処理装置に送信することを特徴としてもよい。
【００２４】
例えば、ユーザが予めサーバ装置に自己の情報を登録し、ユーザと機器情報とを関連付けて記憶させたうえで、機器情報を取得する際にユーザの認証を行ってもよい。例えば、ユーザに対応する認証情報（例えば電子署名）を情報処理装置からサーバ装置に送信し、当該ユーザに対応する機器情報のみを配布するようにしてもよい。
【００２５】
また、前記機器情報は、前記外部機器に紐付いた鍵情報を含み、前記エージェントは、前記鍵情報を用いて前記外部機器と暗号通信を行うことを特徴としてもよい。
【００２６】
このように、外部機器に対応する鍵情報を送信することで、エージェントと外部機器とが暗号通信を行えるようになる。また、外部機器の個体ごとに異なる鍵情報を用いれば、登録したものと同一の個体でなければ通信を行うことができなくなる。すなわち、同一型番の機器を用いてなりすまし接続が行われることを防ぐことができる。
【００２７】
さらに、前記エージェントは、前記情報処理装置に接続された外部装置のうち、前記ユーザに対応する認証情報と同一の認証情報を有する外部装置とのみ通信を行うことを特徴
としてもよい。
【００２８】
外部機器およびエージェントは、ネットワークを通じて、システムの外部に接続された装置（サービスを提供するサーバ、他の外部機器、他のユーザなど）と情報交換を行うようにしてもよい。この際、ユーザに対応する認証情報と同一の認証情報を有する外部装置との間でのみ通信を許可することで、ネットワーク上のセキュリティを強化することができる。
【００２９】
なお、本発明は、上記手段の少なくとも一部を含む情報処理装置、エージェントシステムとして特定することができる。また、本発明は、上記情報処理装置が行う情報処理方法として特定することもできる。また、本発明は、コンピュータに上記情報処理方法を実行させるプログラムとして特定することもできる。上記処理や手段は、技術的な矛盾が生じない限りにおいて、自由に組み合わせて実施することができる。
【発明の効果】
【００３０】
本発明によれば、エージェントを用いてネットワークに接続された機器を制御するシステムにおいて低コスト化を図ることができる。
【図面の簡単な説明】
【００３１】
【図１Ａ】従来例におけるスマートデバイスとの通信方法を説明する図である。
【図１Ｂ】第一の実施形態におけるスマートデバイスとの通信方法を説明する図である。
【図２】第一の実施形態に係るエージェントシステムの機能ブロック図である。
【図３】スマートデバイスに対応するメタデータの例である。
【図４】スマートデバイスに対応するエージェントカタログの例である。
【図５】第一の実施形態におけるシステムの処理フローチャート図である。
【図６】第二の実施形態に係るエージェントシステムの機能ブロック図である。
【図７】第二の実施形態におけるシステムの処理フローチャート図である。
【図８】第二の実施形態におけるエージェントカタログの例である。
【発明を実施するための形態】
【００３２】
（第一の実施形態）
以下、本発明の好ましい実施形態について図面を参照しながら説明する。
本実施形態に係るエージェントシステムは、一つ以上のスマートデバイスと、当該スマートデバイスを管理するコンピュータであるマスタ装置と、管理サーバと、からなるシステムである。
【００３３】
スマートデバイス（本発明における外部機器）は、マスタ装置よりも少ないリソースで動作するコンピュータであり、本実施形態では、ユーザの運動量を取得するリストバンド型のウェアラブルコンピュータである。なお、スマートデバイスは、限られたリソースで動作するコンピュータであれば、ウェアラブルコンピュータに限定されない。例えば、家電製品に内蔵された組込み型コンピュータなどであってもよい。
【００３４】
本実施形態に係るエージェントシステムは、従来スマートデバイスが主体となって行っていた処理を、マスタ装置上で実行されるソフトウェアが代行することを特徴とする。
本実施形態に係るエージェントシステムの概要を、図１Ａおよび図１Ｂを参照しながら説明する。
図１Ａは、スマートデバイスとマスタ装置（例えばスマートフォン）とが連携する従来のシステムにおけるデータの流れを示した図である。図からもわかるように、スマートデバイス２０は専用のソフトウェアを内蔵しており、マスタ装置で実行されるソフトウェア
を介してユーザとのインタラクションを行う。
【００３５】
このような形態では、スマートデバイスは、内蔵しているソフトウェアによってデバイスの機能を実現しているため、規模の大きいプログラムを実行することができない。また、デバイスの機能を更新しようとした場合に、その都度ソフトウェアをアップデートしなければならないといった制約が生じる。また、ユーザは、スマートデバイスのベンダーごとに異なるアプリケーションソフトウェアを用意しなければならない。
そこで、本実施形態に係るエージェントシステムでは、従来、スマートデバイスが実行していた高次な処理を、マスタ装置上で実行されるソフトウェア（本発明におけるエージェント）に代行させ、スマートデバイスは、実世界とのインタフェース機能に特化させる。
【００３６】
図１Ｂは、本実施形態におけるデータの流れを示した図である。
本実施形態では、スマートデバイス２０は、（１）自デバイスを識別するためのデータ（メタデータ）を送信する機能と、（２）要求に応じてセンサデータを提供する機能の二つのみを有している。本実施形態に係るスマートデバイス２０は、これ以外の機能（例えば、取得したデータを編集・加工する機能や、データベースにアクセスする機能、ユーザインタフェースを提供する機能など）は有していない。
【００３７】
マスタ装置１０は、ユーザが所持するスマートフォンなどの携帯型のコンピュータである。また、マスタ装置１０は、スマートデバイス２０から取得した情報に基づいて、スマートデバイス２０が実現すべき機能を代行するエージェント（以下、機器エージェントと称する）を生成し、実行する。機器エージェントは、スマートデバイス２０ごとに独立したインスタンスを持ち、マスタ装置１０上で実行されるプログラムモジュールである。
また、マスタ装置１０では、機器エージェントを生成するためのプログラムである汎用エージェントが実行される。
【００３８】
管理サーバ３０は、機器エージェントを生成するための情報をマスタ装置１０に対して提供するサーバ装置である。具体的には、スマートデバイスを識別するためのメタデータと、機器エージェントを生成するためのコードを含む情報（以下、エージェントカタログと称する）を対応付けて記憶しており、メタデータに対応するエージェントカタログを送信する構成となっている。
【００３９】
本実施形態では、マスタ装置１０内の汎用エージェントが、メタデータに基づいて管理サーバ３０からエージェントカタログを取得し、当該エージェントカタログを用いて、スマートデバイス２０に対応する機器エージェントを生成し、実行する。
【００４０】
機器エージェントは、スマートデバイス２０が実行する処理を代行するエージェントである。機器エージェントは、スマートデバイス２０が有するセンサからデータを取得し、当該データを編集・加工する処理や、データベースにアクセスする処理、ユーザインタフェースを生成する処理、ユーザとのインタラクションを行う処理などを実行する。
【００４１】
次に、前述した機能を実現するためのシステム構成について、システムを構成する各装置の機能ブロック図である図２を参照しながら説明する。
【００４２】
まず、マスタ装置１０の構成について説明する。
本実施形態に係るマスタ装置１０は、ネットワーク通信部１１、近距離通信部１２、汎用エージェント実行部１３、機器エージェント実行部１４、入出力部１５から構成される。
【００４３】
ネットワーク通信部１１は、通信回線（例えば携帯電話網）を介してネットワークにアクセスすることで、管理サーバ３０との通信を行う手段である。
近距離通信部１２は、スマートデバイス２０と無線通信を行う手段である。本実施形態では、近距離通信部１２は、Ｂｌｕｅｔｏｏｔｈ（登録商標）接続を利用した通信を行う。近距離通信部１２は、ペアリング先となるスマートデバイス２０に関する情報を記憶しており、簡便な操作で接続を行うことができる。
【００４４】
汎用エージェント実行部１３は、機器エージェントを生成するためのエージェント（以下、汎用エージェント）を実行する手段である。汎用エージェントは、スマートデバイス２０の接続および切断を監視し、接続されたスマートデバイスに応じて、後述する機器エージェントを生成するプログラムモジュールである。
【００４５】
機器エージェント実行部１４は、汎用エージェントによって生成された機器エージェントを実行する手段である。機器エージェントは、接続された機器ごとに生成されるプログラムモジュールである。汎用エージェントおよび機器エージェントが行う処理の詳細については後述する。
【００４６】
入出力部１５は、利用者が行った入力操作を受け付け、利用者に対して情報を提示する手段である。本実施形態では一つのタッチパネルディスプレイからなる。すなわち、液晶ディスプレイとその制御手段、タッチパネルとその制御手段から構成される。
【００４７】
なお、以上に説明した各手段は、専用に設計されたハードウェアによって実現されてもよいし、ソフトウェアによって実現されてもよい。また、ＦＰＧＡ（Field Programmable
Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）などによって実現されてもよいし、これらの組合せによって実現されてもよい。
前述した手段がソフトウェアとして構成される場合、補助記憶装置に記憶されたプログラムが主記憶装置にロードされ、ＣＰＵによって実行されることによって各手段が機能する。（ＣＰＵ、補助記憶装置、主記憶装置はいずれも不図示）
【００４８】
次に、スマートデバイス２０の構成について説明する。
本実施形態に係るスマートデバイス２０は、ユーザの運動量を取得するためのリストバンド型のウェアラブルコンピュータであって、近距離通信部２１、センサ部２２、メタデータ記憶部２３から構成される。
【００４９】
近距離通信部２１は、マスタ装置１０と無線通信を行う手段である。近距離通信部２１が有する機能は、前述した近距離通信部１２と同様であるため、詳細な説明は省略する。
センサ部２２は、複数のセンサからなるハードウェア手段である。センサ部２２が有するセンサは、例えばスマートデバイス２０がウェアラブルデバイスである場合、ユーザの行動記録や運動量を取得するためのセンサ、ユーザの健康状態を管理するためのセンサなどであるが、これらに限られない。本実施形態では、センサ部２２は、ユーザの心拍数を取得する心拍数センサと、ユーザが歩いた歩数を取得する歩数センサを有している。
【００５０】
メタデータ記憶部２３は、スマートデバイス２０を識別するための情報（メタデータ）を記憶する手段である。図３にメタデータの例を示す。本実施形態では、メタデータは、（１）デバイスの名称、（２）エージェントカタログ（後述）の取得先ＵＲＬ、（３）デバイスの個体にユニークな識別子、から構成されている。なお、図３ではメタデータを表形式で示したが、メタデータはＸＭＬやＪＳＯＮなど、他のフォーマットで記述されていてもよい。メタデータは、マスタ装置１０からの要求に応じて送信される。
【００５１】
次に、管理サーバ３０の構成について説明する。
ネットワーク通信部３１は、マスタ装置１０と通信を行う手段である。ネットワーク通信部３１が有する機能は、前述したネットワーク通信部１１と同様であるため、詳細な説明は省略する。
カタログ記憶部３２は、機器エージェントを生成するための情報（以下、エージェントカタログ）を記憶する手段である。図４にエージェントカタログの例を示す。本実施形態では、エージェントカタログは、（１）デバイスの名称、（２）デバイスのタイプ、（３）デバイスによって取得可能なセンサデータの詳細（以下、センサ定義）、（４）センサデータを用いて行う処理の内容と手順を記載したコード（以下、処理定義）を含む。なお、図４ではエージェントカタログを表形式で示したが、エージェントカタログは、メタデータと同様に他のフォーマットで記述されていてもよい。エージェントカタログは、マスタ装置１０からの要求に応じて送信される。
エージェントカタログを利用して機器エージェントを生成する方法については後述する。
カタログ配布部３３は、カタログ記憶部３２に記憶されたエージェントカタログを配布するためのＷｅｂサーバである。
【００５２】
次に、スマートデバイスをマスタ装置に接続してから、当該スマートデバイスによる機能をユーザに提供するまでの流れを、各装置が行う処理フローチャートである図５を参照しながら説明する。
【００５３】
まず、ユーザが、スマートデバイス２０をマスタ装置１０と接続する（ステップＳ１１）。スマートデバイス２０とマスタ装置１０との接続は、Ｂｌｕｅｔｏｏｔｈによる無線接続を利用して行われる。なお、一度ペアリングを行ったのちは、デバイスを検出して自動で接続を行うようにしてもよい。
接続が完了すると、汎用エージェント実行部１３が、スマートデバイス２０に対してメタデータを要求し、スマートデバイス２０は、メタデータ記憶部２３に記憶されたメタデータを送信する（ステップＳ１２）。
【００５４】
次に、汎用エージェント実行部１３が、取得したメタデータに含まれるＵＲＬにアクセスし、当該メタデータに対応するエージェントカタログを取得する（ステップＳ１３）。具体的には、ＨＴＴＰリクエストを取得したカタログ配布部３３が、対応するエージェントカタログをカタログ記憶部３２から取得し、送信する。
【００５５】
次に、汎用エージェント実行部１３が、取得したエージェントカタログに記載された情報に基づいて、機器エージェントを生成する（ステップＳ１４）。
図４を参照して説明したように、本実施形態では、スマートデバイスによって取得可能なセンサデータの詳細（センサ定義）と、当該センサデータを用いて行う処理の内容および手順（処理定義）がエージェントカタログに記録されている。
センサ定義は、例えば、センサデータの型やビット数、取りうる範囲などを表した情報である。センサ定義は、ハードウェアに対するアクセス方法などを含んだ情報であってもよい。
【００５６】
また、処理定義は、センサデータの加工方法や演算方法、ユーザに提示する情報の生成方法などを、プログラムコードによって表した情報である。処理定義は、バイトコードで記述されてもよいし、スクリプトで記述されてもよいが、プロセッサのアーキテクチャに依存しない形式であることが好ましい。
なお、本実施形態では、センサ定義と処理定義を分離して記述したが、両者を統合してもよい。例えば、センサ定義が埋め込まれたプログラムコードを提供してもよい。
【００５７】
汎用エージェント実行部１３は、エージェントカタログに含まれる処理定義に、同様に
エージェントカタログに含まれるセンサ定義を適用してプログラムコードを生成する。また、当該プログラムコードを実行するインスタンスを生成し、機器エージェントとする。これによって、スマートデバイスが有するセンサから情報を取得し、当該情報を用いて所定の処理を行う機器エージェントを生成することができる。
【００５８】
生成された機器エージェントは、機器エージェント実行部１４によって実行され、センサデータの収集ならびに情報の提供が行われる。例えば、スマートデバイスに関連付いた所定の機能が「歩数と心拍を周期的に取得し、ログを記録してユーザに提供する」といったものであった場合、機器エージェントが、スマートデバイス２０が有する歩数センサおよび心拍センサに対して周期的にアクセスを行ってセンサデータを収集する機能と、収集したセンサデータを蓄積し、入出力部１５を通してユーザに情報を提供する機能を実行する。
【００５９】
なお、一度生成された機器エージェントは、機器エージェント実行部１４に記憶され、同一のスマートデバイスが接続された場合に再利用される。また、種類が異なる他のスマートデバイスが接続された場合、同様の処理が行われ、対応する新しい機器エージェントが生成され、実行される。
【００６０】
以上説明したように、第一の実施形態に係るエージェントシステムは、マスタ装置で実行される機器エージェントが、スマートデバイスが行うべき機能を代行し、スマートデバイスは入出力手段としてのみ機能する。これにより、スマートデバイスに要求されるハードウェアリソースを抑えることができる。また、機器エージェントは、スマートデバイスよりもリソースに余裕があるマスタ装置上で動作するため、スマートデバイス上でソフトウェアを動作させる場合と比較して、より多くの機能を実行することができる。
また、マスタ装置は、接続されたスマートデバイスに対応する機器エージェントを、エージェントカタログを用いて自動で生成する。これにより、ユーザの求めに応じて機能を自由に更新または入れ替えることができるようになる。また、規定のエージェントカタログを用意することで、異なるベンダーのデバイスを共存させることができる。
【００６１】
なお、本実施形態では、スマートデバイスに対して機器エージェントを１対１で生成するものとしたが、機器エージェントは複数あってもよい。例えば、一つのスマートデバイスに対して、それぞれ役割が異なる複数の機器エージェントを生成してもよい。
例えば、センサを有するスマートデバイスからセンサデータを取得する機器エージェントと、アクチュエータを有するスマートデバイスに命令を発行する機器エージェントと、ユーザインタフェースを生成する機器エージェントと、が分かれていてもよい。また、スマートデバイスが複数接続される場合、当該複数のデバイスを統括する一つの機器エージェントと、個々のデバイスに対応する機器エージェントを生成するようにしてもよい。
【００６２】
また、本実施形態では、メタデータに、エージェントカタログの取得先となるＵＲＬを含ませたが、メタデータには、スマートデバイスを識別する情報（例えば機種コードやシリアル番号）のみを含ませ、当該情報を取得した汎用エージェントが、対応するエージェントカタログを管理サーバ３０から検索して取得するようにしてもよい。また、メタデータそのものを管理サーバ３０に転送し、管理サーバが、対応するエージェントカタログを提供するようにしてもよい。
【００６３】
（第二の実施形態）
第二の実施形態は、第一の実施形態に係るエージェントシステムを構成する各装置に、セキュリティ手段を追加した実施形態である。図６は、第二の実施形態に係るエージェントシステムを構成する各装置の機能ブロック図である。
【００６４】
第二の実施形態は、マスタ装置１０が認証情報記憶部１６を有しており、管理サーバ３０が認証部３４を有しているという点において、第一の実施形態と相違する。
また、第二の実施形態では、カタログ記憶部３２が、システムを利用するユーザと関連付いたエージェントカタログを記憶しているという点と、カタログ配布部３３が、後述する認証部３４によるユーザ認証の結果に基づいて、認証されたユーザにのみエージェントカタログを提供するという点において、第一の実施形態と相違する。
【００６５】
認証情報記憶部１６は、システムを利用するユーザに対応する認証情報を記憶する手段である。認証情報とは、ユーザを電子的に識別するための情報であり、典型的には電子署名であるが、電子証明書などであってもよい。ユーザに対応する認証情報は、機器をセットアップする際に生成し、予め認証情報記憶部１６に記憶させる。
第二の実施形態では、マスタ装置１０が、認証情報記憶部１６に記憶された認証情報を管理サーバ３０へ送信し、管理サーバ３０（認証部３４）がユーザ認証を行う。
【００６６】
認証部３４は、マスタ装置１０から送信された認証情報に基づいてユーザを認証する手段である。本実施形態では、カタログ記憶部３２に記憶されたエージェントカタログは通常保護状態となっており、ユーザ認証を行わない限り、アクセスすることができない。認証部３４がユーザ認証を行うと、該当するユーザに対応するエージェントカタログの保護が解除され、利用可能になる。
【００６７】
図７は、第二の実施形態において各装置が行う処理のフローチャートである。第一の実施形態と同様の処理については点線で示し、詳細な説明は省略する。
第二の実施形態では、ステップＳ１２を実行した後で、ユーザ認証を行うステップＳ２１が実行される。当該ステップでは、汎用エージェント実行部１３が、ユーザに対応する認証情報を管理サーバ３０に送信し、認証部３４がユーザの認証を行う。この結果、認証されたユーザに対応するエージェントカタログの保護が解除され、利用可能になる。
【００６８】
図８は、第二の実施形態におけるエージェントカタログの例である。第二の実施形態では、エージェントカタログに、利用が許可されたユーザの識別子と、鍵情報（後述）がさらに追加されている。
【００６９】
ステップＳ２２は、ステップＳ１４と同様に、汎用エージェントが機器エージェントを生成するステップであるが、生成される機器エージェントが、スマートデバイスとの間で暗号化通信を行うという点において相違する。具体的には、エージェントカタログに含まれる処理定義に暗号通信のためのロジックが含まれており、これに前述した鍵情報を適用することで、スマートデバイスとの間で暗号化通信を行う。暗号化の方式は共通鍵方式であってもよいし、公開鍵方式であってもよい。
【００７０】
第二の実施形態によると、ユーザに対してスマートデバイスの利用を許可するか否かを個別に制御することができる。これにより、例えば、サービスの利用契約を行ったユーザに対してのみエージェントの利用を許可するといったことが可能になる。
また、鍵情報は、予め登録されたスマートデバイスの個体に対応するものであるため、スマートデバイスのみを差し替えようとしても正常に通信を行うことができない。すなわち、正規のユーザが所持するマスタ装置１０に、正規ではないスマートデバイスを接続して利用するといった行為を防ぐことができる。
【００７１】
なお、本実施形態では、機器エージェントとスマートデバイスとの間の通信を暗号化したが、マスタ装置１０上で動作する機器エージェントが複数ある場合、機器エージェント同士の通信も暗号化してもよい。この場合も、エージェントカタログに含まれる鍵情報を利用することができる。
【００７２】
また、機器エージェントが、外部の情報処理装置（以下、外部装置）とさらに通信を行い、サービスの提供を受けてもよい。この際、機器エージェントが、ユーザの認証情報を用いて、情報交換が可能な外部装置（すなわちサービス）を制限するようにしてもよい。
例えば、機器エージェントが、スマートデバイスのカタログ情報を用いて、インターネット上で提供されているサービスの中から、利用可能なサービスを特定する。その後、利用可能なサービスの候補をユーザに提示し、ユーザが、提示されたサービスの候補を選択して、当該サービスと契約を行う。
ここで、ユーザに対応する認証情報が、サービスを提供する外部装置に送信され、当該外部装置は、認証情報を用いて機器エージェントと通信を行う。すなわち、認証情報を有していない外部装置（例えば中継サーバなど）は、機器エージェントと通信を行うことができなくなるため、セキュアネットワークを構築することができる。
また、機器のオーナーが許可したものだけ、当該セキュリティネットワークに参加させることができる。
なお、外部装置は、管理サーバと同一の装置であってもよい。
【００７３】
（変形例）
上記の実施形態はあくまでも一例であって、本発明はその要旨を逸脱しない範囲内で適宜変更して実施しうる。
【００７４】
例えば、実施形態の説明では、ユーザが所持するスマートフォンをマスタ装置としたが、ネットワークに接続された装置であれば、マスタ装置はどのようなデバイスであってもよい。例えば、携帯型以外のコンピュータであってもよいし、ゲートウェイ装置やルータ装置であってもよい。
【００７５】
また、実施形態の説明では、本発明における外部機器としてウェアラブルデバイスを挙げたが、マスタ装置よりもリソースが少ないハードウェアであれば、外部機器はどのような装置であってもよい。例えば、家電製品などに内蔵された組込み型コンピュータなどであってもよい。また、本発明における外部機器は、必ずしも演算処理を行う機能を有したコンピュータでなくてもよい。例えば、情報の取得に特化して設計されたハードウェア（例えばセンサデバイスや）などであってもよい。
【００７６】
また、実施形態の説明では、外部機器を用いて情報を取得する形態について述べたが、外部機器は情報を出力するものであってもよい。また、アクチュエータなど、外部に対して何らかの作用をもたらすものであってもよい。
【符号の説明】
【００７７】
１０  マスタ装置
１１，３１  ネットワーク通信部
１２，２１  近距離通信部
１３  汎用エージェント実行部
１４  機器エージェント実行部
１５  入出力部
２０  スマートデバイス
２２  センサ部
３０  管理サーバ
３２  カタログ記憶部
３３  カタログ配布部
【図１Ａ】
0006750260.tif 000002
【図１Ｂ】
0006750260.tif 000003
【図２】
0006750260.tif 000004
【図３】
0006750260.tif 000005
【図４】
0006750260.tif 000006
【図５】
0006750260.tif 000007
【図６】
0006750260.tif 000008
【図７】
0006750260.tif 000009
【図８】
0006750260.tif 000010