(57)【要約】【課題】複数のデータソースの内容を統一し、効率的にデータを管理する。【解決手段】本発明は、コンピュータに、命令発信元からデータ操作命令を受け付ける受付機能７、受付機能７により受け付けられた操作命令にしたがって、予め記録手段２７Ａ〜２７Ｃに記録された複数の異なる種別のデータソースＡ〜Ｃからデータを生成する生成機能を実現させ、データソースＡ〜Ｃは、管理されるデータ及び管理形態の情報を含むことを特徴とするデータソース統合プログラム６ａである。【選択図】    図１
2004259066.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
命令発信元からデータ操作命令を受け付ける受付機能、
前記受付機能により受け付けられた前記操作命令にしたがって、予め記録手段に記録された複数の異なる種別のデータソースからデータを生成する生成機能、を実現させ、
前記データソースは、管理されるデータ及び管理形態の情報を含むことを特徴とするデータソース統合プログラム。
【請求項２】
コンピュータに、
命令発信元からデータ操作命令を受け付ける受付機能、
前記データ操作命令によって検索が要求されている場合、複数の異なる種別のデータソースにしたがって生成され記録手段に記録されている統合データの中から、前記データ操作命令によって指定されている検索対象のデータを含む統合データを検索し、前記検索対象のデータを含む統合データが検索された場合に、検索された統合データを前記命令発信元に提供する検索機能、
前記検索対象のデータを含む統合データが検索されなかった場合、前記複数の異なる種別のデータソースに基づいて統合データを生成し、生成された統合データを前記記録手段に記録するとともに前記命令発信元に提供する生成機能、
を実現させ、
前記データソースは、管理されるデータ及び管理形態の情報を含むことを特徴とするデータソース統合プログラム。
【請求項３】
請求項２記載のプログラムにおいて、
コンピュータに、
前記データ操作命令によって更新が要求されている場合、前記データ操作命令で指定されている更新内容にしたがって、前記記録手段に記録されている統合データの内容を更新する更新機能を実現させる
ことを特徴とするデータソース統合プログラム。
【請求項４】
請求項２又は請求項３記載のプログラムにおいて、
コンピュータに、
前記データ操作命令によって登録が要求されている場合、前記データ操作命令で指定されているデータを含む統合データを前記記録手段に記録する登録機能を実現させる
ことを特徴とするデータソース統合プログラム。
【請求項５】
請求項２乃至請求項４のいずれか１項記載のプログラムにおいて、
コンピュータに、
前記データ操作命令によって削除が要求されている場合、前記データ操作命令で指定されているデータを前記記録手段から削除する削除機能を実現させるためのデータソース統合プログラム。
【請求項６】
請求項２乃至請求項５のいずれか１項記載のプログラムにおいて、
コンピュータに、
前記データ操作命令に対応するデータソース操作命令を前記複数のデータソースに提供するトランザクション管理機能を実現させることを特徴とするデータソース統合プログラム。
【請求項７】
請求項６項記載のプログラムにおいて、
コンピュータに、
前記データ操作命令とは別のタイミングで前記トランザクション管理機能に対して前記データ操作命令を提供する書込機能を実現させることを特徴とするデータソース統合プログラム。
【請求項８】
請求項２乃至請求項７のいずれか１項記載のプログラムにおいて、
コンピュータに、
前記記録手段に記録されている統合データに対する排他制御を行う排他制御機能を実現させることを特徴とするデータソース統合プログラム。
【請求項９】
請求項２乃至請求項８のいずれか１項記載のプログラムにおいて、
前記統合データの形式は、前記複数のデータソースの統合後の内容を表す統合クラスで定義され、
前記統合データは、前記統合クラスに基づいて生成される統合オブジェクトである
ことを特徴とするデータソース統合プログラム。
【請求項１０】
請求項９記載のプログラムにおいて、
前記統合クラスは、複数のクラス間における参照関係の定義内容を含むことを特徴とするデータソース統合プログラム。
【請求項１１】
請求項９又は請求項１０記載のプログラムにおいて、
前記統合クラスは、前記複数のデータソースの内容に基づいて統合後の内容を算出する関数の定義内容を含むことを特徴とするデータソース統合プログラム。
【請求項１２】
命令発信元からデータ操作命令を受け付ける受付手段と、複数の異なる種別のデータソースにしたがって生成された統合データを記録する記録手段と、
前記データ操作命令によって検索が要求されている場合、前記記録手段に記録されている統合データの中から、前記データ操作命令によって指定されている検索対象のデータを含む統合データを検索し、前記検索対象のデータを含む統合データが検索された場合に、検索された統合データを前記命令発信元に提供する検索手段と、
前記検索対象のデータを含む統合データが検索されなかった場合、前記複数の異なる種別のデータソースに基づいて統合データを生成し、生成された統合データを前記記録手段に記録するとともに前記命令発信元に提供する生成手段と
を具備し、
前記データソースは、管理されるデータ及び管理形態の情報を含むことを特徴とするデータソース統合システム。
【請求項１３】
コンピュータによって複数のデータソースのデータを管理する方法であって、
命令発信元からデータ操作命令を受け付け、
前記データ操作命令によって検索が要求されている場合、複数の異なる種別のデータソースにしたがって生成され記録手段に記録されている統合データの中から、前記データ操作命令によって指定されている検索対象のデータを含む統合データを検索する処理を実行し、
前記検索対象のデータを含む統合データが検索された場合に、検索された統合データを前記命令発信元に提供し、前記検索対象のデータを含む統合データが検索されなかった場合、前記複数の異なる種別のデータソースに基づいて統合データを生成し、生成された統合データを前記記録手段に記録するとともに前記命令発信元に提供する
ことを特徴とする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、各種データの共有化、管理、有効活用を実現するプログラム及びシステム並びに方法に関する。
【０００２】
【従来の技術】
データの共有化、管理、有効活用を目的として多数のデータソースが存在する。データソースには、例えばＬＤＡＰ（Ｌｉｇｈｔｗｅｉｇｈｔ  Ｄｉｒｅｃｔｏｒｙ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）ディレクトリ、オブジェクト指向データベース、ＲＤＢ（Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ）、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）データベースなどの各種データベース、テキストファイル、ＣＳＶ（Ｃｏｍｍａ  Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅ）ファイル、バイナリファイルなどの各種ファイル、ファイルシステムなど様々な種類があり、様々な方式でデータが管理される。
【０００３】
図２０に示すように、ある記録装置２８ａに記録されているあるデータソース１ａ内のデータをオブジェクト２ａに変換して管理する技術は、すでに提案されている。この技術を用いることにより、各記録装置２８ａ〜２８ｃに記録されている各データソース１ａ〜１ｃについて個別にデータをオブジェクト化し、管理することができる。
【０００４】
【特許文献１】
特開２０００−２４２５４２号公報
【０００５】
【特許文献２】
特開２０００−２４２５４１号公報
【０００６】
【発明が解決しようとする課題】
複数の異なる種別のデータソースを扱うシステムは増加している。このようなシステムにおけるデータ管理には、以下のような問題があり効率的なデータ管理が困難である。
【０００７】
第１に、システムは、複数の種類のデータソースを扱う場合、目的とするデータの種類及びそのデータの格納先を常に把握しておく必要があるという問題がある。
【０００８】
第２に、システムは、あるデータの更新が発生した場合に、毎回このデータと関係する全てのデータソースに対して更新処理を別々に行う必要があり、処理数が多くなり処理速度が遅くなる。
【０００９】
第３に、システムは、種類の異なる複数のデータソースに対して別々にトランザクションの管理、アクセス制御を行う必要がある。
【００１０】
例えば、上記図２０に示すように、異なる種類の複数のデータソース１ａ〜１ｃについて、個別にデータをオブジェクト化した場合、システムは、目的のデータがどのデータソースから生成されたオブジェクトに格納されているかを常に把握しておく必要がある。また、システムは、あるデータの更新が要求された場合、その更新の要求されたタイミングで、複数種類のデータソース１ａ〜１ｃから生成された各オブジェクト２ａ〜２ｃのうち更新されるデータに関係する全てのオブジェクトに対して更新処理が実行される。このため、多数の処理が集中し、処理速度が遅くなる場合がある。
【００１１】
本発明は、以上のような実情に鑑みてなされたもので、複数のデータソースの内容を統一して管理し、データ管理を効率化するデータソース統合プログラム及びシステム並びに方法を提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明を実現するにあたって講じた具体的手段について以下に説明する。
【００１３】
本発明は、コンピュータに、命令発信元からデータ操作命令を受け付ける受付機能、受付機能により受け付けられた操作命令にしたがって、予め記録手段に記録された複数の異なる種別のデータソースからデータを生成する生成機能を実現させ、データソースは、管理されるデータ及び管理形態の情報を含むことを特徴とするデータソース統合プログラムである。
【００１４】
本発明では、複数のデータソースの内容を統合した統合データが生成され、この統合データに対してデータ操作が行われる。これにより、複数のデータソースの内容が統一して管理され、データ管理を効率化できる。
【００１５】
なお、上記機能を実現する手段を、計算機システムに具備するとしてもよい。
【００１６】
上記データソース統合プログラムで実施されるデータの管理方法を実施することにより、同様の作用効果が得られる。
【００１７】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施の形態について説明する。
【００１８】
（第１の実施の形態）
本実施の形態においては、種類の異なる複数のデータソースに散在するデータを所定の形式の統合オブジェクトに変換し、統一的に管理するデータソース統合システムについて説明する。
【００１９】
図１は、本実施の形態に係るデータソース統合システムの構成の一例を示すブロック図である。図２は、オブジェクト処理部の詳細例を示すブロック図である。
【００２０】
データソース統合システム３は、アプリケーション４ａ〜４ｃとデータソースＡ〜Ｃを記録する記録装置２７Ａ〜２７Ｃの間で動作する。アプリケーション４ａ〜４ｃは、命令発信元であるが、例えばユーザなどが命令発信元であってもよい。
【００２１】
本実施の形態においては、アプリケーション４ａ〜４ｃとデータソースＡ〜Ｃが３つの場合について説明するが、アプリケーションは一以上であればよく、データソースは複数であればよい。
【００２２】
ここで、データソースとは管理される実際のデータ及びその管理形態に関する情報をいい、前述のように例えばＬＤＡＰ（Ｌｉｇｈｔｗｅｉｇｈｔ  Ｄｉｒｅｃｔｏｒｙ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）ディレクトリ、オブジェクト指向データベース、ＲＤＢ（Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ）、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）データベースなどの各種データベース、テキストファイル、ＣＳＶ（Ｃｏｍｍａ  Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅ）ファイル、バイナリファイルなどの各種ファイルなど様々な種類がある。また、管理形態に関する情報とは、管理されるデータの関連付けの情報やデータの取得、書き込みなどに必要な情報（データ管理に必要となる情報）をいい、例えばＬＤＡＰではオブジェクトクラス間での関連付けの情報やオブジェクトクラスとそのクラスに含まれる属性との関連付けの情報などがあり、後者の例ではｉｎｅｔＯｒｇＰｅｒｓｏｎクラスでは、そのクラスとそのクラスに含まれるｃｎ、ｕｉｄ、ｏｕなどの属性とが関連付けの情報がある。また、ＲＤＢではテーブル間での関連付けやテーブルとそのテーブルに含まれる列との関連付けの情報などがあり、表１１などでは後者の例では社員テーブルとそれに含まれるＮＵＭＢＥＲ、ＴＥＬなどの関連付けの情報がある。
【００２３】
データソース統合システム３は、記録媒体６に記録されているデータソース統合プログラム６ａを読み込み、実行することにより、操作内容解析部７、アクセス制御部８、オブジェクト処理部９、書込管理部１０、トランザクション管理部１１、データソースアクセス部１２ａ〜１２ｃとしての機能を実現する。また、データソース統合システム３は、記録装置１３ａ〜１３ｃを具備する。
【００２４】
データソース統合システム３の処理形態は、データ操作命令を受け付け、必要に応じて記録装置１３ｂに記録されている定義データ１４を参照しつつ処理を実行するインタプリタ型である。
【００２５】
操作内容解析部７は、命令発信元からデータ操作命令を受け付け、データ操作命令の示す操作内容を解析し、操作内容をアクセス制御部８に提供する。
【００２６】
また、操作内容解析部７は、オブジェクト処理部９からアクセス制御部８を経由して受け付けた各種データ又はメッセージを命令発信元に提供する。
【００２７】
アクセス制御部８は、記録装置１３ａに記録されているアクセス制御データ１５を参照し、操作内容解析部７で解析された操作内容について命令発信元が権限を有するか否か判断する。
【００２８】
アクセス制御部８は、権限を有すると判断した場合、オブジェクト処理部９に操作内容を提供し、その操作内容に応じた結果をオブジェクト処理部９から受け付け、操作内容解析部７に提供する。
【００２９】
一方、アクセス制御部８は、権限を有しないと判断した場合、権限がない旨のメッセージを操作内容解析部７経由で命令発信元に提供する。
【００３０】
オブジェクト処理部９は、図２に示すように、定義データ読込部９ａ、検索部９ｂ、生成部９ｃ、更新部９ｄ、登録部９ｅ、削除部９ｆ、排他制御部９ｇ、書込部９ｈを具備する。
【００３１】
定義データ読込部９ａは、オブジェクト処理部９の他の部分からの要求に応じて、記録装置１３ｂに記録されている定義データ１４を読み込み、読み込んだ定義データ１４を要求先に返す。
【００３２】
検索部９ｂは、操作内容解析部７からアクセス制御部８を経由して受け付けた操作内容がデータの検索要求を表す場合、記録装置１３ｃに対して検索対象のデータを含む統合オブジェクトを検索する。
【００３３】
検索部９ｂは、記録装置１３ｃから検索対象のデータを含む統合オブジェクトを検索できた場合、検索された統合オブジェクトをアクセス制御部８、操作内容解析部７経由で命令発信元に提供する。
【００３４】
一方、検索部９ｂは、検索対象のデータを含む統合オブジェクトが記録装置１３ｃに未記録であり検索できなかった場合、生成部９ｃに操作内容を提供する。
【００３５】
生成部９ｃは、検索対象のデータを含む統合オブジェクトが記録装置１３ｃに記録されていない場合、定義データ読込部９ａ経由で記録装置１３ｂに記録されている定義データ１４を読み込むとともにトランザクション管理部１１及びデータソースアクセス部１２ａ〜１２ｃ経由でデータソースＡ〜Ｃを検索する。
【００３６】
また、生成部９ｃは、定義データ１４で定義されている統合クラスとデータソースＡ〜Ｃの検索結果とに基づいて、検索対象のデータを含む統合オブジェクトを生成し、生成された統合オブジェクトをアクセス制御部８、操作内容解析部７経由で命令発信元に提供するとともに記録装置１３ｃに記録する。
【００３７】
更新部９ｄは、操作内容が統合オブジェクトの更新要求を表す場合、データ操作命令の指定する更新内容にしたがって記録装置１３ｃの統合オブジェクトの内容を更新する。
【００３８】
また、更新部９ｄは、更新処理の結果を示すメッセージをアクセス制御部８、操作内容解析部７経由で命令発信元に提供する。
【００３９】
登録部９ｅは、操作内容が統合オブジェクトの登録要求を表す場合、データ操作命令で指定されているデータを含む統合オブジェクトを記録装置１３ｃに記録する。
【００４０】
また、登録部９ｅは、登録処理の結果を示すメッセージをアクセス制御部８、操作内容解析部７経由で命令発信元に提供する。
【００４１】
削除部９ｆは、操作内容がデータの削除要求を表す場合、データ操作命令で削除対象とされるデータを記録装置１３ｃから削除する。
【００４２】
また、削除部９ｆは、削除処理の結果を示すメッセージをアクセス制御部８、操作内容解析部７経由で命令発信元に提供する。
【００４３】
排他制御部９ｇは、記録装置１３ｃに記録されている統合オブジェクトに対する操作が発生した場合にデータの整合性を確保するための排他制御を実行する。
【００４４】
すなわち、排他制御部９ｇは、検索部９ｂ、生成部９ｃ、更新部９ｄ、登録部９ｅ、削除部９ｆによって記録装置１３ｃに記録されている統合オブジェクトに対する作業がおこなわれている場合、他の部分からの作業を禁止（ロック）する。
【００４５】
書込部９ｈは、記録装置１３ｃに記録されている統合オブジェクトの内容をデータソースＡ〜Ｃに反映させる時点において、書込管理部１０から命令を受け付けると、記録装置１３ｃに記録されている統合オブジェクトを読み出し、書込管理部１０に返す。
【００４６】
書込管理部１０は、所定のイベントが発生した場合に、オブジェクト処理部９の書込部９ｈに命令を提供し、その返答として記録装置１３ｃに記録されている統合オブジェクトを受け付け、受け付けた統合オブジェクトの内容をデータソースＡ〜Ｃに反映させるための操作命令をトランザクション管理部１１に提供する。
【００４７】
所定のイベントの発生とは、例えば所定の時間になった場合、所定の時間が経過した場合、アプリケーションからデータソースＡ〜Ｃへの書込要求を受け付けた場合などがある。
【００４８】
トランザクション管理部１１は、オブジェクト処理部９の生成部９ｃからの検索命令及び書込管理部１０からの操作命令などのデータソース操作命令を受け付け、記録装置１３ｂに記録された定義データ１４に基づいて、どのデータソースにどのデータが記録されているかを把握し、データソース操作命令をデータソースアクセス部１２ａ〜１２ｃに振り分ける。
【００４９】
トランザクション管理部１１は、検索命令に対する検索結果をデータソースアクセス部１２ａ〜１２ｃから受け付けた場合、検索結果を生成部９ｃに提供する。
【００５０】
各データソースアクセス部１２ａ〜１２ｃは、トランザクション管理部１１からデータソース操作命令を受け付けると、記録装置１３ｂの定義データ１４を読み出す。
【００５１】
また、各データソースアクセス部１２ａ〜１２ｃは、定義データ１４に基づいて、データソース操作命令を自己に対応するデータソースＡ〜Ｃに応じた操作命令に変換し、変換後の操作命令を各データソースＡ〜Ｃに提供する。
【００５２】
各データソースＡ〜Ｃでは、変換後の操作命令に応じた処理が実行され、結果が各データソースアクセス部１２ａ〜１２ｃに返される。
【００５３】
図３は、データソースＡ〜Ｃと統合クラスとの関係の一例を示す図である。
【００５４】
データソースＡには、「社員番号」、「氏名」、「所属」が記録されており、データソースＢには「社員番号」、「生年月日」、「電話番号」が記録されており、データソースＣには「氏名」、「趣味」、「免許情報」が記録されている。
【００５５】
データソースＡ〜Ｃの内容を統合するために、統合クラスとして社員クラス１６が定義されている。社員クラス１６の属性としては、データソースＡ〜Ｃに含まれる「社員番号」、「氏名」、「所属」、「社員番号」、「生年月日」、「電話番号」、「趣味」、「免許情報」が定義される。
【００５６】
なお、統合クラスの属性として、他のクラスを参照するための参照関係が定義されてもよい。また、統合クラスの属性として、データソースに記録されている値から属性値を算出するための関数が定義されてもよい。
【００５７】
統合オブジェクトである社員オブジェクト１７は、統合クラスに基づいて生成される。
【００５８】
図４は、複数の統合クラス間の参照関係が定義される統合クラスの一例を示す図である。
【００５９】
統合クラスとして、組織クラス１８と社員クラス１６とが定義される。組織クラス１８は組織クラス１８を参照している。これにより、組織の階層関係を表すことができる。また、各組織クラス１８は社員クラス１６を参照している。これにより、各組識に属する社員を表すことができる。
【００６０】
この例では、組織クラス１８の属性「上位組織」に、組織クラス１８に基づいて生成される０（上位組織なし）又は一つの組織クラスを定義する。
【００６１】
また、組織クラスの属性「組織メンバ」に、社員クラス１６に基づいて生成される０以上の社員クラスを定義する。
【００６２】
図５は、データソース統合システム３の動作概念の第１例を示すブロック図である。
【００６３】
この図５では、記録装置１３ｃに記録されていないデータの検索が要求された場合の動作の概要を示している。なお、この図５では、異なるアプリケーション４ａ、４ｂから同じ統合オブジェクトの検索が要求された場合を示しているが、同一のアプリケーションから同じ統合オブジェクトの検索が複数回要求された場合も同様である。
【００６４】
ステップＡ１において、データソース統合システム３の操作内容解析部７は、アプリケーション４ａから社員番号「１２３」の社員オブジェクト１７ａの検索要求を受け付ける。
【００６５】
ステップＡ２において、データソース統合システム３の検索部９ｂは、記録装置１３ｃに対して社員番号「１２３」の社員オブジェクト１７ａを検索する。
【００６６】
ここで、この図５の例では、この時点で社員番号「１２３」の社員オブジェクトが記録装置１３ｃに記録されていないとする。
【００６７】
ステップＡ３において、データソース統合システム３の生成部９ｃは、複数のデータソースＡ〜Ｃに対して社員クラスに基づいて社員番号「１２３」の社員オブジェクト１７ａの生成に必要なデータの検索を行い、社員番号「１２３」の社員オブジェクト１７ａを生成する。
【００６８】
ステップＡ４において、データソース統合システム３の生成部９ｃは、生成された社員番号「１２３」の社員オブジェクト１７ａを、アクセス制御部８及び操作内容解析部７経由でアプリケーション４ａに返すとともに記録装置１３ｃに記録する。
【００６９】
ステップＡ５において、データソース統合システム３の操作内容解析部７は、アプリケーション４ｂから社員番号「１２３」の社員オブジェクト１７ａの検索要求を受け付ける。
【００７０】
ステップＡ６において、データソース統合システム３の検索部９ｂは、記録装置１３ｃに対する社員番号「１２３」の社員オブジェクト１７ａを検索する。
【００７１】
なお、この時点で社員番号「１２３」の社員オブジェクト１７ａはステップＡ４によって記録装置１３ｃに記録されているため、検索部９ｂは、記録装置１３ｃから社員番号「１２３」の社員オブジェクト１７ａを検索できる。
【００７２】
ステップＡ７において、データソース統合システム３の検索部９ｂは、検索された社員番号「１２３」の社員オブジェクト１７ａをアプリケーション４ｂに返す。
【００７３】
このように、データソースＡ〜Ｃをアクセスしなくても、データソース統合システム３内の統合オブジェクトをアプリケーション４ｂに返すことで、検索を高速に行うことができる。
【００７４】
図６は、データソース統合システム３の動作概念の第２例を示すブロック図である。
【００７５】
この図６では、統合クラスにおいてクラス間の参照関係が定義されている場合の動作の概要を示している。
【００７６】
ステップＢ１において、データソース統合システム３の操作内容解析部７は、組織名「総務課」の組織オブジェクト１９ａにおける「上位組織」の検索要求をアプリケーション４ａから受け付ける。
【００７７】
ここで、この図６の例では、この時点で組織名「総務課」の組織オブジェクト１９ａは、記録装置１３ｃに記録されているとする。また、組織名「総務課」の組織オブジェクト１９ａには、上位組織として「総務部」が定義されているとする。
【００７８】
ステップＢ２において、データソース統合システム３の検索部９ｂは、記録装置１３ｃに対する組織名「総務課」の組織オブジェクト１９ａを検索し、組織名「総務課」の組織オブジェクト１９ａを取得する。
【００７９】
ステップＢ３において、検索部９ｂは、組織名「総務課」の組織オブジェクト１９ａの「上位組織」で指定されている「総務部」の組織オブジェクト１９ｂを検索する。
【００８０】
ここで、この図６の例では、この時点で組織名「総務部」の組織オブジェクト１９ｂは記録装置１３ｃに記録されていないとする。
【００８１】
ステップＢ４において、データソース統合システム３の生成部９ｃは、複数のデータソースＡ〜Ｃを検索し、組織名「総務部」の組織オブジェクト１９ｂを生成する。
【００８２】
ステップＢ５において、データソース統合システム３の生成部９ｃは、生成された組織名「総務部」の組織オブジェクト１９ｂをアプリケーション４ａに返すとともに、記録装置１３ｃに記録する。
【００８３】
図７は、データソース統合システム３の動作概念の第３例を示すブロック図である。
【００８４】
この図７では、統合オブジェクトに対する操作の排他制御を行う場合の動作の概要を示している。
【００８５】
排他レベルとしては、検索禁止、更新禁止、登録禁止、削除禁止などがある。なお、ここでは、社員オブジェクト１７ａの更新が要求された場合を例として説明するが、統合オブジェクトの検索、登録、削除などが要求された場合も同様である。
【００８６】
ステップＣ１において、データソース統合システム３の操作内容解析部７は、アプリケーション４ａから社員番号「１２３」の社員オブジェクト１７ａの第１更新要求を受け付ける。
【００８７】
ステップＣ２において、データソース統合システム３の排他制御部９ｇは、第１更新要求のみに対して社員番号「１２３」の社員オブジェクト１７ａを占有させる。
【００８８】
ステップＣ３において、データソース統合システム３の更新部９ｄは、記録装置１３ｃに記録されている社員番号「１２３」の社員オブジェクト１７ａを第１更新命令にしたがって更新する。
【００８９】
ここで、この図７の例では、第１更新命令に基づく社員番号「１２３」の社員オブジェクト１７ａの更新中に、アプリケーション４ｂから社員番号「１２３」の社員オブジェクト１７ａの第２更新要求が発信されたとする。
【００９０】
ステップＣ４において、データソース統合システム３の操作内容解析部７は、アプリケーション４ｂから社員番号「１２３」の社員オブジェクト１７ａの第２更新要求を受け付ける。
【００９１】
ステップＣ５において、データソース統合システム３の排他制御部９ｇは、第１更新要求のみに対して社員番号「１２３」の社員オブジェクト１７ａを占有させるため、第２更新要求を拒否する。
【００９２】
ステップＣ６において、データソース統合システム３の更新部９ｄは、エラーメッセージをアプリケーション４ｂに提供する。
【００９３】
なお、排他制御部９ｇは、同一のアプリケーションから同一の統合オブジェクトに対する複数のデータ操作命令を受け付けた場合も、データ操作命令単位でロックを行う。
【００９４】
また、同一のデータソースのデータに対して、異なる統合オブジェクトからの操作要求を拒否する。例えば、データソースＣに格納された「免許」データを、社員オブジェクトと資格オブジェクトの両方から操作できるような統合クラスを定義しない、又は、社員オブジェクトがロックされたときに、社員オブジェクトで利用するデータソースのデータもロックするなどの方法がある。
【００９５】
図８は、データソース統合システム３の動作概念の第４例を示すブロック図である。
【００９６】
この図８では、社員オブジェクト１７ａの登録が要求された後、社員オブジェクト１７ａの内容を各データソースＡ〜Ｃに反映する場合を例として説明するが、社員オブジェクト１７ａの更新、削除などが要求された場合も同様である。
【００９７】
ステップＤ１において、データソース統合システム３の操作内容解析部７は、アプリケーション４ａから社員番号「１２３」の社員オブジェクト１７ａの登録要求を受け付ける。
【００９８】
ステップＤ２において、データソース統合システム３の登録部９ｅは、社員番号「１２３」の社員オブジェクト１７ａを記録装置１３ａに記録する。
【００９９】
ステップＤ３において、データソース統合システム３の書込管理部１０は、記録装置１３ｃに対する社員オブジェクト１７ａの登録とは別のタイミングで、社員番号「１２３」の社員オブジェクト１７ａの登録要求をトランザクション管理部１１に提供し、各データソースＡ〜Ｃの内容に反映させる。
【０１００】
例えば、書込管理部１０は、アプリケーション４ａから書込命令を受け付けた場合に、記録装置１３ｃに記録されている社員オブジェクト１７ａをオブジェクト処理部９の書込部９ｈ経由で読み出し、この社員オブジェクト１７ａの内容を各データソースＡ〜Ｃの内容に反映させるための操作命令を、トランザクション管理部１１及びデータソースアクセス部１２ａ〜１２ｃを経由してデータソースＡ〜Ｃに提供するとしてもよい。また、書込管理部１０は、時刻指定によるバッチ処理により、記録装置１３ｃに記録されている社員オブジェクト１７ａをオブジェクト処理部９の書込部９ｈ経由で読み出し、この社員オブジェクト１７ａの内容を各データソースＡ〜Ｃの内容に反映させるための操作命令を、トランザクション管理部１１及びデータソースアクセス部１２ａ〜１２ｃを経由してデータソースＡ〜Ｃに提供するとしてもよい。
【０１０１】
このように、記録装置１３ｃの変更（登録、更新、削除）と別のタイミングでデータソースＡ〜Ｃの変更を行うことにより、データソース統合システム３における処理数の少ないとき又はデータソースＡ〜Ｃへのデータ操作の少ないときに、データソース統合システム３からデータソースＡ〜Ｃへのデータ操作を行うことができる。これにより、見かけ上の処理速度を向上させることができる。なお、このように「データ操作命令とは別のタイミング」という意味には記録装置１３ｃの変更と別のタイミングでの変更も含まれる。
【０１０２】
また、全てのデータソースＡ〜Ｃを同タイミングで変更するのではなく、変更のタイミングをデータソース単位で変えてもよい。
【０１０３】
例えば、頻繁にアクセスされるデータソースに対しては、リアルタイムにオブジェクトの変更を反映させ、一日一度決められた時間にアクセスされるデータソースに対しては、一日一度バッチ処理で変更を反映させるなど、データソース毎に変更タイミングを設定することにより、データソースに対する無駄なアクセスを軽減することができる。
【０１０４】
図９は、データソース統合システム３の動作概念の第５例を示すブロック図である。
【０１０５】
この図９では、各データソースＡ〜Ｃの更新処理をトランザクション管理部１１とデータソースアクセス部１２ａ〜１２ｃによって一括して行う場合について説明する。
【０１０６】
データソース統合システム３の記録装置１３ｃには、社員番号「１２３」の社員オブジェクト１７ａが記録されている。社員番号「１２３」の社員オブジェクト１７ａの属性「電話番号」は属性値「１２３−４５６−７８９０」を持ち、属性「所属」は属性値「経理部」を持つとする。
【０１０７】
ステップＥ１において、データソース統合システム３の操作内容解析部７は、アプリケーション４ａから社員番号「１２３」の社員オブジェクト１７ａの更新要求を受け付ける。
【０１０８】
ここで、更新要求は、社員番号「１２３」の電話番号を「１１１−２２２−３４５６」に更新し、社員番号「１２３」の所属を「総務部」に更新する要求であるとする。
【０１０９】
ステップＥ２において、データソース統合システム３の更新部は、社員番号「１２３」の社員オブジェクト１７ａを記録装置１３ｃから読み出し、更新要求で指定されている内容に更新し、更新後の社員番号「１２３」の社員オブジェクト１７ａを記録装置１３ｃに記録する。
【０１１０】
ステップＥ３において、データソース統合システム３の書込管理部１０は、記録装置１３ｃに対する統合オブジェクトの更新とは別のタイミングで、オブジェクト処理部９の書込部９ｈ経由で社員オブジェクト１７ａを取得し、操作内容をトランザクション管理部１１に提供する。
【０１１１】
ステップＥ４において、データソース統合システム３のトランザクション管理部１１は、操作内容と定義データ１４にしたがってデータソース操作命令を各データソースアクセス部１２ａ〜１２ｃに提供する。
【０１１２】
ステップＥ５において、データソース統合システム３の各データソースアクセス部１２ａ〜１２ｃは、データソース操作命令を定義データ１４に基づいて変換し、変換後のデータソース操作命令をデータ操作対象のデータソースＡ、Ｂに提供する。
【０１１３】
変換の結果、データソースアクセス部１２ａによって、データソースＡにおける社員番号「１２３」の所属を「総務部」に変換する操作命令が得られ、データソースアクセス部１２ｂによって、社員番号「１２３」の電話番号を「１１１−２２２−３４５６」に変換する操作命令が得られる。
【０１１４】
図１０は、データソース統合システム３の処理の例を示すフローチャートである。この図１０では、検索が要求された場合について説明する。
【０１１５】
ステップＦ１において、操作内容解析部７は、命令発信元からデータ操作命令を受け付け、操作内容を解析する。
【０１１６】
ステップＦ２において、アクセス制御部８は、アクセス制御データ１５を参照し、命令発信元から要求された操作を制限するか判断する。操作を制限する場合には、処理が終了する。
【０１１７】
操作を許可する場合には、ステップＦ３において、オブジェクト処理部９の検索部９ｂは、記録装置１３ｃに対して検索対象の統合オブジェクトの検索を行う。
【０１１８】
ステップＦ４において、オブジェクト処理部９の検索部９ｂは、検索対象の統合オブジェクトが検索されたか否か判断する。検索されたと判断された場合、検索部９ｂは、検索された統合オブジェクトを要求発信元に提供し、ステップＦ８が実行される。
【０１１９】
検索されなかったと判断された場合、ステップＦ５において、定義データ読込部９ａは、定義データ１４を読み込み、ステップＦ６において、生成部９ｃは、データソースアクセス部１２ａ〜１２ｃを経由してデータソースＡ〜Ｃの内容を読み込む。
【０１２０】
ステップＦ７において、生成部９ｃは、定義データ読込部９ａによって読み込まれた定義データ１４とトランザクション管理部１１、データソースアクセス部１２ａ〜１２ｃによって読み出されたデータソースＡ〜Ｃの内容に基づいて、検索対象の統合オブジェクトを生成し、記録装置１３ｃに記録するとともに要求発信元に提供する。
【０１２１】
なお、上記図１０において、検索ではなく、他の更新、登録、削除などの操作が要求された場合には、上記ステップＦ３〜ステップＦ７の処理に代えて、それぞれ更新処理、登録処理、削除処理が実行される。
【０１２２】
例えば、操作内容が統合オブジェクトの更新の場合、更新部９ｄは、記録装置１３ｃに記録されている更新対象の統合オブジェクトを更新する。
【０１２３】
また、操作内容が統合オブジェクトの登録の場合、登録部９ｅは、登録対象の統合オブジェクトを記録装置１３ｃに登録する。
【０１２４】
また、操作内容が統合オブジェクトの削除の場合、削除部９ｆは、記録装置１３ｃの統合オブジェクトから削除対象のデータを削除する。
【０１２５】
また、登録、更新、削除の処理では、ステップＦ８において、書込管理部１０が、記録装置１３ｃの変更内容をデータソースＡ〜Ｃに書き込むか判断する。
【０１２６】
データソースＡ〜Ｃに書き込む場合、ステップＦ９において、書込管理部１０は、トランザクション管理部１１及びデータソースアクセス部１２ａ〜１２ｃを経由してデータソースＡ〜Ｃの内容を変更する。
【０１２７】
以上説明した本実施の形態においては、種類の異なる複数のデータソースＡ〜Ｃの内容を統合した統合オブジェクトを生成する。これにより、以下のような効果を得ることができる。
【０１２８】
第１に、統合オブジェクトに対して各種データ操作を行うことにより、データが実際にはどのデータソースＡ〜Ｃに格納されているか意識する必要がなく、効率的にデータを管理できる。
【０１２９】
第２に、データソースＡ〜Ｃの種類の違いを吸収し、データソースＡ〜Ｃの種類を意識することなくデータ操作でき、命令発信元から受け付けたデータ操作命令のフォーマットを統一できる。
【０１３０】
第３に、複数のデータソースＡ〜Ｃに対する複数のトランザクションを統一的に管理できる。
【０１３１】
第４に、複数のデータソースＡ〜Ｃに対するアクセス制御を統一的に行うことができる。
【０１３２】
第５に、複数のデータソースＡ〜Ｃの内容を統合した統合オブジェクトがデータソース統合システム３内に保持されるため、データソースＡ〜Ｃに対するアクセス回数を減少させることができ、データ操作を高速化、効率化できる。
【０１３３】
第６に、統合オブジェクトの内容をデータソースＡ〜Ｃに反映するタイミングを制御することができる。そして、データソースＡ〜Ｃに対するアクセス数の少ないタイミングやデータソース統合システム３が高速処理可能なタイミングに、データソースＡ〜Ｃにアクセスすることにより、データ操作を高速化でき、データを効率的に管理できる。
【０１３４】
第７に、統合クラスにおいてクラス間の参照関係が定義されている場合には、統合オブジェクトの検索が容易となり、高速かつ効率的なデータ操作を行うことができる。
【０１３５】
（第２の実施の形態）
本実施の形態においては、上記定義データ１４の内容がデータソース統合プログラムに予め組み込まれているコンパイラ型の処理形態を持つデータソース統合システムについて説明する。
【０１３６】
図１１は、本実施の形態に係るデータソース統合システムの構成の一例を示すブロック図である。なお、この図１１において上記図１と同一の部分については同一の符号を付してその説明を省略し、ここでは異なる部分についてのみ詳しく説明する。
【０１３７】
記録媒体に記録されているデータソース統合プログラム６ｂには、上記定義データ１４が組み込まれている。
【０１３８】
データソース統合システム２０は、コンパイラ２１（処理プログラム作成部）を具備する。
【０１３９】
データソース統合プログラム６ｂは、コンパイラ２１によってコンパイルされ、データソース統合システム２０上で動作する。
【０１４０】
本実施の形態においては、定義データ１４がデータソース統合プログラム６ｂに予め組み込まれているため、上記図１の記録装置１３ｂと上記図２の定義データ読込部９ａが省略される。
【０１４１】
例えば、第１の実施の形態では、データソースアクセス部１２ａ〜１２ｃはデータソースＡ〜Ｃに接続するために必要なホスト名、ポート番号などの情報を定義データ１４から参照するが、本実施の形態ではプログラム中にそれらの情報が書き込まれている。
【０１４２】
したがって、オブジェクト処理部２２、トランザクション管理部２６及びデータソースアクセス部２３ａ〜２３ｃは、定義データ１４を別途アクセスする必要がない。
【０１４３】
図１２は、データソース統合システム２０の処理の例を示すフローチャートである。
【０１４４】
ステップＧ１において、データソース統合システム２０のコンパイラ２１は、データソース統合プログラム６ｂをコンパイルする。
【０１４５】
その後のステップＧ２〜Ｇ９は、上記図１０のステップＦ１〜Ｆ４、Ｆ６〜Ｆ９と同様であり、ステップＦ５が省略されている。
【０１４６】
データソース統合システム２０は、定義データ１４の内容を得るために記録装置への参照を行う必要がないため、処理を高速化できる。
【０１４７】
なお、上記各実施の形態において、データソース統合システム３、２０の各構成要素は、プログラムにより実現される部分がハードウェアによって実現されるとしてもよい。
【０１４８】
また、上記各実施の形態に係るデータソース統合システム３、２０に具備される各構成要素は、同様の動作を実現可能であれば配置を変更させてもよく、また各構成要素を自由に組み合わせてもよく、各構成要素を自由に分割してもよい。
【０１４９】
また、上記各実施の形態に係るデータソース統合システム３、２０は複数の計算機により構成され、各データソース統合プログラム６ａ、６ｂは複数の計算機に分散して配置され、互いに連携を取りつつ処理を実行するとしてもよい。
【０１５０】
また、上記各記録装置には、例えば内部メモリ、ハードディスクなどが適用される。上記各記録装置は、データベースを構成する要素であってもよい。
【０１５１】
上記データソース統合プログラム６ａ、６ｂを記録する記録媒体６、データソースＡ〜Ｃを記録する記録装置２７Ａ〜２７Ｃとしては、例えば磁気ディスク（フレキシブルディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどがある。また、データソース統合プログラム６ａ、６ｂは、通信媒体により伝送してコンピュータに適用することも可能である。この場合にも、コンピュータは、プログラムを読み込み、プログラムによって動作が制御されることにより、上記の機能を実現する。
【０１５２】
【実施例】
以下において、上記第１の実施の形態に係るデータソース統合システム３の具体例について説明する。なお、上記第２の実施の形態に係るデータソース統合システム２０についても同様である。
【０１５３】
（第１の実施例）
本実施例において、データソースＡの種類はＬＤＡＰ、データソースＢの種類はＲＤＢであり、データソース統合システム３は、この２つのデータソースＡ、Ｂを統合する。
【０１５４】
まず、データソースＡについて説明する。
【０１５５】
図１３は、データソースＡのツリー構成の例を示すブロック図である。
【０１５６】
データソースＡは、国エントリ、企業エントリ、組織エントリ、社員エントリの４種類のエントリから構成される。各エントリは、上位から、国エントリ、企業エントリ、組織エントリ、社員エントリの順で階層関係を持つ。
【０１５７】
この図１３の例では、国エントリｅ１の下位に企業エントリｅ２がある。企業エントリｅ２の下位に組織エントリｅ３、ｅ４がある。組織エントリｅ３の下位に社員エントリｅ５〜ｅ７がある。また、組織エントリｅ４の下位に社員エントリｅ８がある。
【０１５８】
表１は、国エントリｅ１の例である。
【０１５９】
【表１】
2004259066.tif 000003
【０１６０】
表２は、企業エントリｅ２の例である。
【０１６１】
【表２】
2004259066.tif 000004
【０１６２】
表３は、組織エントリｅ３の例である。
【０１６３】
【表３】
2004259066.tif 000005
【０１６４】
表４は、組織エントリｅ４の例である。
【０１６５】
【表４】
2004259066.tif 000006
【０１６６】
表５は、社員エントリｅ５の例である。
【０１６７】
【表５】
2004259066.tif 000007
【０１６８】
表６は、社員エントリｅ６の例である。
【０１６９】
【表６】
2004259066.tif 000008
【０１７０】
表７は、社員エントリｅ７の例である。
【０１７１】
【表７】
2004259066.tif 000009
【０１７２】
表８は、社員エントリｅ８の例である。
【０１７３】
【表８】
2004259066.tif 000010
次に、データソースＢについて説明する。
【０１７４】
このデータソースＢは、企業テーブルｔ１、組織テーブルｔ２、社員テーブルｔ３という３種類のテーブルを管理するとする。
【０１７５】
表９は、企業テーブルｔ１の例である。
【０１７６】
【表９】
2004259066.tif 000011
【０１７７】
表１０は、組織テーブルｔ２の例である。
【０１７８】
【表１０】
2004259066.tif 000012
【０１７９】
表１１は、社員テーブルｔ３の例である。
【０１８０】
【表１１】
2004259066.tif 000013
【０１８１】
次に、定義データ１４について説明する。
【０１８２】
定義データ１４は、例えばデータソース接続定義データ１４ａ、データソースアクセス方法定義データ１４ｂ、各データソースＡ、Ｂに関するデータソース定義データ１４ｃ、１４ｄなどのようなデータソース自体についてのデータと、マッピング定義データ１４ｅを具備する。
【０１８３】
データソース接続定義データ１４ａの例を表１２に示す。
【０１８４】
【表１２】
2004259066.tif 000014
データソース接続定義データ１４ａには、データソース名、データソースの種別、ホスト名、ポート、Ｂｉｎｄ  Ｕｓｅｒ、Ｐａｓｓｗｏｒｄなどの各データソースＡ、Ｂに接続するために必要な情報が定義される。
【０１８５】
データソースアクセス方法定義データ１４ｂの例を表１３に示す。
【０１８６】
【表１３】
2004259066.tif 000015
データソースアクセス方法定義データ１４ｂには、各データソースＡ、Ｂを検索、登録、更新、削除するためのコマンドが定義される。
【０１８７】
データソース定義データ１４ｃ、１４ｄには、各データソースＡ、Ｂに記録されるデータの内容が定義される。例えば、データソース定義データ１４ｃ、１４ｄでは、対応するデータソースＡ、Ｂに記録されているデータのデータ名（例えば、ＬＤＡＰの属性、ＲＤＢの列名）が定義される。
【０１８８】
本実施例では、ＬＤＡＰ及びＲＤＢの２つのデータソースＡ、Ｂがあるため、定義データ１４は２つのデータソース定義データ１４ｃ、１４ｄを具備する。
【０１８９】
データソースＡに係るデータソース定義データ１４ｃの例を表１４に示す。
【０１９０】
【表１４】
2004259066.tif 000016
データソース定義データ１４ｃには、データソースＡのオブジェクトクラス名、属性名、型、必須、主キーが定義される。
【０１９１】
一方、データソースＢに係るデータソース定義データ１４ｄの例を表１５に示す。
【０１９２】
【表１５】
2004259066.tif 000017
データソース定義データ１４ｄには、データソースＢのテーブル名、列名、型、必須、主キーが定義される。
【０１９３】
マッピング定義データ１４ｅの例を表１６に示す。
【０１９４】
【表１６】
2004259066.tif 000018
マッピング定義データ１４ｅには、統合クラスとこの統合クラスの属性の定義、及び統合クラスとこの統合クラスの属性と上記データソース定義データ１４ｃ、１４ｄで定義されているデータとのマッピング関係を定義している。
【０１９５】
統合クラスの属性としては、データソースＡ、Ｂのいずれかに記録されたデータ、参照関係にあるクラス、関数の３種類が用いられ、それぞれ定義内容が異なる。
【０１９６】
まず、マッピング定義データ１４ｅについて、統合クラスの属性の種別がデータの場合について説明する。
【０１９７】
統合クラスの属性の種別がデータでありこの統合クラスの属性の属性値となるデータがＬＤＡＰのデータソースＡに格納されている場合、マッピング定義データ１４ｅには、統合クラスの属性名、型、必須となる属性、主キーとなる属性と、統合クラスで属性値となるデータの格納されているデータソース名、クラス、属性名とが関係付けられ、定義される。
【０１９８】
一方、統合クラスの属性の種別がデータでありこの統合クラスの属性の属性値となるデータがＲＤＢのデータソースＢに格納されている場合、マッピング定義データ１４ｅには、統合クラスの属性名、型、必須となる属性、主キーとなる属性と、統合クラスで属性値となるデータの格納されているデータソース名、テーブル名、列名とが関係付けられ、定義される。
【０１９９】
マッピング定義データ１４ｅにおいて、異なるデータソースＡ、Ｂ間で同じ値を持つ属性は、共通キーとして定義される。共通キーとして定義される統合クラスの属性名には、データソースＡの属性名及びデータソースＢの列名が関係付けされる。
【０２００】
共通キーは、例えば、データソースＡの属性の値をキーとして、データソースＢの列の値を取得するとき、共通キーである旨の印の付されているデータソースＡの属性の値を、関連するデータソースＢの列の値として代入し、この代入された値をキーとしてデータソースＢ内の列の値を取得する場合に使用される。
【０２０１】
例えば、ＳｙａｉｎＣｌａｓｓにおいて、共通キーは「ＳＹＡＩＮ＿ＮＵＭ」であり、データソースＡは「ｕｉｄ」、データソースＢは「ＮＵＭＢＥＲ」に対応付けられている。ここで、データソースＡの「ｃｎ」の属性値をキーとして、データソースＢにある「ＴＥＬ」の属性値を取得する場合、まず「ｃｎ」をキーとしてデータソースＡを検索することにより、共通キーである「ｕｉｄ」の属性値を取得することができる。続いて、得られた「ｕｉｄ」の属性値を「ＮＵＭＢＥＲ」の属性値としてデータソースＢを検索することにより、目的とする「ＴＥＬ」の属性値を取得することができる。
【０２０２】
マッピング定義データ１４ｅにおけるＲｅａｄ、Ｗｒｉｔｅは、データソース統合システム３において統合オブジェクトの属性値に対するＲｅａｄ、Ｗｒｉｔｅの操作が行われたときに、実際にどのデータソースＡ、Ｂの属性値又は列の値に対してＲｅａｄ、Ｗｒｉｔｅ操作を行うか定義している。
【０２０３】
例えば、共通キーであるＳｙａｉｎＣｌａｓｓの「ＳＹＡＩＮ＿ＮＵＭ」の属性値を取得する場合、データソースＡの「ｕｉｄ」、データソースＢの「ＮＵＭＢＥＲ」のどちらを参照すればよいかを特定できないため、どのデータソースから値を参照するかをＲｅａｄから判断する。表１６の例では、「ｕｉｄ」から参照することになっている。
【０２０４】
次に、マッピング定義データ１４ｅについて、統合クラスの属性の種別が参照関係の場合について説明する。
【０２０５】
統合クラスの属性の種別が参照関係の場合、この統合クラスの属性名、参照元対応属性名、参照先クラス名、参照先対応属性名、参照対応数が定義される。参照関係の属性に対する取得操作は、参照先クラスの参照先対応属性に、参照元対応属性の値を持つ参照先クラスの統合オブジェクトを取得する操作に変換される。
【０２０６】
例えば、ＳｙａｉｎＣｌａｓｓにおいて、参照関係の属性である「ＳＹＯＺＯＫＵ＿ＳＯＳＩＫＩ」に対する取得操作が要求された場合、ＳｏｓｉｋｉＣｌａｓｓの「ＳＯＳＩＫＩ＿ＣＯＤＥ」にＳｙａｉｎＣｌａｓｓの「ＳＹＯＺＯＫＵ＿ＣＯＤＥ」の値が入ったＳｏｓｉｋｉＣｌａｓｓを取得することになる。
【０２０７】
次に、マッピング定義データ１４ｅについて、統合クラスの属性の種別が関数の場合について説明する。
【０２０８】
統合クラスの属性の種別が関数の場合、統合クラスの属性名、型、処理内容が定義される。例えば、関数の属性名として「年齢」を考えた場合、処理内容には、関数［現在の年月日−誕生年月日］が定義される。
【０２０９】
次に、アクセス制御データ１５について説明する。
【０２１０】
アクセス制御データ１５は、ロール定義データ１５ａとアクセス制御定義データ１５ｂ、１５ｃとを具備する。
【０２１１】
表１７に、ロール定義データ１５ａの例を示す。
【０２１２】
【表１７】
2004259066.tif 000019
ロール定義データ１５ａでは、複数の権限をまとめたロールと、そのロールに対応付けられるアプリケーションが定義される。この例では、アプリケーション４ａについての権限がまとめられてロール「ＲＯＬＥ０１」とされ、アプリケーション４ｂについての権限がまとめられてロール「ＲＯＬＥ０２」とされる。
【０２１３】
表１８に、ロール「ＲＯＬＥ０１」についてのアクセス制御定義データ１５ｂの例を示す。
【０２１４】
【表１８】
2004259066.tif 000020
【０２１５】
表１９に、ロール「ＲＯＬＥ０２」についてのアクセス制御定義データ１５ｃの例を示す。
【０２１６】
【表１９】
2004259066.tif 000021
アクセス制御定義データ１５ｂ、１５ｃでは、各ロールの内容が定義され、クラスに対する操作（検索、登録、更新、削除）と、属性に対する操作（Ｒｅａｄ、Ｗｒｉｔｅ）の権限が定義される。
【０２１７】
図１４は、本実施例におけるデータソース統合システム３の処理フローの第１例を示すブロック図である。
【０２１８】
この図１４では、アプリケーション４ａが、名前「ＴＴＴ」の社員オブジェクト２４を検索する操作を行う。
【０２１９】
前提条件として、操作対象となる名前「ＴＴＴ」の社員オブジェクト２４は記録装置１３ｃに記録されていないとする。
【０２２０】
ステップＨ１において、データソース統合システム３の操作内容解析部７は、アプリケーション４ａから検索要求を表すデータ操作命令「ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  ＳｙａｉｎＣｌａｓｓ  ＷＨＥＲＥ  ＮＡＭＥ＝ＴＴＴ」を受け付け、操作内容を解析し、操作内容をアクセス制御部８に提供する。具体的には、まず「アプリケーション４ａからの要求」であり、操作が「検索」であり、操作対象オブジェクトのクラスが「ＳｙａｉｎＣｌａｓｓ」である旨の情報を抽出する。更に操作対象オブジェクトを特定するためのキーが「ＮＡＭＥ＝ＴＴＴ」であり、操作対象の属性が「全ての属性」である旨（上記操作命令の「＊」の部分）の情報を抽出し、これらの情報をアクセス制御部８に提供する。
【０２２１】
ステップＨ２において、アクセス制御部８は、上記表１７〜１９に例示するアクセス制御データ１５を参照し、アプリケーション４ａの権限情報を取得する。
【０２２２】
具体的には、アクセス制御部８は、上記表１７のロール定義データ１５ａに基づいて、アプリケーション４ａの権限情報はＲＯＬＥ０１に対応することを抽出する。そして、操作対象オブジェクトのクラスが「ＳｙａｉｎＣｌａｓｓ」であることから、上記表１８の「ＲＯＬＥ０１」のアクセス制御定義データ１５ｂに基づいて、「ＳｙａｉｎＣｌａｓｓ」に対する権限情報を抽出する。表１８の例では「ＳｙａｉｎＣｌａｓｓ」を検索可能であり、「ＢＩＲＴＨＤＡＴＥ」「ＫＥＩＴＡＩ」「ＡＧＥ」属性を除く属性に対して、Ｒｅａｄ権限が与えられていることを認識可能である。したがって、アクセス制御部８は、「ＳｙａｉｎＣｌａｓｓ」で定義され、「ＮＡＭＥ＝ＴＴＴ」のオブジェクトの「ＢＩＲＴＨＤＡＴＥ、ＫＥＩＴＡＩ、ＡＧＥを除く全ての属性」に対する「検索」である旨の情報をオブジェクト処理部９の検索部９ｂに出力する。
【０２２３】
ステップＨ３において、オブジェクト処理部９の検索部９ｂは、アクセス制御部８からの情報を受け付けると、検索対象の「ＮＡＭＥ＝ＴＴＴ」の社員オブジェクト２４について記録装置１３ｃに対して検索を行う。
【０２２４】
検索の結果、記録装置１３ｃに検索対象の社員オブジェクト２４が存在しないため、ステップＨ４において、オブジェクト処理部９の生成部９ｃは、データソースＡ、Ｂに関する情報を得るために、オブジェクト処理部９の定義データ読込部９ａを通して、定義データ１４に含まれる上記表１４及び表１５の示すデータソース定義データ１４ｃ、１４ｄを参照する。また、生成部９ｃは、統合クラスの属性とデータソースＡ、Ｂとのマッピング関係を表す上記表１６に示すマッピング定義データ１４ｅを参照する。
【０２２５】
マッピング定義データ１４ｅでは、統合クラス「ＳｙａｉｎＣｌａｓｓ」の属性「ＮＡＭＥ」が、データソースＡのオブジェクトクラス「ｉｎｅｔＯｒｇＰｅｒｓｏｎ」の属性「ｃｎ」に関係付けされている。したがって、統合クラス「ＳｙａｉｎＣｌａｓｓ」に対する検索キー「ＮＡＭＥ＝ＴＴＴ」を、データソースＡに対する検索キー「ｃｎ＝ＴＴＴ」としてデータソースＡ内を検索すれば、データソースＡに格納された名前「ＴＴＴ」のデータを取得可能である。また、データソースＢに格納された名前「ＴＴＴ」のデータも取得するために、上記表１６のマッピング定義データ１４ｅの共通キーを参照し、データソースＡとデータソースＢで同じ値を持つ属性を調べる。マッピング定義データ１４ｅでは、データソースＡのオブジェクトクラス「ｉｎｅｔＯｒｇＰｅｒｓｏｎ」の属性「ｕｉｄ」と、データソースＢのテーブル「ＳＹＡＩＮ」の列名「ＮＵＭＢＥＲ」とが同じ値を持つと記されている。したがって、データソースＡの検索の結果得られる「ｕｉｄ」の値を、データソースＢのテーブル「ＳＹＡＩＮ」の列名「ＮＵＭＢＥＲ」の値として、データソースＢに対する検索キー「ＮＵＭＢＥＲ＝＜ｕｉｄの属性値＞」を作成し検索すれば、データソースＢに格納された名前「ＴＴＴ」のデータを取得できる。
【０２２６】
そこで、生成部９ｃは、ステップＨ５において、「ｃｎ＝ＴＴＴ」をキーとする検索要求、「ＮＵＭＢＥＲ＝＜ｕｉｄの属性値＞」をキーとする検索要求をトランザクション管理部１１に提供する。
【０２２７】
ステップＨ６において、トランザクション管理部１１は、マッピング定義データ１４ｅを参照することにより、「ｃｎ」属性がデータソースＡに格納されていることを認識し、「ｃｎ＝ＴＴＴ」をキーとする検索要求をデータソースＡに対応したデータソースアクセス部１２ａに提供する。
【０２２８】
ステップＨ７において、データソースアクセス部１２ａは、上記表１２のデータソース接続定義データ１４ａを参照し、データソースＡに接続するための情報を取得した後、上記表１３のデータソースアクセス方法定義データ１４ｂを参照し、データソースＡから「ｃｎ＝ＴＴＴ」をキーとする検索を行うためのコマンドを作成する。
【０２２９】
具体的には、ホスト名がｌｄａｐｈｏｓｔの３８９ポートにｃｎ＝Ｄｉｒｅｃｔｏｒｙ  Ｍａｎａｇｅｒで接続し、「ｌｄａｐｓｅａｒｃｈ  ｃｎ＝ＴＴＴ  “ｏｂｊｅｃｔｃｌａｓｓ＝ｉｎｅｔＯｒｇＰｅｒｓｏｎ”」というコマンドを用いて検索を行う。
【０２３０】
検索の結果、統合クラスの「ＳＹＡＩＮ＿ＮＵＭ」「ＭＡＩＬ＿ＡＤＤＲＥＳＳ」「ＳＹＯＺＯＫＵ＿ＣＯＤＥ」属性に対応付けられたデータソースＡの「ｕｉｄ」「ｍａｉｌ」「ｏｕ」属性の属性値「１００００１」「ＴＴＴ＠ＴＴＴ．ｃｏ．ｊｐ」「２０１」を取得し、トランザクション管理部１１に提供する。
【０２３１】
このとき、統合クラスの「ＫＥＩＴＡＩ」に対応する「ｍｏｂｉｌｅ」の属性値についてはアクセス権限がないため取得されない。また、属性種別が参照関係の属性については、その属性に対して直接取得操作がない限り取得されない。
【０２３２】
続いて、ステップＨ８において、トランザクション管理部１１は、マッピング定義データ１４ｅを参照することにより、「ＮＵＭＢＥＲ」がデータソースＢに格納されていることを認識し、データソースＡの検索で得られた「ｕｉｄ」の値「１００００１」を「ＮＵＭＢＥＲ」の値として、「ＮＵＭＢＥＲ＝１００００１」をキーとする検索要求をデータソースＢに対応したデータソースアクセス部１２ｂに提供する。
【０２３３】
ステップＨ９において、データソースアクセス部１２ｂは、上記表１２のデータソース接続定義データ１４ａを参照し、データソースＢに接続するための情報を取得した後、上記表１３のデータソースアクセス方法定義データ１４ｂを参照し、「ＮＵＭＢＥＲ＝１００００１」をキーとする検索を行うためのコマンドを作成する。
【０２３４】
具体的には、ホスト名がｒｄｂｈｏｓｔの１５２１ポートにＡｄｍｉｎで接続し、「ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  ＳＹＡＩＮ  ＷＨＥＲＥ  ＮＵＭＢＥＲ＝１００００１」を用いて検索を行う。
【０２３５】
検索の結果、統合クラスの「ＴＥＬＥＰＨＯＮＥ」「ＹＡＫＵＳＹＯＫＵ」属性に対応付けられたデータソースＢの「ＴＥＬ」「ＳＹＯＫＵＩ」属性の属性値「０１１−２２２−３４５６」「Ｓ」を取得し、トランザクション管理部１１に提供する。
【０２３６】
このとき、統合クラスの属性「ＢＩＲＴＨＤＡＴＥ」に対応する「ＢＩＲＴＨ」の属性値についてはアクセス権限がないため取得されない。
【０２３７】
ステップＨ１０において、トランザクション管理部１１は、データソースＡ、Ｂの検索結果を生成部９ｃに提供する。
【０２３８】
なお、上記処理において、データソースＡに対するデータの検索とデータソースＢに対するデータの検索の順序は、統合クラスに対する検索キーに使われる属性がどのデータソースに格納されているかによる。本実施例では、統合クラスの「ＮＡＭＥ」属性がデータソースＡの「ｃｎ」属性に関係付けられているため、データソースＡから検索される。並列で検索が可能な場合は並列に行われてもよい。
【０２３９】
ステップＨ１１において、生成部９ｃは、データソースＡとデータソースＢのデータを統合した名前「ＴＴＴ」の社員オブジェクト２４を生成する。
【０２４０】
ステップＨ１２において、生成部９ｃは、生成された名前「ＴＴＴ」の社員オブジェクトを記録装置１３ｃに記録するとともに、アクセス制御部８、操作内容解析部７経由でアプリケーション４ａに提供する。
【０２４１】
図１５は、本実施例におけるデータソース統合システムの処理フローの第２例を示すブロック図である。なお、この図１５では、上記図１４と同様にアプリケーション４ａが、名前「ＴＴＴ」の社員オブジェクト２４を検索する操作を行う。また、この図１５では、操作対象となる社員オブジェクト２４は記録装置１３ｃに記録されているとする。
【０２４２】
ステップＩ１、Ｉ２は、上記図１４のステップＨ１、Ｈ２と同様である。
【０２４３】
ステップＩ３において、オブジェクト処理部９の検索部９ｂは、検索対象の「ＮＡＭＥ＝ＴＴＴ」の社員オブジェクト２４の検索を記録装置１３ｃに対して行う。
【０２４４】
検索の結果、記録装置１３ｃに検索対象の社員オブジェクト２４が存在するため、ステップＩ４において、検索部９ｂは、検索された名前「ＴＴＴ」の社員オブジェクト２４をアクセス制御部８、操作内容解析部７経由でアプリケーション４ａに提供する。
【０２４５】
このように、データソース統合システム３の記録装置１３ｃに、種類の異なるデータソースの内容を反映し統合した統合オブジェクトを記録することにより、データの検索が要求された場合であってもデータソースをアクセスしなくてもよい場合がある。これにより、データの検索処理が高速化される。
【０２４６】
なお、異なるアプリケーションから同じ検索要求が複数回行われた場合であっても、１回目の検索要求時に統合オブジェクトが作成され、記録されるため、２回目以降ではデータソースを実際にアクセスする必要がなく処理を高速化できる。
【０２４７】
（第２の実施例）
本実施例では、上記第１の実施例と同様の条件において、アプリケーション４ｂが、社員番号「１００００１」の社員オブジェクト２４の属性「電話番号（ＴＥＬＥＰＨＯＮＥ）」の属性値と属性「役職（ＹＡＫＵＳＹＯＫＵ）」の属性値をそれぞれ「０１１−２２２−７８９０」、「ＳＳ」に更新する操作を行う場合について説明する。
【０２４８】
本実施例において、操作対象となる社員オブジェクト２４はデータソース統合システム３の記録装置１３ｃに記録されているとし、データソースへの書き込みタイミングはアプリケーションからデータソースに書き込みを行う旨を示す書込要求を受け付けたときとする。
【０２４９】
図１６は、本実施例におけるデータソース統合システム３の処理フローの例を示すブロック図である。
【０２５０】
ステップＪ１において、データソース統合システム３の操作内容解析部７は、アプリケーション４ｂから更新要求を表すデータ操作命令「ＵＰＤＡＴＥ  ＳｙａｉｎＣｌａｓｓ  ＳＥＴ  ＴＥＬＥＰＨＯＮＥ  ＝  ０１１−２２２−７８９０，  ＹＡＫＵＳＹＯＫＵ＝ＳＳ  ＷＨＥＲＥ  ＳＹＡＩＮ＿ＮＵＭ＝１００００１」を受け付け、操作内容を解析し、操作内容をアクセス制御部８に提供する。具体的には、「アプリケーション４ｂからの要求」であり、操作が「更新」であり、操作対象オブジェクトのクラスが「ＳｙａｉｎＣｌａｓｓ」である旨の情報を抽出する。更に、操作対象オブジェクトを特定するためのキーが「ＳＹＡＩＮ＿ＮＵＭ＝１００００１」であり、更新内容が「ＴＥＬＥＰＨＯＮＥ＝０１１−２２２−７８９０、ＹＡＫＵＳＹＯＫＵ＝ＳＳ」である旨の情報を抽出し、これらの情報をアクセス制御部８に提供する。
【０２５１】
ステップＪ２において、アクセス制御部８は、上記表１７〜１９に例示するアクセス制御データ１５を参照し、アプリケーション４ｂの権限情報を取得する。
【０２５２】
具体的には、アクセス制御部８は、上記表１７のロール定義データ１５ａに基づいて、アプリケーション４ｂの権限情報はＲＯＬＥ０２に対応することを抽出する。そして、操作対象オブジェクトのクラスが「ＳｙａｉｎＣｌａｓｓ」であることから、上記表１９のＲＯＬＥ０２のアクセス制御定義データ１５ｃに基づいて、「ＳｙａｉｎＣｌａｓｓ」に対する権限情報を抽出する。表１９の例では「ＳｙａｉｎＣｌａｓｓ」の検索、登録、更新、削除が可能であり、全ての属性に対してＲｅａｄ、Ｗｒｉｔｅの権限が与えられていることを認識可能である。したがって、アクセス制御部８は、「ＳｙａｉｎＣｌａｓｓ」で定義され、「ＳＹＡＩＮ＿ＮＵＭ＝１００００１」のオブジェクトの「ＴＥＬＥＰＨＯＮＥ」「ＹＡＫＵＳＹＯＫＵ」属性の属性値を「０１１−２２２−７８９０」「ＳＳ」に「更新」する旨の情報をオブジェクト処理部９の更新部９ｄに出力する。
【０２５３】
ステップＪ３において、オブジェクト処理部９の更新部９ｄは、アクセス制御部からの情報を受け付けると、更新対象の「ＳＹＡＩＮ＿ＮＵＭ＝１００００１」の社員オブジェクト２４の検索を記録装置１３ｃに対して行う。
【０２５４】
検索の結果、記録装置１３ｃに更新対象の社員オブジェクト２４が存在するため、ステップＪ４において、更新部９ｄは、属性「ＴＥＬＥＰＨＯＮＥ」の属性値を「０１１−２２２−７８９０」に更新し、属性「ＹＡＫＵＳＹＯＫＵ」の属性値を「ＳＳ」に更新する。
【０２５５】
このとき、ステップＪ５において、オブジェクト処理部９の排他制御部９ｇは、この更新対象の社員オブジェクト２４をロックしており、他のデータ操作命令（例えば他のアプリケーションからの更新要求）があった場合に、この他のデータ操作命令を拒否する。
【０２５６】
ステップＪ６において、更新部９ｄは、社員オブジェクト２４の更新が終わった後、更新完了メッセージをアクセス制御部８、操作内容解析部７経由でアプリケーション４ｂに提供する。
【０２５７】
ここで、アプリケーション４ｂは、社員オブジェクト２４の内容をデータソースに反映する旨の書込命令をデータソース統合システム３に提供したとする。
【０２５８】
ステップＪ７において、操作内容解析部７は、アプリケーション４ｂから書込命令を受け付け、アクセス制御部８によるアクセス権限の確認を経て書込管理部１０に提供する。
【０２５９】
ステップＪ８において、書込管理部１０は、書込命令を受け付けた場合に、オブジェクト処理部９の書込部９ｈ経由で社員オブジェクト２４を取得し、この社員オブジェクト２４の内容にしたがってデータソースを更新するためのデータソース操作命令をトランザクション管理部１１に提供する。
【０２６０】
ステップＪ９において、トランザクション管理部１１は、社員オブジェクト２４の更新要求を、それぞれデータソースに対する更新要求に変換する。
【０２６１】
具体的には、上記表１６のマッピング定義データ１４ｅを参照し、更新される社員オブジェクト２４の「ＴＥＬＥＰＨＯＮＥ」「ＹＡＫＵＳＹＯＫＵ」属性は、共にデータソースＢに格納されており、「ＳＹＡＩＮ」テーブルの「ＴＥＬ」「ＳＹＯＫＵＩ」属性に対応付けられていることを認識し、データソースＢに対応するデータソースアクセス部１２ｂに更新要求を出す。
【０２６２】
ステップＪ１０において、データソースアクセス部１２ｂは、上記表１２のデータソース接続定義データ１４ａに基づいてデータソースＢにアクセスし、上記表１３のデータソースアクセス方法定義データ１４ｂに基づいて、データソースＢに対する更新コマンド「ＵＰＤＡＴＥ」を用いたデータソースＢに対する更新要求を作成し、データソースＢを更新する。
【０２６３】
具体的には、ホスト名がｒｄｂｈｏｓｔの１５２１ポートにＡｄｍｉｎで接続し、「ＵＰＤＡＴＥ  ＳＹＡＩＮ  ＳＥＴ  ＴＥＬ＝０１１−２２２−７８９０  ，  ＳＹＯＫＵＩ＝ＳＳ  ＷＨＥＲＥ  ＳＹＡＩＮ＿ＮＵＭ＝１００００１」を用いて更新を行う。
【０２６４】
なお、本実施例では、アプリケーションからの書込要求にしたがってデータソースへの書き込みが行われるが、例えば時刻指定など、所定のデータソースへの書き込みタイミング毎に、バッチ処理によりデータソースへの書き込みが行われてもよい。
【０２６５】
（第３の実施例）
本実施例では、アプリケーション４ｂからの操作によって、組織コード「２０１」の組織に属する社員の社員オブジェクトが取得され、取得された社員オブジェクトに含まれる電話番号を更新する。
【０２６６】
本実施例では、操作対象となる組織オブジェクト、社員オブジェクトは記録装置１３ｃに記録されていないとする。
【０２６７】
本実施例において、アプリケーション４ｂは、上記第１の実施例と同様の条件において、第１段階で、組織コード「２０１」の組織オブジェクト２５を参照し、第２段階で、参照した組織オブジェクト２５に属する社員の社員オブジェクト２４ａ〜２４ｃを検索し、第３段階で、検索された社員オブジェクト２４ａ〜２４ｃの電話番号を「０１１−５５５−５５５５」に更新する。
【０２６８】
図１７は、本実施例におけるデータソース統合システム３の第１段階の処理フローの例を示すブロック図である。この図１７では、組織オブジェクト２５の検索までの処理が表されている。
【０２６９】
ステップＫ１において、データソース統合システム３の操作内容解析部７は、アプリケーション４ｂから組織コード「２０１」の組織オブジェクト２５の検索要求を表すデータ操作命令「ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  ＳｏｓｉｋｉＣｌａｓｓ  ＷＨＥＲＥ  ＳＯＳＩＫＩ＿ＣＯＤＥ＝２０１」を受け付け、操作内容を解析し、操作内容をアクセス制御部８に提供する。具体的には、「アプリケーション４ｂからの要求」であり、操作が「検索」であり、操作対象オブジェクトのクラスが「ＳｏｓｉｋｉＣｌａｓｓ」である旨の情報を抽出する。更に操作対象オブジェクトを特定するためのキーが「ＳＯＳＩＫＩ＿ＣＯＤＥ＝２０１」であり、操作対象の属性が「全ての属性」である旨（上記操作命令の「＊」の部分）の情報を抽出し、これらの情報をアクセス制御部８に提供する。
【０２７０】
ステップＫ２において、アクセス制御部８は、上記表１７のロール定義データ１５ａ及び上記表１９のアクセス制御定義データ１５ｃを参照し、アプリケーション４ｂの権限情報を取得する。
【０２７１】
具体的には、アクセス制御部８は、上記表１７のロール定義データ１５ａに基づいて、アプリケーション４ｂの権限情報はＲＯＬＥ０２に対応することを抽出する。そして、操作対象オブジェクトのクラスが「ＳｏｓｉｋｉＣｌａｓｓ」であることから、上記表１９のＲＯＬＥ０２のアクセス制御定義データ１５ｂに基づいて、「ＳｏｓｉｋｉＣｌａｓｓ」に対する権限情報を抽出する。表１９の例では「ＳｏｓｉｋｉＣｌａｓｓ」の検索、登録、更新、削除が可能であり、全ての属性に対してＲｅａｄ、Ｗｒｉｔｅの権限が与えられていることを認識可能である。したがって、アクセス制御部８は、「ＳｏｓｉｋｉＣｌａｓｓ」で定義され、「ＳＯＳＩＫＩ＿ＣＯＤＥ＝２０１」のオブジェクトの「全ての属性」に対する「検索」である旨の情報をオブジェクト処理部９の検索部９ｂに出力する。
【０２７２】
ステップＫ３において、オブジェクト処理部９の検索部９ｂは、検索対象の「ＳＯＳＩＫＩ＿ＣＯＤＥ＝２０１」の組織オブジェクト２５について記録装置１３ｃに対して検索を行う。
【０２７３】
検索の結果、記録装置１３ｃに検索対象の組織オブジェクト２５が存在しないため、ステップＫ４において、オブジェクト処理部９の生成部９ｃは、データソースＡ、Ｂに関する情報を得るために、オブジェクト処理部９の定義データ読込部９ａを通して、定義データ１４に含まれる上記表１４及び表１５の示すデータソース定義データ１４ｃ、１４ｄを参照する。また、生成部９ｃは、統合クラスの属性とデータソースＡ、Ｂとのマッピング関係を表す上記表１６に示すマッピング定義データ１４ｅを参照する。
【０２７４】
マッピング定義データ１４ｅでは、統合クラス「ＳｏｓｉｋｉＣｌａｓｓ」の属性「ＳＯＳＩＫＩ＿ＣＯＤＥ」が、データソースＡのオブジェクトクラス「ｌｄａｐＳｏｓｉｋｉ」の属性「ｓｏｓｉｋｉＣｏｄｅ」と、データソースＢのテーブル「ＳＯＳＩＫＩ」の列名「Ｓ＿ＣＯＤＥ」に関係付けされている。したがって、統合クラス「ＳｏｓｉｋｉＣｌａｓｓ」に対する検索キー「ＳＯＳＩＫＩ＿ＣＯＤＥ＝２０１」を、データソースＡに対する検索キー「ｓｏｓｉｋｉＣｏｄｅ＝２０１」としてデータソースＡ内を検索するとともに、データソースＢに対する検索キー「Ｓ＿ＣＯＤＥ＝２０１」としてデータソースＢ内を検索すれば、目的とする組織オブジェクト２５のデータを取得可能である。
【０２７５】
そこで、生成部９ｃは、ステップＫ５において、「ｓｏｓｉｋｉＣｏｄｅ＝２０１」をキーとする検索要求、「Ｓ＿ＣＯＤＥ＝２０１」をキーとする検索要求をトランザクション管理部１１に提供する。
【０２７６】
ステップＫ６ａ、Ｋ６ｂにおいて、トランザクション管理部１１は、マッピング定義データ１４ｅを参照することにより、「ｓｏｓｉｋｉＣｏｄｅ」がデータソースＡに格納され、「Ｓ＿ＣＯＤＥ」がデータソースＢに格納されていることを認識し、「ｓｏｓｉｋｉＣｏｄｅ＝２０１」をキーとする検索要求をデータソースアクセス部１２ａに、「Ｓ＿ＣＯＤＥ＝２０１」をキーとする検索要求を１２ｂに提供する。
【０２７７】
ステップＫ７において、データソースアクセス部１２ａは、上記表１２のデータソース接続定義データ１４ａを参照し、データソースＡに接続するための情報を取得した後、上記表１３のデータソースアクセス方法定義データ１４ｂを参照し、データソースＡから「ｓｏｓｉｋｉＣｏｄｅ＝２０１」をキーとする検索を行うためのコマンドを作成する。
【０２７８】
具体的には、ホスト名がｌｄａｐｈｏｓｔの３８９ポートにｃｎ＝Ｄｉｒｅｃｔｏｒｙ  Ｍａｎａｇｅｒで接続し、「ｌｄａｐｓｅａｒｃｈ  ｓｏｓｉｋｉＣｏｄｅ＝２０１  “ｏｂｊｅｃｔｃｌａｓｓ＝ｌｄａｐＳｏｓｉｋｉ”」というコマンドを用いて検索を行う。
【０２７９】
検索の結果、統合クラスの「ＳＯＳＩＫＩＭＥＩ」「ＪＹＯＩ＿ＳＯＳＩＫＩ＿ＣＯＤＥ」属性に対応付けられたデータソースＡの「ｏｕ」「ｊｙｏｉＳｏｓｉｋｉＣｏｄｅ」属性の属性値「ｓｏｍｕ」「−（上位組織なし）」を取得し、トランザクション管理部１１に提供する。
【０２８０】
また、ステップＫ８において、データソースアクセス部１２ｂは、上記表１２のデータソース接続定義データ１４ａを参照し、データソースＢに接続するための情報を取得した後、上記表１３のデータソースアクセス方法定義データ１４ｂを参照し、データソースＢから「Ｓ＿ＣＯＤＥ＝２０１」をキーとする検索を行うためのコマンドを作成する。
【０２８１】
具体的には、ホスト名がｒｄｂｈｏｓｔの１５２１ポートにＡｄｍｉｎで接続し、「ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  ＳＯＳＩＫＩ  ＷＨＥＲＥ  Ｓ＿ＣＯＤＥ＝２０１」というコマンドを用いて検索を行う。
【０２８２】
検索の結果、統合クラスの「ＳＯＳＩＫＩ＿ＴＥＬ」属性に対応付けられたデータソースＢの「ＴＥＬ」属性の属性値「０１２−３４５−１１１１」を取得し、トランザクション管理部１１に提供する。
【０２８３】
なお、上記処理において、データソースＡに対するデータの検索とデータソースＢに対するデータの検索は並列に行われてもよい。
【０２８４】
ステップＫ９において、トランザクション管理部１１は、データソースＡ、Ｂの検索結果を生成部９ｃに提供する。
【０２８５】
上記処理において、属性種別が参照関係の属性は、その属性に対する取得操作があった場合に取得される。
【０２８６】
ステップＫ１０において、生成部９ｃは、データソースＡとデータソースＢのデータを統合した組織コード「２０１」の組織オブジェクト２５を生成する。
【０２８７】
ステップＫ１１において、生成部９ｃは、組織コード「２０１」の組織オブジェクト２５を記録装置１３ｃに記録するとともに、アクセス制御部８、操作内容解析部７経由でアプリケーション４ｂに提供する。
【０２８８】
図１８は、本実施例におけるデータソース統合システム３の第２段階の処理フローの例を示すブロック図である。この図１８では、組織コード「２０１」の組織オブジェクト２５に属する社員の社員オブジェクト２４ａ〜２４ｃの検索までの処理が表されている。
【０２８９】
ステップＬ１において、データソース統合システム３の操作内容解析部７は、アプリケーション４ｂから組織コード「２０１」の組織に属する社員の社員オブジェクト２４ａ〜２４ｃの検索要求を表すデータ操作命令「ＧＥＴ  ＳＯＳＩＫＩ＿ＭＥＭＢＥＲ」を受け付け、操作内容を解析し、操作内容をアクセス制御部８に提供する。具体的には、「アプリケーション４ｂからの要求」であり、操作が「検索」であり、操作対象の属性が「ＳＯＳＩＫＩ＿ＭＥＭＢＥＲ」である旨の情報を抽出し、これらの情報をアクセス制御部８に提供する。このとき、操作対象オブジェクトに関する情報は、第１段階における組織オブジェクトの検索によって、組織コード「２０１」の組織オブジェクトであると特定されている。
【０２９０】
ステップＬ２において、アクセス制御部８は、上記表１７〜１９に例示するアクセス制御データ１５を参照し、アプリケーション４ｂの権限情報を取得する。具体的には、アクセス制御部８は、上記表１７のロール定義データ１５ａに基づいて、アプリケーション４ｂの権限情報はＲＯＬＥ０２に対応することを抽出する。そして、操作対象オブジェクトのクラスが「ＳｏｓｉｋｉＣｌａｓｓ」であることから、上記表１９のＲＯＬＥ０２のアクセス制御定義データ１５ｃに基づいて、ＳｏｓｉｋｉＣｌａｓｓに対する権限情報を抽出する。表１９の例では、「ＳｏｓｉｋｉＣｌａｓｓ」の検索、登録、更新、削除が可能であり、全ての属性に対してＲｅａｄ、Ｗｒｉｔｅ権限が与えられていることを認識可能である。したがって、アクセス制御部８は、「ＳｏｓｉｋｉＣｌａｓｓ」で定義され、組織コード「２０１」のオブジェクトの「ＳＯＳＩＫＩ＿ＭＥＭＢＥＲ」に対する「検索」である旨の情報をオブジェクト処理部９の検索部９ｂに出力する。
【０２９１】
ステップＬ３において、オブジェクト処理部９の検索部９ｂは、マッピング定義データ１４ｅを参照することにより、先で検索された組織コード「２０１」の組織オブジェクト２５の属性「ＳＯＳＩＫＩ＿ＭＥＭＢＥＲ」の種別は参照関係であることを認識可能である。
【０２９２】
ステップＬ４において、検索部９ｂは、参照関係の属性の場合、参照先クラスの参照先対応属性に参照元対応属性の値を入れて参照先クラスのオブジェクトを検索する。
【０２９３】
ここでは、検索部９ｂは、定義データ１４を参照し、「ＳＯＳＩＫＩ＿ＭＥＭＢＥＲ」の検索要求を所属コード「２０１」の社員オブジェクト２４ａ〜２４ｃの検索要求に変換し、検索を行う。この例では、「ＳｙａｉｎＣｌａｓｓ」の「ＳＹＯＺＯＫＵ＿ＣＯＤＥ」属性の属性値が「２０１」である社員オブジェクト２４ａ〜２４ｃが検索される。
【０２９４】
検索の結果、社員オブジェクト２４ａ〜２４ｃは、記録装置１３ｃに記録されていないため、ステップＬ５において、オブジェクト処理部９の生成部９ｃは、定義データ１４に含まれる上記表１４及び表１５の示すデータソース定義データ１４ｃ、１４ｄ、マッピング定義データ１４ｅを参照する。
【０２９５】
マッピング定義データ１４ｅにおいて、統合クラス「ＳｙａｉｎＣｌａｓｓ」の属性「ＳＹＯＺＯＫＵ＿ＣＯＤＥ」はデータソースＡのオブジェクトクラス「ｉｎｅｔＯｒｇＰｅｒｓｏｎ」の属性「ｏｕ」に関係付けされている。したがって、統合クラス「ＳｙａｉｎＣｌａｓｓ」に対する検索キー「ＳＹＯＺＯＫＵ＿ＣＯＤＥ＝２０１」を、データソースＡに対する検索キー「ｏｕ＝２０１」としてデータソースＡ内のデータを検索すれば、データソースＡに格納された所属コード「２０１」のデータを取得可能である。また、データソースＢに格納された所属コード「２０１」のデータも取得するために、上記表１６のマッピング定義データ１４ｅの共通キーを参照し、データソースＡとデータソースＢで同じ値を持つ属性を調べる。マッピング定義データ１４ｅでは、データソースＡのオブジェクトクラス「ｉｎｅｔＯｒｇＰｅｒｓｏｎ」の属性「ｕｉｄ」とデータソースＢのテーブル「ＳＹＡＩＮ」の列名「ＮＵＭＢＥＲ」が同じ値を持つと記されている。したがって、データソースＡの検索の結果得られる「ｕｉｄ」の値を、データソースＢのテーブル「ＳＹＡＩＮ」の列名「ＮＵＭＢＥＲ」の値として、データソースＢに対する検索キー「ＮＵＭＢＥＲ＝＜ｕｉｄの属性値＞」として検索すれば、データソースＢに格納された所属コード「２０１」のデータを取得できる。
【０２９６】
そこで、生成部９ｃは、ステップＬ６において、「ｏｕ＝２０１」をキーとする検索要求、「ＮＵＭＢＥＲ＝＜ｕｉｄの属性値＞」をキーとする検索要求をトランザクション管理部１１に提供する。
【０２９７】
ステップＬ７において、トランザクション管理部１１は、マッピング定義データ１４ｅを参照することにより、「ｏｕ」属性がデータソースＡに格納されていることを認識し、「ｏｕ＝２０１」をキーとする検索要求をデータソースアクセス部１２ａに提供する。
【０２９８】
ステップＬ８において、データソースアクセス部１２ａは、上記表１２のデータソース接続定義データ１４ａを参照し、データソースＡに接続するための情報を取得した後、上記表１３のデータソースアクセス方法定義データ１４ｂを参照し、データソースＡから「ｏｕ＝２０１」をキーとする検索を行うためのコマンドを作成し、検索を行う。
【０２９９】
検索の結果、統合クラスの「ＳＹＡＩＮ＿ＮＵＭ」「ＭＡＩＬ＿ＡＤＤＲＥＳＳ」「ＫＥＴＩＡＩ」に対応付けられたデータソースＡの「ｕｉｄ」「ｍａｉｌ」「ｍｏｂｉｌｅ」属性の属性値を取得し、トランザクション管理部１１に提供する。
【０３００】
具体的には、［「ｕｉｄ＝１００００１」「ｍｉａｌ＝ＴＴＴ＠ＴＴＴ．ｃｏ．ｊｐ」「ｍｏｂｉｌｅ＝０１−１１１１−１１１１」］、［「ｕｉｄ＝１００００２」「ｍｉａｌ＝ＪＪＪ＠ＪＪＪ．ｃｏ．ｊｐ」「ｍｏｂｉｌｅ＝０１−２２２２−２２２２」］、［「ｕｉｄ＝１００００３」「ｍｉａｌ＝ＳＳＳ＠ＳＳＳ．ｃｏ．ｊｐ」「ｍｏｂｉｌｅ＝０１−３３３３−３３３３」］の３人分のデータがトランザクション管理部１１に提供される。
【０３０１】
続いて、ステップＬ９において、トランザクション管理部１１は、マッピング定義データ１４ｅを参照することにより、「ＮＵＭＢＥＲ」がデータソースＢに格納されていることを認識し、データソースＡの検索で得られた「ｕｉｄ」の値「１００００１」「１００００２」「１００００３」を「ＮＵＭＢＥＲ」の値として、「ＮＵＭＢＥＲ＝１００００１」「ＮＵＭＢＥＲ＝１００００２」「ＮＵＭＢＥＲ＝１００００３」をキーとする３つの検索要求をデータソースＢに対応したデータソースアクセス部１２ｂに提供する。
【０３０２】
ステップＬ１０において、データソースアクセス部１２ｂは、上記表１２のデータソース接続定義データ１４ａを参照し、データソースＢに接続するための情報を取得した後、上記表１３のデータソースアクセス方法定義データ１４ｂを参照し、「ＮＵＭＢＥＲ＝１００００１」「ＮＵＭＢＥＲ＝１００００２」「ＮＵＭＢＥＲ＝１００００３」をキーとする検索を行うためのコマンドをそれぞれ作成し、検索を行う。
【０３０３】
検索の結果、統合クラスの「ＴＥＬＥＰＨＯＮＥ」「ＹＡＫＵＳＹＯＫＵ」「ＢＩＲＴＨＤＡＴＥ」に対応付けられたデータソースＢの「ＴＥＬ」「ＳＹＯＫＵＩ」「ＢＩＲＴＨ」属性の属性値を取得し、トランザクション管理部１１に提供する。
【０３０４】
具体的には、［「ＴＥＬ＝０１１−２２２−３４５６」「ＳＹＯＫＵＩ＝Ｓ」「ＢＩＲＴＨ＝１９６５／０１／０１」］、［「ＴＥＬ＝０１１−２２２−３４５６」「ＳＹＯＫＵＩ＝Ｅ」「ＢＩＲＴＨ＝１９７０／０５／１２」］、［「ＴＥＬ＝０１１−２２２−３４５６」「ＳＹＯＫＵＩ＝Ｅ」「ＢＩＲＴＨ＝１９７１／０３／０７」］の３人分のデータがトランザクション管理部１１に提供される。
【０３０５】
ステップＬ１１において、トランザクション管理部１１は、データソースＡ、Ｂの検索結果を生成部９ｃに提供する。
【０３０６】
ステップＬ１２において、データソース統合システム３の生成部９ｃは、所属コード「２０１」の社員オブジェクト２４ａ〜２４ｃの集合を生成する。このとき、属性種別が関数である「ＡＧＥ」属性が計算され、社員オブジェクトに含められる。
【０３０７】
ステップＬ１３において、社員オブジェクト２４ａ〜２４ｃをアプリケーション４ｂに返すとともに、記録装置１３ｃに記録する。
【０３０８】
図１９は、本実施例におけるデータソース統合システム３の第３段階の処理フローの例を示すブロック図である。この図１９では、検索された社員オブジェクト２４ａ〜２４ｃの電話番号が「０１１−５５５−５５５５」に更新されるまでの処理が表されている。
【０３０９】
ステップＭ１において、操作内容解析部７は、アプリケーション４ｂから、組織コード「２０１」の組織に属する社員の社員オブジェクト２４ａ〜２４ｃの電話番号を「０１１−５５５−５５５５」に更新するデータ操作命令「ＳＥＴ  ＴＥＬＥＰＨＯＮＥ＝０１１−５５５−５５５５」を受け付け、アクセス制御部８に提供する。具体的には、「アプリケーション４ｂからの要求」であり、操作が「更新」であり、操作対象の属性が「ＴＥＬＥＰＨＯＮＥ」である旨の情報を抽出し、これらの情報をアクセス制御部８に提供する。このとき、操作対象オブジェクトに関する情報は、第２段階における組織コード「２０１」の組織に属する社員オブジェクトの検索によって、所属コードが「２０１」である社員オブジェクトであると特定されている。
【０３１０】
ステップＭ２において、アクセス制御部８は、上記表１７〜１９に例示するアクセス制御データ１５を参照し、アプリケーション４ｂの権限情報を取得する。具体的には、アクセス制御部８は、上記表１７のロール定義データ１５ａに基づいて、アプリケーション４ｂの権限情報はＲＯＬＥ０２に対応することを抽出する。そして、操作対象オブジェクトのクラスが「ＳｙａｉｎＣｌａｓｓ」であることから、上記表１９のＲＯＬＥ０２のアクセス制御定義データ１５ｃに基づいて、ＳｙａｉｎＣｌａｓｓに対する権限情報を抽出する。表１９の例では、「ＳｙａｉｎＣｌａｓｓ」の検索、登録、更新、削除が可能であり、全ての属性に対してＲｅａｄ、Ｗｒｉｔｅ権限が与えられていることを認識可能である。したがって、アクセス制御部８は、「ＳｙａｉｎＣｌａｓｓ」で定義され、所属コード「２０１」の社員オブジェクトの「ＴＥＬＥＰＨＯＮＥ」に対する「更新」である旨の情報をオブジェクト処理部９の更新部９ｄに出力する。
【０３１１】
ステップＭ３において、オブジェクト処理部９の更新部９ｄは、記録装置１３ｃに対して所属コード「２０１」の社員オブジェクト２４ａ〜２４ｃの属性「ＴＥＬＥＰＨＯＮＥ」の属性値を「０１１−５５５−５５５５」に更新する。
【０３１２】
【発明の効果】
以上詳記したように本発明においては、複数のデータソースの内容が統一して管理され、効率的にデータを管理できる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るデータソース統合システムの構成の一例を示すブロック図。
【図２】同実施の形態に係るオブジェクト処理部の詳細例を示すブロック図。
【図３】同実施の形態におけるデータソースの内容と統合クラスとの関係の一例を示す図。
【図４】同実施の形態における複数のクラス間の参照関係の定義された統合クラスの一例を示す図。
【図５】同実施の形態に係るデータソース統合システムの動作概念の第１例を示すブロック図。
【図６】同実施の形態に係るデータソース統合システムの動作概念の第２例を示すブロック図。
【図７】同実施の形態に係るデータソース統合システムの動作概念の第３例を示すブロック図。
【図８】同実施の形態に係るデータソース統合システムの動作概念の第４例を示すブロック図。
【図９】同実施の形態に係るデータソース統合システムの動作概念の第５例を示すブロック図。
【図１０】同実施の形態に係るデータソース統合システムの処理の例を示すフローチャート。
【図１１】本発明の第２の実施の形態に係るデータソース統合システムの構成の一例を示すブロック図。
【図１２】同実施の形態に係るデータソース統合システムの処理の例を示すフローチャート。
【図１３】本発明の第１の実施例で用いられるデータソースのツリー構成の例を示すブロック図。
【図１４】同実施例に係るデータソース統合システムの処理フローの第１例を示すブロック図。
【図１５】同実施例に係るデータソース統合システムの処理フローの第２例を示すブロック図。
【図１６】本発明の第２の実施例に係るデータソース統合システムの処理フローの例を示すブロック図。
【図１７】本発明の第３の実施例に係るデータソース統合システムの第１段階の処理フローの例を示すブロック図。
【図１８】同実施例に係るデータソース統合システムの第２段階の処理フローの例を示すブロック図。
【図１９】同実施例に係るデータソース統合システムの第３段階の処理フローの例を示すブロック図。
【図２０】データソースの内容をオブジェクトに変換した図。
【符号の説明】
３、２０…データソース統合システム、４ａ〜４ｃ…アプリケーション、６…記録媒体、６ａ，６ｂ…データソース統合プログラム、７…操作内容解析部、８…アクセス制御部、９…オブジェクト処理部、１０…書込管理部、１１…トランザクション管理部、１２ａ〜１２ｃ…データソースアクセス部、１３ａ〜１３ｃ…記録装置、１４…定義データ、１５…アクセス制御データ、Ａ〜Ｃ…データソース、９ａ…定義データ読込部、９ｂ…検索部、９ｃ…生成部、９ｄ…更新部、９ｅ…登録部、９ｆ…削除部、９ｇ…排他制御部、９ｈ…書込部
【図１】
2004259066.tif 000022
【図２】
2004259066.tif 000023
【図３】
2004259066.tif 000024
【図４】
2004259066.tif 000025
【図５】
2004259066.tif 000026
【図６】
2004259066.tif 000027
【図７】
2004259066.tif 000028
【図８】
2004259066.tif 000029
【図９】
2004259066.tif 000030
【図１０】
2004259066.tif 000031
【図１１】
2004259066.tif 000032
【図１２】
2004259066.tif 000033
【図１３】
2004259066.tif 000034
【図１４】
2004259066.tif 000035
【図１５】
2004259066.tif 000036
【図１６】
2004259066.tif 000037
【図１７】
2004259066.tif 000038
【図１８】
2004259066.tif 000039
【図１９】
2004259066.tif 000040
【図２０】
2004259066.tif 000041