(57)【要約】【課題】ＨＴＴＰメッセージを利用する既存システムの信頼性を確保しつつ、これを効率的にＳＯＡＰ化できるようにする。【解決手段】コンピュータから構築される変換装置１０に、ＰＯＳＴ又はＧＥＴメソッドを用いたＨＴＴＰ通信により、受信したＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換して送信する一方、ＨＴＭＬの主要情報及び繰り返し構造を変数化及び構文化したＨＴＭＬ−ＸＭＬ変換定義１６を参照して、受信したＨＴＴＰレスポンスメッセージに係るＨＴＭＬをＸＭＬに変換し、ＨＴＴＰレスポンスメッセージをＳＯＡＰメッセージに変換して返信する変換プログラム１２を実行可能に組み込む。そして、変換装置１０により、ＳＯＡＰメッセージを利用するＳＯＡＰサーバ２０と既存システム３０との間のプロトコル変換を行う。【選択図】  図１
2004152145.tif 000002
【特許請求の範囲】
【請求項１】
ＳＯＡＰリクエストメッセージを受信したときに、ＰＯＳＴメソッド又はＧＥＴメソッドを用いたＨＴＴＰ通信により、前記ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換して送信する機能と、
ＨＴＴＰレスポンスメッセージを受信したときに、ＨＴＭＬの主要情報及び繰り返し構造を夫々変数化及び構文化した変換定義を参照して、前記ＨＴＴＰレスポンスメッセージに係るＨＴＭＬをＸＭＬに変換し、該ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信する機能と、
をコンピュータに実現させるためのプロトコル変換プログラム。
【請求項２】
ＨＴＴＰレスポンスメッセージを受信したときに、ＨＴＭＬの主要情報及び繰り返し構造を夫々変数化及び構文化した変換定義を参照して、前記ＨＴＴＰレスポンスメッセージに係るＨＴＭＬをＸＭＬに変換し、該ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信する機能をコンピュータに実現させるためのプロトコル変換プログラム。
【請求項３】
ＨＴＴＰリクエストメッセージに係るＨＴＭＬのｆｏｒｍタグ及びその属性に基づいて、ＳＯＡＰリクエストメッセージを受信したときに、ＰＯＳＴメソッド又はＧＥＴメソッドを用いたＨＴＴＰ通信により、前記ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換して送信するソースコードと、ＨＴＴＰレスポンスメッセージを受信したときに、ＨＴＭＬの主要情報及び繰り返し構造を夫々変数化及び構文化した変換定義を参照して、前記ＨＴＴＰレスポンスメッセージに係るＨＴＭＬをＸＭＬに変換し、該ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信するソースコードと、を自動生成する機能
をコンピュータに実現させるためのプロトコル変換プログラム。
【請求項４】
ＳＯＡＰリクエストメッセージを受信したときに、ＰＯＳＴメソッド又はＧＥＴメソッドを用いたＨＴＴＰ通信により、前記ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換して送信する一方、
ＨＴＴＰレスポンスメッセージを受信したときに、ＨＴＭＬの主要情報及び繰り返し構造を夫々変数化及び構文化した変換定義を参照して、前記ＨＴＴＰレスポンスメッセージに係るＨＴＭＬをＸＭＬに変換し、該ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信する
ことを特徴とするプロトコル変換方法。
【請求項５】
ＨＴＭＬの主要情報及び繰り返し構造を夫々変数化及び構文化した変換定義と、
ＳＯＡＰリクエストメッセージを受信したときに、ＰＯＳＴメソッド又はＧＥＴメソッドを用いたＨＴＴＰ通信により、前記ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換して送信する送信手段と、
ＨＴＴＰレスポンスメッセージを受信したときに、前記変換定義を参照して、前記ＨＴＴＰレスポンスメッセージに係るＨＴＭＬをＸＭＬに変換し、該ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信する返信手段と、
を含んで構成されたことを特徴とするプロトコル変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）並びにＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  ＴｒａｎｓｆｅｒＰｒｏｔｏｃｏｌ）又はＨＴＴＰＳ（ＨＴＴＰ  Ｓｅｃｕｒｉｔｙ）を利用して構築されたシステムを、効率的にＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）化する技術に関する。
【０００２】
【従来の技術】
ＨＴＴＰ又はＨＴＴＰＳ（以下「ＨＴＴＰ」という）で接続されたネットワークにおいて、ＳＯＡＰというプロトコルを用いて、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式のデータ交換により、異なるプラットフォームのアプリケーション同士を連携させる技術が実用化されつつある。
【０００３】
また、特開２００１−１５７２５６号公報に記載されるように、ＨＴＴＰプロトコルのデータを他のプロトコルとの間で変換を行って相互接続する技術も知られている。
【０００４】
【特許文献１】
特開２００１−１５７２５６号公報
【０００５】
【発明が解決しようとする課題】
ところで、ＨＴＴＰを利用して構築されたシステム（以下「既存システム」という）では、ブラウザに各種情報を表示させることを目的として、情報に書式を定義するＨＴＭＬが用いられていた。このため、既存システムをＳＯＡＰ化するためには、ＸＭＬ形式のＳＯＡＰメッセージを直接処理可能とすべく、アプリケーションを大幅に改変し、ＳＯＡＰを実装させる必要があった。また、既存システムの改変にあたっては、そのプログラム言語がＳＯＡＰを実現させるためのライブラリ（ＳＯＡＰライブラリ）を保有していることが前提条件となっていた。
【０００６】
既存システムがＳＯＡＰライブラリを保有しないプログラム言語で開発されている場合、その資産をＳＯＡＰ化するためには、大規模なシステム投資を行い、既存システムを全面更改する必要がある。しかし、既存システムの全面更改は、投資対効果の観点から、現実的な選択肢とはなり得なかった。さらに、既存システムを修正する方法では、運用中のアプリケーションを停止させる必要からサービス低下に繋がると共に、修正に伴う信頼性の低下も懸念された。
【０００７】
一方、ＨＴＭＬは情報に形式を定義しているだけであるので、情報に構造を定義してその意味付けを行うＸＭＬにフォーマット変換することは極めて困難であった。そこで、本発明は以上のような従来の問題点に鑑み、ＳＯＡＰメッセージとＨＴＴＰメッセージとの間のプロトコル変換を工夫することで、既存システムの信頼性を確保しつつ、これを効率的にＳＯＡＰ化できるようにしたプロトコル変換技術を提供することを目的とする。
【０００８】
【課題を解決するための手段】
このため、本発明に係るプロトコル変換技術では、ＳＯＡＰリクエストメッセージを受信したときに、ＰＯＳＴメソッド又はＧＥＴメソッドを用いたＨＴＴＰ通信により、ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換して送信する一方、ＨＴＴＰレスポンスメッセージを受信したときに、ＨＴＭＬの主要情報及び繰り返し構造を夫々変数化及び構文化した変換定義を参照して、ＨＴＴＰレスポンスメッセージに係るＨＴＭＬをＸＭＬに変換し、ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信することを特徴とする。このとき、かかる機能を実現するプログラムのソースコードを、ＨＴＴＰリクエストメッセージに係るＨＴＭＬのｆｏｒｍタグ及びその属性に基づいて、自動生成するようにしてもよい。
【０００９】
かかる構成によれば、ＳＯＡＰリクエストメッセージを受信すると、ＰＯＳＴメソッド又はＧＥＴメソッドを用いたＨＴＴＰ通信により、ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換して送信される。一方、ＨＴＴＰレスポンスメッセージを受信すると、ＨＴＭＬの主要情報及び繰り返し構造を夫々変数化及び構文化した変換定義を参照して、ＨＴＴＰレスポンスメッセージに係るＨＴＭＬがＸＭＬに変換され、ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信される。このため、ＳＯＡＰメッセージとＨＴＴＰメッセージとの間でプロトコル変換が行われることとなり、ＨＴＴＰ又はＨＴＴＰＳを利用して構築されたシステムを改変又は全面更改しなくとも、該システムをＳＯＡＰ化することが可能となる。
【００１０】
また、ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換するときには、ＨＴＴＰリクエストメッセージに係るＨＴＭＬのタグ及びその属性を解析して作成した変換規則に基づいて、ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換することが望ましい。
【００１１】
かかる構成によれば、変換規則を適切に作成することで、ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに容易かつ迅速に変換することができる。
さらに、ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換するときには、ＨＴＴＰレスポンスメッセージに係るＨＴＭＬと変換定義との間で文字列照合を行い、変換定義において変数化されている部分に該当する文字列をＨＴＭＬから抽出して、ＨＴＭＬをＸＭＬに変換することが望ましい。また、同様に、変換定義において構文化されている部分に該当する文字列をＨＴＭＬから抽出して、再帰的に処理を行なうことが望ましい。
【００１２】
かかる構成によれば、ＨＴＴＰレスポンスメッセージに係るＨＴＭＬと変換定義との間で文字列照合を行い、変換定義において変数化されている部分に該当する文字列をＨＴＭＬから抽出することで、容易かつ迅速にＨＴＭＬをＸＭＬに変換することができる。また、同様に、変換定義において構文化されている部分に該当する文字列をＨＴＭＬから抽出して、再帰的に処理を行うようにすれば、繰り返し構造が複数階層に展開されているときであっても、１階層構造のものとして処理を行なうことができる。
【００１３】
【発明の実施の形態】
以下、添付された図面を参照して本発明を詳述する。
図１は、本発明に係るプロトコル変換技術を具現化した変換装置１０を用いて、ＳＯＡＰメッセージを利用するＳＯＡＰクライアント２０と、ＨＴＴＰメッセージを利用する既存システム３０と、の間でプロトコル変換を行う構成を示す。なお、変換装置１０，ＳＯＡＰクライアント２０及び既存システム３０は、夫々、中央処理装置とメモリとを備えたコンピュータから構築され、メモリにロードされたプログラムによりプロトコル変換に係る各種機能が実現される。また、変換装置１０，ＳＯＡＰクライアント２０及び既存システム３０は、ＴＣＰ／ＩＰ（Ｔｒａｎｓｆｅｒ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ベースのＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）又はインターネットなどのネットワーク４０を介して相互接続される。
【００１４】
変換装置１０には、ＳＯＡＰメッセージとＨＴＴＰメッセージとの間のプロトコル変換を実現させるべく、後述する処理により自動生成された変換プログラム１２が実行可能に組み込まれる。また、変換装置１０には、ＳＯＡＰメッセージを処理可能にするＳＯＡＰライブラリ１４と、ＨＴＭＬをＸＭＬに変換する変換定義が規定されたＨＴＭＬ−ＸＭＬ変換定義１６と、が備えられる。
【００１５】
ここで、変換プログラム１２により、ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換して送信する機能，ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信する機能，送信手段及び返信手段がソフトウエア的に実現される。
【００１６】
ＳＯＡＰクライアント２０には、ＳＯＡＰメッセージの送受信及びユーザとのインタフェースを行うクライアントプログラム２２と、ＳＯＡＰライブラリ２４と、が備えられる。一方、既存システム３０には、ＨＴＴＰメッセージを利用して、各種サービスを提供するアプリケーション３２が実行可能に組み込まれる。
【００１７】
なお、変換装置１０は、図２に示すように、既存システム３０に組み込むようにしてもよい。
次に、ＨＴＭＬ−ＸＭＬ変換定義１６の作成，変換プログラム１２の自動生成及びその組み込みまでの一連の処理について、図３を参照しつつ説明する。
【００１８】
ステップ１（図では「Ｓ１」と略記する。以下同様）では、図示しないＨＴＴＰクライアントのブラウザ機能などを利用して、ＳＯＡＰ化を希望する既存システム３０に対するＨＴＴＰメッセージの入出力をファイルに格納する。鉄道の経路を探索するサービスを例にとると、既存システム３０に対するＨＴＴＰリクエストメッセージ（入力）には、図４に示すように、タグ＜ｆｏｒｍ＞〜＜／ｆｏｒｍ＞に、アプリケーションのＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ），通信方式（ＰＯＳＴ又はＧＥＴ）並びに出発駅及び到着駅などの入力情報が夫々記述される。一方、既存システム３０からのＨＴＴＰレスポンスメッセージ（出力）には、図５に示すように、タグ＜ｔａｂｌｅ＞〜＜／ｔａｂｌｅ＞に、出発駅，到着駅及び路線などが夫々記述される。なお、ＨＴＴＰレスポンスメッセージにタグ＜ｔａｂｌｅ＞〜＜／ｔａｂｌｅ＞が複数あるのは、１回の経路探索で複数の経路が探索されたことを示している。
【００１９】
ステップ２では、ＨＴＴＰレスポンスメッセージを参照して、人手により、図６に示すようなＨＴＭＬ−ＸＭＬ変換定義１６を作成する。ＨＴＭＬ−ＸＭＬ変換定義１６は、変換対象のＨＴＭＬのセッションごとに異なる主要情報を変数化し、汎化して表現できる。また、ＨＴＭＬで表現された表などのように、同一構造を繰り返すものであっても、構文化し、汎化して表現できる。そして、ＨＴＭＬからＸＭＬに変換するときに、ＨＴＭＬとＨＴＭＬ−ＸＭＬ変換定義との文字列照合を行い、ＨＴＭＬ−ＸＭＬ変換定義で変数化されている部分を抽出し、そこで定義されたタグを用いて出力する。このため、ＨＴＭＬ−ＸＭＬ変換定義１６では、次のような３種類の制御文字列を用いて、ＨＴＭＬをＸＭＬに変換する変換定義が規定される。
［制御文字列］
（１）＄［ｖａｌｕｅ＃ＴａｇＮａｍｅ］
ＨＴＴＰレスポンスメッセージと照合して、ＴａｇＮａｍｅに相当する文字列を抽出し、＜ＴａｇＮａｍｅ＞抽出文字列＜／ｔａｇＮａｍｅ＞としてＸＭＬに出力する。
（２）＄［ｆｏｒ＃ＴａｇＮａｍｅ］〜＄［ｅｎｄ＃ＦｏｒｂｉｄｅｄＳｔｒｉｎｇ［＃ＦｏｒｂｉｄｅｄＳｔｒｉｎｇ］・・・］
＄［ｆｏｒ］〜＄［ｅｎｄ］で囲まれた文字列について、ＨＴＴＰレスポンスメッセージに対して繰り返し照合する。また、＄［ｆｏｒ］〜＄［ｅｎｄ］が入れ子になっているときには、再起的に処理する。このとき、ＦｏｒｂｉｄｅｄＳｔｒｉｎｇを設定しておくと、＄［ｆｏｒ］〜＄［ｅｎｄ］に＄［ｖａｌｕｅ＃ＴａｇＮａｍｅ］が記述されているとき、ＦｏｒｂｉｄｅｄＳｔｒｉｎｇを含まないように文字列を抽出する。ＦｏｒｂｉｄｅｄＳｔｒｉｎｇを設定可能とすることで、＄［ｖａｌｕｅ＃ＴａｇＮａｍｅ］により文字列を抽出するときに、繰り返し箇所を越えて文字列が抽出されてしまうことを防止できる。
（３）＄［ｖａｌｕｅ＃ＤｏＮｏｔＯｕｔｐｕｔ］
ＨＴＴＰレスポンスメッセージと照合して、ＴａｇＮａｍｅに相当する文字列があったとしても、ＸＭＬに出力しない。＄［ｖａｌｕｅ＃ＤｏＮｏｔＯｕｔｐｕｔ］を設定可能とすることで、セッションごとに異なる情報が存在するときであっても、これをＸＭＬに出力しないようにすることができる。
【００２０】
ステップ３では、変換装置１０に組み込まれる変換プログラム１２のソースコードを自動生成する。なお、ソースコード自動生成については、後述する。
ステップ４では、自動生成されたソースコードをコンパイルし、実行モジュールとしての変換プログラム１２を生成する。
【００２１】
ステップ５では、変換プログラム１２を変換装置１０に実行可能に組み込む。図７は、変換プログラム１２のソースコードを自動生成するメインルーチンのフローチャートを示す。なお、図７に示すメインルーチン及びここからコールされるサブルーチンにより、ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換して送信するソースコード、及び、ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信するソースコードを自動生成する機能がソフトウエア的に実現される。
【００２２】
ステップ１１では、ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージにプロトコル変換するインターフェースを作成するために、ＨＴＴＰリクエストメッセージの＜ｆｏｒｍ＞タグを解析したインタフェース定義を作成するサブルーチンをコールする。
【００２３】
ステップ１２では、変換プログラム１２のソースコードを自動生成するサブルーチンをコールする。
図８は、インタフェース定義を作成するサブルーチンのフローチャートを示す。なお、インタフェース定義は、ＸＭＬで作成される。
【００２４】
ステップ２１では、インタフェースの作成に必要な各種情報、例えば、ＨＴＴＰリクエストメッセージファイル名，出力ファイル名，クラス名，メソッド名，ａｃｔｉｏｎ属性のベースＵＲＬを入力する。
【００２５】
ステップ２２では、ＸＭＬヘッダ「＜？ｘｍｌ  ｖｅｒｓｉｏｎ＝”１．０”？＞」を出力する。
ステップ２３では、ルート要素の開始タグ「＜ｉｎｔｅｒｆａｃｅ＞」を出力する。
【００２６】
ステップ２４では、図９に示す変換規則Ｉに従って、入力されたクラス名及びメソッド名に対応したタグ「＜ｃｌａｓｓ  ｖａｌｕｅ＝”クラス名”／＞」及び「＜ｍｅｔｈｏｄ  ｖａｌｕｅ＝”メソッド名”／＞」を出力する。
【００２７】
ステップ２５では、ＨＴＴＰリクエストメッセージの＜ｆｏｒｍ＞〜＜／ｆｏｒｍ＞で囲まれた各タグについて、図１０に示す変換規則ＩＩに従って、ＨＴＭＬのタグをＸＭＬのタグに変換した後、これを出力する。
【００２８】
ステップ２６では、ルート要素の終了タグ「＜／ｉｎｔｅｒｆａｃｅ＞」を出力する。
図８に示す一連の処理によれば、クラス名として「ＲｏｕｔｅＳｅａｒｃｈ」、メソッド名として「ｓｅａｒｃｈＲｏｕｔｅ」を入力すると、図４に示すＨＴＴＰリクエストメッセージから、図１１に示すインタフェース定義が作成される。インタフェース定義では、ＸＭＬのタグを利用して、クラス名，メソッド名，アプリケーションのＵＲＬ，通信方式，入力情報などが夫々定義される。なお、アプリケーションのＵＲＬが相対アドレスであれば、ａｃｔｉｏｎ属性のベースＵＲＬを用いて絶対アドレスに変換した後、その絶対アドレスがＵＲＬとされる。また、作成されたインタフェース定義は、ステップ２１で入力された出力ファイル名に、ＸＭＬ文書として保存される。
【００２９】
図１２は、変換プログラム１２のソースコードを自動生成するサブルーチンのフローチャートを示す。
ステップ３１では、インタフェース定義を読み込む。
【００３０】
ステップ３２では、インタフェース定義の＜ｃｌａｓｓ＞タグを参照して、以下の文字列を出力する。
ｐｕｂｌｉｃ  ｃｌａｓｓ  クラス名［
ｐｕｂｌｉｃ  クラス名（）［］
ステップ３３では、インタフェース定義の＜ｍｅｔｈｏｄ＞タグを参照して、文字列「ｐｕｂｌｉｃ  Ｓｔｒｉｎｇ  メソッド名（」を出力する。
【００３１】
ステップ３４では、インタフェース定義の＜ｅｌｅｍｅｎｔ＞タグを順次参照して、メソッドの仮引数として、文字列「Ｓｔｒｉｎｇ  エレメント名」を「，」を挟んで列挙した後、文字列「）［」を出力する。なお、同一のｎａｍｅ属性をもつｅｌｅｍｅｎｔタグが複数回出力されている場合には、２回目以降に出力されたｅｌｅｍｅｎｔタグに対しては、この処理を行わない。
【００３２】
ステップ３５では、インタフェース定義の＜ｕｒｌ＞タグを参照して、アプリケーションのＵＲＬを定義する文字列「Ｓｔｒｉｎｇ  ｕｒｌ  ＝  ”アプリケーションのＵＲＬ”；」を出力する。
【００３３】
ステップ３６では、インタフェース定義の＜ｅｌｅｍｅｎｔ＞タグを参照して、アプリケーションに対してＰＯＳＴ又はＧＥＴする文字列を出力する。なお、同一のｎａｍｅ属性をもつｅｌｅｍｅｎｔタグが複数回出力されている場合には、２回目以降に出力されたｅｌｅｍｅｎｔタグに対しては、この処理を行わない。
【００３４】
ステップ３７では、インタフェース定義の＜ｃｏｎｎｅｃｔｉｏｎ＞タグからアプリケーションへの通信方式を取得し、アプリケーションのＵＲＬ並びにＰＯＳＴ又はＧＥＴする文字列を引数として、次のようなＨＴＴＰ通信を行うソースコードを出力する。
【００３５】
Ｓｔｒｉｎｇ  ｒｅｔ  ＝  ｈｔｔｐＣｏｎｎｅｃｔｏｒ．ｇｅｔ（ｕｒｌ，  ｐａｒａｍｓ．ｔｏＳｔｒｉｎｇ（））；
ステップ３８では、ＨＴＴＰ通信の結果受信した文字列を解析し、次のようなＨＴＭＬをＸＭＬに変換するためのソースコードを出力する。なお、ＸＭＬＣｏｎｖｅｒｔｅｒは、ＨＴＭＬをＸＭＬに変換するクラス、ｘｃ．ｔｒａｎｓｆｏｒｍ（）は、ＨＴＭＬをＸＭＬに変換するクラスＸＭＬＣｏｎｖｅｔｅｒのメソッド、ｈｔｍｌ−ｘｍｌ．ｄａｔは、ＨＴＭＬ−ＸＭＬ変換定義１６を夫々示す。
【００３６】
ＸＭＬＣｏｎｖｅｒｔｅｒ  ｘｃ  ＝  ｎｅｗ  ＸＭＬＣｏｎｖｅｔｅｒ（”ｈｔｍｌ−ｘｍｌ．ｄａｔ”，  ｒｅｔ）；
ｒｅｔ  ＝  ｘｃ．ｔｒａｎｓｆｏｒｍ（）；
ステップ３９では、変換結果を文字列として返すソースコードを出力する。
【００３７】
ステップ４０では、メソッド定義及びクラス定義を終了させる「］」を夫々出力する。
図１２に示す一連の処理によれば、図１３に示すような変換プログラム１２のソースコードが自動生成される。ソースコードには、ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換してＨＴＴＰ通信を行うコード、ＨＴＴＰレスポンスメッセージをＸＭＬにフォーマット変換し、これをＳＯＡＰレスポンスメッセージとして返却するコードが含まれる。
【００３８】
そして、ソースコードをコンパイルして実行モジュールを生成した後、これを変換装置１０に実行可能に組み込むことで、ＳＯＡＰメッセージとＨＴＴＰメッセージとの間のプロトコル変換が実行されることとなる。即ち、変換装置１０が、ＳＯＡＰクライアント２０からＳＯＡＰリクエストメッセージを受信すると、ＨＴＴＰを利用して、既存システム３０に対してＨＴＴＰリクエストメッセージを送信する。一方、変換装置１０が、既存システム３０からＨＴＴＰレスポンスメッセージを受信すると、ＨＴＭＬ−ＸＭＬ変換定義１６を参照してＨＴＭＬをＸＭＬに変換した後、ＳＯＡＰクライアント２０に対してＳＯＡＰレスポンスメッセージを返信する。
【００３９】
図１４及び図１５は、ＸＭＬをＨＴＭＬにフォーマット変換する処理のフローチャートを示す。なお、初期状態では、ＨＴＭＬ及びＨＴＭＬ−ＸＭＬ変換定義のインデックスは、０に夫々設定される。
【００４０】
ステップ４１では、ＸＭＬヘッダ「＜？ｘｍｌ  ｖｅｒｓｉｏｎ＝”１．０”？＞」を出力する。
ステップ４２では、ルート要素の開始タグ「＜ｒｅｔｕｒｎ＞」を出力する。
【００４１】
なお、ＸＭＬヘッダ及びルート要素の開始タグは、本ルーチンが最初に実行されたときのみ出力される。
ステップ４３では、ＨＴＭＬ−ＸＭＬ変換定義の先頭から順次検索し、制御文字列を抽出する。
【００４２】
ステップ４４では、ＨＴＭＬのインデックスを、ＨＴＭＬ−ＸＭＬ変換定義のインデックスから制御文字列の直前の文字までの文字数分だけ進める。
ステップ４５では、抽出された制御文字列に応じた分岐処理を行なう。即ち、制御文字列が＄［ｖａｌｕｅ］であればステップ４６へと進み、制御文字列が＄［ｆｏｒ］であればステップ５１へと進み、制御文字列が抽出できなかったならば処理を終了する。
【００４３】
ステップ４６では、ＨＴＭＬ−ＸＭＬ変換定義において、抽出された文字列と次の制御文字列とで挟まれた文字列（終端文字列）を抽出する。このとき、改行を無視し、空白及びタグを含めた文字列を抽出する。また、次の制御文字列が存在しないときには、抽出された制御文字列の次の文字から最後の文字まで抽出する。
【００４４】
ステップ４７では、ＨＴＭＬにおいて、インデックスと終端文字列とで挟まれた文字列を抽出する。このとき、制御文字列＄［ｅｎｄ］において、その属性としてＦｏｒｂｉｄｅｄＳｔｒｉｎｇが設定されているときには、これを含まないように抽出する。
【００４５】
ステップ４８では、＄［ｖａｌｕｅ］の属性として、ＤｏＮｏｔＯｕｔｐｕｔが設定されているか否かを判定する。そして、ＤｏＮｏｔＯｕｔｐｕｔが設定されていればステップ５０へと進み（Ｙｅｓ）、ＤｏＮｏｔＯｕｔｐｕｔが設定されていなければステップ４９へと進む（Ｎｏ）。
【００４６】
ステップ４９では、＄［ｖａｕｅ］の属性として設定されているＴａｇＮａｍｅを抽出し、ステップ４７で抽出された文字列を用いて、「＜ＴａｇＮａｍｅ＞文字列＜／ＴａｇＮａｍｅ＞」を出力する。
【００４７】
ステップ５０では、ＨＴＭＬのインデックスを、終端文字列の最初の文字まで進めると共に、ＨＴＭＬ−ＸＭＬ変換定義のインデックスを、ステップ４３で抽出した制御文字列の次の文字まで進める。その後、ステップ４３へと戻る。
【００４８】
ステップ５１では、ＨＴＭＬ−ＸＭＬ変換定義において、＄［ｆｏｒ］に対応する＄［ｅｎｄ］を検索する。＄［ｆｏｒ］〜＄［ｅｎｄ］が入れ子になっているときには、その中の＄［ｆｏｒ］及び＄［ｅｎｄ］の出現回数を計数し、適切な＄［ｅｎｄ］を検索するようにする。
【００４９】
ステップ５２では、ＨＴＭＬ−ＸＭＬ変換定義において、＄［ｆｏｒ］と＄［ｅｎｄ］との間の文字列を抽出する。
ステップ５３では、ステップ５２で抽出された文字列において、その先頭から最初の制御文字列までの文字列（識別文字列）を抽出する。
【００５０】
ステップ５４では、ＨＴＭＬにおいて、インデックス以降に処理すべき識別文字列があるか否かを判定する。そして、識別文字列があればステップ５５へと進み（Ｙｅｓ）、識別文字列がなければ＄［ｆｏｒ］〜＄［ｅｎｄ］の処理が終了したと判定してステップ５９へと進む（Ｎｏ）。
【００５１】
ステップ５５では、制御文字列＄［ｆｏｒ］の属性から文字列を抽出し、開始タグ「＜文字列＞」を出力する。
ステップ５６では、ＨＴＭＬ−ＸＭＬ変換定義における＄［ｆｏｒ］〜＄［ｅｎｄ］内の文字列を処理すべく、ステップ５２で抽出した文字列を引数として、本ルーチンを再帰呼び出しする。
【００５２】
ステップ５７では、制御文字列＄［ｆｏｒ］の属性から文字列を抽出し、終了タグ「＜／文字列＞」を出力する。
ステップ５８では、ＨＴＭＬのインデックスを、ＨＴＭＬ−ＸＭＬ変換定義における＄［ｆｏｒ］に対応する＄［ｅｎｄ］の次の文字に相当する位置まで進める。その後、ステップ５４へと戻る。
【００５３】
ステップ５９では、ＨＴＭＬ−ＸＭＬ変換定義のインデックスを、＄［ｆｏｒ］に対応する＄［ｅｎｄ］の次の文字まで進める。その後、ステップ４３へと戻る。
ここで、図５に示すＨＴＴＰレスポンスメッセージを例にとって、ＨＴＭＬをＸＭＬにフォーマット変換する処理を詳述する。なお、フォーマット変換後のＸＭＬは、図１６に示すようになる。
【００５４】
初期状態では、図６に示すＨＴＭＬ−ＸＭＬ変換定義、及び、図５に示すＨＴＭＬのインデックスは、０に夫々設定されている。先ず、ＸＭＬヘッダ「＜？ｘｍｌ  ｖｅｒｓｉｏｎ＝”１．０”？＞」、及び、ルート要素の開始タグ「＜ｒｅｔｕｒｎ＞」が夫々出力される。ＸＭＬヘッダ及びルート要素の開始タグが出力されると、ＨＴＭＬ−ＸＭＬ変換定義において、制御文字列＄［ｖａｌｕｅ＃ｔｉｔｌｅ］が抽出され、ＨＴＭＬのインデックスが進められる。制御文字列が＄［ｖａｌｕｅ］であるので、ＨＴＭＬ−ＸＭＬ変換定義ファイルにおいて、制御文字列＄［ｖａｌｕｅ＃ｔｉｔｌｅ］と次の制御文字列＄［ｆｏｒ＃ｋｅｉｒｏ］とで挟まれた終端文字列「＜／ｔｉｔｌｅ＞＜／ｈｅａｄ＞＜ｂｏｄｙ＞」が抽出される。終端文字列が抽出されると、ＨＴＭＬにおいて、インデックスと終端文字列とで挟まれた文字列「経路探索」が抽出される。制御文字列＄［ｖａｌｕｅ＃ｔｉｔｌｅ］には、その属性としてＤｏＮｏｔＯｕｔｐｕｔが設定されていないので、制御文字列＄［ｖａｌｕｅ＃ｔｉｔｌｅ］から文字列「ｔｉｔｌｅ」が抽出され、これをタグとして、「＜ｔｉｔｌｅ＞経路探索＜／ｔｉｔｌｅ＞」が出力される。その後、ＨＴＭＬ及びＨＴＭＬ−ＸＭＬ変換定義のインデックスが夫々進められる。
【００５５】
次に、ＨＴＭＬ−ＸＭＬ変換定義において、制御文字列＄［ｆｏｒ＃ｋｅｉｒｏ］が抽出され、ＨＴＭＬのインデックスが進められる。制御文字列が＄［ｆｏｒ］であるので、ＨＴＭＬ−ＸＭＬ変換定義において、＄［ｆｏｒ＃ｋｅｉｒｏ］に対応する＄［ｅｎｄ＃＜／ｂｏｄｙ＞］が検索され、＄［ｆｏｒ＃ｋｅｉｒｏ］と＄［ｅｎｄ＃＜／ｂｏｄｙ＞］とで挟まれた文字列「＜ｈ１＞経路＄［ｖａｌｕｅ＃ＤｏＮｏｔＯｕｔｐｕｔ］・・・・・・＄［ｅｎｄ＃＜／ｔａｂｌｅ＞＃＜ｔｒ＞］＜／ｔａｂｌｅ＞」が抽出される。そして、抽出された文字列の先頭から最初の制御文字列までの識別文字列「＜ｈ１＞経路」が抽出される。識別文字列が抽出されると、ＨＴＭＬにおいて、インデックス以降に処理すべき識別文字列があるので、開始タグ「＜ｋｅｉｒｏ＞」が出力される。開始タグが出力されると、抽出された文字列「＜ｈ１＞経路＄［ｖａｌｕｅ＃ＤｏＮｏｔＯｕｔｐｕｔ］・・・・・・＄［ｅｎｄ＃＜／ｔａｂｌｅ＞＃＜ｔｒ＞］＜／ｔａｂｌｅ＞」を引数として、再帰呼び出しが行われる。
【００５６】
再帰呼び出しが行われた直後では、ＨＴＭＬ及びＨＴＭＬ−ＸＭＬ変換定義は、図１７に示すようになっている。このとき、同図（Ｂ）に示すＨＴＭＬ−ＸＭＬ変換定義では、インデックスが０に設定されている（以下同様）。そして、ＨＴＭＬ−ＸＭＬ変換定義において、制御文字列＄［ｖａｌｕｅ＃ＤｏＮｏｔＯｕｔｐｕｔ］が抽出され、ＨＴＭＬのインデックスが進められる。制御文字列が＄［ｖａｌｕｅ］であるので、ＨＴＭＬ−ＸＭＬ変換定義において、制御文字列＄［ｖａｌｕｅ＃ＤｏＮｏｔＯｕｔｐｕｔ］と＄［ｆｏｒ＃ｌｉｎｅ］とで挟まれた終端文字列「＜／ｈ１＞＜ｔａｂｌｅ＞＜ｔｒ＞＜ｔｈ＞出発駅＜ｔｈ＞到着駅＜ｔｈ＞路線」が抽出される。終端文字列が抽出されたら、ＨＴＭＬにおいて、インデックスと終端文字列とで挟まれた文字列「１」が抽出される。制御文字列＄［ｖａｌｕｅ＃ＤｏＮｏｔＯｕｔｐｕｔ］には、その属性としてＤｏＮｏｔＯｕｔｐｕｔが設定されているので、文字列「１」を出力せずに、ＨＴＭＬ及びＨＴＭＬ−ＸＭＬ変換定義のインデックスが夫々進められる。
【００５７】
次に、ＨＴＭＬ−ＸＭＬ変換定義において、制御文字列＄［ｆｏｒ＃ｌｉｎｅ］が抽出され、ＨＴＭＬのインデックスが進められる。制御文字列が＄［ｆｏｒ］であるので、ＨＴＭＬ−ＸＭＬ変換定義において、＄［ｆｏｒ＃ｌｉｎｅ］と＄［ｅｎｄ＃＜／ｔａｂｌｅ＞＃＜ｔｒ＞］とで挟まれた文字列「＜ｔｒ＞＜ｔｄ＞＄［ｖａｌｕｅ＃ｓｔａｒｔ］＜ｔｄ＞＄［ｖａｌｕｅ＃ｅｎｄ］＜ｔｄ＞＄［ｖａｌｕｅ＃ｎａｍｅ］」が抽出される。そして、抽出された文字列の先頭から最初の制御文字列までの識別文字列「＜ｔｒ＞＜ｔｄ＞」が抽出される。識別文字列が抽出されると、ＨＴＭＬにおいて、インデックス以降に処理すべき識別文字列があるので、開始タグ「＜ｌｉｎｅ＞」が出力される。開始タグが出力されると、抽出された文字列「＜ｔｒ＞＜ｔｄ＞＄［ｖａｌｕｅ＃ｓｔａｒｔ］＜ｔｄ＞＄［ｖａｌｕｅ＃ｅｎｄ］＜ｔｄ＞＄［ｖａｌｕｅ＃ｎａｍｅ］」を引数として、再帰呼び出しが行われる。
再帰呼び出しが行われた直後では、ＨＴＭＬ及びＨＴＭＬ−ＸＭＬ変換定義は、図１８に示すようになっている。そして、ＨＴＭＬ−ＸＭＬ変換定義において、制御文字列＄［ｖａｌｕｅ＃ｓｔａｒｔ］が抽出され、ＨＴＭＬのインデックスが進められる。制御文字列が＄［ｖａｌｕｅ］であるので、ＨＴＭＬ−ＸＭＬ変換定義において、制御文字列＄［ｖａｌｕｅ＃ｓｔａｒｔ］と＄［ｖａｌｕｅ＃ｅｎｄ］とで挟まれた終端文字列「＜ｔｄ＞」が抽出される。終端文字列が抽出されたら、ＨＴＭＬにおいて、インデックスと終端文字列とで挟まれた文字列「新横浜」が抽出される。制御文字列＄［ｖａｌｕｅ＃ｓｔａｒｔ］には、その属性としてＤｏＮｏｔＯｕｔｐｕｔが設定されていないので、制御文字列＄［ｖａｌｕｅ＃ｓｔａｒｔ］から文字列「ｓｔａｒｔ」が抽出され、これをタグとして、「＜ｓｔａｒｔ＞新横浜＜／ｓｔａｒｔ＞」が出力される。その後、ＨＴＭＬ及びＨＴＭＬ−ＸＭＬ変換定義のインデックスが進められる。ＨＴＭＬ−ＸＭＬ変換定義における制御文字列＄［ｖａｌｕｅ＃ｅｎｄ］及び＄［ｖａｌｕｅ＃ｓｅｓｓｉｏｎ］に対しても同様な処理が行われ、次のようなタグが出力された後、ＨＴＭＬ及びＨＴＭＬ−ＸＭＬ変換定義のインデックスが進められる。
【００５８】
＜ｅｎｄ＞東京＜／ｅｎｄ＞
＜ｎａｍｅ＞ＪＲ東海道新幹線＜／ｎａｍｅ＞
ＨＴＭＬ及びＨＴＭＬ−ＸＭＬ変換定義のインデックスが進められた結果、図１８（Ｂ）に示すＨＴＭＬ−ＸＭＬ変換定義には、インデックス以降に制御文字列がなくなるので、制御文字列＄［ｆｏｒ＃ｌｉｎｅ］に係る再帰呼び出しから抜け出す。そして、制御文字列＄［ｆｏｒ＃ｌｉｎｅ］に係るタグを終了させるべく、終了タグ「＜／ｌｉｎｅ＞」が出力され、ＨＴＭＬのインデックスが進められる。
【００５９】
ＨＴＭＬ−ＸＭＬ変換定義のインデックスが進められた結果、図１７（Ｂ）に示すＨＴＭＬ−ＸＭＬ変換定義には、インデックス以降に制御文字列がなくなるので、制御文字列＄［ｆｏｒ＃ｋｅｉｒｏ］に係る再帰呼び出しから抜け出す。そして、制御文字列＄［ｆｏｒ＃ｋｅｉｒｏ］に係るタグを終了させるべく、終了タグ「＜／ｋｅｉｒｏ＞」が出力され、ＨＴＭＬのインデックスが進められる。
【００６０】
その後、以上説明した処理を続行することで、図１９及び図２０に示すＨＴＭＬ及びＨＴＭＬ−ＸＭＬ変換定義で再帰呼び出しが行われ、ＨＴＭＬが、最終的に図１６に示すＸＭＬにフォーマット変換される。
【００６１】
ＨＴＭＬをＸＭＬにフォーマット変換するとき、ＨＴＭＬ−ＸＭＬ変換定義において入れ子となっている＄［ｆｏｒ］〜＄［ｅｎｄ］は、再起呼び出しを行うことで、制御文字列＄［ｖａｌｕｅ］のみを含む単純な構造とみなすことができる。このため、入れ子が複数階層に展開される構造であっても、容易かつ迅速に、ＨＴＭＬをＸＭＬにフォーマット変換することができる。
【００６２】
以上説明した構成によれば、変換装置１０がＳＯＡＰメッセージとＨＴＴＰメッセージとの間のプロトコル変換を行うので、ＳＯＡＰクライアント２０と既存システム３０との間に変換装置１０を介装させれば、既存システム３０の修正が一切不要となる。このため、既存システム３０の信頼性を確保しつつ、既存システムを効率的にＳＯＡＰ化することができる。
【００６３】
（付記１）ＳＯＡＰリクエストメッセージを受信したときに、ＰＯＳＴメソッド又はＧＥＴメソッドを用いたＨＴＴＰ通信により、前記ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換して送信する機能と、ＨＴＴＰレスポンスメッセージを受信したときに、ＨＴＭＬの主要情報及び繰り返し構造を夫々変数化及び構文化した変換定義を参照して、前記ＨＴＴＰレスポンスメッセージに係るＨＴＭＬをＸＭＬに変換し、該ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信する機能と、をコンピュータに実現させるためのプロトコル変換プログラム。
【００６４】
（付記２）前記ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換して送信する機能は、ＨＴＴＰリクエストメッセージに係るＨＴＭＬのタグ及びその属性を解析して作成した変換規則に基づいて、ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換することを特徴とする付記１記載のプロトコル変換プログラム。
【００６５】
（付記３）前記ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信する機能は、ＨＴＴＰレスポンスメッセージに係るＨＴＭＬと前記変換定義との間で文字列照合を行い、該変換定義において変数化されている部分に該当する文字列をＨＴＭＬから抽出して、ＨＴＭＬをＸＭＬに変換することを特徴とする付記１記載のプロトコル変換プログラム。
【００６６】
（付記４）前記ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信する機能は、ＨＴＴＰレスポンスメッセージに係るＨＴＭＬと前記変換定義との間で文字列照合を行い、該変換定義において構文化されている部分に該当する文字列をＨＴＭＬから抽出して、再帰的に処理を行なうことを特徴とする付記１記載のプロトコル変換プログラム。
【００６７】
（付記５）ＨＴＴＰレスポンスメッセージを受信したときに、ＨＴＭＬの主要情報及び繰り返し構造を夫々変数化及び構文化した変換定義を参照して、前記ＨＴＴＰレスポンスメッセージに係るＨＴＭＬをＸＭＬに変換し、該ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信する機能をコンピュータに実現させるためのプロトコル変換プログラム。
【００６８】
（付記６）前記ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信する機能は、ＨＴＴＰレスポンスメッセージに係るＨＴＭＬと前記変換定義との間で文字列照合を行い、該変換定義において変数化されている部分に該当する文字列をＨＴＭＬから抽出して、ＨＴＭＬをＸＭＬに変換することを特徴とする付記５記載のプロトコル変換プログラム。
【００６９】
（付記７）前記ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信する機能は、ＨＴＴＰレスポンスメッセージに係るＨＴＭＬと前記変換定義との間で文字列照合を行い、該変換定義において構文化されている部分に該当する文字列をＨＴＭＬから抽出して、再帰的に処理を行なうことを特徴とする付記５記載のプロトコル変換プログラム。
【００７０】
（付記８）ＨＴＴＰリクエストメッセージに係るＨＴＭＬのｆｏｒｍタグ及びその属性に基づいて、ＳＯＡＰリクエストメッセージを受信したときに、ＰＯＳＴメソッド又はＧＥＴメソッドを用いたＨＴＴＰ通信により、前記ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換して送信するソースコードと、ＨＴＴＰレスポンスメッセージを受信したときに、ＨＴＭＬの主要情報及び繰り返し構造を夫々変数化及び構文化した変換定義を参照して、前記ＨＴＴＰレスポンスメッセージに係るＨＴＭＬをＸＭＬに変換し、該ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信するソースコードと、を自動生成する機能をコンピュータに実現させるためのプロトコル変換プログラム。
【００７１】
（付記９）ＳＯＡＰリクエストメッセージを受信したときに、ＰＯＳＴメソッド又はＧＥＴメソッドを用いたＨＴＴＰ通信により、前記ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換して送信する一方、ＨＴＴＰレスポンスメッセージを受信したときに、ＨＴＭＬの主要情報及び繰り返し構造を夫々変数化及び構文化した変換定義を参照して、前記ＨＴＴＰレスポンスメッセージに係るＨＴＭＬをＸＭＬに変換し、該ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信することを特徴とするプロトコル変換方法。
【００７２】
（付記１０）ＨＴＭＬの主要情報及び繰り返し構造を夫々変数化及び構文化した変換定義と、ＳＯＡＰリクエストメッセージを受信したときに、ＰＯＳＴメソッド又はＧＥＴメソッドを用いたＨＴＴＰ通信により、前記ＳＯＡＰリクエストメッセージをＨＴＴＰリクエストメッセージに変換して送信する送信手段と、ＨＴＴＰレスポンスメッセージを受信したときに、前記変換定義を参照して、前記ＨＴＴＰレスポンスメッセージに係るＨＴＭＬをＸＭＬに変換し、該ＨＴＴＰレスポンスメッセージをＳＯＡＰレスポンスメッセージに変換して返信する返信手段と、を含んで構成されたことを特徴とするプロトコル変換装置。
【００７３】
【発明の効果】
以上説明したように、本発明に係るプロトコル変換技術によれば、ＳＯＡＰメッセージとＨＴＴＰメッセージとの間でプロトコル変換が行われることとなり、ＨＴＴＰ又はＨＴＴＰＳを利用して構築されたシステムを改変又は全面更改しなくとも、該システムを効率的にＳＯＡＰ化することができる。また、システムの修正を伴わないことから、その信頼性を確保することもできる。
【図面の簡単な説明】
【図１】本発明を具現化した変換装置を用いて、ＳＯＡＰメッセージとＨＴＴＰメッセージとの間でプロトコル変換を行う実施形態を示し、（Ａ）は接続図、（Ｂ）は構成図
【図２】同上の他の実施形態を示し、（Ａ）は接続図、（Ｂ）は構成図
【図３】ＨＴＭＬ−ＸＭＬ変換定義及び変換プログラムの生成手順の説明図
【図４】既存システムに入力されるＨＴＴＰレクエストメッセージの説明図
【図５】既存システムから出力されるＨＴＴＰレスポンスメッセージの説明図
【図６】ＸＴＭＬ−ＸＭＬ変換定義の説明図
【図７】変換プログラムのソースコードを自動生成するメインルーチンのフローチャート
【図８】インタフェース定義を作成するサブルーチンのフローチャート
【図９】同上で使用される変換規則Ｉの説明図
【図１０】同上で使用される変換規則ＩＩの説明図
【図１１】インタフェース定義の説明図
【図１２】ソースコードを自動生成するサブルーチンのフローチャート
【図１３】変換プログラムのソースコードの説明図
【図１４】ＨＴＭＬをＸＭＬに変換する処理を示すフローチャート
【図１５】ＨＴＭＬをＸＭＬに変換する処理を示すフローチャート
【図１６】ＸＭＬへの変換結果の説明図
【図１７】再帰呼び出しが最初に行われたときの状態を示し、（Ａ）はＨＴＭＬの説明図、（Ｂ）はＨＴＭＬ−ＸＭＬ変換定義の説明図
【図１８】再帰呼び出しが２回目に行われたときの状態を示し、（Ａ）はＨＴＭＬの説明図、（Ｂ）はＨＴＭＬ−ＸＭＬ変換定義の説明図
【図１９】再帰呼び出しが３回目に行われたときの状態を示し、（Ａ）はＨＴＭＬの説明図、（Ｂ）はＨＴＭＬ−ＸＭＬ変換定義の説明図
【図２０】再帰呼び出しが４回目に行われたときの状態を示し、（Ａ）はＨＴＭＬの説明図、（Ｂ）はＨＴＭＬ−ＸＭＬ変換定義の説明図
【符号の説明】
１０  変換装置
１２  変換プログラム
１６  ＨＴＭＬ−ＸＭＬ変換定義
【図１】
2004152145.tif 000003
【図２】
2004152145.tif 000004
【図３】
2004152145.tif 000005
【図４】
2004152145.tif 000006
【図５】
2004152145.tif 000007
【図６】
2004152145.tif 000008
【図７】
2004152145.tif 000009
【図８】
2004152145.tif 000010
【図９】
2004152145.tif 000011
【図１０】
2004152145.tif 000012
【図１１】
2004152145.tif 000013
【図１２】
2004152145.tif 000014
【図１３】
2004152145.tif 000015
【図１４】
2004152145.tif 000016
【図１５】
2004152145.tif 000017
【図１６】
2004152145.tif 000018
【図１７】
2004152145.tif 000019
【図１８】
2004152145.tif 000020
【図１９】
2004152145.tif 000021
【図２０】
2004152145.tif 000022