(57)【要約】【課題】複数形式のバイナリデータを出力する端末機器と、標準データ形式でデータ処理するアプリケーション部とによるシステム構築を容易にする。【解決手段】複数形式のバイナリデータを出力する端末機器１と、標準データ形式でデータ処理するアプリケーション部２とを備えたデータ処理システムにおいて、端末機器からシリアル伝送される複数形式のバイナリデータを、データパーサ３は再帰的構造を持つフォーマット定義を使用してパーシングし、名前を付けた標準データ形式に変換してアプリケーション部に出力する。  データパーサのフォーマット定義は、バイナリデータのスタートマーク、エンドマーク、エスケープ、データの位置と名前、データ構造を表すための切り替え、ビットデータ、繰返しに対応できる。【選択図】図１
2009169798.tif 000002
【特許請求の範囲】
【請求項１】
複数形式のバイナリデータを出力する端末機器と、標準データ形式でデータ処理するアプリケーション部とを備えたデータ処理システムにおいて、
前記端末機器からのバイナリデータを、再帰的構造を持つフォーマット定義を使用してパーシングし、名前を付けた標準データ形式に変換して前記アプリケーション部に出力するデータパーサを備えたことを特徴とするデータ処理システム。
【請求項２】
前記データパーサのフォーマット定義は、バイナリデータのスタートマーク、エンドマーク、エスケープ、データの位置と名前、データ構造を表すための切り替え、ビットデータ、繰返しに対応できる手段を備えたことを特徴とする請求項１に記載のデータ処理システム。
【請求項３】
前記端末機器はバイナリデータをネットワークを介して前記アプリケーション部に送り、該アプリケーション部はバイナリデータの受信部に搭載する前記データパーサでデータ変換するシステム構成を特徴とする請求項１または２に記載のデータ処理システム。
【請求項４】
前記端末機器はバイナリデータをアプリケーション側のファイルシステムにファイルとして格納し、前記データパーサは前記ファイルシステムのバイナリデータを標準データ形式ファイルに変換し、前記アプリケーション部は前記ファイルシステムから標準データ形式ファイルを読むシステム構成を特徴とする請求項１または２に記載のデータ処理システム。
【請求項５】
前記端末機器はバイナリデータをネットワークまたはファイルを介して前記データパーサに渡し、該データパーサは標準データ形式に変換した後にデータベースに格納し、前記アプリケーション部は必要なときに前記データベースから標準データ形式のデータを読むシステム構成を特徴とする請求項１または２に記載のデータ処理システム。
【請求項６】
複数形式のバイナリデータを出力する端末機器と、標準データ形式でデータ処理するアプリケーション部とを備えたデータ処理システムにおけるデータ変換方法であって、
前記端末機器とアプリケーション部との間に介挿するデータパーサは、前記端末機器からのバイナリデータを、再帰的構造を持つフォーマット定義を使用してパーシングし、名前を付けた標準データ形式に変換して前記アプリケーション部に出力する手順を有することを特徴とするデータ変換方法。
【請求項７】
前記データパーサのフォーマット定義は、バイナリデータのスタートマーク、エンドマーク、エスケープ、データの位置と名前、データ構造を表すための切り替え、ビットデータ、繰返しに対応できる手順を有することを特徴とする請求項６に記載のデータ変換方法。
【請求項８】
請求項６または７に記載のデータ変換方法における処理手順をコンピュータで実行可能に構成したことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサーなどの端末機器が出力する任意形式のバイナリデータを標準データ形式に変換してデータ処理するためのデータ処理システム、データ変換方法に関する。
【背景技術】
【０００２】
図６に示すように、監視制御端末やセンサーネットなどのデータ処理システムは、それに組み込まれる端末機器１が各種のデータをアプリケーション部２に伝送し、アプリケーション部２でこれらデータを使用して各種のデータ処理を実行するシステムにおいて、端末機器１は複数のデータをまとめてバイナリデータとしてシリアル（ＲＳ２３２Ｃなど）で出力する場合が多い。
【０００３】
この場合のデータ形式は、サイズを小さくするためにバイト列やビット列としてその都度独自に定めたものであるのが大半である。そのため、アプリケーション部２ではこれらのデータ形式の違いに対応できるプログラムをそれぞれ搭載している。
【０００４】
他の手法として、端末機器固有のファイルフォーマットを定義スキーマによりＸＭＬデータに変換するものがある（例えば、特許文献１参照）。この文献では、変換の詳細は記載されていないため不明であるが、定義スキーマには処理モジュールのインタフェースの規定や処理手順が与えられている。
【特許文献１】特開２００７−１２２２８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
端末機器が出力するバイナリデータは、データサイズを小さくするため、アプリケーション毎に独自のフォーマットを定めている。そのため、これを読込んで利用するアプリケーション部のプログラムもアプリケーション毎に作成されている。
【０００６】
フォーマットが単純（バイト値の単なる並び）であれば簡単な定義（名前とバイト位置を指定する）でデータを抽出することができるが、複雑な構造を持つ場合、例えばデータ出力内容が変化する、バイト列内にビット単位で複数のデータを格納する、繰返し構造がある場合、これらを個々に定義化して読込むのは難しいため、アプリケーション毎に読込むプログラムを作成しなければならない。
【０００７】
特許文献１の手法では、データフォーマットに関する定義は与えられておらず、複雑な構造を持つデータには対応していない。また、データ処理モジュールは機器データ毎に作成する必要がある。アプリケーション部側にはＸＭＬデータベースを使用する必要があり、プログラムサイズが大きくなる恐れがある。
【０００８】
本発明の目的は、複数形式のバイナリデータを出力する端末機器と、標準データ形式でデータ処理するアプリケーション部とによるシステム構築を容易にしたデータ処理システム、データ変換方法およびこの方法のプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明は、前記の課題を解決するため、複数形式のバイナリデータを、再帰的構造を持つフォーマット定義を使用してパーシングし、名前を付けた標準データ形式（ＸＭＬやＪＳＯＮなど）に変換するようにしたもので、以下のデータ処理システム、データ変換方法およびプログラムを特徴とする。
【００１０】
（システムの発明）
（１）複数形式のバイナリデータを出力する端末機器と、標準データ形式でデータ処理するアプリケーション部とを備えたデータ処理システムにおいて、
前記端末機器からのバイナリデータを、再帰的構造を持つフォーマット定義を使用してパーシングし、名前を付けた標準データ形式に変換して前記アプリケーション部に出力するデータパーサを備えたことを特徴とする。
【００１１】
（２）前記データパーサのフォーマット定義は、バイナリデータのスタートマーク、エンドマーク、エスケープ、データの位置と名前、データ構造を表すための切り替え、ビットデータ、繰返しに対応できる手段を備えたことを特徴とする。
【００１２】
（３）前記端末機器はバイナリデータをネットワークを介して前記アプリケーション部に送り、該アプリケーション部はバイナリデータの受信部に搭載する前記データパーサでデータ変換するシステム構成を特徴とする。
【００１３】
（４）前記端末機器はバイナリデータをアプリケーション側のファイルシステムにファイルとして格納し、前記データパーサは前記ファイルシステムのバイナリデータを標準データ形式ファイルに変換し、前記アプリケーション部は前記ファイルシステムから標準データ形式ファイルを読むシステム構成を特徴とする。
【００１４】
（５）前記端末機器はバイナリデータをネットワークまたはファイルを介して前記データパーサに渡し、該データパーサは標準データ形式に変換した後にデータベースに格納し、前記アプリケーション部は必要なときに前記データベースから標準データ形式のデータを読むシステム構成を特徴とする。
【００１５】
（方法の発明）
（６）複数形式のバイナリデータを出力する端末機器と、標準データ形式でデータ処理するアプリケーション部とを備えたデータ処理システムにおけるデータ変換方法であって、
前記端末機器とアプリケーション部との間に介挿するデータパーサは、前記端末機器からのバイナリデータを、再帰的構造を持つフォーマット定義を使用してパーシングし、名前を付けた標準データ形式に変換して前記アプリケーション部に出力する手順を有することを特徴とする。
【００１６】
（７）前記データパーサのフォーマット定義は、バイナリデータのスタートマーク、エンドマーク、エスケープ、データの位置と名前、データ構造を表すための切り替え、ビットデータ、繰返しに対応できる手順を有することを特徴とする。
【００１７】
（プログラムの発明）
（８）上記（６）、（７）に記載のデータ変換方法における処理手順をコンピュータで実行可能に構成したことを特徴とする。
【発明の効果】
【００１８】
以上のとおり、本発明によれば、複数形式のバイナリデータを、再帰的構造を持つフォーマット定義を使用してパーシングし、名前を付けた標準データ形式（ＸＭＬやＪＳＯＮなど）に変換するようにしたため、複数形式のバイナリデータを出力する端末機器と、標準データ形式でデータ処理するアプリケーション部とによるシステム構築を容易にしたデータ処理システム、データ変換方法になる。
【００１９】
具体的には、
（１）バイナリデータのフォーマット構造をフォーマット定義で与え、これに従いパーシングしてデータを抽出するため、バイナリデータをパーシングするプログラムを個別に作らなくても、フォーマット定義を与えるだけでさまざまな機器の出力データに対応させることができる。
【００２０】
（２）複雑な構造（切り替え、ビットデータ、繰返しなど）を持つデータ列も、再帰的構造を持つフォーマット定義とそれに対応したアルゴリズムにより、パーシングし、標準な形式（ＸＭＬやＪＳＯＮなど）のデータに変換することができる。
【００２１】
（３）ネットワーク経由で受信したバイナリデータを直接標準データ形式に変換することにより、データを受信する度にアプリケーションが標準データ形式で処理することができる。
【００２２】
（４）機器が出力するデータをファイルシステム経由でバイナリデータファイルとして保存し、アプリケーションがファイルを読んで変換または変換したファイルを作成してそれを読むことにより、アプリケーションは必要なときに標準データ形式で処理することができる。
【００２３】
（５）機器が出力するデータを標準データ形式に変換し、データベースに保管することにより、アプリケーションは必要なときに標準データ形式のデータを標準的なインタフェースで処理することができる。
【発明を実施するための最良の形態】
【００２４】
図１は、本発明の実施形態を示すシステム構成図である。端末機器１から出力するバイナリデータをアプリケーション２が取得して処理を実行するシステムにおいて、端末機器１からシリアル伝送されるバイナリデータを解析し、その中から必要なデータを抽出してＸＭＬやＪＳＯＮ（Ｊａｖａ(登録商標)  Ｓｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）などの標準データ形式に変換し、アプリケーション部２に出力するデータパーサ３を設ける。
【００２５】
データパーサ３は、端末機器１が出力するバイナリデータのフォーマット定義をＸＭＬで与えて、これに従いデータをパーシングし、このパーシングした結果をＸＭＬなどとして出力し、アプリケーションが利用しやすい形とする。このフォーマット定義としては、スタートマーク、エンドマーク、エスケープ（マークと同じデータ値を埋め込むための記法）、データの位置と名前の他に、データ構造を表すための切り替え（ある値によって使用する定義を切り替える）、ビットデータ（バイト列の塊をビット列で区切って複数のデータを埋め込む）、繰返し（あるバイト数毎に繰り返すデータ構造と繰返し数による、連続する繰り返すパターン）、によりほとんどのパターンに対応できる。
【００２６】
この構造は一般的なプログラム構造などと同等であり、木構造で表すことができるため、ＸＭＬを使用することにより表現することができる。バイナリデータをパーシングする処理では再帰的な手法を用いることによって木構造を効率的に処理することができる。
【００２７】
実際のデータをパーシングする部分では絶対位置やパーシング中の位置からの相対位置（ビットデータの場合はバイト群の中でのビット位置）と、バイト数（ビットデータの場合はビット数）、及びデータの名前を指定する。
【００２８】
与えられた名前をタグ名とするＸＭＬデータとして出力する。切り替えの場合はその名前を指定し、それをタグ名とするタグで囲む。繰返しの場合は、繰返し単位の名前を指定し、それをタグ名とするタグで囲む。
【００２９】
これにより、定義に従ってバイナリデータをパーシングし、ＸＭＬやＪＳＯＮなどの標準的なデータ構造に変換し、アプリケーション部においてデータを読む部分を共通的なものとして構築することができる。
【００３０】
図２はデータパーサ３の変換処理フローを示す。フォーマット定義は再帰的構造をもつＸＭＬで与える。初めに開始マークと終了マークがバイト値で指定され、開始マークを受信したら続く終了マークまでのデータを有効とする。データにマークを使用したい場合は通常エスケープマークと続くデータ（元の値をＸＯＲなど何らかの加工をしたもの、または元の値毎に指定した値）で表現される。これによりあらかじめ開始マーク、終了マークを取り除き、エスケープ記法を展開して元のデータにしたものを扱うデータ列とし、このデータ列を解析してＸＭＬ化し、出力にＸＭＬを追加する（Ｓ１〜Ｓ５）。
【００３１】
データ列を解析してＸＭＬ化する処理（Ｓ４）の詳細は（Ｓ１１〜Ｓ２８）になる。これら処理において、図１中に示すフォーマット定義での＜ｄａｔａ＞要素がデータをパーシングする部分で、ｐｏｓ属性でバイト位置を、ｂｙｔｅ属性でバイト数を、テキスト要素でタグ名を指定している。ｐｏｓ属性が省略された場合は以前に読込んだ位置の次のバイトが指定される。
【００３２】
タグ名に＜ｓｗｉｔｃｈ＞要素がある場合、ｐｏｓ属性とｂｙｔｅ属性で切替えるためのデータを指定し、その値によって＜ｃａｓｅ＞子要素のｖａｌｕｅ属性が等しい＜ｃａｓｅ＞要素の中が定義として使用される。＜ｃａｓｅ＞のｄｅｓｃｒｉｐｔｉｏｎ属性で指定した名前をタグ名とするタグで出力されるＸＭＬを囲み、選択された定義を明確にすることもできる。＜ｓｗｉｔｃｈ＞要素に続く要素も定義として使用される。
【００３３】
＜ｄａｔａ＞要素内に＜ｓｕｂｄａｔａ＞要素がある場合（Ｓ１３）は、＜ｄａｔａ＞要素で指定されたバイト群を１つのビット列とみなして、＜ｓｕｂｄａｔａ＞要素のｂｉｔｐｏｓ属性で指定したビット位置からｂｉｔ属性で指定したビット数分をデータとして抽出し（Ｓ１７）、＜ｓｕｂｄａｔａ〉のテキスト要素でタグ名を指定する。
【００３４】
ここで定義として使用しているタグ名や属性名はこれに限る必要はなく、区別できれば何でも良い。
【００３５】
（具体例１）
図３にシステム構成例を示すように、機器１がバイナリデータをシリアルやＴＣＰなどのネットワークを介してアプリケーション部２側に送る際に、アプリケーション側の受信部にデータパーサ３をフォーマット定義と共に搭載することにより、ＸＭＬやＪＳＯＮなどの標準データ形式に変換してアプリケーションに渡す。この場合、アプリケーションは標準データ形式のデータを読めば済むため、フォーマットに依存しない。
【００３６】
（具体例２）
図４にシステム構成例を示すように、機器１がバイナリデータをアプリケーション側のファイルシステム４にファイルとして格納し、アプリケーション２がそのファイルを読む際に、アプリケーションのファイル読み込み部にデータパーサ３をフォーマット定義と共に搭載することにより、ＸＭＬやＪＳＯＮなどの標準データ形式ファイルに変換してアプリケーションがそのファイルを読む。または、アプリケーション２がバイナリファイルを読み、標準データに変換して利用する。この場合、アプリケーション部は標準データ形式を読めば済むため、フォーマットに依存しない。
【００３７】
（具体例３）
図５にシステム構成例を示すように、機器１がバイナリデータをネットワークやファイルを介してデータパーサ３に渡し、データパーサ３が標準データ形式に変換した後に外部記憶装置としてのデータベース５に格納する。格納形式はＸＭＬをＸＭＬデータベースに格納したり、ＪＳＯＮをテキストとして関係データベースに格納したりできる。この場合、アプリケーション部は必要なときにデータベースから標準データ形式を読めば済むため、フォーマットに依存しない。
【００３８】
なお、本発明は、図１、２等に示した方法の一部又は全部の処理機能をプログラムとして構成してコンピュータで実行可能にできる。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施形態を示すシステム構成図。
【図２】データパーサ３の変換処理フロー。
【図３】ネットワーク経由によるデータ処理システムの構成例。
【図４】ファイル経由によるデータ処理システムの構成例。
【図５】データベース経由によるデータ処理システムの構成例。
【図６】データ処理システムの例。
【符号の説明】
【００４０】
１  端末機器
２  アプリケーション部
３  データパーサ
４  ファイルシステム
５  データベース
【図１】
2009169798.tif 000003
【図２】
2009169798.tif 000004
【図３】
2009169798.tif 000005
【図４】
2009169798.tif 000006
【図５】
2009169798.tif 000007
【図６】
2009169798.tif 000008