(57)【要約】【課題】  ユーザアプリケーションプログラムのコーディングによるデータベース切替を不必要にし、ユーザアプリケーションプログラムの開発負担を軽減する。【解決手段】  現在のモードを認識して当該モードにおいて接続するデータベースを指定する当該データベースを識別する情報を記憶するデータベース接続指定手段と、データベースにアクセスする場合に必要となる管理情報を格納するデータベースアクセス管理情報ファイルと、データベース接続指定手段とデータベースアクセス管理情報ファイルに格納された情報に基づき、指定されたデータベースにアクセスしてデータベースオブジェクトを生成する手段を設ける。【選択図】図１
2006268126.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト指向プログラミングで作成されたユーザアプリケーションからのデータベースアクセス要求に応じてデータベースアクセスを実行するデータベースアクセスシステムにおいて、
データベースと、現在のモードを認識して当該モードにおいて接続するデータベースを識別する情報を記憶するデータベース接続指定手段と、前記データベースにアクセスする場合に必要となる管理情報を格納するデータベースアクセス管理情報ファイルと、前記データベース接続指定手段と前記データベースアクセス管理情報ファイルに格納された情報に基づき、指定されたデータベースにアクセスしてデータベースオブジェクトを生成するデータベースオブジェクト生成手段と、前記データベースオブジェクト生成手段が生成したデータベースオブジェクトを格納するデータベースオブジェクト格納手段を備えたことを特徴とするデータベースアクセスシステム。
【請求項２】
オブジェクト指向プログラミングで作成されたユーザアプリケーションからのデータベースアクセス要求に応じてデータベースアクセスを実行するデータベースアクセス方法において、
現在のモードを認識して当該モードにおいて接続するデータベースを識別する情報を記憶するデータベース識別情報記憶ステップと、
前記データベースにアクセスする場合に必要となる管理情報を格納するデータベースアクセス管理情報ファイルから前記データベースにアクセスする場合に必要となる管理情報を取得するデータベースアクセス管理情報取得ステップと、
前記データベース識別情報記憶ステップで記憶されたデータベース識別情報と前記データベースアクセス管理情報取得ステップで取得されたデータベースアクセス管理情報に基づき、指定されたデータベースにアクセスしてデータベースオブジェクトを生成するデータベースオブジェクト生成ステップと、を備えたことを特徴とするデータベースアクセス方法。
【請求項３】
データベースと、現在のモードを認識して当該モードにおいて接続するデータベースを識別する情報を記憶するデータベース接続指定手段と、前記データベースにアクセスする場合に必要となる管理情報を格納するデータベースアクセス管理情報ファイルとを備えたコンピュータシステムに、前記データベースのデータのコピーであるデータベースオブジェクトを主記憶上に生成する処理を実行させるためのデータベースオブジェクト生成プログラムにおいて、
前記データベース接続指定手段ににより記憶された当該モードのデータベースを識別する情報を取得して第１のワークエリアに保持するデータベース識別情報取得ステップと、
前記データベースアクセス管理情報ファイルから当該データベースの前記データベースアクセス管理情報を取得して第２のワークエリアに保持するデータベースアクセス管理情報取得ステップと
前記データベース識別情報取得ステップで前記第１のワークエリアに保持したデータベース識別情報と前記データベースアクセス管理情報取得ステップで前記第２のワークエリアに保持したデータベースアクセス管理情報を使用して当該データベースに格納されたデータを取得して前記データベースオブジェクトを主記憶上に生成するデータベースオブジェクト生成ステップと、
からなる処理を前記コンピュータシステムに実行させることを特徴とするデータベースオブジェクト生成プログラム。
【請求項４】
前記データベースアクセス管理情報ファイルはデータベース毎に備えられ、
前記データベースアクセス管理情報取得ステップは、前記第２のワークエリアに保持したデータベースアクセス管理情報のうちのデータベース識別情報と、前記データベース識別情報取得ステップで前記第１のワークエリアに保持したデータベース識別情報の一致判定を行う判定ステップを含み、一致判定が得られるまでデータベース毎の前記データベースアクセス管理情報を取得するステップを繰り返し、一致判定が得られたときに前記データベースオブジェクト生成ステップを前記コンピュータシステムに実行させることを特徴とする請求項３に記載のデータベースオブジェクト生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースアクセスシステムに関し、特にオブジェクト指向プログラミングで作成されたユーザアプリケーションがリレーショナルデータベース等のデータベースにアクセスすることをサポートするデータベースアクセスシステム及び当該データベースアクセスシステムで用いられるデータベースオブジェクト生成プログラムに関する。
【背景技術】
【０００２】
近年、インターネット関連及びオブジェクト指向の各種ソフトウェア製品が多数登場し、各種コンポーネント、ライブラリが充実してきたことにより、開発負担を軽減するため、それらソフトウェア製品を利用して基幹業務システムをＷｅｂアプリケーションとして構築することが行われるようになってきた。
【０００３】
一方、基幹業務で用いられるデータベースの多くはリレーショナルデータベースであり、リレーショナルデータベースはオブジェクト指向のものではないため、オブジェクト指向のソフトウェアからリレーショナルデータベースにアクセスするために、Ｏ／Ｒマッピングという技法が開発され、Ｏ／Ｒマッピングを実現するためのソフトウェア製品も販売されている。
【０００４】
上記のようにして開発されたＷｅｂアプリケーションの構成例を図８により説明する。Ｗｅｂアプリケーション１は、サーバ側のものとクライアント側のものとから構成される。クライアント側のＷｅｂアプリケーションであるクライアントレイヤ１０は、ブラウザにより実現される。サーバ側のＷｅｂアプリケーションは、典型的には図示のように３層構造を有する。即ち、ユーザインターフェースの機能を分担するプレゼンテーションレイヤ２０、ビジネスのコアロジック機能を分担するビジネスレイヤ３０及びデータベースアクセス機能を分担する永続化レイヤ４０の３層に分けて開発されるようになってきた。
【０００５】
ビジネスレイヤ３０のオブジェクト指向プログラミングで作成されたユーザアプリケーション３２がデータベース５０に格納されたデータにアクセスする場合は、そのデータが含まれるテーブルあるいはファイルをオブジェクトとして取得する処理を永続化レイヤ４０に依頼する。永続化レイヤ４０では、Ｏ／Ｒマッピング４２の機能により、当該オブジェクトに対応するテーブルあるいはファイルが格納されたデータベースから要求されたデータを獲得し、ユーザアプリケーション３２に渡している。
【０００６】
このようなシステムにおいて、ユーザアプリケーション３２がアクセスするデータベース５０のインスタンスを現在のモードに応じて切り替える必要が発生することがある。例えば、実運用モードのときのデータベースとデバッグモードのときのデータベースの切り替え等である。
【０００７】
このような場合、要求されるオブジェクトに対応するテーブルが存在するデータベースが異なること、そして従来の永続化レイヤの機能では、そのような状況に対処する機能が存在しないことから、従来のシステムにおいては、図９に示すように、アプリケーションプログラムによってデータベースの接続先を切り替えるようコーディングする必要があった。
【０００８】
以下、図９を参照して、アクセスするデータベースのインスタンスが変わり得る従来型のアプリケーションプログラムについて、データベースアクセスに係わる部分を説明する。
【０００９】
まず、ステップＳ３１０で、予め内部記憶に格納されている起動パラメータから、接続すべきデータベースを指定するデータベース接続モードを取得する。そしてステップＳ３２０で、例えば、データベース接続モードがモード１であるか、モード２であるか、あるいはモード３であるかを判定する。判定結果がモード１であれば、モード１に対応するデータベースからデータベースオブジェクトの生成１の処理（ステップＳ３２２）を行い、それに対するデータアクセス処理（ステップＳ３３２）を行う。同様に、判定結果がモード２であればステップＳ３２４とステップ３３４により、判定結果がモード３であればステップＳ３２６とステップ３３６によりそれぞれデータベースオブジェクトの生成とデータアクセス処理を行う。そして、処理が終了するとステップＳ３４０で、当該アプリケーションプログラムが生成したデータベースオブジェクトの開放処理を行う。
【００１０】
以上のように、接続モードによりデータベースの接続先を切り替える場合、従来は、アプリケーションプログラムにその部分のコーディングが必要であった。
下記特許文献には、複数のアプリケーションプログラムと複数のデータベースが複数のユニットプラットフォームを介して接続され、障害の発生や負荷の偏在状況に応じて相互の接続を切り替えることが記載されているが、オブジェクト指向プログラミングで作成されたアプリケーションプログラムとインスタンスの異なるデータベースとの接続切り替えを行うことや、その接続切り替えを、アプリケーションプログラムが意識する必要をなくすことについては何ら記載されていない。
【特許文献１】特開平７−２１０４０２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
そこで、本発明の解決しようとする課題は、オブジェクト指向プログラミングで作成されたユーザアプリケーションプログラムのデータベースの接続先を接続モードにより切り替える場合でも、ユーザアプリケーションプログラムのコーディングによるデータベース切り替えを不必要にし、ユーザアプリケーションプログラムの開発負担を軽減することである。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明は、現在のモードを認識して当該モードにおいて接続するデータベースを識別する情報を記憶するデータベース接続指定手段と、前記データベースにアクセスする場合に必要となるデータベース管理情報を格納するデータベースアクセス管理情報ファイルと、前記データベース接続指定手段と前記データベースアクセス管理情報ファイルに格納された情報に基づき、指定されたデータベースにアクセスしてデータベースオブジェクトを生成するデータベースオブジェクト生成手段を備える。
【発明の効果】
【００１３】
本発明によれば、どのデータベースを接続するかの指定を受けて指定されたデータベースにアクセスしてデータベースオブジェクトを生成するので、データベースのモードが変更になり、アクセスすべきデータベースが替わっても、モード変更を自動的に認識することにより、生成されるデータベースオブジェクトが切り替えられたデータベースのものに変わるので、ユーザアプリケーションプログラムを作成するときには、モードの切り替えに対する機能を組み込む必要がなくなり、ユーザアプリケーションプログラムの作成負担が軽減する。
【発明を実施するための最良の形態】
【００１４】
まず、図１を参照して、本発明のデータベースアクセスシステムの原理を説明する。
本発明のデータベースアクセスシステム１００は、データベース１５０と、現在のモードを認識して当該モードにおいて接続するデータベース１５０を識別する情報を記憶するデータベース接続指定手段１１０と、データベース１５０にアクセスする場合に必要となる管理情報を格納するデータベースアクセス管理情報ファイル１３０と、データベース接続指定手段１１０とデータベースアクセス管理情報ファイル１３０に格納された情報に基づき、指定されたデータベース１５０にアクセスしてデータベースオブジェクト１４５を生成するデータベースオブジェクト生成手段１２０と、データベースオブジェクト生成手段１２０が生成したデータベースオブジェクト１４５を格納するデータベースオブジェクト格納手段１４０により構成される。
【００１５】
データベース１５０は、実際には複数のデータベースから構成され、データベースの構成は同一であるがそのインスタンスが異なるものがあることが想定されている。後記実施例の説明におけるデータベース５００も同様である。
【００１６】
データベースオブジェクト生成手段１２０の機能分担は、永続化レイヤに位置づけられるものであり、後に詳述するように、コンピュータプログラムにより実現することができる。
【００１７】
図２は、本発明のデータベースアクセスシステム１００を用いたＷｅｂアプリケーションの一部構成図である。図２には、Ｗｅｂアプリケーションのうちプレゼンテーションレイヤを除いた残り２つの層であるビジネスレイヤ２００と永続化レイヤ３００、及びシステムの構成管理を受け持つ構成管理４００、データベース５００が記載されている。また、永続化レイヤ３００と構成管理４００には、本発明の最良の実施の形態に関連する部分が記載されている。
【００１８】
図２を参照して、本発明のデータベースアクセスシステム１００による処理の概要を説明する。
（１）まず、構成管理４００は、現在のモード指定を認識し、新たなモード設定やモード変更があると、モード名とそのモードで接続するデータベースのデータソース名を対応づけて格納しているモード定義ファイル４２０中のモード定義を参照して認識された現在のモードのデータソース名を内部記憶の起動パラメータ領域に設定して動的なデータベースオブジェクトの作成処理３３０を起動する。
（２）動的なデータベース作成処理３３０は、上記起動パラメータ領域に設定されたデータソース名称から当該データベース接続情報及びトランザクション管理情報をＯ／Ｒマッピング環境ファイル３４０及びトランザクション管理ファイル３５０から獲得し、それを基に対象となるデータベースのデータを取得して、データベースオブジェクト３２０を内部記憶上の格納領域に生成する。
（３）ユーザアプリケーション２２０がデータアクセス処理を依頼すると、（４）データアクセス処理３１０は動的に生成されたデータベースオブジェクト３２０を使用してデータアクセス処理を行い、（５）処理結果をユーザアプリケーション２２０に応答する。
【００１９】
上記説明した構成管理４００、モード定義ファイル４２０及び内部記憶の鼓動パラメータ領域は、図１において説明したデータベース接続指定手段１１０に対応し、Ｏ／Ｒマッピング環境ファイル３４０及びトランザクション管理ファイル３５０はデータベースアクセス管理情報ファイル１３０に対応する。
【００２０】
構成管理４００の構成は、本発明の特徴的な部分である動的なデータベースオブジェクトの作成処理３３０を起動する点を除けば、コンピュータシステムを運用する上で実施されている一般的な構成管理のものである。データベースアクセス管理情報ファイル１３０についても、データベースにアクセスする場合に必要となる管理情報を格納するファイルがどのようなものになるかは、システム構築に利用するコンポーネント、プラットフォームに何を選択するかによって異なるが、データベースにアクセスするには何らかの管理情報が必要であり、そのようなものであれば、いずれであっても本発明のデータベースアクセス管理情報ファイルとして採用可能である。Ｏ／Ｒマッピング環境ファイル３４０及びトランザクション管理ファイル３５０については、後に詳述する。
【００２１】
また、上記説明した動的なデータベース作成処理３３０が本発明のデータベース生成手段１２０に対応し、内部記憶上のデータベースオブジェクト格納領域が本発明のデータベースオブジェクト格納手段１４０に対応することは明らかである。
【００２２】
次に、図３を参照して、動的なデータベース作成処理３３０の実施例についてさらに詳細に説明する。
動的なデータベース作成処理３３０は、構成管理４００により起動されると、ステップＳ１１０で、内部記憶に記憶された起動パラメータよりデータベース接続モードを取得する。動的なデータベース作成処理３３０が構成管理４００により起動されるタイミングは、モードの設定、変更があり、データベースへの接続要求が新たに出された時である。図４に示すように、モード定義ファイル４２０には、構成管理４００が管理している全てのモードに対して、モード番号、名称及び接続データソースが定義されている。これにより、モード毎に接続される接続データソースを知ることができる。ユーザアプリケーションの利用者、システム運用者は、例えば端末装置等からモード番号を入力することにより、モードを変更し、接続データソースを指定することができる。すると、図３のステップＳ１１０の右方に記載されているように、構成管理４００はモード定義ファイル４２０を参照し、接続データソースの値をモードパラメータとして生成し、内部記憶領域に起動パラメータとして設定する。したがって、ステップ１１０で取得されるデータベース接続モードの実体は指定されたモード定義のデータソースの値であり、図４のモード定義ファイルに例示されたサンプルにおいて０番のモードが指定されたとすると、“ＯＮＬＩＮＥ”が指定されたモード定義のデータソース名称である。そして、個々で取得されたデータソース名称は、内部記憶のワークエリアに保持される。
【００２３】
次にステップＳ１３０でＯ／Ｒマッピング環境ファイル３４０より、データベースの接続情報を取得し、ステップＳ１４０でトランザクション管理ファイル３５０より、データアクセスのためトランザクション管理情報を取得する。Ｏ／Ｒマッピング環境ファイル３４０とトランザクション管理ファイル３５０はデータベース毎に存在するので、同一のデータベースに対するファイルについてのステップＳ１３０とステップＳ１４０の処理を連続して行う。ステップＳ１３０及びステップＳ１４０で取得した情報は内部記憶のワークエリアに一時的に保持される。次にステップＳ１５０において、上記２つのワークエリアに保持されているモード定義のデータソース名と上記ファイルの名称から得られたデータソース名が一致するか判定する。
【００２４】
Ｏ／Ｒマッピング環境ファイル３４０はＯ／Ｒマッピング時に参照されるファイルであり、図５には、そこに含まれる項目の内容が示されている。図示のとおり、データベースのＵＲＬ等のデータベース接続情報と、データベースのレコードとオブジェクトを対応付ける対象マッピングクラス情報が格納されている。また、名称の一部には、命名規則により、データソース名が含まれている。トランザクション管理ファイル３５０には、図６に示すように、Ｏ／Ｒマッピング環境ファイル名、トランザクション管理を制御するために利用されるトランザクションマネージャの指定、その他トランザクションの管理方法が格納されている。ファイル名称には、Ｏ／Ｒマッピング環境ファイル３４０の名称と同様にデータソース名が含まれており、これらにより、ステップＳ１５０の判定が行われる。
【００２５】
データソース名が一致した場合はステップＳ１６０に進み、一致しなかった場合は、ステップＳ１７０からステップＳ１２０に戻って、ステップＳ１３０、Ｓ１４０、Ｓ１５０の処理を一致する判定が得られるまで、最大モード定義数分繰り返す。
【００２６】
ステップＳ１６０では、先にステップＳ１３０及びステップＳ１４０で取得し、ワークエリアに保持されているデータベース接続情報及びトランザクション管理情報に基づいて対象モードのデータベースからデータを獲得し、データベースオブジェクト３２０を主記憶上に生成して処理を終了する。
【００２７】
上記説明した動的なデータベース作成処理３３０は、内部記憶の起動パラメータ格納領域、Ｏ／Ｒマッピング環境ファイル３４０及びトランザクション管理ファイル３５０を格納した記憶装置、データソース名を保持するワークエリア等のハードウェアを利用したコンピュータプログラムによるコンピュータの処理として実現できることは明らかである。
【００２８】
上記のとおりであるので、接続モードによりアクセスするデータベースのインスタンスを切り替えるアプリケーションプログラムにおいても、例えばデータベース接続モードを構成管理４００に対して端末等により指定しておくことにより、図７に示すように、本発明を利用することで、ステップＳ２１０においてシステム側により接続モードに応じたデータベースオブジェクトが取得されているので、ステップＳ２２０において、データベース接続情報を意識することなく、動的なデータベースオブジェクト作成処理により生成されたオブジェクトを使用してデータアクセス処理を実施することができる。
【００２９】
したがって、本発明によれば、アプリケーションプログラムを作成するときに、モードの切り替えに対する機能を造りこむ必要がなくなり、アプリケーションプログラムの作成負担を軽減することができる。
【００３０】
また、上記動的に生成されたデータベースオブジェクトは、ユーザアプリケーションに対してシステム側の処理により生成されたものであるから、ユーザアプリケーションによるアクセスが終了しても直ちに解放する必要はなく、全く別のユーザアプリケーションからのデータベースアクセス要求に対して再利用することができ、データベースに対するキャッシュ的な使い方も可能である。
【図面の簡単な説明】
【００３１】
【図１】本発明のデータベースアクセスシステムの原理を説明する図である。
【図２】本発明のデータベースアクセスシステムを用いたＷｅｂアプリケーションの一部構成図である。
【図３】動的なデータベース生成処理を説明する図である。
【図４】モード定義ファイルを説明する図である。
【図５】Ｏ／Ｒマッピング環境ファイルを説明する図である。
【図６】トランザクション管理ファイルを説明する図である。
【図７】本発明のデータベースアクセスシステムを利用するアプリケーションプログラムを説明する図である。
【図８】Ｗｅｂアプリケーションの構成例を説明する図である。
【図９】従来型のアプリケーションプログラムを説明する図である。
【符号の説明】
【００３２】
１      Ｗｅｂアプリケーション
１０    クライアントレイヤ
２０    プレゼンテーションレイヤ
３０    ビジネスレイヤ
３２    ユーザアプリケーション
４０    永続化レイヤ
４２    Ｏ／Ｒマッピング
５０    データベース
１００  データベースアクセスシステム  
１１０  データベース接続指定手段
１２０  データベースオブジェクト生成手段
１３０  データベースアクセス管理情報ファイル
１４０  データベースオブジェクト格納手段
１４５  データベースオブジェクト
１５０  データベース
２００  ビジネスレイヤ  
２２０  ユーザアプリケーション
３００  永続化レイヤ
３１０  データアクセス処理
３２０  データベースオブジェクト
３３０  動的なデータベースオブジェクトの生成処理
３４０  Ｏ／Ｒマッピング環境ファイル
３５０  トランザクション管理ファイル
４００  構成管理
４２０  モード定義ファイル
５００  データベース
【図１】
2006268126.tif 000003
【図２】
2006268126.tif 000004
【図３】
2006268126.tif 000005
【図４】
2006268126.tif 000006
【図５】
2006268126.tif 000007
【図６】
2006268126.tif 000008
【図７】
2006268126.tif 000009
【図８】
2006268126.tif 000010
【図９】
2006268126.tif 000011