(57)【要約】【課題】プログラム間通信を行っていたAPの内の一方のAPのプログラム記述言語を変更する場合、変更後のプログラム記述言語では表現できないデータ形式が他方のAPに含まれている場合であっても、他方のプログラムの変更を不要にする。【解決手段】 データ構造生成システム２は、AP41のプログラム記述1に基づいてAP41が送受信の対象にしている各項目のデータ構造情報(名標，サイズ，オフセット等を含む)を生成し、データ構造記憶部３に登録する。データ送信時、AP51は、送信データに含ませる項目の名標とその値をデータ操作手段53に渡し、データ操作手段53は、データ構造記憶部３を参照し、上記値を所定のバイト位置に含む送信データを生成する。データ受信時、AP51は、参照する項目の名標をデータ操作手段53に渡し、データ操作手段53は、データ構造記憶部３を参照し、受信データ領域55から参照対象項目の値を抽出する。【選択図】      図１
2006085407.tif 000002
【特許請求の範囲】
【請求項１】
第１のプログラムと第２のプログラムとの間でデータを送受信するプログラム間通信システムにおいて、
前記第１のプログラムで定義されている送受信の対象となる項目それぞれのデータ構造情報が登録されたデータ構造記憶部と、
前記第１のプログラムへの送信データに含ませる項目の名標とその値とが前記第２のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記指定された値を含む前記第１のプログラムにおいて認識可能な送信データを生成し、参照する項目の名標が前記第２のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記第１のプログラムから送られてきた受信データから前記指定された項目の値を抽出するデータ操作手段とを備えたことを特徴とするプログラム間通信システム。
【請求項２】
請求項１記載のプログラム間通信システムにおいて、
前記第１のプログラムのソースプログラムに基づいて、前記第１のプログラムで定義されている送受信の対象となる項目それぞれのデータ構造情報を生成し、該生成したデータ構造情報を前記データ構造記憶部に登録するデータ構造生成システムを備えたことを特徴とするプログラム間通信システム。
【請求項３】
請求項２記載のプログラム間通信システムにおいて、
前記データ構造生成システムが、
前記第１のプログラムのソースプログラムを取得するプログラム記述取得手段と、
該プログラム記述取得手段が取得した前記ソースプログラムから、送受信の対象にしている項目それぞれのデータ定義記述を抽出するデータ定義検出手段と、
該データ定義検出手段で抽出した前記各項目のデータ定義記述に基づいて、前記各項目のデータ構造情報を生成するデータ構造抽出手段と、
該データ構造抽出手段が生成した前記各項目のデータ構造情報を前記データ構造記憶部に登録するデータ構造格納手段とを備えたことを特徴とするプログラム間通信システム。
【請求項４】
請求項３記載のプログラム間通信システムにおいて、
前記データ構造生成システムが、
システム管理者の指示に従って、前記データ構造記憶部に、新たに送受信の対象にする項目のデータ構造情報を登録するデータ構造生成手段と、
システム管理者の指示に従って、前記データ構造記憶部に登録されているデータ構造情報の属性値を更新するデータ構造更新手段とを備えたことを特徴とするプログラム間通信システム。
【請求項５】
請求項１記載のプログラム間通信システムにおいて、
前記データ構造情報が、項目の名標、サイズ及びオフセットを含み、
前記データ操作手段が、送信データに含ませる項目の名標とその値とが指定されたとき、前記指定された名標と対応するオフセットを前記データ構造記憶部から取得し、該取得したオフセットによって示される位置に前記指定された値を設定することにより送信データを生成し、参照する項目の名標が指定されたとき、前記指定された名標と対応するサイズ及びオフセットを前記データ構造記憶部から取得し、受信データ中の前記取得したオフセットによって示される位置から前記取得したサイズ分のデータを抽出する構成を有することを特徴とするプログラム間通信システム。
【請求項６】
第１のプログラムと第２のプログラムとの間でデータを送受信するプログラム間通信システムにおいて、
前記第１のプログラムで定義されている送受信の対象となる項目それぞれのデータ構造情報が登録されたデータ構造記憶部と、
前記第１のプログラムへの送信データに含ませる項目の名標とその値とが前記第２のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記指定された値を含む前記第１のプログラムにおいて認識可能な送信データを生成し、参照する項目の名標が前記第２のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記第１のプログラムから送られてきた受信データから前記指定された項目の値を抽出する第１のデータ操作手段と、
前記第２のプログラムへの送信データに含ませる項目の名標とその値とが前記第１のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記指定された値を含む前記第２のプログラムにおいて認識可能な送信データを生成し、参照する項目の名標が前記第１のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記第２のプログラムから送られてきた受信データから前記指定された項目の値を抽出する第２のデータ操作手段とを備えたことを特徴とするプログラム間通信システム。
【請求項７】
第１のプログラムと第２のプログラムとの間でデータを送受信するプログラム間通信方法において、
前記第１のプログラムで定義されている送受信の対象となる項目それぞれのデータ構造情報をデータ構造記憶部に登録し、
前記第１のプログラムへの送信データに含ませる項目の名標とその値とが前記第２のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記指定された値を含む前記第１のプログラムにおいて認識可能な送信データを生成し、参照する項目の名標が前記第２のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記第１のプログラムから送られてきた受信データから前記指定された項目の値を抽出することを特徴とするプログラム間通信方法。
【請求項８】
第２のプログラムとプログラム間通信を行う第１のプログラムのソースプログラムに基づいて、前記第１のプログラムで定義されている送受信の対象となる項目それぞれのデータ構造情報を生成し、該生成したデータ構造情報をデータ構造記憶部に登録する構成を有することを特徴とするデータ構造生成システム。
【請求項９】
コンピュータを、
第２のプログラムとプログラム間通信を行う第１のプログラムのソースプログラムに基づいて、前記第１のプログラムで定義されている送受信の対象となる項目それぞれのデータ構造情報を生成し、該生成したデータ構造情報をデータ構造記憶部に登録するデータ構造生成システムとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム相互間でデータ送受信を行うプログラム間通信技術に関し、特に、通信相手のプログラムにおいて定義されている送受信対象データのデータ構造を意識することなく、データの送受信を行うことができるプログラム間通信技術に関する。
【背景技術】
【０００２】
プログラム相互間で通信を行う場合、予め互いのプログラム間で送受信するデータ形式を取り決めた後、取り決めたデータ形式に従いデータを作成／参照するアプリケーションプログラムを作成する必要がある。従って、通信を行うプログラムを新規に作成する場合には、送受信するデータのデータ形式を双方のプログラムで扱える共通のデータ形式となるように取り決めを行う。しかし、ユーザインタフェースの改善などによるシステムの連携、統合などにより、既にプログラム相互間で通信を行っている一方のプログラムのみを変更する場合があり、この時、開発効率向上や他システムとの親和性などの理由からプラットフォームやプログラム記述言語を変更することがある。このような場合、プログラム間で送受信するデータ形式が変更後のプログラム言語では表現できないデータ形式となる場合がある。
【０００３】
一般的な解決策としては、プログラム相互間での通信を継続するために、送受信するデータのデータ形式を双方のプログラム言語で扱える共通のデータ形式となるよう新たに定義しなおすことが考えられる。
【０００４】
また、別の解決策として以下の方法が考えられる。従来、プログラム記述言語に依存しないプログラム間通信を行う方法として、IDL(インターフェース定義言語)を用いた方法が知られている（例えば、特許文献１〜３参照）。各プログラムのインターフェースをIDLと呼ばれる定義言語で記述し、このIDLソースをコンパイルしてサブプログラムを生成し、各プログラムからは、このサブプログラムを呼び出すことで、プログラム記述言語に依存しないプログラム間通信を実現する。
【０００５】
上述したIDLを用いて、双方のプログラム言語で共通に利用できないデータ型を処理する例が、特許文献１に記載されている。この公報に記載されているプログラム開発支援ツールは、IDL記述にTYPEDEF構文を使用した新記述規則を設け、IDLコンパイラで上記新記述規則に対応した型変換テーブルを備えることにより、双方のプログラム言語で共通に利用できないデータ型の処理を実現している。また、この公報では、同様の原理を利用することで、原始プログラムからIDLソースを生成する方法についても述べられており、既成のプログラムを流用して他のプログラムと連携した処理を行う場合についても、双方のプログラム言語で共通に利用できないデータ型の処理を実現している。
【特許文献１】特開平１１−２９６３５９号公報
【特許文献２】特開２００２−３４２０７８号公報
【特許文献３】特開平１０−２３２７８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上述した従来の技術の内、送受信するデータのデータ形式を再定義する方法の場合は、プログラムの変更を行う必要のないもう片方のプログラムについても、プログラムの変更が必要となるという問題がある。例えば、プログラム間通信を行っていたCOBOLプログラムの一方をJava（登録商標）プログラムに変更した場合、COBOLにおけるPICTURE句など、Javaプログラムにない表現を他の表現に改める必要がある。
【０００７】
また、IDLを用いる方法の場合は、IDLを未使用で既にプログラム相互間で通信を行っているシステムにおいては、双方のプログラムを、IDLを用いて通信を行うように実装しなければならず、作業量が膨大になるという問題がある。即ち、プログラム間通信を行っていた第１，第２のプログラムの双方において、IDLソースを生成し、更に、IDLソースをコンパイルしてサブプログラム（スケルトン，スタブ）を生成する必要があると共に、ORB（オブジェクト・リクエスト・ブローカ）を実装する必要があるため、作業量が膨大なものになってしまう。
【０００８】
そこで、本発明の目的は、プログラム間通信を行っていた２つのプログラムの内の一方のプログラムのプログラム記述言語を変更する場合、変更後のプログラム記述言語では表現できないデータ形式が他方のプログラムに含まれている場合であっても、他方のプログラムについては全く変更を行うことなく、プログラム間通信を継続することができるプログラム間通信技術を提供することにある。
【課題を解決するための手段】
【０００９】
本発明にかかる第１のプログラム間通信システムは、プログラム間通信を行っていた２つのプログラムの内の一方のプログラムのプログラム記述言語を変更する場合、変更後のプログラム記述言語では表現できないデータ形式が他方のプログラムに含まれている場合であっても、他方のプログラムについては全く変更を行うことなく、プログラム間通信を継続できるようにするため、
第１のプログラムと第２のプログラムとの間でデータを送受信するプログラム間通信システムにおいて、
前記第１のプログラムで定義されている送受信の対象となる項目それぞれのデータ構造情報が登録されたデータ構造記憶部と、
前記第１のプログラムへの送信データに含ませる項目の名標とその値とが前記第２のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記指定された値を含む前記第１のプログラムにおいて認識可能な送信データを生成し、参照する項目の名標が前記第２のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記第１のプログラムから送られてきた受信データから前記指定された項目の値を抽出するデータ操作手段とを備えたことを特徴とする。
【００１０】
本発明にかかる第２のプログラム間通信システムは、データ構造記憶部に、データ構造情報を容易に登録できるようにするため、
第１のプログラム間通信システムにおいて、
前記第１のプログラムのソースプログラムに基づいて、前記第１のプログラムで定義されている送受信の対象となる項目それぞれのデータ構造情報を生成し、該生成したデータ構造情報を前記データ構造記憶部に登録するデータ構造生成システムを備えたことを特徴とする。
【００１１】
本発明にかかる第３のプログラム間通信システムは、データ構造記憶部に、データ構造情報を容易に登録できるようにするため、
第２のプログラム間通信システムにおいて、
前記データ構造生成システムが、
前記第１のプログラムのソースプログラムを取得するプログラム記述取得手段と、
該プログラム記述取得手段が取得した前記ソースプログラムから、送受信の対象にしている項目それぞれのデータ定義記述を抽出するデータ定義検出手段と、
該データ定義検出手段で抽出した前記各項目のデータ定義記述に基づいて、前記各項目のデータ構造情報を生成するデータ構造抽出手段と、
該データ構造抽出手段が生成した前記各項目のデータ構造情報を前記データ構造記憶部に登録するデータ構造格納手段とを備えたことを特徴とする。
【００１２】
本発明にかかる第４のプログラム間通信システムは、新たなデータ構造情報をデータ構造記憶部に容易に登録できるようにすると共に、既に登録されているデータ構造情報の属性値を容易に変更できるようにするため、
第３のプログラム間通信システムにおいて、
前記データ構造生成システムが、
システム管理者の指示に従って、前記データ構造記憶部に、新たに送受信の対象にする項目のデータ構造情報を登録するデータ構造生成手段と、
システム管理者の指示に従って、前記データ構造記憶部に登録されているデータ構造情報の属性値を更新するデータ構造更新手段とを備えたことを特徴とする。
【００１３】
本発明にかかる第５のプログラム間通信システムは、第１のプログラム間通信システムにおいて、
前記データ構造情報が、項目の名標、サイズ及びオフセットを含み、
前記データ操作手段が、送信データに含ませる項目の名標とその値とが指定されたとき、前記指定された名標と対応するオフセットを前記データ構造記憶部から取得し、該取得したオフセットによって示される位置に前記指定された値を設定することにより送信データを生成し、参照する項目の名標が指定されたとき、前記指定された名標と対応するサイズ及びオフセットを前記データ構造記憶部から取得し、受信データ中の前記取得したオフセットによって示される位置から前記取得したサイズ分のデータを抽出する構成を有することを特徴とする。
【００１４】
本発明にかかる第６のプログラム間通信システムは、プログラム間通信を行っていた２つのプログラムが両方ともプログラム記述言語を変更した場合であっても、プログラム間通信を継続できるようにするため、
第１のプログラムと第２のプログラムとの間でデータを送受信するプログラム間通信システムにおいて、
前記第１のプログラムで定義されている送受信の対象となる項目それぞれのデータ構造情報が登録されたデータ構造記憶部と、
前記第１のプログラムへの送信データに含ませる項目の名標とその値とが前記第２のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記指定された値を含む前記第１のプログラムにおいて認識可能な送信データを生成し、参照する項目の名標が前記第２のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記第１のプログラムから送られてきた受信データから前記指定された項目の値を抽出する第１のデータ操作手段と、
前記第２のプログラムへの送信データに含ませる項目の名標とその値とが前記第１のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記指定された値を含む前記第２のプログラムにおいて認識可能な送信データを生成し、参照する項目の名標が前記第１のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記第２のプログラムから送られてきた受信データから前記指定された項目の値を抽出する第２のデータ操作手段とを備えたことを特徴とする。
【００１５】
本発明にかかるプログラム間通信方法は、プログラム間通信を行っていた２つのプログラムの内の一方のプログラムのプログラム記述言語を変更する場合、変更後のプログラム記述言語では表現できないデータ形式が他方のプログラムに含まれている場合であっても、他方のプログラムについては全く変更を行うことなく、プログラム間通信を継続できるようにするため、
第１のプログラムと第２のプログラムとの間でデータを送受信するプログラム間通信方法において、
前記第１のプログラムで定義されている送受信の対象となる項目それぞれのデータ構造情報をデータ構造記憶部に登録し、
前記第１のプログラムへの送信データに含ませる項目の名標とその値とが前記第２のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記指定された値を含む前記第１のプログラムにおいて認識可能な送信データを生成し、参照する項目の名標が前記第２のプログラムによって指定されたとき、前記データ構造記憶部に登録されているデータ構造情報に基づいて、前記第１のプログラムから送られてきた受信データから前記指定された項目の値を抽出することを特徴とする。
【００１６】
本発明にかかるデータ構造生成システムは、容易にデータ構造記憶部にデータ構造情報を登録できるようにするため、
第２のプログラムとプログラム間通信を行う第１のプログラムのソースプログラムに基づいて、前記第１のプログラムで定義されている送受信の対象となる項目それぞれのデータ構造情報を生成し、該生成したデータ構造情報をデータ構造記憶部に登録する構成を有することを特徴とする。
【００１７】
本発明にかかるプログラムは、容易にデータ構造記憶部にデータ構造情報を登録できるようにするため、
コンピュータを、
第２のプログラムとプログラム間通信を行う第１のプログラムのソースプログラムに基づいて、前記第１のプログラムで定義されている送受信の対象となる項目それぞれのデータ構造情報を生成し、該生成したデータ構造情報をデータ構造記憶部に登録するデータ構造生成システムとして機能させる。
【発明の効果】
【００１８】
本発明にかかる第１，第５のプログラム間通信システム、プログラム間通信方法によれば、プログラム間通信を行っていた２つのプログラムの内の一方のプログラムのプログラム記述言語を変更する場合、他方のプログラムに変更後のプログラム記述言語では表現できないデータ形式が含まれている場合であっても、他方のプログラムについては全く変更を行うことなく、プログラム間通信を継続することが可能になる。
【００１９】
その理由は、変更を行わないプログラム（第１のプログラム）で定義されている送受信の対象となる項目それぞれのデータ構造情報が登録されたデータ構造記憶部と、プログラム記述言語を変更したプログラム（第２のプログラム）からの要求に応じてデータ構造記憶部に登録されている構造情報に基づいて、送信データの作成処理および受信データからの項目値の抽出処理を行うデータ操作手段とを備えているからである。
【００２０】
更に、本発明にかかる第１，第５のプログラム間通信システム、プログラム間通信方法によれば、第１のプログラムにおいて送受信の対象にする項目を追加したり、項目のサイズを変更した場合であっても、変更後のデータ構造情報をデータ構造記憶部に登録しておくことにより、プログラム間通信を継続することが可能になる。
【００２１】
本発明にかかる第２，第３のプログラム間通信システム、データ構造生成システムおよびプログラムによれば、データ構造記憶部へのデータ構造情報の登録を容易に行うことが可能になる。その理由は、第１のプログラムのソースプログラムに基づいて、上記第１のプログラムで定義されている送受信の対象となる項目それぞれのデータ構造情報を生成し、生成したデータ構造情報をデータ構造記憶部に登録するようにしているからである。
【００２２】
本発明にかかる第４のプログラム間通信システムによれば、新たなデータ構造情報をデータ構造記憶部に容易に登録することが可能になると共に、既に登録されているデータ構造情報の属性値を容易に変更することが可能になる。その理由は、データ構造生成システムが、データ構造生成手段およびデータ構造更新手段を備えているからである。
【００２３】
本発明にかかる第６のプログラム間通信システムによれば、プログラム間通信を行っている第１，第２のプログラムが、両方ともプログラム言語を変更した場合であっても、プログラム間通信を継続して行うことが可能になる。その理由は、第１，第２のデータ操作手段を備えているからである。
【発明を実施するための最良の形態】
【００２４】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００２５】
〔第１の実施の形態〕
図１は本発明にかかるプログラム間通信システムの第１の実施の形態の全体構成例を示すブロック図である。同図を参照すると、本実施の形態のプログラム間通信システムは、プログラム制御により動作するデータ構造生成システム２と、データ構造記憶部３と、プログラム制御により動作し、互いのアプリケーションプログラム４１，５１間でデータの送受信を行う処理システム４，５とから構成されている。
【００２６】
データ構造生成システム２は、例えば、コンピュータによって実現されるものであり、アプリケーションプログラム４１のプログラム記述（ソースプログラム）１に基づいて、アプリケーションプログラム４１において定義されている送受信の対象となる各項目それぞれのデータ構造情報（名標，サイズ，オフセットなどを含む）を生成し、生成したデータ構造情報をデータ構造記憶部３に登録する機能を有する。
【００２７】
このような機能を有するデータ構造生成システム２は、図２に示すように、プログラム記述取得手段２１と、データ定義検出手段２２と、データ構造抽出手段２３と、データ構造格納手段２４と、キーボード等の入力装置２５と、ディスプレィ装置や印刷装置等の出力装置２６と、例えばメインメモリ（図示せず）上に設けられたプログラム記述記憶部２７と、例えばメインメモリ上に設けられたデータ定義記述記憶部２８とを備えている。
【００２８】
プログラム記述取得手段２１は、入力装置２５からプログラム記述１の存在場所を与えられると、与えられた場所に存在するプログラム記述１を読み込み、その内容をプログラム記述記憶部２７に格納する。プログラム記述取得手段２１が扱うプログラム記述１は、データ構造生成システム２の存在するコンピュータ上に存在していてもよいし、ネットワークで接続されている他のコンピュータ上に存在していてもよい。プログラム記述１が他のコンピュータ上に存在する場合は、ＦＴＰ等を使用してファイル転送を行い、プログラム記述１の内容を読み込む。
【００２９】
データ定義検出手段２２は、プログラム記述記憶部２７に格納されたプログラム記述１を解析することにより、プログラム記述１からデータ定義記述を抽出し、抽出したデータ定義記述をデータ定義記述記憶部２８に格納する。ここで、データ定義記述とは、データ宣言記述、データ記述など、プログラム言語により呼称が異なるが、データの識別子や属性、性質を宣言する記述のことであり、配列、構造体の宣言を含む。
【００３０】
データ構造抽出手段２３は、データ定義記述記憶部２８に格納されているデータ定義記述に基づいて、アプリケーションプログラム４１がアプリケーションプログラム５１との間で送受信の対象にしている項目それぞれのデータ構造情報を生成する。ここで、データ構造情報の例としては、識別子、オフセット、サイズ、データ形式、文字コードなどがある。
【００３１】
データ構造格納手段２４は、データ構造抽出手段２３が生成したデータ構造情報をデータ構造記憶部３に登録し、登録処理が完了すると、その旨のメッセージを出力装置２６に出力する。
【００３２】
なお、上述した構成を有するデータ構造生成システム２をコンピュータによって実現する場合は、例えば、次のようにする。コンピュータをデータ構造生成システム２として機能させるためのプログラムを記録したディスク，半導体メモリ，その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に、プログラム記述取得手段２１，データ定義検出手段２２，データ構造抽出手段２３，データ構造情報格納手段２４を実現する。
【００３３】
処理システム４は、アプリケーションプログラム４１と、データ送受信手段４２と、送信データ領域４３と、受信データ領域４４とを備えている。
【００３４】
アプリケーションプログラム４１は、プログラム記述１をコンパイルして生成されたプログラムであり、処理システム５のアプリケーションプログラム５１とのデータ送受信処理を含むプログラムである。
【００３５】
送信データ領域４３は、例えばメインメモリ上に設けられた領域であり、アプリケーションプログラム５１へ送信する送信データが格納される。
【００３６】
受信データ領域４４は、例えばメインメモリ上に設けられた領域であり、アプリケーションプログラム５１からの受信データが格納される。
【００３７】
データ送受信手段４２は、アプリケーションプログラム４１からデータ送信を要求された場合、送信データ領域４３に格納されている送信データを処理システム５内のデータ送受信手段５２へ送信する。また、処理システム５内のデータ送受信手段５２からデータを受信した場合、それを受信データ領域４４に格納すると共に、アプリケーションプログラム４１にデータを受信した旨を通知する。
【００３８】
処理システム５は、アプリケーションプログラム５１と、データ送受信手段５２と、データ操作手段５３と、送信データ領域５４と、受信データ領域５５とを備えている。
【００３９】
アプリケーションプログラム５１は、処理システム４内のアプリケーションプログラム４１とのデータ送受信処理を含むプログラムである。なお、本実施の形態においては、アプリケーションプログラム５１は、アプリケーションプログラム４１との間でデータを送受信していたプログラム（図示せず）の代わりに、新たに実装されたプログラムであり、アプリケーションプログラム４１とは異なるプログラム記述言語によるものであるとする。
【００４０】
送信データ領域５４は、例えばメインメモリ上に設けられた領域であり、アプリケーションプログラム４１への送信データが格納される。
【００４１】
受信データ領域５５は、例えばメインメモリ上に設けられた領域であり、アプリケーションプログラム４１からの受信データが格納される。
【００４２】
データ送受信手段５２は、アプリケーションプログラム５１からデータ送信を要求された場合は、送信データ領域５４に格納されている送信データを処理システム４内のデータ送受信手段４２へ送信する。また、処理システム４内のデータ送受信手段４２から送られてきたデータを受信データ領域５５に格納すると共に、アプリケーションプログラム５１にデータを受信したことを通知する。
【００４３】
データ操作手段５３は、アプリケーションプログラム５１が処理システム４内のアプリケーションプログラム４１とデータを送受信する際にアプリケーションプログラム５１から呼び出され、データ構造記憶部３に登録されているデータ構造情報を使用して送信データ領域５４上に送信データを生成したり、受信データ領域５５に格納されている受信データからアプリケーションプログラム５１によって参照要求されている項目の値を抽出する機能を有する。
【００４４】
〔第１の実施の形態の動作の説明〕
次に本実施の形態の動作について詳細に説明する。
【００４５】
今、処理システム５において、それまでアプリケーションプログラム４１との間でデータ送受信を行っていたプログラムＰＸ（図示せず）の代わりに、アプリケーションプログラム５１が新たに実装されたとする。また、プログラムＰＸの代わりにアプリケーションプログラム５１を実装する際に、データ操作手段５３も実装されたとする。なお、アプリケーションプログラム５１は、アプリケーションプログラム４１とはプログラム記述言語が異なるものである。また、アプリケーションプログラム４１には、アプリケーションプログラム５１のプログラム記述言語では表現できないデータ形式が含まれているとする。
【００４６】
新たに実装したアプリケーションプログラム５１と、処理システム４に実装されている既存のアプリケーションプログラム４１との間でデータ送受信を行う場合には、それに先立ち、データ構造生成システム２を用いて、アプリケーションプログラム４１で定義されている、アプリケーションプログラム５１との間で送受信する各項目のデータ構造情報をデータ構造記憶部３に登録しておく必要がある。従って、以下では、先ず、データ構造情報登録時の動作を説明し、その後で、データ送受信時の動作を説明する。
【００４７】
〔データ構造情報登録時の動作〕
システム管理者は、データ構造情報をデータ構造記憶部３に登録する場合、入力装置２５からプログラム記述１の存在場所を示す情報を入力する。
【００４８】
これにより、データ構造生成システム２内のプログラム記述取得手段２１が、上記存在場所からプログラム記述１を入力し、プログラム記述記憶部２７に格納する（図３のステップＳ３１）。
【００４９】
次に、データ定義検出手段２２が、プログラム記述記憶部２７に格納されているプログラム記述１を解析することにより、プログラム記述１中に存在する送受信の対象となる項目それぞれのデータ定義記述を抽出し（ステップＳ３２）、抽出した各項目のデータ定義記述をデータ定義記述記憶部２８に格納する（ステップＳ３３）。
【００５０】
その後、データ構造抽出手段２３が、データ定義記述記憶部２８に格納されているデータ定義記述に基づいて各項目のデータ構造情報を生成し（ステップＳ３４）、データ構造格納手段２４が、上記データ構造情報をデータ構造記憶部３に登録する（ステップＳ３５）。また、データ構造格納手段２４は、データ構造情報の登録が完了すると、その旨を出力装置２６に出力する処理も行う。なお、各項目のデータ構造情報には、名標（識別子）、オフセット（送受信データにおけるその項目の配置位置）、サイズ、データ形式、繰り返し回数などが含まれる。以上が、データ構造情報登録時の動作である。
【００５１】
〔データ送受信時の動作〕
次に、処理システム４と処理システム５との間でデータの送受信を行う際の動作を説明する。
【００５２】
先ず、アプリケーションプログラム５１がアプリケーションプログラム４１に対してデータ送信を行う場合の動作を説明する。
【００５３】
アプリケーションプログラム５１は、アプリケーションプログラム４１に対してデータを送信する場合、データ操作手段５３を利用して送信データを作成する。送信データを作成する場合、アプリケーションプログラム５１は、図４のフローチャートに示すように、データ操作手段５３を呼び出し、「送信データ領域５４の位置」、「操作対象とする領域の名標の内の１つ（送信データに含ませる項目の名標の内の１つ）」、「送信データ領域に格納する値（送信データに含ませる項目の値）」および「操作モード＝“更新”」を渡す（ステップＳ４１）。その後、アプリケーションプログラム５１は、データ操作手段５３からの書き込み完了通知を待つ待ち状態になる（ステップＳ４２）。
【００５４】
データ操作手段５３は、アプリケーションプログラム５１から呼び出されると、先ず、データ構造記憶部３を参照し、呼び出し時に指定された名標を検索する（図５のステップＳ５１）。
【００５５】
そして、指定された名標を検索できた場合（ステップＳ５２がＹＥＳ）は、指定された名標を含むデータ構造情報を取得する（ステップＳ５３）。その後、データ操作手段５３は、指定された操作モードが“更新”であるため（ステップＳ５４）、指定された名標のデータ構造情報であるオフセット、サイズ、データ形式等を使用し、送信データ領域５４中の該当バイト位置に、データ操作手段５３によって指定された「送信データ領域に格納する値」を書き込む（ステップＳ５５）。この時、必要があればデータ形式の変換、文字コードの変換を行う。その後、データ操作手段アプリケーションプログラム５１に対して、項目値の書き込み完了を通知する（ステップＳ５６）。なお、指定された名標を検索できなかった場合（ステップＳ５２がＮＯ）は、データ操作失敗をアプリケーションプログラム５１に通知する等のエラー処理を行った後（ステップＳ５９）、その処理を終了する。
【００５６】
待ち状態にあるアプリケーションプログラム５１は、データ操作手段５３から書き込み完了通知が送られてくると（図４のステップＳ４２がＹＥＳ）、送信データに含ませる全ての項目について処理が完了したか否かを判断する（ステップＳ４３）。
【００５７】
そして、未処理の項目が存在する場合には（ステップＳ４３がＮＯ）、再び、ステップＳ４１の処理を行う。これに対して、未処理の項目が存在しない場合（ステップＳ４３がＹＥＳ）は、データ送受信手段５３にデータ送信を要求する（ステップＳ４４）。その際、アプリケーションプログラム５１は、送信データの種別を特定できる情報（例えば、どのようなトランザクション処理に使用するデータなのかを示す情報など）をデータ送受信手段５２に渡す。
【００５８】
この要求に応答して、データ送受信手段５３は、送信データ領域５４に格納されている送信データおよびその種別を特定する情報を、処理システム４内のデータ送受信手段４２へ送信する。なお、本実施の形態では、データ送受信手段５３が、送信データ領域５４，受信データ領域５５の位置を認識しているとするが、アプリケーションプログラム５１からデータ送受信手段５３に対して、それらの位置を通知するようにしても良い。
【００５９】
処理システム４内のデータ送受信手段４２は、データ送受信手段５３から送られてきたデータを受信データ領域４４に格納すると共に、アプリケーションプログラム４１に対してデータ受信を通知する。
【００６０】
この通知を受けると、アプリケーションプログラム４１は、自プログラム内のデータ定義を使用して受信データ中の各項目の値を参照する。
【００６１】
次に、アプリケーションプログラム４１がアプリケーションプログラム５１に対してデータを送信する場合の動作を説明する。
【００６２】
アプリケーションプログラム４１は、アプリケーションプログラム５１に対してデータを送信する場合、自プログラム内のデータ定義を使用して送信データを生成し、生成した送信データを送信データ領域４３に格納する。その後、アプリケーションプログラム４１は、データ送受信手段４２に対してデータ送信を要求する。この要求に応答して、データ送受信手段４２は、送信データ領域４３に格納されている送信データを、データ送受信手段５２へ送信する。
【００６３】
処理システム５内のデータ送受信手段５２は、送受信手段４２から送られてきたデータを受信データ領域５５に格納すると共に、アプリケーションプログラム５１に対してデータを受信したことを通知する。
【００６４】
この通知を受けると、アプリケーションプログラム５１は、図６のフローチャートに示すように、データ操作手段５３を呼び出し、「受信データ領域５５の位置」、「操作対象とする領域の名標の１つ（参照する項目の名標の１つ）」、「受信データを格納するメインメモリ上の領域（参照した項目の値を格納するメインメモリ上の領域）」および「操作モード＝“参照”」を渡す（ステップＳ６１）。その後、アプリケーションプログラム５１は、読み込み完了通知を待つ待ち状態となる（ステップＳ６２）。
【００６５】
データ操作手段５３は、アプリケーションプログラム５１から呼び出されると、データ構造記憶部３を参照し、指定された名標を検索する（ステップＳ５１）。
【００６６】
そして、指定された名標を検索できた場合（ステップＳ５２がＹＥＳ）は、上記名標を含むデータ構造情報をデータ構造記憶部３から取得する（ステップＳ５３）。その後、データ操作手段５３は、指定された操作モードが“参照”であるため（ステップＳ５４）、指定された名標のデータ構造情報であるオフセット、サイズ、データ形式等を使用し、受信データ領域５５の該当部分から項目の値を抽出し、抽出した項目の値を指定された「受信データを格納するメインメモリ上の領域」へ読み込む（ステップＳ５７）。この時、必要があればデータ形式の変換、文字コードの変換を行う。その後、データ操作手段５３は、読み込み完了をアプリケーションプログラム５１に通知する。
【００６７】
待ち状態にあるアプリケーションプログラム５１は、データ操作手段５３から読み込み完了が通知されると（図６のステップＳ６２がＹＥＳ）、参照すべき全ての項目について処理が完了したか否かを判断する（ステップＳ６３）。
【００６８】
そして、処理が完了していない項目が存在する場合（ステップＳ６３がＮＯ）は、再びステップＳ６１の処理を行い、全ての項目について処理が完了している場合（ステップＳ６３がＹＥＳ）は、指定した領域に読み込まれたデータを利用した処理を行う（ステップＳ６４）。
【００６９】
次に、具体例を挙げて本実施の形態について説明する。図７は本実施の形態にかかるプログラム間通信システムの具体例を示すブロック図である。
【００７０】
図７において、サーバ４００は、図１に示した処理システム４に対応し、COBOLプログラム４０１と、トランザクション処理システム４０２と、送信データ領域４０３と、受信データ領域４０４とを備える。
【００７１】
COBOLプログラム４０１は、図１に示したアプリケーションプログラム４１に対応し、COBOL言語で記述されたプログラムである。トランザクション処理システム４０２は、図１のデータ送受信手段４２に対応し、COBOLプログラム４０１をトランザクションとして処理する。送信データ領域４０３，受信データ領域４０４は、それぞれ図１の送信データ領域４３，受信データ領域４４と対応する。
【００７２】
COBOLソース１００は、図１に示したプログラム記述１に対応する。COBOLソース１００は、サーバ４００に接続されたディスク上に存在し、COBOLソース１００をコンパイルしてCOBOLプログラム４０１が生成されている。この例では、COBOLソース１００をプログラムソースとしているが、COBOLのコピー原文としてもよい。コピー原文とした場合は、COBOLプログラム４０１生成時のコンパイルで使用したコピー原文とする。
【００７３】
APサーバ５００は、図１に示した処理システム５に対応し、Javaプログラム５０１と、トランザクション処理システムアクセス部品５０２と、データ操作手段５３と、送信データ領域５０４と、受信データ領域５０５とを備える。
【００７４】
Javaプログラム５０１は、図１に示したアプリケーションプログラム５１に対応し、それまでCOBOLプログラム４０１とプログラム間通信を行っていたCOBOLプログラム（図示せず）の代わりに新たに実装されたJava言語で記述されたプログラムである。このJavaプログラム５０１は、端末６００とのインタフェースを持ち、端末６００からの要求によってサーバ４００に対してトランザクションを要求し、その結果を端末６００へ返却する。トランザクション処理システムアクセス部品５０２は、図１のデータ送受信手段５３に対応し、サーバ４００上のトランザクション処理システム４０２をアクセスする部品である。送信データ領域５０４，受信データ領域５０５は、それぞれ図１の送信データ領域５４，受信データ領域５５と対応する。
【００７５】
データ構造記憶部３は、ＡＰサーバ５００に接続されたディスク上に存在する。
【００７６】
開発環境２００は、データ構造生成システム２を含み、サーバ４００、APサーバ５００とは独立した環境である。
【００７７】
次に、図７に示したプログラム間通信システムの動作について説明する。
【００７８】
〔データ構造情報登録時の動作〕
今、APサーバ５００において、それまでCOBOLプログラム４０１との間でデータ送受信を行っていたCOBOLプログラムＰ（図示せず）の代わりに、Javaプログラム５０１が新たに実装されたとする。また、COBOLプログラムＰの代わりにJavaプログラム５０１を実装する際に、データ操作手段５３も実装されたとする。
【００７９】
新たに実装したJavaプログラム５０１と、サーバ４００に実装されている既存のCOBOLプログラム４０１との間でプログラム間通信を行う場合には、それに先立ち、データ構造生成システム２を用いて、COBOLプログラム４０１で定義されている、送受信の対象とする各項目のデータ構造情報をデータ構造記憶部３に登録しておく必要がある。
【００８０】
システム管理者は、データ構造情報をデータ構造記憶部３に登録する場合、入力装置２５からCOBOLソース１００の存在場所を示す情報を入力する。これにより、データ構造生成システム２内のプログラム記述取得手段２１が、サーバ４００に接続されているディスク上からCOBOLソース１００を入力し、プログラム記述記憶部２７に格納する（図３のステップＳ３１）。図８にプログラム記述記憶部２７に格納されたCOBOLソース１００の具体例を示す。なお、図８においては、COBOLソース１００の一部のみしか図示していない。
【００８１】
その後、データ定義検出手段２２が、プログラム記述記憶部２７に格納されているCOBOLソース１００を解析することにより、送受信の対象となる各項目（在庫照会，伝票番号など）のデータ定義記述を抽出し、抽出したデータ定義記述をデータ定義記述記憶部２８に格納する（ステップＳ３２）。具体的には、「DATA DIVISION」の「WORKING-STORAGE SECTION」中の記述をデータ定義記述として抽出し、それをデータ定義記述記憶部２８に格納する。
【００８２】
更に、データ構造抽出手段２３が、データ定義記述記憶部２８に格納されている各項目のデータ定義記述に基づいて、各項目の構造レベル、名標、データ形式、繰り返し数、オフセット、サイズ、文字コードなどを含むデータ構造情報を生成し（ステップＳ３４）、データ構造格納手段２４がデータ構造情報をデータ構造記憶部３に書き込む（ステップＳ３５）。
【００８３】
ここで、データ構造抽出手段２３がステップＳ３４で行う処理を詳しく説明する。
【００８４】
データ構造抽出手段２３は、先ず、データ定義記述記憶部２８に格納されている先頭のデータ定義記述（第000080行目のデータ定義記述）に注目する。この第000080行目の記述からデータ構造抽出手段２３は、構造レベル「０１」、名標「在庫照会」、オフセット「０」を抽出する。更に、データ構造抽出手段２３は、構造レベルが「０２」，「０３」になっている第000090行〜第000160行の記述に基づいて、サイズ「1022」を算出する。即ち、｛10＋40＋2＋10×（5＋80＋2＋10）｝なる演算を行うことにより、サイズ「1022」を算出する。その後、データ構造抽出手段２３は、構造レベル「０１」、名標「在庫照会」、オフセット「０」、サイズ「1022」を含んだ、名標「在庫照会」の項目に対応するデータ構造情報を生成し、データ構造格納手段２４に渡す。
【００８５】
その後、データ構造抽出手段２３は、次の行（第000090行目）に注目する。この第000090行目の記述から、データ構造抽出手段２３は、構造レベル「０２」、名標「伝票番号」、形式「９（１０）」、オフセット「０」、サイズ「１０」を抽出し、それらを含んだデータ構造情報をデータ構造格納手段２４に渡す。
【００８６】
以下、データ構造抽出手段２３は、データ定義記述記憶部２８に格納されている各項目のデータ定義記述を順次処理対象にして上述した処理と同様の処理を行う。データ構造抽出手段２３は、以上の処理をデータ定義記述記憶部２８に格納されている全てのデータ定義記述に対して行う。これにより、図９に示すような各項目のデータ構造情報がデータ構造記憶部３に格納される。
【００８７】
〔データ送受信時の動作〕
次に、COBOLプログラム４０１とJavaプログラム５０１とがデータを送受信をする場合の動作を、Javaプログラム５０１が「在庫照会」に関するトランザクション要求データを生成してCOBOLプログラム４０１へ送信し、それに対する応答データをCOBOLプログラム４０１が生成してJavaプログラム５０１に送信する場合を例に挙げて説明する。
【００８８】
今、例えば、端末６００からJavaプログラム５０１に対して、担当者名「山田太郎」、商品番号「1011」，「1012」を含む商品照会要求が入力されたとする。これにより、Javaプログラム５０１は、データ操作手段５３に対して図１０に示す呼び出し処理を行う。
【００８９】
即ち、Javaプログラム５０１は、先ず、送信データ領域５０４を初期化するため、データ操作手段５３を呼び出し、「送信データ領域５０４の位置」、名標「在庫照会」、名標「在庫照会」の値「空白」、「操作モード＝“更新”」を渡す（図４のステップＳ４１）。
【００９０】
これにより、データ操作手段５３は、データ構造記憶部３（図９参照）を検索し、名標「在庫照会」に対応するデータ構造情報からオフセット「０」及びサイズ「１０２２」を取得する（図５のステップＳ５１〜Ｓ５３）。その後、「操作モード＝“更新”」であるので、送信データ領域５０４の先頭（オフセット「０」）から１０２２バイト分、指定された値「空白」を書き込む（ステップＳ５４，Ｓ５５）。その後、データ操作手段５３は、Javaプログラム５０１に対して書き込み完了を通知する（ステップＳ５６）。
【００９１】
Javaプログラム５０１は、書き込み完了が通知されると（図４のステップＳ４２がＹＥＳ）は、処理していない項目が存在するので（ステップＳ４３がＮＯ）、再び、データ操作手段５３を呼び出し、「送信データ領域５０４の位置」、名標「担当者名」、名標「担当者名」の値「山田太郎」及び「操作モード＝“更新”」を渡す（ステップＳ４１）。
【００９２】
これにより、データ操作手段５３は、データ構造記憶部３を検索し、名標「担当者名」に対応するデータ構造情報からオフセット「１０」、サイズ「４０」を取得する（図５のステップＳ５１〜Ｓ５３）。その後、操作モードが“更新”であるので（ステップＳ５４）、データ操作手段５３は、送信データ領域５０４の１０バイト目から指定された値「山田太郎」を書き込み（ステップＳ５５）、その後、書き込み完了をJavaプログラム５０１に通知する（ステップＳ５６）。
【００９３】
以下、同様の処理が行われ、送信データ領域５０４の５０バイト目，５２バイト目，１４９バイト目に、それぞれ「２（照会数）」、「１０１１（商品番号）」、「１０１２（商品番号）」が書き込まれる。これにより、「在庫照会」に関するトランザクション要求データが送信データ領域５０４上に生成される。
【００９４】
Javaプログラム５０１は、「在庫照会」に関するトランザクション要求データが送信データ領域５０４上に作成されると、トランザクション処理システムアクセス部品５０２に対して送信要求を行う（図４のステップＳ４４）。その際、トランザクション要求データが「在庫照会」に関するものであることを示す情報もトランザクション処理システムアクセス部品５０２に渡す。
【００９５】
これにより、トランザクション処理システムアクセス部品５０２は、送信データ領域５０４上のトランザクション要求データ及びそれが「在庫照会」に関するものであることを示す情報をサーバ４００へ送信する。
【００９６】
サーバ４００内のトランザクション処理システム４０２は、ＡＰサーバ５００からの「在庫照会」に関するトランザクション要求データを受信すると、それを受信データ領域４０４に格納すると共に、そのことをCOBOLプログラム４０１に通知する。
【００９７】
これにより、COBOLプログラム４０１は、受信データ領域４０４に格納されているトランザクション要求データと、自プログラム４０１内のデータ定義とに基づいて、商品番号「1011」，「1012」についての在庫照会が要求されたことを認識する。その後、COBOLプログラム４０１は、自プログラム中のデータ定義に基づいて、応答データを生成し、トランザクション処理システム４０２を介してAPサーバ５００へ送信する。
【００９８】
APサーバ５００内のトランザクション処理システムアクセス部品５０２は、応答データを受信すると、それを受信データ領域５０５に格納すると共に、Javaプログラム５０１にそのことを通知する。
【００９９】
これにより、Javaプログラム５０１は、データ操作手段５３を呼び出し、「受信データ領域５０５の位置」、「参照する項目の名標（例えば、OUT-STOCK)」、「受信データの値を格納するメインメモリ上の領域」及び「操作モード＝“参照”」を渡す（図６のステップＳ６１）。なお、指定した名標が繰り返し項目に関するものである場合は、何回目の繰り返しなのかを示す情報もデータ操作手段５３に渡す。今、例えば、ｋ回目の繰り返しであることを示す情報も渡したとする（商品番号「1011」の商品に関する情報を参照する場合には、ｋ＝１となり、商品番号「1012」の商品に関する情報を参照する場合には、ｋ＝２となる）。
【０１００】
これにより、データ操作手段５３は、データ構造記憶部３を検索し、指定された名標「OUT-STOCK」に対応するデータ構造情報からオフセット「２８」、サイズ「３」を取得する（図５のステップＳ５１〜Ｓ５３）。その後、受信データ領域５０５の「２８×ｋバイト目」から３バイト分のデータを、指定されたメインメモリ上の領域に読み込み、読み込み完了をJavaプログラム５０１に通知する（ステップＳ５７，Ｓ５８）。
【０１０１】
Javaプログラム５０１は、読み込み完了が通知されると（図６のステップＳ６２がＹＥＳ）、全ての項目について処理が完了したか否かを判断する（ステップＳ６３）。そして、処理が完了していない項目が存在する場合（ステップＳ６３がＮＯ）には、再び、ステップＳ６１の処理を行い、全ての項目についての処理が完了している場合（ステップＳ６３がＹＥＳ）には、メインメモリ上の指定した領域に格納されている値を利用した処理を行う。
【０１０２】
なお、以上の説明では説明しなかったが、COBOLプログラム４０１を変更した場合にも、変更後のCOBOLプログラム４０１に対応するCOBOLソース１００を用いて、データ構造生成システム２において新たなデータ構造情報を生成し、それをデータ構造記憶部３に登録すれば、Javaプログラム５０１側においては、何らの変更も行わずに、COBOLプログラム４０１とのプログラム間通信を継続することが可能になる。
【０１０３】
〔他の実施の形態〕
次に、本発明にかかるプログラム間通信システムの第２の実施の形態について説明する。
【０１０４】
図１１は本実施の形態の全体構成例を示すブロック図である。図１１を参照すると、本実施の形態は、処理システム４の代わりに処理システム４ａを備えている点、およびデータ構造生成システム２の代わりにデータ構造生成システム６を備えている点が図１に示した第１の実施の形態と相違している。
【０１０５】
処理システム４ａは、データ操作手段４５が追加されている点、およびアプリケーションプログラム４１の代わりにアプリケーションプログラム４１ａを備えている点が、図１に示した処理システム４と相違している。
【０１０６】
データ操作手段４５は、アプリケーションプログラム４１ａが処理システム５内のアプリケーションプログラム５１とデータを送受信する際、アプリケーションプログラム４１ａにより呼び出され、データ構造記憶部３に登録されているデータ構造情報を使用して送信データ領域４３上に送信データを生成したり、受信データ領域４４に格納されている受信データからアプリケーションプログラム４１ａによって参照要求されている項目の値を抽出する機能を有する。
【０１０７】
図１２は、データ構造生成システム６の構成例を示すブロック図である。データ構造生成システム６と図２に示したデータ構造生成システム２との相違点は、GUI手段６１、データ構造生成手段６２およびデータ構造更新手段６３が追加されている点である。
【０１０８】
GUI手段６１は、入力装置２５からの操作指示やデータ入力を受け付け、入力された操作指示に従いデータ構造生成システム６に備わる各手段を呼び出し、各手段からの処理結果を出力装置２６へ出力する。
【０１０９】
データ構造生成手段６２は、システム管理者の指示に従って、新たに送受信の対象にする項目のデータ構造情報をデータ構造記憶部３に登録し、それに伴って既に登録済みのデータ構造情報中のオフセット，サイズを修正することが必要になった場合は、オフセット，サイズを修正する。
【０１１０】
データ構造更新手段６３は、システム管理者の指示に従って、データ構造記憶部３に登録されているデータ項目情報の属性値を変更すると共に、それに伴って既に登録済みのデータ構造情報中のオフセット，サイズを修正することが必要になった場合には、オフセット，サイズを修正する。
【０１１１】
データ構造生成システム６もデータ構造生成システム２と同様に、コンピュータによって実現可能なものであり、コンピュータによって実現する場合には、コンピュータをデータ構造生成システム６として機能させるプログラムを記録したディスク，半導体メモリ，その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って、自身の動作を制御することにより、自コンピュータ上に、プログラム記述取得手段２１、データ定義検出手段２２、データ構造抽出手段２３、データ構造格納手段２４、GUI手段６１、データ構造生成手段６２、データ構造更新手段６３を実現する。
【０１１２】
〔第２の実施の形態の動作の説明〕
次に、本実施の形態の動作について説明する。
【０１１３】
今、アプリケーションプログラム４１ａがアプリケーションプログラム４１の代わりに処理システム４ａに新たに実装されたプログラムであるとし、また、アプリケーションプログラム４１ａが送受信の対象にしている項目は、アプリケーションプログラム４１と全く同じであるとする。このような状況は、例えば、COBOL言語によるアプリケーションプログラム４１をJava言語によるアプリケーションプログラム４１ａに置き換える場合に発生する。
【０１１４】
この場合、データ構造記憶部３には、アプリケーションプログラム４１が送受信の対象にしていた各項目のデータ構造情報が格納されており、アプリケーションプログラム４１ａは、アプリケーションプログラム４１と同じ項目を送受信の対象にしているので、データ送信時に、アプリケーションプログラム４１ａ，データ操作手段４５において、それぞれ図４，図５に示す処理を行い、アプリケーションプログラム５１からのデータの受信時に、アプリケーションプログラム４１ａ，データ操作手段４５において、それぞれ図６，図５の処理を行うことにより、処理システム５側において、何ら変更を行うことなく、アプリケーションプログラム４１ａとアプリケーションプログラム５１との間でデータ通信を行うことが可能になる。
【０１１５】
また、例えば、アプリケーションプログラム４１ａがアプリケーションプログラム５１以外のアプリケーションプログラム（図示せず）ともプログラム間通信を行うことが必要になり、上記アプリケーションプログラムとプログラム間通信を行うためには、現時点で送受信の対象にしている項目に加え、新たな項目を追加することが必要であるとする。
【０１１６】
このような場合、システム管理者は、入力装置２５から追加する項目（追加項目）のデータ定義記述と、追加項目をそれが含まれる構造レベル中の何番目の項目とするのかを示す順番情報と、追加項目に関連する項目の内の、構造レベル「０１」の項目の名標を入力する。今、例えば、データ構造記憶部３に内容が図９に示すものである場合において、追加項目が「在庫照会」に関するものであり、そのデータ定義記述が「０２  メールアドレス  ＰＩＣ  Ｘ（４０）」、追加項目の順番が「第３番目」である場合には、システム管理者は、入力装置２５から、データ定義記述「０２  メールアドレス  ＰＩＣ  Ｘ（４０）」、順番情報「３」、名標「在庫照会」を入力する。これらの情報は、GUI手段６１を介してデータ構造生成手段６２に入力される。
【０１１７】
これにより、データ構造生成手段６２は、追加項目に関連する全ての項目のデータ構造情報をデータ構造記憶部３から入力する（図１３のステップＳ１３１）。この例では、データ構造記憶部３（図９参照）の第１行目〜第９行目のデータ構造情報を入力することになる。
【０１１８】
その後、データ構造生成手段６２は、追加項目のオフセットを計算すると共に、既に登録されているデータ構造情報中のオフセット，サイズを計算し直す（ステップＳ１３２）。この例の場合、構造レベル「０２」の第３番目に追加項目（サイズ「４０」）に関するデータ構造情報が追加されるので、例えば、「在庫照会」に関するサイズは「１０６２」となり、「照会数」に関するオフセットは「５０」となる。
【０１１９】
その後、データ構造生成手段６２は、追加項目に関するデータ構造情報を順番情報によって指示された位置に追加し、且つ、オフセット，サイズを修正した各項目のデータ構造情報をデータ構造記憶部３に登録し直す（ステップＳ１３３）。
【０１２０】
このようなデータ構造情報をデータ構造記憶部３に登録しておけば、アプリケーションプログラム５１は、第１の実施の形態と同様にして、アプリケーションプログラム４１ａとデータを送受信することができる。
【０１２１】
また、例えば、アプリケーションプログラム４１ａにおいて、或る項目の属性値を変更することが必要になったとする。
【０１２２】
このような場合、システム管理者は、入力装置２５から属性値を変更する項目の名標と、変更後の属性値とを入力する。これらの情報は、GUI手段６１を介してデータ構造更新手段６３に入力される。今、例えば、図９の例において、「伝票番号」の形式を「９（１０）」から「Ｘ（１０）」に変更することが必要になったとすると、システム管理者は、入力装置２５から名標「伝票番号」を入力すると共に、更新後の属性値「形式＝Ｘ（１０）」を入力する。
【０１２３】
これにより、データ構造更新手段６３は、データ構造記憶部３を検索し、名標「伝票番号」に対応付けて登録されている形式の属性値を「９（１０）」から「Ｘ（１０）」に更新する（図１４のステップＳ１４１，Ｓ１４２）。その後、データ構造更新手段６３は、「伝票番号」に関連する各項目のデータ構造情報（図９の第１行目〜第９行目）に関し、オフセット，サイズを計算し、計算したオフセット，サイズを登録し直す（ステップＳ１４３）。
【０１２４】
このようなデータ構造情報をデータ構造記憶部３に登録しておけば、アプリケーションプログラム５１は、第１の実施の形態と同様にして、アプリケーションプログラム４１ａとデータを送受信することができる。
【図面の簡単な説明】
【０１２５】
【図１】本発明にかかるプログラム間通信システムの第１の実施の形態の全体構成例を示すブロック図である。
【図２】データ構造生成システム２の構成例を示すブロック図である。
【図３】データ構造生成システム２の処理例を示すフローチャートである。
【図４】データ送信時にアプリケーションプログラム５１が行う処理例を示すフローチャートである。
【図５】データ操作手段５３の処理例を示すフローチャートである。
【図６】データ受信時にアプリケーションプログラム５１が行う処理例を示すフローチャートである。
【図７】プログラム間通信システムの具体的な構成例を示すブロック図である。
【図８】COBOLソース１００の一例を示す図である。
【図９】データ構造記憶部３の内容例を示す図である。
【図１０】データ操作手段５３を呼び出す際の手順を示した図である。
【図１１】本発明にかかるプログラム間通信システムの第２の実施の形態の全体構成例を示すブロック図である。
【図１２】データ構造生成システム６の構成例を示すブロック図である。
【図１３】データ構造生成手段６２の処理例を示すフローチャートである。
【図１４】データ構造更新手段６３の処理例を示すフローチャートである。
【符号の説明】
【０１２６】
１…プログラム記述
２…データ構造生成システム
２１…プログラム記述取得手段
２２…データ定義検出手段
２３…データ構造抽出手段
２４…データ構造格納手段
２５…入力装置
２６…出力装置
２７…プログラム記述記憶部
２８…データ定義記述記憶部
３…データ構造記憶部
４，４ａ…処理システム
４１，４１ａ…アプリケーションプログラム
４２…データ送受信手段
４３…送信データ領域
４４…受信データ領域
４５…データ操作手段
５…処理システム
５１…アプリケーションプログラム
５２…データ送受信手段
５３…データ操作手段
５４…送信データ領域
５５…受信データ領域
６…データ構造生成システム
６１…GUI手段
６２…データ構造生成手段
６３…データ構造更新手段
１００…COBOLソース
２００…開発環境
４００…サーバ
４０１…COBOLプログラム
４０２…トランザクション処理システム
４０３…送信データ領域
４０４…受信データ領域
５００…APサーバ
５０１…Javaプログラム
５０２…トランザクション処理システムアクセス部品
５０４…送信データ領域
５０５…受信データ領域
６００…端末
【図１】
2006085407.tif 000003
【図２】
2006085407.tif 000004
【図３】
2006085407.tif 000005
【図４】
2006085407.tif 000006
【図５】
2006085407.tif 000007
【図６】
2006085407.tif 000008
【図７】
2006085407.tif 000009
【図８】
2006085407.tif 000010
【図９】
2006085407.tif 000011
【図１０】
2006085407.tif 000012
【図１１】
2006085407.tif 000013
【図１２】
2006085407.tif 000014
【図１３】
2006085407.tif 000015
【図１４】
2006085407.tif 000016