(57)【要約】【課題】  関連するセンサを、センサデータを収集する情報処理装置にまとめて割り当て、センサデータの処理を効率化すること。【解決手段】  複数のセンサと通信可能な情報処理装置であって、関連するセンサを特定する特定手段と、前記特定手段で特定されたセンサの接続先の情報処理装置を決定する決定手段と、前記特定手段で特定されたセンサのセンサデータを、前記決定手段で決定された情報処理装置に送信させるべく、前記特定手段で特定された複数のセンサに対して、前記決定手段で決定された情報処理装置を接続先とする変更制御を実行する変更制御手段とを備えることを特徴とする。【選択図】  図１
2019046093.tif 000002
【特許請求の範囲】
【請求項１】
複数のセンサと通信可能な情報処理装置であって、
関連するセンサを特定する特定手段と、
前記特定手段で特定されたセンサの接続先の情報処理装置を決定する決定手段と、
前記特定手段で特定されたセンサのセンサデータを、前記決定手段で決定された情報処理装置に送信させるべく、前記特定手段で特定された複数のセンサに対して、前記決定手段で決定された情報処理装置を接続先とする変更制御を実行する変更制御手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記特定手段で特定された複数のセンサのセンサデータであって、変更前の接続先の情報処理装置に記憶されているセンサデータを、変更後の接続先の情報処理装置へ登録させる登録制御手段
を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記関連するセンサの接続先を同一の情報処理装置とするか否かを判定する判定手段を更に備え、
前記変更制御手段は、前記判定手段により、前記関連するセンサの接続先を同一の情報処理装置とすると判定された場合に、前記特定手段で特定された複数のセンサに対して、前記決定手段で決定された情報処理装置を接続先とする変更制御を実行することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
センサの接続先の情報処理装置で所定のルールに従って複数のセンサのセンサデータを用いた処理を実行する場合に、当該処理で利用するセンサデータのセンサを関連するセンサとして管理する管理手段
を更に備えることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
当該情報処理装置の上位の情報処理装置で所定のルールに従って複数のセンサデータを用いた処理を実行する場合に、前記変更制御手段は、前記センサごとに接続先を変更制御することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項６】
関連するセンサは、センサデータから種別を特定して決定することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
複数のセンサと通信可能な情報処理装置の処理方法であって、
前記情報処理装置が、
関連するセンサを特定する特定ステップと、
前記特定ステップで特定されたセンサの接続先の情報処理装置を決定する決定ステップと、
前記特定ステップで特定されたセンサのセンサデータを、前記決定ステップで決定された情報処理装置に送信させるべく、前記特定ステップで特定された複数のセンサに対して、前記決定ステップで決定された情報処理装置を接続先とする変更制御を実行する変更制御ステップと
を実行することを特徴とする処理方法。
【請求項８】
複数のセンサと通信可能な情報処理装置のプログラムであって、
前記情報処理装置を、
関連するセンサを特定する特定手段と、
前記特定手段で特定されたセンサの接続先の情報処理装置を決定する決定手段と、
前記特定手段で特定されたセンサのセンサデータを、前記決定手段で決定された情報処理装置に送信させるべく、前記特定手段で特定された複数のセンサに対して、前記決定手段で決定された情報処理装置を接続先とする変更制御を実行する変更制御手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサと通信可能な情報処理装置およびその処理方法とプログラムに関する。
【背景技術】
【０００２】
近年ＩｏＴ（Ｉｎｔｅｒｎｅｔ  Ｏｆ  Ｔｈｉｎｇｓ）の普及によりは色々なデバイス（センサ）をネットワークに接続し、デバイスの情報を集めて様々な分析を行う事ができるようになってきている。センサのデータを分析する事により、例えば工場の稼働状況を可視化する事により稼働の無駄を把握したり、機器の故障を事前に判断して対処したりするといったニーズが出てきている。
【０００３】
データの分析処理は近年発達しているクラウドコンピューティングを利用したものや、よりデバイスに近い所で稼働するエッジサーバを利用したものまで様々な形態が存在する。デバイスから直接クラウドに接続する形態はデバイスの情報を直接クラウド側に送信される事によりクラウドで分析を行う事ができる。一方エッジサーバを利用する形態は、デバイスに近い所にエッジサーバを配置することで、センサから大容量のデータに対して、集計、フィルタリング、統計処理を行う事によりデータサイズを小さくかつ分析しやすいデータとして加工する事により分析を行うサーバへの通信や分析を行う際の負荷を低減する事ができる。
【０００４】
特許文献１では、データ収集システムについて、センサ、エッジサーバとなるゲートウェイ装置、分析サーバであるデータ収集サーバの構成について開示されている。このゲートウェイ装置では、センサデータの加工に用いる演算処理を容易に追加できるようにし、演算処理されたデータをシェアする際のルール変更の影響を最小化する技術について開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２６２９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１のようにエッジサーバ（ゲートウェイ装置ともいう）を設置する際に、センサの台数が増える、或いは、センサからの情報量が増え、処理負荷が高まることからエッジサーバを複数設置する必要がある。
【０００７】
また、エッジサーバでセンサデータの加工や分析を行う時に、他のセンサのデータを参照する事があり得るので、単純にエッジサーバの負荷のみを考えて負荷分散を行うと、センサデータの加工や分析を行う場合に他のセンサのデータを別のエッジサーバに問い合わせが発生する事になり、データの転送時間や通信負荷などの観点から好ましくない。
【０００８】
そのため、関連のある複数のセンサをグループとして扱い、例えばエッジサーバのＣＰＵ負荷や接続数を考慮して、同じグループのセンサをまとめて同じエッジサーバに接続させることが望まれる。
【０００９】
そこで、本発明の目的は、関連するセンサを、センサデータを収集する情報処理装置にまとめて割り当て、センサデータの処理を効率化する仕組みを提供することである。
【課題を解決するための手段】
【００１０】
本発明の目的を達成するための複数のセンサと通信可能な情報処理装置であって、関連するセンサを特定する特定手段と、前記特定手段で特定されたセンサの接続先の情報処理装置を決定する決定手段と、前記特定手段で特定されたセンサのセンサデータを、前記決定手段で決定された情報処理装置に送信させるべく、前記特定手段で特定された複数のセンサに対して、前記決定手段で決定された情報処理装置を接続先とする変更制御を実行する変更制御手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、関連するセンサを、センサデータを収集する情報処理装置にまとめて割り当て、センサデータの処理を効率化することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態における、センサデータ収集システム構成の一例を示す図である。
【図２】本発明の実施形態における、データ収集サーバのハードウェア構成の一例を示すブロック図である。
【図３】本発明の実施形態における、センサのハードウェア構成の一例を示すブロック図である。
【図４】本発明の実施形態における、データ分析システムの機能構成の一例を示す図である。
【図５】本発明の実施形態における、初期化処理の一例を示すフローチャートである。
【図６】本発明の実施形態における、データを収集する処理の一例を示すフローチャートである。
【図７】本発明の実施形態における、サーバ監視をする負荷分散処理の一例を示すフローチャートである。
【図８】本発明の実施形態における、分散処理の詳細を示すフローチャートである。
【図９】本発明の実施形態における、サーバデータ移動処理の一例を示すフローチャートである。
【図１０】本発明の実施形態における、データ分析システムのテーブルの一例を示す図である。
【発明を実施するための形態】
【００１３】
図１は、本発明の実施形態におけるセンサデータ分析システムのシステム構成の一例を示す図である。
【００１４】
センサデータ分析システムはセンサ１０１〜センサ１０６、エッジサーバであるデータ収集サーバＡ２００とデータ収集サーバＢ２００とデータ分析サーバ３０１で構成される。データ収集サーバＡ２００とデータ収集サーバＢ２００は、ゲートウェイ装置ともいい、サーバ装置でなく情報処理可能な装置であればよい。すなわち情報処理装置と言い換えることが可能である。
【００１５】
センサ１０１〜１０６、データ収集サーバＡ２００、データ収集サーバＢ２００はＬＡＮ４００を介して接続され、データ収集サーバＡ２００、データ収集サーバＢ２００とデータ分析サーバ３０１はインターネット５００を介して接続される構成となっている。データ分析サーバをＬＡＮ４００上に配置することも可能とする。また、データ分析サーバはクラウド上のサーバとしてもよい。
【００１６】
センサ１０１〜センサ１０６は、各々のセンサが情報を収集して接続しているデータ収集サーバＡ２００、データ収集サーバＢ２００にセンサデータの送信を行う。なお、センサは、例えば温度や湿度の情報、振動の情報、あるいは心拍などの人体に係る情報を取得可能なデバイスである。
【００１７】
センサ１０１〜センサ１０６には、センサデータの送信先情報が記憶されている。
【００１８】
データ収集サーバＡ２００、データ収集サーバＢ２００は、センサ１０１〜１０６からセンサデータを受信し、集計、フィルタリング、統計処理などの加工処理を行い、データ分析サーバ３０１への送信を行う。データの分析はデータ分析サーバ３０１だけでなく、データ収集サーバでも行ってもよい。
【００１９】
データ分析サーバ３０１は、データ収集サーバ２００からセンサデータを受信し、データ分析を行う。
【００２０】
図２は、本発明の実施形態におけるデータ収集サーバ２００としての情報処理装置のハードウェア構成の一例を示すブロック図である。
【００２１】
図２に示すように、データ収集サーバ２００は、システムバス２０４を介してＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２００、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２００、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３、入力コントローラ２０５、ビデオコントローラ２０６、メモリコントローラ２０７、および通信Ｉ／Ｆコントローラ２０８が接続される。
【００２２】
ＣＰＵ２００は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２３】
ＲＯＭ２００あるいは外部メモリ２１１は、ＣＰＵ２００が実行する制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や、本情報処理方法を実現するためのコンピュータ読み取り実行可能なプログラムおよび必要な各種データ（データテーブルを含む）を保持している。
【００２４】
ＲＡＭ２０３は、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。ＣＰＵ２００は、処理の実行に際して必要なプログラム等をＲＯＭ２００あるいは外部メモリ２１１からＲＡＭ２０３にロードし、ロードしたプログラムを実行することで各種動作を実現する。
【００２５】
入力コントローラ２０５は、キーボードや不図示のマウス等のポインティングデバイス等の入力デバイス２０９からの入力を制御する。入力デバイスがタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下（指等でタッチ）することにより、各種の指示を行うことができることとする。
【００２６】
また、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
【００２７】
ビデオコントローラ２０６は、ディスプレイ２１０などの外部出力装置への表示を制御する。ディスプレイは本体と一体になったノート型パソコンのディスプレイも含まれるものとする。なお、外部出力装置はディスプレイに限ったものははく、例えばプロジェクタであってもよい。また、前述のタッチ操作を受け付け可能な装置については、入力装置も提供する。
【００２８】
なおビデオコントローラ２０６は、表示制御を行うためのビデオメモリ（ＶＲＡＭ）を制御することが可能で、ビデオメモリ領域としてＲＡＭ２０３の一部を利用することもできるし、別途専用のビデオメモリを設けることも可能である。
【００２９】
メモリコントローラ２０７は、外部メモリ２１１へのアクセスを制御する。外部メモリとしては、ブートプログラム、各種アプリケーション、フォントデータ、ユーザファイル、編集ファイル、および各種データ等を記憶する外部記憶装置（ハードディスク）、フレキシブルディスク（ＦＤ）、或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等を利用可能である。
【００３０】
通信Ｉ／Ｆコントローラ２０９は、ネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いた通信やＩＳＤＮなどの電話回線、および携帯電話の３Ｇ回線を用いた通信が可能である。
【００３１】
センサ１０１〜センサ１０６からのセンサデータの受信は通信Ｉ／Ｆコントローラ２０９を介するものとする。
【００３２】
尚、ＣＰＵ２００は、センサデータの解析や加工処理ルールを読み込み、解析や加工処理を実行する。また、センサの管理と割り当て（変更）などの処理も実行する。その他、ＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ２１０上での表示を可能としている。また、ＣＰＵ２００は、ディスプレイ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３３】
次に、図３を用いて、本発明のデバイスとしてのセンサ１０１〜１０６のハードウェア構成について説明する。
【００３４】
センサ１０１〜１０６は、温度や湿度などを検出する検出部１０７を備え、検出部１０７で検出された情報を無線通信Ｉ／Ｆ１０９を介してデータ収集サーバ２００へ送信する。
【００３５】
なお、検出部１０７は、画像を取得するための撮像部や、心拍数など人体の情報を取得するための生体データ検出部であってもよい。１つのセンサー機器（デバイス）で、複数の検出部（温度、湿度）を備える構成であってもよい。
【００３６】
また、センサ１０１〜１０６は、ＭＣＵ１０８（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）を備えており、センサ１０１〜１０６を制御している。なお、ＭＣＵ１０８は、プログラム用メモリ、設定情報を記憶するメモリ、及びワーク用メモリを内蔵している。なお、ＭＣＵはＭＰＵであってもよい。
【００３７】
ＭＣＵ１０８は、検出部１０７が出力する時系列のセンサデータを上位のデータ収集サーバ２００への送信制御を行う。また、送信先の設定や読み込みなどの制御を行うものとする。
【００３８】
次に、図４を参照して、本発明の実施形態におけるセンサデータ分析システムにおける各種装置の機能構成の一例について説明する。
【００３９】
データ収集サーバ２００としての情報処理装置は、特定部４０１、決定部４０２、変更制御部４０３、登録制御部４０４、判定部４０５を備えている。なお、不図示であるが、センサデータの受信を制御する受信制御部や、センサデータの加工処理を行う場合には、データ処理部を備えるものとする。
【００４０】
特定部４０１は、関連するセンサを特定する機能部である。センサの種別（温度や湿度などの属性）や予め登録されたグループ識別情報に従って関連するセンサを特定することが可能である。
【００４１】
決定部４０２は、特定されたセンサの接続先の情報処理装置を決定する機能部である。接続先の情報処理装置は、変更先のデータ収集サーバ２００としての情報処理装置である。
【００４２】
変更制御部４０３は、特定部４０１で特定されたセンサのセンサデータを、決定部４０２で決定された情報処理装置に送信させるべく、特定部４０１で特定された複数のセンサに対して、決定部４０２で決定された情報処理装置を接続先とする変更制御を実行する機能部である。
【００４３】
また、変更制御部４０３は、後述の判定部４０５により、関連するセンサの接続先を同一の情報処理装置とすると判定された場合に、特定部４０１で特定された複数のセンサに対して、決定部４０２で決定された情報処理装置を接続先とする変更制御を実行する機能部である。
【００４４】
また、変更制御部４０３は、当該情報処理装置の上位の情報処理装置で所定のルールに従って複数のセンサデータを用いた処理を実行する場合に、前記センサごとに接続先を変更制御する機能部である。
【００４５】
登録制御部４０４は、特定部４０１で特定された複数のセンサのセンサデータであって、変更前の接続先の情報処理装置に記憶されているセンサデータを、変更後の接続先の情報処理装置へ登録させる機能部である。センサに対して接続先の変更するように要求するコマンド送信の制御に相当する機能部である。
【００４６】
判定部４０５は、関連するセンサの接続先を同一の情報処理装置とするか否かを判定する機能部ある。グループ移動設定テーブル１０５０や加工処理を実行する等に従って判定がなされる機能部である。
【００４７】
管理部４０６は、センサの接続先の情報処理装置で所定のルールに従って複数のセンサのセンサデータを用いた処理（例えば加工処理）を実行する場合に、当該処理で利用するセンサデータのセンサを関連するセンサとして管理する機能部である。
【００４８】
なお、データ収集サーバ２００で加工処理された結果については、不図示のクライアント端末で表示させるべく、結果情報を出力することが可能であることは言うまでもない。また、加工処理された結果情報をデータ分析サーバ３０１に送信して、データ分析サーバ３０１で更に加工処理するようにしてもよいことは言うまでもない。
【００４９】
センサ１０１〜１０６は、データ収集サーバ２００としての情報処理装置と通信可能に接続されるデバイスである。そして、接続先変更部４１１、センサデータ送信部４１２を備えている。
【００５０】
接続先変更部４１１は、データ収集サーバ２００からの変更制御により、自身が接続する接続先情報を変更する機能部である。
【００５１】
センサデータ送信部４１２は、検出部１０７で取得してセンサデータをデータ収集サーバ２００に送信する機能部である。
【００５２】
データ分析サーバ３０１としての情報処理装置は、データ収集サーバ２００の上位の情報処理装置として、データ収集サーバ２００と通信可能に接続されている。なお、センサがデータ分析サーバ３０１に直接センサデータを送信可能であることは言うまでもない。
【００５３】
そして、センサデータ受信部４２１、データ分析部４２２を備えている。
【００５４】
センサデータ受信部４２１は、データ収集サーバ２００からセンサデータ（例えば加工処理されたデータ）を受信する機能部である。
【００５５】
データ分析部４２２は、データ収集サーバ２００から受信したセンサデータを用いて、高度な分析を実行する機能部である。
【００５６】
次に図５〜図９のフローチャートを用いて、本発明の実施形態におけるセンサのグループ単位でのデータ収集処理について説明する。なお、各フローチャートの各ステップの処理は各装置のＣＰＵが実行するものとする。なお、センサの処理については、上述したＭＣＵが実行するものとする。
【００５７】
まず初めに、図５を用いて、センサ１０１及びデータ収集サーバ２００の初期化処理について説明する。図５は初期化処理を示すフローチャートである。
【００５８】
ステップＳ５０１では、データ収集サーバ２００は、分析サーバ設定を外部から読み込み図１０の分析サーバ管理テーブル１０００に書き込む。分析サーバ設定とは、データ分析サーバ３０１を示す設定であり、送信先情報である。
【００５９】
ステップＳ５０２では、自身がマスタのサーバであるか否かを判定する。マスタのサーバである場合には、ステップＳ５０３へ処理を移す。マスタのサーバでない場合（スレーブ）には、ステップＳ５０４へ処理を移す。
【００６０】
ステップＳ５０３では、データ収集サーバ２００は外部からサーバ設定を読み込み、図１０のサーバ管理テーブル１０３０に書き込む。サーバ設定とは、各データ収集サーバ２００のＩＰアドレス、処理負荷やセンサの接続数の設定値である。初期設定では処理負荷やセンサの接続数はＮＵＬＬ値となっており、後述のステップＳ７０１で書き込まれる。
【００６１】
ステップＳ５０４では、データ収集サーバ２００は外部からセンサ設定を読み込み図１０のグループセンサ管理テーブル１０２０に書き込む。センサ設定とは、各センサが接続するデータ収集サーバ２００のＩＰアドレス、グループ名などの接続情報である。
【００６２】
ステップＳ５０５では、データ収集サーバ２００は外部からグループ移動設定を読み込み図１０のグループ移動設定テーブル１０５０に書き込む。グループ移動設定とは、センサをグループで移動させるか否かの設定情報である。
【００６３】
ステップＳ５０６では、センサ１０１は外部からデータ収集サーバ２００のマスタのＩＰアドレスを取り込む。
【００６４】
ステップＳ５０７では、データ収集サーバ２００（マスタ）に、センサが接続し、センサデータを送信するデータ収集サーバ２００の接続先サーバ情報の要求を送信する。この要求にはセンサを特定するためのセンサ名（識別情報）が含まれている。
【００６５】
ステップＳ５０８では、データ収集サーバ２００（マスタ）は、センサ１０１から接続先サーバ情報の要求を受信する。
【００６６】
ステップＳ５０９では、データ収集サーバ２００（マスタ）は、図１０のグループセンサ管理テーブル１０２０及びグループ移動設定テーブル１０５０を読み込む。グループ移動設定テーブル１０５０のグループ移動可否１０５１の値が「Ｙ」の場合は、グループ単位でセンサを同じデータ収集サーバ２００に接続させ、「Ｎ」の場合はグループを考慮せずセンサを同じデータ収集サーバ２００に接続させるものとする。
【００６７】
グループ単位で接続させる場合は、要求したセンサ１０１と同じグループのセンサが既にデータ収集サーバ２００と接続されていると判断した場合は同じデータ収集サーバ２００に接続すると決定する。
【００６８】
グループを考慮しない、グループに入っていない、もしくは同一グループのセンサがまだどこにも接続されていない場合、サーバ管理テーブルを読み込み、例えばＣＰＵ負荷が一番小さいか、接続数が少ないサーバを選択して接続するデータ収集サーバ２００を決定する。なお、本実施形態では、ＣＰＵ負荷が一番小さいか、接続数が少ないデータ収集サーバ２００を決定するものとしたが、これに限ることなく所定のルールに従って処理負荷を考慮したサーバを決定するようにしてもよい。
【００６９】
接続するデータ収集サーバ（サーバ名やＩＰアドレス）を図１０のグループセンサ管理テーブル１０２０に書き込む。
【００７０】
ステップＳ５１０では、データ収集サーバ２００は、要求のあったセンサ１０１へ接続するデータ収集サーバ情報（ＩＰアドレス、サーバ名）を送信する。
【００７１】
ステップＳ５１１では、センサ１０１は、受信した接続するデータ収集サーバ２００の情報（ＩＰアドレス、サーバ名）を図１０の接続管理テーブル１０１０に書き込む。
【００７２】
次に、図６を用いて、センサ１０１のから取得したセンサデータをデータ収集サーバ２００に送信する処理について説明する。図６は、センサデータをデータ収集サーバ２００に送信するフローチャートである。
【００７３】
ステップＳ６０１では、センサ１０１は、検出部１０７よりセンサデータを取り込む。
【００７４】
ステップＳ６０２では、センサ１０１は、接続管理テーブル１０１０に基づき、送信先となるデータ収集サーバ２００にセンサデータを送信する。
【００７５】
ステップＳ６０３では、データ収集サーバ２００は、センサデータを受信する。
【００７６】
ステップＳ６０４では、データ収集サーバ２００は、例えば、集計、フィルタリング、統計処理などのデータ加工処理を行う。なお、データ収集サーバ２００には、加工処理のルールが記憶されているものとする。
【００７７】
ステップＳ６０５では、データ収集サーバ２００は、センサデータを図１０のセンサデータ収集テーブル１０４０に書き込む。センサ名、時刻、データ（例えば、温度や加工処理した値）を記憶する。
【００７８】
ステップＳ６０６では、データ収集サーバ２００は、図１０の分析サーバ管理テーブル１０００にデータ分析サーバの情報が登録されている場合は、データ分析サーバ３０１に収集データ（センサデータ）を送信する。なおデータの分析はデータ分析サーバ３０１だけではなく、データの量や分析対象のセンサ数などによりデータ収集サーバ２００でも行ってもよい。
【００７９】
ステップＳ６０７では、データ分析サーバ３０１は収集データを受信する。
【００８０】
ステップＳ６０８では、データ分析サーバ３０１は収集データを保存する。保存した収集データは分析する時に使用される。
【００８１】
次に、図７を用いて、複数のデータ収集サーバでの負荷分散の処理について説明する。図７は、複数のデータ収集サーバでの負荷分散の処理のフローチャートである。なお、このフローチャートの処理に、センサ１０１とデータ収集サーバ２００との接続を変更する処理が含まれる。
【００８２】
ステップＳ７０１では、データ収集サーバＡ２００（マスタ機能を有するデータ収集サーバ）は、ＣＰＵ負荷や接続されたセンサ１０１情報を図１０のサーバ管理テーブル１０３０及びグループセンサ管理テーブル１０２０に書き込む。なお、ＣＰＵ負荷は、ＣＰＵの使用率などを基に算出される。なお、負荷は単にＣＰＵだけでなく応答時間などであってもよい。また所定時間の平均値としてもよい。接続されたセンサ１０１情報（接続数）はセンサデータを取得中のセンサの数を算出する。
【００８３】
ステップＳ７０２からＳ７０５はデータ収集サーバＢ２００（スレーブ機能を有するデータ収集サーバ）の処理である。
【００８４】
ステップＳ７０２では、他のデータ収集サーバＢ２００に対して、ＣＰＵ負荷や接続情報を問い合わせるコマンドを送信する。
【００８５】
ステップＳ７０３では、データ収集サーバＢ２００は、データ収集サーバＡ２００から送信された問い合わせコマンドを受信する。
【００８６】
ステップＳ７０４では、データ収集サーバＢ２００はＣＰＵ負荷や接続されたセンサ１０１〜１０６の情報（例えば、センサ名など）をデータ収集サーバＡ２００に送信する。
【００８７】
ステップＳ７０５では、データ収集サーバＡ２００は、データ収集サーバＢ２００から受信したＣＰＵ負荷やセンサ１０１〜１０６の情報を基に、図１０のサーバ管理テーブル１０３０及びグループセンサ管理テーブル１０２０に書き込む。すなわち、サーバ管理テーブル１０３０は分散処理の情報となり、グループセンサ管理テーブル１０２０は、どのセンサがどのデータ収集サーバに接続されているかを管理する情報となる。
【００８８】
ステップＳ７０６では、図１０のサーバ管理テーブル１０３０及びグループセンサ管理テーブル１０２０を基に分散処理を行う。分散処理（センサが接続するサーバの変更処理）については、図８で詳述する。なお、ステップＳ７０６の分散処理については、設定したタイミング（リアルタイム、１時間に１回など）で行うものとし、いずれのタイミングで実施してもよい。
【００８９】
次に、図８を用いて、複数のデータ収集サーバ２００の負荷を分散する処理について説明する。図８は、分散処理のフローチャートである。
【００９０】
ステップＳ８０１では、データ収集サーバＡ２００は、図１０のサーバ管理テーブル１０３０を読み込む。
【００９１】
ステップＳ８０２では、図１０のサーバ管理テーブル１０３０に基づいて、データ収集サーバ２００のＣＰＵ負荷にばらつきがあるか判定する。例えばデータ収集サーバ２００のＣＰＵ負荷が８０％を超えるものがあり、且つ、他のデータ収集サーバ２００のＣＰＵ負荷が３０％を割っている等の状態があればばらつきがあると判定する。また、全てのデータ収集サーバ２００のＣＰＵ負荷が８０％以下の場合はばらつきがないと判定する。ばらつきがあるか否かについては、種々の判定手法があるため、この判定に限るものではない。
【００９２】
ばらつきがあると判定した場合はステップＳ８０３に処理を移し、ばらつきがないと判定した場合はステップＳ８０６に処理を移す。
【００９３】
ステップＳ８０３では、図１０のグループ移動設定テーブル１０５０を読み込みグループ単位でデータ収集サーバ２０１を切り替えるか否かについて取得する。値が「Ｙ」の場合はグループ単位に切り替えると判断し、ステップＳ８０４に処理を移す。「Ｎ」の場合はステップＳ８０５に処理を移す。
【００９４】
ステップＳ８０４では、ＣＰＵ負荷の高いデータ収集サーバ２００のグループの一つを特定する。また、ＣＰＵ負荷が低いデータ収集サーバ２００を特定する。サーバ名（１０２４）に特定されたデータ収集サーバ２００の情報を書き込む。また、サーバ管理テーブル１０３０の情報を更新する。負荷情報や接続数が更新される。これにより、センサをまとめて接続先を変更することができ、データ収集サーバ（エッジサーバ）での分析を効率化することが可能となる。
【００９５】
具体的には、まず対象となるセンサと同じグループのセンサ（関連するセンサ）を特定する。すなわち、関連するセンサを特定する処理に相当する。
そして、この特定されるセンサ群の接続先（変更先）のデータ収集サーバ２００を決定する。関連するセンサを特定する前に接続先のデータ収集サーバ２００を決定してもよい。
そして、後述するステップＳ８１０で変更制御を実行することで、同じグループのセンサが他のデータ収集サーバ（同じデータ収集サーバ）にセンサデータを送信することになる。そのため、他のデータ収集サーバから毎回取得することがなくなり、同一のデータ収集サーバでのセンサデータの処理を効率化することができる。
【００９６】
ステップＳ８０５では、グループ単位で移動させない設定であるため、ＣＰＵ負荷の高いデータ収集サーバ２００のセンサ１０１〜１０６の一つをＣＰＵ負荷が低いデータ収集サーバ２００に接続先を変更する。接続先の変更はステップＳ８０４と同様のため説明を省略する。これにより、図１０のグループセンサ管理テーブル１０２０及びサーバ管理テーブル１０３０が更新される。なお、センサがグループ化されている場合には、グループ化されていないセンサ（例えば、図１０の１０２２のＤｅｖ０６）を優先的に移動させるようにする。
【００９７】
ステップＳ８０６では、データ収集サーバ２００の接続数を確認し、各データ収集サーバ２００の接続数の差が大きいか判定する。例えば、あるデータ収集サーバ２００にセンサの８０％以上接続されるような場合は、ばらつきが大きいと判定する。全てのデータ収集サーバ２００の接続数がセンサの８０％以上の接続数ではない場合はばらつきがないと判定する。ばらつきがあるか否かについては、接続数の設定によってことなるため、上述の判定に限るものではない。
【００９８】
ばらつきがあると判定した場合はステップＳ８０７に処理を移す。ばらつきがないと判定した場合はセンサの接続先を変更する必要がないものとして処理を終了する。
【００９９】
ステップＳ８０７では、図１０のグループ移動設定テーブル１０５０を読み込みグループ単位でデータ収集サーバ２００を切り替えるか否かについて取得する。値が「Ｙ」の場合はグループ単位に切り替える（移動する）と判断し、ステップＳ８０８に処理を移す。「Ｎ」の場合はステップＳ８０９に処理を移す。
【０１００】
ステップＳ８０８では、接続数が多いデータ収集サーバ２００のグループの一つを特定する。また、接続数が少ないデータ収集サーバ２００を特定する。そして、サーバ名（１０２４）に特定されたデータ収集サーバ２００の情報を書き込む。また、サーバ管理テーブル１０３０の情報を更新する。負荷情報や接続数が更新される。これにより、センサをまとめて接続先を変更することができ、データ収集サーバ（エッジサーバ）での分析を効率化することが可能となる。
【０１０１】
具体的には、同じグループのセンサが他のデータ収集サーバにセンサデータを送信し、他のデータ収集サーバから毎回取得することがなくなり、同一のデータ収集サーバでのセンサデータの処理を効率化することができる。
【０１０２】
ステップＳ８０９では、グループ単位で移動させない設定であるため、接続数が多いデータ収集サーバ２００のセンサ１０１〜１０６の一つを接続数が少ないデータ収集サーバ２００に接続先を変更する。接続先の変更はステップＳ８０４と同様のため説明を省略する。これにより、図１０のグループセンサ管理テーブル１０２０及びサーバ管理テーブル１０３０が更新される。なお、センサがグループ化されている場合には、グループ化されていないセンサ（例えば、図１０の１０２２のＤｅｖ０６）を優先的に移動させるようにする。
【０１０３】
なお、ステップＳ８１０からステップＳ８１２までは、移動対象の全てのセンサ１０１〜１０６に対して処理を行うものとする。
【０１０４】
ステップＳ８１０では、データ収集サーバＡ２００は、接続先を変更するセンサ１０１〜１０６に対し、接続先変更指示コマンドを送信する。接続先変更指示コマンドは、変更されるデータ収集サーバ２００のサーバ名とＩＰアドレスが含まれ送信される。
なお、ステップＳ８０４とステップＳ８０８からステップＳ８１０へ処理が移行した場合、グループ単位で接続先が同じになるように変更制御がされることとなる。すなわち、グループとして特定されたセンサのセンサデータを、変更先の情報処理装置に送信させるべく、グループとして特定された複数のセンサに対して、変更先となる情報処理装置の接続先に変更するように変更制御する処理である。
【０１０５】
ステップＳ８１１では、センサ１０１〜１０６はデータ収集サーバＡ２００から受信した接続先変更指示コマンドを受信する。
【０１０６】
ステップＳ８１２では、センサ１０１〜１０６は接続先変更指示コマンドに含まれるサーバ名とＩＰアドレスを、センサ自身で管理している図１０の接続管理テーブル１０１０に保存する。これによりセンサの接続先（センサデータの送信先）が切り替わる。
【０１０７】
ステップＳ８１３では、データ収集サーバ２００間で保持しているセンサデータを移動する処理を行う。センサデータの移動処理については、図９にて詳述する。
【０１０８】
次に、図９を用いて、センサデータの移動処理について説明する。図９は、センサデータの移動処理のフローチャートである。また、登録制御処理の説明するフローチャートである。
【０１０９】
この処理は、センサ１０１〜１０６が接続するデータ収集サーバ２００が切り替わった際に実行される。なお、接続先が切り替わったセンサごとにセンサデータを移動させてもよいし、すべてのセンサの切り替えが終了したタイミングで移動されたセンサのセンサデータをまとめて移動させる処理を行ってもよい。
【０１１０】
ステップＳ９０１では、データ収集サーバＡ２００は、移動元のデータ収集サーバ２００に対して、データ移動を指示するコマンドを送信する。なお、移動元のデータ収集サーバが、データ収集サーバＡ２００である場合には、自身にコマンドを送信するものとする。自身である場合には内部的にセンサデータを取得する処理に移行することも可能であり、その場合にはコマンドを送信する処理は省略されるものとする。
【０１１１】
データ移動を指示するコマンドには、移動先のデータ収集サーバ２００のＩＰアドレスと、移動するセンサデータを特定するためにセンサ名が含まれる。
【０１１２】
ステップＳ９０２では、移動元のデータ収集サーバ２００は、データ移動を指示するコマンドを受信する。なお、移動するセンサデータを特定できればよく、グループ名で管理している場合には、グループ名を送信し、センサを特定して、そのセンサのセンサデータを取得することも可能である。
【０１１３】
ステップＳ９０３では、移動元のデータ収集サーバ２００は、移動対象のグループのセンサのセンサデータを、図１０のセンサデータ収集テーブル１０４０から読み込み、移動先のデータ収集サーバ２００に送信する。
【０１１４】
ステップＳ９０４では、移動先のデータ収集サーバ２００はデータ収集テーブルの情報を受信する。
【０１１５】
ステップＳ９０５では、受信した移動対象のセンサのセンサデータを、自身のセンサデータ収集テーブル１０４０に保存する。
【０１１６】
ステップＳ９０６では、移動元のデータ収集サーバ２００は、移動したグループのセンサのセンサデータを、図１０のセンサデータ収集テーブル１０４０より削除する。
【０１１７】
次に、図１０の各種データについて説明する。図１０は各装置が保持するデータを簡易的に示した図である。
【０１１８】
なお、説明上データの記憶はテーブルとしているが、テーブルに限るものではないことは言うまでもない。
【０１１９】
分析サーバ管理テーブル１０００は、データ収集サーバ２００が保持するデータ分析サーバ３０１の情報を管理するテーブルであり、名称１００１、接続情報１００２の項目を有している。
【０１２０】
名称１００１には、データ分析サーバ３０１を識別するための項目であり、サーバ名が登録される。接続情報１００２には、データ分析サーバ３０１に収集データを送信するため必要な情報を保存するための項目であり、例えばＵＲＬやＩＰアドレスが登録される。
【０１２１】
接続管理テーブル１０１０は、センサ１０１〜１０６が保持する接続先のデータ収集サーバ２００を管理するテーブルであり、接続先１０１１、ＩＰアドレス１０１２の項目を有している。
【０１２２】
接続先１０１１には、センサ１０１〜１０６が接続するデータ収集サーバ２００の名称が登録される。ＩＰアドレス１０１２には、接続するデータ収集サーバ２００のＩＰアドレスが登録される。
【０１２３】
グループセンサ管理テーブル１０２０は、データ収集サーバＡ２００が保持するセンサ１０１〜１０６を管理するテーブルであり、センサ１０１〜１０６のグループ名１０２１、センサ名１０２２、ＩＰアドレス１０２３、接続するデータ収集サーバ２００のサーバ名１０２４の項目を有している。
【０１２４】
グループ名１０２１は、センサ１０１〜１０６が所属するグループを保存する為の項目でありグループ名が登録される。グループに所属していない場合は例えばブランクを登録して区別する。センサ名１０２２はセンサ１０１〜１０６を一意に識別する為の項目でありセンサ名が登録される。ＩＰアドレス１０２３はセンサ１０１〜１０６のＩＰアドレスが登録される。サーバ名１０２４はセンサ〜１０６が接続しているデータ収集サーバ２００の名称が登録される。
【０１２５】
サーバ管理テーブル１０３０は、データ収集サーバ２００の情報を保持するテーブルであり各データ収集サーバ２００のサーバ名１０３１、ＩＰアドレス１０３２、負荷１０３３及び接続数１０３４の項目を有している。
【０１２６】
サーバ名１０３１はデータ収集サーバ２００を一意に識別する為の名称でサーバ名が登録される。ＩＰアドレス１０３２はデータ収集サーバ２００のＩＰアドレスが登録される。負荷１０３３はデータ収集サーバ２００のＣＰＵ負荷を数値で保持する。接続数１０３４はデータ収集サーバ２００が接続しているセンサの個数を保存する。
【０１２７】
センサデータ収集テーブル１０４０は、データ収集サーバ２００が保持するテーブルでセンサ名１０４１、時刻１０４２、データ１０４３の項目を有する。
【０１２８】
センサ名１０４１はセンサデータを送信したセンサ１０１〜１０６の名称を保存する為の項目でありセンサ名を登録する。時刻１０４２はセンサ１０１がセンサデータを取得した時間を保存する為の項目で時刻を登録する。データ１０４３はセンサデータの値を意味する。なお、データは一つのセンサに対して一つあるという事ではなく、データが複数存在する場合（時系列のデータ）もある。
【０１２９】
グループ移動設定テーブル１０５０は、グループに所属するセンサが接続するデータ収集サーバ２００を切り替える（変更する）際に、グループ単位で移動するか否かを設定するテーブルで、グループ移動可否１０５１の項目を有する。
【０１３０】
グループ移動可否１０５１は、センサをグループ単位で接続するデータ収集サーバを切り替えるか否かについて登録する。「Ｙ」の場合はグループ単位でデータ収集サーバ２００を切り替え、「Ｎ」の場合はグループを考慮せず切り替える。グループ移動可否１０５１が「Ｙ」となる場合は、データ収集サーバ２００でセンサ１０１〜１０６から収集した情報をまとめて加工したり、分析したりする場合である。
【０１３１】
なお、グループ移動設定テーブル１０５０のテーブルは全てのグループに対してグループ単位にデータ収集サーバ２００を切り替えるか否かを設定するようになっているが、グループ単位に設定する事も可能である。
【０１３２】
次に他の実施形態について説明する。上述の実施形態では、センサを予めグループ化するものとしたが、本実施形態では、グループ化するセンサを加工処理のルールから決定する。
【０１３３】
一般的にセンサはある１つの装置や１つの場所（農場など）に複数のセンサが設置されていることが多い。そこで、センサ１０１〜１０６にＧＰＳ（位置情報取得部）を備え、センサデータとして位置情報も送信するようにする。なお、センサに設置している場所や装置情報を記憶させて置き、設置場所や設置装置情報をセンサデータとして送信する構成であってもよい。
【０１３４】
例えば、ある地点の所定の範囲にあるセンサを特定して、そのセンサから得られたセンサデータの平均値を求めるという加工処理ルールがあった場合、そのルールに従って決定されたセンサを１つのグループとして特定し、図１０のグループセンサ管理テーブル１０２０に登録する。具体的には、決定されたセンサに対して一意のグループ名を１０２１に設定する。
【０１３５】
その他の形態として、センサの種別によってグループを決定する。具体的には、センサごとに温度センサ、湿度センサ、熱センサがあり、このセンサの種別ごとにグループ化する。
【０１３６】
センサ１０１〜１０６から取得するセンサデータを解析して、センサの種別を決定する。解析の結果、温度情報が取得できれば温度の種別として、グループ名を温度として図１０のグループセンサ管理テーブル１０２０に登録する。すなわち、関連するセンサをまとめることができる。
【０１３７】
このように、グループ化（関連）するセンサを特定して、このグループ化されたセンサをまとめて、別のデータ収集サーバ２００に接続先を変更することにより、データ収集サーバ（エッジサーバ）での分析を効率化することが可能となる。
【０１３８】
また、上述したようにグループ化されたセンサの接続先のデータ収集サーバ２００を変更された場合には、先に接続していたデータ収集サーバ２００で書き込んだ（ステップＳ６０５にて）センサデータ収集テーブルの情報を変更したデータ収集サーバ２００に送信し、登録させる。
【０１３９】
なお、センサデータ収集テーブルの情報は、グループ化され変更するセンサのセンサデータであることが望ましい。また、加工処理される前のセンサデータ（データ分析サーバに送る前に利用されるデータ）を抽出してデータ収集サーバ２００に送信することが望ましい。
【０１４０】
このように、グループ単位でセンサの接続先を変更することで、データ収集サーバ２００（エッジサーバとしての情報処理装置）での処理を効率化することが可能となる。
【０１４１】
また、接続先の変更にあたり、変更前にセンサから取得したセンサデータを、変更後のデータ収集サーバ２００に送信し、登録することで、複数のデータ収集サーバを用いて、それぞれのデータ収集サーバで加工処理を行う場合も処理が効率化できる。さらに、ＩｏＴにおいてはセンサの数が増大するため、サーバへの接続と、センサ管理を容易にすることができる。
【０１４２】
以上、実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１４３】
また、本発明におけるプログラムは、図５〜図９に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体には図５〜図９の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは図５〜図９の各装置の処理方法ごとのプログラムであってもよい。
【０１４４】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【０１４５】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【０１４６】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク等を用いることが出来る。
【０１４７】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４８】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４９】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１５０】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１５１】
１０１〜１０６  センサ
２００          データ収集サーバ
３０１          データ分析サーバ
【図１】
2019046093.tif 000003
【図２】
2019046093.tif 000004
【図３】
2019046093.tif 000005
【図４】
2019046093.tif 000006
【図５】
2019046093.tif 000007
【図６】
2019046093.tif 000008
【図７】
2019046093.tif 000009
【図８】
2019046093.tif 000010
【図９】
2019046093.tif 000011
【図１０】
2019046093.tif 000012