(57)【要約】【課題】  従来は、構造体データとマークアップデータを相互に変換するプログラムを構造体データごとに用意していたため、利用者プログラム作成のための管理対象が増えるという問題点があった。【解決手段】  第１のデータ交換計算機１０１ａは、変換元のデータ構造を定義する構造体定義ソース３１と項目位置を示すデータ項目位置情報３２とに基づいて構造体データ５２から項目を取り出してマークアップデータ５１に変換する処理手順を記述した利用者プログラム４１を実行するデータ変換部４２を備え、第２のデータ交換計算機１０３は、変換後のデータ構造を定義する構造体定義ソース３３と項目位置を示すデータ項目位置情報３４とに基づいてマークアップデータを構造体データ５３に変換する処理手順を記述した利用者プログラム４４を実行するデータ変換部４５を備えた。【選択図】  図３
2005327057.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータ型を有する第１のデータを入力して、上記第１のデータ型とは異なる第２のデータ型を有する第２のデータにデータ交換して出力するデータ交換システムにおいて、
上記第１のデータのデータ構造を定義した第１のデータ構造定義情報と、上記第１のデータのバイト数と上記第１のデータ型とを定義した第１の位置情報とを入力して、上記第１のデータ構造定義情報に基づいて上記第１のデータを入力し、入力した第１のデータから上記第１の位置情報のバイト数分のデータを取得して上記第１のデータ型のデータを文字列型のデータ文字列情報として含むマークアップデータを生成して出力する第１の実行部を備えた第１のデータ交換計算機と、
上記第１のデータ交換計算機の第１の実行部が出力したマークアップデータと、上記第２のデータのデータ構造を定義した第２のデータ構造定義情報と、上記第２のデータのバイト数と第２のデータ型とを定義した第２の位置情報とを入力して、入力したマークアップデータから上記データ文字列情報を取得し、取得したデータ文字列情報を上記データ型の上記第２の位置情報のバイト数を有する第２のデータに変換し、変換したデータを上記第２のデータ構造定義情報に基づいて出力する第２の実行部を備えた第２のデータ交換計算機と
を備えたことを特徴とするデータ交換システム。
【請求項２】
複数の項目がそれぞれ所定のデータ型を有する第１のデータを入力して、入力した第１のデータを、上記第１のデータと同じ複数の項目を有して上記第１のデータが有するそれぞれの項目のデータ型とは異なるデータ型を有する第２のデータにデータ交換するデータ交換システムにおいて、
上記第１のデータのデータ構造を定義した第１のデータ構造定義情報と、上記第１のデータが有する複数の項目それぞれのバイト数とオフセット値と第１のデータ型とを定義した第１の位置情報とを入力して、上記第１のデータ構造定義情報に基づいて上記第１のデータを入力して、入力した第１のデータから上記第１の位置情報のオフセット値を基に上記第１の位置情報のバイト数分のデータを取得して上記第１のデータ型のデータを文字列型のデータ文字列情報として含むマークアップデータを生成して出力する第１の実行部を備えた第１のデータ交換計算機と、
上記第１のデータ交換計算機の第１の実行部が出力したマークアップデータと、上記第２のデータのデータ構造を定義した第２のデータ構造定義情報と、上記第２のデータが有する複数の項目それぞれのバイト数とオフセット値と第２のデータ型とを定義した第２の位置情報とを入力して、入力したマークアップデータから上記データ文字列情報を取得し、取得したデータ文字列情報を上記第２のデータ型の上記第２の位置情報のバイト数を有するデータに変換して、変換したデータを上記第２の位置情報のオフセット値の示す位置に設定して上記第２のデータを生成し、生成した第２のデータを第２のデータ構造定義情報に基づいて出力する第２の実行部を備えた第２のデータ交換計算機と
を備えたことを特徴とするデータ交換システム。
【請求項３】
上記第１の実行部は、マークアップ言語を使用して上記データ文字列情報を含むマークアップデータを生成することを特徴とする請求項１または２記載のデータ交換システム。
【請求項４】
上記マークアップ言語は、Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（ＸＭＬ）であることを特徴とする請求項３記載のデータ交換システム。
【請求項５】
上記データ交換システムは、上記第１のデータ交換計算機と上記第２のデータ交換計算機とを接続して通信を行うネットワークを備え、
上記第１のデータ交換計算機は、上記第１の実行部が出力したマークアップデータを上記ネットワークを介して上記第２の計算機へ送信する送信部を備え、
上記第２のデータ交換計算機は、上記送信部が送信したマークアップデータを上記ネットワークを介して受信して、受信したマークアップデータを上記第２の実行部に対して出力する受信部を備えた
ことを特徴とする請求項３記載のデータ交換システム。
【請求項６】
上記第１のデータ交換計算機は、上記第１のデータが有する複数の項目それぞれのバイト数とデータ型とを定義した第１のデータ定義情報を入力して、入力した第１のデータ定義情報を所定のプログラム言語を用いて定義して上記第１のデータ構造定義情報を生成するとともに、第１のデータ定義情報のデータ型とバイト数と上記第１のデータ構造定義情報の生成に使用した上記所定のプログラム言語とに基づいて項目間に挿入する隙間データのバイト数を求め、求めた隙間データのバイト数と上記第１のデータ定義情報のバイト数とを用いて、上記第１のデータが有する複数の項目それぞれのオフセット値を算出して、算出したオフセット値と上記第１のデータ定義情報とから上記第１の位置情報を生成する第１の構造体定義生成部を備え、
上記第１の実行部は、上記第１の構造体定義生成部が生成した第１の位置情報と第１のデータ構造定義情報とを入力する
ことを特徴とする請求項２記載のデータ交換システム。
【請求項７】
上記第２のデータ交換計算機は、上記第１のデータが有する複数の項目それぞれのバイト数とデータ型とを定義した第１のデータ定義情報を入力して、入力した上記第１のデータ定義情報を上記第１のデータ構造定義情報の生成に用いた所定のプログラム言語とは異なるプログラム言語を用いて定義して上記第２のデータ構造定義情報を生成するとともに、上記第１のデータ定義情報のデータ型とバイト数と上記第２のデータ構造定義情報の生成に使用したプログラム言語とに基づいて項目間に挿入する隙間データのバイト数を求め、求めた隙間データのバイト数と上記第１のデータ定義情報のバイト数とを用いて、上記第２のデータが有する複数の項目それぞれのオフセット値を算出して、算出したオフセット値と上記第１のデータ定義情報とから上記第２の位置情報を生成する第２の構造体定義生成部を備え、
上記第２の実行部は、上記第２の構造体定義生成部が生成した第２の位置情報と第２のデータ構造定義情報とを入力する
ことを特徴とする請求項６記載のデータ交換システム。
【請求項８】
第１のデータ型を有する第１のデータを入力して、上記第１のデータ型とは異なる第２のデータ型を有する第２のデータにデータ交換して出力するデータ交換計算機において、
上記第１のデータのデータ構造を定義した第１のデータ構造定義情報と、上記第１のデータのバイト数と上記第１のデータ型とを定義した第１の位置情報とを入力して、上記第１のデータ構造定義情報に基づいて上記第１のデータを入力し、入力した第１のデータから上記第１の位置情報のバイト数分のデータを取得して上記第１のデータ型のデータを文字列型のデータ文字列情報として含むマークアップデータを生成して出力する第１の実行部と、
上記第１の実行部が出力したマークアップデータと、上記第２のデータのデータ構造を定義した第２のデータ構造定義情報と、上記第２のデータのバイト数と第２のデータ型とを定義した第２の位置情報とを入力して、入力したマークアップデータから上記データ文字列情報を取得し、取得したデータ文字列情報を上記データ型の上記第２の位置情報のバイト数を有する第２のデータに変換し、変換したデータを上記第２のデータ構造定義情報に基づいて出力する第２の実行部と
を備えたことを特徴とするデータ交換計算機。
【請求項９】
複数の項目がそれぞれ所定のデータ型を有する第１のデータを入力して、入力した第１のデータを、上記第１のデータと同じ複数の項目を有して上記第１のデータが有するそれぞれの項目のデータ型とは異なるデータ型を有する第２のデータにデータ交換するデータ交換方法において、
上記第１のデータのデータ構造を定義した第１のデータ構造定義情報と、上記第１のデータが有する複数の項目それぞれのバイト数とオフセット値と第１のデータ型とを定義した第１の位置情報とを入力して、上記第１のデータ構造定義情報に基づいて上記第１のデータを入力して、入力した第１のデータから上記第１の位置情報のオフセット値を基に上記第１の位置情報のバイト数分のデータを取得して上記第１のデータ型のデータを文字列型のデータ文字列情報として含むマークアップデータを生成して出力する第１の実行工程と、
上記第１の実行工程が出力したマークアップデータと、上記第２のデータのデータ構造を定義した第２のデータ構造定義情報と、上記第２のデータが有する複数の項目それぞれのバイト数とオフセット値と第２のデータ型とを定義した第２の位置情報とを入力して、入力したマークアップデータから上記データ文字列情報を取得し、取得したデータ文字列情報を上記第２のデータ型の上記第２の位置情報のバイト数を有するデータに変換して、変換したデータを上記第２の位置情報のオフセット値の示す位置に設定して上記第２のデータを生成し、生成した第２のデータを第２のデータ構造定義情報に基づいて出力する第２の実行工程と
を有することを特徴とするデータ交換方法。
【請求項１０】
上記データ交換方法は、
上記第１の実行工程が出力したマークアップデータをネットワークを介して送信する送信工程と、
上記送信工程によって送信されたマークアップデータを上記ネットワークを介して受信する受信工程とを有する
ことを特徴とする請求項９記載のデータ交換方法。
【請求項１１】
上記データ交換方法は、
上記第１のデータが有する複数の項目それぞれのバイト数とデータ型とを定義した第１のデータ定義情報を入力して、入力した第１のデータ定義情報を所定のプログラム言語を用いて定義して上記第１のデータ構造定義情報を生成するとともに、第１のデータ定義情報のデータ型とバイト数と上記第１のデータ構造定義情報の生成に使用した上記所定のプログラム言語とに基づいて項目間に挿入する隙間データのバイト数を求め、求めた隙間データのバイト数と上記第１のデータ定義情報のバイト数とを用いて、上記第１のデータが有する複数の項目それぞれのオフセット値を算出して、算出したオフセット値と上記第１のデータ定義情報とから上記第１の位置情報を生成する第１の構造体定義生成工程を備え、
上記第１の実行工程は、上記第１の構造体定義生成工程が生成した第１の位置情報と第１のデータ構造定義情報とを入力する
ことを特徴とする請求項１０記載のデータ交換方法。
【請求項１２】
上記データ交換方法は、上記第１のデータが有する複数の項目それぞれのバイト数とデータ型とを定義した第１のデータ定義情報を入力して、入力した上記第１のデータ定義情報を上記第１のデータ構造定義情報の生成に用いた所定のプログラム言語とは異なるプログラム言語を用いて定義して上記第２のデータ構造定義情報を生成するとともに、上記第１のデータ定義情報のデータ型とバイト数と上記第２のデータ構造定義情報の生成に使用したプログラム言語とに基づいて項目間に挿入する隙間データのバイト数を求め、求めた隙間データのバイト数と上記第１のデータ定義情報のバイト数とを用いて、上記第２のデータが有する複数の項目それぞれのオフセット値を算出して、算出したオフセット値と上記第１のデータ定義情報とから上記第２の位置情報を生成する第２の構造体定義生成工程を有し、
上記第２の実行工程は、上記第２の構造体定義生成工程が生成した第２の位置情報と第２のデータ構造定義情報とを入力する
ことを特徴とする請求項１１記載のデータ交換方法。
【請求項１３】
複数の項目がそれぞれ所定のデータ型を有する上記第１のデータのデータ構造を定義した第１のデータ構造定義情報を入力する処理と、
上記第１のデータが有する複数の項目それぞれのバイト数とオフセット値と第１のデータ型とを定義した第１の位置情報とを入力する処理と、
上記第１のデータ構造定義情報に基づいて上記第１のデータを入力する処理と、
入力した第１のデータから上記第１の位置情報のオフセット値を基に上記第１の位置情報のバイト数分のデータを取得して上記第１のデータ型のデータを文字列型のデータ文字列情報として含むマークアップデータを生成して出力する処理と
をコンピュータに実行させることを特徴とする第１実行プログラム。
【請求項１４】
上記請求項１３の第１実行プログラムをコンピュータに実行させることによって出力されたマークアップデータを入力する処理と、
上記第１のデータと同じ複数の項目を有して上記第１のデータが有するそれぞれの項目のデータ型とは異なるデータ型を有する上記第２のデータのデータ構造を定義した第２のデータ構造定義情報を入力する処理と、
上記第２のデータが有する複数の項目それぞれのバイト数とオフセット値と第２のデータ型とを定義した第２の位置情報とを入力する処理と、
入力したマークアップデータから上記データ文字列情報を取得し、取得したデータ文字列情報を上記第２のデータ型の上記第２の位置情報のバイト数を有するデータに変換して、変換したデータを上記第２の位置情報のオフセット値の示す位置に設定して上記第２のデータを生成し、生成した第２のデータを第２のデータ構造定義情報に基づいて出力する処理と
をコンピュータに実行させることを特徴とする第２実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
第１のデータ型を有する第１のデータを第１のデータ型とは異なる第２のデータ型を有する第２のデータにデータ交換をする場合に、マークアップ言語で記述されたマークアップデータを介してデータ交換するデータ交換システム、及び、データ交換計算機、データ交換方法、第１実行プログラム、第２実行プログラムに関する。
【背景技術】
【０００２】
インターネットの普及に伴い、ネットワークを介して異なるオペレーティング・システムの計算機間でデータの送受信を行うシステムの構築が必要とされている。このとき、データの送信側と受信側にそれぞれデータを使用する利用者プログラムを作成することとなるが、両者が異なるプログラム言語で作成することもある。利用者プログラムでは、互いに関連をもつ複数のデータ項目の集合ならびにデータ階層を、構造体と呼ばれるデータ構造で表す。ここでは構造体として表されたデータを構造体データと呼ぶ。異なる計算機システムまたは異なるプログラム言語では、構造体データの定義方法、計算機の記憶装置やファイル・システム上での格納方法も異なっており、それらの間で構造体データを交換するために、データ表現形式を取り決める必要がある。
【０００３】
計算機間で送受信されるデータの形式として、マークアップ言語が採用されることが一般的となっている。マークアップ言語とは、データ内容を表す文字列を、文書構造や修飾情報を表すタグで区切って記述する方式の言語で、代表的なものにＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）がある。ＸＭＬは、階層をもつデータの構造を利用者が任意に定義できること、テキストファイルとして人間が可読であること等を特徴とする。ここでは、マークアップ言語の仕様を用いて表現されたデータをマークアップデータと呼ぶ。
【０００４】
マークアップ言語を用いて計算機間でデータを送受信するために、計算機上の構造体データをマークアップデータに変換する手順と、逆にマークアップデータを構造体データに変換する手順が必要であり、並びに、それらを実現する利用者プログラムの作成が必要である。
【０００５】
例えば、特開２００３−２４１９７４号公報の「実行可能オブジェクト生成方法及びプログラム」（特許文献１）に示された、ＸＭＬ形式のデータを送受信する実行可能プログラムの作成方法がある。
【特許文献１】特開２００３−２４１９７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１を一例とする従来のマークアップデータ生成方法ならびに利用者プログラムの作成方法は、構造体データとマークアップデータを相互に変換するプログラムを構造体データごとに用意する必要があった。そのため利用者プログラム作成のための管理対象が増える、さらに実行可能プログラムのサイズが大きくなるという問題点があった。
【０００７】
また、データ変換手順を実現するプログラムに誤りがあったときや、データ変換手順を高速化するといった改良が行われたときに、構造体データとマークアップデータを相互に変換するプログラムをすべて作成し直す必要があり、利用者プログラムの再構築に手間がかかるという問題があった。
【０００８】
この発明は上記のような問題点を解決するためになされたもので、構造体データとマークアップデータを相互に変換するためのデータ変換手段、ならびにそれを実現するプログラムを特定プログラム言語ごとに１つだけ用意することによって、利用者プログラムの作成を効率化することを目的とする。
【０００９】
また、データ変換手順を実現するプログラムの修正および改良が行われたときに、利用者プログラムの再構築を簡単に行えるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
この発明に係る第１のデータ型を有する第１のデータを入力して、上記第１のデータ型とは異なる第２のデータ型を有する第２のデータにデータ交換して出力するデータ交換システムは、上記第１のデータのデータ構造を定義した第１のデータ構造定義情報と、上記第１のデータのバイト数と上記第１のデータ型とを定義した第１の位置情報とを入力して、上記第１のデータ構造定義情報に基づいて上記第１のデータを入力し、入力した第１のデータから上記第１の位置情報のバイト数分のデータを取得して上記第１のデータ型のデータを文字列型のデータ文字列情報として含むマークアップデータを生成して出力する第１の実行部を備えた第１のデータ交換計算機と、上記第１のデータ交換計算機の第１の実行部が出力したマークアップデータと、上記第２のデータのデータ構造を定義した第２のデータ構造定義情報と、上記第２のデータのバイト数と第２のデータ型とを定義した第２の位置情報とを入力して、入力したマークアップデータから上記データ文字列情報を取得し、取得したデータ文字列情報を上記データ型の上記第２の位置情報のバイト数を有する第２のデータに変換し、変換したデータを上記第２のデータ構造定義情報に基づいて出力する第２の実行部を備えた第２のデータ交換計算機とを備えたことを特徴とする。
【発明の効果】
【００１１】
この発明のデータ交換システムは、第１の実行部は第１のデータ構造定義情報と第１の位置情報とを用いて第１のデータ型の第１のデータを取得してマークアップデータを生成する。このため、異なるデータ構造を有するデータからそれぞれマークアップデータを作成する場合であっても、それぞれのデータに対応する第１のデータ構造定義情報と第１の位置情報とを用意して第１の実行部に入力することによって、マークアップデータを生成する処理手順は、それぞれのデータ構造の違いに関係無く同じ処理手順を使用できる。この結果、第１の実行部は第１のデータ交換計算機のオペレーティング・システム上で動作可能なプログラム言語の種類毎に用意すれば良く、データ構造の違い毎に第１の実行部を用意する必要が無いので、第１の実行部の作成を効率化できる効果がある。
【００１２】
また、第２の実行部は、第２のデータ構造定義情報と第２の位置情報とを用いてマークアップデータを第２のデータ型の第２のデータにデータ交換する。このため、マークアップデータから異なるデータ構造を有するデータにそれぞれデータ交換する場合であっても、それぞれのデータに対応する第２のデータ構造定義情報と第２の位置情報とを用意して第２の実行部に入力することによって、マークアップデータからデータを生成する処理手順は、それぞれのデータ構造の違いに関係無く同じ処理手順を使用できる。この結果、第２の実行部は第２のデータ交換計算機のオペレーティング・システム上で動作可能なプログラム言語の種類毎に用意すれば良く、データ構造の違い毎に第２の実行部を用意する必要が無いので、第２の実行部の作成を効率化できる効果がある。
【発明を実施するための最良の形態】
【００１３】
実施の形態１．
この実施の形態では、ネットワークで接続されたサーバ装置とクライアント装置とを備え、サーバ装置とクライアント装置との間でデータ交換を行うデータ交換システムについて一例を説明する。
【００１４】
図１は、実施の形態１のデータ交換システムのシステム構成図である。図１において、データ交換システム１００は、サーバ装置である第２のデータ交換計算機１０３と、クライアント装置である第１のデータ交換計算機１０１ａ〜１０１ｆとを備えている。第２のデータ交換計算機１０３と第１のデータ交換計算機１０１ａ〜１０１ｆとは、ネットワーク１０２によって接続されている。また、第２のデータ交換計算機のオペレーティング・システムと第１のデータ交換計算機１０１ａのオペレーティング・システムとは、それぞれ異なるものとする。また、第１のデータ交換計算機１０１ａ上で動作するプログラムを作成するプログラム言語と、第２のデータ交換計算機１０３上で動作するプログラムを作成するプログラム言語とは、異なるものとする。また、第１のデータ交換計算機１０１ａ〜１０１ｆのそれぞれのオペレーティング・システムは、異なっていても、同じでもかまわない。この実施の形態では、第２のデータ交換計算機１０３と第１のデータ交換計算機１０１ａとの間でデータ交換を行う例を説明する。
【００１５】
図２は、第１のデータ交換計算機と第２のデータ交換計算機とのハードウェア構成図である。図２において、第１のデータ交換計算機１０１ａと第２のデータ交換計算機１０３とはそれぞれ、同じ図２に示すハードウェア構成をしている。第１のデータ交換計算機１０１ａと第２のデータ交換計算機１０３とは、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１３７を備えている。ＣＰＵ１３７は、バス１３８を介してＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）１３９、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）１４０、通信ボード１４４、ＣＲＴ表示装置１４１、Ｋ／Ｂ（キーボード装置）１４２、マウス１４３、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）１４５、磁気ディスク装置１４６（磁気ディスク装置は光ディスク装置でも良い。また、磁気ディスク装置１４６の他に光ディスク装置を備えていても良い。）、ＣＤＤ（コンパクトディスクドライブ）１８６、プリンタ装置１８７、スキャナ装置１８８と接続されている。ＲＡＭ１４０は、揮発性メモリの一例である。ＲＯＭ１３９、ＦＤＤ１４５、ＣＤＤ１８６、磁気ディスク装置１４６、光ディスク装置は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。通信ボード１４４は、ファクシミリ装置や、電話器、ネットワーク１０２のＬＡＮ等に接続されている。例えば、通信ボード１４４、Ｋ／Ｂ１４２、ＦＤＤ１４５などは、情報入力部の一例である。また、例えば、通信ボード１４４、スキャナ装置１８８、ＣＲＴ表示装置１４１などは、出力部の一例である。
【００１６】
ここで、通信ボード１４４は、ＬＡＮに限らず、直接、インターネット、或いはＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）に接続されていても構わない。磁気ディスク装置１４６には、オペレーティング・システム（ＯＳ）１４７、ウィンドウシステム１４８、プログラム群１４９、ファイル群１５０が記憶されている。プログラム群１４９は、ＣＰＵ１３７、ＯＳ１４７、ウィンドウシステム１４８により実行される。例えば、第１の実行プログラムは、第１のデータ交換計算機１０１ａのプログラム群１４９に記憶され、第１のデータ構造定義情報や第１の位置情報や第１のデータや第１のデータ定義情報とは、第１のデータ交換計算機１０１ａのファイル群１５０に記憶されている。また、例えば、第２の実行プログラムは、第２のデータ交換計算機１０３のプログラム群１４９に記憶され、第２のデータ構造定義情報や第２の位置情報や第２のデータや第１のデータ定義情報とは、第２のデータ交換計算機１０３のファイル群１５０に記憶されている。
【００１７】
上記プログラム群１４９には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵにより読み出され実行される。ファイル群１５０には、以下に述べる実施の形態の説明において、「〜情報」、「〜データ」として説明するものが、「〜ファイル」として記憶されている。また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータの入出力を示し、そのデータの入出力のためにデータは、磁気ディスク装置、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体に記録される。あるいは、信号線やその他の伝送媒体により伝送される。
【００１８】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、ＲＯＭ１３９に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
【００１９】
また、以下に述べる実施の形態を実施するプログラムは、磁気ディスク装置、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体による記録装置を用いて記憶されても構わない。
【００２０】
図３は、この発明によるデータ交換システム、データ交換計算機、データ交換方法ならびに第１と第２の実行プログラムの作成方法を示す全体構成図である。図３において、第１のデータ定義情報である構造体データ定義情報１１は、第１のデータ交換計算機１０１ａと第２のデータ交換計算機１０３とのそれぞれの外側に図示しているが、これは説明を容易にするため外側に記載したものであって、それぞれの計算機が備える記憶媒体に記憶されているものとする。構造体データ定義情報１１は、データ交換を行うデータの構造をプログラム言語やオペレーティング・システムに依存しない表現形式によってユーザが定義する情報である。このように、プログラム言語やオペレーティング・システムに依存しない表現形式によって定義するので、１つのデータについて一度定義を行えばよい。第１の構造体定義生成部２１は、第１のデータ交換計算機１０１ａに備えられ、構造体データ定義情報１１を入力して、第１のデータ構造定義情報である構造体定義ソース３１と第１の位置情報であるデータ項目位置情報３２を生成して出力する。すなわち、構造体定義ソース３１とデータ項目位置情報３２とはそれぞれ、自動生成される。第２の構造体定義生成部２２は、第２のデータ交換計算機１０３に備えられ、構造体データ定義情報１１を入力して、第２のデータ構造定義情報である構造体定義ソース３３と第２の位置情報であるデータ項目位置情報３４を生成して出力する。すなわち、構造体定義ソース３３とデータ項目位置情報３４とはそれぞれ、自動生成される。また、上記したように、第１のデータ交換計算機１０１ａ上で動作するプログラムを作成するプログラム言語と、第２のデータ交換計算機１０３上で動作するプログラムを作成するプログラム言語とは異なるので、構造体定義ソース３１と構造体定義ソース３３とは、異なるプログラム言語に基づく内容となる。また、データ項目位置情報３２とデータ項目位置情報３４とは、異なるプログラム言語に基づく内容となる。
【００２１】
第１のデータである構造体データ５２は、第１のデータ交換計算機１０１ａからアクセス可能な記憶媒体に記憶されたデータ交換元の第１のデータである。第１の実行プログラムである送信側利用者プログラム４１は、ユーザが第１のデータ交換計算機１０１ａ上で動作するプログラム言語を使用して作成したプログラムである。ユーザは構造体定義ソース３１を参照して、送信側利用者プログラム４１を作成する。第１の実行部であるデータ変換部４２は、ＣＰＵ１３７、ＯＳ１４７、ウィンドウシステム１４８の制御の元送信側利用者プログラム４１に記述された処理手順に従い動作して、構造体データ５２をマークアップデータ５１に変換して出力する。データ送信部４３は、データ変換部４２が出力したマークアップデータ５１を、ネットワーク１０２を介して第２のデータ交換計算機１０３に送信する。
【００２２】
データ受信部４６は、第１のデータ交換計算機１０１ａからネットワーク１０２を介して送信されたマークアップデータ５１を受け取る。第２のデータである構造体データ５３は、第２のデータ交換計算機１０３からアクセス可能な記憶媒体に記憶されたデータ交換後の第２のデータである。第２の実行プログラムである受信側利用者プログラム４４は、ユーザが第２のデータ交換計算機１０３上で動作するプログラム言語を使用して作成したプログラムである。ユーザは構造体定義ソース３３を参照して、受信側利用者プログラム４４を作成する。第２の実行部であるデータ変換部４５は、ＣＰＵ１３７、ＯＳ１４７、ウィンドウシステム１４８の制御の元受信側利用者プログラム４４に記述された処理手順に従い動作して、マークアップデータ５１を構造体データ５３に変換して出力する。
【００２３】
なお、第１のデータ交換計算機１０１ａから第２のデータ交換計算機へ、単にデータを送信するためにマークアップデータを使用する場合には、すなわち、第１のデータ交換計算機１０１ａと第２のデータ交換計算機１０３が同じプログラム言語で作成されたプログラムを実行できる場合には、第１の構造体定義生成部２１と第２の構造体定義生成部２２とは同じものとなり、結果として出力される構造体定義ソース３１，３３及びデータ項目位置情報３２，３４とはそれぞれ、同じものとなる。このように、データ交換システムは、ＯＳや実行可能なプログラムを記述するプログラム言語が同一である計算機間においても、マークアップデータを介するデータの送受信が行える。
【００２４】
次に、データ交換を行う動作について説明する。まず、利用者は、構造体データ定義情報１１を作成し、これを機械可読な形式で保存する。構造体データ定義情報１１は、第１のデータ交換計算機１０１ａと第２のデータ交換計算機１０３とにより使用するので、ネットワーク１０２で接続されたそれぞれの計算機からアクセス可能な記憶媒体をネットワーク１０２上に用意しておき、その記憶媒体に記憶させる。或いは、構造体データ定義情報１１をネットワーク１０２上のそれぞれの計算機に対して送信してもかまわない。
【００２５】
図４は、構造体データ定義情報に設定する内容の例を示す図である。構造体データ定義情報１１は、構造体を識別する構造体名１１０１と、データ構造を示す項目情報１１１０とを有する。項目情報１１１０は、項目の階層１１０２、項目名１１０３、項目が配列の場合にその要素数を表す配列１１０４、項目のデータ型１１０５、項目のサイズ１１０６を有する。
【００２６】
データ型１１０５には、文字、文字列、真偽値、整数、浮動小数点数、日付、時刻、日時（日付と時刻の両方を表す）がある。
【００２７】
項目情報１１１０は、入れ子の構造体の定義を含んでもよい。入れ子の構造体を定義する場合は、データ型１１０５に構造体の型を特定する構造体名を含める。例えば図４の項目情報１１１０の上から２行目にその例を示す。入れ子の構造体に含まれるデータ項目は、階層１１０２を１つ深くすることによって示す。例えば図４の項目情報１１１０の上から３，４行目（「ＩＴＥＭ２１，ＩＴＥＭ２２」）に入れ子の構造体を示している。「ＩＴＥＭ２１，ＩＴＥＭ２２」は、階層１１０２が「２」であり、「構造体（ＳＴＲＵＣＴ＿Ｂ）」の入れ子であることを定義している。
【００２８】
サイズ１１０６が表す意味は、データ型によって異なる。データ型が文字列のときは、サイズはそこに含まれる最大の文字数を表す。データ型が整数や浮動小数点数のときは、サイズはバイト数またはビット数とする。
【００２９】
図４の例では、整数と浮動小数点数についてデータ型とサイズを分けて表したが、データ型を「２バイト整数」「４バイト整数」「４バイト浮動小数点」「８バイト浮動小数点数」というようにして、データ型によって、サイズを区別して表してもよい。
【００３０】
構造体データ定義情報１１を機械可読な形式で保存するにあたって、その形式は１つ以上のＣＳＶ（Ｃｏｍｍａ  Ｓｅｐａｒｅｔｅｄ  Ｖａｌｕｅ）の組み合わせとしてもよいし、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）としてもよい。
【００３１】
図４の例では、データ型を「整数」「文字列」のように日本語で表したが、機械可読な形式で保存するにあたっては、それらを区別することが可能な記号としてもよい。また、構造体データ定義情報１１を定義する場合には、図２のＫ／Ｂ１４２やマウス１４３を使用して入力する。
【００３２】
次に、第１の構造体定義生成部２１に構造体データ定義情報１１を与えて、構造体定義ソース３１とデータ項目位置情報３２とを生成する。
【００３３】
図５に、第１の構造体定義生成部２１がプログラム言語としてＣ言語を使用して構造体定義ソース３１とデータ項目位置情報３２を作成した場合の例を示す。構造体定義ソース３１の１行目には構造体名１１０１を定義し、２行目以降に項目情報１１１０をＣ言語のプログラミング規則に従い定義する。データ項目位置情報３２の階層３２０２は構造体データ定義情報１１の階層１１０２と同じであり、項目名３２０３は構造体データ定義情報１１の項目名１１０３と同じであり、配列３２０４は構造体データ定義情報１１の配列１１０４と同じであり、データ型３２０５は構造体データ定義情報１１のデータ型１１０５と同じである。オフセット３２０７は、項目の構造体先頭からのバイト位置を表すオフセット値である。ただし、項目が入れ子の構造体に含まれるときは、入れ子の構造体先頭からのバイト位置とする。バイト数３２０８は、項目のバイト数である。項目が配列の場合は、１つの要素のバイト数とする。項目情報３２１０は、階層３２０２、項目名３２０３、配列３２０４、データ型３２０５、オフセット３２０７、バイト数３２０８とを有する。
【００３４】
プログラム言語によっては、項目のデータ型に応じてそのオフセットを２、４、または８の倍数に揃えることがある。このために、直前の項目との間に隙間を設ける。データ項目位置情報のオフセットとバイト数は、この隙間を加味したものとする。図５の例では、「ＧＲＯＵＰ２」のオフセットを８の倍数にするために、「ＧＲＯＵＰ２」の直前の項目である「ＩＴＥＭ１」との間に４バイトの隙間を設ける。また、「ＩＴＥＭ２２」のオフセットを８の倍数にするために、「ＩＴＥＭ２２」の直前の項目である「ＩＴＥＭ２１」との間に６バイトの隙間を設ける。これらの隙間を考慮して、第１の構造体定義生成部２１は、データ項目位置情報３２のオフセット３２０７とバイト数３２０８を求める。データ項目位置情報３２のオフセット３２０７とバイト数３２０８以外の項目については、構造体データ定義情報１１の該当する項目の内容をそのまま引き継いで定義する。
【００３５】
第１の構造体定義生成部２１は、構造体定義ソース３１をテキストファイルとして、またデータ項目位置情報３２を機械可読な形式で保存する。データ項目位置情報３２を機械可読な形式で保存するにあたって、その形式は１つ以上のＣＳＶ（Ｃｏｍｍａ  Ｓｅｐａｒｅｔｅｄ  Ｖａｌｕｅ）の組み合わせとしてもよいし、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）としてもよい。
【００３６】
同様にして、第２の構造体定義生成部２２に構造体データ定義情報１１を与えて、構造体定義ソース３３とデータ項目位置情報３４を生成する。このとき、第２の構造体定義生成部２２は、第１の構造体定義生成部２１が使用したプログラム言語とは異なるプログラム言語を使用して構造体定義ソース３３を生成する。ただし、単に第１のデータ交換計算機１０１ａと第２のデータ交換計算機１０３との間でマークアップデータを介して単にデータを送受信する場合には、第１の構造体定義生成部２１と第２の構造体定義生成部２２とは、同じプログラム言語を使用して構造体定義ソース３１、３３を生成することもある。
【００３７】
利用者は、構造体定義ソース３１を参照する送信側利用者プログラム４１を作成する。送信側利用者プログラム４１には、生成された構造体定義ソース３１に定義された構造体をデータ型とする変数の宣言と、構造体定義ソース３１に定義された構造体を有するデータからマークアップデータを生成して出力する処理と、マークアップデータを送信する処理とを記述する。マークアップデータを生成して出力する処理と、マークアップデータを送信する処理とはそれぞれ、予め関数としてプログラミングされており、ユーザはその関数を呼び出す処理を送信側利用者プログラム４１に定義する。マークアップデータを生成する処理の関数を呼び出す場合には、パラメータとして、第１のデータの構造体名と、構造体をデータ型とする変数の先頭位置と、変換後のマークアップデータを格納する変数を指定する。図６（ａ）に送信側利用者プログラムの例を示す。
【００３８】
同様に、利用者は、構造体定義ソース３３を参照する受信側利用者プログラム４４を作成する。受信側利用者プログラム４４には、生成された構造体定義ソース３３に定義された構造体をデータ型とする変数の宣言と、マークアップデータを受信する処理と、マークアップデータを構造体定義ソース３３に定義した構造体を有するデータに変換して出力する処理とを記述する。マークアップデータを受信する処理と、マークアップデータを構造体定義ソース３３に定義した構造体を有するデータに変換して出力する処理とはそれぞれ、予め関数としてプログラミングされており、ユーザはその関数を呼び出す処理を受信側利用者プログラム４４に定義する。マークアップデータを構造体定義ソース３３に定義した構造体を有するデータに変換して出力する処理の関数を呼び出す場合には、パラメータとして、第２のデータの構造体名と、構造体をデータ型とする変数の先頭位置と、変換前のマークアップデータを格納した変数を指定する。図６（ｂ）に受信側の利用者プログラムの例を示す。上記したように、第１のデータ交換計算機１０１ａと第２のデータ交換計算機１０３とはそれぞれ、異なるプログラム言語で記述された処理手順を実行する。このため、送信側利用者プログラム４１と受信側利用者プログラム４４とは、それぞれ異なるプログラム言語により記述する。また、送信側利用者プログラム４１と受信側利用者プログラム４４とがそれぞれ呼び出す関数は、送信側利用者プログラム４１と受信側利用者プログラム４４とをそれぞれ記述した別々のプログラム言語を用いて記述するものとする。また、構造体定義ソース３１は、送信側利用者プログラム４１を記述したプログラム言語と同じプログラム言語を用いて作成し、構造体定義ソース３３は、受信側利用者プログラム４４を記述したプログラム言語と同じプログラム言語を用いて作成する。
【００３９】
利用者は、送信側利用者プログラム４１と受信側利用者プログラム４４と構造体定義ソース３１、３３とをそれぞれコンパイルして、実行可能プログラムを生成する。次にそれぞれの実行可能プログラムを実行する。送信側利用者プログラム４１を第１のデータ交換計算機１０１ａが実行した場合の動作を説明する。
【００４０】
第１のデータ交換計算機１０１ａのデータ変換部４２は、送信側利用者プログラム４１に記述された処理手順に従い、まず、構造体定義ソース３１に定義された構造体をデータ型とする変数に構造体データ５２を格納する（図６（ａ）の「構造体データの読み込み」）。続いて、構造体データ５２からマークアップデータを生成して出力する処理を行う関数に記述された処理手順を実行する（図６（ａ）の「ｔｏＭａｒｋＵｐＤａｔａ（“ＳＴＲＵＣＴ＿Ａ”，＆ｓａ，＆ｘｍｌ）」）。
【００４１】
構造体データ５２からマークアップデータを生成して出力する処理を行う関数に記述された処理手順は、データ項目位置情報３２を参照しながら、構造体データ５２をマークアップデータに変換する。構造体データ５２からマークアップデータを生成して出力する処理を行う関数に記述された処理手順のフローチャートを図７〜図９に示す。
【００４２】
図７において、送信側利用者プログラム４１で指定された構造体名（ＳＴＲＵＣＴ＿Ａ）をもとに、データ項目位置情報３２を取得する（Ｓ４２０１）。次に変換手順で構造体データの中のどの位置のデータ項目を変換するかを示すデータ・ポインタを０に代入する。これは構造体データの先頭を表す（Ｓ４２０２）。データ変換部４２は、データ項目位置情報３２の項目情報３２１０を順番に１行ずつ参照しながら、データ項目変換処理（Ｓ４２０３）を繰り返す（Ｓ４２０５，ＮＯ）。データ項目変換処理については、このあと図８の説明で述べる。データ項目位置情報３２のすべての項目情報３２１０の処理が終了したら（Ｓ４２０５，ＹＥＳ）、マークアップデータ全体を生成する（Ｓ４２０４）。
【００４３】
図８のデータ項目変換処理について説明する。データ項目変換処理は、データ項目位置情報の項目情報３２１０の有する１つの項目（例えば、図５の「ＩＴＥＭ１」，「ＧＲＯＵＰ２」毎）に関する変換処理を行う。まず、データ項目が配列か否かを判定する。項目が配列でないときは（Ｓ４２１７，ＮＯ）、単項目変換処理（Ｓ４２１１）を行う。単項目変換処理については、このあと図９の説明で述べる。次に、データ・ポインタに項目のバイト数を加える（Ｓ４２１２）。項目が配列のときは（Ｓ４２１７，ＹＥＳ）、まず配列開始処理を行う（Ｓ４２１３）。ここでは、マークアップ言語に配列の開始を表すタグがある場合にそれを生成する。次に配列の要素数分（Ｓ４２１８，ＮＯ）、単項目変換処理を行う（Ｓ４２１４）。次に、データ・ポインタに項目の配列要素１つ分のバイト数を加える（Ｓ４２１５）。配列の要素数分の処理が終了したら（Ｓ４２１８，ＹＥＳ）、配列終了処理を行う（Ｓ４２１６）。ここでは、マークアップ言語に配列の終了を表すタグがある場合にそれを生成する。
【００４４】
図９の単項目変換処理について説明する。単項目変換処理は、１つのデータ項目に関する変換処理を行う。ただし、データ項目が配列の場合は１つの要素に関する変換処理を行う。まず、項目が構造体か否かを判定する。項目が構造体ではないときは（Ｓ４２２７，ＮＯ）、構造体データのデータ・ポインタの位置からデータ項目位置情報の項目情報３２１０で指定されたバイト数３２０８分のデータを取り出し、同じく項目情報３２１０で指定されたデータ型３２０５の型の値に変換する（Ｓ４２２１）。さらに、変換した値を文字列型にする（Ｓ４２２９）。次に、項目情報３２１０の項目名３２０３を文字列型に変換した値に対するタグとして、マークアップデータのエレメントを生成する（Ｓ４２２２）。項目が構造体のときは（Ｓ４２２７，ＹＥＳ）、まず構造体開始処理を行う（Ｓ４２２３）。ここでは、マークアップ言語に構造体の開始を表すタグがある場合にそれを生成する。次に、構造体データ内の入れ子のデータ項目の位置を指すための副データ・ポインタに、現在のデータ・ポインタの値を代入する（Ｓ４２２４）。次に入れ子のデータ項目がある間（Ｓ４２２８，ＮＯ）、再帰的なデータ項目変換処理の呼び出し（Ｓ４２２５）を繰り返す。ただし、ここで呼び出されたデータ項目変換処理の中でのデータ・ポインタは副データ・ポインタに読み替える。入れ子のデータ項目が終了したら（Ｓ４２２８，ＹＥＳ）、構造体終了処理を行う（Ｓ４２２６）。ここでは、マークアップ言語に構造体の開始を表すタグがある場合にそれを生成する。入れ子のデータ項目の終了は、データ項目位置情報３２の階層３２０２が、構造体の階層より深いか否かで判定する。
【００４５】
図４、図５の構造体の例を使用して、構造体データと、それを変換したマークアップデータの例を図１０に示す。構造体データは、四角で示したデータ項目が、第１のデータ変換計算機１０１ａのメモリ上に図１０の上にある項目から連続して配置されたものである。データ項目の左上の数値は構造体データの先頭からのオフセットを表す。データ項目の下の数値はデータ項目のバイト数を表す。四角の中の文字や数値は、データ項目に格納されている値を表す。塗りつぶされた四角はデータ項目の間の隙間データを表す。
【００４６】
生成されたマークアップデータは、図６（ａ）に記載した送信側利用者プログラム４１によると、変数「ｘｍｌ」に格納される。第１のデータ交換計算機１０１ａは、データ送信部４３により「ｘｍｌ」に格納されたマークアップデータ５１をネットワーク１０２を介して第２のデータ交換計算機１０３に送信する。しかし、マークアップデータの送信を行う処理を送信側利用者プログラム４１に記述することによって、送信側利用者プログラム４１をデータ変換部４２が実行する中で、データ送信部４３を起動して「ｘｍｌ」に格納したマークアップデータ５１を第２のデータ交換計算機１０３に送信するようにしてもかまわない。
【００４７】
第２のデータ交換計算機１０３は、データ受信部４６によってネットワーク１０２を介して第１のデータ交換計算機１０１ａから送信されたマークアップデータ５１を受け取る。
【００４８】
受信側利用者プログラム４４は、受け取ったマークアップデータを格納するために変数を指定するとともに、マークアップデータを構造体データ５３に変換する際の構造体のデータ型を指定する構造体名を宣言する。
【００４９】
第２のデータ交換計算機１０３のデータ変換部４５は、受信側利用者プログラム４４に記述された処理手順に従い、まず、マークアップデータを格納するために指定した変数「ｘｍｌ」にマークアップデータを格納する（図６（ｂ）の「マークアップデータの読み込み」）。続いて、マークアップデータから構造体データ５３を生成して出力する処理を行う関数に記述された処理手順を実行する（図６（ｂ）の「ｆｒｏｍＭａｒｋＵｐＤａｔａ（“ＳＴＲＵＣＴ＿Ａ”，＆ｓａ，ｘｍｌ）」）。
【００５０】
マークアップデータから構造体データ５３を生成して出力する処理を行う関数に記述された処理手順は、データ項目位置情報３４を参照しながら、マークアップデータを構造体データ５３に変換する。マークアップデータから構造体データ５３を生成して出力する処理を行う関数に記述された処理手順のフローチャートを図１１〜図１３に示す。
【００５１】
図１１〜図１３が図７〜図９の送信側のデータ変換処理と異なるのは、送信側のデータ変換部４２が、構造体データ５２からデータ項目の値を取り出してマークアップデータのエレメントを生成する処理を繰り返すのに対し、受信側のデータ変換処理は、図１４に示すように、マークアップデータのエレメントの値を構造体データ５３のデータ項目に格納する処理を繰り返す点である。
【００５２】
上記した第１の構造体定義生成部２１は、第１のデータ交換計算機１０１ａで実行可能なプログラム言語を使用して構造体定義ソース３１とデータ項目位置情報３２とを生成していた。第１のデータ交換計算機１０１ａで実行可能なプログラム言語は１つとは限らず、複数あることが考えられる。このため、使用するプログラム言語を指定する情報をパラメータとして第１の構造体定義生成部２１に与えてもかまわない。また同じように、第２の構造体定義生成部は、第２のデータ交換計算機１０３で実行可能なプログラム言語を使用して構造体定義ソース３３とデータ項目位置情報３４とを生成していた。第２のデータ交換計算機１０３で実行可能なプログラム言語は１つとは限らず、複数あることが考えられる。このため、使用するプログラム言語を指定する情報をパラメータとして第２の構造体定義生成部２２に与えてもかまわない。
【００５３】
以上のように、この実施の形態のデータ交換システム、データ交換計算機、データ交換方法、第１の実行プログラム、第２の実行プログラムは、以下の効果を奏する。
【００５４】
第１のデータ構造定義情報と第１の位置情報とを使用してマークアップデータに変換するので、異なる構造を有する複数の変換元のデータでマークアップデータを生成する第１の実行部や第１の実行工程や第１の実行プログラムを共有して使用できる。このため、プログラムの本数が減り、プログラムの管理が容易になるとともに、共有して使用するので、変換元のデータの構造毎にプログラムを作成するよりも、作成効率が上がる。また、プログラムのバグにより受ける影響を少なくできる。また、マークアップデータを生成する手順に変更が発生したり、処理を高速化する等の変更が発生した場合であっても、第１の実行部や第１の実行工程や第１の実行プログラムを対応させる手間を少なくできる。
【００５５】
また、第２のデータ構造定義情報と第２の位置情報とを使用してマークアップデータから変換するので、複数の変換後のデータでマークアップデータから変換後のデータを生成する第２の実行部や第２の実行工程や第２の実行プログラムを共有して使用できる。このため、プログラムの本数が減り、プログラムの管理が容易になるとともに、共有して使用するので、変換後のデータの構造毎にプログラムを作成するよりも、作成効率が上がる。また、プログラムのバグにより受ける影響を少なくできる。また、マークアップデータから変換後のデータを生成する手順に変更が発生したり、処理を高速化する等の変更が発生した場合であっても、第２の実行部や第２の実行工程や第２の実行プログラムを対応させる手間が少なくなる。
【００５６】
また、マークアップデータはマークアップ言語を使用して生成する。このため、例えば、データ内容を示す文字列にデータ項目名をタグとして付加でき、文字列が対応するデータ項目名を容易に判断できる。また、構造体の開始と終了とをそれぞれ表すタグがあるため、構造体を容易に判断できる。
【００５７】
また、第１のデータ交換計算機は送信部を備え、第２のデータ交換計算機は受信部を備えた。このため、ネットワークで接続された計算機の間でマークアップデータを送受信して、データ交換を容易に実行できる。
【００５８】
また、第１のデータ構造定義情報と第１の位置情報とを自動生成する第１の構造体定義生成部を備えた。このため、第１のデータ構造定義情報と第１の位置情報とは、統一されたフォーマットで生成される。また、生成された内容にバグが無い。
【００５９】
また、第２のデータ構造定義情報と第２の位置情報とを自動生成する第２の構造体定義生成部を備えた。このため、第２のデータ構造定義情報と第２の位置情報とは、統一されたフォーマットで生成される。また、生成された内容にバグが無い。
【００６０】
また、第１のデータ構造定義情報と第１の位置情報と第２のデータ構造定義情報と第２の位置情報とは、同一の第１のデータ定義情報を元にして生成される。このため、ユーザが第１のデータ定義情報を用意するだけで、データ変換に使用する第１のデータ構造定義情報と第１の位置情報と第２のデータ構造定義情報と第２の位置情報とが自動生成され、データ変換を容易に実行できる。
【００６１】
また、データ交換方法は送信工程及び受信工程を有する。このため、ネットワークで接続された計算機の間でマークアップデータを送受信して、データ交換を容易に実行できる。
【００６２】
また、データ交換方法は、第１のデータ構造定義情報と第１の位置情報とを自動生成する第１の構造体定義生成工程を有する。このため、第１のデータ構造定義情報と第１の位置情報とは、統一されたフォーマットで生成される。また、生成された内容にバグが無い。
【００６３】
また、データ交換方法は、第２のデータ構造定義情報と第２の位置情報とを自動生成する第２の構造体定義生成工程を有する。このため、第２のデータ構造定義情報と第２の位置情報とは、統一されたフォーマットで生成される。また、生成された内容にバグが無い。
【００６４】
また、第１のデータ構造定義情報と第１の位置情報と第２のデータ構造定義情報と第２の位置情報とは、同一の第１のデータ定義情報を元にして生成される。このため、ユーザが第１のデータ定義情報を用意するだけで、データ変換に使用する第１のデータ構造定義情報と第１の位置情報と第２のデータ構造定義情報と第２の位置情報とが自動生成され、データ変換を容易に実行できる。
【００６５】
この実施の形態では、利用者プログラムで定義された構造体データとマークアップデータの間で相互に変換する方法において、構造体データ内のデータ項目位置情報を用いて、構造体データからマークアップデータに変換する手順と、逆にマークアップデータを構造体データに変換する手順を備えることを特徴とするマークアップデータの生成方法の一例を説明した。
【００６６】
また、構造体データ定義情報から、特定プログラム言語で記述された利用者プログラムが使用する構造体定義ソースと、構造体データ内のデータ項目位置情報を生成する手段を備え、生成された項目データ位置情報を、前記の構造体データとマークアップデータの間の変換手順で用いることを特徴とするマークアップデータの生成方法の一例を説明した。
【００６７】
また、マークアップ言語はＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）であることを特徴とするマークアップデータの生成方法の一例を説明した。
【００６８】
また、高水準言語で記述された利用者プログラムの作成方法の一例を説明した。
【００６９】
また、マークアップデータを別の利用者プログラムに送るデータ送信手段と、マークアップデータを別の利用者プログラムから受け取るデータ受信手段を備えることを特徴とする利用者プログラムの作成方法の一例を説明した。
【００７０】
また、マークアップデータを送信する利用者プログラムと、受信する利用者プログラムを記述する高水準言語が異なることを特徴とする利用者プログラムの作成方法の一例を説明した。
【００７１】
実施の形態２．
この実施の形態では、１台のデータ交換計算機を使用してデータ交換を行う一例を説明する。
【００７２】
図１５は、この実施の形態のデータ交換システムのシステム構成図である。図１５のデータ交換計算機１０１は、図３に示した第１のデータ交換計算機１０１ａと第２のデータ交換計算機１０３がそれぞれ備える要素のうち、データ送信部４３とデータ受信部４６以外の要素を全て備える。これは、データ交換計算機１０１は、１台の計算機でデータ交換を実現するため、マークアップデータをネットワークを介して送受信する必要がないためである。また、計算機の構成は図３と同様に図２の構成を備えるものとする。
【００７３】
以下に、データ交換計算機１０１の利用形態例を説明する。例えば、データ交換計算機１０１はプログラム言語Ａを使用して作成したプログラムと、プログラム言語Ｂを使用して作成したプログラムとを実行できるものとする。構造体データ５２は、プログラム言語Ａで作成されたプログラムによって生成されるが、データの加工はプログラム言語Ｂを使用して作成したプログラムで行うものとする。このような場合には、構造体データ５２をデータ変換部４２によってマークアップデータに変換して、データ変換部４５によってマークアップデータを構造体データ５３に変換する。変換するために必要な構造体定義ソース３１，３３とデータ項目位置情報３２，３４と利用者プログラム４１，４４とは、上記した実施の形態１と同様に作成する。
【００７４】
以上のように、１台のデータ交換計算機によってもデータ交換が行えるので、例えば、構造体データを作成するプログラムと使用するプログラムとでプログラム言語が異なる場合に容易に対応できる効果がある。
【００７５】
実施の形態３．
実施の形態１では、第１のデータ交換計算機をクライアント装置とし、第２のデータ交換計算機をサーバ装置として、データ交換を行う例を説明した。しかし、第２のデータ交換計算機をクライアント装置とし、第１のデータ交換計算機をサーバ装置としてもかまわない。また、第１のデータ交換計算機と第２のデータ交換計算機とをそれぞれ異なるクライアント装置としてデータ交換を行うことも可能である。
【図面の簡単な説明】
【００７６】
【図１】実施の形態１のデータ交換システムのシステム構成図である。
【図２】第１のデータ交換計算機と第２のデータ交換計算機とのハードウェア構成図である。
【図３】この発明によるデータ交換システム、データ交換計算機、データ交換方法ならびに第１と第２の実行プログラムの作成方法を示す全体構成図である。
【図４】（ａ），（ｂ）は構造体データ定義情報に設定する内容の例を示す図である。
【図５】（ａ）は構造体定義ソースの例を示し、（ｂ）はデータ項目位置情報の例を示す図である。
【図６】（ａ）は送信側利用者プログラムの例を示し、（ｂ）は受信側利用者プログラムの例を示す図である。
【図７】構造体データからマークアップデータを生成して出力する処理を行う関数に記述された処理手順のフローチャート図である。
【図８】構造体データからマークアップデータを生成して出力する処理を行う関数に記述された処理手順のフローチャート図である。
【図９】構造体データからマークアップデータを生成して出力する処理を行う関数に記述された処理手順のフローチャート図である。
【図１０】構造体データとマークアップデータの例を示す図である。
【図１１】マークアップデータから構造体データを生成して出力する処理を行う関数に記述された処理手順のフローチャート図である。
【図１２】マークアップデータから構造体データを生成して出力する処理を行う関数に記述された処理手順のフローチャート図である。
【図１３】マークアップデータから構造体データを生成して出力する処理を行う関数に記述された処理手順のフローチャート図である。
【図１４】構造体データとマークアップデータの例を示す図である。
【図１５】実施の形態２のデータ交換システムのシステム構成図である。
【符号の説明】
【００７７】
１１  構造体データ定義情報、２１  第１の構造体定義生成部、２２  第２の構造体定義生成部、３１  構造体定義ソース、３２  データ項目位置情報、３３  構造体定義ソース、３４  データ項目位置情報、４１  利用者プログラム、４２  データ変換部、４３  データ送信部、４４  利用者プログラム、４５  データ変換部、４６  データ受信部、５１  マークアップデータ、５２，５３  構造体データ、１００  データ交換システム、１０１  データ交換計算機、１０１ａ〜１０１ｆ  第１のデータ交換計算機、１０２  ネットワーク、１０３  第２のデータ交換計算機、１３７  ＣＰＵ、１３８  バス、１３９  ＲＯＭ、１４０  ＲＡＭ、１４１  ＣＲＴ表示装置、１４２  Ｋ／Ｂ、１４３  マウス、１４４  通信ボード、１４５  ＦＤＤ、１４６  磁気ディスク装置、１４７  オペレーティング・システム（ＯＳ）、１４８  ウィンドウシステム、１４９  プログラム群、１５０  ファイル群、１８６  ＣＤＤ、１８７  プリンタ装置、１８８  スキャナ装置、１１０１  構造体名、１１０２，３２０２  階層、１１０３，３２０３  項目名、１１０４，３２０４  配列、１１０５，３２０５  データ型、１１０６  サイズ、１１１０，３２１０  項目情報、３２０７  オフセット、３２０８  バイト数。
【図１】
2005327057.tif 000003
【図２】
2005327057.tif 000004
【図３】
2005327057.tif 000005
【図４】
2005327057.tif 000006
【図５】
2005327057.tif 000007
【図６】
2005327057.tif 000008
【図７】
2005327057.tif 000009
【図８】
2005327057.tif 000010
【図９】
2005327057.tif 000011
【図１０】
2005327057.tif 000012
【図１１】
2005327057.tif 000013
【図１２】
2005327057.tif 000014
【図１３】
2005327057.tif 000015
【図１４】
2005327057.tif 000016
【図１５】
2005327057.tif 000017