JP2004259066A - Data source integrating program, system and method - Google Patents
Data source integrating program, system and method Download PDFInfo
- Publication number
- JP2004259066A JP2004259066A JP2003050094A JP2003050094A JP2004259066A JP 2004259066 A JP2004259066 A JP 2004259066A JP 2003050094 A JP2003050094 A JP 2003050094A JP 2003050094 A JP2003050094 A JP 2003050094A JP 2004259066 A JP2004259066 A JP 2004259066A
- Authority
- JP
- Japan
- Prior art keywords
- data
- data source
- integrated
- source
- search
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、各種データの共有化、管理、有効活用を実現するプログラム及びシステム並びに方法に関する。
【0002】
【従来の技術】
データの共有化、管理、有効活用を目的として多数のデータソースが存在する。データソースには、例えばLDAP(Lightweight Directory Access Protocol)ディレクトリ、オブジェクト指向データベース、RDB(Relational Database)、XML(Extensible Markup Language)データベースなどの各種データベース、テキストファイル、CSV(Comma Separated Value)ファイル、バイナリファイルなどの各種ファイル、ファイルシステムなど様々な種類があり、様々な方式でデータが管理される。
【0003】
図20に示すように、ある記録装置28aに記録されているあるデータソース1a内のデータをオブジェクト2aに変換して管理する技術は、すでに提案されている。この技術を用いることにより、各記録装置28a〜28cに記録されている各データソース1a〜1cについて個別にデータをオブジェクト化し、管理することができる。
【0004】
【特許文献1】
特開2000−242542号公報
【0005】
【特許文献2】
特開2000−242541号公報
【0006】
【発明が解決しようとする課題】
複数の異なる種別のデータソースを扱うシステムは増加している。このようなシステムにおけるデータ管理には、以下のような問題があり効率的なデータ管理が困難である。
【0007】
第1に、システムは、複数の種類のデータソースを扱う場合、目的とするデータの種類及びそのデータの格納先を常に把握しておく必要があるという問題がある。
【0008】
第2に、システムは、あるデータの更新が発生した場合に、毎回このデータと関係する全てのデータソースに対して更新処理を別々に行う必要があり、処理数が多くなり処理速度が遅くなる。
【0009】
第3に、システムは、種類の異なる複数のデータソースに対して別々にトランザクションの管理、アクセス制御を行う必要がある。
【0010】
例えば、上記図20に示すように、異なる種類の複数のデータソース1a〜1cについて、個別にデータをオブジェクト化した場合、システムは、目的のデータがどのデータソースから生成されたオブジェクトに格納されているかを常に把握しておく必要がある。また、システムは、あるデータの更新が要求された場合、その更新の要求されたタイミングで、複数種類のデータソース1a〜1cから生成された各オブジェクト2a〜2cのうち更新されるデータに関係する全てのオブジェクトに対して更新処理が実行される。このため、多数の処理が集中し、処理速度が遅くなる場合がある。
【0011】
本発明は、以上のような実情に鑑みてなされたもので、複数のデータソースの内容を統一して管理し、データ管理を効率化するデータソース統合プログラム及びシステム並びに方法を提供することを目的とする。
【0012】
【課題を解決するための手段】
本発明を実現するにあたって講じた具体的手段について以下に説明する。
【0013】
本発明は、コンピュータに、命令発信元からデータ操作命令を受け付ける受付機能、受付機能により受け付けられた操作命令にしたがって、予め記録手段に記録された複数の異なる種別のデータソースからデータを生成する生成機能を実現させ、データソースは、管理されるデータ及び管理形態の情報を含むことを特徴とするデータソース統合プログラムである。
【0014】
本発明では、複数のデータソースの内容を統合した統合データが生成され、この統合データに対してデータ操作が行われる。これにより、複数のデータソースの内容が統一して管理され、データ管理を効率化できる。
【0015】
なお、上記機能を実現する手段を、計算機システムに具備するとしてもよい。
【0016】
上記データソース統合プログラムで実施されるデータの管理方法を実施することにより、同様の作用効果が得られる。
【0017】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態について説明する。
【0018】
(第1の実施の形態)
本実施の形態においては、種類の異なる複数のデータソースに散在するデータを所定の形式の統合オブジェクトに変換し、統一的に管理するデータソース統合システムについて説明する。
【0019】
図1は、本実施の形態に係るデータソース統合システムの構成の一例を示すブロック図である。図2は、オブジェクト処理部の詳細例を示すブロック図である。
【0020】
データソース統合システム3は、アプリケーション4a〜4cとデータソースA〜Cを記録する記録装置27A〜27Cの間で動作する。アプリケーション4a〜4cは、命令発信元であるが、例えばユーザなどが命令発信元であってもよい。
【0021】
本実施の形態においては、アプリケーション4a〜4cとデータソースA〜Cが3つの場合について説明するが、アプリケーションは一以上であればよく、データソースは複数であればよい。
【0022】
ここで、データソースとは管理される実際のデータ及びその管理形態に関する情報をいい、前述のように例えばLDAP(Lightweight Directory Access Protocol)ディレクトリ、オブジェクト指向データベース、RDB(Relational Database)、XML(Extensible Markup Language)データベースなどの各種データベース、テキストファイル、CSV(Comma Separated Value)ファイル、バイナリファイルなどの各種ファイルなど様々な種類がある。また、管理形態に関する情報とは、管理されるデータの関連付けの情報やデータの取得、書き込みなどに必要な情報(データ管理に必要となる情報)をいい、例えばLDAPではオブジェクトクラス間での関連付けの情報やオブジェクトクラスとそのクラスに含まれる属性との関連付けの情報などがあり、後者の例ではinetOrgPersonクラスでは、そのクラスとそのクラスに含まれるcn、uid、ouなどの属性とが関連付けの情報がある。また、RDBではテーブル間での関連付けやテーブルとそのテーブルに含まれる列との関連付けの情報などがあり、表11などでは後者の例では社員テーブルとそれに含まれるNUMBER、TELなどの関連付けの情報がある。
【0023】
データソース統合システム3は、記録媒体6に記録されているデータソース統合プログラム6aを読み込み、実行することにより、操作内容解析部7、アクセス制御部8、オブジェクト処理部9、書込管理部10、トランザクション管理部11、データソースアクセス部12a〜12cとしての機能を実現する。また、データソース統合システム3は、記録装置13a〜13cを具備する。
【0024】
データソース統合システム3の処理形態は、データ操作命令を受け付け、必要に応じて記録装置13bに記録されている定義データ14を参照しつつ処理を実行するインタプリタ型である。
【0025】
操作内容解析部7は、命令発信元からデータ操作命令を受け付け、データ操作命令の示す操作内容を解析し、操作内容をアクセス制御部8に提供する。
【0026】
また、操作内容解析部7は、オブジェクト処理部9からアクセス制御部8を経由して受け付けた各種データ又はメッセージを命令発信元に提供する。
【0027】
アクセス制御部8は、記録装置13aに記録されているアクセス制御データ15を参照し、操作内容解析部7で解析された操作内容について命令発信元が権限を有するか否か判断する。
【0028】
アクセス制御部8は、権限を有すると判断した場合、オブジェクト処理部9に操作内容を提供し、その操作内容に応じた結果をオブジェクト処理部9から受け付け、操作内容解析部7に提供する。
【0029】
一方、アクセス制御部8は、権限を有しないと判断した場合、権限がない旨のメッセージを操作内容解析部7経由で命令発信元に提供する。
【0030】
オブジェクト処理部9は、図2に示すように、定義データ読込部9a、検索部9b、生成部9c、更新部9d、登録部9e、削除部9f、排他制御部9g、書込部9hを具備する。
【0031】
定義データ読込部9aは、オブジェクト処理部9の他の部分からの要求に応じて、記録装置13bに記録されている定義データ14を読み込み、読み込んだ定義データ14を要求先に返す。
【0032】
検索部9bは、操作内容解析部7からアクセス制御部8を経由して受け付けた操作内容がデータの検索要求を表す場合、記録装置13cに対して検索対象のデータを含む統合オブジェクトを検索する。
【0033】
検索部9bは、記録装置13cから検索対象のデータを含む統合オブジェクトを検索できた場合、検索された統合オブジェクトをアクセス制御部8、操作内容解析部7経由で命令発信元に提供する。
【0034】
一方、検索部9bは、検索対象のデータを含む統合オブジェクトが記録装置13cに未記録であり検索できなかった場合、生成部9cに操作内容を提供する。
【0035】
生成部9cは、検索対象のデータを含む統合オブジェクトが記録装置13cに記録されていない場合、定義データ読込部9a経由で記録装置13bに記録されている定義データ14を読み込むとともにトランザクション管理部11及びデータソースアクセス部12a〜12c経由でデータソースA〜Cを検索する。
【0036】
また、生成部9cは、定義データ14で定義されている統合クラスとデータソースA〜Cの検索結果とに基づいて、検索対象のデータを含む統合オブジェクトを生成し、生成された統合オブジェクトをアクセス制御部8、操作内容解析部7経由で命令発信元に提供するとともに記録装置13cに記録する。
【0037】
更新部9dは、操作内容が統合オブジェクトの更新要求を表す場合、データ操作命令の指定する更新内容にしたがって記録装置13cの統合オブジェクトの内容を更新する。
【0038】
また、更新部9dは、更新処理の結果を示すメッセージをアクセス制御部8、操作内容解析部7経由で命令発信元に提供する。
【0039】
登録部9eは、操作内容が統合オブジェクトの登録要求を表す場合、データ操作命令で指定されているデータを含む統合オブジェクトを記録装置13cに記録する。
【0040】
また、登録部9eは、登録処理の結果を示すメッセージをアクセス制御部8、操作内容解析部7経由で命令発信元に提供する。
【0041】
削除部9fは、操作内容がデータの削除要求を表す場合、データ操作命令で削除対象とされるデータを記録装置13cから削除する。
【0042】
また、削除部9fは、削除処理の結果を示すメッセージをアクセス制御部8、操作内容解析部7経由で命令発信元に提供する。
【0043】
排他制御部9gは、記録装置13cに記録されている統合オブジェクトに対する操作が発生した場合にデータの整合性を確保するための排他制御を実行する。
【0044】
すなわち、排他制御部9gは、検索部9b、生成部9c、更新部9d、登録部9e、削除部9fによって記録装置13cに記録されている統合オブジェクトに対する作業がおこなわれている場合、他の部分からの作業を禁止(ロック)する。
【0045】
書込部9hは、記録装置13cに記録されている統合オブジェクトの内容をデータソースA〜Cに反映させる時点において、書込管理部10から命令を受け付けると、記録装置13cに記録されている統合オブジェクトを読み出し、書込管理部10に返す。
【0046】
書込管理部10は、所定のイベントが発生した場合に、オブジェクト処理部9の書込部9hに命令を提供し、その返答として記録装置13cに記録されている統合オブジェクトを受け付け、受け付けた統合オブジェクトの内容をデータソースA〜Cに反映させるための操作命令をトランザクション管理部11に提供する。
【0047】
所定のイベントの発生とは、例えば所定の時間になった場合、所定の時間が経過した場合、アプリケーションからデータソースA〜Cへの書込要求を受け付けた場合などがある。
【0048】
トランザクション管理部11は、オブジェクト処理部9の生成部9cからの検索命令及び書込管理部10からの操作命令などのデータソース操作命令を受け付け、記録装置13bに記録された定義データ14に基づいて、どのデータソースにどのデータが記録されているかを把握し、データソース操作命令をデータソースアクセス部12a〜12cに振り分ける。
【0049】
トランザクション管理部11は、検索命令に対する検索結果をデータソースアクセス部12a〜12cから受け付けた場合、検索結果を生成部9cに提供する。
【0050】
各データソースアクセス部12a〜12cは、トランザクション管理部11からデータソース操作命令を受け付けると、記録装置13bの定義データ14を読み出す。
【0051】
また、各データソースアクセス部12a〜12cは、定義データ14に基づいて、データソース操作命令を自己に対応するデータソースA〜Cに応じた操作命令に変換し、変換後の操作命令を各データソースA〜Cに提供する。
【0052】
各データソースA〜Cでは、変換後の操作命令に応じた処理が実行され、結果が各データソースアクセス部12a〜12cに返される。
【0053】
図3は、データソースA〜Cと統合クラスとの関係の一例を示す図である。
【0054】
データソースAには、「社員番号」、「氏名」、「所属」が記録されており、データソースBには「社員番号」、「生年月日」、「電話番号」が記録されており、データソースCには「氏名」、「趣味」、「免許情報」が記録されている。
【0055】
データソースA〜Cの内容を統合するために、統合クラスとして社員クラス16が定義されている。社員クラス16の属性としては、データソースA〜Cに含まれる「社員番号」、「氏名」、「所属」、「社員番号」、「生年月日」、「電話番号」、「趣味」、「免許情報」が定義される。
【0056】
なお、統合クラスの属性として、他のクラスを参照するための参照関係が定義されてもよい。また、統合クラスの属性として、データソースに記録されている値から属性値を算出するための関数が定義されてもよい。
【0057】
統合オブジェクトである社員オブジェクト17は、統合クラスに基づいて生成される。
【0058】
図4は、複数の統合クラス間の参照関係が定義される統合クラスの一例を示す図である。
【0059】
統合クラスとして、組織クラス18と社員クラス16とが定義される。組織クラス18は組織クラス18を参照している。これにより、組織の階層関係を表すことができる。また、各組織クラス18は社員クラス16を参照している。これにより、各組識に属する社員を表すことができる。
【0060】
この例では、組織クラス18の属性「上位組織」に、組織クラス18に基づいて生成される0(上位組織なし)又は一つの組織クラスを定義する。
【0061】
また、組織クラスの属性「組織メンバ」に、社員クラス16に基づいて生成される0以上の社員クラスを定義する。
【0062】
図5は、データソース統合システム3の動作概念の第1例を示すブロック図である。
【0063】
この図5では、記録装置13cに記録されていないデータの検索が要求された場合の動作の概要を示している。なお、この図5では、異なるアプリケーション4a、4bから同じ統合オブジェクトの検索が要求された場合を示しているが、同一のアプリケーションから同じ統合オブジェクトの検索が複数回要求された場合も同様である。
【0064】
ステップA1において、データソース統合システム3の操作内容解析部7は、アプリケーション4aから社員番号「123」の社員オブジェクト17aの検索要求を受け付ける。
【0065】
ステップA2において、データソース統合システム3の検索部9bは、記録装置13cに対して社員番号「123」の社員オブジェクト17aを検索する。
【0066】
ここで、この図5の例では、この時点で社員番号「123」の社員オブジェクトが記録装置13cに記録されていないとする。
【0067】
ステップA3において、データソース統合システム3の生成部9cは、複数のデータソースA〜Cに対して社員クラスに基づいて社員番号「123」の社員オブジェクト17aの生成に必要なデータの検索を行い、社員番号「123」の社員オブジェクト17aを生成する。
【0068】
ステップA4において、データソース統合システム3の生成部9cは、生成された社員番号「123」の社員オブジェクト17aを、アクセス制御部8及び操作内容解析部7経由でアプリケーション4aに返すとともに記録装置13cに記録する。
【0069】
ステップA5において、データソース統合システム3の操作内容解析部7は、アプリケーション4bから社員番号「123」の社員オブジェクト17aの検索要求を受け付ける。
【0070】
ステップA6において、データソース統合システム3の検索部9bは、記録装置13cに対する社員番号「123」の社員オブジェクト17aを検索する。
【0071】
なお、この時点で社員番号「123」の社員オブジェクト17aはステップA4によって記録装置13cに記録されているため、検索部9bは、記録装置13cから社員番号「123」の社員オブジェクト17aを検索できる。
【0072】
ステップA7において、データソース統合システム3の検索部9bは、検索された社員番号「123」の社員オブジェクト17aをアプリケーション4bに返す。
【0073】
このように、データソースA〜Cをアクセスしなくても、データソース統合システム3内の統合オブジェクトをアプリケーション4bに返すことで、検索を高速に行うことができる。
【0074】
図6は、データソース統合システム3の動作概念の第2例を示すブロック図である。
【0075】
この図6では、統合クラスにおいてクラス間の参照関係が定義されている場合の動作の概要を示している。
【0076】
ステップB1において、データソース統合システム3の操作内容解析部7は、組織名「総務課」の組織オブジェクト19aにおける「上位組織」の検索要求をアプリケーション4aから受け付ける。
【0077】
ここで、この図6の例では、この時点で組織名「総務課」の組織オブジェクト19aは、記録装置13cに記録されているとする。また、組織名「総務課」の組織オブジェクト19aには、上位組織として「総務部」が定義されているとする。
【0078】
ステップB2において、データソース統合システム3の検索部9bは、記録装置13cに対する組織名「総務課」の組織オブジェクト19aを検索し、組織名「総務課」の組織オブジェクト19aを取得する。
【0079】
ステップB3において、検索部9bは、組織名「総務課」の組織オブジェクト19aの「上位組織」で指定されている「総務部」の組織オブジェクト19bを検索する。
【0080】
ここで、この図6の例では、この時点で組織名「総務部」の組織オブジェクト19bは記録装置13cに記録されていないとする。
【0081】
ステップB4において、データソース統合システム3の生成部9cは、複数のデータソースA〜Cを検索し、組織名「総務部」の組織オブジェクト19bを生成する。
【0082】
ステップB5において、データソース統合システム3の生成部9cは、生成された組織名「総務部」の組織オブジェクト19bをアプリケーション4aに返すとともに、記録装置13cに記録する。
【0083】
図7は、データソース統合システム3の動作概念の第3例を示すブロック図である。
【0084】
この図7では、統合オブジェクトに対する操作の排他制御を行う場合の動作の概要を示している。
【0085】
排他レベルとしては、検索禁止、更新禁止、登録禁止、削除禁止などがある。なお、ここでは、社員オブジェクト17aの更新が要求された場合を例として説明するが、統合オブジェクトの検索、登録、削除などが要求された場合も同様である。
【0086】
ステップC1において、データソース統合システム3の操作内容解析部7は、アプリケーション4aから社員番号「123」の社員オブジェクト17aの第1更新要求を受け付ける。
【0087】
ステップC2において、データソース統合システム3の排他制御部9gは、第1更新要求のみに対して社員番号「123」の社員オブジェクト17aを占有させる。
【0088】
ステップC3において、データソース統合システム3の更新部9dは、記録装置13cに記録されている社員番号「123」の社員オブジェクト17aを第1更新命令にしたがって更新する。
【0089】
ここで、この図7の例では、第1更新命令に基づく社員番号「123」の社員オブジェクト17aの更新中に、アプリケーション4bから社員番号「123」の社員オブジェクト17aの第2更新要求が発信されたとする。
【0090】
ステップC4において、データソース統合システム3の操作内容解析部7は、アプリケーション4bから社員番号「123」の社員オブジェクト17aの第2更新要求を受け付ける。
【0091】
ステップC5において、データソース統合システム3の排他制御部9gは、第1更新要求のみに対して社員番号「123」の社員オブジェクト17aを占有させるため、第2更新要求を拒否する。
【0092】
ステップC6において、データソース統合システム3の更新部9dは、エラーメッセージをアプリケーション4bに提供する。
【0093】
なお、排他制御部9gは、同一のアプリケーションから同一の統合オブジェクトに対する複数のデータ操作命令を受け付けた場合も、データ操作命令単位でロックを行う。
【0094】
また、同一のデータソースのデータに対して、異なる統合オブジェクトからの操作要求を拒否する。例えば、データソースCに格納された「免許」データを、社員オブジェクトと資格オブジェクトの両方から操作できるような統合クラスを定義しない、又は、社員オブジェクトがロックされたときに、社員オブジェクトで利用するデータソースのデータもロックするなどの方法がある。
【0095】
図8は、データソース統合システム3の動作概念の第4例を示すブロック図である。
【0096】
この図8では、社員オブジェクト17aの登録が要求された後、社員オブジェクト17aの内容を各データソースA〜Cに反映する場合を例として説明するが、社員オブジェクト17aの更新、削除などが要求された場合も同様である。
【0097】
ステップD1において、データソース統合システム3の操作内容解析部7は、アプリケーション4aから社員番号「123」の社員オブジェクト17aの登録要求を受け付ける。
【0098】
ステップD2において、データソース統合システム3の登録部9eは、社員番号「123」の社員オブジェクト17aを記録装置13aに記録する。
【0099】
ステップD3において、データソース統合システム3の書込管理部10は、記録装置13cに対する社員オブジェクト17aの登録とは別のタイミングで、社員番号「123」の社員オブジェクト17aの登録要求をトランザクション管理部11に提供し、各データソースA〜Cの内容に反映させる。
【0100】
例えば、書込管理部10は、アプリケーション4aから書込命令を受け付けた場合に、記録装置13cに記録されている社員オブジェクト17aをオブジェクト処理部9の書込部9h経由で読み出し、この社員オブジェクト17aの内容を各データソースA〜Cの内容に反映させるための操作命令を、トランザクション管理部11及びデータソースアクセス部12a〜12cを経由してデータソースA〜Cに提供するとしてもよい。また、書込管理部10は、時刻指定によるバッチ処理により、記録装置13cに記録されている社員オブジェクト17aをオブジェクト処理部9の書込部9h経由で読み出し、この社員オブジェクト17aの内容を各データソースA〜Cの内容に反映させるための操作命令を、トランザクション管理部11及びデータソースアクセス部12a〜12cを経由してデータソースA〜Cに提供するとしてもよい。
【0101】
このように、記録装置13cの変更(登録、更新、削除)と別のタイミングでデータソースA〜Cの変更を行うことにより、データソース統合システム3における処理数の少ないとき又はデータソースA〜Cへのデータ操作の少ないときに、データソース統合システム3からデータソースA〜Cへのデータ操作を行うことができる。これにより、見かけ上の処理速度を向上させることができる。なお、このように「データ操作命令とは別のタイミング」という意味には記録装置13cの変更と別のタイミングでの変更も含まれる。
【0102】
また、全てのデータソースA〜Cを同タイミングで変更するのではなく、変更のタイミングをデータソース単位で変えてもよい。
【0103】
例えば、頻繁にアクセスされるデータソースに対しては、リアルタイムにオブジェクトの変更を反映させ、一日一度決められた時間にアクセスされるデータソースに対しては、一日一度バッチ処理で変更を反映させるなど、データソース毎に変更タイミングを設定することにより、データソースに対する無駄なアクセスを軽減することができる。
【0104】
図9は、データソース統合システム3の動作概念の第5例を示すブロック図である。
【0105】
この図9では、各データソースA〜Cの更新処理をトランザクション管理部11とデータソースアクセス部12a〜12cによって一括して行う場合について説明する。
【0106】
データソース統合システム3の記録装置13cには、社員番号「123」の社員オブジェクト17aが記録されている。社員番号「123」の社員オブジェクト17aの属性「電話番号」は属性値「123−456−7890」を持ち、属性「所属」は属性値「経理部」を持つとする。
【0107】
ステップE1において、データソース統合システム3の操作内容解析部7は、アプリケーション4aから社員番号「123」の社員オブジェクト17aの更新要求を受け付ける。
【0108】
ここで、更新要求は、社員番号「123」の電話番号を「111−222−3456」に更新し、社員番号「123」の所属を「総務部」に更新する要求であるとする。
【0109】
ステップE2において、データソース統合システム3の更新部は、社員番号「123」の社員オブジェクト17aを記録装置13cから読み出し、更新要求で指定されている内容に更新し、更新後の社員番号「123」の社員オブジェクト17aを記録装置13cに記録する。
【0110】
ステップE3において、データソース統合システム3の書込管理部10は、記録装置13cに対する統合オブジェクトの更新とは別のタイミングで、オブジェクト処理部9の書込部9h経由で社員オブジェクト17aを取得し、操作内容をトランザクション管理部11に提供する。
【0111】
ステップE4において、データソース統合システム3のトランザクション管理部11は、操作内容と定義データ14にしたがってデータソース操作命令を各データソースアクセス部12a〜12cに提供する。
【0112】
ステップE5において、データソース統合システム3の各データソースアクセス部12a〜12cは、データソース操作命令を定義データ14に基づいて変換し、変換後のデータソース操作命令をデータ操作対象のデータソースA、Bに提供する。
【0113】
変換の結果、データソースアクセス部12aによって、データソースAにおける社員番号「123」の所属を「総務部」に変換する操作命令が得られ、データソースアクセス部12bによって、社員番号「123」の電話番号を「111−222−3456」に変換する操作命令が得られる。
【0114】
図10は、データソース統合システム3の処理の例を示すフローチャートである。この図10では、検索が要求された場合について説明する。
【0115】
ステップF1において、操作内容解析部7は、命令発信元からデータ操作命令を受け付け、操作内容を解析する。
【0116】
ステップF2において、アクセス制御部8は、アクセス制御データ15を参照し、命令発信元から要求された操作を制限するか判断する。操作を制限する場合には、処理が終了する。
【0117】
操作を許可する場合には、ステップF3において、オブジェクト処理部9の検索部9bは、記録装置13cに対して検索対象の統合オブジェクトの検索を行う。
【0118】
ステップF4において、オブジェクト処理部9の検索部9bは、検索対象の統合オブジェクトが検索されたか否か判断する。検索されたと判断された場合、検索部9bは、検索された統合オブジェクトを要求発信元に提供し、ステップF8が実行される。
【0119】
検索されなかったと判断された場合、ステップF5において、定義データ読込部9aは、定義データ14を読み込み、ステップF6において、生成部9cは、データソースアクセス部12a〜12cを経由してデータソースA〜Cの内容を読み込む。
【0120】
ステップF7において、生成部9cは、定義データ読込部9aによって読み込まれた定義データ14とトランザクション管理部11、データソースアクセス部12a〜12cによって読み出されたデータソースA〜Cの内容に基づいて、検索対象の統合オブジェクトを生成し、記録装置13cに記録するとともに要求発信元に提供する。
【0121】
なお、上記図10において、検索ではなく、他の更新、登録、削除などの操作が要求された場合には、上記ステップF3〜ステップF7の処理に代えて、それぞれ更新処理、登録処理、削除処理が実行される。
【0122】
例えば、操作内容が統合オブジェクトの更新の場合、更新部9dは、記録装置13cに記録されている更新対象の統合オブジェクトを更新する。
【0123】
また、操作内容が統合オブジェクトの登録の場合、登録部9eは、登録対象の統合オブジェクトを記録装置13cに登録する。
【0124】
また、操作内容が統合オブジェクトの削除の場合、削除部9fは、記録装置13cの統合オブジェクトから削除対象のデータを削除する。
【0125】
また、登録、更新、削除の処理では、ステップF8において、書込管理部10が、記録装置13cの変更内容をデータソースA〜Cに書き込むか判断する。
【0126】
データソースA〜Cに書き込む場合、ステップF9において、書込管理部10は、トランザクション管理部11及びデータソースアクセス部12a〜12cを経由してデータソースA〜Cの内容を変更する。
【0127】
以上説明した本実施の形態においては、種類の異なる複数のデータソースA〜Cの内容を統合した統合オブジェクトを生成する。これにより、以下のような効果を得ることができる。
【0128】
第1に、統合オブジェクトに対して各種データ操作を行うことにより、データが実際にはどのデータソースA〜Cに格納されているか意識する必要がなく、効率的にデータを管理できる。
【0129】
第2に、データソースA〜Cの種類の違いを吸収し、データソースA〜Cの種類を意識することなくデータ操作でき、命令発信元から受け付けたデータ操作命令のフォーマットを統一できる。
【0130】
第3に、複数のデータソースA〜Cに対する複数のトランザクションを統一的に管理できる。
【0131】
第4に、複数のデータソースA〜Cに対するアクセス制御を統一的に行うことができる。
【0132】
第5に、複数のデータソースA〜Cの内容を統合した統合オブジェクトがデータソース統合システム3内に保持されるため、データソースA〜Cに対するアクセス回数を減少させることができ、データ操作を高速化、効率化できる。
【0133】
第6に、統合オブジェクトの内容をデータソースA〜Cに反映するタイミングを制御することができる。そして、データソースA〜Cに対するアクセス数の少ないタイミングやデータソース統合システム3が高速処理可能なタイミングに、データソースA〜Cにアクセスすることにより、データ操作を高速化でき、データを効率的に管理できる。
【0134】
第7に、統合クラスにおいてクラス間の参照関係が定義されている場合には、統合オブジェクトの検索が容易となり、高速かつ効率的なデータ操作を行うことができる。
【0135】
(第2の実施の形態)
本実施の形態においては、上記定義データ14の内容がデータソース統合プログラムに予め組み込まれているコンパイラ型の処理形態を持つデータソース統合システムについて説明する。
【0136】
図11は、本実施の形態に係るデータソース統合システムの構成の一例を示すブロック図である。なお、この図11において上記図1と同一の部分については同一の符号を付してその説明を省略し、ここでは異なる部分についてのみ詳しく説明する。
【0137】
記録媒体に記録されているデータソース統合プログラム6bには、上記定義データ14が組み込まれている。
【0138】
データソース統合システム20は、コンパイラ21(処理プログラム作成部)を具備する。
【0139】
データソース統合プログラム6bは、コンパイラ21によってコンパイルされ、データソース統合システム20上で動作する。
【0140】
本実施の形態においては、定義データ14がデータソース統合プログラム6bに予め組み込まれているため、上記図1の記録装置13bと上記図2の定義データ読込部9aが省略される。
【0141】
例えば、第1の実施の形態では、データソースアクセス部12a〜12cはデータソースA〜Cに接続するために必要なホスト名、ポート番号などの情報を定義データ14から参照するが、本実施の形態ではプログラム中にそれらの情報が書き込まれている。
【0142】
したがって、オブジェクト処理部22、トランザクション管理部26及びデータソースアクセス部23a〜23cは、定義データ14を別途アクセスする必要がない。
【0143】
図12は、データソース統合システム20の処理の例を示すフローチャートである。
【0144】
ステップG1において、データソース統合システム20のコンパイラ21は、データソース統合プログラム6bをコンパイルする。
【0145】
その後のステップG2〜G9は、上記図10のステップF1〜F4、F6〜F9と同様であり、ステップF5が省略されている。
【0146】
データソース統合システム20は、定義データ14の内容を得るために記録装置への参照を行う必要がないため、処理を高速化できる。
【0147】
なお、上記各実施の形態において、データソース統合システム3、20の各構成要素は、プログラムにより実現される部分がハードウェアによって実現されるとしてもよい。
【0148】
また、上記各実施の形態に係るデータソース統合システム3、20に具備される各構成要素は、同様の動作を実現可能であれば配置を変更させてもよく、また各構成要素を自由に組み合わせてもよく、各構成要素を自由に分割してもよい。
【0149】
また、上記各実施の形態に係るデータソース統合システム3、20は複数の計算機により構成され、各データソース統合プログラム6a、6bは複数の計算機に分散して配置され、互いに連携を取りつつ処理を実行するとしてもよい。
【0150】
また、上記各記録装置には、例えば内部メモリ、ハードディスクなどが適用される。上記各記録装置は、データベースを構成する要素であってもよい。
【0151】
上記データソース統合プログラム6a、6bを記録する記録媒体6、データソースA〜Cを記録する記録装置27A〜27Cとしては、例えば磁気ディスク(フレキシブルディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリなどがある。また、データソース統合プログラム6a、6bは、通信媒体により伝送してコンピュータに適用することも可能である。この場合にも、コンピュータは、プログラムを読み込み、プログラムによって動作が制御されることにより、上記の機能を実現する。
【0152】
【実施例】
以下において、上記第1の実施の形態に係るデータソース統合システム3の具体例について説明する。なお、上記第2の実施の形態に係るデータソース統合システム20についても同様である。
【0153】
(第1の実施例)
本実施例において、データソースAの種類はLDAP、データソースBの種類はRDBであり、データソース統合システム3は、この2つのデータソースA、Bを統合する。
【0154】
まず、データソースAについて説明する。
【0155】
図13は、データソースAのツリー構成の例を示すブロック図である。
【0156】
データソースAは、国エントリ、企業エントリ、組織エントリ、社員エントリの4種類のエントリから構成される。各エントリは、上位から、国エントリ、企業エントリ、組織エントリ、社員エントリの順で階層関係を持つ。
【0157】
この図13の例では、国エントリe1の下位に企業エントリe2がある。企業エントリe2の下位に組織エントリe3、e4がある。組織エントリe3の下位に社員エントリe5〜e7がある。また、組織エントリe4の下位に社員エントリe8がある。
【0158】
表1は、国エントリe1の例である。
【0159】
【表1】
【0160】
表2は、企業エントリe2の例である。
【0161】
【表2】
【0162】
表3は、組織エントリe3の例である。
【0163】
【表3】
【0164】
表4は、組織エントリe4の例である。
【0165】
【表4】
【0166】
表5は、社員エントリe5の例である。
【0167】
【表5】
【0168】
表6は、社員エントリe6の例である。
【0169】
【表6】
【0170】
表7は、社員エントリe7の例である。
【0171】
【表7】
【0172】
表8は、社員エントリe8の例である。
【0173】
【表8】
次に、データソースBについて説明する。
【0174】
このデータソースBは、企業テーブルt1、組織テーブルt2、社員テーブルt3という3種類のテーブルを管理するとする。
【0175】
表9は、企業テーブルt1の例である。
【0176】
【表9】
【0177】
表10は、組織テーブルt2の例である。
【0178】
【表10】
【0179】
表11は、社員テーブルt3の例である。
【0180】
【表11】
【0181】
次に、定義データ14について説明する。
【0182】
定義データ14は、例えばデータソース接続定義データ14a、データソースアクセス方法定義データ14b、各データソースA、Bに関するデータソース定義データ14c、14dなどのようなデータソース自体についてのデータと、マッピング定義データ14eを具備する。
【0183】
データソース接続定義データ14aの例を表12に示す。
【0184】
【表12】
データソース接続定義データ14aには、データソース名、データソースの種別、ホスト名、ポート、Bind User、Passwordなどの各データソースA、Bに接続するために必要な情報が定義される。
【0185】
データソースアクセス方法定義データ14bの例を表13に示す。
【0186】
【表13】
データソースアクセス方法定義データ14bには、各データソースA、Bを検索、登録、更新、削除するためのコマンドが定義される。
【0187】
データソース定義データ14c、14dには、各データソースA、Bに記録されるデータの内容が定義される。例えば、データソース定義データ14c、14dでは、対応するデータソースA、Bに記録されているデータのデータ名(例えば、LDAPの属性、RDBの列名)が定義される。
【0188】
本実施例では、LDAP及びRDBの2つのデータソースA、Bがあるため、定義データ14は2つのデータソース定義データ14c、14dを具備する。
【0189】
データソースAに係るデータソース定義データ14cの例を表14に示す。
【0190】
【表14】
データソース定義データ14cには、データソースAのオブジェクトクラス名、属性名、型、必須、主キーが定義される。
【0191】
一方、データソースBに係るデータソース定義データ14dの例を表15に示す。
【0192】
【表15】
データソース定義データ14dには、データソースBのテーブル名、列名、型、必須、主キーが定義される。
【0193】
マッピング定義データ14eの例を表16に示す。
【0194】
【表16】
マッピング定義データ14eには、統合クラスとこの統合クラスの属性の定義、及び統合クラスとこの統合クラスの属性と上記データソース定義データ14c、14dで定義されているデータとのマッピング関係を定義している。
【0195】
統合クラスの属性としては、データソースA、Bのいずれかに記録されたデータ、参照関係にあるクラス、関数の3種類が用いられ、それぞれ定義内容が異なる。
【0196】
まず、マッピング定義データ14eについて、統合クラスの属性の種別がデータの場合について説明する。
【0197】
統合クラスの属性の種別がデータでありこの統合クラスの属性の属性値となるデータがLDAPのデータソースAに格納されている場合、マッピング定義データ14eには、統合クラスの属性名、型、必須となる属性、主キーとなる属性と、統合クラスで属性値となるデータの格納されているデータソース名、クラス、属性名とが関係付けられ、定義される。
【0198】
一方、統合クラスの属性の種別がデータでありこの統合クラスの属性の属性値となるデータがRDBのデータソースBに格納されている場合、マッピング定義データ14eには、統合クラスの属性名、型、必須となる属性、主キーとなる属性と、統合クラスで属性値となるデータの格納されているデータソース名、テーブル名、列名とが関係付けられ、定義される。
【0199】
マッピング定義データ14eにおいて、異なるデータソースA、B間で同じ値を持つ属性は、共通キーとして定義される。共通キーとして定義される統合クラスの属性名には、データソースAの属性名及びデータソースBの列名が関係付けされる。
【0200】
共通キーは、例えば、データソースAの属性の値をキーとして、データソースBの列の値を取得するとき、共通キーである旨の印の付されているデータソースAの属性の値を、関連するデータソースBの列の値として代入し、この代入された値をキーとしてデータソースB内の列の値を取得する場合に使用される。
【0201】
例えば、SyainClassにおいて、共通キーは「SYAIN_NUM」であり、データソースAは「uid」、データソースBは「NUMBER」に対応付けられている。ここで、データソースAの「cn」の属性値をキーとして、データソースBにある「TEL」の属性値を取得する場合、まず「cn」をキーとしてデータソースAを検索することにより、共通キーである「uid」の属性値を取得することができる。続いて、得られた「uid」の属性値を「NUMBER」の属性値としてデータソースBを検索することにより、目的とする「TEL」の属性値を取得することができる。
【0202】
マッピング定義データ14eにおけるRead、Writeは、データソース統合システム3において統合オブジェクトの属性値に対するRead、Writeの操作が行われたときに、実際にどのデータソースA、Bの属性値又は列の値に対してRead、Write操作を行うか定義している。
【0203】
例えば、共通キーであるSyainClassの「SYAIN_NUM」の属性値を取得する場合、データソースAの「uid」、データソースBの「NUMBER」のどちらを参照すればよいかを特定できないため、どのデータソースから値を参照するかをReadから判断する。表16の例では、「uid」から参照することになっている。
【0204】
次に、マッピング定義データ14eについて、統合クラスの属性の種別が参照関係の場合について説明する。
【0205】
統合クラスの属性の種別が参照関係の場合、この統合クラスの属性名、参照元対応属性名、参照先クラス名、参照先対応属性名、参照対応数が定義される。参照関係の属性に対する取得操作は、参照先クラスの参照先対応属性に、参照元対応属性の値を持つ参照先クラスの統合オブジェクトを取得する操作に変換される。
【0206】
例えば、SyainClassにおいて、参照関係の属性である「SYOZOKU_SOSIKI」に対する取得操作が要求された場合、SosikiClassの「SOSIKI_CODE」にSyainClassの「SYOZOKU_CODE」の値が入ったSosikiClassを取得することになる。
【0207】
次に、マッピング定義データ14eについて、統合クラスの属性の種別が関数の場合について説明する。
【0208】
統合クラスの属性の種別が関数の場合、統合クラスの属性名、型、処理内容が定義される。例えば、関数の属性名として「年齢」を考えた場合、処理内容には、関数[現在の年月日−誕生年月日]が定義される。
【0209】
次に、アクセス制御データ15について説明する。
【0210】
アクセス制御データ15は、ロール定義データ15aとアクセス制御定義データ15b、15cとを具備する。
【0211】
表17に、ロール定義データ15aの例を示す。
【0212】
【表17】
ロール定義データ15aでは、複数の権限をまとめたロールと、そのロールに対応付けられるアプリケーションが定義される。この例では、アプリケーション4aについての権限がまとめられてロール「ROLE01」とされ、アプリケーション4bについての権限がまとめられてロール「ROLE02」とされる。
【0213】
表18に、ロール「ROLE01」についてのアクセス制御定義データ15bの例を示す。
【0214】
【表18】
【0215】
表19に、ロール「ROLE02」についてのアクセス制御定義データ15cの例を示す。
【0216】
【表19】
アクセス制御定義データ15b、15cでは、各ロールの内容が定義され、クラスに対する操作(検索、登録、更新、削除)と、属性に対する操作(Read、Write)の権限が定義される。
【0217】
図14は、本実施例におけるデータソース統合システム3の処理フローの第1例を示すブロック図である。
【0218】
この図14では、アプリケーション4aが、名前「TTT」の社員オブジェクト24を検索する操作を行う。
【0219】
前提条件として、操作対象となる名前「TTT」の社員オブジェクト24は記録装置13cに記録されていないとする。
【0220】
ステップH1において、データソース統合システム3の操作内容解析部7は、アプリケーション4aから検索要求を表すデータ操作命令「SELECT * FROM SyainClass WHERE NAME=TTT」を受け付け、操作内容を解析し、操作内容をアクセス制御部8に提供する。具体的には、まず「アプリケーション4aからの要求」であり、操作が「検索」であり、操作対象オブジェクトのクラスが「SyainClass」である旨の情報を抽出する。更に操作対象オブジェクトを特定するためのキーが「NAME=TTT」であり、操作対象の属性が「全ての属性」である旨(上記操作命令の「*」の部分)の情報を抽出し、これらの情報をアクセス制御部8に提供する。
【0221】
ステップH2において、アクセス制御部8は、上記表17〜19に例示するアクセス制御データ15を参照し、アプリケーション4aの権限情報を取得する。
【0222】
具体的には、アクセス制御部8は、上記表17のロール定義データ15aに基づいて、アプリケーション4aの権限情報はROLE01に対応することを抽出する。そして、操作対象オブジェクトのクラスが「SyainClass」であることから、上記表18の「ROLE01」のアクセス制御定義データ15bに基づいて、「SyainClass」に対する権限情報を抽出する。表18の例では「SyainClass」を検索可能であり、「BIRTHDATE」「KEITAI」「AGE」属性を除く属性に対して、Read権限が与えられていることを認識可能である。したがって、アクセス制御部8は、「SyainClass」で定義され、「NAME=TTT」のオブジェクトの「BIRTHDATE、KEITAI、AGEを除く全ての属性」に対する「検索」である旨の情報をオブジェクト処理部9の検索部9bに出力する。
【0223】
ステップH3において、オブジェクト処理部9の検索部9bは、アクセス制御部8からの情報を受け付けると、検索対象の「NAME=TTT」の社員オブジェクト24について記録装置13cに対して検索を行う。
【0224】
検索の結果、記録装置13cに検索対象の社員オブジェクト24が存在しないため、ステップH4において、オブジェクト処理部9の生成部9cは、データソースA、Bに関する情報を得るために、オブジェクト処理部9の定義データ読込部9aを通して、定義データ14に含まれる上記表14及び表15の示すデータソース定義データ14c、14dを参照する。また、生成部9cは、統合クラスの属性とデータソースA、Bとのマッピング関係を表す上記表16に示すマッピング定義データ14eを参照する。
【0225】
マッピング定義データ14eでは、統合クラス「SyainClass」の属性「NAME」が、データソースAのオブジェクトクラス「inetOrgPerson」の属性「cn」に関係付けされている。したがって、統合クラス「SyainClass」に対する検索キー「NAME=TTT」を、データソースAに対する検索キー「cn=TTT」としてデータソースA内を検索すれば、データソースAに格納された名前「TTT」のデータを取得可能である。また、データソースBに格納された名前「TTT」のデータも取得するために、上記表16のマッピング定義データ14eの共通キーを参照し、データソースAとデータソースBで同じ値を持つ属性を調べる。マッピング定義データ14eでは、データソースAのオブジェクトクラス「inetOrgPerson」の属性「uid」と、データソースBのテーブル「SYAIN」の列名「NUMBER」とが同じ値を持つと記されている。したがって、データソースAの検索の結果得られる「uid」の値を、データソースBのテーブル「SYAIN」の列名「NUMBER」の値として、データソースBに対する検索キー「NUMBER=<uidの属性値>」を作成し検索すれば、データソースBに格納された名前「TTT」のデータを取得できる。
【0226】
そこで、生成部9cは、ステップH5において、「cn=TTT」をキーとする検索要求、「NUMBER=<uidの属性値>」をキーとする検索要求をトランザクション管理部11に提供する。
【0227】
ステップH6において、トランザクション管理部11は、マッピング定義データ14eを参照することにより、「cn」属性がデータソースAに格納されていることを認識し、「cn=TTT」をキーとする検索要求をデータソースAに対応したデータソースアクセス部12aに提供する。
【0228】
ステップH7において、データソースアクセス部12aは、上記表12のデータソース接続定義データ14aを参照し、データソースAに接続するための情報を取得した後、上記表13のデータソースアクセス方法定義データ14bを参照し、データソースAから「cn=TTT」をキーとする検索を行うためのコマンドを作成する。
【0229】
具体的には、ホスト名がldaphostの389ポートにcn=Directory Managerで接続し、「ldapsearch cn=TTT “objectclass=inetOrgPerson”」というコマンドを用いて検索を行う。
【0230】
検索の結果、統合クラスの「SYAIN_NUM」「MAIL_ADDRESS」「SYOZOKU_CODE」属性に対応付けられたデータソースAの「uid」「mail」「ou」属性の属性値「100001」「TTT@TTT.co.jp」「201」を取得し、トランザクション管理部11に提供する。
【0231】
このとき、統合クラスの「KEITAI」に対応する「mobile」の属性値についてはアクセス権限がないため取得されない。また、属性種別が参照関係の属性については、その属性に対して直接取得操作がない限り取得されない。
【0232】
続いて、ステップH8において、トランザクション管理部11は、マッピング定義データ14eを参照することにより、「NUMBER」がデータソースBに格納されていることを認識し、データソースAの検索で得られた「uid」の値「100001」を「NUMBER」の値として、「NUMBER=100001」をキーとする検索要求をデータソースBに対応したデータソースアクセス部12bに提供する。
【0233】
ステップH9において、データソースアクセス部12bは、上記表12のデータソース接続定義データ14aを参照し、データソースBに接続するための情報を取得した後、上記表13のデータソースアクセス方法定義データ14bを参照し、「NUMBER=100001」をキーとする検索を行うためのコマンドを作成する。
【0234】
具体的には、ホスト名がrdbhostの1521ポートにAdminで接続し、「SELECT * FROM SYAIN WHERE NUMBER=100001」を用いて検索を行う。
【0235】
検索の結果、統合クラスの「TELEPHONE」「YAKUSYOKU」属性に対応付けられたデータソースBの「TEL」「SYOKUI」属性の属性値「011−222−3456」「S」を取得し、トランザクション管理部11に提供する。
【0236】
このとき、統合クラスの属性「BIRTHDATE」に対応する「BIRTH」の属性値についてはアクセス権限がないため取得されない。
【0237】
ステップH10において、トランザクション管理部11は、データソースA、Bの検索結果を生成部9cに提供する。
【0238】
なお、上記処理において、データソースAに対するデータの検索とデータソースBに対するデータの検索の順序は、統合クラスに対する検索キーに使われる属性がどのデータソースに格納されているかによる。本実施例では、統合クラスの「NAME」属性がデータソースAの「cn」属性に関係付けられているため、データソースAから検索される。並列で検索が可能な場合は並列に行われてもよい。
【0239】
ステップH11において、生成部9cは、データソースAとデータソースBのデータを統合した名前「TTT」の社員オブジェクト24を生成する。
【0240】
ステップH12において、生成部9cは、生成された名前「TTT」の社員オブジェクトを記録装置13cに記録するとともに、アクセス制御部8、操作内容解析部7経由でアプリケーション4aに提供する。
【0241】
図15は、本実施例におけるデータソース統合システムの処理フローの第2例を示すブロック図である。なお、この図15では、上記図14と同様にアプリケーション4aが、名前「TTT」の社員オブジェクト24を検索する操作を行う。また、この図15では、操作対象となる社員オブジェクト24は記録装置13cに記録されているとする。
【0242】
ステップI1、I2は、上記図14のステップH1、H2と同様である。
【0243】
ステップI3において、オブジェクト処理部9の検索部9bは、検索対象の「NAME=TTT」の社員オブジェクト24の検索を記録装置13cに対して行う。
【0244】
検索の結果、記録装置13cに検索対象の社員オブジェクト24が存在するため、ステップI4において、検索部9bは、検索された名前「TTT」の社員オブジェクト24をアクセス制御部8、操作内容解析部7経由でアプリケーション4aに提供する。
【0245】
このように、データソース統合システム3の記録装置13cに、種類の異なるデータソースの内容を反映し統合した統合オブジェクトを記録することにより、データの検索が要求された場合であってもデータソースをアクセスしなくてもよい場合がある。これにより、データの検索処理が高速化される。
【0246】
なお、異なるアプリケーションから同じ検索要求が複数回行われた場合であっても、1回目の検索要求時に統合オブジェクトが作成され、記録されるため、2回目以降ではデータソースを実際にアクセスする必要がなく処理を高速化できる。
【0247】
(第2の実施例)
本実施例では、上記第1の実施例と同様の条件において、アプリケーション4bが、社員番号「100001」の社員オブジェクト24の属性「電話番号(TELEPHONE)」の属性値と属性「役職(YAKUSYOKU)」の属性値をそれぞれ「011−222−7890」、「SS」に更新する操作を行う場合について説明する。
【0248】
本実施例において、操作対象となる社員オブジェクト24はデータソース統合システム3の記録装置13cに記録されているとし、データソースへの書き込みタイミングはアプリケーションからデータソースに書き込みを行う旨を示す書込要求を受け付けたときとする。
【0249】
図16は、本実施例におけるデータソース統合システム3の処理フローの例を示すブロック図である。
【0250】
ステップJ1において、データソース統合システム3の操作内容解析部7は、アプリケーション4bから更新要求を表すデータ操作命令「UPDATE SyainClass SET TELEPHONE = 011−222−7890, YAKUSYOKU=SS WHERE SYAIN_NUM=100001」を受け付け、操作内容を解析し、操作内容をアクセス制御部8に提供する。具体的には、「アプリケーション4bからの要求」であり、操作が「更新」であり、操作対象オブジェクトのクラスが「SyainClass」である旨の情報を抽出する。更に、操作対象オブジェクトを特定するためのキーが「SYAIN_NUM=100001」であり、更新内容が「TELEPHONE=011−222−7890、YAKUSYOKU=SS」である旨の情報を抽出し、これらの情報をアクセス制御部8に提供する。
【0251】
ステップJ2において、アクセス制御部8は、上記表17〜19に例示するアクセス制御データ15を参照し、アプリケーション4bの権限情報を取得する。
【0252】
具体的には、アクセス制御部8は、上記表17のロール定義データ15aに基づいて、アプリケーション4bの権限情報はROLE02に対応することを抽出する。そして、操作対象オブジェクトのクラスが「SyainClass」であることから、上記表19のROLE02のアクセス制御定義データ15cに基づいて、「SyainClass」に対する権限情報を抽出する。表19の例では「SyainClass」の検索、登録、更新、削除が可能であり、全ての属性に対してRead、Writeの権限が与えられていることを認識可能である。したがって、アクセス制御部8は、「SyainClass」で定義され、「SYAIN_NUM=100001」のオブジェクトの「TELEPHONE」「YAKUSYOKU」属性の属性値を「011−222−7890」「SS」に「更新」する旨の情報をオブジェクト処理部9の更新部9dに出力する。
【0253】
ステップJ3において、オブジェクト処理部9の更新部9dは、アクセス制御部からの情報を受け付けると、更新対象の「SYAIN_NUM=100001」の社員オブジェクト24の検索を記録装置13cに対して行う。
【0254】
検索の結果、記録装置13cに更新対象の社員オブジェクト24が存在するため、ステップJ4において、更新部9dは、属性「TELEPHONE」の属性値を「011−222−7890」に更新し、属性「YAKUSYOKU」の属性値を「SS」に更新する。
【0255】
このとき、ステップJ5において、オブジェクト処理部9の排他制御部9gは、この更新対象の社員オブジェクト24をロックしており、他のデータ操作命令(例えば他のアプリケーションからの更新要求)があった場合に、この他のデータ操作命令を拒否する。
【0256】
ステップJ6において、更新部9dは、社員オブジェクト24の更新が終わった後、更新完了メッセージをアクセス制御部8、操作内容解析部7経由でアプリケーション4bに提供する。
【0257】
ここで、アプリケーション4bは、社員オブジェクト24の内容をデータソースに反映する旨の書込命令をデータソース統合システム3に提供したとする。
【0258】
ステップJ7において、操作内容解析部7は、アプリケーション4bから書込命令を受け付け、アクセス制御部8によるアクセス権限の確認を経て書込管理部10に提供する。
【0259】
ステップJ8において、書込管理部10は、書込命令を受け付けた場合に、オブジェクト処理部9の書込部9h経由で社員オブジェクト24を取得し、この社員オブジェクト24の内容にしたがってデータソースを更新するためのデータソース操作命令をトランザクション管理部11に提供する。
【0260】
ステップJ9において、トランザクション管理部11は、社員オブジェクト24の更新要求を、それぞれデータソースに対する更新要求に変換する。
【0261】
具体的には、上記表16のマッピング定義データ14eを参照し、更新される社員オブジェクト24の「TELEPHONE」「YAKUSYOKU」属性は、共にデータソースBに格納されており、「SYAIN」テーブルの「TEL」「SYOKUI」属性に対応付けられていることを認識し、データソースBに対応するデータソースアクセス部12bに更新要求を出す。
【0262】
ステップJ10において、データソースアクセス部12bは、上記表12のデータソース接続定義データ14aに基づいてデータソースBにアクセスし、上記表13のデータソースアクセス方法定義データ14bに基づいて、データソースBに対する更新コマンド「UPDATE」を用いたデータソースBに対する更新要求を作成し、データソースBを更新する。
【0263】
具体的には、ホスト名がrdbhostの1521ポートにAdminで接続し、「UPDATE SYAIN SET TEL=011−222−7890 , SYOKUI=SS WHERE SYAIN_NUM=100001」を用いて更新を行う。
【0264】
なお、本実施例では、アプリケーションからの書込要求にしたがってデータソースへの書き込みが行われるが、例えば時刻指定など、所定のデータソースへの書き込みタイミング毎に、バッチ処理によりデータソースへの書き込みが行われてもよい。
【0265】
(第3の実施例)
本実施例では、アプリケーション4bからの操作によって、組織コード「201」の組織に属する社員の社員オブジェクトが取得され、取得された社員オブジェクトに含まれる電話番号を更新する。
【0266】
本実施例では、操作対象となる組織オブジェクト、社員オブジェクトは記録装置13cに記録されていないとする。
【0267】
本実施例において、アプリケーション4bは、上記第1の実施例と同様の条件において、第1段階で、組織コード「201」の組織オブジェクト25を参照し、第2段階で、参照した組織オブジェクト25に属する社員の社員オブジェクト24a〜24cを検索し、第3段階で、検索された社員オブジェクト24a〜24cの電話番号を「011−555−5555」に更新する。
【0268】
図17は、本実施例におけるデータソース統合システム3の第1段階の処理フローの例を示すブロック図である。この図17では、組織オブジェクト25の検索までの処理が表されている。
【0269】
ステップK1において、データソース統合システム3の操作内容解析部7は、アプリケーション4bから組織コード「201」の組織オブジェクト25の検索要求を表すデータ操作命令「SELECT * FROM SosikiClass WHERE SOSIKI_CODE=201」を受け付け、操作内容を解析し、操作内容をアクセス制御部8に提供する。具体的には、「アプリケーション4bからの要求」であり、操作が「検索」であり、操作対象オブジェクトのクラスが「SosikiClass」である旨の情報を抽出する。更に操作対象オブジェクトを特定するためのキーが「SOSIKI_CODE=201」であり、操作対象の属性が「全ての属性」である旨(上記操作命令の「*」の部分)の情報を抽出し、これらの情報をアクセス制御部8に提供する。
【0270】
ステップK2において、アクセス制御部8は、上記表17のロール定義データ15a及び上記表19のアクセス制御定義データ15cを参照し、アプリケーション4bの権限情報を取得する。
【0271】
具体的には、アクセス制御部8は、上記表17のロール定義データ15aに基づいて、アプリケーション4bの権限情報はROLE02に対応することを抽出する。そして、操作対象オブジェクトのクラスが「SosikiClass」であることから、上記表19のROLE02のアクセス制御定義データ15bに基づいて、「SosikiClass」に対する権限情報を抽出する。表19の例では「SosikiClass」の検索、登録、更新、削除が可能であり、全ての属性に対してRead、Writeの権限が与えられていることを認識可能である。したがって、アクセス制御部8は、「SosikiClass」で定義され、「SOSIKI_CODE=201」のオブジェクトの「全ての属性」に対する「検索」である旨の情報をオブジェクト処理部9の検索部9bに出力する。
【0272】
ステップK3において、オブジェクト処理部9の検索部9bは、検索対象の「SOSIKI_CODE=201」の組織オブジェクト25について記録装置13cに対して検索を行う。
【0273】
検索の結果、記録装置13cに検索対象の組織オブジェクト25が存在しないため、ステップK4において、オブジェクト処理部9の生成部9cは、データソースA、Bに関する情報を得るために、オブジェクト処理部9の定義データ読込部9aを通して、定義データ14に含まれる上記表14及び表15の示すデータソース定義データ14c、14dを参照する。また、生成部9cは、統合クラスの属性とデータソースA、Bとのマッピング関係を表す上記表16に示すマッピング定義データ14eを参照する。
【0274】
マッピング定義データ14eでは、統合クラス「SosikiClass」の属性「SOSIKI_CODE」が、データソースAのオブジェクトクラス「ldapSosiki」の属性「sosikiCode」と、データソースBのテーブル「SOSIKI」の列名「S_CODE」に関係付けされている。したがって、統合クラス「SosikiClass」に対する検索キー「SOSIKI_CODE=201」を、データソースAに対する検索キー「sosikiCode=201」としてデータソースA内を検索するとともに、データソースBに対する検索キー「S_CODE=201」としてデータソースB内を検索すれば、目的とする組織オブジェクト25のデータを取得可能である。
【0275】
そこで、生成部9cは、ステップK5において、「sosikiCode=201」をキーとする検索要求、「S_CODE=201」をキーとする検索要求をトランザクション管理部11に提供する。
【0276】
ステップK6a、K6bにおいて、トランザクション管理部11は、マッピング定義データ14eを参照することにより、「sosikiCode」がデータソースAに格納され、「S_CODE」がデータソースBに格納されていることを認識し、「sosikiCode=201」をキーとする検索要求をデータソースアクセス部12aに、「S_CODE=201」をキーとする検索要求を12bに提供する。
【0277】
ステップK7において、データソースアクセス部12aは、上記表12のデータソース接続定義データ14aを参照し、データソースAに接続するための情報を取得した後、上記表13のデータソースアクセス方法定義データ14bを参照し、データソースAから「sosikiCode=201」をキーとする検索を行うためのコマンドを作成する。
【0278】
具体的には、ホスト名がldaphostの389ポートにcn=Directory Managerで接続し、「ldapsearch sosikiCode=201 “objectclass=ldapSosiki”」というコマンドを用いて検索を行う。
【0279】
検索の結果、統合クラスの「SOSIKIMEI」「JYOI_SOSIKI_CODE」属性に対応付けられたデータソースAの「ou」「jyoiSosikiCode」属性の属性値「somu」「−(上位組織なし)」を取得し、トランザクション管理部11に提供する。
【0280】
また、ステップK8において、データソースアクセス部12bは、上記表12のデータソース接続定義データ14aを参照し、データソースBに接続するための情報を取得した後、上記表13のデータソースアクセス方法定義データ14bを参照し、データソースBから「S_CODE=201」をキーとする検索を行うためのコマンドを作成する。
【0281】
具体的には、ホスト名がrdbhostの1521ポートにAdminで接続し、「SELECT * FROM SOSIKI WHERE S_CODE=201」というコマンドを用いて検索を行う。
【0282】
検索の結果、統合クラスの「SOSIKI_TEL」属性に対応付けられたデータソースBの「TEL」属性の属性値「012−345−1111」を取得し、トランザクション管理部11に提供する。
【0283】
なお、上記処理において、データソースAに対するデータの検索とデータソースBに対するデータの検索は並列に行われてもよい。
【0284】
ステップK9において、トランザクション管理部11は、データソースA、Bの検索結果を生成部9cに提供する。
【0285】
上記処理において、属性種別が参照関係の属性は、その属性に対する取得操作があった場合に取得される。
【0286】
ステップK10において、生成部9cは、データソースAとデータソースBのデータを統合した組織コード「201」の組織オブジェクト25を生成する。
【0287】
ステップK11において、生成部9cは、組織コード「201」の組織オブジェクト25を記録装置13cに記録するとともに、アクセス制御部8、操作内容解析部7経由でアプリケーション4bに提供する。
【0288】
図18は、本実施例におけるデータソース統合システム3の第2段階の処理フローの例を示すブロック図である。この図18では、組織コード「201」の組織オブジェクト25に属する社員の社員オブジェクト24a〜24cの検索までの処理が表されている。
【0289】
ステップL1において、データソース統合システム3の操作内容解析部7は、アプリケーション4bから組織コード「201」の組織に属する社員の社員オブジェクト24a〜24cの検索要求を表すデータ操作命令「GET SOSIKI_MEMBER」を受け付け、操作内容を解析し、操作内容をアクセス制御部8に提供する。具体的には、「アプリケーション4bからの要求」であり、操作が「検索」であり、操作対象の属性が「SOSIKI_MEMBER」である旨の情報を抽出し、これらの情報をアクセス制御部8に提供する。このとき、操作対象オブジェクトに関する情報は、第1段階における組織オブジェクトの検索によって、組織コード「201」の組織オブジェクトであると特定されている。
【0290】
ステップL2において、アクセス制御部8は、上記表17〜19に例示するアクセス制御データ15を参照し、アプリケーション4bの権限情報を取得する。具体的には、アクセス制御部8は、上記表17のロール定義データ15aに基づいて、アプリケーション4bの権限情報はROLE02に対応することを抽出する。そして、操作対象オブジェクトのクラスが「SosikiClass」であることから、上記表19のROLE02のアクセス制御定義データ15cに基づいて、SosikiClassに対する権限情報を抽出する。表19の例では、「SosikiClass」の検索、登録、更新、削除が可能であり、全ての属性に対してRead、Write権限が与えられていることを認識可能である。したがって、アクセス制御部8は、「SosikiClass」で定義され、組織コード「201」のオブジェクトの「SOSIKI_MEMBER」に対する「検索」である旨の情報をオブジェクト処理部9の検索部9bに出力する。
【0291】
ステップL3において、オブジェクト処理部9の検索部9bは、マッピング定義データ14eを参照することにより、先で検索された組織コード「201」の組織オブジェクト25の属性「SOSIKI_MEMBER」の種別は参照関係であることを認識可能である。
【0292】
ステップL4において、検索部9bは、参照関係の属性の場合、参照先クラスの参照先対応属性に参照元対応属性の値を入れて参照先クラスのオブジェクトを検索する。
【0293】
ここでは、検索部9bは、定義データ14を参照し、「SOSIKI_MEMBER」の検索要求を所属コード「201」の社員オブジェクト24a〜24cの検索要求に変換し、検索を行う。この例では、「SyainClass」の「SYOZOKU_CODE」属性の属性値が「201」である社員オブジェクト24a〜24cが検索される。
【0294】
検索の結果、社員オブジェクト24a〜24cは、記録装置13cに記録されていないため、ステップL5において、オブジェクト処理部9の生成部9cは、定義データ14に含まれる上記表14及び表15の示すデータソース定義データ14c、14d、マッピング定義データ14eを参照する。
【0295】
マッピング定義データ14eにおいて、統合クラス「SyainClass」の属性「SYOZOKU_CODE」はデータソースAのオブジェクトクラス「inetOrgPerson」の属性「ou」に関係付けされている。したがって、統合クラス「SyainClass」に対する検索キー「SYOZOKU_CODE=201」を、データソースAに対する検索キー「ou=201」としてデータソースA内のデータを検索すれば、データソースAに格納された所属コード「201」のデータを取得可能である。また、データソースBに格納された所属コード「201」のデータも取得するために、上記表16のマッピング定義データ14eの共通キーを参照し、データソースAとデータソースBで同じ値を持つ属性を調べる。マッピング定義データ14eでは、データソースAのオブジェクトクラス「inetOrgPerson」の属性「uid」とデータソースBのテーブル「SYAIN」の列名「NUMBER」が同じ値を持つと記されている。したがって、データソースAの検索の結果得られる「uid」の値を、データソースBのテーブル「SYAIN」の列名「NUMBER」の値として、データソースBに対する検索キー「NUMBER=<uidの属性値>」として検索すれば、データソースBに格納された所属コード「201」のデータを取得できる。
【0296】
そこで、生成部9cは、ステップL6において、「ou=201」をキーとする検索要求、「NUMBER=<uidの属性値>」をキーとする検索要求をトランザクション管理部11に提供する。
【0297】
ステップL7において、トランザクション管理部11は、マッピング定義データ14eを参照することにより、「ou」属性がデータソースAに格納されていることを認識し、「ou=201」をキーとする検索要求をデータソースアクセス部12aに提供する。
【0298】
ステップL8において、データソースアクセス部12aは、上記表12のデータソース接続定義データ14aを参照し、データソースAに接続するための情報を取得した後、上記表13のデータソースアクセス方法定義データ14bを参照し、データソースAから「ou=201」をキーとする検索を行うためのコマンドを作成し、検索を行う。
【0299】
検索の結果、統合クラスの「SYAIN_NUM」「MAIL_ADDRESS」「KETIAI」に対応付けられたデータソースAの「uid」「mail」「mobile」属性の属性値を取得し、トランザクション管理部11に提供する。
【0300】
具体的には、[「uid=100001」「mial=TTT@TTT.co.jp」「mobile=01−1111−1111」]、[「uid=100002」「mial=JJJ@JJJ.co.jp」「mobile=01−2222−2222」]、[「uid=100003」「mial=SSS@SSS.co.jp」「mobile=01−3333−3333」]の3人分のデータがトランザクション管理部11に提供される。
【0301】
続いて、ステップL9において、トランザクション管理部11は、マッピング定義データ14eを参照することにより、「NUMBER」がデータソースBに格納されていることを認識し、データソースAの検索で得られた「uid」の値「100001」「100002」「100003」を「NUMBER」の値として、「NUMBER=100001」「NUMBER=100002」「NUMBER=100003」をキーとする3つの検索要求をデータソースBに対応したデータソースアクセス部12bに提供する。
【0302】
ステップL10において、データソースアクセス部12bは、上記表12のデータソース接続定義データ14aを参照し、データソースBに接続するための情報を取得した後、上記表13のデータソースアクセス方法定義データ14bを参照し、「NUMBER=100001」「NUMBER=100002」「NUMBER=100003」をキーとする検索を行うためのコマンドをそれぞれ作成し、検索を行う。
【0303】
検索の結果、統合クラスの「TELEPHONE」「YAKUSYOKU」「BIRTHDATE」に対応付けられたデータソースBの「TEL」「SYOKUI」「BIRTH」属性の属性値を取得し、トランザクション管理部11に提供する。
【0304】
具体的には、[「TEL=011−222−3456」「SYOKUI=S」「BIRTH=1965/01/01」]、[「TEL=011−222−3456」「SYOKUI=E」「BIRTH=1970/05/12」]、[「TEL=011−222−3456」「SYOKUI=E」「BIRTH=1971/03/07」]の3人分のデータがトランザクション管理部11に提供される。
【0305】
ステップL11において、トランザクション管理部11は、データソースA、Bの検索結果を生成部9cに提供する。
【0306】
ステップL12において、データソース統合システム3の生成部9cは、所属コード「201」の社員オブジェクト24a〜24cの集合を生成する。このとき、属性種別が関数である「AGE」属性が計算され、社員オブジェクトに含められる。
【0307】
ステップL13において、社員オブジェクト24a〜24cをアプリケーション4bに返すとともに、記録装置13cに記録する。
【0308】
図19は、本実施例におけるデータソース統合システム3の第3段階の処理フローの例を示すブロック図である。この図19では、検索された社員オブジェクト24a〜24cの電話番号が「011−555−5555」に更新されるまでの処理が表されている。
【0309】
ステップM1において、操作内容解析部7は、アプリケーション4bから、組織コード「201」の組織に属する社員の社員オブジェクト24a〜24cの電話番号を「011−555−5555」に更新するデータ操作命令「SET TELEPHONE=011−555−5555」を受け付け、アクセス制御部8に提供する。具体的には、「アプリケーション4bからの要求」であり、操作が「更新」であり、操作対象の属性が「TELEPHONE」である旨の情報を抽出し、これらの情報をアクセス制御部8に提供する。このとき、操作対象オブジェクトに関する情報は、第2段階における組織コード「201」の組織に属する社員オブジェクトの検索によって、所属コードが「201」である社員オブジェクトであると特定されている。
【0310】
ステップM2において、アクセス制御部8は、上記表17〜19に例示するアクセス制御データ15を参照し、アプリケーション4bの権限情報を取得する。具体的には、アクセス制御部8は、上記表17のロール定義データ15aに基づいて、アプリケーション4bの権限情報はROLE02に対応することを抽出する。そして、操作対象オブジェクトのクラスが「SyainClass」であることから、上記表19のROLE02のアクセス制御定義データ15cに基づいて、SyainClassに対する権限情報を抽出する。表19の例では、「SyainClass」の検索、登録、更新、削除が可能であり、全ての属性に対してRead、Write権限が与えられていることを認識可能である。したがって、アクセス制御部8は、「SyainClass」で定義され、所属コード「201」の社員オブジェクトの「TELEPHONE」に対する「更新」である旨の情報をオブジェクト処理部9の更新部9dに出力する。
【0311】
ステップM3において、オブジェクト処理部9の更新部9dは、記録装置13cに対して所属コード「201」の社員オブジェクト24a〜24cの属性「TELEPHONE」の属性値を「011−555−5555」に更新する。
【0312】
【発明の効果】
以上詳記したように本発明においては、複数のデータソースの内容が統一して管理され、効率的にデータを管理できる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るデータソース統合システムの構成の一例を示すブロック図。
【図2】同実施の形態に係るオブジェクト処理部の詳細例を示すブロック図。
【図3】同実施の形態におけるデータソースの内容と統合クラスとの関係の一例を示す図。
【図4】同実施の形態における複数のクラス間の参照関係の定義された統合クラスの一例を示す図。
【図5】同実施の形態に係るデータソース統合システムの動作概念の第1例を示すブロック図。
【図6】同実施の形態に係るデータソース統合システムの動作概念の第2例を示すブロック図。
【図7】同実施の形態に係るデータソース統合システムの動作概念の第3例を示すブロック図。
【図8】同実施の形態に係るデータソース統合システムの動作概念の第4例を示すブロック図。
【図9】同実施の形態に係るデータソース統合システムの動作概念の第5例を示すブロック図。
【図10】同実施の形態に係るデータソース統合システムの処理の例を示すフローチャート。
【図11】本発明の第2の実施の形態に係るデータソース統合システムの構成の一例を示すブロック図。
【図12】同実施の形態に係るデータソース統合システムの処理の例を示すフローチャート。
【図13】本発明の第1の実施例で用いられるデータソースのツリー構成の例を示すブロック図。
【図14】同実施例に係るデータソース統合システムの処理フローの第1例を示すブロック図。
【図15】同実施例に係るデータソース統合システムの処理フローの第2例を示すブロック図。
【図16】本発明の第2の実施例に係るデータソース統合システムの処理フローの例を示すブロック図。
【図17】本発明の第3の実施例に係るデータソース統合システムの第1段階の処理フローの例を示すブロック図。
【図18】同実施例に係るデータソース統合システムの第2段階の処理フローの例を示すブロック図。
【図19】同実施例に係るデータソース統合システムの第3段階の処理フローの例を示すブロック図。
【図20】データソースの内容をオブジェクトに変換した図。
【符号の説明】
3、20…データソース統合システム、4a〜4c…アプリケーション、6…記録媒体、6a,6b…データソース統合プログラム、7…操作内容解析部、8…アクセス制御部、9…オブジェクト処理部、10…書込管理部、11…トランザクション管理部、12a〜12c…データソースアクセス部、13a〜13c…記録装置、14…定義データ、15…アクセス制御データ、A〜C…データソース、9a…定義データ読込部、9b…検索部、9c…生成部、9d…更新部、9e…登録部、9f…削除部、9g…排他制御部、9h…書込部[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a program, a system, and a method for realizing sharing, management, and effective utilization of various data.
[0002]
[Prior art]
Many data sources exist for the purpose of sharing, managing, and effectively utilizing data. Examples of the data source include various databases such as an LDAP (Lightweight Directory Access Protocol) directory, an object-oriented database, an RDB (Relational Database), an XML (Extensible Markup Language) database, a text file, a CSV file (CSVComm), a CSV file (CSVComm), and the like. There are various types such as various files and file systems, and data is managed by various methods.
[0003]
As shown in FIG. 20, a technique for converting data in a
[0004]
[Patent Document 1]
JP 2000-242542 A
[0005]
[Patent Document 2]
JP-A-2000-242541
[0006]
[Problems to be solved by the invention]
Systems that handle multiple different types of data sources are increasing. Data management in such a system has the following problems, making it difficult to manage data efficiently.
[0007]
First, when handling a plurality of types of data sources, the system has a problem that it is necessary to always know the type of target data and the storage location of the data.
[0008]
Secondly, the system needs to separately perform update processing for all data sources related to this data each time an update of certain data occurs, which increases the number of processing and reduces the processing speed. .
[0009]
Third, the system needs to separately manage transactions and control access to a plurality of different types of data sources.
[0010]
For example, as shown in FIG. 20 described above, when data is individually converted into objects for a plurality of
[0011]
The present invention has been made in view of the above circumstances, and has as its object to provide a data source integration program, a system, and a method for unifying and managing the contents of a plurality of data sources and improving the efficiency of data management. And
[0012]
[Means for Solving the Problems]
Specific means taken for realizing the present invention will be described below.
[0013]
According to the present invention, there is provided a receiving function for receiving a data operation command from a command source, generating data from a plurality of different types of data sources recorded in advance in a recording unit in accordance with an operation command received by the receiving function. The data source is a data source integration program that realizes a function and is characterized by including data to be managed and information of a management form.
[0014]
In the present invention, integrated data in which the contents of a plurality of data sources are integrated is generated, and data operation is performed on the integrated data. Thereby, the contents of a plurality of data sources are unified and managed, and data management can be made more efficient.
[0015]
It should be noted that means for implementing the above functions may be provided in the computer system.
[0016]
By implementing the data management method implemented by the data source integration program, a similar effect can be obtained.
[0017]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0018]
(First Embodiment)
In the present embodiment, a data source integration system that converts data scattered in a plurality of data sources of different types into integrated objects of a predetermined format and manages them unifiedly will be described.
[0019]
FIG. 1 is a block diagram showing an example of the configuration of the data source integration system according to the present embodiment. FIG. 2 is a block diagram illustrating a detailed example of the object processing unit.
[0020]
The data
[0021]
In the present embodiment, a case will be described in which there are three
[0022]
Here, the data source refers to information on actual data to be managed and a management form thereof. As described above, for example, an LDAP (Lightweight Directory Access Protocol) directory, an object-oriented database, an RDB (Relational Database), and an XML (Extensible Markup). There are various types such as various databases such as a language database, various files such as a text file, a CSV (Comma Separated Value) file, and a binary file. Further, the information on the management form refers to information on association of managed data and information necessary for data acquisition and writing (information necessary for data management). For example, in LDAP, association between object classes is referred to. There is information and information on association between an object class and an attribute included in the class. In the latter example, in the inetOrgPerson class, information on association between the class and attributes such as cn, uid, and ou included in the class is included. is there. Further, in the RDB, there is information on association between tables and information on association between tables and columns included in the tables. In Table 11 and the like, in the latter example, information on association between employee tables and NUMBER, TEL and the like included in the employee table is included. is there.
[0023]
The data source
[0024]
The processing mode of the data
[0025]
The operation
[0026]
Further, the operation
[0027]
The
[0028]
When determining that the
[0029]
On the other hand, if the
[0030]
As shown in FIG. 2, the
[0031]
The definition data reading unit 9a reads the
[0032]
When the operation content received from the operation
[0033]
When the integrated unit including the search target data can be searched from the
[0034]
On the other hand, if the integrated object including the data to be searched is not recorded in the
[0035]
When the integrated object including the search target data is not recorded in the
[0036]
Further, the
[0037]
When the operation content indicates a request for updating the integrated object, the
[0038]
The
[0039]
When the operation content indicates a request for registration of an integrated object, the registration unit 9e records the integrated object including the data specified by the data operation instruction in the
[0040]
The registration unit 9e provides a message indicating the result of the registration process to the command source via the
[0041]
When the operation content indicates a data deletion request, the
[0042]
Further, the
[0043]
The
[0044]
That is, when the
[0045]
When the
[0046]
When a predetermined event occurs, the
[0047]
The occurrence of the predetermined event includes, for example, a case where a predetermined time has elapsed, a case where a predetermined time has elapsed, and a case where a write request to the data sources A to C has been received from the application.
[0048]
The
[0049]
When receiving the search result for the search command from the data source
[0050]
When each of the data source
[0051]
Each of the data source
[0052]
In each of the data sources A to C, a process corresponding to the converted operation command is performed, and the result is returned to each of the data source
[0053]
FIG. 3 is a diagram illustrating an example of the relationship between the data sources A to C and the integrated class.
[0054]
Data source A records "employee number", "name", and "affiliation", and data source B records "employee number", "birth date", and "telephone number". In the data source C, “name”, “hobby”, and “license information” are recorded.
[0055]
In order to integrate the contents of the data sources A to C, an
[0056]
It should be noted that a reference relationship for referring to another class may be defined as an attribute of the integrated class. Further, a function for calculating an attribute value from a value recorded in the data source may be defined as an attribute of the integrated class.
[0057]
The
[0058]
FIG. 4 is a diagram illustrating an example of an integrated class in which a reference relationship between a plurality of integrated classes is defined.
[0059]
As an integrated class, an
[0060]
In this example, 0 (no superior organization) or one organization class generated based on the
[0061]
Further, 0 or more employee classes generated based on the
[0062]
FIG. 5 is a block diagram showing a first example of the operation concept of the data
[0063]
FIG. 5 shows an outline of an operation when a search for data not recorded in the
[0064]
In step A1, the operation
[0065]
In step A2, the
[0066]
Here, in the example of FIG. 5, it is assumed that the employee object of the employee number “123” has not been recorded in the
[0067]
In step A3, the
[0068]
In step A4, the
[0069]
In step A5, the operation
[0070]
In step A6, the
[0071]
At this point, since the
[0072]
In step A7, the
[0073]
As described above, the search can be performed at high speed by returning the integrated object in the data
[0074]
FIG. 6 is a block diagram showing a second example of the operation concept of the data
[0075]
FIG. 6 shows an outline of the operation when a reference relationship between classes is defined in the integrated class.
[0076]
In step B1, the operation
[0077]
Here, in the example of FIG. 6, it is assumed that the
[0078]
In step B2, the
[0079]
In step B3, the
[0080]
Here, in the example of FIG. 6, it is assumed that the
[0081]
In step B4, the
[0082]
In step B5, the
[0083]
FIG. 7 is a block diagram showing a third example of the operation concept of the data
[0084]
FIG. 7 shows an outline of the operation when exclusive control of the operation on the integrated object is performed.
[0085]
The exclusion levels include search prohibition, update prohibition, registration prohibition, and deletion prohibition. Here, a case where an update of the
[0086]
In step C1, the operation
[0087]
In step C2, the
[0088]
In step C3, the updating
[0089]
Here, in the example of FIG. 7, during the update of the
[0090]
In step C4, the operation
[0091]
In step C5, the
[0092]
In step C6, the updating
[0093]
Note that the
[0094]
In addition, operation requests from different integrated objects for data of the same data source are rejected. For example, an integration class is not defined so that the “license” data stored in the data source C can be operated from both the employee object and the qualification object, or data used by the employee object when the employee object is locked. There are also methods such as locking the source data.
[0095]
FIG. 8 is a block diagram showing a fourth example of the operation concept of the data
[0096]
In FIG. 8, a case will be described as an example where after the registration of the
[0097]
In step D1, the operation
[0098]
In step D2, the registration unit 9e of the data
[0099]
In step D3, the
[0100]
For example, when a write command is received from the
[0101]
As described above, by changing the data sources A to C at a different timing from the change (registration, update, deletion) of the
[0102]
Instead of changing all the data sources A to C at the same timing, the change timing may be changed for each data source.
[0103]
For example, for data sources that are frequently accessed, object changes are reflected in real time, and for data sources that are accessed once a day at a specified time, the changes are reflected once a day in batch processing. For example, by setting the change timing for each data source, useless access to the data source can be reduced.
[0104]
FIG. 9 is a block diagram showing a fifth example of the operation concept of the data
[0105]
In FIG. 9, a case will be described in which the update processing of the data sources A to C is collectively performed by the
[0106]
The
[0107]
In step E1, the operation
[0108]
Here, it is assumed that the update request is a request for updating the telephone number of the employee number “123” to “111-222-3456” and updating the affiliation of the employee number “123” to “General Affairs Department”.
[0109]
In step E2, the update unit of the data
[0110]
In step E3, the
[0111]
In step E4, the
[0112]
In step E5, each of the data source
[0113]
As a result of the conversion, an operation command for converting the affiliation of the employee number "123" in the data source A to the "general affairs department" is obtained by the data
[0114]
FIG. 10 is a flowchart illustrating an example of processing of the data
[0115]
In step F1, the operation
[0116]
In step F2, the
[0117]
If the operation is permitted, in step F3, the
[0118]
In step F4, the
[0119]
If it is determined that the search is not performed, in step F5, the definition data reading unit 9a reads the
[0120]
In step F7, the
[0121]
In FIG. 10 described above, when another operation such as update, registration, or deletion is requested instead of the search, update processing, registration processing, and deletion processing are performed in place of the processing in steps F3 to F7, respectively. Is executed.
[0122]
For example, when the operation content is an update of the integrated object, the
[0123]
When the operation content is registration of an integrated object, the registration unit 9e registers the integrated object to be registered in the
[0124]
When the operation content is the deletion of the integrated object, the
[0125]
In the process of registration, update, and deletion, in step F8, the
[0126]
When writing to the data sources A to C, in step F9, the
[0127]
In the present embodiment described above, an integrated object is generated by integrating the contents of a plurality of different types of data sources A to C. Thereby, the following effects can be obtained.
[0128]
First, by performing various data operations on the integrated object, there is no need to be aware of which data source A to C the data is actually stored in, and data can be managed efficiently.
[0129]
Secondly, the difference between the types of the data sources A to C can be absorbed, the data can be operated without being conscious of the types of the data sources A to C, and the format of the data operation command received from the command source can be unified.
[0130]
Third, a plurality of transactions for a plurality of data sources A to C can be managed in a unified manner.
[0131]
Fourth, access control for a plurality of data sources A to C can be unified.
[0132]
Fifth, since an integrated object obtained by integrating the contents of a plurality of data sources A to C is held in the data
[0133]
Sixth, it is possible to control the timing of reflecting the contents of the integrated object to the data sources A to C. Then, by accessing the data sources A to C at a timing when the number of accesses to the data sources A to C is small or at a timing when the data
[0134]
Seventh, when a reference relationship between classes is defined in the integrated class, retrieval of the integrated object becomes easy, and high-speed and efficient data manipulation can be performed.
[0135]
(Second embodiment)
In the present embodiment, a data source integration system having a compiler type processing mode in which the contents of the
[0136]
FIG. 11 is a block diagram illustrating an example of a configuration of the data source integration system according to the present embodiment. In FIG. 11, the same parts as those in FIG. 1 are denoted by the same reference numerals, and the description thereof will be omitted. Here, only the different parts will be described in detail.
[0137]
The
[0138]
The data source
[0139]
The data source
[0140]
In the present embodiment, since the
[0141]
For example, in the first embodiment, the data
[0142]
Therefore, the
[0143]
FIG. 12 is a flowchart illustrating an example of processing of the data
[0144]
In step G1, the
[0145]
Subsequent steps G2 to G9 are the same as steps F1 to F4 and F6 to F9 in FIG. 10 described above, and step F5 is omitted.
[0146]
Since the data
[0147]
In each of the above embodiments, each component of the data
[0148]
The components included in the data
[0149]
In addition, the data
[0150]
For example, an internal memory, a hard disk, or the like is applied to each of the recording devices. Each of the above recording devices may be an element constituting a database.
[0151]
As the
[0152]
【Example】
Hereinafter, a specific example of the data
[0153]
(First embodiment)
In the present embodiment, the type of the data source A is LDAP and the type of the data source B is RDB, and the data
[0154]
First, the data source A will be described.
[0155]
FIG. 13 is a block diagram illustrating an example of a tree configuration of the data source A.
[0156]
The data source A includes four types of entries: a country entry, a company entry, an organization entry, and an employee entry. Each entry has a hierarchical relationship from the top, in the order of country entry, company entry, organization entry, and employee entry.
[0157]
In the example of FIG. 13, a company entry e2 is located below the country entry e1. Below the company entry e2 are organization entries e3 and e4. Below the organization entry e3 are employee entries e5 to e7. An employee entry e8 is located below the organization entry e4.
[0158]
Table 1 is an example of the country entry e1.
[0159]
[Table 1]
[0160]
Table 2 is an example of the company entry e2.
[0161]
[Table 2]
[0162]
Table 3 is an example of the organization entry e3.
[0163]
[Table 3]
[0164]
Table 4 is an example of the organization entry e4.
[0165]
[Table 4]
[0166]
Table 5 is an example of the employee entry e5.
[0167]
[Table 5]
[0168]
Table 6 is an example of the employee entry e6.
[0169]
[Table 6]
[0170]
Table 7 is an example of the employee entry e7.
[0171]
[Table 7]
[0172]
Table 8 is an example of the employee entry e8.
[0173]
[Table 8]
Next, the data source B will be described.
[0174]
It is assumed that this data source B manages three types of tables: a company table t1, an organization table t2, and an employee table t3.
[0175]
Table 9 is an example of the company table t1.
[0176]
[Table 9]
[0177]
Table 10 is an example of the organization table t2.
[0178]
[Table 10]
[0179]
Table 11 is an example of the employee table t3.
[0180]
[Table 11]
[0181]
Next, the
[0182]
The
[0183]
Table 12 shows an example of the data source connection definition data 14a.
[0184]
[Table 12]
The data source connection definition data 14a defines information necessary for connecting to each of the data sources A and B, such as a data source name, a data source type, a host name, a port, a Bind User, and a Password.
[0185]
Table 13 shows an example of the data source access method definition data 14b.
[0186]
[Table 13]
Commands for searching, registering, updating, and deleting the data sources A and B are defined in the data source access method definition data 14b.
[0187]
The data source definition data 14c and 14d define the content of data recorded in each of the data sources A and B. For example, in the data source definition data 14c and 14d, data names (for example, LDAP attributes and RDB column names) of data recorded in the corresponding data sources A and B are defined.
[0188]
In this embodiment, since there are two data sources A and B of LDAP and RDB, the
[0189]
Table 14 shows an example of the data source definition data 14c for the data source A.
[0190]
[Table 14]
In the data source definition data 14c, the object class name, attribute name, type, required, and primary key of the data source A are defined.
[0191]
On the other hand, Table 15 shows an example of the data source definition data 14d relating to the data source B.
[0192]
[Table 15]
In the data source definition data 14d, the table name, column name, type, required, and primary key of the data source B are defined.
[0193]
Table 16 shows an example of the mapping definition data 14e.
[0194]
[Table 16]
The mapping definition data 14e defines the definition of the integration class and the attribute of the integration class, and the mapping relationship between the integration class, the attribute of the integration class, and the data defined by the data source definition data 14c and 14d. I have.
[0195]
As the attributes of the integrated class, three types of data recorded in one of the data sources A and B, a class having a reference relationship, and a function are used, and the definitions are different.
[0196]
First, a case where the type of the attribute of the integration class is data in the mapping definition data 14e will be described.
[0197]
When the type of the attribute of the integration class is data and the data which is the attribute value of the attribute of the integration class is stored in the data source A of the LDAP, the mapping definition data 14e includes the attribute name, type, and mandatory , A primary key attribute, and a data source name, a class, and an attribute name in which data serving as an attribute value in the integrated class are stored and defined.
[0198]
On the other hand, when the type of the attribute of the integration class is data and the data that is the attribute value of the attribute of the integration class is stored in the data source B of the RDB, the mapping definition data 14e includes the attribute name and type of the integration class. An essential attribute, an attribute serving as a primary key, and a data source name, a table name, and a column name storing data serving as attribute values in the integration class are defined.
[0199]
In the mapping definition data 14e, attributes having the same value between different data sources A and B are defined as a common key. The attribute name of the data source A and the column name of the data source B are associated with the attribute name of the integrated class defined as the common key.
[0200]
For example, when the value of the column of the data source B is acquired using the value of the attribute of the data source A as a key, the value of the attribute of the data source A marked as a common key is It is used when a value of a column in the data source B is acquired by substituting the value as a column value of the related data source B and using the substituted value as a key.
[0201]
For example, in SyainClass, the common key is “SYAIN_NUM”, the data source A is associated with “uid”, and the data source B is associated with “NUMBER”. Here, when the attribute value of “TEL” in the data source B is acquired by using the attribute value of “cn” of the data source A as a key, the data source A is first searched by using “cn” as a key, thereby The attribute value of the key “uid” can be obtained. Subsequently, by searching the data source B using the obtained attribute value of “uid” as the attribute value of “NUMBER”, the target attribute value of “TEL” can be obtained.
[0202]
Read and Write in the mapping definition data 14e are set to the attribute values or column values of any of the data sources A and B when the Read and Write operations on the attribute values of the integrated object are performed in the data
[0203]
For example, when acquiring the attribute value of “SYAIN_NUM” of SyainClass which is a common key, it is not possible to specify which one of “uid” of data source A and “NUMBER” of data source B should be referred to. It is determined from Read whether to refer to the value from. In the example of Table 16, reference is made from “uid”.
[0204]
Next, a case where the type of the attribute of the integration class is a reference relation in the mapping definition data 14e will be described.
[0205]
If the type of the attribute of the integrated class is a reference relationship, the attribute name, reference source corresponding attribute name, reference destination class name, reference destination corresponding attribute name, and reference correspondence number of this integrated class are defined. The acquisition operation for the attribute of the reference relationship is converted into an operation of acquiring the integrated object of the reference destination class having the value of the reference source correspondence attribute in the reference destination correspondence attribute of the reference destination class.
[0206]
For example, in SyainClass, when an acquisition operation for “SYOZOKU_SOSIKI”, which is the attribute of the reference relationship, is requested, a SosikiClass in which the value of “SYOZOKU_CODE” of SyainClass is included in “SOSIKI_CODE” of SoshikiClass.
[0207]
Next, a case where the type of the attribute of the integration class is a function in the mapping definition data 14e will be described.
[0208]
When the type of the attribute of the integrated class is a function, the attribute name, type, and processing content of the integrated class are defined. For example, when "age" is considered as the attribute name of the function, the function [current date / birth date / birth date] is defined as the processing content.
[0209]
Next, the
[0210]
The
[0211]
Table 17 shows an example of the role definition data 15a.
[0212]
[Table 17]
In the role definition data 15a, a role in which a plurality of authorities are put together and an application associated with the role are defined. In this example, the authority for the
[0213]
Table 18 shows an example of the access control definition data 15b for the role “ROLE01”.
[0214]
[Table 18]
[0215]
Table 19 shows an example of the access control definition data 15c for the role “ROLE02”.
[0216]
[Table 19]
In the access control definition data 15b and 15c, the contents of each role are defined, and the authority for the operation (search, registration, update, and delete) for the class and the operation (Read, Write) for the attribute is defined.
[0219]
FIG. 14 is a block diagram illustrating a first example of a processing flow of the data
[0218]
In FIG. 14, the
[0219]
As a precondition, it is assumed that the
[0220]
In step H1, the operation
[0221]
In step H2, the
[0222]
Specifically, the
[0223]
In step H3, upon receiving the information from the
[0224]
As a result of the search, since the
[0225]
In the mapping definition data 14e, the attribute "NAME" of the integrated class "SyainClass" is associated with the attribute "cn" of the object class "inetOrgPerson" of the data source A. Therefore, if the search key “NAME = TTT” for the integrated class “SyainClass” is searched in the data source A using the search key “cn = TTT” for the data source A, the name “TTT” stored in the data source A is obtained. Data can be obtained. In addition, in order to obtain the data of the name “TTT” stored in the data source B, the attribute having the same value in the data source A and the data source B is referred to by referring to the common key of the mapping definition data 14e in Table 16 above. Find out. The mapping definition data 14e describes that the attribute "uid" of the object class "inetOrgPerson" of the data source A has the same value as the column name "NUMBER" of the table "SYAIN" of the data source B. Therefore, the value of “uid” obtained as a result of the search of the data source A is used as the value of the column name “NUMBER” of the table “SYAIN” of the data source B, and the search key “NUMBER = <uid attribute value” for the data source B is used. If ">" is created and searched, data with the name "TTT" stored in the data source B can be obtained.
[0226]
Therefore, in step H5, the
[0227]
In step H6, the
[0228]
In step H7, the data
[0229]
Specifically, the host is connected to the 389 port having the host name of ldaphost by cn = Directory Manager, and the search is performed using the command “ldapsearch cn = TTT“ objectclass = inetOrgPerson ””.
[0230]
As a result of the search, the attribute values “100001” “TTT@TTT.co.jp” of the “uid”, “mail” and “ou” attributes of the data source A associated with the “SYAIN_NUM”, “MAIL_ADDRESS”, and “SYOZOKU_CODE” attributes of the integrated class "201" and provide it to the
[0231]
At this time, the attribute value of “mobile” corresponding to “KEITAI” of the integrated class is not acquired because there is no access right. Further, an attribute whose attribute type is a reference relation is not acquired unless there is a direct acquisition operation on the attribute.
[0232]
Subsequently, in step H8, the
[0233]
In step H9, the data
[0234]
More specifically, the host name is connected to port 1521 of rdbhost by Admin, and a search is performed using “SELECT * FROM SYNINE WHERE NUMBER = 100001”.
[0235]
As a result of the search, the transaction management unit acquires the attribute values “011-222-3456” and “S” of the “TEL” and “SYOKUI” attributes of the data source B associated with the “TELEPHONE” and “YAKUSYOKU” attributes of the integrated class, and 11 to provide.
[0236]
At this time, the attribute value of "BIRTH" corresponding to the attribute of the integrated class "BIRTHDATE" is not acquired because there is no access right.
[0237]
In step H10, the
[0238]
In the above processing, the order of the data search for the data source A and the data search for the data source B depends on which data source stores the attribute used as the search key for the integrated class. In this embodiment, since the “NAME” attribute of the integrated class is related to the “cn” attribute of the data source A, the data source A is searched. If the search can be performed in parallel, the search may be performed in parallel.
[0239]
In step H11, the
[0240]
In step H12, the
[0241]
FIG. 15 is a block diagram illustrating a second example of the processing flow of the data source integration system according to the present embodiment. In FIG. 15, similarly to FIG. 14, the
[0242]
Steps I1 and I2 are the same as steps H1 and H2 in FIG.
[0243]
In step I3, the
[0244]
As a result of the search, the
[0245]
As described above, by recording the integrated object reflecting and integrating the contents of the different types of data sources in the
[0246]
Even if the same search request is made a plurality of times from different applications, an integrated object is created and recorded at the first search request, so it is necessary to actually access the data source from the second time. Processing speed.
[0247]
(Second embodiment)
In the present embodiment, under the same conditions as those in the first embodiment, the
[0248]
In the present embodiment, it is assumed that the
[0249]
FIG. 16 is a block diagram illustrating an example of a processing flow of the data
[0250]
In step J1, the operation
[0251]
In step J2, the
[0252]
Specifically, the
[0253]
In step J3, when the
[0254]
As a result of the search, since the
[0255]
At this time, in step J5, the
[0256]
In step J6, after the update of the
[0257]
Here, it is assumed that the
[0258]
In step J7, the operation
[0259]
In step J8, when receiving the write command, the
[0260]
In step J9, the
[0261]
Specifically, the "TELEPHONE" and "YAKUSYOKU" attributes of the
[0262]
In step J10, the data
[0263]
Specifically, the host name is connected to the 1521 port having the host name of rdbhost by Admin, and the update is performed using “UPDATE SYAIN SET TEL = 011-222-7890, SYOKUI = SS WHERE SYAIN_NUM = 100001”.
[0264]
In the present embodiment, writing to the data source is performed according to a writing request from the application. However, writing to the data source is performed by batch processing at each writing timing to a predetermined data source, for example, at a specified time. May be performed.
[0265]
(Third embodiment)
In the present embodiment, the employee object of the employee belonging to the organization with the organization code "201" is acquired by the operation from the
[0266]
In this embodiment, it is assumed that the organization object and the employee object to be operated are not recorded in the
[0267]
In the present embodiment, the
[0268]
FIG. 17 is a block diagram illustrating an example of a first-stage processing flow of the data
[0269]
In step K1, the operation
[0270]
In step K2, the
[0271]
Specifically, the
[0272]
In step K3, the
[0273]
As a result of the search, since the
[0274]
In the mapping definition data 14e, the attribute "SOSIKI_CODE" of the integrated class "SosikiClass" is related to the attribute "soshikiCode" of the object class "ldapSosiki" of the data source A and the column name "S_CODE" of the table "SOSIKI" of the data source B. Is attached. Therefore, the search key “SOSIKI_CODE = 201” for the integration class “SosikiClass” is searched in the data source A as the search key “soshikiCode = 201” for the data source A, and the search key “S_CODE = 201” for the data source B is searched. By searching the data source B, the data of the target organization object 25 can be obtained.
[0275]
Therefore, the
[0276]
In steps K6a and K6b, the
[0277]
In step K7, the data
[0278]
Specifically, the host is connected to the 389 port having the host name of ldaphost by cn = Directory Manager, and the search is performed using the command “ldsearchsearch soikicode = 201“ objectclass = ldapSoshiki ””.
[0279]
As a result of the search, the attribute values "somu" and "-(no upper organization)" of the "ou" and "jyoiSoshikiCode" attributes of the data source A associated with the "SOSIKIMEI" and "JYOI_SOSIKI_CODE" attributes of the integrated class are acquired, and the transaction management is performed. Provided to the
[0280]
Also, in step K8, the data
[0281]
Specifically, the host name is connected to the 1521 port having the host name rdbhost by Admin, and the search is performed using the command “SELECT * FROM SOSIKI WHERE S_CODE = 201”.
[0282]
As a result of the search, the attribute value “012-345-1111” of the “TEL” attribute of the data source B associated with the “SOSIKI_TEL” attribute of the integrated class is acquired and provided to the
[0283]
In the above process, the data search for the data source A and the data search for the data source B may be performed in parallel.
[0284]
In step K9, the
[0285]
In the above process, the attribute whose attribute type is the reference relationship is acquired when an acquisition operation is performed on the attribute.
[0286]
In Step K10, the
[0287]
In step K11, the
[0288]
FIG. 18 is a block diagram illustrating an example of a processing flow of the second stage of the data
[0289]
In step L1, the operation
[0290]
In step L2, the
[0291]
In step L3, the
[0292]
In step L4, in the case of the attribute of the reference relationship, the
[0293]
Here, the
[0294]
As a result of the search, since the employee objects 24a to 24c are not recorded in the
[0295]
In the mapping definition data 14e, the attribute "SYOZOKU_CODE" of the integrated class "SyainClass" is related to the attribute "ou" of the object class "inetOrgPerson" of the data source A. Therefore, if data in the data source A is searched using the search key “SYOZOKU_CODE = 201” for the integrated class “SyainClass” and the search key “ou = 201” for the data source A, the affiliation code “ 201 "can be obtained. Further, in order to acquire the data of the belonging code “201” stored in the data source B, the attribute having the same value in the data source A and the data source B is referred to by referring to the common key of the mapping definition data 14e in Table 16 above. Find out. In the mapping definition data 14e, the attribute "uid" of the object class "inetOrgPerson" of the data source A and the column name "NUMBER" of the table "SYAIN" of the data source B have the same value. Therefore, the value of “uid” obtained as a result of the search of the data source A is used as the value of the column name “NUMBER” of the table “SYAIN” of the data source B, and the search key “NUMBER = <uid attribute value” for the data source B If ">" is retrieved, the data of the belonging code "201" stored in the data source B can be obtained.
[0296]
Therefore, in step L6, the
[0297]
In step L7, the
[0298]
In step L8, the data
[0299]
As a result of the search, the attribute values of the “uid”, “mail”, and “mobile” attributes of the data source A associated with “SYAIN_NUM”, “MAIL_ADDRESS”, and “KETIAI” of the integrated class are obtained, and provided to the
[0300]
Specifically, [“uid = 100001”, “mial=TTT@TTT.co.jp”, “mobile = 01-11111-1111”], [“uid = 100002”, “mial=JJJ@JJJ.co.jp” The data of “mobile = 01-2222-2222”], [“uid = 100003”, “mial=SSS@SSS.co.jp”, “mobile = 01-3333-3333”] are sent to the
[0301]
Subsequently, in Step L9, the
[0302]
In step L10, the data
[0303]
As a result of the search, the attribute values of the “TEL”, “SYOKUI”, and “BIRTH” attributes of the data source B associated with the integrated classes “TELEPHONE”, “YAKUSYOKU”, and “BIRTHDATE” are acquired and provided to the
[0304]
Specifically, ["TEL = 011-222-3456", "SYOKUI = S", "BIRTH = 1965/1/01/01"], ["TEL = 011-222-3456", "SYOKUI = E", "BIRTH = 1970" 05/12 "], [" TEL = 011-222-3456 "," SYOKUI = E "," BIRTH = 1973/03/07 "] are provided to the
[0305]
In step L11, the
[0306]
In step L12, the
[0307]
In step L13, the employee objects 24a to 24c are returned to the
[0308]
FIG. 19 is a block diagram illustrating an example of a processing flow of the third stage of the data
[0309]
In step M1, the operation
[0310]
In step M2, the
[0311]
In step M3, the updating
[0312]
【The invention's effect】
As described in detail above, in the present invention, the contents of a plurality of data sources are unified and managed, and data can be managed efficiently.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an example of a configuration of a data source integration system according to a first embodiment of the present invention.
FIG. 2 is an exemplary block diagram showing a detailed example of an object processing unit according to the embodiment;
FIG. 3 is an exemplary view showing an example of the relationship between the contents of a data source and an integrated class according to the embodiment;
FIG. 4 is an exemplary view showing an example of an integrated class in which a reference relationship between a plurality of classes is defined in the embodiment;
FIG. 5 is an exemplary block diagram showing a first example of an operation concept of the data source integration system according to the embodiment;
FIG. 6 is an exemplary block diagram showing a second example of the operation concept of the data source integration system according to the embodiment;
FIG. 7 is an exemplary block diagram showing a third example of the operation concept of the data source integration system according to the embodiment;
FIG. 8 is a block diagram showing a fourth example of the operation concept of the data source integration system according to the embodiment;
FIG. 9 is an exemplary block diagram showing a fifth example of the operation concept of the data source integration system according to the embodiment;
FIG. 10 is an exemplary flowchart illustrating an example of processing of the data source integration system according to the embodiment;
FIG. 11 is a block diagram showing an example of a configuration of a data source integration system according to a second embodiment of the present invention.
FIG. 12 is an exemplary flowchart illustrating an example of processing of the data source integration system according to the embodiment;
FIG. 13 is a block diagram showing an example of a tree configuration of a data source used in the first embodiment of the present invention.
FIG. 14 is an exemplary block diagram showing a first example of the processing flow of the data source integration system according to the embodiment;
FIG. 15 is an exemplary block diagram showing a second example of the processing flow of the data source integration system according to the embodiment;
FIG. 16 is a block diagram showing an example of a processing flow of the data source integration system according to the second embodiment of the present invention.
FIG. 17 is a block diagram showing an example of a first-stage processing flow of the data source integration system according to the third embodiment of the present invention;
FIG. 18 is an exemplary block diagram illustrating an example of a process flow of a second stage of the data source integration system according to the embodiment.
FIG. 19 is an exemplary block diagram illustrating an example of a processing flow of a third stage of the data source integration system according to the embodiment;
FIG. 20 is a diagram in which the contents of a data source are converted into objects.
[Explanation of symbols]
3, 20: data source integration system, 4a to 4c: application, 6: recording medium, 6a, 6b: data source integration program, 7: operation content analysis unit, 8: access control unit, 9: object processing unit, 10 ... Write management unit, 11: Transaction management unit, 12a to 12c: Data source access unit, 13a to 13c: Recording device, 14: Definition data, 15: Access control data, A to C: Data source, 9a: Definition data read Section, 9b ... search section, 9c ... generation section, 9d ... update section, 9e ... registration section, 9f ... deletion section, 9g ... exclusive control section, 9h ... writing section
Claims (13)
命令発信元からデータ操作命令を受け付ける受付機能、
前記受付機能により受け付けられた前記操作命令にしたがって、予め記録手段に記録された複数の異なる種別のデータソースからデータを生成する生成機能、を実現させ、
前記データソースは、管理されるデータ及び管理形態の情報を含むことを特徴とするデータソース統合プログラム。On the computer,
A reception function for receiving data operation commands from the command source,
According to the operation command received by the receiving function, a generation function of generating data from a plurality of different types of data sources recorded in advance in the recording unit,
The data source integration program, wherein the data source includes data to be managed and information of a management form.
命令発信元からデータ操作命令を受け付ける受付機能、
前記データ操作命令によって検索が要求されている場合、複数の異なる種別のデータソースにしたがって生成され記録手段に記録されている統合データの中から、前記データ操作命令によって指定されている検索対象のデータを含む統合データを検索し、前記検索対象のデータを含む統合データが検索された場合に、検索された統合データを前記命令発信元に提供する検索機能、
前記検索対象のデータを含む統合データが検索されなかった場合、前記複数の異なる種別のデータソースに基づいて統合データを生成し、生成された統合データを前記記録手段に記録するとともに前記命令発信元に提供する生成機能、
を実現させ、
前記データソースは、管理されるデータ及び管理形態の情報を含むことを特徴とするデータソース統合プログラム。On the computer,
A reception function for receiving data operation commands from the command source,
When a search is requested by the data operation command, data to be searched specified by the data operation command is selected from integrated data generated according to a plurality of different types of data sources and recorded in the recording unit. A search function for searching integrated data including, when integrated data including the search target data is searched, providing the searched integrated data to the command source,
When the integrated data including the search target data is not searched, the integrated data is generated based on the plurality of different types of data sources, the generated integrated data is recorded in the recording unit, and the command source is generated. Generation function provided to
To realize
The data source integration program, wherein the data source includes data to be managed and information of a management form.
コンピュータに、
前記データ操作命令によって更新が要求されている場合、前記データ操作命令で指定されている更新内容にしたがって、前記記録手段に記録されている統合データの内容を更新する更新機能を実現させる
ことを特徴とするデータソース統合プログラム。The program according to claim 2,
On the computer,
When an update is requested by the data operation instruction, an update function of updating the contents of the integrated data recorded in the recording unit according to the update content specified by the data operation instruction is realized. And a data source integration program.
コンピュータに、
前記データ操作命令によって登録が要求されている場合、前記データ操作命令で指定されているデータを含む統合データを前記記録手段に記録する登録機能を実現させる
ことを特徴とするデータソース統合プログラム。In the program according to claim 2 or 3,
On the computer,
A data source integration program for realizing a registration function of recording integrated data including data specified by the data operation instruction in the recording unit when registration is requested by the data operation instruction.
コンピュータに、
前記データ操作命令によって削除が要求されている場合、前記データ操作命令で指定されているデータを前記記録手段から削除する削除機能を実現させるためのデータソース統合プログラム。The program according to any one of claims 2 to 4,
On the computer,
A data source integration program for realizing a deletion function of deleting data specified by the data operation instruction from the recording unit when deletion is requested by the data operation instruction.
コンピュータに、
前記データ操作命令に対応するデータソース操作命令を前記複数のデータソースに提供するトランザクション管理機能を実現させることを特徴とするデータソース統合プログラム。The program according to any one of claims 2 to 5,
On the computer,
A data source integration program for realizing a transaction management function of providing a data source operation instruction corresponding to the data operation instruction to the plurality of data sources.
コンピュータに、
前記データ操作命令とは別のタイミングで前記トランザクション管理機能に対して前記データ操作命令を提供する書込機能を実現させることを特徴とするデータソース統合プログラム。The program according to claim 6,
On the computer,
A data source integration program for realizing a writing function of providing the data operation instruction to the transaction management function at a timing different from the data operation instruction.
コンピュータに、
前記記録手段に記録されている統合データに対する排他制御を行う排他制御機能を実現させることを特徴とするデータソース統合プログラム。The program according to any one of claims 2 to 7,
On the computer,
A data source integration program for realizing an exclusive control function of performing exclusive control on integrated data recorded in the recording means.
前記統合データの形式は、前記複数のデータソースの統合後の内容を表す統合クラスで定義され、
前記統合データは、前記統合クラスに基づいて生成される統合オブジェクトである
ことを特徴とするデータソース統合プログラム。The program according to any one of claims 2 to 8,
The format of the integrated data is defined by an integrated class representing the integrated content of the plurality of data sources,
The integrated data is an integrated object generated based on the integrated class.
前記統合クラスは、複数のクラス間における参照関係の定義内容を含むことを特徴とするデータソース統合プログラム。The program according to claim 9,
The data source integration program according to claim 1, wherein the integration class includes definition contents of a reference relationship between a plurality of classes.
前記統合クラスは、前記複数のデータソースの内容に基づいて統合後の内容を算出する関数の定義内容を含むことを特徴とするデータソース統合プログラム。In the program according to claim 9 or 10,
The data source integration program according to claim 1, wherein the integration class includes a definition of a function for calculating integrated content based on the content of the plurality of data sources.
前記データ操作命令によって検索が要求されている場合、前記記録手段に記録されている統合データの中から、前記データ操作命令によって指定されている検索対象のデータを含む統合データを検索し、前記検索対象のデータを含む統合データが検索された場合に、検索された統合データを前記命令発信元に提供する検索手段と、
前記検索対象のデータを含む統合データが検索されなかった場合、前記複数の異なる種別のデータソースに基づいて統合データを生成し、生成された統合データを前記記録手段に記録するとともに前記命令発信元に提供する生成手段と
を具備し、
前記データソースは、管理されるデータ及び管理形態の情報を含むことを特徴とするデータソース統合システム。Receiving means for receiving a data operation command from a command source; recording means for recording integrated data generated according to a plurality of different types of data sources;
When a search is requested by the data operation instruction, integrated data including search target data specified by the data operation instruction is searched from the integrated data recorded in the recording unit, and the search is performed. When integrated data including target data is searched, a search unit that provides the searched integrated data to the command source,
When the integrated data including the search target data is not searched, the integrated data is generated based on the plurality of different types of data sources, the generated integrated data is recorded in the recording unit, and the command source is generated. Generating means for providing
The data source integration system, wherein the data source includes data to be managed and information of a management form.
命令発信元からデータ操作命令を受け付け、
前記データ操作命令によって検索が要求されている場合、複数の異なる種別のデータソースにしたがって生成され記録手段に記録されている統合データの中から、前記データ操作命令によって指定されている検索対象のデータを含む統合データを検索する処理を実行し、
前記検索対象のデータを含む統合データが検索された場合に、検索された統合データを前記命令発信元に提供し、前記検索対象のデータを含む統合データが検索されなかった場合、前記複数の異なる種別のデータソースに基づいて統合データを生成し、生成された統合データを前記記録手段に記録するとともに前記命令発信元に提供する
ことを特徴とする方法。A method of managing data from a plurality of data sources by a computer,
Receiving a data operation command from the command source,
When a search is requested by the data operation command, data to be searched specified by the data operation command is selected from integrated data generated according to a plurality of different types of data sources and recorded in the recording unit. Execute the process of searching for integrated data including
When the integrated data including the search target data is searched, the searched integrated data is provided to the command source, and when the integrated data including the search target data is not searched, the plurality of different A method for generating integrated data based on a data source of a type, recording the generated integrated data in the recording unit, and providing the generated integrated data to the command source.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003050094A JP2004259066A (en) | 2003-02-26 | 2003-02-26 | Data source integrating program, system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003050094A JP2004259066A (en) | 2003-02-26 | 2003-02-26 | Data source integrating program, system and method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004259066A true JP2004259066A (en) | 2004-09-16 |
Family
ID=33115604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003050094A Pending JP2004259066A (en) | 2003-02-26 | 2003-02-26 | Data source integrating program, system and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004259066A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015870A (en) * | 2006-07-07 | 2008-01-24 | Fujitsu Social Science Laboratory Ltd | Data processor having layout conversion function, data management part program, and recording medium recording its program |
JP5310737B2 (en) * | 2008-12-11 | 2013-10-09 | 富士通株式会社 | Configuration management apparatus, configuration management program and method |
JP2020053052A (en) * | 2018-09-24 | 2020-04-02 | セールスフォース ドット コム インコーポレイティッド | User interface for commerce architecture |
-
2003
- 2003-02-26 JP JP2003050094A patent/JP2004259066A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015870A (en) * | 2006-07-07 | 2008-01-24 | Fujitsu Social Science Laboratory Ltd | Data processor having layout conversion function, data management part program, and recording medium recording its program |
JP5310737B2 (en) * | 2008-12-11 | 2013-10-09 | 富士通株式会社 | Configuration management apparatus, configuration management program and method |
JP2020053052A (en) * | 2018-09-24 | 2020-04-02 | セールスフォース ドット コム インコーポレイティッド | User interface for commerce architecture |
JP7390145B2 (en) | 2018-09-24 | 2023-12-01 | セールスフォース インコーポレイテッド | User interface for commerce architecture |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7599948B2 (en) | Object relational mapping layer | |
US7739223B2 (en) | Mapping architecture for arbitrary data models | |
US6240422B1 (en) | Object to relational database mapping infrastructure in a customer care and billing system | |
US7376658B1 (en) | Managing cross-store relationships to data objects | |
JP5589205B2 (en) | Computer system and data management method | |
US6338069B1 (en) | Method and apparatus for managing functions | |
US6675160B2 (en) | Database processing method, apparatus for carrying out the same and medium storing processing program | |
US20060200486A1 (en) | System and method for supporting non-native data types in a database API | |
US20110035391A1 (en) | Uniform Data Model and API for Representation and Processing of Semantic Data | |
KR20060045622A (en) | Extraction, transformation and loading designer module of a computerized financial system | |
US9171036B2 (en) | Batching heterogeneous database commands | |
US20050289167A1 (en) | Impact analysis in an object model | |
CA2427209A1 (en) | Optimization of queries on views defined by conditional expressions having mutually exclusive conditions | |
JP4483034B2 (en) | Heterogeneous data source integrated access method | |
JP2004110219A (en) | Data processing system and join processing method | |
US20200334244A1 (en) | Bidirectional mapping of hierarchical data to database object types | |
US6401100B1 (en) | Method for associating classes contained in the same or different models | |
US20060095513A1 (en) | Hypermedia management system | |
JPH03196364A (en) | Document retrieving method | |
US20060190476A1 (en) | Database storage system and associated method | |
JP2004259066A (en) | Data source integrating program, system and method | |
CN101419611A (en) | Method for performing an operation on an XML database | |
JP2000090105A (en) | Document managing method and document management and retrieval system | |
KR20020066151A (en) | Spatial information distributing system based on open gis and method thereof | |
US7769750B2 (en) | Metadata based hypermedia management system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060111 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090309 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090421 |