(57)【特許請求の範囲】
【請求項１】
第１のデータ形式を有する所定のデータモデルのデータのデータ形式をリレーショナルデータベースに応じた第２のデータ形式に変換し、又は、前記第２のデータ形式のデータを前記第１のデータ形式に変換するアダプタを生成するアダプタ生成装置において、
当該アダプタを生成するアダプタ生成部と、
前記アダプタ生成部により生成された１又は複数の前記アダプタを記憶する記憶部と
を備え、
前記アダプタ生成部は、
データ出力形式ごとの出力用のサブセットに対して、前記データモデルのプロファイル及びバージョンと、前記リレーショナルデータベースのテーブルと、前記リレーショナルデータベースに対するクエリとをそれぞれ紐付けるマッピング情報と、
前記アダプタを生成する際に用いるデータ変換のツール及びルールに関する各情報と、データ変換処理を行うスクリプトに関する情報と、定義のフォーマットに関する情報とを含む管理情報と
を保持し、
前記マッピング情報及び前記管理情報に基づいて、指定された前記データ出力形式に応じた前記アダプタを生成する
ことを特徴とするアダプタ生成装置。
【請求項２】
前記アダプタ生成部は、
指定された複数の前記データ出力形式に応じた前記アダプタを生成する
ことを特徴とする請求項１に記載のアダプタ生成装置。
【請求項３】
前記マッピング情報及び前記管理情報をそれぞれ設定するためのインタフェースを備える
ことを特徴とする請求項１に記載のアダプタ生成装置。
【請求項４】
前記データモデルは、
国際規格で規定されたＣＩＭ（Common Information Model）であり、
前記アダプタは、
上位装置からＸＭＬ（Extensible Markup Language）形式で送信される前記ＣＩＭのデータを前記リレーショナルデータベースに応じたデータ形式に変換し、又は、前記リレーショナルデータベースで管理されている前記ＣＩＭのデータを前記ＸＭＬ形式のデータに変換する
ことを特徴とする請求項１に記載のアダプタ生成装置。
【請求項５】
第１のデータ形式を有する所定のデータモデルのデータのデータ形式をリレーショナルデータベースに応じた第２のデータ形式に変換し、又は、前記第２のデータ形式のデータを前記第１のデータ形式に変換するアダプタを生成するアダプタ生成装置において実行されるアダプタ生成方法であって、
前記アダプタ生成装置が、前記アダプタ生成装置に、データ出力形式ごとの出力用のサブセットに対して、前記データモデルのプロファイル及びバージョンと、前記リレーショナルデータベースのテーブルと、前記リレーショナルデータベースに対するクエリとをそれぞれ紐付けるマッピング情報を設定する第１のステップと、
前記アダプタ生成装置が、前記マッピング情報と管理情報とに基づいて、指定された前記データ出力形式に応じた前記アダプタを生成する第２のステップと
を備え、
前記管理情報が、前記アダプタを生成する際に用いるデータ変換のツール及びルールに関する各情報と、データ変換処理を行うスクリプトに関する情報と、定義のフォーマットに関する情報とを含む、
ことを特徴とするアダプタ生成方法。
【請求項６】
前記第２のステップにおいて、前記アダプタ生成装置は、
指定された複数の前記データ出力形式に応じた前記アダプタを生成する
ことを特徴とする請求項５に記載のアダプタ生成方法。
【請求項７】
前記アダプタ生成装置は、
前記マッピング情報及び前記管理情報をそれぞれ設定するためのインタフェースを有し、
前記第１のステップでは、
当該インタフェースを介して前記マッピング情報が設定される
ことを特徴とする請求項５に記載のアダプタ生成方法。
【請求項８】
前記データモデルは、
国際規格で規定されたＣＩＭ（Common Information Model）であり、
前記アダプタは、
上位装置からＸＭＬ（Extensible Markup Language）形式で送信される前記ＣＩＭのデータを前記リレーショナルデータベースに応じたデータ形式に変換し、又は、前記リレーショナルデータベースで管理されている前記ＣＩＭのデータを前記ＸＭＬ形式のデータに変換する
ことを特徴とする請求項５に記載のアダプタ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アダプタ生成装置及び方法に関し、例えば、ＣＩＭ（Common Information Model）のようなデータモデルのデータをリレーショナルデータベース（ＲＤＢ：Relational Data Base）形式のデータに変換するアダプタを生成するアダプタ生成装置に適用して好適なものである。
【背景技術】
【０００２】
近年、例えばビッグデータ分析のように、多種多様なデータを収集及び蓄積し、蓄積したデータを統合的に分析することで新たな付加価値を提供することが求められている。このような状況のもと、データ形式の混在はデータ分析のための準備作業に時間がかかり、利便性を損なうため、標準データモデルＣＩＭ（Common Information Model）の国際規格化（標準化）が進められている。【０００３】
ＣＩＭで表現されたデータ（以下、これをＣＩＭデータと呼ぶ）を取り扱う方法の１つとして、当該ＣＩＭデータをリレーショナルデータベースのデータとして管理する方法がある。ＣＩＭデータをリレーショナルデータベースのデータとして蓄積することにより、ＣＩＭデータをＲＤＢＭＳ（RDB Management System）の機能によって容易に蓄積することができ、またこれらＣＩＭデータの分析もＲＤＢＭＳの機能によって容易に実現可能となる。【０００４】
ただし、ＣＩＭデータをリレーショナルデータベースで管理するためには、ＣＩＭデータを外部システム（例えば、クライアント計算機）とデータ交換するためのアダプタ（以下、これをＣＩＭアダプタと呼ぶ）が必要となる。【０００５】
ＣＩＭアダプタは、ＣＩＭのオブジェクト表現とリレーショナルデータベースのリレーショナルモデルとの変換、及び、ＣＩＭデータ交換のためのＣＩＭ／ＸＭＬ（Extensible Markup Language）との変換を行う機能を有するが、アプリが取り扱うＣＩＭデータモデルの内容やバージョンが変われば（つまり、ＣＩＭプロファイルが変われば）、その都度ＣＩＭアダプタもそれに合ったものを用意しなければならない。このためＣＩＭアダプタの開発コストは非常に大きい。【０００６】
特許文献１には、複数バージョンのオントロジを含むインスタンスを作成することが可能なデータ処理装置及び方法が開示されている。この特許文献１に開示されたデータ処理装置及び方法によれば、バージョンの異なるＣＩＭプロファイルに対して、所定クラスのインスタンスを入力するためのデータシートを自動生成する装置及び方法を提供し、開発コストを低減することが可能である。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２０１４／１８９０５６号
【特許文献２】特開２０１０−２４９９２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところが、特許文献１で開示された技術では、１つのインスタンス作成部は１つのデータ出力部を持つのみであり、例えば複数のＣＩＭプロファイルを組み合わせた出力結果を得たい場合には引用文献１に開示された技術では対応できない問題がある。【０００９】
また特許文献２には、効率的なシステム開発を支援することを目的に、複数のデータアクセス部品を自動生成する装置及び方法が開示されている。ただし、これら装置及び方法は、ＣＩＭデータモデルのような階層構造の複数クラスの集合には未対応である。【００１０】
また、これら特許文献１及び特許文献２の発明を組み合わせることによって、ＣＩＭデータモデルに対応した複数のデータ出力形式を有するデータアクセス部品を自動生成することは可能かもしれないが、ＣＩＭデータモデルのバージョンアップや顧客開発、ＣＩＭプロファイルの種類、１つのＣＩＭプロファイル当りのクラス数（最大数百クラス）、ＳＱＬのパターンの全ての組合せでデータアクセス部品が必要となり、その数は膨大なものとなる。【００１１】
本発明は以上の点を考慮してなされたもので、データ形式を変換するアダプタを容易かつ短時間に作成し得るアダプタ生成装置及び方法を提案しようとするものである。
【課題を解決するための手段】
【００１２】
かかる課題を解決するため本発明においては、第１のデータ形式を有する所定のデータモデルのデータのデータ形式をリレーショナルデータベースに応じた第２のデータ形式に変換し、又は、前記第２のデータ形式のデータを前記第１のデータ形式に変換するアダプタを生成するアダプタ生成装置において、当該アダプタを生成するアダプタ生成部と、前記アダプタ生成部により生成された１又は複数の前記アダプタを記憶する記憶部とを設け、前記アダプタ生成部が、データ出力形式ごとの出力用のサブセットに対して、前記データモデルのプロファイル及びバージョンと、前記リレーショナルデータベースのテーブルと、前記リレーショナルデータベースに対するクエリとをそれぞれ紐付けるマッピング情報と、前記アダプタを生成する際に用いるデータ変換のツール及びルールに関する各情報と、データ変換処理を行うスクリプトに関する情報と、定義のフォーマットに関する情報とを含む管理情報とを保持し、前記マッピング情報及び前記管理情報に基づいて、指定された前記データ出力形式に応じた前記アダプタを生成するようにした。【００１３】
また本発明においては、第１のデータ形式を有する所定のデータモデルのデータのデータ形式をリレーショナルデータベースに応じた第２のデータ形式に変換し、又は、前記第２のデータ形式のデータを前記第１のデータ形式に変換するアダプタを生成するアダプタ生成装置において実行されるアダプタ生成方法であって、前記アダプタ生成装置に、データ出力形式ごとの出力用のサブセットに対して、前記データモデルのプロファイル及びバージョンと、前記リレーショナルデータベースのテーブルと、前記リレーショナルデータベースに対するクエリとをそれぞれ紐付けるマッピング情報と、前記アダプタを生成する際に用いるデータ変換のツール及びルールに関する各情報と、データ変換処理を行うスクリプトに関する情報と、定義のフォーマットに関する情報とを含む管理情報とを設定する第１のステップと、前記アダプタ生成装置が、前記マッピング情報及び前記管理情報に基づいて、指定された前記データ出力形式に応じた前記アダプタを生成する第２のステップとを設けるようにした。
【発明の効果】
【００１４】
本発明によれば、アダプタを容易かつ短時間に作成し得る情報処理装置及び方法を実現できる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態によるシステムの全体構成例を示すブロック図である。
【図２】ＣＩＭアダプタ共通部の構成例を示す概念図である。
【図３】ＣＩＭアダプタ相違部の構成例を示す概念図である。
【図４】マッピング情報の構成例を示す概念図である。
【図５】Ｓ−Ｐマッピング情報の構成例を示す概念図である。
【図６】Ｐ−Ｃ−Ｔマッピング情報の構成例を示す概念図である。
【図７】Ｔ−ＳＩマッピング情報の構成例を示す概念図である。
【図８】ＳＩ−ＳＱＬマッピング情報の構成例を示す概念図である。
【図９】管理情報の構成例を示す概念図である。
【図１０】利用ツール情報の構成例を示す概念図である。
【図１１】Ｊａｖａ（登録商標）変換ルール情報の構成例を示す概念図である。
【図１２】Ｏ／Ｒマップ定義情報の構成例を示す概念図である。
【図１３】取得関数定義情報の構成例を示す概念図である。
【図１４】マッピング情報／管理情報画面の構成例を略線的に示す略線図である。
【図１５】ＣＩＭアダプタ相違部生成作業の作業手順例を示すフローチャートである。
【図１６】ＣＩＭインタフェース生成処理の処理手順を示すフローチャートである。
【図１７】コード出力処理の処理手順を示すフローチャートである。
【図１８】ＣＩＭプロファイルのＲＤＦ形式データ例を示す図である。
【図１９】出力用プロファイルの一例を示す図である。
【図２０】ＸＭＬスキーマデータの一例を示す図である。
【図２１】ＲＤＢテーブル作成用ＳＱＬの一例を示す図である。
【図２２】Ｊａｖａクラスファイルの一例を示す図である。
【図２３】Ｊａｖａ変換ルール適用後のＣＩＭ／ＸＭＬ対応Ｊａｖａクラスファイルの一例を示す図である。
【図２４】データ取得ＳＱＬの出力例を示す図である。
【図２５】Ｏ／Ｒマップ定義の出力例を示す図である。
【図２６】取得関数定義の出力例を示す図である。
【図２７】サーブレットプログラムの出力例を示す図である。
【発明を実施するための形態】
【００１６】
以下図面について、本発明の一実施の形態を詳述する。
【００１７】
以下図面について、本発明の一実施の形態を詳述する。なお、これにより、本発明が限定されるものではない。また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、計算機、ストレージ装置等に含まれるプロセッサ（例えばＣＰＵによって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又は通信インターフェースデバイス（例えば通信ポート）等を用いながら行うため、処理の主語がプロセッサとされてもよい。
【００１８】
プログラムを主語として説明された処理は、プロセッサ或いはそのプロセッサを有する装置（計算機、ストレージ装置等）が行う処理としてもよい。また、プロセッサは、処理の一部又は全部を行うハードウエア回路を含んでもよい。プログラムは、プログラムソースから各コントローラにインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は記憶メディアであってもよい。
【００１９】
また、以下の説明では、要素の識別情報として、識別子、番号又は名称が使用されるが、それに代えて又は加えて、識別情報は、他種の情報を含んでもよい。
【００２０】
（１）本実施の形態による計算機ステムの構成
図１において、１は全体として本実施の形態の計算機システムを示す。この計算機システム１は、１又は複数のクライアント計算機２が第１の通信ネットワーク３を介してサーバ装置４及びデータベースサーバ装置５と接続され、データベースサーバ装置５が第２の通信ネットワーク６を介して１又は複数のストレージ装置７と接続されて構成される。
【００２１】
クライアント計算機２は、内部バス１０を介して接続されたＣＰＵ（Central Processing Unit）１１、入出力部１２、記憶部１３、インタフェース１４を備えて構成される。
【００２２】
ＣＰＵ１１は、クライアント計算機２全体の動作制御を司るプロセッサである。また入出力部１２は、各種情報やＧＵＩ（Graphical User Interface）などを表示する液晶ディスプレイなどから構成される出力部と、ユーザが指示や情報を入力するためのキーボード及びマウスなどから構成される入力部とから構成される。
【００２３】
記憶部１３は、半導体メモリ若しくはハードディスク装置（ＨＤＤ：Hard Disk Drive）又はその両方から構成され、各種プログラムやデータを記憶保持するために使用される。記憶部１３に格納されたプログラムをＣＰＵ１１が実行することにより、クライアント計算機２全体としての各種処理が実行される。なお、記憶部１３が内部バス１０を介さないで直接ＣＰＵ１１に接続されても良い。
【００２４】
記憶部１３には、アプリケーション１５及びクライアントプログラム１６が格納される。アプリケーション１５は、クライアント計算機２を利用するユーザの業務に応じた各種処理を実行する機能を有するプログラムであり、クライアントプログラム１６を介してサーバ装置４との間でＣＩＭデータをＸＭＬ形式でやり取りする。
【００２５】
インタフェース１４は、クライアント計算機２が第１の通信ネットワーク３を介してサーバ装置４などと通信を行う際のプロトコル制御を行う機能を有するハードウェアデバイスであり、例えばＮＩＣ（Network Interface Card）から構成される。
【００２６】
サーバ装置４は、クライアント計算機２からの要求に応じたクエリ（以下、適宜、これをＳＱＬ（Structured Query Language）と呼ぶ）を生成してデータベースサーバ装置５に送信し、データベースサーバ装置５から与えられるそのＳＱＬの実行結果をクライアント計算機２に送信したり、クライアント計算機２から与えられたＣＩＭデータをリレーショナルデータベースのデータ形式に変換してデータベースサーバ装置５に送信し又はデータベースサーバ装置５から取得したリレーショナルデータベースのデータをＣＩＭデータのデータ形式に変換してクライアント計算機２に送信する機能を有する計算機である。
【００２７】
このサーバ装置４は、内部バス２０を介して接続されたインタフェース２１、ＣＰＵ２２、入出力部２３及び記憶部２４を備えて構成される。これらインタフェース２１、ＣＰＵ２２、入出力部２３及び記憶部２４は、クライアント計算機２の対応部位（インタフェース１４、ＣＰＵ１１、入出力部１２又は記憶部１３）と同様の機能及び構成を有するものであるため、ここでの詳細説明は省略する。
【００２８】
サーバ装置４の記憶部２４には、後述するＣＩＭアダプタ共通部２５と、１又は複数のＣＩＭアダプタ相違部２６と、ＣＩＭアダプタ生成部２７とが格納される。ＣＩＭアダプタ共通部２５は、記憶部２４に格納された図示しないプログラムをＣＰＵ２２が実行することにより具現化される機能ブロックであり、予め登録されたデータ変換ツール等の各種ツールや、Ｊａｖａ変換ルール等のルール、及び、Ｏ／Ｒマップ定義情報及び取得関数定義情報といった各種定義情報を管理する。
【００２９】
またＣＩＭアダプタ相違部２６は、ＣＩＭアダプタ共通部２５と同様に、記憶部２４に格納された図示しないプログラムをＣＰＵ２２が実行することにより具現化される機能ブロックであり、ＣＩＭプロファイルに対する１又は複数種類のデータ出力形式に対応させて生成され、対応するデータ出力形式のＣＩＭデータをリレーショナルデータベースのデータ形式に変換し、又はその逆のデータ変換を行うデータ変換部である。
【００３０】
ＣＩＭアダプタ生成部２７は、記憶部２４に格納された図示しないプログラムをＣＰＵ２２が実行することにより具現化される機能ブロックであり、予め与えられたマッピング情報２８及び管理情報２９を保持し、これらマッピング情報２８及び管理情報２９に基づいて、ＣＩＭアダプタ共通部２５に登録されている各種ツール、ルール及び定義情報の中からＣＩＭアダプタ開発者等により指定されたツール、ルール及び定義情報を用いて、例えば新たなＣＩＭプロファイルのデータ出力形式として指定された出力用サブセットに応じたＣＩＭアダプタ相違部２６を生成する。
【００３１】
データベースサーバ装置５は、クライアント計算機２から送信されサーバ装置４においてリレーショナルデータベースのデータ形式に変換されたＣＩＭデータを、ストレージ装置７に格納されたリレーショナルデータベース４２に登録して管理する機能を有するサーバ装置である。
【００３２】
データベースサーバ装置５は、内部バス３０を介して接続された第１のインタフェース３１、ＣＰＵ３２、入出力部３３、記憶部３４及び第２のインタフェース３５を備えて構成される。第１のインタフェース３１、ＣＰＵ３２、入出力部３３及び記憶部３４は、クライアント計算機２の対応部位（インタフェース１４、ＣＰＵ１１、入出力部１２又は記憶部１３）と同様の機能及び構成を有するものであるため、ここでの詳細説明は省略する。
【００３３】
第２のインタフェース３５は、データベースサーバ装置５が第２の通信ネットワーク６を介してストレージ装置７と通信を行う際のプロトコル制御を行う機能を有するハードウェアデバイスであり、ＮＩＣなどから構成される。
【００３４】
データベースサーバ装置５の記憶部３４には、ストレージ装置７に格納されたリレーショナルデータベース４２を管理するＲＤＢＭＳ（Relational Data Base Management System）３６が格納される。ＲＤＢＭＳ３６は、サーバ装置４から与えられるＳＱＬを実行し、その実行結果をサーバ装置４に送信する。
【００３５】
ストレージ装置７は、大容量の記憶装置であり、１又は複数の記憶デバイスから形成される記憶部４０と、記憶部４０に対するデータの入出力を制御する制御部４１とを備えて構成される。
【００３６】
記憶部４０の記憶デバイスとしては、例えばＳＣＳＩ（Small Computer System Interface）ディスク等の高価なディスクや、ＳＡＴＡ（Serial AT Attachment）ディスク又は光ディスク等の安価なディスク、又は半導体メモリなどが適用される。この場合、複数種類の記憶デバイスを記憶部４０に設けるようにしても良い。記憶部４０が提供する記憶領域に上述のリレーショナルデータベース４２のデータが格納される。
【００３７】
また制御部４１は、ＣＰＵ及びメモリ等の情報処理資源を備えて構成され、通信ネットワーク６に接続される。制御部４１は、第２の通信ネットワーク６を介してデータベースサーバ装置５のＲＤＢＭＳ３６から与えられるＳＱＬに従って、ＲＤＢＭＳ３６から与えられたデータをリレーショナルデータベース４２に格納し、又は要求されたデータをリレーショナルデータベース４２から読み出して第２の通信ネットワーク６を介してＲＤＢＭＳ３６に転送する。
【００３８】
なお、第１の通信ネットワーク３としては、例えばＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）等のネットワークを適用することができ、第２の通信ネットワーク６としては、ファイバチャネル等で構成されるネットワーク（例えばＳＡＮ（Storage Area Network））を適用することができる。
【００３９】
図２は、サーバ装置４の記憶部２４に保持されるＣＩＭアダプタ共通部２５の構成例を示す。ＣＩＭアダプタ共通部２５は、登録された１又は複数のＸＭＬスキーマ変換ツールを記憶保持するための記憶領域５０、登録された１又は複数のリレーショナルデータベーステーブル作成ツールを記憶保持するための記憶領域５１、登録された１又は複数のＪａｖａ変換ツールを記憶保持するための記憶領域５２、登録された１又は複数のＯ／Ｒマップツールを記憶保持するための記憶領域５３、及び、登録された１又は複数のＪａｖａ変換スクリプトを記憶保持するための記憶領域５４を備える。ただし、これらの記憶領域５０〜５４を当初からすべて設けるのではなく、対応するツールが登録された段階で対応する記憶領域５０〜５４を追加していくようにしても良い。
【００４０】
なお、図２は、ＸＭＬスキーマ変換ツールとして「EA Tool」、ＲＤＢテーブル作成ツールとして「EA Tool」、Ｊａｖａ変換ツールとして「JAXB」及び「Original Tool」、Ｏ／Ｒマップツールとして「MyBatis」、Ｊａｖａ変換スクリプトとして「Script1」及び「Script2」が登録された例を示している。
【００４１】
図３は、ＣＩＭアダプタ相違部２６の構成例を示す。この図３からも明らかなように、ＣＩＭアダプタ相違部２６は、出力用プロファイル６０、ＸＭＬスキーマデータファイル６１、リレーショナルデータベーステーブル作成用ＳＱＬファイル６２、Ｊａｖａクラスファイル６３、ＣＩＭ／ＸＭＬ対応Ｊａｖａクラスファイル６４、データ取得ＳＱＬファイル６５、Ｏ／Ｒマップ定義ファイル６６、取得関数定義ファイル６７及びサーブレットプログラム６８を備えて構成される。
【００４２】
出力用プロファイル６０は、１又は複数のＣＭＩプロファイルに対応する１又は複数のデータ出力形式（出力用サブセット）と、そのデータ出力形式に対応するＣＩＭアダプタ相違部２６を生成する際に利用すべきツールの組合せとを規定したプロファイルであり、ＣＩＭアダプタの開発者により設定される。図１９について後述するように、出力用プロファイル６０では、図１０について後述する利用ツール情報８０（図１０）で設定されている複数のツールの組合せのうち、そのデータ出力形式に対応するＣＩＭアダプタ相違部２６を生成する際に利用すべきツールの組合せと、図５について後述するＳ−Ｐマッピング情報７０（図５）で設定されているサブセットＩＤとが指定される。
【００４３】
またＸＭＬスキーマデータファイル６１は、対応するＣＩＭプロファイルをＸＭＬスキーマ変換ツールを用いて変換処理することにより得られた例えば図２０に示すようなＸＭＬスキーマデータが格納されたファイルである。
【００４４】
リレーショナルデータベーステーブル作成用ＳＱＬファイル６２は、そのＣＩＭプロファイルを構成するＪａｖａクラスに対応するリレーショナルデータベーステーブルをリレーショナルデータベース内に作成するための例えば図２１に示すようなＳＱＬ（リレーショナルデータベーステーブル作成用ＳＱＬ）が格納されたファイルである。
【００４５】
Ｊａｖａクラスファイル６３は、ＸＭＬスキーマデータをＪａｖａクラスに変換した例えば図２２に示すようなデータが格納されたファイルであり、ＣＩＭ／ＸＭＬ対応Ｊａｖａクラスファイル６４は、ＪａｖａクラスをＣＩＭ／ＸＭＬ対応のＪａｖａクラスに変換した例えば図２３に示すようなデータが格納されたファイルである。
【００４６】
さらにデータ取得ＳＱＬファイル６５は、対応するリレーショナルデータベーステーブルからデータを取得するための例えば図２４に示すようなＳＱＬ（データ取得ＳＱＬ）が格納されたファイルであり、Ｏ／Ｒマップ定義ファイル６６は、そのＣＩＭアダプタ相違部２６における例えば図２５に示すような、Ｊａｖａクラスのオブジェクトとリレーショナルデータベースの対応するテーブルとを対応付けるマッピング情報でなるＯ／Ｒマップ定義が格納されたファイルである。さらに取得関数定義ファイル６７は、リレーショナルデータベーステーブルから必要なデータを取得するための関数である例えば図２６に示すような取得関数が格納されたファイルであり、サーブレットプログラム６８は、そのＣＩＭアダプタ相違部２６を呼び出すための例えば図２７に示すようなプログラムである。
【００４７】
これらのファイルのうちＸＭＬスキーマデータファイル６１、リレーショナルデータベーステーブル作成用ＳＱＬファイル６２、Ｊａｖａクラスファイル６３は、そのＣＩＭアダプタ相違部２６や当該ＣＩＭアダプタ相違部２６に対応するリレーショナルデータベーステーブルをリレーショナルデータベース内に生成する際に利用される。
【００４８】
またデータ取得ＳＱＬファイル６５、Ｏ／Ｒマップ定義ファイル６６及び取得関数定義ファイル６７は、そのＣＩＭアダプタ相違部２６を生成した段階で必要なコードが格納されて完成し、実際にクライアント計算機２から与えられたリード要求やライト要求に応じて、クライアント計算機２からＸＭＬ形式で与えられたＣＩＭデータを対応するリレーショナルデータベーステーブルに格納し、又は、リレーショナルデータベーステーブルから読み出したデータをＸＭＬ形式に変換してクライアント計算機２に送信する際のデータ形式の変換で利用される。
【００４９】
実際上、サーバ装置４には、いずれかのサーブレットプログラム６８を指定したリード要求やライト要求がクライアント計算機２から与えられる。そしてサーバ装置４は、例えば、ライト要求及びライト対象のＣＩＭデータがクライアント計算機２から与えられた場合には、そのＣＩＭデータのデータ形式をＣＩＭ／ＸＭＬ対応Ｊａｖａクラスファイル６４を用いてＸＭＬ形式からリレーショナルデータベースに応じたデータ形式に変換し、変換後のデータをＯ／Ｒマップ定義ファイル６６及び取得関数定義ファイル６７を利用して対応するリレーショナルデータベースのテーブルに格納する。
【００５０】
またサーバ装置４は、リード要求がクライアント計算機２から与えられた場合には、対応するデータをデータ取得ＳＱＬファイル６５、Ｏ／Ｒマップ定義ファイル６６及び取得関数定義ファイル６７を利用してリレーショナルデータベースの対応するテーブルから読み出し、そのデータ形式をＣＩＭ／ＸＭＬ対応Ｊａｖａクラスファイル６４を用いてリレーショナルデータベースに応じたデータ形式からＸＭＬ形式のデータに変換し、これをクライアント計算機２に送信する。
【００５１】
図４は、サーバ装置４の記憶部２４に格納されたＣＩＭアダプタ生成部２７が保持するマッピング情報２８の具体的な構成を示す。この図４に示すように、マッピング情報２８は、それぞれ予めユーザにより定義されたＳ−Ｐマッピング情報７０、Ｐ−Ｃ−Ｔマッピング情報７１、Ｔ−ＳＩマッピング情報７２及びＳＩ−ＳＱＬマッピング情報７３から構成される。
【００５２】
このうちＳ−Ｐマッピング情報７０は、出力用サブセットと、ＣＩＭプロファイルのプロファイル名及びそのバージョンとの対応関係を表す情報であり、図５に示すように、出力用サブセットＩＤ欄７０Ａ、プロファイル名欄７０Ｂ及びバージョン欄７０Ｃを備えるテーブル構造を有する。
【００５３】
そして出力用サブセットＩＤ欄７０Ａには、各出力用サブセットに対してそれぞれ付与された識別子（サブセットＩＤ）が格納され、プロファイル名欄７０Ｂ及びバージョン欄７０Ｃには、それぞれその出力用サブセットに対応するＣＩＭプロファイルの名前（プロファイル名）とそのバージョンとがそれぞれ格納される。
【００５４】
従って、図５の例の場合、「Sub1」というサブセットＩＤの出力用サブセットは、「Profile1」というプロファイル名のバージョンが「1.0」のＣＩＭプロファイルと、「Profile2」というプロファイル名のバージョンが「1.0」のＣＩＭプロファイルとが対応付けられていることが示されている。
【００５５】
またＰ−Ｃ−Ｔマッピング情報７１は、ＣＩＭプロファイル及びそのバージョンとＪａｖａのクラス及びリレーショナルデータベース４２（図１）上のテーブルとの対応関係を表す情報であり、図６に示すように、プロファイル名欄７１Ａ、バージョン欄７１Ｂ、Ｊａｖａクラス名欄７１Ｃ及びリレーショナルデータベーステーブル名欄７１Ｄを備えるテーブル構造を有する。
【００５６】
そしてプロファイル名欄７１Ａ及びバージョン欄７１Ｂには、それぞれ各ＣＩＭプロファイルのプロファイル名及びそのバージョン名がそれぞれ格納され、Ｊａｖａクラス名欄７１Ｃには、そのプロファイル名及びバージョンのＣＩＭプロファイルと対応付けられた各Ｊａｖａクラスのクラス名がそれぞれ格納される。またリレーショナルデータベーステーブル名欄７１Ｄには、対応するＪａｖａクラスと１対１で対応付けられたリレーショナルデータベース４２上のテーブルのテーブル名が格納される。
【００５７】
従って、図６の例の場合、「Profaile1」というプロファイル名の「1.0」というバーションのＣＩＭプロファイルについては、「AAAA」、「BBBB」「CCCC」及び「DDDD」という４つのＪａｖａクラスと対応付けられており、このうち例えば「AAAA」というＪａｖａクラスについては、リレーショナルデータベース４２上の「T_AAAA」というテーブル名のテーブルと対応付けられていることが示されている。
【００５８】
Ｔ−ＳＩマッピング情報７２は、ストレージ装置７に格納されたリレーショナルデータベース４２上の各テーブルと当該テーブルを参照するためのＳＱＬとの対応関係を表す情報であり、図７に示すように、リレーショナルデータベーステーブル名欄７２Ａ及びＳＱＬ  ＩＤ欄７２Ｂを備えるテーブル構造を有する。
【００５９】
そしてリレーショナルデータベーステーブル名欄７２Ａには、ストレージ装置７に格納されたリレーショナルデータベース４２の各テーブルのテーブル名がそれぞれ格納され、ＳＱＬ  ＩＤ欄７２Ｂには、対応するテーブルについて使用可能な各ＳＱＬの識別子（ＳＱＬ  ＩＤ）がそれぞれ格納される。
【００６０】
従って、図７の例の場合、例えばリレーショナルデータベース４２上の「T_AAAA」というテーブル名のテーブルや「T_BBBB」というテーブル名のテーブルについては、「１」又は「２」というＳＱＬ  ＩＤが付与された２種類のＳＱＬが使用可能であり、「T_CCCC」というテーブル名のテーブルについては、かかる２種類のＳＱＬ文に加えて、「３」というＳＱＬ  ＩＤが付与されたＳＱＬについても使用可能であることが示されている。
【００６１】
さらにＳＩ−ＳＱＬマッピング情報７３は、ＳＱＬ  ＩＤ及びＳＱＬの対応関係を表す情報であり、図８に示すように、ＳＱＬ  ＩＤ欄７３Ａ及びＳＱＬ欄７３Ｂを備えたテーブル構造を有する。そしてＳＱＬ＿ＩＤ欄７３Ａには、各ＳＱＬに対してそれぞれ付与された識別子（ＳＱＬ  ＩＤ）が格納され、ＳＱＬ欄７３Ｂには、対応するＳＱＬ  ＩＤが付与されたＳＱＬの具体的な内容が格納される。
【００６２】
従って、図８の例の場合、例えば、「１」というＳＱＬ  ＩＤが付与されたＳＱＬの内容は「Select*Rrom[T];」（[T]というテーブルのすべての情報を取得）であることが示されている。
【００６３】
一方、管理情報２９は、図９に示すように、利用ツール情報８０、Ｊａｖａ変換ルール情報８１、Ｏ／Ｒマップ定義情報８２及び取得関数定義情報８３から構成される。
【００６４】
このうちＪａｖａ変換ルール情報８１は、後述のようにＣＩＭアダプタ生成部２７が、ＸＭＬスキーマデータに変換されたＣＩＭプロファイルのデータをＪａｖａ変換ツールを用いてＪａｖａクラスに変換する際のルールに関する情報であり、図１１に示すように、Ｊａｖａ変換ルールＩＤ欄８１Ａ、Ｊａｖａ変換ルール内容欄８１Ｂ及びスクリプトパス名欄８１Ｃを備えるテーブル構造を有する。
【００６５】
そしてＪａｖａ変換ルールＩＤ欄８１Ａには、予めユーザにより作成された各Ｊａｖａ変換ルールに対してそれぞれ付与された識別子（Ｊａｖａ変換ルールＩＤ）が格納される。ここで、Ｊａｖａ変換ルールとは、クライアント計算機２らのＣＩＭデータをＪａｖａ変換ツールによりＪａｖａプログラムコードに変換し又はその逆の変換を行う際のルールを指す。
【００６６】
またＪａｖａ変換ルール内容欄８１Ｂには、対応するＪａｖａ変換ルールの具体的な内容が格納され、スクリプトパス名欄８１Ｃには、対応するＪａｖａ変換ルール内容の処理をスクリプト化することにより得られたスクリプトへの絶対パス名が格納される。
【００６７】
またＯ／Ｒマップ定義情報８２は、ＣＩＭアダプタ生成部２７が出力するＯ／Ｒマップの定義に関する情報であり、図１２に示すように、Ｏ／Ｒマップ定義ＩＤ欄８２Ａ及びＯ／Ｒマップ定義内容欄８２Ｂを備えて構成される。
【００６８】
そしてＯ／Ｒマップ定義ＩＤ欄８２Ａには、予めユーザにより作成された各Ｏ／Ｒマップ定義に対してそれぞれ付与された識別子（Ｏ／Ｒマップ定義ＩＤ）が格納され、Ｏ／Ｒマップ定義内容欄８２Ｂには、対応するＯ／Ｒマップ定義の具体的内容が格納される。
【００６９】
従って、図１２の例の場合、「１」というＯ／Ｒマップ定義ＩＤが付与されたＯ／Ｒマップの定義がこの図１２に示すような内容であることが示されている。なお、図１２で示したＯ／Ｒマップ定義内容欄８２Ｂにおいて破線ＤＬ１で囲んだ箇所が、ＣＩＭアダプタ生成部２７によってリレーショナルデータベーステーブル毎に追加出力される箇所である。
【００７０】
取得関数定義情報８３は、ＣＩＭアダプタ生成部２７が出力する取得関数の定義に関する情報であり、図１３に示すように、取得関数定義ＩＤ欄８３Ａ及び取得関数定義内容欄８３Ｂを備えたテーブル構造を有する。
【００７１】
そして取得関数定義ＩＤ欄８３Ａには、予めユーザにより作成された各取得関数に対してそれぞれ付与された識別子（取得関数定義ＩＤ）が格納され、取得関数定義内容欄８３Ｂには、対応する取得関数の定義内容が格納される。
【００７２】
従って、この図１３の例の場合「１」という取得関数定義ＩＤが付与された取得関数の定義がこの図１３に示すような内容であることが示されている。なお、図１３で示した取得関数定義内容欄８３Ｂにおいて破線ＤＬ２〜ＤＬ４でそれぞれ囲んだ箇所が、ＣＩＭアダプタ生成部２７によってリレーショナルデータベーステーブル毎に追加出力される箇所である。
【００７３】
利用ツール情報８０は、ＣＩＭアダプタ生成部２７が各種出力用プロファイルにそれぞれ対応させたＣＩＭアダプタ相違部２６を生成する際に利用するＪａｖａ変換用ツール、Ｊａｖａ変換ルール、Ｏ／Ｒマップツール、Ｏ／Ｒマップ定義及び取得関数定義の組合せを定義した情報であり、図１０に示すように、利用ツールＩＤ欄８０Ａ、Ｊａｖａ変換用ツール欄８０Ｂ、Ｊａｖａ変換ルールＩＤ欄８０Ｃ、Ｏ／Ｒマップツール欄８０Ｄ、Ｏ／Ｒマップ定義ＩＤ欄８０Ｅ及び取得関数定義ＩＤ欄８０Ｆを備えるテーブル構造を有する。
【００７４】
そして利用ツールＩＤ欄８０Ａには、利用するツール等の各組合せに対してそれぞれ付与された識別子（利用ツールＩＤ）が格納され、Ｊａｖａ変換用ツール欄８０Ｂには、予め複数用意されたＪａｖａ変換ツール（ＣＩＭデータをＪａｖａプログラムコードに変換し、その逆の変換を行うツール）のうち、対応するツール等の組合せ（以下、これをツール組合せと呼ぶ）において使用すべきＪａｖａ変換ツールの名称が格納される。
【００７５】
またＪａｖａ変換ルールＩＤ欄８０Ｃには、上述のようにＪａｖａ変換ルール情報８１に含まれる各種Ｊａｖａ変換ルールのうち、そのツール組合せで使用すべきＪａｖａ変換ルールの識別子（Ｊａｖａ変換ルールＩＤ）が格納される。
【００７６】
またＯ／Ｒマップツール欄８０Ｄには、予め複数用意されたＯ／Ｒ（Object/Relational）マップツールのうち、対応するツール組合せにおいて使用すべきＯ／Ｒマップツールの名称が格納される。ここで、Ｏ／Ｒマップツールとは、Ｊａｖａのオブジェクトの各データをリレーショナルデータベースのレコードを構成する個々の項目と関連付け、リレーショナルデータベースのレコードをオブジェクトとして直感的に扱えるようにするツールである。
【００７７】
さらにＯ／Ｒマップ定義ＩＤ欄８０Ｅには、上述のようにＯ／Ｒマップ定義情報８２に含まれる各種Ｏ／Ｒマップ定義のうち、そのツール組合せにおいて使用すべきＯ／Ｒマップ定義の識別子（Ｏ／Ｒマップ定義ＩＤ）が格納され、取得関数定義ＩＤ欄８０Ｆには、上述のように取得関数定義情報８３のうち、そのツール組合せにおいて使用すべき取得関数定義の識別子（取得関数定義ＩＤ）が格納される。
【００７８】
図１４は、ユーザがサーバ装置４の入出力部２３を所定操作することにより、当該入出力部２３を構成する液晶ディスプレイ等の出力部に表示させ得るマッピング情報／管理情報設定画面９０を示す。ユーザは、このマッピング情報／管理情報設定画面９０を用いて上述のマッピング情報２８及び管理情報２９を所望状態に設定することができる。
【００７９】
このマッピング情報／管理情報設定画面９０には、図４〜図８について上述したマッピング情報２８を構成するＳ−Ｐマッピング情報７０、Ｐ−Ｃ−Ｔマッピング情報７１、Ｔ−ＳＩマッピング情報７２及びＳＩ−ＳＱＬマッピング情報７３と、図９〜図１３について上述した管理情報２９を構成する利用ツール情報８０、Ｊａｖａ変換ルール情報８１、Ｏ／Ｒマップ定義情報８２及び取得関数定義情報８３とにそれぞれ対応させたタブ９１Ａ〜９１Ｈが設けられている。
【００８０】
また各タブ９１Ａ〜９１Ｈには、それぞれそのタブ９１Ａ〜９１Ｈに対応する情報（Ｓ−Ｐマッピング情報７０、Ｐ−Ｃ−Ｔマッピング情報７１、Ｔ−ＳＩマッピング情報７２、ＳＩ−ＳＱＬマッピング情報７３、利用ツール情報８０、Ｊａｖａ変換ルール情報８１、Ｏ／Ｒマップ定義情報８２又は取得関数定義情報８３）を設定するための設定エリア９２が設けられ、その設定エリア９２内に図５〜図８、図１０〜図１３にそれぞれ示した対応するテーブルと同じ形態のテーブル９３が表示される。この場合、そのテーブル９３の各欄には、それぞれユーザが所望する設定値を入力することができ、かくしてユーザがマッピング情報２８や管理情報２９を所望する内容に設定することができるようになされている。
【００８１】
またマッピング情報／管理情報設定画面９０の右下側には、保存ボタン９４及び取消しボタン９５が表示される。そして、マッピング情報／管理情報設定画面９０では、各タブ９１Ａ〜９１Ｈを用いてマッピング情報２８や管理情報２９を所望する内容に設定した後、保存ボタン９４をクリックすることにより、そのとき設定したマッピング情報２８及び管理情報２９の各設定値を保存することができ、取消しボタン９５をクリックすることにより、各タブ９１Ａ〜９１Ｈを用いて設定したマッピング情報２８や管理情報２９の設定値を保存することなく取り消すことができるようになされている。
【００８２】
なお、本実施の形態においては、マッピング情報２８及び管理情報２９の設定に、マッピング情報／管理情報設定画面９０を用いているが、例えば設定ファイルに各情報の設定値を書き込んでおき、当該設定ファイルを読込んで各情報の設定を行えるようにしても良い。
【００８３】
（２）ＣＩＭアダプタ相違部の生成
（２−１）ＣＩＭアダプタ開発者の作業
図１５は、ＣＩＭアダプタ相違部２６を生成する際の作業手順を示す。この作業は、ＣＩＭアダプタ開発者が実行することを想定しているが、システム管理者等、別の人が行っても良い。なお、ＣＩＭプロファイルの要件定義、及び設計は定義済みであり、例えば、図１８に示すようなＣＩＭプロファイルのＲＤＦ形式のデータが既に作成されているものとする。
【００８４】
ＣＩＭアダプタ開発者は、ＣＩＭアダプタ相違部２６を生成する場合、まず、図３について上述した各ファイル６０〜６７及びサーブレットプログラム６８を格納するためのディレクトリをサーバ装置４の記憶部２４（図１）内に作成する（Ｓ１）。
【００８５】
続いて、ＣＩＭアダプタ開発者は、新たなＣＩＭプロファイルに対応する新たな出力用プロファイル６０（図３）を作成し、作成した出力用プロファイル６０をステップＳ１で作成したディレクトリに格納する（Ｓ２）。
【００８６】
図１９は、出力用プロファイル６０の構成例を示す。この例において、１つの行が１つの出力用サブセットに対応しており、複数の行を定義することによって複数の出力用サブセットを指定することができる。１つの行では、「ToolID=」の後に後述する利用ツール情報８０（図１０）で設定されている利用ツールＩＤが指定され、「SubsetID=」の後に後述するＳ−Ｐマッピング情報７０（図５）で設定されているサブセットＩＤが指定される。例えば、図１９において、「ToolID=1, SubsetID=Sub1」は、「Ｊａｖａ変換用ツールとして『JAXB』を用いて、Ｊａｖａ変換ルールＩＤが『１』のＪａｖａ変換を行い、Ｏ／Ｒマップツールとして『MyBatis』を使い、Ｏ／Ｒマップ定義ＩＤが『１』のＯ／Ｒマップ定義内容に沿ったＯ／Ｒマップ定義情報のコードを出力し、取得関数定義ＩＤが『１』の取得関数定義内容に沿った取得関数定義情報のコードを出力する」という処理を、「サブセットＩＤが『Sub1』に対応する『Profile1』と『Profile2』に対して行う」ということを表す。
【００８７】
次いで、ＣＩＭアダプタ開発者は、ＣＩＭアダプタ共通部２５のＸＭＬスキーマツールに対応する記憶領域５０（図２）に格納されているＸＭＬスキーマツールを用いて、例えば図１８に示すような設計済みのＣＩＭプロファイルのＰＤＦ化されたデータをＸＭＬスキーマデータ（図２０）に変換し、このＸＭＬスキーマデータをステップＳ１で作成したディレクトリにＸＭＬスキーマデータファイル６１（図３）として格納する（Ｓ３）。
【００８８】
なお、ＣＩＭアダプタ共通部２５のかかる記憶領域５０に複数のＸＭＬスキーマツールが格納されている場合には、その中から１つのＸＭＬスキーマツールを選択してステップＳ３の処理を行い、かかる記憶領域５０にＸＭＬスキーマツールが格納されていない場合には、このステップＳ３を手作業で行う。
【００８９】
この後、ＣＩＭアダプタ開発者は、ＣＩＭアダプタ共通部２５のリレーショナルデータベーステーブル作成ツールに対応する記憶領域５１（図２）に格納されているリレーショナルデータベーステーブル作成ツールを用いて、設計済みのＣＩＭプロファイルのカスタマイズを行うことによりリレーショナルデータベーステーブル作成用のＳＱＬ（図２１参照）を作成し、作成したＳＱＬをリレーショナルデータベーステーブル作成用ＳＱＬファイル６２（図３）としてステップＳ１で作成したディレクトリに格納する（Ｓ４）。
【００９０】
なお、ＣＩＭアダプタ共通部２５のかかる記憶領域５１に複数のリレーショナルデータベーステーブル作成ツールが格納されている場合には、その中から１つのリレーショナルデータベーステーブル作成ツールを選択してステップＳ４の処理を行い、かかる記憶領域５１にリレーショナルデータベーステーブル作成ツールが格納されていない場合には、このステップＳ４を手作業で行う。なお、ＣＩＭプロファイルのカスタマイズとは、例えば設計済みＣＩＭプロファイルにおける参照制約の解除等である。
【００９１】
続いて、ＣＩＭアダプタ開発者は、ＣＩＭアダプタ共通部２５のＪａｖａ変換ツールに対応する記憶領域５２（図２）に格納されているＪａｖａ変換ツールを用いて、ステップＳ３において得られたＸＭＬスキーマデータファイル６１のデータをＪａｖａクラスのデータ（図２２参照）に変換し、このデータをステップＳ１で作成したディレクトリにＪａｖａクラスファイル６３（図３）として格納する（Ｓ５）。
【００９２】
この際、ＣＩＭアダプタ共通部２５のかかる記憶領域５２に複数のＪａｖａ変換ツールが格納されている場合には、その中から１つ選択してこのステップＳ５の処理を行い、かかる記憶領域５２にＪａｖａ変換ツールが格納されていない場合には、このステップＳ５を手作業で行う。なお、このステップＳ５の処理により、ＸＭＬスキーマデータに応じて複数のＪａｖａクラスのファイルが作成される。
【００９３】
次いで、ＣＩＭアダプタ開発者は、ステップＳ４で作成したリレーショナルデータベーステーブル作成用ＳＱＬ（図２１）をデータベースサーバ装置５のＲＤＢＭＳ３６（図１）に送信する。このリレーショナルデータベーステーブル作成用ＳＱＬを受付けたＲＤＢＭＳ３６は、当該リレーショナルデータベーステーブル作成用ＳＱＬを実行し、指定されたテーブルを作成する（Ｓ６）。なお、図２１に示すリレーショナルデータベーステーブル作成ＳＱＬはテーブル作成のみのＳＱＬを記載しているが、必要に応じて索引を作成するＳＱＬを追加しても良い。
【００９４】
この後、ＣＩＭアダプタ開発者は、Ｓ−Ｐマッピング情報７０、Ｐ−Ｃ−Ｔマッピング情報７１、Ｔ−ＳＩマッピング情報７２及びＳＩ−ＳＱＬマッピング情報７３をそれぞれ設定すると共に（Ｓ７）、利用ツール情報８０、Ｊａｖａ変換ルール情報８１、Ｏ／Ｒマップ定義情報８２及び取得関数定義情報８３をそれぞれ設定する（Ｓ８）。これらの情報の設定は、図１４について上述したマッピング情報／管理情報設定画面９０を用いて行っても良いし、各情報の設定値を記載した設定ファイルを読込んで行うものとしても良い。また、設定済みの情報を使用するのであれば、改めて設定する必要はない。
【００９５】
続いて、ＣＩＭアダプタ開発者は、サーバ装置４を操作して、当該サーバ装置４に図１６について後述するＣＩＭインタフェース生成処理を実行させる（Ｓ９）。なお、ＣＩＭインタフェース生成処理の実行にあたっては、ステップＳ１で作成したディレクトリを指定する。これにより、このディレクトリをベースとするＣＩＭアダプタ相違部２６がＣＩＭインタフェース生成処理により生成される。
【００９６】
そしてＣＩＭアダプタ開発者は、この後、このとき作成したＣＩＭアダプタ相違部２６のサーブレットプログラム６８（図３）を作成し、作成したサーブレットプログラム６８をステップＳ２で作成したディレクトリに格納する（Ｓ１０）。以上により、このＣＩＭアダプタ相違部生成作業が完了する。
【００９７】
なお、ステップＳ１０において、サーブレットプログラム６８のテンプレートをＣＩＭアダプタ生成部２７がファイルに出力してステップＳ２で作成したディレクトリに格納しておき、ＣＩＭアダプタ開発者が当該ファイル内の必要箇所に記入するとしても良い。また、別のＣＩＭアダプタ相違部２６からサーブレットプログラム６８をコピーし、必要な箇所を修正するとしても良い。
【００９８】
（２−２）ＣＩＭインタフェース生成処理
図１６は、図１５について上述したアダプタ相違部生成作業のステップＳ９において、ＣＩＭアダプタ開発者によりＣＩＭアダプタ相違部２６の生成を指示されたサーバ装置４のＣＩＭアダプタ生成部２７により実行されるＣＩＭインタフェース生成処理の処理手順を示す。ＣＩＭアダプタ生成部２７は、ＣＩＭアダプタ開発者からＣＩＭアダプタ相違部２６の生成を指示されると、この図１６に示す処理手順に従って、対応するＣＩＭアダプタ相違部２６を生成する。
【００９９】
実際上、ＣＩＭアダプタ生成部２７は、ＣＩＭアダプタ相違部２６の生成を指示されると、このＣＩＭインタフェース生成処理を開始し、まず、図１５のステップＳ７及びステップＳ８においてＣＩＭアダプタ開発者により設定されたマッピング情報２８及び管理情報２９に基づいてデータ取得ＳＱＬファイル６５（図３）、Ｏ／Ｒマップ定義ファイル６６（図３）、取得関数定義ファイル６７（図３）をそれぞれ作成し、作成したこれらのファイル６５〜６７を図１５のステップＳ２で作成されたディレクトリにオープンする（Ｓ２０）。
【０１００】
続いて、ＣＩＭアダプタ生成部２７は、図１５のステップＳ２においてそのディレクトリ内に格納された出力用プロファイル６０の未処理の１行分を読み出し、「ToolID」及び「SubsetID」として指定されているツールＩＤとサブセットＩＤを特定する（Ｓ２１）。例えば、図１９に例示した出力用プロファイル６０の場合、１行目については、ツールＩＤとして「１」、サブセットＩＤとして「Sub1」が特定されることになる。
【０１０１】
次いで、ＣＩＭアダプタ生成部２７は、Ｓ−Ｐマッピング情報７０（図５）を参照して、ステップＳ２１で特定したサブセットＩＤに対応するプロファイル及びバージョンを特定する（Ｓ２２）。例えば、図１９の１行目の例の場合、ステップＳ２１で特定されるサブセットＩＤが「Sub1」であるため、Ｓ−Ｐマッピング情報７０が図５の内容である場合には、このステップＳ２２において、バージョンが「1.0」の「Profile1」と、バージョンが「1.0」の「Profile2」が特定されることになる。
【０１０２】
さらにＣＩＭアダプタ生成部２７は、Ｐ−Ｃ−Ｔマッピング情報７１（図６）を参照して、ステップＳ２２で特定したプロファイル及びバージョンに対応するＪａｖａクラス及びリレーショナルデータベーステーブルを特定する（Ｓ２３）。例えば、ステップＳ２２で特定したプロファイル及びバージョンが上述のようにそれぞれ「Profile1」及び「1.0」であり、Ｐ−Ｃ−Ｔマッピング情報７１が図６の内容である場合には、このステップＳＰ２３において、Ｊａｖａクラスとして「AAAA」、「BBBB」、「CCCC」及び「DDDD」が特定され、リレーショナルデータベーステーブルとして「T_AAAA」、「T_BBBB」、「T_CCCC」及び「T_DDDD」が特定されることになる。
【０１０３】
続いて、ＣＩＭアダプタ生成部２７は、ステップＳ２３で特定したＪａｖａクラス及びリレーショナルデータベーステーブルの組について、データ取得ＳＱＬファイル６５（図３）、Ｏ／Ｒマップ定義ファイル６６（図３）及び取得関数定義ファイル６７（図３）のそれぞれにコードを追記する、図１７について後述するコード出力処理を実行する（Ｓ２４）。
【０１０４】
この後、ＣＩＭアダプタ生成部２７は、ステップＳ２３で特定したすべてのリレーショナルデータベーステーブルについてコード出力処理を実行し終えたか否かを判断する（Ｓ２５）。そしてＣＩＭアダプタ生成部２７は、この判断で否定結果を得るとステップＳ２４に戻り、ステップＳ２３で特定したリレーショナルデータベーステーブルのうちの未処理の各リレーショナルデータベーステーブルに対するコード出力処理を繰り返す。
【０１０５】
この結果、例えば、ステップＳＰ２３で特定したＪａｖａクラス及びリレーショナルデータベーステーブルの組が「AAAA」+「T_AAAA」、「BBBB」+「T_BBBB」、「CCCC」+「T_CCCC」及び「DDDD」+「T_DDDD」の４つである場合、合計４回、それぞれのＪａｖａクラス及びリレーショナルデータベーステーブルの組に対してコード出力処理１０００が実行されることになる。
【０１０６】
そしてＣＩＭアダプタ生成部２７は、やがてステップＳ２３で特定したすべてのリレーショナルデータベーステーブルに対してコード出力処理を実行し終えることによりステップＳ２５で肯定結果を得ると、ステップＳ２２で特定したプロファイル及びバージョンの全てに対して、ステップＳ２３〜ステップＳ２５の処理を実行し終えたか否かを判断する（Ｓ２６）。
【０１０７】
ＣＩＭアダプタ生成部２７は、この判断で否定結果を得ると、ステップＳ２３に戻り、この後、ステップＳ２６で肯定結果を得るまでステップＳ２３〜ステップＳＰ２６の処理を繰り返す。
【０１０８】
そしてＣＩＭアダプタ生成部２７は、やがてステップＳ２２で特定したすべてのプロファイル及びバージョンに対してステップＳ２３〜ステップＳ２５の処理を実行し終えることによりステップＳ２６で肯定結果を得ると、ステップＳ２２で読み出したすべてのサブセットに対してステップＳ２２〜ステップＳ２６の処理を実行し終えたか否かを判断する（Ｓ２７）。
【０１０９】
ＣＩＭアダプタ生成部２７は、この判断で否定結果を得ると、ステップＳ２２に戻り、この後、ステップＳ２７で肯定結果を得るまでステップＳ２２〜ステップＳ２７の処理を繰り返す。
【０１１０】
そしてＣＩＭアダプタ生成部２７は、やがてステップＳ２２で出力用プロファイル６０（図３）から読み出したすべてのサブセットに対してステップＳ２３〜ステップＳ２６の処理を実行し終えることによりステップＳ２７で肯定結果を得ると、データ取得ＳＱＬファイル６５（図３）、Ｏ／Ｒマップ定義ファイル６６（図３）及び取得関数定義ファイル６７（図３）をクローズし（Ｓ２８）、この後、このＣＩＭインタフェース生成処理を終了する。
【０１１１】
図１７は、かかるＣＩＭインタフェース生成処理のステップＳ２４においてＣＩＭアダプタ生成部２７により実行されるコード出力処理の具体的な処理内容を示す。
【０１１２】
ＣＩＭアダプタ生成部２７は、ＣＩＭインタフェース生成処理（図１６）のステップＳ２４に進むと、この図１７に示すコード出力処理を開始し、まず、利用ツール情報８０（図１０）を参照して、ＣＩＭインタフェース生成処理のステップＳ２１で特定したツールＩＤを元に、当該サブセットのコード出力で利用するツール組合せを特定する（Ｓ３０）。
【０１１３】
例えば、図１０の例において、ステップＳ２１で特定したツールＩＤが「１」であった場合、Ｊａｖａ変換用ツールとして「JAXB」、Ｊａｖａ変換ルールとしてＪａｖａ変換ルールＩＤが「１」のＪａｖａ変換ルール、Ｏ／Ｒマップツールとして「MyBatis」、Ｏ／Ｒマップ定義としてＯ／Ｒマップ定義ＩＤが「１」のＯ／Ｒマップ定義、取得関数定義として取得関数定義ＩＤが「１」の取得関数定義がそれぞれ特定されることになる。
【０１１４】
続いて、ＣＩＭアダプタ生成部２７は、Ｊａｖａ変換ルール情報８１（図１１）を参照して、ステップＳ３０で特定したツール組合せのうち、Ｊａｖａ変換ルールＩＤに対応するＪａｖａ変換ルール内容と、スクリプトパス名とを特定する（Ｓ３１）。
【０１１５】
例えば、図１１において、ステップＳ３０で特定したＪａｖａ変換ルールＩＤが「１」であった場合、「XMLスキーマファイルを探索して、Roottクラスを特定し、当該クラスの『@XmiElement』を『XmiAttribute』に置換」、「ＸＭＬスキーマファイルを探索して、他ＣＩＭクラスへの参照があるクラスを特定し、参照元クラスのクラス変数をＪａｖａ専用クラスに置換し、setter/getterを変更」及び「ＸＭＬスキーマファイルを探索して、他ＣＩＭクラスへの参照があるクラスを特定し、参照先クラスに参照専用クラスを追加」というＪａｖａ変換ルール内容がそれぞれ特定され、これらＪａｖａ変換ルール内容のスクリプトがそれぞれ「/Scr/Script1」、「/Scr/Script2」又は「/Scr/Script2」と特定されることになる。
【０１１６】
次いで、ＣＩＭアダプタ生成部２７は、Ｊａｖａクラスファイル６３（図３）のデータに対して、ステップＳ３１で特定したＪａｖａ変換ルール内容のスクリプトを実行することによりＣＩＭ／ＸＭＬ対応Ｊａｖａクラスファイル６４（図３）を作成し、作成したＣＩＭ／ＸＭＬ対応Ｊａｖａクラスファイル６４を図１５のステップＳ１で作成したディレクトリに格納する（Ｓ３２）。
【０１１７】
例えば、図１１において、ステップＳ３０で特定したＪａｖａ変換ルールＩＤが「１」であった場合、「/Scr/Script1」というスクリプトと「/Scr/Script2」というスクリプトとを実行し、該当するＪａｖａクラスのＣＩＭ／ＸＭＬ対応Ｊａｖａクラスファイル６４を作成する。なお「/Scr/Script1」実行後のＣＩＭ／ＸＭＬ対応Ｊａｖａクラスファイルの例を図２３に示す。この例では、そのスクリプトによって変換対象となるＲｏｏｔクラスが特定され（図２２のＪａｖａクラス例）、そのＪａｖａクラスをＪａｖａクラス変換ルール内容に従って、図２３の中で破線ＤＬ１０で囲んだ箇所のような変換処理を行っている。
【０１１８】
続いて、ＣＩＭアダプタ生成部２７は、Ｔ−ＳＩマッピング情報７２（図７）及びＳＩ−ＳＱＬマッピング情報７３（図８）を参照して、ＣＩＭインタフェース生成処理（図１６）のステップＳ２３で特定したリレーショナルデータベースに対するＳＱＬを特定し、特定したＳＱＬのコードを図１５のステップＳ２で作成したディレクトリに格納されているデータ取得ＳＱＬファイル６５（図３）に追記する（Ｓ３３）。
【０１１９】
例えば、図７及び図８の例において、リレーショナルデータベーステーブルが「T_AAAA」の場合、データ取得ＳＱＬのコードとして出力するＳＱＬは、ＳＱＬ  ＩＤが「１」の「Select * From [T];」というＳＱＬ、ＳＱＬ  ＩＤが「２」の「Select * From [T] Where nwmid=xxx;」というＳＱＬが特定される。また、データ取得ＳＱＬファイル６５にコードを追記する際は、各ＳＱＬの中の「[T]」の箇所に当該リレーショナルデータベーステーブル名（この場合、「T_AAAA」）を入れて書き出す。図２４に示したデータ取得ＳＱＬのコードの出力例において、破線ＤＬ１１で囲んだ箇所が、「T_AAAA」というリレーショナルデータベースに対して出力したコードの例である。
【０１２０】
次いで、ＣＩＭアダプタ生成部２７は、Ｏ／Ｒマップ定義情報８２（図１２）を参照して、ステップ３０で特定したツール組合せのＯ／Ｒマップ定義ＩＤに対応するＯ／Ｒマップ定義内容を特定する（Ｓ３４）。
【０１２１】
さらにＣＩＭアダプタ生成部２７は、図１６のステップＳ２３で特定したＪａｖａクラス及びリレーショナルデータベーステーブルと、ステップＳ３３で特定したＳＱＬ  ＩＤ及びＳＱＬとに基づいて、ステップＳ３４で特定したＯ／Ｒマップ定義内容に従って、図１５のステップＳ８で設定されたＯ／Ｒマップ定義ファイル６６（図３）にコードを追記する（Ｓ３５）。
【０１２２】
例えば、図１２の例において、Ｏ／Ｒマップ定義ＩＤが「１」の場合、Ｏ／Ｒマップ定義内容欄８２Ｂの破線ＤＬ１で囲まれた箇所をＯ／Ｒマップ定義ファイル６６に追記していく。なお、Ｏ／Ｒマップ定義内容欄８２Ｂにおけるそれ以外の箇所は、Ｏ／Ｒマップ定義ファイル６６の作成時に記述しておく。図２５に示したＯ／Ｒマップ定義出力例において、破線ＤＬ１２で囲んだ箇所が、Ｊａｖａクラスが「AAAA」、リレーショナルデータベーステーブルが「T_AAAA」、ＳＱＬ  ＩＤが「１」及び「２」に対して出力したコードの例である。
【０１２３】
この後、ＣＩＭアダプタ生成部２７は、図１６のステップＳ２３で特定したリレーショナルデータベーステーブルで指定されているすべてのＳＱＬに対してステップＳ３３〜ステップＳ３５の処理を実行したか否かを判断する（Ｓ３６）。
【０１２４】
そしてＣＩＭアダプタ生成部２７は、この判断で否定結果を得ると、ステップＳＰ３３に戻り、この後、ステップＳ３６で肯定結果を得るまでステップＳ３３〜ステップＳ３６の処理を繰り返す。
【０１２５】
そしてＣＩＭアダプタ生成部２７は、やがてステップＳ２３で特定したリレーショナルデータベーステーブルで指定されているすべてのＳＱＬについて、ステップＳ３３〜ステップＳ３５の処理を実行し終えることによりステップＳ３６で肯定結果を得ると、取得関数定義情報８３（図１３）を参照して、ステップＳ３０で特定したツール組合せのうち、取得関数定義ＩＤに対応する取得関数定義内容を特定する（Ｓ３７）。
【０１２６】
続いて、ＣＩＭアダプタ生成部２７は、ステップＳ２３で特定したＪａｖａクラスに基づいて、ステップＳ３７で特定した取得関数定義内容に従って、図１５のステップＳ８で設定された取得関数定義ファイル６７（図３）にコードを追記する（Ｓ３８）。
【０１２７】
例えば、図１３の例において、取得関数定義が「１」の場合、取得関数定義内容欄８３Ｂの破線ＤＬ２〜ＤＬ４で囲まれた各箇所を取得関数定義ファイル６７に追記していく。なお、取得関数定義内容におけるそれ以外の箇所は、取得関数定義ファイル６７の作成時に記述しておく。図２６に示した取得関数定義出力例において、破線ＤＬ１３〜ＤＬ１５で囲まれた箇所がＪａｖａクラスが「AAAA」、Ｊａｖａインスタンス名が「aAAA」に対して出力したコードの例である。なお、Ｊａｖａインスタンス名は任意の文字列で良く、本例ではＪａｖａクラスの先頭文字を小文字にした名前としている。
【０１２８】
そしてＣＩＭアダプタ生成部２７は、この後、このコード出力処理１０００を終了して図１６のＣＩＭインタフェース生成処理に戻る。
【０１２９】
（３）本実施の形態の効果
以上の構成を有する計算機システム１では、サーバ装置４のＣＩＭアダプタ生成部２７が、ＣＩＭアダプタ相違部２６のうちのデータ取得ＳＱＬファイル６５、Ｏ／Ｒマップ定義ファイル６６、取得関数定義ファイル６７のコードを自動生成するため、ＣＩＭアダプタ開発者のＣＩＭアダプタ開発工数を削減することができる。かくするにつき、本実施の形態の計算機システム１によれば、ＣＩＭアダプタを容易かつ短時間に作成することができる。
【０１３０】
また本計算機システム１によれば、出力用プロファイル６０に複数の出力用サブセットを指定することができ、また各出力用サブセットも複数のプロファイルを指定することができるため、様々なデータ出力形式、ひいては様々なＣＩＭプロファイルに対応することができる。
【０１３１】
さらに本計算機システム１によれば、リレーショナルデータベーステーブルとＳＱＬのマッピング情報によって、必要なＳＱＬだけのコードを出力することができるため、ＣＩＭアダプタ相違部２６の規模を抑えることができるという効果をも得ることができる。
【０１３２】
（４）他の実施の形態
以上、本実施の形態を説明したが、本発明はこの実施の形態に限定されるものではなく、その要旨を逸脱しなし範囲で種々変更可能である。
【０１３３】
例えば、上述の実施の形態においては、、ＣＩＭアダプタ生成部２７が、ＣＩＭアダプタ相違部２６のうちのデータ取得ＳＱＬファイル６５、Ｏ／Ｒマップ定義ファイル６６、取得関数定義ファイル６７のコードを自動生成し、ＣＩＭアダプタ相違部２６を作成するが、上述のようにＣＩＭアダプタ相違部２６は、ＣＩＭプロファイルに１対１で対応するものであり、複数のＣＩＭプロファイルに対して複数のＣＩＭアダプタ相違部２６が作成される。本手順以外でも、作成するＣＩＭプロファイルの内部構造に最も近い既存ＣＩＭプロファイルを特定し、対応するＣＩＭアダプタ相違部２６をコピーして、差分の箇所のみコード修正を行う手段を用いても良い。また、作成するＣＩＭプロファイルがない場合でも出力プロファイルだけを指定してＣＩＭアダプタ相違部２６を作成しても良い。
【０１３４】
また上述の実施の形態においては、データモデルがＣＩＭである場合について述べたが、本発明はこれに限らず、ＣＩＭ以外のデータモデルについても本願発明を広く適用することができる。
【０１３５】
さらに上述の実施の形態においては、マッピング情報及び管理情報をそれぞれ設定するためのインタフェースとして、図１４に示すような画面構成を有するマッピング情報／管理情報設定画面９０を適用するようにした場合について述べたが、本発明はこれに限らず、かかるインタフェースの構成としては、この他種々の構成を広く適用することができる。
【０１３６】
１……計算機システム、２……クライアント計算機、４……サーバ装置、５……データベースサーバ装置、７……ストレージ装置、２２，３２……ＣＰＵ、２４，３４……記憶部、２５……ＣＩＭアダプタ共通部、２６……ＣＩＭアダプタ相違部、２７……ＣＩＭアダプタ生成部、２８……マッピング情報、２９……管理情報、３６……ＲＤＢＭＳ、４２……リレーショナルデータベース、６０……出力用ファイル、６１……ＸＭＬスキーマデータファイル、６２……リレーショナルデータベース作成用ＳＱＬファイル、６３……Ｊａｖａクラスファイル、６４……ＣＩＭ／ＸＭＬ対応Ｊａｖａクラスファイル、６５……データ取得ＳＱＬファイル、６６……Ｏ／Ｒマップ定義ファイル、６７……取得関数定義ファイル、６８……サーブレットプログラム、７０……Ｓ−Ｐマッピング情報、７１……Ｐ−Ｃ−Ｔマッピング情報、７２……Ｔ−ＳＩマッピング情報、７３……ＳＩ−ＳＱＬマッピング情報、８０……利用ツール情報、８１……Ｊａｖａ変換ルール情報、８２……Ｏ／Ｒマップ定義情報、８３……取得関数定義情報、９０……マッピング情報／管理情報設定画面。
【図１】
0006677809.tif 000002
【図２】
0006677809.tif 000003
【図３】
0006677809.tif 000004
【図４】
0006677809.tif 000005
【図５】
0006677809.tif 000006
【図６】
0006677809.tif 000007
【図７】
0006677809.tif 000008
【図８】
0006677809.tif 000009
【図９】
0006677809.tif 000010
【図１０】
0006677809.tif 000011
【図１１】
0006677809.tif 000012
【図１２】
0006677809.tif 000013
【図１３】
0006677809.tif 000014
【図１４】
0006677809.tif 000015
【図１５】
0006677809.tif 000016
【図１６】
0006677809.tif 000017
【図１７】
0006677809.tif 000018
【図１８】
0006677809.tif 000019
【図１９】
0006677809.tif 000020
【図２０】
0006677809.tif 000021
【図２１】
0006677809.tif 000022
【図２２】
0006677809.tif 000023
【図２３】
0006677809.tif 000024
【図２４】
0006677809.tif 000025
【図２５】
0006677809.tif 000026
【図２６】
0006677809.tif 000027
【図２７】
0006677809.tif 000028