(57)【特許請求の範囲】
【請求項１】
データを得るノード毎に単位時間当たりのデータ量を示すデータ量情報を受信する受信部と、
ノード毎のデータ量情報に基づいて、それぞれのノードからデータを収集するための収集スケジュールを決定するスケジュール決定部と、を備えるデータ収集装置であって、
前記スケジュール決定部は、
それぞれのノードからデータを収集する収集間隔を収集間隔範囲から選択し、
ノード毎のデータ量情報に基づいて、選択した収集間隔の間に得られる収集間隔データ量をノード毎に算出し、
収集間隔データ量に対する負荷量をノード毎に算出し、
ノード毎の負荷量を用いて総負荷量を算出し、
前記総負荷量が許容負荷量より少ない場合、前記収集間隔を用いて前記収集スケジュールを決定する
データ収集装置。
【請求項２】
前記スケジュール決定部は、前記総負荷量が前記許容負荷量より多い場合、収集間隔を新たに選択する
請求項１に記載のデータ収集装置。
【請求項３】
前記スケジュール決定部は、時間の短い順に収集間隔を選択する
請求項２に記載のデータ収集装置。
【請求項４】
前記受信部は、さらに、未収集データを有するノード毎に未収集データ量を受信し、
前記スケジュール決定部は、ノード毎の収集間隔データ量にノード毎の未収集データ量が追加された後の総負荷量が前記許容負荷量を超えない範囲で、ノード毎の収集間隔データ量にノード毎の未収集データ量を追加し、ノード毎の収集間隔データ量を前記収集スケジュールに含める
請求項１から請求項３のいずれか１項に記載のデータ収集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノードからデータを収集するための技術に関するものである。
【背景技術】
【０００２】
ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）の普及により、多種の機器および多種のコンピュータなど、ありとあらゆるものがネットワークに接続されるようになり、接続されたものから様々なデータを収集することが可能になっている。
例えば、スマートメータを介して遠隔で電力使用量を収集することで、電力需要に関する予測精度の向上が期待できる。また、電力消費者に対して使用量を可視化して省エネルギーのための活動を促すことも可能になる。
このようなデータ収集システムにおいて、全体で大量のデータが扱われることも多く、通信負荷だけでなく、データを集積する収集装置の処理負荷も大きくなる。各機器からデータを集約して送信するケースでは送信されるデータのサイズが大きくなり、通信よりも、収集装置上のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）またはメモリなどの処理リソースがボトルネックとなりやすい。このため、大量のデータを処理するためには、センター側の収集装置において処理リソースを十分に確保する必要がある。しかしながら、処理リソースを大きくすることは、サーバ設備の費用およびクラウドサービスの利用費用を増大することになる。そのため、大規模なデータ収集システムにおいては、収集装置の処理リソースを効率的に利用することが求められる。
もし、接続された機器等のノードから送られてくるデータ量の分布がランダムな分布または偏りがある分布である場合、分布における平均的なデータ量を処理できる処理リソースではなく、分布における大きな負荷を処理できる処理リソースが必要となる。処理リソースを効率的に利用するためには、ノード毎のデータ収集負荷が平滑化されることが求められる。【０００３】
特許文献１には、各ノードの通信特性に応じて収集装置で送信タイミングをスケジュールする方式が開示されている。
特許文献２には、各ノードに相当するセンサーモジュールの送信処理が重ならないように送信タイミングを調整する方式が開示されている。
どちらの方式も、接続されたノードに対してデータ送信のタイミングを収集装置から指示することによって送信処理の重なりを抑える方式である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１２３２５０号公報
【特許文献２】特開２０１２−１９５７０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データ収集システムにおいて、収集装置の処理負荷は入力されるデータサイズに応じて変化する。例えば、ＣＰＵ使用量、メモリ使用量またはディスク入出力量などが処理負荷に相当する。接続されたノードから送信されるデータが必ずしも同じデータサイズであるとは限らない。例えば、データ送信が失敗してしまい失敗分を含んでデータ送信が行われる場合、送信されるデータのサイズが増加する。また、複数の機器が接続された中継装置が収集装置にデータを送信する場合、中継装置に接続された機器の台数に応じて、収集装置へ送信されるデータのサイズが変わる。【０００６】
データサイズの偏りがある場合、各ノードの送信タイミングが等間隔であったとしても、送信されるデータのサイズが大きい時には処理負荷が大きくなる。このため、各ノードの送信タイミングの決定にはデータサイズが考慮されなければならない。先行技術文献には、機器数および通信特性を元に送信タイミングを調整する方式が記述されているが、送信されるデータのサイズおよび収集装置の処理コストについては示されていない。【０００７】
本発明は、それぞれのノードのデータ量に差があっても適切な収集スケジュールを決定できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明のデータ収集装置は、
データを得るノード毎に単位時間当たりのデータ量を示すデータ量情報を受信する受信部と、
ノード毎のデータ量情報に基づいて、それぞれのノードからデータを収集するための収集スケジュールを決定するスケジュール決定部とを備える。
【発明の効果】
【０００９】
本発明によれば、ノード毎のデータ量情報に基づいて収集スケジュールが決定される。そのため、それぞれのノードのデータ量に差があっても適切な収集スケジュールを決定することが可能である。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１におけるデータ収集システム１００の構成図。
【図２】実施の形態１におけるデータ収集装置２００の構成図。
【図３】実施の形態１におけるノード３００の構成図。
【図４】実施の形態１におけるデータ収集方法のフローチャート。
【図５】実施の形態１におけるノード情報１１０の具体例を示す図。
【図６】実施の形態１におけるノード管理テーブル１２０の具体例を示す図。
【図７】実施の形態１におけるスケジュール情報１３０の具体例を示す図。
【図８】実施の形態１における収集データ１４０の具体例を示す図。
【図９】実施の形態１におけるスケジュール決定方法のフローチャート。
【図１０】実施の形態１における負荷量データ１５０の具体例を示す図。
【図１１】実施の形態１における未収集データ量および収集間隔データ量の変化を示す図。
【図１２】実施の形態１における収集スケジュールのイメージを示す図。
【図１３】実施の形態１における収集スケジュールの具体例を示す図。
【図１４】実施の形態１におけるデータ収集システム１００の構成例を示す図。
【図１５】実施の形態２におけるデータ収集システム１００の構成図。
【図１６】実施の形態２におけるデータ収集装置２００の構成図。
【図１７】実施の形態２におけるスケジュール決定方法のフローチャート。
【図１８】実施の形態２におけるノードグループを示す図。
【図１９】実施の形態２における収集スケジュールのイメージを示す図。
【図２０】実施の形態２における収集スケジュールの具体例を示す図。
【図２１】実施の形態におけるデータ収集装置２００のハードウェア構成図。
【発明を実施するための形態】
【００１１】
実施の形態および図面において、同じ要素および対応する要素には同じ符号を付している。同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
【００１２】
実施の形態１．
データ収集システム１００について、図１から図１４に基づいて説明する。
【００１３】
＊＊＊構成の説明＊＊＊
図１に基づいて、データ収集システム１００の構成を説明する。
データ収集システム１００は、複数のノード３００からデータを収集するためのシステムである。
【００１４】
データ収集システム１００は、データ収集装置２００を備える。
さらに、データ収集システム１００は、複数のノード３００を備える。
実施の形態１において、データ収集システム１００は、ノード（１）からノード（５）の５つのノード３００を備える。
【００１５】
複数のノード３００は、ネットワーク１０１を介してデータ収集装置２００に接続されている。
ネットワーク１０１は、有線回線と無線回線とのいずれであってもよい。
【００１６】
ノード３００はデータを得る機器である。
具体的には、ノード３００は計測装置である。計測装置は、計測を行うことによって計測値を得る。例えば、計測装置は、電力メータ、脈拍センサ、心拍センサ、熱センサまたは光センサである。また、計測装置は、情報処理の負荷または稼働状況の情報などを取得する情報処理装置であってもよい。
【００１７】
データ収集装置２００は、複数のノード３００からデータを収集するコンピュータである。
【００１８】
図２に基づいて、データ収集装置２００の構成を説明する。
データ収集装置２００は、プロセッサ２０１とメモリ２０２と補助記憶装置２０３と通信インタフェース２０４といったハードウェアを備える。これらのハードウェアは、信号線を介して互いに接続されている。
データ収集装置２００は、表示インタフェースおよび入力インタフェース等のハードウェアを備えてもよい。表示インタフェースはディスプレイに接続される。入力インタフェースはキーボードとマウスとに接続される。
【００１９】
プロセッサ２０１は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）であり、他のハードウェアを制御する。例えば、プロセッサ２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、またはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
メモリ２０２は揮発性の記憶装置である。メモリ２０２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ２０２はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。メモリ２０２に記憶されたデータは必要に応じて補助記憶装置２０３に保存される。
補助記憶装置２０３は不揮発性の記憶装置である。例えば、補助記憶装置２０３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、またはフラッシュメモリである。補助記憶装置２０３に記憶されたデータは必要に応じてメモリ２０２にロードされる。
通信インタフェース２０４は通信を行う装置、すなわち、レシーバおよびトランスミッタである。例えば、通信インタフェース２０４は、通信チップまたはＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００２０】
データ収集装置２００は、制御部２１０とスケジュール決定部２２０といったソフトウェア要素を備える。ソフトウェア要素はソフトウェアで実現される要素である。
【００２１】
補助記憶装置２０３には、制御部２１０とスケジュール決定部２２０としてコンピュータを機能させるためのデータ収集プログラムが記憶されている。データ収集プログラムは、メモリ２０２にロードされて、プロセッサ２０１によって実行される。データ収集プログラムのうち、スケジュール決定部２２０としてコンピュータを機能させるためのプログラムをスケジュール決定プログラムという。
さらに、補助記憶装置２０３にはＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が記憶されている。ＯＳの少なくとも一部は、メモリ２０２にロードされて、プロセッサ２０１によって実行される。
つまり、プロセッサ２０１は、ＯＳを実行しながら、データ収集プログラムを実行する。
データ収集プログラムを実行して得られるデータは、メモリ２０２、補助記憶装置２０３、プロセッサ２０１内のレジスタまたはプロセッサ２０１内のキャッシュメモリといった記憶装置に記憶される。
【００２２】
補助記憶装置２０３は記憶部２９１および蓄積部２９２として機能する。但し、他の記憶装置が、補助記憶装置２０３の代わりに、又は、補助記憶装置２０３と共に、記憶部２９１および蓄積部２９２として機能してもよい。
通信インタフェース２０４は受信部２９３および送信部２９４として機能する。
【００２３】
データ収集装置２００は、プロセッサ２０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ２０１の役割を分担する。
【００２４】
データ収集プログラムは、磁気ディスク、光ディスクまたはフラッシュメモリ等の不揮発性の記憶媒体に記憶することができる。不揮発性の記憶媒体は、コンピュータ読み取り可能な記録媒体である。
【００２５】
図３に基づいて、ノード３００の構成を説明する。
ノード３００は、プロセッサ３０１とメモリ３０２と補助記憶装置３０３と通信インタフェース３０４とセンサインタフェース３０５といったハードウェアを備える。これらのハードウェアは、信号線を介して互いに接続されている。
【００２６】
プロセッサ３０１は、演算処理を行うＩＣであり、他のハードウェアを制御する。例えば、プロセッサ３０１は、ＣＰＵである。
メモリ３０２は揮発性の記憶装置である。メモリ３０２は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ３０２はＲＡＭである。メモリ３０２に記憶されたデータは必要に応じて補助記憶装置３０３に保存される。
補助記憶装置３０３は不揮発性の記憶装置である。例えば、補助記憶装置３０３は、ＲＯＭ、ＨＤＤ、またはフラッシュメモリである。補助記憶装置３０３に記憶されたデータは必要に応じてメモリ３０２にロードされる。
通信インタフェース３０４は通信を行う装置、すなわち、レシーバおよびトランスミッタである。例えば、通信インタフェース３０４は、通信チップまたはＮＩＣである。
【００２７】
ノード３００は、制御部３１１を備える。制御部３１１はソフトウェアで実現される。
【００２８】
補助記憶装置３０３には、制御部３１１としてコンピュータを機能させるためのノードプログラムが記憶されている。このノードプログラムは、メモリ３０２にロードされて、プロセッサ３０１によって実行される。
さらに、補助記憶装置３０３にはＯＳが記憶されている。ＯＳの少なくとも一部は、メモリ３０２にロードされて、プロセッサ３０１によって実行される。
つまり、プロセッサ３０１は、ＯＳを実行しながら、ノードプログラムを実行する。
ノードプログラムを実行して得られるデータは、メモリ３０２、補助記憶装置３０３、プロセッサ３０１内のレジスタまたはプロセッサ３０１内のキャッシュメモリといった記憶装置に記憶される。
【００２９】
補助記憶装置３０３は記憶部３９１として機能する。但し、他の記憶装置が、補助記憶装置３０３の代わりに、又は、補助記憶装置３０３と共に、記憶部３９１として機能してもよい。
通信インタフェース３０４は送信部３９２および受信部３９３として機能する。
センサインタフェース３０５は計測部３９４として機能する。
【００３０】
ノード３００は、プロセッサ３０１を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ３０１の役割を分担する。
【００３１】
ノードプログラムは、磁気ディスク、光ディスクまたはフラッシュメモリ等の不揮発性の記憶媒体に記憶することができる。不揮発性の記憶媒体は、コンピュータ読み取り可能な記録媒体である。
【００３２】
＊＊＊動作の説明＊＊＊
データ収集システム１００の動作はデータ収集方法に相当する。また、データ収集方法におけるデータ収集装置２００の手順はデータ収集プログラムの手順に相当する。
【００３３】
図４に基づいて、データ収集方法を説明する。
ステップＳ１０１において、それぞれのノード３００は、データ収集装置２００に収集要求を送信する。
具体的には、制御部３１１が収集要求を生成し、送信部３９２が収集要求をデータ収集装置２００に送信する。
収集要求は、ノード情報１１０を含んでいる。
ノード情報１１０は、ノード３００によって得られるデータの情報である。
【００３４】
ノード情報１１０は、ノード識別子、未収集データ量、計測間隔およびデータ量情報を含む。
ノード識別子は、ノード３００を識別する識別子である。
未収集データ量は、収集されていないデータの量である。
計測間隔は、計測が行われる間隔を示す時間である。
データ量情報は、単位時間当たりのデータ量を示す。具体的には、データ量はデータの件数である。
ノード情報１１０は、記憶部３９１に記憶されている。
【００３５】
図５に、ノード情報１１０の具体例を示す。
１つ目のノード情報１１０は、ノード（１）のノード情報１１０である。ノード（１）のノード情報１１０において、未収集データ量は０件であり、計測間隔は１秒である。また、データ量情報は、１０秒ごとに１０件である。
２つ目のノード情報１１０は、ノード（２）のノード情報１１０である。ノード（２）のノード情報１１０において、未収集データ量は０件であり、計測間隔は１秒である。また、データ量情報は、１０秒ごとに５０件である。
３つ目のノード情報１１０は、ノード（３）のノード情報１１０である。ノード（３）のノード情報１１０において、未収集データ量は０件であり、計測間隔は１秒である。また、データ量情報は、１０秒ごとに４０件である。
４つ目のノード情報１１０は、ノード（４）のノード情報１１０である。ノード（４）のノード情報１１０において、未収集データ量は０件であり、計測間隔は１秒である。また、データ量情報は、１０秒ごとに４０件である。
５つ目のノード情報１１０は、ノード（５）のノード情報１１０である。ノード（５）のノード情報１１０において、未収集データ量は４４件であり、計測間隔は１秒である。また、データ量情報は、１０秒ごとに２０件である。
ノード（１）からノード（４）は既存のノード３００であり、ノード（５）は新たに接続されたノード３００であると想定する。ノード（５）は新たに接続されたノード３００であるため、ノード（５）には未収集データが有る。
【００３６】
図４に戻り、ステップＳ１０２から説明を続ける。
ステップＳ１０２において、データ収集装置２００は、それぞれのノード３００から収集要求を受信する。
具体的には、受信部２９３が収集要求を受信し、記憶部２９１が収集要求に含まれるノード情報１１０をノード管理テーブル１２０に登録する。ノード管理テーブル１２０は記憶部２９１に記憶されるテーブルである。
【００３７】
図６に、ノード管理テーブル１２０の具体例を示す。
ノード管理テーブル１２０は、ノード識別子と前回収集時刻と未収集データ量と計測間隔とデータ量情報とのそれぞれの欄を有する。
ノード識別子の欄には、ノード識別子が登録される。
前回収集時刻の欄には、前回収集時刻が登録される。前回収集時刻は、データが収集された前回の時刻である。
未収集データ量の欄には、ノード情報１１０に含まれる未収集データ量が登録される。
計測間隔の欄には、ノード情報１１０に含まれる計測間隔が登録される。
データ量情報の欄には、ノード情報１１０に含まれるデータ量情報が登録される。
【００３８】
図４に戻り、ステップＳ１０２の説明を続ける。
次に、データ収集装置２００は、収集スケジュールを決定する。
具体的には、スケジュール決定部２２０が、ノード３００毎のノード情報１１０に基づいて、収集スケジュールを決定する。
収集スケジュールは、それぞれのノード３００からデータを収集するためのスケジュールである。
収集スケジュールを決定する方法については後述する。
【００３９】
そして、データ収集装置２００は、それぞれのノード３００に収集応答を送信する。
具体的には、スケジュール決定部２２０が、収集スケジュールに基づいてスケジュール情報１３０を生成する。次に、制御部２１０が、スケジュール情報１３０を含んだ収集応答を生成する。そして、送信部２９４が収集応答を送信する。
収集応答は、スケジュール情報１３０を含んでいる。
スケジュール情報１３０は、収集スケジュールを示す情報である。
【００４０】
スケジュール情報１３０は、ノード識別子、次回収集時刻および次回データ量を含む。
ノード識別子は、ノード３００を識別する識別子である。
次回収集時刻は、次回の収集が行われる時刻である。
次回データ量は、次回に収集されるデータの量である。
【００４１】
図７に、スケジュール情報１３０の具体例を示す。
１つ目のスケジュール情報１３０は、ノード（１）のスケジュール情報１３０である。
２つ目のスケジュール情報１３０は、ノード（２）のスケジュール情報１３０である。
３つ目のスケジュール情報１３０は、ノード（３）のスケジュール情報１３０である。
４つ目のスケジュール情報１３０は、ノード（４）のスケジュール情報１３０である。
５つ目のスケジュール情報１３０は、ノード（５）のスケジュール情報１３０である。
ノード（１）からノード（４）のそれぞれのスケジュール情報１３０には、次回収集時刻および次回データ量が設定されている。
ノード（５）は新たに接続されたノード３００であるため、ノード（５）のスケジュール情報１３０には、次回収集時刻および次回データ量が設定されてない。
【００４２】
図４に戻り、ステップＳ１０３から説明を続ける。
ステップＳ１０３において、各ノード３００は、データ収集装置２００から収集応答を受信する。
具体的には、受信部３９３が収集応答を受信し、記憶部３９１が収集応答に含まれるスケジュール情報１３０を記憶する。
【００４３】
ステップＳ１０４において、それぞれのノード３００は、データ収集装置２００に収集要求を送信する。
具体的には、制御部３１１が、スケジュール情報１３０が示す次回データ量と同じ量の収集データ１４０を含んだ収集要求を生成する。そして、スケジュール情報１３０が示す次回収集時刻に、送信部３９２が収集要求をデータ収集装置２００に送信する。
収集要求は、収集データ１４０とノード情報１１０とを含んでいる。
収集データ１４０は、ノード３００によって得られてデータ収集装置２００によって収集されるデータである。
【００４４】
収集データ１４０は、計測時刻、計測値および装置識別子を含む。
計測時刻は、計測が行われた時刻である。
計測値は、計測によって得られた値である。計測値は、１つであってもよいし、複数であってもよい。
装置識別子は、計測を行った計測装置を識別する識別子である。
【００４５】
図８に、収集データ１４０の具体例を示す。
それぞれの収集データ１４０は、計測装置（１００００００１）によって得られたデータであり、計測時刻と計測値と装置識別子とを含んでいる。
【００４６】
図４に戻り、ステップＳ１０５から説明を続ける。
ステップＳ１０５において、データ収集装置２００は、それぞれのノード３００から収集要求を受信する。
具体的には、受信部２９３が収集要求を受信し、記憶部２９１が収集要求に含まれるノード情報１１０をノード管理テーブル１２０に登録する。
【００４７】
そして、データ収集装置２００は、収集スケジュールの変更が必要であるか判定する。
具体的には、スケジュール決定部２２０が、ノード３００毎のノード情報１１０に基づいて、収集スケジュールの変更条件が満たされるか判定する。
例えば、収集データが多く滞留している場合、収集スケジュールの変更が必要である。例えば、収集スケジュールの変更条件は、データ量情報が示すデータ量に対する未収集データ量の比が閾値を超えるという条件である。
収集スケジュールの変更が必要である場合、処理はステップＳ１０６に進む。
収集スケジュールの変更が不要である場合、処理はステップＳ１０７に進む。
【００４８】
ステップＳ１０６において、データ収集装置２００は、収集スケジュールを決定する。
具体的には、スケジュール決定部２２０が、ノード３００毎のノード情報１１０に基づいて、収集スケジュールを決定する。
収集スケジュールを決定する方法については後述する。
【００４９】
ステップＳ１０７において、データ収集装置２００は、各ノード３００の収集データ１４０を蓄積する。
具体的には、蓄積部２９２が収集要求に含まれる収集データ１４０をノード３００毎に蓄積する。
【００５０】
そして、データ収集装置２００は、それぞれのノード３００に収集応答を送信する。
具体的には、スケジュール決定部２２０が、収集スケジュールに基づいてスケジュール情報１３０を生成する。次に、制御部２１０が、収集結果とスケジュール情報１３０とを含んだ収集応答を生成する。そして、送信部２９４が収集応答を送信する。
収集応答は、収集結果とスケジュール情報１３０とを含んでいる。
収集結果は、データ収集の結果を示す。
【００５１】
ステップＳ１０８において、各ノード３００は、データ収集装置２００から収集応答を受信する。
具体的には、受信部３９３が収集応答を受信し、記憶部３９１が収集応答に含まれるスケジュール情報１３０を記憶する。
【００５２】
ステップＳ１０８の後、ステップＳ１０４からステップＳ１０８までの手順と同じ手順でデータ収集が繰り返し行われる。
【００５３】
図９に基づいて、スケジュール決定方法を説明する。
スケジュール決定方法において、スケジュール決定部２２０は、ノード３００毎のノード情報１１０に基づいて、収集スケジュールを決定する。
【００５４】
ステップＳ２０１において、スケジュール決定部２２０は、基準データ量と各ノード３００のデータ量情報とに基づいて、収集間隔範囲を算出する。
収集間隔範囲は、収集間隔ｉの範囲である。収集間隔範囲の下限をｍｉｎと記し、収集間隔範囲の上限をｍａｘと記す。
収集間隔ｉは、それぞれのノード３００からデータを収集する間隔を示す時間である。
基準データ量は、１回に収集されるデータ量の下限として予め決められた数である。
【００５５】
具体的には、スケジュール決定部２２０は、収集間隔範囲を以下のように算出する。
まず、スケジュール決定部２２０は、単位時間当たりのデータ量が最も少ないデータ量情報をノード管理テーブル１２０から選択する。図６において、選択されるデータ量情報は、ノード（１）のデータ量情報である。ノード（１）のデータ量情報は、１０秒ごとに１０件である。
そして、スケジュール決定部２２０は、選択したデータ量情報を用いて、基準データ量を得るために必要な時間を算出する。算出される時間が、収集間隔範囲の下限である。基準データ量が１０件である場合、収集間隔範囲の下限は１０秒となる。
収集間隔範囲の上限は、予め決められた時間である。例えば、収集間隔範囲の上限は６０秒である。
【００５６】
ステップＳ２０２において、スケジュール決定部２２０は、収集間隔範囲から収集間隔ｉを選択する。
具体的には、スケジュール決定部２２０は、収集間隔範囲の下限を収集間隔ｉに設定する。
【００５７】
ここで、収集間隔について説明する。
一般に、収集間隔が短いと収集処理が小さく分割されるため、全体の収集負荷を平滑化しやすくなる。
しかし、データ量に対する処理負荷は、必ずしもデータ量に比例しない。一般に、一度に処理されるデータ量が多いほど処理効率が高くなって一度に処理されるデータ量が少ないほど処理効率が低くなるからである。
そのため、収集間隔が短くて一度に処理されるデータ量が少ないと、処理効率が低下してしまう。
そこで、１回に収集されるデータ量の下限（基準データ量）を設けることによって、処理効率の低下を抑える。
【００５８】
また、収集間隔が長いとデータ収集装置２００が各ノード３００からデータを収集するために要する時間が長くなる傾向がある。
そこで、各ノード３００からデータを収集するために要する時間の要件を元に、収集間隔の上限が決定される。
【００５９】
ステップＳ２０３から説明を続ける。
ステップＳ２０３において、スケジュール決定部２２０は、収集間隔ｉを収集間隔範囲の上限と比較する。
収集間隔ｉが収集間隔範囲の上限以下である場合、処理はステップＳ２０４に進む。
収集間隔ｉが収取間隔範囲の上限より大きい場合、収集スケジュールが決定されずに処理は終了する。この場合、各ノード３００からデータを収集することができない。
【００６０】
ステップＳ２０４において、スケジュール決定部２２０は、ノード３００毎のデータ量情報に基づいて、収集間隔データ量をノード３００毎に算出する。
収集間隔データ量は、収集間隔ｉの間に得られるデータ量である。
例えば、データ量情報が示すデータ量が１０秒ごとに１０件であり、収集間隔ｉが１０秒である場合、収集間隔データ量は１０秒である。
【００６１】
ステップＳ２０５において、スケジュール決定部２２０は、収集間隔データ量に対する負荷量をノード３００毎に算出する。そして、スケジュール決定部２２０は、ノード３００毎の負荷量を用いて総負荷量を算出する。
負荷量は、データに対する処理に要する負荷の量である。具体的には、負荷量は、データに対する処理に要するＣＰＵ時間である。負荷量の例として、ＣＰＵ時間の他に、メモリ使用量またはディスク入出力量などがある。負荷量は処理コストともいう。
総負荷量は、負荷量の合計である。具体的には、総負荷量は、ＣＰＵ時間の合計である。
【００６２】
具体的には、スケジュール決定部２２０は、ノード毎に、収集間隔データ量に対応する負荷量を負荷量データ１５０から抽出する。そして、スケジュール決定部２２０は、ノード毎の負荷量を合計する。合計によって得られる負荷量が総負荷量である。
負荷量データ１５０は、データ量と負荷量とを互いに対応付けたデータである。例えば、負荷量データ１５０はグラフ、表または方程式である。
【００６３】
図１０に、負荷量データ１５０の具体例を示す。
図１０に示すように、負荷量は、必ずしもデータ量に比例しない。
一般に、一度に処理されるデータ量が多いほど処理効率が高くなって一度に処理されるデータ量が少ないほど処理効率が低くなるからである。
【００６４】
図９に戻り、ステップＳ２０６から説明を続ける。
ステップＳ２０６において、スケジュール決定部２２０は、総負荷量を許容負荷量と比較する。
許容負荷量は、許容される負荷量である。総負荷量がＣＰＵ時間の合計である場合、許容負荷量は収集間隔ｉである。つまり、スケジュール決定部２２０は、ＣＰＵ時間の合計を収集間隔ｉと比較する。
総負荷量が許容負荷量以下である場合、処理はステップＳ２０８に進む。
総負荷量が許容負荷量より多い場合、処理はステップＳ２０７に進む。
【００６５】
ステップＳ２０７において、スケジュール決定部２２０は、収集間隔ｉを新たに選択する。
具体的には、スケジュール決定部２２０は、収集間隔ｉに追加時間Δを加える。つまり、スケジュール決定部２２０は、時間の短い順に収集間隔ｉを選択する。
例えば、追加時間Δは、収集間隔範囲をＮ分割して得られる時間である。収集間隔範囲が１０秒から６０秒までの５０秒間であり、収集間隔範囲が１０分割された場合、追加時間Δは５秒である。
ステップＳ２０７の後、処理はステップＳ２０３に進む。
【００６６】
ステップＳ２０８において、スケジュール決定部２２０は、総負荷量と許容負荷量とを用いて余裕量を算出し、余裕量を余裕閾値と比較する。
余裕量は、総負荷量に対する許容負荷量の余りである。
余裕閾値は、余裕量と比較する閾値として予め決められた値である。
【００６７】
具体的には、スケジュール決定部２２０は、収集間隔ｉ（許容負荷量）からＣＰＵ時間の合計（総負荷量）を引いて余り時間を算出し、収集間隔ｉに対する余り時間の割合を算出する。算出される割合が余裕量である。例えば、収集間隔ｉが１０秒であり、ＣＰＵ時間の合計が７秒である場合、余り時間は３秒であり、余裕量は３０パーセントである。余裕閾値が２５パーセントである場合、余裕量は余裕閾値より多い。
【００６８】
余裕量が余裕閾値以上である場合、処理はステップＳ２０９に進む。
余裕量が余裕閾値より少ない場合、処理はステップＳ２１０に進む。
【００６９】
ステップＳ２０９において、スケジュール決定部２２０は、ノード３００毎の収集間隔データ量にノード３００毎の未収集データ量が追加された後の総負荷量が許容負荷量を超えない範囲で、ノード３００毎の収集間隔データ量にノード３００毎の未収集データ量を追加する。
【００７０】
具体的には、スケジュール決定部２２０は、以下のように未収集データ量の追加を行う。
（１）スケジュール決定部２２０は、ノード管理テーブル１２０から、未収集データ量がゼロでないノード３００を１つ選択する。
（２）次に、スケジュール決定部２２０は、選択したノード３００の未収集データ量を選択したノード３００の収集間隔データ量に加えた場合の総負荷量を算出する。
（３）次に、スケジュール決定部２２０は、総負荷量を許容負荷量と比較する。
（４）総負荷量が許容負荷量以下である場合、スケジュール決定部２２０は、選択したノード３００の未収集データ量を選択したノード３００の収集間隔データ量に加える。そして、処理は（１）に戻る。
（５）総負荷量が許容負荷量より大きい場合、スケジュール決定部２２０は、選択したノード３００の未収集データ量を選択したノード３００の収集間隔データ量に加えない。または、スケジュール決定部２２０は、選択したノード３００の未収集データ量の一部を選択したノード３００の収集間隔データ量に加える。そして、処理は終了する。
【００７１】
ステップＳ２０９の後、処理はステップＳ２１０に進む。
【００７２】
図１１に、ステップＳ２０９の前後における収集間隔データ量および負荷量の具体例を示す。
ノード（５）に未収集データがあって処理リソースに余裕がある場合、ノード（５）の収集間隔データ量にノード（５）の未収集データ量を加えることが可能である。ノード（５）の収集間隔データ量にノード（５）の未収集データ量が加えられた場合、ノード（５）の負荷量が増える。
【００７３】
図９に戻り、ステップＳ２１０を説明する。
ステップＳ２１０において、スケジュール決定部２２０は、収集間隔ｉを用いて収集スケジュールを決定する。記憶部２９１は収集スケジュールを記憶する。
具体的には、スケジュール決定部２２０は、収集スケジュールを以下のように決定する。
まず、スケジュール決定部２２０は、収集間隔ｉを用いて全体収集時間帯を決定する。全体収集時間帯は、収集間隔ｉと同じ長さの時間を有する時間帯である。
次に、スケジュール決定部２２０は、各ノード３００の収集順を決定する。例えば、スケジュール決定部２２０は、新たに接続されたノード３００および未収集データを有するノード３００を前に並べて、その後ろに、残りのノード３００を前回と同じ順番で並べる。
次に、スケジュール決定部２２０は、ノード３００毎に、収集間隔データ量を用いて収集時間長を算出する。収集時間長は、収集間隔データ量のデータを収集するために必要な時間である。
次に、スケジュール決定部２２０は、収集時間長の合計を算出し、全体収集時間帯と収集時間長の合計との差分を算出し、差分をノード数で割って挿入時間を算出する。挿入時間は、各ノード３００の収集時間の間に挿入する時間である。
そして、スケジュール決定部２２０は、全体収集時間帯における各ノード３００の収集時間帯を決定する。収集時間帯は、収集時間長を有する時間帯である。収集時間帯の先頭時刻を収集時刻という。
【００７４】
図１２に、収集スケジュールのイメージを示す。
収集間隔は１０秒であり、ノード（５）、ノード（４）、ノード（３）、ノード（２）、ノード（１）の順で収集される。それぞれの収集間隔データ量は、６４件、４０件、４０件、５０件、１０件である。それぞれの収集時間帯の間には、挿入時間Ｔｗが挿入されている。
【００７５】
図１３に、収集スケジュールの具体例を示す。
ノード識別子は、ノード３００を識別する。
次回収集時刻は、次回の収集が行われる時刻である。
次回データ量は、次回に収集されるデータの量である。
次々回収集時刻は、次々回の収集が行われる時刻であり、次回収集時刻を元に決定される。
次々回データ量は、次々回に収集されるデータの量である。
【００７６】
＊＊＊実施の形態１の効果＊＊＊
複数のノード３００からデータを収集するデータ収集方法において、データ収集装置２００は、各ノード３００から未収集データ量および単位時間当たりのデータ量等の情報を受けて、各ノード３００から収集するデータ量に応じた収集のスケジューリングを行う。これにより、データ収集装置２００において、収集負荷を平滑化させることが可能となる。
【００７７】
＊＊＊他の構成＊＊＊
蓄積部２９２は、データ収集装置２００の外部にあってもよい。つまり、収集データが蓄積されるデータベースは、データ収集装置２００に備えてもよいし、データ収集装置２００の外部に設けてもよい。
【００７８】
データ収集装置２００は、複数のコンピュータで構成されてもよい。例えば、データ収集装置２００は、制御部２１０および蓄積部２９２として機能するコンピュータと、スケジュール決定部２２０として機能するコンピュータとの２台のコンピュータで構成されてもよい。
【００７９】
ノード３００は中継装置であってもよい。
中継装置は、計測装置とデータ収集装置２００との間でデータを中継する。つまり、中継装置は、各計測装置からデータを受信し、受信したデータをデータ収集装置２００に送信する。例えば、中継装置は、電力メータに対するコンセントレータである。
【００８０】
図１４に、中継装置であるノード３００を備えるデータ収集システム１００の例を示す。
データ収集システム１００は、３つの計測装置１０２と２つのノード３００とデータ収集装置２００とを備えている。
ノード（１）は中継装置である。ノード（１）には３つの計測装置１０２が接続されている。ノード（１）は各計測装置１０２からデータを受け取る。
ノード（２）は計測装置である。
データ収集装置２００は、ノード（１）とノード（２）からデータを収集する。
【００８１】
実施の形態２．
複数のノード３００をグループ分けしてグループ毎に収集スケジュールを決定する形態について、主に実施の形態１と異なる点を図１５から図２０に基づいて説明する。
【００８２】
＊＊＊構成の説明＊＊＊
図１５に基づいて、データ収集システム１００の構成を説明する。
データ収集システム１００は、実施の形態１と同じく、データ収集装置２００と複数のノード３００とを備える。
具体的には、データ収集システム１００は、ノード（１）からノード（９）の９つのノード３００を備える。
【００８３】
図１６に基づいて、データ収集装置２００の構成を説明する。
データ収集装置２００は、複数のプロセッサ２０１を備える。具体的には、データ収集装置２００は、２つのプロセッサ２０１を備える。
データ収集装置２００の他の構成は、実施の形態１における構成と同じである。
【００８４】
＊＊＊動作の説明＊＊＊
データ収集方法の全体の流れは、実施の形態１（図４参照）と同じである。
【００８５】
図１７に基づいて、スケジュール決定方法を説明する。
ステップＳ２０１からステップＳ２０４およびステップＳ２０７は、実施の形態１（図９参照）で説明した通りである。
【００８６】
ステップＳ２２１において、スケジュール決定部２２０は、収集間隔データ量に対する負荷量をノード３００毎に算出する。負荷量を算出する方法は、ステップＳ２０５（実施の形態１の図９参照）における方法と同じである。
【００８７】
次に、スケジュール決定部２２０は、複数のノード３００を複数のノードグループに分ける。
具体的には、データ収集システム１００が９つのノード３００を備え、データ収集装置２００が２つのプロセッサ２０１を備えるため、スケジュール決定部２２０は、９つのノード３００を２つのノードグループに分ける。
【００８８】
そして、スケジュール決定部２２０は、ノードグループ毎に、ノードグループに属する各ノード３００の負荷量を合計して、総負荷量を算出する。
【００８９】
図１８に、ノードグループとノードグループに属するノード３００のノード情報とノードグループに属するノード３００の負荷量とを示す。
第１ノードグループには、ノード（１）からノード（５）の５つのノード３００が属する。
第２ノードグループは、ノード（６）からノード（９）の４つのノード３００が属する。
第１ノードグループの総負荷量は４７５４．７ミリ秒であり、第２ノードグループの総負荷量は３２７４．７秒であり、どちらのノードグループの総負荷量も５秒未満である。
【００９０】
図１７に戻り、ステップＳ２２２から説明を続ける。
ステップＳ２２２において、スケジュール決定部２２０は、ノードグループ毎に、総負荷量を許容負荷量と比較する。
いずれのノードグループの総負荷量も許容負荷量以下である場合、処理はステップＳ２２３に進む。
少なくともいずれかのノードグループの総負荷量が許容負荷量より多い場合、処理はステップＳ２０７に進む。
【００９１】
図１８において、いずれのグループの総負荷量も５秒未満である。そのため、収集間隔ｉが５秒である場合、いずれのノードグループの総負荷量も許容負荷量（収集間隔ｉ）以下である。
【００９２】
図１７に戻り、ステップＳ２２３から説明を続ける。
ステップＳ２２３において、スケジュール決定部２２０は、ノードグループ毎に余裕量を算出し、ノードグループ毎に余裕量を余裕閾値と比較する。余裕量を算出する方法は、ステップＳ２０８（実施の形態１の図９参照）における方法と同じである。
少なくともいずれかのノードグループの余裕量が余裕閾値以上である場合、処理はステップＳ２２４に進む。
いずれのノードグループの余裕量も余裕閾値より少ない場合、処理はステップＳ２２５に進む。
【００９３】
ステップＳ２２４において、スケジュール決定部２２０は、余裕ノードグループを対象にして未収集データ量の追加を行う。
余裕ノードグループは、余裕閾値以上の余裕量を有するノードグループである。
未収集データ量の追加は、ステップＳ２０９（実施の形態１の図９参照）で説明した処理である。
【００９４】
ステップＳ２２５において、スケジュール決定部２２０は、ノードグループ毎に収集スケジュールを決定する。収集スケジュールを決定する方法は、ステップＳ２１０（実施の形態１の図９参照）における方法と同じである。
【００９５】
図１９に、収集スケジュールのイメージを示す。
収集間隔は５秒である。
第１ノードグループにおいて、ノード（５）、ノード（４）、ノード（３）、ノード（２）、ノード（１）の順で収集される。それぞれの収集間隔データ量は、２０件、４０件、４０件、５０件、１０件である。それぞれの収集時間帯の間には、挿入時間Ｔｗ１が挿入されている。
第２ノードグループにおいて、ノード（９）、ノード（８）、ノード（７）、ノード（６）の順で収集される。それぞれの収集間隔データ量は、３０件、４０件、２０件、２０件である。それぞれの収集時間帯の間には、挿入時間Ｔｗ２が挿入されている。
【００９６】
図２０に、収集スケジュールの具体例を示す。
収集スケジュールは、ノードグループ毎に決定されている。
【００９７】
＊＊＊実施の形態２の効果＊＊＊
複数のノード３００をグループ分けしてグループ毎に収集スケジュールを決定することができる。
【００９８】
＊＊＊実施の形態の補足＊＊＊
図２１に基づいて、データ収集装置２００のハードウェア構成を説明する。
データ収集装置２００は処理回路９９０を備える。
処理回路９９０は、制御部２１０とスケジュール決定部２２０と記憶部２９１とを実現するハードウェアである。
処理回路９９０は、専用のハードウェアであってもよいし、メモリ９０２に格納されるプログラムを実行するプロセッサ９０１であってもよい。
【００９９】
処理回路９９０が専用のハードウェアである場合、処理回路９９０は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ＡＳＩＣ、ＦＰＧＡまたはこれらの組み合わせである。
ＡＳＩＣはＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略称であり、ＦＰＧＡはＦｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略称である。
データ収集装置２００は、処理回路９９０を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路９９０の役割を分担する。
【０１００】
データ収集装置２００の機能について、一部が専用のハードウェアで実現されて、残りがソフトウェアまたはファームウェアで実現されてもよい。
【０１０１】
このように、処理回路９９０はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
【０１０２】
実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
【符号の説明】
【０１０３】
１００  データ収集システム、１０１  ネットワーク、１０２  計測装置、１１０  ノード情報、１２０  ノード管理テーブル、１３０  スケジュール情報、１４０  収集データ、１５０  負荷量データ、２００  データ収集装置、２０１  プロセッサ、２０２  メモリ、２０３  補助記憶装置、２０４  通信インタフェース、２１０  制御部、２２０  スケジュール決定部、２９１  記憶部、２９２  蓄積部、２９３  受信部、２９４  送信部、３００  ノード、３０１  プロセッサ、３０２  メモリ、３０３  補助記憶装置、３０４  通信インタフェース、３０５  センサインタフェース、３１１  制御部、３９１  記憶部、３９２  送信部、３９３  受信部、３９４  計測部、９９０  処理回路。
【図１】
0006599049.tif 000002
【図２】
0006599049.tif 000003
【図３】
0006599049.tif 000004
【図４】
0006599049.tif 000005
【図５】
0006599049.tif 000006
【図６】
0006599049.tif 000007
【図７】
0006599049.tif 000008
【図８】
0006599049.tif 000009
【図９】
0006599049.tif 000010
【図１０】
0006599049.tif 000011
【図１１】
0006599049.tif 000012
【図１２】
0006599049.tif 000013
【図１３】
0006599049.tif 000014
【図１４】
0006599049.tif 000015
【図１５】
0006599049.tif 000016
【図１６】
0006599049.tif 000017
【図１７】
0006599049.tif 000018
【図１８】
0006599049.tif 000019
【図１９】
0006599049.tif 000020
【図２０】
0006599049.tif 000021
【図２１】
0006599049.tif 000022