(57)【要約】【課題】複数のセンサ装置から受信されるセンサデータを適切に分類する。【解決手段】受信部１１は、センサ装置２１，２２それぞれから、当該センサ装置によって識別情報が付加されたセンサデータを受信する。データ処理部１２は、同一の識別情報が付加されたセンサデータの規則性を示す判定ルールを記憶する判定情報記憶部に記憶された当該判定ルールに基づいて、当該同一の識別情報を使用しているセンサ装置が２以上あるか判定し、判定の結果に応じて同一の識別情報が付加されたセンサデータを分類する。【選択図】図１
2014071495.tif 000002
【特許請求の範囲】
【請求項１】
情報処理システムが実行するデータ管理方法であって、
複数のセンサ装置それぞれから、当該センサ装置によって識別情報が付加されたセンサデータを受信し、
同一の識別情報が付加されたセンサデータの規則性を示す判定ルールを記憶する判定情報記憶部に記憶された当該判定ルールに基づいて、当該同一の識別情報を使用しているセンサ装置が２以上あるか判定し、
前記判定の結果に応じて、前記同一の識別情報が付加されたセンサデータを分類する、
データ管理方法。
【請求項２】
各センサデータにはタイムスタンプが含まれており、前記判定ルールは前記タイムスタンプの周期性を用いる、請求項１記載のデータ管理方法。
【請求項３】
各センサデータにはタイムスタンプが含まれており、前記判定ルールは前記タイムスタンプと前記情報処理システムでの受信時刻との差の規則性を用いる、請求項１記載のデータ管理方法。
【請求項４】
前記判定ルールは、各センサデータが送信されたときの送信元アドレスの変動特性を用いる、請求項１記載のデータ管理方法。
【請求項５】
センサデータの集合の抽出要求であって前記同一の識別情報を指定した抽出要求を受け付けた場合、前記分類によって得られた２以上のセンサデータの集合のうち、生成されたタイミングが最も古いセンサデータを含む集合を抽出する、請求項１記載のデータ管理方法。
【請求項６】
複数のセンサ装置それぞれから、当該センサ装置によって識別情報が付加されたセンサデータを受信する受信部と、
同一の識別情報が付加されたセンサデータの規則性を示す判定ルールを記憶する判定情報記憶部に記憶された当該判定ルールに基づいて、当該同一の識別情報を使用しているセンサ装置が２以上あるか判定し、前記判定の結果に応じて前記同一の識別情報が付加されたセンサデータを分類するデータ処理部と、
を有する情報処理装置。
【請求項７】
コンピュータに、
複数のセンサ装置それぞれから、当該センサ装置によって識別情報が付加されたセンサデータを受信し、
同一の識別情報が付加されたセンサデータの規則性を示す判定ルールを記憶する判定情報記憶部に記憶された当該判定ルールに基づいて、当該同一の識別情報を使用しているセンサ装置が２以上あるか判定し、
前記判定の結果に応じて、前記同一の識別情報が付加されたセンサデータを分類する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ管理方法、情報処理装置およびプログラムに関する。
【背景技術】
【０００２】
現在、複数のセンサ装置で生成されたセンサデータを収集して分析するセンサネットワークシステムが提案されている。センサデータは、各種センサによって検出された物理状態を示す。例えば、電源タップに搭載されたセンサ装置から消費電力を示すセンサデータを収集して監視し、消費電力の変動に応じて電源タップや当該電源タップに接続された電子機器を制御するシステムが考えられる。また、携帯端末装置に搭載されたセンサ装置から現在位置を示すセンサデータを収集して監視し、許可された範囲を超えて移動した携帯端末装置が検出されると当該携帯端末装置の使用を制限するシステムが考えられる。
【０００３】
なお、移動管理に関して、高速道路の入口で車両の車載器にＩＤ（Identification）を付与し、高速道路の途中や出口で車載器が発信するＩＤを監視してＩＤの重複や消失を検出することで、車載器の不正利用を検出するシステムが提案されている。また、ＩＤの重複に関して、複数のコンテンツ送出装置を制御する放送局システムであって、番組時刻表に同じイベントＩＤをもつ異なる番組情報が登録されているとき、イベントＩＤを一時的にリネームすることで正常に送出制御を行うシステムが提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−６７５８４号公報
【特許文献２】特開２００９−１８２６１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、複数のセンサ装置からセンサデータを収集するシステムでは、同一のセンサ装置が生成したセンサデータの集合を識別できるように、各センサ装置がセンサデータに一貫した識別情報を付与することが考えられる。各センサ装置が使用する識別情報は、そのセンサ装置に割り当てられた通信アドレスとは異なることが好ましい。通信アドレスとは異なる識別情報を使用することで、センサ装置の通信アドレスが変化することを許容することができ、ネットワーク設計の自由度を大きくすることができる。例えば、センサ装置がＤＨＣＰ（Dynamic Host Configuration Protocol）サーバから動的にＩＰ（Internet Protocol）アドレスを取得することや、センサ装置がネットワークアドレスの異なる複数のネットワークセグメントに跨がって移動することを許容できる。
【０００６】
しかし、各センサ装置が自主的に識別情報をセンサデータに付与する場合、２以上のセンサ装置が同一の識別情報を使用してしまうことが生じ得るという問題がある。例えば、異なるユーザによって偶然に同一の識別情報が異なるセンサ装置に設定されてしまう可能性がある。また、悪意によって（例えば、システムを混乱させるため）識別情報が重複するようにセンサ装置に設定された識別情報が改竄される可能性もある。収集されたセンサデータの中に、異なるセンサ装置によって生成されたにもかかわらず同一の識別情報が付与されたセンサデータが混在していると、センサデータの活用が容易でなくなる。
【０００７】
一側面では、本発明は、複数のセンサ装置から受信されるセンサデータを適切に分類するデータ管理方法、情報処理装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
一つの態様では、情報処理システムが実行するデータ管理方法が提供される。データ管理方法では、複数のセンサ装置それぞれから、当該センサ装置によって識別情報が付加されたセンサデータを受信する。同一の識別情報が付加されたセンサデータの規則性を示す判定ルールを記憶する判定情報記憶部に記憶された当該判定ルールに基づいて、当該同一の識別情報を使用しているセンサ装置が２以上あるか判定する。判定の結果に応じて、同一の識別情報が付加されたセンサデータを分類する。
【０００９】
また、一つの態様では、受信部とデータ処理部とを有する情報処理装置が提供される。受信部は、複数のセンサ装置それぞれから、当該センサ装置によって識別情報が付加されたセンサデータを受信する。データ処理部は、同一の識別情報が付加されたセンサデータの規則性を示す判定ルールを記憶する判定情報記憶部に記憶された当該判定ルールに基づいて、当該同一の識別情報を使用しているセンサ装置が２以上あるか判定し、判定の結果に応じて同一の識別情報が付加されたセンサデータを分類する。
【００１０】
また、一つの態様では、コンピュータに実行させるプログラムが提供される。プログラムを実行するコンピュータは、複数のセンサ装置それぞれから、当該センサ装置によって識別情報が付加されたセンサデータを受信する。同一の識別情報が付加されたセンサデータの規則性を示す判定ルールを記憶する判定情報記憶部に記憶された当該判定ルールに基づいて、当該同一の識別情報を使用しているセンサ装置が２以上あるか判定する。判定の結果に応じて、同一の識別情報が付加されたセンサデータを分類する。
【発明の効果】
【００１１】
一側面では、複数のセンサ装置から受信されるセンサデータを適切に分類できる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態の情報処理装置を示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】電源タップのハードウェア例を示すブロック図である。
【図４】データ管理サーバのハードウェア例を示すブロック図である。
【図５】電源タップおよびサーバの機能例を示すブロック図である。
【図６】センサデータテーブルの例を示す図である。
【図７】重複判定テーブルの例を示す図である。
【図８】データ登録の手順例を示すフローチャートである。
【図９】判定情報更新の手順例を示すフローチャートである。
【図１０】判定情報更新の手順例を示すフローチャート（続き）である。
【図１１】アドレス特徴統合の手順例を示すフローチャートである。
【図１２】重複判定テーブルの第１の更新結果例を示す図である。
【図１３】重複判定テーブルの第２の更新結果例を示す図である。
【図１４】データ抽出の手順例を示すフローチャートである。
【図１５】データ管理サーバの変形例を示すブロック図である。
【図１６】移動特性テーブルと解析結果テーブルの例を示す図である。
【図１７】抽出条件テーブルの例を示す図である。
【図１８】アクセス履歴テーブルの例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理装置を示す図である。第１の実施の形態の情報処理装置１０は、センサ装置２１，２２を含む複数のセンサ装置と通信する。
【００１４】
センサ装置２１，２２は、センサデバイスや通信インタフェースを備える。センサデバイスは、物理状態を検出するデバイスであり、例えば、電源タップの消費電力を検出する電力センサや携帯端末装置の現在位置を検出する位置センサなどである。センサ装置２１，２２は、検出された物理状態を示す値（例えば、数値）を含むセンサデータを生成し、ネットワークを介して情報処理装置１０に送信する。センサ装置２１，２２は、継続的に（例えば、定期的または不定期に）センサデータを送信する。センサ装置２１，２２が備える通信インタフェースは、有線インタフェースでも無線インタフェースでもよい。
【００１５】
センサ装置２１が送信する一連のセンサデータには、センサ装置２１が生成するセンサデータの集合を識別可能にするために、センサ装置２１によって一貫した識別情報が付加される。同様に、センサ装置２２が送信する一連のセンサデータには、センサ装置２２によって一貫した識別情報が付加される。センサ装置２１，２２を含む複数のセンサ装置が使用する識別情報は、互いに異なることが好ましい。しかし、複数のセンサ装置のうちの２以上のセンサ装置が同一の識別情報を使用する可能性がある。例えば、センサ装置２１，２２が共に識別情報＝ＩＤａを使用する可能性がある。
【００１６】
情報処理装置１０は、センサ装置２１，２２を含む複数のセンサ装置からセンサデータを収集して管理する。情報処理装置１０は、例えば、ネットワークに常時接続されたサーバコンピュータである。情報処理装置１０が収集するセンサデータは、情報処理装置１０または他の情報処理装置で実行されるアプリケーションソフトウェアから利用され得る。当該アプリケーションソフトウェアは、例えば、消費電力に応じて電源タップまたはその電源タップに接続された電子機器を制御するソフトウェアや、現在位置に応じて携帯端末装置を制御するソフトウェアなどである。なお、第１の実施の形態では、１つの情報処理装置（情報処理装置１０）を用いてセンサデータの収集および管理の機能を実現しているが、複数の情報処理装置の集合を用いて当該機能を実現してもよい。
【００１７】
情報処理装置１０は、受信部１１およびデータ処理部１２を有する。
受信部１１は、センサ装置２１，２２を含む複数のセンサ装置それぞれから、ネットワークを介して上記の識別情報が付加されたセンサデータを継続的に受信する。受信部１１は、例えば、有線ネットワークに接続される通信インタフェースである。
【００１８】
データ処理部１２は、受信部１１が受信したセンサデータを識別情報に基づいて分類する。データ処理部１２は、例えば、プロセッサを含む。「プロセッサ」は、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）でもよいし、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの電子回路を含んでもよい。また、「プロセッサ」は、複数のプロセッサの集合（マルチプロセッサ）であってもよい。プロセッサは、例えば、ＲＡＭ（Random Access Memory）などのメモリに記憶されたプログラムを実行する。
【００１９】
上記の通り、データ処理部１２は、センサデータを識別情報に応じて分類する。このとき、データ処理部１２は、同一の識別情報が付加されたセンサデータの集合の規則性を確認することで、当該同一の識別情報を使用しているセンサ装置が２以上存在するかを判定する。２以上のセンサ装置が同一の識別情報を使用していると判定した場合、データ処理部１２は、当該同一の識別情報が付与されたセンサデータを更に複数の集合に分類する。
【００２０】
センサデータの規則性として、例えば、センサデータに含まれるタイムスタンプの規則性が用いられる。同じセンサ装置は、規則的なタイミングでセンサデータを生成する可能性が高いためである。データ処理部１２は、例えば、同一の識別情報をもつセンサデータの集合の中に、毎時０分に生成されるセンサデータと毎時１５分に生成されるセンサデータとが含まれる場合、２つのセンサ装置が当該同一の識別情報を使用していると判定する。この場合、データ処理部１２は、当該同一の識別情報をもつセンサデータの集合を、毎時０分に生成されるセンサデータの集合と毎時１５分に生成されるセンサデータの集合とに分類する。また、データ処理部１２は、例えば、ある識別情報をもつセンサデータが１０分周期で生成されていた後に、その周期に適合しないタイミングで生成されたセンサデータを受信した場合は、同じ識別情報を使用する別のセンサ装置が現れたと判定する。
【００２１】
また、センサデータの規則性として、例えば、センサデータに含まれるタイムスタンプとそのセンサデータが情報処理装置１０で受信された時刻との差（遅延時間）の規則性が用いられる。センサデータが生成されてから情報処理装置１０に到達するまでの時間は、同じセンサ装置に関しては大きく変動しないことが多いためである。データ処理部１２は、例えば、ある識別情報をもつセンサデータを遅延時間１秒以内に受信していた後に、遅延時間が１秒を大きく超えるセンサデータを受信した場合、同じ識別情報を使用する別のセンサ装置が現れたと判定する。この場合、データ処理部１２は、当該同一の識別情報をもつセンサデータの集合を、遅延時間に応じて２つのセンサデータの集合に分類する。
【００２２】
また、センサデータの規則性として、例えば、センサデータの送信元のセンサ装置が使用するアドレスの変動特性が用いられる。アドレスが変化するか否かは、そのセンサ装置がどのような種類の装置に搭載されているかによって決まることが多く、途中で変わること少ないためである。データ処理部１２は、例えば、ある識別情報をもつセンサデータが同じ送信元アドレスのセンサ装置から継続的に送信されていた後に、異なる送信元アドレスのセンサ装置からセンサデータを受信した場合、同じ識別情報を使用する別のセンサ装置が現れたと判定する。この場合、データ処理部１２は、新たな送信元アドレスを用いて送信されたセンサデータの集合を、従来の送信元アドレスを用いて送信されたセンサデータの集合から分離することで、同一の識別情報をもつセンサデータの集合を分類する。
【００２３】
以上、センサデータの規則性として、タイムスタンプの規則性、受信時刻に関する規則性および送信元アドレスの規則性の例を挙げた。データ処理部１２は、以上説明したような複数の種類の規則性のうち何れか１つを用いてセンサデータを分類してもよいし、２以上の種類の規則性をＡＮＤ条件で用いてセンサデータを分類してもよい。
【００２４】
第１の実施の形態の情報処理装置１０によれば、センサ装置２１とセンサ装置２２とが同一の識別情報をセンサデータに付加している場合であっても、センサデータの規則性から、２以上のセンサ装置が同一の識別情報を使用していることが検出される。そして、規則性に基づいて、識別情報に基づいて抽出されたセンサデータの集合が、センサ装置２１が生成したセンサデータの集合とセンサ装置２２が生成したセンサデータの集合とに更に分類されることが期待される。これにより、情報処理装置１０によって収集されたセンサデータを活用することが容易となる。例えば、センサデータに含まれる値の集計や異常値の検出などのデータ処理をセンサ装置毎に行うアプリケーションソフトウェアに、適切に分類されたセンサデータの集合を提供することが容易となる。
【００２５】
なお、以下に説明する第２の実施の形態では、電源タップに搭載されたセンサ装置が消費電力を示すセンサデータを生成するセンサネットワークシステムの例を挙げる。
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムでは、消費電力を監視し消費電力の変化に応じて電子機器を制御するサービスが、クラウドコンピューティング技術を用いて提供される。
【００２６】
この情報処理システムは、ネットワーク３１，３２、電源タップ１００，１００ａを含む複数の電源タップ、データ管理サーバ２００およびアプリケーションサーバ３００を含む。ネットワーク３１はインターネットなどの広域ネットワークであり、ネットワーク３２はデータセンタ内のローカルネットワークである。電源タップ１００，１００ａは、ネットワーク３１に接続される。データ管理サーバ２００およびアプリケーションサーバ３００は、ネットワーク３２に接続される。電源タップ１００，１００ａからデータ管理サーバ２００に、ネットワーク３１，３２を介してアクセスすることができる。なお、データ管理サーバ２００は、第１の実施の形態の情報処理装置１０の一例である。
【００２７】
電源タップ１００，１００ａは、複数の電源ソケットを備え、それら電源ソケットに接続された複数のコンピュータなどの電子機器に電力を分配する。電源タップ１００，１００ａには、消費電力を測定して測定値を含むセンサデータを生成するセンサ装置が設けられている。電源タップ１００，１００ａは、それぞれ規則的なタイミングで、ネットワーク３１，３２を介してデータ管理サーバ２００に継続的にセンサデータを送信する。
【００２８】
ここで、電源タップ１００，１００ａに割り当てられるＩＰアドレスは、変化する可能性がある。例えば、電源タップ１００，１００ａには、ＤＨＣＰサーバ（図示せず）から動的にＩＰアドレスが割り当てられる。また、例えば、電源タップ１００，１００ａを配置する場所が変更されたとき、変更後の場所のネットワークセグメントで使用可能なＩＰアドレスが電源タップ１００，１００ａに割り当てられる。そこで、電源タップ１００，１００ａそれぞれのセンサ装置は、センサデータを送信するにあたり、ＩＰアドレスとは異なる識別情報であるセンサＩＤをセンサデータに付加する。同じセンサ装置から送信されるセンサデータには、原則として同じセンサＩＤが一貫して付加される。
【００２９】
データ管理サーバ２００は、センサデータを管理するサーバコンピュータである。データ管理サーバ２００は、ネットワーク３１，３２を介して電源タップ１００，１００ａから継続的にセンサデータを受信する。データ管理サーバ２００は、収集したセンサデータを、各電源タップについてのセンサデータを他の電源タップについてのセンサデータと区別できるように、センサＩＤに基づいて分類する。また、データ管理サーバ２００は、アプリケーションサーバ３００からの要求に応じて、センサデータの集合を提供する。
【００３０】
ここで、複数の電源タップのセンサ装置に設定されるセンサＩＤは、互いに異なることが好ましい。しかし、ユーザの間違いまたは悪意により、ある電源タップ（例えば、電源タップ１００ａ）のセンサ装置に、他の電源タップ（例えば、電源タップ１００）のセンサ装置が既に使用しているセンサＩＤを重複して設定してしまう可能性がある。そこで、データ管理サーバ２００は、同じセンサＩＤが付加されたセンサデータがもつ規則性を監視し、規則性に基づいて新たなセンサ装置が既存のセンサＩＤを重複して使用し始めたことを検出する。センサＩＤの重複が検出された場合、データ管理サーバ２００は、規則性に基づいて同じセンサＩＤが付加されたセンサデータを分類する。
【００３１】
アプリケーションサーバ３００は、センサデータを分析するアプリケーションソフトウェアを実行するサーバコンピュータである。アプリケーションサーバ３００は、データ管理サーバ２００から電源タップ毎にセンサデータの集合を取得し、消費電力の測定値が異常でないか確認する。例えば、ある電源タップの消費電力が閾値を超えた場合、アプリケーションサーバ３００は、その電源タップに接続された電子機器に、消費電力を抑制するよう指示し、または、代替の電源を利用するよう指示する。
【００３２】
図３は、電源タップのハードウェア例を示すブロック図である。電源タップ１００は、複数の電源ソケットを備え、外部の電源から供給された電力をこれら複数の電源ソケットに接続された電子機器に分配する。電源タップ１００が備えるセンサ装置は、センサデバイス１０１、演算部１０２、メモリ１０３および通信インタフェース１０４を有する。電源タップ１００ａも、電源タップ１００と同様のハードウェア構成によって実現できる。
【００３３】
センサデバイス１０１は、現在の消費電力を測定する電力センサである。センサデバイス１０１は、電源ソケット毎（すなわち、電源タップ１００に接続された電子機器毎）に消費電力を測定してもよいし、電源タップ１００全体の消費電力を測定してもよい。
【００３４】
演算部１０２は、センサデバイス１０１によって測定された消費電力の数値を含むセンサデータを、規則的なタイミング（例えば、１０分間隔）で継続的に生成する。センサデータには、電源タップ１００のセンサ装置に設定されたセンサＩＤが演算部１０２によって付加される。なお、演算部１０２は、プロセッサであってもよく、プログラムを実行するプロセッサとプログラムを格納する揮発性メモリを備えてもよい。
【００３５】
メモリ１０３は、センサＩＤを記憶する不揮発性メモリである。ユーザ操作を通じてメモリ１０３にセンサＩＤを書き込むことを許容してもよい。メモリ１０３に格納されたセンサＩＤが、演算部１０２によってセンサデータに付加される。
【００３６】
通信インタフェース１０４は、演算部１０２が生成したセンサデータを、ＩＰパケットとしてネットワーク３１を介してデータ管理サーバ２００に送信する。通信インタフェース１０４は、無線でネットワーク３１に接続する無線インタフェースでもよいし、ケーブルでネットワーク３１に接続する有線インタフェースでもよい。通信方法として電力線通信（ＰＬＣ：Power Line Communication）を利用する場合、外部の電源から電力を受け取る電力線に通信インタフェース１０４が接続される。通信インタフェース１０４が送信元アドレスとして使用するＩＰアドレスは変更することができる。
【００３７】
図４は、データ管理サーバのハードウェア例を示すブロック図である。データ管理サーバ２００は、ＣＰＵ２０１、ＲＡＭ２０２、ＨＤＤ（Hard Disk Drive）２０３、画像信号処理部２０４、入力信号処理部２０５、ディスクドライブ２０６および通信インタフェース２０７を有する。上記の各ユニットはバス２０８に接続される。アプリケーションサーバ３００も、データ管理サーバ２００と同様のハードウェア構成によって実現できる。
【００３８】
ＣＰＵ２０１は、プログラムの命令を実行する演算器を備えるプロセッサである。ＣＰＵ２０１は、ＨＤＤ２０３に記憶されているプログラムやデータの少なくとも一部をＲＡＭ２０２にロードし、プログラムを実行する。なお、ＣＰＵ２０１は複数のプロセッサコアを備えてもよく、データ管理サーバ２００は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列実行してもよい。また、２以上のプロセッサの集合を「プロセッサ」と呼んでもよい（マルチプロセッサ）。
【００３９】
ＲＡＭ２０２は、ＣＰＵ２０１が実行するプログラムや演算に用いられるデータを一時的に記憶する揮発性メモリである。なお、データ管理サーバ２００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数の揮発性メモリを備えてもよい。
【００４０】
ＨＤＤ２０３は、ＯＳ（Operating System）やファームウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、データ管理サーバ２００は、ＳＳＤ（Solid State Drive）などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【００４１】
画像信号処理部２０４は、ＣＰＵ２０１の命令に従って、データ管理サーバ２００に接続されたディスプレイ４１に画像を出力する。ディスプレイ４１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ、有機ＥＬ（Electro-Luminescence）ディスプレイ、プラズマディスプレイなどの各種のディスプレイを用いることができる。また、ディスプレイ４１がデータ管理サーバ２００の筐体と一体に形成されていてもよい。
【００４２】
入力信号処理部２０５は、データ管理サーバ２００に接続された入力デバイス４２から入力信号を取得し、ＣＰＵ２０１に通知する。入力デバイス４２としては、マウスやタッチパネルなどのポインティングデバイス、キーボードなどの各種の入力デバイスを用いることができる。データ管理サーバ２００に、複数の入力デバイスを接続してもよい。また、入力デバイス４２がデータ管理サーバ２００の筐体と一体に形成されていてもよい。
【００４３】
ディスクドライブ２０６は、記録媒体４３に記録されたプログラムやデータを読み取る駆動装置である。記録媒体４３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。ディスクドライブ２０６は、ＣＰＵ２０１からの命令に従って、記録媒体４３から読み取ったプログラムやデータをＲＡＭ２０２またはＨＤＤ２０３に格納する。
【００４４】
ただし、データ管理サーバ２００は、ディスクドライブ２０６を備えていなくてもよく、ユーザが操作する端末装置（例えば、クライアントコンピュータ）からアクセス可能である場合には、画像信号処理部２０４や入力信号処理部２０５を備えていなくてもよい。なお、ＣＰＵ２０１とＲＡＭ２０２の集合は第１の実施の形態のデータ処理部１２の一例であり、通信インタフェース２０７は第１の実施の形態の受信部１１の一例である。
【００４５】
図５は、電源タップおよびサーバの機能例を示すブロック図である。
電源タップ１００は、データ生成部１１０およびデータ送信部１２０を有する。演算部１０２が行う処理をソフトウェアによって制御する場合、データ生成部１１０およびデータ送信部１２０はソフトウェアのモジュールとして実現し得る。電源タップ１００ａも、電源タップ１００と同様のソフトウェア構成によって実現し得る。
【００４６】
データ生成部１１０は、ハードウェアタイマまたはソフトウェアタイマを用いて、センサデータを送信するタイミングを判定する。所定条件を満たすタイミング（例えば、毎時１０分・２０分・３０分・４０分・５０分）が到来すると、データ生成部１１０はセンサデータを生成する。センサデータは、センサデバイス１０１で測定された消費電力（電源タップ１００全体または電源タップ１００に接続された電子機器毎の消費電力）の数値、現在時刻を示すタイムスタンプおよびメモリ１０３に記憶されたセンサＩＤを含む。
【００４７】
データ送信部１２０は、データ生成部１１０によって生成されたセンサデータをデータ管理サーバ２００に送信するよう、通信インタフェース１０４に指示する。センサデータは、電源タップ１００のＩＰアドレスが送信元アドレスとして用いられ、データ管理サーバ２００のＩＰアドレスが宛先アドレスとして用いられて、パケット形式で送信される。
【００４８】
データ管理サーバ２００は、データ記憶部２１０、判定情報記憶部２２０、データ受信部２３０、重複判定部２４０、判定情報更新部２５０およびデータ提供部２６０を有する。データ記憶部２１０、判定情報記憶部２２０は、ＲＡＭ１０２またはＨＤＤ１０３に確保した記憶領域として実現し得る。データ受信部２３０、重複判定部２４０、判定情報更新部２５０およびデータ提供部２６０は、ソフトウェアのモジュールとして実現し得る。
【００４９】
データ記憶部２１０は、電源タップ１００，１００ａを含む複数の電源タップから収集したセンサデータを記憶する。データ記憶部２１０に格納されるセンサデータには、データ管理サーバ２００がセンサデータを分類するための管理情報が付加される。
【００５０】
判定情報記憶部２２０は、センサＩＤの重複を判定するための判定ルールを記憶する。判定ルールは、同じセンサ装置によって生成されるセンサデータの規則性を示す。判定情報記憶部２２０に記憶される判定ルールは、後述するように重複判定部２４０や判定情報更新部２５０によって自動的に作成され得るほか、ユーザ操作によって作成される可能性もある。判定ルールは、１つのセンサＩＤについて１つ以上作成される。あるセンサＩＤが１つのセンサ装置のみで使用されていると判定される間は、そのセンサＩＤに対して１つの判定ルールが作成される。既存のセンサＩＤを重複して使用する新たなセンサ装置が現れたと判定されると、そのセンサＩＤに対して新たな判定ルールが追加される。
【００５１】
データ受信部２３０は、電源タップ１００，１００ａを含む複数の電源タップからセンサデータを継続的に受信する。データ受信部２３０は、センサデータを受信すると、そのセンサデータの受信時刻と送信元アドレスを確認する。そして、データ受信部２３０は、受信時刻および送信元アドレスを付加したセンサデータを重複判定部２４０に渡す。
【００５２】
重複判定部２４０は、センサデータに含まれるセンサＩＤに対応する判定ルールを判定情報記憶部２２０から検索する。受信されたセンサデータの特徴が検索された何れかの判定ルールに適合する場合、重複判定部２４０は、センサＩＤの新たな重複使用は生じていないと判断し、適合した判定ルールを示すＩＤ（重複解決ＩＤ）をセンサデータに付加する。一方、受信されたセンサデータの特徴が検索された何れの判定ルールにも適合しない場合、重複判定部２４０は、センサＩＤの新たな重複使用が生じたと判断し、新たな判定ルールを仮に作成してその判定ルールの重複解決ＩＤをセンサデータに付加する。重複判定部２４０は、重複解決ＩＤを付加したセンサデータをデータ記憶部２１０に格納する。
【００５３】
判定情報更新部２５０は、判定情報記憶部２２０に記憶された判定ルールを整理する。判定情報更新部２５０は、例えば、バッチ処理を行うソフトウェアモジュールとして実装される。判定情報更新部２５０は、例えば、１日１回夜間など、データ管理サーバ２００の負荷が小さい時間帯に定期的に以下の処理を実行する。判定情報更新部２５０は、受信されたセンサデータのうち既存の判定ルールに適合しないと判定されたセンサデータの規則性を算出する。規則性には、タイムスタンプの周期性やタイムスタンプと受信時刻との差の類似性が含まれる。判定情報更新部２５０は、規則性をもつセンサデータの集合を特定できるように、重複判定部２４０によって仮に作成された判定ルールを統合する。
【００５４】
データ提供部２６０は、アプリケーションサーバ３００から抽出要求を受け付け、データ記憶部２１０からセンサデータの集合を抽出してアプリケーションサーバ３００に送信する。抽出要求では、センサＩＤが指定される。また、抽出要求では、センサＩＤに加えてセンサＩＤ以外の抽出条件が指定されることもある。データ提供部２６０は、センサＩＤまたはセンサＩＤと抽出条件の組に基づいて、センサデータの集合を抽出する。
【００５５】
アプリケーションサーバ３００は、データ分析部３１０を有する。データ分析部３１０は、ソフトウェアのモジュールとして実現し得る。データ分析部３１０は、予め設定されたタイミング条件またはユーザ操作に応じて、データ管理サーバ２００に抽出要求を送信しセンサデータの集合を取得する。上記のように、抽出要求にはセンサＩＤを含め、更にセンサＩＤ以外の抽出条件（例えば、送信元アドレスなど）を含めることもできる。データ分析部３１０は、取得したセンサデータに含まれる消費電力の数値を分析する。例えば、データ分析部３１０は、ある電源タップの消費電力が閾値を超えたことを検出すると、その電源タップまたはその電源タップに接続された電子機器に電力抑制命令を送信する。
【００５６】
図６は、センサデータテーブルの例を示す図である。センサデータテーブル２１１は、データ記憶部２１０に記憶されている。センサデータテーブル２１１は、タイムスタンプ、センサＩＤ、アドレス、測定値、受信時刻および重複解決ＩＤの項目を含む。
【００５７】
タイムスタンプの項目には、センサデータにタイムスタンプとして含まれる時刻が設定される。タイムスタンプは、そのセンサデータが生成された時刻と推定される。センサＩＤの項目には、センサデータに含まれるセンサＩＤが設定される。１つのセンサＩＤが異なる２以上のセンサ装置によって重複して使用されている可能性がある。アドレスの項目には、センサデータを送信するセンサ装置のＩＰアドレス（送信元ＩＰアドレス）が設定される。センサ装置が使用するＩＰアドレスは変化する可能性がある。
【００５８】
測定値の項目には、センサデータに含まれる消費電力を示す数値が設定される。受信時刻の項目には、データ受信部２３０がセンサデータを受信した時刻が設定される。重複解決ＩＤの項目には、センサデータが適合した判定ルールのＩＤが設定される。重複解決ＩＤは、センサＩＤとセンサＩＤ以外の文字列とを含む。重複解決ＩＤを参照することで、同じセンサＩＤを使用する２以上のセンサ装置のセンサデータを互いに区別できる。
【００５９】
図７は、重複判定テーブルの例を示す図である。重複判定テーブル２２１は、判定情報記憶部２２０に記憶されている。重複判定テーブル２２１は、センサＩＤ、重複解決ＩＤ、アドレス特徴、タイムスタンプ特徴、受信時刻特徴および開始時刻の項目を含む。
【００６０】
センサＩＤの項目には、判定ルールの適用対象となるセンサデータのセンサＩＤが設定される。重複解決ＩＤの項目には、判定ルールを識別するためのＩＤが設定される。重複解決ＩＤは、例えば、「ＩＤａ：：０」のように、センサＩＤ＋「：：」＋センサＩＤ内での項番と表記される。あるセンサＩＤについての項番＝０の判定ルールは、そのセンサＩＤについて最初に作成されたもの、すなわち、そのセンサＩＤを含むセンサデータが出現し始めた当初のセンサデータの規則性を示す判定ルールである。項番＝０以外の判定ルールが存在するセンサＩＤは、複数のセンサ装置により重複使用されている可能性がある。なお、項番＝０の判定ルールは、ユーザ操作によって作成されてもよい。
【００６１】
アドレス特徴の項目には、センサデータの送信元アドレスまたは送信元アドレスの範囲が設定される。送信元アドレスが変化しない場合は、１つのＩＰアドレスが設定される。送信元アドレスが過去に変化したと判定された場合は、複数のＩＰアドレスまたはＩＰアドレスの範囲が設定される。タイムスタンプ特徴の項目には、センサデータに含まれるタイムスタンプの周期が設定される。例えば、タイムスタンプ特徴が「１０分間隔」であることは、同じセンサ装置から受信される一のセンサデータとその次のセンサデータとの間のタイムスタンプの差が、約１０分になることを示している。
【００６２】
受信時刻特徴の項目には、センサデータに含まれるタイムスタンプと当該センサデータの受信時刻との差の範囲が設定される。例えば、受信時刻特徴が「１秒以内」であることは、センサ装置がセンサデータを生成してからそのセンサデータがデータ管理サーバ２００に到達するまでの遅延時間が一貫して１秒以内であることを示している。開始時刻の項目には、判定ルールに最初に該当したセンサデータのタイムスタンプ（または受信時刻）が設定される。なお、受信されたセンサデータに適合する判定ルールが存在しないために仮に生成された判定ルールは、タイムスタンプ特徴と受信時刻特徴が空欄となる。
【００６３】
図８は、データ登録の手順例を示すフローチャートである。図８に示す処理は、データ管理サーバ２００がセンサデータを受信する毎に実行される。
（ステップＳ１１）データ受信部２３０は、センサデータを受信する。
【００６４】
（ステップＳ１２）データ受信部２３０は、パケット通信に用いられた送信元アドレスと受信時刻を確認し、センサデータに送信元アドレスと受信時刻を付加する。
（ステップＳ１３）重複判定部２４０は、判定情報記憶部２２０に記憶された重複判定テーブル２２１から、受信されたセンサデータに含まれるセンサＩＤに対応する判定ルールを検索する。ここでは、１またはそれ以上の判定ルールが検索され得る。
【００６５】
（ステップＳ１４）重複判定部２４０は、検索された判定ルールを１つ選択する。
（ステップＳ１５）重複判定部２４０は、センサデータが選択した判定ルールのアドレス特徴に適合するか判断する。すなわち、重複判定部２４０は、センサデータに付加された送信元アドレスがアドレス特徴として記載されたアドレスのリストまたはアドレス範囲に含まれるか判断する。センサデータがアドレス特徴に適合する場合は処理をステップＳ１６に進め、アドレス特徴に適合しない場合は処理をステップＳ１９に進める。
【００６６】
（ステップＳ１６）重複判定部２４０は、センサデータが選択した判定ルールのタイムスタンプ特徴に適合するか判断する。タイムスタンプ特徴の判断は、例えば、以下のような手順で行う。重複判定部２４０は、センサデータに含まれるタイムスタンプと判定ルールの開始時刻との差（継続時間）を算出し、継続時間をタイムスタンプ特徴として記載された周期で割ったときの余りを算出する。重複判定部２４０は、余りが閾値（例えば、周期の１％）未満であればタイムスタンプ特徴に適合すると判断し、余りが閾値以上であればタイムスタンプ特徴に適合しないと判断する。ただし、重複判定部２４０は、選択した判定ルールに該当する前回受信されたセンサデータをデータ記憶部２１０から抽出し、タイムスタンプの差がタイムスタンプ特徴として記載された周期に合致するか判断してもよい。センサデータがタイムスタンプ特徴に適合する場合は処理をステップＳ１７に進め、タイムスタンプ特徴に適合しない場合は処理をステップＳ１９に進める。なお、タイムスタンプ特徴が空欄である場合は適合しないと判断する。
【００６７】
（ステップＳ１７）重複判定部２４０は、センサデータが選択した判定ルールの受信時刻特徴に適合するか判断する。すなわち、重複判定部２４０は、センサデータに含まれるタイムスタンプと受信時刻との差（遅延時間）を算出し、遅延時間が受信時刻特徴として記載された条件を具備するか判断する。受信時刻特徴が「不定」である場合は、受信時刻特徴に適合すると見なす。センサデータが受信時刻特徴に適合する場合は処理をステップＳ１８に進め、受信時刻特徴に適合しない場合は処理をステップＳ１９に進める。なお、受信時刻特徴が空欄である場合は適合しないと判断する。
【００６８】
（ステップＳ１８）重複判定部２４０は、受信されたセンサデータがステップＳ１４で選択した判定ルールに該当する、すなわち、センサＩＤの新たな重複使用は発生していないと判断する。重複判定部２４０は、選択した判定ルールの重複解決ＩＤを選択する。
【００６９】
（ステップＳ１９）重複判定部２４０は、検索された判定ルールの全てをステップＳ１４で選択したか判断する。全ての判定ルールを選択した場合は処理をステップＳ２０に進め、未選択の判定ルールがある場合は処理をステップＳ１４に進める。
【００７０】
（ステップＳ２０）重複判定部２４０は、受信されたセンサデータが何れの判定ルールにも該当しない、すなわち、センサＩＤの新たな重複使用が発生したと判断する。重複判定部２４０は、重複判定テーブル２２１に仮の判定ルールを登録する。仮の判定ルールのセンサＩＤは受信されたセンサデータのセンサＩＤであり、重複解決ＩＤは既存の重複解決ＩＤと異なるＩＤであり、開始時刻は受信されたセンサデータのタイムスタンプ（または受信時刻）である。また、仮の判定ルールのアドレス特徴は受信されたセンサデータの送信元アドレスであり、タイムスタンプ特徴と受信時刻特徴は空欄である。
【００７１】
（ステップＳ２１）重複判定部２４０は、ステップＳ２０で重複判定テーブル２２１に登録した判定ルールの重複解決ＩＤを選択する。
（ステップＳ２２）重複判定部２４０は、ステップＳ１８またはステップＳ２１で選択した重複解決ＩＤをセンサデータに付加する。そして、重複判定部２４０は、データ記憶部２１０に記憶されたセンサデータテーブル２１１にセンサデータを登録する。
【００７２】
なお、図８では、アドレス特徴・タイムスタンプ特徴・受信時刻特徴の３つをＡＮＤ条件として用いて、センサデータが判定ルールに該当するか判定している。しかし、上記３つの特徴の何れか１つのみを用いてもよく、何れか２つをＡＮＤ条件として用いてもよい。また、上記ステップＳ１５〜Ｓ１７の処理は任意の順序で実行してよい。
【００７３】
図９は、判定情報更新の手順例を示すフローチャートである。図９に示す処理は、例えば、データ管理サーバ２００の負荷が小さい時間帯にバッチ処理として実行される。
（ステップＳ３１）判定情報更新部２５０は、１つのセンサＩＤを選択し、選択したセンサＩＤについての判定ルールを、判定情報記憶部２２０に記憶された重複判定テーブル２２１から検索する。ここでは、複数の判定ルールが検索され得る。
【００７４】
（ステップＳ３２）判定情報更新部２５０は、アドレス特徴を１つ選択し、ステップＳ３１で検索された判定ルールの中から、そのアドレス特徴をもつ判定ルールを抽出する。
（ステップＳ３３）判定情報更新部２５０は、ステップＳ３２で抽出された判定ルールの中から、タイムスタンプ特徴が空欄である判定ルールを抽出する。
【００７５】
（ステップＳ３４）判定情報更新部２５０は、ステップＳ３３で抽出された判定ルールの何れかに該当するセンサデータ（何れかの重複解決ＩＤが付与されたセンサデータ）の集合を、データ記憶部２１０に記憶されたセンサデータテーブル２１１から検索する。
【００７６】
（ステップＳ３５）判定情報更新部２５０は、ステップＳ３４で検索されたセンサデータをタイムスタンプに従ってソートし、時刻に対する受信回数の分布を算出する。時刻については、タイムスタンプの誤差を考慮して丸め処理を行ってもよい。そして、判定情報更新部２５０は、時刻に対する受信回数の分布を離散フーリエ変換によりスペクトル解析する。これにより、周波数スペクトル（周波数成分の分布）を算出できる。
【００７７】
（ステップＳ３６）判定情報更新部２５０は、ステップＳ３５で算出された周波数スペクトルからレベルが閾値以上である周波数を検出する。レベルの閾値は、例えば、ステップＳ３４で検索されたセンサデータの総数の一定割合（３分の１など）とする。
【００７８】
（ステップＳ３７）判定情報更新部２５０は、ステップＳ３６でレベルが閾値以上の周波数が検出されたか判断する。レベルが閾値以上の周波数が検出された場合は処理をステップＳ３８に進め、検出されなかった場合は処理をステップＳ４７に進める。
【００７９】
（ステップＳ３８）判定情報更新部２５０は、ステップＳ３６で検出された周波数ｆの逆数＝１／ｆを、タイムスタンプの周期ωとして算出する。なお、上記のタイムスタンプの周期の算出方法は一例であり、これ以外の方法で周期を算出してもよい。
【００８０】
図１０は、判定情報更新の手順例を示すフローチャート（続き）である。
（ステップＳ４１）判定情報更新部２５０は、ステップＳ３４で検索されたセンサデータの中から、ステップＳ３８で算出した周期ωに該当するセンサデータを抽出する。例えば、ステップＳ３５で算出した時刻に対する受信回数の分布をｆ（ｔ）とすると、判定情報更新部２５０は、ｓｉｎ（ωｔ＋θ）とｆ（ｔ）との間の畳み込み積分の値が最大となるような位相θを求めることで、周期性をもつセンサデータの集合を特定する。
【００８１】
（ステップＳ４２）判定情報更新部２５０は、ステップＳ３３で抽出された判定ルールの中から、ステップＳ４１で抽出された各センサデータに付加されている重複解決ＩＤを含む判定ルールを抽出する。ここでは、複数の判定ルールが抽出され得る。
【００８２】
（ステップＳ４３）判定情報更新部２５０は、ステップＳ４２で抽出された判定ルールを統合する。すなわち、判定情報更新部２５０は、残す判定ルールとして開始時刻が最も古い判定ルールを選択し、選択した判定ルールのタイムスタンプ特徴としてステップＳ３８で算出した周期を登録する。そして、判定情報更新部２５０は、抽出された判定ルールのうち選択しなかった判定ルールを重複判定テーブル２２１から削除する。
【００８３】
（ステップＳ４４）判定情報更新部２５０は、ステップＳ４１で抽出されたセンサデータの重複解決ＩＤを、ステップＳ４３で選択した判定ルールの重複解決ＩＤに更新する。
（ステップＳ４５）判定情報更新部２５０は、ステップＳ４１で抽出されたセンサデータの受信時刻特徴を算出し、ステップＳ４３で選択した判定ルールの受信時刻特徴として登録する。例えば、判定情報更新部２５０は、タイムスタンプと受信時刻との差（遅延時間）の分布を算出し、遅延時間の分布が平均遅延時間から所定範囲に収まっているか判断する。判定情報更新部２５０は、所定範囲に収まっている場合は受信時刻特徴をその範囲とし、収まっていない場合は受信時刻特徴を「不定」とする。なお、上記の遅延時間の範囲の算出方法は一例であり、これ以外の方法で範囲を算出してもよい。
【００８４】
（ステップＳ４６）判定情報更新部２５０は、ステップＳ３３で抽出した判定ルールのうちステップＳ４３で統合されずに残った判定ルールがあるか判断する。残りの判定ルールがある場合は処理をステップＳ３５に進め、残りの判定ルールに該当するセンサデータをスペクトル解析する。残りの判定ルールがない場合は処理をステップＳ４７に進める。
【００８５】
（ステップＳ４７）判定情報更新部２５０は、ステップＳ３２で全てのアドレス特徴を選択したか判断する。全てのアドレス特徴を選択した場合は処理をステップＳ４８に進め、未選択のアドレス特徴がある場合は処理をステップＳ３２に進める。
【００８６】
（ステップＳ４８）判定情報更新部２５０は、ステップＳ３１で全てのセンサＩＤを選択したか判断する。全てのセンサＩＤを選択した場合は処理を終了し、未選択のセンサＩＤがある場合は処理をステップＳ３１に進める。
【００８７】
以上説明したように、既存の判定ルールに該当しないセンサデータが受信される毎に、仮の判定ルールが作成される。仮の判定ルールはタイムスタンプ特徴と受信時刻特徴が不明であるため、他のセンサデータが仮の判定ルールに該当するとは判断されない。このため、センサＩＤの重複使用が新たに検出されるとしばらくの間は仮の判定ルールが増加していく。その後、判定情報更新部２５０は、複数の仮の判定ルールを統合して、タイムスタンプ特徴と受信時刻特徴とが決定された判定ルールを生成する。
【００８８】
なお、上記説明では、判定情報更新部２５０は、タイムスタンプの周期性からセンサデータの集合を特定し、特定したセンサデータの集合について遅延時間の規則性を判定している。しかし、判定情報更新部２５０は、遅延時間の規則性からセンサデータの集合を特定し、特定したセンサデータの集合についてタイムスタンプの周期性を判定してもよい。
【００８９】
また、上記説明では、判定情報更新部２５０は、既存の判定ルールに該当しないセンサデータをまず送信元アドレスに基づいて分類し、送信元アドレスが同じセンサデータをタイムスタンプ特徴に基づいて分類している。ここで、タイムスタンプ特徴と受信時刻特徴が同じでありアドレス特徴が異なる２以上の判定ルールが生成された場合、同じセンサ装置のＩＰアドレスが変化している可能性がある。そこで、判定情報更新部２５０は、図９，１０の処理によって生成された判定ルールを更に統合してもよい。
【００９０】
図１１は、アドレス特徴統合の手順例を示すフローチャートである。
（ステップＳ５１）判定情報更新部２５０は、重複判定テーブル２２１から、センサＩＤとタイムスタンプ特徴と受信時刻特徴とが同じ２以上の判定ルールを検索する。
【００９１】
（ステップＳ５２）判定情報更新部２５０は、ステップＳ５１で検索された判定ルールに該当するセンサデータをセンサデータテーブル２１１から検索する。
（ステップＳ５３）判定情報更新部２５０は、ステップＳ５１で検索された判定ルールを統合する。すなわち、判定情報更新部２５０は、残す判定ルールとして開始時刻が最も古い判定ルールを選択し、選択しなかった判定ルールのアドレス特徴として記載されたＩＰアドレスを選択した判定ルールのアドレス特徴に追加する。そして、判定情報更新部２５０は、選択しなかった判定ルールを重複判定テーブル２２１から削除する。
【００９２】
（ステップＳ５４）判定情報更新部２５０は、ステップＳ５２で検索されたセンサデータの重複解決ＩＤを、ステップＳ５３で選択した判定ルールの重複解決ＩＤに更新する。
（ステップＳ５５）判定情報更新部２５０は、ステップＳ５１の条件を満たす判定ルールが残っているか判断する。条件を満たす判定ルールが残っている場合は処理をステップＳ５１に進め、残っていない場合は処理を終了する。
【００９３】
図１２は、重複判定テーブルの第１の更新結果例を示す図である。
センサＩＤ＝ＩＤａを含み重複解決ＩＤ＝ＩＤａ：：０の判定ルールに該当しないセンサデータが受信されると、重複判定部２４０は、重複解決ＩＤ＝ＩＤａ：：１の仮の判定ルールを作成し、そのセンサデータに重複解決ＩＤ＝ＩＤａ：：１を付与する。センサＩＤ＝ＩＤａを含み重複解決ＩＤ＝ＩＤａ：：０の判定ルールに該当しないセンサデータが更に受信されると、重複判定部２４０は、重複解決ＩＤ＝ＩＤａ：：２の仮の判定ルールを作成し、そのセンサデータに重複解決ＩＤ＝ＩＤａ：：２を付与する。
【００９４】
このようにして、センサＩＤ＝ＩＤａを含み重複解決ＩＤ＝ＩＤａ：：０の判定ルールに該当しないセンサデータが７回受信された場合、７つの仮の判定ルールが作成される。これら７つの仮の判定ルールのタイムスタンプ特徴は空欄である。図１２に示すように、ここでは、重複解決ＩＤ＝ＩＤａ：：６の判定ルールのアドレス特徴（送信元アドレス）はＡＤ４であり、他の６つの判定ルールのアドレス特徴はＡＤ２であるとする。
【００９５】
判定ルールを統合するとき、判定情報更新部２５０は、センサＩＤ＝ＩＤａ，アドレス特徴＝ＡＤ２，タイムスタンプ特徴＝空である６つの判定ルールを抽出する。すると、判定情報更新部２５０は、これら６つの判定ルールに該当する６回分のセンサデータを抽出し、抽出したセンサデータのタイムスタンプ特徴を算出する。図１２の例ではタイムスタンプ特徴＝５分間隔と算出される。これにより、６つの仮の判定ルールが重複解決ＩＤ＝ＩＤａ：：１の判定ルールに統一される。重複解決ＩＤ＝ＩＤａ：：６の判定ルールは他の判定ルールと統合されず、タイムスタンプ特徴が不明のままである。
【００９６】
図１３は、重複判定テーブルの第２の更新結果例を示す図である。ここでは、図１２に示すような処理の結果、アドレス特徴＝ＡＤ２，タイムスタンプ特徴＝５分間隔，受信時刻特徴＝不定という判定ルールと、アドレス特徴＝ＡＤ３，タイムスタンプ特徴＝５分間隔，受信時刻特徴＝不定という判定ルールが生成されたとする。すると、判定情報更新部２５０は、タイムスタンプ特徴と受信時刻特徴が同じ２つの判定ルールを統合し、統合後の判定ルールのアドレス特徴をＡＤ２，ＡＤ３とする。これは、統合後の判定ルールに該当するセンサデータが、ＩＰアドレスの変化するセンサ装置で生成されることを示す。
【００９７】
図１４は、データ抽出の手順例を示すフローチャートである。図１４に示す処理は、データ管理サーバ２００が抽出要求を受け付ける毎に実行される。
（ステップＳ６１）データ提供部２６０は、ネットワーク３２を介して、アプリケーションサーバ３００のデータ分析部３１０から抽出要求を受け付ける。抽出要求には、少なくともセンサＩＤが含まれている。抽出要求には、更にセンサＩＤ以外の抽出条件（例えば、送信元アドレスやタイムスタンプ周期など）が含まれることもある。
【００９８】
（ステップＳ６２）データ提供部２６０は、ステップＳ６１で受け付けた抽出要求に、センサＩＤ以外の抽出条件が含まれるか判断する。抽出条件が含まれる場合は処理をステップＳ６４に進め、含まれない場合は処理をステップＳ６３に進める。
【００９９】
（ステップＳ６３）データ提供部２６０は、重複判定テーブル２２１から、抽出要求に含まれるセンサＩＤに対応する判定ルールのうち開始時刻が最も古い判定ルール（項番＝０の判定ルール）を検索する。そして、処理をステップＳ６７に進める。
【０１００】
（ステップＳ６４）データ提供部２６０は、重複判定テーブル２２１から、抽出要求に含まれるセンサＩＤおよび抽出条件に対応する判定ルールを検索する。
（ステップＳ６５）データ提供部２６０は、ステップＳ６４で条件に合う判定ルールが見つかったか判断する。条件に合う判定ルールが見つかった場合は処理をステップＳ６７に進め、見つからなかった場合は処理をステップＳ６６に進める。
【０１０１】
（ステップＳ６６）データ提供部２６０は、重複判定テーブル２２１から、抽出要求に含まれるセンサＩＤに対応する判定ルールを全て検索する。
（ステップＳ６７）データ提供部２６０は、ステップＳ６３，Ｓ６４，Ｓ６６の何れかで検索された判定ルールの重複解決ＩＤを選択する。ステップＳ６６で複数の判定ルールが検索された場合は、複数の重複解決ＩＤが選択される。
【０１０２】
（ステップＳ６８）データ提供部２６０は、センサデータテーブル２１１から、ステップＳ６７で選択した重複解決ＩＤが付与されたセンサデータの集合を抽出し、抽出したセンサデータの集合をデータ分析部３１０に送信する。
【０１０３】
このように、アプリケーションサーバ３００は、センサＩＤのみを指定した場合、そのセンサＩＤを含むセンサデータが収集され始めた当初の規則性をもつセンサデータのみを取得する。すなわち、項番＝０の判定ルールに該当するセンサデータのみを取得する。後にセンサＩＤの重複使用を開始したセンサ装置のセンサデータを取得したい場合、アプリケーションサーバ３００は送信元アドレスなどの抽出条件を指定すればよい。
【０１０４】
次に、第２の実施の形態のデータ管理サーバの変形例を説明する。
変形例に係るデータ管理サーバ２００ａは、各センサＩＤに対応する送信元アドレスの集合を監視し、送信元アドレスの特性が変化した（例えば、それまで１つに固定されていた送信元アドレスが変化した）ことを検出すると、ユーザに警告する。また、データ管理サーバ２００ａは、アプリケーションサーバ３００が抽出要求で指定する抽出条件を、データ管理サーバ２００ａに定義された抽出条件のリストの中から選択できるようにする。また、データ管理サーバ２００ａは、アプリケーションサーバ３００で実行されるデータ分析ソフトウェア毎に、データ管理サーバ２００ａに最初にアクセスした時刻（アクセス開始時刻）を管理する。そして、データ管理サーバ２００ａは、アクセス開始時刻と判定ルールの開始時刻の関係から、提供するセンサデータの集合を制御する。
【０１０５】
図１５は、データ管理サーバの変形例を示すブロック図である。データ管理サーバ２００ａは、データ記憶部２１０、判定情報記憶部２２０、データ受信部２３０、重複判定部２４０、判定情報更新部２５０ａ、データ提供部２６０ａ、移動情報記憶部２７０、抽出条件記憶部２８０および履歴記憶部２９０を有する。判定情報更新部２５０ａおよびデータ提供部２６０ａは、データ管理サーバ２００の判定情報更新部２５０およびデータ提供部２６０に対応する。移動情報記憶部２７０、抽出条件記憶部２８０および履歴記憶部２９０は、ＲＡＭ１０２またはＨＤＤ１０３に確保した記憶領域として実現し得る。
【０１０６】
移動情報記憶部２７０は、各センサＩＤに対応する送信元アドレスの集合の特性（移動特性）を示す移動情報を記憶する。移動特性としては、送信元アドレスが変化しない、送信元アドレスが１つのネットワークセグメント内で変化する、送信元アドレスが複数のネットワークセグメントに跨がって変換するという３種類が挙げられる。移動情報記憶部２７０に記憶される移動情報は、判定情報更新部２５０ａによって作成される。
【０１０７】
抽出条件記憶部２８０は、アプリケーションサーバ３００が抽出要求で指定することができる抽出条件のリストを記憶する。この抽出条件のリストを利用する場合、アプリケーションサーバ３００は、指定する抽出条件の識別名を抽出要求に挿入すればよい。抽出条件記憶部２８０に記憶される抽出条件のリストは、ユーザ操作によって作成される。
【０１０８】
履歴記憶部２９０は、アプリケーションサーバ３００で実行されるデータ分析ソフトウェアとセンサＩＤの組毎に、そのセンサＩＤを指定した抽出要求を最初に受け付けた時刻（アクセス開始時刻）を示す履歴情報を記憶する。履歴記憶部２９０に記憶される履歴情報は、データ提供部２６０ａによって作成される。
【０１０９】
判定情報更新部２５０ａは、重複判定テーブル２２１に登録された判定ルールを統合した後、センサＩＤ毎にアドレス特徴として記載された送信元アドレスの集合を算出する。そして、判定情報更新部２５０ａは、移動情報記憶部２７０に記憶された移動情報を参照して、判定ルールの統合を前回行ったときから移動特性が変化したセンサＩＤがあるか判定する。移動特性が変化したセンサＩＤが検出された場合、判定情報更新部２５０ａは、その旨をユーザ（データ管理サーバ２００ａの管理者でもよい）に警告する。
【０１１０】
警告を受けたユーザは、センサ装置の使用状態を確認し、重複判定テーブル２２１を適宜編集する。例えば、センサ装置の使用方法の変更に起因して送信元アドレスが変化することになった場合、ユーザは、判定ルールのアドレス特徴を固定のＩＰアドレスからアドレス範囲に書き換える。また、例えば、センサ装置の使用方法を変更しておらずセンサＩＤの重複使用が発生したと考えられる場合、ユーザは、そのセンサＩＤについては送信元アドレスの異なる２以上の判定ルールを統合せずに分離しておく。なお、判定情報更新部２５０ａは、移動特性の変化が最初に検出されてから一定期間（例えば３日間）は、学習期間としてユーザに対して警告しないようにしてもよい。学習期間経過後も移動特性の変化が継続している場合に、判定情報更新部２５０ａはユーザに警告する。
【０１１１】
データ提供部２６０ａは、センサＩＤと抽出条件の識別名とを含む抽出要求をアプリケーションサーバ３００から受け付けることを許容する。この場合、データ提供部２６０ａは、抽出条件記憶部２８０に記憶された抽出条件のリストから指定された識別名に対応する抽出条件を選択し、センサＩＤと抽出条件に従ってセンサデータの集合を抽出する。
【０１１２】
また、データ提供部２６０ａは、センサＩＤを含み抽出条件（または、抽出条件の識別名）を含まない抽出要求をアプリケーションサーバ３００から受け付けることを許容する。この場合、データ提供部２６０ａは、抽出要求を発行したデータ分析ソフトウェアを確認し、データ分析ソフトウェアとセンサＩＤの組に対応するアクセス開始時刻を、履歴記憶部２９０に記憶された履歴情報から検索する。そして、データ提供部２６０ａは、アクセス開始時刻と各判定ルールの開始時刻との関係から、センサデータの抽出を制御する。
【０１１３】
例えば、データ提供部２６０ａは、指定されたセンサＩＤについて、開始時刻がアクセス開始時刻より古い判定ルールが１つしか存在しない（項番＝０の判定ルールのみである）場合、その判定ルールに該当するセンサデータのみを抽出する。かかる条件を満たす場合、抽出要求を発行したデータ分析ソフトウェアの意図するセンサデータの集合が明確であるためである。一方、データ提供部２６０ａは、開始時刻がアクセス開始時刻より古い判定ルールが２以上存在する場合、エラーをデータ分析ソフトウェアに通知する。かかる条件を満たす場合、データ分析ソフトウェアの意図するセンサデータの集合が、２以上の判定ルールの何れに該当するセンサデータの集合であるか明確でないためである。
【０１１４】
図１６は、移動特性テーブルと解析結果テーブルの例を示す図である。
移動特性テーブル２７１は、移動情報記憶部２７０に記憶されている。移動特性テーブル２７１は、移動特性名、移動特性およびパラメータ名の項目を含む。移動特性名の項目には、移動特性の識別名が登録される。移動特性の項目には、移動特性の内容が記載される。移動特性には、アドレスが１つに固定（特性１＝移動なし）、アドレスが１つのネットワークセグメント内で変化（特性２＝セグメント内で移動）、アドレスが複数のネットワークセグメントに跨がって変化（特性３＝移動範囲が不定）の３つがある。パラメータ名の項目には、各特性に対して設定すべきパラメータが登録される。特性１のパラメータは１つのアドレスであり、特性２，３のパラメータは２以上のアドレスである。
【０１１５】
解析結果テーブル２７２は、移動情報記憶部２７０に記憶されている。解析結果テーブル２７２は、センサＩＤ、解析時刻および解析結果の項目を含む。解析時刻の項目には、判定情報更新部２５０ａが重複判定テーブル２２１を解析した時刻が登録される。解析結果の項目には、各センサＩＤの移動特性とパラメータとが登録される。
【０１１６】
例えば、あるセンサＩＤに対応する送信元アドレスがＡＤ１のみである場合、移動特性＝特性１，パラメータ＝ＡＤ１となる。また、例えば、送信元アドレスがＡＤ１，ＡＤ２であり２つの送信元アドレスが同じネットワークセグメントのアドレスである場合、移動特性＝特性２，パラメータ＝ＡＤ１，ＡＤ２となる。また、例えば、送信元アドレスがＡＤ１，ＡＤ２であり２つの送信元アドレスが異なるネットワークセグメントのアドレスである場合、移動特性＝特性３，パラメータ＝ＡＤ１，ＡＤ２となる。
【０１１７】
このように、判定情報更新部２５０ａは、センサＩＤ毎にそのセンサＩＤを含むセンサデータの送信に用いられたアドレスを抽出して解析結果テーブル２７２に登録する。そして、判定情報更新部２５０ａは、前回の解析結果と今回の解析結果とを比較することで、移動特性が変化したセンサＩＤを検出することができる。なお、移動特性の変化には、特性１から特性２、特性２から特性３、特性１から特性３の３通りの変化がある。
【０１１８】
図１７は、抽出条件テーブルの例を示す図である。抽出条件テーブル２８１は、抽出条件記憶部２８０に記憶されている。抽出条件テーブル２８１は、条件名および条件の項目を含む。条件名の項目には、抽出条件の識別名が登録される。条件の項目には、抽出条件の内容が記載される。図１７の例では、３つの抽出条件が登録されている。
【０１１９】
条件１（最初に登録されたアドレス）は、抽出するセンサデータを、最初のセンサデータと同じ送信元アドレスを用いて送信されたものに限定する抽出条件である。条件１が指定されると、データ提供部２６０ａは、項番＝０の判定ルールに該当するセンサデータを検索する。条件２（登録から所定期間以上経過したアドレス）は、抽出するセンサデータを、重複判定テーブル２２１に登録されてから所定期間以上経過した送信元アドレスを用いて送信されたものに限定する抽出条件である。条件２が指定されると、データ提供部２６０ａは、開始時刻と現在時刻との差が閾値（例えば、３ヶ月）以上である判定ルールに該当するセンサデータを検索する。条件３（全てのアドレス）は、センサＩＤ以外の抽出条件を指定しないことを示す。条件３が指定されると、データ提供部２６０ａは、センサＩＤに対応する全ての判定ルールを使用してセンサデータを検索する。
【０１２０】
図１８は、アクセス履歴テーブルの例を示す図である。アクセス履歴テーブル２９１は、履歴記憶部２９０に記憶されている。アクセス履歴テーブル２９１は、アプリケーション名、センサＩＤおよびアクセス開始時刻の項目を含む。アプリケーション名の項目には、データ分析ソフトウェアの名称が登録される。アプリケーション名は、抽出要求に含まれ得る。センサＩＤの項目には、データ分析ソフトウェアから指定されたことのあるセンサＩＤが登録される。アクセス開始時刻の項目には、データ分析ソフトウェアとセンサＩＤの組に対して、そのデータ分析ソフトウェアからそのセンサＩＤを含む抽出要求をデータ管理サーバ２００が最初に受け付けた時刻が登録される。
【０１２１】
ここで、図１８の例では、ソフトウェアαは、重複解決ＩＤ＝ＩＤａ：：０の判定ルール（判定ルール０）が登録された後、重複解決ＩＤ＝ＩＤａ：：１の判定ルール（判定ルール１）が登録される前に、データ分析を開始している。また、ソフトウェアβは、判定ルール１が登録された後にデータ分析を開始している。この場合、ソフトウェアαは判定ルール０に該当するセンサデータを分析するものと推定され、判定ルール０に該当するセンサデータがソフトウェアαに提供される。一方、ソフトウェアβは、判定ルール０と判定ルール１の何れに該当するセンサデータを分析するものであるか不明なため、センサＩＤのみではセンサデータを絞り込めない。ソフトウェアβは、センサＩＤ以外の抽出条件を指定することでセンサデータを絞り込むことになる。
【０１２２】
第２の実施の形態の情報処理システムによれば、電源タップ１００ａのセンサ装置が電源タップ１００のセンサ装置と同一のセンサＩＤを重複して使用し始めても、センサデータの規則性から、センサＩＤの重複使用が発生したことを検出することができる。そして、センサデータの規則性に基づいて、電源タップ１００のセンサデータと電源タップ１００ａのセンサデータとを区別することができる。よって、収集されたセンサデータを用いて電源タップ１００，１００ａそれぞれの消費電力を監視することが容易となる。
【０１２３】
また、電源タップ１００，１００ａのセンサ装置に割り当てられるＩＰアドレスが変化する場合でも、タイムスタンプ特徴などからセンサデータを適切に分類し得る。よって、センサ装置のＩＰアドレスを固定する場合と比べてネットワーク設計の自由度が大きくなる。また、各センサ装置に設定されたセンサＩＤを改竄できないようにする（例えば、センサＩＤを暗号化して変更不可にする）場合と比べて、各センサ装置の回路が複雑になるのを抑制でき、また、データ管理サーバ２００，２００ａの負荷を抑制できる。
【０１２４】
なお、前述のように、第１の実施の形態の機能は、情報処理装置１０にプログラムを実行させることで実現できる。また、第２の実施の形態の機能は、データ管理サーバ２００，２００ａやアプリケーションサーバ３００にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体（例えば、記録媒体４３）に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、ＦＤおよびＨＤＤが含まれる。光ディスクには、ＣＤ、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）、ＤＶＤおよびＤＶＤ−Ｒ／ＲＷが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体からＨＤＤなどの他の記録媒体にプログラムを複製してから（インストールしてから）実行してもよい。
【符号の説明】
【０１２５】
１０  情報処理装置
１１  受信部
１２  データ処理部
２１，２２  センサ装置
【図１】
2014071495.tif 000003
【図２】
2014071495.tif 000004
【図３】
2014071495.tif 000005
【図４】
2014071495.tif 000006
【図５】
2014071495.tif 000007
【図６】
2014071495.tif 000008
【図７】
2014071495.tif 000009
【図８】
2014071495.tif 000010
【図９】
2014071495.tif 000011
【図１０】
2014071495.tif 000012
【図１１】
2014071495.tif 000013
【図１２】
2014071495.tif 000014
【図１３】
2014071495.tif 000015
【図１４】
2014071495.tif 000016
【図１５】
2014071495.tif 000017
【図１６】
2014071495.tif 000018
【図１７】
2014071495.tif 000019
【図１８】
2014071495.tif 000020