(57)【要約】【課題】１ＫＢ程度のタグ付きフォーマットのデータを約１０分の１に圧縮する。また、分割したデータのそれぞれを１つの完成したデータとして成立させる。【解決手段】データ圧縮転送装置２のデータ変換部２２により、データのタグに用いられるキーワードを辞書２３の変換リストに基づいて符号に変換するという１段階目の圧縮をした後、更にＡＳＮ.１エンコードルールのデータ構造を適用して開始タグ記号、終了タグ記号、改行コードを削除するという２段階目の圧縮をする。これにより、高い圧縮率を実現する。また、スロット作成部２６により、データを分割する必要がある場合に、関連するデータが離れないように定められた分割位置に開始タグ記号、終了タグ記号を挿入する。これにより、各々の分割されたデータを１つの完成されたデータとして成立させることができ、受信側では全ての分割されたデータを回収しなくともデータを処理することができる。【選択図】図１
2008219264.tif 000002
【特許請求の範囲】
【請求項１】
タグ付きフォーマットのデータを格納しておく格納手段と、
前記データのタグに用いられるキーワードとそれに対応する符号とを関連付けた辞書を記憶しておく記憶手段と、
前記格納手段から前記データを読み出して、当該データにおけるキーワードを前記辞書に基づいて符号に変換し、変換後のデータに記号及びコードが不要なデータ構造を定義する情報構造定義ルールを適用して開始タグ記号、終了タグ記号、改行コードを削除してバイナリデータとするデータ変換手段と、
前記バイナリデータをサーバ装置へネットワークを介して送信する送信手段と、
を有することを特徴とするデータ圧縮転送装置。
【請求項２】
バイナリデータを圧縮する圧縮ツール及びその圧縮率を記憶しておく記憶手段と、
前記バイナリデータのサイズが前記ネットワークのスロットのサイズよりも大きい場合、前記バイナリデータのサイズに前記圧縮率を乗じた値が前記スロットのサイズよりも小さいときには前記バイナリデータを前記圧縮ツールによって圧縮し、前記バイナリデータのサイズに前記圧縮率を乗じた値が前記スロットのサイズよりも大きいときには、当該バイナリデータの元のデータについて、関連するデータが離れないように定められた分割位置に開始タグ記号或いは終了タグ記号を挿入してデータを分割する分割手段と、
当該分割後のデータについて前記データ変換手段および前記分割手段による処理を繰り返させる繰返手段と、を有し、
前記送信手段は、前記繰返手段によって処理されたバイナリデータを送信することを特徴とする請求項１記載のデータ圧縮転送装置。
【請求項３】
ネットワークを介して相互に通信可能なデータ圧縮転送装置とサーバ装置とを備えたデータ圧縮転送システムであって、
前記データ圧縮転送装置は、
タグ付きフォーマットデータを格納しておく第１格納手段と、
前記データのタグに用いられるキーワードと対応する符号とを関連付けた辞書を記憶しておく第１記憶手段と、
前記第１格納手段から前記データを読み出し、当該データにおけるキーワードを前記辞書に基づいて符号に変換し、変換後のデータに記号及びコードが不要なデータ構造を定義する情報構造定義ルールを適用し開始タグ記号、終了タグ記号、改行コードを削除してバイナリデータとするデータ変換手段と、
前記バイナリデータをサーバ装置へネットワークを介して送信する送信手段と、を有し、
前記サーバ装置は、
前記データのタグに用いられるキーワードとそれに対応する符号とを関連付けた辞書を記憶しておく第２記憶手段と、
前記データ圧縮転送装置からバイナリデータを受信して第２格納手段に格納させる受信手段と、
前記第２格納手段から前記バイナリデータを読み出し、当該バイナリデータに情報構造定義ルールを適用して開始タグ記号、終了タグ記号、改行コードを挿入し、当該データにおける符号を前記辞書に基づいてキーワードに変換することで元のデータを復元する復元手段と、
を有することを特徴とするデータ圧縮転送システム。
【請求項４】
前記サーバ装置は、
前記データからキーワードを抽出し、キーワード毎に出現回数を記録手段に記録すると共に、出現回数の多いものから順位を付け、上位６４位までのキーワードを１バイトの符号で表現すると共に、６５位以下のキーワードを２バイトの符号で表現することにより前記辞書を作成する辞書作成手段を有することを特徴とする請求項３記載のデータ圧縮転送システム。
【請求項５】
前記サーバ装置は、
前記辞書作成手段によって追加・変更したキーワードおよびそれに対応する符号を用いて前記データのキーワードを符号に変換する変換手段と、
当該変換後のデータと当該変換に用いたキーワードおよび符号とを一まとめにして前記データ圧縮転送装置へ送信する送信手段と、を有し、
前記データ圧縮転送装置は、
前記サーバ装置から受信した前記キーワードおよび符号を用いて前記辞書を更新する更新手段と、
前記サーバ装置から受信したデータを更新後の辞書を用いて復元する復元手段と、
を有することを特徴とする請求項４記載のデータ圧縮転送システム。
【請求項６】
前記データ圧縮転送装置により、
前記タグ付きフォーマットのデータを格納手段に格納しておくステップと、
前記格納手段から前記データを読み出して、前記データのタグに用いられるキーワードとそれに対応する符号とを関連付けた辞書に基づいて、当該データにおけるキーワードを符号に変換し、変換後のデータに記号及びコードが不要なデータ構造を定義する情報構造定義ルールを適用し開始タグ記号、終了タグ記号、改行コードを削除してバイナリデータとするステップと、
前記バイナリデータをサーバ装置へネットワークを介して送信するステップと、
を有することを特徴とするデータ圧縮転送方法。
【請求項７】
データ圧縮転送装置に対して、
タグ付きフォーマットのデータを格納手段に格納させるステップと、
前記格納手段から前記データを読み出して、前記データのタグに用いられるキーワードとそれに対応する符号とを関連付けた辞書に基づいて、当該データにおけるキーワードを符号に変換し、変換後のデータに記号及びコードが不要なデータ構造を定義する情報構造定義ルールを適用して開始タグ記号、終了タグ記号、改行コードを削除してバイナリデータとするステップと、
前記バイナリデータをサーバ装置へネットワークを介して送信するステップと、
を実行させることを特徴とするデータ圧縮転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを転送する際の転送効率の向上を図るための技術に関する。
【背景技術】
【０００２】
通信インフラとして衛星回線を用いることにより、広範囲で災害に対する耐環境性の高い情報通信が可能となり、災害情報や環境情報を監視するサービスへの適用が検討されている。災害や環境を監視するシステムとしては、多種多様で膨大な数のセンサを用いることが想定され、例えば、各種のセンサと、センサが測定して得た情報（センサ情報）を受信して衛星回線を介して転送するゲートウェイ装置（ＧＷ装置）と、ＧＷ装置から受信したセンサ情報を管理するサーバ装置とを備えることが考えられる。
【０００３】
このようなシステムにおいては、各センサから送られるデータは、アナログ数値型、論理値型、２次元ベクトル型、３次元ベクトル型、複数のサンプリング測定値の平均値、最大値、最大変化量など、出力形式が様々である。このような様々な形式のデータをＧＷ装置とサーバ装置間で送受信するためには、データの取り扱いを容易化でき、新規のデータ構造にも対応可能な拡張性の高いフォーマットである、ＸＭＬ形式などのタグ付きフォーマットを用いることが求められる。
【０００４】
ファイルを圧縮するアルゴリズムやソフトウェア（圧縮ツール）は多数存在し、ＸＭＬファイルに特化した圧縮技術も存在するが、これらはファイルサイズがある程度大きくなければ圧縮の効果がなく、また巨大なファイルだと圧縮に相当の時間を要する。その圧縮効率は、非特許文献１のグラフに示されるように、ＸＭＬデータサイズで１００ＫＢ(Kilo-Byte)程度ある場合に約３０％に圧縮できるというレベルである。
【非特許文献１】インターネット，<http://www-06.ibm.com/jp/developerworks/xml/020705/j_x-matters19.html/>
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のようにセンサ情報をサーバ装置で一元管理するシステムにおいては、その緊急性からセンサ情報をタイムリーかつ効率的に収集する必要がある。
【０００６】
１つ１つのセンサ情報が少量で、かつ膨大な数のセンサ情報を、衛星回線を用いた固定長スロットにのせて効率的に伝送するためには、サイズの小さいＸＭＬファイルをいかにして圧縮し、圧縮後のデータをいかにして固定長スロットに配分するかが重要となる。
【０００７】
従来の圧縮技術では、１００ＫＢ程度のＸＭＬファイルでさえ３０％程度にしか圧縮できず、１００−数ＫＢ程度の小サイズのセンサ情報（センサのＩＤ，種別、測定値等を格納したシンプルなもの）のＸＭＬファイルであれば、さらに圧縮率が低下してしまう。また、センサ情報をある程度まとめて圧縮することが考えられるが、巨大なファイルは圧縮に時間を要する。例えば１０分の１といった高圧縮率を達成するには、数ＭＢ程度のサイズが必要である。１秒あたり１ＫＢしか処理できないので、約１７分間のデータを蓄積する必要があり、これではセンサ情報をタイムリーに収集するという目的を果たせない。
【０００８】
衛星回線の観測局に約１００個のセンサを取り付け、各センサが１分に１回データを発信し、１つのセンサ情報のＸＭＬデータが上述したようなシンプルなもので６００バイト程度である環境下では、観測局配下の全センサを合計すると１秒当り約１ＫＢ(１００×１／６０×６００Byte)のデータが発生する。
【０００９】
一方、衛星回線では、全国に配置された数千台のＧＷ装置が利用できるよう、その帯域を細かく分割する必要があるため、衛星回線の帯域は１Ｋｂｐｓ程度となる。そのため、ＧＷ装置は、１秒間に発生する１ＫＢ程度のＸＭＬファイルを約１０分の１に圧縮して、１Ｋｂｐｓの衛星回線で送信する必要がある。
【００１０】
また、スロットサイズよりも大きなサイズのデータを、スロットサイズに合わせて分割して送信すると、受信側では分割した全てのデータを回収するまでデータを処理することができない。衛星回線は常時通信可能ではなく、各ＧＷ装置に対して通信時間が割り当てられており、ＧＷ装置が１つのデータを送信してから次のデータを送信するまでに数１０分間空くことがあることを想定すると、分割したデータのそれぞれが１つの完成したデータとして成立していて、受信側であ即時に読み込んで処理できる必要がある。
【００１１】
本発明は、上記に鑑みてなされたものであり、その課題は、小サイズのタグ付きフォーマットのデータを約１０分の１に圧縮することにある。
【００１２】
本発明の別の課題は、分割したデータのそれぞれを完成したデータとして成立させることにある。
【課題を解決するための手段】
【００１３】
第１の本発明に係るデータ圧縮転送装置は、タグ付きフォーマットのデータを格納しておく格納手段と、前記データのタグに用いられるキーワードとそれに対応する符号とを関連付けた辞書を記憶しておく記憶手段と、前記格納手段から前記データを読み出して、当該データにおけるキーワードを前記辞書に基づいて符号に変換し、変換後のデータに記号及びコードが不要なデータ構造を定義する情報構造定義ルールを適用し開始タグ記号、終了タグ記号、改行コードを削除してバイナリデータとするデータ変換手段と、前記バイナリデータをサーバ装置へネットワークを介して送信する送信手段と、を有することを特徴とする。
【００１４】
本発明にあっては、データのタグに用いられるキーワードを符号に変換するという１段階目の圧縮をした後、更に情報構造定義ルールを適用して開始タグ記号、終了タグ記号、改行コードを削除するという２段階目の圧縮をすることで、高い圧縮率を実現している。
【００１５】
ここで、情報構造定義ルールとは、記号及びコードが不要なデータ構造を定義するものをいう。例えば、各情報をサイズで特定すると共に、その情報およびサイズを関連付けた上で情報全体を階層構造化して把握することによって、タグ記号や改行コード等のコードを不要にできるものが該当する。
【００１６】
第２の本発明に係るデータ圧縮転送装置は、バイナリデータを圧縮する圧縮ツール及びその圧縮率を記憶しておく記憶手段と、前記バイナリデータのサイズが前記ネットワークのスロットのサイズよりも大きい場合、前記バイナリデータのサイズに前記圧縮率を乗じた値が前記スロットのサイズよりも小さいときには前記バイナリデータを前記圧縮ツールによって圧縮し、前記バイナリデータのサイズに前記圧縮率を乗じた値が前記スロットのサイズよりも大きいときには、当該バイナリデータの元のデータについて、関連するデータが離れないように定められた分割位置に開始タグ記号或いは終了タグ記号を挿入してデータを分割する分割手段と、当該分割後のデータについて前記データ変換手段および前記分割手段による処理を繰り返させる繰返手段と、を有し、前記送信手段は、前記繰返手段によって処理されたバイナリデータを送信することを特徴とする。
【００１７】
本発明にあっては、バイナリデータを圧縮ツールを用いて圧縮してもネットワークのスロットサイズよりも小さくならず、データを分割する必要がある場合に、関連するデータが離れないように定められた分割位置に開始タグ記号或いは終了タグ記号を挿入することで、各々の分割されたデータが１つのタグ付きフォーマットのデータとして成立するようにしている。
【００１８】
第３の本発明に係るデータ圧縮転送システムは、ネットワークを介して相互に通信可能なデータ圧縮転送装置とサーバ装置とを備え、前記データ圧縮転送装置が、タグ付きフォーマットデータを格納しておく第１格納手段と、前記データのタグに用いられるキーワードと対応する符号とを関連付けた辞書を記憶しておく第１記憶手段と、前記第１格納手段から前記データを読み出し、当該データにおけるキーワードを前記辞書に基づいて符号に変換し、変換後のデータに記号及びコードが不要なデータ構造を定義する情報構造定義ルールを適用し開始タグ記号、終了タグ記号、改行コードを削除してバイナリデータとするデータ変換手段と、前記バイナリデータをサーバ装置へネットワークを介して送信する送信手段と、を有し、前記サーバ装置が、前記データのタグに用いられるキーワードとそれに対応する符号とを関連付けた辞書を記憶しておく第２記憶手段と、前記データ圧縮転送装置からバイナリデータを受信して第２格納手段に格納させる受信手段と、前記第２格納手段から前記バイナリデータを読み出し、当該バイナリデータに情報構造定義ルールを適用して開始タグ記号、終了タグ記号、改行コードを挿入し、当該データにおける符号を前記辞書に基づいてキーワードに変換することで元のデータを復元する復元手段と、を有することを特徴とする。
【００１９】
本発明にあっては、上記のデータ圧縮転送装置で圧縮されたバイナリデータをサーバ装置で収集し、このバイナリデータに情報構造定義ルールを適用して開始タグ記号、終了タグ記号、改行コードを挿入し、当該データにおける符号を辞書に基づいてキーワードに変換することで元のデータを復元する。
【００２０】
第４の本発明に係るデータ圧縮転送システムは、前記サーバ装置が、前記データからキーワードを抽出し、キーワード毎に出現回数を記録手段に記録すると共に、出現回数の多いものから順位を付け、上位６４位までのキーワードを１バイトの符号で表現すると共に、６５位以下のキーワードを２バイトの符号で表現することにより前記辞書を作成する辞書作成手段を有することを特徴とする。
【００２１】
本発明にあっては、出現回数が多いキーワードから順位を付け、上位６４位までのキーワードを１バイトの符号で表現し、６５位以下のキーワードを２バイトの符号で表現する。これによって、出現頻度の高いキーワードから順に符号を割り当てることができ、新たなキーワードが追加された場合にも、それに対応する符号を自動的に辞書に登録することができる。
【００２２】
第５の本発明に係るデータ圧縮転送システムは、前記サーバ装置が、前記辞書作成手段によって追加・変更したキーワードおよびそれに対応する符号を用いて前記データのキーワードを符号に変換する変換手段と、当該変換後のデータと当該変換に用いたキーワードおよび符号とを一まとめにして前記データ圧縮転送装置へ送信する送信手段と、を有し、前記データ圧縮転送装置は、前記サーバ装置から受信した前記キーワードおよび符号を用いて前記辞書を更新する更新手段と、前記サーバ装置から受信したデータを更新後の辞書を用いて復元する復元手段と、を有することを特徴とする。
【００２３】
本発明にあっては、サーバ装置により、追加・変更したキーワードおよびそれに対応する符号を用いて変換した後のデータと、そのキーワードおよび符号とを一まとめにしてデータ圧縮転送装置に送信し、データ圧縮転送装置において、受信したキーワードおよび符号を用いて辞書を更新することで、最新の辞書をサーバ装置と共有できる。また、データ圧縮転送装置において、サーバ装置から受信したデータを更新後の辞書を用いて復元することで、制御コマンドや通信スケジュール等の様々な情報を利用することができる。
【００２４】
第６の本発明に係るデータ圧縮転送方法は、前記データ圧縮転送装置により、前記タグ付きフォーマットのデータを格納手段に格納しておくステップと、前記格納手段から前記データを読み出して、前記データのタグに用いられるキーワードとそれに対応する符号とを関連付けた辞書に基づいて、当該データにおけるキーワードを符号に変換し、変換後のデータに記号及びコードが不要なデータ構造を定義する情報構造定義ルールを適用し開始タグ記号、終了タグ記号、改行コードを削除してバイナリデータとするステップと、前記バイナリデータをサーバ装置へネットワークを介して送信するステップと、を有することを特徴とする。
【００２５】
第７の本発明に係るデータ圧縮転送プログラムは、データ圧縮転送装置に対して、タグ付きフォーマットのデータを格納手段に格納させるステップと、前記格納手段から前記データを読み出して、前記データのタグに用いられるキーワードとそれに対応する符号とを関連付けた辞書に基づいて、当該データにおけるキーワードを符号に変換し、変換後のデータに記号及びコードが不要なデータ構造を定義する情報構造定義ルールを適用して開始タグ記号、終了タグ記号、改行コードを削除してバイナリデータとするステップと、前記バイナリデータをサーバ装置へネットワークを介して送信するステップと、を実行させることを特徴とする。
【発明の効果】
【００２６】
第１の本発明によれば、１ＫＢ程度の小サイズのタグ付きフォーマットのデータを約１０分の１に圧縮することができる。
【００２７】
第２の本発明によれば、分割したデータのそれぞれを１つの完成したデータとして成立させることができる。
【発明を実施するための最良の形態】
【００２８】
図１は、本実施の形態におけるデータ圧縮転送システムの構成を示すブロック図である。同図に示すように、本システムは、センサ装置１に対して通信可能なデータ圧縮転送装置２と、データ圧縮転送装置２に対してネットワークを介して通信可能なサーバ装置３とを備える。このネットワークの例として、ここでは衛星回線４を用いる。
【００２９】
センサ装置１は、多種多様なセンサ１ａ，１ｂ，１ｃ…が１００個程度取り付けられており、各センサがタグ付きフォーマットのデータを１分間に１回発信する。一例として、ここではＸＭＬフォーマットのデータを扱う。
【００３０】
データ圧縮転送装置２は、センサ装置１からのデータをネットワークを介して受信するセンサ接続部２１、受信したデータにおけるキーワードを符号化すると共に、タグ記号を削除してバイナリデータに変換するデータ変換部２２、キーワードの符号変換に用いる辞書２３、辞書２３を管理する辞書管理部２４、変換後のバイナリデータを圧縮ツールを用いて更に圧縮するバイナリデータ圧縮部２５、符号化・バイナリ化され圧縮されたデータを衛星回線４のスロットに詰め込むスロット作成部２６、作成されたスロットによりデータを衛星回線４を介してサーバ装置３へ送信し、或いはサーバ装置３からデータを受信するデータ送受信部２７、サーバ装置３から受信した圧縮データを辞書２３を用いて復元する圧縮データ復元部２８、復元されたデータによって示される制御コマンド等の処理を行う制御コマンド処理部２９を有する。
【００３１】
データ圧縮転送装置２は、専用の装置としてもよいし、汎用コンピュータを用いて構成し、各部の処理をプログラムによって実行させることとしてもよい。データ圧縮転送装置２は、各部の処理を実行するための演算処理装置や記憶装置等を備え、各部での処理においては、必要な情報を記憶装置から読み出すとともに、処理後の情報を記憶装置に記憶させる。
【００３２】
本システムを災害や環境を監視するシステムに適用する場合には、データ圧縮転送装置２は、全国数千箇所に設置され得るゲートウェイ装置として利用できるものである。この場合、各ゲートウェイ装置には１Ｋｂｐｓ程度の衛星回線帯域が割り当てられる。
【００３３】
サーバ装置３は、圧縮されたバイナリデータをデータ圧縮転送装置２と送受信するデータ送受信部３１、圧縮されたバイナリデータを復元するバイナリデータ復元部３２、符号をキーワードに復元するための辞書３３、辞書３３を管理する辞書管理部３４、バイナリデータの符号を辞書３３を用いて対応するキーワードに復元する圧縮データ復元部３５、データの生成・解析を行うデータ生成・解析部３６、生成・解析したデータをデータ圧縮転送装置２へ送信するために圧縮するデータ圧縮部３７、データにおけるキーワードと符号との対応関係を学習し、辞書３３に登録する辞書作成部３８を有する。
【００３４】
サーバ装置３についても、専用の装置としてもよいし、汎用コンピュータを用いて構成し、各部の処理をプログラムによって実行させることとしてもよい。サーバ装置３は、各部の処理を実行するための演算処理装置や記憶装置等を備え、各部の処理においては、必要な情報を記憶装置から読み出すとともに、処理後の情報を記憶装置に記憶させる。
【００３５】
次に、データ圧縮転送装置２における処理の流れについて図２のフローチャートを用いて説明する。
【００３６】
まず、センサ装置１において、各センサから取得した測定情報をデータ圧縮転送装置２へ送信する。この測定情報は、例えば図３（ａ）に示されるＸＭＬフォーマットで記述されるものとする。
【００３７】
ステップ１（図２では「Ｓ１」と示す。以下同じ）で、データ圧縮転送装置２は、センサ接続部２１を通じてセンサ装置１からＸＭＬデータを受信し、記憶装置に記憶させる。
【００３８】
ステップ２で、データ変換部２２により、辞書２３を用いてＸＭＬデータに含まれるキーワードを符号化し、更に情報構造定義ルールのデータ構造を適用し開始タグ記号、終了タグ記号、改行コードを削除することによりバイナリデータに変換する。
【００３９】
情報構造定義ルールとは、記号やコードを不要にするデータ構造を定義するものであり、例えば各情報をサイズで特定すると共に、その情報およびサイズを関連付けた上で情報全体を階層構造化することによってタグ記号や改行コード等を不要にできるものである。情報構造定義ルールには、例えばＡＳＮ.１ルールやＥＢＭＬ（Extensible Binary Meta-Language）等がある。ここでは、一例としてＡＳＮ.１ルールを用いるものとし、上記のステップ２では、ＡＳＮ.１エンコードルールを適用してＸＭＬデータをバイナリデータに変換するものとする。
【００４０】
そして、ステップ２での符号化処理を行うため、辞書２３では、図４に示すように、ＸＭＬのタグに用いられるキーワードと、それに対応する１６進コードの符号とを変換リスト上に関連付けておく。符号は１バイト又は２バイトとし、辞書２３の変換リストは、サーバ装置３における辞書３３のものと同一とする。
【００４１】
データ変換部２２は、図３（ａ）に示されるようなＸＭＬデータに対し、タグに用いられているキーワードが辞書２３のリストに存在するか否かをチェックし、存在する場合には、そのキーワードを対応する符号に置き換える。図３（ａ）の例では、ＸＭＬデータの最初に出現する「?xml version="1.0" encoding="UTF-8"?」というキーワードを、図４の変換リストの中から探し出し、それに対応する「80」という符号に置き換える。
【００４２】
その他のキーワードも同様に符号に置き換えることにより、図３（ｂ）のようなキーワードを全て符号に置き換えたＸＭＬデータとする。なお、同図において、「&」は１６進を示すものとする。以上の符号化処理により、３８２バイトのデータが１６３バイトに変換され、その圧縮率は約４０％になる。
【００４３】
データ変換部２２は、さらに、符号化後のＸＭＬデータを、ＸＭＬ構造からＡＳＮ.１エンコードルールに基づいたデータ構造に変換し、開始タグ記号、終了タグ記号、改行コードを削除する。参考までに、図５にＡＳＮ.１エンコードルールに基づくデータ構造の変換例を示す。図５（ａ）に示すようなＸＭＬデータを、このルールでは図５（ｂ）に示すように、タグ符号と、タグ内のデータサイズ(Length)と、データ(data)の３組で表す。タグ符号は１バイト又は２バイトで表し、データサイズも１バイト又は２バイトで表す。データサイズはＡＳＮ.1エンコード後のデータのサイズである。
【００４４】
ＡＳＮ.1エンコードの具体例を図６に示す。図６（ａ）のような符号化後のＸＭＬデータを、ＡＳＮ.１エンコードルールに基づいて変換すると図６（ｂ）のようなバイナリデータとなる。同図（ａ）において、開始タグ記号は「< >」で示され、終了タグ記号は「</ >」で示されており、同図（ｂ）ではこれらが省略されている。また、同図（ａ）において改行されている部分には図示しない改行コードが挿入されており、これも同図（ｂ）においては省略されている。
【００４５】
この変換では、例えば図６（ａ）における一行目のタグ「<&80>」は、図６（ｂ）における1バイト目の「&80」と２バイト目の「&18」になる。ここで「&80」はタグ文字に対応する符号コードであり、「&18」は１０進数の２４に相当し、ＡＳＮ.１で変換した後のデータサイズが２４バイトであることを意味する。同図に示すように１６３バイトのＸＭＬデータを変換した後は、計２６バイトのデータとなる。このように、符号化・バイナリ化したデータを、ここではバイナリデータと呼ぶものとする。
【００４６】
なお、符号と符号でないものとを識別するために、最上位ビットを両者を見分けるフラグとして使用する。ここでは最上位ビットが０であれば、後続はバイナリ化していない文字列やタグ文字以外のデータ部分の文字列であると判定する。最上位ビットが１であれば、可読文字ではないため、符号であると判定する。このとき、残りの７ビットで符号を表現すると、１２８通りしか対応するキーワードを扱えなくなるので、２バイトでも符号を表現可能とする。そのため、上位２ビット目をLength部が１バイトか２バイトかを見分けるフラグとして使用する。具体的には、１バイト符号と２バイト符号との識別は、図７に示すように１バイト目の上位２ビットが"10"か"11"かで行う。その結果、１バイトで表現された符号は上位が"10"で始まる計６４個であり、２バイトで表現された符号は上位が"11"で始まる計１６３８４個となる。識別アルゴリズムの詳細については図８に示す。図８では、Length部の後がdataであるのなら必ず文字となることから、当該部分が文字であれば１ビット目が１になることはなく、よって１ビット目が１であるものはタグ符号として認識して良いし、またタグ符号の後には必ずLength部が来るのでLength部の位置も確定することを前提としている。
【００４７】
続いて、ＸＭＬデータの分割処理について説明する。
【００４８】
図２のステップ１において、センサが行う測定内容、送信間隔等の例を示す表を図９に、その測定のタイミングを図１０に示す。図９、図１０に示すように、各センサは、１つの測定対象データに対して、１０msec単位のサンプリング周期で複数回の測定を行い、その平均値、最大値、最小値、変化量平均値、変化量最大値、変化量最小値、ゼロクロス数を計測する。これらの計測値は、センサ内部の記憶装置に記録される。この処理を数秒間隔の測定タイミングで行うものとする。これにより、数秒間隔でセンサに上記計測結果が逐次記録されていく。さらに、測定タイミングよりも長い時間間隔で送信間隔を設定するものとし、送信間隔おきに各センサに記録されている各測定値を纏めてセンサ装置１に送信する。センサ装置１は、この受信した各測定値をＸＭＬ形式で表現したうえでデータ圧縮転送装置２へ送信する。
【００４９】
センサ装置１が作成するＸＭＬデータの例を図１１に示す。このＸＭＬデータでは、関連するデータが離れないように分割位置が定められている。具体的には、センサ装置１は、一まとまりの測定値（average, maximum, minimun, zero_cross等）の後尾に分割可能目印として「<EOF/>」タグを追加する。また、送信間隔の間に蓄積された測定結果を示すデータの開始部分に「<Split>」を挿入し、その終了部分に「</Split>」を挿入する。これら「<EOF/>」、「<Split>」、「</Split>」はＸＭＬデータを分割するための特殊なタグである。
【００５０】
なお、ここでは各センサが上記の高度な処理を行うとしたが、センサを１回の測定毎に測定値を通知するだけの機能を備えたものとし、センサ装置１が上記の計算機能や蓄積機能を備えることとしてもよい。
【００５１】
続いて、図２のステップ３において、データ圧縮転送装置２のスロット作成部２６は、符号化・バイナリ化後のバイナリデータのサイズと衛星回線４のスロットのサイズとを比較し、前者の方が後者より小さい場合にはステップ９へ進んでバイナリデータをスロットへ詰め込む。一方、前者の方が後者より大きい場合には、ステップ４へ進む。
【００５２】
ステップ４において、スロット作成部２６は、バイナリデータのサイズに圧縮ツールによる圧縮率を乗じた値とスロットのサイズとを比較する。この圧縮ツールは、例えばＧＺＩＰに代表される圧縮用のソフトウェアであり、バイナリデータ圧縮部２５によって記憶装置に記憶・管理される。その圧縮率については、８０％−９０％の値になると想定し、ユーザによって事前に登録されるものとする。そして、比較の結果、バイナリデータのサイズに圧縮率を乗じた値がスロットのサイズよりも小さい場合には、ステップ５へ進んで、バイナリデータを圧縮ツールによって圧縮した後、ステップ６へ進む。一方、バイナリデータのサイズに圧縮率を乗じた値がスロットのサイズよりも大きい場合には、ステップ７，８へ進んで、当該バイナリデータの元のＸＭＬデータについて分割の処理を行う。
【００５３】
ステップ６では、スロット作成部２６は、圧縮後のバイナリデータとスロットのサイズとを比較し、前者の方が小さい場合にはステップ９へ進んでバイナリデータをスロットへ詰め込む。一方、前者の方が大きい場合には、ステップ７，８へ進んで、当該バイナリデータの元のＸＭＬデータについて分割の処理を行う。
【００５４】
ステップ８では、スロット作成部２６は、バイナリデータの元のＸＭＬデータについて、関連するデータが離れないように定められた分割位置に開始タグ記号或いは終了タグ記号を挿入してデータを分割する。そして、上記ステップ１〜９の処理を繰り返させる。
【００５５】
詳細に説明すると、図１２（ａ）に示すように元のＸＭＬデータのサイズが１１６５バイトであり、符号化・バイナリ化によって１００バイトになったとする。ここで、予め登録した圧縮ツールの圧縮率が８０％とすると、圧縮後のデータの予測サイズは８０バイトであり、スロットのサイズが７０バイトであるとすると、分割すべき元のデータサイズは、非圧縮のデータサイズ×スロットサイズ／（圧縮率×バイナリデータサイズ）による算出式で求められ、元のＸＭＬデータを分割によって１１６５×７０／８０＝１０１９バイト以下にする必要があると算出できる。
【００５６】
図１２（ａ）のＸＭＬデータは、分割目印である「<EOF/>」が、５４３バイト目と８２４バイト目にある。サイズが１０１９バイトを超えない最大となる目印位置で分割することで、なるべく分割数を減らすようにする観点から、ここでは８２４バイト目で分割する。この後、分割したＸＭＬデータの前半部分の後段に、ＸＭＬデータの「</Split>」以降に表示される終了タグを示す「</GetRes>」「</KVPTransac>」「</Frame>」を付与する。その結果、前半部分の分割データは図１２（ｂ）のようになる。また、分割したデータの後半部分に対しては、その前段にＸＭＬデータの「<Split>」以前に表示される開始タグを付与する。その結果、後半部分の分割データは図１２（ｃ）のようになる。
【００５７】
なお、圧縮ツールの圧縮率については、前述したように事前に登録しておく他、随時更新してもよい。随時更新する手法としては、バイナリデータ圧縮部２５が圧縮率情報として古い値（ここではαとおく）を記憶装置に保持しておき、バイナリデータのサイズ×α≦スロットサイズとなる場合であって実際に圧縮をした結果、バイナリデータのサイズ×α＞スロットサイズとなったときに、このαの値を実際の圧縮率の値に更新する。その後、図２のステップ７以降において更新後の圧縮率を用いて分割処理を行うようにする。
【００５８】
サーバ装置３では、データ送受信部３１により、データ圧縮転送装置２から送られてきた圧縮されたバイナリデータを受信して記憶装置に一旦記憶させた後、バイナリデータ復元部３２により、復元ツールを用いてバイナリデータを復元する。そして、圧縮データ復元部３５により、このバイナリデータにＡＳＮ.１デコードルールを適用して開始タグ記号、終了タグ記号、改行コードを挿入した後、当該データにおける符号を辞書３３の変換リストに基づいてキーワードに変換することで、元のデータを復元する。
【００５９】
次に、辞書の学習機能について説明する。これは、サーバ装置３の辞書作成部３８が持つ機能である。前提として、図７を用いて説明したように、タグに用いられるキーワードを１バイト又は２バイトの符号で表すものとする。１バイトで表現できる数は６４個までであるので、学習の主な処理は、どのキーワードを１バイトで表現し、どのキーワードを２バイトで表現するかを決定することにある。
【００６０】
サーバ装置３では、圧縮されているデータについてはバイナリデータ復元部３２及び圧縮データ復元部３５により復元してから辞書作成部３８へ伝送し、非圧縮のものはそのまま辞書作成部３８へ伝送する。すなわち、辞書作成部３８には、もとのＸＭＬデータが伝送される。なお、圧縮データ復元部３５は、受け取ったデータが圧縮データか非圧縮データかをデータの所定位置のフラグで判別するものとする。
【００６１】
辞書作成部３８は、受け取ったデータからキーワードを抽出し、キーワード毎に出現回数を記憶装置に一旦記憶する。そして、出現回数の多いものから順位を付け、上位６４位までのキーワードを１バイトの符号で表現すると共に、６５位以下のキーワードを２バイトの符号で表現し、これらのキーワードと符号とを対応付けることにより辞書３３を作成する。
【００６２】
例えば、図１３に示すように、抽出した特定のキーワードについて、２４時間毎に出現回数を記録し、現在から２４時間以内の出願回数、及びそれ以前に２４時間毎に発生した出現の回数を計数し、それぞれに重み付けを行った上で総和を求めることで評価値とする。図１３では、出現回数が現在から順に３，２，３，４，４であり、その重みを順に１.０，０.８，０.４，０.２，０.１としたときの評価値が６.０になることを示す。この評価値の高いものから順位を付け、上位６４位までを１バイトで表現することとし、６５位以下は２バイトで表現する。
【００６３】
図１４は、キーワード、その出現回数、符号の対応関係を纏めた変換リストの例を示す。同図では、キーワード「attribData xsi:type="java:java.lang.String"」が６４位であり１バイト符号が割り当てられており、キーワード「MagnetSensorAttribute」が６５位であり２バイト符号が割り当てられている。そして、同図に示す出現回数が計数された段階で学習を行うと、キーワード「attribData xsi:type="java:java.lang.String"」の評価値は、５×１.０＋５×０.８＋５×０.６＋２０×０.４＋２０×０.２＝２４であり、キーワード「MagnetSensorAttribute」の評価値は、１０×１.０＋１０×０.８＋１０×０.６＋５×０.４＋５×０.２＝２７となる。この結果、「attribData xsi:type="java:java.lang.String"」は６５位となるので２バイト符号である「&C000」に対応付け、一方「MagnetSensorAttribute」は６４位となるので１バイト符号である「&BF」に対応付ける。以上の処理によって、両キーワードは順位が逆転することとなり、辞書作成部３８は、この情報で辞書３３の変換リストを更新する。
【００６４】
また、図１４に示すように、新規のキーワード「ＡＡＡＢＢＢＣＣＣＤＤＤ」が出現した場合には、登録後の符号の数が６４（１バイト分）＋１６３８４（２バイト分）個に達していなければ、最後尾の符号を割り当てる。同図の例では「&C002」を割り当てた状態を示す。なお、登録数が６４に満たない場合には、１バイト符号への割り当てを行う。このような評価値の算出を例えば２４時間毎に実施する。また、新規のタグを当初から圧縮したい場合には、その符号を変換リストに予め手動で登録してもよい。
【００６５】
辞書作成部３８は、この変換リストの変更結果および新規割り当て結果を、辞書管理部３４に通知し、辞書管理部３４が、キーワードと符号との対応関係を管理する。また、辞書管理部３４は、データ送受信部３１を介して最新の変換リストを全てのデータ圧縮転送装置２へ通知し、各データ圧縮転送装置２では受け取った変換リストで自己の辞書２３を更新する。これにより、各データ圧縮転送装置２とサーバ装置３とで同一の辞書を用いることができる。なお、辞書管理部３４は、新たに更新された辞書だけでなく、更新前の辞書についても削除せずに保持しておくようにしてもよい。
【００６６】
次に、サーバ装置３からデータ圧縮転送装置２に対してデータを送信する処理について具体的に説明する。
【００６７】
サーバ装置３のデータ圧縮部３７は、辞書作成部３８によって辞書３３に追加・変更されたキーワードと符号との対応関係を示す変換リストを用いて、データ圧縮転送装置２での圧縮手法と同様にしてＸＭＬデータのキーワードを符号に変換する。そして、データ送受信部３１により、変換後のデータと、変換に用いたキーワードおよび符号とを１つに纏めてデータ圧縮転送装置２へ送信する。
【００６８】
サーバ装置３がデータ圧縮転送装置２及びその配下のセンサ装置１に対する制御コマンドを配信する場合には、データ圧縮部３７は、制御コマンドについてもセンサ情報と同様にＸＭＬ形式で表現すると共に、辞書３３を用いてキーワードを符号に変換する。そして、データ圧縮部３７は、このとき参照したキーワードおよび符号をデータの後尾に付与して一まとめにして、データ送受信部３１へ送信する。
【００６９】
サーバ装置３での上記送信処理においては、送信するデータにＡＳＮ.１エンコードルールのデータ構造を適用してバイナリ化し、圧縮ツールを用いて圧縮したものを用いるものとする。
【００７０】
図１５（ａ）は、このとき適用したキーワードの符号変換の例を示すデータであり、同図（ｂ）は一まとめにしたデータの構造例を示す。図１５（ａ）に示すようにデータはＸＭＬ形式であり、同図（ｂ）に示すように、ＸＭＬタグ「<XMLbody>」と「</XMLbody>」の間に圧縮した制御コマンドを挿入し、ＸＭＬタグ「<KeywordRule>」と「</KeywordRule>」の間に参照した変換リスト或いは前回送信した辞書内容との差分を挿入する。図１５（ｃ）は、「<KeywordRule>」と「</KeywordRule>」の間に挿入された辞書情報の具体例を示す。
【００７１】
図１において、サーバ装置３のデータ送受信部３１がデータを送信すると、データ圧縮転送装置２のデータ送受信部２７がこれを受信して記憶装置に一旦記憶させる。そして、受信したデータを圧縮データ復元部２８に伝送する。圧縮データ復元部２８は、まずデータが圧縮ツールで圧縮されたものである場合には、復元ツールを用いて復元する。そして、図１５（Ｃ）に示すデータのうち「<KeywordRule>」と「</KeywordRule>」の間に挿入された情報を辞書管理部２４へ伝送する。
【００７２】
辞書管理部２４は、受け取ったデータに示される「<record>」タグ内に記述された「<key>」タグ内に示される符号と、「<char>」タグ内に示されるキーワードの文字列とを抽出して辞書２３に記録する。この処理によって、辞書２３の変換リストを更新する。
【００７３】
辞書の更新処理が終了した後、圧縮データ復元部２８は、辞書２３を参照して、受け取ったデータの「<XMLbody>」と「</XMLbody>」の間に挿入されたデータを元のＸＭＬデータに復元する。図１６（Ｃ）に圧縮された制御コマンドの例を、図１６（ｄ）に復元された制御コマンドの例をそれぞれ示す。なお、図１６（ａ）は復元対象のデータの構造例を示す図であり、図１６（ｂ）はその辞書部分の情報を示す図である。
【００７４】
したがって、本実施の形態によれば、データ圧縮転送装置２において、データのタグに用いられるキーワードを符号に変換するという１段階目の圧縮をした後、更にＡＳＮ.１エンコードルールのデータ構造を適用して開始タグ記号、終了タグ記号、改行コードを削除するという２段階目の圧縮をすることで、高い圧縮率を実現することができる。これを衛星回線を使った災害情報や環境情報を監視するシステムに適用することによって、全国数千箇所にゲートウェイ装置を設置し、各ゲートウェイ装置に多種多様なセンサを１００個程度取り付け、各ゲートウェイ装置に割り当てられた衛星回線帯域が１ｋｂｐｓ程度であっても、センサ情報のようなサイズが小さいタグ付きフォーマットのデータを１／１０程度に圧縮することが可能となる。
【００７５】
本実施の形態によれば、データ圧縮転送装置２において、データを分割する必要がある場合に、関連するデータが離れないように定められた分割位置に開始タグ記号と終了タグ記号を挿入することで、各々の分割されたデータを１つの完成されたデータとして成立させることができ、受信側では全ての分割されたデータを回収しなくともデータを処理することができる。
【００７６】
本実施の形態によれば、サーバ装置３の辞書作成部３８により、キーワード毎に出現回数が多いものから順位を付け、上位６４位までのキーワードを１バイトの符号で表現し、６５位以下のキーワードを２バイトの符号で表現する。これによって、出現頻度の高いキーワードから順に符号を割り当てることができ、新たなキーワードが追加された場合に、それに対応する符号を自動的に辞書に登録することができる。
【００７７】
本実施の形態によれば、サーバ装置３により、追加・変更したキーワード及び符号を用いて変換した後のデータと、そのキーワード及び符号とを一まとめにしてデータ圧縮転送装置２に送信し、データ圧縮転送装置２において、受信したキーワードおよび符号を用いて辞書を更新することで、データ圧縮転送装置２ではサーバ装置３のものと同一の最新の辞書を用いることができる。また、データ圧縮転送装置２において、サーバ装置３から受信したデータを更新後の辞書を用いて復元することで、制御コマンドや通信スケジュール等の様々な情報を利用することができる。
【００７８】
特に、制御コマンドを送信するタイミングで、その辞書に用いるキーワードおよび符号を一まとめにして送信することで、通信回数を低減できると共に、制御コマンドを圧縮／復元する際の不一致を回避することができる。
【図面の簡単な説明】
【００７９】
【図１】一実施の形態におけるデータ圧縮転送システムの構成を示すブロック図である。
【図２】データ圧縮転送装置における処理の流れを示すフローチャートである。
【図３】同図（ａ）は符号化前のＸＭＬデータの例を示し、同図（ｂ）はＸＭＬデータのキーワードを辞書を用いて符号化したデータの例を示す。
【図４】ＸＭＬのタグに用いるキーワードと符号とを関連付けた変換リストの例を示す図である。
【図５】ＸＭＬ構造をＡＳＮ.１エンコードルールに基づいたデータ構造に変換する変換例を示す図である。
【図６】同図（ａ）は符号化後のＸＭＬデータの例を示し、同図（ｂ）は符号化後のＸＭＬデータにＡＳＮ.１エンコードルールを適用して更に圧縮したデータの例を示す。
【図７】１バイト符号と２バイト符号を識別するためのフラグを示す図である。
【図８】１バイト符号と２バイト符号を識別するためのアルゴリズムを示す図である。
【図９】センサによる測定内容、送信間隔等を示す表である。
【図１０】センサによる測定のタイミングを示す図である。
【図１１】センサが測定した値をＸＭＬ形式で表現したデータの例を示す図である。
【図１２】ＸＭＬデータを分割する例を示す図であり、同図（ａ）は分割前、同図（ｂ），（ｃ）は分割後のＸＭＬデータを示す。
【図１３】辞書学習における評価値の算出例を示す図である。
【図１４】辞書に用いるキーワード、出現回数、符号の対応関係を纏めた変換リストの例を示す図である。
【図１５】同図（ａ）は、サーバ装置から送信するデータについてのキーワードの符号変換の例、同図（ｂ）は一まとめにしたデータの構造例、同図（ｃ）は一まとめにしたデータのうちの辞書情報部分の例を示す。
【図１６】同図（ａ）は復元対象のデータの構造例、同図（ｂ）はその辞書部分の例、同図（Ｃ）は圧縮された制御コマンドの例、同図（ｄ）は復元された制御コマンドの例をそれぞれ示す図である。
【符号の説明】
【００８０】
１…センサ装置
１ａ，１ｂ，１ｃ…センサ
２…データ圧縮転送装置
３…サーバ装置
４…衛星回線
２１…センサ接続部
２２…データ変換部
２３…辞書
２４…辞書管理部
２５…バイナリデータ圧縮部
２６…スロット作成部
２７…データ送受信部
２８…圧縮データ復元部
２９…制御コマンド処理部
３１…データ送受信部
３２…バイナリデータ復元部
３３…辞書
３４…辞書管理部
３５…圧縮データ復元部
３６…データ生成・解析部
３７…データ圧縮部
３８…辞書作成部
【図１】
2008219264.tif 000003
【図２】
2008219264.tif 000004
【図３】
2008219264.tif 000005
【図４】
2008219264.tif 000006
【図５】
2008219264.tif 000007
【図６】
2008219264.tif 000008
【図７】
2008219264.tif 000009
【図８】
2008219264.tif 000010
【図９】
2008219264.tif 000011
【図１０】
2008219264.tif 000012
【図１１】
2008219264.tif 000013
【図１２】
2008219264.tif 000014
【図１３】
2008219264.tif 000015
【図１４】
2008219264.tif 000016
【図１５】
2008219264.tif 000017
【図１６】
2008219264.tif 000018