説明

システム連携装置

【課題】システム間でデータの整合性を確保するシステム連携において、同じデータ形式でもデータによって異なる変換方法を用いたデータ形式の変換が行えるデータ連携方法を得る。
【解決手段】前記データ連携方法は、データスキーマ間の対応関係を定義したスキーママッピング定義に加えて、データスキーマに基づく実データに関して、対応するデータスキーマおよび実データ間の対応関係を定義したインスタンスマッピング定義を用いることで、実データの対応関係毎に使用するスキーママッピング定義を変えたデータ形式の変換を可能とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数システム間のデータを連携するシステム連携装置に関する。
【背景技術】
【0002】
近年、顧客要望の多様化・高度化に伴い、それを解決するシステムが大規模化・複雑化している。そのため、システム更改の際、新システムへの一括移行は、技術的にもコスト的にも困難であり、段階的な移行が必要である。段階的な移行を行う場合、その過渡期には、新システムと旧システムが共存することになる。旧システムの機能の一部を新システムで使用する場合もあるため、両システムは独立ではなく、両システムで重複して保持するデータもある。そこで、両システム間の重複データの整合性を確保する仕組みが必要となる。
【0003】
データ整合性を確保する従来の方法として、データベース同期化がある。これはどちらかのデータベースに対してデータ更新があった場合に、他のデータベースにその更新分のデータ(差分データ)をコピーする方法である。これにより、複数システム間でデータを同じ状態に保つことができるため、データの整合性は確保される。
【0004】
複数システム間で利用するデータ形式が異なる場合には、データ形式の変換を行う必要がある。データ形式の変換は、データ形式の変換ルールを用いて行う。データ形式の変換ルールは、データ形式を定義するデータスキーマをシステム毎に用意し、そのデータスキーマのデータ項目情報を用いて、システム間で対応するデータ項目が明確になるようにデータ項目間の対応関係を定義(以下、「スキーママッピング定義」という。)したものである。
【0005】
特許文献1には、前記スキーママッピング定義を用いて、複数のデータベースを同期化する方法が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003−331147号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上記特許文献1記載の技術では、使用する候補となる変換ルールが複数存在する場合に適切に変換できない場合がある。例えば、あるシステムでは、“列車”というデータがあり、別のシステムでは“通常列車”と“快速列車”のように種別ごとにデータをわけて管理している状況で両システム間でデータコピーを行う場合、“列車”データから“通常列車”データへの変換ルールと“列車”データから“快速列車”データへの変換ルールが存在することになる。この場合、第二の方法ではどの変換ルールを使用するか決定できない。使用する変換ルールを決定するために、“列車”データの内容をチェックし、その内容に応じて変換ルールを決定するロジックを別途追加することも考えられる。この場合、実際にロジックを動作させるまでコピー先が決定できない。上記の列車の例では、ロジックの誤りによって“快速列車”であるべきデータを“通常列車”として扱ってしまった場合には、列車の適切な運行管理が出来ないおそれがある。このようにロジックを用いるデータコピーは、データコピー先の保証ができないため、リスク上適用することはできない。また、ロジックが複雑であるほど処理に時間がかかりパフォーマンスが低下してしまう。
【0008】
本発明の目的は、上記の点を考慮して、データスキーマに対して複数の変換ルールが存在する場合であっても、システム間のデータ整合性を確保するデータ連携が可能となる。
【課題を解決するための手段】
【0009】
上記目的を達成するため、本発明は、以下の構成を備える。即ち、複数システム間でデータ形式は異なるが内容が同じデータを重複して保持する場合に、データの整合性確保のためシステム間でデータ形式の変換およびコピーするシステム連携装置において、
各システムで扱うデータ形式が定義されたデータスキーマとデータスキーマに基づく実データの集合から各実データを一意に識別するための識別情報を保持する各システムに対応したデータ定義保持部と、
前記各システムに対応したデータ定義保持部から前記各実データの識別情報およびデータ形式の定義を取得してユーザにシステム間の実データの対応関係と、
対応関係のある実データ間の各データ項目の対応関係を定義させる画面を表示するマッピング定義編集部と、
前記マッピング定義編集部とで定義された実データの対応関係をインスタンスマッピング定義として、各データ項目の対応関係をスキーママッピング定義として保持するマッピング定義保持部と、
を有することを特徴とするデータ連携装置を備える。
【発明の効果】
【0010】
本発明によれば、データスキーマに対して複数の変換ルールが存在する場合であっても、システム間のデータ整合性を確保するデータ連携が可能となる。
【図面の簡単な説明】
【0011】
【図1】実施形態におけるシステム連携装置を表す構成図である。
【図2】実施形態におけるシステムの概略を表すハードウェア構成図である。
【図3】各システムにおけるデータスキーマ定義に基づく実データ間の対応関係を、実データが格納される配列の番号を用いて定義したインスタンスマッピング定義の一例を示す図である。
【図4】各システムにおけるデータスキーマ定義に基づく実データ間の対応関係を、実データが保持するID属性値を用いて定義したインスタンスマッピング定義の一例を示す図である。
【図5】各システムにおけるデータスキーマ定義内で定義されるデータ項目間の対応関係を定義したスキーママッピング定義の一例を示す図である。
【図6】インスタンスマッピング定義420のフォーマットを拡張し、対応関係毎に、データ変換のタイミングを指定可能にしたインスタンスマッピング定義の一例を示す図である。
【図7】インスタンスマッピング定義420のフォーマットを拡張し、対応関係毎に、変換対象のデータ項目を指定可能にしたインスタンスマッピング定義の一例を示す図である。
【図8】インスタンスマッピング定義420のフォーマットを拡張し、対応関係毎に、データ変換のタイミングおよび変換対象のデータ項目を指定可能にしたインスタンスマッピング定義の一例を示す図である。
【図9】システム連携装置が実行するデータ変換処理の流れを示すフローチャートである。
【図10】図7のインスタンスマッピング定義を用いる場合のシステム連携装置が実行するデータ変換処理の流れを示すフローチャートである。
【図11】図8のインスタンスマッピング定義を用いる場合のシステム連携装置が実行するデータ変換処理の流れを示すフローチャートである。
【図12】図9のインスタンスマッピング定義を用いる場合のシステム連携装置が実行するデータ変換処理の流れを示すフローチャートである。
【図13】図5のスキーママッピング定義のフォーマットを拡張し、1つの変換元データ項目に対して複数の変換先データ項目が対応する場合の対応関係および複数の変換元データ項目に対して1つの変換先データ項目が対応する場合の対応関係を定義可能にしたスキーママッピング定義の一例を示す図である。
【図14】図13のスキーママッピング定義を用いる場合のシステム連携装置が実行するデータ変換処理の流れのうち、図9に示すフローチャートのスキーマ変換部分において、1つの変換元データ項目を1つ以上の変換先データ項目に変換する流れを示すフローチャートである。
【図15】図13のスキーママッピング定義を用いる場合のシステム連携装置が実行するデータ変換処理の流れのうち、図9に示すフローチャートのスキーマ変換部分において、複数の変換元データ項目を1つの変換先データ項目に変換する流れを示すフローチャートである。
【図16】図5のスキーママッピング定義のフォーマットを拡張し、変換元または変換先データに含まれるデータ項目として、その内部に複数のデータ項目を持つ階層型データを指定可能にしたスキーママッピング定義の一例を示す図である。
【図17】図16のスキーママッピング定義を用いる場合のシステム連携装置が実行するデータ変換処理の流れのうち、図9に示すフローチャートのスキーマ変換部分において、変換元または変換先データに含まれるデータ項目として階層型データがある場合のスキーママッピングの流れを示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態を、図面を参照しながら説明する。なお、説明のためシステム連携対象のシステムとしてシステムA、システムBの2つのシステムを例として取りあげる。
【0013】
図2は、本発明のシステム連携に係るハードウェア構成例を示すブロック図である。
【0014】
システム連携対象であるシステムA200、システムB210およびシステム連携装置220は、ネットワーク230を介して接続される。
【0015】
システムA200は、処理装置201、入出力装置202、メモリ203、外部記憶装置204、通信装置207から構成される。
【0016】
システムB210は、処理装置211、入出力装置212、メモリ213、外部記憶装置214、通信装置217から構成される。
【0017】
システム連携装置220は、処理装置221、入出力装置222、メモリ223、外部記憶装置225、通信装置224から構成される。
【0018】
システムA200、システムB210およびシステム連携装置は、ハードウェア構成としては同じであるため、以下システムA200についてのみ説明する。
【0019】
処理装置201は、外部記憶装置204に保持されるプログラム205およびデータ206をメモリ203上に読み込んで、システムの処理を実行する。後述するシステムA200またはシステムB210における処理動作やフローチャートは、それぞれ処理装置201または202で実行される。
【0020】
入出力装置202は、ユーザからの実行指示および実行に必要なデータの入力受け付けると同時に、実行結果をユーザに表示する。
【0021】
メモリ203は、処理装置201が実行するために、プログラムおよびデータを読み込むための主記憶装置である。
【0022】
外部記憶装置204は、実行に必要なプログラム205およびデータ206を保持する補助記憶装置である。
【0023】
通信装置207は、ネットワーク230上にシステムA200のデータ206を出力したり、ネットワーク230上に流れるデータをシステムA200に入力する。
【0024】
特に、システム連携装置220の外部記憶装置225では、システム連携処理に関するプログラム226およびデータ227が保持される。具体的には図1に示す内容が保持される。
【0025】
図1は、本発明のシステム連携に係るソフトウェア構成例を示すブロック図である。
【0026】
外部記憶装置225は、システム連携処理プログラム100およびシステム連携処理用データ110を記憶している。
【0027】
システム連携処理プログラム100は、マッピング定義編集部101、システムデータ取得部102、インスタンスマッピング処理部103、スキーママッピング処理部104、システムデータ更新部105から構成されるソフトウェアプログラムである。
【0028】
マッピング定義編集部101は、システムAデータ定義保持部111およびシステムBデータ定義保持部112で保持するデータスキーマ及び識別情報を用いて、ユーザにマッピング定義編集画面を表示し、編集結果をインスタンスマッピング定義114およびスキーママッピング定義115としてマッピング定義保持部113に保持する。
【0029】
システムデータ取得部102は、システムAデータ定義保持部111(またはシステムBデータ定義保持部112)からデータスキーマ及び識別情報取得し、そのデータスキーマ及び識別情報を用いてシステムA(またはシステムB)から実データの集合を取得し、取得した実データの集合をインスタンスマッピング処理部103に送信する。
【0030】
インスタンスマッピング処理部103は、マッピング定義保持部113に保持されるインスタンスマッピング定義114のうち、システムAとシステムBの対応関係を定義したものを取得する。インスタンスマッピング定義114取得後、同定義を用いて、システムデータ取得部102から送信されたシステムA(またはシステムB)の実データ集合の各実データについて、その実データに対応するシステムB(またはシステムA)の実データを一意に識別し、それら実データのデータスキーマ間の関係から使用するスキーママッピング定義を選択し、スキーママッピング処理部104にスキーママッピング定義情報とシステムA(またはシステムB)の実データの集合を合わせて送信する。
【0031】
スキーママッピング処理部104は、インスタンスマッピング処理部103から受信したスキーママッピング定義情報を元に、マッピング定義保持部113から該当するスキーママッピング定義115を取得する。取得後、同定義を用いて、インスタンスマッピング処理部103から受信したシステムA(またはシステムB)の実データに含まれるデータ項目をシステムB(またはシステムA)の実データのデータ項目に変換し、システムB(またはシステムA)の実データの集合をシステムデータ更新部105に送信する。
【0032】
システムデータ更新部105は、システムBデータ定義保持部112(またはシステムAデータ定義保持部111)からデータスキーマ及び識別情報取得し、そのデータスキーマ及び識別情報を用いて、スキーママッピング処理104より受信したシステムB(またはシステムA)の実データの集合をシステムB(またはシステムA)のデータ領域に反映する。
【0033】
システム連携処理用データ110は、システムAデータ定義保持部111、システムBデータ定義保持部112、マッピング定義保持部113を含む。
【0034】
システムAデータ定義保持部111は、システム連携対象であるシステムAのデータ形式を定義したデータスキーマおよびデータスキーマに基づく実データの集合から各実データを一意に識別可能な識別情報を保持する。
【0035】
システムBデータ定義保持部112は、システム連携対象であるシステムBのデータ形式を定義したデータスキーマおよびデータスキーマに基づく実データの集合から各実データを一意に識別可能な識別情報を保持する。
【0036】
マッピング定義保持部113は、マッピング定義編集部101で作成した複数のインスタンスマッピング定義114およびスキーママッピング定義115を保持する。
【0037】
図3は、本発明のシステム連携処理で用いるインスタンスマッピング定義の例を示した図である。
【0038】
開発者は、データスキーマ定義に基づいて生成される実データを用いてインスタンスマッピング定義を定義する。システムAのデータスキーマ定義の例として、スキーマa301、スキーマb302、スキーマc303を考えた場合、それらのデータスキーマ定義に基づいて生成される実データは、それぞれa[0]311、a[1]312、a[2]313、b[0]314、b[1]315、b[2]316、b[3]317、c[0]318、c[1]319のようにデータスキーマ定義毎の配列データの1要素として保持させる。同様にシステムBに対しても、スキーマ341、342に対し、実データ331、332、333、334、335、336、337、338として保持させる。
【0039】
この場合、保持される実データの配列内の順番(以下配列番号)が常時固定であれば、その配列番号と配列の元となるデータスキーマ名を用いてシステムAの各実データとシステムBの各実データを一意に対応付けることができる。インスタンスマッピング定義320は、その対応付けを表形式で記述した例である。インスタンスマッピング定義は、実データ間の対応付けが表現できれば表以外の形式でも良い。
【0040】
図3において、表の1行毎にシステムAの実データおよび対応するシステムBの実データを記述し、それを必要な分だけ用意する。図3の2行目321では、システムAのデータで配列番号が1番である実データ312とシステムBのデータで配列番号が2版である実データ333が対応関係にあることを示している。なお、この場合スキーマa301に基づく実データとスキーマd341に基づく実データであるから、その2つのスキーマ定義の間の対応関係を記述したスキーママッピング定義が実データの変換のために必要となる。
【0041】
図4は、図3同様インスタンスマッピング定義の例を示した図である。
【0042】
図3では、保持される実データの配列番号が常時固定であることを想定したが、図4は、配列番号が常時固定でない場合または実データが配列データのようにまとめられておらず、実データ間に順序関係を持たない場合でも対応可能にした例である。この例では、データスキーマ401、402、403、441、442の1データ項目としてID属性を追加し、実データ毎に一意に識別可能なID値を設定する。このID値を用いてインスタンスマッピング定義を定義する。
【0043】
図の2行目421では、システムAのデータスキーマa401に基づきID値がkの実データ412とシステムBのデータスキーマd441に基づきID値がuの実データ433が対応関係にあることを示している。
【0044】
図5は、本発明のシステム連携処理で用いるスキーママッピング定義の例を示した図である。図3または図4で示したインスタンスマッピング定義320、420は、実データの対応関係を定義したものであり、その実データが持つデータ項目間の対応関係は定義していない。そこで、スキーママッピング定義は、データ項目間の対応関係を定義する。
【0045】
スキーママッピング定義は、インスタンスマッピング定義320で定義した実データが持つデータ項目について、データ項目間の対応関係を定義する。ただし、この対応関係を実データ毎に定義すると、実データの数だけその対応関係が必要になり、数が膨大になる。実データの型が同じであれば、内部に持つデータ項目も同じであるため、データ項目間の対応関係を実データの型ごとにまとめて定義する。
【0046】
図5において、システムAのデータスキーマであるスキーマa501、スキーマb505、スキーマc509の各データ項目とシステムBのデータスキーマであるスキーマd531、スキーマe536の各データ項目の間に対応関係がある場合、その対応関係をスキーママッピング定義520のように定義できる。なお、インスタンスマッピング定義同様、データ項目間の対応付けが表現できれば表以外の形式でも良い。図5の2行目521では、システムAのスキーマa501のデータ名a2とシステムBのスキーマd531のデータ名d2に対応関係があることを示している。
【0047】
図6は、図4で示したインスタンスマッピング定義420を拡張したものである。このインスタンスマッピング定義600では、図4のインスタンスマッピング定義420に対し、変換タイミング項目601を追加する。変換タイミング項目601には、対応関係毎に変換を行うタイミングを指定することができる。例えば、ユーザプログラムの処理などでデータが更新された直後に変換を行うことを意味する“データ更新直後”のようにデータ更新等のイベントをタイミングとして指定することや、2秒または4秒間隔で変換を行うことを意味する“2秒毎”、“4秒毎”のように周期的な時間をタイミングとして指定することが可能である。この拡張は図4のインスタンスマッピング定義420だけでなく、図3のインスタンスマッピング定義320に対しても可能である。
【0048】
図7は、図4で示したインスタンスマッピング定義420を拡張したものである。このインスタンスマッピング定義700では、図4のインスタンスマッピング定義420に対し、変換対象データ項目701を追加する。変換対象データ項目701には、対応関係毎に変換対象とするデータ項目を指定することができる。例えば、実データが持つ全データ項目を変換対象することを意味する“全データ”を指定することや、ユーザプログラムの処理などで更新があったデータ項目のみを変換対象とすることを意味する“差分データ”のように特定のデータ項目を対象とするような指定をすることが可能である。この拡張は図4のインスタンスマッピング定義420だけでなく、図3または図6のインスタンスマッピング定義320、600に対しても可能である。 図8は、図6で示した変換タイミング項目601と図7で示した変換対象データ項目701をともに図4に示すインスタンスマッピング定義420に追加したものである。図6および図7同様に図3のインスタンスマッピング定義に対しても追加可能である。 図9は、図3または図4に示すインスタンスマッピング定義320、420を用いる際の本発明のシステム連携処理の流れを示すフローチャートである。図9では、システムAからシステムBに対してデータ変換およびコピーを行う流れを例として説明する。
【0049】
まず、本システム連携処理を開始し(900)、システムAからデータを取得する(901)。データ取得後、システムAのデータに関する対応関係情報が定義されたインスタンスマッピング定義を読み込む(902)。システムAから取得したデータの1つを抽出し(903)、最後までデータを抽出したかどうかを判断する(904)。データが抽出できた場合、読み込んだインスタンスマッピング定義のうち、抽出したデータが定義されている行を読み込む。
【0050】
そして、抽出済みのシステムAのデータのスキーマと、読み込んだ行内で定義されるシステムBのデータのスキーマの関係が定義されているスキーママッピング定義を全スキーママッピング定義の中から検索し,該当するものを使用するスキーママッピング定義として決定する(905)。
【0051】
その後、上記で決定されたスキーママッピング定義を読み込む(906)。
【0052】
読み込んだスキーママッピング定義の情報を元に抽出済みのシステムAの実データに含まれる各データ項目を,システムBの実データに含まれるデータ項目にコピー(変換)する(907)。
【0053】
その後903に戻る。最終データの処理が終了したら、変換後のデータを一括してシステムBのデータに反映し(908)、その後終了する(909)。なお、上記のように変換後のデータを最後にまとめて一括で反映する以外に、1データ変換のたびにシステムBのデータに反映することも可能である。
【0054】
図10は、図6に示すインスタンスマッピング定義600を用いる際の本発明のシステム連携処理の流れを示すフローチャートである。基本的なフローは図9と同じであるが、使用するスキーママッピング定義を決定(1005)後に、インスタンスマッピング定義600の変換タイミング項目601情報を用いるデータ変換を行うかどうかのタイミングのチェックの処理(1006)を追加している。これにより、データ毎に変換のタイミングを調整することができる。例えば、データ更新の時間間隔が短いデータについては、頻繁に整合性を確保できるように、データ変換のタイミングを短い時間に設定し、時間間隔が長いデータについては、データ変換のタイミングを長い時間に設定することで、全データ同じタイミングで変換するのではなく、データ毎に更新頻度に応じたデータ変換タイミングを変えることができる。 図11は、図7に示すインスタンスマッピング定義700を用いる際の本発明のシステム連携処理の流れを示すフローチャートである。基本的なフローは図9と同じであるが、インスタンスマッピング定義700の変換対象データ項目701情報を用いて、使用するスキーママッピング定義を決定(1105)後に、変換対象データ項目701の値が“差分データ”かどうかをチェックし(1106)、“差分データ”である場合にはシステムAのデータのうち更新有のデータを抽出する(1107)処理を追加している。これにより、データ毎に変換対象とするデータ項目を調整できる。例えば、更新がないデータ項目を多く持つデータについては、更新があったデータ項目のみ変換できるように、変換対象データ項目を“差分データ”と設定し、更新がないデータ項目をあまり持たないデータについては、更新があったかどうかをチェックせず全データを変換できるように変換対象データ項目を“全データ”と設定することで、不必要な変換を減らすことができる。
【0055】
図12は、図8に示すインスタンスマッピング定義800を用いる際の本発明のシステム連携処理の流れを示すフローチャートである。図10および図11において追加した処理をそれぞれ追加したフローとなっている。インスタンスマッピング定義800では、変換タイミング801と変換対象データ項目802を同時に指定することができる。例えば更新有の差分データを更新頻度に応じたタイミングで変換するように変換対象データ項目802と変換タイミング801を指定することができるため、データ変換を無駄なく最小限な抑えることができるようになる。これにより、応答速度向上やメモリ使用量の削減に繋がるため、リアルタイム処理が必要で応答速度やメモリ使用量の制約が厳しいシステムに対しても有効である。
【0056】
図13は,1つのデータ項目に対し,変換元のデータ項目または変換先のデータ項目が複数対応する場合のスキーママッピング定義の例を示したものである。
【0057】
図13は、図5で示したスキーママッピング定義520を拡張したスキーママッピング定義の例1300を示した図である。変換元データのデータ項目1つに対し、変換先データのデータ項目が複数対応する場合に前記スキーママッピング定義1300を用いる。図13では、データ項目間のマッピングを定義する部分1301内で、変換元データのデータ項目1302に対し、複数の変換先データのデータ項目1303、1304、1305が対応することを定義している。そして対応関係毎に、変換元データのデータ項目1302の中で、変換先データのデータ項目1303または1304または1305が現れる位置を開始位置1306として、変換先データのデータ項目のサイズをサイズ1307として指定する。この定義により、1つの変換元データのデータ項目に対して複数の変換先データのデータ項目が対応する場合の対応関係および複数の変換元データのデータ項目に対して1つの変換先データのデータ項目が対応する場合の対応関係を定義可能になる。
【0058】
図14は、図13に示すスキーママッピング定義1300を用いて,変換元のデータ項目1つを複数の変換先データ項目に変換する流れを示すフローチャートであり、図9に示す本発明全体のフローチャートのスキーマ変換907部分の詳細を示したものである。図14では、変換元データのデータ項目1つを1つ以上の変換先データのデータ項目に変換する流れを示している。スキーマ変換開始後(1401)、変換元データに含まれるデータ項目を1つ抽出する(1402)。この際、データ項目が存在しないか、またはすべてのデータ項目を抽出済みかどうか判断し(1403)、データ項目が存在しないか、または、すべてのデータ項目を抽出済みの場合は処理を終了する。データが抽出できた場合、スキーママッピング定義を参照し、抽出したデータ項目に対応する変換先データ項目が1つ以上あるかどうか判断する(1404)。抽出したデータ項目に対応する変換先データ項目が存在しない場合、1402に戻る。抽出したデータ項目に対応する変換先データのデータ項目が1つ以上ある場合には、前記図13で示したスキーママッピング定義で定義された開始位置1306およびサイズ1307を参照し、変換元データのデータ項目の指定された開始位置から指定されたサイズ分のデータを取得し(1405)、変換先データのデータ項目にコピーする(1406)。そして再び1404に戻り、変換先データ項目数分繰り返す。これにより変換元データの1つのデータ項目を変換先データの複数のデータ項目に変換可能になる。
【0059】
図15は,図13に示すスキーママッピング定義1300を用いて,変換元の複数のデータ項目を1つの変換先データ項目に変換する流れを示すフローチャートであり、図9に示す本発明全体のフローチャートのスキーマ変換部分907の詳細を示したものである。図15では、1つ以上の変換元データ項目を1つの変換先データのデータ項目に変換する流れを示している。スキーマ変換開始後(1501)、変換元データに含まれるデータ項目のうち、スキーママッピング定義1300を参照し、変換先データのデータ項目が同じであるものが1つ以上あるかどうか判断する(1502)。変換先データのデータ項目が同じである変換元データ項目が存在しない場合は終了する(1506)。変換先データのデータ項目が同じであるものが1つ以上ある場合、それらすべてを抽出する(1503)。この際、データ項目が存在しないか、または、すべてのデータ項目を抽出済みかどうか判断し(1504)、データ項目が存在しないか、または、すべてのデータ項目を抽出済みの場合、終了する(1506)。1つ以上のデータ項目を抽出した場合、前記図13で示したスキーママッピング定義で定義された開始位置1306およびサイズ1307を参照し、変換元データのデータ項目毎に、それぞれ指定された開始位置から指定されたサイズ分のデータを取得し、1つのデータ項目として結合し,変換先データ項目にコピー(変換)する(1505)。その後1502に戻り、変換元データ項目をすべて抽出するまで繰り返す。これにより,変換元データの複数のデータ項目を変換先データの1つのデータ項目に変換可能になる。
【0060】
図16は,変換元データまたは変換先データに含まれるデータ項目のうち,その内部に複数のデータ項目をもつ階層型データを変換する場合のスキーママッピング定義の例を示したものである。
【0061】
図16は、図5で示したスキーママッピング定義520を拡張したスキーママッピング定義の例を示した図である。このスキーママッピング定義は、変換元データまたは変換先データに含まれるデータ項目として、その内部に複数のデータ項目を持つ階層型データを指定する場合に用いる。まず、スキーママッピング定義1600にて、1601の対応関係定義に示すように階層型データ1602、1603をデータ型部分に記述する。ここでデータ型に階層型データを指定した場合、同レコード内のサブスキーママッピングID部分に、1602、1603で指定した階層型データ同士の対応関係が定義されたサブスキーママッピング定義のID1605を指定する。サブスキーママッピング定義でも、スキーママッピング定義同様データ項目間の対応関係を定義するが、1604の1つの対応関係定義に示すようにスキーマ部分には1602、1603で指定した階層型データのデータ型を指定する。サブスキーママッピング定義の対応関係で定義するデータ項目のデータ型がさらに階層型データである場合には、再度データ型に階層型データ1606、1607を指定し、それら階層型データ間の対応関係を定義するサブスキーママッピングIDを指定する。
【0062】
図17は、図16に示すスキーママッピング定義1600を用いて,変換元のデータに含まれる階層型データ項目を変換先のデータに含まれる階層型データ項目に変換する流れを示すフローチャートであり,図9に示す本発明全体のフローチャートのうち、図9に示すフローチャートのスキーマ変換部分907の詳細を示したものである。図17では、変換元データまたは変換先データに含まれるデータ項目として階層型データがある場合のスキーママッピングの流れを示したものである。スキーマ変換開始後(1701)、変換元データに含まれるデータ項目を1つ抽出する(1702)。この際、データ項目が存在しないか、または、すべてのデータ項目を抽出済みかどうか判断し(1703)、データ項目が存在しないか、または、すべてのデータ項目を抽出済みであれば処理を終了する。データが抽出できた場合、スキーママッピング定義を参照し、抽出したデータ項目のデータが階層型であるかどうか判断する(1704)。階層型データでない場合、変換先データ項目にデータをコピーして(1707)、終了する(1708)。階層型データである場合、スキーママッピング定義内のサブスキーママッピングIDを参照し、使用するサブスキーママッピング定義を決定する(1705)。
その後、階層型データの階層の数だけスキーマの変換を再帰的に呼び出し(1707)、各階層でデータ項目のコピーを行う。
これにより,データ項目が階層型データである場合にもデータ項目の変換が可能になる。
【0063】
以上のように、本発明の実施形態によれば、各システムで用いるデータスキーマ間の対応関係の定義でありかつシステム間データコピーの際の変換ルールであるスキーママッピング定義に加えて、データスキーマに基づく実データ間の対応関係を定義したインスタンスマッピング定義を用いてデータ変換を行うことで、1つのデータスキーマに対して複数変換ルールが存在する場合であっても、システム動作前に実データ毎に使用する変換ルールを決定し、コピー先データを保証することができる。これにより、データコピーに関してシステム動作時の予期せぬ障害を回避することができる。
【0064】
さらに,データ項目間の対応関係が1対1でなく,1対多または多対1である場合や,データ項目として内部に複数のデータ項目を持つ階層型データがある場合等複雑なデータの変換を行うことも可能となる。
【0065】
また,段階的なシステム更改をする場合には、現行システムと新システムとを共存させる必要があるが、両システム間で使用するデータの形式や粒度が異なる場合であっても本発明により事前に正確なデータコピーを保証できるため、現行システムのデータ形式や粒度に依存することなく自由に新システムを設計し開発することができるようになる。これにより、最新で効果的なシステム設計手法の採用が容易になるとともに、機能を新旧どちら側のシステムで実現しても同じ結果が得られるため段階的な移行を促進することができる。
【符号の説明】
【0066】
100 システム連携処理プログラム
101 マッピング定義編集部
102 システムデータ取得部
103 インスタンスマッピング処理部
104 スキーママッピング処理部
105 システムデータ更新部
110 システム連携処理用データ
111 システムAデータ定義保持部
112 システムBデータ定義保持部
113 マッピングデータ保持部

