(57)【要約】【課題】複数のデバイスの制御にかかる負担を軽減させること。【解決手段】システムは、デバイス用ポリシを配布する管理エージェントを備える管理サーバと、管理エージェントが配布したデバイス用ポリシを取得し、取得したデバイス用ポリシを配布するゲートウェイエージェントを備えるゲートウェイと、ゲートウェイエージェントから、デバイス用ポリシを取得し、取得したデバイス用ポリシを適用し、適用したデバイス用ポリシに基づいて、プロビジョニングを行うデバイスエージェントを備えるデバイスとを備える。【選択図】図１
2020126463.tif 000002
【特許請求の範囲】
【請求項１】
ゲートウェイが備えるゲートウェイエージェントから、デバイス用ポリシを取得し、
取得した前記デバイス用ポリシを適用し、
適用した前記デバイス用ポリシに基づいて、プロビジョニングを行うデバイスエージェント
を備える、デバイス。
【請求項２】
前記デバイスエージェントは、前記プロビジョニングを行う際に、前記デバイスのトポロジと、前記デバイスに接続されているセンサのプロファイルとを、デバイスコアに要求し、
前記デバイスコアは、前記デバイスエージェントからの要求に基づいて、前記デバイスの前記トポロジと、前記センサの前記プロファイルとを取得し、取得した前記デバイスの前記トポロジを示す情報と、前記センサの前記プロファイルを示す情報とを、前記デバイスエージェントへ出力する、請求項１に記載のデバイス。
【請求項３】
前記デバイスエージェントは、前記デバイス用ポリシに基づいて、前記ゲートウェイエージェントに、前記デバイスコアから取得した前記トポロジを示す情報と、前記センサの前記プロファイルを示す情報とを、デバイスに関する情報を管理する管理データベースに登録することを要求する、請求項２に記載のデバイス。
【請求項４】
前記デバイスエージェントは、前記デバイスに対応するソフトウェアを示す情報の一覧を要求する情報であるソフトウェア情報一覧要求を、前記ゲートウェイエージェントへ送信し、送信した前記ソフトウェア情報一覧要求に対して、前記ゲートウェイエージェントが送信したソフトウェア情報一覧応答を取得し、取得した前記ソフトウェア情報一覧応答に含まれる一又は複数のソフトウェアを示す情報に基づいて、ソフトウェアを配布する配布サーバから、一又は複数の前記ソフトウェアをダウンロードし、ダウンロードした一又は複数の前記ソフトウェアのインストールを要求する情報であるインストール要求を、デバイスコアへ出力し、
前記デバイスコアは、前記デバイスエージェントが出力した前記インストール要求に基づいて、インストールを要求された一又は複数の前記ソフトウェアをインストールする、請求項１から請求項３のいずれか一項に記載のデバイス。
【請求項５】
前記デバイスコアは、インストールした一又は複数の前記ソフトウェアを設定する、請求項４に記載のデバイス。
【請求項６】
前記デバイスエージェントは、前記デバイスに接続されているセンサが変更されていることを検知した場合に、変更された前記センサのプロファイルを、デバイスコアへ要求し、
前記デバイスコアは、前記デバイスエージェントからの要求に基づいて、変更された前記センサからプロファイルを取得し、取得した前記プロファイルを、前記デバイスエージェントへ出力し、
前記デバイスエージェントは、前記デバイスコアが出力した前記センサの前記プロファイルを取得する、請求項１から請求項５のいずれか一項に記載のデバイス。
【請求項７】
前記デバイスエージェントは、前記デバイス用ポリシに基づいて、前記ゲートウェイエージェントに、前記デバイスコアから取得した前記センサの前記プロファイルを示す情報を、デバイスに関する情報を管理する管理データベースに登録することを要求する、請求項６に記載のデバイス。
【請求項８】
デバイス用ポリシを配布する管理エージェントを備える管理サーバと、
前記管理エージェントが配布した前記デバイス用ポリシを取得し、取得した前記デバイス用ポリシを配布するゲートウェイエージェントを備えるゲートウェイと、
前記ゲートウェイエージェントから、前記デバイス用ポリシを取得し、取得した前記デバイス用ポリシを適用し、適用した前記デバイス用ポリシに基づいて、プロビジョニングを行うデバイスエージェントを備えるデバイスと
を備えるシステム。
【請求項９】
デバイスが実行する制御方法であって、
デバイスが備えるデバイスエージェントが、ゲートウェイが備えるゲートウェイエージェントから、デバイス用ポリシを取得するステップと、
前記デバイスエージェントが、取得した前記デバイス用ポリシを適用するステップと、
前記デバイスエージェントが、適用した前記デバイス用ポリシに基づいて、プロビジョニングを行うステップと
を有する、制御方法。
【請求項１０】
管理サーバが備える管理エージェントが、デバイス用ポリシを配布するステップと、
ゲートウェイが備えるゲートウェイエージェントが、前記管理エージェントが配布した前記デバイス用ポリシを取得し、取得した前記デバイス用ポリシを配布するステップと、
デバイスが備えるデバイスエージェントが、前記ゲートウェイエージェントから、前記デバイス用ポリシを取得するステップと、
前記デバイスエージェントが、取得した前記デバイス用ポリシを適用するステップと、
前記デバイスエージェントが、適用した前記デバイス用ポリシに基づいて、プロビジョニングを行うステップと
を実行する、制御方法。
【請求項１１】
デバイスのコンピュータに、
デバイスエージェント機能を実現させるためのコンピュータプログラムであって、
前記デバイスエージェント機能は、
ゲートウェイが備えるゲートウェイエージェントから、デバイス用ポリシを取得するステップと、
取得した前記デバイス用ポリシを適用するステップと、
適用した前記デバイス用ポリシに基づいて、プロビジョニングを行うステップと
を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス、システム、制御方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
ＩｏＴは、サービスの内容や目的、取り扱うデータに合わせて様々な価値を提供できるため、今後、様々な産業で導入が進むことが予想される。このため、取り扱うセンサ及びデバイスの種類やオーダーは飛躍的に増加することが見込まれる。
従来のデバイス制御技術として、例えば特許文献１に記載の従来技術が知られている。特許文献１の従来技術では、計算機にＣＤドライブを接続し、ドライバの情報を含むＯＳインストールメディアを読み込ませることで、デバイス制御に必要となるドライバの自動インストールを実現する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−３２１４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
センサ及びデバイス上ではサービス提供で必要となるオペレーティングシステム（ＯＳ）、ドライバ、アプリケーション（ＡＰＰ）が動作するが、用途や目的、事業者によってその組み合わせは様々であり、現状の手動による管理、構築手法ではコストが膨大となるおそれがある。また、サービス展開までの所用時間やヒューマンエラー（ＨＥ）のリスクが生じるおそれがある。
つまり、デバイスの種類が膨大となった場合に、上述した特許文献１の技術では、多種多様なＯＳやセンサの組み合わせが生じ、インストールメディア側の更新対応の管理コストが増大するおそれがある。具体的には、デバイスの種類が多岐にわたることから、複数種類のインストールメディアがあることが予想され、対象誤りなどが生じるおそれがある。
また、山間部などの人が直接アクセスすることが困難な環境に、ドローンなどを使用して、デバイスを設置するだけでは、インストールできないため、作業コストが増大するおそれがある。
デバイスにインストールした構成情報の中央（クラウド上）での管理コストが増大するおそれがある。
本発明は、このような事情を考慮してなされたものであり、その目的は、複数のデバイスの制御にかかる負担を軽減させることにある。
【課題を解決するための手段】
【０００５】
（１）本発明の一態様は、ゲートウェイ装置が備えるゲートウェイエージェントから、デバイス用ポリシを取得し、取得した前記デバイス用ポリシを適用し、適用した前記デバイス用ポリシに基づいて、プロビジョニングを行うデバイスエージェントを備える、デバイスである。
（２）本発明の一態様は、前記デバイスエージェントは、前記プロビジョニングを行う際に、前記デバイスのトポロジと、前記デバイスに接続されているセンサのプロファイルとを、デバイスコアに要求し、前記デバイスコアは、前記デバイスエージェントからの要求に基づいて、前記デバイスの前記トポロジと、前記センサの前記プロファイルとを取得し、取得した前記デバイスの前記トポロジを示す情報と、前記センサの前記プロファイルを示す情報とを、前記デバイスエージェントへ出力する、上記（１）に記載のデバイスである。
（３）本発明の一態様は、前記デバイスエージェントは、前記デバイス用ポリシに基づいて、前記ゲートウェイエージェントに、前記デバイスコアから取得した前記トポロジを示す情報と、前記センサの前記プロファイルを示す情報とを、デバイスに関する情報を管理する管理データベースに登録することを要求する、上記（２）に記載のデバイスである。
（４）本発明の一態様は、前記デバイスエージェントは、前記デバイスに対応するソフトウェアを示す情報の一覧を要求する情報であるソフトウェア情報一覧要求を、前記ゲートウェイエージェントへ送信し、送信した前記ソフトウェア情報一覧要求に対して、前記ゲートウェイエージェントが送信したソフトウェア情報一覧応答を取得し、取得した前記ソフトウェア情報一覧応答に含まれる一又は複数のソフトウェアを示す情報に基づいて、ソフトウェアを配布する配布サーバから、一又は複数の前記ソフトウェアをダウンロードし、ダウンロードした一又は複数の前記ソフトウェアのインストールを要求する情報であるインストール要求を、デバイスコアへ出力し、前記デバイスコアは、前記デバイスエージェントが出力した前記インストール要求に基づいて、インストールを要求された一又は複数の前記ソフトウェアをインストールする、上記（１）から（３）のいずれか一項に記載のデバイスである。
（５）本発明の一態様は、前記デバイスコアは、インストールした一又は複数の前記ソフトウェアを設定する、上記（４）に記載のデバイスである。
（６）本発明の一態様は、前記デバイスエージェントは、前記デバイスに接続されているセンサが変更されていることを検知した場合に、変更された前記センサのプロファイルを、デバイスコアへ要求し、前記デバイスコアは、前記デバイスエージェントからの要求に基づいて、変更された前記センサからプロファイルを取得し、取得した前記プロファイルを、前記デバイスエージェントへ出力し、前記デバイスエージェントは、前記デバイスコアが出力した前記センサの前記プロファイルを取得する、上記（１）から（５）のいずれか一項に記載のデバイスである。
（７）本発明の一態様は、前記デバイスエージェントは、前記デバイス用ポリシに基づいて、前記ゲートウェイエージェントに、前記デバイスコアから取得した前記センサの前記プロファイルを示す情報を、デバイスに関する情報を管理する管理データベースに登録することを要求する、上記（６）に記載のデバイスである。
【０００６】
（８）本発明の一態様は、デバイス用ポリシを配布する管理エージェントを備える管理サーバと、前記管理エージェントが配布した前記デバイス用ポリシを取得し、取得した前記デバイス用ポリシを配布するゲートウェイエージェントを備えるゲートウェイ装置と、前記ゲートウェイエージェントから、前記デバイス用ポリシを取得し、取得した前記デバイス用ポリシを適用し、適用した前記デバイス用ポリシに基づいて、プロビジョニングを行うデバイスエージェントを備えるデバイスとを備えるシステムである。
【０００７】
（９）本発明の一態様は、デバイスが実行する制御方法であって、デバイスが備えるデバイスエージェントが、ゲートウェイ装置が備えるゲートウェイエージェントから、デバイス用ポリシを取得するステップと、前記デバイスエージェントが、取得した前記デバイス用ポリシを適用するステップと、前記デバイスエージェントが、適用した前記デバイス用ポリシに基づいて、プロビジョニングを行うステップとを有する、制御方法である。
（１０）本発明の一態様は、管理サーバが備える管理エージェントが、デバイス用ポリシを配布するステップと、ゲートウェイ装置が備えるゲートウェイエージェントが、前記管理エージェントが配布した前記デバイス用ポリシを取得し、取得した前記デバイス用ポリシを配布するステップと、デバイスが備えるデバイスエージェントが、前記ゲートウェイエージェントから、前記デバイス用ポリシを取得するステップと、前記デバイスエージェントが、取得した前記デバイス用ポリシを適用するステップと、前記デバイスエージェントが、適用した前記デバイス用ポリシに基づいて、プロビジョニングを行うステップとを実行する、制御方法である。
【０００８】
（１１）本発明の一態様は、デバイスのコンピュータに、デバイスエージェント機能を実現させるためのコンピュータプログラムであって、前記デバイスエージェント機能は、ゲートウェイが備えるゲートウェイエージェントから、デバイス用ポリシを取得するステップと、取得した前記デバイス用ポリシを適用するステップと、適用した前記デバイス用ポリシに基づいて、プロビジョニングを行うステップとを実行させる、コンピュータプログラムである。
【発明の効果】
【０００９】
本発明によれば、複数のデバイスの制御にかかる負担を軽減させることができるという効果が得られる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係るデバイスシステムの構成例を示す図である。
【図２】本実施形態に係るデバイスシステムの制御方法における初期準備とポリシ配布段階の手順の例を示すシーケンスチャートである。
【図３】本実施形態に係るデバイスシステムの制御方法におけるデバイス初期起動時のＤＢ登録の手順の例を示すシーケンスチャートである。
【図４】本実施形態に係るデバイスシステムの制御方法における初期インストールの手順の例を示すシーケンスチャートである。
【図５Ａ】本実施形態に係るデバイスシステムの制御方法における新規にセンサを装着した場合の手順の例１を示すシーケンスチャートである。
【図５Ｂ】本実施形態に係るデバイスシステムの制御方法における新規にセンサを装着した場合の手順の例２を示すシーケンスチャートである。
【図６】本実施形態に係るデバイスシステムの例１を示す図である。
【図７】本実施形態に係るデバイスシステムの例２を示す図である。
【図８】本実施形態に係るデバイスシステムの例３を示す図である。
【発明を実施するための形態】
【００１１】
次に、本実施形態のデバイス、システム、ゲートウェイ、制御方法及びコンピュータプログラムを、図面を参照しつつ説明する。以下で説明する実施形態は一例に過ぎず、本発明が適用される実施形態は、以下の実施形態に限られない。
なお、実施形態を説明するための全図において、同一の機能を有するものは同一符号を用い、繰り返しの説明は省略する。
また、本願でいう「ＸＸに基づいて」とは、「少なくともＸＸに基づく」ことを意味し、ＸＸに加えて別の要素に基づく場合も含む。また、「ＸＸに基づいて」とは、ＸＸを直接に用いる場合に限定されず、ＸＸに対して演算や加工が行われたものに基づく場合も含む。「ＸＸ」は、任意の要素（例えば、任意の情報）である。
【００１２】
（実施形態）
（デバイスシステム）
図１は、本発明の実施形態に係るデバイスシステムの構成例を示す図である。図１において、デバイスシステムＳは、管理サーバ１と、ＩｏＴゲートウェイ（ＩｏＴ−ＧＷ）２と、デバイス３と、デバイス４と、デバイス５と、認証サーバ６と、配布サーバ７と、管理ＤＢ（データベース）８とを備える。図１の例では、３個のデバイス３と、デバイス４と、デバイス５とが示されている。デバイス３と、デバイス４と、デバイス５とは、同じセンサレイヤ１１に属するデバイスである。
管理サーバ１と、認証サーバ６と、配布サーバ７と、管理ＤＢ８とは、クラウドレイヤ９に属する。
ＩｏＴ−ＧＷ２は、エッジ／ＩｏＴ  ＧＷレイヤ１０に属する。
【００１３】
管理サーバ１は、クラウドレイヤ９に属する認証サーバ６と、配布サーバ７と、管理ＤＢ８と通信を行う。管理サーバ１は、エッジ／ＩｏＴ  ＧＷレイヤ１０に属するＩｏＴ−ＧＷ２と通信を行う。例えば、管理サーバ１とＩｏＴ−ＧＷ２とは、インターネット等の通信ネットワークを介して通信を行う。
ＩｏＴ−ＧＷ２は、自ＩｏＴ−ＧＷ２の管理下のセンサレイヤ１１に属するデバイス３と、デバイス４と、デバイス５と通信を行う。例えば、ＩｏＴ−ＧＷ２は、有線又は無線のＬＡＮ（Local Area Network）等の通信ネットワークを介して、デバイス３と、デバイス４と、デバイス５と通信を行う。
【００１４】
管理サーバ１上で管理エージェント１００が動作し、ＩｏＴ−ＧＷ２上でＧＷエージェント２００が動作する。
ＧＷエージェント２００は、デバイス３と、デバイス４と、デバイス５とを管理する。
デバイス３では、デバイスエージェント３００と、デバイスコア３１０と、センサ３２０からセンサ３２２とが動作する。デバイス４では、デバイスエージェント４００と、デバイスコア４１０と、センサ４２０からセンサ４２２とが動作する。デバイス５では、デバイスエージェント５００と、デバイスコア５１０と、センサ５２０からセンサ５２２とが動作する。デバイスコア３１０と、デバイスコア４１０と、デバイスコア５１０とは、ＯＳ(Operating System)、ＡＰＰ(Application software)、ドライバ−などのソフトウェア部である。
管理エージェント１００とＧＷエージェント２００との間は、ブローカ１１０を用いてメッセージングを行う。ＧＷエージェント２００と、デバイスエージェント３００とデバイスエージェント４００とデバイスエージェント５００との間はブローカ２１０を用いてメッセージングを行う。
【００１５】
［管理サーバ］
管理サーバ１は、センサレイヤ１１に属するデバイス３と、デバイス４と、デバイス５とを管理する。管理サーバ１は、管理エージェント１００と、ブローカ１１０とを備える。管理サーバ１の機能は、例えば、管理サーバ１が備えるＣＰＵ（Central Processing Unit）などのハードウェアプロセッサがプログラム（ソフトウェア）を実行することにより実現される。管理サーバ１の機能のうち一部または全部は、ＬＳＩ（Large Scale Integration）やＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field-Programmable Gate Array）、ＧＰＵ（Graphics Processing Unit）などのハードウェア（回路部；circuitryを含む）によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予めＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの記憶装置に格納されていてもよいし、ＤＶＤやＣＤ−ＲＯＭなどの着脱可能な記憶媒体に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。なお、管理サーバ１として、汎用のコンピュータ装置を使用して構成してもよく、又は、専用のハードウェア装置として構成してもよい。
【００１６】
管理エージェント１００は、ポリシ管理・配布機能（policy manager）と、ゲートウェイ管理機能（GW manager）と、クラウド管理機能（Cloud manager）とを有する。
ポリシ管理・配布機能は、管理サーバ１の管理下のエッジ／ＩｏＴ  ＧＷレイヤ１０に対して配布するＧＷ用ポリシを保持する。ポリシ管理・配布機能は、管理者から配布されたＧＷ用ポリシを取得する。管理者は、管理端末（admin）を使用して管理サーバ１にアクセスし、ＧＷ用ポリシを配布する。ポリシ管理・配布機能は、取得したＧＷ用ポリシを、管理サーバ１が管理するエッジ／ＩｏＴ  ＧＷレイヤ１０に属するＩｏＴ−ＧＷ２へ配布する。本実施形態の一例として、ＧＷ用ポリシは、ＧＷエージェントに関するポリシである。管理エージェント１００は、新規に設置されたデバイスからの接続要求があった際にＧＷ用ポリシを配布する。
【００１７】
また、ポリシ管理・配布機能は、管理サーバ１の管理下のセンサレイヤ１１に対して配布するデバイス用ポリシを保持する。ポリシ管理・配布機能は、管理者から配布されたデバイス用ポリシを取得する。管理者は、管理端末を使用して管理サーバ１にアクセスし、デバイス用ポリシを配布する。ポリシ管理・配布機能は、取得したデバイス用ポリシを、管理サーバ１が管理するセンサレイヤ１１に対応するＩｏＴ−ＧＷ２へ配布する。
本実施形態の一例として、デバイス用ポリシは、デバイスエージェントに関するポリシである。デバイス用ポリシは、初期プロビジョニングに関する記述部と、初期プロビジョニング完了後の定常動作に関する記述箇所とを有する。デバイスは、ポリシに記述された内容に沿って初期プロビジョニングを実施し、プロビジョニングが正常に完了した後に、定常動作に関するポリシに基づいて動作する。
初期プロビジョニングには、以下に示す２つに関するポリシが少なくとも記述される。
一つ目は、デバイスのトポロジと、デバイスに接続されているセンサのプロファイルとを取得し、ＧＷエージェントに通知することである。つまり、デバイスのトポロジを示す情報と、デバイスに接続されているセンサのプロファイルを示す情報とを含むＤＢ登録要求を作成し、作成したＤＢ登録要求を、ＧＷエージェントへ通知する。ここで、デバイスのトポロジとは、デバイスの基盤、デバイスにインストールされているＯＳ、デバイスに使用されているＣＰＵ、デバイスに実装されているメモリ、デバイスに実装されているディスク容量などのデバイスの構成を示す情報である。センサのプロファイルとは、センサの型番又は認証ＩＤ、センサのメーカ（製造元）、センサの種別などのセンサの属性を示す情報である。
二つ目は、デバイスに通知された構成要件（ソフトウェア情報一覧）に基づいて、必要なパッケージを取得し、取得したパッケージをインストールすることである。
事業者の運用形態に沿って、初期プロビジョニングの処理内容をカスタマイズすることは可能である。例えば、デバイスから、ＧＷエージェントを経由することなく、管理ＤＢ８に直接登録要求するための接続先を設定することなどが可能である。定常動作では、デバイスの構成情報を定期的に監視し、センサ等の構成変更が生じた際に、能動的にＧＷエージェント２００に通知する。
【００１８】
ゲートウェイ管理機能は、管理ＤＢ８にデバイス情報を登録する。
ゲートウェイ管理機能は、ＧＷエージェント２００から、デバイスに対応するソフトウェアを示す情報の一覧を通知することを要求する情報である構成要件通知要求を取得し、取得した構成要件通知要求に基づいて、管理ＤＢ８から一又は複数のソフトウェアを示す情報とその取得先を示す情報とを取得する。ここで、構成要件とは、ＢＩＯＳ(Basic Input / Output System)、ＯＳ／カーネル、ソフトウェア、ドライバなどのプログラムを示す情報を含む。ゲートウェイ管理機能は、取得した一又は複数のソフトウェアを示す情報とその取得先を示す情報とを含む構成要件通知応答を作成し、作成した構成要件通知応答を、エッジ／ＩｏＴ  ＧＷレイヤ１０に属するＩｏＴ−ＧＷ２へ送信する。
クラウド管理機能は、クラウドレイヤ９に配置された認証サーバ６と連携してデバイス３と、デバイス３が搭載するセンサ３２０からセンサ３２２と、デバイス４と、デバイス４が搭載するセンサ４２０からセンサ４２２と、デバイス５と、デバイス５が搭載するセンサ５２０からセンサ５２２とを認証する。
【００１９】
ブローカ１１０は、管理サーバ１が通信を行う通信相手との間でメッセージを交換するためのメッセージ交換機能を有する。本実施形態に係るメッセージ交換機能の一例として、ｐｕｂ／ｓｕｂメッセージングモデルを使用する。具体的には、ブローカ１１０は、管理サーバ１（ｐｕｂ）から通信相手（ｓｕｂ）へ送信するメッセージを保持し、当該メッセージを通信相手（ｓｕｂ）に取得してもらう。また、ブローカ１１０は、通信相手（ｐｕｂ）から管理サーバ１（ｓｕｂ）へ送信されるメッセージを当該通信相手（ｐｕｂ）から受信して保持する。
ブローカ１１０は、管理サーバ１が管理するセンサレイヤ１１に対応するＩｏＴ−ＧＷ２との間で、メッセージの交換を行う。図１の例では、ブローカ１１０は、管理サーバ１が管理するセンサレイヤ１１に対応するＩｏＴ−ＧＷ２との間で、メッセージの交換を行う。
【００２０】
［ＩｏＴ−ＧＷ］
ＩｏＴ−ＧＷ２は、ゲートウェイエージェント（ＧＷエージェント）２００と、ブローカ２１０とを備える。ＩｏＴ−ＧＷ２の機能は、例えば、ＩｏＴ−ＧＷ２が備えるＣＰＵなどのハードウェアプロセッサがプログラム（ソフトウェア）を実行することにより実現される。ＩｏＴ−ＧＷ２の機能のうち一部または全部は、ＬＳＩやＡＳＩＣ、ＦＰＧＡ、ＧＰＵなどのハードウェア（回路部；circuitryを含む）によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予めＨＤＤやフラッシュメモリなどの記憶装置に格納されていてもよいし、DＶＤやＣＤ−ＲＯＭなどの着脱可能な記憶媒体に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。なお、ＩｏＴ−ＧＷ２として、汎用のコンピュータ装置を使用して構成してもよく、又は、専用のハードウェア装置として構成してもよい。
【００２１】
ＧＷエージェント２００は、メッセージ管理機能（message manager）と、デバイス管理機能（device manager）と、ポリシ処理機能（policy handler）と、デバイス状態解析機能（analytics engine）とを有する。
メッセージ管理機能は、ＩｏＴ−ＧＷ２が通信相手と交換するメッセージの管理を行う。メッセージ管理機能は、管理サーバ１から配布されるポリシ（ＧＷ用ポリシ、デバイス用ポリシ）を取得する。メッセージ管理機能は、ポリシ処理機能が保持しているデバイス用ポリシを、デバイスエージェントへ送信する。
メッセージ管理機能は、新規に設置されたデバイスが送信した接続要求を取得し、取得した接続要求に対する応答として、そのデバイスへ、デバイス用ポリシを送信する。メッセージ管理機能は、ポリシの送信先のデバイスが送信したＤＢ登録要求を取得し、取得したＤＢ登録要求に対して、管理ＤＢ８への登録が完了した場合に、ＤＢ登録が完了したことを通知するための登録完了通知を、そのデバイスへ送信する。
メッセージ管理機能は、新規に設置されたデバイスが送信したＤＢ更新要求を取得し、取得したＤＢ更新要求に対して、管理ＤＢ８への更新が完了した場合に、ＤＢ更新が完了したことを通知するためのＤＢ更新完了通知を、そのデバイスへ送信する。
デバイス管理機能は、ＩｏＴ−ＧＷ２の管理下のセンサレイヤ１１に属するデバイス３と、デバイス４と、デバイス５との管理を行う。
デバイス管理機能は、メッセージ管理機能が取得したＤＢ登録要求に基づいて、クラウドレイヤ９の管理ＤＢ８に、デバイスの情報を登録する。デバイス管理機能は、管理ＤＢ８に、デバイスの情報を登録する場合に、管理エージェント１００と連携して、認証サーバに、デバイスを認証させてもよい。この場合、デバイス管理機能は、認証が成功したデバイスの情報を、管理ＤＢ８に登録する。
デバイス管理機能は、メッセージ管理機能が取得したＤＢ更新要求に基づいて、クラウドレイヤ９の管理ＤＢ８に含まれるデバイスの情報を更新する。デバイス管理機能は、管理ＤＢ８に含まれるデバイスの情報を更新する場合に、管理エージェント１００と連携してもよい。この場合、デバイス管理機能は、認証が成功した場合に、管理ＤＢ８に含まれるデバイスの情報を更新する。
【００２２】
ポリシ処理機能は、メッセージ管理機能が取得したポリシが、ＧＷ用ポリシであるか、デバイス用ポリシであるかを判断する。ポリシ処理機能は、メッセージ管理機能が取得したポリシがＧＷ用ポリシである場合に、そのＧＷ用ポリシを適用する。ポリシ処理機能は、メッセージ管理機能が取得したポリシがデバイス用ポリシである場合に、そのデバイス用ポリシを保持する。ポリシ処理機能は、メッセージ管理機能が接続要求を取得した場合に、デバイス用のポリシを自律的に配布する。ポリシ処理機能は、デバイス用のポリシを自律的に配布する場合に、クラウドレイヤ９に含まれる認証サーバ６と連携してもよい。この場合、ポリシ処理機能は、認証が成功したデバイスへ、デバイス用ポリシを配布する。
デバイス状態解析機能は、ＩｏＴＧＷ１１の管理下のセンサレイヤ１１に属するデバイス３と、デバイス４と、デバイス５との状態を通知するメッセージに基づいて、デバイス３と、デバイス４と、デバイス５との状態について所定の判断を行う。
【００２３】
ブローカ２１０は、ＩｏＴ−ＧＷ２が通信を行う通信相手との間でメッセージを交換するためのメッセージ交換機能を有する。ブローカ２１０は、ＩｏＴ−ＧＷ２（ｐｕｂ）から通信相手（ｓｕｂ）へ送信するメッセージを保持し、当該メッセージを通信相手（ｓｕｂ）に取得してもらう。また、ブローカ２１０は、通信相手（ｐｕｂ）からＩｏＴ−ＧＷ２（ｓｕｂ）へ送信されるメッセージを当該通信相手（ｐｕｂ）から受信して保持する。
ブローカ２１０は、ＩｏＴ−ＧＷ２の管理下のセンサレイヤ１１に属するデバイス３と、デバイス４と、デバイス５との間で、メッセージの交換を行う。
【００２４】
［デバイス］
デバイスは、ＩｏＴデバイスである。ＩｏＴデバイスとは、機器同士やローカルのネットワーク、またはインターネットで接続し、情報や制御のやりとりを実行する。デバイスは、自デバイスが属するセンサレイヤに対応するＩｏＴ−ＧＷとの間で通信により相互に情報を交換する。図１の例では、デバイス３と、デバイス４と、デバイス５とは、同じセンサレイヤ１１に属し、センサレイヤ１１に対応するＩｏＴ−ＧＷ２との間で通信により相互に情報を交換する。デバイスは、デバイスエージェントと、デバイスコアとを備える。
図１の例では、デバイス３はデバイスエージェント３００と、デバイスコア３１０とを備え、デバイス４はデバイスエージェント４００と、デバイスコア４１０とを備え、デバイス５はデバイスエージェント５００と、デバイスコア５１０とを備える。各デバイスエージェント３００と、デバイスエージェント４００と、デバイスエージェント５００とは同じ機能を有する。各デバイスコア３１０と、デバイスコア４１０と、デバイスコア５１０とは同じ機能を有する。以下、デバイス３と、デバイス４と、デバイス５とを特に区別しないときはデバイスｘと称する。また、デバイスエージェント３００と、デバイスエージェント４００と、デバイスエージェント５００とを特に区別しないときはデバイスエージェントｘ００と称する。また、デバイスコア３１０と、デバイスコア４１０と、デバイスコア５１０とを特に区別しないときはデバイスコアｘ１０と称する。
【００２５】
デバイスｘの機能は、例えば、デバイスｘが備えるＣＰＵなどのハードウェアプロセッサがプログラム（ソフトウェア）を実行することにより実現される。デバイスｘの機能のうち一部または全部は、ＬＳＩやＡＳＩＣ、ＦＰＧＡ、ＧＰＵなどのハードウェア（回路部；circuitryを含む）によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予めＨＤＤやフラッシュメモリなどの記憶装置に格納されていてもよいし、ＤＶＤやＣＤ−ＲＯＭなどの着脱可能な記憶媒体に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。なお、デバイスｘとして、汎用のコンピュータ装置を使用して構成してもよく、又は、専用のハードウェア装置として構成してもよい。
【００２６】
デバイスエージェントｘ００は、メッセージ管理機能（message manager）と、デバイス管理機能（device manager）と、ポリシ処理機能（policy handler）と、センサ状態解析機能（analytics engine）とを有する。
メッセージ管理機能は、ＩｏＴ−ＧＷ２を検知し、検知したＩｏＴ−ＧＷ２へ接続要求を送信し、送信した接続要求に対して、ＧＷエージェント２００が送信したデバイス用ポリシを取得する。メッセージ管理機能は、ＩｏＴ−ＧＷ２へ、ＤＢ登録要求を送信し、送信したＤＢ登録要求に対して、ＧＷエージェント２００が送信した登録完了通知を取得する。メッセージ管理機能は、ＩｏＴ−ＧＷ２へ、デバイスに対応するソフトウェアを示す情報の一覧を通知することを要求する情報である構成要件通知要求を送信し、送信した構成要件通知要求に対して、ＩｏＴ−ＧＷ２が送信した構成要件通知応答を取得する。メッセージ管理機能は、配布サーバ７からパッケージファイルをダウンロードする。メッセージ管理機能は、ＩｏＴ−ＧＷ２へ、ＤＢ更新要求を送信し、送信したＤＢ要求に対して、ＧＷエージェント２００が送信したＤＢ更新完了通知を取得する。
デバイス管理機能は、ＧＷエージェント２００を検知し、検知したＧＷエージェントに対して接続要求を行う。
デバイス管理機能は、デバイスｘのトポロジと、デバイスｘに接続されているセンサのプロファイルとを、デバイスコアに取得させる。デバイス管理機能は、デバイスコアから、デバイスｘのトポロジと、デバイスｘに接続されているセンサのプロファイルとを取得する。デバイス管理機能は、ＧＷエージェント２００に対して、取得したデバイスｘのトポロジと、デバイスｘに接続されているセンサのプロファイルとを、管理ＤＢ８に登録することを要求する情報であるＤＢ登録要求を作成し、作成したＤＢ登録要求を、メッセージ管理機能で、送信する。
デバイス管理機能は、構成要件通知要求を作成し、作成した構成要件通知要求を、メッセージ管理機能で、ＩｏＴ−ＧＷ２へ送信する。構成要件通知要求には、デバイスのトポロジを示す情報と、デバイスに接続されているセンサのプロファイルを示す情報とが含まれる。
デバイス管理機能は、メッセージ管理機能がＧＷエージェント２００から取得した構成要件通知応答に含まれる内容（デバイスに対応するソフトウェアを示す情報の一覧）を確認し、同一ファイル名のバージョン等を整理する。例えば、デバイス管理機能は、論理積（ＡＮＤ）を使用して、同一ファイル名のバージョンなどを整理する。デバイス管理機能は、デバイスｘ上のデバイスコアｘ１０と連携し、メッセージ管理機能がダウンロードし
たパッケージに含まれるファイルと、設定情報とに基づいて、デバイスコアｘ１０に、自律的に、インストールと、インストールしたソフトウェアの設定とを行わせる。
ポリシ処理機能は、取得したデバイス用ポリシを自デバイスｘに適用する。
センサ状態解析機能は、デバイスｘのトポロジと、デバイスｘに接続されているセンサのプロファイルとを、デバイスｘ上のデバイスコアｘ１０と連携して取得する。
センサ状態解析機能は、センサ構成の変更を検知する。
デバイスコアｘ１０は、ＯＳ、ＡＰＰ、ドライバ−などのソフトウェア部である。デバイスコアｘ１０は、デバイスエージェントｘ００が出力したデバイス情報要求に基づいて、デバイスｘのトポロジと、デバイスｘに接続されているセンサのプロファイルとを取得する。デバイスコアｘ１０は、取得したデバイスｘのトポロジを示す情報と、デバイスｘに接続されているセンサのプロファイルを示す情報とを含むデバイス情報応答を作成し、作成したデバイス情報応答を、デバイスエージェントｘ００へ出力する。
デバイスコアｘ１０は、デバイスエージェントｘ００がダウンロードしたパッケージに含まれるファイルと、設定情報とに基づいて、自動でソフトウェアのインストールと、インストールしたソフトウェアの設定とを行う。
【００２７】
次に本実施形態に係るデバイスシステムの制御方法を説明する。
［初期準備とポリシ配布段階］
図２を参照して、本実施形態に係るデバイスシステムの制御方法における初期準備とポリシ配布段階とを説明する。図２は、本実施形態に係るデバイスシステムの制御方法における初期準備とポリシ配布段階の手順の例を示すシーケンスチャートである。図２に示される例では、デバイス３からデバイス５のうち、デバイス３が故障し、交換待ちである場合について説明する。この場合、ＩｏＴ−ＧＷ２の管理対象に、デバイス３は含まれていない。
【００２８】
（ステップＳ１）
管理者は、管理端末を使用して、配布パッケージを、配布サーバ１２に展開する。配布パッケージの一例には、ＯＳ／Ｋｅｒｎｅｌと、Ａｐｐｒｉｃａｔｉｏｎと、Ｄｒｉｖｅｒなどが含まれている。
（ステップＳ２）
管理者は、管理端末を使用して、ＧＷ用ポリシを、管理エージェント１００へ配布する。管理サーバ１の管理エージェント１００は、管理端末が配布したＧＷ用ポリシを設定する。
（ステップＳ３）
管理エージェント１００は、設定しているＧＷ用ポリシ含むＧＷ用ポリシ配布メッセージをブローカ１１０へ送信する。ブローカ１１０は、ＧＷ用ポリシ配布メッセージを保持する。
（ステップＳ４）
ＩｏＴ−ＧＷ２のＧＷエージェント２００は、一定の周期でブローカ１１０にアクセスし、自己が取得する購読対象のメッセージをブローカ１１０から取得するメッセージ取得処理を実行する。ＧＷエージェント２００は、メッセージ取得処理を実行して、ＧＷ用ポリシ配布メッセージをブローカ１１０から取得する。ＧＷエージェント２００は、ＧＷ用ポリシ配布メッセージに含まれるＧＷ用ポリシを保持する。
（ステップＳ５）
ＧＷエージェント２００は、保持しているポリシがＧＷ用であるかデバイス用であるかを判定する。保持しているポリシがＧＷ用である場合には、ＧＷエージェント２００は、ＧＷ用ポリシを適用する。ここで、ＧＷエージェント２００は、既にＧＷ用ポリシが適用されている場合には、適用されているＧＷ用ポリシを、保持しているＧＷ用ポリシで更新する。保持しているポリシがデバイス用である場合には、ＧＷエージェント２００は、そのデバイス用ポリシを保持するとともに、そのデバイス用ポリシを含むデバイス用ポリシ配布メッセージをブローカ２１０へ送信する。ここでは、ＧＷエージェント２００が、保持しているポリシがＧＷ用である場合について説明を続ける。
【００２９】
（ステップＳ６）
管理者は、管理端末を使用して、デバイス用ポリシを、管理エージェント１００へ配布する。管理サーバ１の管理エージェント１００は、管理端末が配布したデバイス用ポリシを設定する。
（ステップＳ７）
管理エージェント１００は、設定しているデバイス用ポリシ含むデバイス用ポリシ配布メッセージをブローカ１１０へ送信する。ブローカ１１０は、デバイス用ポリシ配布メッセージを保持する。
（ステップＳ８）
ＩｏＴ−ＧＷ２のＧＷエージェント２００は、一定の周期でブローカ１１０にアクセスし、自己が取得する購読対象のメッセージをブローカ１１０から取得するメッセージ取得処理を実行する。ＧＷエージェント２００は、メッセージ取得処理を実行して、デバイス用ポリシ配布メッセージをブローカ１１０から取得する。
（ステップＳ９）
ＧＷエージェント２００は、取得したデバイス用ポリシ配布メッセージに含まれるデバイス用ポリシを保持する。
（ステップＳ１０）
ＧＷエージェント２００は、保持しているポリシがＧＷ用であるかデバイス用であるかを判定する。保持しているポリシがＧＷ用である場合には、ＧＷエージェント２００は、ＧＷ用ポリシを適用する。ここで、ＧＷエージェント２００は、既にＧＷ用ポリシが適用されている場合には、適用されているＧＷ用ポリシを、保持しているＧＷ用ポリシで更新する。保持しているポリシがデバイス用である場合には、ＧＷエージェント２００は、そのデバイス用ポリシを保持するとともに、そのデバイス用ポリシを含むデバイス用ポリシ配布メッセージをブローカ２１０へ送信する。ここでは、ＧＷエージェント２００が、保持しているポリシがデバイス用である場合について説明を続ける。ブローカ２１０は、デバイス用ポリシ配布メッセージを保持する。
【００３０】
（ステップＳ１１）
デバイス４のデバイスエージェント４００は、一定の周期でブローカ２１０にアクセスし、自己が取得する購読対象のメッセージをブローカ２１０から取得するメッセージ取得処理を実行する。デバイスエージェント４００は、メッセージ取得処理を実行して、デバイス用ポリシ配布メッセージをブローカ２１０から取得する。デバイスエージェント４００は、デバイス用ポリシ配布メッセージに含まれるデバイス用ポリシを保持する。
（ステップＳ１２）
デバイス５のデバイスエージェント５００は、一定の周期でブローカ２１０にアクセスし、自己が取得する購読対象のメッセージをブローカ２１０から取得するメッセージ取得処理を実行する。デバイスエージェント５００は、メッセージ取得処理を実行して、デバイス用ポリシ配布メッセージをブローカ２１０から取得する。デバイスエージェント５００は、デバイス用ポリシ配布メッセージに含まれるデバイス用ポリシを保持する。
（ステップＳ１３）
デバイスエージェント４００は、保持しているデバイス用ポリシを適用する。
（ステップＳ１４）
デバイスエージェント５００は、保持しているデバイス用ポリシを適用する。
【００３１】
上述した本実施形態に係るデバイスシステムの制御方法の初期準備とポリシ配布段階によれば、ＩｏＴ−ＧＷ２のＧＷエージェント２００は、管理サーバ１から配布されたデバイス用ポリシを、ＩｏＴ−ＧＷ２の管理下のセンサレイヤ１１に属するデバイス４と、デバイス５とへ配布する。デバイス４と、デバイス５との各々は、ＧＷエージェント２００が配布したデバイス用ポリシを取得し、取得したデバイス用ポリシを適用する。このため、管理サーバ１は、自己の管理下のセンサレイヤ１１に属するデバイス４と、デバイス５とに対して同じデバイス用ポリシを配布すればよいので、デバイス用ポリシの配布にかかる負荷を軽減できる。
【００３２】
［デバイス初期起動時のＤＢ登録］
図３を参照して、本実施形態に係るデバイスシステムの制御方法におけるデバイス初期起動時のＤＢ登録を説明する。図３は、本実施形態に係るデバイスシステムの制御方法におけるデバイス初期起動時のＤＢ登録の手順の例を示すシーケンスチャートである。図３に示される例では、故障対応のために、新規に、デバイス３を設置するケースで、自律的に、プロビジョニングを行う場合における電源投入からＤＢ登録までの処理について説明する。デバイス３には、センサ３２０と、センサ３２１と、センサ３２２とが接続されている。
（ステップＳ２１）
デバイス３に電源が投入されることによって起動する。
（ステップＳ２２）
デバイス３のデバイスエージェント３００は、自身を管理するＩｏＴ−ＧＷ２を発見し、デバイスエージェントＩＤなどのデバイスエージェントの識別情報を含む接続要求を作成し、作成した接続要求をブローカ２１０へ送信する。ブローカ２１０は、接続要求を保持する。ここで、デバイスエージェントＩＤは、デバイス３の認証に使用される。
（ステップＳ２３）
ＩｏＴ−ＧＷ２のＧＷエージェント２００は、一定の周期でブローカ２１０にアクセスし、自身が取得する購読対象のメッセージをブローカ２１０から取得するメッセージ取得処理を実行する。ＧＷエージェント２００は、メッセージ取得処理を実行して、接続要求をブローカ２１０から取得する。
【００３３】
（ステップＳ２４）
ＧＷエージェント２００は、取得した接続要求に含まれるデバイスエージェントＩＤを取得し、取得したデバイスエージェントＩＤを含む認証要求を作成する。ＧＷエージェント２００は、作成した認証要求を、認証サーバ６へ送信する。認証サーバ６は、ＧＷエージェント２００が送信した認証要求を取得し、取得した認証要求に含まれるデバイスエージェントＩＤに基づいて、デバイス３が正当であることを確認する。認証サーバ６は、デバイス３が正当であることの確認結果を、ＧＷエージェント２００へ送信する。
例えば、認証サーバ６は、正当であるデバイスのデバイスエージェントＩＤを予め記憶しており、記憶しているデバイスエージェントＩＤに、ＧＷエージェント２００が送信した認証要求に含まれるデバイスエージェントＩＤが含まれる場合には正当であるとし、含まれない場合には正当でないとする。認証サーバ６が正当でないとした場合には、ＧＷエージェント２００は、所定のエラー処理を実行してもよい。ここでは、認証サーバ６が正当であることを確認した場合について説明を続ける。
（ステップＳ２５）
ＧＷエージェント２００は、認証サーバ６が正当であるとしたデバイス３を管理対象に追加する。
（ステップＳ２６）
ＧＷエージェント２００は、保持しているデバイス用ポリシ配布メッセージをブローカ２１０へ送信する。ブローカ２１０は、デバイス用ポリシ配布メッセージを保持する。
（ステップＳ２７）
デバイス３のデバイスエージェント３００は、メッセージ取得処理を実行して、デバイス用ポリシ配布メッセージをブローカ２１０から取得する。デバイスエージェント３００は、デバイス用ポリシ配布メッセージに含まれるデバイス用ポリシを保持する。
【００３４】
（ステップＳ２８）
デバイスエージェント３００は、保持しているデバイス用ポリシを確認することによって、初期プロビジョニングを行う。ここで、デバイス用ポリシは、デバイスエージェント３００の状態などに沿った複数の記述部を有する。前述したように、例えば、デバイス用ポリシは、初期プロビジョニングに関する記述部と、初期プロビジョニングが完了した後の定常動作に関する記述箇所とを有する。
（ステップＳ２９）
デバイスエージェント３００は、デバイス３をＤＢに登録すると判定する。
（ステップＳ３０）
デバイスエージェント３００は、デバイス３のトポロジを示す情報と、デバイス３に接続されているセンサのプロファイルを示す情報とを要求するデバイス情報要求を作成し、作成したデバイス情報要求を、デバイスコア３１０へ出力する。
（ステップＳ３１）
デバイスコア３１０は、デバイスエージェント３００が出力したデバイス情報要求を取得し、取得したデバイス情報要求に基づいて、デバイス３のトポロジを確認する。デバイスコア３１０は、デバイス３のトポロジを示す情報を保持する。
（ステップＳ３２）
デバイスコア３１０は、センサ３２０のプロファイル情報を要求するセンサプロファイル要求を作成し、作成したセンサプロファイル要求を、センサ３２０へ送信する。センサ３２０は、デバイスコア３１０が送信したセンサプロファイル要求を受信し、取得したセンサプロファイル要求に基づいて、センサ３２０のプロファイルを含むセンサプロファイル応答を作成する。ここでは、プロファイルに、センサ３２０の認証ＩＤと、センサ３２０のメーカと、センサ３２０のセンサ種別とが含まれる場合について説明を続ける。センサ３２０は、作成したセンサプロファイル応答を、デバイスコア３１０に送信する。デバイスコア３１０は、センサ３２０が送信したセンサプロファイル応答を受信し、受信したセンサ３２０のセンサプロファイル応答を保持する。
【００３５】
（ステップＳ３３）
デバイスコア３１０は、センサ３２１のプロファイル情報を要求するセンサプロファイル要求を作成し、作成したセンサプロファイル要求を、センサ３２１へ送信する。センサ３２１は、デバイスコア３１０が送信したセンサプロファイル要求を受信し、取得したセンサプロファイル要求に基づいて、センサ３２１のプロファイルを含むセンサプロファイル応答を作成する。ここでは、プロファイルに、センサ３２１の認証ＩＤと、センサ３２１のメーカと、センサ３２１のセンサ種別とが含まれる場合について説明を続ける。センサ３２１は、作成したセンサプロファイル応答を、デバイスコア３１０に送信する。デバイスコア３１０は、センサ３２１が送信したセンサプロファイル応答を受信し、受信したセンサ３２１のセンサプロファイル応答を保持する。
（ステップＳ３４）
デバイスコア３１０は、センサ３２２のプロファイル情報を要求するセンサプロファイル要求を作成し、作成したセンサプロファイル要求を、センサ３２２へ送信する。センサ３２２は、デバイスコア３１０が送信したセンサプロファイル要求を受信し、取得したセンサプロファイル要求に基づいて、センサ３２２のプロファイルを含むセンサプロファイル応答を作成する。ここでは、プロファイルに、センサ３２２の認証ＩＤと、センサ３２２のメーカと、センサ３２２のセンサ種別とが含まれる場合について説明を続ける。センサ３２２は、作成したセンサプロファイル応答を、デバイスコア３１０に送信する。デバイスコア３１０は、センサ３２２が送信したセンサプロファイル応答を受信し、受信したセンサ３２２のセンサプロファイル応答を保持する。
【００３６】
（ステップＳ３５）
デバイスコア３１０は、保持しているセンサ３２０のセンサプロファイル応答に含まれるセンサ３２０のプロファイルと、センサ３２１のセンサプロファイル応答に含まれるセンサ３２１のプロファイルと、センサ３２２のセンサプロファイル応答に含まれるセンサ３２２のプロファイルとを取得する。デバイスコア３１０は、取得したセンサ３２０のプロファイルと、センサ３２１のプロファイルと、センサ３２２のプロファイルと、保持しているデバイス３のトポロジ情報とを含むデバイス情報応答を作成し、作成したデバイス情報応答をデバイスエージェント３００へ出力する。
（ステップＳ３６）
デバイスエージェント３００は、デバイスコア３１０が出力したデバイス情報応答を取得し、取得したデバイス情報応答に含まれるデバイス３のトポロジを示す情報と、センサ３２０のプロファイルを示す情報と、センサ３２１のプロファイルを示す情報と、センサ３２２のプロファイルを示す情報とを取得する。デバイスエージェント３００は、取得したデバイス３のトポロジ情報と、センサ３２０のプロファイルを示す情報と、センサ３２１のプロファイルを示す情報と、センサ３２２のプロファイルを示す情報とを含み、ＤＢに登録することを要求するためのＤＢ登録要求を作成し、作成したＤＢ登録要求をブローカ２１０へ送信する。ブローカ２１０は、ＤＢ登録要求を保持する。
（ステップＳ３７）
ＩｏＴ−ＧＷ２のＧＷエージェント２００は、メッセージ取得処理を実行して、ＤＢ登録要求をブローカ２１０から取得する。
（ステップＳ３８）
ＧＷエージェント２００は、取得したＤＢ登録要求に含まれるセンサ３２０の認証ＩＤと、センサ３２１の認証ＩＤと、センサ３２２の認証ＩＤとを含む認証要求を作成する。ＧＷエージェント２００は、作成した認証要求を、認証サーバ６へ送信する。認証サーバ６は、ＧＷエージェント２００が送信した認証要求を取得し、取得した認証要求に含まれる認証ＩＤに基づいて、センサ３２０と、センサ３２１と、センサ３２２とが正当であることを確認する。認証サーバ６は、センサ３２０と、センサ３２１と、センサ３２２とが正当であることの確認結果を、ＧＷエージェント２００へ送信する。
例えば、認証サーバ６は、正当であるセンサの認証ＩＤを予め記憶しており、記憶している認証ＩＤに、ＧＷエージェント２００が送信したＤＢ登録要求に含まれる認証ＩＤが含まれる場合には正当であるとし、含まれない場合には正当でないとする。ＧＷエージェント２００は、正当でないと確認した場合に、所定のエラー処理を実行してもよい。認証サーバ６が正当であることを確認した場合について説明を続ける。
【００３７】
（ステップＳ３９）
ＧＷエージェント２００は、取得したＤＢ登録要求に含まれるデバイス３のトポロジを示す情報と、センサ３２０のプロファイルを示す情報と、センサ３２１のプロファイルを示す情報と、センサ３２２のプロファイルを示す情報とを含み、ＤＢ登録を要求する情報を含むＤＢ登録要求を作成する。ＧＷエージェント２００は、作成したＤＢ登録要求を、管理ＤＢ８へ送信する。管理ＤＢ８は、ＧＷエージェント２００が送信したＤＢ登録要求を取得し、取得したＤＢ登録要求に含まれるデバイス３のトポロジを示す情報と、センサ３２０のプロファイルを示す情報と、センサ３２１のプロファイルを示す情報と、センサ３２２のプロファイルを示す情報とを登録する。管理ＤＢ８は、デバイス３のトポロジを示す情報と、センサ３２０のプロファイルを示す情報と、センサ３２１のプロファイルを示す情報と、センサ３２２のプロファイルを示す情報との登録が完了した場合に、登録が完了したことを、ＧＷエージェント２００へ通知する。
（ステップＳ４０）
ＧＷエージェント２００は、管理ＤＢ８から登録が完了したことが通知された場合に、登録が完了したことを示す情報である登録完了通知を作成し、作成した登録完了通知を、ブローカ２１０へ送信する。ブローカ２１０は、登録完了通知を保持する。
（ステップＳ４１）
デバイスエージェント３００は、メッセージ取得処理を実行して、登録完了通知をブローカ２１０から取得する。
図３において、ステップＳ２４の処理と、ステップＳ３８の処理とが省略されてもよい。
【００３８】
上述した本実施形態に係るデバイスシステムの制御方法のデバイス初期起動時のＤＢ登録によれば、デバイス３のデバイスエージェント３００は、起動した場合に、ＩｏＴ−ＧＷ２へ、接続要求を送信し、送信した接続要求に対する応答として、ＩｏＴ−ＧＷ２のＧＷエージェント２００が送信したポリシを取得する。デバイスエージェント３００は、取得したポリシに基づいて、初期プロビジョニングを実行する。このため、デバイスが設置された場合に、手動で操作することなく、デバイスに、初期プロビジョニングを実行させることができるので、複数のデバイスの制御にかかる負担を軽減できる。
【００３９】
［初期インストール］
図４を参照して、本実施形態に係るデバイスシステムの制御方法における初期インストールを説明する。図４は、本実施形態に係るデバイスシステムの制御方法における初期インストールの手順の例を示すシーケンスチャートである。図４に示される例では、デバイス３が新規に設置された場合で、自律的に、プロビジョニングを行う場合におけるＤＢ登録完了から定常運用開始までの処理について説明する。
（ステップＳ５１）
デバイス３のデバイスエージェント３００は、管理ＤＢ８への登録が完了した後、デバイス用ポリシを確認する。デバイスエージェント３００は、デバイス用ポリシに沿って初期プロビジョニングを開始する。
（ステップＳ５２）
デバイスエージェント３００は、デバイス３のトポロジを示す情報と、デバイス３に接続されているセンサのプロファイルを示す情報とを含み、デバイスに対応するソフトウェアを示す情報の一覧を通知することを要求する情報である構成要件通知要求を作成し、作成した構成要件通知要求をブローカ２１０へ送信する。ブローカ２１０は、デバイスエージェント３００が送信した構成要件通知要求を保持する。
（ステップＳ５３）
ＧＷエージェント２００は、メッセージ取得処理を実行して、構成要件通知要求をブローカ２１０内の自身の購読対象である領域から取得する。
（ステップＳ５４）
ＧＷエージェント２００は、取得した構成要件通知要求をブローカ１１０へ送信する。ブローカ１１０は、ＧＷエージェント２００が送信した構成要件通知要求を保持する。
【００４０】
（ステップＳ５５）
管理エージェント１００は、メッセージ取得処理を実行して、構成要件通知要求をブローカ１１０内の自身の購読対象である領域から取得する。
（ステップＳ５６）
管理エージェント１００は、取得した構成要件通知要求に含まれるデバイス３のトポロジを示す情報と、デバイス３に接続されているセンサのプロファイルを示す情報とに基づいて、管理ＤＢ８から、デバイス３に対応するソフトウェアを示す情報の一覧と、そのソフトウェアの取得先を示す情報とを取得する。
（ステップＳ５７）
管理エージェント１００は、デバイス３に対応するソフトウェアを示す情報の一覧と、そのソフトウェアの取得先を示す情報とを含む構成要件通知応答を作成し、作成した構成要件通知応答を、ブローカ１１０へ通知する。ブローカ１１０は、構成要件通知応答を保持する。
（ステップＳ５８）
ＧＷエージェント２００は、メッセージ取得処理を実行して、構成要件通知応答をブローカ１１０内の自身の購読対象である領域から取得する。
（ステップＳ５９）
ＧＷエージェント２００はブローカ２１０に構成要件通知応答を通知する。ブローカ２１０は、構成要件通知応答を保持する。
【００４１】
（ステップＳ６０）
デバイスエージェント３００は、メッセージ取得処理を実行して、構成要件通知応答をブローカ２１０内の自身の購読対象である領域から取得する。
（ステップＳ６１）
デバイスエージェント３００は、取得した構成要件通知応答に含まれるソフトウェアを示す情報の一覧に含まれる一又は複数のソフトウェアを整理する。例えば、デバイスエージェント３００は、構成要件通知応答に含まれるソフトウェアが重複する場合に、重複するソフトウェアの一方を排除するようにしてもよい。また、デバイスエージェント３００は、構成要件通知応答に含まれるソフトウェアのバージョンが重複する場合に、重複するソフトウェアのバージョンの一方を排除するようにしてもよい。
（ステップＳ６２）
デバイスエージェント３００は、デバイスコア３１０と連携して現在のソフトウェアの構成を取得し、取得した現在のソフトウェアの構成と、ソフトウェアを示す情報の一覧とを比較することで、ソフトウェアを示す情報の一覧からインストール済みのソフトウェアを排除する。
（ステップＳ６３）
デバイスエージェント３００は、ソフトウェアを示す情報の一覧から、ダウンロードが必要なソフトウェアを、選定する。
（ステップＳ６４）
デバイスエージェント３００は、配布サーバ７から、ダウンロードが必要なソフトウェアをダウンロードする。
【００４２】
（ステップＳ６５）
デバイスエージェント３００は、デバイスコア３１０へ、ダウンロードしたソフトウェアのインストールと、設定とを要求する情報を出力する。
（ステップＳ６６）
デバイスコア３１０は、デバイスエージェント３００が出力したダウンロードしたソフトウェアのインストールと、設定とを要求する情報を取得し、取得した情報に基づいて、ダウンロードしたソフトウェアのインストールと、設定とを実施する。
（ステップＳ６７）
デバイスコア３１０は、ダウンロードしたソフトウェアのインストールと、設定とが完了した場合に、デバイスエージェント３００へ、初期プロビジョニングが完了したことを示す情報である完了通知を出力する。
（ステップＳ６８）
デバイスエージェント３００は、デバイスコア３１０が出力した完了通知を取得し、取得した完了通知に基づいて、ＤＢ更新要求を作成し、作成したＤＢ更新要求を、ブローカ２１０へ送信する。ＤＢ更新要求には、デバイス３のトポロジを示す情報と、デバイス３に接続されているセンサのプロファイルを示す情報とが含まれる。ブローカ２１０は、ＤＢ更新要求を保持する。
（ステップＳ６９）
ＧＷエージェント２００は、メッセージ取得処理を実行して、ＤＢ更新要求をブローカ２１０内の自身の購読対象である領域から取得する。
【００４３】
（ステップＳ７０）
ＧＷエージェント２００は、取得したＤＢ更新要求に基づいて、デバイス３の構成情報を更新するためのＤＢ構成情報更新要求を、管理ＤＢ８へ送信する。管理ＤＢ８は、ＧＷエージェント２００が送信したＤＢ構成情報更新要求を受信し、受信したＤＢ構成情報更新要求に基づいて、管理ＤＢ８を更新する。管理ＤＢ８は、更新が完了した場合に、更新が完了したことを通知する情報であるＤＢ構成情報更新完了通知を、ＧＷエージェント２００へ送信する。
（ステップＳ７１）
ＧＷエージェント２００は、管理ＤＢ８が送信したＤＢ構成情報更新完了通知を受信し、受信したＤＢ構成情報更新完了通知に基づいて、ＤＢの更新が完了したことを通知する情報であるＤＢ更新完了通知を作成し、作成したＤＢ更新完了通知を、ブローカ２１０へ送信する。ブローカ２１０は、ＤＢ更新完了通知を保持する。
（ステップＳ７２）
デバイスエージェント３００は、メッセージ取得処理を実行して、ＤＢ更新完了通知をブローカ２１０内の自身の購読対象である領域から取得する。初期プロビジョニング完了後、ポリシに沿って通常動作状態に遷移する。
【００４４】
上述した本実施形態に係るデバイスシステムの制御方法の初期インストールによれば、デバイス３のデバイスエージェント３００は、ＩｏＴ−ＧＷ２へ、構成要件通知要求を送信し、送信した構成要件通知要求に対して、管理エージェント１００が送信した構成要件通知応答を受信する。デバイスエージェント３００は、受信した構成要件通知応答に含まれるデバイス３に対応するソフトウェアを示す情報の一覧に基づいて、ダウンロードするソフトウェアを選定し、選定したソフトウェアをダウンロードする。このため、デバイス３が設置された場合に、手動で操作することなく、デバイス３に、ソフトウェアをダウンロードさせ、ダウンロードさせたソフトウェアのインストールと、インストールさせたソフトウェアの設定とをさせることができるので、複数のデバイスの制御にかかる負担を軽減できる。
【００４５】
［新規センサ装着］
図５Ａと図５Ｂとを参照して、本実施形態に係るデバイスシステムの制御方法における新規センサ装着を説明する。図５Ａは、本実施形態に係るデバイスシステムの制御方法における新規にセンサを装着した場合の手順の例１を示すシーケンスチャートである。図５Ｂは、本実施形態に係るデバイスシステムの制御方法における新規にセンサを装着した場合の手順の例２を示すシーケンスチャートである。図５Ａと図５Ｂとに示される例では、デバイス３に新規にセンサ４２３が装着された場合の処理について説明する。
（ステップＳ８１）
デバイス３に、新規にセンサ４２３が装着される。
（ステップＳ８２〜Ｓ８４）
定常動作状態において、デバイスエージェント３００は、ポリシに従って、一定の間隔で構成状態の更新有無を監視するデバイスコア３１０に対して、環境のチェックを行う。
（ステップＳ８５）
デバイスエージェント３００は、新規にセンサ４２３が装着されたことを検知する。
（ステップＳ８６）
デバイスエージェント３００は、デバイス３に接続されているセンサのプロファイル情報を要求するセンサ情報要求を作成し、作成したセンサ情報要求を、デバイスコア３１０へ出力する。
（ステップＳ８７）
デバイスコア３１０は、デバイスエージェント３００が出力したセンサ情報要求を取得し、取得したセンサ情報要求に基づいて、センサ４２３のプロファイルを要求するセンサプロファイル要求を作成し、作成したセンサプロファイル要求を、センサ４２３へ出力する。センサ４２３は、デバイスコア３１０が出力したセンサプロファイル要求を取得し、取得したセンサプロファイル要求に基づいて、センサ４２３のプロファイルを示す情報を含むセンサプロファイル応答を作成する。ここでは、プロファイルに、センサ４２３の認証ＩＤと、センサ４２３のメーカと、センサ４２３のセンサ種別とが含まれる場合について説明を続ける。センサ４２３は、作成したセンサプロファイル応答を、デバイスコア３１０に送信する。デバイスコア３１０は、センサ４２３が送信したセンサプロファイル応答を受信し、受信したセンサ４２３のセンサプロファイル応答を保持する。
【００４６】
（ステップＳ８８）
デバイスコア３１０は、保持しているセンサ４２３のセンサプロファイル応答に含まれるセンサ４２３のプロファイルを示す情報を取得する。
デバイスコア３１０は、取得したセンサ４２３のプロファイルを示す情報を含むデバイス情報応答を作成し、作成したデバイス情報応答をデバイスエージェント３００へ出力する。
（ステップＳ８９）
デバイスエージェント３００は、デバイスコア３１０が出力したデバイス情報応答を取得し、取得したデバイス情報応答に含まれるセンサ４２３のプロファイルを示す情報を取得する。デバイスエージェント３００は、取得したセンサ３２１のプロファイルを示す情報を含み、管理ＤＢ８に登録することを要求するためのＤＢ登録要求を作成し、作成したＤＢ登録要求をブローカ２１０へ送信する。ブローカ２１０は、ＤＢ登録要求を保持する。
（ステップＳ９０）
ＧＷエージェント２００は、メッセージ取得処理を実行して、ＤＢ登録要求をブローカ２１０から取得する。
（ステップＳ９１）
ＧＷエージェント２００は、取得したＤＢ登録要求に含まれるセンサ４２３の認証ＩＤを含む認証要求を作成する。ＧＷエージェント２００は、作成した認証要求を、認証サーバ６へ送信する。認証サーバ６は、ＧＷエージェント２００が送信した認証要求を取得し、取得した認証要求に含まれる認証ＩＤに基づいて、センサ４２３が正当であることを確認する。認証サーバ６は、センサ４２３が正当であることの確認結果を、ＧＷエージェント２００へ送信する。認証サーバ６が正当であることを確認した場合について説明を続ける。
【００４７】
（ステップＳ９２）
ＧＷエージェント２００は、取得したＤＢ登録要求に含まれるセンサ４２３のプロファイルを含み、ＤＢ登録を要求する情報を含むＤＢ登録要求を作成する。ＧＷエージェント２００は、作成したＤＢ登録要求を、管理ＤＢ８へ送信する。管理ＤＢ８は、ＧＷエージェント２００が送信したＤＢ登録要求を取得し、取得したＤＢ登録要求に含まれるセンサ４２３のプロファイルを登録する。管理ＤＢ８は、センサ４２３のプロファイルの登録が完了した場合に、登録が完了したことを、ＧＷエージェント２００へ通知する。
（ステップＳ９３）
ＧＷエージェント２００は、管理ＤＢ８から登録が完了したことが通知された場合に、登録が完了したことを示す情報である登録完了通知を作成し、作成した登録完了通知を、ブローカ２１０へ送信する。ブローカ２１０は、登録完了通知を保持する。
（ステップＳ９４）
デバイスエージェント３００は、メッセージ取得処理を実行して、登録完了通知をブローカ２１０から取得する。以降インストールが開始される。
（ステップＳ９５）
デバイスエージェント３００は、デバイス３のトポロジと、デバイス３に接続されているセンサ４２３のプロファイルを示す情報を含む構成要件通知要求を作成し、作成した構成要件通知要求をブローカ２１０へ送信する。ブローカ２１０は、デバイスエージェント３００が送信した構成要件通知要求を保持する。
【００４８】
（ステップＳ９６）
ＧＷエージェント２００は、メッセージ取得処理を実行して、構成要件通知要求をブローカ２１０内の自身の購読対象である領域から取得する。
（ステップＳ９７）
ＧＷエージェント２００は、取得した構成要件通知要求をブローカ１１０へ送信する。ブローカ１１０は、ＧＷエージェント２００が送信した構成要件通知要求を保持する。
（ステップＳ９８）
管理エージェント１００は、メッセージ取得処理を実行して、構成要件通知要求をブローカ１１０内の自身の購読対象である領域から取得する。
（ステップＳ９９）
管理エージェント１００は、取得した構成要件通知要求に含まれるデバイス３のトポロジと、デバイス３に接続されているセンサ４２３のプロファイルを示す情報とに基づいて、管理ＤＢ８から、デバイス３に対応するソフトウェアを示す情報の一覧と、そのソフトウェアの取得先とを取得する。
（ステップＳ１００）
管理エージェント１００は、取得したデバイス３に対応するソフトウェアを示す情報の一覧と、そのソフトウェアの取得先を示す情報とを含む構成要件通知応答を作成し、作成した構成要件通知応答を、ブローカ１１０に送信する。ブローカ１１０は、構成要件通知応答を保持する。
（ステップＳ１０１）
ＧＷエージェント２００は、メッセージ取得処理を実行して、構成要件通知応答をブローカ１１０内の自身の購読対象である領域から取得する。
（ステップＳ１０２）
ＧＷエージェント２００は、ブローカ２１０に構成要件通知応答を送信する。ブローカ２１０は、構成要件通知応答を保持する。
（ステップＳ１０３）
デバイスエージェント３００は、メッセージ取得処理を実行して、構成要件通知応答をブローカ２１０内の自身の購読対象である領域から取得する。
【００４９】
（ステップＳ１０４）
デバイスエージェント３００は、取得した構成要件通知応答に含まれるソフトウェアを示す情報の一覧に含まれる一又は複数のソフトウェアを整理する。例えば、デバイスエージェント３００は、構成要件通知応答に含まれるソフトウェアが重複する場合に、重複するソフトウェアの一方を排除するようにしてもよい。また、デバイスエージェント３００は、構成要件に含まれるソフトウェアのバージョンが重複する場合に、重複するソフトウェアのバージョンの一方を排除するようにしてもよい。
（ステップＳ１０５）
デバイスエージェント３００は、デバイスコア３１０と連携して現在のソフトウェアの構成を取得し、取得した現在のソフトウェアの構成と、ソフトウェアを示す情報の一覧とを比較することで、ソフトウェアを示す情報の一覧からインストール済みのソフトウェアを排除する。
（ステップＳ１０６）
デバイスエージェント３００は、ソフトウェアを示す情報の一覧から、ダウンロードが必要なソフトウェアを、選定する。
（ステップＳ１０７）
デバイスエージェント３００は、配布サーバ７から、ダウンロードが必要なソフトウェアをダウンロードする。
（ステップＳ１０８）
デバイスエージェント３００は、デバイスコア３１０へ、ダウンロードしたソフトウェアのインストールと、設定とを要求する情報を出力する。
（ステップＳ１０９）
デバイスコア３１０は、デバイスエージェント３００が出力したダウンロードしたソフトウェアのインストールと、設定とを要求する情報を取得し、取得した情報に基づいて、ダウンロードしたソフトウェアのインストールと、設定とを実施する。
【００５０】
（ステップＳ１１０）
デバイスコア３１０は、ダウンロードしたソフトウェアのインストールと、設定とが完了した場合に、デバイスエージェント３００へ、初期プロビジョニングが完了したことを示す情報である完了通知を出力する。
（ステップＳ１１１）
デバイスエージェント３００は、デバイスコア３１０が出力した完了通知を取得し、取得した完了通知に基づいて、ＤＢ更新要求を作成し、作成したＤＢ更新要求を、ブローカ２１０へ送信する。ブローカ２１０は、ＤＢ更新要求を保持する。
（ステップＳ１１２）
ＧＷエージェント２００は、メッセージ取得処理を実行して、ＤＢ更新要求をブローカ２１０内の自身の購読対象である領域から取得する。
（ステップＳ１１３）
ＧＷエージェント２００は、取得したＤＢ更新要求に基づいて、デバイス３の構成情報を更新するためのＤＢ構成情報更新要求を、管理ＤＢ８へ送信する。管理ＤＢ８は、ＧＷエージェント２００が送信したＤＢ構成情報更新要求を受信し、受信したＤＢ構成情報更新要求に基づいて、管理ＤＢ８を更新する。管理ＤＢ８は、更新が完了した場合に、更新が完了したことを通知する情報であるＤＢ構成情報更新完了通知を、ＧＷエージェント２００へ送信する。
（ステップＳ１１４）
ＧＷエージェント２００は、管理ＤＢ８が送信したＤＢ構成情報更新完了通知を受信し、受信したＤＢ構成情報更新完了通知に基づいて、ＤＢの更新が完了したことを通知する情報であるＤＢ更新完了通知を作成し、作成したＤＢ更新完了通知を、ブローカ２１０へ送信する。ブローカ２１０は、ＤＢ更新完了通知を保持する。
（ステップＳ１１５）
デバイスエージェント３００は、メッセージ取得処理を実行して、ＤＢ更新完了通知をブローカ２１０内の自身の購読対象である領域から取得する。初期プロビジョニング完了後、ポリシに沿って通常動作状態に遷移する。
【００５１】
上述した本実施形態に係るデバイスシステムの制御方法の新規にセンサを装着した場合の手順によれば、デバイス３のデバイスエージェント３００は、デバイス３に、新規に装着されたセンサ４２３を検知した場合に、ＩｏＴ−ＧＷ２へ、ＤＢ登録要求を送信し、送信したＤＢ登録要求に対して、管理エージェント１００が送信した登録完了通知を受信する。デバイスエージェント３００は、登録完了通知を受信した場合に、ＩｏＴ−ＧＷ２へ、構成要件通知要求を送信し、送信した構成要件通知要求に対して、管理エージェント１００が送信した構成要件通知応答を受信する。デバイスエージェント３００は、受信した構成要件通知応答に含まれるデバイス３に対応するソフトウェアを示す情報の一覧に基づいて、ダウンロードするソフトウェアを選定し、選定したソフトウェアをダウンロードする。このため、デバイス３にセンサ４２３が装着された場合に、手動で操作することなく、デバイス３に、ソフトウェアをダウンロードさせ、ダウンロードさせたソフトウェアのインストールと、インストールさせたソフトウェアの設定とをさせることができるので、複数のデバイスの制御にかかる負担を軽減できる。
【００５２】
次に図６から図８を参照して、本実施形態の適用例を説明する。
［本実施形態の適用例１］
図６は、本実施形態に係るデバイスシステムの例１を示す図である。図６に示される例では、センサとデバイスとのいずれか一方又は両方が故障し、ハードウェア（ＨＷ）を交換する場合について示す。ここでは、デバイスを交換する場合について説明する。
従来は、新規にデバイスを設置することで、デバイス（ＨＷ）を交換する場合には、デバイスが工場から出荷されるとき、現地で作業するときに適宜手動で、デバイスの初期構築作業が行われる。デバイスの初期構築作業には、ＯＳ、ＡＰＰ、ドライバなどのソフトウェアの初期インストール、初期設定、動作検証などが含まれる。
本実施形態によれば、設置されたデバイスにソフトウェアが自動的にダウンロード、インストール、設定されるため、手動で初期構築作業を行うことなく、デバイスを交換できる。
具体的には、図６に示すように、大気センサと、湿度センサと、温度センサとを搭載したデバイス上では、ＯＳの他に、各センサから情報を収集するために、各々に対応したドライバ（ドライバ１、ドライバ２、ドライバ３）及びＡＰＰ（ＡＰＰ１、ＡＰＰ２、ＡＰＰ３）がインストールされている。故障が発生し、ＨＷの交換が必要となった場合に、従来は、作業者が、現地のデバイスを交換し、ＨＷ交換後、故障前と同じとするため、作業員が現地でＯＳ及び各センサに対応するドライバ、ＡＰＰを手動でインストールする必要があった。本実施形態によれば、現地にデバイスを設置することで、デバイスにソフトウェアが自動的にダウンロード、インストール、設定されるため、作業員が現地でＯＳ及び各センサに対応するドライバ、ＡＰＰを手動でインストールすることなく、デバイスを交換できる。
【００５３】
［本実施形態の適用例２］
図７は、本実施形態に係るデバイスシステムの例２を示す図である。図７に示される例では、デバイスのＨＷが故障したことでセンサの交換が必要になった場合や、既存センサのＥｏＳ（Ｅｎｄ  ｏｆ  Ｓｕｐｐｏｒｔ）や試験的に最新型のセンサを搭載したものに交換することが必要になった場合について示す。このような場合には、センサを交換したときに、プロビジョニングする必要があるデバイスコア（ＯＳ、ＡＰＰ、ドライバ）のバージョンが変更されていることがある。
従来は、現地作業員、もしくは管理者が、デバイスに搭載されるセンサ種別を管理し、適切なデバイスコアを事前に選定した上で交換作業を実施し、手動でこれらをプロビジョニングする必要があった。このため、今後デバイスの数が膨大に膨れる中で、センサ種別とデバイスコアの情報を逐次人手で管理するにはコストが膨大となり、また、ＨＥ(Human Error)のリスクが発生するおそれがある。
本実施形態では、デバイスが、自律的に、デバイスに搭載されているセンサ情報のＤＢ登録、対応するデバイスコアの取得、及びプロビジョニングを実施できるため、管理コストの低減およびＨＥのリスク回避が可能である。
具体的には、図７に示すように、温度センサが故障したため、ＨＷを交換することが必要になった。また、既存の温度センサは、ＥｏＳを迎えたため、温度センサｖｅｒ２を搭載したモデルに交換することが必要になった。温度センサｖｅｒ２を活用するためには、従来のＡＰＰ３とドライバ３ではなく、新規にリリースされたＡＰＰ４とドライバ４とが必要であり、それに付随して、ＯＳ／Ｋｅｒｎｅｌも、ＯＳ２／Ｋｅｒｎｅｌ２へ更新することが必要になった。
本実施形態では、デバイスが、自律的に、デバイスに搭載されているセンサを示す情報を管理ＤＢへ登録し、対応するデバイスコアを取得し、プロビジョニングをできるため、管理コストの低減およびＨＥのリスク回避が可能である。
【００５４】
［本実施形態の適用例３］
図８は、本実施形態に係るデバイスシステムの例３を示す図である。図８に示される例では、運用中のデバイスに新規にセンサを追加する場合について示す。この場合に、プロビジョニングする必要があるデバイスコアのバージョンが変更されることがある。
従来は、現地作業員、もしくは管理者が手動で、デバイス及びセンサの情報を管理し、適切なデバイスコアを事前に選定した上で追加作業を実施する。このため、今後デバイス数が膨大に増加する中で管理コストが課題となる。更に、ＨＥに起因する管理ＤＢの誤りや作業誤りのリスクがある。
本実施形態によれば、追加されたセンサに必要となるデバイスコアのダウンロードからプロビジョニングまでを、デバイスに、自律的に行わせることができるため、管理コストの課題を解決できると同時に、ＨＥのリスク回避が可能である。
具体的には、図８に示すように、既に運用中のデバイスに照明センサを追加する。つまり、大気センサ、温度センサ、湿度センサが搭載され、既に運用中のデバイスに、サービス拡張として、スマート照明の機能を拡張する。照明センサを扱うためには、新規にＡＰＰ４、ドライバ４、それらが動作するために必要なＯＳ２／Ｋｅｒｎｅｌ２の環境をプロビジョニングする必要がある。本実施形態によれば、追加されたセンサに必要となるデバイスコアのダウンロードからプロビジョニングまでを、デバイスが自律的に行うため、管理コストの課題を解決できると同時に、ＨＥのリスク回避が可能となる。
【００５５】
以上説明したように本実施形態によれば、例えばＩｏＴデバイスシステムにおいて、複数のデバイスの制御にかかる負担を軽減させることができるという効果が得られる。また、以下に示すような効果が得られる。
本実施形態によれば、管理者や作業者が一つ一つのＩｏＴデバイスに対して実施している初期プロビジョニング処理を自動化できるため、ＩｏＴデバイスの導入にかかるコストを低減できる。
本実施形態によれば、管理者が手動で追加、修正しているＩｏＴデバイスの構成情報を、デバイスが、自律的に、新規に登録すること、更新することができるため、管理コストを削減できる。
本実施形態によれば、管理エージェント、ＧＷエージェント、デバイスエージェントの三層構造で構成されており、各エージェントの改修、機能追加において相互影響を受けづらくできるため、柔軟な機能改修を実行できる。
本実施形態によれば、デバイスに、センサを新規に搭載した場合に、デバイスは、ドライバの更新又は新規取得を、自律的に行い、管理ＤＢに自動反映できるため、センサを新規に搭載した場合にかかるコストと、センサの管理コストとを低減できる。
本実施形態によれば、ＧＷエージェントの動作をＧＷ用ポリシの記述部に定義し、デバイスエージェントの動作をデバイス用ポリシの記述部に定義しているため、各記述部に定義されている処理内容のカスタマイズを容易にできる。また、新規にポリシ（ＧＷ用ポリシ、デバイス用ポリシ）を配布することによって動作変更ができるため、動作変更の展開にかかる保守コストを低減できる。
【００５６】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
例えば、上述した各装置の機能を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＤＶＤ（Digital Versatile Disc）等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００５７】
１…管理サーバ、２…ＩｏＴ−ＧＷ、３、４、５…デバイス、６…認証サーバ、７…配布サーバ、８…管理ＤＢ、９…クラウドレイヤ、１０…エッジ／ＩｏＴ−ＧＷレイヤ、１１…センサレイヤ、１００…管理エージェント、１１０…ブローカ、２００…ＧＷエージェント、２１０…ブローカ、３００、４００、５００…デバイスエージェント、３１０、４１０、５１０…デバイスコア、３２０、３２１、３２２、４２０、４２１、４２２、５２０、５２１、５２２…センサ
【図１】
2020126463.tif 000003
【図２】
2020126463.tif 000004
【図３】
2020126463.tif 000005
【図４】
2020126463.tif 000006
【図５Ａ】
2020126463.tif 000007
【図５Ｂ】
2020126463.tif 000008
【図６】
2020126463.tif 000009
【図７】
2020126463.tif 000010
【図８】
2020126463.tif 000011