(57)【要約】      （修正有）【課題】  異なる種別の処理要求が繰り返される場合であっても高速なリモートデータベースのアクセスを可能とする。【解決手段】  レコード取得命令に応じて、レコード取得手段１ａによりレコード取得要求が生成され、メッセージ送信手段１ｆによりレコード取得要求を示すメッセージがリモートデータベース２に対して送信される。そして、リモートデータベース２から送られたレコードがレコード記憶手段１ｂに格納される。その後、データ更新命令に応じて、データ更新手段１ｃによりレコード内のデータが更新されると、更新ログ取得手段１ｄにより、更新ログが更新ログ記憶手段１ｅに格納される。レコード取得手段１ａによりレコード取得要求が生成された際に、更新ログが格納されていれば、メッセージ送信手段１ｆにより、レコード取得要求と更新要求とを含むメッセージ３がリモートデータベース２に対して送信される。【選択図】  図１
2006338421.tif 000002
【特許請求の範囲】
【請求項１】
リモートアクセスによりデータベースを操作するためのリモートデータベース操作プログラムにおいて、
コンピュータを、
レコード取得命令に応じて、リモートデータベースからレコードを取得するためのレコード取得要求を生成し、前記レコード取得要求に応じて前記リモートデータベースから送られた前記レコードをレコード記憶手段に格納するレコード取得手段、
データ更新命令に応じて、前記レコード記憶手段に記憶されている前記レコード内のデータを更新するデータ更新手段、
前記データ更新手段で更新された前記データを示す更新ログを更新ログ記憶手段に格納する更新ログ取得手段、
前記レコード取得手段で前記レコード取得要求が生成されると、前記更新ログ記憶手段に前記更新ログが格納されているか否かを判断し、前記更新ログが格納されていなければ前記レコード取得要求を示すメッセージを前記リモートデータベースに対して送信し、前記更新ログが格納されている場合、前記更新ログに基づいて前記データ更新手段で実行された更新処理を前記リモートデータベースに反映させるための更新要求を生成し、前記レコード取得要求と前記更新要求とを含むメッセージを前記リモートデータベースに対して送信するメッセージ送信手段、
として機能させることを特徴とするリモートデータベース操作プログラム。
【請求項２】
前記メッセージ送信手段は、前記レコード取得要求以外の前記リモートデータベースへのアクセスを伴う処理要求が生成された場合にも、前記更新ログ記憶手段に前記更新ログが格納されているか否かを判断し、前記更新ログが格納されていなければ前記処理要求を示すメッセージを前記リモートデータベースに対して送信し、前記更新ログが格納されている場合、前記更新ログに基づいて前記データ更新手段で実行された更新処理を前記リモートデータベースに反映させるための更新要求を生成し、前記処理要求と前記更新要求とを含むメッセージを前記リモートデータベースに対して送信することを特徴とする請求項１記載のリモートデータベース操作プログラム。
【請求項３】
前記メッセージ送信手段は、前記レコード取得要求と前記更新要求とを含む前記メッセージを生成する場合、前記更新要求を実行後、前記レコード取得要求が実行されるように実行順を設定することを特徴とする請求項１記載のリモートデータベース操作プログラム。
【請求項４】
前記メッセージ送信手段は、前記更新ログ記憶手段に複数の前記更新ログが格納されている場合、前記更新ログの格納順に沿って、各前記更新ログに対応する更新要求が実行されるように、前記メッセージにおいて実行順を設定することを特徴とする請求項３記載のリモートデータベース操作プログラム。
【請求項５】
コンピュータからのリモートアクセスによりデータベースを操作するためのリモートデータベース操作方法において、
レコード取得手段が、レコード取得命令に応じて、リモートデータベースからレコードを取得するためのレコード取得要求を生成し、前記レコード取得要求に応じて前記リモートデータベースから送られた前記レコードをレコード記憶手段に格納し、
データ更新手段が、データ更新命令に応じて、前記レコード記憶手段に記憶されている前記レコード内のデータを更新し、
更新ログ取得手段が、前記データ更新手段で更新された前記データを示す更新ログを更新ログ記憶手段に格納し、
メッセージ送信手段が、前記レコード取得手段で前記レコード取得要求が生成されると、前記更新ログ記憶手段に前記更新ログが格納されているか否かを判断し、前記更新ログが格納されていなければ前記レコード取得要求を示すメッセージを前記リモートデータベースに対して送信し、前記更新ログが格納されている場合、前記更新ログに基づいて前記データ更新手段で実行された更新処理を前記リモートデータベースに反映させるための更新要求を生成し、前記レコード取得要求と前記更新要求とを含むメッセージを前記リモートデータベースに対して送信する、
ことを特徴とするリモートデータベース操作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はリモートアクセスによりデータベースを操作するためのリモートデータベース操作プログラム、リモートデータベース操作方法、およびリモートデータベース操作装置に関し、特にリモートアクセスのためのメッセージ数の削減を図ったリモートデータベース操作プログラム、リモートデータベース操作方法、およびリモートデータベース操作装置に関する。
【背景技術】
【０００２】
ユーザに様々なサービスを提供するサーバシステムでは、処理機能が多階層に分かれている場合がある。例えば、ユーザからの要求を受け付けるためのアプリケーションサーバと、そのアプリケーションサーバが提供するデータ処理で使用するデータを管理するデータベースサーバとが個別に設けられる場合がある。この場合、各サーバが対外に連携して動作することで、ユーザに対してサービスが提供される。具体的には、アプリケーションサーバが、データベースサーバに対してリモートアクセスすることで、ユーザからの要求に応じたデータベースの操作が行われる。
【０００３】
従来、リモートアクセスによりデータベースを操作する場合、レコード取得要求（例えば、検索要求）とレコード更新要求（例えば、レコード内のデータの変更要求や、レコード内のデータの削除要求）とは、命令の実行単位を分けて処理されていた。具体的には、アプリケーションサーバ内で検索命令が発行されると、アプリケーションサーバからデータベースサーバへのリモートアクセスによる検索が行われ、検索結果が取得される。検索によって取得されたデータの更新命令がアプリケーションサーバ内で発行されると、アプリケーションサーバからデータベースサーバに対して、更新要求のメッセージが送信され、データベースが更新される。このように、処理命令が発行される毎にアプリケーションサーバとデータベースサーバとの間で通信が行われていた。
【０００４】
ところで、システム全体の処理効率を向上させるには、データベース処理の高速化が重要なファクタである。そこで、データベース処理の効率化を図るため、従来から様々な手法がとられてきた。
【０００５】
例えば、データベースのデータアクセス処理のパフォーマンス向上施策として、ストアドプロシジャ方式がある。ストアドプロシジャ方式とは、個々の処理毎のＤＭＬ（Database Manipulation Language：例えばリレーショナルデータベースにおけるＳＱＬ（Structured Query Language）等）命令をアプリケーションからデータベースサーバへ逐一送付して都度実行させる代わりに、ＤＭＬ命令をグループ化したストアドプロシジャを予め作成してデータベースサーバに登録しておくものである。アプリケーションがデータベースのデータ操作を行うとき、アプリケーションは、データベースサーバに対してストアドプロシジャを呼び出させて実行させる。これにより、アプリケーションを実行するクライアントからデータベースを有するデータベースサーバへの処理要求の送信回数が削減され、データアクセス処理の効率化が図られる。
【０００６】
ただし、ストアドプロシジャ方式を採用した場合、呼び出すストアドプロシジャ数をできるだけ少なくする必要がある。そのため、アプリケーションのビジネスロジックとデータアクセスロジックを設計する上で、データベースアクセス処理をひとかたまりにまとめるようにロジックを組み立てるなどの考慮が必要となる。
【０００７】
すなわち、ストアドプロシジャ方式では、アプリケーション側の都合で適宜変更される多種多様なデータアクセス処理に柔軟に対応することができなかった。そのため、データベースへの高速アクセスを優先すると、アプリケーションの設計及びプログラミングの自由度が損なわれてしまっていた。
【０００８】
そこで、取得したデータに対して繰り返し更新処理を行う場合には、最終的な更新結果のみをデータベースサーバへ送信することで、データ更新を示すメッセージの送信回数を減らす技術が考えられている。このとき、複数のデータに対するデータ更新要求等の同種の処理要求を１つのメッセージで送信することで、さらにメッセージの送信回数が削減される（例えば、特許文献１参照）。
【特許文献１】特開２００４−８６２９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１の発明では、複数の検索要求、または複数の更新要求のように同種の処理要求を１つのメッセージにまとめているだけであり、異なる処理の処理要求を１つのメッセージで送信することはできなかった。そのため、同種の処理要求が連続する場合にのみメッセージ数を減少させることが可能であり、処理要求の種別が異なる場合（例えば、データ更新要求に続けて検索要求が出力される場合）には、個別のメッセージを送信する必要があった。そこで、異なる種別の処理要求が繰り返される場合であってもデータベースのアクセスを高速化できる技術が望まれている。
【００１０】
本発明はこのような点に鑑みてなされたものであり、異なる種別の処理要求が繰り返される場合であっても高速なリモートデータベースのアクセスを可能とするリモートデータベース操作プログラム、リモートデータベース操作方法、およびリモートデータベース操作装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明では上記課題を解決するために、図１に示すようなリモートデータベース操作プログラムが提供される。本発明に係るリモートデータベース操作プログラムは、リモートアクセスによりデータベースを操作するために、図１に示す機能をコンピュータに実行させることができる。
【００１２】
レコード取得手段１ａは、レコード取得命令に応じて、リモートデータベース２からレコードを取得するためのレコード取得要求を生成し、レコード取得要求に応じてリモートデータベース２から送られたレコードをレコード記憶手段１ｂに格納する。データ更新手段１ｃは、データ更新命令に応じて、レコード記憶手段１ｂに記憶されているレコード内のデータを更新する。更新ログ取得手段１ｄは、データ更新手段１ｃで更新されたデータを示す更新ログを更新ログ記憶手段１ｅに格納する。メッセージ送信手段１ｆは、レコード取得手段１ａでレコード取得要求が生成されると、更新ログ記憶手段１ｅに更新ログが格納されているか否かを判断し、更新ログが格納されていなければレコード取得要求を示すメッセージをリモートデータベース２に対して送信し、更新ログが格納されている場合、更新ログに基づいてデータ更新手段１ｃで実行された更新処理をリモートデータベース２に反映させるための更新要求を生成し、レコード取得要求と更新要求とを含むメッセージ３をリモートデータベース２に対して送信する。
【００１３】
このようなリモートデータベース操作プログラムを実行するコンピュータによれば、レコード取得命令に応じて、レコード取得手段１ａにより、リモートデータベース２からレコードを取得するためのレコード取得要求が生成される。このとき、更新ログ記憶手段１ｅに更新ログが格納されていなければ、メッセージ送信手段１ｆにより、レコード取得要求を示すメッセージがリモートデータベース２に対して送信される。そして、レコード取得手段１ａにより、レコード取得要求に応じてリモートデータベース２から送られたレコードがレコード記憶手段１ｂに格納される。その後、データ更新命令に応じて、データ更新手段１ｃにより、レコード記憶手段１ｂに記憶されているレコード内のデータが更新される。すると、更新ログ取得手段１ｄにより、データ更新手段１ｃで更新されたデータを示す更新ログが更新ログ記憶手段１ｅに格納される。一方、レコード取得手段１ａによりレコード取得要求が生成された際に、更新ログが格納されていれば、メッセージ送信手段１ｆにより、更新要求が生成され、レコード取得要求と更新要求とを含むメッセージ３がリモートデータベース２に対して送信される。
【００１４】
また、本発明では上記課題を解決するために、コンピュータからのリモートアクセスによりデータベースを操作するためのリモートデータベース操作方法において、レコード取得手段が、レコード取得命令に応じて、リモートデータベースからレコードを取得するためのレコード取得要求を生成し、前記レコード取得要求に応じて前記リモートデータベースから送られたレコードをレコード記憶手段に格納し、データ更新手段が、データ更新命令に応じて、前記レコード記憶手段に記憶されている前記レコード内のデータを更新し、更新ログ取得手段が、前記データ更新手段で更新された前記データを示す更新ログを更新ログ記憶手段に格納し、メッセージ送信手段が、前記レコード取得手段で前記レコード取得要求が生成されると、前記更新ログ記憶手段に前記更新ログが格納されているか否かを判断し、前記更新ログが格納されていなければ前記レコード取得要求を示すメッセージを前記リモートデータベースに対して送信し、前記更新ログが格納されている場合、前記更新ログに基づいて前記データ更新手段で実行された更新処理を前記リモートデータベースに反映させるための更新要求を生成し、前記レコード取得要求と前記更新要求とを含むメッセージを前記リモートデータベースに対して送信する、ことを特徴とするリモートデータベース操作方法が提供される。
【発明の効果】
【００１５】
本発明では、取得したデータが更新されたときの更新ログを記憶しておき、データ更新要求を、次に発生したレコード取得要求とまとめて１つのメッセージでリモートデータベースに送信するようにした。そのため、リモートデータベースに対して送信するメッセージ数を削減することができ、データベース処理の効率化を図ることができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本実施の形態の概略を示す図である。コンピュータ１は、レコード取得手段１ａ、レコード記憶手段１ｂ、データ更新手段１ｃ、更新ログ取得手段１ｄ、更新ログ記憶手段１ｅおよびメッセージ送信手段１ｆを有している。
【００１７】
レコード取得手段１ａは、レコード取得命令に応じて、リモートデータベース２からレコードを取得するためのレコード取得要求を生成する。そして、レコード取得手段１ａは、生成したレコード取得要求に応じてリモートデータベース２から送られたレコードをレコード記憶手段１ｂに格納する。
【００１８】
データ更新手段１ｃは、データ更新命令に応じて、レコード記憶手段１ｂに記憶されているレコード内のデータを更新する。例えば、データ更新手段１ｃは、データの内容を変更したり、データを削除したり、データを追加したりする。
【００１９】
更新ログ取得手段１ｄは、データ更新手段１ｃで更新されたデータを示す更新ログを更新ログ記憶手段１ｅに格納する。
メッセージ送信手段１ｆは、レコード取得手段１ａでレコード取得要求が生成されると、更新ログ記憶手段１ｅに更新ログが格納されているか否かを判断する。更新ログが格納されていなければ、メッセージ送信手段１ｆは、レコード取得要求を示すメッセージをリモートデータベース２に対して送信する。一方、更新ログが格納されている場合、メッセージ送信手段１ｆは、更新ログに基づいてデータ更新手段１ｃで実行された更新処理をリモートデータベース２に反映させるための更新要求を生成し、レコード取得要求と更新要求とを含むメッセージ３をリモートデータベース２に対して送信する。
【００２０】
このようなコンピュータ１によれば、レコード取得命令に応じて、レコード取得手段１ａにより、リモートデータベース２からレコードを取得するためのレコード取得要求が生成される。このとき、更新ログ記憶手段１ｅに更新ログが格納されていなければ、メッセージ送信手段１ｆにより、レコード取得要求を示すメッセージがリモートデータベース２に対して送信される。そして、レコード取得手段１ａにより、レコード取得要求に応じてリモートデータベース２から送られたレコードがレコード記憶手段１ｂに格納される。
【００２１】
その後、データ更新命令に応じて、データ更新手段１ｃにより、レコード記憶手段１ｂに記憶されているレコード内のデータが更新される。すると、更新ログ取得手段１ｄにより、データ更新手段１ｃで更新されたデータを示す更新ログが更新ログ記憶手段１ｅに格納される。例えば、更新ログ取得手段１ｄは、「ａ１」のデータの内容が変更された場合、処理種別「変更」と処理対象データ「ａ１」とを、更新ログ記憶手段１ｅに格納する。また、更新ログ取得手段１ｄは、「ｂ１」のデータが削除された場合、処理種別「削除」と処理対象データ「ｂ１」とを、更新ログ記憶手段１ｅに格納する。
【００２２】
一方、レコード取得手段１ａによりレコード取得要求が生成された際に、更新ログが格納されていれば、メッセージ送信手段１ｆにより、更新ログに基づく更新要求が生成され、レコード取得要求と更新要求とを含むメッセージ３がリモートデータベース２に対して送信される。
【００２３】
なお、データ変更の更新要求の場合、メッセージ送信手段１ｆは、レコード記憶手段１ｂから最新のデータの値を取得して、取得した値をその更新要求に含める。例えば、図１の例では、データａ１が更新されている。そのため、メッセージ送信手段１ｆは、レコード記憶手段１ｂからデータａ１の値を取得し、データａ１に関する更新要求に取得した値を含めてメッセージ３に設定する。
【００２４】
これにより、リモートデータベース２に対して送信するメッセージ数を削減することができ、データベース処理の効率化を図ることができる。しかも、ストアドプロシジャ方式のように、アプリケーション側における処理内容の変更に関する柔軟性が損なわれることもない。
【００２５】
なお、更新要求とデータ取得要求とを含むメッセージ３は、リモートデータベース２において、更新要求に応じた処理が優先的に実行される必要がある。そこで、本実施の形態では、リモートデータベース２において、メッセージ３に含まれる処理要求を、ヘッダ情報に近い方から順に実行するように、実行順が定義されているものとする。この場合、メッセージ送信手段１ｆは、メッセージ３を生成する際に、ヘッダ情報に近い方から、更新要求、データ取得要求の順で、処理要求を登録する。
【００２６】
また、データ更新手段１ｃによって更新処理が行われた順（時系列）で、その更新処理をリモートデータベース２に反映させる必要もある。そこで、更新ログ取得手段１ｄは、データ更新処理が行われた順番を保ったまま、更新ログを更新ログ記憶手段１ｅに格納する。図１の例では、更新ログ記憶手段１ｅ内の上位に示される更新ログほど、先に実行された更新処理を示している。そして、メッセージ送信手段１ｆは、メッセージ３を生成する際には、更新ログ記憶手段１ｅ内の格納順が早い更新ログに対応する更新要求ほど、ヘッダ情報に近い位置に設定する。これにより、リモートデータベース２では、データ更新手段１ｃによる更新処理の順番に沿って、更新内容がデータベースに反映される。
【００２７】
なお、リモートデータベース２において、処理要求の実行順を判別する別の手段があれば、メッセージ３内での処理要求を所定の順で並べる必要はない。例えば、更新要求には更新処理が実行された時刻を含めておき、リモートデータベース２では、更新要求を優先的に処理すること、および処理時刻が先の処理要求を優先的に処理することを定義しておく。これにより、リモートデータベース２において、所定の順番で処理要求に応じたデータベース操作が行われる。
【００２８】
次に、本実施の形態の詳細を説明する。なお、以下の実施の形態では、レコード取得要求に限らず、リモートデータベースに対するアクセスが発生した際に、更新ログが存在すれば、その更新ログを追加したメッセージをリモートデータベースに送信する。
【００２９】
図２は、本実施の形態のシステム構成例を示す図である。この例は、アプリケーションサーバ１００とデータベースサーバ２００からなる分散システムである。
本実施の形態では、クライアント２３がネットワーク２１を介してアプリケーションサーバ１００に接続されている。ネットワーク２１は、例えば、インターネットのような広域ネットワークである。クライアント２３は、ユーザが使用するコンピュータである。アプリケーションサーバ１００は、アプリケーションソフトウェアに基づく処理機能（以下、「アプリケーション」という）により、クライアント２３に対して各種データ処理サービスを提供する。また、アプリケーションサーバ１００は、別のネットワーク２２を介してデータベースサーバ２００に接続されている。データベースサーバ２００は、データベースを有しており、アプリケーションサーバ１００からの要求に応じてデータベースを操作する。
【００３０】
このようなシステムにおいて、クライアント２３からの要求がネットワーク２１を介してアプリケーションサーバ１００に処理要求を出力する。例えば、アプリケーションサーバ１００にＷｅｂサーバアプリケーションを実装し、クライアント２３のＷｅｂブラウザからＷｅｂサーバアプリケーションにアクセスする。そして、クライアント２３は、ユーザからの操作入力に応じて、Ｗｅｂサーバアプリケーションに対する処理要求を出力する。
【００３１】
アプリケーションサーバ１００は、クライアント２３からの処理要求に応じた処理を実行する。その際、データベースサーバ２００が管理するデータベースへのアクセスが必要になると、アプリケーションサーバ１００はネットワーク２２を介してデータベースサーバ２００と連携して動作し、データベースを用いた処理を実行する。このとき、アプリケーションサーバ１００は、データベースサーバ２００に実行させるべき複数の処理要求を１つのメッセージにまとめて送信することで、装置間のメッセージ数を削減する。
【００３２】
図３は、本実施の形態に用いるコンピュータのハードウェア構成例を示す図である。アプリケーションサーバ１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６，１０７が接続されている。
【００３３】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００３４】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０８を介してＣＰＵ１０１に送信する。
【００３５】
通信インタフェース１０６は、ネットワーク２１に接続されている。通信インタフェース１０６は、ネットワーク２１を介して、クライアント２３との間でデータの送受信を行う。
【００３６】
通信インタフェース１０７は、ネットワーク２２に接続されている。通信インタフェース１０７は、ネットワーク２２を介して、データベースサーバ２００との間でデータの送受信を行う。
【００３７】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、アプリケーションサーバ１００のハードウェア構成を示したが、クライアント２３やデータベースサーバ２００も同様のハードウェアで実現することができる。
【００３８】
図４は、アプリケーションサーバの機能を示すブロック図である。アプリケーションサーバ１００にはアプリケーション１１０の処理要求を受け付けるリモートアクセスクライアント１２０が設けられている。一方、データベースサーバ２００には、リモートアクセスクライアント１２０経由でアプリケーション１１０の処理要求を受け取り、その処理要求に従ってデータベース２１０，２２０，２３０へのアクセスを実行するリモートアクセスサーバ２４０が設けられている。
【００３９】
アプリケーションサーバ１００のリモートアクセスクライアント１２０は、リモートデータベースアクセス処理部１２１、更新ログ記憶部１２２、および通信処理部１２３で構成されている。
【００４０】
リモートデータベースアクセス処理部１２１は、アプリケーション１１０からのデータベースに関する命令（データベースの接続（開設）、切断（閉鎖）、検索、更新など）を受け付けて、データベースサーバ２００が有するデータベース２１０，２２０，２３０に対するリモートアクセスを行う。アプリケーション１１０からの命令が、データベース２１０，２２０，２３０へのアクセスを伴う命令（例えば、検索命令）であれば、リモートデータベースアクセス処理部１２１は、データベース２１０，２２０，２３０への処理要求を含むメッセージを生成する。
【００４１】
その際、リモートデータベースアクセス処理部１２１は、更新ログ記憶部１２２を参照して、既に取得しているレコードに対する更新ログの有無を確認する。更新ログが記録されている場合、該当するレコードの更新要求（データの変更要求、削除要求等）をメッセージに含める。そして、リモートデータベースアクセス処理部１２１は、生成したメッセージをデータベースサーバ２００に対して送信する。
【００４２】
さらに、リモートデータベースアクセス処理部１２１は、送信したメッセージに応じてデータベースサーバ２００から送られるレコード（１つ以上のデータで構成される）を保持する。その後、リモートデータベースアクセス処理部１２１は、保持しているレコードに対する更新等の命令をアプリケーション１１０から受け取ると、その命令に従ってレコードを更新する。レコードの更新処理を行った場合、リモートデータベースアクセス処理部１２１は、更新の対象となったデータの識別情報を、更新ログ記憶部１２２に格納する。
【００４３】
更新ログ記憶部１２２は、アプリケーション１１０が行ったデータベース２１０，２２０，２３０に対する更新系（データの変更、削除、挿入）のデータ操作の内容をログとして時系列に記録し管理する。更新ログ記憶部１２２としては、ＲＡＭ１０２内の一部の記憶領域が使用される。
【００４４】
通信処理部１２３は、リモートデータベースアクセス処理部１２１が生成したメッセージを、データベースサーバ２００に対して送信する。また、通信処理部１２３は、送信したメッセージに応じてデータベースサーバ２００から送られたレコードを、リモートデータベースアクセス処理部１２１に渡す。
【００４５】
データベースサーバ２００のリモートアクセスサーバ２４０は、データベースアクセス処理部２４１、処理要求記憶部２４２、および通信処理部２４３で構成される。
データベースアクセス処理部２４１は、アプリケーションサーバ１００から送られるメッセージ処理要求に従ってデータベース２１０，２２０，２３０にアクセスし、レコードを構成するデータの変更等の更新処理を行う。なお、データベースアクセス処理部２４１は、受け取ったメッセージ内に複数の処理要求が含まれている場合、そのメッセージ内での処理要求の順番を保ったまま、処理要求記憶部２４２に処理要求を格納する。そして、データベースアクセス処理部２４１は、処理要求記憶部２４２に格納された処理要求を格納順に取得し、取得した処理要求を順次実行する。
【００４６】
処理要求記憶部２４２は、アプリケーションサーバ１００から送られたメッセージに含まれる処理要求を、メッセージ内での配列順に格納する。
次に、図４に示す構成によって実行されるリモートデータベースアクセス処理を具体的に説明する。
【００４７】
図５は、リモートデータベースアクセス処理の一例を示す図である。データベースサーバ２００内のデータベース２１０，２２０，２３０をアプリケーションサーバ１００で操作する場合、まず、アプリケーション１１０からリモートアクセスクライアント１２０に対して、データベース（ＤＢ）の開設命令が出される。すると、リモートアクセスクライアント１２０のリモートデータベースアクセス処理部１２１が、ＤＢ開設要求を含むメッセージを生成する（ステップＳ１１）。そのメッセージには、開設するＤＢの情報（スキーマ名等）が含まれる。そして、生成されたメッセージが、通信処理部１２３によりデータベースサーバ２００に送信される（ステップＳ１２）。
【００４８】
データベースサーバ２００では、リモートアクセスサーバ２４０のデータベースアクセス処理部２４１が、通信処理部２４３を介してメッセージを受け取り、ＤＢを開設する（ステップＳ１３）。これにより、トランザクションが開始される。この例では、データベース２１０および２２０が開設されたものとする。ＤＢ開設処理が完了すると、リモートアクセスサーバ２４０は、処理結果をアプリケーションサーバ１００に通知する（ステップＳ１４）。
【００４９】
その後、アプリケーション１１０からの検索命令に応じて、リモートデータベースアクセス処理部１２１がレコードの検索を行う（ステップＳ１５）。具体的には、リモートデータベースアクセス処理部１２１は、複数のレコード分のレコード検索情報を含むメッセージを生成する。この例では、レコード検索情報として「レコードＡ＋キー値」、「レコードＢ＋キー値」がメッセージに含まれるものとする（レコードＡ、レコードＢは、検索対象のレコード種別（例えば、「商品レコード」、「在庫レコード」等）を示している）。生成されたメッセージは、通信処理部１２３によりデータベースサーバ２００に送信される（ステップＳ１６）。
【００５０】
データベースサーバ２００では、リモートアクセスサーバ２４０のデータベースアクセス処理部２４１が通信処理部２４３を介してメッセージを受け取る。そして、データベースアクセス処理部２４１は、データベース２１０に対して、種別が「レコードＡ」のレコードに対する検索処理（ステップＳ１７）と、種別が「レコードＢ」のレコードに対する検索処理（ステップＳ１８）とを行う。検索処理により、該当する種別のレコードの中から、キー値で指定された情報を含んでいるレコードが抽出される。
【００５１】
そして、データベースアクセス処理部２４１は、検索によって取得したレコードＡ１、レコードＢ１を、アプリケーションサーバ１００に対して送信する（ステップＳ１９）。送信されたレコードは、アプリケーションサーバ１００のリモートデータベースアクセス処理部１２１によって保持されると共にアプリケーション１１０に渡される。
【００５２】
その後、アプリケーション１１０からレコード内のデータの更新命令が出されると、リモートデータベースアクセス処理部１２１は、保持していたデータを更新する（ステップＳ２０）。この例では、レコードＡ１とレコードＢ１とに対して、それぞれデータ更新処理が行われたものとする。
【００５３】
この時、リモートデータベースアクセス処理部１２１は、更新対象のデータを示す更新ログを、更新ログ記憶部１２２に格納する（ステップＳ２１）。なお、同じデータに対して繰り返し更新処理が行われた場合、リモートデータベースアクセス処理部１２１は、更新ログのデータ圧縮を行う。具体的には、リモートデータベースアクセス処理部１２１は、繰り返し更新されたデータに対する以前の更新ログを削除し、最新の更新ログのみを残す。
【００５４】
その後、アプリケーション１１０から検索命令が出されると、リモートデータベースアクセス処理部１２１が種別「レコードＸ」の検索のメッセージを生成する（ステップＳ２２）。その際、リモートデータベースアクセス処理部１２１は、更新ログ記憶部１２２を参照し、更新ログの有無を確認する。この例では、レコードＡ１とレコードＢ１とを更新したことを示す更新ログが見つかる。
【００５５】
そこで、リモートデータベースアクセス処理部１２１は、レコードＡ１の更新要求とレコードＢ１の更新要求とを、レコード検索のメッセージに含める。そして、通信処理部１２３は、２つの更新要求とレコード検索要求とを含むメッセージを、データベースサーバ２００に対して送信する（ステップＳ２３）。
【００５６】
データベースサーバ２００では、リモートアクセスサーバ２４０のデータベースアクセス処理部２４１が、通信処理部２４３を介してメッセージを受け取る。すると、データベースアクセス処理部２４１は、まずレコードＡに対して、レコードＡ１内のデータを変更する更新処理を行う（ステップＳ２４）。次に、データベースアクセス処理部２４１は、レコードＢ１内のデータを変更する更新処理を行う（ステップＳ２５）。その後、データベースアクセス処理部２４１は、データベース２２０内の種別「レコードＸ」に対する検索処理を行う（ステップＳ２６）。
【００５７】
そして、データベースアクセス処理部２４１は、検索によって取得したレコードＸ１を、アプリケーションサーバ１００に対して送信する（ステップＳ２７）。送信されたレコードＸ１は、アプリケーションサーバ１００のリモートデータベースアクセス処理部１２１によって保持されると共にアプリケーション１１０に渡される。
【００５８】
以後同様に、アプリケーション１１０からの要求に応じたリモートデータベースの操作が行われる。そして、アプリケーション１１０からＤＢ閉鎖命令が出されると、リモートデータベースアクセス処理部１２１は、ＤＢ閉鎖要求を含むメッセージを生成する（ステップＳ２８）。そのメッセージには、閉鎖するＤＢの情報（スキーマ名等）が含まれる。そして、生成されたメッセージが、通信処理部１２３によりデータベースサーバ２００に送信される（ステップＳ２９）。
【００５９】
データベースサーバ２００では、データベースアクセス処理部２４１によってＤＢ閉鎖処理が行われる（ステップＳ３０）。これにより、トランザクションが終了する。そして、データベースアクセス処理部２４１からアプリケーションサーバ１００に対して、処理結果が通知される（ステップＳ３１）。
【００６０】
このように、更新データの反映を検索時（または閉鎖時）にまとめて処理することにより、レコード更新時の通信回数を削減できる。
以下、データベース内のレコードを更新する際のレコードの流れを説明する。
【００６１】
図６は、アプリケーションサーバによるデータの取得および更新状況を示す図である。図６に示すように、アプリケーションサーバ１００からの検索要求に応じて、データベースサーバ２００のデータベース２１０内のデータがアプリケーションサーバ１００に送られる。この例では、データベース２１０はネットワークデータベースである。そして、データベース２１０内のレコード２１１の一部がサブセット１２１ａとして、アプリケーションサーバ１００に送られている。
【００６２】
サブセット１２１ａは、リモートデータベースアクセス処理部１２１で保持される。そして、アプリケーション１１０からのデータベースに対する操作命令に応じて、リモートデータベースアクセス処理部１２１によりサブセット１２１ａが編集される。図６の例では、データａ１に対して更新命令が出され、データｂ１に対して削除命令が出されている。
【００６３】
サブセット１２１ａに対する更新処理が行われると、リモートデータベースアクセス処理部１２１により、操作命令毎の更新ログ１２２ａ，１２２ｂが更新ログ記憶部１２２に格納される。更新ログ１２２ａ，１２２ｂは、データの操作が行われた順に格納されている。
【００６４】
その後、アプリケーション１１０から、別のデータを取得するための検索命令が出されると、リモートデータベースアクセス処理部１２１は、更新ログ１２２ａ，１２２ｂに基づく処理要求と、アプリケーション１１０から出された検索命令に応じた検索要求とを含むメッセージを生成する。
【００６５】
図７は、メッセージのフォーマットを示す図である。メッセージ３０には、ヘッダ情報３１に続けて、各種処理要求が設定される。処理要求の順番は、更新ログ記憶部１２２に登録された更新ログに応じた処理要求が、更新ログの登録順に設定され、その処理要求に続けて、アプリケーション１１０からの検索要求に応じた処理要求が設定される。
【００６６】
図７の例では、ヘッダ情報３１の次に、更新ログ１２２ａに応じたデータの更新処理を示す処理要求３２が設定されている。次に、更新ログ１２２ｂに応じたデータの削除処理を示す処理要求３３が設定されている。最後に、アプリケーション１１０からの検索命令に応じた処理要求３４が設定されている。
【００６７】
なお、各処理要求３２〜３４には、処理種別が示されている。更新処理には、データの変更処理やデータの削除処理がある。更新処理の場合、処理要求内に処理対象のデータを示すアドレスが含まれる。なお、リモートデータベースアクセス処理部１２１は、各データのアドレスを、検索要求に応じた検索結果と共に、データベースサーバ２００から取得している。変更処理の場合、変更後のデータの値が処理要求３２に含められる。
【００６８】
このようなメッセージ３０がデータベースサーバ２００に送られると、データベースサーバ２００では、メッセージ３０に含まれる処理要求を、ヘッダ情報３１に近いものから順に実行する。
【００６９】
図８は、データベースサーバでの処理実行状況を示す図である。メッセージ３０をデータベースアクセス処理部２４１が受け取ると、メッセージ３０から処理要求３２〜３４が抽出されて、処理要求記憶部２４２に格納される。その際、ヘッダ情報３１に近い処理要求ほど先になる順番（処理される順）で、各処理要求が格納される（図８中では、上位の処理要求ほど順番が先）。図８の例では、データ変更の処理要求３２、データ削除の処理要求３３、レコード検索の処理要求３４の順となる。
【００７０】
そして、データベースアクセス処理部２４１は、処理要求記憶部２４２に格納された処理要求を、格納された順番に沿って実行する。すなわち、最初に、処理要求３２に従って、データベース２１０内のレコード２１１のデータａ１を更新する。次に、処理要求３３に従って、データｂ１を削除する。そして、処理供給３４に従って、データベース２２０内のレコードＸの検索処理を行う。
【００７１】
次に、アプリケーション１１０、リモートデータベースアクセス処理部１２１、及びデータベースアクセス処理部２４１の処理手順を説明する。
図９は、１トランザクション内でのアプリケーションの処理手順を示す図である。アプリケーション１１０は、最初に、ＤＢ開設命令を出力する（ステップＳ４１）。これにより、トランザクションが開始される。次に、アプリケーション１１０は、レコード検索命令を出力する（ステップＳ４２）。これにより、レコードのサブセットがアプリケーションサーバ１００で取得される。そして、アプリケーション１１０は、取得したサブセットに含まれるデータの更新命令（変更命令、削除命令、または挿入命令）を出力する（ステップＳ４３）。
【００７２】
その後、アプリケーション１１０は、取得したサブセットに対する最後のデータ更新命令（ステップＳ４４）が完了後、次に処理すべきレコードのサブセットを取得するための、レコード検索命令を出力する（ステップＳ４５）。
【００７３】
以後、同様にレコードのサブセットが取得され、そのサブセットに対するデータ更新命令が出力される（ステップＳ４６）。そして、処理すべき最後のデータ更新命令（ステップＳ４７）が出力された後、アプリケーション１１０は、ＤＢ閉鎖命令を出力する。このＤＢ閉鎖命令によって、トランザクションが終了する。
【００７４】
図１０は、リモートデータベースアクセス処理部の処理手順を示すフローチャートである。この処理は、アプリケーション１１０から処理命令を受け取ったときに実行される。
リモートデータベースアクセス処理部１２１は、処理命令を受け取ると、その処理依頼がＤＢ開設命令か否かを判断する（ステップＳ５１）。ＤＢ開設命令であれば、リモートデータベースアクセス処理部１２１は、データベースサーバ２００に対して、ＤＢ開設要求を含むメッセージを送信する（ステップＳ５２）。
【００７５】
処理命令がＤＢ開設命令で無い場合、リモートデータベースアクセス処理部１２１は、処理命令が検索命令か否かを判断する（ステップＳ５３）。検索命令であれば、リモートデータベースアクセス処理部１２１は、更新ログ記憶部１２２を参照し、更新ログの有無を判断する（ステップＳ５４）。このとき、更新ログがなければ、リモートデータベースアクセス処理部１２１は、検索要求のみを含むメッセージをデータベースサーバ２００に対して送信する（ステップＳ５５）。更新ログがある場合、リモートデータベースアクセス処理部１２１は、更新ログに応じた更新要求と、検索要求とを含むメッセージをデータベースサーバ２００に対して送信する（ステップＳ５６）。
【００７６】
処理命令が、ＤＢ開設命令でも、検索命令でも無い場合、リモートデータベースアクセス処理部１２１は、処理命令が更新命令か否かを判断する（ステップＳ５７）。更新命令であれば、リモートデータベースアクセス処理部１２１は、データベースサーバ２００から取得したサブセット内のデータを更新する（ステップＳ５８）。その際、リモートデータベースアクセス処理部１２１は、更新ログを取得し、更新ログ記憶部１２２に登録する（ステップＳ５９）。
【００７７】
処理命令が、ＤＢ開設命令、検索命令、更新命令のいずれでもないとき、リモートデータベースアクセス処理部１２１は、処理命令が閉鎖命令か否かを判断する（ステップＳ６０）。閉鎖命令であれば、リモートデータベースアクセス処理部１２１は、更新ログ記憶部１２２に更新ログが登録されているか否かを判断する（ステップＳ６１）。更新ログがなければ、リモートデータベースアクセス処理部１２１は、ＤＢ閉鎖要求を含むメッセージをデータベースサーバ２００に対して送信する（ステップＳ６２）。一方、更新ログがあれば、リモートデータベースアクセス処理部１２１は、ＤＢ更新要求とＤＢ閉鎖要求とを含むメッセージを、データベースサーバ２００に対して送信する（ステップＳ６３）。
【００７８】
このようにして、アプリケーションサーバ１００からデータベースサーバ２００に対して、アプリケーション１１０からの命令に応じたメッセージが送信される。
次に、データベースサーバ２００内のデータベースアクセス処理部２４１がメッセージを受け取ったときに実行する処理について説明する。
【００７９】
図１１は、データベースアクセス処理部の処理手順を示すフローチャートである。データベースアクセス処理部２４１は、取得したメッセージに含まれる処理要求を、ヘッダ情報に近いものから順に処理対処としてステップＳ７２〜Ｓ７９の処理を繰り返す（ステップＳ７１）。
【００８０】
まず、データベースアクセス処理部２４１は、処理要求がＤＢ開設要求か否かを判断する（ステップＳ７２）。ＤＢ開設要求であれば、データベースアクセス処理部２４１は、ＤＢを開設する（ステップＳ７３）。
【００８１】
処理要求が開設要求では無い場合、データベースアクセス処理部２４１は、その処理要求が検索要求か否かを判断する（ステップＳ７４）。処理要求が検索要求であれば、データベースアクセス処理部２４１は、検索要求に応じてＤＢ検索を行う（ステップＳ７５）。
【００８２】
処理要求が開設要求、検索要求のいずれでも無い場合、データベースアクセス処理部２４１は、その処理要求が更新要求か否かを判断する（ステップＳ７６）。処理要求が更新要求であれば、データベースアクセス処理部２４１は、その更新要求に従ってＤＢ内のレコードを更新する（ステップＳ７７）。
【００８３】
処理要求が、開設要求、検索要求、更新要求のいずれでも無い場合、データベースアクセス処理部２４１は、その処理要求が閉鎖要求か否かを判断する（ステップＳ７８）。処理要求が閉鎖要求であれば、データベースアクセス処理部２４１は、ＤＢを閉鎖（データベースをコミット後、データベースの占有を解除）する（ステップＳ７９）。
【００８４】
そして、データベースアクセス処理部２４１は、メッセージに含まれる全ての処理要求に対する処理が完了したら、メッセージの処理を終了する（ステップＳ８０）。
以上のようにして、データの更新要求を、検索要求またはＤＢ閉鎖要求と共通のメッセージによってデータベースサーバ２００に送信することが可能となる。その結果、アプリサーバとデータベースサーバ２００との間のメッセージ数が削減され、システム全体における処理の効率化が図れる。
【００８５】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、アプリケーションサーバ１００やデータベースサーバ２００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【００８６】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００８７】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００８８】
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
【００８９】
（付記１）  リモートアクセスによりデータベースを操作するためのリモートデータベース操作プログラムにおいて、
コンピュータを、
レコード取得命令に応じて、リモートデータベースからレコードを取得するためのレコード取得要求を生成し、前記レコード取得要求に応じて前記リモートデータベースから送られたレコードをレコード記憶手段に格納するレコード取得手段、
データ更新命令に応じて、前記レコード記憶手段に記憶されている前記レコード内のデータを更新するデータ更新手段、
前記データ更新手段で更新された前記データを示す更新ログを更新ログ記憶手段に格納する更新ログ取得手段、
前記レコード取得手段で前記レコード取得要求が生成されると、前記更新ログ記憶手段に前記更新ログが格納されているか否かを判断し、前記更新ログが格納されていなければ前記レコード取得要求を示すメッセージを前記リモートデータベースに対して送信し、前記更新ログが格納されている場合、前記更新ログに基づいて前記データ更新手段で実行された更新処理を前記リモートデータベースに反映させるための更新要求を生成し、前記レコード取得要求と前記更新要求とを含むメッセージを前記リモートデータベースに対して送信するメッセージ送信手段、
として機能させることを特徴とするリモートデータベース操作プログラム。
【００９０】
（付記２）  前記メッセージ送信手段は、前記レコード取得要求以外の前記リモートデータベースへのアクセスを伴う処理要求が生成された場合にも、前記更新ログ記憶手段に前記更新ログが格納されているか否かを判断し、前記更新ログが格納されていなければ前記処理要求を示すメッセージを前記リモートデータベースに対して送信し、前記更新ログが格納されている場合、前記更新ログに基づいて前記データ更新手段で実行された更新処理を前記リモートデータベースに反映させるための更新要求を生成し、前記処理要求と前記更新要求とを含むメッセージを前記リモートデータベースに対して送信することを特徴とする付記１記載のリモートデータベース操作プログラム。
【００９１】
（付記３）  前記メッセージ送信手段は、前記レコード取得要求と前記更新要求とを含む前記メッセージを生成する場合、前記更新要求を実行後、前記レコード取得要求が実行されるように実行順を設定することを特徴とする付記１記載のリモートデータベース操作プログラム。
【００９２】
（付記４）  前記メッセージに含まれる要求がヘッダ情報に近い方から順に実行されることが予め定義されており、前記メッセージ送信手段は、前記メッセージの前記ヘッダ情報に続けて前記更新要求を設定し、次に前記レコード取得要求を設定することを特徴とする付記３記載のリモートデータベース操作プログラム。
【００９３】
（付記５）  前記メッセージ送信手段は、前記更新ログ記憶手段に複数の前記更新ログが格納されている場合、前記更新ログの格納順に沿って、各前記更新ログに対応する更新要求が実行されるように、前記メッセージにおいて実行順を設定することを特徴とする付記３記載のリモートデータベース操作プログラム。
【００９４】
（付記６）  コンピュータからのリモートアクセスによりデータベースを操作するためのリモートデータベース操作方法において、
レコード取得手段が、レコード取得命令に応じて、リモートデータベースからレコードを取得するためのレコード取得要求を生成し、前記レコード取得要求に応じて前記リモートデータベースから送られたレコードをレコード記憶手段に格納し、
データ更新手段が、データ更新命令に応じて、前記レコード記憶手段に記憶されている前記レコード内のデータを更新し、
更新ログ取得手段が、前記データ更新手段で更新された前記データを示す更新ログを更新ログ記憶手段に格納し、
メッセージ送信手段が、前記レコード取得手段で前記レコード取得要求が生成されると、前記更新ログ記憶手段に前記更新ログが格納されているか否かを判断し、前記更新ログが格納されていなければ前記レコード取得要求を示すメッセージを前記リモートデータベースに対して送信し、前記更新ログが格納されている場合、前記更新ログに基づいて前記データ更新手段で実行された更新処理を前記リモートデータベースに反映させるための更新要求を生成し、前記レコード取得要求と前記更新要求とを含むメッセージを前記リモートデータベースに対して送信する、
ことを特徴とするリモートデータベース操作方法。
【００９５】
（付記７）  リモートアクセスによりデータベースを操作するためのリモートデータベース操作装置において、
レコード取得命令に応じて、リモートデータベースからレコードを取得するためのレコード取得要求を生成し、前記レコード取得要求に応じて前記リモートデータベースから送られたレコードをレコード記憶手段に格納するレコード取得手段と、
前記レコード取得手段が取得した前記レコードを記憶するレコード記憶手段と、
データ更新命令に応じて、前記レコード記憶手段に記憶されている前記レコード内のデータを更新するデータ更新手段と、
前記データ更新手段で更新された前記データを示す更新ログを更新ログ記憶手段に格納する更新ログ取得手段と、
前記レコード取得手段で前記レコード取得要求が生成されると、前記更新ログ記憶手段に前記更新ログが格納されているか否かを判断し、前記更新ログが格納されていなければ前記レコード取得要求を示すメッセージを前記リモートデータベースに対して送信し、前記更新ログが格納されている場合、前記更新ログに基づいて前記データ更新手段で実行された更新処理を前記リモートデータベースに反映させるための更新要求を生成し、前記レコード取得要求と前記更新要求とを含むメッセージを前記リモートデータベースに対して送信するメッセージ送信手段と、
を有することを特徴とするリモートデータベース操作装置。
【図面の簡単な説明】
【００９６】
【図１】本実施の形態の概略を示す図である。
【図２】本実施の形態のシステム構成例を示す図である。
【図３】本実施の形態に用いるコンピュータのハードウェア構成例を示す図である。
【図４】アプリケーションサーバの機能を示すブロック図である。
【図５】リモートデータベースアクセス処理の一例を示す図である。
【図６】アプリケーションサーバによるデータの取得および更新状況を示す図である。
【図７】メッセージのフォーマットを示す図である。
【図８】データベースサーバでの処理実行状況を示す図である。
【図９】１トランザクション内でのアプリケーションの処理手順を示す図である。
【図１０】リモートデータベースアクセス処理部の処理手順を示すフローチャートである。
【図１１】データベースアクセス処理部の処理手順を示すフローチャートである。
【符号の説明】
【００９７】
１  コンピュータ
１ａ  レコード取得手段
１ｂ  レコード記憶手段
１ｃ  データ更新手段
１ｄ  更新ログ取得手段
１ｅ  更新ログ記憶手段
１ｆ  メッセージ送信手段
【図１】
2006338421.tif 000003
【図２】
2006338421.tif 000004
【図３】
2006338421.tif 000005
【図４】
2006338421.tif 000006
【図５】
2006338421.tif 000007
【図６】
2006338421.tif 000008
【図７】
2006338421.tif 000009
【図８】
2006338421.tif 000010
【図９】
2006338421.tif 000011
【図１０】
2006338421.tif 000012
【図１１】
2006338421.tif 000013
【手続補正書】
【提出日】平成18年4月11日(2006.4.11)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
ユーザに様々なサービスを提供するサーバシステムでは、処理機能が多階層に分かれている場合がある。例えば、ユーザからの要求を受け付けるためのアプリケーションサーバと、そのアプリケーションサーバが提供するデータ処理で使用するデータを管理するデータベースサーバとが個別に設けられる場合がある。この場合、各サーバが互いに連携して動作することで、ユーザに対してサービスが提供される。具体的には、アプリケーションサーバが、データベースサーバに対してリモートアクセスすることで、ユーザからの要求に応じたデータベースの操作が行われる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
例えば、データベースのデータアクセス処理のパフォーマンス向上施策として、ストアドプロシジャ方式がある。ストアドプロシジャ方式とは、個々の処理毎のＤＭＬ（Data Manipulation Language：例えばリレーショナルデータベースにおけるＳＱＬ（Structured Query Language）等）命令をアプリケーションからデータベースサーバへ逐一送付して都度実行させる代わりに、ＤＭＬ命令をグループ化したストアドプロシジャを予め作成してデータベースサーバに登録しておくものである。アプリケーションがデータベースのデータ操作を行うとき、アプリケーションは、データベースサーバに対してストアドプロシジャを呼び出させて実行させる。これにより、アプリケーションを実行するクライアントからデータベースを有するデータベースサーバへの処理要求の送信回数が削減され、データアクセス処理の効率化が図られる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
なお、更新要求とレコード取得要求とを含むメッセージ３は、リモートデータベース２において、更新要求に応じた処理が優先的に実行される必要がある。そこで、本実施の形態では、リモートデータベース２において、メッセージ３に含まれる処理要求を、ヘッダ情報に近い方から順に実行するように、実行順が定義されているものとする。この場合、メッセージ送信手段１ｆは、メッセージ３を生成する際に、ヘッダ情報に近い方から、更新要求、レコード取得要求の順で、処理要求を登録する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４５
【補正方法】変更
【補正の内容】
【００４５】
データベースサーバ２００のリモートアクセスサーバ２４０は、データベースアクセス処理部２４１、処理要求記憶部２４２、および通信処理部２４３で構成される。
データベースアクセス処理部２４１は、アプリケーションサーバ１００から送られるメッセージに含まれる処理要求に従ってデータベース２１０，２２０，２３０にアクセスし、レコードを構成するデータの変更等の更新処理を行う。なお、データベースアクセス処理部２４１は、受け取ったメッセージ内に複数の処理要求が含まれている場合、そのメッセージ内での処理要求の順番を保ったまま、処理要求記憶部２４２に処理要求を格納する。そして、データベースアクセス処理部２４１は、処理要求記憶部２４２に格納された処理要求を格納順に取得し、取得した処理要求を順次実行する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００６６
【補正方法】変更
【補正の内容】
【００６６】
図７の例では、ヘッダ情報３１の次に、更新ログ１２２ａに応じたデータの変更処理を示す処理要求３２が設定されている。次に、更新ログ１２２ｂに応じたデータの削除処理を示す処理要求３３が設定されている。最後に、アプリケーション１１０からの検索命令に応じた処理要求３４が設定されている。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００７９
【補正方法】変更
【補正の内容】
【００７９】
図１１は、データベースアクセス処理部の処理手順を示すフローチャートである。データベースアクセス処理部２４１は、取得したメッセージに含まれる処理要求を、ヘッダ情報に近いものから順に処理対象としてステップＳ７２〜Ｓ７９の処理を繰り返す（ステップＳ７１）。
【手続補正７】
【補正対象書類名】図面
【補正対象項目名】図１
【補正方法】変更
【補正の内容】
【図１】
2006338421.tif 000014