(57)【要約】      （修正有）【課題】センサから取得したデータを効率的に取り出すことのできる仕組みを提供する。【解決手段】複数の値を取得可能なセンサ１００と通信可能に接続されたデータ収集サーバ２００を含む情報処理システムであって、データ収集サーバ２００は、センサ１００ごとに、センサデータのデータ構造を記憶し、センサ１００からセンサデータを取得し、センサデータが取得されたセンサ１００およびセンサ１００のデータ構造に基づいて、複数の値から収集対象のセンサデータの値を特定する。【選択図】図５
2019101673.tif 000002
【特許請求の範囲】
【請求項１】
複数の値を取得可能なセンサと通信可能に接続された情報処理装置であって、
前記センサごとに、センサデータのデータ構造を記憶する記憶手段と、
前記センサから前記センサデータを取得する取得手段と、
前記取得手段で前記センサデータが取得された前記センサおよび当該センサの前記データ構造に基づいて、前記複数の値から収集対象のセンサデータの値を特定する特定手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記センサのセンサデータのデータ構造が前記記憶手段に記憶されているか否かを判定する判定手段と、
前記判定手段で前記データ構造が記憶されていないと判定された場合に、前記センサのセンサデータのデータ構造を特定する特定手段と
を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特定手段は、前記判定手段で前記データ構造が記憶されていると判定された場合に、前記記憶手段で記憶される前記データ構造に基づいて、収集対象のセンサデータを特定すること
を特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記データ構造とは、前記収集対象のセンサデータの位置を示す情報であること
を特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記データ構造とは、前記収集対象のセンサデータのサイズを示す情報であること
を特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記データ構造とは、前記収集対象のセンサデータのデータ幅であること
を特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
複数の値を取得可能なセンサと通信可能に接続された情報処理装置の制御方法であって、
前記センサごとに、センサデータのデータ構造を記憶するよう制御する記憶制御ステップと、
前記センサから前記センサデータを取得する取得ステップと、
前記取得ステップで前記センサデータが取得された前記センサおよび当該センサの前記データ構造に基づいて、前記複数の値から収集対象のセンサデータの値を特定する特定ステップと
を備えることを特徴とする情報処理装置の制御方法。
【請求項８】
コンピュータを、請求項１乃至７のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項９】
複数の値を取得可能なセンサと通信可能に接続された情報処理装置を含む情報処理システムであって、
前記センサごとに、センサデータのデータ構造を記憶する記憶手段と、
前記センサから前記センサデータを取得する取得手段と、
前記取得手段で前記センサデータが取得された前記センサおよび当該センサの前記データ構造に基づいて、前記複数の値から収集対象のセンサデータの値を特定する特定手段と
を備えることを特徴とする情報処理システム。
【請求項１０】
複数の値を取得可能なセンサと通信可能に接続された情報処理装置を含む情報処理システムでの制御方法あって、
前記センサごとに、センサデータのデータ構造を記憶するよう制御する記憶ステップと、
前記センサから前記センサデータを取得する取得ステップと、
前記取得ステップで前記センサデータが取得された前記センサおよび当該センサの前記データ構造に基づいて、前記複数の値から収集対象のセンサデータの値を特定する特定ステップと
を備えることを特徴とする情報処理システムの制御方法。
【請求項１１】
コンピュータを、請求項９に記載の情報処理システムの各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、その制御方法、及びプログラム、並びに、情報処理システム、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
ＩｏＴ（Ｉｎｔｅｒｎｅｔ  Ｏｆ  Ｔｈｉｎｇｓ）は色々なデバイス（センサー）をネットワークに接続できるようにしたものである。デバイスがネットワークにつながる事で、たくさんのデバイスからデータを集める事で様々な分析を行う事ができるようになってきた。
【０００３】
データの分析はクラウドコンピューティングを利用したものやエッジコンピューティングを利用するものが存在する。クラウドコンピューティングのみ使用する形態はデバイスから直接クラウドにデータ送信する事によりクラウド上でデータ分析を行う。エッジコンピューティングを使用する形態は、ネットワーク上よりデバイスに近い所で動作するエッジコンピュータを経由してクラウドに接続する。エッジコンピュータはデバイスから得たデータを集計、フィルタリング、統計処理等のデータ加工を行ってクラウドに送信するか、エッジコンピュータ自身でデータ分析を行う事ができる。
【０００４】
特許文献１には、エッジサーバのデータ変換・加工ルールを事前に登録して複数人でルールを共有し、ルールの変更や追加を簡単に行うことのできる仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−２６２９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、エッジサーバに接続されるデバイスが増加した場合に、エッジサーバの負荷が高くなり、エッジサーバでの処理が遅れてしまうという問題がある。すなわち、より効率的にエッジサーバは、デバイスから取得したデータから必要なデータを効率的に取り出す仕組みが必要となる。
【０００７】
そこで、本発明は、センサから取得したデータを効率的に取り出すことのできる仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するため、本発明は、複数の値を取得可能なセンサと通信可能に接続された情報処理装置であって、前記センサごとに、センサデータのデータ構造を記憶する記憶手段と、前記センサから前記センサデータを取得する取得手段と、前記取得手段で前記センサデータが取得された前記センサおよび当該センサの前記データ構造に基づいて、前記複数の値から収集対象のセンサデータの値を特定する特定手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、センサから取得したデータを効率的に取り出すことができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態における情報処理システムのシステム構成の一例を示す図である。
【図２】データ収集サーバ２００，データ分析サーバ３００のハードウェア構成の一例を示すブロック図である。
【図３】センサ１００のハードウェア構成の一例を示すブロック図である。
【図４】センサ１００、データ収集サーバ２００、データ分析サーバ３００の機能構成の一例を示すブロック図である。
【図５】本実施形態における詳細な処理の流れを説明するフローチャートである。
【図６】本実施形態における詳細な処理の流れを説明するフローチャートである。
【図７】本実施形態で用いるデータテーブルの一例を示す模式図である。
【図８】センサ１００からデータ収集サーバ２００へ送信されるセンサデータの構造例を示す模式図である。
【発明を実施するための形態】
【００１１】
以下、本発明の一実施形態について図面を参照しながら説明する。
【００１２】
エッジサーバ（データ収集サーバ２００に相当）がデータ加工処理を行うためには、まず、センサ１００から受信したデータについて、そのデータが何のデータなのか把握し、必要な情報を取り出した上で、データ加工処理を行う必要がある。この情報の取り出しについては、センサ１００の種類によってデータ構造が違う事が多く、データ構造の把握処理が煩雑になりがちである。本実施形態では、センサ１００から取得されたデータのデータ構造を把握する処理を簡略化・効率化する事により、データ収集サーバ２００の処理を軽減させることを可能とする。
【００１３】
図１は、本発明の実施形態におけるセンサデータ分析システム（情報処理システムに相当する）のシステム構成の一例を示す図である。
【００１４】
センサデータ分析システムはセンサ１００、エッジサーバであるデータ収集サーバ２００及びデータ分析サーバ３００で構成される。
【００１５】
センサ１００（Ａ〜Ｆ）及びデータ収集サーバ２００はＬＡＮ１００１を介して接続され、データ収集サーバ２００とデータ分析サーバ３００はインターネット５０１を介して接続される構成となっている。データ分析サーバ３００をＬＡＮ１００１上に配置することも可能とする。
【００１６】
センサ１００Ａ〜センサ１００Ｆは、複数の値を取得可能なセンサデータを測定可能なセンサであり、各々のセンサが情報を収集して接続しているデータ収集サーバ２００にセンサデータの送信を行う。
【００１７】
データ収集サーバ２００は、センサ１００Ａ〜センサ１００Ｆからセンサデータを受信し、集計、フィルタリング、統計処理などの加工処理を行い、データ分析サーバ３００への送信を行う。データの分析はデータ分析サーバ３００だけでなく、データ収集サーバ２００でも行える事とする。
【００１８】
データ分析サーバ３００は、データ収集サーバ２００からセンサデータを受信し、データ分析を行う。
【００１９】
図２は、本発明の実施形態におけるデータ収集サーバ２００，データ分析サーバ３００のハードウェア構成の一例を示すブロック図である。
【００２０】
図２に示すように、データ収集サーバ２００，データ分析サーバ３００は、システムバス２０４を介してＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３、入力コントローラ２０５、ビデオコントローラ２０６、メモリコントローラ２０７、および通信Ｉ／Ｆコントローラ２０８が接続される。
【００２１】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２２】
ＲＯＭ２０２あるいは外部メモリ２１１は、ＣＰＵ２０１が実行する制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や、本情報処理方法を実現するためのコンピュータ読み取り実行可能なプログラムおよび必要な各種データ（データテーブルを含む）を保持している。
【００２３】
ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＯＭ２０２あるいは外部メモリ２１１からＲＡＭ２０３にロードし、ロードしたプログラムを実行することで各種動作を実現する。
【００２４】
入力コントローラ２０５は、キーボードや不図示のマウス等のポインティングデバイス等の入力デバイス２０９からの入力を制御する。入力デバイスがタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下（指等でタッチ）することにより、各種の指示を行うことができることとする。
【００２５】
また、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
【００２６】
ビデオコントローラ２０６は、ディスプレイ２１０などの外部出力装置への表示を制御する。ディスプレイは本体と一体になったノート型パソコンのディスプレイも含まれるものとする。なお、外部出力装置はディスプレイに限ったものははく、例えばプロジェクタであってもよい。また、前述のタッチ操作を受け付け可能な装置については、入力装置も提供する。
【００２７】
なおビデオコントローラ２０６は、表示制御を行うためのビデオメモリ（ＶＲＡＭ）を制御することが可能で、ビデオメモリ領域としてＲＡＭ２０３の一部を利用することもできるし、別途専用のビデオメモリを設けることも可能である。
【００２８】
メモリコントローラ２０７は、外部メモリ２１１へのアクセスを制御する。外部メモリとしては、ブートプログラム、各種アプリケーション、フォントデータ、ユーザファイル、編集ファイル、および各種データ等を記憶する外部記憶装置（ハードディスク）、フレキシブルディスク（ＦＤ）、或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等を利用可能である。
【００２９】
通信Ｉ／Ｆコントローラ２０９は、ネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いた通信やＩＳＤＮなどの電話回線、および携帯電話の３Ｇ回線を用いた通信が可能である。
【００３０】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ２１０上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３１】
次に、図３を用いて、本発明の情報処理装置としてのセンサ１００のハードウェア構成の一例について説明する。センサ１００は例えば、温度センサ、気圧センサ、流量センサを想定しているがこれに限定されない。上述のように、センサ１００の種別が異なることにより、センサ１００から送られてきたデータのうちどの部分のデータを取得すべきかを、都度判断しなければならなくなり、データ収集サーバ２００の処理負荷が高くなってしまうという課題がある。
【００３２】
図３に示すように、センサ１００は、システムバス３０４を介してＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３、入力コントローラ３０５、ビデオコントローラ３０６、メモリコントローラ３０７、通信Ｉ／Ｆコントローラ３０８、および外部Ｉ／Ｆコントローラ３０９が接続される。
【００３３】
ＣＰＵ３０１は、システムバス３０４に接続される各デバイスやコントローラを統括的に制御する。
【００３４】
ＲＯＭ３０２あるいは外部メモリ３１２は、ＣＰＵ３０１が実行する制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）やＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や、本情報処理方法を実現するためのコンピュータ読み取り実行可能なプログラムおよび必要な各種データ（データテーブルを含む）を保持している。
【００３５】
ＲＡＭ３０３は、ＣＰＵ３０１の主メモリ、ワークエリア等として機能する。ＣＰＵ３０１は、処理の実行に際して必要なプログラム等をＲＯＭ３０２あるいは外部メモリ３１２からＲＡＭ３０３にロードし、ロードしたプログラムを実行することで各種動作を実現する。
【００３６】
入力コントローラ３０５は、キーボードや不図示のマウス等のポインティングデバイス等の入力デバイス３１０からの入力を制御する。入力デバイスがタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下（指等でタッチ）することにより、各種の指示を行うことができることとする。
【００３７】
また、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
【００３８】
ビデオコントローラ３０６は、ディスプレイ３１１などの外部出力装置への表示を制御する。ディスプレイは本体と一体になったノート型パソコンのディスプレイも含まれるものとする。なお、外部出力装置はディスプレイに限ったものははく、例えばプロジェクタであってもよい。また、前述のタッチ操作を受け付け可能な装置については、入力装置も提供する。
【００３９】
なおビデオコントローラ３０６は、表示制御を行うためのビデオメモリ（ＶＲＡＭ）を制御することが可能で、ビデオメモリ領域としてＲＡＭ３０３の一部を利用することもできるし、別途専用のビデオメモリを設けることも可能である。
【００４０】
メモリコントローラ３０７は、外部メモリ３１２へのアクセスを制御する。外部メモリとしては、ブートプログラム、各種アプリケーション、フォントデータ、ユーザファイル、編集ファイル、および各種データ等を記憶する外部記憶装置（ハードディスク）、フレキシブルディスク（ＦＤ）、或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）メモリ等を利用可能である。
【００４１】
通信Ｉ／Ｆコントローラ３０８は、ネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いた通信やＩＳＤＮなどの電話回線、および携帯電話の３Ｇ回線を用いた通信が可能である。
【００４２】
外部Ｉ／Ｆコントローラ３０９は、不図示の温度センサ等の入力センサ３１３によりセンサデータを取得するものである。例えば入力センサが温度センサの場合は温度データを外部Ｉ／Ｆコントローラ３０９より取り込み各種アプリケーションから利用可能となる。本実施形態では、センサ１００に複数の入力センサ３１３が備えられていることを前提とする。
【００４３】
尚、ＣＰＵ３０１は、例えばＲＡＭ３０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ３１１上での表示を可能としている。また、ＣＰＵ３０１は、ディスプレイ３１１上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００４４】
次に図４を参照して、本発明の実施形態におけるセンサ１００、データ収集サーバ２００、データ分析サーバ３００の機能構成の一例について説明する。
【００４５】
センサ１００は機能部としてセンサデータ収集部４１１、センサデータ送信部４１２を備える。
【００４６】
センサデータ収集部４１１は、センサデータを収集する機能部である。センサデータ送信部４１２はセンサデータ収集部４１１で収集されたセンサデータをデータ収集サーバ２００に対して送信する機能部である。
【００４７】
データ収集サーバ２００は、機能部としてサーバ管理部４０１、センサデータ受信部４０２、センサデータ送信部４０３、センサデータ解析部４０４を備える。
【００４８】
サーバ管理部４０１はセンサデータのデータ構造を記憶制御する機能部である。センサデータ受信部４０２はセンサデータ送信部４１２で送信されたセンサデータを受信して取得する機能部である。センサデータ送信部４０３はセンサデータをデータ分析サーバ３００に対して送信する機能部である。センサデータ解析部４０４はセンサデータ受信部４０２で受信されたセンサデータを解析してデータ構造を特定する機能部である。
【００４９】
データ分析サーバ３００はセンサデータ受信部４２１とデータ分析部４２２を備える。
【００５０】
センサデータ受信部４２１は、ステップＳ４０３で送信されたセンサデータを受信する機能部である。データ分析部４２２はセンサデータ受信部４２１で受信されたセンサデータを分析する機能部である。
【００５１】
以上で、本実施形態における、センサ１００、データ収集サーバ２００、データ分析サーバ３００の機能構成の一例の説明を終了する。なお、図４に示す機能構成は一例であって、目的や用途に応じて適宜変更されるものである。
【００５２】
次に図５〜図６のフローチャートを用いて、本発明の実施形態におけるデータ収集サーバ２００で行われるデータの解析及び加工する処理について説明する。
【００５３】
データ収集サーバ２００とセンサ１００とが既に通信が確立されている状態を前提として、以下、処理の内容の説明を行う。通信が確立されているため、データ収集サーバ２００は分析サーバ管理テーブル７００を保持し、センサ１００は、収集サーバ管理テーブル７１０を保持している。
【００５４】
図７の分析サーバ管理テーブル７００は、データ収集サーバ２００が保持するデータ分析サーバ３００の情報を管理するテーブルであり、名称７０１、接続情報７０２の項目からなる。
【００５５】
名称７０１には、分析サーバを識別するための項目であり、サーバ名が登録される。
【００５６】
接続情報７０２には、分析サーバに収集データを送信するため必要な情報を保存するための項目であり、例えばＵＲＬやＩＰアドレスが登録される。
【００５７】
図７の収集サーバ管理テーブル７１０はセンサ１００が保持する接続先のデータ収集サーバ２００を管理するテーブルであり、接続先７１１、ＩＰアドレス７１２の項目からなる。
【００５８】
接続先７１１にはセンサ１００が接続するデータ収集サーバ２００のサーバ名が登録される。
【００５９】
ＩＰアドレス７１２は接続するデータ収集サーバ２００のＩＰアドレスが登録される。
【００６０】
図５のフローチャートは、センサ１００が取得したセンサデータをデータ収集サーバ２００に送信する処理を示すフローチャートである。
【００６１】
ステップＳ５０１では、センサ１００のＣＰＵ３０１が、センサ１００が備える全ての入力センサ３１３、すなわち図３に示す入力センサ３１３からセンサデータを読み込む。本実施形態では、センサ１００に複数の入力センサ３１３が備えられていることを前提とする。
【００６２】
図８はセンサ１００からデータ収集サーバ２００へ送信されるセンサデータの構造例を示す。センサデータ８０１では最大１０個のセンサ値を保持可能であるが、センサ値が最大の１０個ではなく７個格納されている例である。例えば、このセンサデータ８０１の一つのデータ値のデータ幅が４バイトである場合に、このセンサデータ８０１をデータ収集サーバ２００で解析した場合は、図７のセンサデータ構造管理テーブル７３０のサイズ７３３には４０、定義数７３４には７が登録される。
【００６３】
図８に示すようにセンサデータは、複数の値を備えており、送られたセンサ１００ごとにセンサデータの格納場所が異なっていることがある。データ収集サーバ２００は、センサ１００から送られたセンサデータのうち、どの場所に何のセンサ値が存在しているのかを特定しながら、データを収集しなければならず、処理の効率を妨げてしまっていた。
【００６４】
ステップＳ５０２では、センサ１００のＣＰＵ３０１が、センサ１００は全てのセンサデータをデータ収集サーバ２００に送信する。
【００６５】
ステップＳ５０３では、データ収集サーバ２００のＣＰＵ２０１は、センサデータを受信・取得する。（取得手段に相当する）
【００６６】
ステップＳ５０４では、データ収集サーバ２００のＣＰＵ２０１は、送信元のセンサ１００のＩＰアドレスが図７のセンサデータ構造管理テーブル７３０に存在するかを判定する（判定手段に相当する）。存在する場合はステップＳ５０５の処理を行う。存在しない場合はデータ構造を解析する為にステップＳ５０７の処理を行う。当該処理により、内部で保持していないセンサデータについてのみセンサデータ構造の解析処理を行うので、既に解析済みのセンサデータについての解析処理を抑止する事で全体の処理速度を高める事ができる。
【００６７】
図７のセンサデータ構造管理テーブル７３０はデータ収集サーバ２００が保持するセンサ１００から受信するセンサデータの構造を管理するテーブルであり、センサ名７３１、ＩＰアドレス７３２、サイズ７３３、定義数７３４、及び定義情報である名称、オフセット、データ幅について最大１０個の定義を保存する為の項目からなる。定義情報は一つ目の定義は名称１  ７３５、オフセット１  ７３６、データ幅１  ７３７の項目で保存し、十個目の定義は名称１０  ７３８、オフセット１０  ７３９、データ幅１０  ７４０で保存する。センサ名７３１はセンサ１００を識別する名称を保存する為の項目で、例えばホスト名が登録される。ＩＰアドレス７３２にはセンサ１００のＩＰアドレスを保存する為の項目である。サイズ７３３はセンサ１００から受信したセンサデータのデータサイズを保存する為の項目である。定義数７３４はセンサデータの中に配置されたセンサ値の数を保存する為の項目である。名称１  ７３５はセンサ値の情報名を保存する為の項目で、例えば「温度」や「湿度」といった名称が登録される。オフセット１  ７３６はセンサ値がセンサデータのどの位置に格納されているかを保存する為の項目であり、センサデータの先頭から何バイト目に格納されているかという情報を登録する。データ幅１  ７３７はセンサ値のデータ幅を保存する為の項目でありデータ幅をバイト数として登録する。なお、名称、オフセット、データ幅は定義数７３４で定義された数だけ登録するので、定義数７３４の値が１０の場合は名称１  ７３５、オフセット１  ７３６、データ幅１  ７３７から名称１０  ７３８、オフセット１０  ７３９、データ幅１０  ７４０までの１０個分の情報が登録される。なおセンサデータ構造管理テーブル７３０では定義数７３４の最大を１０としているが、センサデータの中に１０個以上のセンサ値を取り扱う場合はこのテーブルを拡張可能とする。
【００６８】
ステップＳ５０５では、データ収集サーバ２００のＣＰＵ２０１は、センサ１００から受信したデータサイズを取得し、データサイズが図７のセンサデータ構造管理テーブル７３０の送信元のセンサ１００のＩＰアドレス７３２に対応するレコードのサイズ７３３に一致するか確認する。一致する場合は以前解析したデータ構造と同じと判断してステップＳ５０６の処理を行う。一致しない場合は以前解析したデータ構造とは違うものを受信したと判断しデータ構造を解析する為にステップＳ５０７の処理を行う。当該処理により既に内部で保持しているセンサデータ解析結果が有効か否かを判定する事で、不要なデータ解析処理を抑止する事ができる。なお、ステップＳ５０５は必ずしも必須の処理ではない。
【００６９】
ステップＳ５０６では、データ収集サーバ２００のＣＰＵ２０１は、図７のセンサデータ構造管理テーブル７３０の該当レコードを読み込み、センサデータの構造を特定する。センサデータの構造とは、上述のセンサ名７３１、ＩＰアドレス７３２、サイズ７３３、定義数７３４、及び定義情報である名称、オフセット、データ幅について最大１０個の定義を保存する為の項目である。センサデータの構造を把握することで、収集対象となるセンサ値を特定する。
【００７０】
ステップＳ５０７では、データ収集サーバ２００のＣＰＵ２０１は、センサ１００から受信したセンサデータの中に、いくつのセンサ値があり、それぞれの情報名、センサデータの先頭からの位置及びデータ幅を調べる。センサデータの構造は例えば、外部ファイル記述されている場合や、センサデータの先頭部分に格納されている場合がある。センサデータの構造としては、温度や湿度といった情報名や、センサの値がセンサデータのどの位置にあるか、またそのデータ幅等が規定されている。
【００７１】
ステップＳ５０８では、データ収集サーバ２００のＣＰＵ２０１は、ステップＳ５０７で読み込まれた情報により、当該センサの情報であるセンサ名、ＩＰアドレス及び、センサデータ内にあるセンサ値についての情報名、センサデータ先頭からの位置であるオフセット及び、データ幅について、センサデータの構造を図７のセンサデータ構造管理テーブル７３０に書き込む。
【００７２】
ステップＳ５０９では、データ収集サーバ２００のＣＰＵ２０１は、ステップＳ５０３で受信したセンサデータを図７のセンサデータ構造管理テーブル７３０に保持している定義数７３４、名称、オフセット、データ幅が示す定義数７３４の個数分のセンサ値を特定する（特定手段に相当する）。具体的には、取り出すセンサ値の場所を、センサデータの先頭からの位置を示すオフセット及びデータ幅より特定することができる。センサデータの中にあるセンサ値を全て取り出してセンサ値を特定する。センサ値とは例えば、温度センサの場合は温度を、湿度センサの場合は湿度を表す。
【００７３】
ステップＳ５１０では、データ収集サーバ２００のＣＰＵ２０１は、ステップＳ５０３で受信したセンサデータより特定された全てのセンサ値について処理を行う。センサ値についてデータ加工が必要か判断する。データ加工はセンサ値の特性により、例えばデータの丸め処理や複数のセンサ値から一つの値を算出するなどの処理を指す。センサ値の特性により、センサ値にデータ加工が必要な場合は、ステップＳ５１１の処理を行う。データ加工が不要な場合はステップＳ５１２の処理を行う。なお、ステップＳ５１０は必ずしも必須の処理ではない。
【００７４】
ステップＳ５１１では、データ収集サーバ２００のＣＰＵ２０１は、センサ値についてデータ加工処理を行う。例えばデータの丸め処理や複数のセンサ値から一つの値を算出するなどの処理である。
【００７５】
ステップＳ５１３では、データ収集サーバ２００のＣＰＵ２０１は、ステップＳ５１１で加工されたセンサ値を図７のセンサデータ収集テーブル７２０に情報名７２１、時刻７２２及びデータ７２３（センサ値に相当する）として追加する。
【００７６】
図７のセンサデータ収集テーブル７２０は、データ収集サーバ２００が保持するテーブルで情報名７２１、時刻７２２、データ７２３の項目からなる。情報名７２１はセンサデータから取り出したセンサ値を登録する為の項目であり例えば「温度」や「湿度」といった情報名を登録する。時刻７２２はセンサ１００がセンサデータを取得した時間を保存する為の項目で時刻を登録する。データ７２３はセンサ値を意味する。センサ値は一つのセンサ１００に対して必ず一つあるという事ではなく、センサ値が複数存在する場合もある。
【００７７】
ステップＳ５１２では、データ収集サーバ２００のＣＰＵ２０１は、センサ値を図７のセンサデータ収集テーブル７２０に情報名７２１、時刻７２２及びデータ７２３（センサ値に相当する）として追加する。
【００７８】
ステップＳ５１４では、データ収集サーバ２００のＣＰＵ２０１は、図７の分析サーバ管理テーブル７００に分析サーバ情報が存在している場合は、データ分析サーバ３００にセンサ値を送信する。
【００７９】
図６のフローチャートは、データ収集サーバ２００がセンサ１００との通信回線が切断した事を検知した場合にデータ収集サーバ２００が内部で保持している切断検知したセンサ１００の情報を削除する処理のフローチャートである。
【００８０】
ステップＳ６０１では、データ収集サーバ２００のＣＰＵ２０１は、切断を検知したセンサ１００のＩＰアドレスを元に、図７のセンサデータ構造管理テーブル７３０を検索し、切断検知したセンサ１００に対応する情報を削除する。
以上で図６に示すフローチャートの説明を終了する。
【００８１】
本発明の実施形態においては、各手段をデータ収集サーバ２００において実行する構成として説明したが、各手段をデータ分析サーバ３００で実行するよう構成してもよい。
【００８２】
以上、本発明によれば、センサから取得したデータを効率的に取り出すことができる。
【００８３】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置の情報処理装置が前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【００８４】
したがって、本発明の機能処理を情報処理装置で実現するために、前記情報処理装置にインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００８５】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００８６】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００８７】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００８８】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理を情報処理装置で実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００８９】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行して情報処理装置にインストールさせて実現することも可能である。
【００９０】
また、情報処理装置が、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、情報処理装置上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００９１】
さらに、記録媒体から読み出されたプログラムが、情報処理装置に挿入された機能拡張ボードや情報処理装置に接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【００９２】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００９３】
１００  情報処理装置
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  ＲＯＭ
２０４  システムバス
２０５  入力コントローラ
２０６  ビデオコントローラ
２０７  メモリコントローラ
２０８  通信Ｉ／Ｆコントローラ
２０９  キーボード
２１０  ディスプレイ
２１１  外部メモリ
【図１】
2019101673.tif 000003
【図２】
2019101673.tif 000004
【図３】
2019101673.tif 000005
【図４】
2019101673.tif 000006
【図５】
2019101673.tif 000007
【図６】
2019101673.tif 000008
【図７】
2019101673.tif 000009
【図８】
2019101673.tif 000010