(57)【特許請求の範囲】
【請求項１】
ネットワークを介して複数のノードからデータを収集するデータ収集装置において、
所定クロック数を有する１周期ごとに、各ノードから１回ずつデータを収集するデータ収集部と、
前記データ収集部によるデータ収集の収集結果から、正常にデータ収集できた収集結果に該当するノードのノード情報を含む成功リストと、正常にデータ収集できなかった収集結果に該当するノードのノード情報を含む失敗リストとを生成する第１生成部と、
前記ネットワークの全ノード数及びクロック単位で収集可能なノード数から求められる、前記所定クロック数より少ないクロック数に対応する各クロックに、前記第１生成部によって生成された失敗リストに含まれるノード情報を分散させて割り当てるとともに、前記第１生成部によって生成された成功リストに含まれるノード情報を割り当てて、次周期のデータ収集順序を決定する収集リストを生成する第２生成部と
を有することを特徴とするデータ収集装置。
【請求項２】
前記第２生成部は、前記失敗リストに含まれるノード情報の数を前記ネットワークの全ノード数及びクロック単位で収集可能なノード数から求められる前記所定クロック数より少ないクロック数で除算した結果である除算結果値を、前記失敗リストからクロック単位に割り当てるノード情報の数とし、クロック単位で収集可能なノード数から前記除算結果値を減算した結果である減算結果値を、前記成功リストからクロック単位に割り当てるノード情報の数として、前記収集リストを生成することを特徴とする請求項１に記載のデータ収集装置。
【請求項３】
前記ネットワークは、ツリー状の階層構造を有するネットワークであって、
前記第２生成部は、距離が互いに遠いノードを組み合わせて同一クロックに割り当てることにより、前記収集リストを生成することを特徴とする請求項２に記載のデータ収集装置。
【請求項４】
各周期内での前記データ収集部によるデータ収集後の残りクロック内において、前記失敗リストに含まれるノード情報に対応するノードから再度データ収集するデータ再収集部をさらに有することを特徴とする請求項１〜３のいずれか一つに記載のデータ収集装置。
【請求項５】
前記データ再収集部は、前記クロック単位で収集可能なノード数ごとに、前記失敗リストの先頭側と末尾側とに保持されるノード情報を交互に取得し、取得したノード情報に対応するノードから再度データ収集することを特徴とする請求項４に記載のデータ収集装置。
【請求項６】
ネットワークを介して複数のノードからデータを収集するデータ収集プログラムにおいて、
所定クロック数を有する１周期ごとに、各ノードから１回ずつデータを収集し、
データ収集の収集結果から、正常にデータ収集できた収集結果に該当するノードのノード情報を含む成功リストと、正常にデータ収集できなかった収集結果に該当するノードのノード情報を含む失敗リストとを生成し、
前記ネットワークの全ノード数及びクロック単位で収集可能なノード数から求められる、前記所定クロック数より少ないクロック数に対応する各クロックに、前記失敗リストに含まれるノード情報を分散させて割り当てるとともに、前記成功リストに含まれるノード情報を割り当てて、次周期のデータ収集順序を決定する収集リストを生成する
処理をコンピュータに実行させることを特徴とするデータ収集プログラム。
【請求項７】
コンピュータによって実行される、ネットワークを介して複数のノードからデータを収集するデータ収集方法において、
所定クロック数を有する１周期ごとに、各ノードから１回ずつデータを収集し、
データ収集の収集結果から、正常にデータ収集できた収集結果に該当するノードのノード情報を含む成功リストと、正常にデータ収集できなかった収集結果に該当するノードのノード情報を含む失敗リストとを生成し、
前記ネットワークの全ノード数及びクロック単位で収集可能なノード数から求められる、前記所定クロック数より少ないクロック数に対応する各クロックに、前記失敗リストに含まれるノード情報を分散させて割り当てるとともに、前記成功リストに含まれるノード情報を割り当てて、次周期のデータ収集順序を決定する収集リストを生成する
ことを特徴とするデータ収集方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ収集装置、データ収集プログラム及びデータ収集方法に関する。
【背景技術】
【０００２】
従来、ツリー状の階層構造を有するネットワークシステムでは、例えば、階層構造の頂点にあたる本部の装置によって、本部に対し階層の下位にあたる複数の拠点の装置からデータが収集される。このようなネットワークシステムの一つの様態としては、映像監視システムがある。
【０００３】
映像監視システムでは、例えば、複数の拠点から受け付けた映像ストリームを動画として蓄積したり、受け付けた映像ストリームから静止画を生成したりして、各拠点を監視することが行なわれる。ここで、映像監視システムにおいては、映像ストリームを動画として蓄積する場合に、蓄積容量を圧迫するため、静止画を利用することが好ましい。
【０００４】
また、映像監視システムでは、例えば、映像ストリームの伝送専用にネットワークの構築がなされていない場合に、伝送に要する帯域を確保できずに映像ストリームを送信できないことがある。また、映像監視システムでは、例えば、下位層の拠点からの映像ストリームの送信が重なる場合に、帯域が不足することで通信を行なうことができないこともある。これらに対応するため、本部で受信されるデータ数を減らすために動作する機能部を手動で減らしたり、ネットワークの構成情報に基づいてデータ収集のスケジュールを手動で調整したりすることがある。
【０００５】
スケジューリングに関する技術では、例えば、複数装置の処理順序を組み替えつつスケジュールを評価して、より良いスケジュールを求めるものや、決められた優先度に基づいてスケジューリングしたりするものがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０５−１８９４４８号公報
【特許文献２】特開２００８−９０８４５号公報
【特許文献３】特開平０９−２５１３０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術では、ネットワークにおけるデータ収集のための効率的なスケジューリングを行なうことができないという問題がある。スケジュールを評価する従来技術は、特定装置の稼働率を落とすことがないようにスケジューリングするものであり、ツリー状の階層構造を有するネットワークにおける複数の拠点からデータを収集する映像監視システムには適用することが困難である。また、優先度に基づいてスケジューリングする従来技術は、同様に、ツリー状の階層構造を有するネットワークにおける複数の拠点からデータを収集する映像監視システムには適用することが困難である。また、スケジュールを手動で調整する場合には、拠点数が膨大であったり、複雑なネットワーク構成であったりすると、スケジューリングを行なうことさえ困難である。さらに、映像監視システムのように、リアルタイムで状況を把握することが好ましいシステムにおいては、映像ストリームの送信ができなければ監視する意味が薄れてしまう。
【０００８】
そこで、本願に開示する技術は、上記に鑑みてなされたものである。本願に開示する技術は、ネットワークにおけるデータ収集のための効率的なスケジューリングを行なうことが可能であるデータ収集装置、データ収集プログラム及びデータ収集方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、本願に開示するデータ収集装置は、ネットワークを介して複数のノードからデータを収集するデータ収集装置において、所定クロック数を有する１周期ごとに、各ノードから１回ずつデータを収集するデータ収集部と、前記データ収集部によるデータ収集の収集結果から、正常にデータ収集できた収集結果に該当するノードのノード情報を含む成功リストと、正常にデータ収集できなかった収集結果に該当するノードのノード情報を含む失敗リストとを生成する第１生成部と、前記ネットワークの全ノード数及びクロック単位で収集可能なノード数から求められる、前記所定クロック数より少ないクロック数に対応する各クロックに、前記第１生成部によって生成された失敗リストに含まれるノード情報を分散させて割り当てるとともに、前記第１生成部によって生成された成功リストに含まれるノード情報を割り当てて、次周期のデータ収集順序を決定する収集リストを生成する第２生成部とを有する。
【発明の効果】
【００１０】
本願に開示するデータ収集装置、データ収集プログラム及びデータ収集方法の一つの様態は、ネットワークにおけるデータ収集のための効率的なスケジューリングを行なうことができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、データ収集装置を含むネットワークのシステム構成例を示す図である。
【図２Ａ】図２Ａは、本部及び拠点間におけるＩＧＭＰｖ２パケットのフォーマット例を示す図である。
【図２Ｂ】図２Ｂは、拠点及び拠点間におけるＰＩＭ‐ＳＭパケットのフォーマット例を示す図である。
【図３】図３は、実施例１に係るデータ収集装置の構成例を示す図である。
【図４】図４は、実施例１に係る収集対象リストに保持される情報の例を示す図である。
【図５Ａ】図５Ａは、データ収集装置による処理当初の収集対象リストの例を示す図である。
【図５Ｂ】図５Ｂは、１周期目の収集処理実行結果と、成功リストと、失敗リストとの例を示す図である。
【図５Ｃ】図５Ｃは、１周期目における収集処理実行結果とクロックとの関係を示す図である。
【図５Ｄ】図５Ｄは、１周期目のリカバリ処理を説明する図である。
【図５Ｅ】図５Ｅは、１周期目のリカバリ処理を説明する図である。
【図６Ａ】図６Ａは、実施例１に係る収集対象リストの生成について説明する図である。
【図６Ｂ】図６Ｂは、実施例１に係る収集対象リストの生成について説明する図である。
【図６Ｃ】図６Ｃは、実施例１に係る収集対象リストの生成について説明する図である。
【図６Ｄ】図６Ｄは、実施例１に係る収集対象リストの生成について説明する図である。
【図６Ｅ】図６Ｅは、実施例１に係る収集対象リストの生成について説明する図である。
【図６Ｆ】図６Ｆは、実施例１に係る収集対象リストの生成について説明する図である。
【図６Ｇ】図６Ｇは、実施例１に係る収集対象リストの生成について説明する図である。
【図６Ｈ】図６Ｈは、実施例１に係る収集対象リストの生成について説明する図である。
【図６Ｉ】図６Ｉは、２周期目の収集処理実行結果とクロックとの関係を示す図である。
【図６Ｊ】図６Ｊは、３周期目の収集処理実行結果とクロックとの関係を示す図である。
【図７】図７は、実施例１に係るデータ収集処理の流れの例を示すフローチャートである。
【図８】図８は、実施例１に係るリカバリ処理の流れの例を示すフローチャートである。
【図９】図９は、実施例１に係る収集対象リスト生成処理の流れの例を示すフローチャートである。
【図１０】図１０は、実施例２に係るカメラのＩＰアドレスの例を示す図である。
【図１１Ａ】図１１Ａは、実施例２に係る収集対象リストの生成について説明する図である。
【図１１Ｂ】図１１Ｂは、実施例２に係る収集対象リストの生成について説明する図である。
【図１１Ｃ】図１１Ｃは、実施例２に係る収集対象リストの生成について説明する図である。
【図１１Ｄ】図１１Ｄは、実施例２に係る収集対象リストの生成について説明する図である。
【図１１Ｅ】図１１Ｅは、実施例２に係る収集対象リストの生成について説明する図である。
【図１１Ｆ】図１１Ｆは、実施例２に係る収集対象リストの生成について説明する図である。
【図１１Ｇ】図１１Ｇは、実施例２に係る収集対象リストの生成について説明する図である。
【図１１Ｈ】図１１Ｈは、実施例２に係る収集対象リストの生成について説明する図である。
【図１１Ｉ】図１１Ｉは、実施例２に係る収集対象リストの生成について説明する図である。
【図１１Ｊ】図１１Ｊは、実施例２に係る収集対象リストの生成について説明する図である。
【図１１Ｋ】図１１Ｋは、実施例２に係る収集対象リストの生成について説明する図である。
【図１１Ｌ】図１１Ｌは、実施例２に係る収集対象リストの生成について説明する図である。
【図１１Ｍ】図１１Ｍは、実施例２に係る収集対象リストの生成について説明する図である。
【図１１Ｎ】図１１Ｎは、実施例２に係る収集対象リストの生成について説明する図である。
【図１１Ｏ】図１１Ｏは、２周期目の収集処理実行結果とクロックとの関係を示す図である。
【図１２Ａ】図１２Ａは、実施例２に係る収集対象リスト生成処理の流れの例を示すフローチャートである。
【図１２Ｂ】図１２Ｂは、実施例２に係る収集対象リスト生成処理の流れの例を示すフローチャートである。
【図１３】図１３は、データ収集プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、本願に開示するデータ収集装置、データ収集プログラム及びデータ収集方法の実施例を説明する。なお、以下の実施例により本発明が限定されるものではない。また、各実施例は、内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１３】
［システム構成］
図１を用いて、本願に開示するデータ収集装置を含むネットワークのシステム構成を説明する。図１は、データ収集装置を含むネットワークのシステム構成例を示す図である。なお、以下では、ツリー状の階層構造を有するネットワークにおいて、各拠点に配置されたカメラによって撮像された映像ストリームを収集する、本部に配置されたデータ収集装置を含む映像監視システムを例に挙げる。
【００１４】
例えば、図１に示すように、映像監視システムは、ツリー状の階層構造を有するネットワーク内に、データ収集装置を配置する本部と、任意台数のカメラを配置する複数拠点とを含む。また、各拠点は、例えば、ルータ等の中継装置を有する。図１の例において、拠点０１には、カメラ０１−１が配置される。同様に、拠点０２には、カメラ０２−１と、カメラ０２−２とが配置される。同様に、拠点１１には、カメラ１１−１と、カメラ１１−２と、カメラ１１−３とが配置される。同様に、拠点１２には、カメラ１２−１が配置される。同様に、拠点１３には、カメラ１３−１と、カメラ１３−２とが配置される。同様に、拠点２１には、カメラ２１−１が配置される。同様に、拠点２２には、カメラ２２−１と、カメラ２２−２とが配置される。
【００１５】
また、映像監視システムにおけるネットワークは、一つの様態として、ＩＰ（Internet  Protocol）ネットワークで実現される。このような映像監視システムでは、例えば、本部及び拠点間、或いは拠点及び拠点間において、映像ストリームを送受可能な回線の帯域に制限が存在することがある。図１の（Ａ）に示す回線の帯域は、例えば、３映像ストリーム分を送受可能である。図１の（Ｂ）、（Ｃ）及び（Ｇ）に示す回線の帯域は、例えば、２映像ストリーム分を送受可能である。図１の（Ｄ）、（Ｅ）及び（Ｆ）に示す回線の帯域は、例えば、１映像ストリーム分を送受可能である。また、データ収集装置は、上述したネットワークにおける回線の構成や回線帯域等の構成情報を有していなくても良い。
【００１６】
上記構成において、映像監視システムにおけるデータ収集装置は、例えば、各拠点に配置されたカメラに対し、ネットワークを介して撮像要求を送信し、撮像された映像ストリームを収集する。詳細には、カメラは、撮像した映像ストリームをルータ等の拠点に対して常時送信している。そして、各ルータは、データ収集装置から受け付けた撮像要求に対して、該当するカメラの映像ストリームをデータ収集装置に対して送信する。ここで、本部及び拠点間では、例えば、ＩＧＭＰ（Internet  Group  Management  Protocol）ｖ２パケットが利用される。また、拠点及び拠点間では、例えば、ＰＩＭ‐ＳＭ（Protocol  Independent  Multicast‐Sparse  Mode）パケットが利用される。
【００１７】
図２Ａは、本部及び拠点間におけるＩＧＭＰｖ２パケットのフォーマット例を示す図である。例えば、ＩＧＭＰｖ２パケットフォーマットには、「タイプ（Type）」フィールドと、「最大応答時間（Max  Response  Time）」フィールドと、「チェックサム（Check  Sum）」フィールドと、「グループアドレス（Group  Address）」フィールドとが含まれる。図２Ｂは、拠点及び拠点間におけるＰＩＭ‐ＳＭパケットのフォーマット例を示す図である。例えば、ＰＩＭ‐ＳＭパケットフォーマットには、「バージョン（Version）」フィールドと、「タイプ」フィールドと、「アドレス領域長」フィールドと、「チェックサム」フィールドと、「メッセージ（Message）」フィールドとが含まれる。
【００１８】
また、データ収集装置は、例えば、収集した映像ストリームから静止画を生成する。その後、静止画を生成したデータ収集装置は、例えば、監視を終了する場合に、各拠点に配置されたカメラに対して撮像停止要求を送信する。これらにより、映像監視システムにおけるデータ収集装置は、生成した静止画を出力し、各拠点の監視を実現する。なお、データ収集装置による処理の詳細については後述する。
【００１９】
［データ収集装置の構成］
次に、図３を用いて、データ収集装置の構成を説明する。図３は、実施例１に係るデータ収集装置の構成例を示す図である。例えば、図３に示すように、データ収集装置１００は、記憶部１１０と、制御部１２０とを有する。
【００２０】
記憶部１１０は、例えば、制御部１２０による各種処理に要するデータや、制御部１２０による各種処理結果を記憶する。また、記憶部１１０は、例えば、収集対象リスト１１１と、成功リスト１１２と、失敗リスト１１３と、リカバリ対象リスト１１４とを有する。なお、記憶部１１０は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置である。
【００２１】
収集対象リスト１１１は、例えば、ある周期の映像ストリームの収集で利用され、カメラによって撮像された映像ストリームを収集する収集順に各カメラのカメラ情報を保持する。また、収集対象リスト１１１は、例えば、後述する収集対象リスト生成部１２５によって生成されるリストである。
【００２２】
図４は、実施例１に係る収集対象リスト１１１に保持される情報の例を示す図である。例えば、図４に示すように、収集対象リスト１１１は、映像ストリームの収集順に、「カメラＩＤ（identifier）」と、「カメラ名称」と、「映像ストリームアドレス」と、「実行結果」とを対応付けて保持する。例を挙げると、収集対象リスト１１１は、カメラＩＤ「１」と、カメラ名称「カメラ０１−１」と、映像ストリームアドレス「２３０．１１．１．１：１０１０１」と、実行結果「可」とを対応付けて保持する。他の例を挙げると、収集対象リスト１１１は、カメラＩＤ「２」と、カメラ名称「カメラ０２−１」と、映像ストリームアドレス「２３０．１１．２．１：１０２０１」と、実行結果「不可」とを対応付けて保持する。これらの情報のうち、「実行結果」は、映像ストリームの収集前であれば空の状態である。
【００２３】
成功リスト１１２は、例えば、各拠点のカメラから映像ストリームを正常に収集できた収集結果に該当する各カメラのカメラ情報を保持する。詳細には、映像監視システムにおける成功リスト１１２は、映像ストリームの収集及び静止画生成に成功したときの、映像ストリームの送信元であるカメラのカメラ情報を保持する。また、成功リスト１１２は、例えば、後述する収集結果受領部１２３によって生成されるリストである。
【００２４】
失敗リスト１１３は、例えば、各拠点のカメラから映像ストリームを正常に収集できなかった収集結果に該当する各カメラのカメラ情報を保持する。詳細には、映像監視システムにおける失敗リスト１１３は、映像ストリームの収集又は静止画生成に失敗したときの、映像ストリームの送信元であるカメラのカメラ情報を保持する。また、失敗リスト１１３は、例えば、後述する収集結果受領部１２３によって生成されるリストである。
【００２５】
リカバリ対象リスト１１４は、例えば、失敗リスト１１３と同様に、各拠点のカメラから映像ストリームを正常に収集又は静止画生成できなかった収集結果に該当する各カメラのカメラ情報を保持する。また、リカバリ対象リスト１１４は、例えば、後述するリカバリ処理部１２４によって生成されるリストである。
【００２６】
制御部１２０は、例えば、制御プログラム、各種の処理手順等を規定したプログラム及び所要データを格納するための内部メモリを有する。また、制御部１２０は、例えば、収集開始指示部１２１と、収集部１２２ａ〜１２２ｎ（ｎは、自然数）と、収集結果受領部１２３と、リカバリ処理部１２４と、収集対象リスト生成部１２５とを有する。なお、制御部１２０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路、又はＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路である。
【００２７】
収集開始指示部１２１は、例えば、収集対象リスト１１１に保持された収集順に従い、収集部１２２ａ〜１２２ｎに対して、所定クロック数を有する１周期ごとに映像ストリームの収集開始を指示する。また、収集開始指示部１２１は、同時にデータを収集する同時収集数について、予め決められた収集数に基づいて、収集部１２２ａ〜１２２ｎに収集開始を指示する。なお、収集開始指示部１２１は、クロックについて、例えば、クロックを生成するクロック生成部（図示しない）から取得する。
【００２８】
収集部１２２ａ〜１２２ｎは、例えば、所定クロック数を有する１周期ごとにカメラから映像ストリームを収集する。詳細には、収集部１２２ａ〜１２２ｎは、収集開始指示部１２１から映像ストリームの収集指示を受け付けた場合に、マルチキャストにより該当するカメラに対して撮像要求を送信する。すなわち、収集部１２２ａ〜１２２ｎは、上述したように、ネットワークの構成情報をデータ収集装置１００が有していなくても良いため、マルチキャストにより該当するカメラに対して撮像要求を送信する。
【００２９】
そして、収集部１２２ａ〜１２２ｎは、各カメラから映像ストリームを収集し、収集した映像ストリームから静止画を生成する。このとき、収集部１２２ａ〜１２２ｎは、正常に収集及び静止画生成できた場合に、正常に処理できた旨を該当するカメラ情報とともに収集結果受領部１２３に通知する。また、収集部１２２ａ〜１２２ｎは、正常に収集又は静止画生成できなかった場合に、正常に処理できなかった旨を該当するカメラ情報とともに収集結果受領部１２３に通知する。なお、収集部１２２ａ〜１２２ｎは、リカバリ処理部１２４から収集指示を受け付けた場合にも、映像ストリームを収集して静止画を生成する。このとき、収集部１２２ａ〜１２２ｎは、収集結果受領部１２３への通知は行なわない。
【００３０】
収集結果受領部１２３は、例えば、収集部１２２ａ〜１２２ｎから通知された映像ストリームの収集結果から、成功リスト１１２と失敗リスト１１３とを生成する。詳細には、収集結果受領部１２３は、収集部１２２ａ〜１２２ｎにおいて正常に収集及び静止画生成できた映像ストリームの送信元であるカメラのカメラ情報に基づいて、成功リスト１１２を生成する。また、収集結果受領部１２３は、収集部１２２ａ〜１２２ｎにおいて正常に収集又は静止画生成できなかった映像ストリームの送信元であるカメラのカメラ情報に基づいて、失敗リスト１１３を生成する。なお、収集結果受領部１２３は、成功リスト１１２及び失敗リスト１１３の生成処理後、生成完了した旨をリカバリ処理部１２４及び収集対象リスト生成部１２５に対して通知する。また、収集結果受領部１２３は、収集対象リスト１１１に保持される収集結果の反映も実行する。
【００３１】
リカバリ処理部１２４は、例えば、収集部１２２ａ〜１２２ｎによる映像ストリームの収集後の残りクロック内において、正常に収集又は静止画生成できなかった映像ストリームの送信元であるカメラから、映像ストリームを収集する処理を再度実行する。詳細には、リカバリ処理部１２４は、収集結果受領部１２３から成功リスト１１２及び失敗リスト１１３の生成完了通知を受け付ける。そして、リカバリ処理部１２４は、失敗リスト１１３にリスト生成されている場合に、生成されているリストをリカバリ対象リスト１１４に移行する。なお、リカバリ処理部１２４は、失敗リスト１１３にリスト生成されていない場合にはリカバリ処理を実行することなく処理を終了する。
【００３２】
続いて、リカバリ処理部１２４は、リカバリ処理における同時に映像ストリームを収集可能な数を求める。同時に映像ストリームを収集可能な数は、例えば、リカバリ処理での同時収集数を「Ｓ’」、収集待ち時間のクロックを「Ｍ」、リカバリ対象となるカメラの残数を「Ｒ」、該当周期内の残クロック数を「Ｑ」とすると、「Ｓ’＝（Ｍ×Ｒ）÷Ｑ」で求められる。なお、「Ｓ’」の計算結果が割り切れない場合には、計算結果の値を切り上げることとする。小数点以下の切り上げについては、例えば、切り上げの関数「ｃｅｉｌ」を利用して「Ｓ’＝ｃｅｉｌ（（Ｍ×Ｒ）÷Ｑ）」としても良い。また、この「Ｓ’」は、リカバリ処理ではない通常時における同時収集数、すなわち通常時に映像ストリームの収集に利用された収集部１２２ａ〜１２２ｎの数を「Ｓ」とすると、「Ｓ’≦Ｓ」であることを条件とする。要するに、リカバリ処理部１２４は、クロックが進むにつれて「Ｒ」も減少する場合があるので、「Ｓ’」をクロックごとに算出することで、その時点における最小の同時収集数「Ｓ’」を求める。
【００３３】
続いて、リカバリ処理部１２４は、同時に映像ストリームを収集可能な数「Ｓ’」ごとに、リカバリ対象リスト１１４の先頭側と末尾側とに存在するカメラ情報に対応するカメラから、交互に映像ストリームを収集する。映像ストリームを収集する際に、リカバリ処理部１２４は、収集開始指示部１２１と同様に、収集部１２２ａ〜１２２ｎに対して映像ストリームの収集開始を指示する。
【００３４】
収集対象リスト生成部１２５は、例えば、収集結果受領部１２３によって生成された成功リスト１１２及び失敗リスト１１３に基づいて、収集対象リスト１１１を生成する。詳細には、収集対象リスト生成部１２５は、収集結果受領部１２３から成功リスト１１２及び失敗リスト１１３の生成完了通知を受け付ける。そして、収集対象リスト生成部１２５は、ネットワーク内に含まれる各カメラから１回ずつ映像ストリームを収集することにより全てのカメラから正常に映像ストリームを収集できた場合の最短クロック数を求める。かかる最短クロック数は、例えば、最短クロック数を「Ｃ」、カメラ数を「Ａ」、同時収集数を「Ｓ」とすると、「Ｃ＝Ａ÷Ｓ」で求められる。すなわち、最短クロック数は、ネットワークの全ノード数及びクロック単位で収集可能なノード数から求められる、所定クロック数を有する１周期より少ないクロック数である。なお、「Ｃ」の計算結果が割り切れない場合には、計算結果の値を切り上げることとする。小数点以下の切り上げについては、例えば、切り上げの関数「ｃｅｉｌ」を利用して「Ｃ＝ｃｅｉｌ（Ａ÷Ｓ）」としても良い。また、同時収集数とは、映像ストリームの収集で利用された収集部１２２ａ〜１２２ｎの数を示す。
【００３５】
続いて、収集対象リスト生成部１２５は、失敗リスト１１３に含まれるカメラ情報に対応するカメラを、求めた最短クロック数内の各クロックに分散させた、次周期の映像ストリーム収集で利用する収集対象リスト１１１を生成する。最短クロック数内への分散について、収集対象リスト生成部１２５は、クロック毎における、成功リスト１１２又は失敗リスト１１３の中から収集部１２２ａ〜１２２ｎに割り当てる数を求める。
【００３６】
ここで、失敗リスト１１３から割り当てる数は、例えば、失敗リスト１１３から割り当てる数を「Ｌ」、失敗リスト１１３に含まれるカメラ情報の数を「Ｎ」、最短クロック数を「Ｃ」とすると、「Ｌ＝Ｎ÷Ｃ」で求められる。なお、「Ｌ」の計算結果が割り切れない場合には、計算結果の値を切り上げることとする。小数点以下の切り上げについては、例えば、切り上げの関数「ｃｅｉｌ」を利用して「Ｌ＝ｃｅｉｌ（Ｎ÷Ｃ）」としても良い。一方、成功リスト１１２から割り当てる数は、例えば、成功リスト１１２から割り当てる数を「Ｗ」、同時収集数を「Ｓ」、失敗リスト１１３から割り当てる数を「Ｌ」とすると、「Ｗ＝Ｓ−Ｌ」で求められる。すなわち、収集対象リスト生成部１２５は、失敗リスト１１３に含まれるカメラ情報に対応するカメラから正常に映像ストリームを収集して静止画生成するため、及び、処理時間を抑制するために、失敗リスト１１３から優先して割り当てる数を求める。
【００３７】
その後、収集対象リスト生成部１２５は、成功リスト１１２から「Ｗ」個のカメラ情報を、失敗リスト１１３から「Ｌ」個のカメラ情報を、何れかのリストが空になるまで繰り返し互いに組み合わせて、収集対象リスト１１１を生成する。さらに、収集対象リスト生成部１２５は、何れかのリストが空になった場合に、何れかのリストに残っているカメラ情報を全て収集対象リスト１１１に移行することで、新たな収集対象リスト１１１を生成する。なお、収集対象リスト生成部１２５は、失敗リスト１１３にリスト生成されていない場合に、収集対象リスト１１１を生成することなく処理を終了する。
【００３８】
［リカバリ処理］
次に、図５Ａ〜図５Ｅを用いて、リカバリ処理について説明する。なお、以下では、図１に示した各カメラから映像ストリームを収集したときに、正常に収集又は静止画生成できなかったカメラに対する映像ストリーム収集のリカバリ処理について説明する。また、以下では、１周期が１０クロック、収集待ち時間が２クロック（「Ｍ＝２」）である場合を説明する。また、以下では、同時収集数「Ｓ」について、「Ｓ＝３」である場合を説明する。このとき、収集処理を実行する収集部は、収集部１２２ａ〜１２２ｃであるものとする。また、以下では、収集対象リスト１１１、成功リスト１１２、失敗リスト１１３及びリカバリ対象リスト１１４によって保持される情報について、説明の便宜上、カメラ名称のみを示すことにする。
【００３９】
図５Ａは、データ収集装置１００による処理当初の収集対象リスト１１１の例を示す図である。例えば、図５Ａに示すように、処理当初の収集対象リスト１１１は、カメラ０１−１、カメラ０２−１、カメラ０２−２、カメラ１１−１、カメラ１１−２、カメラ１１−３の順にカメラ情報を保持する。加えて、処理当初の収集対象リスト１１１は、カメラ１１−３に続いて、カメラ１２−１、カメラ１３−１、カメラ１３−２、カメラ２１−１、カメラ２２−１、カメラ２２−２の順にカメラ情報を保持する。データ収集装置１００は、図５Ａに示す収集対象リスト１１１に従い、１２台のカメラから映像ストリームの収集処理を実行する。
【００４０】
図５Ｂは、１周期目の収集処理実行結果と、成功リスト１１２と、失敗リスト１１３との例を示す図である。また、図５Ｃは、１周期目における収集処理実行結果とクロックとの関係を示す図である。例えば、図５Ｂの左方又は図５Ｃに示すように、１周期目の収集処理実行では、６クロックかけて、５台のカメラに対応する映像ストリームの収集又は静止画生成に失敗している。
【００４１】
詳細には、１クロック目では、ネットワークの回線帯域制限に影響されずに、カメラ０１−１、カメラ０２−１、カメラ０２−２に対応する映像ストリームの収集及び静止画生成に成功している。２クロック目では、拠点１１にカメラ１１−１、カメラ１１−２、カメラ１１−３から３映像ストリームが渡されるものの、拠点０１及び拠点１１間の回線帯域が２映像ストリーム分であるため、帯域不足で正常に収集できず、収集処理も終了できない。３クロック目では、２クロック目と同一のカメラに対する収集処理を継続しているものの、回線帯域の状況は変わらないため、収集待ち時間である２クロックの経過とともに、該当するカメラに対する収集処理が終了している。すなわち、２〜３クロック目では、回線帯域の影響により、カメラ１１−１、カメラ１１−２、カメラ１１−３に対応する映像ストリームの収集又は静止画生成に失敗している。
【００４２】
４クロック目では、ネットワークの回線帯域制限に影響されずに、カメラ１２−１に対応する映像ストリームの収集及び静止画生成に成功している。但し、４クロック目では、拠点１３にカメラ１３−１、カメラ１３−２から２映像ストリームが渡されるものの、拠点１０及び拠点１３間の回線帯域が１映像ストリーム分であるため、帯域不足で正常に収集できず、収集処理も終了できない。５クロック目では、ネットワークの回線帯域制限に影響されずに、カメラ２１−１に対応する映像ストリームの収集及び静止画生成に成功している。但し、５クロック目では、４クロック目で映像ストリームを収集できていないカメラに対する収集処理を継続しているものの、回線帯域の状況は変わらないため、収集待ち時間である２クロックの経過とともに、該当するカメラに対する収集処理が終了している。すなわち、４〜５クロック目では、回線帯域の影響により、カメラ１３−１、カメラ１３−２に対応する映像ストリームの収集又は静止画生成に失敗している。
【００４３】
５クロック目では、ネットワークの回線帯域制限に影響されずに、カメラ２２−１、カメラ２２−２に対応する映像ストリームの収集及び静止画生成に成功している。なお、図５Ｂの左方では、１周期目の収集処理結果として、成功したカメラ情報に「可」を示す「○」、失敗したカメラ情報に「不可」を示す「×」が付与されている。これらにより、１周期目の収集処理では、６クロックかかってカメラ５台分の映像ストリームの収集又は静止画生成ができていない状況となる。このような状況は、図５Ａに示す収集対象リスト１１１の順に収集処理を実行する限り、ネットワークの回線帯域に変化がなければ変わることはない。
【００４４】
また、データ収集装置１００は、図５Ｂの右方に示すように、カメラ０１−１、カメラ０２−１、カメラ０２−２、カメラ１２−１、カメラ２１−１、カメラ２２−１、カメラ２２−２のカメラ情報を含む成功リスト１１２を生成する。同様に、データ収集装置１００は、図５Ｂの右方に示すように、カメラ１１−１、カメラ１１−２、カメラ１１−３、カメラ１３−１、カメラ１３−２のカメラ情報を含む失敗リスト１１３を生成する。
【００４５】
図５Ｄ及び図５Ｅは、１周期目のリカバリ処理を説明する図である。なお、図５Ｄでは、収集処理を６クロック目で終了（図５Ｃ）した後の７クロック目のリカバリ処理の実行について説明する。また、図５Ｅでは、７クロック目のリカバリ処理（図５Ｄ）後の８クロック目のリカバリ処理の実行について説明する。
【００４６】
例えば、リカバリ処理部１２４は、図５Ｄの左方に示すように、失敗リスト１１３に含まれるカメラ情報からリカバリ対象リスト１１４を生成する。そして、リカバリ処理部１２４は、「Ｓ’＝（Ｍ×Ｒ）÷Ｑ」に基づいて、「Ｓ’＝（２×５）÷４」すなわち「Ｓ’＝３」を求める。但し、リカバリ処理部１２４は、「Ｓ’」が割り切れないために切り上げて求めるとともに、「Ｓ’≦Ｓ」（この例においては、Ｓ＝３である）を満たしていることを判定する。ここでは、同時収集する収集部は、収集部１２２ａ〜１２２ｃであることとする。
【００４７】
そして、リカバリ処理部１２４は、図５Ｄの矢印に示すように、リカバリ対象リスト１１４の先頭に保持されるカメラ情報に対応するカメラ１１−１から映像ストリームを収集するように収集部１２２ａに指示する。また、リカバリ処理部１２４は、リカバリ対象リスト１１４の末尾に保持されるカメラ情報に対応するカメラ１３−２から映像ストリームを収集するように収集部１２２ｂに指示する。また、リカバリ処理部１２４は、リカバリ対象リスト１１４の先頭から２番目に保持されるカメラ情報に対応するカメラ１１−２から映像ストリームを収集するように収集部１２２ｃに指示する。これらにより、７クロック目では、図５Ｄの右方に示すように、ネットワークの回線帯域制限に影響されずに、カメラ１１−１、カメラ１３−２、カメラ１１−２に対応する映像ストリームの収集及び静止画生成に成功している。
【００４８】
続いて、リカバリ処理部１２４は、「Ｓ’＝（Ｍ×Ｒ）÷Ｑ」に基づいて、「Ｓ’＝（２×２）÷３」すなわち「Ｓ’＝２」を求める。但し、リカバリ処理部１２４は、「Ｓ’」が割り切れないために切り上げて求めるとともに、「Ｓ’≦Ｓ」を満たしていることを判定する。ここでは、同時収集する収集部は、収集部１２２ａ及び収集部１２２ｂであることとする。
【００４９】
その後、リカバリ処理部１２４は、図５Ｅの矢印に示すように、リカバリ対象リスト１１４の末尾から２番目に保持されるカメラ情報に対応するカメラ１３−１から映像ストリームを収集するように収集部１２２ａに指示する。また、リカバリ処理部１２４は、リカバリ対象リスト１１４の先頭から３番目に保持されるカメラ情報に対応するカメラ１１−３から映像ストリームを収集するように収集部１２２ｂに指示する。これらにより、８クロック目では、図５Ｅの左方に示すように、ネットワークの回線帯域制限に影響されずに、カメラ１３−１、カメラ１１−３に対応する映像ストリームの収集及び静止画生成に成功している。要するに、リカバリ処理部１２４は、通常の収集処理時における収集の失敗と同様な収集処理順にならないように、リカバリ対象リスト１１４の先頭と末尾とに保持されるカメラ情報に対応するカメラから交互に収集処理を実行する。このようにして、リカバリ処理部１２４は、該当の周期の残クロック数が「０」となる、或いは、リカバリ処理の未処理カメラが「０」となるまで、上記のようにリカバリ処理を繰り返し実行する。
【００５０】
［実施例１に係る収集対象リストの生成］
次に、図６Ａ〜図６Ｊを用いて、実施例１に係る収集対象リスト１１１の生成について説明する。図６Ａ〜図６Ｈは、実施例１に係る収集対象リスト１１１の生成について説明する図である。また、図６Ｉは、２周期目の収集処理実行結果とクロックとの関係を示す図である。また、図６Ｊは、３周期目の収集処理実行結果とクロックとの関係を示す図である。
【００５１】
なお、以下では、図１に示した各カメラから映像ストリームを収集した後、生成された成功リスト１１２及び失敗リスト１１３に基づいて、収集対象リスト１１１を生成する収集対象リスト生成処理について説明する。また、以下では、１周期が１０クロック、収集待ち時間が２クロック（「Ｍ＝２」）である場合を説明する。また、以下では、同時収集数「Ｓ」について、「Ｓ＝３」である場合を説明する。このときの収集処理を実行する収集部は、収集部１２２ａ〜１２２ｃであるものとする。また、以下では、収集対象リスト１１１、成功リスト１１２、失敗リスト１１３及びリカバリ対象リスト１１４によって保持される情報について、説明の便宜上、カメラ名称のみを示すことにする。
【００５２】
例えば、図６Ａの左方に示すように、成功リスト１１２は、カメラ０１−１、カメラ０２−１、カメラ０２−２、カメラ１２−１、カメラ２１−１、カメラ２２−１、カメラ２２−２のカメラ情報を保持する。同様に、失敗リスト１１３は、カメラ１１−１、カメラ１１−２、カメラ１１−３、カメラ１３−１、カメラ１３−２のカメラ情報を保持する。
【００５３】
そして、収集対象リスト生成部１２５は、「Ｌ＝Ｎ÷Ｃ（Ｃ＝Ａ÷Ｓ）」に基づいて、「Ｌ＝５×３÷１２」すなわち「Ｌ＝２」を求める。但し、収集対象リスト生成部１２５は、「Ｌ」が割り切れないために切り上げて求める。また、収集対象リスト生成部１２５は、「Ｗ＝Ｓ−Ｌ」に基づいて、「Ｗ＝３−２」すなわち「Ｗ＝１」を求める。これらにより、収集対象リスト生成部１２５は、成功リスト１１２から「１」、失敗リスト１１３から「２」ずつ、同時収集数ごとに収集対象リスト１１１を生成していく。
【００５４】
詳細には、収集対象リスト生成部１２５は、図６Ａに示すように、成功リスト１１２に含まれるカメラ情報からカメラ０１−１を、新たな収集対象リスト１１１に割り当てる。また、収集対象リスト生成部１２５は、図６Ｂに示すように、失敗リスト１１３に含まれるカメラ情報がカメラ１１−１、カメラ１１−２を、新たな収集対象リスト１１１に割り当てる。
【００５５】
そして、収集対象リスト生成部１２５は、図６Ｃに示すように、成功リスト１１２に含まれるカメラ情報からカメラ０２−１を、新たな収集対象リスト１１１に割り当てる。また、収集対象リスト生成部１２５は、図６Ｄに示すように、失敗リスト１１３に含まれるカメラ情報からカメラ１１−３、カメラ１３−１を、新たな収集対象リスト１１１に割り当てる。
【００５６】
続いて、収集対象リスト生成部１２５は、図６Ｅに示すように、成功リスト１１２に含まれるカメラ情報からカメラ０２−２を、新たな収集対象リスト１１１に割り当てる。また、収集対象リスト生成部１２５は、図６Ｆに示すように、失敗リスト１１３に含まれるカメラ情報からカメラ１３−２を、新たな収集対象リスト１１１に割り当てる。
【００５７】
ここで、収集対象リスト生成部１２５は、失敗リスト１１３が空になったことを判定する。これにより、収集対象リスト生成部１２５は、図６Ｇに示すように、成功リスト１１２に含まれる残りのカメラ情報からカメラ１２−１、カメラ２１−１、カメラ２２−１、カメラ２２−２を、新たな収集対象リスト１１１に割り当てる。これらの結果、収集対象リスト生成部１２５は、図６Ｇの右方に示す収集対象リスト１１１を新たに生成する。新たな収集対象リスト１１１は、カメラ０１−１、カメラ１１−１、カメラ１１−２、カメラ０２−１、カメラ１１−３、カメラ１３−１の順にカメラ情報を保持する。加えて、新たな収集対象リスト１１１は、カメラ１３−１に続いて、カメラ０２−２、カメラ１３−２、カメラ１２−１、カメラ２１−１、カメラ２２−１、カメラ２２−２の順にカメラ情報を保持する。
【００５８】
その後、データ収集装置１００は、図６Ｈに示すように、１周期目を元とする収集対象リスト１１１に従い、１２台のカメラから２周期目における映像ストリームの収集処理を実行する。ここで、２周期目における映像ストリームの収集処理結果では、図６Ｉに示すように、５クロックかかって、３台のカメラ２１−１、カメラ２２−１、カメラ２２−２について、映像ストリームの収集又は静止画生成に失敗している。すなわち、データ収集装置１００は、本部及び拠点０２間の回線帯域が２映像ストリームであるため、帯域不足により、カメラ２１−１、カメラ２２−１、カメラ２２−２に対応する映像ストリームの収集又は静止画生成に失敗する。また、図６Ｉに示す６〜７クロック目では、３台のカメラ２１−１、カメラ２２−１、カメラ２２−２に対するリカバリ処理が実行された結果を示している。ここでは、カメラ２１−１、カメラ２２−１、カメラ２２−２に対するリカバリ処理の詳細についてはその説明を省略する。
【００５９】
また、データ収集装置１００は、図６Ｈに示すように、カメラ０１−１、カメラ１１−１、カメラ１１−２、カメラ０２−１、カメラ１１−３、カメラ１３−１、カメラ０２−２、カメラ１３−２、カメラ１２−１のカメラ情報を含む成功リスト１１２を生成する。また、データ収集装置１００は、図６Ｈに示すように、カメラ２１−１、カメラ２２−１、カメラ２２−２のカメラ情報を含む失敗リスト１１３を生成する。
【００６０】
そして、収集対象リスト生成部１２５は、「Ｌ＝Ｎ÷Ｃ（Ｃ＝Ａ÷Ｓ）」に基づいて、「Ｌ＝３×３÷１２」すなわち「Ｌ＝１」を求める。但し、収集対象リスト生成部１２５は、「Ｌ」が割り切れないために切り上げて求める。また、収集対象リスト生成部１２５は、「Ｗ＝Ｓ−Ｌ」に基づいて、「Ｗ＝３−１」すなわち「Ｗ＝２」を求める。これらにより、収集対象リスト生成部１２５は、成功リスト１１２から「２」、失敗リスト１１３から「１」ずつ、同時収集数ごとに収集対象リスト１１１を生成していく。
【００６１】
詳細には、収集対象リスト生成部１２５は、図６Ｈに示すように、成功リスト１１２からカメラ０１−１、カメラ１１−１を、失敗リスト１１３からカメラ２１−１を、２周期目を元とする収集対象リスト１１１に割り当てる。そして、収集対象リスト生成部１２５は、同様に、成功リスト１１２からカメラ１１−２、カメラ０２−１を、失敗リスト１１３からカメラ２２−１を、２周期目を元とする収集対象リスト１１１に割り当てる。続いて、収集対象リスト生成部１２５は、同様に、成功リスト１１２からカメラ１１−３、カメラ１３−１を、失敗リスト１１３からカメラ２２−２を、２周期目を元とする収集対象リスト１１１に割り当てる。
【００６２】
ここで、収集対象リスト生成部１２５は、失敗リスト１１３が空になったことを判定する。これにより、収集対象リスト生成部１２５は、図６Ｈに示すように、成功リスト１１２に含まれる残りのカメラ０２−２、カメラ１３−２、カメラ１２−１を、２周期目を元とする収集対象リスト１１１に割り当てる。これらの結果、収集対象リスト生成部１２５は、２周期目を元とする収集対象リスト１１１を新たに生成する。２周期目を元とする収集対象リスト１１１は、カメラ０１−１、カメラ１１−１、カメラ２１−１、カメラ１１−２、カメラ０２−１、カメラ２２−１の順にカメラ情報を保持する。加えて、２周期目を元とする収集対象リスト１１１は、カメラ２２−１に続いて、カメラ１１−３、カメラ１３−１、カメラ２２−２、カメラ０２−２、カメラ１３−２、カメラ１２−１の順にカメラ情報を保持する。
【００６３】
その後、データ収集装置１００は、図６Ｈに示すように、２周期目を元とする収集対象リスト１１１に従い、１２台のカメラから３周期目における映像ストリームの収集処理を実行する。ここで、３周期目における映像ストリームの収集処理結果では、図６Ｊに示すように、４クロックかかって、１２台のカメラ全てについて、映像ストリームの収集及び静止画生成に成功している。これらの結果、データ収集装置１００は、当初は６クロックかかってカメラ５台分の映像ストリームの収集及び静止画生成しかできていなかったが、３周期目において、４クロックかかってカメラ１２台全ての映像ストリームの収集及び静止画生成に成功している。また、４クロックは、カメラ数「１２」、同時収集数「３」である場合の最短クロック数「Ｃ＝１２÷３」である。
【００６４】
［データ収集処理フロー］
次に、図７を用いて、実施例１に係るデータ収集処理の流れを説明する。図７は、実施例１に係るデータ収集処理の流れの例を示すフローチャートである。
【００６５】
例えば、図７に示すように、データ収集装置１００は、データ収集処理を開始する場合に（ステップＳ１０１肯定）、収集対象リスト１１１に従い、通常のデータ収集処理を実行する（ステップＳ１０２）。なお、データ収集装置１００は、データ収集処理を開始しない場合に（ステップＳ１０１否定）、データ収集処理の開始待ちの状態になる。
【００６６】
そして、データ収集装置１００は、データ収集処理結果から、データの収集又は静止画生成が正常にできなかったカメラの数「Ｎ」について、「Ｎ＞０」であるか否かを判定する（ステップＳ１０３）。このとき、データ収集装置１００は、「Ｎ＞０」である場合に（ステップＳ１０３肯定）、データの収集及び静止画生成を正常にできたカメラのカメラ情報を含む成功リスト１１２を生成する（ステップＳ１０４）。加えて、データ収集装置１００は、「Ｎ＞０」である場合に（ステップＳ１０３肯定）、データの収集又は静止画生成を正常にできなかったカメラのカメラ情報を含む失敗リスト１１３を生成する（ステップＳ１０４）。ここで、データ収集装置１００は、「Ｎ＝０」である場合に（ステップＳ１０３否定）、全てのカメラからのデータの収集及び静止画生成を正常にできたので、ステップＳ１０７の処理を実行する。
【００６７】
続いて、データ収集装置１００は、失敗リスト１１３からリカバリ対象リスト１１４を生成し、リカバリ対象リスト１１４に含まれるカメラ情報に対応するカメラに対し、リカバリ処理を実行する（ステップＳ１０５）。その後、データ収集装置１００は、成功リスト１１２及び失敗リスト１１３を用いて、収集対象リスト生成処理を実行する（ステップＳ１０６）。また、データ収集装置１００は、データ収集処理を終了する場合に（ステップＳ１０７肯定）、処理を終了し、データ収集処理を終了しない場合に（ステップＳ１０７否定）、ステップＳ１０２の処理を実行する。すなわち、データ収集装置１００は、映像監視システム等の監視において運用中である場合には、図７に示す処理を繰り返し実行することで常時監視を行なえるようにしている。
【００６８】
［リカバリ処理フロー］
次に、図８を用いて、実施例１に係るリカバリ処理の流れを説明する。図８は、実施例１に係るリカバリ処理の流れの例を示すフローチャートである。なお、図８では、図７に示したステップＳ１０５における処理の流れについて説明する。
【００６９】
例えば、図８に示すように、リカバリ処理部１２４は、失敗リスト１１３からリカバリ対象リスト１１４を生成する（ステップＳ２０１）。この時点で、リカバリ対象となるカメラの残数「Ｒ」は、失敗リスト１１３に含まれるカメラ情報の数「Ｎ」と同数である。そして、リカバリ処理部１２４は、該当周期内の残クロック数「Ｑ」と、リカバリ対象となるカメラの残数「Ｒ」と、収集待ち時間のクロック「Ｍ」とから、現クロックにおける同時収集数「Ｓ’」を算出する（ステップＳ２０２）。なお、「Ｓ’」については、「Ｓ’＝（Ｍ×Ｒ）÷Ｑ」であり、「Ｓ’」が割り切れない場合には、切り上げることで求められる。
【００７０】
続いて、リカバリ処理部１２４は、同時収集数「Ｓ’」となるように、リカバリ対象リスト１１４内の未処理のカメラ情報の先頭側と末尾側とから交互に、収集部１２２ａ〜１２２ｎへ順次割り当てて収集開始を指示する（ステップＳ２０３）。なお、このとき、収集部は、同時収集数「Ｓ’」の数だけ利用される。その後、収集部１２２ａ〜１２２ｎは、該当するカメラから映像ストリームを収集し、収集した映像ストリームから静止画を生成する処理を実行する（ステップＳ２０４）。ここで、リカバリ処理部１２４は、収集処理が終了したカメラに対応するリカバリ対象リスト１１４のカメラ情報について、処理済みとしていく（ステップＳ２０５）。
【００７１】
そして、リカバリ処理部１２４は、クロック生成部によって１クロック進められると（ステップＳ２０６）、残クロック数「Ｑ」について、「Ｑ＞０」であるか否かを判定する（ステップＳ２０７）。このとき、リカバリ処理部１２４は、「Ｑ＞０」である場合に（ステップＳ２０７肯定）、リカバリ対象となるカメラの残数「Ｒ＝０」であるか否かを判定する（ステップＳ２０８）。このとき、リカバリ処理部１２４は、「Ｒ＝０」である場合に（ステップＳ２０８肯定）、リカバリ対象となるカメラが存在しないため、処理を終了する。なお、リカバリ処理部１２４は、「Ｑ＝０」である場合に（ステップＳ２０７否定）、所定の１周期を経過したので、処理を終了する。また、リカバリ処理部１２４は、「Ｒ＞０」である場合に（ステップＳ２０８否定）、リカバリ処理について未処理であるカメラに対し、ステップＳ２０２の処理を実行する。
【００７２】
［実施例１に係る収集対象リスト生成処理フロー］
次に、図９を用いて、実施例１に係る収集対象リスト生成処理の流れを説明する。図９は、実施例１に係る収集対象リスト生成処理の流れの例を示すフローチャートである。なお、図９では、図７に示したステップＳ１０６における処理の流れについて説明する。
【００７３】
例えば、図９に示すように、収集対象リスト生成部１２５は、収集対象リスト１１１の枠組みを新たに生成する（ステップＳ３０１）。収集対象リスト１１１の枠組みとは、例えば、メモリ領域を確保することを指す。このとき、収集対象リスト生成部１２５は、成功リスト１１２から収集対象リスト１１１に割り当てる数「Ｌ」と、失敗リスト１１３から収集対象リスト１１１に割り当てる数「Ｗ」とを算出する。
【００７４】
そして、収集対象リスト生成部１２５は、成功リスト１１２から「Ｗ」個分のカメラ情報を抽出し、収集対象リスト１１１に順に追加する（ステップＳ３０２）。続いて、収集対象リスト生成部１２５は、失敗リスト１１３から「Ｌ」個分のカメラ情報を抽出し、収集対象リスト１１１に順に追加する（ステップＳ３０３）。その後、収集対象リスト生成部１２５は、成功リスト１１２若しくは失敗リスト１１３のどちらかが空になったか否かを判定する（ステップＳ３０４）。
【００７５】
収集対象リスト生成部１２５は、どちらかのリストが空になったと判定した場合に（ステップＳ３０４肯定）、成功リスト１１２若しくは失敗リスト１１３のうち、リストに残っているカメラ情報を収集対象リスト１１１に順に追加する（ステップＳ３０５）。一方、収集対象リスト生成部１２５は、どちらのリストにもカメラ情報が残っていると判定した場合に（ステップＳ３０４否定）、残りのカメラ情報を収集対象リスト１１１に追加するためにステップＳ３０２の処理を実行する。
【００７６】
［実施例１による効果］
上述したように、データ収集装置１００は、ネットワークに含まれるノードから正常にデータ収集できたノード情報を示す成功リスト１１２と、正常にデータ収集できなかったノード情報を示す失敗リスト１１３とを生成する。そして、データ収集装置１００は、失敗リスト１１３に含まれるノード情報を、全てのノードから正常にデータ収集できた場合の最短クロック数内に分散させつつ、データ収集順を示す収集対象リスト１１１を生成する。これらの結果、データ収集装置１００は、ツリー状の階層構造を有するネットワークであっても、データ収集のための効率的なスケジューリングを行なうことができる。換言すると、データ収集装置１００は、ネットワークの構成情報や回線の帯域情報等に依存することなく、ツリー状の階層構造を有するネットワークにおけるデータ収集のための効率的なスケジューリングを行なうことができる。
【００７７】
また、データ収集装置１００は、全てのノードから正常にデータ収集できた場合の最短クロック数におさまることを目的として、収集対象リスト１１１を生成するので、より短時間でデータ収集処理を実行することができる。また、上述してきた処理は、動的に実行されるため、データ収集対象数、ネットワークの構成、回線帯域状況が変化したとしても、これに追随して安定した効率的なスケジューリングを行なうことができる。
【実施例２】
【００７８】
上記実施例１では、収集対象リスト１１１の生成について、前周期で収集を失敗したものを優先して１クロックに割り当てる数を求めて、最短クロック内に分散させる場合を説明した。かかる収集対象リスト１１１の生成については、さらに、１クロックでの同時に収集可能な数ごとに距離が互いに遠いものを割り当てることで、最短クロック内に分散させることもできる。そこで、実施例２では、１クロックでの同時に収集可能な数ごとに距離が互いに遠いものを割り当てることで、最短クロック内に分散させる場合を説明する。
【００７９】
［実施例２に係る収集対象リスト］
図１０を用いて、実施例２に係るカメラのＩＰアドレスを説明する。図１０は、実施例２に係るカメラのＩＰアドレスの例を示す図である。なお、図１０に示す各カメラは、図１に示した各カメラに対応するものである。
【００８０】
例えば、図１０に示すように、カメラＩＤ「１」及びカメラ名称「カメラ０１−１」であるカメラは、ＩＰアドレスが「１９２．１６８．１．１」、アドレス値が「０ｘＣ０Ａ８０１０１」である。なお、アドレス値は、ＩＰアドレスに各オクテットを全て１６進数に変換して、ひとつの数とみなした値である。
【００８１】
また、カメラＩＤ「２」及びカメラ名称「カメラ０２−１」であるカメラは、ＩＰアドレスが「１９２．１６８．２．１」、アドレス値が「０ｘＣ０Ａ８０２０１」である。また、カメラＩＤ「３」及びカメラ名称「カメラ０２−２」であるカメラは、ＩＰアドレスが「１９２．１６８．２．２」、アドレス値が「０ｘＣ０Ａ８０２０２」である。
【００８２】
また、カメラＩＤ「４」及びカメラ名称「カメラ１１−１」であるカメラは、ＩＰアドレスが「１９２．１６８．１１．１」、アドレス値が「０ｘＣ０Ａ８０Ｂ０１」である。また、カメラＩＤ「５」及びカメラ名称「カメラ１１−２」であるカメラは、ＩＰアドレスが「１９２．１６８．１１．２」、アドレス値が「０ｘＣ０Ａ８０Ｂ０２」である。また、カメラＩＤ「６」及びカメラ名称「１１−３」であるカメラは、ＩＰアドレスが「１９２．１６８．１１．３」、アドレス値が「０ｘＣ０Ａ８０Ｂ０３」である。
【００８３】
また、カメラＩＤ「７」及びカメラ名称「カメラ１２−１」であるカメラは、ＩＰアドレスが「１９２．１６８．１２．１」、アドレス値が「０ｘＣ０Ａ８０Ｃ０１」である。また、カメラＩＤ「８」及びカメラ名称「カメラ１３−１」であるカメラは、ＩＰアドレスが「１９２．１６８．１３．１」、アドレス値が「０ｘＣ０Ａ８０Ｄ０１」である。また、カメラＩＤ「９」及びカメラ名称「カメラ１３−２」であるカメラは、ＩＰアドレスが「１９２．１６８．１３．２」、アドレス値が「０ｘＣ０Ａ８０Ｄ０２」である。
【００８４】
また、カメラＩＤ「１０」及びカメラ名称「カメラ２１−１」であるカメラは、ＩＰアドレスが「１９２．１６８．２１．１」、アドレス値が「０ｘＣ０Ａ８１５０１」である。また、カメラＩＤ「１１」及びカメラ名称「カメラ２２−１」であるカメラは、ＩＰアドレスが「１９２．１６８．２２．１」、アドレス値が「０ｘＣ０Ａ８１６０１」である。また、カメラＩＤ「１２」及びカメラ名称「カメラ２２−２」であるカメラは、ＩＰアドレスが「１９２．１６８．２２．２」、アドレス値が「０ｘＣ０Ａ８１６０２」である。
【００８５】
図１０からわかるように、各カメラのＩＰアドレスは、ネットワークの構成上、同一拠点内で同一若しくは連続したサブネットが割り振られる。この状況を利用し、連続したネットワーク領域内に存在するカメラに対するデータ収集処理を、同時に実行しないようにすることで使用回線を分散させ、帯域不足の発生頻度をより下げるようにする。以下では、そのために利用する収集対象リスト１１１の生成について説明する。
【００８６】
［実施例２に係る収集対象リストの生成］
図１１Ａ〜図１１Ｏを用いて、実施例２に係る収集対象リスト１１１の生成について説明する。図１１Ａ〜図１１Ｎは、実施例２に係る収集対象リスト１１１の生成について説明する図である。また、図１１Ｏは、２周期目の収集処理実行結果とクロックとの関係を示す図である。
【００８７】
なお、以下では、図１に示した各カメラから映像ストリームを収集した後、生成された成功リスト１１２及び失敗リスト１１３に基づいて、収集対象リスト１１１を生成する収集対象リスト生成処理について説明する。また、以下では、１周期が１０クロック、収集待ち時間が２クロック（「Ｍ＝２」）である場合を説明する。また、以下では、同時収集数「Ｓ」について、「Ｓ＝３」である場合を説明する。このときの収集処理を実行する収集部は、収集部１２２ａ〜１２２ｃであるものとする。また、以下では、収集対象リスト１１１、成功リスト１１２及び失敗リスト１１３によって保持される情報について、説明の便宜上、カメラ名称のみを示すことにする。
【００８８】
例えば、図１１Ａの左方に示すように、成功リスト１１２は、カメラ０１−１、カメラ０２−１、カメラ０２−２、カメラ１２−１、カメラ２１−１、カメラ２２−１、カメラ２２−２のカメラ情報を保持する。同様に、失敗リスト１１３は、カメラ１１−１、カメラ１１−２、カメラ１１−３、カメラ１３−１、カメラ１３−２のカメラ情報を保持する。
【００８９】
そして、収集対象リスト生成部１２５は、「Ｌ＝Ｎ÷Ｃ（Ｃ＝Ａ÷Ｓ）」に基づいて、「Ｌ＝５×３÷１２」すなわち「Ｌ＝２」を求める。但し、収集対象リスト生成部１２５は、「Ｌ」が割り切れないために切り上げて求める。また、収集対象リスト生成部１２５は、「Ｗ＝Ｓ−Ｌ」に基づいて、「Ｗ＝３−２」すなわち「Ｗ＝１」を求める。これらにより、収集対象リスト生成部１２５は、成功リスト１１２から「１」、失敗リスト１１３から「２」ずつ、同時収集数ごとに収集対象リスト１１１を生成していく。また、このとき、収集対象リスト生成部１２５は、距離が互いに遠いカメラ情報を組み合わせるために、各カメラのアドレス値を利用する。
【００９０】
詳細には、収集対象リスト生成部１２５は、失敗リスト１１３に含まれるカメラ情報に対応するアドレス値を用いて、失敗リスト１１３をアドレス値の昇順にソートする。なお、図１１Ａの例では、失敗リスト１１３生成時のままの順になる。そして、収集対象リスト生成部１２５は、図１１Ａに示すように、成功リスト１１２に含まれるカメラ情報からカメラ０１−１を、成功／失敗混合バッファに移行する。かかる成功／失敗混合バッファは、同時収集数だけカメラ情報を保持可能なバッファであり、成功リスト１１２と失敗リスト１１３とに含まれるカメラ情報が移行される。
【００９１】
続いて、収集対象リスト生成部１２５は、ソートされた失敗リスト１１３に、成功／失敗混合バッファに含まれるカメラ０１−１に対応するアドレス値よりもアドレス値が小さいカメラ情報があれば、該当するカメラ情報を成功／失敗混合バッファに移行する。図１１Ｂの例において、収集対象リスト生成部１２５は、カメラ０１−１よりもアドレス値が小さいカメラ情報が失敗リスト１１３にないため、カメラ０１−１よりもアドレス値が大きいカメラ情報のうち、最も差が大きいカメラ情報を移行する。すなわち、収集対象リスト生成部１２５は、図１１Ｂに示すように、カメラ０１−１のアドレス値「０ｘＣ０Ａ８０１０１」に対して、最も差が大きいカメラ１３−２（アドレス値「０ｘＣ０Ａ８０Ｄ０２」）を成功／失敗混合バッファに移行する。
【００９２】
その後、収集対象リスト生成部１２５は、失敗リスト１１３に、成功／失敗混合バッファに含まれるカメラ０１−１に対応するアドレス値よりもアドレス値が小さいカメラ情報が存在しないことを判定する。加えて、収集対象リスト生成部１２５は、失敗リスト１１３に成功／失敗混合バッファに含まれるカメラ１３−２に対応するアドレス値よりもアドレス値が大きいカメラ情報が存在しないことを判定する。このため、収集対象リスト生成部１２５は、成功／失敗混合バッファに含まれるカメラ情報に対応するアドレス値それぞれの中間値と最も差が小さいアドレス値を有するカメラのカメラ情報を、成功／失敗混合バッファに移行する。すなわち、収集対象リスト生成部１２５は、図１１Ｃに示すように、カメラ０１−１及びカメラ１３−２のアドレス値の中間値「０ｘＣ０Ａ８０７０１」と最も差が小さいアドレス値を有するカメラ１１−１のカメラ情報を、成功／失敗混合バッファに移行する。このとき、成功／失敗混合バッファが満たされたので、収集対象リスト生成部１２５は、図１１Ｄに示すように、成功／失敗混合バッファに含まれるカメラ情報を、対応するアドレス値の昇順にソートして、新たな収集対象リスト１１１に割り当てる。
【００９３】
そして、収集対象リスト生成部１２５は、「Ｌ＝Ｎ÷Ｃ（Ｃ＝Ａ÷Ｓ）」に基づいて、「Ｌ＝３×３÷１２」すなわち「Ｌ＝１」を求める。但し、収集対象リスト生成部１２５は、「Ｌ」が割り切れないために切り上げて求める。また、収集対象リスト生成部１２５は、「Ｗ＝Ｓ−Ｌ」に基づいて、「Ｗ＝３−１」すなわち「Ｗ＝２」を求める。これらにより、収集対象リスト生成部１２５は、成功リスト１１２から「２」、失敗リスト１１３から「１」ずつ、同時収集数ごとに収集対象リスト１１１を生成していく。
【００９４】
続いて、収集対象リスト生成部１２５は、図１１Ｅに示すように、成功リスト１１２に含まれるカメラ情報からカメラ０２−１、カメラ０２−２を、アドレス値の昇順にソートしつつ成功／失敗混合バッファに移行する。その後、収集対象リスト生成部１２５は、失敗リスト１１３に、成功／失敗混合バッファに含まれるカメラ０２−１に対応するアドレス値よりもアドレス値が小さいカメラ情報が存在しないことを判定する。加えて、収集対象リスト生成部１２５は、成功／失敗混合バッファに含まれるカメラ情報に対応するアドレス値それぞれの中間となるカメラ情報が存在しないことを判定する。すなわち、収集対象リスト生成部１２５は、図１１Ｆに示すように、カメラ情報０２−２に対応するアドレス値よりもアドレス値が大きく、最も差が大きいアドレス値を有するカメラ１３−１のカメラ情報を、成功／失敗混合バッファに移行する。このとき、成功／失敗混合バッファが満たされたので、収集対象リスト生成部１２５は、図１１Ｇに示すように、成功／失敗混合バッファに含まれるカメラ情報を、対応するアドレス値の昇順にソートして、新たな収集対象リスト１１１に割り当てる。
【００９５】
その後、収集対象リスト生成部１２５は、「Ｌ＝Ｎ÷Ｃ（Ｃ＝Ａ÷Ｓ）」に基づいて、「Ｌ＝２×３÷１２」すなわち「Ｌ＝１」を求める。但し、収集対象リスト生成部１２５は、「Ｌ」が割り切れないために切り上げて求める。また、収集対象リスト生成部１２５は、「Ｗ＝Ｓ−Ｌ」に基づいて、「Ｗ＝３−１」すなわち「Ｗ＝２」を求める。これらにより、収集対象リスト生成部１２５は、成功リスト１１２から「２」、失敗リスト１１３から「１」ずつ、同時収集数ごとに収集対象リスト１１１を生成していく。
【００９６】
そして、収集対象リスト生成部１２５は、図１１Ｈに示すように、成功リストに含まれるカメラ情報からカメラ１２−１、カメラ２１−１を、アドレス値の昇順にソートしつつ成功／失敗混合バッファに移行する。続いて、収集対象リスト生成部１２５は、失敗リスト１１３に、成功／失敗混合バッファに含まれるカメラ１２−１に対応するアドレス値よりもアドレス値が小さいカメラ情報のうち、最も差が大きいカメラ情報が存在することを判定する。該当するカメラは、カメラ１１−２である。加えて、収集対象リスト生成部１２５は、失敗リスト１１３に、成功／失敗混合バッファに含まれるカメラ１２−１、カメラ２１−１に対応するアドレス値それぞれの中間となるカメラ情報が存在しないことを判定する。また、収集対象リスト生成部１２５は、失敗リスト１１３に、成功／失敗混合バッファに含まれるカメラ２１−１に対応するアドレス値よりもアドレス値が大きいカメラ情報が存在しないことを判定する。すなわち、収集対象リスト生成部１２５は、図１１Ｉに示すように、失敗リスト１１３に含まれるカメラ１１−２のカメラ情報を、成功／失敗混合バッファに移行する。このとき、成功／失敗混合バッファが満たされたので、収集対象リスト生成部１２５は、図１１Ｊに示すように、成功／失敗混合バッファに含まれるカメラ情報を、対応するアドレス値の昇順にソートして、新たな収集対象リスト１１１に割り当てる。
【００９７】
その後、収集対象リスト生成部１２５は、「Ｌ＝Ｎ÷Ｃ（Ｃ＝Ａ÷Ｓ）」に基づいて、「Ｌ＝１×３÷１２」すなわち「Ｌ＝１」を求める。但し、収集対象リスト生成部１２５は、「Ｌ」が割り切れないために切り上げて求める。また、収集対象リスト生成部１２５は、「Ｗ＝Ｓ−Ｌ」に基づいて、「Ｗ＝３−１」すなわち「Ｗ＝２」を求める。これらにより、収集対象リスト生成部１２５は、成功リスト１１２から「２」、失敗リスト１１３から「１」ずつ、同時収集数ごとに収集対象リスト１１１を生成していく。
【００９８】
そして、収集対象リスト生成部１２５は、図１１Ｋに示すように、成功リストに含まれるカメラ情報からカメラ２２−１、カメラ２２−２を、アドレス値の昇順にソートしつつ成功／失敗混合バッファに移行する。続いて、収集対象リスト生成部１２５は、失敗リスト１１３に、成功／失敗混合バッファに含まれるカメラ２２−１よりもアドレス値が小さいカメラ情報のうち、最も差が大きいカメラ情報が存在することを判定する。該当するカメラは、カメラ１１−３である。加えて、収集対象リスト生成部１２５は、失敗リスト１１３に、成功／失敗混合バッファに含まれるカメラ２２−１、カメラ２２−２に対応するアドレス値それぞれの中間となるカメラ情報が存在しないことを判定する。また、収集対象リスト生成部１２５は、失敗リスト１１３に、成功／失敗混合バッファに含まれるカメラ２２−２に対応するアドレス値よりもアドレス値が大きいカメラ情報が存在しないことを判定する。すなわち、収集対象リスト生成部１２５は、図１１Ｌに示すように、失敗リスト１１３に含まれるカメラ１１−３のカメラ情報を、成功／失敗混合バッファに移行する。このとき、成功／失敗混合バッファが満たされたので、収集対象リスト生成部１２５は、図１１Ｍに示すように、成功／失敗混合バッファに含まれるカメラ情報を、対応するアドレス値の昇順にソートして、新たな収集対象リスト１１１に割り当てる。また、この時点で、収集対象リスト生成部１２５は、成功リスト１１２と失敗リスト１１３とが空になったため、図１１Ｍの右方に示す収集対象リスト１１１を、次周期におけるデータ収集で利用する収集対象リスト１１１とする。
【００９９】
これらの結果、新たな収集対象リスト１１１は、カメラ０１−１、カメラ１１−１、カメラ１３−２、カメラ０２−１、カメラ０２−２、カメラ１３−１の順にカメラ情報を保持する。加えて、新たな収集対象リスト１１１は、カメラ１３−１に続いて、カメラ１１−２、カメラ１２−１、カメラ２１−１、カメラ１１−３、カメラ２２−１、カメラ２２−２の順にカメラ情報を保持する。
【０１００】
その後、データ収集装置１００は、図１１Ｎに示すように、１周期目を元とする収集対象リスト１１１に従い、１２台のカメラから２周期目における映像ストリームの収集処理を実行する。ここで、２周期目における映像ストリームの収集結果では、図１１Ｎの右方と図１１Ｏとに示すように、４クロックかかって、１２台全てのカメラについて、映像ストリームの収集及び静止画生成に成功している。
【０１０１】
［実施例２に係る収集対象リスト生成処理フロー］
次に、図１２Ａ及び図１２Ｂを用いて、実施例２に係る収集対象リスト生成処理の流れを説明する。図１２Ａ及び図１２Ｂは、実施例２に係る収集対象リスト生成処理の流れの例を示すフローチャートである。
【０１０２】
例えば、図１２Ａ及び図１２Ｂに示すように、収集対象リスト生成部１２５は、収集対象リスト１１１と、成功／失敗混合バッファとの枠組みを新たに生成して、失敗リスト１１３に含まれるカメラ情報をアドレス値の昇順でソートする（ステップＳ４０１）。収集対象リスト１１１と、成功／失敗混合バッファとの枠組みとは、例えば、メモリ領域を確保することを指す。
【０１０３】
そして、収集対象リスト生成部１２５は、成功リスト１１２から成功／失敗混合バッファに割り当てる数「Ｌ」と、失敗リスト１１３から成功／失敗混合バッファに割り当てる数「Ｗ」とを算出する（ステップＳ４０２）。なお、「Ｌ」及び「Ｗ」は、失敗リスト１１３に含まれるカメラ情報の数「Ｎ」に基づいて算出される。
【０１０４】
続いて、収集対象リスト生成部１２５は、成功リスト１１２から「Ｗ」個を、アドレス値の昇順でソートしつつ成功／失敗混合バッファに移行する（ステップＳ４０３）。ここで、「Ｗ＝０」では、成功／失敗混合バッファは空とする。その後、収集対象リスト生成部１２５は、失敗リスト１１３に、成功／失敗混合バッファの先頭のカメラ情報に対応するアドレス値よりも小さいアドレス値を有するカメラ情報が存在するか否かを判定する（ステップＳ４０４）。加えて、収集対象リスト生成部１２５は、存在すると判定した場合に、先頭のカメラ情報に対応するアドレス値との差が最も大きいアドレス値を有するカメラ情報と、アドレス値それぞれの差とを抽出して保持する（ステップＳ４０４）。
【０１０５】
そして、収集対象リスト生成部１２５は、成功／失敗混合バッファ内のカメラ情報を示すポインタを、成功／失敗混合バッファの先頭に設定する（ステップＳ４０５）。続いて、収集対象リスト生成部１２５は、成功／失敗混合バッファのポインタの位置について、末尾であるか否かを判定する（ステップＳ４０６）。このとき、収集対象リスト生成部１２５は、ポインタの位置が末尾でない場合に（ステップＳ４０６否定）、ポインタが示すカメラ情報のアドレス値を最小アドレス値とし、その次のカメラ情報のアドレス値を最大アドレス値とする（ステップＳ４０７）。加えて、収集対象リスト生成部１２５は、最小／最大アドレス値の範囲において、範囲内のアドレス値を有するカメラ情報が失敗リスト１１３に存在するか否かを判定する（ステップＳ４０７）。また、収集対象リスト生成部１２５は、範囲内のアドレス値を有するカメラ情報が失敗リスト１１３に存在する場合に、最小／最大アドレス値の中間値との差が最も小さいアドレス値を有するカメラ情報を抽出して保持する（ステップＳ４０７）。さらに、収集対象リスト生成部１２５は、範囲の両端のうちより小さい方のアドレス値と、中間値との差が最も小さいアドレス値との差を求めて保持する（ステップＳ４０７）。その後、収集対象リスト生成部１２５は、成功／失敗混合バッファのポインタを１つ進める（ステップＳ４０８）。
【０１０６】
また、収集対象リスト生成部１２５は、ポインタ位置が末尾である場合に（ステップＳ４０６肯定）、末尾のカメラ情報に対応するアドレス値よりも大きいアドレス値を有するカメラ情報が失敗リスト１１３に存在するか否かを判定する（ステップＳ４０９）。加えて、収集対象リスト生成部１２５は、失敗リスト１１３に存在する場合に、末尾のカメラ情報に対応するアドレス値との差が最も大きいアドレス値を有する失敗リスト１１３内のカメラ情報を抽出して保持する（ステップＳ４０９）。さらに、収集対象リスト生成部１２５は、末尾のカメラ情報に対応するアドレス値と、差が最も大きいアドレス値との差を求めて保持する（ステップＳ４０９）。
【０１０７】
その後、収集対象リスト生成部１２５は、Ｓ４０４〜Ｓ４０９で保持した失敗リスト１１３のカメラ情報を、求めた差の値が大きい順に１カメラ情報ずつ、最大で「Ｌ」個のカメラ情報を成功／失敗混合バッファに移行する（ステップＳ４１０）。そして、収集対象リスト生成部１２５は、成功／失敗混合バッファに空きがあるか否かを判定する（ステップＳ４１１）。このとき、収集対象リスト生成部１２５は、空きがある場合に（ステップＳ４１１肯定）、保持した失敗リスト１１３のカメラ情報を、成功／失敗混合バッファに全て移行したか否かを判定する（ステップＳ４１２）。そして、収集対象リスト生成部１２５は、成功／失敗混合バッファに全て移行していると判定した場合に（ステップＳ４１２肯定）、成功／失敗混合バッファに含まれるカメラ情報をアドレス値の昇順でソートする（ステップＳ４１３）。収集対象リスト生成部１２５は、ステップＳ４１３の処理後、ステップＳ４０４の処理を実行する。なお、収集対象リスト生成部１２５は、成功／失敗混合バッファに全て移行していないと判定した場合に（ステップＳ４１２否定）、ステップＳ４１０の処理を実行する。
【０１０８】
また、収集対象リスト生成部１２５は、空きがない場合に（ステップＳ４１１否定）、成功／失敗混合バッファに含まれるカメラ情報をアドレス値の昇順でソートし、収集対象リスト１１１の末尾に移行する（ステップＳ４１４）。そして、収集対象リスト生成部１２５は、成功リスト１１２若しくは失敗リスト１１３のどちらかが空になったか否かを判定する（ステップＳ４１５）。このとき、収集対象リスト生成部１２５は、どちらかが空になったと判定した場合に（ステップＳ４１５肯定）、成功リスト１１２若しくは失敗リスト１１３のどちらか残っているリストのカメラ情報を収集対象リスト１１１の末尾に移行する（ステップＳ４１６）。ここで、収集対象リスト生成部１２５は、成功リスト１１２若しくは失敗リスト１１３のどちらも空になっていないと判定した場合に（ステップＳ４１５否定）、ステップＳ４０２の処理を実行する。
【０１０９】
上記のように、実施例２に係る処理例では、図６Ｊに示す実施例１に係るデータ収集処理結果よりもさらに短い周期で、ネットワークに含まれるノードから正常にデータ収集できている。
【０１１０】
［実施例２による効果］
上述したように、データ収集装置１００は、ネットワークに含まれるノードの距離が互いに遠いものを組み合わせて収集対象リスト１１１を生成するので、データ収集時に利用されるネットワークの回線の分散を図ることができる。換言すると、データ収集装置１００は、ネットワークの回線の分散を図った収集対象リスト１１１に従い、データ収集処理を実行するので、より効率的なデータ収集のスケジューリングを行なうことができる。
【実施例３】
【０１１１】
さて、これまで本願に開示する伝送装置１００の実施例について説明したが、上述した実施例以外にも種々の異なる形態にて実施されてよいものである。そこで、（１）リカバリ処理、（２）データ収集、（３）構成、（４）プログラム、において異なる実施例を説明する。
【０１１２】
（１）リカバリ処理
上記実施例では、１周期のうち残クロック内でリカバリ処理を実行する場合を説明したが、リカバリ処理は、実行されなくても良い。すなわち、リカバリ処理は、収集対象リスト１１１に含まれるカメラ情報に対応するカメラからのデータ収集後に実行され、データ収集で正常に収集できなかったカメラに対するリカバリを行なうものであり、次周期でのデータ収集処理には影響しない。換言すると、リカバリ処理は、収集対象リスト１１１を利用したデータ収集で収集できなかったデータを同周期内に収集するために実行される処理であり、例えば、映像監視システムにおいては同周期内に監視数を増やすためのオプションの処理である。このため、リカバリ処理は、上述したように、１周期が経過すれば、その時点でリカバリ処理によるデータ収集で正常に収集できていなくても、それ以上のリカバリは実行されない。また、上記実施例では、失敗リストの先頭側と末尾側とから交互にノード情報を取得してデータ収集する場合を説明したが、失敗リストからノード情報を取得する順序は任意に決定されれば良い。
【０１１３】
（２）データ収集
また、上記実施例２では、距離が互いに遠いノードからデータを収集する処理の一つの様態として、ＩＰアドレスのアドレス値を利用する場合を説明したが、アドレス値を利用しなくても良い。例えば、データ収集装置１００は、ノード間の実際の距離を予め保持しておき、それぞれの距離を利用して互いに遠いノードからデータ収集に係る処理を実行する。
【０１１４】
（３）構成
また、上記文書中や図面中等で示した処理手順、制御手順、具体的名称、各種のデータやパラメータ等を含む情報（例えば、収集対象リスト１１１に保持される情報等）については、特記する場合を除いて任意に変更することができる。
【０１１５】
また、図示したデータ収集装置１００等の各構成要素は、機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は、図示のものに限られず、その全部又は一部を各種の負担や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合することができる。例えば、収集部１２２ａ〜１２２ｎは、上記実施例において映像監視システムを例に挙げたため、静止画生成の処理まで実行するものとして説明した。すなわち、収集部１２２ａ〜１２２ｎは、ネットワーク内に含まれる所定ノードからデータを収集する処理を実行するだけであっても良い。換言すると、データ収集装置１００は、映像監視システムに適用されるだけでなく、任意のデータを収集するものであれば何に適用されても良い。
【０１１６】
（４）プログラム
また、上記実施例で説明したデータ収集装置の各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図１３を用いて、上記の実施例で説明したデータ収集装置と同様の機能を有するデータ収集プログラムを実行するコンピュータの一例を説明する。図１３は、データ収集プログラムを実行するコンピュータを示す図である。
【０１１７】
図１３に示すように、コンピュータ１０００は、ＣＰＵ（Central  Processing  Unit）１１００、ＲＯＭ（Read  Only  Memory）１２００、ＨＤＤ（Hard  Disk  Drive）１３００、ＲＡＭ（Random  Access  Memory）１４００を有する。これら１０００〜１４００の各部は、バス１５００を介して接続される。
【０１１８】
ＲＯＭ１２００には、上記の実施例１で示した収集開始指示部１２１と、収集部１２２ａ〜１２２ｎと、収集結果受領部１２３と、収集対象リスト生成部１２５と同様の機能を発揮するデータ収集プログラムが予め記憶される。すなわち、ＲＯＭ１２００には、図１３に示すように、データ収集プログラム１２００ａが記憶される。なお、データ収集プログラム１２００ａについては、適宜分離しても良い。そして、ＣＰＵ１１００が、データ収集プログラム１２００ａをＲＯＭ１２００から読み出して実行する。また、ＨＤＤ１３００には、成功リスト１３００ａと、失敗リスト１３００ｂとが設けられる。成功リスト１３００ａは、図３に示した成功リスト１１２に対応する。また、失敗リスト１３００ｂは、図３に示した失敗リスト１１３に対応する。
【０１１９】
そして、ＣＰＵ１１００は、成功リスト１３００ａと、失敗リスト１３００ｂとを読み出してＲＡＭ１４００に格納する。さらに、ＣＰＵ１１００は、ＲＡＭ１４００に格納された成功リストデータ１４００ａと、失敗リストデータ１４００ｂとを用いて、データ収集プログラムを実行する。なお、ＲＡＭ１４００に格納される各データは、常に全てのデータがＲＡＭ１４００に格納されなくても良く、処理に要するデータのみがＲＡＭ１４００に格納されれば良い。なお、データ収集プログラムについては、必ずしも最初からＲＯＭ１２００に記憶させておかなくても良い。
【０１２０】
例えば、コンピュータ１０００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ１０００がこれらからプログラムを読み出して実行するようにしてもよい。さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１０００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ１０００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【０１２１】
１００  データ収集装置
１１０  記憶部
１１１  収集対象リスト
１１２  成功リスト
１１３  失敗リスト
１１４  リカバリ対象リスト
１２０  制御部
１２１  収集開始指示部
１２２ａ〜１２２ｎ  収集部
１２３  収集結果受領部
１２４  リカバリ処理部
１２５  収集対象リスト生成部
【図１】
0005655673.tif 000002
【図２Ａ】
0005655673.tif 000003
【図２Ｂ】
0005655673.tif 000004
【図３】
0005655673.tif 000005
【図４】
0005655673.tif 000006
【図５Ａ】
0005655673.tif 000007
【図５Ｂ】
0005655673.tif 000008
【図５Ｃ】
0005655673.tif 000009
【図５Ｄ】
0005655673.tif 000010
【図５Ｅ】
0005655673.tif 000011
【図６Ａ】
0005655673.tif 000012
【図６Ｂ】
0005655673.tif 000013
【図６Ｃ】
0005655673.tif 000014
【図６Ｄ】
0005655673.tif 000015
【図６Ｅ】
0005655673.tif 000016
【図６Ｆ】
0005655673.tif 000017
【図６Ｇ】
0005655673.tif 000018
【図６Ｈ】
0005655673.tif 000019
【図６Ｉ】
0005655673.tif 000020
【図６Ｊ】
0005655673.tif 000021
【図７】
0005655673.tif 000022
【図８】
0005655673.tif 000023
【図９】
0005655673.tif 000024
【図１０】
0005655673.tif 000025
【図１１Ａ】
0005655673.tif 000026
【図１１Ｂ】
0005655673.tif 000027
【図１１Ｃ】
0005655673.tif 000028
【図１１Ｄ】
0005655673.tif 000029
【図１１Ｅ】
0005655673.tif 000030
【図１１Ｆ】
0005655673.tif 000031
【図１１Ｇ】
0005655673.tif 000032
【図１１Ｈ】
0005655673.tif 000033
【図１１Ｉ】
0005655673.tif 000034
【図１１Ｊ】
0005655673.tif 000035
【図１１Ｋ】
0005655673.tif 000036
【図１１Ｌ】
0005655673.tif 000037
【図１１Ｍ】
0005655673.tif 000038
【図１１Ｎ】
0005655673.tif 000039
【図１１Ｏ】
0005655673.tif 000040
【図１２Ａ】
0005655673.tif 000041
【図１２Ｂ】
0005655673.tif 000042
【図１３】
0005655673.tif 000043