【特許請求の範囲】
【請求項1】
複数システム間でデータ形式は異なるが内容が同じデータを重複して保持する場合に、データの整合性確保のためシステム間でデータ形式の変換およびコピーするデータ連携装置において、
各システムで扱うデータ形式が定義されたデータスキーマとデータスキーマに基づく実データの集合から各実データを一意に識別するための識別情報を保持する各システムに対応したデータ定義保持部と、前記各システムに対応したデータ定義保持部から前記各実データの識別情報およびデータ形式の定義を取得してユーザにシステム間の実データの対応関係と、対応関係のある実データ間の各データ項目の対応関係を定義させる画面を表示するマッピング定義編集部と、
前記マッピング定義編集部とで定義された実データの対応関係をインスタンスマッピング定義として、各データ項目の対応関係をスキーママッピング定義として保持するマッピング定義保持部と、
を有することを特徴とするデータ連携装置。
【請求項2】
前記データ定義保持部に保持されるデータスキーマ及び識別情報を用いて対象システムから実データの集合を取得するシステムデータ取得部と、
前記システムデータ取得部でひとつのシステムから取得した実データを前記インスタンスマッピング定義を用い、他のシステムの実データを一意に識別し、それら実データのデータスキーマ間の関係から前記マッピング定義保持部に保持されているスキーママッピング定義を選択するインスタンスマッピング処理部と、
前記インスタンスマッピング処理部から前記選択されたスキーママッピング定義情報とそれらの実データを合わせて受信し、前記スキーママッピング定義情報を元に前記マッピング定義保持部から該当するスキーママッピング定義を取得するとともに、同定義を用いて、受信した前記ひとつのシステムの実データに含まれるデータ項目を前記他のシステムの実データのデータ項目に変換するスキーママッピング処理部と、
前記スキーママッピング処理部からの変換後実データの集合を受信し、前記データ定義保持部に保持されるデータスキーマ及び識別情報を用いて対象システムに対して受信した実データの集合を送信するシステムデータ更新部と、
を有することを特徴とするデータ連携装置。
【請求項3】
前記データ定義保持部において、
前記実データの集合が、配列データである場合に、前記配列データの配列番号と前記データスキーマのスキーマ名称を前記識別情報として用いることを特徴とする請求項1に記載するデータ連携装置。
【請求項4】
前記データ定義保持部において、
前記データスキーマにデータ項目としてID属性を追加し、前記データスキーマに基づく実データのID属性に対し、あらかじめ実データを一意に識別可能なID値を設定しておき、前記ID値を前記識別情報として用いることを特徴とする請求項1に記載するデータ連携装置。
【請求項5】
前記データ連携装置において、前記インスタンスマッピング定義にデータ形式の変換タイミングを指定する項目を追加し、前記インスタンスマッピング処理において、前記データ形式の変換タイミングを決定する処理を追加し、
前記インスタンスマッピング処理において決定した前記データ形式の変換タイミングを用いて、実データの対応関係毎にタイミングを変えて前記スキーママッピング処理を行うことを特徴とする請求項2に記載するデータ連携装置。
【請求項6】
前記データ連携装置において、前記インスタンスマッピング定義にデータ形式の変換対象データ項目を指定する項目を追加し、前記インスタンスマッピング処理において、前記データ形式の変換対象データ項目を決定する処理を追加し、
前記インスタンスマッピング処理において決定した前記データ形式の変換対象データ項目を用いて、実データの対応関係毎に全データ項目を対象または更新有の差分データ項目のみ対象として前記スキーママッピング処理行うことを特徴とする請求項2または請求項5に記載するデータ連携装置。
【請求項7】
請求項1に記載のデータ連携装置において、
変換元データのデータ項目に対して、変換先データのデータ項目が複数対応する場合、
前記データ定義保持部は、
前記スキーママッピング定義において、前記変換元データのデータ項目と、対応する前記変換先データの開始位置および大きさとを対応付けて記憶し、
前記スキーママッピング処理部は、
前記変換元データの各データ項目について、前記開始位置から前記大きさで指定された量のデータを取得し、前記スキーママッピング定義における前記変換先の対応するデータ項目にコピーすること
を特徴とするデータ連携装置。
【請求項8】
請求項7に記載のデータ連携装置において、
変換先データのデータ項目に対して、変換元データのデータ項目が複数対応する場合、
前記スキーママッピング処理部は、前記複数の変換元データのデータ項目を結合して、前記スキーママッピング定義における前記変換先の対応するデータ項目にコピーすること
を特徴とするデータ連携装置。
【請求項9】
請求項1に記載のデータ連携装置において、
変換元データおよび変換先データに含まれるデータ項目が、さらに複数のデータ項目をもつ階層型データ項目である場合、
前記階層型データ項目に関するスキーママッピングをサブスキーママッピングとして定義し、前記サブスキーママッピングに一意なIDを付与し、
前記データ定義保持部において、
前記スキーママッピング定義に、スキーママッピングを一意に識別するIDを指定する項目と、変換元データおよび変換先データに含まれるデータ項目のデータ型を指定する項目と、前記サブスキーママッピングのIDを指定する項目を追加し、
前記スキーママッピング処理部において、
前記階層型データ項目のデータの変換時に、前記サブスキーママッピングのIDを指定して再帰的にスキーママッピング処理を実行する
ことを特徴とするデータ連携装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2011−248852(P2011−248852A)
【公開日】平成23年12月8日(2011.12.8)
【国際特許分類】
【出願番号】特願2010−267975(P2010−267975)
【出願日】平成22年12月1日(2010.12.1)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】