(57)【特許請求の範囲】
【請求項１】
所定の刻み幅の管理時刻によりレコードを管理するデータ処理装置であって、
複数のデータ送信装置から、時刻が示されるタイムスタンプが付加され、所定の周期で送信されるデータを受信するデータ受信部と、
前記データ受信部によりデータが受信される度に、受信されたデータに付加されたタイムスタンプの時刻に対応する管理時刻を判定し、受信されたデータを当該管理時刻に区分する時刻判定部と、
データ送信装置ごとに、データ受信の際の遅延状況を監視する遅延状況監視部と、
時間の経過に伴ってレコード生成の対象となるレコード対象管理時刻を更新し、現在のレコード対象管理時刻に区分されるデータの前記時刻判定部からの入力開始から所定の受付時間の間に前記時刻判定部から入力した現在のレコード対象管理時刻に区分されるデータを配列してレコードを生成し、現在のレコード対象管理時刻に区分されるデータのうち前記受付時間の終了時点で未だ入力していない未着データがある場合に、所定の待ち時間の間前記未着データの入力を待ち、前記待ち時間の終了までに入力された未着データを前記レコードに追加して前記レコードの生成を完了し、前記待ち時間の終了時点で入力していない未着データがある場合に、前記未着データの送信元のデータ送信装置に対する前記遅延状況監視部の監視結果に基づき、前記未着データの入力を待つか否かを決定し、前記未着データの入力を待つ場合に、前記待ち時間の間前記未着データの入力を待ち、前記未着データの入力を待たない場合に、前記未着データの存在を示す値を前記レコードに追加して前記レコードの生成を完了するレコード生成部と、
前記レコード生成部による生成が完了したレコードを所定のテーブルに追加するテーブル追加部とを有することを特徴とするデータ処理装置。
【請求項２】
前記レコード生成部は、
過去のレコード対象管理時刻に区分されるデータを前記時刻判定部から遅れて入力した場合に、遅れて入力した遅延データのレコードを生成し、前記遅延データと同じ管理時刻に区分されるデータであって未だ入力していない未着データがある場合に、所定の待ち時間の間前記未着データの入力を待ち、前記待ち時間の終了までに入力された未着データを前記レコードに追加して前記レコードの生成を完了し、前記待ち時間の終了時点で入力していない未着データがある場合に当該未着データの存在を示す値を前記レコードに追加して前記レコードの生成を完了し、
前記テーブル追加部は、
前記レコード生成部による生成が完了した前記遅延データが記述されているレコードを前記テーブルに追加することを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記遅延状況監視部は、
データ送信装置ごとに、連続して適正受信タイミングから遅れてデータが受信された回数を連続遅延回数として計数し、
前記レコード生成部は、
前記未着データの送信元のデータ送信装置の連続遅延回数が所定の閾値以内である場合は前記未着データの入力を待ち、前記未着データの送信元のデータ送信装置の連続遅延回数が前記閾値を超えている場合は前記未着データの入力を待たないことを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
前記遅延状況監視部は、
データ送信装置ごとに、所定の監視期間内で、適正受信タイミングから遅れてデータが受信された回数を遅延発生回数として計数し、
前記レコード生成部は、
前記未着データの送信元のデータ送信装置の遅延発生回数が所定の閾値以内である場合は前記未着データの入力を待ち、前記未着データの送信元のデータ送信装置の遅延発生回数が前記閾値を超えている場合は前記未着データの入力を待たないことを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
前記遅延状況監視部は、
データ送信装置ごとに、適正受信タイミングから遅れてデータが受信される度に適正受信タイミングから遅れた遅延時間を計測し、計測した遅延時間の所定の監視期間における平均値を算出し、
前記レコード生成部は、
前記未着データの送信元のデータ送信装置の遅延時間の平均値が所定の閾値以内である場合は前記未着データの入力を待ち、前記未着データの送信元のデータ送信装置の遅延時間の平均値が前記閾値を超えている場合は前記未着データの入力を待たないことを特徴とする請求項１に記載のデータ処理装置。
【請求項６】
前記レコード生成部は、
複数の未着データがある場合に、未着データごとに入力を待つか否かを決定することを特徴とする請求項１に記載のデータ処理装置。
【請求項７】
前記レコード生成部は、
前記受付時間の終了までに現在のレコード対象管理時刻に区分される全てのデータがレコードに格納されている場合は、前記受付時間の終了を待つことなく前記レコードの生成を完了することを特徴とする請求項１に記載のデータ処理装置。
【請求項８】
前記テーブル追加部は、
前記待ち時間の終了前に前記レコード生成部によるレコードの生成が完了した場合は、前記待ち時間の終了を待つことなく、生成が完了したレコードを前記テーブルに追加することを特徴とする請求項１に記載のデータ処理装置。
【請求項９】
前記時刻判定部は、
前記データ受信部によりデータが受信される度に、受信されたデータに付加されたタイムスタンプの時刻の切り上げ、切り捨て及び四捨五入のいずれかの演算を行って、前記タイムスタンプの時刻に対応する管理時刻を判定することを特徴とする請求項１に記載のデータ処理装置。
【請求項１０】
前記データ受信部は、
複数の計測機器の各々により計測された計測値が示されるデータを、計測機器の機器ＩＤ（Ｉｄｅｎｆｉｃａｔｉｏｎ）と対応付けて受信し、
前記データ処理装置は、更に、
機器ＩＤごとに、レコード内のデータの位置を指定する構成情報を記憶する構成情報記憶部を有し、
前記レコード生成部は、
前記時刻判定部から入力したデータに対応付けられている機器ＩＤに基づき、現在のレコード対象管理時刻に区分されるデータを前記構成情報で指定されている位置に配列してレコードを生成することを特徴とする請求項１に記載のデータ処理装置。
【請求項１１】
前記データ受信部は、
複数の設置場所に設置されている複数の計測機器の各々により計測された計測値が示されるデータを受信し、
前記構成情報記憶部は、
機器ＩＤごとに、計測機器の設置場所、計測値の属性、計測値の精度の少なくともいずれかが示される構成情報を記憶していることを特徴とする請求項１０に記載のデータ処理装置。
【請求項１２】
所定の刻み幅の管理時刻によりレコードを管理するコンピュータが行うデータ処理方法であって、
複数のデータ送信装置から、時刻が示されるタイムスタンプが付加され、所定の周期で送信されるデータを前記コンピュータが受信し、
データを受信する度に、前記コンピュータが、受信したデータに付加されたタイムスタンプの時刻に対応する管理時刻を判定し、受信したデータを当該管理時刻に区分し、
前記コンピュータが、データ送信装置ごとに、データ受信の際の遅延状況を監視し、
前記コンピュータが、時間の経過に伴ってレコード生成の対象となるレコード対象管理時刻を更新し、現在のレコード対象管理時刻に区分されるデータの受信開始から所定の受付時間の間に受信した現在のレコード対象管理時刻に区分されるデータを配列してレコードを生成し、現在のレコード対象管理時刻に区分されるデータのうち前記受付時間の終了時点で未だ受信していない未着データがある場合に、所定の待ち時間の間前記未着データの受信を待ち、前記待ち時間の終了までに受信された未着データを前記レコードに追加して前記レコードの生成を完了し、前記待ち時間の終了時点で受信していない未着データがある場合に、前記未着データの送信元のデータ送信装置に対する監視結果に基づき、前記未着データの入力を待つか否かを決定し、前記未着データの入力を待つ場合に、前記待ち時間の間前記未着データの入力を待ち、前記未着データの入力を待たない場合に、前記未着データの存在を示す値を前記レコードに追加して前記レコードの生成を完了し、
前記コンピュータが、生成が完了したレコードを所定のテーブルに追加することを特徴とするデータ処理方法。
【請求項１３】
所定の刻み幅の管理時刻によりレコードを管理するコンピュータに、
複数のデータ送信装置から、時刻が示されるタイムスタンプが付加され、所定の周期で送信されるデータを受信するデータ受信処理と、
前記データ受信処理によりデータが受信される度に、受信されたデータに付加されたタイムスタンプの時刻に対応する管理時刻を判定し、受信されたデータを当該管理時刻に区分する時刻判定処理と、
データ送信装置ごとに、データ受信の際の遅延状況を監視する遅延状況監視処理と、
時間の経過に伴ってレコード生成の対象となるレコード対象管理時刻を更新し、現在のレコード対象管理時刻に区分されるデータの前記時刻判定処理からの入力開始から所定の受付時間の間に前記時刻判定処理から入力した現在のレコード対象管理時刻に区分されるデータを配列してレコードを生成し、現在のレコード対象管理時刻に区分されるデータのうち前記受付時間の終了時点で未だ入力していない未着データがある場合に、所定の待ち時間の間前記未着データの入力を待ち、前記待ち時間の終了までに入力された未着データを前記レコードに追加して前記レコードの生成を完了し、前記待ち時間の終了時点で入力していない未着データがある場合に、前記未着データの送信元のデータ送信装置に対する前記遅延状況監視処理の監視結果に基づき、前記未着データの入力を待つか否かを決定し、前記未着データの入力を待つ場合に、前記待ち時間の間前記未着データの入力を待ち、前記未着データの入力を待たない場合に、前記未着データの存在を示す値を前記レコードに追加して前記レコードの生成を完了するレコード生成処理と、
前記レコード生成処理による生成が完了したレコードを所定のテーブルに追加するテーブル追加処理とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時刻情報が付加された周期的に発生する複数のデータを入力し、時刻情報に基づいて複数のデータを分類してデータベースに格納する技術に関する。
より具体的には、周期的に計測を行う複数の計測機器での計測結果が示される複数のデータを入力し、時刻情報に基づいて複数のデータを分類してデータベースに格納する技術に関する。
【背景技術】
【０００２】
一般的に電力センサや温度センサなどの計測機器では一定の周期で計測を行い、計測結果が示されるデータが出力される。
計測機器から出力されるデータのデータ構造は、計測が行われた「日付時刻」、当該計測機器を一意に識別可能な「機器ＩＤ」および計測された「計測値」から構成される。
このデータをデータベースのテーブルで管理する方法として従来から最も一般的なものは、前記の形式のままでテーブルに格納するというものである。【０００３】
このような形式で蓄積されたデータベースから例えば監視などの用途で同一の時刻の全データを一括して抽出しようとしても、データ自体に付加された時刻は計測機器によってばらばらであり、同一時刻に計測されたデータを比較することは困難である。
また、従来の管理方式では、時刻ごとに各機器のデータがすべて列方向に格納されるため、たとえば温度と電力の間の相関を求めるなどの場合に複雑な処理が必要であった。【０００４】
以上に対して一定周期で計測されるセンサデータを時系列的に比較することを目的として、特許文献１では、時刻で区切られたレコードを生成し、データの時刻と近似する時刻のレコードにデータを格納し、相互に同じ時刻又は近似する時刻を持つ複数のデータを１つのレコードに格納する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−３０１０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記の特許文献１の技術は、同一時刻に計測されたと想定されるデータを１レコードに格納し、たとえば複数の人に取付けた加速度センサのデータを時系列データとして比較することを可能にしている。
この技術では、受信したデータについては「日付時刻」「センサ識別子」「計測値」をもつレコードとして到着順にテーブルに格納し、センサから送信されるデータを待ち時間制御を行いながら同一時刻に取得されたデータについては１レコードに格納し直す処理を行うものである。【０００７】
特許文献１の技術では、収集したデータを到着順にテーブルに書き込んだ後、同一時刻に計測されたと想定されるデータを同一レコードに格納し直しているため、データを検索する場合などに時間の遅れが生じる可能性がある。
また、仮に特許文献１のレコード格納方式の実行を、データ受信から蓄積（データのテーブルへの格納）までの間に実行したとしても、ネットワークの混雑などによってデータの到着遅延が発生した場合に、遅延したデータを同一時刻に計測されたと想定されるデータ（遅延していないデータ）とともに同じテーブルに格納できないという課題がある。【０００８】
本発明は、上記の点に鑑み、周期的に送信されるデータを受信し、レコードをテーブルに追加する前に、受信したデータを対応する時刻のレコードに格納する方式において、データの到着に遅れが発生した場合でも到着の遅れたデータを同一時刻に計測されたと想定されるデータとともに同じテーブルに格納できる方式を実現することを主な目的とする。
【課題を解決するための手段】
【０００９】
本発明に係るデータ処理装置は、
所定の刻み幅の管理時刻によりレコードを管理するデータ処理装置であって、
時刻が示されるタイムスタンプが付加され、所定の周期で送信されるデータを受信するデータ受信部と、
前記データ受信部によりデータが受信される度に、受信されたデータに付加されたタイムスタンプの時刻に対応する管理時刻を判定し、受信されたデータを当該管理時刻に区分する時刻判定部と、
時間の経過に伴ってレコード生成の対象となるレコード対象管理時刻を更新し、現在のレコード対象管理時刻に区分されるデータの前記時刻判定部からの入力開始から所定の受付時間の間に前記時刻判定部から入力した現在のレコード対象管理時刻に区分されるデータを配列してレコードを生成し、現在のレコード対象管理時刻に区分されるデータのうち前記受付時間の終了時点で未だ入力していない未着データがある場合に、所定の待ち時間の間前記未着データの入力を待ち、前記待ち時間の終了までに入力された未着データを前記レコードに追加して前記レコードの生成を完了し、前記待ち時間の終了時点で入力していない未着データがある場合に当該未着データの存在を示す値を前記レコードに追加して前記レコードの生成を完了するレコード生成部と、
前記レコード生成部による生成が完了したレコードを所定のテーブルに追加するテーブル追加部とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、受付時間の終了時で未着データがある場合は待ち時間の間未着データの入力を待ち、待ち時間の終了までに入力されたデータも同じ管理時刻のレコードに追加してレコードの生成を完了するため、データの到着が多少遅れても到着が遅れたデータをレコードに格納することが可能であり、欠損データ発生頻度を抑止することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係るシステム構成例を示す図。
【図２】実施の形態１に係るデータベースサーバ装置の構成例を示す図。
【図３】実施の形態１に係るデータの構成例を示す図。
【図４】実施の形態１に係るデータベースサーバ装置の動作の概要を示すフローチャート図。
【図５】実施の形態１に係るレコードの管理時刻の算出方法を説明する図。
【図６】実施の形態１に係るデータのレコードへの格納手順の具体例を示す図。
【図７】実施の形態１に係る完全レコードの例を示す図。
【図８】実施の形態１に係る不完全レコードの例を示す図。
【図９】実施の形態１に係る書き込み判定処理を示すフローチャート図。
【図１０】実施の形態１に係る構成情報の例を示す図。
【図１１】実施の形態１に係る構成情報の各要素を説明する図。
【図１２】実施の形態１に係るセンサデータの集計例を示す図。
【図１３】実施の形態１に係るセンサデータの集計例を示す図。
【図１４】実施の形態１に係る収集周期の異なる２種類のデータ間の関係を示す図。
【図１５】実施の形態１に係る収集周期の異なる２種類のデータ間の関係を示す図。
【図１６】実施の形態１に係る待ち時間制御方式の処理フローを示すフローチャート図。
【図１７】実施の形態１に係る待ち時間制御方式の処理フローを示すフローチャート図。
【図１８】実施の形態１に係る待ち時間制御方式の処理フローを示すフローチャート図。
【図１９】実施の形態１に係るレコード生成部の処理フローを示すフローチャート図。
【図２０】実施の形態１に係るレコード生成部の処理フローを示すフローチャート図。
【図２１】実施の形態１に係るデータベースサーバ装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１２】
実施の形態１．
本実施の形態では、電力センサや温度センサ等をはじめとして、様々な計測機器から受信したデータをテーブルに書き込み、データの検索／集計を問題なく実行できるデータ管理技術を説明する。
より具体的には、レコードのテーブルへの書き込み前に時刻を基準にして各データに対応するレコードを判断し、各データを対応するレコードに格納する方式において、データの到着遅れが発生した場合においても可能な限りレコードのテーブルへの書き込み処理を遅らせデータの到着を待つことにより、リアルタイムにレコードの生成を可能にし、レコード内でのデータ欠損を抑止する技術を説明する。
また、本実施の形態では、定期的に到着するデータのレコードへの書き込み回数を減らすことにより性能の低下を防ぎ、さらにデータの遅延によってレコード中に欠損が発生した場合においても遅延したデータが到着した際にそのデータをテーブルに追加することにより、データの廃棄を回避する技術を説明する。
【００１３】
なお、以下では、環境ＩＴシステムに適用した、データリアルタイムロード機能におけるレコード生成方式を説明するが、本実施の形態に係るレコード生成方式は環境ＩＴシステムへの適用に限定されるものではない。
定期的に計測を行っている計測機器からのデータを収集・管理するすべてのシステムに適用することができる。
【００１４】
図１は、本実施の形態に係る環境ＩＴシステムの全体構成例を示す図である。
図１を用いて全体的なデータの流れを説明する。
本実施の形態に係る環境ＩＴシステムは、周期的に計測を行い、計測値が示されるデータを周期的に送信する複数の計測機器２０１と、計測機器２０１が送信したデータを収集する収集サーバ装置２０２と、収集サーバ装置２０２が収集したデータをレコード形式で蓄積するデータベースサーバ装置１００から構成される。
データは、電力、温度、その他多種多様な計測機器２０１で計測され、ネットワーク２０４を経由していったん収集サーバ装置２０２に集められる。
収集サーバ装置２０２はシステム内に複数台あってもかまわない。
収集サーバ装置２０２は集めたデータをネットワーク２０５を経由してデータベースサーバ装置１００に送信し、データベースサーバ装置１００が収集サーバ装置２０２からのデータを蓄積する。
データベースサーバ装置１００は、収集サーバ装置２０２から受信したデータを時刻で分類して、対象となるレコードに格納し、同じ時間帯のデータが格納されたレコードをテーブルに追加する。
データベースサーバ装置１００はデータ処理装置の例であり、収集サーバ装置２０２はデータ送信装置の例である。
【００１５】
計測機器２０１で生成され、データベースサーバ装置１００で蓄積されるデータは、例えば、図３に示すデータ構造を有する。
日付時刻３０１は、タイムスタンプであり、例えば計測機器２０１で計測が行われた時刻が示される。
機器ＩＤ３０２は、計測を行った計測機器２０１を一意に識別可能な計測機器２０１の識別子である。
計測値３０３は、計測機器２０１が計測を行った値であり、例えば、計測機器２０１が温度センサの場合は温度であり、計測機器２０１が電力センサであれば電力値である。
【００１６】
図２は、本実施の形態に係るデータベースサーバ装置１００の構成例を示す。
図２に即してデータベースサーバ装置１００の各要素を説明する。
【００１７】
データ受信部１０２は、収集サーバ装置２０２から送信された複数のデータ１０１を受信する。
データ１０１は、図３に示すデータ形式を持つ。
時刻判定部１０３は、データ受信部１０２によりデータ１０１が受信される度に、受信されたデータ１０１に付加されたタイムスタンプの時刻に対応する管理時刻を判定し、受信されたデータ１０１を当該管理時刻に区分する。
後述するように、データベースサーバ装置１００は、レコードを所定の刻み幅（例えば、３０秒、１分等）の管理時刻により管理する。
このため、時刻判定部１０３は、データ受信部１０２により受信されたデータ１０１の日付時刻１１１に示される時刻が管理時刻のいずれに適合するかを判断し、データ１０１をいずれかの管理時刻に分類する。
【００１８】
構成情報管理部１０４は、構成情報を管理する。
構成情報は、計測機器２０１が配置されている場所、機器ＩＤとレコード内の列位置の関係、計測値の種類（温度の計測値か、電力の計測値か）等を定義する情報である。
構成情報は、構成情報記憶部１１０に記憶されている。
【００１９】
レコード生成部１０５は、同じ管理時刻に属するデータ１０１を構成情報で定義されている列位置に従って同じレコード内に配列する。
図２の例では、レコード生成部１０５は、同じ管理時刻に属するデータ１〜データＮを配列して１つのレコードを生成している。
また、レコード生成部１０５は、レコードを一時保存する一時記憶装置を有しており、所定の時間の間、生成したレコードを一時記憶装置で保持する。
レコード生成部１０５は、時間の経過に伴ってレコード生成の対象となるレコード対象管理時刻を更新し、現在のレコード対象管理時刻に区分されるデータの時刻判定部１０３からの入力開始から所定の受付時間の間に時刻判定部１０３から入力した現在のレコード対象管理時刻に区分されるデータを配列してレコードを生成する。
そして、レコード生成部１０５は、現在のレコード対象管理時刻に区分されるデータのうち受付時間の終了時点で未だ入力していない未着データがある場合に、受付時間の終了時点で未着データの入力を待つか否かを決定する。
未着データの入力を待つ場合は、レコード生成部１０５は、所定の待ち時間の間未着データの入力を待ち、待ち時間の終了までに入力された未着データを前記レコードに追加してレコードの生成を完了する。
また、レコード生成部１０５は、待ち時間の終了時点で入力していない未着データがある場合に当該未着データの存在を示す値をレコードに追加してレコードの生成を完了する。
一方、未着データの入力を待たない場合は、受付時間の終了時点で当該未着データの存在を示す値を前記レコードに追加してレコードの生成を完了する。
更に、レコード生成部１０５は、過去のレコード対象管理時刻に区分されるデータを時刻判定部１０３から遅れて入力した場合に、遅れて入力した遅延データのレコードを生成し、当該遅延データと同じ管理時刻に区分されるデータであって未だ入力していない未着データがある場合に、所定の待ち時間の間未着データの入力を待ち、待ち時間の終了までに入力された未着データを前記レコードに追加してレコードの生成を完了する。
そして、レコード生成部１０５は、待ち時間の終了時点で入力していない未着データがある場合に当該未着データの存在を示す値を前記レコードに追加してレコードの生成を完了する。
【００２０】
待ち時間制御部１０８はシステムで設定されている遅延時間やオープン／クローズその他の処理に要する時間などからデータの到着遅れに対して許容される待ち時間を算出するとともに、選択された待ち時間制御方式に従い個々のデータを待つかどうかを判定する。
ここで遅延時間とは、データが到着してからユーザがデータを参照可能になるまでの時間である。
待ち時間制御部１０８は、より具体的には、収集サーバ装置２０２ごとに、データ受信の際の遅延状況を監視する。
レコード生成部１０５は、未着データがある場合に、未着データの送信元の収集サーバ装置２０２に対する待ち時間制御部１０８の監視結果に基づき、未着データの入力を待つか否かを決定する。
なお、待ち時間制御部１０８は遅延状況監視部の例である。
【００２１】
書き込み判定部１０７は、待ち時間と書き込み処理の対象となるデータサイズ等から時刻判定部１０３の一時記憶装置上のどのレコードを書き込むべきかを判定する。
【００２２】
書き込み処理部１０６は書き込み判定部１０７により書き込み対象となったレコードをテーブル記憶部１０９に書き込む。
書き込み処理部１０６は、テーブル追加部の例である。
【００２３】
テーブル記憶部１０９は、図２に示すように、管理時刻ごとのレコードを時系列に並べたテーブルを記憶する。
また、レコード生成部１０５により新たに生成されたレコードは、テーブルの最下段に追加される。
【００２４】
次に、図４のフローチャートを用いて、本実施の形態に係るデータベースサーバ装置１００の動作例を概説する。
【００２５】
ステップＳ４０１で、データ受信部１０２がデータ１０１を受信すると、ステップＳ４０２で、時刻判定部１０３がデータ１０１の日付時刻１１１を取得し、日付時刻１１１が対応する管理時刻を判別し、管理時刻に従ってデータ１０１を分類する。
ステップＳ４０３で、レコード生成部１０５が時刻判定部１０３による分類に従って、データ１０１を格納すべきレコード（データ１０１が属する管理時刻に対応するレコード）がすでに一時記憶装置に存在するかどうかを判定する。
対応するレコードが存在しない場合は、ステップＳ４０４で、レコード生成部１０５が新規にレコードを生成し、最初に到着したデータ１０１の到着時刻（例えば、レコード生成部１０５がデータ１０１を入力した時刻）を、新規に生成したレコードに付加する。
ステップＳ４０３の判断において、対応するレコードがすでに生成されている場合は、ステップＳ４０５で、レコード生成部１０５は既存のレコードを一時記憶装置から読み出す。
次に、ステップＳ４０６で、レコード生成部１０５は、データ受信部１０２が受信した個々のデータの機器ＩＤ１１２を構成情報管理部１０４に通知し、構成情報管理部１０４から機器ＩＤ１１２ごとにデータ１１３（計測値）を格納すべき列位置を取得し、データ１１３ごとに列位置を決定し、レコードに書き込む。
【００２６】
ステップＳ４０７では、書き込み判定部１０７が、ステップＳ４０８ですでに生成されたレコードに対してテーブル記憶部１０９のテーブルへの書き込み処理を行うべきかどうかを判定する。
書き込み処理を実行する場合は、書き込み処理部１０６で書き込み対象となるすべてのレコードに対して書き込み処理を行う。
一方、書き込み処理を行わない場合は、ステップＳ４０１に戻り、データ１０１の受信を待つ。
【００２７】
なお、レコード生成部１０５では、新しいデータを認識すると該当する時刻をもつレコードがメモリ（一時記憶装置）上に生成されているかどうかを判定し存在する場合はそのレコードにデータを格納し、存在しない場合は新しいレコードを生成し各項目に対応するデータがある場合は項目にデータを格納し、それ以外の項目（対応するデータが存在しない項目）にはＮＵＬＬを格納する。
レコード生成部１０５はこの操作を一定間隔で実行するだけで書き込み判定をするわけではない。
書き込み判定部１０７は指定された待ち時間制御方式により書き込むべきかどうかを判定するもので、両者は独立かつ非同期に動作する。
【００２８】
次に、時刻判定部１０３の動作の詳細を説明する。
【００２９】
時刻判定部１０３は、データ受信部１０２からデータ１０１を取得し、データ１０１の日付時刻１１１が対応する管理時刻を算出する。
図５は、時刻判定部１０３の管理時刻の算出に関する説明図である。
管理時刻は指定された格納周期５０１で決められ、すべてのデータ１０１はいずれかの管理時刻を有するレコードに格納されることになる。
管理時刻の刻み幅は、格納周期５０１と一致する。
個々のデータがどの管理時刻に該当するかは格納周期５０１と端数処理５０２によって決まる。
たとえば、格納周期５０１の値（管理時刻の刻み幅）が３０秒の場合は、３０秒の範囲内にある日付時刻１１１は同一の管理時刻に区分される。
そして、１つの管理時刻に区分される範囲は、端数処理５０２に決定される。
端数処理５０２がＲＯＵＮＤ（四捨五入）の場合は、管理時刻を基準にして−１５秒〜＋１４秒の範囲に日付時刻１１１があるデータは当該管理時刻のレコードに格納されることになる。
端数処理５０２がＵＰ（切り上げ）の場合は、管理時刻を基準として−２９秒〜０秒の範囲に日付時刻１１１があるデータは当該管理時刻のレコードに格納されることになる。
端数処理５０２がＤＯＷＮ（切り捨て）の場合は、管理時刻を基準として０秒から＋２９秒の範囲に日付時刻１１１があるデータは当該管理時刻のレコードに格納されることになる。
例えば、格納周期が３０秒の場合に、１０時００分００秒の管理時刻については、端数処理５０２がＲＯＵＮＤ（四捨五入）であれば、日付時刻９時５９分４５秒〜１０時００分１４秒の範囲にある日付時刻１１は、当該管理時刻（１０時００分００秒）に区分される。
また、端数処理５０２がＵＰ（切り上げ）であれば、日付時刻９時５９分３１秒〜１０時００分００秒の範囲にある日付時刻１１は、当該管理時刻（１０時００分００秒）に区分される。
また、端数処理５０２がＤＯＷＮ（切り捨て）であれば、日付時刻１０時００分０秒〜１０時００分２９秒の範囲にある日付時刻１１は、当該管理時刻（１０時００分００秒）に区分される。
【００３０】
このような時刻判定部１０３の処理により、データの収集周期に合わせた形式でレコードを管理することが可能になる。
なお、格納周期５０１は個々のデータを同一とみなす基準時刻を取得するための周期であり、実際の計測機器２０１の収集周期と同一である必要はない。
ただし、格納周期５０１は計測機器２０１の収集周期以下の値を設定することはできない。
また、端数処理として四捨五入、切り上げ、切捨てなどを例として説明したが、これらの処理方法に特に限定されるものではない。
【００３１】
次に、図１９及び図２０を参照して、本実施の形態に係るレコード生成部１０５の動作例を説明する。
【００３２】
レコード生成部１０５は、時刻判定部１０３から、データ１１３（計測値）、機器ＩＤ１１２、時刻判定部１０３が判定した管理時刻を入力する（Ｓ１６０１）。
次に、レコード生成部１０５は入力した管理時刻が新しいものであるかどうかを解析する（Ｓ１６０２）。
具体的には、レコード生成部１０５は、入力した管理時刻が現在レコード生成中の管理時刻と同じかどうか、つまり、受付時間又は待ち時間の計測を行っている管理時刻と同じかどうかを判断する。
【００３３】
解析の結果、新しい管理時刻の場合（Ｓ１６０３でＹＥＳ）は、レコード生成部１０５は受付時間の計測を開始する。
なお、この新しい管理時刻がこれからレコードを生成する管理時刻であり、レコード対象管理時刻となる。
レコード生成部１０５は、例えば、所定のタイマに受付時間を設定して、タイマをスタートさせる。
受付時間は、例えば、格納周期（管理時刻の刻み幅）の半分の時間とする。
例えば、格納周期が１分であり、最初のデータの到着時刻が１０時００分０５秒である場合に、管理時刻１０時００分００秒のレコードの受付時間は１０時００分３５秒までとなる。なお、受付時間をどの程度の長さとするかは、システム管理者が任意に決めることができる。
【００３４】
レコード生成部１０５は、更に、新しい管理時刻に分類されたデータ１１３（計測値）を格納するためにレコードを生成し、生成したレコードに、新しい管理時刻に分類された最初のデータ１１３（Ｓ１６０１で入力したデータ１１３）のレコード生成部１０５への到着時刻を付加する（Ｓ１６０６）。
【００３５】
一方、Ｓ１６０１で入力したデータ１１３の管理時刻が新しいものではない場合（Ｓ１６０３でＮＯ）は、レコード生成部１０５は、その管理時刻に対応するレコードを一時記憶領域から読み出す（Ｓ１６０４）。
更に、レコード生成部１０５は、現在その管理時刻に対して受付時間を計測中かどうかを判断し、受付時間の計測中である場合（Ｓ１６１１でＹＥＳ）は、Ｓ１６０７に進み、受信時間の計測中でない場合（Ｓ１６１１でＮＯ）は、現在待ち時間の計測中となるため、Ｓ１７０２以降の処理が行われる。Ｓ１７０２以降の処理は後述する。
【００３６】
Ｓ１６０７では、レコード生成部１０５は、構成情報管理部１０４を介して構成情報記憶部１１０から構成情報を読み出す（Ｓ１６０７）。
更に、レコード生成部１０５は、構成情報に従って、Ｓ１６０１で入力したデータ１１３をＳ１６０６で生成したレコード又はＳ１６０４で読み出したレコードの所定の列に格納する（Ｓ１６０８）。
前述したように、構成情報には、機器ＩＤ１１２ごとにデータ１１３を格納すべき列が指定されており、レコード生成部１０５はＳ１６０１で受信した機器ＩＤ１１２に対応する列にデータ１１３を格納する。
【００３７】
次に、レコード生成部１０５は、レコードの全ての列にデータを格納できたかどうかを確認し（Ｓ１６０９）、全データを格納できている場合（Ｓ１６０９でＹＥＳ）は、レコードの生成を完了し（Ｓ１７１１）、書き込み判定部１０７にレコードの生成が完了した旨を通知する。
一方、レコードに格納していないデータが存在する場合（Ｓ１６０９でＮＯ）は、レコード生成部１０５がＳ１６０５で計測を開始した受付時間が終了しているかどうかを判断し、受付時間が終了していない場合（Ｓ１６１０でＮＯ）は、Ｓ１６０１に処理を戻し、時刻判定部１０３からの入力を待つ。
【００３８】
受付時間が終了している場合（Ｓ１６１０でＹＥＳ）、すなわち、受付時間の終了時点でレコードに格納できていないデータ（未着データ）が存在する場合は、レコード生成部１０５は、受付時間終了時点で到着していない未着データを待つかどうかを判断する（Ｓ１７０１）。
未着データを待つかどうかの判断基準は、待ち時間制御部１０８の監視結果に基づく。待ち時間制御部１０８の動作については後述する。
以降の処理は、どの未着データを待つかによって異なる（Ｓ１７０２）。
【００３９】
未着データのうちの一部は待ち、残りは待たないというように、待つデータと待たないデータが混在している場合は、待つデータについてはＳ１７０５〜Ｓ１７１０の処理を行い、待たないデータについてはＳ１７０４の処理を行う（Ｓ１７０３）。
【００４０】
未着データの全てを待たない場合は、レコード生成部１０５は、構成情報に従い、受付時間終了時点で未着のデータを格納する列にＮＵＬＬ値（未着データの存在を示す値）を格納し、レコードの生成を完了し（Ｓ１７１１）、書き込み判定部１０７にレコードの生成が完了した旨を通知する。
【００４１】
未着データの全てを待つ場合は、レコード生成部１０５は待ち時間の計測を開始する（Ｓ１７０５）。
レコード生成部１０５は、例えば、所定のタイマに待ち時間を設定して、タイマをスタートさせる。
待ち時間は、例えば、受付時間の終了後、格納周期（管理時刻の刻み幅）の四分の一の時間とする。
例えば、格納周期が１分であり、最初のデータの到着時刻が１０時００分０５秒であり、受付時間が３０秒である場合に、管理時刻１０時００分００秒のレコードの待ち時間は１０時００分３５秒から１０時００分５０秒までとなる。なお、待ち時間をどの程度の長さとするかは、システム管理者が任意に決めることができる。
そして、未着データを入力した場合（Ｓ１７０６でＹＥＳ）は、構成情報に従って、レコードの所定の列に未着データを格納する（Ｓ１７０７）。
そして、レコード生成部１０５は、レコードの全ての列にデータを格納できたかどうかを確認し（Ｓ１７０８）、全データを格納できている場合（Ｓ１７０８でＹＥＳ）は、レコードの生成を完了し（Ｓ１７１１）、書き込み判定部１０７にレコードの生成が完了した旨を通知する。
一方、レコードに格納していないデータが存在する場合（Ｓ１７０８でＮＯ）は、レコード生成部１０５がＳ１７０５で計測を開始した待ち時間が終了しているかどうかを判断し、待ち時間が終了していない場合（Ｓ１７０９でＮＯ）は、Ｓ１７０６に処理を戻し、未着データの入力を待つ。
一方、待ち時間が終了している場合は、レコード生成部１０５は、構成情報に従い、待ち時間終了時点で未着のデータを格納する列にＮＵＬＬ値（未着データの存在を示す値）を格納し（Ｓ１７１０）、レコードの生成を完了し（Ｓ１７１１）、書き込み判定部１０７にレコードの生成が完了した旨を通知する。
【００４２】
また、Ｓ１６１１の判断でＮＯとなった場合は、Ｓ１６０１で受信されたデータ１１３は、待ち時間の間に入力された未着データである。
Ｓ１７０２の判断において、全て待つとなっている場合は、当該未着データを受信したことにより、Ｓ１７０６の判断がＹＥＳとなり、当該未着データに対してＳ１７０７の処理が行われ、また、Ｓ１７０８及びＳ１７０９の判断が行われる。
また、Ｓ１７０２の判断において混在となっている場合は、当該未着データが待つ対象であれば、当該未着データを受信したことにより、Ｓ１７０６の判断がＹＥＳとなり、当該未着データに対してＳ１７０７の処理が行われ、また、Ｓ１７０８及びＳ１７０９の判断が行われる。当該未着データが待つ対象でない場合はＳ１７０４で既にＮＵＬＬ値が設定されている。このため、当該未着データは破棄される。
なお、これに代えて、既に設定されているＮＵＬＬ値を、未着データで書き換えるようにしてもよい。
【００４３】
また、待ち時間が終了し（Ｓ１７０９でＹＥＳ）、未着データにＮＵＬＬ値が格納され（Ｓ１７１０）、ＮＵＬＬ値が存在するレコードの生成が完了し（Ｓ１７１１）、ＮＵＬＬ値が存在するレコードがテーブル記憶部１０９においてテーブルに追加された後に、当該未着データ（遅延データ）が時刻判定部１０３から入力される場合がある。
この場合は、当該未着データ（遅延データ）の管理時刻は過去のレコード対象管理時刻ではあるが、新しい管理時刻と判断され（Ｓ１６０３でＹＥＳ）、Ｓ１６０５以降の処理が行われる。
例えば、管理時刻１０時００分００秒のレコードに未着データがあるため、ＮＵＬＬ値が含まれている状態で管理時刻１０時００分００秒のレコードがテーブル記憶部１０９のテーブルに追加された後に、管理時刻１０時００分００秒に分類される未着データが遅れて時刻判定部１０３から入力された場合（Ｓ１６０１）を考える。
当該未着データ（遅延データ）の管理時刻１０時００分００秒に対応するレコードは生成中ではないため、当該未着データ（遅延データ）の管理時刻は新しい管理時刻と判断される（Ｓ１６０３でＹＥＳ）、このため、当該未着データ（遅延データ）の入力を契機に受付時間の計測が開始され（Ｓ１６０５）、管理時刻１０時００分００秒のレコードが改めて生成される。
また、当該未着データ（遅延データ）の到着時刻がレコードに付加され（Ｓ１６０６）、当該未着データ（遅延データ）が新たに生成された管理時刻１０時００分００秒のレコードに格納され、また、他に未着データがある場合は、受付時間の間、他の未着データの到着を待つ（Ｓ１６０９、Ｓ１６１０）。
また、他の未着データがあり、他の未着データが受付時間の終了までに入力されない場合に、必要であれば、待ち時間の間、他の未着データの到着を待つ。
【００４４】
このようにして、レコードがテーブルに追加された後に、遅れて未着データ（遅延データ）が到着した場合にも、レコード生成部１０５は、遅延データを格納するためのレコードを生成し、また、他の未着データの到着を受付時間の間待ち、更に、必要であれば、待ち時間の間待つ。
【００４５】
なお、上述の説明では、図１９において、Ｓ１６０９で全てのデータがレコードに格納されたと判断された場合は、受付時間の終了を待たずに、レコードの生成を完了する（Ｓ１７１１）としているが、全てのデータがレコードに格納されている場合でも受付時間が終了した後にレコードの生成を完了するようにしてもよい。
【００４６】
図６は、図１９及び図２０に示すレコード生成部１０５の処理を具体的に説明する図である。
簡単のためここでは、計測機器数は５つ、レコード生成周期は１分、端数処理方法を四捨五入とする。
【００４７】
今、収集サーバ装置２０２を経由して、４つの計測機器２０１から４つのデータ６０１が到着したとする。
４つのデータの日付時刻、機器ＩＤ、計測値は、図６に示す通りである。
この時点では、機器ＩＤ＝４に該当するデータだけ遅延しているとする。
時刻判定部１０３により４つのデータに対して導出された管理時刻は１０：００：００（１０時００分００秒）である。
データ入力時点では、１０：００：００のレコードを存在していないため、レコード生成部１０５は、新規に１０：００：００のレコード（以下、レコード６０２とする）を生成する。
そして、レコード生成部１０５は、最初に到着したデータである機器ＩＤ＝１の到着時刻（１０：００：０５）をタイマから取得し、レコード６０２の到着時刻６０３に付加する。
更に、レコード生成部１０５は、構成情報６０６を参照して、各機器のデータをレコード内のどの列に格納するかを判断し、各データを対応する列に配列してレコードに格納していく。
その後、受付時間が終了しても、機器ＩＤ＝４のデータが到着しないため、遅れているデータを待つか否かを判定し、「待つ」と判定した場合には待ち時間だけ待つ。
そして、待ち時間以内に未着データが到着しない場合は、レコード生成部１０５は、未着データを格納すべき列６０７にＮＵＬＬ値を格納し、レコードの生成を完了し、書き込み処理部１０６が当該レコードをテーブル記憶部１０９のテーブルに追加する。
【００４８】
レコード６０２がテーブル記憶部１０９に蓄積された後に、機器ＩＤ＝４のデータ（以下、データ６０４とする）が遅延して到着した場合に、時刻判定部１０３は、このデータ６０４を管理時刻１０：００：００に分類する。
そして、レコード生成部１０５は、管理時刻１０：００：００のレコードは現在生成中ではないため、新たな管理時刻と判断し、管理時刻１０：００：００のレコード（以下、レコード６０５とする）を再度生成する。
そして、レコード生成部１０５は、レコード６０５にデータ６０４の到着時刻（１０：０７：００）を付加するとともに、構成情報６０６に従い、データ６０４の計測値を所定の位置に格納する。
なお、機器ＩＤ＝１、２、３、５の計測値は既にレコード６０２に格納されているため、レコード６０５では、これらの計測値に対応する列にはＮＵＬＬ値が設定される。
レコード生成部１０５は、例えば、レコード６０５の管理時刻１０：００：００と同じ管理時刻を持つレコードがテーブルに格納されているかどうかを書き込み処理部１０６に問い合わせ、管理時刻１０：００：００と同じ管理時刻を持つレコードがテーブル記憶部１０９に格納されている場合は、書き込み処理部１０６から既に計測値が格納されている列（又は機器ＩＤ）の通知を受ける。
これにより、レコード生成部１０５は、既にレコード６０２に計測値が格納されている列を判別することができ、対応する列にＮＵＬＬ値を格納することができる。
また、レコード生成部１０５は、他に未着データが存在する場合は、受付時間を待ち、また、必要であれば、待ち時間を待つが、図６の例では、機器ＩＤ＝１〜５のすべての計測値がレコード６０２とレコード６０５に格納されており、未着データはないため、レコード６０５の生成を完了し、書き込み処理部１０６がレコード６０５をテーブル記憶部１０９のテーブルに追加する。
【００４９】
なお、図７のようにすべてのデータが格納されたレコードを完全レコード７０１といい、図８にように１つ以上の欠損データをもつレコードを不完全レコード７０２とよぶ。
【００５０】
図１４は２つのデータにおいて収集周期が異なる場合であり、データ１１０１が１分周期、データ１１０２が５分周期とする。
このような場合では、格納周期５０１の値を収集周期と同じ値で設定すると、５分周期のデータ１１０２は５分間に収集されたいずれかのデータ１１０１と同一レコードに格納されることになる。
５分周期の計測機器２のデータ１１０２の格納周期を５分にすると、例えば収集時刻０９：０１のデータ１１０２は１分周期の計測機器１の管理時刻０９：０１、０９：０２、０９：０３、０９：０４、０９：０５のいずれかのデータ１１０１と同じレコードに格納される。
つまり、計測機器２からのデータ１１０２が計測機器１の５つのデータ１１０１のうちのいずれと同一レコードに格納されるのかは、計測機器２からのデータの到着タイミングにより変動する。
【００５１】
これに対して図１５のように厳密に収集時刻が同一である場合にのみ同一レコードに格納し、それ以外の場合は異なるレコードに格納する必要がある場合は、格納周期５０１の値をデータ１２０２に対してもデータ１２０１の格納周期と同じ１分に設定することで格納することが可能になる。
つまり、５分周期のデータでも格納周期を１分にしておけば、例えば収集時刻０９：０１のデータ１２０２は、図１５のように、管理時刻０９：０のデータ１２０１とマージされる。
なお、図１５において、データ１２０１は収集周期が１分のデータであり、データ１１０２は収集周期が５分のデータである。
【００５２】
次に書き込み判定部１０７の動作例を図９に即して説明する。
【００５３】
書き込み判定部１０７は、レコード生成部１０５から呼び出されるとステップＳ８０１で完全レコード７０１のデータサイズおよびステップＳ８０２で不完全レコード７０２のデータサイズを算出する。
ただし不完全レコードであってもデータが完全である場合を想定して算出する。
【００５４】
次に、書き込み判定部１０７は、ステップＳ８０３で、取得した前記データサイズから書き込み処理時間を算出し、前記書き込み処理時間と待ち時間制御部１０８によって設定された待ち時間から最適許容待ち時間を算出する。
最適許容待ち時間の算出は、例えば、以下に従う。
今回最適許容待ち時間＝待ち時間−前回書きこみ処理時間
書き込み処理時間はすでに書きこまれたデータサイズによって変化するため、前回書き込み処理時間とする。
今回の書き込み処理時間は、次回の最適許容待ち時間の算出に用いられる。
また、待ち時間は、以下により導出される。
待ち時間＝遅延時間／監視周期
なお、遅延時間、監視周期ともシステム管理者等のユーザが設定する。
【００５５】
書き込み判定部１０７は、ステップＳ８０４で、最適待ち時間制御をする場合においては完全レコード７０１または不完全レコード７０２の中に許容待ち時間を超えるレコードがあるかどうかを判定する。
存在する場合は、書き込み判定部１０７は、ステップＳ８０５で完全レコードに対しては全レコードの書き込み判定フラグ領域に書き込みフラグを立てる。
また、不完全レコードに対しては、書き込み判定部１０７は、各レコードに対して待ち時間を超えるかどうかを判定し、超えるレコードだけ書き込み判定フラグ領域に書き込みフラグを立て、書き込み判定を終了する。
一方、待ち時間を超えるレコードが存在しない場合は、ステップＳ８０６で書き込みフラグを立てることなく書き込み判定を終了する。
なお、上記は未着データを持つことを前提にしており、未着データを持たない場合は、常に書き込みフラグを立てる。
最適待ち時間制御をする場合は指定された遅延時間による制約保証を満たすための判定を行う。ここで書き込みフラグが立った場合は書き込み処理を行う必要がある。
また、書き込み判定はフラグを立てるだけであり、最終的に書き込み処理においてフラグが立っている場合には書き込み処理を実行し、レコードを削除する処理になる。したがって書き込みフラグが立たなければ書き込み処理は行われず再度判定機能が同一レコードに対して判定処理を繰り返すことになる。
【００５６】
次に、待ち時間制御部１０８の処理について述べる。
【００５７】
待ち時間制御部１０８は、データ受信部１０２によるデータ受信状況を監視し、個々のデータの遅れの発生頻度からそのデータにおいて到着遅れが発生した場合に「待つ／待たない」を判定するものである。
つまり、待ち時間制御部１０８は、収集サーバ装置２０２ごとに、データ受信の際の遅延状況を監視し、監視結果に応じて、データに到着遅れが生じた際に未着データを待つかどうかを決定する。
【００５８】
待ち時間制御部１０８は到着遅れに対する待ち時間制御方式として３種類の制御方式を持ち、データごとにどの制御方式を選択するかを設定することが可能である。
なお、処理の途中で待ち時間制御方式を変更することは可能であるが、制御方式を変更した場合は「待つ／待たない」の判定はリセットされ、全てのデータを待つものとする。
【００５９】
図１６に従って待ち時間制御方式１の処理ステップについて述べる。
待ち時間制御方式１は到着遅れの連続発生回数によって「待つ／待たない」を判定する制御方式である。
【００６０】
待ち時間制御部１０８は、ステップＳ１３０１で受信したデータが所定の適正受信タイミングに遅れて到着しているかどうか、つまり到着遅れが発生しているかどうかをステップＳ１３０２で判定する。
適正受信タイミングは、例えば、ある管理時刻に分類されるデータのうち最初に受信したデータの受信時間から受付時間の間とする。
なお、適正受信タイミングをどのようなタイミングとするかはシステム管理者が任意に決定できる。
【００６１】
待ち時間制御部１０８は、適正受信タイミングに遅れたデータがある場合は、ステップＳ１３０３で、収集サーバ装置２０２ごとに、連続遅延回数をインクリメントする。
一方、ステップＳ１３０２で到着遅れでないと判定された場合は、ステップＳ１３０４で、該当する収集サーバ装置２０２の連続遅延回数を０にセットする。
ステップＳ１３０５では、待ち時間制御部１０８は、あらかじめ設定された閾値と各収集サーバ装置２０２の連続遅延回数を比較し、いずれかの収集サーバ装置２０２の連続遅延回数が閾値を超えている場合は、当該収集サーバ装置２０２からのデータについてはステップＳ１３０６において以降「待たない」と決定し、レコード生成部１０５に対して当該収集サーバ装置２０２のデータは待たない旨を通知する。
レコード生成部１０５は、未着データが発生した場合に、未着データの送信元が待ち時間制御部１０８から通知された収集サーバ装置２０２である場合は、当該収集サーバ装置２０２からの未着データは待たないと判定する（図１７のＳ１７０２）。
一方、Ｓ１３０５の判断において、連続遅延回数が閾値以下である場合は、当該収集サーバ装置２０２からのデータ「待つ」と決定し、レコード生成部１０５に対して当該収集サーバ装置２０２のデータは待つ旨を通知する。
レコード生成部１０５は、未着データが発生した場合に、未着データの送信元が待ち時間制御部１０８から通知された収集サーバ装置２０２である場合は、当該収集サーバ装置２０２からの未着データは待つと判定する（図１７のＳ１７０２）。
【００６２】
次に、図１７に従って、待ち時間制御方式２の処理ステップについて述べる。
待ち時間制御方式２は所定の監視時間内で発生した到着遅れの回数によって収集サーバ装置２０２のデータに対して「待つ／待たない」を判定する制御方式である。
監視時間は、例えば、格納周期（管理時間の刻み幅）の１０倍とする。
例えば、管理周期が１分の場合は、監視時間は１０分となる。
なお、どの程度の時間を監視時間とするかは、システム管理者が任意に決定可能である。
【００６３】
まず、待ち時間制御部１０８は、ステップＳ１４０１で受信したデータが所定の適正受信タイミングに遅れて到着しているかどうか、つまり到着遅れが発生しているかどうかをステップＳ１４０２で判定する。
適正受信タイミングの意味は、前述したとおりである。
【００６４】
待ち時間制御部１０８は、適正受信タイミングに遅れたデータがある場合は、ステップＳ１４０３で遅延発生回数を１インクリメントする。
また、待ち時間制御部１０８は、ステップＳ１４０４で、経過時間が監視時間内か、すなわち監視時間が終了したか否かを判断し、監視時間が終了していなければ（Ｓ１４０４でＹＥＳ）ステップＳ１４０１のデータ受信に戻る。
【００６５】
一方、経過時間が監視時間を超えている場合（Ｓ１４０４でＮＯ）、すなわち監視時間が終了している場合は、待ち時間制御部１０８は、ステップＳ１４０５において収集サーバ装置２０２ごとに監視時間内の遅延発生回数が設定した閾値を超えているか否かを判定する。
いずれかの収集サーバ装置２０２の遅延発生回数が閾値を超えている場合は、待ち時間制御部１０８は、ステップＳ１４０７において、当該収集サーバ装置２０２からのデータは以降「待たない」と決定し、レコード生成部１０５に対して当該収集サーバ装置２０２のデータは待たない旨を通知する。
レコード生成部１０５は、未着データが発生した場合に、未着データの送信元が待ち時間制御部１０８から通知された収集サーバ装置２０２である場合は、当該収集サーバ装置２０２からの未着データは待たないと判定する（図１７のＳ１７０２）。
一方、Ｓ１４０５の判断において、遅延発生回数が閾値以下である場合は、ステップＳ１４０６において遅延発生回数、監視時間ともに０リセットし、遅延発生回数のカウントおよび監視時間の計測を再開する。
また、Ｓ１４０５の判断において、遅延発生回数が閾値以下である場合は、待ち時間制御部１０８は、当該収集サーバ装置２０２からのデータ「待つ」と決定し、レコード生成部１０５に対して当該収集サーバ装置２０２のデータは待つ旨を通知する。
レコード生成部１０５は、未着データが発生した場合に、未着データの送信元が待ち時間制御部１０８から通知された収集サーバ装置２０２である場合は、当該収集サーバ装置２０２からの未着データは待つと判定する（図１７のＳ１７０２）。
【００６６】
次に、図１８に従って、待ち時間制御方式３の処理ステップについて述べる。
待ち時間制御方式３は、監視時間内で発生した平均遅延時間（遅延時間の平均値）によって収集サーバ装置２０２からのデータに対して「待つ／待たない」を判定する制御方式である。
監視時間の意味は、前述したとおりである。
【００６７】
待ち時間制御部１０８は、ステップＳ１５０１で受信したデータが所定の適正受信タイミングに遅れて到着しているかどうか、つまり到着遅れが発生しているかどうかをステップＳ１５０２で判定する。
適正受信タイミングの意味は、前述したとおりである。
【００６８】
待ち時間制御部１０８は、適正受信タイミングに遅れたデータがある場合は、ステップＳ１５０３で、適正受信タイミングからの遅延時間を計測し、計測した遅延時間を記憶する。
次に、待ち時間制御部１０８は、ステップＳ１５０４で、経過時間が監視時間内か、すなわち監視時間が終了したか否かを判断し、監視時間が終了していなければ（Ｓ１５０４でＹＥＳ）ステップＳ１５０１のデータ受信に戻る。
一方、経過時間が監視時間を超えている場合（Ｓ１５０４でＮＯ）、すなわち監視時間が終了している場合は、待ち時間制御部１０８は、ステップＳ１５０５において、収集サーバ装置２０２ごとに監視時間内の遅延時間の平均値を算出し、算出した平均値が設定した閾値を超えたか否かを判定する。
いずれかの収集サーバ装置２０２の遅延時間の平均値が閾値を超えている場合は、待ち時間制御部１０８は、ステップＳ１５０７において、当該収集サーバ装置２０２からのデータは以降「待たない」と決定し、レコード生成部１０５に対して当該収集サーバ装置２０２のデータは待たない旨を通知する。
レコード生成部１０５は、未着データが発生した場合に、未着データの送信元が待ち時間制御部１０８から通知された収集サーバ装置２０２である場合は、当該収集サーバ装置２０２からの未着データは待たないと判定する（図１７のＳ１７０２）。
一方、Ｓ１５０５の判断において、遅延発生回数が閾値以下である場合は、ステップＳ１５０６において遅延時間、監視時間ともに０リセットし、遅延時間の計測および監視時間の計測を再開する。
また、Ｓ１５０５の判断において、遅延時間の平均値が閾値以下である場合は、待ち時間制御部１０８は、当該収集サーバ装置２０２からのデータ「待つ」と決定し、レコード生成部１０５に対して当該収集サーバ装置２０２のデータは待つ旨を通知する。
レコード生成部１０５は、未着データが発生した場合に、未着データの送信元が待ち時間制御部１０８から通知された収集サーバ装置２０２である場合は、当該収集サーバ装置２０２からの未着データは待つと判定する（図１７のＳ１７０２）。
【００６９】
なお、図１６〜図１８の各方式の説明では、図１の構成例に示すように、収集サーバ装置２０２が複数の計測機器２０１からのデータをまとめてデータベースサーバ装置１００に送信する方式に対応させて、収集サーバ装置２０２ごとにデータ受信状況を監視し、収集サーバ装置２０２ごとに未着データを待つかどうか決定している。
しかし、データベースサーバ装置１００が各計測機器２０１から直接データを受信するような方式、または収集サーバ装置２０２が計測機器２０１からデータを受信するが複数の計測機器２０１からのデータをまとめずにデータごとにデータベースサーバ装置１００に転送する方式では、待ち時間制御部１０８は、計測機器２０１ごと（データごと）に受信状況を監視し、計測機器２０１ごと（データごと）にデータ受信状況を監視し、計測機器２０１ごと（データごと）に未着データを待つかどうか決定してもよい。
計測機器２０１ごと（データごと）に未着データを待つかどうかを決定する方式では、計測機器２０１がデータ送信装置の例となる。
【００７０】
また、図１６〜図１８の各方式の説明では、待ち時間制御部１０８が、連続遅延回数、遅延発生回数、平均遅延時間とそれぞれの閾値を比較し、データを待つかどうかを決定している。
これに代えて、待ち時間制御部１０８は、連続遅延回数、遅延発生回数、平均遅延時間を導出すると、連続遅延回数、遅延発生回数、平均遅延時間をレコード生成部１０５に通知し、レコード生成部１０５が、連続遅延回数、遅延発生回数、平均遅延時間とそれぞれの閾値を比較し、データを待つかどうかを決定するようにしてもよい。
【００７１】
ここからは、以上説明してきたレコード管理方式において、計測機器の追加、削除、変更に対応させる方法を説明する。
以上説明してきたレコード管理方式では、図２に示したレコードのように機器とデータが一意に対応するため、機器の変更に対して対応することが困難である。
これを解決するために本実施の形態では構成情報管理部１０４を備える。
【００７２】
図１０は建物に設置される電力センサや温度センサに対する定義の一例である。
また、図１１は、図１０に示される各項目の説明を示す。
なお、図１０及び図１１では建物を対象にしているが、それ以外の設置であっても定義可能である。
【００７３】
センサ識別子９０１は、どのセンサかを識別するためのものでシステム内で一意でなければならない。
テーブル情報９０２は、このセンサの情報が書き込まれるテーブル識別子を定義する。
レコード情報９０３は、このセンサで計測されたデータがレコード内の何列名に格納されるかを示す。
位置情報９０４は、このセンサが設置される位置に関する情報を定義する。
データタイプ情報９０５では、計測値に関する情報が定義される。
【００７４】
位置情報９０４には、建物の場合であれば、どの建物かを一意に識別する建物ＩＤ９０６、当該建物の何階に設置されているかを示すフロアＩＤ９０７が含まれる。
また、フロアをさらに細分化することが必要な場合は、たとえばエリアＩＤ９０８などが定義される。
また、電力などの場合は空調や照明などに細分化できるため用途ＩＤ９０９、どの分電盤の電力値かを示す機器ＩＤ９１０などを定義することが可能となる。
【００７５】
レコードに格納されるデータはすべて数値であるが、センサ追加も含めて事前にすべてのデータの型を想定することは困難である。
したがって、本実施の形態では、すべてのデータは６４ｂｉｔ型などの整数値として格納し、データの種類はデータ種別９１１、データの少数点桁数などの精度はデータ型９１２で定義しておくことにより、いかなるデータであっても格納することを可能にする。
なお、図１０及び図１１では数値を対象とした例を示しているが、数値データに限定されるものではない。
【００７６】
以上のように機器情報とレコード定義とを分離することにより、機器の構成を変更した場合においても十分に対応可能とする。
また、システムの稼動中に機器の故障等によって機器を変更した場合も構成情報を変更することによって変更可能である。
【００７７】
図１２及び図１３は、上記のレコードで管理されるセンサデータの集計例である。
図１２は、建物１のフロア別電力量の集計値と室内温度の平均値を示し、図１３は、建物２のフロア別電力量の集計値と室内温度の平均値を示している。
図１２及び図１３において、棒グラフは電力量を示し、折れ線グラフは温度を示している。
レコード生成では各センサの情報を管理しないが、集計時に構成情報の定義を参照することにより、さまざまな軸での集計が可能になる。
【００７８】
以上のように、本実施の形態によれば、書き込み時に想定される処理時間とユーザが設定した遅延時間からデータの欠落を可能な限り抑止し、書き込み処理性能を低下させない処理が可能である。
本実施の形態では、待ち時間を持たせることによって、データの到着が多少遅れても到着が遅れたデータをレコードに格納することが可能であるため、欠損データ発生頻度を抑止することができる。
【００７９】
蓄積したデータの利用の一例として定期的に監視（モニタリング）すること（たとえば、室内温度を収集／蓄積していて、このデータを一定間隔で取り出すこと）などが考えられるが、検索性能を低下させないためには書き込み回数をできるだけ減らし、一度で可能な限り大きいサイズのデータを書き込む必要がある。
本実施の形態では、これらのトレードオフ（検索性能と遅延時間とのトレードオフ）を制御しながら収集したデータをリアルタイムにテーブルに書き込むことが可能である。
従って、上記の問題を回避することが可能である。
すなわち、検索性能を低下させることなく、遅延時間を短くすることが可能となる。
【００８０】
以上、本実施の形態では、入力された複数のデータを１つのレコードに格納するレコード生成機能であって、
（１）受信したデータのタイムスタンプからレコード格納時刻を判定する同一時刻判定機能と、
（２）個々のデータについて到着遅れが発生した場合において、レコードの書き込みを遅らせて当該データが到着するまで「待つ／待たない」を判定し、該当するレコードにデータ格納する待ち時間制御機能と、
（３）生成されたレコードをテーブルに書き込むかどうかを決定する書き込み判定機能を有し、
（４）個々のデータが同一時刻に発生したかどうかを判定するステップと、
（５）到着の遅れたデータを「待つ／待たない」を判定するステップと、
（６）同一時刻に発生したデータを同一レコードに格納するステップと、
（７）格納されたレコードをテーブルに書き込むべきかどうかを判定するステップとを有するレコード生成機能を説明した。
【００８１】
また、本実施の形態に係るレコード生成機能は、
レコード生成周期から設定される日付時刻（レコード日付時刻）とデータに付加されたタイムスタンプの差分を格納周期に基づいて閾値処理することにより、格納対象となるレコードの日付時刻を決定し、
格納すべきレコード日付時刻を有するレコードが存在しない場合はレコードを生成し、当該レコードに日付を付加し、
すでに存在する場合は記憶装置上から当該レコードを呼び出す同一時刻判定機能を備えることを説明した。
【００８２】
また、本実施の形態に係る同一時刻判定機能は、
格納周期の時刻を基準として、その基準時刻に対するデータに付加されたタイムスタンプの差分を四捨五入、切り上げ、切捨て、するなどして基準時刻と一致するかどうかを判定することを説明した。
【００８３】
また、本実施の形態に係るレコード生成機能は、
選択した待ち時間制御方式に従い、「待つ／待たない」を個々のデータについて判定し、
「待つ」と判定したデータについては、許容待ち時間内に到着した場合は該当するレコードに格納し、
許容待ち時間後に到着したデータは、本来格納されるべきレコードと同じ日付時刻を有するレコードを重複して生成して当該データを格納し、
当該レコードについても同様に待ち時間制御を行い、
すでに到着済み、または更に遅延するなどして待ち時間内に到着しないデータについては、該当する列にＮＵＬＬ値を格納する待ち時間制御機能を備えることを説明した。
【００８４】
また、本実施の形態に係る待ち時間制御機能は、
到着が遅れたデータを待つかどうかの判定を待ち時間以内に到着しない回数で判定する待ち時間制御方式においては、
待ち時間以内に到着しないことが連続して発生した回数があらかじめ決められた閾値を超えないデータは「待つ」と判定し、
待ち時間以内に到着しないことが連続して発生した回数があらかじめ決められた閾値を超えたデータは「待たない」と判定することを説明した。
【００８５】
また、本実施の形態に係る待ち時間制御機能は、
到着が遅れたデータを待つかどうかの判定を一定時間内の遅れ発生頻度で判定する待ち時間制御方式においては、
あらかじめ設定した一定時間内に到着遅れが発生した回数があらかじめ設定された閾値以下のデータは「待つ」と判定し、
あらかじめ設定した一定時間内に到着遅れが発生した回数があらかじめ設定された閾値を超えたデータは「待たない」と判定することを説明した。
【００８６】
また、本実施の形態に係る待ち時間制御機能は、
到着が遅れたデータを待つかどうかの判定を一定時間内の平均遅れ時間で判定する待ち時間制御方式においては、
あらかじめ設定した一定時間内に発生した到着遅れの平均遅れ時間があらかじめ設定された閾値以下のデータについては「待つ」と判定し、
あらかじめ設定した一定時間内に発生した到着遅れの平均遅れ時間があらかじめ設定された閾値以上のデータについては「待たない」と判定することを説明した。
【００８７】
また、本実施の形態では、レコード生成機能は、
記憶装置に保存されるすべてのレコードに対して書き込みを実行すべきか否かを判定する機能であって、
全レコードが有するレコードが新規に生成された日付時刻と現在の時刻から、生成日付時刻を起点とした経過時間を算出し、
前記経過時間、レコードサイズ、テーブル書き込み処理時間から書き込み処理を実行すべきレコードが存在するかどうかを判定し、
書き込み処理を実行すべきレコードについては該当するレコードについて書き込みフラグを立てる書き込み判定機能を有することを説明した。
【００８８】
また、本実施の形態では、書き込み判定機能は、
記憶装置に保存されるレコードにおいて、待ち時間をもとに書き込み処理を行うべきと判定したレコードが存在する場合に、すべてのデータがそろったレコードについてはすべて書き込みフラグを立て、
データ到着の遅延によって不完全なレコードについては待ち時間を経過したレコードだけに書き込みフラグを立てることを説明した。
【００８９】
また、本実施の形態では、
入力された複数のデータを１つのレコードに格納するレコード生成機能において、
データを計測する機器の設置場所などの構成情報と、データ形式を管理する機能を有し、
データがどのレコードに格納すべきかを判定するステップを有する構成情報管理機能を説明した。
【００９０】
また、本実施の形態では、構成情報管理機能は、
データ計測機器の設置場所を階層構造（たとえばフロア、エリア、機器、用途等）として管理し、
各計測機器のデータを格納するレコード内項目番号を管理し、
各計測機器のデータにおいてＮＵＬＬ値および精度を規定し、
待ち時間を設定するかどうかを規定し、
構成変更（計測機器の追加、削除、変更）の場合に管理情報を変更することでシステムに反映させることを説明した。
【００９１】
最後に、本実施の形態に示したデータベースサーバ装置１００のハードウェア構成例について説明する。
図２１は、本実施の形態に示すデータベースサーバ装置１００のハードウェア資源の一例を示す図である。
なお、図２１の構成は、あくまでもデータベースサーバ装置１００のハードウェア構成の一例を示すものであり、データベースサーバ装置１００のハードウェア構成は図２１に記載の構成に限らず、他の構成であってもよい。
【００９２】
図２１において、データベースサーバ装置１００は、プログラムを実行するＣＰＵ１９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ１９１１は、バス１９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１９１４、通信ボード１９１５、表示装置１９０１、キーボード１９０２、マウス１９０３、磁気ディスク装置１９２０と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ１９１１は、ＦＤＤ１９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置１９０５（ＣＤＤ）、プリンタ装置１９０６、スキャナ装置１９０７と接続していてもよい。また、磁気ディスク装置１９２０の代わりに、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ１９１４は、揮発性メモリの一例である。ＲＯＭ１９１３、ＦＤＤ１９０４、ＣＤＤ１９０５、磁気ディスク装置１９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
本実施の形態で説明した「〜記憶部」は、ＲＡＭ１９１４、磁気ディスク装置１９２０等により実現される。
通信ボード１９１５、キーボード１９０２、マウス１９０３、スキャナ装置１９０７、ＦＤＤ１９０４などは、入力装置の一例である。
また、通信ボード１９１５、表示装置１９０１、プリンタ装置１９０６などは、出力装置の一例である。
【００９３】
通信ボード１９１５は、図１に示すように、ネットワークに接続されている。
例えば、通信ボード１９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）、ＳＡＮ（ストレージエリアネットワーク）などに接続されていても構わない。
【００９４】
磁気ディスク装置１９２０には、オペレーティングシステム１９２１（ＯＳ）、ウィンドウシステム１９２２、プログラム群１９２３、ファイル群１９２４が記憶されている。
プログラム群１９２３のプログラムは、ＣＰＵ１９１１がオペレーティングシステム１９２１、ウィンドウシステム１９２２を利用しながら実行する。
【００９５】
また、ＲＡＭ１９１４には、ＣＰＵ１９１１に実行させるオペレーティングシステム１９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭ１９１４には、ＣＰＵ１９１１による処理に必要な各種データが格納される。
【００９６】
また、ＲＯＭ１９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置１９２０にはブートプログラムが格納されている。
データベースサーバ装置１００の起動時には、ＲＯＭ１９１３のＢＩＯＳプログラム及び磁気ディスク装置１９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム１９２１が起動される。
【００９７】
上記プログラム群１９２３には、本実施の形態の説明において「〜部」（「〜記憶部」以外、以下同様）、「〜機能」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ１９１１により読み出され実行される。
【００９８】
ファイル群１９２４には、本実施の形態の説明において、「〜の判断」、「〜の分類」、「〜の算出」、「〜の導出」、「〜の比較」、「〜の書き込み」、「〜の格納」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ１９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、本実施の形態で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ１９１４のメモリ、ＦＤＤ１９０４のフレキシブルディスク、ＣＤＤ１９０５のコンパクトディスク、磁気ディスク装置１９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス１９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００９９】
また、本実施の形態の説明において「〜部」、「〜機能」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、本実施の形態で説明したフローチャートに示すステップ、手順、処理により、本発明に係る「データ処理方法」を実現することができる。
また、「〜部」、「〜機能」として説明しているものは、ＲＯＭ１９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ１９１１により読み出され、ＣＰＵ１９１１により実行される。すなわち、プログラムは、本実施の形態の「〜部」、「〜機能」としてコンピュータを機能させるものである。あるいは、本実施の形態の「〜部」、「〜機能」の手順や方法をコンピュータに実行させるものである。
【０１００】
このように、本実施の形態に示すデータベースサーバ装置１００は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」、「〜機能」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【０１０１】
１００  データベースサーバ装置、１０１  データ、１０２  データ受信部、１０３  時刻判定部、１０４  構成情報管理部、１０５  レコード生成部、１０６  書き込み処理部、１０７  書き込み判定部、１０８  待ち時間制御部、１０９  テーブル記憶部、１１０  構成情報記憶部、２０１  計測機器、２０２  収集サーバ装置、２０４  ネットワーク、２０５  ネットワーク。
【図１】
0005478722.tif 000002
【図２】
0005478722.tif 000003
【図３】
0005478722.tif 000004
【図４】
0005478722.tif 000005
【図５】
0005478722.tif 000006
【図６】
0005478722.tif 000007
【図７】
0005478722.tif 000008
【図８】
0005478722.tif 000009
【図９】
0005478722.tif 000010
【図１０】
0005478722.tif 000011
【図１１】
0005478722.tif 000012
【図１２】
0005478722.tif 000013
【図１３】
0005478722.tif 000014
【図１４】
0005478722.tif 000015
【図１５】
0005478722.tif 000016
【図１６】
0005478722.tif 000017
【図１７】
0005478722.tif 000018
【図１８】
0005478722.tif 000019
【図１９】
0005478722.tif 000020
【図２０】
0005478722.tif 000021
【図２１】
0005478722.tif 000022