(57)【要約】      （修正有）【課題】構造化文書間の変換効率を向上させる。【解決手段】第１の構造化文書を第２の構造化文書に変換する規則を記述した第１の変換文書を格納する自動生成後変換文書記憶手段と、第１のエンドポイントの端末から前記第１の構造化文書を受信して、前記第１の変換文書を参照して、第２のエンドポイントの端末へ出力される前記第２の構造化文書に変換して出力する変換文書実行手段と、前記変換文書実行手段による変換前と変換後の前記文書のデータを構造化文書データ記憶手段に登録する構造化文書記録手段と、前記構造化文書記録手段に蓄積された変換前と変換後の前記文書のデータから、前記第１の構造化文書と前記第２の構造化文書との関連情報を抽出して構造化文書間関連情報記憶手段に格納する構造化文書解析手段と、前記第１の変換文書内の１部を、前記関連情報の１部で置換する変換文書最適化手段を、備えるデータ変換装置。【選択図】図１
2012027626.tif 000002
【特許請求の範囲】
【請求項１】
第１の構造化言語で記述された文書を第２の構造化言語で記述された文書に変換する規則を記述した第１の変換文書を格納する自動生成後変換文書記憶手段と、
第１のエンドポイントの端末から前記第１の構造化言語で記述された文書を受信して、前記第１の変換文書を参照して、第２のエンドポイントの端末へ出力される前記第２の構造化言語で記述された文書に変換して出力する変換文書実行手段と、
前記変換文書実行手段による変換前と変換後の前記文書のデータを構造化文書データ記憶手段に登録する構造化文書記録手段と、
前記構造化文書記録手段に蓄積された変換前と変換後の前記文書のデータから、前記第１の構造化言語で記述された文書と前記第２の構造化言語で記述された文書との関連情報を抽出して構造化文書間関連情報記憶手段に格納する構造化文書解析手段と、
前記第１の変換文書内の１部を、前記関連情報の１部で置換する変換文書最適化手段を、備えるデータ変換装置。
【請求項２】
前記第１のエンドポイントから入力される文書のスキーマと、前記第２のエンドポイントへ出力される文書のスキーマを格納するスキーマ情報記憶手段を備え、
前記変換文書最適手段は、前記関連情報及び前記スキーマに基づいて、前記変換文書内の前記１部を特定して置換する請求項１のデータ変換装置。
【請求項３】
前記第１の構造化言語で記述された文書を共通構造化言語で記述された文書に変換する規則を記述した第二の変換文書と、前記共通構造化言語で記述された文書を前記第２の構造化言語で記述された文書に変換する規則を記述した第二の変換文書を入力して、前記第１の構造化言語と前記第２の構造化言語の対応を前記共通構造化言語を介して抽出し、前記第１の変換文書を作成して、前記自動生成後変換文書記憶手段に格納する変換文書作成手段を備える、請求項２のデータ変換装置。
【請求項４】
自動生成後変換文書記憶手段は、３個以上の各エンドポイントの端末から入力される、又は端末に出力される各々別の構造化言語で記載される文書の、各対ごとの変換文書を格納し、
前記構造化文書解析手段は、前記各対ごとに前記関連情報を抽出し、
前記変換文書作成手段は、前記各対ごとの変換文書内の１部を、前記各対ごとの関連情報の一部で置換する請求項１乃至３の何れかのデータ変換装置。
【請求項５】
前記第１の構造化言語、第２の構造化言語、共通構造化言語はXML、前記第１の変換文書、前記第２の変換文書、前記第３の変換文書は、XSLTである、請求項１乃至４の何れかのデータ変換装置。
【請求項６】
第１の構造化言語で記述された文書を第２の構造化言語で記述された文書に変換する規則を記述した第１の変換文書を格納する自動生成後変換文書記憶処理と、
第１のエンドポイントの端末から前記第１の構造化言語で記述された文書を受信して、前記第１の変換文書を参照して、第２のエンドポイントの端末へ出力される前記第２の構造化言語で記述された文書に変換して出力する変換文書実行処理と、
前記変換文書実行処理による変換前と変換後の前記文書のデータを構造化文書データ記憶手段に登録する構造化文書記録処理と、
前記構造化文書記録処理で蓄積された変換前と変換後の前記文書のデータから、前記第１の構造化言語で記述された文書と前記第２の構造化言語で記述された文書との関連情報を抽出して構造化文書間関連情報記憶手段に格納する構造化文書解析処理と、
前記第１の変換文書内の１部を、前記関連情報の１部で置換する変換文書最適化処理
を、コンピュータに実行させることを特徴とするデータ変換プログラム。
【請求項７】
前記第１のエンドポイントから入力される文書のスキーマと、前記第２のエンドポイントへ出力される文書のスキーマを格納するスキーマ情報記憶処理と、
前記関連情報及び前記スキーマに基づいて、前記変換文書内の前記１部を特定して置換する前記変換文書最適化処理を前記コンピュータに実行させることを特徴とする、請求項６のデータ変換プログラム。
【請求項８】
前記第１の構造化言語で記述された文書を共通構造化言語で記述された文書に変換する規則を記述した第二の変換文書と、前記共通構造化言語で記述された文書を前記第２の構造化言語で記述された文書に変換する規則を記述した第二の変換文書を入力して、前記第１の構造化言語と前記第２の構造化言語の対応を前記共通構造化言語を介して抽出し、前記第１の変換文書を作成して、前記自動生成後変換文書記憶処理で格納する変換文書作成処理を前記コンピュータに実行させることを特徴とする、請求項７のデータ変換プログラム。
【請求項９】
第１の構造化言語で記述された文書を第２の構造化言語で記述された文書に変換する規則を記述した第１の変換文書を格納し、
第１のエンドポイントの端末から前記第１の構造化言語で記述された文書を受信して、前記第１の変換文書を参照して、第２のエンドポイントの端末へ出力される前記第２の構造化言語で記述された文書に変換して出力し、
変換前と変換後の前記文書のデータを登録し、
蓄積された変換前と変換後の前記文書のデータから、前記第１の構造化言語で記述された文書と前記第２の構造化言語で記述された文書との関連情報を抽出して格納し、
前記第１の変換文書内の１部を、前記関連情報の１部で置換することを特徴とする、データ変換方法。
【請求項１０】
前記第１のエンドポイントから入力される文書のスキーマと、前記第２のエンドポイントへ出力される文書のスキーマを格納し、前記関連情報及び前記スキーマに基づいて、前記変換文書内の前記１部を特定して置換することを特徴とする請求項９のデータ変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ変換装置ならびにそのプログラムと方法に関する。
【背景技術】
【０００２】
近年、目まぐるしく変わる環境に対応するためにシステムの拡張性や変更容易性が高いシステムが求められるようになってきた。ユーザが、レガシーシステムを統合したものや、ある時点で作成したシステムをその後も使い続けるためには、データやサービスインターフェースの標準化が必要である。これに伴い、変更に強いシステムを作るためのサービス指向アーキテクチャ(ＳＯＡ：Service-Oriented Architecture)が提唱されている。
【０００３】
これらの標準化を実現するための基盤技術として、Enterprise Service  Busのようなバス型トポロジを形成するサービス連携装置を基盤としたシステム構築が主流になりつつある。標準化が求められる一方で、ユーザは高い性能を要求する。サービスに依存しない形へと標準化を行った場合には標準化への変換、サービスに依存したデータへの変換といった冗長なデータ変換を行う必要が生じるため、システム内の性能劣化を招いていた。変更容易性と性能はトレードオフの関係にあり、どちらも犠牲にしない最良の設計を行うことは困難であった。このような要求に対応すべく、既存のシステムやアプリケーションをサービス化し、それらを統合することで新たなシステムを開発することが増えてきている。それぞれのサービスは異なるインターフェース、データ構造を持つため、システム連携を行う場合にはバス型トポロジを形成するサービス連携装置が、データ変換を行うことが多い。サービス間連携は送受信データとして主にＸＭＬ（eXtensible  Markup  Langage）等のデータを利用し、データの要素名、構造の差異を吸収するためにＸＳＬＴ（eXtensible Style Language Transformation）変換を利用する。
【０００４】
特許文献１は、サービス連携装置の一例を開示している。クライアントは要求をＸＭＬ変換して送信装置に送り、サービスサイドは受け取ったＸＭＬ形式のＳＯＡＰ（Simple  Object  Access  Protocol）メッセージから、必要なパラメータを取り出してサービスを実行する。
【０００５】
近年のシステムでは、拡張容易性、再利用性が重視されている。そのため、システム連携の基盤となるサービス連携装置は、サービスの結合性やシステムの拡張性を高めるための構成を必要としている。その構成とは、各サービスから受信したデータをサービスに依存しない汎用的なデータ構造に変換し、送信時にサービスに特化したデータ構造へと再変換する仕組みを取り入れるものである。
【０００６】
このように受信データの構造を共通化し、送信データで特化させる場合、受信データをそのまま、特定の送信データの構造へ変換する構造と比べ、1回分変換が多いため、処理効率が悪くなる。
【０００７】
特許文献２は、上記の問題を解決する手段として、異なる構造のＸＭＬファイルを使用したシステムどうしの接続に関して、次のような技術を開示している。ミドルウェアを含むデータ送信側が、そのミドルウェアで扱うＸＭＬと異なるＸＭＬを扱うデータ受信側に対し、該ミドルウェアが実行した処理の結果をＸＳＬＴによりデータ受信側のＸＭＬ構造に変換してから送信する。
【０００８】
特許文献３は、構造化文書（ＸＭＬ文書）を構造変換する構造変換装置に関して、次のような技術を開示している。この技術は、構造化文書が各レコード内の条件によってそのレコード内の要素が変わるデータ構造を持つ場合に関しての技術である。構造変換装置が、各レコード内の条件に対応してそのレコード内に出現する要素を圧縮変換する変換操作を定義する。またこれと共に構造変換装置は、該複数の変換操作定義の何れを適用するかの条件分岐を定義する変換仕様定義手段も定義する。そして構造変換手段が、該変換仕様定義手段による前記各定義に基づいて、前記データ構造を持つ構造化文書を構造変換する。
変換仕様定義手段を使うことによって、この発明は個々にＸＳＬＴを作成する必要がなく、手間を省くことができるという効果を発揮する。
【０００９】
特許文献４は複数のＸＭＬデータを結合する変換命令を書き換えて、最適化されたＸＭＬ変換プログラムを構成する方法を開示している。この変換では、最適化装置が、ＸＰａｔｈ(ＸＭＬ Path Language)式を探索して、ＸＭＬデータを分解処理し、この分解処理で取得したパス表現群を使用して複数のＸＭＬデータを結合する命令を書き換えて、ＸＭＬ変換プログラムを最適化している。
【００１０】
特許文献５は、第１構造化文書から第２構造化文書への変換を行うためのスタイルシート（ＸＳＬＴ）を作成し出力する方法を開示している。ここでは、オントロジー解析手段が、変換対象であるＸＭＬ文書ＡとＸＭＬ文書Ｂ間における項目の対応関係が記憶されているオントロジーファイルを読み込み、ＸＭＬスキーマファイル解析手段が、スタイルシートを出力している。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００８−２３４４０６
【特許文献２】特開２００２−０３２２６３
【特許文献３】特開２００９−０５４１８７
【特許文献４】特開２００４−２９５４１５
【特許文献５】特開２００５−３５２９４５
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明が解決しようとする課題は、構造化文書間の変換効率を向上させることである。
【００１３】
特許文献１の方法は、サービスサイドが受け取ったＸＭＬ形式のメッセージから、必要なパラメータを取り出す必要があるため、変換の効率は低い。
【００１４】
特許文献２、特許文献３の方法は変換後のＸＭＬデータを作成するものであって、変換のためのスタイルシートであるＸＳＬＴを作成については言及していないので、変換効率の向上に関する課題については言及されていない。
【００１５】
特許文献４の方法は複数のＸＭＬデータを結合するという変換を行っている。変換プログラムの作成については、ＸＰａｔｈ(ＸＭＬ Path Language)式を探索して、ＸＭＬデータを分解処理する。この分解処理で取得したパス表現群を使用して複数のＸＭＬデータを結合する命令を書き換えることがこの方法の特徴である。しかし、変換効率の向上に関する課題については言及されていない。
【００１６】
特許文献５の方法は、第１構造化文書から第２構造化文書への変換を行うためのスタイルシート（ＸＳＬＴ）の作成を、オントロジーファイルから得た両文書の関連情報を使って行っている。しかし、オントロジーファイルに記録されている２つのＸＭＬ間の要素もしくは要素値の関係については既成のものを使うことが前提であり、ＸＭＬ間の変換効率を向上させる課題については何ら言及していない。
【００１７】
本発明は、上記課題を解決するデータ変換装置ならびにそのプログラムと方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明によれば、第１の構造化言語で記述された文書を第２の構造化言語で記述された文書に変換する規則を記述した第１の変換文書を格納する自動生成後変換文書記憶手段と、
第１のエンドポイントの端末から前記第１の構造化言語で記述された文書を受信して、前記第１の変換文書を参照して、第２のエンドポイントの端末へ出力される前記第２の構造化言語で記述された文書に変換して出力する変換文書実行手段と、
前記変換文書実行手段による変換前と変換後の前記文書のデータを構造化文書データ記憶手段に登録する構造化文書記録手段と、
前記構造化文書記録手段に蓄積された変換前と変換後の前記文書のデータから、前記第１の構造化言語で記述された文書と前記第２の構造化言語で記述された文書との関連情報を抽出して構造化文書間関連情報記憶手段に格納する構造化文書解析手段と、
前記第１の変換文書内の１部を、前記関連情報の１部で置換する変換文書最適化手段を、備えるデータ変換装置が得られる。
【００１９】
本発明によれば、第１の構造化言語で記述された文書を第２の構造化言語で記述された文書に変換する規則を記述した第１の変換文書を格納する自動生成後変換文書記憶処理と、
第１のエンドポイントの端末から前記第１の構造化言語で記述された文書を受信して、前記第１の変換文書を参照して、第２のエンドポイントの端末へ出力される前記第２の構造化言語で記述された文書に変換して出力する変換文書実行処理と、
前記変換文書実行処理による変換前と変換後の前記文書のデータを構造化文書データ記憶手段に登録する構造化文書記録処理と、
前記構造化文書記録処理で蓄積された変換前と変換後の前記文書のデータから、前記第１の構造化言語で記述された文書と前記第２の構造化言語で記述された文書との関連情報を抽出して構造化文書間関連情報記憶手段に格納する構造化文書解析処理と、
前記第１の変換文書内の１部を、前記関連情報の１部で置換する変換文書最適化処理
を、コンピュータに実行させることを特徴とするデータ変換プログラムが得られる。
本発明によれば、第１の構造化言語で記述された文書を第２の構造化言語で記述された文書に変換する規則を記述した第１の変換文書を格納し、
第１のエンドポイントの端末から前記第１の構造化言語で記述された文書を受信して、前記第１の変換文書を参照して、第２のエンドポイントの端末へ出力される前記第２の構造化言語で記述された文書に変換して出力し、
変換前と変換後の前記文書のデータを登録し、
蓄積された変換前と変換後の前記文書のデータから、前記第１の構造化言語で記述された文書と前記第２の構造化言語で記述された文書との関連情報を抽出して格納し、
前記第１の変換文書内の１部を、前記関連情報の１部で置換することを特徴とする、データ変換方法が得られる。
【発明の効果】
【００２０】
本発明の効果は、構造化文書間の変換効率を向上させることにある。
【図面の簡単な説明】
【００２１】
【図１】図１は本発明の第１の実施の形態の構成を示すブロック図である。
【図２】図２は本発明の第１の実施の形態のルーティング情報登録の処理を示すフローチャートである。
【図３】図３は本発明の第１の実施の形態のＸＳＬＴファイル作成の処理を示すローチャートである。
【図４】図４は本発明の第１の実施の形態のルーティング実行の処理を示すローチャートである。
【図５】図５は本発明の第１の実施の形態のデータ変換の処理を示すローチャートである。
【図６】図６は本発明の第１の実施の形態のＸＳＬＴ最適化の処理を示すローチャートである。
【図７】図７は本発明の第１の実施の形態のルーティング情報、スキーマ情報、ＸＳＬＴ情報の一例を示す図である。
【図８】図８は本発明の第１の実施の形態のＸＭＬデータ情報とＸＭＬデータ間関連情報の一例を示す図である。
【図９】図９は本発明の第１の実施の形態の自動生成後ＸＳＬＴ情報の一例を示す図である。
【図１０】図１０は本発明の第１の実施の形態の入力データ（送信前リクエストデータ）と共通化データと出力データ（外部サービスリクエストデータ）の関係の一例を示す図である。
【図１１】図１１は本発明の第１の実施の形態のＸＳＬＴ最適化方法の概要を示す図である。
【図１２】図１２は本発明の第１の実施の形態のＸＳＬＴ最適化方法の一例を示す図である。
【図１３】図１３は関連する技術に関する図である。
【図１４】図１４は本発明の第１の実施の形態のＸＳＬＴ最適化方法の一例を示す図である。
【図１５】図１５は本発明の第２の実施の形態の構成を示すブロック図である。
【発明を実施するための形態】
【００２２】
（第１の実施形態）以下は、本発明をサービス連携装置に適用させた場合の実施の形態の構成について、図面を参照して詳細に説明するものである。
【００２３】
図1に本発明の第１の実施の形態のあるデータ変換装置１を示す。データ変換装置１は、はサービス連携モジュール１００とＸＭＬデータ処理モジュール２００とＸＳＬＴ最適化モジュール３００から構成されている。サービス連携モジュール１００はルーティング情報登録部１０１、ルーティング実行部１０２、ＸＳＬＴ実行部１０３、メッセージ受信部１０４、メッセージ送信部１０５を含む。さらにサービス連携モジュール１００は、ルーティング情報記憶装置１０６、ユーザ作成ＸＳＬＴ記憶装置１０７、スキーマ情報記憶装置１０８を含む。
【００２４】
ＸＭＬデータ処理モジュール２００はＸＭＬデータ記録部２０１、ＸＭＬデータ解析部２０２、ＸＭＬデータ間関連情報記録部２０３、ＸＭＬデータ記憶装置２０４、ＸＭＬデータ間関連情報記憶装置２０５、を含む。ＸＳＬＴ最適化モジュール３００はＸＳＬＴ生成部３０１、ＸＳＬＴ記録部３０２、ＸＳＬＴ最適化部３０３、自動生成後ＸＳＬＴ記憶装置３０４を含む。これらはそれぞれ概略次のように動作する。
【００２５】
ルーティング情報登録部１０１はユーザから登録されたルーティングに関する情報をルーティング情報記憶装置１０６、ユーザ作成ＸＳＬＴ記憶装置１０７、スキーマ情報記憶装置１０８の各記録装置に登録する。
【００２６】
ルーティング実行部１０２はルーティング情報記憶装置１０６に登録されたルーティング情報を基にルーティングを実行する。ルーティング実行部１０２はメッセージ受信部１０４が受信した、クライアントアプリケーションが送信したＸＭＬデータを、ルーティング情報を用いて、メッセージ送信部１０５を介して、外部サービスへ送信する。また、ルーティング実行部１０２は、メッセージ受信部１０４が受信した、外部サービスからの返信ＸＭＬデータを、メッセージ送信部１０５を介して次のサービスに送信、またはクライアントアプリケーションへ返信する。
【００２７】
ＸＳＬＴ実行部１０３はＸＳＬＴを解釈し、データ変換を実行する。ＸＳＬＴ実行部１０３はルーティング情報を基に、図９に示すように自動生成後ＸＳＬＴ記憶装置３０４に登録されているＸＳＬＴファイルを読み込み、データ変換を行う。
【００２８】
メッセージ受信部１０４はクライアントのリクエストデータ（以降、送信前リクエストデータとも呼ぶ）や外部サービスのレスポンスデータを受信する。
【００２９】
メッセージ送信部１０５はクライアントへのレスポンスデータや外部サービスへのリクエストデータ（以降、外部サービスリクエストデータとも呼ぶ）を送信する。
【００３０】
ルーティング情報記憶装置１０６はルーティング情報を記録する装置である。
【００３１】
ユーザ作成ＸＳＬＴ記憶装置１０７はユーザが作成したＸＳＬＴファイルを記録する装置である。
【００３２】
スキーマ情報記憶装置１０８はサービスが送受信するデータのスキーマ情報を記録する装置である。
【００３３】
ＸＭＬデータ記録部２０１はサービス連携モジュール１００の中を流れたＸＭＬデータをＸＭＬデータ記憶装置２０４に記録する。
【００３４】
ＸＭＬデータ解析部２０２はＸＭＬデータ記憶装置２０４に記録されたＸＭＬデータを解析する手段である。ＸＭＬデータ解析部２０２は、クライアントのリクエスト受信、外部サービスとの送受信、クライアントへのレスポンス送信まで一連の処理でやりとりされたデータを読み込み、データの解析を行う。ＸＭＬデータ解析部２０２は、メッセージを効率よく変換するために必要なデータ間で流れるメッセージの傾向や特徴を算出するとともに、これらの解析からＸＭＬデータ間関連情報を取得する。
【００３５】
ＸＭＬデータ間関連情報記録部２０３はＸＭＬデータ解析部２０２で取得したＸＭＬデータ間の関連情報をＸＭＬデータ間関連情報記憶装置２０５に記録する。
【００３６】
ＸＳＬＴ生成部３０１はルーティング情報、ユーザが作成したＸＳＬＴファイルを元にサービス連携モジュール１００が利用するＸＳＬＴファイルを自動作成する。
【００３７】
ＸＳＬＴ記録部３０２はＸＳＬＴ生成部３０１が自動生成したＸＳＬＴを自動生成後ＸＳＬＴ記憶装置３０４に記録する。
【００３８】
ＸＳＬＴ最適化部３０３はＸＳＬＴ生成部３０１が自動生成したＸＳＬＴに対して、ＸＭＬデータ間関連情報記憶装置２０５に記憶された情報を利用して最適化する。
【００３９】
以下は、図２〜図６のフローチャートを参照して本発明の第１の実施の形態の動作について詳細に説明するものである。ルーティング情報登録については、図２を用いて、以下のように説明される。
【００４０】
まず、ユーザからルーティング情報を含むメッセージが登録され、メッセージ受信部１０４がこれを受け付ける(a1)。受け付けたルーティング情報から、ルーティング情報登録部１０１が、ルーティング情報を取り出し、これをルーティング情報記憶装置１０６に登録する(a2)。その後、ルーティング情報登録部１０１は、ユーザが作成したＸＳＬＴをユーザ作成ＸＳＬＴ記憶装置１０７に登録する(a3)。更にルーティング情報登録部１０１は、それぞれのサービスへの送信前リクエストデータ、およびレスポンスデータのスキーマ情報をスキーマ情報記憶装置１０８に登録する(a4)。図７（ａ）、（ｂ）、（ｃ）はそれぞれは(a2)、(a3)、(a4)で格納されるデータを示している。
【００４１】
次にこれら（a2）、（a3）、（a4）のデータを元に、ＸＳＬＴ最適化モジュール３００内のＸＳＬＴ生成部３０１が、内部で利用するＸＳＬＴを生成する(a5)。
【００４２】
ＸＳＬＴファイル作成については、図３を用いて、説明する。
ユーザが作成したＸＳＬＴは受信データを共通化データに変換するものと共通化データを送信データに変換するものがある。ＸＳＬＴ生成部３０１が、これらの情報を基に、内部で利用するＸＳＬＴを生成する。
【００４３】
ＸＳＬＴ生成部３０１はルーティング情報記憶装置１０６からルーティング情報を読み込み、クライアントの受信先となるエンドポイントの情報を取得する(b1)。ＸＳＬＴ生成部３０１は、ユーザ作成ＸＳＬＴ記憶装置１０７より、送信前リクエストデータから共通化データに変換するＸＳＬＴを取得する(b2)。
【００４４】
ＸＳＬＴ生成部３０１は、ルーティング情報からメッセージ送信先の情報を取得し、共通化データから外部サービスリクエストデータを生成するＸＳＬＴをユーザ作成ＸＳＬＴ記憶装置１０７から取得する（b3）。ＸＳＬＴ生成部３０１は、スキーマ情報記憶装置１０８から共通化データ変換前後のスキーマ情報を取得する(b4)。
【００４５】
ＸＳＬＴ生成部３０１は(b4)で取得したスキーマ情報と(b2)で取得した送信前リクエストデータから共通化データに変換するＸＳＬＴを利用し、送信前リクエストデータと共通化データとの対応関係を表すリストを作成する(b5)。ＸＳＬＴ生成部３０１は(b4)で取得したスキーマ情報と(b3)で取得した共通化データから外部サービスリクエストデータに変換するＸＳＬＴを利用し、共通化データと外部サービスリクエストデータとの対応関係を表すリストを作成する(b6)。
【００４６】
ＸＳＬＴ生成部３０１は、(b5)、(b6)で作成したリストから、送信前リクエストデータと共通化データと外部サービスリクエストデータのマッピング関係について分析する(図１０参照)。その後、ＸＳＬＴ生成部３０１は、送信前リクエストデータと外部サービスリクエストデータの対応関係を決定する（b7）。
【００４７】
ＸＳＬＴ生成部３０１は(b7)の情報を元に、ＸＳＬＴを生成し、生成されたＸＳＬＴを、ＸＳＬＴ記録部３０２が自動生成後ＸＳＬＴ記憶装置３０４に記憶する（b8）。次のルーティングを行う指定がルーティング情報に含まれている場合には次の情報に対して(b2)〜(b8)を繰り返し実行する。なお、以上の説明においては、送信前リクエストデータを外部サービスリクエストデータに変換する場合についてのみ取り上げているが、外部サービスからのレスポンスを受ける場合についても、同様の手順でＸＳＬＴファイルの作成が行われる。
【００４８】
ルーティング実行については図４を用いて説明する。
メッセージ受信部１０４がクライアント送信データを受信する(c1)。ルーティング実行部１０２は、メッセージ受信部１０４を介して受信したクライアント送信データに含まれるURLからエンドポイントを決定し、ルーティング情報記憶装置１０６から、対応するルーティング情報を読み込む(C2)。読み込んだルーティング情報を元にルーティング実行部１０２がメッセージのルーティングを行う(C3)。
【００４９】
ルーティング実行部１０２はルーティング情報に次の送信先があるかどうかを判断し(c4)、送信先がある場合、後述するようにＸＳＬＴ実行部１０３がデータ変換を行う(c5)。
ルーティング実行部１０２は変換されたデータを用いて、メッセージ送信部１０５を介して外部サービスにデータを送信する(c6)。外部サービスからのレスポンスを受け付ける場合にはメッセージ受信部１０４がレスポンスデータの受信を行い(c8)、(c5)と同様に、ＸＳＬＴ実行部１０３が、データ変換を行う。
【００５０】
続いて、ルーティング実行部１０２は、受信したレスポンスデータを次のinputに置換する。すなわちルーティング実行部１０２は、このレスポンスデータを入力データとして、(C4)からの処理を繰り返す。ルーティング実行部１０２は、レスポンスデータを受けない場合は変換前のリクエストデータを再びinputとして利用する。ルーティング実行部１０２は、これらを、ルーティング情報に次の送信先がある間繰り返し実行する。
【００５１】
(c4)にて次の送信先がなくなると、ルーティング実行部１０２はルーティング情報からレスポンス送信を行うかどうかを判断する(c11)。レスポンスを返さない場合は後述するＸＳＬＴ最適化を、ＸＳＬＴ最適化部３０３が行い(c15)、ルーティングを完了する。
レスポンスを返す必要がある場合は、ＸＳＬＴ実行部１０３がデータ変換を行ない(c12)、メッセージ送信部１０５がレスポンスデータをクライアントに返信する(c13)。メッセージ送信部１０５がデータを返信した後、ＸＳＬＴ最適化モジュール３００が、ＸＳＬＴ最適化処理を行う(c14)。
【００５２】
データ変換については図５を用いて説明する。
ＸＭＬデータ記録部２０１が、クライアントが送信した変換前の送信前リクエストデータをメッセージ受信部１０４から受け取り、ＸＭＬデータ記憶装置２０４に登録する(d1)。ＸＳＬＴ実行部１０３が、自動生成後ＸＳＬＴ記憶装置３０４からＸＳＬＴファイルを読み込み(d2)、ＸＳＬＴ実行部１０３がデータ変換を行う（d3）。変換後のデータを、ＸＭＬデータ記録部２０１が受け取り、ＸＭＬデータ記憶装置２０４に登録する(d4)。
【００５３】
ＸＳＬＴ最適化については図６を用いて説明する。
ＸＭＬデータ記憶装置２０４に記憶されているＸＭＬデータをＸＭＬデータ解析部２０２が読み込む（e1）。ＸＭＬデータ解析部２０２は、ＸＭＬデータ記憶装置２０４に蓄積されたデータを利用して、メッセージング内で利用されるＸＭＬデータに利用されるデータ構造の特徴やマッピングルールなどについて解析する。またＸＭＬデータ解析部２０２は、これとともに、ＸＭＬデータ同士の関連性に関する情報を取得する（e2）。
【００５４】
(e2)でＸＭＬデータ解析部２０２が得た結果を、ＸＭＬデータ間関連情報記録部２０３がＸＭＬデータ間関連情報記憶装置２０５に記憶する（e3）。
【００５５】
次にＸＳＬＴ最適化部３０３が、自動生成後ＸＳＬＴ記憶装置３０４から、メッセージングに関連するＸＳＬＴファイルを読み込む（e4）。ＸＳＬＴ最適化部３０３がＸＭＬデータ間関連情報記憶装置２０５の情報の元に読み込んだＸＳＬＴファイルを最適化し、ＸＳＬＴファイルを更新する。(e5)。
【００５６】
ＸＳＬＴ最適化部３０３が更新したＸＳＬＴファイルを、ＸＳＬＴ記録部３０２が、自動生成後ＸＳＬＴ記憶装置３０４に記憶する(e6)。
【００５７】
ここからはＸＳＬＴの最適化方法について詳細を説明する。図１１（ａ）にＸＭＬデータ変換概要、（ｂ）にＸＭＬデータ変換例を示すように、ＸＳＬＴは、大きくは制御処理と変換処理の記述を有する。
【００５８】
この最適化についての具体例は、図８に基づいて説明する。図８のＸＭＬデータ情報は、ＸＭＬデータ記憶装置２０４に記憶されたものの一例であり、各エンドポイントにおける、メッセージングＩＤ、リクエスト／レスポンスの種別毎のＸＭＬデータを示している。また、ＸＭＬデータ間関連情報は、ＸＭＬデータ間関連情報記憶装置２０５に記憶されたものの一例であり、上記のＸＭＬデータ情報から導かれた、エンドポイント間のＸＭＬデータ間関連情報を示す。ＸＳＬＴを最適化するにあたっては、これらのＸＭＬデータ間関連関連情報にもとづいて、ＸＭＬの変換処理を記述する。
【００５９】
ＸＳＬＴによるＸＭＬデータの変換処理においては、関数を利用した文字列演算や、要素名/属性名の置換、ＸＭＬの構造の組み換えなどが可能なので、ＸＳＬＴ最適化部３０３はこれらの最適化を行うこともできる。
【００６０】
ＸＳＬＴ最適化の別の具体例は、図１２に基づいて説明される。図１２（ａ）に示したインライン化は要素のマッチングや関数呼び出しの記述は保守性の向上や変更容易性のために行われている。したがって、通常のメッセージングにおいては、これらをインライン化することで処理効率をあげることができることを示している。マッチングのパターンとしては要素名や属性名以外にも名前空間やそれらが特定の値の場合など、複雑なケースの場合の記述を行うことも出来る。また、マッチングパターンとしては、*(アスタリスク)を利用して、全てにマッチさせる記述を行う、といったことも可能である。
【００６１】
ここに示されている条件と、実際に流れているデータを、ＸＭＬデータ間関連情報記憶装置２０５の結果を用いて比較しながら、インライン化を行うことで、マッチング処理を減らすことができるようになる。また、この図１２（ｂ）示した固定値の埋め込みにおいては、ＸＭＬデータ間関連情報記憶装置２０５から得た、title＝<item>という関連情報を用いて、式の数を減らす最適化を行っている。
【００６２】
構造を生成する処理を具体化する最適化を行った例については、図１４を用いて説明される。この例はＸＭＬデータ間関連情報（ａ）に基づいて、Valueによる場合分けを、具体的に最適化前のＸＳＬＴ（ｂ）に取り込み、最適化後のＸＳＬＴ（ｃ）を得ている。
【００６３】
さらに、ＸＳＬＴであるＸＭＬを別のＸＭＬの構造に作る場合、新規に要素を作成するか、もしくは元のＸＭＬのある要素以下をそのままコピーすることが多い。
【００６４】
新規に要素を作成する場合、挿入したいタグを直接書くことも可能だが、ＸＳＬＴに用意されているelementタグなどを用いて動的に要素名や構造を決定することもできる。先に述べたマッチング処理と併用することで汎用的な形の記述が可能になるが、連携時には予め特定のデータ構造を作成するような記述に置き換えることで冗長な処理を行う必要がなくなる。
【００６５】
ＸＳＬＴの制御処理としては、通常の手続き型プログラミング言語が持つ繰り返し処理や条件分岐以外にＸＭＬ固有ともいえる、子要素名、属性名、名前空間名などを利用したマッチングによるフロー制御が記述できる。
【００６６】
第１の実施形態から得られる第１の効果は、データ変換の効率が向上することにある。その理由は、構造化文書間関連情報記憶部の関連情報を利用できるからである。
【００６７】
第２の効果は、システムの拡張性、変更容易性を維持したまま、メッセージング中のデータ変換回数を減らし、処理効率を向上させることにある。  その理由は、以下に示される。図１３は本特許導入前の構成である。図１３ではメッセージ受信部によって受信したデータはルーティング実行部によってルーティングされるが、その際に共通化データ変換用ＸＳＬＴ実行部によって、一度変換処理が行われる。ルーティング後、外部サービスに送信前に送信データ作成用ＸＳＬＴ実行部によって共通データから送信データへの変換が行われ、データ送信部によってメッセージ送信が行われる。これに対して本発明では図１に示すように、メッセージ送信時に、自動生成されたＸＳＬＴを利用することで、受信メッセージをそのまま送信メッセージに変換できる。ここで言う自動生成されたＸＳＬＴとは、サービス連携モジュール１００のＸＳＬＴ実行部１０３で自動生成後ＸＳＬＴ記憶装置３０４に記録されたものである。そのため、受信メッセージから共通化メッセージ、共通化メッセージから送信メッセージという多段の変換を省くことができるからである。
【００６８】
第３の効果は、自動生成したＸＳＬＴファイルを実データに合わせて動的に最適化していくことにより、変換回数を減らし、コストを削減することにある。その理由は以下に示される。図１に示すように、ＸＭＬデータ解析部２０２が、メッセージングに使われたＸＭＬデータをその都度蓄積し、解析する。この結果得られたＸＭＬの構造や依存関係などの情報を、ＸＭＬデータ解析部２０２が、ＸＭＬデータ間関連情報記憶装置２０５に記憶する。ＸＳＬＴ最適化部３０３が、この情報を利用して、自動生成後ＸＳＬＴ記録装置３０４に記録されたＸＳＬＴの処理を動的に最適化する。図１２、１４で説明したように、ＸＭＬデータを蓄積、解析することで得たＸＭＬの構造や依存関係などの情報を利用し、抽象化されたＸＳＬＴファイルを具体化した値や構造で置換することで最適化を行うことができるため、変換回数を減らすことができる。
【００６９】
（第２の実施形態）本実施形態は、図１５に示すように、第１の構造化言語で記述された文書を第２の構造化言語で記述された文書に変換する規則を記述した第１の変換文書を格納する自動生成後変換文書記憶部４０１と、第１のエンドポイントの端末から前記第１の構造化言語で記述された文書を受信して、前記第１の変換文書を参照して、第２のエンドポイントの端末へ出力される前記第２の構造化言語で記述された文書に変換して出力する変換文書実行部４０２と、前記変換文書実行手段による変換前と変換後の前記文書のデータを構造化文書データ記憶手段に登録する構造化文書記録部４０３と、前記構造化文書記録手段に蓄積された変換前と変換後の前記文書のデータから、前記第１の構造化言語で記述された文書と前記第２の構造化言語で記述された文書との関連情報を抽出して構造化文書間関連情報記憶部４０４に格納する構造化文書解析部４０５と、前記第１の変換文書内の１部を、前記関連情報の１部で置換する変換文書最適化部４０６と、を備えるデータ変換装置である。
【００７０】
第２の実施形態から得られる第１の効果は、第１の構造化文書から第２の構造化文書への変換効率を上げることである。その理由は、このデータ変換装置は、構造化文書間関係情報記憶部４０２に保存された両文書の対応関係を利用して第１の構造化文書から第２の構造化文書への変換を行うことができるからである。
【００７１】
以上、第一、第二の実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００７２】
（付記１）第１の構造化言語で記述された文書を第２の構造化言語で記述された文書に変換する規則を記述した第１の変換文書を格納する自動生成後変換文書記憶手段と、第１のエンドポイントの端末から前記第１の構造化言語で記述された文書を受信して、前記第１の変換文書を参照して、第２のエンドポイントの端末へ出力される前記第２の構造化言語で記述された文書に変換して出力する変換文書実行手段と、前記変換文書実行手段による変換前と変換後の前記文書のデータを構造化文書データ記憶手段に登録する構造化文書記録手段と、前記構造化文書記録手段に蓄積された変換前と変換後の前記文書のデータから、前記第１の構造化言語で記述された文書と前記第２の構造化言語で記述された文書との関連情報を抽出して構造化文書間関連情報記憶手段に格納する構造化文書解析手段と、
前記第１の変換文書内の１部を、前記関連情報の１部で置換する変換文書最適化手段を、備えるデータ変換装置。
【００７３】
（付記２）前記第１のエンドポイントから入力される文書のスキーマと、前記第２のエンドポイントへ出力される文書のスキーマを格納するスキーマ情報記憶手段を備え、前記変換文書最適手段は、前記関連情報及び前記スキーマに基づいて、前記変換文書内の前記１部を特定して置換する請求項１のデータ変換装置。
【００７４】
（付記３）前記第１の構造化言語で記述された文書を共通構造化言語で記述された文書に変換する規則を記述した第二の変換文書と、前記共通構造化言語で記述された文書を前記第２の構造化言語で記述された文書に変換する規則を記述した第二の変換文書を入力して、前記第１の構造化言語と前記第２の構造化言語の対応を前記共通構造化言語を介して抽出し、前記第１の変換文書を作成して、前記自動生成後変換文書記憶手段に格納する変換文書作成手段を備える、請求項２のデータ変換装置。
【００７５】
（付記４）自動生成後変換文書記憶手段は、３個以上の各エンドポイントの端末から入力される、又は端末に出力される各々別の構造化言語で記載される文書の、各対ごとの変換文書を格納し、前記構造化文書解析手段は、前記各対ごとに前記関連情報を抽出し、前記変換文書作成手段は、前記各対ごとの変換文書内の１部を、前記各対ごとの関連情報の一部で置換する請求項１乃至３の何れかのデータ変換装置。
【００７６】
（付記５）前記第１の構造化言語、第２の構造化言語、共通構造化言語はXML、前記第１の変換文書、前記第２の変換文書、前記第３の変換文書は、XSLTである、請求項１乃至４の何れかのデータ変換装置。
【００７７】
（付記６）第１の構造化言語で記述された文書を第２の構造化言語で記述された文書に変換する規則を記述した第１の変換文書を格納する自動生成後変換文書記憶処理と、第１のエンドポイントの端末から前記第１の構造化言語で記述された文書を受信して、前記第１の変換文書を参照して、第２のエンドポイントの端末へ出力される前記第２の構造化言語で記述された文書に変換して出力する変換文書実行処理と、前記変換文書実行処理による変換前と変換後の前記文書のデータを構造化文書データ記憶手段に登録する構造化文書記録処理と、前記構造化文書記録処理で蓄積された変換前と変換後の前記文書のデータから、前記第１の構造化言語で記述された文書と前記第２の構造化言語で記述された文書との関連情報を抽出して構造化文書間関連情報記憶手段に格納する構造化文書解析処理と、
前記第１の変換文書内の１部を、前記関連情報の１部で置換する変換文書最適化処理
を、コンピュータに実行させることを特徴とするデータ変換プログラム。
【００７８】
（付記７）前記第１のエンドポイントから入力される文書のスキーマと、前記第２のエンドポイントへ出力される文書のスキーマを格納するスキーマ情報記憶処理と、前記関連情報及び前記スキーマに基づいて、前記変換文書内の前記１部を特定して置換する前記変換文書最適化処理を前記コンピュータに実行させることを特徴とする、請求項６のデータ変換プログラム。
【００７９】
（付記８）前記第１の構造化言語で記述された文書を共通構造化言語で記述された文書に変換する規則を記述した第二の変換文書と、前記共通構造化言語で記述された文書を前記第２の構造化言語で記述された文書に変換する規則を記述した第二の変換文書を入力して、前記第１の構造化言語と前記第２の構造化言語の対応を前記共通構造化言語を介して抽出し、前記第１の変換文書を作成して、前記自動生成後変換文書記憶処理で格納する変換文書作成処理を前記コンピュータに実行させることを特徴とする、請求項７のデータ変換プログラム。
【００８０】
（付記９）第１の構造化言語で記述された文書を第２の構造化言語で記述された文書に変換する規則を記述した第１の変換文書を格納し、第１のエンドポイントの端末から前記第１の構造化言語で記述された文書を受信して、前記第１の変換文書を参照して、第２のエンドポイントの端末へ出力される前記第２の構造化言語で記述された文書に変換して出力し、変換前と変換後の前記文書のデータを登録し、蓄積された変換前と変換後の前記文書のデータから、前記第１の構造化言語で記述された文書と前記第２の構造化言語で記述された文書との関連情報を抽出して格納し、前記第１の変換文書内の１部を、前記関連情報の１部で置換することを特徴とする、データ変換方法。
【００８１】
（付記１０）前記第１のエンドポイントから入力される文書のスキーマと、前記第２のエンドポイントへ出力される文書のスキーマを格納し、前記関連情報及び前記スキーマに基づいて、前記変換文書内の前記１部を特定して置換することを特徴とする請求項９のデータ変換方法。
【符号の説明】
【００８２】
１    データ変換装置
１００    サービス連携モジュール
１０１    ルーティング情報登録部
１０２    ルーティング実行部
１０３    ＸＳＬＴ実行部
１０４    メッセージ受信部
１０５    メッセージ送信部
１０６    ルーティング情報記憶装置
１０７    ユーザ作成ＸＳＬＴ記憶装置
１０８    スキーマ情報記憶装置
２００    ＸＭＬデータ処理モジュール
２０１    ＸＭＬデータ記録部
２０２    ＸＭＬデータ解析部
２０３    ＸＭＬデータ間関連情報記録部
２０４    ＸＭＬデータ記憶装置
２０５    ＸＭＬデータ間関連情報記憶装置
３００    ＸＳＬＴ最適化モジュール
３０１    ＸＳＬＴ生成部
３０２    ＸＳＬＴ記録部
３０３    ＸＳＬＴ最適化手段
３０４    自動生成後ＸＳＬＴ記憶装置
４０１    自動生成後変換文書記憶部
４０２    変換文書実行部
４０３    構造化文書記録部
４０４    構造化文書関連情報記憶部
４０５    構造化文書解析部
４０６    変換文書最適化部
【図１】
2012027626.tif 000003
【図２】
2012027626.tif 000004
【図３】
2012027626.tif 000005
【図４】
2012027626.tif 000006
【図５】
2012027626.tif 000007
【図６】
2012027626.tif 000008
【図７】
2012027626.tif 000009
【図８】
2012027626.tif 000010
【図９】
2012027626.tif 000011
【図１０】
2012027626.tif 000012
【図１１】
2012027626.tif 000013
【図１２】
2012027626.tif 000014
【図１３】
2012027626.tif 000015
【図１４】
2012027626.tif 000016
【図１５】
2012027626.tif 000017