JP2004259066A - Data source integrating program, system and method - Google Patents

Data source integrating program, system and method Download PDF

Info

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
Application number
JP2003050094A
Other languages
Japanese (ja)
Inventor
Hiroki Mukoyama
弘樹 向山
Seiichiro Tanaka
誠一郎 田中
Chieko Kobayashi
智恵子 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003050094A priority Critical patent/JP2004259066A/en
Publication of JP2004259066A publication Critical patent/JP2004259066A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To efficiently manage data by unifying contents of a plurality of data sources. <P>SOLUTION: In this data source integrated program 6a, a reception function 7 receiving a data operating command from a command source and a generation function generating data from a plurality of data sources A-C of different classes recorded in recording means 27A-27C in advance according to the operating instructions received by the reception function 7 are realized in a computer, and the data sources A-C comprise information on managed data and a management form. <P>COPYRIGHT: (C)2004,JPO&NCIPI

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】

Figure 2004259066
【0160】
表2は、企業エントリe2の例である。
【0161】
【表2】
Figure 2004259066
【0162】
表3は、組織エントリe3の例である。
【0163】
【表3】
Figure 2004259066
【0164】
表4は、組織エントリe4の例である。
【0165】
【表4】
Figure 2004259066
【0166】
表5は、社員エントリe5の例である。
【0167】
【表5】
Figure 2004259066
【0168】
表6は、社員エントリe6の例である。
【0169】
【表6】
Figure 2004259066
【0170】
表7は、社員エントリe7の例である。
【0171】
【表7】
Figure 2004259066
【0172】
表8は、社員エントリe8の例である。
【0173】
【表8】
Figure 2004259066
次に、データソースBについて説明する。
【0174】
このデータソースBは、企業テーブルt1、組織テーブルt2、社員テーブルt3という3種類のテーブルを管理するとする。
【0175】
表9は、企業テーブルt1の例である。
【0176】
【表9】
Figure 2004259066
【0177】
表10は、組織テーブルt2の例である。
【0178】
【表10】
Figure 2004259066
【0179】
表11は、社員テーブルt3の例である。
【0180】
【表11】
Figure 2004259066
【0181】
次に、定義データ14について説明する。
【0182】
定義データ14は、例えばデータソース接続定義データ14a、データソースアクセス方法定義データ14b、各データソースA、Bに関するデータソース定義データ14c、14dなどのようなデータソース自体についてのデータと、マッピング定義データ14eを具備する。
【0183】
データソース接続定義データ14aの例を表12に示す。
【0184】
【表12】
Figure 2004259066
データソース接続定義データ14aには、データソース名、データソースの種別、ホスト名、ポート、Bind User、Passwordなどの各データソースA、Bに接続するために必要な情報が定義される。
【0185】
データソースアクセス方法定義データ14bの例を表13に示す。
【0186】
【表13】
Figure 2004259066
データソースアクセス方法定義データ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】
Figure 2004259066
データソース定義データ14cには、データソースAのオブジェクトクラス名、属性名、型、必須、主キーが定義される。
【0191】
一方、データソースBに係るデータソース定義データ14dの例を表15に示す。
【0192】
【表15】
Figure 2004259066
データソース定義データ14dには、データソースBのテーブル名、列名、型、必須、主キーが定義される。
【0193】
マッピング定義データ14eの例を表16に示す。
【0194】
【表16】
Figure 2004259066
マッピング定義データ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】
Figure 2004259066
ロール定義データ15aでは、複数の権限をまとめたロールと、そのロールに対応付けられるアプリケーションが定義される。この例では、アプリケーション4aについての権限がまとめられてロール「ROLE01」とされ、アプリケーション4bについての権限がまとめられてロール「ROLE02」とされる。
【0213】
表18に、ロール「ROLE01」についてのアクセス制御定義データ15bの例を示す。
【0214】
【表18】
Figure 2004259066
【0215】
表19に、ロール「ROLE02」についてのアクセス制御定義データ15cの例を示す。
【0216】
【表19】
Figure 2004259066
アクセス制御定義データ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 certain data source 1a recorded in a certain recording device 28a into an object 2a and managing the data has already been proposed. By using this technique, data can be individually objectized and managed for each of the data sources 1a to 1c recorded in each of the recording devices 28a to 28c.
[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 different data sources 1a to 1c, the system stores target data in an object generated from any data source. It is necessary to always keep track of Further, when an update of a certain data is requested, the system relates to the data to be updated among the objects 2a to 2c generated from the plurality of types of data sources 1a to 1c at the requested update timing. Update processing is performed on all objects. For this reason, many processes are concentrated and the processing speed may be reduced.
[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 source integration system 3 operates between the applications 4a to 4c and the recording devices 27A to 27C that record the data sources A to C. The applications 4a to 4c are command sources, but for example, a user or the like may be the command source.
[0021]
In the present embodiment, a case will be described in which there are three applications 4a to 4c and three data sources A to C. However, the number of applications may be one or more and the number of data sources may be plural.
[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 integration system 3 reads the data source integration program 6a recorded on the recording medium 6 and executes the data source integration program 6a, so that the operation content analysis unit 7, the access control unit 8, the object processing unit 9, the write management unit 10, The functions as the transaction management unit 11 and the data source access units 12a to 12c are realized. The data source integration system 3 includes recording devices 13a to 13c.
[0024]
The processing mode of the data source integration system 3 is of an interpreter type that receives a data operation command and executes processing while referring to the definition data 14 recorded in the recording device 13b as necessary.
[0025]
The operation content analysis unit 7 receives a data operation command from the command source, analyzes the operation content indicated by the data operation command, and provides the operation content to the access control unit 8.
[0026]
Further, the operation content analysis unit 7 provides various data or messages received from the object processing unit 9 via the access control unit 8 to the command source.
[0027]
The access control unit 8 refers to the access control data 15 recorded in the recording device 13a and determines whether or not the command source has authority for the operation content analyzed by the operation content analysis unit 7.
[0028]
When determining that the access control unit 8 has the authority, the access control unit 8 provides the operation content to the object processing unit 9, receives a result corresponding to the operation content from the object processing unit 9, and provides the result to the operation content analysis unit 7.
[0029]
On the other hand, if the access control unit 8 determines that the user does not have the right, the access control unit 8 provides a message indicating that the user does not have the right to the command source via the operation content analysis unit 7.
[0030]
As shown in FIG. 2, the object processing unit 9 includes a definition data reading unit 9a, a searching unit 9b, a generating unit 9c, an updating unit 9d, a registering unit 9e, a deleting unit 9f, an exclusive control unit 9g, and a writing unit 9h. I do.
[0031]
The definition data reading unit 9a reads the definition data 14 recorded in the recording device 13b in response to a request from another part of the object processing unit 9, and returns the read definition data 14 to the request destination.
[0032]
When the operation content received from the operation content analysis unit 7 via the access control unit 8 represents a data search request, the search unit 9b searches the recording device 13c for an integrated object including the search target data.
[0033]
When the integrated unit including the search target data can be searched from the recording device 13c, the search unit 9b provides the searched integrated object to the command source via the access control unit 8 and the operation content analysis unit 7.
[0034]
On the other hand, if the integrated object including the data to be searched is not recorded in the recording device 13c and cannot be searched, the search unit 9b provides the operation content to the generation unit 9c.
[0035]
When the integrated object including the search target data is not recorded in the recording device 13c, the generation unit 9c reads the definition data 14 recorded in the recording device 13b via the definition data reading unit 9a, and reads the definition data 14 from the transaction management unit 11 and The data sources A to C are searched via the data source access units 12a to 12c.
[0036]
Further, the generation unit 9c generates an integrated object including data to be searched based on the integrated class defined by the definition data 14 and the search results of the data sources A to C, and accesses the generated integrated object. The information is provided to the command source via the control unit 8 and the operation content analysis unit 7 and is recorded in the recording device 13c.
[0037]
When the operation content indicates a request for updating the integrated object, the update unit 9d updates the content of the integrated object of the recording device 13c according to the update content specified by the data operation instruction.
[0038]
The update unit 9d provides a message indicating the result of the update process to the command source via the access control unit 8 and the operation content analysis unit 7.
[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 recording device 13c.
[0040]
The registration unit 9e provides a message indicating the result of the registration process to the command source via the access control unit 8 and the operation content analysis unit 7.
[0041]
When the operation content indicates a data deletion request, the deletion unit 9f deletes the data to be deleted from the recording device 13c by the data operation command.
[0042]
Further, the deletion unit 9f provides a message indicating the result of the deletion process to the command source via the access control unit 8 and the operation content analysis unit 7.
[0043]
The exclusive control unit 9g executes exclusive control for ensuring data consistency when an operation is performed on the integrated object recorded in the recording device 13c.
[0044]
That is, when the search unit 9b, the generating unit 9c, the updating unit 9d, the registering unit 9e, and the deleting unit 9f perform an operation on the integrated object recorded on the recording device 13c, the exclusive control unit 9g Prohibit (lock) work from.
[0045]
When the writing unit 9h receives a command from the writing management unit 10 at the time when the content of the integrated object recorded in the recording device 13c is reflected on the data sources A to C, the writing unit 9h records the integrated object recorded in the recording device 13c. The object is read and returned to the write management unit 10.
[0046]
When a predetermined event occurs, the writing management unit 10 provides an instruction to the writing unit 9h of the object processing unit 9, receives an integrated object recorded in the recording device 13c as a response, and receives the received integrated object. An operation instruction for reflecting the contents of the object in the data sources A to C is provided to the transaction management unit 11.
[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 transaction management unit 11 receives a data source operation command such as a search command from the generation unit 9c of the object processing unit 9 and an operation command from the write management unit 10, and based on the definition data 14 recorded in the recording device 13b. , Which data source is recorded in which data source, and distributes the data source operation instruction to the data source access units 12a to 12c.
[0049]
When receiving the search result for the search command from the data source access units 12a to 12c, the transaction management unit 11 provides the search result to the generation unit 9c.
[0050]
When each of the data source access units 12a to 12c receives the data source operation command from the transaction management unit 11, the data source access units 12a to 12c read the definition data 14 of the recording device 13b.
[0051]
Each of the data source access units 12a to 12c converts a data source operation instruction into an operation instruction corresponding to the data source A to C corresponding to the data source based on the definition data 14, and converts the converted operation instruction to each data source. Provide to sources AC.
[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 access units 12a to 12c.
[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 employee class 16 is defined as an integrated class. The attributes of the employee class 16 include “employee number”, “name”, “affiliation”, “employee number”, “birth date”, “telephone number”, “hobby”, “hobby” included in the data sources A to C. License information "is defined.
[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 employee object 17 which is an integrated object is generated based on the integrated class.
[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 organization class 18 and an employee class 16 are defined. The organization class 18 refers to the organization class 18. Thereby, the hierarchical relationship of the organization can be represented. Each organization class 18 refers to the employee class 16. Thereby, the employees belonging to each organization can be represented.
[0060]
In this example, 0 (no superior organization) or one organization class generated based on the organization class 18 is defined in the attribute “super organization” of the organization class 18.
[0061]
Further, 0 or more employee classes generated based on the employee class 16 are defined in the attribute “organization member” of the organization class.
[0062]
FIG. 5 is a block diagram showing a first example of the operation concept of the data source integration system 3.
[0063]
FIG. 5 shows an outline of an operation when a search for data not recorded in the recording device 13c is requested. Although FIG. 5 shows a case where a search for the same integrated object is requested from different applications 4a and 4b, the same applies to a case where a search for the same integrated object is requested a plurality of times from the same application.
[0064]
In step A1, the operation content analysis unit 7 of the data source integration system 3 receives a search request for the employee object 17a of the employee number "123" from the application 4a.
[0065]
In step A2, the search unit 9b of the data source integration system 3 searches the recording device 13c for the employee object 17a of the employee number "123".
[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 recording device 13c at this time.
[0067]
In step A3, the generation unit 9c of the data source integration system 3 searches data required for generating the employee object 17a of the employee number "123" for the plurality of data sources A to C based on the employee class, The employee object 17a of the employee number "123" is generated.
[0068]
In step A4, the generation unit 9c of the data source integration system 3 returns the generated employee object 17a of the employee number "123" to the application 4a via the access control unit 8 and the operation content analysis unit 7, and sends the generated employee object 17a to the recording device 13c. Record.
[0069]
In step A5, the operation content analysis unit 7 of the data source integration system 3 receives a search request for the employee object 17a with the employee number "123" from the application 4b.
[0070]
In step A6, the search unit 9b of the data source integration system 3 searches the recording device 13c for the employee object 17a of the employee number "123".
[0071]
At this point, since the employee object 17a with the employee number "123" is recorded in the recording device 13c in step A4, the search unit 9b can retrieve the employee object 17a with the employee number "123" from the recording device 13c.
[0072]
In step A7, the search unit 9b of the data source integration system 3 returns the searched employee object 17a of the employee number "123" to the application 4b.
[0073]
As described above, the search can be performed at high speed by returning the integrated object in the data source integration system 3 to the application 4b without accessing the data sources A to C.
[0074]
FIG. 6 is a block diagram showing a second example of the operation concept of the data source integration system 3.
[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 content analysis unit 7 of the data source integration system 3 receives from the application 4a a search request for “superordinate organization” in the organization object 19a with the organization name “general affairs section”.
[0077]
Here, in the example of FIG. 6, it is assumed that the organization object 19a of the organization name “General Affairs Division” is recorded in the recording device 13c at this time. Further, it is assumed that “general affairs department” is defined as an upper organization in the organization object 19a of the organization name “general affairs section”.
[0078]
In step B2, the search unit 9b of the data source integration system 3 searches the recording device 13c for the organization object 19a of the organization name "General Affairs Section" and acquires the organization object 19a of the organization name "General Affairs Section".
[0079]
In step B3, the search unit 9b searches for the organization object 19b of the “general affairs department” specified by “superordinate organization” of the organization object 19a of the organization name “general affairs section”.
[0080]
Here, in the example of FIG. 6, it is assumed that the organization object 19b of the organization name “general affairs department” is not recorded in the recording device 13c at this time.
[0081]
In step B4, the generation unit 9c of the data source integration system 3 searches a plurality of data sources A to C, and generates an organization object 19b having an organization name of “general affairs department”.
[0082]
In step B5, the generation unit 9c of the data source integration system 3 returns the generated organization object 19b of the organization name “general affairs department” to the application 4a and records it on the recording device 13c.
[0083]
FIG. 7 is a block diagram showing a third example of the operation concept of the data source integration system 3.
[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 employee object 17a is requested will be described as an example, but the same applies to a case where a search, registration, deletion, or the like of an integrated object is requested.
[0086]
In step C1, the operation content analysis unit 7 of the data source integration system 3 receives a first update request for the employee object 17a with the employee number "123" from the application 4a.
[0087]
In step C2, the exclusive control unit 9g of the data source integration system 3 occupies the employee object 17a of the employee number "123" only for the first update request.
[0088]
In step C3, the updating unit 9d of the data source integration system 3 updates the employee object 17a of the employee number “123” recorded in the recording device 13c according to the first update instruction.
[0089]
Here, in the example of FIG. 7, during the update of the employee object 17a of the employee number "123" based on the first update instruction, a second update request of the employee object 17a of the employee number "123" is transmitted from the application 4b. Suppose.
[0090]
In step C4, the operation content analysis unit 7 of the data source integration system 3 receives a second update request for the employee object 17a with the employee number "123" from the application 4b.
[0091]
In step C5, the exclusive control unit 9g of the data source integration system 3 rejects the second update request in order to occupy the employee object 17a of the employee number "123" for only the first update request.
[0092]
In step C6, the updating unit 9d of the data source integration system 3 provides an error message to the application 4b.
[0093]
Note that the exclusive control unit 9g also locks in units of data operation instructions when receiving a plurality of data operation instructions for the same integrated object from the same application.
[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 source integration system 3.
[0096]
In FIG. 8, a case will be described as an example where after the registration of the employee object 17a is requested, the contents of the employee object 17a are reflected on the data sources A to C. However, the update and deletion of the employee object 17a are requested. The same applies to the case where
[0097]
In step D1, the operation content analysis unit 7 of the data source integration system 3 receives a registration request for the employee object 17a with the employee number "123" from the application 4a.
[0098]
In step D2, the registration unit 9e of the data source integration system 3 records the employee object 17a of the employee number "123" on the recording device 13a.
[0099]
In step D3, the write management unit 10 of the data source integration system 3 sends a registration request for the employee object 17a with the employee number "123" at a different timing from the registration of the employee object 17a with the recording device 13c. To be reflected in the contents of the data sources A to C.
[0100]
For example, when a write command is received from the application 4a, the write management unit 10 reads the employee object 17a recorded in the recording device 13c via the writing unit 9h of the object processing unit 9, and reads the employee object 17a. May be provided to the data sources A to C via the transaction management unit 11 and the data source access units 12a to 12c to reflect the contents of the data sources A to C to the contents of the data sources A to C. Further, the writing management unit 10 reads out the employee object 17a recorded in the recording device 13c via the writing unit 9h of the object processing unit 9 by a batch process based on time designation, and writes the contents of the employee object 17a to each data. Operation instructions for reflecting the contents of the sources A to C may be provided to the data sources A to C via the transaction management unit 11 and the data source access units 12a to 12c.
[0101]
As described above, by changing the data sources A to C at a different timing from the change (registration, update, deletion) of the recording device 13c, when the number of processes in the data source integration system 3 is small or when the data sources A to C When the number of data operations to the data sources is small, the data operation to the data sources A to C can be performed from the data source integration system 3. Thereby, the apparent processing speed can be improved. Note that the meaning of “a timing different from the data operation instruction” includes a change in the recording device 13c and a change at a different timing.
[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 source integration system 3.
[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 transaction management unit 11 and the data source access units 12a to 12c.
[0106]
The recording device 13c of the data source integration system 3 records an employee object 17a with an employee number “123”. The attribute "telephone number" of the employee object 17a having the employee number "123" has an attribute value "123-456-7890", and the attribute "affiliation" has an attribute value "accounting department".
[0107]
In step E1, the operation content analysis unit 7 of the data source integration system 3 receives an update request for the employee object 17a with the employee number "123" from the application 4a.
[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 source integration system 3 reads the employee object 17a of the employee number "123" from the recording device 13c, updates the employee object 17a to the content specified by the update request, and updates the updated employee number "123". Is recorded in the recording device 13c.
[0110]
In step E3, the writing management unit 10 of the data source integration system 3 acquires the employee object 17a via the writing unit 9h of the object processing unit 9 at a different timing from the update of the integrated object in the recording device 13c. The operation content is provided to the transaction management unit 11.
[0111]
In step E4, the transaction management unit 11 of the data source integration system 3 provides a data source operation command to each of the data source access units 12a to 12c according to the operation content and the definition data 14.
[0112]
In step E5, each of the data source access units 12a to 12c of the data source integration system 3 converts the data source operation instruction based on the definition data 14, and converts the converted data source operation instruction to the data source A, B.
[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 source access unit 12a, and the telephone number of the employee number "123" is obtained by the data source access unit 12b. An operation command for converting the number into “111-222-3456” is obtained.
[0114]
FIG. 10 is a flowchart illustrating an example of processing of the data source integration system 3. FIG. 10 illustrates a case where a search is requested.
[0115]
In step F1, the operation content analysis unit 7 receives a data operation command from a command source and analyzes the operation content.
[0116]
In step F2, the access control unit 8 refers to the access control data 15 and determines whether to restrict the operation requested by the command source. If the operation is to be restricted, the process ends.
[0117]
If the operation is permitted, in step F3, the search unit 9b of the object processing unit 9 searches the recording device 13c for an integrated object to be searched.
[0118]
In step F4, the search unit 9b of the object processing unit 9 determines whether the integrated object to be searched has been searched. If it is determined that the search has been performed, the search unit 9b provides the searched integrated object to the request source, and step F8 is executed.
[0119]
If it is determined that the search is not performed, in step F5, the definition data reading unit 9a reads the definition data 14, and in step F6, the generation unit 9c transmits the data sources A to D via the data source access units 12a to 12c. Read the contents of C.
[0120]
In step F7, the generation unit 9c determines, based on the definition data 14 read by the definition data reading unit 9a and the contents of the data sources A to C read by the transaction management unit 11 and the data source access units 12a to 12c. An integrated object to be searched is generated, recorded in the recording device 13c, and provided to the request source.
[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 update unit 9d updates the integrated object to be updated recorded in the recording device 13c.
[0123]
When the operation content is registration of an integrated object, the registration unit 9e registers the integrated object to be registered in the recording device 13c.
[0124]
When the operation content is the deletion of the integrated object, the deletion unit 9f deletes the data to be deleted from the integrated object of the recording device 13c.
[0125]
In the process of registration, update, and deletion, in step F8, the write management unit 10 determines whether to write the changed content of the recording device 13c to the data sources A to C.
[0126]
When writing to the data sources A to C, in step F9, the write management unit 10 changes the contents of the data sources A to C via the transaction management unit 11 and the data source access units 12a to 12c.
[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 source integration system 3, the number of accesses to the data sources A to C can be reduced, and the data operation can be performed at high speed. And efficiency.
[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 source integration system 3 can perform high-speed processing, data operation can be speeded up and data can be efficiently saved. Can manage.
[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 definition data 14 are pre-installed in a data source integration program will be described.
[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 definition data 14 is incorporated in the data source integration program 6b recorded on the recording medium.
[0138]
The data source integration system 20 includes a compiler 21 (processing program creation unit).
[0139]
The data source integration program 6b is compiled by the compiler 21 and operates on the data source integration system 20.
[0140]
In the present embodiment, since the definition data 14 is incorporated in the data source integration program 6b in advance, the recording device 13b in FIG. 1 and the definition data reading unit 9a in FIG. 2 are omitted.
[0141]
For example, in the first embodiment, the data source access units 12a to 12c refer to the definition data 14 for information such as a host name and a port number necessary for connecting to the data sources A to C. In the form, such information is written in the program.
[0142]
Therefore, the object processing unit 22, the transaction management unit 26, and the data source access units 23a to 23c do not need to separately access the definition data 14.
[0143]
FIG. 12 is a flowchart illustrating an example of processing of the data source integration system 20.
[0144]
In step G1, the compiler 21 of the data source integration system 20 compiles the data source integration program 6b.
[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 source integration system 20 does not need to refer to the recording device to obtain the contents of the definition data 14, the processing can be speeded up.
[0147]
In each of the above embodiments, each component of the data source integration systems 3 and 20 may be realized by hardware in a portion realized by a program.
[0148]
The components included in the data source integration systems 3 and 20 according to the above embodiments may be changed in arrangement as long as the same operation can be realized, and the components may be freely combined. Alternatively, each component may be freely divided.
[0149]
In addition, the data source integration systems 3 and 20 according to each of the above-described embodiments are configured by a plurality of computers, and the respective data source integration programs 6a and 6b are distributed and arranged in the plurality of computers, and perform processing while cooperating with each other. It may be executed.
[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 recording medium 6 for recording the data source integration programs 6a and 6b and the recording devices 27A to 27C for recording the data sources A to C, for example, a magnetic disk (flexible disk, hard disk, etc.), an optical disk (CD-ROM, DVD, etc.) ), Semiconductor memory and the like. Further, the data source integration programs 6a and 6b can be transmitted to a communication medium and applied to a computer. Also in this case, the computer realizes the above functions by reading the program and controlling the operation by the program.
[0152]
【Example】
Hereinafter, a specific example of the data source integration system 3 according to the first embodiment will be described. The same applies to the data source integration system 20 according to the second embodiment.
[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 source integration system 3 integrates the two data sources A and B.
[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]
Figure 2004259066
[0160]
Table 2 is an example of the company entry e2.
[0161]
[Table 2]
Figure 2004259066
[0162]
Table 3 is an example of the organization entry e3.
[0163]
[Table 3]
Figure 2004259066
[0164]
Table 4 is an example of the organization entry e4.
[0165]
[Table 4]
Figure 2004259066
[0166]
Table 5 is an example of the employee entry e5.
[0167]
[Table 5]
Figure 2004259066
[0168]
Table 6 is an example of the employee entry e6.
[0169]
[Table 6]
Figure 2004259066
[0170]
Table 7 is an example of the employee entry e7.
[0171]
[Table 7]
Figure 2004259066
[0172]
Table 8 is an example of the employee entry e8.
[0173]
[Table 8]
Figure 2004259066
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]
Figure 2004259066
[0177]
Table 10 is an example of the organization table t2.
[0178]
[Table 10]
Figure 2004259066
[0179]
Table 11 is an example of the employee table t3.
[0180]
[Table 11]
Figure 2004259066
[0181]
Next, the definition data 14 will be described.
[0182]
The definition data 14 includes data about the data source itself such as data source connection definition data 14a, data source access method definition data 14b, data source definition data 14c and 14d for each data source A and B, and mapping definition data. 14e.
[0183]
Table 12 shows an example of the data source connection definition data 14a.
[0184]
[Table 12]
Figure 2004259066
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]
Figure 2004259066
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 definition data 14 has two data source definition data 14c and 14d.
[0189]
Table 14 shows an example of the data source definition data 14c for the data source A.
[0190]
[Table 14]
Figure 2004259066
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]
Figure 2004259066
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]
Figure 2004259066
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 source integration system 3. It is defined whether a Read or Write operation is performed.
[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 access control data 15 will be described.
[0210]
The access control data 15 includes role definition data 15a and access control definition data 15b and 15c.
[0211]
Table 17 shows an example of the role definition data 15a.
[0212]
[Table 17]
Figure 2004259066
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 application 4a is grouped into a role “ROLE01”, and the authority for the application 4b is grouped into a role “ROLE02”.
[0213]
Table 18 shows an example of the access control definition data 15b for the role “ROLE01”.
[0214]
[Table 18]
Figure 2004259066
[0215]
Table 19 shows an example of the access control definition data 15c for the role “ROLE02”.
[0216]
[Table 19]
Figure 2004259066
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 source integration system 3 in the present embodiment.
[0218]
In FIG. 14, the application 4a performs an operation of searching for the employee object 24 with the name “TTT”.
[0219]
As a precondition, it is assumed that the employee object 24 having the name “TTT” to be operated is not recorded in the recording device 13c.
[0220]
In step H1, the operation content analysis unit 7 of the data source integration system 3 receives a data operation instruction “SELECT * FROM SyainClass WHERE NAME = TTT” representing a search request from the application 4a, analyzes the operation content, and accesses the operation content. Provided to the control unit 8. Specifically, first, information is extracted that is “request from application 4a”, the operation is “search”, and the class of the operation target object is “SyainClass”. Further, information that the key for specifying the operation target object is “NAME = TTT” and the attribute of the operation target is “all attributes” (“*” part of the operation command) is extracted. Is provided to the access control unit 8.
[0221]
In step H2, the access control unit 8 acquires the authority information of the application 4a by referring to the access control data 15 illustrated in Tables 17 to 19 above.
[0222]
Specifically, the access control unit 8 extracts that the authority information of the application 4a corresponds to ROLE01 based on the role definition data 15a in Table 17 above. Then, since the class of the operation target object is “SyainClass”, the authority information for “SyainClass” is extracted based on the access control definition data 15b of “ROLE01” in Table 18 above. In the example of Table 18, “SyainClass” can be searched, and it can be recognized that the Read authority has been given to attributes other than the “BIRTHDATE”, “KEITAI”, and “AGE” attributes. Therefore, the access control unit 8 sends the information of “search” for “all attributes except BIRTHDATE, KEITAI, and AGE” of the object of “NAME = TTT” defined by “SyainClass” to the object processing unit 9. Output to the search unit 9b.
[0223]
In step H3, upon receiving the information from the access control unit 8, the search unit 9b of the object processing unit 9 searches the recording device 13c for the employee object 24 of "NAME = TTT" to be searched.
[0224]
As a result of the search, since the employee object 24 to be searched does not exist in the recording device 13c, in step H4, the generation unit 9c of the object processing unit 9 checks the object processing unit 9 to obtain information on the data sources A and B. The data source definition data 14c and 14d shown in Tables 14 and 15 included in the definition data 14 are referred to through the definition data reading unit 9a. Further, the generation unit 9c refers to the mapping definition data 14e shown in Table 16 above, which shows the mapping relationship between the attributes of the integrated class and the data sources A and B.
[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 generation unit 9c provides the transaction management unit 11 with a search request using “cn = TTT” as a key and a search request using “NUMBER = <attribute value of uid>” as a key.
[0227]
In step H6, the transaction management unit 11 recognizes that the “cn” attribute is stored in the data source A by referring to the mapping definition data 14e, and issues a search request using “cn = TTT” as a key. The data is provided to the data source access unit 12a corresponding to the data source A.
[0228]
In step H7, the data source access unit 12a refers to the data source connection definition data 14a in Table 12 above, acquires information for connecting to the data source A, and then acquires the data source access method definition data 14b in Table 13 above. , A command for performing a search using “cn = TTT” as a key is created from the data source A.
[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 transaction management unit 11.
[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 transaction management unit 11 recognizes that “NUMBER” is stored in the data source B by referring to the mapping definition data 14e, and obtains “NUMBER” obtained by searching the data source A. With the value “100001” of “uid” as the value of “NUMBER”, a search request using “NUMBER = 100001” as a key is provided to the data source access unit 12b corresponding to the data source B.
[0233]
In step H9, the data source access unit 12b refers to the data source connection definition data 14a in Table 12 above, acquires information for connecting to the data source B, and then acquires the data source access method definition data 14b in Table 13 above. To create a command for performing a search using “NUMBER = 100001” as a key.
[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 transaction management unit 11 provides the search results of the data sources A and B to the generation unit 9c.
[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 generation unit 9c generates the employee object 24 having the name “TTT” by integrating the data of the data source A and the data source B.
[0240]
In step H12, the generation unit 9c records the generated employee object having the name “TTT” in the recording device 13c and provides the employee object to the application 4a via the access control unit 8 and the operation content analysis unit 7.
[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 application 4a performs an operation of searching for the employee object 24 with the name “TTT”. In FIG. 15, it is assumed that the employee object 24 to be operated is recorded on the recording device 13c.
[0242]
Steps I1 and I2 are the same as steps H1 and H2 in FIG.
[0243]
In step I3, the search unit 9b of the object processing unit 9 searches the recording device 13c for the employee object 24 of "NAME = TTT" to be searched.
[0244]
As a result of the search, the employee object 24 to be searched exists in the recording device 13c. Therefore, in step I4, the search unit 9b compares the searched employee object 24 with the name "TTT" with the access control unit 8, the operation content analysis unit 7 To the application 4a via
[0245]
As described above, by recording the integrated object reflecting and integrating the contents of the different types of data sources in the recording device 13c of the data source integration system 3, even if a data search is requested, the data source can be changed. Access may not be required. This speeds up the data search process.
[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 application 4b determines the attribute value of the attribute “telephone number” and the attribute “YAKUSYOKU” of the employee object 24 with the employee number “100001”. The operation for updating the attribute values of “011-222-7890” and “SS” respectively will be described.
[0248]
In the present embodiment, it is assumed that the employee object 24 to be operated is recorded in the recording device 13c of the data source integration system 3, and the write timing to the data source is a write request indicating that the application writes to the data source. And when it is accepted.
[0249]
FIG. 16 is a block diagram illustrating an example of a processing flow of the data source integration system 3 in the present embodiment.
[0250]
In step J1, the operation content analysis unit 7 of the data source integration system 3 receives the data operation instruction “UPDATE SineClass SET TELEPHONE = 011-222-7890, YAKUSYOKU = SS WHERE SYAIN_NUM = 100001” representing the update request from the application 4b. The contents of the operation are analyzed, and the contents of the operation are provided to the access control unit 8. Specifically, it extracts information indicating that the request is “request from the application 4b”, the operation is “update”, and the class of the operation target object is “SyainClass”. Further, the information for identifying that the key for specifying the operation target object is “SYAIN_NUM = 100001” and the update content is “TELEPHONE = 011-222-7890, YAKUSYOKU = SS” is extracted, and the information is accessed. Provided to the control unit 8.
[0251]
In step J2, the access control unit 8 acquires the authority information of the application 4b with reference to the access control data 15 exemplified in the above Tables 17 to 19.
[0252]
Specifically, the access control unit 8 extracts that the authority information of the application 4b corresponds to ROLE02 based on the role definition data 15a in Table 17 above. Then, since the class of the operation target object is “SyainClass”, the authority information for “SyainClass” is extracted based on the access control definition data 15c of ROLE02 in Table 19 above. In the example of Table 19, search, registration, update, and deletion of “SyainClass” can be performed, and it can be recognized that Read and Write authority is given to all attributes. Therefore, the access control unit 8 updates the attribute values of the “TELEPHONE” and “YAKUSYOKU” attributes of the object “SYAIN_NUM = 100001” defined by “SyainClass” to “011-222-7890” and “SS”. Is output to the updating unit 9d of the object processing unit 9.
[0253]
In step J3, when the update unit 9d of the object processing unit 9 receives the information from the access control unit, the update unit 9d searches the recording device 13c for the employee object 24 of "SYAIN_NUM = 100001" to be updated.
[0254]
As a result of the search, since the employee object 24 to be updated exists in the recording device 13c, in step J4, the updating unit 9d updates the attribute value of the attribute “TELEPHONE” to “011-222-7890”, and updates the attribute “YAKUSYOKU”. Is updated to “SS”.
[0255]
At this time, in step J5, the exclusive control unit 9g of the object processing unit 9 locks the employee object 24 to be updated and receives another data operation instruction (for example, an update request from another application). Refuse other data manipulation instructions.
[0256]
In step J6, after the update of the employee object 24 is completed, the update unit 9d provides an update completion message to the application 4b via the access control unit 8 and the operation content analysis unit 7.
[0257]
Here, it is assumed that the application 4b has provided the data source integration system 3 with a write command to reflect the contents of the employee object 24 to the data source.
[0258]
In step J7, the operation content analysis unit 7 receives the write command from the application 4b, and provides the write control unit 10 with the access control unit 8 confirming the access right.
[0259]
In step J8, when receiving the write command, the write management unit 10 acquires the employee object 24 via the write unit 9h of the object processing unit 9, and updates the data source according to the contents of the employee object 24. The transaction management unit 11 is provided with a data source operation instruction for performing the operation.
[0260]
In step J9, the transaction management unit 11 converts the update request for the employee object 24 into an update request for the data source.
[0261]
Specifically, the "TELEPHONE" and "YAKUSYOKU" attributes of the employee object 24 to be updated are stored in the data source B with reference to the mapping definition data 14e in the above Table 16, and the "TELIN" in the "SYAIN" table is stored. Recognizing that it is associated with the "SYOKUI" attribute, it issues an update request to the data source access unit 12b corresponding to the data source B.
[0262]
In step J10, the data source access unit 12b accesses the data source B based on the data source connection definition data 14a in Table 12, and accesses the data source B based on the data source access method definition data 14b in Table 13 above. An update request for the data source B using the update command “UPDATE” is created, and the data source B is updated.
[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 application 4b, and the telephone number included in the acquired employee object is updated.
[0266]
In this embodiment, it is assumed that the organization object and the employee object to be operated are not recorded in the recording device 13c.
[0267]
In the present embodiment, the application 4b refers to the organization object 25 of the organization code “201” in the first stage under the same conditions as the first embodiment, and to the referenced organization object 25 in the second stage. The employee objects 24a to 24c of the belonging employee are searched, and in the third stage, the telephone numbers of the searched employee objects 24a to 24c are updated to "011-555-5555".
[0268]
FIG. 17 is a block diagram illustrating an example of a first-stage processing flow of the data source integration system 3 in the present embodiment. FIG. 17 shows the processing up to the search for the organization object 25.
[0269]
In step K1, the operation content analysis unit 7 of the data source integration system 3 receives the data operation instruction “SELECT * FROM SoshikiClass WHERE SOSIKI_CODE = 201” representing a search request for the organization object 25 of the organization code “201” from the application 4b. The contents of the operation are analyzed, and the contents of the operation are provided to the access control unit 8. Specifically, it extracts “information from the application 4b”, extracts information indicating that the operation is “search”, and the class of the operation target object is “SosikiClass”. Further, a key for specifying the operation target object is “SOSIKI_CODE = 201”, and information indicating that the attribute of the operation target is “all attributes” (“*” part of the operation instruction) is extracted. Is provided to the access control unit 8.
[0270]
In step K2, the access control unit 8 refers to the role definition data 15a in Table 17 and the access control definition data 15c in Table 19 to acquire the authority information of the application 4b.
[0271]
Specifically, the access control unit 8 extracts that the authority information of the application 4b corresponds to ROLE02 based on the role definition data 15a in Table 17 above. Then, since the class of the operation target object is “SosikiClass”, the authority information for “SosikiClass” is extracted based on the access control definition data 15b of ROLE02 in Table 19 above. In the example of Table 19, "SosikiClass" can be searched, registered, updated, and deleted, and it can be recognized that Read and Write authority is given to all attributes. Therefore, the access control unit 8 outputs to the search unit 9b of the object processing unit 9 information that is defined as “SosikiClass” and that is “search” for “all attributes” of the object of “SOSIKI_CODE = 201”.
[0272]
In step K3, the search unit 9b of the object processing unit 9 searches the recording device 13c for the organization object 25 of “SOSIKI_CODE = 201” to be searched.
[0273]
As a result of the search, since the organization object 25 to be searched does not exist in the recording device 13c, in step K4, the generation unit 9c of the object processing unit 9 checks the object processing unit 9 to obtain information on the data sources A and B. The data source definition data 14c and 14d shown in Tables 14 and 15 included in the definition data 14 are referred to through the definition data reading unit 9a. Further, the generation unit 9c refers to the mapping definition data 14e shown in Table 16 above, which shows the mapping relationship between the attributes of the integrated class and the data sources A and B.
[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 generation unit 9c provides the transaction management unit 11 with a search request using “soshikiCode = 201” as a key and a search request using “S_CODE = 201” as a key in step K5.
[0276]
In steps K6a and K6b, the transaction management unit 11 recognizes that “soshikiCode” is stored in the data source A and “S_CODE” is stored in the data source B by referring to the mapping definition data 14e. A search request using “soshikiCode = 201” as a key is provided to the data source access unit 12a, and a search request using “S_CODE = 201” as a key is provided to 12b.
[0277]
In step K7, the data source access unit 12a refers to the data source connection definition data 14a in Table 12 above, acquires information for connecting to the data source A, and then acquires the data source access method definition data 14b in Table 13 above. To create a command for performing a search from the data source A using “soshikiCode = 201” as a key.
[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 section 11.
[0280]
Also, in step K8, the data source access unit 12b refers to the data source connection definition data 14a in Table 12 above, acquires information for connecting to the data source B, and then acquires the data source access method definition in Table 13 above. With reference to the data 14b, a command for performing a search from the data source B using “S_CODE = 201” as a key is created.
[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 transaction management unit 11.
[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 transaction management unit 11 provides the search results of the data sources A and B to the generation unit 9c.
[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 generation unit 9c generates the organization object 25 of the organization code “201” obtained by integrating the data of the data source A and the data source B.
[0287]
In step K11, the generation unit 9c records the organization object 25 of the organization code "201" in the recording device 13c, and provides the organization object 25 to the application 4b via the access control unit 8 and the operation content analysis unit 7.
[0288]
FIG. 18 is a block diagram illustrating an example of a processing flow of the second stage of the data source integration system 3 in the present embodiment. FIG. 18 shows the processing up to the search for the employee objects 24a to 24c of the employees belonging to the organization object 25 of the organization code "201".
[0289]
In step L1, the operation content analysis unit 7 of the data source integration system 3 receives a data operation instruction “GET SOSIKI_MEMBER” representing a search request for the employee objects 24a to 24c of the employees belonging to the organization with the organization code “201” from the application 4b. , Analyzing the operation contents and providing the operation contents to the access control unit 8. Specifically, it extracts information indicating that the request is “request from the application 4b”, the operation is “search”, and the attribute of the operation target is “SOSIKI_MEMBER”, and the information is provided to the access control unit 8. I do. At this time, the information on the operation target object is specified as the organization object of the organization code “201” by the search for the organization object in the first stage.
[0290]
In step L2, the access control unit 8 acquires the authority information of the application 4b with reference to the access control data 15 illustrated in Tables 17 to 19 above. Specifically, the access control unit 8 extracts that the authority information of the application 4b corresponds to ROLE02 based on the role definition data 15a in Table 17 above. Then, since the class of the operation target object is “SosikiClass”, the authority information for the SoshikiClass is extracted based on the access control definition data 15c of ROLE02 in Table 19 above. In the example of Table 19, "SosikiClass" can be searched, registered, updated, and deleted, and it can be recognized that Read and Write permissions have been granted to all attributes. Therefore, the access control unit 8 outputs to the search unit 9b of the object processing unit 9 information that is defined as “SosikiClass” and is “search” for “SOSIKI_MEMBER” of the object with the organization code “201”.
[0291]
In step L3, the search unit 9b of the object processing unit 9 refers to the mapping definition data 14e, and the type of the attribute “SOSIKI_MEMBER” of the organization object 25 of the organization code “201” searched earlier has a reference relationship. It is recognizable.
[0292]
In step L4, in the case of the attribute of the reference relationship, the search unit 9b searches the object of the reference destination class by putting the value of the reference source corresponding attribute in the reference destination corresponding attribute of the reference class.
[0293]
Here, the search unit 9b refers to the definition data 14, converts the search request of "SOSIKI_MEMBER" into a search request of the employee objects 24a to 24c of the affiliation code "201", and performs a search. In this example, the employee objects 24a to 24c whose attribute value of the "SYOZOKU_CODE" attribute of "SyainClass" is "201" are searched.
[0294]
As a result of the search, since the employee objects 24a to 24c are not recorded in the recording device 13c, in step L5, the generation unit 9c of the object processing unit 9 sets the data shown in Tables 14 and 15 included in the definition data 14 The source definition data 14c and 14d and the mapping definition data 14e are referred to.
[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 generation unit 9c provides the transaction management unit 11 with a search request using “ou = 201” as a key and a search request using “NUMBER = <attribute value of uid>” as a key.
[0297]
In step L7, the transaction management unit 11 recognizes that the “ou” attribute is stored in the data source A by referring to the mapping definition data 14e, and issues a search request using “ou = 201” as a key. It is provided to the data source access unit 12a.
[0298]
In step L8, the data source access unit 12a refers to the data source connection definition data 14a in Table 12 above, acquires information for connecting to the data source A, and then acquires the data source access method definition data 14b in Table 13 above. , A command for performing a search using “ou = 201” as a key is created from the data source A, and the search is performed.
[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 transaction management unit 11.
[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 transaction management unit 11. Provided.
[0301]
Subsequently, in Step L9, the transaction management unit 11 recognizes that “NUMBER” is stored in the data source B by referring to the mapping definition data 14e, and obtains “NUMBER” obtained by searching the data source A. UUID "values" 100001 "," 100002 "," 100003 "as" NUMBER "values, and three search requests with" NUMBER = 100001 "," NUMBER = 100002 ", and" NUMBER = 100003 "as keys correspond to data source B. It is provided to the data source access unit 12b.
[0302]
In step L10, the data source access unit 12b refers to the data source connection definition data 14a in Table 12 above, acquires information for connecting to the data source B, and then acquires the data source access method definition data 14b in Table 13 above. , A command for performing a search using “NUMBER = 100001”, “NUMBER = 100002”, and “NUMBER = 100003” as keys is created, and the search is performed.
[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 transaction management unit 11.
[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 transaction management unit 11.
[0305]
In step L11, the transaction management unit 11 provides the search results of the data sources A and B to the generation unit 9c.
[0306]
In step L12, the generation unit 9c of the data source integration system 3 generates a set of the employee objects 24a to 24c having the belonging code “201”. At this time, an “AGE” attribute whose attribute type is a function is calculated and included in the employee object.
[0307]
In step L13, the employee objects 24a to 24c are returned to the application 4b and recorded on the recording device 13c.
[0308]
FIG. 19 is a block diagram illustrating an example of a processing flow of the third stage of the data source integration system 3 in the present embodiment. FIG. 19 shows the processing until the telephone numbers of the found employee objects 24a to 24c are updated to “011-555-5555”.
[0309]
In step M1, the operation content analysis unit 7 uses the application 4b to update the telephone numbers of the employee objects 24a to 24c of the employees belonging to the organization with the organization code "201" to "011-555-5555". "TELEPHONE = 011-555-5555" is accepted and provided to the access control unit 8. Specifically, it extracts information indicating that the request is “request from the application 4b”, the operation is “update”, and the attribute of the operation target is “TELEPHONE”, and the information is provided to the access control unit 8. I do. At this time, the information on the operation target object has been identified as an employee object whose affiliation code is “201” by searching for an employee object belonging to the organization with the organization code “201” in the second stage.
[0310]
In step M2, the access control unit 8 acquires the authority information of the application 4b by referring to the access control data 15 exemplified in the above Tables 17 to 19. Specifically, the access control unit 8 extracts that the authority information of the application 4b corresponds to ROLE02 based on the role definition data 15a in Table 17 above. Then, since the class of the operation target object is “SyainClass”, the authority information for SyainClass is extracted based on the access control definition data 15c of ROLE02 in Table 19 above. In the example of Table 19, “SyainClass” can be searched, registered, updated, and deleted, and it can be recognized that Read and Write permissions have been granted to all attributes. Therefore, the access control unit 8 outputs to the updating unit 9d of the object processing unit 9 information that is defined as “SyainClass” and is “update” for “TELEPHONE” of the employee object with the belonging code “201”.
[0311]
In step M3, the updating unit 9d of the object processing unit 9 updates the attribute value of the attribute "TELEPHONE" of the employee objects 24a to 24c having the belonging code "201" to "011-555-5555" for the recording device 13c. .
[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.
請求項2記載のプログラムにおいて、
コンピュータに、
前記データ操作命令によって更新が要求されている場合、前記データ操作命令で指定されている更新内容にしたがって、前記記録手段に記録されている統合データの内容を更新する更新機能を実現させる
ことを特徴とするデータソース統合プログラム。
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.
請求項2又は請求項3記載のプログラムにおいて、
コンピュータに、
前記データ操作命令によって登録が要求されている場合、前記データ操作命令で指定されているデータを含む統合データを前記記録手段に記録する登録機能を実現させる
ことを特徴とするデータソース統合プログラム。
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.
請求項2乃至請求項4のいずれか1項記載のプログラムにおいて、
コンピュータに、
前記データ操作命令によって削除が要求されている場合、前記データ操作命令で指定されているデータを前記記録手段から削除する削除機能を実現させるためのデータソース統合プログラム。
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.
請求項2乃至請求項5のいずれか1項記載のプログラムにおいて、
コンピュータに、
前記データ操作命令に対応するデータソース操作命令を前記複数のデータソースに提供するトランザクション管理機能を実現させることを特徴とするデータソース統合プログラム。
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.
請求項6項記載のプログラムにおいて、
コンピュータに、
前記データ操作命令とは別のタイミングで前記トランザクション管理機能に対して前記データ操作命令を提供する書込機能を実現させることを特徴とするデータソース統合プログラム。
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.
請求項2乃至請求項7のいずれか1項記載のプログラムにおいて、
コンピュータに、
前記記録手段に記録されている統合データに対する排他制御を行う排他制御機能を実現させることを特徴とするデータソース統合プログラム。
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.
請求項2乃至請求項8のいずれか1項記載のプログラムにおいて、
前記統合データの形式は、前記複数のデータソースの統合後の内容を表す統合クラスで定義され、
前記統合データは、前記統合クラスに基づいて生成される統合オブジェクトである
ことを特徴とするデータソース統合プログラム。
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.
請求項9記載のプログラムにおいて、
前記統合クラスは、複数のクラス間における参照関係の定義内容を含むことを特徴とするデータソース統合プログラム。
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.
請求項9又は請求項10記載のプログラムにおいて、
前記統合クラスは、前記複数のデータソースの内容に基づいて統合後の内容を算出する関数の定義内容を含むことを特徴とするデータソース統合プログラム。
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.
JP2003050094A 2003-02-26 2003-02-26 Data source integrating program, system and method Pending JP2004259066A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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