(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-10-24
(54)【発明の名称】ヘテロジニアス区間からの収集データのシーケンシャル記憶装置
(51)【国際特許分類】
G06F 11/34 20060101AFI20221017BHJP
【FI】
G06F11/34 176
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022510935
(86)(22)【出願日】2020-08-12
(85)【翻訳文提出日】2022-04-15
(86)【国際出願番号】 US2020045933
(87)【国際公開番号】W WO2021034568
(87)【国際公開日】2021-02-25
(32)【優先日】2019-08-19
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】513113895
【氏名又は名称】ランディス・ギア イノベーションズ インコーポレイテッド
【氏名又は名称原語表記】LANDIS+GYR INNOVATIONS, INC.
(74)【代理人】
【識別番号】100145403
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【氏名又は名称】岡部 英隆
(72)【発明者】
【氏名】マーシュ,アイバン
(72)【発明者】
【氏名】ベルビル,マイケル
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042MA08
5B042MC22
5B042MC35
(57)【要約】
ノードにより実行される方法は、通常レコードをバッファに書き込むことを含む。各通常レコードは、ネットワーク時間に従って、各開始時間及び各終了時間を有する各時間区間に関連付けられ、各通常レコードは、活動を記述する各収集データを含む。本方法は、ネットワーク時間へのアクセスが利用不可能になったことを検出することと、ネットワーク時間へのアクセスが利用不可能になった後に利用可能になったことを検出することとを含む。本方法は、ネットワーク時間が利用不可能であった不完全期間であって、スキップ区間及び待機区間の少なくとも一方を含む不完全期間を記述する情報を決定することを含む。各スキップ区間中には、活動を記述する収集データは収集されない。各待機区間は、不完全期間中における活動を記述する各収集データに関連付けられる。本方法は、不完全期間を記述する情報を含むプレースホルダレコードをバッファに書き込むことを含む。
【特許請求の範囲】
【請求項1】
ノードによって実行される方法であって、上記方法は、
上記ノードが加入したネットワークを介して提供されるネットワーク時間に従って、各開始時間及び各終了時間を有する各時間区間に関連付けられた1つ又は複数の通常レコードであって、上記各時間区間中の活動を記述する各収集データを含む1つ又は複数の通常レコードをバッファに書き込むことと、
上記ネットワーク時間へのアクセスが利用不可能になったことを検出することと、
上記ネットワーク時間へのアクセスが利用不可能になった後に利用可能になったことを検出することと、
上記ネットワーク時間が利用不可能であった不完全期間であって、スキップ区間及び待機区間の少なくとも一方を含む不完全期間を記述する情報を決定することとを含み、
各スキップ区間中には、上記活動を記述する収集データは収集されず、
各待機区間は、上記不完全期間中における上記活動を記述する各収集データに関連付けられ、
上記方法は、上記不完全期間を記述する情報を含むプレースホルダレコードを上記バッファに書き込むことを含む、
方法。
【請求項2】
上記ネットワーク時間が利用不可能である間に、上記不完全期間に生じる各待機区間に関連付けられた1つ又は複数の待機レコードであって、上記各待機区間中の上記活動を記述する上記各収集データを含む1つ又は複数の待機レコードを上記バッファに書き込むことを含む、
請求項1記載の方法。
【請求項3】
上記不完全期間を記述する情報を決定することは、
上記不完全期間中に生じる時間区間の合計量を計算することと、
上記不完全期間中に生じるスキップ区間の第1の量を計算することとを含む、
請求項2記載の方法。
【請求項4】
上記スキップ区間の第1の量を計算することは、上記不完全期間における上記時間区間の合計量から、上記1つ又は複数の待機レコードのうちの、待機レコードの第2の量を減算することを含む、
請求項3記載の方法。
【請求項5】
上記不完全期間中に生じる上記時間区間の合計量を計算することは、
上記ネットワーク時間が利用可能になった、現在時間以前における、区間について整列された終了時間を決定することと、
上記区間について整列された終了時間に対して、上記不完全期間の終了時間を設定することと、
上記1つ又は複数の通常レコードのうちの最後の通常レコードの各終了時間を、上記不完全期間の終了時間から減算することで、上記不完全期間の長さを計算することと、
上記不完全期間の長さ及び時間区間の長さの商として上記不完全期間における時間区間の合計量を計算することとを含む、
請求項3記載の方法。
【請求項6】
上記方法は、上記不完全期間を含む時間期間を記述するデータパケットを送信することをさらに含み、
上記データパケットを送信することは、
上記プレースホルダレコードを、区間について整列された1つ又は複数の空きレコードであって、上記不完全期間中に生じた各スキップ区間に対応し、上記活動を記述する各収集データを含まない、1つ又は複数の空きレコードに変換することと、
上記不完全期間に生じる各待機区間に関連付けられた1つ又は複数の待機レコードであって、上記各待機区間中の上記活動を記述する各収集データを含む1つ又は複数の待機レコードの開始位置を、上記1つ又は複数の空きレコードに対する所定位置へシフトすることとを含む、
請求項1記載の方法。
【請求項7】
上記データパケットを送信することは、上記時間期間における時間区間の量に等しい、通常レコード、待機レコード、及び空きレコードの合計量を送信することを含む、
請求項6記載の方法。
【請求項8】
上記方法は、上記不完全期間を含む時間期間を記述するデータパケットを送信することを含み、
上記データパケットを送信することは、
上記1つ又は複数の通常レコードを読み出すことと、
上記1つ又は複数の通常レコードを出力することと、
上記不完全期間に生じる各待機区間に関連付けられた1つ又は複数の待機レコードであって、上記各待機区間中の上記活動を記述する上記各収集データを含む1つ又は複数の待機レコードを読み出すことと、
上記プレースホルダレコードを読み出すことと、
上記プレースホルダレコードに基づいて、上記不完全期間中に生じる1つ又は複数のスキップ区間を表す1つ又は複数の空きレコードを、出力することと、
上記プレースホルダレコードに基づいて、上記1つ又は複数の待機レコードの区間について整列された開始時間を確立することと、
上記区間について整列された開始時間に関連付けて、上記1つ又は複数の待機レコードを出力することとを含む、
請求項1記載の方法。
【請求項9】
コンピュータ可読命令を有するメモリと、上記コンピュータ可読命令を実行するための1つ又は複数のプロセッサとを備えた需給計器であって、
上記コンピュータ可読命令は、
上記需給計器が加入したネットワークを介して提供されるネットワーク時間に従って、各開始時間及び各終了時間を有する各時間区間に関連付けられた1つ又は複数の通常レコードであって、上記各時間区間中の活動を記述する各収集データを含む1つ又は複数の通常レコードをバッファに書き込むことと、
上記ネットワーク時間へのアクセスが利用不可能になったことを検出することと、
上記ネットワーク時間へのアクセスが利用不可能になった後に利用可能になったことを検出することと、
上記ネットワーク時間が利用不可能であった不完全期間であって、スキップ区間及び待機区間の少なくとも一方を含む不完全期間を記述する情報を決定することとを含み、
各スキップ区間中には、上記活動を記述する収集データは収集されず、
各待機区間は、上記不完全期間中における上記活動を記述する各収集データに関連付けられ、
上記コンピュータ可読命令は、上記不完全期間を記述する情報を含むプレースホルダレコードを上記バッファに書き込むことを含む、
需給計器。
【請求項10】
上記ネットワーク時間が利用不可能である間に、上記不完全期間に生じる各待機区間に関連付けられた1つ又は複数の待機レコードであって、上記各待機区間中の上記活動を記述する上記各収集データを含む1つ又は複数の待機レコードを上記バッファに書き込むことをさらに含む、
請求項9記載の需給計器。
【請求項11】
上記不完全期間を記述する情報を決定することは、
上記不完全期間中に生じる時間区間の合計量を計算することと、
上記不完全期間中に生じるスキップ区間の第1の量を計算することとを含む、
請求項10記載の需給計器。
【請求項12】
上記スキップ区間の第1の量を計算することは、上記不完全期間における上記時間区間の合計量から、上記1つ又は複数の待機レコードのうちの、待機レコードの第2の量を減算することを含む、
請求項11記載の需給計器。
【請求項13】
上記不完全期間中に生じる上記時間区間の合計量を計算することは、
上記ネットワーク時間が利用可能になった、現在時間以前における、区間について整列された終了時間を決定することと、
上記区間について整列された終了時間に対して、上記不完全期間の終了時間を設定することと、
上記1つ又は複数の通常レコードのうちの最後の通常レコードの各終了時間を、上記不完全期間の終了時間から減算することで、上記不完全期間の長さを計算することと、
上記不完全期間の長さ及び時間区間の長さの商として上記不完全期間における時間区間の合計量を計算することとを含む、
請求項11記載の需給計器。
【請求項14】
上記需給計器は、上記不完全期間を含む時間期間を記述するデータパケットを送信することをさらに含み、
上記データパケットを送信することは、
上記1つ又は複数の通常レコードを読み出すことと、
上記1つ又は複数の通常レコードを出力することと、
上記不完全期間に生じる各待機区間に関連付けられた1つ又は複数の待機レコードであって、上記各待機区間中の上記活動を記述する上記各収集データを含む1つ又は複数の待機レコードを読み出すことと、
上記プレースホルダレコードを読み出すことと、
上記プレースホルダレコードに基づいて、上記不完全期間中に生じる1つ又は複数のスキップ区間を表す1つ又は複数の空きレコードを、出力することと、
上記プレースホルダレコードに基づいて、上記1つ又は複数の待機レコードの区間について整列された開始時間を確立することと、
上記区間について整列された開始時間に関連付けて、上記1つ又は複数の待機レコードを出力することとを含む、
請求項9記載の需給計器。
【請求項15】
ヘテロジニアスレコードをバッファに書き込むためのコンピュータプログラム製品であって、
上記コンピュータプログラム製品は、その上に具体化されたプログラム命令を有するコンピュータ可読記憶媒体を含み、
上記プログラム命令は、ノードのプロセッサに下記の方法を実行させるように上記プロセッサによって実行可能であり、
上記方法は、
上記ノードが加入したネットワークを介して提供されるネットワーク時間に従って、各開始時間及び各終了時間を有する各時間区間に関連付けられた1つ又は複数の通常レコードであって、上記各時間区間中の活動を記述する各収集データを含む1つ又は複数の通常レコードをバッファに書き込むことと、
上記ネットワーク時間へのアクセスが利用不可能になったことを検出することと、
上記ネットワーク時間へのアクセスが利用不可能になった後に利用可能になったことを検出することと、
上記ネットワーク時間が利用不可能であった不完全期間であって、スキップ区間及び待機区間の少なくとも一方を含む不完全期間を記述する情報を決定することとを含み、
各スキップ区間中には、上記活動を記述する収集データは収集されず、
各待機区間は、上記不完全期間中における上記活動を記述する各収集データに関連付けられ、
上記方法は、上記不完全期間を記述する情報を含むプレースホルダレコードを上記バッファに書き込むことを含む、
コンピュータプログラム製品。
【請求項16】
上記ネットワーク時間が利用不可能である間に、上記不完全期間に生じる各待機区間に関連付けられた1つ又は複数の待機レコードであって、上記各待機区間中の上記活動を記述する上記各収集データを含む1つ又は複数の待機レコードを上記バッファに書き込むことをさらに含む、
請求項15記載のコンピュータプログラム製品。
【請求項17】
上記不完全期間を記述する情報を決定することは、
上記不完全期間中に生じる時間区間の合計量を計算することと、
上記不完全期間中に生じるスキップ区間の第1の量を計算することとを含む、
請求項16記載のコンピュータプログラム製品。
【請求項18】
上記スキップ区間の第1の量を計算することは、上記不完全期間における上記時間区間の合計量から、上記1つ又は複数の待機レコードのうちの、待機レコードの第2の量を減算することを含む、
請求項17記載のコンピュータプログラム製品。
【請求項19】
上記不完全期間中に生じる上記時間区間の合計量を計算することは、
上記ネットワーク時間が利用可能になった、現在時間以前における、区間について整列された終了時間を決定することと、
上記区間について整列された終了時間に対して、上記不完全期間の終了時間を設定することと、
上記1つ又は複数の通常レコードのうちの最後の通常レコードの各終了時間を、上記不完全期間の終了時間から減算することで、上記不完全期間の長さを計算することと、
上記不完全期間の長さ及び時間区間の長さの商として上記不完全期間における時間区間の合計量を計算することとを含む、
請求項17記載のコンピュータプログラム製品。
【請求項20】
上記コンピュータプログラム製品は、上記不完全期間を含む時間期間を記述するデータパケットを送信することをさらに含み、
上記データパケットを送信することは、
上記1つ又は複数の通常レコードを読み出すことと、
上記1つ又は複数の通常レコードを出力することと、
上記不完全期間に生じる各待機区間に関連付けられた1つ又は複数の待機レコードであって、上記各待機区間中の上記活動を記述する上記各収集データを含む1つ又は複数の待機レコードを読み出すことと、
上記プレースホルダレコードを読み出すことと、
上記プレースホルダレコードに基づいて、上記不完全期間中に生じる1つ又は複数のスキップ区間を表す1つ又は複数の空きレコードを、出力することと、
上記プレースホルダレコードに基づいて、上記1つ又は複数の待機レコードの区間について整列された開始時間を確立することと、
上記区間について整列された開始時間に関連付けて、上記1つ又は複数の待機レコードを出力することとを含む、
請求項15記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の様々な実施形態は、データ記憶装置に関し、より詳しくは、ヘテロジニアス区間からの収集データのシーケンシャル記憶装置に関する。
【背景技術】
【0002】
需給計器(ユーティリティメーター)は、リソースの消費量を測定する。結果として得られる消費量データは、リソースの消費量を記述し、需給計器に少なくとも一時的に格納される。時々、需給計器は、消費量データを含むデータパケットを、サービスプロバイダのヘッドエンドシステムに直接的又は間接的に送信する。サービスプロバイダは消費量データを使用して、例えば、リソースの実際の消費量に基づいて顧客に請求書を発行する。
【0003】
典型的には、特定の時間区間(例えば、所与の日における午前9:00~午前9:15)中に需給計器によって収集された消費量データが、需給計器において、その特定の時間区間に関連付けられたレコードに格納されるように、消費量データは固定長の時間区間(例えば、15分の区間)において収集される。したがって、需給計器は、確立された長さの時間区間をそれぞれ表すレコードであって、かつ、理想的には各開始時刻にそれぞれ関連付けられるレコードの集合を保持する。典型的には、消費量データを含むデータパケットが特定のフォーマットに従うような、消費量データ(の送信のための予め確立されたプロトコルが存在する。例えば、データパケットは、時間区間の集合にわたる消費量データを含み、そのような時間区間のそれぞれは、収集データにそれぞれ関連付けられる。データパケットは、時間区間の集合の開始時間を示し、したがって、複数の時間区間が互いに連続するならば、データパケットにおける各時間区間の開始時間は、時間区間の集合全体の開始時間に基づいて推定可能である。
【発明の概要】
【発明が解決しようとする課題】
【0004】
需給計器は、内部で正確な時間を常に保持しているとは限らず、このことは、特に、バッテリにより電力供給を受ける需給計器にあてはまる。例えば、需給計器は内部時間を保持してもよいが、その内部時間は、バッテリ電力を節約する目的又は他の目的で需給計器がスリープに移行するとき、ネットワーク時間からドリフトする可能性がある。もう1つの例として、需給計器が一時的にそのネットワーク接続を失う場合、需給計器の内部時間はネットワーク時間からドリフトして離れる可能性がある。しかしながら、需給計器は典型的にはネットワークの一部であり、したがって、需給計器は、ネットワークによって保持されるネットワーク時間を利用して、消費量データの各レコードが、確立された時間区間の開始部に対して適切に整列された(すなわち、時間について整列された)時間区間を表すことを保証することができる。しかしながら、時々、需給計器は、そのネットワーク接続を失い、従って、ネットワーク時間を失うことがある。需給計器は、消費量データをなおも収集することができ、内部カウンタを介して時間区間の長さをなおも数えあげることができるが、需給計器は、消費量データに正確な開始時間を関連付けることができない。部分的には、その理由は、需給計器が電力を失った場合、需給計器には、電力を有していない間にどれだけの時間区間が経過したかがわからず、このことは、時間の喪失をもたらし、また、内部の計時がネットワーク時間に合っていると仮定できなくするであろう。
【0005】
この場合を取り扱うために、典型的には2つのバッファが使用される。本願では通常レコードと呼ばれる、各開始時刻に関連付けられたレコードは、メインバッファに書き込まれ、本願では待機レコードと呼ばれる、待機区間を表すレコードは、一時バッファに書き込まれる。待機区間に対して特定の開始時間は未知であるので、待機区間に関連付けられた消費量データのレコードは、典型的には、メインバッファに直接的には書き込まれない。しかしながら、ネットワーク時間が利用可能になった後、各待機区間に愛して開始時刻が確立可能になる。ネットワーク時間を受信したとき、需給計器のメインバッファは、ゼロでパディングされて空きレコードを形成し、スキップされた時間区間、すなわち、消費量データが収集されなかった時間区間を表す。待機レコードの確立された開始時間を表す位置において、各待機レコードは一時バッファからメインバッファにコピーされる。その結果、メインバッファが、最終的に、通常レコード、待機レコード、及び空きレコードを含み、そのような各レコードは、最終的に、各開始時間に関連付けられる。
【0006】
本開示は、ヘテロジニアス区間からの収集データのシーケンシャル記憶装置を提供する。
【課題を解決するための手段】
【0007】
一実施形態では、ノードによって実行される方法は、1つ又は複数の通常レコードをバッファに書き込むことを含む。各通常レコードは、ネットワーク時間に従って、各開始時間及び各終了時間を有する各時間区間に関連付けられ、各通常レコードは、各時間区間中の活動を記述する各収集データを含む。ネットワーク時間は、ノードが加入したネットワークを介して提供される。本方法は、ネットワーク時間へのアクセスが利用不可能になったことを検出することを含み、また、ネットワーク時間へのアクセスが利用不可能になった後に利用可能になったことを検出することをさらに含む。本方法は、ネットワーク時間が利用不可能であった不完全期間であって、スキップ区間及び待機区間の少なくとも一方を含む不完全期間を記述する情報を決定することをさらに含む。各スキップ区間中には、活動を記述する収集データは収集されない。各待機区間は、不完全期間中における活動を記述する各収集データに関連付けられる。さらに、本方法は、不完全期間を記述する情報を含むプレースホルダレコードをバッファに書き込むことを含む。
【0008】
もう1つの実施形態では、需給計器は、コンピュータ可読命令を有するメモリと、コンピュータ可読命令を実行するための1つ又は複数のプロセッサとを含む。コンピュータ可読命令は、1つ又は複数の通常レコードをバッファに書き込むことを含む。各通常レコードは、ネットワーク時間に従って、各開始時間及び各終了時間を有する各時間区間に関連付けられ、各通常レコードは、各時間区間中の活動を記述する各収集データを含む。ネットワーク時間は、ノードが加入したネットワークを介して提供される。コンピュータ可読命令は、ネットワーク時間へのアクセスが利用不可能になったことを検出することを含み、また、ネットワーク時間へのアクセスが利用不可能になった後に利用可能になったことを検出することをさらに含む。コンピュータ可読命令は、ネットワーク時間が利用不可能であった不完全期間であって、スキップ区間及び待機区間の少なくとも一方を含む不完全期間を記述する情報を決定することをさらに含む。各スキップ区間中には、活動を記述するデータは収集されない。各待機区間は、不完全期間中における活動を記述する各収集データに関連付けられる。さらに、コンピュータ可読命令は、不完全期間を記述する情報を含むプレースホルダレコードをバッファに書き込むことを含む。
【0009】
さらに他の実施形態では、ヘテロジニアスレコードをバッファに書き込むためのコンピュータプログラム製品は、その上に具体化されたプログラム命令を有するコンピュータ可読記憶媒体を含む。プログラム命令は、1つ又は複数の通常レコードをバッファに書き込むことを含む方法をノードのプロセッサに実行させるようにプロセッサによって実行可能である。各通常レコードは、ネットワーク時間に従って、各開始時間及び各終了時間を有する各時間区間に関連付けられ、各通常レコードは、各時間区間中の活動を記述する各収集データを含む。ネットワーク時間は、ノードが加入したネットワークを介して提供される。本方法は、ネットワーク時間へのアクセスが利用不可能になったことを検出することを含み、また、ネットワーク時間へのアクセスが利用不可能になった後に利用可能になったことを検出することをさらに含む。本方法は、ネットワーク時間が利用不可能であった不完全期間であって、スキップ区間及び待機区間の少なくとも一方を含む不完全期間を記述する情報を決定することをさらに含む。各スキップ区間中には、活動を記述する収集データは収集されない。各待機区間は、不完全期間中における活動を記述する各収集データに関連付けられる。さらに、プロセッサによって実行される方法は、不完全期間を記述する情報を含むプレースホルダレコードをバッファに書き込むことを含む。
【0010】
これらの例示的な態様及び特徴は、ここで説明する主題を限定又は定義するためではなく、本願において説明する概念についての理解を支援する実施例を提供するために言及される。ここに説明する主題の他の態様、利点、及び特徴は、本願全体に目を通すことにより明らかになるであろう。
【0011】
本開示のこれら及び他の特徴、態様、及び利点は、以下の詳細な説明が添付の図面を参照して読まれるとき、さらに理解される。
【図面の簡単な説明】
【0012】
【
図1】本発明のいくつかの実施例に係る、様々な時間区間中に収集されたデータを記録するための記録システムの概念図である。
【
図2】本発明のいくつかの実施例に係る、一体化された記録システムを備えた需給計器のアーキテクチャ図である。
【
図3】本発明のいくつかの実施例に係る、時間区間中に生じる収集データを記録する方法のフロー図である。
【
図4】本発明のいくつかの実施例に係る、プレースホルダレコードを生成する方法のフロー図である。
【
図5】本発明のいくつかの実施例に係る、プレースホルダレコードを含むバッファのブロック図である。
【
図6】本発明のいくつかの実施例に係る、プレースホルダレコードを用いて様々なレコードを出力することでデータパケットを生成する方法のフロー図である。
【
図7】本発明のいくつかの実施例に係る、様々なレコードを含むデータパケットのブロック図である。
【発明を実施するための形態】
【0013】
ネットワーク時間が利用不可能な区間中に消費量データ又はその欠落を記録する現在の方法にはいくつかの欠点が存在する。まず、2つの別個のバッファを維持することは、大部分の需給計器において利用可能である比較的に小量の記憶装置を与えられた場合に、空間の非効率的な使用をもたらす可能性がある。待機レコードを先のレコードから分離して待機レコードを適切な開始時間に対して整列させるために空きレコードを使用することは、空きレコードにおけるパディングが実質的な情報を提供しないので、内部の記憶空間を無駄にする。一時バッファからメインバッファにデータをコピーし、それによってメインバッファを変更するタスクが、例えば電力の喪失又はリセットに起因して中断される場合、メインバッファにおけるデータが破損する可能性がある。さらに、メインバッファが変更されるので、メーターにおいて生じた事象の真のレコードは失われ、診断の目的で使用できなくなる。
【0014】
本願において説明した本発明の様々な実施例は、これらの欠点を克服する。例えば、ノードがスリープに移行するか、ネットワークから切断された状態になり、これにより、ノードがネットワークを介して送信された同期パケットをもはや検出できなくなる場合、ネットワーク時間はノードから利用不可能になる可能性がある。いくつかの実施例では、ネットワーク時間が利用不可能である間、待機レコードに対してネットワーク時間が未知であるという事実にもかかわらず、開始時間に関連付けられたレコードが書き込まれる場合と同じ方法で、待機レコードがバッファに書き込まれる。再びネットワーク時間を受信したとき、需給計器は、バッファにおいて待機レコードの後にプレースホルダレコードを書き込んでもよい。以前に書き込まれたレコードの分析に基づいて、さらに、現在のネットワーク時間に基づいて、需給計器は、(例えば、需給計器が電力を失ったことに起因して)いずれかの区間がスキップされたか否かを決定してもよい。プレースホルダレコードは、ヘッドエンドシステムによって期待されるフォーマットでデータパケットを生成するのに必要なデータを含む。例えば、プレースホルダレコードは、ネットワーク時間が利用不可能であった期間の開始時間を示し、また、プレースホルダレコードは、その期間に生じた待機区間の個数又はスキップ区間の個数、又はそれらの両方を示す。後でデータパケットを送信する場合、需給計器は、待機レコードに到達するまで、バッファにおけるレコードを読み出す。いくつかの実施例では、需給計器は、次いで、ネットワーク時間が利用不可能であった期間を記述するプレースホルダレコードを前方にスキャンする。プレースホルダレコードに基づいて、需給計器は、時間について適切に整列された待機レコードとともに、対応するスキップ区間をそれぞれ表す一連の空きレコードを送信する。
【0015】
前述したように、本願において説明したいくつかの実施例は、単一のバッファを利用して、開始時間が既知である通常レコードと、記録の時点では開始時間が未知である待機レコードとの両方を格納する。単一のバッファを使用することと、そのバッファにおけるパディングの使用を回避することとにより、記憶空間が節約される。さらに、一時バッファからデータをコピーするタスクは回避され、これにより、生じた事象の元のレコードを保持し、データのコピーが中断された場合における破損のリスクを回避する。したがって、本願において説明した実施例は、既存の方法に対して多数の技術的優位点を有する。
【0016】
図1は、本発明のいくつかの実施例に係る、様々な時間区間中に収集されたデータを記録するための記録システム100の概念図である。
図1に示すように、記録システム100はノード105へ一体化され、センサ110、レコーダ120、トランスレータ130、及び通信装置140を含んでもよい。いくつかの実施例では、センサ110は、1つ又は複数の時間区間に関連付けられた消費量データのようなデータを収集し、レコーダ120は、収集データを、1つ又は複数のプレースホルダレコードとともに、レコード記憶装置150に書き込み、トランスレータは、データパケットを送信しながら、又は送信を準備しながら、各プレースホルダレコードを変換(翻訳)し、通信装置はデータパケットを送信する。
【0017】
センサ110、レコーダ120、トランスレータ130、及び通信装置140の各々は、ハードウェア、ソフトウェア、又は両方の組み合わせとして実装されてもよい。例えば、限定としてではなく、センサ110は、リソースの消費量を示す信号を検出するように構成された特別なハードウェアであってもよく、レコーダ120及びトランスレータ130はそれぞれソフトウェア機能として実装されてもよく、通信装置140は、必要に応じて、ファームウェアを備えた無線又はネットワークカードであってもよい。センサ110、レコーダ120、トランスレータ130、及び通信装置140は、互いに異なるように図示及び説明されるが、この区別が例示の目的のみであり、これらの構成要素は互いに一体化されても又はさらに分割されてもよいことは理解されるであろう。例えば、限定としてではなく、レコーダ120及びトランスレータ130が単一のコード又は単一の特別なハードウェア装置として実装されるように、レコーダ120及びトランスレータ130は単一の構成要素へ一体化されてもよい。もう1つの実施例として、通信装置140によって受信されることでデータがセンサ110によって収集されるように、センサ110は通信装置140へ一体化される。本開示に従って様々な実施例が可能であることが理解されるであろう。
【0018】
レコード記憶装置150はバッファであってもよく、具体的には、例えば、データがリニア方式でレコード記憶装置150に書き込まれ、いくつかの実施例では、リニア方式でレコード記憶装置150からアクセスされるようなシーケンシャル又はリニアバッファであってもよい。例えば、限定としてではなく、レコード記憶装置150は、各ページがそのページにおける開始インデックスから読み出し可能であり、開始インデックスから順方向にスキャンすることで開始インデックスの後に位置したデータに到達するような、1つ又は複数のメモリページの形式を有する。言いかえると、いくつかの実施例では、レコード記憶装置150における複数の記憶位置は連続的にアクセスされる。
【0019】
図2は、本発明のいくつかの実施例に係る、一体化された記録システム100を備えたノード105、具体的には需給計器200のアーキテクチャ図である。例えば、限定としてではなく、需給計器200は、水道メーター、ガスメーター、又はリソース210の消費量を測定する他の任意のタイプのメーターであってもよい。本願において説明した本発明の所定の実施例は、水道メーター又はガスメーターのような、バッテリにより電力供給を受ける需給計器200のような、小電力の供給を受けるエンドポイントへの一体化に適合し、これにより、需給計器200は、待機区間及びスキップ区間を記録するための改善された機構からの利益を享受しうる。
【0020】
図2に示すように、需給計器200は、構内220において生じるリソース210の消費量を測定する。需給計器200は、処理装置230、メモリ240、及び記憶装置250を含んでもよく、これらはバス260によって互いに通信してもよい。例えば、限定としてではなく、メモリはランダムアクセスメモリ(RAM)であってもよく、記憶装置250はフラッシュ記憶装置又は読み出し専用メモリ(ROM)であってもよい。処理装置230、メモリ240、及び記憶装置250は、本願では別個の構成要素として図示及び説明しているが、この区別が例示の目的のみであることが理解されるであろう。例えば、処理装置230、メモリ240、及び記憶装置250は、マイクロコントローラユニットのような単一のチップへ、ともに一体化されてもよい。
【0021】
本願で詳述するように、いくつかの実施例では、レコーダ120はプレースホルダレコードを生成し、トランスレータ130は、送信用のデータパケットを生成するとき、プレースホルダレコードを変換する。いくつかの実施例では、レコーダ120及びトランスレータ130の動作は、記憶装置250又はメモリ240のようなコンピュータ可読媒体に格納されたプログラム命令として具体化される。いくつかの実施例では、コンピュータ可読媒体は、非一時的なコンピュータ可読媒体である。追加的又は代替的に、本願において説明したレコード記憶装置150は、メモリ240又は記憶装置250の少なくとも一部として実装されてもよい。処理装置230は、本願において説明するように、レコード記憶装置150を参照して、レコーダ120及びトランスレータ130を実装するプログラム命令を実行してもよい。
【0022】
図1を参照して前述したように、記録システム100は、センサ110及び通信装置140を含んでもよい。
図2に示すように、需給計器200は、本願において説明するような使用のために、そのようなセンサ110及び通信装置140を含んでもよい。いくつかの実施例では、需給計器200のセンサ110は、リソース210の消費量を検出するように構成され、それによって、需給計器200が消費量データを収集することを可能にする。需給計器200の通信装置140は、例えば、無線又はワイヤレス・フィデリティ(WiFi)(登録商標)カードであってもよく、それは、本願において説明するように、消費量データ又は他の収集データのレコードの集合を含むデータパケットを送信するために使用されてもよい。
【0023】
本開示は、需給計器200として具体化された本発明の実施例を繰り返し参照するが、本願において説明する実施例が需給計器200に限定されないことは当業者によって理解されるであろう。むしろ、本発明の実施例は、後の送信のためにデータを収集する様々なタイプのノード105に代わってデータを記録するために使用されてもよい。
【0024】
図3は、本発明のいくつかの実施例に係る、時間区間中における収集データを記録する方法300のフロー図である。概して、ノード105は、そのセンサ110を利用してデータを収集し、ここで、収集データの各部分は、収集データが収集された時間区間に関連付けられる。例えば、需給計器200の場合、消費量データは収集され複数のレコードとして格納され、ここで、各レコードは、特定の時間区間中におけるリソース210の消費量を記述する消費量データに対応する。本方法300は例示であり、本発明の様々な実施例を限定しないことが理解されるであろう。
【0025】
図3に示すように、ブロック305において、ノード105は、特定の時間区間中に生じる活動を記述するデータを収集し、これは、本願では収集データ(収集されたデータ)と呼ばれる。具体的には、例えば、センサ110は、信号を検出することによって、又は、外部ソースからデータを受信することによって、データを収集する。収集データは、例えば、特定の時間区間中にセンサ110によって検出されることによって、又は、特定の時間区間中に外部ソースによって検出され、次いで収集のためにノード105に送信されることによって、特定の時間区間に関連付けられてもよい。この実施例では、特定の時間区間は、データ収集のための確立された区間に対して、区間について整列された既知の開始時間を有する。区間について整列されることは、本願では、時間について整列されるともいう。例えば、各正時から15分ごとの時刻に対して整列した15分の区間でデータが収集されることが確立されている場合、区間について整列された特定の区間は、所与の日において、午前9:00、午前9:15、午前9:30などに開始する区間を含んでもよい。
【0026】
収集データは、時間区間中に生じる活動について記述してもよい。例えば、限定としてではなく、収集データは、水又はガスのようなリソース210の消費量を記述する消費量データであってもよい。いくつかの実施例では、データ収集の対象である活動は一貫性を有し、従って、各レコードにおいて具体的に識別される必要はない。
【0027】
ブロック310において、ノード105は、収集データを含む通常レコードを生成する。具体的には、例えば、レコーダ120は、通常レコードをレコード記憶装置150に書き込み、ここで、通常レコードは、通常レコードに対応する特定の時間区間に関連付けられた収集データを含む。通常レコードは、少なくとも、収集データを示す情報を含んでもよい。通常レコードは、特定の時間区間の開始時間又は特定の時間区間の長さを含んでもよいが、それらを含まなくてもよい。いくつかの実施例では、通常レコードは、時間区間の開始時間又は長さを示す情報を含む必要はないが、その理由は、この情報が含意されうるからである。例えば、時間区間が15分の固定長を有する場合、各通常レコードが、直前の通常レコードの開始時間より15分後の開始時間を有すると推定されうる。いくつかの実施例では、通常レコードに関連付けられた開始時間は、各通常レコードにおいて、選択された通常レコードの集合に対して格納される。例えば、データパケットにおける一連のレコードにおける最初のものとして使用することをノード105が計画する通常レコードは各々、各通常レコードに格納されるか、各通常レコードに関連付けて格納される各開始時間に関連付けられてもよい。その結果、そのような通常レコードは、他のレコードの開始時間を決定する根拠として機能しうる。
【0028】
決定ブロック315において、ノード105は、ネットワーク時間がなおも利用可能であるか否かを決定する。例えば、通信装置140が接続の喪失を報告することがあり、このことはネットワーク時間の喪失をもたらし、接続の喪失により、ノード105は、ネットワーク時間が失われたことに気づいてもよい。もう1つの実施例では、ノード105の電源が最初にオンされたとき、又は、ファームウェア更新の後又はツール接続の後のような、リブートされたばかりのとき、ネットワーク時間は利用不可能である可能性がある。ネットワーク時間がなおも利用可能である場合、方法300はブロック305に戻る。いくつかの実施例では、ネットワーク時間が利用可能である間、方法300のブロック305及び310が繰り返される。さらに、ネットワーク時間が現在の時刻区間中に失われた場合、現在の時刻区間に係る開始時間が既知であるので、現在の時刻区間は、なおも通常レコードとして表されてもよい。対照的に、後述するように、待機レコードは、待機レコードの書き込みの際に開始時間が未知である時間区間を表す。したがって、ネットワーク時間が利用不可能であると決定された場合、方法300はブロック320に進む。
【0029】
ブロック320において、ノード105は、ある時間区間にわたって生じる活動を記述するデータを収集する。具体的には、例えば、センサ110は、信号を検出することによって、又は、外部ソースからデータを受信することによって、データを収集する。いくつかの実施例では、ネットワーク時間が利用不可能であるので、収集データは、既知の開始時間を有する特定の時間区間には関連付けられない。しかしながら、ノード105は内部カウンタを含んでもよく、このことは、各待機レコードが、ある時間区間の長さに等しい時間期間にわたって収集データに関連付けられることを保証しうる。
【0030】
ブロック325において、ノード105は、既知の開始時間なしに、ある時間区間にわたる収集データを含む待機レコードを生成する。具体的には、例えば、レコーダ120は、待機レコードをレコード記憶装置150に書き込む。待機レコードは、少なくとも、未知の開始時間を有する時間区間に関連付けられた収集データを示す情報を含んでもよい。
【0031】
いくつかの実施例では、通常レコードの直後に書き込まれる待機レコードが、通常レコードの開始時間の後の区間長、開始時間に関連付けられていると仮定することはできない。例えば、ノード105の内部カウンタが何らかの理由で停止した場合、内部カウンタがなおも実際のネットワーク時間と整列することは保証されない。さらなる実施例として、ノード105が電力を喪失した場合、又は、サービスツールがノード105に接続された場合、内部カウンタは停止することがある。従って、いくつかの実施例では、待機レコードは、レコード記憶装置150において通常レコードの直後に位置してもよいが、待機レコードによって表される時間区間が通常レコードの時間区間の直後に位置することは保証されない。したがって、本願において説明するように、いくつかの実施例は、待機レコードの開始時間が既知であることを仮定しない。
【0032】
決定ブロック330において、ネットワーク時間がもう一度利用可能になったか否かが決定されてもよい。ネットワーク時間が利用不可能のままである場合、方法300はブロック320に戻り、既知の開始時間なしに複数の時間区間にわたってデータを収集し続けてもよい。しかしながら、ネットワーク時間が利用可能である場合、方法300はブロック335に進む。
【0033】
この決定ブロック330は、
図3ではブロック320及び325の後に行われるように示しているが、ノード105は、ある時間区間中の任意の時点においてネットワーク時間の利用可能性を検出してもよい。ネットワーク時間を受信したとき、現在の時刻区間の、区間について整列された開始時間は、現在のネットワーク時間と、時間区間の確立された整列とに基づいて決定可能である。いくつかの実施例では、区間について整列された最新の開始時間は、現在の時刻区間の開始時間として使用されてもよい。例えば、ネットワーク時間が午前9:35に利用可能になり、適切に整列された時間区間が各正時から15分ごとの時刻に開始する場合、現在の時間区間の、区間について整列された開示時間は、区間について整列された最新の開始時間、すなわち午前9:30である。したがって、再びネットワーク時間を受信したとき、ここで、現在の時刻区間は既知の開始時間を有し、ノード105は現在の時刻区間中にデータを収集し続けてもよく、これにより、最終的には、現在の時間期間を通常レコードとして表す。しかしながら、いくつかの実施例では、まだ完全ではない時間区間に係る通常レコードを書き込む前に、ネットワーク時間が利用不可能であった期間について記述するためにプレースホルダレコードが書き込まれてもよい。本願では、そのような期間は不完全期間と呼ばれる。
【0034】
ブロック335において、ノード105はプレースホルダレコードを生成する。より具体的には、例えば、レコーダ120は、レコード記憶装置150を分析することで、プレースホルダレコードに必要とされた情報を決定し、詳細後述するように、レコーダは、プレースホルダレコードをレコード記憶装置150に書き込む。
【0035】
図4は本発明のいくつかの実施例に係る、プレース新たなホルダレコードを生成する方法400のフロー図である。より具体的には、
図4の方法400は、上述の方法300のブロック335において実行されてもよく、さらに、この方法300は、ノード105のレコーダ120によって実行されてもよい。
【0036】
概して、新たなプレースホルダレコードを生成する場合、レコーダ120は、不完全期間に関する情報を決定してもよい。具体的には、決定された情報は、不完全期間の開始時間と、待機区間(すなわち、既知の開始時間をもたない時間区間)を表す待機レコードの量と、スキップ区間(すなわち、データが収集されなかった時間区間)の量とを含む。新たなプレースホルダレコードは不完全期間を記述してもよく、これにより、トランスレータ130が、データパケットが送信されているときにオンザフライで、待機区間を表す待機レコードと、スキップ区間を表す空きレコードとの組み合わせを含む、一連のレコードを生成することを可能にする。したがって、従来行われるように、スキップ区間を表すためにパディングを格納するのではなく、本願において説明した実施例は、プレースホルダレコードを利用することで記憶間を節約してもよく、また、データパケットのための確立されたフォーマットに準拠するために、必要に応じて、送信中に空きレコードの形式でパディングを生成してもよい。
【0037】
図4に示すように、ブロック405において、レコーダ120は、不完全期間の終了時間を決定する。この終了時間は、ネットワーク時間がもう一度利用可能になるときに経過中である、時間について整列された現在の時間区間の開始時間に対して等価であってもよい。例えば、ある時間区間中にネットワーク時間が利用可能になる場合、その時間区間の時間について整列された開始部が決定される。例えば、時間区間が、正時から15分ごとに開始するようにスケジューリングされている場合、正時から15分ごとの時刻のうちの最新の時刻が、現在の時刻区間の開始部として得られる。上述のように、いくつかの実施例では、不完全期間は、既知の開始時間を有する最後の時間区間の終了部(すなわち、先の通常レコードの終了時間)と、ネットワーク時間が再び利用可能になるときに経過中である現在の時刻区間の開始時間との間にわたる。したがって、現在の時刻区間の開始時間は、不完全期間の終了時間をマークしてもよい。
【0038】
ブロック410において、レコーダ120は、不完全期間の開始時間を決定する。
いくつかの実施例では、不完全期間の開始時間は、不完全期間の開始部の前における最後の通常レコードの終了時間であってもよく、それは、その最後の通常レコードの開始時間に時間区間の長さを加算した時間に等しい。いくつかの実施例では、開始時間は固定長の時間区間に基づいて暗黙的であるので、開始時間はすべての通常レコードに対して格納されない。しかしながら、不完全期間の開始時間を決定するために様々な機構が使用されてもよい。例えば、限定としてではなく、レコーダ120は、レコード記憶装置150において、開始時間に関連付けられた通常レコード(例えば、データパケットにおいて最初になることが意図された通常レコード)まで逆方向にスキャンしてもよく、又は、レコーダ120は、プレースホルダレコードまでスキャンしてもよく、これらのそれぞれは、いくつかの実施例では、開始時間に関連付けられる。開始時間に関連付けられた通常レコードを用いる場合、レコーダ120は、カウント変数をその開始時間に初期化してもよく、その通常レコード及び不完全期間の間(例えば、通常レコードと、不完全期間の一部として既に書き込まれた最初の待機レコードとの間)におけるプレースホルダレコード以外の各レコードの時間区間の長さによりカウント変数をインクリメントしてもよい。開始時間を有する最新のプレースホルダレコードを用いる場合、レコーダ120は、カウント変数をその開始時間に初期化し、プレースホルダレコードによって表される区間の合計個数を乗算した時間区間の長さによりカウント変数をインクリメントし、さらに、そのプレースホルダレコード及び不完全期間の間の各レコードにわたってカウント変数をインクリメントしてもよい。
【0039】
例えば、以前のプレースホルダレコードが、2つのスキップ区間及び3つの待機区間から構成された以前の不完全期間を表すと仮定し、以前のプレースホルダレコードが午後2:15の開始時間に関連付けられているとさらに仮定し、以前のプレースホルダレコードと、問題となっている不完全期間の開始部を表す待機レコードとの間に、8つの通常レコードが存在するとさらに仮定する。この実施例では、カウント変数は、初期状態では、以前の不完全期間の開始時間である午後2:15に設定されてもよい。以前のプレースホルダレコードによって表される以前の不完全期間の開始部と、問題となっている不完全期間との間における時間区間の合計個数は、2つのスキップ区間と、3つの待機区間と、各通常レコードによって表される8つの通常区間とを含み、13になる。従って、カウント区間は、1区間当たり15分を合計で13個の区間に乗算した時間長又は195分によりインクリメントされ、午後2:15の195分後である午後5:30を示すカウント変数をもたらす。しかしながら、不完全期間の開始時間を決定するために様々な機構が存在することは理解されるであろう。
【0040】
ブロック415において、レコーダ120は、不完全期間の長さを決定する。より具体的には、いくつかの実施例では、長さは、不完全期間の開始時間及び不完全期間の終了時間の間の時間長である。したがって、長さを決定するために、レコーダ120は、不完全期間の終了時間及び不完全期間の開始時間の間の差を決定してもよい。いくつかの実施例では、不完全期間が、時間について整列された開始時間から時間について整列された終了時間にわたるので、不完全期間の長さは、時間区間の長さの倍数である整数である。
【0041】
ブロック420において、プレースホルダレコードを生成するために必要とされる1つ又は複数の変数が初期化されてもよい。例えば、待機レコードのカウントは、ゼロに初期化されてもよい。いくつかの実施例では、レコーダ120は、プレースホルダレコードを生成する目的で使用される記憶位置を参照する構文解析ポインタを保持する。構文解析ポインタの値(すなわち、構文解析ポインタが参照する位置)は、各プレースホルダレコードの決定のためにリセットされるのではなく、保持されてもよい。いくつかの実施例では、ノード105が最初にレコード記憶装置150にレコードを記録し始める場合、構文解析ポインタは、書き込まれた第1のレコードの開始部をマーキングする記憶位置を参照するように設定されてもよい。本願において説明するように、構文解析ポインタは、プレースホルダレコードを生成するための情報を探索する場合に調整される。そのような調整の後、構文解析ポインタは、構文解析ポインタが次回に使用又は調整されるまで、その更新された位置に(すなわち、その値を保持して)とどまってもよい。構文解析ポインタは、初期化された変数中にあってもよく、この初期化は、構文解析が現時点でプレースホルダレコードを指示しているか否かを決定することを含んでもよく、そうならば、その既存のプレースホルダレコードを超えて構文解析ポインタをインクリメントする。
【0042】
ブロック425において、レコーダ120は、構文解析ポインタにおいて(すなわち、構文解析ポインタによって参照されたレコード記憶装置150における位置において)レコード記憶装置150をスキャンし始める。決定ブロック430において、レコーダ120は、その現在位置における構文解析するポインタによって何のタイプのデータが参照されるか決定する。
【0043】
構文解析ポインタが通常レコードを指示する場合、ブロック435において、構文解析ポインタが1レコードだけインクリメントされ、方法400は決定ブロック430に戻る。構文解析ポインタが待機レコードを指示する場合、ブロック440において、待機カウンタが1だけインクリメントされ、構文解析ポインタは1レコードだけインクリメントされ、方法400は決定ブロック430に戻る。構文解析ポインタによって参照されるレコードのタイプのこの識別は、決定ブロック430において構文解析ポインタが空白データを参照すると決定されるまで継続してもよい。例えば、限定としてではなく、空白データは、ヌル、無効であってもよく、以前に消去されていてもよい。いくつかの実施例では、空白データは、構文解析ポインタによって参照される以前のレコードに後続する有効なレコードを表さない。言いかえると、構文解析ポインタは現在時点に到達し、書き込まれるべき次のレコードは構文解析ポインタの位置に書き込まれてもよい。構文解析ポインタが空白データを参照する場合、方法400はブロック445に進む。
【0044】
ブロック445において、レコーダ120は、不完全期間におけるスキップ区間、すなわち、データが収集されなかった時間区間の量を決定する。いくつかの実施例では、スキップ区間の個数は、不完全期間における区間の合計個数に等しく、待機区間の個数より少ない。いくつかの実施例では、不完全期間における区間の合計個数は、各時間区間の長さで除算された不完全期間の長さであり、それは前述したように固定長であってもよい。いくつかの実施例では各待機区間に対して1つの待機レコードが書き込まれたので、完全期間における待機区間の個数は、上記では、完全期間における待機レコードの個数に等しくなるように決定された。したがって、レコーダ120は、不完全期間における区間の合計個数を計算し、次いで待機区間の個数を減算することで、スキップ区間の個数を決定してもよい。
【0045】
ブロック450において、レコーダ120は、新たなプレースホルダレコードをレコード記憶装置150に書き込む。いくつかの実施例では、新たなプレースホルダレコードは、他のレコードを書き込む場合と同じ方法又は同様の方法で書き込まれてもよい。例えば、いくつかの実施例では、レコーダ120は、新たなプレースホルダレコードを、最後に書き込まれたレコードに後続するレコードとして書き込み、最後に書き込まれたレコードは、例えば、通常レコード又は待機レコードであってもよい。新たなプレースホルダレコードは、プレースホルダレコードであることを示すレコード識別子と、不完全期間の開始時間と、不完全期間における待機区間の個数と、不完全期間におけるスキップ区間の個数とのうちの1つ又は複数を含んでもよい。いくつかの実施例では、完全なレコードにおいて期待される空間の量を充填するために、新たなプレースホルダレコードにパディングが含まれてもよい。例えば、限定としてではなく、パディングとしてゼロが使用されてもよい。
【0046】
図5は、本発明のいくつかの実施例に係る、プレースホルダレコード510を含むバッファ500のブロック図である。
図5の実施例では、レコード記憶装置150は、最後に書き込まれたレコードの後に位置した記憶位置に各レコードが書き込まれているように、リニア形式を有するバッファ500として実装される。しかしながら、レコード記憶装置150にとって様々な他の実装が可能であることは理解されるであろう。具体的には、
図5は、プレースホルダレコード510の書き込みの後の、さらに、2つの追加の通常レコード520g~520hがネットワーク時間にアクセスして書き込まれた後の、そのようなレコード記憶装置150の状態を示す。
【0047】
いくつかの実施例では、レコード記憶装置150は、1つ又は複数の通常レコード520a~520h(まとめて通常レコード520と呼ぶ)と、1つ又は複数の待機レコード530と、1つ又は複数のプレースホルダレコード510とを含む、レコードのヘテロジニアスな集合を含む。前述したように、いくつかの実施例では、開始時間は通常レコード520自体に記録される必要はなく、かつ、各通常レコード520は各時間区間を記述する収集データを含むが、各通常レコード520は、既知の開始時間を有する時間区間に関連付けられている。いくつかの実施例では、各待機レコード530は、収集データに関連付けられるが、既知の開始時間には関連付けられていない。各プレースホルダレコード510は、ネットワーク時間が未知である1つ又は複数の時間区間の不完全期間を記述してもよい。この目的で、プレースホルダレコード510は、不完全期間の開始時間と、不完全期間における待機区間の量を示す情報と、不完全期間におけるスキップ区間の量を示す情報とを含んでもよい。待機レコード530は、いくつかの実施例では、不完全期間中に生じた時間区間を表すので、プレースホルダレコード510によって表される不完全期間もまた、プレースホルダレコード510に加えて、1つ又は複数の待機レコード530によって表されてもよい。
【0048】
いくつかの実施例では、本願において説明したレコードを保持することによって、レコード記憶装置150は、ノード105において生じたイベントを記述する。この実施例では、時間区間は、15分の長さを有し、正時から15分ごとに開始する。さらに、レコード記憶装置150の図示した部分は、午前9:00の開始時間を有する通常レコード520aから開始する。
【0049】
図5に示すように、一連の通常レコード520a~520fは、各時間区間中に生じた活動を記述する収集データをそれぞれ有して記録された。これらの通常レコード520a~520fの各々について、ネットワーク時間は、少なくとも、各時間区間の開始部において利用可能であった。この実施例では、これらの6つの通常レコード520a~520fは、9:00、9:15、9:30、9:45、10:00、及び10:15においてそれぞれ開始した。これらの通常レコード520のうちの最後が開始した後(すなわち10:15の後)、ネットワーク時間は失われ、3つの待機レコード530が、収集データにより、ただし現在のネットワーク時間についての知識なしで記録された。次いで、ネットワーク時間は再び利用可能になり、また、ネットワーク時間が未知である不完全期間であって、待機レコード530が書き込まれた不完全期間を記述するために、プレースホルダレコード510が書き込まれた。この実施例では、ネットワーク時間は、12:06に再び利用可能になり、したがって、不完全期間は10:15から12:00まで継続した。12:00に開始する時間区間は、ネットワーク時間が利用可能になったときにその時間区間の開始時間が既知になったので、その後、通常区間として通常レコード520gに記録された。
【0050】
不完全期間は、ネットワーク時間が利用可能になる前に書き込まれた3つの待機レコード530によって表される3つの待機区間を含んでいた。プレースホルダレコード510を生成したとき、ノード105は、不完全期間が合計で6つの時間区間を含むと決定し、したがって、3つのスキップ区間は不完全期間の一部でなければならない。
図5には示していないが、プレースホルダレコード510は、不完全期間中に生じたスキップ区間の量を含んでもよい。
図5に示すように、スキップ区間は、いくつかの実施例では、レコード記憶装置150において対応するレコードによっては表されず、むしろ、プレースホルダレコード510における量によって表される。次いで、12:00及び12:15の開始時間をそれぞれ有する、2つの追加の通常レコード520g~520hは、ネットワーク時間が利用可能になった後で収集データを表すために書き込まれた。
【0051】
図6は、本発明のいくつかの実施例に係る、プレースホルダレコードを用いて様々なレコードを出力することでデータパケットを生成する方法600のフロー図である。この方法は、不完全期間中におけるスキップ区間及び待機区間を表す1つ又は複数の空きレコード及び1つ又は複数の待機レコードを送信するようにプレースホルダレコード510を変換することを含む。いくつかの実施例では、変換動作は、データパケットが通信装置140を介して送信されている間に、又はそのような送信の準備中に行われる。例えば、トランスレータ130は、この方法600を実行してもよく、それによって通信装置140に信号を書き込み、通信装置140がトランスレータ130の出力をデータパケットの形式で送信することを可能にしてもよい。もう1つの実施例では、トランスレータ130は、その出力を出力バッファに書き込んでもよく、通信装置140は、それを読み出しながら、その出力をデータパケットの形式で送信してもよい。言いかえると、この方法600は、通信装置140によってレコード記憶装置150から外部エンティティにレコードを送信する処理の一部となりうる。
【0052】
図6に示すように、ブロック605において、トランスレータ130は、レコード記憶装置150から通常レコード520を読み出し、ブロック610において、トランスレータ130は、通信装置140への送信のための出力に通常レコード520を書き込む。決定ブロック615において、遭遇した次のレコードが通常レコード520であるか否かが決定されてもよい。次のレコードが通常レコード520である場合、方法600が再びブロック605に戻り、ここで、通常レコード520が読み出され、次いで出力に書き込まれる。しかしながら、次のレコードが通常レコード520でない場合、方法600はブロック620に進む。
【0053】
ブロック620において、通常レコード520以外のレコード(例えば、待機レコード530又はプレースホルダレコード510)に遭遇したことに応答して、トランスレータ130は、レコード記憶装置150において、プレースホルダレコード510に到達するまで順方向にスキャンする。遭遇したレコードがプレースホルダレコード510である場合、トランスレータ130は、プレースホルダレコード510に到達するためにゼロレコードによって順方向にスキャンしてもよい。言いかえると、いくつかの実施例では、その場合には順方向にスキャンしないことが必要とされる。
【0054】
いくつかの場合において、遭遇したレコードは、待機レコード530である可能性がある。前述したように、いくつかの実施例では、この待機レコード530が、最後の通常レコード520の時間区間の直後にある時間区間を表すことは保証されない。したがって、レコード記憶装置150において通常レコード520の直後にある待機レコード530もまた、出力においてその通常レコード520の直後にあるという要件は存在しない。しかしながら、各レコードが時間について整列されていることが、データパケットを受信する外部エンティティによって期待される。いくつかの実施例では、待機レコード530が不完全期間における時間区間を表すので、また、プレースホルダレコード510が不完全期間に応答して書き込まれるので、プレースホルダレコード510が一連の待機レコード530に後続すると仮定することができる。したがって、待機レコード530に遭遇することに応答して、トランスレータ130は、レコード記憶装置150において、期待されるプレースホルダレコード510に到達するまで順方向にスキャンしてもよい。
【0055】
ブロック625において、トランスレータ130は、プレースホルダレコード510において示された各スキップ区間に係る1つの空きレコードを出力に書き込む。前述したように、プレースホルダレコード510は、スキップ区間の量を示してもよい。データパケットを受信する外部エンティティは、時間区間ごとに1つのレコードを期待する。したがって、各スキップ区間は、データパケットにおける空きレコードによって表されてもよい。例えば、限定としてではなく、空きレコードは、対応する時間区間について収集データが存在しないことを示すために、すべてゼロのようなパディングのみを含んでもよい。
【0056】
この実施例では、プレースホルダレコード510に表されたスキップ区間は、プレースホルダレコード510に表された待機レコード530の前に、空きレコードとして送信される。したがって、いくつかの実施例では、1つ又は複数の待機レコード530が、レコード記憶装置120において通常レコード520及びプレースホルダレコード510の間に位置する場合、それらの1つ又は複数の待機レコード530は、対応するプレースホルダレコード510において表された空きレコードの後のデータパケットに書き込まれて、それによって、そのような待機レコード530の位置を空きレコードの後の位置へシフトする。代替の実施例では、待機レコード530は、空きレコードの前に送信されてもよい。しかしながら、いくつかの実施形態では、待機レコード530の前に空きレコードを送信することは、ノード105において生じた活動のより正確な像を提示するが、その理由は、例えば、ノード105の電源がオフされたときに、空きレコードに対応するスキップ区間が生じ、電源オンされたとき、ノード105がネットワークに加入してネットワーク時間を取得する前に待機区間が生じるからである。イベントのこのシーケンスは、いくつかの実施形態では、各不完全期間の待機レコード530の前に空きレコードを送信することで反映される。
【0057】
ブロック630において、プレースホルダレコード510まで順方向にスキャンする前に待機レコード530に遭遇したと仮定し、トランスレータ130は、待機レコード530に遭遇するまで逆方向にスキャンする。この例示的な方法600では、少なくとも1つの待機レコード530がプレースホルダレコード510に先行すると仮定されているが、しかしながら、この条件は必須ではないことが理解されるであろう。むしろ、プレースホルダレコード510は、スキップ区間から構成され、待機区間を含まない不完全期間を表してもよく、その場合、待機レコード530は、いくつかの実施例では、プレースホルダレコード510の直前には存在しないであろう。
【0058】
ブロック635において、トランスレータ130は待機レコード530を読み出し、ブロック640において、トランスレータ130は、待機レコード530を書き込んで通常レコード520として出力する。いくつかの実施例では、待機レコード530及び通常レコード520の両方が収集されたデータを含み、したがって、待機レコード530及び通常レコード520の間の差は、既知の開始時間である。しかしながら、送信されたデータパケットにおいて、待機レコード530の収集データは、ここでは、暗黙的に開始時間に関連付けられ、ここで、その開始時間は、データパケットにおいて待機レコード530が現れる位置に基づく。例えば、待機レコード530を含む前に厳密に2つの空きレコードがデータパケットに含まれる場合、2つの時間区間は、待機レコード530から最後の通常レコード520を分離する。したがって、待機レコード530は、ここでは、(例えば、通常レコード520自体のための、及び、2つのスキップ区間のための)3つの時間区間によりインクリメントされたその通常レコードの開始時間に等しい開始時間に関連付けられている。したがって、いくつかの実施例では、トランスレータ130は、各待機レコード530の開始時間を暗黙的に確立し、データパケットにおいて、通常レコード520及び待機レコード530の間の差は存在しない。データパケットにおいて、以前に待機レコード530であったレコードが、通常レコード520とは異なることなく現れてもよい。
【0059】
決定ブロック645において、トランスレータ130は、遭遇した次のレコードが、既に読み出された(すなわち、待機レコード530まで逆方向にスキャンする前の)プレースホルダレコード510であるか否かを決定する。遭遇したレコードがプレースホルダレコード510でない場合、方法600はブロック635に戻り、もう1つの待機レコード530を読み出す。しかしながら、遭遇したレコードがプレースホルダレコード510である場合、このプレースホルダレコード510が既に読み出されて使用されているので、トランスレータ130は、ブロック650において、プレースホルダレコード510をスキップしてもよい。
【0060】
次いで、方法600はブロック605に戻り、後続する1つ又は複数の通常レコード520を読み出してもよい。説明の目的で、図示した方法600は、通常レコード520がプレースホルダレコード510に後続すると仮定しているが、この条件は必須ではないことが理解されるであろう。むしろ、例えば、待機レコード530がプレースホルダレコード510に後続してもよく、その場合、方法600は、ブロック605の代わりにブロック630に戻ってもよい。代替として、第2のプレースホルダレコード610が後続してもよく、その場合、トランスレータ130は、第2のプレースホルダレコード510において示される1つ又は複数の空きレコード710を書き込んでもよく、次いで、適用可能であれば、630のブロック605に戻ってもよい。
図6の方法600は、データパケットに含まれるすべてのレコードが読み出されて出力されるまで繰り返されてもよい。
【0061】
図7は、本発明のいくつかの実施例に係る、様々なレコードを含むデータパケット700のブロック図である。より具体的には、
図7に示すデータパケット700は、上述した方法600を
図5のレコード記憶装置150に適用した結果である。いくつかの実施例では、データパケット700は、第1のレコードの開始時間に等しい全体開始時間に関連付けられる。この全体開始時間は、データパケット700の一部として、例えばメタデータとして送信されてもよい。この実施例では、第1の通常レコード520aの開始時間は午前9:00であり、したがって、データパケット700は午前9:00の開始時間に関連付けられる。
【0062】
図7に示すように、いくつかの実施例では、不完全期間の前における6つの通常レコード520a~520fは、レコード記憶装置150に書き込まれるように出力される。各通常レコード520について開始時間を出力する必要はないが、開始時間は、暗黙的に、データパケット700の開始時間に基づいてもよい。したがって、出力としてのこれらの6つの通常レコード520a~520fの暗黙的な開始時間はそれぞれ、9:00、9:15、9:30、9:45、10:00、及び10:15であり、これらは、
図5を参照して説明したように、それらの実際の開始時間と一致する。
【0063】
待機レコード530に遭遇したとき、トランスレータ130は、プレースホルダレコード510まで順方向にスキャンし、不完全期間中に3つのスキップ区間が存在したと決定する。このように、トランスレータ130は3つの空きレコード710を出力し、これらのそれぞれは、収集データではなくパディングを含んでもよい。空きレコードの暗黙的な開始時間はそれぞれ、10:30、10:45、及び11:00である。空きレコード710に続いて、トランスレータ130は、3つの待機レコード530における収集データを、11:15、11:30、及び11:45の暗黙的な開始時間を有する3つの通常レコード520の形式でそれぞれ出力する。次いで、トランスレータ130は、12:00及び12:15の暗黙的な開始時間をそれぞれ有し、かつ、それらの通常レコード520g~520hの実際の開始時間と一致する、最終的な2つの通常レコード520g~520hを出力する。
【0064】
従って、
図7に示すように、いくつかの実施例では、空きレコード710は、レコード記憶装置150にローカルに格納されないが、データパケット700の確立されたフォーマットに基づいて期待されるようデータパケット700になおも現れ、また、待機レコード530は、時間について整列され、したがって通常レコード520として扱われる。
【0065】
特許請求の範囲に記載された主題についての詳細な理解を提供するために、本明細書において多数の特定の詳細事項を述べている。しかしながら、当業者は、特許請求の範囲に記載された主題がこれらの特定の詳細事項なしで実施されてもよいことを理解するであろう。他の例では、特許請求の範囲に記載された主題を不明瞭にしないように、通常の技術を有する者によって知られるであろう方法、装置、又はシステムについては詳述していない。
【0066】
本願において説明した特徴は、任意の特定のハードウェアアーキテクチャ又は構成に限定されない。需給計器200又は他のノード105のような計算装置は、1つ又は複数の入力を条件とした結果を提供する構成要素からなる任意の適切な装置を含んでもよい。適切な計算装置は、格納されたソフトウェア(すなわち、コンピュータシステムのメモリ上に格納されたコンピュータ可読命令)にアクセスする多目的のマイクロプロセッサに基づくコンピュータシステムを含み、このソフトウェアは、汎用の計算装置から本願の主題の1つ又は複数の態様を実装する特別な計算装置になるように計算システムをプログラミング又は構成する。計算装置のプログラミング又は構成に使用されるソフトウェアにおいて、本願に含まれる開示内容を実装するために、任意の適切なプログラミング、スクリプティング、他のタイプの言語、又は言語の組み合わせが使用されてもよい。
【0067】
本願において開示した方法の態様は、そのような計算装置の動作において実行されてもよい。上述の実施例において提示したブロックの順序は変更されてもよく、例えば、ブロックが並べかえられてもよく、組み合わされてもよく、又はサブブロックに分割されてもよい。所定の複数のブロック又は複数の処理を並列に実行してもよい。
【0068】
本願における「~ように適応化される」又は「~ように構成される」の使用は、追加のタスク又はステップを実行するように適応化又は構成された装置を除外しない、オープンかつ包括的な用語を意図している。さらに、「~に基づく」の使用は、記載された1つ又は複数の条件又は値「に基づく」処理、ステップ、計算、又は他の動作が、実際に、記載したものを越える追加の条件又は値に基づいてもよいという点で、オープンかつ包括的であることを意図している。本願に含まれた見出し、リスト、及び番号は、説明の簡単化のみを目的とし、限定を意図していない。
【0069】
本願の主題をその特定の態様に関して詳述したが、当業者は、上述したことを理解することにより、そのような態様の変更、変形、及び等価物を容易に作成しうることが認識されるであろう。従って、本開示が限定ではなく例示の目的で提示され、当業者に容易に明らかになるように、本願の主題に係るそのような変更、変形、又は追加を含むことを除外しないことは理解されるべきである。
【国際調査報告】