以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明のデータ収集システムの構成例を示す説明図である。図1に示すデータ収集システムは、任意のビット列であるデータを生成するデータ生成装置1’〜N5’と、データ生成装置から生成されたデータを一定時間収集して圧縮するデータ圧縮装置1〜N5と、データを収集するデータ収集装置7と、複数のデータ中継装置(データ中継装置1,1からデータ中継装置K,J)と、転送先情報更新装置5(図1において図示せず。図7参照。)とを備える。データ中継装置は、データ圧縮装置または他のデータ中継装置から圧縮データ(圧縮されたデータ)を受信し、圧縮データの再圧縮を行い、再圧縮後のデータを他の中継装置またはデータ収集装置7に転送する。データ中継装置は、再圧縮したデータの転送先となるデータ中継装置を決定するための転送先情報を記憶(記録)している。転送先情報更新装置5は、各データ中継装置に記憶されている転送先情報を更新する。
各データ中継装置(データ中継装置1,1ないしデータ中継装置K,J)は、各データ生成装置1’〜N5’とデータ収集装置7との間に構築されたインターネット等の通信ネットワーク上に配置される。各データ中継装置(データ中継装置1,1ないしデータ中継装置K,J)には、階層番号が割り当てられている。本実施の形態の説明では、「データ中継装置X,Y」と表記した場合、「X」が階層番号を表す。ある通信装置が別の通信装置と通信する際に経由する通信装置の数は、ホップ数と呼ばれる。また、ある通信装置と別の通信装置の間でパケットが往復する時間は、ラウンドトリップタイムと呼ばれる。同じ階層に属するデータ中継装置とは、データ収集装置7と通信するときのホップ数(ラウンドトリップタイムでもよい。)が等しいデータ中継装置であり、同じ階層に属するデータ中継装置には同一の階層番号が割り当てられる。例えば、図1に示すデータ中継装置1,1およびデータ中継装置1,2は、データ収集装置7と通信する際のホップ数が等しく、共通の第1階層に属する。「データ中継装置X,Y」と表記した場合における「Y」は、同じ階層に属する個々のデータ中継装置に割り当てられた番号である。
また、データ収集装置7と通信する際のホップ数が大きいほど、階層番号が大きくなるものとする。各データ中継装置は、階層番号が1多いデータ中継装置からデータを受信する。また、階層番号が最も大きいデータ中継装置はデータ圧縮装置からデータを受信する。階層番号が1のデータ中継装置は、階層番号が1多いデータ中継装置(階層番号2のデータ中継装置)から受信したデータを、データ収集装置7に送信する。また、各データ中継装置は、受信した圧縮データを再圧縮して他のデータ中継装置またはデータ収集装置7に送信する。
以降の説明では、あるデータ中継装置に対して、階層番号が1少ない複数のデータ中継装置を「上位のデータ中継装置群」と記し、階層番号が1多い複数のデータ中継装置を「下位のデータ中継装置群」と記す。
個々のデータ生成装置P’(図1に示す例ではP’=1’〜N5’)は、それぞれ対応するデータ圧縮装置P(図1に示す例ではP=1〜N5)と通信を行う。例えば、データ生成装置1’はデータ圧縮装置1にデータを送信する。
各データ圧縮装置1〜N5は、対応するデータ生成装置からデータを受信する。そして、受信したデータを圧縮し、最も下位の階層のデータ中継装置(図1に示す例では階層番号3のデータ中継装置)のうちのいずれか1つに圧縮したデータ(圧縮データ)を送信する。
図1に示す例では、データ中継装置の階層数が3である。そして、階層番号1のデータ中継装置として、データ中継装置1,1およびデータ中継装置1,2の2台を備えている。また、階層番号2のデータ中継装置として、データ中継装置2,1からデータ中継装置2,3までの3台を備え、階層番号3のデータ中継装置として、データ中継装置3,1からデータ中継装置3,5までの5台を備えている。また、図1に示す例では、データ中継装置3,1がデータ圧縮装置1〜N1と通信し、データ中継装置3,2がデータ圧縮装置N1+1〜N2と通信し、データ中継装置3,3がデータ圧縮装置N2+1〜N3と通信し、データ中継装置3,4がデータ圧縮装置N3+1〜N4と通信し、データ中継装置3,5がデータ圧縮装置N4+1〜N5と通信する場合を示している。
さらに、図1では、データ圧縮装置P(P=1〜N5)が、データ生成装置P’(P’=1’〜N5’)と一対一に接続され、接続されたデータ生成装置からデータを受信する場合を示している。図1に示す符号において、N1、N2、N3、N4、N5は自然数であり、N1>1、N2>N1+1、N3>N2+1、N4>N3+1、N5>N4+1であるものとする。
図2は、データ圧縮装置の構成例を示すブロック図である。各データ圧縮装置1〜N5は、通信部31と、受信データ記録部34と、データ圧縮部32と、記号辞書記録部33とを備えている。図2では、図1に示すデータ圧縮装置1〜N5のうち、データ圧縮装置1を示しているが、各データ圧縮装置1〜N5の構成はいずれも同様である。
通信部31は、Ethernet(登録商標)等のデータを送受信する装置である。通信部31は、一つのデータ生成装置からデータを受信し、複数のデータ中継装置にデータを送信する。
受信データ記録部34は、通信部31がデータ生成装置から受信したデータを記録するための記憶装置である。
以下の説明では、データ生成装置によって生成されたデータ中の任意のビット列を「記号」と表現する。
データ圧縮部32は、受信データ記録部34に記録されたデータに対して圧縮処理を行う。この圧縮処理は、データ解析処理とデータ変換処理とによって実現される。データ解析処理は、圧縮対象のデータの統計的特性を解析する処理である。このデータ解析処理によって解析された結果を含む情報をデータ解析結果と記す。統計的特性の解析の例として、圧縮対象のデータ内における各記号の出現頻度(出現回数)を導出することが上げられる。以下、便宜的に、各記号の出現頻度を導出することを、頻度表の作成と記すことがある。また、各記号の出現頻度を示す情報を頻度表と記すことがある。
ここで、圧縮処理におけるデータ解析処理で解析対象となる統計的特性について説明する。この統計的特性は、「第1の集合の統計的特性として導出された解析結果(第1解析結果)と、第2の集合の統計的特性として導出された解析結果(第2解析結果)とから、第1の集合の要素と第2の集合の要素の全ての要素からなる第3の集合の統計的特性の解析結果を、第3の集合の要素を列挙することなく計算することができる。」という特徴を有する統計的特性である。すなわち、第1解析結果と第2解析結果が導出されていれば、第3の集合の個々の要素が特定されていなくても、第3の集合の統計的特性の解析結果を第1解析結果および第2解析結果から導出できるという特徴を有する。ここで、第1の集合および第2の集合の要素は記号である。上記の記号の出現頻度に関しても、第1の集合における各記号の出現頻度と、第2の集合における各記号の出現頻度が得られれば、第1の集合および第2の集合の各要素を全て認識していなくても第3の集合の解析結果(各記号の出現頻度)を導出できる。すなわち、第1の集合における各記号の出現回数と、第2の集合における各記号の出現回数との和を、個々の記号毎に計算すればよい。よって、出現頻度(頻度表)は、上述の特徴を有する統計的特性に該当する。このような統計的特性の他の例として、平均値および要素数の組み合わせや、要素の最大値および最小値の組み合わせ等が挙げられる。
上記のような統計的特性の特徴により、データ解析処理では、任意の個数のデータ(第1の集合の要素および第2の集合の要素)を連結したデータ(第3の集合の要素)のデータ解析結果を、個々のデータをデータ解析処理したことによって得られるデータ解析結果(第1の集合、第2の集合のデータ解析結果)から生成することができる。なお、このように、第1および第2の集合のデータ解析結果から、第3の集合の解析結果を導出する処理は、データ中継装置によって行われる。
データ変換処理では、データ解析結果を用いて、圧縮対象のデータをサイズの小さい圧縮データに変換する。例えば、データ圧縮部32が、データ解析処理として、データ生成装置から受信したデータに含まれている各記号の出現頻度を導出する処理を行うとする。データ圧縮部32は、そのデータ解析処理に続くデータ変換処理として、例えば、各記号を、出現頻度に基づいて導出される各記号のハフマン符号に置き換える処理を行えばよい。
以下の説明では、圧縮処理におけるデータ変換処理によって得られたビット列(すなわち、データ変換処理後のビット列)の単位を「符号」と記す。上記の例では、各記号に対応するハフマン符号が「符号」に該当する。また、データ変換処理前の各記号と、その記号が置換される各符号とを一対一に対応付けた情報を「データ変換情報」と記す。データ変換情報の例として、記号と符号とを対応付けた符号表等が挙げられる。
また、以下の説明では、圧縮処理によって生成された符号にデータ変換情報とデータ解析結果とを付加したビット列を圧縮済みデータと記す。
データ圧縮部32は、圧縮処理で生成した符号に、データ変換情報およびデータ解析結果を付加して圧縮済みデータを生成し、通信部31を用いてその圧縮済みデータをデータ中継装置に送信する。圧縮済みデータを1階層上位のどのデータ中継装置に送信するかは、転送先情報によって決定される。
記号辞書記録部33は、圧縮処理のデータ解析処理における解析対象となる記号、および圧縮処理のデータ変換処理における変換対象となる記号を定義した辞書データを記録している。例えば、データ解析処理として頻度表の作成を行い、データ変換処理としてハフマン符号への変換を行う場合、データ生成装置から受信したデータに含まれるどの記号に対して頻度表の作成やハフマン符号化を行うのかを定めた情報(辞書データ)を記憶している。なお、上記の例のように、データ解析処理として頻度表の作成を行い、データ変換処理としてハフマン符号への変換を行う場合、データ解析処理における解析対象となる記号と、データ変換処理における変換対象となる記号とは、同一である。
記号辞書録部33および受信データ記録部34は、記憶装置によって実現される。データ圧縮部32は、例えば、プログラムに従って動作するCPUによって実現されていてもよい。通信部31が受信したデータを受信データ記録部34に記憶させる動作は、このCPUが実行してもよい。また、データ圧縮部32(CPU)は、データ圧縮装置32が備える記憶装置に記憶されたプログラムを読み込み、そのプログラムに従って圧縮処理(データ解析処理およびデータ変換処理)を行ってもよい。また、データ圧縮部32は、データ解析処理を行う度に、データ圧縮装置の外部からデータ解析処理を行うためのプログラムを自身が備える記憶装置にコピーし、そのプログラムに従ってデータ解析処理を行ってもよい。
また、統計的特性のデータ解析処理の例として、頻度表の作成、要素数および平均値の導出、最大値および最大値の導出等を挙げることができるが、データ圧縮部32は、各種データ解析処理を全て行う必要はなく、一種類のデータ解析処理を行えばよい。例えば、データ圧縮部32は、頻度表の作成を行い、要素数および平均値の導出と最大値および最大値の導出とに関しては行わない構成であってもよい。データ圧縮部32が複数種類のデータ解析処理を行う構成の場合には、データ圧縮部32は、データ解析処理の種類に応じたプログラムを読み込み、そのプログラムに従ってデータ解析処理を行ってもよい。
データ圧縮部32は、頻度表を作成する場合、記号辞書記録部33に記憶された辞書データで定められた各記号毎に、データ生成装置から受信したデータに含まれる記号の個数を計数し、記号と記号の計数結果との組の集合をデータ解析結果とすればよい。
また、統計的特性として平均値および要素数の組み合わせを用いる場合、データ圧縮部32は、データの要素を数値化して平均値を求めるとともに、要素数を計数すればよい。また、統計的特性として最大値および最小値を用いる場合、データ圧縮部32は、データの要素を数値化した場合における最大値および最小値を探索して、最大値および最小値を求めればよい。データに含まれる要素を数値化する手法としては、各要素を表すビット列を2進法の数値に読み替える手法があるが、他の方法で要素を数値化してもよい。ここで挙げた統計的特性やそのデータ解析処理は例示であり、他の統計的特性を用いてデータ解析処理を行ってもよい。
図3は、データ中継装置の構成例を示すブロック図である。各データ中継装置(図1に示す例ではデータ中継装置1,1ないしデータ中継装置3,5)は、通信部41と、受信データ記録部42と、転送先情報記録部45と、記号分類部43と、データ再圧縮部44と、転送先決定部46と、記号集合クラスタリング情報取得部47とを備える。図3では、図1に示す各データ中継装置のうちのデータ中継装置3,1を示しているが、自身にデータを送信してくる装置(図3内に示すデータ圧縮装置1〜N1)やデータ転送先となる装置(図3内に示すデータ中継装置2,1ないしデータ中継装置2,3)を除けば、各データ中継装置の構成はいずれも同様である。例えば、第1階層のデータ中継装置は、第2の階層のデータ中継装置からデータを受信し、データ収集装置7にデータを転送するが、データ中継装置の構成は図3に示す構成と同様である。
通信部41は、Etherenet(登録商標)等のデータを送受信する装置である。通信部41は、複数のデータ圧縮装置あるいはデータ中継装置からデータを受信する。受信データ記録部42は、通信部41が受信したデータ(複数のデータ生成装置あるいはデータ中継装置から受信した各データ)に受信時刻を追記したデータを記録するための記憶装置である。通信部41が受信したデータに受信時刻を追記して、受信データ記録部42に記憶させる処理は、例えば、データ中継装置の各部を実現するCPUによって行われる。
データ再圧縮部44は、圧縮済みデータを再圧縮する。データ再圧縮部44は、受信した圧縮済みデータに含まれる符号を他の符号に置き換えることによってデータの再圧縮を実現する。このとき、圧縮されている符号は記号分類部43によって記号に変換されるが、データ再圧縮部44は、この記号を圧縮するのではない。すなわち、圧縮されたデータを伸長して、伸長したデータを再度圧縮するわけではない。符号を記号に戻す処理が行われるが、データ再圧縮部44は、符号自体を別の符号に変換することで再圧縮を実現する。よって、再圧縮処理に要する負荷を軽減し、また再圧縮の処理時間を短縮化することができる。データ再圧縮部44の構成については後述する。
転送先情報記録部45は、転送先の上位のデータ中継装置ごとに定義された記号の集合の範囲と、上位のデータ中継装置群に含まれる各データ中継装置の宛先情報とを対応付けた転送先情報を記録している。記号の集合の範囲とは、1階層上位の各データ中継装置毎に定められた記号の範囲である。例えば、1階層上位のデータ中継装置がデータ中継装置2,1ないしデータ中継装置2,3であり、データ中継装置2,1には、記号“0000”,“1111”,“00001111”を送信する(より具体的にはこれらの記号を圧縮したデータを送信する)ものと定められている場合、この3つの記号が記号の集合の範囲となる。同様に、データ中継装置2,2には、記号“0110”を送信する(より具体的にはこの記号を圧縮したデータを送信する)ものと定められている場合、“0110”が記号集合の範囲となる。転送先情報はデータ中継装置の階層毎に定められ、同一の階層に属するデータ中継装置の転送先情報記録部45は、共通の転送先情報を記憶する。以下、データ転送先となる上位のデータ中継装置毎に定められた記号の集合の範囲を記号集合と記す。
転送先情報は、後述する転送先情報更新装置5(図1において図示せず。図7参照。)によって生成され、通信部41を経由して転送先情報記録部45に記録される。
記号分類部43は、受信データ記録部42に記録された圧縮済みデータ内のデータ変換情報を用いて、符号を記号に変換する。記号分類部43は、変換によって得られた各記号を、転送先情報記録部45に記録された転送先情報を用いて、転送先のデータ中継装置毎に定められた記号集合に従って分類し、データ再圧縮部44に送信する。例えば、データ中継装置が備える記憶装置(データ再圧縮部44が備える圧縮済みデータ記録部441。図5参照。)の記憶領域を、データ中継装置毎に定められた記号集合毎に分割しておき、記号分類部43は、変換によって得られた各記号および圧縮済みデータを記号が属する記号集合の領域に記憶させる。記号分類部43は、圧縮済みデータに含まれている符号であって、変換によって得られた各記号に対応する符号も、記号にあわせて分類し、データ再圧縮部44に送信する。また、圧縮済みデータに含まれているデータ変換情報およびデータ解析結果も記号にあわせて分類し、データ再圧縮部44に送信する。
また、記号分類部43は、圧縮された符号を記号に変換することによって得た記号の頻度表を作成する。すなわち、符号を変換して得た各記号毎に、記号の出現回数を計数し、記号と記号の出現回数との関係を対応付けた情報(頻度表)を生成する。記号分類部43は、その頻度表を記号集合クラスタリング情報取得部47が備える実行履歴記録部471に記憶させる。ここで、データ圧縮装置でのデータ圧縮時のデータ解析処理において頻度表が作成されていて、圧縮済みデータに既に頻度表が含まれている場合には、記号分類部43は、頻度表を作成して実行履歴記録部471に記憶させなくてよい。圧縮済みデータにデータ解析結果として頻度表が含まれている場合、転送先決定部46が圧縮済みデータに含まれている頻度表を実行履歴情報に含めて実行履歴記録部471に記憶させる。実行履歴記録部471については図4を参照して後述する。実行履歴情報についても後述する。
転送先決定部46は、データ再圧縮部44によって生成された圧縮済みデータの送信先となるデータ中継装置を、転送先情報記録部45に記憶されている転送先情報を用いて決定する。そして、転送先決定部46は、決定したデータ中継装置に、通信部41を用いて圧縮済みデータを送信する。
図4は、記号集合クラスタリング情報取得部47を示すブロック図である。記号集合クラスタリング情報取得部47は、実行履歴記録部471と、距離パラメータ計算部472と、圧縮情報取得部473とを備える。
実行履歴記録部471には、実行履歴情報が記録される。実行履歴情報は、転送先決定部46が転送した圧縮済みデータの通信速度と、データ再圧縮部44が再圧縮処理に要した時間と、再圧縮処理によって生成された圧縮済みデータのサイズと、圧縮済みデータに含まれるデータ解析結果と、データ中継装置毎に割り当てられたデータ中継装置識別情報と、階層番号とを含む。実行履歴情報の具体例については、図37を参照して後述する。実行履歴記録部471への実行履歴情報の記録は、転送先決定部46によって行われる。実行履歴記録部471が記憶している実行履歴情報に含まれる階層番号およびデータ中継装置識別情報は、その実行履歴情報を記憶しているデータ中継装置自身の階層番号および識別情報である。
距離パラメータ計算部472は、実行履歴記録部471に記録された実行履歴情報の中から、転送先決定部46が転送した圧縮済みデータの通信速度を読み込む。また、距離パラメータ計算部472は、実行履歴記録部471に記録された実行履歴情報を参照して、圧縮済みデータのサイズを再圧縮処理に要した時間で除算することによって、再圧縮処理における処理速度を計算する。次に、距離パラメータ計算部472は、読み込んだ通信速度と、計算した処理速度と、実行履歴情報に含まれるデータ中継装置識別情報と、階層番号とを転送先情報更新装置5に送信する。
圧縮情報取得部473は、実行履歴記録部471に記録された記号の頻度表を読み込み、その頻度表を転送先情報更新装置5に送信する。なお、圧縮済みデータの中にデータ解析結果として頻度表が含まれていて、その頻度表が実行履歴情報の一部として記録されている場合には、圧縮情報取得部473は、実行履歴情報の一部として記録された頻度表を読み込めばよい。圧縮済みデータに含まれたデータ解析結果が頻度表ではない場合には、記号分類部43が頻度表を生成して、実行履歴記録部471に頻度表を記憶させるので、圧縮情報取得部473はその頻度表を読み込んで転送先情報更新装置5に送信すればよい。
なお、距離パラメータ計算部472および圧縮情報取得部473は、通信部41を介して転送先情報更新装置5に情報を送信する。
図5は、データ再圧縮部44を示すブロック図である。データ再圧縮部44は、圧縮済みデータ記録部441と、データ解析結果取得部442と、データ解析結果合成部443と、データ変換情報取得部444と、データ変換情報作成部445と、データ変換部446とを備える。
圧縮済みデータ記録部441は、他の複数のデータ中継装置から送信された圧縮済みデータであって、記号分類部43から送られる圧縮済みデータを記録するための記憶装置である。圧縮済みデータは、記号分類部43によって記号集合毎に分類されて、圧縮済みデータ記録部441に記憶される。
データ解析結果取得部442は、圧縮済みデータ記録部441に記憶された圧縮済みデータからデータ解析結果を、記号集合毎に取得する。
データ解析結果合成部443は、データ解析結果取得部442が取得した記号集合毎のデータ解析結果を用いて、記号集合毎の圧縮済みデータ全体のデータ解析結果を生成する。既に説明したように、圧縮処理におけるデータ解析処理で解析対象となる統計的特性は、「第1の集合の統計的特性として導出された解析結果(第1解析結果)と、第2の集合の統計的特性として導出された解析結果(第2解析結果)とから、第1の集合の要素と第2の集合の要素の全ての要素からなる第3の集合の統計的特性の解析結果を、第3の集合の要素を列挙することなく計算することができる。」という特徴を有している。従って、データ解析結果合成部443は、記号集合毎のデータ解析結果から、記号集合毎の圧縮済みデータ全体のデータ解析結果を生成することができる。
データ変換情報取得部444は、圧縮済みデータ記録部441に記憶された圧縮済みデータから、記号集合毎にデータ変換情報を取得する。
データ変換情報作成部445は、データ解析結果合成部443によって再計算された記号集合毎の圧縮済みデータ全体のデータ解析結果を用いて、記号集合毎にデータ変換情報を作成する。
例えば、複数の中継装置から圧縮済みデータを受信した結果、複数種類のデータ解析結果が圧縮済みデータ記録部441に記憶されているとする。また、そのデータ解析結果は、頻度表であるとする。データ解析結果合成部443は、各データ解析結果(頻度表)から、圧縮済みデータ全体でのデータ解析結果(頻度表)を、記憶集合毎に作成する。データ変換情報作成部445は、この全体のデータ解析結果から、記号集合毎にデータ変換情報を作成する。例えば、データ解析結果が頻度表である場合には、データ変換情報作成部445は、全体のデータ解析結果(頻度表)に基づいて、個々の記号のハフマン符号を導出し、そのハフマン符号と記号とを対応付けた情報を新たなデータ変換情報とすればよい。
データ変換部446は、データ変換情報取得部444が取得したデータ変換情報と、データ変換情報作成部445が生成したデータ変換情報とから、圧縮済みデータ記録部441から受信した圧縮済みデータの符号を、データ変換情報作成部445が生成したデータ変換情報内の符号に変換し、転送先決定部46に送信する。データ変換情報取得部444が取得したデータ変換情報は、データ中継装置が受信した圧縮済みデータに含まれているデータ変換情報である。例えば、このデータ変換情報で、記号“0000”と符号“0110”とが対応付けられているとする。また、データ変換情報作成部445が生成したデータ変換情報では、記号“0000”と符号“00”とが対応付けられているとする。この場合、データ変換部446は、記号“0000”に対応する圧縮済みデータ内の符号“0110”を、データ変換情報作成部445が生成したデータ変換情報に従って“00”に変換することで再圧縮を行う。データ変換情報取得部444が取得したデータ変換情報を旧データ変換情報と記し、データ変換情報作成部445が生成したデータ変換情報を新データ変換情報と記す。上記の例のように、旧データ変換情報によって、圧縮済みデータ内の符号から元の記号が一意に定められている。また、新データ変換情報では、記号に対応した新しい符号が定められている。データ変換部446は、圧縮済みデータ内の符号に対応付けられた記号を旧データ変換情報の中から検索し、さらにその記号に対応付けられた符号を新データ変換情報の中から検索し、圧縮済みデータ内の符号をその符号に置き換えればよい。このように、データ変換部446は、符号から戻された記号に対して再度圧縮処理を行っているのではなく、圧縮データ内の符号を別の符号に置き換えることで再圧縮を行う。そして、データ変換部446は、再圧縮後の符号と、新データ変換情報と、データ解析結果合成部443によって作成された新たなデータ解析結果とを含む圧縮済み情報を生成する。
データ中継装置の記号分類部43、転送先決定部46、距離パラメータ計算部472、圧縮情報取得部473、データ解析結果取得部442、データ解析結果合成部443、データ変換情報取得部444、データ変換情報作成部445、データ変換部446は、例えば、プログラムに従って動作するCPUによって実現される。
図6は、データ収集装置7の構成例を示すブロック図である。データ収集装置7は、通信部11と、受信データ記録部12と、データ解析結果取得部13と、基本記号記述形式記録部15と、派生記号記述形式記録部17と、符号演算部14と、符号演算展開部16と、演算結果記録部18とを備える。
通信部11は、各データ中継装置が備える通信部41と同様に、データ中継装置からデータを受信する装置である。受信データ記録部12は、各データ中継装置が備える受信データ記録部42と同様の記憶装置である。
データ解析結果取得部13は、受信データ記録部12に記憶された圧縮済みデータからデータ解析結果を記号集合毎に取得する。また、受信データ記録部12に記憶された圧縮済みデータからデータ変換情報を記号集合毎に取得する。すなわち、データ解析結果取得部13は、各データ中継装置が備えるデータ解析結果取得部442およびデータ変換情報取得部444と同様の情報を取得する。
基本記号記述形式記録部15は、データ圧縮装置1〜N5の記号辞書記録部33に記録された辞書データに記録された記号の、記述形式である記号記述情報を記録している記憶装置である。基本記号記述形式記録部15には、データ圧縮装置1〜N5の記号辞書記録部33の辞書データで定められた記号のうちの基本記号とその基本記号の記述形式とが対応付けられて、予め記憶されている。基本記号は、それ以上分割することができない記号(例えば、1文字を表す記号)である。記号記述情報に含まれる記述形式は、基本記号を別の表現で記述した記号である。例えば、文字コードが異なれば、共通の文字を表すビット列も異なる。具体例を挙げると、同じ文字であっても、シフトJISと他の文字コードとでは、異なるビット列で表される。記号記述情報に含まれる記述形式は、基本記号をこのような異なるビット列で表した記号である。このような記号記述情報により、異なるビット列で表された同一の文字を、1つの規格(文字コード)に沿ったビット列に統一することができる。なお、記号記述情報は予め定められている。
また、基本記号を組み合わせて得られる記号を派生記号と記す。例えば、基本記号を組み合わせることにより2文字以上の文字列を表す記号が派生記号に該当する。また、派生記号の記述形式とは、派生記号を構成する個々の基本記号の集合である。派生記号記述形式記録部17は、複数の基本記号によって構成される派生記号と、その派生記号を構成する複数の基本記号の組(派生記号の記述形式)とを対応付けた派生記号構成情報を記憶する記憶装置である。
記号記述情報に含まれる基本記号と基本記号の記述形式とでは、例えば文字コードのような規格が異なっている。それに対し、派生記号構成情報において、派生記号は基本記号を組み合わせた基本記号であり、派生記号の記述形式は派生記号を構成する基本記号の集合であるので、派生記号構成情報に含まれる派生記号と派生記号の記述形式とでは規格が共通である。
符号演算部14は、データ解析結果取得部13が取得したデータ解析結果と、基本記号記述形式記録部15から取得した記号記述情報とを用いて、圧縮済みデータ内の符号として変換されている基本記号の統計値(例えば、基本記号の頻度表)および派生記号の統計値(例えば、派生記号の頻度表)を導出する。
符号演算展開部16は、派生記号記述形式記録部17から取得した派生記号を構成する基本記号の組合せと
、符号演算部14が計算した派生記号の統計値とから、派生記号を構成する基本記号の統計値を計算する。符号演算展開部16は、その基本記号の統計値と、符号演算部14が計算した基本記号の統計値を結合して、新たに基本記号の統計値を計算する。演算結果記録部18は、符号演算展開部16が計算した基本記号の統計値を記憶する記憶装置である。
データ解析結果取得部13、符号演算部14、および符号演算展開部16は、例えば、プログラムに従って動作するCPUによって実現される。
図7は、転送先情報更新装置5の構成例を示すブロック図である。転送先情報更新装置5は、通信部51と、記号分布生成部53と、距離パラメータ取得部52と、記号集合クラスタリング部54と、データ中継装置情報記録部56と、転送先情報生成部55とを備える。
通信部51は、各データ中継装置が備える通信部41と同様の装置である。通信部51は、各データ中継装置の記号集合クラスタリング情報取得部47から、記号の頻度表、再圧縮処理における処理速度や実行履歴情報に含まれる通信速度、データ中継装置識別情報、階層番号を受信する。また、通信部51は、各中継装置に対して転送先情報を送信する。
記号分布生成部53は、通信部51介して、各データ中継装置内の圧縮情報取得部473から頻度表を取得する。そして、記号分布生成部53は、各データ中継装置内の圧縮情報取得部473から取得した頻度表を用いて、全データ中継装置が一定時間に他のデータ中継装置またはデータ圧縮装置から受信したデータ内の記号の頻度表を生成する。
距離パラメータ取得部52は、通信部51介して、各データ中継装置内の距離パラメータ計算部472から、各データ中継装置における再圧縮処理の処理速度、実行履歴情報に含まれていた通信速度、データ中継装置識別情報、および階層番号を取得する。
記号集合クラスタリング部54は、距離パラメータ取得部52から受信した通信速度および処理速度(各データ中継装置における再圧縮処理の処理速度)と、記号分布生成部53が生成した全データ中継装置が一定時間に受信したデータ内の記号の頻度表とを用いて、データ中継装置の階層毎に、データ中継装置が一定時間に受信したデータ内の記号を分類する。そして、記号集合クラスタリング部54は、各層毎に、分類したグループに上位の階層のデータ中継装置の識別情報を割り当てる。さらに、記号集合クラスタリング部54は、各階層毎に、各グループに属する記号の集合(既に説明した記号集合に該当する。)と、各グループに割り当てられた上位の階層のデータ中継装置の識別情報とを対応付けた情報を生成する。この記号集合と、上位の階層のデータ中継装置の識別情報とを対応付けた情報を記号クラスタ情報と記す。記号集合クラスタリング部54は、データ内の記号を分類して記号クラスタ情報を生成するときに、以下の2つの条件を満たすようにして、記号クラスタ情報を生成する。
第1の条件は、記号分布生成部53が生成した記号の頻度表の偏りよりも、グループ内の記号の頻度表の偏りの方が大きくなることである。第2の条件は、グループに属する各記号の頻度総数(グループに属する各記号の総登場数)をグループ毎に比較したときの大小関係と、各グループに割り当てるデータ中継装置(上位の階層のデータ中継装置)の通信速度および処理速度の和の大小関係とが一致することである。例えば、記号をグループA,B,Cに分類したときに、各グループに属する各記号の総登場数がそれぞれa,b,cであり、a<b<cとなっているとする。グループA,B,Cに割り当てられる上位階層のデータ中継装置をP,Q,Rとし、各データ中継装置P,Q,Rの通信速度および処理速度の和をそれぞれp,q,rとする。このとき、a<b<cであるならば、p<q<rが成立するように各グループに上位階層のデータ中継装置を割り当てる。また、第1の条件における頻度表の偏りとは、頻度表内における全頻度(全記号の出現回数)に対する、出現頻度(出現回数)が最も多い記号の出現頻度の割合である。
データ中継装置情報記録部56は、データ中継装置情報を記録している記憶装置である。データ中継装置情報とは、個々のデータ中継装置毎に、データ中継装置の識別情報と、データ中継装置の宛先情報(例えばIPアドレスおよびポート番号等)と、データ中継装置の階層番号とを対応付けた情報である。
転送先情報生成部55は、データ中継装置情報記録部56からデータ中継装置情報を読み込む。また、転送先情報生成部55は、記号集合クラスタリング部54から記号クラスタ情報を取得する。そして、転送先情報生成部55は、データ中継装置情報と記号クラスタ情報とから、各階層のデータ中継装置における上位のデータ中継装置の宛先情報と、上位のデータ中継装置に送信する記号の集合とを対応づけた転送先情報を生成する。転送先情報生成部55は、各階層毎に生成した転送先情報を、通信部51を介して、各階層のデータ中継装置に送信する。このとき、個々のデータ中継装置に対して、そのデータ中継装置が属する階層に応じた転送先情報を送信する。なお、データ中継装置は、転送先情報を受信すると、その転送先情報を転送先情報記録部45に記憶させる。
距離パラメータ取得部52、記号分布生成部53、記号集合クラスタリング部54、および転送先情報生成部55は、例えば、プログラムに従って動作するCPUによって実現される。
次に、動作について説明する。
図8は、本発明のデータ収集システムの動作の例を示すフローチャートである。図1および図8を参照して、各データ生成装置、各データ圧縮装置、各データ中継装置、およびデータ収集装置7を備えるデータ収集システムによるデータ収集動作について説明する。
図8では、データ生成装置1’〜N1’およびデータ生成装置N1+1’〜N2’でデータが生成され、データ中継装置3,1、データ中継装置3,2、データ中継装置2,1、データ中継装置2,2およびデータ中継装置1,1がデータを転送する場合の動作を例示しているが、他のデータ生成装置や他のデータ中継装置の動作も同様である。
データ生成装置1’ないしデータ生成装置N1’およびデータ生成装置N1+1’ないしデータ生成装置N2’は、例えば、RFIDリーダを備え、RFIDタグからタグID等を読み取ることによってタグID等のデータを生成する。以下の説明では、各データ生成装置がRFIDタグからデータを読み取ることによってデータを生成するRFIDリーダを備えている場合を例にする。データ生成装置1’ないしデータ生成装置N1’は、それぞれ対応するデータ圧縮装置1〜N1に対して、生成したデータを送信し、データ生成装置N1+1’ないしデータ生成装置N2’も同様に、それぞれ対応するデータ圧縮装置N1+1〜N2に、生成したデータを送信する(ステップS101,S102)。
次に、データ圧縮装置1〜N1は、S101で受信したデータを圧縮し、圧縮済みデータ(圧縮によって得た符号にデータ変換情報およびデータ解析結果を付加したデータ)をデータ中継装置3,1に送信する(ステップS103)。同様に、データ圧縮装置N1+1〜N2は、S102で受信したデータを圧縮し、圧縮済みデータをデータ中継装置3,2に送信する(ステップS104)。
次に、データ中継装置3,1は、ステップS103でデータ圧縮装置1〜N1から受信した圧縮済みデータを再圧縮し、上位のデータ中継装置群(本例では、データ中継装置2,1およびデータ中継装置2,2)に圧縮済みデータを送信する(ステップS200A)。データ中継装置3,2は、ステップS104でデータ圧縮装置N1+1〜N2から受信した圧縮済みデータを再圧縮し、上位のデータ中継装置群に圧縮済みデータを送信する(ステップS200B)。データ中継装置2,1およびデータ中継装置2,2は、下位のデータ中継装置群から受信した圧縮済みデータを、上位のデータ中継装置群(本例では、データ中継装置1,1)に送信する(ステップS200CおよびS200D)。
次に、データ中継装置1,1は、下位のデータ中継装置群であるデータ中継装置2,1およびデータ中継装置2,2から受信した圧縮済みデータを再圧縮し、圧縮済みデータをデータ収集装置7に送信する(ステップ200E)。
データ収集装置7は、データ中継装置1,1から受信した圧縮済みデータに対して演算処理を行う(ステップS300)。例えば、圧縮済みデータに含まれる符号に変換された各記号の出現回数を求める。
次に、図2、図9を参照して、データ圧縮装置の動作について説明する。図9は、データ圧縮装置の動作の例を示すフローチャートである。ここでは、データ生成装置1’がデータを生成し、データ圧縮装置1がデータを圧縮する場合を例にして説明するが、他のデータ生成装置および他のデータ圧縮装置の動作も同様である。
まず、データ生成装置1は、RFIDリーダによって、RFIDタグからタグID等のデータを読み取ってタグID等のデータを生成し、そのデータをデータ圧縮装置1に送信する(ステップS1010)。次に、データ圧縮装置1が備える通信部31は、S1010で送信されたデータを受信する(ステップS1011)。
次に、データ圧縮装置1が備える受信データ記録部34に、S1011で通信部31が受信したデータを記憶させる(ステップS1012)。この動作は、例えば、データ圧縮装置が備えるCPUが行えばよい。また、このCPUは、受信したデータとともに受信時刻も受信データ記録部34に記憶させてもよい。
ステップS1012の後、データ圧縮部32は、記号辞書記録部33から辞書データを読み込む(ステップS1013)。次に、データ圧縮部32は、S1012で受信データ記録部34に記録されたデータを、S1013で取得した辞書データを用いて圧縮する(ステップS1014)。この圧縮処理では、データ解析処理およびデータ変換処理を行う。圧縮処理のデータ解析処理における解析対象となる記号、および圧縮処理のデータ変換処理における変換対象となる記号は、ステップS1013で読み込んだ辞書データに定められている。データ解析処理の例として、例えば、データ圧縮部32が、定められた記号毎に、受信したデータ内での出現回数を計数し、その結果に基づいて各記号のハフマン符号を導出する処理が挙げられる。この場合、データ圧縮部32は、データ変換処理において、各記号を、導出したハフマン符号に変換すればよい。ここで示したデータ解析処理およびデータ変換処理は例示であり、他の態様で圧縮を行ってもよい。
次に、図3、図10および図11を参照して、データ中継装置の動作について説明する。図10および図11は、データ中継装置の動作の例を示すフローチャートである。
データ中継装置は、まず通信部41を介して、下位のデータ中継装置群から圧縮済みデータを受信する(ステップS201)。なお、最下位の階層のデータ中継装置(図1に示す例では、データ中継装置3,1ないしデータ中継装置3,5)は、データ圧縮装置から通信部41を介して圧縮済みデータを受信する。
ステップS201の後、データ中継装置が備える受信データ記録部42に、S201で通信部41が受信した圧縮済みデータを記憶させる。この動作は、例えば、データ中継装置が備えるCPUが行えばよい。また、このPCUは、受信した圧縮済みデータとともに、その圧縮済みデータの受信時刻も受信データ記録部42に記憶させる。
次に、記号分類定部43が、転送先情報記録部45に記憶されている転送先情報を読み込む(ステップS203)。S203の後、記号分類部43は、圧縮済みデータ内のデータ変換情報を用いて圧縮されている符号を記号に変換し、変換によって得られた各記号を、S203で読み込んだ転送先情報において転送先のデータ中継装置ごとに定義された記号集合に分類する(ステップS204)。
次に、記号分類部43は、S204で分類した圧縮済みデータおよび記号をデータ再圧縮部44に送る(ステップS205)。このとき、記号分類部43は、圧縮済みデータに含まれている符号、データ変換情報およびデータ解析結果も記号にあわせて分類し、データ再圧縮部44に送る。
S205で記号分類部43から圧縮済みデータを受信した後、データ再圧縮部44は、S205で記号分類部43が送信した圧縮済みデータに対して、記号集合毎に再圧縮処理を行う(ステップS206)。
S206の再圧縮処理で圧縮済みデータが生成された後、データ再圧縮部44は、その圧縮済みデータを転送先決定部46に送信する(ステップS209)。次に、転送先決定部46は、転送先情報記録部45から転送先情報を読込み(ステップS210)、S209で取得した圧縮済みデータを送信する宛先を決定する(ステップS211)。次に、転送先決定部46は、通信部41を用いて、宛先となる装置に対して圧縮済みデータを送信する(ステップS212)。続いて、転送先決定部46は、圧縮済みデータ送信時における通信速度等を含む実行履歴情報を、記号集合クラスタリング情報取得部47が備えている実行履歴記録部471に記憶させる(ステップS213)。
次に、図5および図12を参照して、データ中継装置が備える再圧縮部44の動作について説明する。図12は、再圧縮部44の動作の例を示すフローチャートである。
まず、データ再圧縮部44内の圧縮済みデータ記録部441は、S205で記号分類部43から送られた圧縮済みデータを記録する(ステップS2041)。
データ解析結果取得部442は、圧縮済みデータ記録部441から、記号集合毎にデータ解析結果を取得する(ステップS2042)。
次に、データ変換情報取得部444は、圧縮済みデータ記録部441から、記号集合毎にデータ変換情報を取得する(ステップS2043)。
データ解析結果合成部443は、ステップS2042でデータ解析結果取得部442が取得した記号集合毎のデータ解析結果から、記号集合内の圧縮済みデータに対するデータ解析結果を作成する(ステップS2044)。このとき、総符号数を導出してもよい。
次に、データ変換情報作成部445は、S2044でデータ解析結果合成部443が作成した記号集合内の圧縮済みデータに対するデータ解析結果から、記号集合毎に新しいデータ変換情報を作成する(ステップS2045)。新しいデータ変換情報を作成するときに、総符号数も用いてもよい。
データ変換部446は、S2043でデータ変換情報取得部444が取得した記号集合毎のデータ変換情報(旧データ変換情報)を取得し、また、S2045でデータ変換情報作成部445が作成した記号集合毎のデータ変換情報(新データ変換情報)を取得する(ステップS2046)。そして、データ変換部446は、圧縮済みデータ記録部441に記録されている圧縮済みデータの符号を、旧データ変換情報に記されている符号から、新データ変換情報に記されている符号に置換する。そして、データ変換部446は、その符号と、新データ変換情報と、ステップS2044で作成された新たなデータ解析結果とを含む圧縮済みデータを生成する。データ変換部446は、その圧縮済みデータを転送先決定部46に送信する(ステップS2047)。この後、転送先決定部46は、既に説明したステップS211の動作を行う。
次に、図6、図13および図14を参照して、データ収集装置7の動作について説明する。図13および図14は、データ収集装置7の動作の例を示すフローチャートである。
まず、通信部11は階層番号が最小のデータ中継装置(すなわち最上位の階層のデータ中継装置)から圧縮済みデータを受信し(ステップS301)、受信データ記録部12に圧縮済みデータを記憶させる(ステップS302)。受信データ記録部12に圧縮済みデータを記憶させる動作は、例えば、データ収集装置7が備えるCPUによって行われる。データ解析結果取得部13は、受信データ記録部12に記録されている圧縮済みデータからデータ解析結果を取得する(ステップS304)。
符号演算部14は、基本記号記述形式記録部15から記号記述情報を取得し、派生記号形式記録部17から辞書データに記録された基本記号の組合せで表現された派生記号の記述形式を取得する(ステップS305)。
次に、符号演算部14は、S304でデータ解析結果取得部13が取得したデータ解析結果から、圧縮済みデータに含まれているデータ変換情報に記された記号の統計値(例えば、頻度表)を導出する。そして、符号演算部14は、S305で取得した記号記述情報を参照して、基本記号および派生記号の統計値(例えば、頻度表)を計算する(ステップS306)。
次に、符号演算展開部16は、派生記号記述形式記録部17から派生記号を構成する基本記号の組合せを取得し(ステップS307)、S306で符号演算部14が計算した派生記号の統計値から、派生記号を構成する基本記号の統計値を計算する。符号演算展開部16は、基本記号の統計値とS306で符号演算部14が計算した基本記号の統計値を結合して、新たに基本記号の統計値を計算する(ステップS308)。
最後に、符号演算展開部16は、演算結果記録部18に、S308で計算した基本記号の統計値を記録する(ステップS309)。
次に、図4、図15および図16を参照して、データ中継装置が備える記号集合クラスタリング情報収集部47の動作について説明する。図15および図16は、記号集合クラスタリング情報収集部47の動作の例を示すフローチャートである。
圧縮情報取得部473は、実行履歴記録部471に記録された実行履歴情報を取得し、取得した実行履歴情報から、一定時間に転送先決定部46が処理した圧縮済みデータのデータ解析結果を取得する(ステップS501)。
また、圧縮情報取得部473は、記号の頻度表を取得する(ステップS502)。データ解析結果として記号の頻度表が導出されている場合には、ステップS501で取得したデータ解析結果が、記号の頻度表となる。また、データ解析結果として、記号の頻度表以外の情報が導出されている場合、記号分類部43(図3参照。)が記号の頻度表を生成する。この場合、圧縮情報取得部473は、記号分類部43から記号の頻度表を取得する(ステップS502)。
圧縮情報取得部473は、通信部41を用いて、記号の頻度表を転送先情報更新装置5に送信する(ステップS503)。
距離パラメータ計算部472は、転送先決定部46が実行履歴記録部471に記憶させた実行履歴情報に含まれる通信速度(圧縮済みデータ送信時における通信速度)を取得する。また、距離パラメータ計算部472は、その実行履歴情報から、再圧縮処理によって生成された圧縮済みデータのサイズと、再圧縮処理に要した時間を取得する。そして、距離パラメータ計算部472は、圧縮済みデータのサイズを、再圧縮処理に要した時間で除算することによって、再圧縮処理の処理速度を計算する(ステップS601)。除算の結果が、再圧縮処理の処理速度である。
次に、距離パラメータ部は、転送先情報更新装置5に通信速度、計算した処理速度、実行履歴情報に含まれているデータ中継装置識別情報および階層番号を送信する(ステップS602)。
圧縮情報取得部473はステップS501〜S503の処理を定期的に行い、距離パラメータ計算部472はステップS601からS602の処理を定期的に行う。
次に、図7、図17を参照して、本実施の形態における転送先情報更新装置5の動作について詳細に説明する。図17は、転送先情報更新装置5の動作の例を示す説明図である。
まず、通信部51が、各データ中継装置がそれぞれ備えている圧縮情報取得部473から圧縮済みデータ内の記号の頻度表を受信する。また、通信部51は、各データ中継装置がそれぞれ備えている距離パラメータ計算部472から、それぞれのデータ中継装置における圧縮あるいは再圧縮処理の処理速度と、圧縮済みデータ送信処理の通信速度と、データ中継装置識別情報と、データ中継装置が属している階層の階層番号とを受信する(ステップS401)。
次に、記号分布生成部53は、ステップS401で通信部51が受信した記号の頻度表を複数取得し、一つの頻度表に合成する(ステップS402)。ステップS402の処理は階層毎に行う。すなわち、階層毎に複数の頻度表を1つの頻度表に合成する。ステップS402では、全データ中継装置が一定時間に受信したデータ内の記号の頻度表を生成する。また、距離パラメータ取得部52は、ステップS401で通信部51が受信した通信速度および処理速度を取得する(ステップS403)。
次に、記号集合クラスタリング部54は、記号クラスタ情報を生成する(ステップS404)。図18は、記号クラスタ情報を生成する動作の例を示すフローチャートである。図18に示すステップA1の処理を開始する前に、記号集合クラスタリング部54は、以下に示す動作を行う。
記号集合クラスタリング部54は、記号と、記号の頻度(出現回数)とを対応付けた頻度表(ステップS402で生成された頻度表)において、記号およびその記号の頻度の組み合わせを、頻度の降順にソートする。このようにソートされた頻度表を、ソート済み頻度リストと呼ぶこととする。図19は、ソート済み頻度リストの例を示す説明図である。記号集合クラスタリング部54は、記号およびその記号の頻度の組み合わせを頻度の降順にソートし、各要素(ここでは、記号およびその記号の頻度の組み合わせ)に順位を付すことによって、ソート済み頻度リストを生成する。
なお、図19や以下に示す図20〜図23は、各情報の例示である。
また、記号集合クラスタリング部54は、受信した通信速度、処理速度、階層番号およびデータ中継装置識別情報のから、同一の階層番号が割り当てられているデータ中継装置のデータ中継装置識別情報を抽出し、各階層毎にデータ中継装置識別情報を列挙した情報を生成する。さらに、記号集合クラスタリング部54は、列挙したデータ中継装置識別情報と、データ中継装置識別情報に対応する通信速度および処理速度の合計値と、転送対象記号総数とを対応付けた情報を作成し、通信速度および処理速度の合計値の降順にデータ中継装置識別情報と通信速度および処理速度の合計値と転送対象記号総数との組み合わせをソートする。記号集合クラスタリング部54は、この各組み合わせに対してソート後の順位を付加する。このように作成された情報を、ソート済みデータ中継装置リストと記す。記号集合クラスタリング部54は、同一の階層毎にデータ中継装置識別情報を抽出して、各階層毎にソート済みデータ中継装置リストを作成する。従って、記号集合クラスタリング部54は、中継装置の階層の数だけソート済みデータ中継装置リストを生成することになる。
図20は、ソート済みデータ中継装置リストの例を示す説明図である。図20では、階層番号2のソート済みデータ中継装置リストを例示している。ここで、転送対象記号総数は、データ中継装置に転送される記号の頻度の合計値である。、記号集合クラスタリング部54は、ソート済みデータ中継装置リストを生成するときに、転送対象記号総数を“0”とする。すなわち、転送対象記号総数の初期値が0としてソート済みデータ中継装置リストは生成される。
次に、記号集合クラスタリング部54は、ソート済み頻度リストから変曲点リストを導出する。変曲点リストは、例えば以下のように導出すればよい。まず、記号集合クラスタリング部54は、ソート済み頻度リストから1階微分値リストを生成し、さらに1階微分値リストから2階微分値リストを生成する。
記号集合クラスタリング部54は、ソート済み頻度リストにおける順位第n+1位の記号の頻度から順位第n位の記号の頻度を減算し、その減算結果(1階微分値と記す。)に第n位の順位を定める。記号集合クラスタリング部54は、この処理をn=1,2,・・・の順番に減算を行えなくなるまで続ける。この結果得られた情報を1階微分値リストと呼ぶ。図21は、1階微分値リストの例を示す説明図である。図21では、例えば、図19に例示する第2位の記号の頻度“400”から第1位の記号の頻度“400”を減算した結果である“0”を第1位としている。図21に示す他の1階微分値も同様に導出された値である。
さらに、記号集合クラスタリング部54は、1階微分値リストにおける順位第n+1位の1階微分値から順位第n位の1階微分値を減算し、その減算結果(2階微分値と記す。)に第n位の順位を定める。記号集合クラスタリング部54は、この処理をn=1,2,・・・の順番に減算を行えなくなるまで続ける。この結果得られた情報を2階微分値リストと呼ぶ。図22は、2階微分値リストの例を示す説明図である。図22では、例えば、図21に例示する第2位の1階微分値“−300”から第1位の1階微分値“0”を減算した結果である“−300”を第1位としている。図22に示す他の2階微分値も同様に導出された値である。
さらに、記号集合クラスタリング部54は、2階微分値リストにおいて2階微分値の符号が1つ順位が上の2階微分値の符号から変化している場合、符号が変化している2階微分値の順位を抽出する。記号集合クラスタリング部54は、2階微分値リストにおける順位の順番に、符号が変化している2階微分値の順位を抽出していき、抽出された順位に対して抽出された順番に順位を定める。例えば、図22に例示する2階微分値リストでは、「第2位」の2階微分値の符号は正であり、第1位の2階微分値の符号(負)から変化している。従って、その順位「第2位」を変曲点として抽出する。また、2階微分値リストにおける第1位から変曲点として抽出されるかを順番に判定していく場合、上記の「第2位」は、一番目に抽出された変曲点であるので、その変曲点「第2位」に順位1位を定める。変曲点抽出を最後まで行ったときに得られた変曲点およびその順位の情報を変曲点リストと記す。図23は、上述のように導出された変曲点リストの一例を示す説明図である。
また、記号集合クラスタリング部54は、記号クラスタ情報のうち、階層番号とデータ中継装置識別情報とを対応付けた部分を先に生成する。記号クラスタ情報は、階層番号と、記号集合と、その階層番号よりも1つ上位のデータ中継装置のデータ中継装置識別情報とを対応付けることで生成されるが、記号集合クラスタリング部54は、記号集合の初期値を空集合とし、階層番号とデータ中継装置識別情報とを対応付けた部分を先に生成する。
次に、記号集合クラスタリング部54は、図18に示すステップA1〜A12の処理を実行する。以下のステップA1〜A12の処理は、各階層毎に生成したソート済み頻度リスト、ソート済みデータ中継装置リスト、および変曲点リストを用いて、各階層それぞれについて行う。
記号集合クラスタリング部54は、ソート済み頻度リストから最初の(第1位の)要素を取得する(ステップA1)。ソート済み頻度リストにおける要素とは、個々の順位毎の「順位」と「記号」と「頻度」の組み合わせ(図19参照。)である。ステップA1では、「第1位」という順位と、その順位に対応する「記号」および「頻度」との組み合わせを取得する。ステップA1や後述のステップA12にてソート済み頻度リストから取得される要素(「順位」と「記号」と「頻度」の組み合わせ)を処理対象頻度要素と記す。例えば、図19に例示するソート済み頻度リストが作成されている場合、ステップA1では、順位「第1位」、記号「1111」、および頻度「400」という組み合わせを処理対象頻度要素として取得する。
続いて、記号集合クラスタリング部54は、ソート済みデータ中継装置リストから最初の(第1位の)要素を取得する(ステップA2)。ソート済みデータ中継装置リストにおける要素とは、個々の順位毎の「順位」と「データ中継装置」と「通信速度と処理速度の合計値」と「転送対象記号総数」の組み合わせ(図20参照。)である。ステップA2では、「第1位」という順位と、その順位に対応する「データ中継装置」、「通信速度と処理速度の合計値」および「転送対象記号総数」の組み合わせを取得する。ステップA2や後述のステップA5にてソート済みデータ中継装置リストから取得される要素(「順位」と「データ中継装置」と「通信速度と処理速度の合計値」と「転送対象記号総数」の組み合わせ)を処理対象データ中継装置要素と記す。例えば、図20に例示するソート済みデータ中継装置リストが作成されている場合、ステップA2では、順位「第1位」、データ中継装置識別情報「2,1」、通信速度と処理速度の合計値「210」、転送対象記号総数「0」を処理対象データ中継装置要素として取得する。
ステップA2の後、記号集合クラスタリング部54は、処理対象頻度要素のソート済み頻度リストにおける順位と、変曲点リスト内の要素(変曲点)とが一致するか否かを判定する(ステップA3)。例えば、順位「第1位」、記号「1111」、および頻度「400」という組み合わせを処理対象頻度要素として取得していて、図23に例示する変曲点リストが作成されている場合、処理対象頻度要素の順位(第1位)と、変曲点リスト内の変曲点(図23の例では「2」)とが一致しているか否かを判定する。本例の場合、一致していないと判定する。
ステップA3で処理対象頻度要素のソート済み頻度リストにおける順位と変曲点リスト内の要素(変曲点)とが一致した場合(ステップA3のyes)、記号集合クラスタリング部54は、変曲点リストの中から処理対象頻度要素の順位と一致した要素(変曲点)を削除する(ステップA4)。ステップA4に続いて、記号集合クラスタリング部54は、ソート済みデータ中継装置リストから、最近に取得した処理対象データ中継装置要素の順位に1加算した順位(最近に取得した処理対象データ中継装置要素よりも1つだけ低い順位)の要素を処理対象データ中継装置要素として取得する(ステップA5)。ステップA5で取得される処理対象データ中継装置要素も、「順位」と「データ中継装置」と「通信速度と処理速度の合計値」と「転送対象記号総数」の組み合わせである。ステップA5の後、ステップA3に移行し、ステップA3以降の処理を繰り返す。
ステップA3で処理対象頻度要素のソート済み頻度リストにおける順位と変曲点リスト内の要素(変曲点)とが一致しなかった場合(ステップA3のno)、記号集合クラスタリング部54は、ソート済み頻度リストの要素数と、ソート済みデータ中継装置リストの要素数とを比較し、ソート済み頻度リストの要素数がソート済みデータ中継装置リストの要素数以上であるか否かを判定する(ステップA6)。例えば、図19に例示するソート済み頻度リストと、図20に例示するソート済みデータ中継装置リストが作成されていたとする。この場合、図19に例示するソート済み頻度リストの要素数は「5」であり、図20に例示するソート済みデータ中継装置リストの要素数は「3」である。記号集合クラスタリング部54は、この2つの要素数を比較し、ソート済み頻度リストの要素数がソート済みデータ中継装置リストの要素数以上であるか否かを判定する。上述のように例示した場合では、ソート済み頻度リストの要素数がソート済みデータ中継装置リストの要素数以上であると判定されることになる。
ステップA6でソート済み頻度リストの要素数がソート済みデータ中継装置リストの要素数未満であった場合(ステップA6のno)、記号集合クラスタリング部54は、処理対象データ中継装置要素内の頻度の合計値(すなわち転送対象記号総数)を、ソート済みデータ中継装置リストの全要素内の頻度合計値の和(すなわち転送対象記号総数の和)で除算し、その除算結果の値(この値を割り当て率と記す。)を求める(ステップA7)。
ステップA7の後、記号集合クラスタリング部54は、処理対象データ中継装置要素内の「通信速度と処理速度の合計値」を、ソート済みデータ中継装置リストの全要素内の「通信速度と処理速度の合計値」の和で除算し、その除算結果の値(この値を速度比率と記す。)を求める(ステップA8)。
ステップA8の後、記号集合クラスタリング部54は、割り当て率が速度比率未満であるか否かを判定する(ステップA9)。
ステップA9において割り当て率が速度比率未満であった場合(ステップA9のyes)、記号集合クラスタリング部54は、記号クラスタ情報において処理対象データ中継装置要素内のデータ中継装置識別情報に対応する「記号集合」に、処理対象頻度要素に含まれる「記号」を追加する。さらに、記号集合クラスタリング部54は、処理対象データ中継装置要素内の転送対象記号総数に、処理対象頻度要素に含まれる頻度の値を加算する(ステップA10)。
また、ステップA9において割り当て率が速度比率以上であった場合(ステップA9のno)、ステップA5に移行し、ステップA5以降の処理を繰り返す。
また、ステップA10の後、記号集合クラスタリング部54は、ソート済み頻度リストの要素数を調べ、処理対象頻度要素の順位がソート済み頻度リストの最後の順位であるか否かを判定する(ステップA11)。処理対象頻度要素の順位がソート済み頻度リストの最後の順位(すなわち最下位の順位)であったならば(ステップA11のyes)、処理を終了する。
処理対象頻度要素の順位がソート済み頻度リストの最後の順位でなかった場合(ステップA11のno)、最近に取得した処理対象頻度要素の順位に1加算した順位(最近に取得した処理対象頻度要素よりも1つだけ低い順位)の要素を取得し、その要素を処理対象頻度要素とする(ステップA12)。ステップA12の後、ステップA5に移行し、ステップA5以降の処理を繰り返す。
図18に示すフローチャートの処理を各階層毎に行うことで、記号クラスタ情報が得られる。
ステップA1〜A12の動作を行うことにより、ソート済み頻度リストにおいて変曲点で区切られた複数の記号がデータ中継装置に均等に転送される。この結果、データ中継装置に転送される符号に対応した記号の頻度表における偏りは、ソート済み頻度リストにおける順位の増加に伴う頻度の増減傾向を維持しつつ、総頻度数は減少しているので、ソート済み頻度リストにおける偏りに比べて大きくなる。また、ステップA1〜A12の動作を行うことにより、データ中継装置に転送される符号の総数の、データ中継装置間における大小関係は、データ中継装置の通信速度と処理速度の合計値の大小関係と一致するように、記号クラスタ情報が生成されるので、同一の階層番号におけるデータ中継装置の処理負荷の偏りを軽減することができる。
以上の動作によって、既に説明した第1の条件および第2の条件を満足する記号クラスタ情報が生成され、ステップS404の記号クラスタ情報生成が完了する。
また、上述のステップA6の動作を省略することで、データ中継装置に転送される記号の頻度の比が、データ中継装置の通信速度と処理速度の合計値の比に近くなり、圧縮率よりも処理速度を優先することができる。
ステップS404の後、記号集合クラスタリング部54は記号クラスタ情報を転送先情報生成部55に送り、転送先情報生成部55はその記号クラスタ情報を取得する(ステップS405)。また、転送先情報生成部55は、データ中継装置情報記録部56からデータ中継装置情報を読み込む(ステップS406)。次に、転送先情報生成部55は、ステップS405で取得した記号クラスタ情報内のデータ中継装置識別情報を、ステップS406で取得したデータ中継装置情報内で同じデータ中継装置識別情報に対応付けられている宛先情報に変換し、階層番号毎に分割することで、各階層のデータ中継装置における上位のデータ中継装置の宛先情報と、上位のデータ中継装置に送信する記号の集合とを対応づけた転送先情報を生成する(ステップS407)。
最後に、転送先情報生成部55は、通信部51を用いて各階層を構成する複数のデータ中継装置群に、上位のデータ中継装置群に関する転送先情報を送信する(ステップS408)。次に、S408によって送信された転送先情報を、各データ中継装置の通信部41が受信し、例えば、各データ中継装置のCPUがその転送先情報を転送先情報記録部45に記憶させる。
以上の説明では、データ圧縮装置1〜N5が、データ生成装置1〜N5と別の装置である場合を例にして説明したが、各データ生成装置1’〜N5’がそれぞれデータ圧縮装置1〜N5と同様の機能を備えた構成であってもよい。
次に、本発明の効果について説明する。
本発明では、データ圧縮装置1〜N5が、階層番号が最も大きいデータ中継装置3,1ないしデータ中継装置3,5とは独立しており、また、データ生成装置1’〜N5’毎に一つのデータ圧縮装置が使われているので、データ生成装置が大量にある場合でも、データ生成装置1’〜N5’が生成したデータの圧縮処理時間が増加しない。
また、本発明では、データ再圧縮部44は、圧縮済みデータに含まれる符号を再圧縮するときに、符号を記号に変換してその記号を再圧縮するのではなく、圧縮済みデータに含まれるデータ解析結果に基づいて符号を別の符号に変換することで再圧縮を行う。また、再圧縮後の符号と、元の記号との対応を示す新たなデータ変換情報を作成する。よって、収集するデータを再圧縮する処理を高速化することができる。
また、本発明では、圧縮済みデータを上位のデータ中継装置に転送する際に、符号から変換される記号に応じたデータ中継装置に転送する。このとき、転送先情報更新装置が記号クラスタ情報に基づいて導出した転送先情報を用いて転送先となるデータ中継装置を決定する。よって、データ収集装置7がデータを収集するときの通信量を少なく抑え、データ収集速度を速めることができる。
すなわち、記号集合クラスタリング部54(図7参照。)が、データ中継装置に転送されるデータ量を、データ中継装置の通信速度および処理速度に応じて調整するように記号クラスタ情報を生成する。このとき、データ中継装置に転送されるデータ内の特定のビット列の出現頻度が多くなるようにする。そして、上述のように高速化して圧縮したデータを、転送先情報更新装置5で生成された転送先情報に基づいて、上位のデータ中継装置に送信する。従って、複数の機器からデータを収集する際における通信量を低減でき、また、収集される圧縮データをさらに再圧縮する際の再圧縮処理の高速化も実現できる。
データを収集するデータ収集装置7は、収集した圧縮済みデータを圧縮する際に、圧縮処理によって得られたデータ解析結果を取得するデータ解析結果取得部13と、圧縮済みデータにおける同一のビット列の異なる記述形式を記録した基本記号記述形式記録部15と、圧縮済みデータにおける同一のビット列によって構成されている派生記号と、派生記号を構成している複数の記号の組を記録した派生記号記述形式記録部17を有する。このような構成を有するデータ収集装置7が、収集した圧縮済みデータを一旦伸長してから演算処理を行うのではなく、データ圧縮時に生成されたデータ解析結果を用いてビット列に対する統計演算等の処理を行うので、データ収集装置が行う統計値(例えば頻度表)導出の演算速度を速めることができる。
上記の実施の形態の変形例を以下に説明する。
最下位の階層のデータ中継装置(図1に示す例では、データ中継装置3,1ないしデータ中継装置3,5)が、データ圧縮装置1〜N5を備えた構成であってもよい。そのような構成によれば、データ生成装置の台数が増えた場合でも、その増加にあわせて圧縮処理を行うデータ圧縮装置を増やす必要がないので、データ生成装置の台数増加に伴うコストの上昇を抑えることができる。
また、データ収集システムは、複数の転送先情報更新装置5備えた構成であってもよい。例えば、データ中継装置の各階層毎に、転送先情報更新装置5を設けてもよい。そのような構成によれば、転送先情報更新装置5の処理負荷を分散させることができる。
以下、本発明の実施例を図面を参照して説明する。
本実施例では、データ収集システムは、データ生成装置1’〜N5’として、RFIDリーダを備え、データ圧縮装置1〜N5、データ収集装置7、各データ中継装置(データ中継装置1,1ないしデータ中継装置K,J)、および転送先情報更新装置5としてパーソナルコンピュータを備えている。データ生成装置であるRFIDリーダは、シリアルケーブル等でデータ圧縮装置1〜N5と接続されている。データ圧縮装置1〜N5、各データ中継装置(データ中継装置1,1ないしデータ中継装置K,J)、転送先情報更新装置5、およびデータ収集装置7は、EthernetによるLANに接続しており、それぞれTCP/IPによる通信を行う。Ethernetは登録商標である。
データ圧縮装置であるパーソナルコンピュータは、通信部31として機能するEthernetカードと、受信データ記録部34、記号辞書記録部33として機能する磁気ディスク装置と、データ圧縮部32として機能する中央演算装置(CPU)を有している。
データ中継装置であるパーソナルコンピュータは、通信部41として機能するEthernetカードと、受信データ記録部42、転送先情報記録部45、圧縮済みデータ記録部441、実行履歴記録部471として機能する磁気ディスク装置と、記号分類部43、転送先決定部46、データ解析結果取得部442、データ解析結果合成部443、データ変換情報取得部444、データ変換情報作成部445、データ変換部446、距離パラメータ計算部472、圧縮情報取得部473として機能する中央演算装置を有している。
転送先情報更新装置5であるパーソナルコンピュータは、通信部51として機能するEthernetカードと、データ中継装置情報記録部56として機能する磁気ディスク装置と、距離パラメータ取得部52、記号分布生成部53、記号集合クラスタリング部54、転送先情報生成部55として機能する中央演算装置を有している。
データ収集装置7であるパーソナルコンピュータは、通信部11として機能するEthernetカードと、受信データ記録部12、基本記号記述形式記録部15、派生記号記述形式記録部17、演算結果記録部18として機能する磁気ディスク装置と、データ解析結果取得部13、符号演算部14、符号演算展開部16として機能する中央演算装置を有している。
以下、図1に示すデータ中継装置3,1が、下位の装置(ここではデータ圧縮装置1,2)から圧縮済みデータを受信する場合を例にして説明する。
図24は、各データ生成装置によって生成されるデータの例を示す。本実施例では、各データ生成装置1’〜N5’が生成するデータは、図24に示すように0と1からなるビット列で構成されている。図24に示した例では、「0000」、「1111」、「0110」という三つの記号が含まれている。各データ圧縮装置は、図24に例示するようなデータをデータ生成装置から取得した後、圧縮処理を行う。図25は、データ圧縮装置の記号辞書記録部33として機能する磁気記憶装置が記憶する辞書データの例を示す説明図である。図25に示す例では、「0000」、「1111」、「0110」、「1001」、「00001111」の5つのビット列を定めている。また、本実施例では、データ圧縮装置は、圧縮処理におけるデータ解析処理として記号の頻度表の導出を行い、データ変換処理としてハフマン符号化処理を行う場合を例にする。図25に例示する辞書データでは、上記の5つのビット列(記号)について、頻度(出現回数)を求め、またハフマン符号を導出して符号への変換を行うことを定めている。
図26は、本実施例におけるデータ解析結果およびデータ変換情報の例を示す。データ圧縮部32(データ圧縮装置の中央演算装置)は、生成装置が生成したデータ内における、辞書データ内で定められた各記号の出現回数(出現頻度)を計数し、各記号毎の出現回数を頻度表として求める。図26(b)は、この結果得られる頻度表の例である。
次に、データ圧縮部32は、その頻度表が示す各記号の出現回数に基づいて、ハフマン符号化処理を行い、各記号のハフマン符号を算出する。そして、各記号毎に、記号とハフマン符号を対応付けた情報を、データ変換情報として生成する。そして、データ圧縮部32は、データ生成装置によって生成されたビット列に含まれる記号を、データ変換情報にもとづいて、記号に対応する符号(ここではハフマン符号)に置き換え、図26(a)に例示する符号データを導出する。図26(a)に示す符号データの例では、符号数3までが示されている。このように記号を符号に置き換えることで、データ圧縮部32は圧縮を行う。
データ圧縮部32は、図26に例示するようなデータ解析結果、データ変換情報、符号データを生成する。データ圧縮部32は、符号データとデータ解析結果とデータ変換情報とを含む圧縮済みデータを生成し、通信部31を介してデータ中継装置に送信する。なお、データ圧縮部32は、圧縮済みデータに総符号数の情報を含めてもよい。図27は、複数のデータ圧縮装置によって生成されたデータ解析結果およびデータ変換情報の例を示す説明図である。データ圧縮装置1が図27(a)に例示するデータ解析結果およびデータ変換情報を生成したとする。以下、このデータ解析結果およびデータ変換情報をそれぞれデータ解析結果A1、データ変換情報A1と記す。また、データ圧縮装置2が図27(b)に例示するデータ解析結果およびデータ変換情報を生成したとする。以下、このデータ解析結果およびデータ変換情報をそれぞれデータ解析結果A2、データ変換情報A2と記す。
次に、本実施例におけるデータ中継装置であるパーソナルコンピュータは、圧縮済みデータとして、データ圧縮装置1から図27(a)に示すようなデータ解析結果A1、データ変換情報A1、符号データを受信し、同様にデータ圧縮装置2から図27(b)に示すようなデータ解析結果A2、データ変換情報A2、符号データを受信したとする。
本実施例における各データ中継装置であるパーソナルコンピュータ内の磁気ディスク装置(転送先情報記録部45)には、転送先情報として図28に示す転送先情報(階層番号3)が記録されているとする。ただし、本実施例では、データ中継装置の階層は3階層であり、階層番号1のデータ中継装置は、図28(a)に例示する転送先情報を記憶しているものとする。同様に、階層番号2,3のデータ中継装置は、それぞれ、図28(b)、図28(c)に例示する転送先情報を記憶しているものとする。ここでは、図28(c)に例示する転送先情報を記憶しているデータ中継装置3,1に着目して説明する。
図28に示した転送先情報(階層番号1)、転送先情報(階層番号2)、および転送先情報(階層番号3)において、記号集合の欄には、記号集合に該当する各記号を示している。また、データ中継装置宛先情報には、記号集合の各記号の圧縮済みデータを転送する宛先として、宛先IPアドレスと宛先ポート番号が「:」という文字によって結合された情報を示している。
本実施例におけるデータ中継装置(ここでは階層番号3の場合を例にする。)であるパーソナルコンピュータ内の磁気記憶装置(受信データ記録部42)は、複数のデータ圧縮装置から受信した圧縮済みデータを記憶する。
次に、本実施例におけるデータ中継装置であるパーソナルコンピュータ内の中央演算装置は、その磁気記憶装置に記録された圧縮済みデータ内のデータ変換情報を用いて、圧縮済みデータ内の符号を記号に変換する。次に、階層番号3のデータ中継装置の中央演算装置は、図28(C)に示す転送先情報を参照し、「0000」、「1111」、「00001111」の記号を記号集合Aとして、「0110」を記号集合Bとして、「1001」をまた記号集合Cとして抽出する。
この抽出動作では、例えばデータ内のビット列に対して、記号「0110」と「1001」の判定処理のみを行い、「0110」および「1001」と判定されない記号を記号集合Aに分類することで、記号を一つずつ分類する場合に比べて高速に行える。すなわち、記号集合に属する記号の数が少ない記号集合から順番に、その記号集合に属する記号(符号から変換された記号)を特定していくことで、分類を高速に行える。
記号集合A、B、Cに関して、データ圧縮装置1から受信した圧縮済みデータ内の符号データとデータ圧縮装置2から受信した圧縮済みデータ内の符号データとが別々に、圧縮済みデータ記録部441として動作する磁気記憶装置内に保存されている。例えば、データ圧縮装置1から受信した圧縮済みデータ内における記号集合Aに対応する符号データと、データ圧縮装置2から受信した圧縮済みデータ内における記号集合Aに対応する符号データとは別々に保存される。他の記号集合についても同様である。
次に、データ中継装置の中央演算装置は、記号集合ごとに再圧縮処理を実施する。以下、記号集合Aの場合を例にして再圧縮処理の詳細を説明する。
図29は、複数のデータ解析結果から1つのデータ解析結果を生成する例を示す説明図である。データ中継装置の中央演算装置は、図29に示すように複数の圧縮済みデータから複数のデータ解析結果を取得し、一つのデータ解析結果を生成する。図29では、二つの圧縮済みデータ内のデータ解析結果から、一つのデータ解析結果を生成する場合を示している。データ中継装置の中央演算装置は、2つのデータ解析結果A1,A2に含まれる記号集合Aの各記号毎に、その記号の頻度(出現回数)の和を算出する。具体的には、データ解析結果A1,A2に含まれる“0000”の頻度の和を求め、また、同様に、記号集合Aに属する他の記号“1111”、“00001111”についてもそれぞれ同様に頻度の和を求める。このように、図29に示す1つのデータ解析結果A3を導出する。
そして、データ中継装置の中央演算装置は、データ変換情報作成部445に相当する動作として、図29に示したデータ解析結果A3から、各記号(記号集合Aの各記号)のハフマン符号化を行い、各記号とハフマン符号とを対応付けたデータ変換情報を生成する。データ解析結果A3からハフマン符号化を行って導出したデータ変換情報A3の例を図30に示す。次に、その中央演算装置は、データ変換部446に相当する動作として、データ変換情報A1およびデータ変換情報A3を用いて、1階層下の装置から受信した圧縮済みデータ内の符号データを、新たなデータ変換情報に示される他の符号データに変換する。本例では、データ圧縮装置1から受信した圧縮済みデータ内の符号データであって記号集合Aの記号「0000」に対応する符号「0110」(図27に示すデータ変換情報A1を参照。)を、新たなデータ変換情報A3において「0000」に対応する符号「00」に変換する。同様に、記号集合Aの記号「1111」に対応する「1」(図27に示すデータ変換情報A1を参照。)を、新たなデータ変換情報A3において「1111」に対応する符号「1」に変換する。同様に、記号集合Aの記号「00001111」に対応する「0111」(図27に示すデータ変換情報A1を参照。)を、新たなデータ変換情報A3において「00001111」に対応する符号「01」に変換する。
同様に、データ中継装置の中央演算装置は、データ変換部446に相当する動作として、データ変換情報A2およびデータ変換情報A3を用いて、データ圧縮装置2から受信した圧縮済みデータ内の符号データを、新たなデータ変換情報に示される他の符号データに変換する。本例では、データ圧縮装置2から受信した圧縮済みデータ内の符号データであって記号集合Aの記号「0000」に対応する符号「1010」(図27に示すデータ変換情報A2を参照。)を、新たなデータ変換情報A3において「0000」に対応する符号「00」に変換する。同様に、記号集合Aの記号「1111」に対応する「11」(図27に示すデータ変換情報A2を参照。)を、新たなデータ変換情報A3において「1111」に対応する符号「1」に変換する。同様に、記号集合Aの記号「00001111」に対応する「1011」(図27に示すデータ変換情報A2を参照。)を、新たなデータ変換情報A3において「00001111」に対応する符号「01」に変換する。
データ中継装置の中央演算装置は、記号集合B,Cに対してもそれぞれ同様の再圧縮処理を行う。図31は、記号集合B,Cに関する再圧縮の例を示す説明図である。データ中継装置の中央演算装置は、データ解析結果A3を求める場合と同様に、記号集合Bに属する記号の頻度の和を計算することによって、データ解析結果A1,A3から1つのデータ解析結果B3を導出し、また、記号集合Cに属する記号の頻度の和を計算することによって、データ解析結果A1,A3から1つのデータ解析結果C3を導出する(図31参照。)。さらに、データ変換情報A3を求める場合と同様に、データ解析結果B3,C3からそれぞれデータ変換情報B3,C3を導出する(図31参照。)。
次に、データ中継装置の中央演算装置は、記号集合Aに対するデータ変換部446の動作と同様に、データ変換部446に相当する動作として、データ変換情報A1,A2およびデータ変換情報B3を用いて、1階層下の装置から受信した圧縮済みデータ内の符号データを、新たなデータ変換情報に示される他の符号データに変換する。本例では、データ圧縮装置1から受信した圧縮済みデータ内の符号データであって記号集合Bの記号「0110」に対応する符号「010」を、新たなデータ変換情報B3において「0110」に対応する符号「0」に変換する(図27に示すデータ変換情報A1、図31に示すデータ変換情報B3参照。)。同様に、データ圧縮装置2から受信した圧縮済みデータ内の符号データであって記号集合Bの記号「0110」に対応する符号「100」を、新たなデータ変換情報B3において「1001」に対応する符号「0」に変換する(図27に示すデータ変換情報A2、図31に示すデータ変換情報B3参照。)。
また、データ中継装置の中央演算装置は、記号集合A,Bに対するデータ変換部446の動作と同様に、データ変換部446に相当する動作として、データ変換情報A1,A2およびデータ変換情報C3を用いて、1階層下の装置から受信した圧縮済みデータ内の符号データを、新たなデータ変換情報に示される他の符号データに変換する。本例では、データ圧縮装置1から受信した圧縮済みデータ内の符号データであって記号集合Cの記号「1001」に対応する記号「00」を、新たなデータ変換情報C3において「1001」に対応する符号「1」に変換する。また、データ圧縮装置2から受信した圧縮済みデータ内の符号データであって記号集合C「1001」に対応する符号「0」を、新たなデータ変換情報C3において「1001」に対応する符号「1」に変換する。
次に、データ中継装置の中央演算装置は、転送先決定部46の動作として、図28(c)に示した転送先情報(階層番号3)を参照し、データ変換部446に相当する動作によって記号集合Aに対する再圧縮処理によって生成された圧縮済みデータを、IPアドレスが192.168.2.1で、ポート番号が5060であるデータ中継装置へ送信する。同様に、データ中継装置の中央演算装置は、転送先決定部46の動作として、図28(c)に示した転送先情報(階層番号3)を参照し、データ変換部446に相当する動作によって記号集合Bに対する再圧縮処理によって生成された圧縮済みデータを、IPアドレスが192.168.2.2で、ポート番号が5060であるデータ中継装置へ送信する。同様に、記号集合Cに対する再圧縮処理によって生成された圧縮済みデータを、IPアドレスが192.168.2.3で、ポート番号が5060であるデータ中継装置へ送信する。
圧縮済みデータ内における符号データのサイズは、符号データを構成する符号の長さの総和によって計算される。上述の再圧縮処理によって、記号集合Aでは圧縮済みデータ内の符号データのサイズは、470から255に、記号集合Bでは90から40に、記号集合Cでは240から160となり、再圧縮処理をせずに圧縮済みデータを通信した場合に比べて、通信量が削減されている。
また、上記の再圧縮処理は、圧縮済みデータ記録部441に記録された圧縮済みデータを伸長した後に、記号分類部43が動作を行い、伸長後のデータ全体に対するデータ解析処理およびデータ変換処理を行う。このとき、伸長後のデータよりもサイズの小さなデータ解析結果、データ変換情報から、圧縮済みデータを圧縮する前のデータに含まれる記号のデータ解析結果およびデータ変換情報を生成する。従って、圧縮済みデータを圧縮する前のデータに含まれる記号のデータ解析結果およびデータ変換情報を生成する場合に比べて、通信量を削減するための処理量も削減される。
本実施例における全てのデータ中継装置において、上記のデータ中継装置3,1と同様な処理が行われ、最後にデータ中継装置1,1および1,2が図28に示した転送先情報(階層番号1)を参照し、記号集合毎に圧縮した圧縮済みデータを、データ収集装置7であるパーソナルコンピュータに送信する。本実施例では、データ中継装置1,1およびデータ中継装置1,2は、データ収集装置7であるパーソナルコンピュータと、IPアドレス「192.168.0.1」、ポート番号「5060」を用いてTCP/IP通信ができるとする。
次に、本実施例におけるデータ収集装置7であるパーソナルコンピュータは、通信部11であるEthernet装置を用いて、データ中継装置1,1および1,2によって送信された圧縮済みデータを受信すると、受信データ記録部12として機能する磁気記憶装置にその圧縮済みデータを記憶させる。
次に、データ収集装置7であるパーソナルコンピュータ内の中央演算装置は、データ解析結果取得部13に相当する動作として、データ解析結果を、磁気記憶装置に記録された圧縮済みデータから、記号集合毎に取得する。
データ解析結果の例を、図32に示す。図32に示す例では、記号集合Aの圧縮済みデータからデータ解析結果A4が得られたことを表している(図32(a)参照)。同様に、記号集合Bの圧縮済みデータからデータ解析結果B4が得られたことを表している(図32(b)参照)。また、記号集合Cの圧縮済みデータからデータ解析結果C4が得られたことを表している(図32(c)参照)。
本実施例では、データ収集装置7であるパーソナルコンピュータ内の、基本記号記述形式記録部15として動作する磁気記憶装置内には、図33に示すような記号記述情報が記録されているものとする。図33に示した記号記述情報の例では、記号「0110」が別の記号「1001」と記されていることを表している。
また、本実施例では、データ収集装置7であるパーソナルコンピュータ内の、派生記号記述形式記録部17として動作する磁気記憶装置内には、図34に示すような派生記号構成情報が記録されている。図34に示した派生記号構成情報の例では、記号「00001111」が、「0000」および「1111」という二つの記号から構成されていることを表している。
次に、データ収集装置7の中央演算装置は、符号演算部14に相当する動作として、図32に示すデータ解析結果A4、B4、C4から、圧縮済みデータの符号データ内の符号に変換された記号に関する統計値を計算する。本実施例では、統計値としてヒストグラム(頻度表)を生成する場合について説明する。
データ収集装置7の中央演算装置は、まず、圧縮済みデータ内に含まれている記号集合A,B,C内の記号総数を、図32に示すデータ解析結果A4,B4,C4から取得する。例えば、記号「0000」の総数は、データ解析結果Aが示す記号「0000」の頻度「200」であり、データ収集装置7の中央演算装置はこの値を取得する。
同様の処理によって、他の記号の総数についてもそれぞれ取得し、データ収集装置7の中央演算装置は、収集したデータ内に含まれる記号の頻度表を生成する。図35(a)に例示する記号の頻度表1は、このように生成したヒストグラム(頻度表)の例を表している。なお、図35は、データ収集装置7で生成される頻度表の例を示す。
次に、データ収集装置7の中央演算装置は、図33に示した記号記述情報を用いて、記号「1001」の総数を記号「0110」の記号の出現回数とみなして、記号「0110」の総数に加算する。図35(b)に示す記号の頻度表2は、このような記号記述情報に基づく加算により得られた頻度表の例を表している。
次に、データ収集装置7の中央演算装置は、符号演算展開部16に相当する動作として、図34に例示する派生記号構成情報を参照し、記号「00001111」の総数を、記号「0000」および「1111」の出現回数とみなし、それぞれ記号「0000」の総数および記号「1111」の総数に加算する。すなわち、派生記号の出現回数を、派生記号の記述形式に含まれる各記号の出現回数とみなして、派生記号の記述形式に含まれる記号の個数に加算する。図35(c)に示す記号の頻度表3は、このような派生記号構成情報に基づく加算により得られた頻度表の例を表している。データ収集装置7の中央演算装置は、最終的に図36に例示するヒストグラムを生成し、演算結果記録部18として機能する磁気記憶装置に記録する。
以上の動作により、本実施例におけるデータ収集装置7であるパーソナルコンピュータは、データ生成装置であるRFIDリーダから生成されたデータ内に含まれる記号のヒストグラムである図35(c)に例示するヒストグラム3(記号の頻度表3)を得る。この動作は、伸長後のデータよりもサイズの小さなデータ解析結果を用いて四則演算を行うデータ解析結果取得部13、符号演算部14および符号演算展開部16によって行われる。従って、収集した圧縮済みデータを、伸長後に記号の総数を集計して記号の頻度表3を生成する場合に比べて、中央演算装置の処理量を削減することができる。
次に、本実施例におけるデータ中継装置であるパーソナルコンピュータ内の中央演算装置による記号集合クラスタリング情報取得部47の動作および、転送先情報更新装置5であるパーソナルコンピュータの動作について、図37、図38を参照して説明する。
データ中継装置として動作するパーソナルコンピュータ内の、実行履歴記録部471として動作する磁気記憶装置には、転送先決定部46が転送した圧縮済みデータの通信速度と、データ再圧縮部44が再圧縮処理に要した時間と再圧縮処理によって生成された圧縮済みデータのサイズ、圧縮済みデータのデータ解析結果、データ変換情報から構成される、実行履歴情報が記録されている。
図37は、実行履歴情報の例を示す説明図である。図37に示した例では、図37に示した実行履歴情報を記録した磁気記憶装置を備えているデータ中継装置の中央演算装置が、サイズが8,000Kb(キロビット)の圧縮済みデータを生成した際に、再圧縮処理時間に50ms(ミリ秒)かかり、データ解析結果131を生成し、上位のデータ中継装置に送信した際の通信速度が50Mbpsであったことを表している。また、そのデータ中継装置のデータ中継装置識別情報が「3,1」であり、階層番号が「3」であることを表している。
本実施例におけるデータ中継装置であるパーソナルコンピュータ内の中央演算装置は、距離パラメータ計算部472の動作として、実行履歴情報から通信速度「50(Mbps)」を取得する。また、実行履歴情報から圧縮済みデータサイズ「8,000(Kbit)」および再圧縮処理時間「50(ms)」も取得し、そのデータサイズ「8,000(Kbit)」を再圧縮処理時間「50(ms)」で除算した値である「160(Mbps)」を処理速度として算出する。そして、その中央演算装置を備えたパーソナルコンピュータ(データ中継装置)内のEthernet装置を用いて、本実施例における転送先情報更新装置5であるパーソナルコンピュータに上記の通信速度「50(Mbps)」および処理速度「160(Mbps)」と、データ中継装置識別情報「3,1」および階層番号「3」を送信する。
次に、本実施例におけるデータ中継装置であるパーソナルコンピュータ内の中央演算装置は、圧縮情報取得部473の動作として、実行履歴記録部471に記録されたデータ解析結果131(図37参照)を取得する。また、データ中継装置の中央演算装置は、データ解析結果として頻度表以外の情報を生成する場合には、図35(a)に例示する記号の頻度表1を生成するのと同様な方法で、図38に示すような記号の頻度表4を生成する。そして、その中央演算装置を備えたパーソナルコンピュータ(データ中継装置)内のEthernet装置を用いて、本実施例における転送先情報更新装置5であるパーソナルコンピュータに、その記号の頻度表4(図38参照)を送信する。本実施例では、データ解析結果として頻度表を生成するので、図37に示した実行履歴情報の例ではデータ解析結果131は、そのまま図38に示す頻度表4として用いることができる。
次に、本実施例における転送先情報更新装置5であるパーソナルコンピュータ内の中央演算装置は、距離パラメータ取得部52の動作として、通信部51として機能するEthernet装置を用いて、データ中継装置から送られる通信速度、処理速度、データ中継装置識別情報および階層番号を受信する。図39は、転送先情報更新装置5が受信する通信速度、処理速度、階層番号およびデータ中継装置識別情報の例を示す説明図である。例えば、図39の1行目に例示する情報は、階層番号が2であり、データ中継装置識別情報が2,1であるデータ中継装置から取得した通信速度および処理速度が、それぞれ50,160であったことが示されている。
また、転送先情報更新装置5の中央演算装置は、記号分布生成部53の動作として、通信部51として機能するEthernet装置を用いて、記号の頻度表4(図38参照)を受信し、過去一定時間以内に受信した他の頻度表と記号の頻度表4とから、各頻度表内の記号の頻度を加算した数を新たな記号の総数とする頻度表を生成する。このようにして、記号毎の出現回数の総数を加算して得られた記号の頻度表の例を図40に例示する。ただし、既に説明したように、データ解析結果として頻度表が実行履歴情報に含まれている場合には、その頻度表を受信すればよい。
次に、転送先情報更新装置5の中央演算装置は、記号集合クラスタリング部54の動作として、以下の様な動作を行うことによって、記号クラスタ情報を生成する。中央演算装置は、上記のように生成した頻度表(図40)に例示する頻度表において、記号およびその記号の頻度の組み合わせを頻度の降順にソートし、図19に例示したようなソート済み頻度リストを生成する。
さらに、記号集合クラスタリング部54として動作する中央演算装置は、図39に例示する受信した通信速度、処理速度、階層番号およびデータ中継装置識別情報のから、同一の階層番号が割り当てられているデータ中継装置のデータ中継装置識別情報を抽出し、各階層毎にデータ中継装置識別情報を列挙した情報を生成する。さらに、列挙したデータ中継装置識別情報と、データ中継装置識別情報に対応する通信速度および処理速度の合計値と、転送対象記号総数とを対応付けた情報を作成し、通信速度および処理速度の合計値の降順にデータ中継装置識別情報と通信速度および処理速度の合計値と転送対象記号総数との組み合わせをソートする。そして、この各組み合わせに対してソート後の順位を付加することによって、ソート済みデータ中継装置リストを生成する。図39に例示する情報にもとづいて、例えば、図20に例示するソート済みデータ中継装置リストが生成される。
さらに、中央演算装置は、ソート済み頻度リストにおける順位第n+1位の記号の頻度から順位第n位の記号の頻度を減算し、その減算結果である1階微分値に第n位の順位を定める。この処理をn=1,2,・・・の順番に減算を行えなくなるまで続けることによって、図21に例示するような1階微分値リストを生成する。
さらに、中央演算装置は、1階微分値リストにおける順位第n+1位の1階微分値から順位第n位の1階微分値を減算し、その減算結果である2階微分値に第n位の順位を定める。この処理をn=1,2,・・・の順番に減算を行えなくなるまで続けることで、図22に例示するような2階微分値リストを生成する。
そして、中央演算装置は、2階微分値リストにおいて2階微分値の符号が1つ順位が上の2階微分値の符号から変化している場合、符号が変化している2階微分値の順位を抽出する。この抽出動作を2階微分値リストにおける順位の順番に行い、抽出された順位に対して抽出された順番に順位を定める。この動作によって、図23に例示するような変曲点リストを導出する。
以上のように導出したソース済み頻度リスト(図19参照。)、ソート済みデータ中継装置リスト(図20参照。)、変曲点リスト(図23)を用いて、図18に示すステップA1〜A12の動作を行う。以上の動作を各階層毎に行うことで、記号クラスタ情報を生成する。
以上のような動作によって得られる記号クラスタ情報の例を図41に示す。
本実施例において転送先情報更新装置5であるパーソナルコンピュータ内のデータ中継装置情報記録部56として動作する磁気記憶装置には、データ中継装置情報が記憶されている。図42は、転送先情報更新装置5に記憶されたデータ中継装置情報の例を示す説明図である。図42に示すデータ中継装置情報において、階層番号0はデータ収集装置7を表す。例えば、図42に示した表の2行目は、階層番号が2でデータ中継装置識別情報「1,1」が割り当てられたデータ中継装置であるパーソナルコンピュータは、宛先IPアドレス192.168.1.1、宛先ポート番号5060を用いてTCP/IPで通信可能であることを表している。図42では、IPアドレスとポート番号とを「:」という文字で連結した文字列で宛先情報を表している。
転送先情報更新装置5の中央演算装置は、転送先情報生成部55に相当する動作として、図41に示した記号クラスタ情報に含まれているデータ中継装置識別情報を、図42に示したデータ中継装置情報において同一のデータ中継装置識別情報に対応付けられた宛先情報に変換し、階層番号毎に分割することで、図28に示した転送先情報を生成する。
次に、転送先情報更新装置5の中央演算装置は、転送先情報生成部55に相当する動作として、図42に示したデータ中継装置情報から、各階層番号のデータ中継装置の宛先情報を取得し、転送先情報更新装置5であるパーソナルコンピュータ内のEthernet装置を用いて、図28に示した階層番号毎の転送先情報を、階層番号と同一の階層番号が割り当てられたデータ中継装置全てに送信する。例えば、転送先情報更新装置5の中央演算装置は、図42のデータ中継装置情報内で階層番号が3の行内の宛先情報を参照して、宛先IPアドレスと宛先ポート番号がそれぞれ「192.168.3.1」「5060」、「192.168.3.2」「5060」、「192.168.3.3」「5060」、「192.168.3.4」「5060」、「192.168.3.5」「5060」であるデータ中継装置として動作するパーソナルコンピュータに、Etherenet装置を用いて図42の転送先情報(階層番号3)を、TCP/IPを用いて送信する。
上記の実施例では、データ中継装置識別情報を、各データ中継装置の実行履歴記録部471と、転送先情報更新装置5内のデータ中継装置情報記録部56に記録する場合について説明したが、データ中継識別情報を、DNS(Domain Name Service)等の他の名前解決方法を用いて管理しておくこともできる。
上述の本発明は、通信ネットワークを介してデータを収集するデータ収集システムに好適に適用される。
本出願は、2007年2月27日に出願された日本出願特願2007−047118号を基礎とする優先権を主張し、その開示の全てをここに取り込む。