(57)【要約】【課題】システム間でデータの整合性を確保するシステム連携において、同じデータ形式でもデータによって異なる変換方法を用いたデータ形式の変換が行えるデータ連携方法を得る。【解決手段】前記データ連携方法は、データスキーマ間の対応関係を定義したスキーママッピング定義に加えて、データスキーマに基づく実データに関して、対応するデータスキーマおよび実データ間の対応関係を定義したインスタンスマッピング定義を用いることで、実データの対応関係毎に使用するスキーママッピング定義を変えたデータ形式の変換を可能とする。【選択図】  図１
2011248852.tif 000002
【特許請求の範囲】
【請求項１】
複数システム間でデータ形式は異なるが内容が同じデータを重複して保持する場合に、データの整合性確保のためシステム間でデータ形式の変換およびコピーするデータ連携装置において、
各システムで扱うデータ形式が定義されたデータスキーマとデータスキーマに基づく実データの集合から各実データを一意に識別するための識別情報を保持する各システムに対応したデータ定義保持部と、前記各システムに対応したデータ定義保持部から前記各実データの識別情報およびデータ形式の定義を取得してユーザにシステム間の実データの対応関係と、対応関係のある実データ間の各データ項目の対応関係を定義させる画面を表示するマッピング定義編集部と、
前記マッピング定義編集部とで定義された実データの対応関係をインスタンスマッピング定義として、各データ項目の対応関係をスキーママッピング定義として保持するマッピング定義保持部と、
を有することを特徴とするデータ連携装置。
【請求項２】
前記データ定義保持部に保持されるデータスキーマ及び識別情報を用いて対象システムから実データの集合を取得するシステムデータ取得部と、
前記システムデータ取得部でひとつのシステムから取得した実データを前記インスタンスマッピング定義を用い、他のシステムの実データを一意に識別し、それら実データのデータスキーマ間の関係から前記マッピング定義保持部に保持されているスキーママッピング定義を選択するインスタンスマッピング処理部と、
前記インスタンスマッピング処理部から前記選択されたスキーママッピング定義情報とそれらの実データを合わせて受信し、前記スキーママッピング定義情報を元に前記マッピング定義保持部から該当するスキーママッピング定義を取得するとともに、同定義を用いて、受信した前記ひとつのシステムの実データに含まれるデータ項目を前記他のシステムの実データのデータ項目に変換するスキーママッピング処理部と、
前記スキーママッピング処理部からの変換後実データの集合を受信し、前記データ定義保持部に保持されるデータスキーマ及び識別情報を用いて対象システムに対して受信した実データの集合を送信するシステムデータ更新部と、
を有することを特徴とするデータ連携装置。
【請求項３】
前記データ定義保持部において、
前記実データの集合が、配列データである場合に、前記配列データの配列番号と前記データスキーマのスキーマ名称を前記識別情報として用いることを特徴とする請求項１に記載するデータ連携装置。
【請求項４】
前記データ定義保持部において、
前記データスキーマにデータ項目としてＩＤ属性を追加し、前記データスキーマに基づく実データのＩＤ属性に対し、あらかじめ実データを一意に識別可能なＩＤ値を設定しておき、前記ＩＤ値を前記識別情報として用いることを特徴とする請求項１に記載するデータ連携装置。
【請求項５】
前記データ連携装置において、前記インスタンスマッピング定義にデータ形式の変換タイミングを指定する項目を追加し、前記インスタンスマッピング処理において、前記データ形式の変換タイミングを決定する処理を追加し、
前記インスタンスマッピング処理において決定した前記データ形式の変換タイミングを用いて、実データの対応関係毎にタイミングを変えて前記スキーママッピング処理を行うことを特徴とする請求項２に記載するデータ連携装置。
【請求項６】
前記データ連携装置において、前記インスタンスマッピング定義にデータ形式の変換対象データ項目を指定する項目を追加し、前記インスタンスマッピング処理において、前記データ形式の変換対象データ項目を決定する処理を追加し、
前記インスタンスマッピング処理において決定した前記データ形式の変換対象データ項目を用いて、実データの対応関係毎に全データ項目を対象または更新有の差分データ項目のみ対象として前記スキーママッピング処理行うことを特徴とする請求項２または請求項５に記載するデータ連携装置。
【請求項７】
請求項１に記載のデータ連携装置において、
変換元データのデータ項目に対して、変換先データのデータ項目が複数対応する場合、
前記データ定義保持部は、
前記スキーママッピング定義において、前記変換元データのデータ項目と、対応する前記変換先データの開始位置および大きさとを対応付けて記憶し、
前記スキーママッピング処理部は、
前記変換元データの各データ項目について、前記開始位置から前記大きさで指定された量のデータを取得し、前記スキーママッピング定義における前記変換先の対応するデータ項目にコピーすること
を特徴とするデータ連携装置。
【請求項８】
請求項７に記載のデータ連携装置において、
変換先データのデータ項目に対して、変換元データのデータ項目が複数対応する場合、
前記スキーママッピング処理部は、前記複数の変換元データのデータ項目を結合して、前記スキーママッピング定義における前記変換先の対応するデータ項目にコピーすること
を特徴とするデータ連携装置。
【請求項９】
請求項１に記載のデータ連携装置において、
変換元データおよび変換先データに含まれるデータ項目が、さらに複数のデータ項目をもつ階層型データ項目である場合、
前記階層型データ項目に関するスキーママッピングをサブスキーママッピングとして定義し、前記サブスキーママッピングに一意なＩＤを付与し、
前記データ定義保持部において、
前記スキーママッピング定義に、スキーママッピングを一意に識別するＩＤを指定する項目と、変換元データおよび変換先データに含まれるデータ項目のデータ型を指定する項目と、前記サブスキーママッピングのＩＤを指定する項目を追加し、
前記スキーママッピング処理部において、
前記階層型データ項目のデータの変換時に、前記サブスキーママッピングのＩＤを指定して再帰的にスキーママッピング処理を実行する
ことを特徴とするデータ連携装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数システム間のデータを連携するシステム連携装置に関する。
【背景技術】
【０００２】
近年、顧客要望の多様化・高度化に伴い、それを解決するシステムが大規模化・複雑化している。そのため、システム更改の際、新システムへの一括移行は、技術的にもコスト的にも困難であり、段階的な移行が必要である。段階的な移行を行う場合、その過渡期には、新システムと旧システムが共存することになる。旧システムの機能の一部を新システムで使用する場合もあるため、両システムは独立ではなく、両システムで重複して保持するデータもある。そこで、両システム間の重複データの整合性を確保する仕組みが必要となる。
【０００３】
データ整合性を確保する従来の方法として、データベース同期化がある。これはどちらかのデータベースに対してデータ更新があった場合に、他のデータベースにその更新分のデータ（差分データ）をコピーする方法である。これにより、複数システム間でデータを同じ状態に保つことができるため、データの整合性は確保される。
【０００４】
複数システム間で利用するデータ形式が異なる場合には、データ形式の変換を行う必要がある。データ形式の変換は、データ形式の変換ルールを用いて行う。データ形式の変換ルールは、データ形式を定義するデータスキーマをシステム毎に用意し、そのデータスキーマのデータ項目情報を用いて、システム間で対応するデータ項目が明確になるようにデータ項目間の対応関係を定義（以下、「スキーママッピング定義」という。）したものである。
【０００５】
特許文献１には、前記スキーママッピング定義を用いて、複数のデータベースを同期化する方法が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−３３１１４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１記載の技術では、使用する候補となる変換ルールが複数存在する場合に適切に変換できない場合がある。例えば、あるシステムでは、“列車”というデータがあり、別のシステムでは“通常列車”と“快速列車”のように種別ごとにデータをわけて管理している状況で両システム間でデータコピーを行う場合、“列車”データから“通常列車”データへの変換ルールと“列車”データから“快速列車”データへの変換ルールが存在することになる。この場合、第二の方法ではどの変換ルールを使用するか決定できない。使用する変換ルールを決定するために、“列車”データの内容をチェックし、その内容に応じて変換ルールを決定するロジックを別途追加することも考えられる。この場合、実際にロジックを動作させるまでコピー先が決定できない。上記の列車の例では、ロジックの誤りによって“快速列車”であるべきデータを“通常列車”として扱ってしまった場合には、列車の適切な運行管理が出来ないおそれがある。このようにロジックを用いるデータコピーは、データコピー先の保証ができないため、リスク上適用することはできない。また、ロジックが複雑であるほど処理に時間がかかりパフォーマンスが低下してしまう。
【０００８】
本発明の目的は、上記の点を考慮して、データスキーマに対して複数の変換ルールが存在する場合であっても、システム間のデータ整合性を確保するデータ連携が可能となる。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明は、以下の構成を備える。即ち、複数システム間でデータ形式は異なるが内容が同じデータを重複して保持する場合に、データの整合性確保のためシステム間でデータ形式の変換およびコピーするシステム連携装置において、
各システムで扱うデータ形式が定義されたデータスキーマとデータスキーマに基づく実データの集合から各実データを一意に識別するための識別情報を保持する各システムに対応したデータ定義保持部と、
前記各システムに対応したデータ定義保持部から前記各実データの識別情報およびデータ形式の定義を取得してユーザにシステム間の実データの対応関係と、
対応関係のある実データ間の各データ項目の対応関係を定義させる画面を表示するマッピング定義編集部と、
前記マッピング定義編集部とで定義された実データの対応関係をインスタンスマッピング定義として、各データ項目の対応関係をスキーママッピング定義として保持するマッピング定義保持部と、
を有することを特徴とするデータ連携装置を備える。
【発明の効果】
【００１０】
本発明によれば、データスキーマに対して複数の変換ルールが存在する場合であっても、システム間のデータ整合性を確保するデータ連携が可能となる。
【図面の簡単な説明】
【００１１】
【図１】実施形態におけるシステム連携装置を表す構成図である。
【図２】実施形態におけるシステムの概略を表すハードウェア構成図である。
【図３】各システムにおけるデータスキーマ定義に基づく実データ間の対応関係を、実データが格納される配列の番号を用いて定義したインスタンスマッピング定義の一例を示す図である。
【図４】各システムにおけるデータスキーマ定義に基づく実データ間の対応関係を、実データが保持するＩＤ属性値を用いて定義したインスタンスマッピング定義の一例を示す図である。
【図５】各システムにおけるデータスキーマ定義内で定義されるデータ項目間の対応関係を定義したスキーママッピング定義の一例を示す図である。
【図６】インスタンスマッピング定義４２０のフォーマットを拡張し、対応関係毎に、データ変換のタイミングを指定可能にしたインスタンスマッピング定義の一例を示す図である。
【図７】インスタンスマッピング定義４２０のフォーマットを拡張し、対応関係毎に、変換対象のデータ項目を指定可能にしたインスタンスマッピング定義の一例を示す図である。
【図８】インスタンスマッピング定義４２０のフォーマットを拡張し、対応関係毎に、データ変換のタイミングおよび変換対象のデータ項目を指定可能にしたインスタンスマッピング定義の一例を示す図である。
【図９】システム連携装置が実行するデータ変換処理の流れを示すフローチャートである。
【図１０】図７のインスタンスマッピング定義を用いる場合のシステム連携装置が実行するデータ変換処理の流れを示すフローチャートである。
【図１１】図８のインスタンスマッピング定義を用いる場合のシステム連携装置が実行するデータ変換処理の流れを示すフローチャートである。
【図１２】図９のインスタンスマッピング定義を用いる場合のシステム連携装置が実行するデータ変換処理の流れを示すフローチャートである。
【図１３】図５のスキーママッピング定義のフォーマットを拡張し、１つの変換元データ項目に対して複数の変換先データ項目が対応する場合の対応関係および複数の変換元データ項目に対して１つの変換先データ項目が対応する場合の対応関係を定義可能にしたスキーママッピング定義の一例を示す図である。
【図１４】図１３のスキーママッピング定義を用いる場合のシステム連携装置が実行するデータ変換処理の流れのうち、図９に示すフローチャートのスキーマ変換部分において、１つの変換元データ項目を１つ以上の変換先データ項目に変換する流れを示すフローチャートである。
【図１５】図１３のスキーママッピング定義を用いる場合のシステム連携装置が実行するデータ変換処理の流れのうち、図９に示すフローチャートのスキーマ変換部分において、複数の変換元データ項目を１つの変換先データ項目に変換する流れを示すフローチャートである。
【図１６】図５のスキーママッピング定義のフォーマットを拡張し、変換元または変換先データに含まれるデータ項目として、その内部に複数のデータ項目を持つ階層型データを指定可能にしたスキーママッピング定義の一例を示す図である。
【図１７】図１６のスキーママッピング定義を用いる場合のシステム連携装置が実行するデータ変換処理の流れのうち、図９に示すフローチャートのスキーマ変換部分において、変換元または変換先データに含まれるデータ項目として階層型データがある場合のスキーママッピングの流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を、図面を参照しながら説明する。なお、説明のためシステム連携対象のシステムとしてシステムＡ、システムＢの２つのシステムを例として取りあげる。
【００１３】
図２は、本発明のシステム連携に係るハードウェア構成例を示すブロック図である。
【００１４】
システム連携対象であるシステムＡ２００、システムＢ２１０およびシステム連携装置２２０は、ネットワーク２３０を介して接続される。
【００１５】
システムＡ２００は、処理装置２０１、入出力装置２０２、メモリ２０３、外部記憶装置２０４、通信装置２０７から構成される。
【００１６】
システムＢ２１０は、処理装置２１１、入出力装置２１２、メモリ２１３、外部記憶装置２１４、通信装置２１７から構成される。
【００１７】
システム連携装置２２０は、処理装置２２１、入出力装置２２２、メモリ２２３、外部記憶装置２２５、通信装置２２４から構成される。
【００１８】
システムＡ２００、システムＢ２１０およびシステム連携装置は、ハードウェア構成としては同じであるため、以下システムＡ２００についてのみ説明する。
【００１９】
処理装置２０１は、外部記憶装置２０４に保持されるプログラム２０５およびデータ２０６をメモリ２０３上に読み込んで、システムの処理を実行する。後述するシステムＡ２００またはシステムＢ２１０における処理動作やフローチャートは、それぞれ処理装置２０１または２０２で実行される。
【００２０】
入出力装置２０２は、ユーザからの実行指示および実行に必要なデータの入力受け付けると同時に、実行結果をユーザに表示する。
【００２１】
メモリ２０３は、処理装置２０１が実行するために、プログラムおよびデータを読み込むための主記憶装置である。
【００２２】
外部記憶装置２０４は、実行に必要なプログラム２０５およびデータ２０６を保持する補助記憶装置である。
【００２３】
通信装置２０７は、ネットワーク２３０上にシステムＡ２００のデータ２０６を出力したり、ネットワーク２３０上に流れるデータをシステムＡ２００に入力する。
【００２４】
特に、システム連携装置２２０の外部記憶装置２２５では、システム連携処理に関するプログラム２２６およびデータ２２７が保持される。具体的には図１に示す内容が保持される。
【００２５】
図１は、本発明のシステム連携に係るソフトウェア構成例を示すブロック図である。
【００２６】
外部記憶装置２２５は、システム連携処理プログラム１００およびシステム連携処理用データ１１０を記憶している。
【００２７】
システム連携処理プログラム１００は、マッピング定義編集部１０１、システムデータ取得部１０２、インスタンスマッピング処理部１０３、スキーママッピング処理部１０４、システムデータ更新部１０５から構成されるソフトウェアプログラムである。
【００２８】
マッピング定義編集部１０１は、システムＡデータ定義保持部１１１およびシステムＢデータ定義保持部１１２で保持するデータスキーマ及び識別情報を用いて、ユーザにマッピング定義編集画面を表示し、編集結果をインスタンスマッピング定義１１４およびスキーママッピング定義１１５としてマッピング定義保持部１１３に保持する。
【００２９】
システムデータ取得部１０２は、システムＡデータ定義保持部１１１（またはシステムＢデータ定義保持部１１２）からデータスキーマ及び識別情報取得し、そのデータスキーマ及び識別情報を用いてシステムＡ（またはシステムＢ）から実データの集合を取得し、取得した実データの集合をインスタンスマッピング処理部１０３に送信する。
【００３０】
インスタンスマッピング処理部１０３は、マッピング定義保持部１１３に保持されるインスタンスマッピング定義１１４のうち、システムＡとシステムＢの対応関係を定義したものを取得する。インスタンスマッピング定義１１４取得後、同定義を用いて、システムデータ取得部１０２から送信されたシステムＡ（またはシステムＢ）の実データ集合の各実データについて、その実データに対応するシステムＢ（またはシステムＡ）の実データを一意に識別し、それら実データのデータスキーマ間の関係から使用するスキーママッピング定義を選択し、スキーママッピング処理部１０４にスキーママッピング定義情報とシステムＡ（またはシステムＢ）の実データの集合を合わせて送信する。
【００３１】
スキーママッピング処理部１０４は、インスタンスマッピング処理部１０３から受信したスキーママッピング定義情報を元に、マッピング定義保持部１１３から該当するスキーママッピング定義１１５を取得する。取得後、同定義を用いて、インスタンスマッピング処理部１０３から受信したシステムＡ（またはシステムＢ）の実データに含まれるデータ項目をシステムＢ（またはシステムＡ）の実データのデータ項目に変換し、システムＢ（またはシステムＡ）の実データの集合をシステムデータ更新部１０５に送信する。
【００３２】
システムデータ更新部１０５は、システムＢデータ定義保持部１１２（またはシステムＡデータ定義保持部１１１）からデータスキーマ及び識別情報取得し、そのデータスキーマ及び識別情報を用いて、スキーママッピング処理１０４より受信したシステムＢ（またはシステムＡ）の実データの集合をシステムＢ（またはシステムＡ）のデータ領域に反映する。
【００３３】
システム連携処理用データ１１０は、システムＡデータ定義保持部１１１、システムＢデータ定義保持部１１２、マッピング定義保持部１１３を含む。
【００３４】
システムＡデータ定義保持部１１１は、システム連携対象であるシステムＡのデータ形式を定義したデータスキーマおよびデータスキーマに基づく実データの集合から各実データを一意に識別可能な識別情報を保持する。
【００３５】
システムＢデータ定義保持部１１２は、システム連携対象であるシステムＢのデータ形式を定義したデータスキーマおよびデータスキーマに基づく実データの集合から各実データを一意に識別可能な識別情報を保持する。
【００３６】
マッピング定義保持部１１３は、マッピング定義編集部１０１で作成した複数のインスタンスマッピング定義１１４およびスキーママッピング定義１１５を保持する。
【００３７】
図３は、本発明のシステム連携処理で用いるインスタンスマッピング定義の例を示した図である。
【００３８】
開発者は、データスキーマ定義に基づいて生成される実データを用いてインスタンスマッピング定義を定義する。システムＡのデータスキーマ定義の例として、スキーマａ３０１、スキーマｂ３０２、スキーマｃ３０３を考えた場合、それらのデータスキーマ定義に基づいて生成される実データは、それぞれａ［０］３１１、ａ［１］３１２、ａ［２］３１３、ｂ［０］３１４、ｂ［１］３１５、ｂ［２］３１６、ｂ［３］３１７、ｃ［０］３１８、ｃ［１］３１９のようにデータスキーマ定義毎の配列データの１要素として保持させる。同様にシステムＢに対しても、スキーマ３４１、３４２に対し、実データ３３１、３３２、３３３、３３４、３３５、３３６、３３７、３３８として保持させる。
【００３９】
この場合、保持される実データの配列内の順番（以下配列番号）が常時固定であれば、その配列番号と配列の元となるデータスキーマ名を用いてシステムＡの各実データとシステムＢの各実データを一意に対応付けることができる。インスタンスマッピング定義３２０は、その対応付けを表形式で記述した例である。インスタンスマッピング定義は、実データ間の対応付けが表現できれば表以外の形式でも良い。
【００４０】
図３において、表の1行毎にシステムＡの実データおよび対応するシステムＢの実データを記述し、それを必要な分だけ用意する。図３の２行目３２１では、システムＡのデータで配列番号が１番である実データ３１２とシステムＢのデータで配列番号が２版である実データ３３３が対応関係にあることを示している。なお、この場合スキーマａ３０１に基づく実データとスキーマｄ３４１に基づく実データであるから、その２つのスキーマ定義の間の対応関係を記述したスキーママッピング定義が実データの変換のために必要となる。
【００４１】
図４は、図３同様インスタンスマッピング定義の例を示した図である。
【００４２】
図３では、保持される実データの配列番号が常時固定であることを想定したが、図４は、配列番号が常時固定でない場合または実データが配列データのようにまとめられておらず、実データ間に順序関係を持たない場合でも対応可能にした例である。この例では、データスキーマ４０１、４０２、４０３、４４１、４４２の１データ項目としてＩＤ属性を追加し、実データ毎に一意に識別可能なＩＤ値を設定する。このＩＤ値を用いてインスタンスマッピング定義を定義する。
【００４３】
図の２行目４２１では、システムＡのデータスキーマａ４０１に基づきＩＤ値がｋの実データ４１２とシステムＢのデータスキーマｄ４４１に基づきＩＤ値がｕの実データ４３３が対応関係にあることを示している。
【００４４】
図５は、本発明のシステム連携処理で用いるスキーママッピング定義の例を示した図である。図３または図４で示したインスタンスマッピング定義３２０、４２０は、実データの対応関係を定義したものであり、その実データが持つデータ項目間の対応関係は定義していない。そこで、スキーママッピング定義は、データ項目間の対応関係を定義する。
【００４５】
スキーママッピング定義は、インスタンスマッピング定義３２０で定義した実データが持つデータ項目について、データ項目間の対応関係を定義する。ただし、この対応関係を実データ毎に定義すると、実データの数だけその対応関係が必要になり、数が膨大になる。実データの型が同じであれば、内部に持つデータ項目も同じであるため、データ項目間の対応関係を実データの型ごとにまとめて定義する。
【００４６】
図５において、システムＡのデータスキーマであるスキーマａ５０１、スキーマｂ５０５、スキーマｃ５０９の各データ項目とシステムＢのデータスキーマであるスキーマｄ５３１、スキーマｅ５３６の各データ項目の間に対応関係がある場合、その対応関係をスキーママッピング定義５２０のように定義できる。なお、インスタンスマッピング定義同様、データ項目間の対応付けが表現できれば表以外の形式でも良い。図５の２行目５２１では、システムＡのスキーマａ５０１のデータ名ａ２とシステムＢのスキーマｄ５３１のデータ名ｄ２に対応関係があることを示している。
【００４７】
図６は、図４で示したインスタンスマッピング定義４２０を拡張したものである。このインスタンスマッピング定義６００では、図４のインスタンスマッピング定義４２０に対し、変換タイミング項目６０１を追加する。変換タイミング項目６０１には、対応関係毎に変換を行うタイミングを指定することができる。例えば、ユーザプログラムの処理などでデータが更新された直後に変換を行うことを意味する“データ更新直後”のようにデータ更新等のイベントをタイミングとして指定することや、２秒または４秒間隔で変換を行うことを意味する“２秒毎”、“４秒毎”のように周期的な時間をタイミングとして指定することが可能である。この拡張は図４のインスタンスマッピング定義４２０だけでなく、図３のインスタンスマッピング定義３２０に対しても可能である。
【００４８】
図７は、図４で示したインスタンスマッピング定義４２０を拡張したものである。このインスタンスマッピング定義７００では、図４のインスタンスマッピング定義４２０に対し、変換対象データ項目７０１を追加する。変換対象データ項目７０１には、対応関係毎に変換対象とするデータ項目を指定することができる。例えば、実データが持つ全データ項目を変換対象することを意味する“全データ”を指定することや、ユーザプログラムの処理などで更新があったデータ項目のみを変換対象とすることを意味する“差分データ”のように特定のデータ項目を対象とするような指定をすることが可能である。この拡張は図４のインスタンスマッピング定義４２０だけでなく、図３または図６のインスタンスマッピング定義３２０、６００に対しても可能である。  図８は、図６で示した変換タイミング項目６０１と図７で示した変換対象データ項目７０１をともに図４に示すインスタンスマッピング定義４２０に追加したものである。図６および図７同様に図３のインスタンスマッピング定義に対しても追加可能である。  図９は、図３または図４に示すインスタンスマッピング定義３２０、４２０を用いる際の本発明のシステム連携処理の流れを示すフローチャートである。図９では、システムＡからシステムＢに対してデータ変換およびコピーを行う流れを例として説明する。
【００４９】
まず、本システム連携処理を開始し（９００）、システムＡからデータを取得する（９０１）。データ取得後、システムＡのデータに関する対応関係情報が定義されたインスタンスマッピング定義を読み込む（９０２）。システムＡから取得したデータの1つを抽出し（９０３）、最後までデータを抽出したかどうかを判断する（９０４）。データが抽出できた場合、読み込んだインスタンスマッピング定義のうち、抽出したデータが定義されている行を読み込む。
【００５０】
そして、抽出済みのシステムＡのデータのスキーマと、読み込んだ行内で定義されるシステムＢのデータのスキーマの関係が定義されているスキーママッピング定義を全スキーママッピング定義の中から検索し，該当するものを使用するスキーママッピング定義として決定する（９０５）。
【００５１】
その後、上記で決定されたスキーママッピング定義を読み込む（９０６）。
【００５２】
読み込んだスキーママッピング定義の情報を元に抽出済みのシステムＡの実データに含まれる各データ項目を，システムＢの実データに含まれるデータ項目にコピー（変換）する（９０７）。
【００５３】
その後９０３に戻る。最終データの処理が終了したら、変換後のデータを一括してシステムＢのデータに反映し（９０８）、その後終了する（９０９）。なお、上記のように変換後のデータを最後にまとめて一括で反映する以外に、1データ変換のたびにシステムＢのデータに反映することも可能である。
【００５４】
図１０は、図６に示すインスタンスマッピング定義６００を用いる際の本発明のシステム連携処理の流れを示すフローチャートである。基本的なフローは図９と同じであるが、使用するスキーママッピング定義を決定（１００５）後に、インスタンスマッピング定義６００の変換タイミング項目６０１情報を用いるデータ変換を行うかどうかのタイミングのチェックの処理（１００６）を追加している。これにより、データ毎に変換のタイミングを調整することができる。例えば、データ更新の時間間隔が短いデータについては、頻繁に整合性を確保できるように、データ変換のタイミングを短い時間に設定し、時間間隔が長いデータについては、データ変換のタイミングを長い時間に設定することで、全データ同じタイミングで変換するのではなく、データ毎に更新頻度に応じたデータ変換タイミングを変えることができる。  図１１は、図７に示すインスタンスマッピング定義７００を用いる際の本発明のシステム連携処理の流れを示すフローチャートである。基本的なフローは図９と同じであるが、インスタンスマッピング定義７００の変換対象データ項目７０１情報を用いて、使用するスキーママッピング定義を決定（１１０５）後に、変換対象データ項目７０１の値が“差分データ”かどうかをチェックし（１１０６）、“差分データ”である場合にはシステムＡのデータのうち更新有のデータを抽出する（１１０７）処理を追加している。これにより、データ毎に変換対象とするデータ項目を調整できる。例えば、更新がないデータ項目を多く持つデータについては、更新があったデータ項目のみ変換できるように、変換対象データ項目を“差分データ”と設定し、更新がないデータ項目をあまり持たないデータについては、更新があったかどうかをチェックせず全データを変換できるように変換対象データ項目を“全データ”と設定することで、不必要な変換を減らすことができる。
【００５５】
図１２は、図８に示すインスタンスマッピング定義８００を用いる際の本発明のシステム連携処理の流れを示すフローチャートである。図１０および図１１において追加した処理をそれぞれ追加したフローとなっている。インスタンスマッピング定義８００では、変換タイミング８０１と変換対象データ項目８０２を同時に指定することができる。例えば更新有の差分データを更新頻度に応じたタイミングで変換するように変換対象データ項目８０２と変換タイミング８０１を指定することができるため、データ変換を無駄なく最小限な抑えることができるようになる。これにより、応答速度向上やメモリ使用量の削減に繋がるため、リアルタイム処理が必要で応答速度やメモリ使用量の制約が厳しいシステムに対しても有効である。
【００５６】
図１３は，１つのデータ項目に対し，変換元のデータ項目または変換先のデータ項目が複数対応する場合のスキーママッピング定義の例を示したものである。
【００５７】
図１３は、図５で示したスキーママッピング定義５２０を拡張したスキーママッピング定義の例１３００を示した図である。変換元データのデータ項目１つに対し、変換先データのデータ項目が複数対応する場合に前記スキーママッピング定義１３００を用いる。図１３では、データ項目間のマッピングを定義する部分１３０１内で、変換元データのデータ項目１３０２に対し、複数の変換先データのデータ項目１３０３、１３０４、１３０５が対応することを定義している。そして対応関係毎に、変換元データのデータ項目１３０２の中で、変換先データのデータ項目１３０３または１３０４または１３０５が現れる位置を開始位置１３０６として、変換先データのデータ項目のサイズをサイズ１３０７として指定する。この定義により、１つの変換元データのデータ項目に対して複数の変換先データのデータ項目が対応する場合の対応関係および複数の変換元データのデータ項目に対して１つの変換先データのデータ項目が対応する場合の対応関係を定義可能になる。
【００５８】
図１４は、図１３に示すスキーママッピング定義１３００を用いて，変換元のデータ項目１つを複数の変換先データ項目に変換する流れを示すフローチャートであり、図９に示す本発明全体のフローチャートのスキーマ変換９０７部分の詳細を示したものである。図１４では、変換元データのデータ項目１つを１つ以上の変換先データのデータ項目に変換する流れを示している。スキーマ変換開始後（１４０１）、変換元データに含まれるデータ項目を１つ抽出する（１４０２）。この際、データ項目が存在しないか、またはすべてのデータ項目を抽出済みかどうか判断し（１４０３）、データ項目が存在しないか、または、すべてのデータ項目を抽出済みの場合は処理を終了する。データが抽出できた場合、スキーママッピング定義を参照し、抽出したデータ項目に対応する変換先データ項目が１つ以上あるかどうか判断する（１４０４）。抽出したデータ項目に対応する変換先データ項目が存在しない場合、１４０２に戻る。抽出したデータ項目に対応する変換先データのデータ項目が１つ以上ある場合には、前記図１３で示したスキーママッピング定義で定義された開始位置１３０６およびサイズ１３０７を参照し、変換元データのデータ項目の指定された開始位置から指定されたサイズ分のデータを取得し（１４０５）、変換先データのデータ項目にコピーする（１４０６）。そして再び１４０４に戻り、変換先データ項目数分繰り返す。これにより変換元データの１つのデータ項目を変換先データの複数のデータ項目に変換可能になる。
【００５９】
図１５は，図１３に示すスキーママッピング定義１３００を用いて，変換元の複数のデータ項目を１つの変換先データ項目に変換する流れを示すフローチャートであり、図９に示す本発明全体のフローチャートのスキーマ変換部分９０７の詳細を示したものである。図１５では、１つ以上の変換元データ項目を１つの変換先データのデータ項目に変換する流れを示している。スキーマ変換開始後（１５０１）、変換元データに含まれるデータ項目のうち、スキーママッピング定義１３００を参照し、変換先データのデータ項目が同じであるものが１つ以上あるかどうか判断する（１５０２）。変換先データのデータ項目が同じである変換元データ項目が存在しない場合は終了する（１５０６）。変換先データのデータ項目が同じであるものが１つ以上ある場合、それらすべてを抽出する（１５０３）。この際、データ項目が存在しないか、または、すべてのデータ項目を抽出済みかどうか判断し（１５０４）、データ項目が存在しないか、または、すべてのデータ項目を抽出済みの場合、終了する（１５０６）。１つ以上のデータ項目を抽出した場合、前記図１３で示したスキーママッピング定義で定義された開始位置１３０６およびサイズ１３０７を参照し、変換元データのデータ項目毎に、それぞれ指定された開始位置から指定されたサイズ分のデータを取得し、１つのデータ項目として結合し，変換先データ項目にコピー（変換）する（１５０５）。その後１５０２に戻り、変換元データ項目をすべて抽出するまで繰り返す。これにより，変換元データの複数のデータ項目を変換先データの１つのデータ項目に変換可能になる。
【００６０】
図１６は，変換元データまたは変換先データに含まれるデータ項目のうち，その内部に複数のデータ項目をもつ階層型データを変換する場合のスキーママッピング定義の例を示したものである。
【００６１】
図１６は、図５で示したスキーママッピング定義５２０を拡張したスキーママッピング定義の例を示した図である。このスキーママッピング定義は、変換元データまたは変換先データに含まれるデータ項目として、その内部に複数のデータ項目を持つ階層型データを指定する場合に用いる。まず、スキーママッピング定義１６００にて、１６０１の対応関係定義に示すように階層型データ１６０２、１６０３をデータ型部分に記述する。ここでデータ型に階層型データを指定した場合、同レコード内のサブスキーママッピングＩＤ部分に、１６０２、１６０３で指定した階層型データ同士の対応関係が定義されたサブスキーママッピング定義のＩＤ１６０５を指定する。サブスキーママッピング定義でも、スキーママッピング定義同様データ項目間の対応関係を定義するが、１６０４の１つの対応関係定義に示すようにスキーマ部分には１６０２、１６０３で指定した階層型データのデータ型を指定する。サブスキーママッピング定義の対応関係で定義するデータ項目のデータ型がさらに階層型データである場合には、再度データ型に階層型データ１６０６、１６０７を指定し、それら階層型データ間の対応関係を定義するサブスキーママッピングＩＤを指定する。
【００６２】
図１７は、図１６に示すスキーママッピング定義１６００を用いて，変換元のデータに含まれる階層型データ項目を変換先のデータに含まれる階層型データ項目に変換する流れを示すフローチャートであり，図９に示す本発明全体のフローチャートのうち、図９に示すフローチャートのスキーマ変換部分９０７の詳細を示したものである。図１７では、変換元データまたは変換先データに含まれるデータ項目として階層型データがある場合のスキーママッピングの流れを示したものである。スキーマ変換開始後（１７０１）、変換元データに含まれるデータ項目を１つ抽出する（１７０２）。この際、データ項目が存在しないか、または、すべてのデータ項目を抽出済みかどうか判断し（１７０３）、データ項目が存在しないか、または、すべてのデータ項目を抽出済みであれば処理を終了する。データが抽出できた場合、スキーママッピング定義を参照し、抽出したデータ項目のデータが階層型であるかどうか判断する（１７０４）。階層型データでない場合、変換先データ項目にデータをコピーして（１７０７）、終了する（１７０８）。階層型データである場合、スキーママッピング定義内のサブスキーママッピングＩＤを参照し、使用するサブスキーママッピング定義を決定する（１７０５）。
その後、階層型データの階層の数だけスキーマの変換を再帰的に呼び出し（１７０７）、各階層でデータ項目のコピーを行う。
これにより，データ項目が階層型データである場合にもデータ項目の変換が可能になる。
【００６３】
以上のように、本発明の実施形態によれば、各システムで用いるデータスキーマ間の対応関係の定義でありかつシステム間データコピーの際の変換ルールであるスキーママッピング定義に加えて、データスキーマに基づく実データ間の対応関係を定義したインスタンスマッピング定義を用いてデータ変換を行うことで、１つのデータスキーマに対して複数変換ルールが存在する場合であっても、システム動作前に実データ毎に使用する変換ルールを決定し、コピー先データを保証することができる。これにより、データコピーに関してシステム動作時の予期せぬ障害を回避することができる。
【００６４】
さらに，データ項目間の対応関係が１対１でなく，１対多または多対１である場合や，データ項目として内部に複数のデータ項目を持つ階層型データがある場合等複雑なデータの変換を行うことも可能となる。
【００６５】
また，段階的なシステム更改をする場合には、現行システムと新システムとを共存させる必要があるが、両システム間で使用するデータの形式や粒度が異なる場合であっても本発明により事前に正確なデータコピーを保証できるため、現行システムのデータ形式や粒度に依存することなく自由に新システムを設計し開発することができるようになる。これにより、最新で効果的なシステム設計手法の採用が容易になるとともに、機能を新旧どちら側のシステムで実現しても同じ結果が得られるため段階的な移行を促進することができる。
【符号の説明】
【００６６】
１００  システム連携処理プログラム
１０１  マッピング定義編集部
１０２  システムデータ取得部
１０３  インスタンスマッピング処理部
１０４  スキーママッピング処理部
１０５  システムデータ更新部
１１０  システム連携処理用データ
１１１  システムＡデータ定義保持部
１１２  システムＢデータ定義保持部
１１３  マッピングデータ保持部
【図１】
2011248852.tif 000003
【図２】
2011248852.tif 000004
【図３】
2011248852.tif 000005
【図４】
2011248852.tif 000006
【図５】
2011248852.tif 000007
【図６】
2011248852.tif 000008
【図７】
2011248852.tif 000009
【図８】
2011248852.tif 000010
【図９】
2011248852.tif 000011
【図１０】
2011248852.tif 000012
【図１１】
2011248852.tif 000013
【図１２】
2011248852.tif 000014
【図１３】
2011248852.tif 000015
【図１４】
2011248852.tif 000016
【図１５】
2011248852.tif 000017
【図１６】
2011248852.tif 000018
【図１７】
2011248852.tif 000019