以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理装置を示す図である。第1の実施の形態の情報処理装置10は、センサ装置21,22を含む複数のセンサ装置と通信する。
センサ装置21,22は、センサデバイスや通信インタフェースを備える。センサデバイスは、物理状態を検出するデバイスであり、例えば、電源タップの消費電力を検出する電力センサや携帯端末装置の現在位置を検出する位置センサなどである。センサ装置21,22は、検出された物理状態を示す値(例えば、数値)を含むセンサデータを生成し、ネットワークを介して情報処理装置10に送信する。センサ装置21,22は、継続的に(例えば、定期的または不定期に)センサデータを送信する。センサ装置21,22が備える通信インタフェースは、有線インタフェースでも無線インタフェースでもよい。
センサ装置21が送信する一連のセンサデータには、センサ装置21が生成するセンサデータの集合を識別可能にするために、センサ装置21によって一貫した識別情報が付加される。同様に、センサ装置22が送信する一連のセンサデータには、センサ装置22によって一貫した識別情報が付加される。センサ装置21,22を含む複数のセンサ装置が使用する識別情報は、互いに異なることが好ましい。しかし、複数のセンサ装置のうちの2以上のセンサ装置が同一の識別情報を使用する可能性がある。例えば、センサ装置21,22が共に識別情報=IDaを使用する可能性がある。
情報処理装置10は、センサ装置21,22を含む複数のセンサ装置からセンサデータを収集して管理する。情報処理装置10は、例えば、ネットワークに常時接続されたサーバコンピュータである。情報処理装置10が収集するセンサデータは、情報処理装置10または他の情報処理装置で実行されるアプリケーションソフトウェアから利用され得る。当該アプリケーションソフトウェアは、例えば、消費電力に応じて電源タップまたはその電源タップに接続された電子機器を制御するソフトウェアや、現在位置に応じて携帯端末装置を制御するソフトウェアなどである。なお、第1の実施の形態では、1つの情報処理装置(情報処理装置10)を用いてセンサデータの収集および管理の機能を実現しているが、複数の情報処理装置の集合を用いて当該機能を実現してもよい。
情報処理装置10は、受信部11およびデータ処理部12を有する。
受信部11は、センサ装置21,22を含む複数のセンサ装置それぞれから、ネットワークを介して上記の識別情報が付加されたセンサデータを継続的に受信する。受信部11は、例えば、有線ネットワークに接続される通信インタフェースである。
データ処理部12は、受信部11が受信したセンサデータを識別情報に基づいて分類する。データ処理部12は、例えば、プロセッサを含む。「プロセッサ」は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)でもよいし、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。また、「プロセッサ」は、複数のプロセッサの集合(マルチプロセッサ)であってもよい。プロセッサは、例えば、RAM(Random Access Memory)などのメモリに記憶されたプログラムを実行する。
上記の通り、データ処理部12は、センサデータを識別情報に応じて分類する。このとき、データ処理部12は、同一の識別情報が付加されたセンサデータの集合の規則性を確認することで、当該同一の識別情報を使用しているセンサ装置が2以上存在するかを判定する。2以上のセンサ装置が同一の識別情報を使用していると判定した場合、データ処理部12は、当該同一の識別情報が付与されたセンサデータを更に複数の集合に分類する。
センサデータの規則性として、例えば、センサデータに含まれるタイムスタンプの規則性が用いられる。同じセンサ装置は、規則的なタイミングでセンサデータを生成する可能性が高いためである。データ処理部12は、例えば、同一の識別情報をもつセンサデータの集合の中に、毎時0分に生成されるセンサデータと毎時15分に生成されるセンサデータとが含まれる場合、2つのセンサ装置が当該同一の識別情報を使用していると判定する。この場合、データ処理部12は、当該同一の識別情報をもつセンサデータの集合を、毎時0分に生成されるセンサデータの集合と毎時15分に生成されるセンサデータの集合とに分類する。また、データ処理部12は、例えば、ある識別情報をもつセンサデータが10分周期で生成されていた後に、その周期に適合しないタイミングで生成されたセンサデータを受信した場合は、同じ識別情報を使用する別のセンサ装置が現れたと判定する。
また、センサデータの規則性として、例えば、センサデータに含まれるタイムスタンプとそのセンサデータが情報処理装置10で受信された時刻との差(遅延時間)の規則性が用いられる。センサデータが生成されてから情報処理装置10に到達するまでの時間は、同じセンサ装置に関しては大きく変動しないことが多いためである。データ処理部12は、例えば、ある識別情報をもつセンサデータを遅延時間1秒以内に受信していた後に、遅延時間が1秒を大きく超えるセンサデータを受信した場合、同じ識別情報を使用する別のセンサ装置が現れたと判定する。この場合、データ処理部12は、当該同一の識別情報をもつセンサデータの集合を、遅延時間に応じて2つのセンサデータの集合に分類する。
また、センサデータの規則性として、例えば、センサデータの送信元のセンサ装置が使用するアドレスの変動特性が用いられる。アドレスが変化するか否かは、そのセンサ装置がどのような種類の装置に搭載されているかによって決まることが多く、途中で変わること少ないためである。データ処理部12は、例えば、ある識別情報をもつセンサデータが同じ送信元アドレスのセンサ装置から継続的に送信されていた後に、異なる送信元アドレスのセンサ装置からセンサデータを受信した場合、同じ識別情報を使用する別のセンサ装置が現れたと判定する。この場合、データ処理部12は、新たな送信元アドレスを用いて送信されたセンサデータの集合を、従来の送信元アドレスを用いて送信されたセンサデータの集合から分離することで、同一の識別情報をもつセンサデータの集合を分類する。
以上、センサデータの規則性として、タイムスタンプの規則性、受信時刻に関する規則性および送信元アドレスの規則性の例を挙げた。データ処理部12は、以上説明したような複数の種類の規則性のうち何れか1つを用いてセンサデータを分類してもよいし、2以上の種類の規則性をAND条件で用いてセンサデータを分類してもよい。
第1の実施の形態の情報処理装置10によれば、センサ装置21とセンサ装置22とが同一の識別情報をセンサデータに付加している場合であっても、センサデータの規則性から、2以上のセンサ装置が同一の識別情報を使用していることが検出される。そして、規則性に基づいて、識別情報に基づいて抽出されたセンサデータの集合が、センサ装置21が生成したセンサデータの集合とセンサ装置22が生成したセンサデータの集合とに更に分類されることが期待される。これにより、情報処理装置10によって収集されたセンサデータを活用することが容易となる。例えば、センサデータに含まれる値の集計や異常値の検出などのデータ処理をセンサ装置毎に行うアプリケーションソフトウェアに、適切に分類されたセンサデータの集合を提供することが容易となる。
なお、以下に説明する第2の実施の形態では、電源タップに搭載されたセンサ装置が消費電力を示すセンサデータを生成するセンサネットワークシステムの例を挙げる。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムでは、消費電力を監視し消費電力の変化に応じて電子機器を制御するサービスが、クラウドコンピューティング技術を用いて提供される。
この情報処理システムは、ネットワーク31,32、電源タップ100,100aを含む複数の電源タップ、データ管理サーバ200およびアプリケーションサーバ300を含む。ネットワーク31はインターネットなどの広域ネットワークであり、ネットワーク32はデータセンタ内のローカルネットワークである。電源タップ100,100aは、ネットワーク31に接続される。データ管理サーバ200およびアプリケーションサーバ300は、ネットワーク32に接続される。電源タップ100,100aからデータ管理サーバ200に、ネットワーク31,32を介してアクセスすることができる。なお、データ管理サーバ200は、第1の実施の形態の情報処理装置10の一例である。
電源タップ100,100aは、複数の電源ソケットを備え、それら電源ソケットに接続された複数のコンピュータなどの電子機器に電力を分配する。電源タップ100,100aには、消費電力を測定して測定値を含むセンサデータを生成するセンサ装置が設けられている。電源タップ100,100aは、それぞれ規則的なタイミングで、ネットワーク31,32を介してデータ管理サーバ200に継続的にセンサデータを送信する。
ここで、電源タップ100,100aに割り当てられるIPアドレスは、変化する可能性がある。例えば、電源タップ100,100aには、DHCPサーバ(図示せず)から動的にIPアドレスが割り当てられる。また、例えば、電源タップ100,100aを配置する場所が変更されたとき、変更後の場所のネットワークセグメントで使用可能なIPアドレスが電源タップ100,100aに割り当てられる。そこで、電源タップ100,100aそれぞれのセンサ装置は、センサデータを送信するにあたり、IPアドレスとは異なる識別情報であるセンサIDをセンサデータに付加する。同じセンサ装置から送信されるセンサデータには、原則として同じセンサIDが一貫して付加される。
データ管理サーバ200は、センサデータを管理するサーバコンピュータである。データ管理サーバ200は、ネットワーク31,32を介して電源タップ100,100aから継続的にセンサデータを受信する。データ管理サーバ200は、収集したセンサデータを、各電源タップについてのセンサデータを他の電源タップについてのセンサデータと区別できるように、センサIDに基づいて分類する。また、データ管理サーバ200は、アプリケーションサーバ300からの要求に応じて、センサデータの集合を提供する。
ここで、複数の電源タップのセンサ装置に設定されるセンサIDは、互いに異なることが好ましい。しかし、ユーザの間違いまたは悪意により、ある電源タップ(例えば、電源タップ100a)のセンサ装置に、他の電源タップ(例えば、電源タップ100)のセンサ装置が既に使用しているセンサIDを重複して設定してしまう可能性がある。そこで、データ管理サーバ200は、同じセンサIDが付加されたセンサデータがもつ規則性を監視し、規則性に基づいて新たなセンサ装置が既存のセンサIDを重複して使用し始めたことを検出する。センサIDの重複が検出された場合、データ管理サーバ200は、規則性に基づいて同じセンサIDが付加されたセンサデータを分類する。
アプリケーションサーバ300は、センサデータを分析するアプリケーションソフトウェアを実行するサーバコンピュータである。アプリケーションサーバ300は、データ管理サーバ200から電源タップ毎にセンサデータの集合を取得し、消費電力の測定値が異常でないか確認する。例えば、ある電源タップの消費電力が閾値を超えた場合、アプリケーションサーバ300は、その電源タップに接続された電子機器に、消費電力を抑制するよう指示し、または、代替の電源を利用するよう指示する。
図3は、電源タップのハードウェア例を示すブロック図である。電源タップ100は、複数の電源ソケットを備え、外部の電源から供給された電力をこれら複数の電源ソケットに接続された電子機器に分配する。電源タップ100が備えるセンサ装置は、センサデバイス101、演算部102、メモリ103および通信インタフェース104を有する。電源タップ100aも、電源タップ100と同様のハードウェア構成によって実現できる。
センサデバイス101は、現在の消費電力を測定する電力センサである。センサデバイス101は、電源ソケット毎(すなわち、電源タップ100に接続された電子機器毎)に消費電力を測定してもよいし、電源タップ100全体の消費電力を測定してもよい。
演算部102は、センサデバイス101によって測定された消費電力の数値を含むセンサデータを、規則的なタイミング(例えば、10分間隔)で継続的に生成する。センサデータには、電源タップ100のセンサ装置に設定されたセンサIDが演算部102によって付加される。なお、演算部102は、プロセッサであってもよく、プログラムを実行するプロセッサとプログラムを格納する揮発性メモリを備えてもよい。
メモリ103は、センサIDを記憶する不揮発性メモリである。ユーザ操作を通じてメモリ103にセンサIDを書き込むことを許容してもよい。メモリ103に格納されたセンサIDが、演算部102によってセンサデータに付加される。
通信インタフェース104は、演算部102が生成したセンサデータを、IPパケットとしてネットワーク31を介してデータ管理サーバ200に送信する。通信インタフェース104は、無線でネットワーク31に接続する無線インタフェースでもよいし、ケーブルでネットワーク31に接続する有線インタフェースでもよい。通信方法として電力線通信(PLC:Power Line Communication)を利用する場合、外部の電源から電力を受け取る電力線に通信インタフェース104が接続される。通信インタフェース104が送信元アドレスとして使用するIPアドレスは変更することができる。
図4は、データ管理サーバのハードウェア例を示すブロック図である。データ管理サーバ200は、CPU201、RAM202、HDD(Hard Disk Drive)203、画像信号処理部204、入力信号処理部205、ディスクドライブ206および通信インタフェース207を有する。上記の各ユニットはバス208に接続される。アプリケーションサーバ300も、データ管理サーバ200と同様のハードウェア構成によって実現できる。
CPU201は、プログラムの命令を実行する演算器を備えるプロセッサである。CPU201は、HDD203に記憶されているプログラムやデータの少なくとも一部をRAM202にロードし、プログラムを実行する。なお、CPU201は複数のプロセッサコアを備えてもよく、データ管理サーバ200は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列実行してもよい。また、2以上のプロセッサの集合を「プロセッサ」と呼んでもよい(マルチプロセッサ)。
RAM202は、CPU201が実行するプログラムや演算に用いられるデータを一時的に記憶する揮発性メモリである。なお、データ管理サーバ200は、RAM以外の種類のメモリを備えてもよく、複数の揮発性メモリを備えてもよい。
HDD203は、OS(Operating System)やファームウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、データ管理サーバ200は、SSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部204は、CPU201の命令に従って、データ管理サーバ200に接続されたディスプレイ41に画像を出力する。ディスプレイ41としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ、プラズマディスプレイなどの各種のディスプレイを用いることができる。また、ディスプレイ41がデータ管理サーバ200の筐体と一体に形成されていてもよい。
入力信号処理部205は、データ管理サーバ200に接続された入力デバイス42から入力信号を取得し、CPU201に通知する。入力デバイス42としては、マウスやタッチパネルなどのポインティングデバイス、キーボードなどの各種の入力デバイスを用いることができる。データ管理サーバ200に、複数の入力デバイスを接続してもよい。また、入力デバイス42がデータ管理サーバ200の筐体と一体に形成されていてもよい。
ディスクドライブ206は、記録媒体43に記録されたプログラムやデータを読み取る駆動装置である。記録媒体43として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。ディスクドライブ206は、CPU201からの命令に従って、記録媒体43から読み取ったプログラムやデータをRAM202またはHDD203に格納する。
ただし、データ管理サーバ200は、ディスクドライブ206を備えていなくてもよく、ユーザが操作する端末装置(例えば、クライアントコンピュータ)からアクセス可能である場合には、画像信号処理部204や入力信号処理部205を備えていなくてもよい。なお、CPU201とRAM202の集合は第1の実施の形態のデータ処理部12の一例であり、通信インタフェース207は第1の実施の形態の受信部11の一例である。
図5は、電源タップおよびサーバの機能例を示すブロック図である。
電源タップ100は、データ生成部110およびデータ送信部120を有する。演算部102が行う処理をソフトウェアによって制御する場合、データ生成部110およびデータ送信部120はソフトウェアのモジュールとして実現し得る。電源タップ100aも、電源タップ100と同様のソフトウェア構成によって実現し得る。
データ生成部110は、ハードウェアタイマまたはソフトウェアタイマを用いて、センサデータを送信するタイミングを判定する。所定条件を満たすタイミング(例えば、毎時10分・20分・30分・40分・50分)が到来すると、データ生成部110はセンサデータを生成する。センサデータは、センサデバイス101で測定された消費電力(電源タップ100全体または電源タップ100に接続された電子機器毎の消費電力)の数値、現在時刻を示すタイムスタンプおよびメモリ103に記憶されたセンサIDを含む。
データ送信部120は、データ生成部110によって生成されたセンサデータをデータ管理サーバ200に送信するよう、通信インタフェース104に指示する。センサデータは、電源タップ100のIPアドレスが送信元アドレスとして用いられ、データ管理サーバ200のIPアドレスが宛先アドレスとして用いられて、パケット形式で送信される。
データ管理サーバ200は、データ記憶部210、判定情報記憶部220、データ受信部230、重複判定部240、判定情報更新部250およびデータ提供部260を有する。データ記憶部210、判定情報記憶部220は、RAM102またはHDD103に確保した記憶領域として実現し得る。データ受信部230、重複判定部240、判定情報更新部250およびデータ提供部260は、ソフトウェアのモジュールとして実現し得る。
データ記憶部210は、電源タップ100,100aを含む複数の電源タップから収集したセンサデータを記憶する。データ記憶部210に格納されるセンサデータには、データ管理サーバ200がセンサデータを分類するための管理情報が付加される。
判定情報記憶部220は、センサIDの重複を判定するための判定ルールを記憶する。判定ルールは、同じセンサ装置によって生成されるセンサデータの規則性を示す。判定情報記憶部220に記憶される判定ルールは、後述するように重複判定部240や判定情報更新部250によって自動的に作成され得るほか、ユーザ操作によって作成される可能性もある。判定ルールは、1つのセンサIDについて1つ以上作成される。あるセンサIDが1つのセンサ装置のみで使用されていると判定される間は、そのセンサIDに対して1つの判定ルールが作成される。既存のセンサIDを重複して使用する新たなセンサ装置が現れたと判定されると、そのセンサIDに対して新たな判定ルールが追加される。
データ受信部230は、電源タップ100,100aを含む複数の電源タップからセンサデータを継続的に受信する。データ受信部230は、センサデータを受信すると、そのセンサデータの受信時刻と送信元アドレスを確認する。そして、データ受信部230は、受信時刻および送信元アドレスを付加したセンサデータを重複判定部240に渡す。
重複判定部240は、センサデータに含まれるセンサIDに対応する判定ルールを判定情報記憶部220から検索する。受信されたセンサデータの特徴が検索された何れかの判定ルールに適合する場合、重複判定部240は、センサIDの新たな重複使用は生じていないと判断し、適合した判定ルールを示すID(重複解決ID)をセンサデータに付加する。一方、受信されたセンサデータの特徴が検索された何れの判定ルールにも適合しない場合、重複判定部240は、センサIDの新たな重複使用が生じたと判断し、新たな判定ルールを仮に作成してその判定ルールの重複解決IDをセンサデータに付加する。重複判定部240は、重複解決IDを付加したセンサデータをデータ記憶部210に格納する。
判定情報更新部250は、判定情報記憶部220に記憶された判定ルールを整理する。判定情報更新部250は、例えば、バッチ処理を行うソフトウェアモジュールとして実装される。判定情報更新部250は、例えば、1日1回夜間など、データ管理サーバ200の負荷が小さい時間帯に定期的に以下の処理を実行する。判定情報更新部250は、受信されたセンサデータのうち既存の判定ルールに適合しないと判定されたセンサデータの規則性を算出する。規則性には、タイムスタンプの周期性やタイムスタンプと受信時刻との差の類似性が含まれる。判定情報更新部250は、規則性をもつセンサデータの集合を特定できるように、重複判定部240によって仮に作成された判定ルールを統合する。
データ提供部260は、アプリケーションサーバ300から抽出要求を受け付け、データ記憶部210からセンサデータの集合を抽出してアプリケーションサーバ300に送信する。抽出要求では、センサIDが指定される。また、抽出要求では、センサIDに加えてセンサID以外の抽出条件が指定されることもある。データ提供部260は、センサIDまたはセンサIDと抽出条件の組に基づいて、センサデータの集合を抽出する。
アプリケーションサーバ300は、データ分析部310を有する。データ分析部310は、ソフトウェアのモジュールとして実現し得る。データ分析部310は、予め設定されたタイミング条件またはユーザ操作に応じて、データ管理サーバ200に抽出要求を送信しセンサデータの集合を取得する。上記のように、抽出要求にはセンサIDを含め、更にセンサID以外の抽出条件(例えば、送信元アドレスなど)を含めることもできる。データ分析部310は、取得したセンサデータに含まれる消費電力の数値を分析する。例えば、データ分析部310は、ある電源タップの消費電力が閾値を超えたことを検出すると、その電源タップまたはその電源タップに接続された電子機器に電力抑制命令を送信する。
図6は、センサデータテーブルの例を示す図である。センサデータテーブル211は、データ記憶部210に記憶されている。センサデータテーブル211は、タイムスタンプ、センサID、アドレス、測定値、受信時刻および重複解決IDの項目を含む。
タイムスタンプの項目には、センサデータにタイムスタンプとして含まれる時刻が設定される。タイムスタンプは、そのセンサデータが生成された時刻と推定される。センサIDの項目には、センサデータに含まれるセンサIDが設定される。1つのセンサIDが異なる2以上のセンサ装置によって重複して使用されている可能性がある。アドレスの項目には、センサデータを送信するセンサ装置のIPアドレス(送信元IPアドレス)が設定される。センサ装置が使用するIPアドレスは変化する可能性がある。
測定値の項目には、センサデータに含まれる消費電力を示す数値が設定される。受信時刻の項目には、データ受信部230がセンサデータを受信した時刻が設定される。重複解決IDの項目には、センサデータが適合した判定ルールのIDが設定される。重複解決IDは、センサIDとセンサID以外の文字列とを含む。重複解決IDを参照することで、同じセンサIDを使用する2以上のセンサ装置のセンサデータを互いに区別できる。
図7は、重複判定テーブルの例を示す図である。重複判定テーブル221は、判定情報記憶部220に記憶されている。重複判定テーブル221は、センサID、重複解決ID、アドレス特徴、タイムスタンプ特徴、受信時刻特徴および開始時刻の項目を含む。
センサIDの項目には、判定ルールの適用対象となるセンサデータのセンサIDが設定される。重複解決IDの項目には、判定ルールを識別するためのIDが設定される。重複解決IDは、例えば、「IDa::0」のように、センサID+「::」+センサID内での項番と表記される。あるセンサIDについての項番=0の判定ルールは、そのセンサIDについて最初に作成されたもの、すなわち、そのセンサIDを含むセンサデータが出現し始めた当初のセンサデータの規則性を示す判定ルールである。項番=0以外の判定ルールが存在するセンサIDは、複数のセンサ装置により重複使用されている可能性がある。なお、項番=0の判定ルールは、ユーザ操作によって作成されてもよい。
アドレス特徴の項目には、センサデータの送信元アドレスまたは送信元アドレスの範囲が設定される。送信元アドレスが変化しない場合は、1つのIPアドレスが設定される。送信元アドレスが過去に変化したと判定された場合は、複数のIPアドレスまたはIPアドレスの範囲が設定される。タイムスタンプ特徴の項目には、センサデータに含まれるタイムスタンプの周期が設定される。例えば、タイムスタンプ特徴が「10分間隔」であることは、同じセンサ装置から受信される一のセンサデータとその次のセンサデータとの間のタイムスタンプの差が、約10分になることを示している。
受信時刻特徴の項目には、センサデータに含まれるタイムスタンプと当該センサデータの受信時刻との差の範囲が設定される。例えば、受信時刻特徴が「1秒以内」であることは、センサ装置がセンサデータを生成してからそのセンサデータがデータ管理サーバ200に到達するまでの遅延時間が一貫して1秒以内であることを示している。開始時刻の項目には、判定ルールに最初に該当したセンサデータのタイムスタンプ(または受信時刻)が設定される。なお、受信されたセンサデータに適合する判定ルールが存在しないために仮に生成された判定ルールは、タイムスタンプ特徴と受信時刻特徴が空欄となる。
図8は、データ登録の手順例を示すフローチャートである。図8に示す処理は、データ管理サーバ200がセンサデータを受信する毎に実行される。
(ステップS11)データ受信部230は、センサデータを受信する。
(ステップS12)データ受信部230は、パケット通信に用いられた送信元アドレスと受信時刻を確認し、センサデータに送信元アドレスと受信時刻を付加する。
(ステップS13)重複判定部240は、判定情報記憶部220に記憶された重複判定テーブル221から、受信されたセンサデータに含まれるセンサIDに対応する判定ルールを検索する。ここでは、1またはそれ以上の判定ルールが検索され得る。
(ステップS14)重複判定部240は、検索された判定ルールを1つ選択する。
(ステップS15)重複判定部240は、センサデータが選択した判定ルールのアドレス特徴に適合するか判断する。すなわち、重複判定部240は、センサデータに付加された送信元アドレスがアドレス特徴として記載されたアドレスのリストまたはアドレス範囲に含まれるか判断する。センサデータがアドレス特徴に適合する場合は処理をステップS16に進め、アドレス特徴に適合しない場合は処理をステップS19に進める。
(ステップS16)重複判定部240は、センサデータが選択した判定ルールのタイムスタンプ特徴に適合するか判断する。タイムスタンプ特徴の判断は、例えば、以下のような手順で行う。重複判定部240は、センサデータに含まれるタイムスタンプと判定ルールの開始時刻との差(継続時間)を算出し、継続時間をタイムスタンプ特徴として記載された周期で割ったときの余りを算出する。重複判定部240は、余りが閾値(例えば、周期の1%)未満であればタイムスタンプ特徴に適合すると判断し、余りが閾値以上であればタイムスタンプ特徴に適合しないと判断する。ただし、重複判定部240は、選択した判定ルールに該当する前回受信されたセンサデータをデータ記憶部210から抽出し、タイムスタンプの差がタイムスタンプ特徴として記載された周期に合致するか判断してもよい。センサデータがタイムスタンプ特徴に適合する場合は処理をステップS17に進め、タイムスタンプ特徴に適合しない場合は処理をステップS19に進める。なお、タイムスタンプ特徴が空欄である場合は適合しないと判断する。
(ステップS17)重複判定部240は、センサデータが選択した判定ルールの受信時刻特徴に適合するか判断する。すなわち、重複判定部240は、センサデータに含まれるタイムスタンプと受信時刻との差(遅延時間)を算出し、遅延時間が受信時刻特徴として記載された条件を具備するか判断する。受信時刻特徴が「不定」である場合は、受信時刻特徴に適合すると見なす。センサデータが受信時刻特徴に適合する場合は処理をステップS18に進め、受信時刻特徴に適合しない場合は処理をステップS19に進める。なお、受信時刻特徴が空欄である場合は適合しないと判断する。
(ステップS18)重複判定部240は、受信されたセンサデータがステップS14で選択した判定ルールに該当する、すなわち、センサIDの新たな重複使用は発生していないと判断する。重複判定部240は、選択した判定ルールの重複解決IDを選択する。
(ステップS19)重複判定部240は、検索された判定ルールの全てをステップS14で選択したか判断する。全ての判定ルールを選択した場合は処理をステップS20に進め、未選択の判定ルールがある場合は処理をステップS14に進める。
(ステップS20)重複判定部240は、受信されたセンサデータが何れの判定ルールにも該当しない、すなわち、センサIDの新たな重複使用が発生したと判断する。重複判定部240は、重複判定テーブル221に仮の判定ルールを登録する。仮の判定ルールのセンサIDは受信されたセンサデータのセンサIDであり、重複解決IDは既存の重複解決IDと異なるIDであり、開始時刻は受信されたセンサデータのタイムスタンプ(または受信時刻)である。また、仮の判定ルールのアドレス特徴は受信されたセンサデータの送信元アドレスであり、タイムスタンプ特徴と受信時刻特徴は空欄である。
(ステップS21)重複判定部240は、ステップS20で重複判定テーブル221に登録した判定ルールの重複解決IDを選択する。
(ステップS22)重複判定部240は、ステップS18またはステップS21で選択した重複解決IDをセンサデータに付加する。そして、重複判定部240は、データ記憶部210に記憶されたセンサデータテーブル211にセンサデータを登録する。
なお、図8では、アドレス特徴・タイムスタンプ特徴・受信時刻特徴の3つをAND条件として用いて、センサデータが判定ルールに該当するか判定している。しかし、上記3つの特徴の何れか1つのみを用いてもよく、何れか2つをAND条件として用いてもよい。また、上記ステップS15〜S17の処理は任意の順序で実行してよい。
図9は、判定情報更新の手順例を示すフローチャートである。図9に示す処理は、例えば、データ管理サーバ200の負荷が小さい時間帯にバッチ処理として実行される。
(ステップS31)判定情報更新部250は、1つのセンサIDを選択し、選択したセンサIDについての判定ルールを、判定情報記憶部220に記憶された重複判定テーブル221から検索する。ここでは、複数の判定ルールが検索され得る。
(ステップS32)判定情報更新部250は、アドレス特徴を1つ選択し、ステップS31で検索された判定ルールの中から、そのアドレス特徴をもつ判定ルールを抽出する。
(ステップS33)判定情報更新部250は、ステップS32で抽出された判定ルールの中から、タイムスタンプ特徴が空欄である判定ルールを抽出する。
(ステップS34)判定情報更新部250は、ステップS33で抽出された判定ルールの何れかに該当するセンサデータ(何れかの重複解決IDが付与されたセンサデータ)の集合を、データ記憶部210に記憶されたセンサデータテーブル211から検索する。
(ステップS35)判定情報更新部250は、ステップS34で検索されたセンサデータをタイムスタンプに従ってソートし、時刻に対する受信回数の分布を算出する。時刻については、タイムスタンプの誤差を考慮して丸め処理を行ってもよい。そして、判定情報更新部250は、時刻に対する受信回数の分布を離散フーリエ変換によりスペクトル解析する。これにより、周波数スペクトル(周波数成分の分布)を算出できる。
(ステップS36)判定情報更新部250は、ステップS35で算出された周波数スペクトルからレベルが閾値以上である周波数を検出する。レベルの閾値は、例えば、ステップS34で検索されたセンサデータの総数の一定割合(3分の1など)とする。
(ステップS37)判定情報更新部250は、ステップS36でレベルが閾値以上の周波数が検出されたか判断する。レベルが閾値以上の周波数が検出された場合は処理をステップS38に進め、検出されなかった場合は処理をステップS47に進める。
(ステップS38)判定情報更新部250は、ステップS36で検出された周波数fの逆数=1/fを、タイムスタンプの周期ωとして算出する。なお、上記のタイムスタンプの周期の算出方法は一例であり、これ以外の方法で周期を算出してもよい。
図10は、判定情報更新の手順例を示すフローチャート(続き)である。
(ステップS41)判定情報更新部250は、ステップS34で検索されたセンサデータの中から、ステップS38で算出した周期ωに該当するセンサデータを抽出する。例えば、ステップS35で算出した時刻に対する受信回数の分布をf(t)とすると、判定情報更新部250は、sin(ωt+θ)とf(t)との間の畳み込み積分の値が最大となるような位相θを求めることで、周期性をもつセンサデータの集合を特定する。
(ステップS42)判定情報更新部250は、ステップS33で抽出された判定ルールの中から、ステップS41で抽出された各センサデータに付加されている重複解決IDを含む判定ルールを抽出する。ここでは、複数の判定ルールが抽出され得る。
(ステップS43)判定情報更新部250は、ステップS42で抽出された判定ルールを統合する。すなわち、判定情報更新部250は、残す判定ルールとして開始時刻が最も古い判定ルールを選択し、選択した判定ルールのタイムスタンプ特徴としてステップS38で算出した周期を登録する。そして、判定情報更新部250は、抽出された判定ルールのうち選択しなかった判定ルールを重複判定テーブル221から削除する。
(ステップS44)判定情報更新部250は、ステップS41で抽出されたセンサデータの重複解決IDを、ステップS43で選択した判定ルールの重複解決IDに更新する。
(ステップS45)判定情報更新部250は、ステップS41で抽出されたセンサデータの受信時刻特徴を算出し、ステップS43で選択した判定ルールの受信時刻特徴として登録する。例えば、判定情報更新部250は、タイムスタンプと受信時刻との差(遅延時間)の分布を算出し、遅延時間の分布が平均遅延時間から所定範囲に収まっているか判断する。判定情報更新部250は、所定範囲に収まっている場合は受信時刻特徴をその範囲とし、収まっていない場合は受信時刻特徴を「不定」とする。なお、上記の遅延時間の範囲の算出方法は一例であり、これ以外の方法で範囲を算出してもよい。
(ステップS46)判定情報更新部250は、ステップS33で抽出した判定ルールのうちステップS43で統合されずに残った判定ルールがあるか判断する。残りの判定ルールがある場合は処理をステップS35に進め、残りの判定ルールに該当するセンサデータをスペクトル解析する。残りの判定ルールがない場合は処理をステップS47に進める。
(ステップS47)判定情報更新部250は、ステップS32で全てのアドレス特徴を選択したか判断する。全てのアドレス特徴を選択した場合は処理をステップS48に進め、未選択のアドレス特徴がある場合は処理をステップS32に進める。
(ステップS48)判定情報更新部250は、ステップS31で全てのセンサIDを選択したか判断する。全てのセンサIDを選択した場合は処理を終了し、未選択のセンサIDがある場合は処理をステップS31に進める。
以上説明したように、既存の判定ルールに該当しないセンサデータが受信される毎に、仮の判定ルールが作成される。仮の判定ルールはタイムスタンプ特徴と受信時刻特徴が不明であるため、他のセンサデータが仮の判定ルールに該当するとは判断されない。このため、センサIDの重複使用が新たに検出されるとしばらくの間は仮の判定ルールが増加していく。その後、判定情報更新部250は、複数の仮の判定ルールを統合して、タイムスタンプ特徴と受信時刻特徴とが決定された判定ルールを生成する。
なお、上記説明では、判定情報更新部250は、タイムスタンプの周期性からセンサデータの集合を特定し、特定したセンサデータの集合について遅延時間の規則性を判定している。しかし、判定情報更新部250は、遅延時間の規則性からセンサデータの集合を特定し、特定したセンサデータの集合についてタイムスタンプの周期性を判定してもよい。
また、上記説明では、判定情報更新部250は、既存の判定ルールに該当しないセンサデータをまず送信元アドレスに基づいて分類し、送信元アドレスが同じセンサデータをタイムスタンプ特徴に基づいて分類している。ここで、タイムスタンプ特徴と受信時刻特徴が同じでありアドレス特徴が異なる2以上の判定ルールが生成された場合、同じセンサ装置のIPアドレスが変化している可能性がある。そこで、判定情報更新部250は、図9,10の処理によって生成された判定ルールを更に統合してもよい。
図11は、アドレス特徴統合の手順例を示すフローチャートである。
(ステップS51)判定情報更新部250は、重複判定テーブル221から、センサIDとタイムスタンプ特徴と受信時刻特徴とが同じ2以上の判定ルールを検索する。
(ステップS52)判定情報更新部250は、ステップS51で検索された判定ルールに該当するセンサデータをセンサデータテーブル211から検索する。
(ステップS53)判定情報更新部250は、ステップS51で検索された判定ルールを統合する。すなわち、判定情報更新部250は、残す判定ルールとして開始時刻が最も古い判定ルールを選択し、選択しなかった判定ルールのアドレス特徴として記載されたIPアドレスを選択した判定ルールのアドレス特徴に追加する。そして、判定情報更新部250は、選択しなかった判定ルールを重複判定テーブル221から削除する。
(ステップS54)判定情報更新部250は、ステップS52で検索されたセンサデータの重複解決IDを、ステップS53で選択した判定ルールの重複解決IDに更新する。
(ステップS55)判定情報更新部250は、ステップS51の条件を満たす判定ルールが残っているか判断する。条件を満たす判定ルールが残っている場合は処理をステップS51に進め、残っていない場合は処理を終了する。
図12は、重複判定テーブルの第1の更新結果例を示す図である。
センサID=IDaを含み重複解決ID=IDa::0の判定ルールに該当しないセンサデータが受信されると、重複判定部240は、重複解決ID=IDa::1の仮の判定ルールを作成し、そのセンサデータに重複解決ID=IDa::1を付与する。センサID=IDaを含み重複解決ID=IDa::0の判定ルールに該当しないセンサデータが更に受信されると、重複判定部240は、重複解決ID=IDa::2の仮の判定ルールを作成し、そのセンサデータに重複解決ID=IDa::2を付与する。
このようにして、センサID=IDaを含み重複解決ID=IDa::0の判定ルールに該当しないセンサデータが7回受信された場合、7つの仮の判定ルールが作成される。これら7つの仮の判定ルールのタイムスタンプ特徴は空欄である。図12に示すように、ここでは、重複解決ID=IDa::6の判定ルールのアドレス特徴(送信元アドレス)はAD4であり、他の6つの判定ルールのアドレス特徴はAD2であるとする。
判定ルールを統合するとき、判定情報更新部250は、センサID=IDa,アドレス特徴=AD2,タイムスタンプ特徴=空である6つの判定ルールを抽出する。すると、判定情報更新部250は、これら6つの判定ルールに該当する6回分のセンサデータを抽出し、抽出したセンサデータのタイムスタンプ特徴を算出する。図12の例ではタイムスタンプ特徴=5分間隔と算出される。これにより、6つの仮の判定ルールが重複解決ID=IDa::1の判定ルールに統一される。重複解決ID=IDa::6の判定ルールは他の判定ルールと統合されず、タイムスタンプ特徴が不明のままである。
図13は、重複判定テーブルの第2の更新結果例を示す図である。ここでは、図12に示すような処理の結果、アドレス特徴=AD2,タイムスタンプ特徴=5分間隔,受信時刻特徴=不定という判定ルールと、アドレス特徴=AD3,タイムスタンプ特徴=5分間隔,受信時刻特徴=不定という判定ルールが生成されたとする。すると、判定情報更新部250は、タイムスタンプ特徴と受信時刻特徴が同じ2つの判定ルールを統合し、統合後の判定ルールのアドレス特徴をAD2,AD3とする。これは、統合後の判定ルールに該当するセンサデータが、IPアドレスの変化するセンサ装置で生成されることを示す。
図14は、データ抽出の手順例を示すフローチャートである。図14に示す処理は、データ管理サーバ200が抽出要求を受け付ける毎に実行される。
(ステップS61)データ提供部260は、ネットワーク32を介して、アプリケーションサーバ300のデータ分析部310から抽出要求を受け付ける。抽出要求には、少なくともセンサIDが含まれている。抽出要求には、更にセンサID以外の抽出条件(例えば、送信元アドレスやタイムスタンプ周期など)が含まれることもある。
(ステップS62)データ提供部260は、ステップS61で受け付けた抽出要求に、センサID以外の抽出条件が含まれるか判断する。抽出条件が含まれる場合は処理をステップS64に進め、含まれない場合は処理をステップS63に進める。
(ステップS63)データ提供部260は、重複判定テーブル221から、抽出要求に含まれるセンサIDに対応する判定ルールのうち開始時刻が最も古い判定ルール(項番=0の判定ルール)を検索する。そして、処理をステップS67に進める。
(ステップS64)データ提供部260は、重複判定テーブル221から、抽出要求に含まれるセンサIDおよび抽出条件に対応する判定ルールを検索する。
(ステップS65)データ提供部260は、ステップS64で条件に合う判定ルールが見つかったか判断する。条件に合う判定ルールが見つかった場合は処理をステップS67に進め、見つからなかった場合は処理をステップS66に進める。
(ステップS66)データ提供部260は、重複判定テーブル221から、抽出要求に含まれるセンサIDに対応する判定ルールを全て検索する。
(ステップS67)データ提供部260は、ステップS63,S64,S66の何れかで検索された判定ルールの重複解決IDを選択する。ステップS66で複数の判定ルールが検索された場合は、複数の重複解決IDが選択される。
(ステップS68)データ提供部260は、センサデータテーブル211から、ステップS67で選択した重複解決IDが付与されたセンサデータの集合を抽出し、抽出したセンサデータの集合をデータ分析部310に送信する。
このように、アプリケーションサーバ300は、センサIDのみを指定した場合、そのセンサIDを含むセンサデータが収集され始めた当初の規則性をもつセンサデータのみを取得する。すなわち、項番=0の判定ルールに該当するセンサデータのみを取得する。後にセンサIDの重複使用を開始したセンサ装置のセンサデータを取得したい場合、アプリケーションサーバ300は送信元アドレスなどの抽出条件を指定すればよい。
次に、第2の実施の形態のデータ管理サーバの変形例を説明する。
変形例に係るデータ管理サーバ200aは、各センサIDに対応する送信元アドレスの集合を監視し、送信元アドレスの特性が変化した(例えば、それまで1つに固定されていた送信元アドレスが変化した)ことを検出すると、ユーザに警告する。また、データ管理サーバ200aは、アプリケーションサーバ300が抽出要求で指定する抽出条件を、データ管理サーバ200aに定義された抽出条件のリストの中から選択できるようにする。また、データ管理サーバ200aは、アプリケーションサーバ300で実行されるデータ分析ソフトウェア毎に、データ管理サーバ200aに最初にアクセスした時刻(アクセス開始時刻)を管理する。そして、データ管理サーバ200aは、アクセス開始時刻と判定ルールの開始時刻の関係から、提供するセンサデータの集合を制御する。
図15は、データ管理サーバの変形例を示すブロック図である。データ管理サーバ200aは、データ記憶部210、判定情報記憶部220、データ受信部230、重複判定部240、判定情報更新部250a、データ提供部260a、移動情報記憶部270、抽出条件記憶部280および履歴記憶部290を有する。判定情報更新部250aおよびデータ提供部260aは、データ管理サーバ200の判定情報更新部250およびデータ提供部260に対応する。移動情報記憶部270、抽出条件記憶部280および履歴記憶部290は、RAM102またはHDD103に確保した記憶領域として実現し得る。
移動情報記憶部270は、各センサIDに対応する送信元アドレスの集合の特性(移動特性)を示す移動情報を記憶する。移動特性としては、送信元アドレスが変化しない、送信元アドレスが1つのネットワークセグメント内で変化する、送信元アドレスが複数のネットワークセグメントに跨がって変換するという3種類が挙げられる。移動情報記憶部270に記憶される移動情報は、判定情報更新部250aによって作成される。
抽出条件記憶部280は、アプリケーションサーバ300が抽出要求で指定することができる抽出条件のリストを記憶する。この抽出条件のリストを利用する場合、アプリケーションサーバ300は、指定する抽出条件の識別名を抽出要求に挿入すればよい。抽出条件記憶部280に記憶される抽出条件のリストは、ユーザ操作によって作成される。
履歴記憶部290は、アプリケーションサーバ300で実行されるデータ分析ソフトウェアとセンサIDの組毎に、そのセンサIDを指定した抽出要求を最初に受け付けた時刻(アクセス開始時刻)を示す履歴情報を記憶する。履歴記憶部290に記憶される履歴情報は、データ提供部260aによって作成される。
判定情報更新部250aは、重複判定テーブル221に登録された判定ルールを統合した後、センサID毎にアドレス特徴として記載された送信元アドレスの集合を算出する。そして、判定情報更新部250aは、移動情報記憶部270に記憶された移動情報を参照して、判定ルールの統合を前回行ったときから移動特性が変化したセンサIDがあるか判定する。移動特性が変化したセンサIDが検出された場合、判定情報更新部250aは、その旨をユーザ(データ管理サーバ200aの管理者でもよい)に警告する。
警告を受けたユーザは、センサ装置の使用状態を確認し、重複判定テーブル221を適宜編集する。例えば、センサ装置の使用方法の変更に起因して送信元アドレスが変化することになった場合、ユーザは、判定ルールのアドレス特徴を固定のIPアドレスからアドレス範囲に書き換える。また、例えば、センサ装置の使用方法を変更しておらずセンサIDの重複使用が発生したと考えられる場合、ユーザは、そのセンサIDについては送信元アドレスの異なる2以上の判定ルールを統合せずに分離しておく。なお、判定情報更新部250aは、移動特性の変化が最初に検出されてから一定期間(例えば3日間)は、学習期間としてユーザに対して警告しないようにしてもよい。学習期間経過後も移動特性の変化が継続している場合に、判定情報更新部250aはユーザに警告する。
データ提供部260aは、センサIDと抽出条件の識別名とを含む抽出要求をアプリケーションサーバ300から受け付けることを許容する。この場合、データ提供部260aは、抽出条件記憶部280に記憶された抽出条件のリストから指定された識別名に対応する抽出条件を選択し、センサIDと抽出条件に従ってセンサデータの集合を抽出する。
また、データ提供部260aは、センサIDを含み抽出条件(または、抽出条件の識別名)を含まない抽出要求をアプリケーションサーバ300から受け付けることを許容する。この場合、データ提供部260aは、抽出要求を発行したデータ分析ソフトウェアを確認し、データ分析ソフトウェアとセンサIDの組に対応するアクセス開始時刻を、履歴記憶部290に記憶された履歴情報から検索する。そして、データ提供部260aは、アクセス開始時刻と各判定ルールの開始時刻との関係から、センサデータの抽出を制御する。
例えば、データ提供部260aは、指定されたセンサIDについて、開始時刻がアクセス開始時刻より古い判定ルールが1つしか存在しない(項番=0の判定ルールのみである)場合、その判定ルールに該当するセンサデータのみを抽出する。かかる条件を満たす場合、抽出要求を発行したデータ分析ソフトウェアの意図するセンサデータの集合が明確であるためである。一方、データ提供部260aは、開始時刻がアクセス開始時刻より古い判定ルールが2以上存在する場合、エラーをデータ分析ソフトウェアに通知する。かかる条件を満たす場合、データ分析ソフトウェアの意図するセンサデータの集合が、2以上の判定ルールの何れに該当するセンサデータの集合であるか明確でないためである。
図16は、移動特性テーブルと解析結果テーブルの例を示す図である。
移動特性テーブル271は、移動情報記憶部270に記憶されている。移動特性テーブル271は、移動特性名、移動特性およびパラメータ名の項目を含む。移動特性名の項目には、移動特性の識別名が登録される。移動特性の項目には、移動特性の内容が記載される。移動特性には、アドレスが1つに固定(特性1=移動なし)、アドレスが1つのネットワークセグメント内で変化(特性2=セグメント内で移動)、アドレスが複数のネットワークセグメントに跨がって変化(特性3=移動範囲が不定)の3つがある。パラメータ名の項目には、各特性に対して設定すべきパラメータが登録される。特性1のパラメータは1つのアドレスであり、特性2,3のパラメータは2以上のアドレスである。
解析結果テーブル272は、移動情報記憶部270に記憶されている。解析結果テーブル272は、センサID、解析時刻および解析結果の項目を含む。解析時刻の項目には、判定情報更新部250aが重複判定テーブル221を解析した時刻が登録される。解析結果の項目には、各センサIDの移動特性とパラメータとが登録される。
例えば、あるセンサIDに対応する送信元アドレスがAD1のみである場合、移動特性=特性1,パラメータ=AD1となる。また、例えば、送信元アドレスがAD1,AD2であり2つの送信元アドレスが同じネットワークセグメントのアドレスである場合、移動特性=特性2,パラメータ=AD1,AD2となる。また、例えば、送信元アドレスがAD1,AD2であり2つの送信元アドレスが異なるネットワークセグメントのアドレスである場合、移動特性=特性3,パラメータ=AD1,AD2となる。
このように、判定情報更新部250aは、センサID毎にそのセンサIDを含むセンサデータの送信に用いられたアドレスを抽出して解析結果テーブル272に登録する。そして、判定情報更新部250aは、前回の解析結果と今回の解析結果とを比較することで、移動特性が変化したセンサIDを検出することができる。なお、移動特性の変化には、特性1から特性2、特性2から特性3、特性1から特性3の3通りの変化がある。
図17は、抽出条件テーブルの例を示す図である。抽出条件テーブル281は、抽出条件記憶部280に記憶されている。抽出条件テーブル281は、条件名および条件の項目を含む。条件名の項目には、抽出条件の識別名が登録される。条件の項目には、抽出条件の内容が記載される。図17の例では、3つの抽出条件が登録されている。
条件1(最初に登録されたアドレス)は、抽出するセンサデータを、最初のセンサデータと同じ送信元アドレスを用いて送信されたものに限定する抽出条件である。条件1が指定されると、データ提供部260aは、項番=0の判定ルールに該当するセンサデータを検索する。条件2(登録から所定期間以上経過したアドレス)は、抽出するセンサデータを、重複判定テーブル221に登録されてから所定期間以上経過した送信元アドレスを用いて送信されたものに限定する抽出条件である。条件2が指定されると、データ提供部260aは、開始時刻と現在時刻との差が閾値(例えば、3ヶ月)以上である判定ルールに該当するセンサデータを検索する。条件3(全てのアドレス)は、センサID以外の抽出条件を指定しないことを示す。条件3が指定されると、データ提供部260aは、センサIDに対応する全ての判定ルールを使用してセンサデータを検索する。
図18は、アクセス履歴テーブルの例を示す図である。アクセス履歴テーブル291は、履歴記憶部290に記憶されている。アクセス履歴テーブル291は、アプリケーション名、センサIDおよびアクセス開始時刻の項目を含む。アプリケーション名の項目には、データ分析ソフトウェアの名称が登録される。アプリケーション名は、抽出要求に含まれ得る。センサIDの項目には、データ分析ソフトウェアから指定されたことのあるセンサIDが登録される。アクセス開始時刻の項目には、データ分析ソフトウェアとセンサIDの組に対して、そのデータ分析ソフトウェアからそのセンサIDを含む抽出要求をデータ管理サーバ200が最初に受け付けた時刻が登録される。
ここで、図18の例では、ソフトウェアαは、重複解決ID=IDa::0の判定ルール(判定ルール0)が登録された後、重複解決ID=IDa::1の判定ルール(判定ルール1)が登録される前に、データ分析を開始している。また、ソフトウェアβは、判定ルール1が登録された後にデータ分析を開始している。この場合、ソフトウェアαは判定ルール0に該当するセンサデータを分析するものと推定され、判定ルール0に該当するセンサデータがソフトウェアαに提供される。一方、ソフトウェアβは、判定ルール0と判定ルール1の何れに該当するセンサデータを分析するものであるか不明なため、センサIDのみではセンサデータを絞り込めない。ソフトウェアβは、センサID以外の抽出条件を指定することでセンサデータを絞り込むことになる。
第2の実施の形態の情報処理システムによれば、電源タップ100aのセンサ装置が電源タップ100のセンサ装置と同一のセンサIDを重複して使用し始めても、センサデータの規則性から、センサIDの重複使用が発生したことを検出することができる。そして、センサデータの規則性に基づいて、電源タップ100のセンサデータと電源タップ100aのセンサデータとを区別することができる。よって、収集されたセンサデータを用いて電源タップ100,100aそれぞれの消費電力を監視することが容易となる。
また、電源タップ100,100aのセンサ装置に割り当てられるIPアドレスが変化する場合でも、タイムスタンプ特徴などからセンサデータを適切に分類し得る。よって、センサ装置のIPアドレスを固定する場合と比べてネットワーク設計の自由度が大きくなる。また、各センサ装置に設定されたセンサIDを改竄できないようにする(例えば、センサIDを暗号化して変更不可にする)場合と比べて、各センサ装置の回路が複雑になるのを抑制でき、また、データ管理サーバ200,200aの負荷を抑制できる。
なお、前述のように、第1の実施の形態の機能は、情報処理装置10にプログラムを実行させることで実現できる。また、第2の実施の形態の機能は、データ管理サーバ200,200aやアプリケーションサーバ300にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体43)に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体からHDDなどの他の記録媒体にプログラムを複製してから(インストールしてから)実行してもよい。