(57)【特許請求の範囲】
【請求項１】
ＯＬＴＰ（ＯｎＬｉｎｅ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ）データベース・サーバとＯＬＡＰ（ＯｎＬｉｎｅ  Ａｎａｌｙｔｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ）データベース・サーバの両方に対するアクセスを提供するコンピュータ・システムであって、
クライアント・アプリケーションを有するＯＬＰＴクライアントと、
前記ＯＬＰＴクライアント、前記ＯＬＴＰデータベース・サーバ、および前記ＯＬＡＰデータベース・サーバにそれぞれ接続され、ＯＬＴＰアダプタとＯＬＡＰアダプタとを備えるＯＬＴＰアプリケーション・サーバであって、前記ＯＬＡＰアダプタはマッピング・コンポーネントを有する、前記ＯＬＴＰアプリケーション・サーバと、
前記ＯＬＴＰデータベース・サーバに格納されるバージョンインジケータであって、前記ＯＬＴＰデータベース・サーバと前記ＯＬＡＰデータベース・サーバとの間で最後に完了した同期を示すバージョンインジケータと、
を備え、
前記ＯＬＴＰアプリケーション・サーバは、
前記クライアント・アプリケーションからのクエリに応答して、（ａ）前記クライアント・アプリケーションの動作モードと、（ｂ）前記ＯＬＴＰデータベース・サーバと前記ＯＬＡＰデータベース・サーバとの間での同期状態とに従って、前記クエリを前記ＯＬＴＰデータベース・サーバまたは前記ＯＬＡＰデータベース・サーバにリダイレクトすることであって、
前記動作モードが読取専用動作以外であるか、または、前記同期状態が「未同期」である場合には、前記クエリを前記ＯＬＴＰデータベース・サーバにリダイレクトし、前記動作モードが読取専用動作であり、かつ、前記同期状態が「同期済み」である場合には、前記クエリを前記ＯＬＡＰデータベース・サーバにリダイレクトすることと、
前記マッピング・コンポーネントによって、ＯＬＴＰのセマンティクスとＯＬＡＰのセマンティクスとの間でデータをマッピングすることと、
前記ＯＬＴＰアプリケーション・サーバが前記バージョンインジケータを前記クライアント・アプリケーションのセッション状態にコピーすることと、
前記ＯＬＴＰデータベース・サーバ側に格納された前記バージョンインジケータが、前記クライアント・アプリケーション内の前記バージョンインジケータのコピーに対して変化したときに、前記クライアント・アプリケーションからの前記クエリを前記ＯＬＡＰデータベース・サーバにリダイレクトすることと、
を実行するように構成されたことを特徴とするコンピュータ・システム。
【請求項２】
前記ＯＬＡＰアダプタが、前記ＯＬＴＰデータベース・サーバのセマンティクスから前記ＯＬＡＰデータベース・サーバのセマンティクスへ前記クエリをマッピングすることを特徴とする請求項１に記載のコンピュータ・システム。
【請求項３】
前記ＯＬＡＰアダプタが、前記ＯＬＡＰデータベース・サーバのセマンティクスから前記ＯＬＴＰデータベース・サーバのセマンティクスへ前記クエリの結果をマッピングすることを特徴とする請求項１に記載のコンピュータ・システム。
【請求項４】
ＯＬＴＰ（ＯｎＬｉｎｅ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ）データベース・サーバとＯＬＡＰ（ＯｎＬｉｎｅ  Ａｎａｌｙｔｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ）データベース・サーバの両方に対するアクセスを提供するコンピュータ実施方法であって、
当該方法は、クライアント・アプリケーションを有するＯＬＰＴクライアント、前記ＯＬＴＰデータベース・サーバ、および前記ＯＬＡＰデータベース・サーバにそれぞれ接続され、ＯＬＴＰアダプタとＯＬＡＰアダプタとを備えるＯＬＴＰアプリケーション・サーバであって、前記ＯＬＡＰアダプタはマッピング・コンポーネントを有する、前記ＯＬＴＰアプリケーション・サーバによって実行され、当該方法は、
前記クライアント・アプリケーションからのクエリに応答して、（ａ）前記クライアント・アプリケーションの動作モードと、（ｂ）前記ＯＬＴＰデータベース・サーバと前記ＯＬＡＰデータベース・サーバとの間での同期状態とに従って、前記クエリを前記ＯＬＴＰデータベース・サーバまたは前記ＯＬＡＰデータベース・サーバにリダイレクトするステップであって、
前記動作モードが読取専用動作以外であるか、または、前記同期状態が「未同期」である場合には、前記クエリを前記ＯＬＴＰデータベース・サーバにリダイレクトし、前記動作モードが読取専用動作であり、かつ、前記同期状態が「同期済み」である場合には、前記クエリを前記ＯＬＡＰデータベース・サーバにリダイレクトするステップと、
前記マッピング・コンポーネントによって、ＯＬＴＰのセマンティクスとＯＬＡＰのセマンティクスとの間でデータをマッピングするステップと
前記ＯＬＴＰデータベース・サーバと前記ＯＬＡＰデータベース・サーバとの間で最後に完了した同期を指示するステップと、
前記指示するステップが、バージョンインジケータを前記ＯＬＴＰデータベース・サーバ側に格納するステップを含み、
前記バージョンインジケータを前記クライアント・アプリケーションのセッション状態にコピーするステップと、
前記ＯＬＴＰデータベース・サーバ側で格納した前記バージョンインジケータが、前記クライアント・アプリケーション内の前記バージョンインジケータのコピーに対して変化したときに、前記クエリを前記ＯＬＡＰデータベース・サーバにリダイレクトするステップと、
を備えたことを特徴とするコンピュータ実施方法。
【請求項５】
前記マッピングするステップは、前記ＯＬＡＰアダプタによって、前記ＯＬＴＰデータベース・サーバのセマンティクスから前記ＯＬＡＰデータベース・サーバのセマンティクスへ前記クエリをマッピングするステップを含むことを特徴とする請求項４に記載のコンピュータ実施方法。
【請求項６】
前記マッピングするステップは、前記ＯＬＡＰアダプタによって、前記ＯＬＡＰデータベース・サーバのセマンティクスから前記ＯＬＴＰデータベース・サーバのセマンティクスへ前記クエリの結果をマッピングするステップを含むことを特徴とする請求項４に記載のコンピュータ実施方法。
【請求項７】
コンピュータに、請求項４ないし６のいずれかに記載のコンピュータ実施方法を実行させることを特徴とするコンピュータプログラム。
【請求項８】
請求項７記載のコンピュータプログラムを記録したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＯＬＴＰデータベース環境とＯＬＡＰデータベース環境を統合するための、コンピュータの方法およびシステムに関する。
【背景技術】
【０００２】
企業顧客は一般に２種類のデータベース環境を保持している。第１に、ＣＡＴＩＡ、ＥＮＯＶＩＡ、ＤＥＬＭＩＡ、等の商標でダッソー・システムズにより開発されたもののようなトランザクション指向アプリケーションをサポートするために、関係データベースがＯＬＴＰ（ＯｎＬｉｎｅ  Ｔｒａｎｓａｃｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ）環境で使用されている。第２に、ビジネス・インテリジェンス、レポーティング、および意思決定支援のような付加価値アプリケーション向けに、ＯＬＴＰデータの派生的コピー（ｄｅｒｉｖｅｄ  ｃｏｐｙ）がＯＬＡＰ（ＯｎＬｉｎｅ  Ａｎａｌｙｔｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ）用に生成される。歴史的には、ＯＬＡＰ環境では関係データベース技術も用いられているが、ＯＬＡＰ向けにカスタマイズされた記憶システムが広く利用可能となるにつれ、これも変わってきている。ダッソー・システムズのブランドであるＥｘａｌｅａｄ（登録商標）は現代のＯＬＡＰリポジトリの１例である。
【０００３】
今日では、ＯＬＴＰ環境とＯＬＡＰ環境は全く疎であり、アプリケーションは一方の環境または他方の環境をサポートするように設計されている。このように複数のデータベース環境が分かれていると、コンピューティング・リソースの次善的な利用、取組みの重複、手動によるデータ同期、および他の多数の問題をもたらす。
【０００４】
以下の記載は、ＯＬＡＰシステムとＯＬＴＰシステムの組合せに関する技術に関連する。特許文献１では、ＯＬＡＰデータとＯＬＴＰデータの統合ビューが提示されている。この開示されたシステムでは、ＯＬＡＰおよびＯＬＴＰに跨ったコンテンツの結合ビューが提供されており、各システム内のデータは疎であると考えられる。次に、特許文献１では、ＯＬＴＰシステムのコンテンツを変換することによりこの結合ビューを計算している。最後に、特許文献１では、ＯＬＡＰアプリケーションをサポートするための環境が提供されている。
【０００５】
特許文献２は特許文献１と同様である。特許文献２では、ＯＬＡＰのデータを基にしてＯＬＴＰの未同期データを付加して、ＯＬＡＰとＯＬＴＰから統合データ・キューブを構築することに着目している。データ変換については記載されていない（示唆もなく、単一のセマンティックしか前提としていない）。特許文献２では、ＯＬＡＰアプリケーションをサポートするための環境が提供されている。
【０００６】
特許文献３では、ＯＬＡＰとＯＬＴＰで保持されるデータの間の双方向的関係を管理する。特許文献３のアプローチでは、ＯＬＡＰのクエリの結果からＯＬＴＰのデータにナビゲートし、ＯＬＴＰのクエリの結果からＯＬＡＰのデータにナビゲートする。特許文献３では、結合ビューは提示されず、その代り、新しい分類のＯＬＡＰアプリケーションが定義されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第７，７５６，８２２号明細書
【特許文献２】米国特許第７，７４３，０１５号明細書
【特許文献３】米国特許第６，４８０，８４２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
大量のトランザクション上のニーズを有するアプリケーション・サーバからＯＬＡＰ環境とＯＬＴＰ環境の両方を利用するニーズがある。かかるアプリケーション・サーバの例として、オブジェクト・モデリング環境をアプリケーション開発者に提供するＥＮＯＶＩＡ  Ｖ６がある。ＥＮＯＶＩＡ  Ｖ６オブジェクト・モデルは、オーサリング操作をサポートし、並列度の高い複数ユーザ環境を前提とするので、トランザクションとＯＬＴＰに関して強いニーズを有する。しかし、ＥＮＯＶＩＡ  Ｖ６での多くの操作は読取専用であり、トランザクション・セマンティクスを必要としないので、アプリケーションをＯＬＡＰデータベース・サーバによってより効率的に扱うことができる。アプリケーション開発者が１か所を参照するだけで作業し、アプリケーション・サーバにどちらのデータベース・サーバが所与の操作に対して適切かを判断させることが非常に望ましい。しかし、ＯＬＡＰデータベースとＯＬＴＰデータベースの両方に対して透過的なアクセスを提供するプログラミング・フレームワーク（アプリケーション・サーバ）は知られていない。
【０００９】
解決すべき２つの問題がある。第１の問題は、ＯＬＡＰデータベース・サーバとＯＬＴＰデータベース・サーバにおけるデータのセマンティック・レベルが異なりうるということである。ＯＬＡＰデータはＯＬＴＰデータから派生するが、ＯＬＡＰデータベースにデータ投入する抽出／変換／ロード（ＥＬＴ）プロセスによって幾分変更されるのが一般的である。第２の問題は、ＯＬＡＰデータベース・システムにアクセスするとき、ＯＬＴＰデータベース側で加えられた任意の変更がＯＬＡＰデータベース・サーバと同期されていることをフレームワーク（すなわち、アプリケーション・サーバ）が保証しなければならないことである。この保証は、アプリケーションが両方のデータベース・サーバ環境に跨って一貫したデータのビューを有することを確保するために必要である。
【課題を解決するための手段】
【００１０】
本発明は、当分野の上述の欠点とニーズを解決するものである。具体的には、本発明の諸実施形態では以下を提供する。
１）ＯＬＡＰデータベース・システムとＯＬＴＰデータベース・システムを統合してＯＬＴＰアプリケーションをサポートすること
２）ＯＬＡＰのセマンティクスとＯＬＴＰのセマンティクスの間でデータを変換すること
３）ＯＬＴＰのバージョン・スタンプの管理に基づいて、参照するシステム（ＯＬＡＰまたはＯＬＴＰの何れか）を判定すること（統合なし）
【００１１】
１実施形態では、コンピュータ・システムが、ＯＬＴＰデータベース・サーバとＯＬＡＰデータベース・サーバの両方に対するアクセスを提供する。コンピュータ・システムは、クライアント・アプリケーションとＯＬＴＰアプリケーション・サーバを備える。クライアント・アプリケーションは、クエリを受け取るように適合され、（ａ）クライアント・アプリケーションの動作モード（読取または更新）と（ｂ）ＯＬＡＰデータベース・サーバの同期状態に従い、当該クエリをＯＬＴＰデータベース・サーバまたはＯＬＡＰデータベース・サーバにリダイレクトする。クライアント・アプリケーションは、動作モードが読取専用動作以外であるか、または、同期状態が「未同期」である場合はＯＬＴＰデータベース・サーバにクエリをリダイレクトし、動作モードが読取専用動作であり同期状態が「同期済み」である場合はＯＬＡＰデータベース・サーバにクエリをリダイレクトする。
【００１２】
ＯＬＴＰアプリケーション・サーバ（例えば、ＥＮＯＶＩＡ  Ｖ６）はＯＬＴＰアダプタとＯＬＡＰアダプタを備える。ＯＬＡＰアダプタは、ＯＬＴＰのセマンティクスとＯＬＡＰのセマンティクスの間でデータをマッピングするよう適合させたマッピング・コンポーネントを有する。
【００１３】
諸実施形態では、ＯＬＡＰアダプタはクエリをＯＬＴＰのセマンティクスからＯＬＡＰのセマンティクスにマッピングする。
【００１４】
さらに、ＯＬＡＰアダプタはクエリの結果をＯＬＡＰのセマンティクスからＯＬＴＰのセマンティクスにマッピングしてもよい。
【００１５】
諸実施形態では、ＯＬＴＰデータベース・サーバ側に格納したバージョンインジケータをさらに備えてもよい。バージョンインジケータは、ＯＬＴＰデータベース・サーバとＯＬＡＰデータベース・サーバの間で最後に完了した同期を示すものである。ＯＬＴＰアプリケーション・サーバは、バージョンインジケータをクライアント・アプリケーションのセッション状態にコピーしてもよく、クライアント・アプリケーションは、ＯＬＴＰデータベース・サーバ側に格納したバージョンインジケータがクライアント・アプリケーション内のバージョンインジケータのコピーに対して変更されたときに、クエリをＯＬＡＰデータベース・サーバにリダイレクトする。
【００１６】
他の諸実施形態は、以上の動作および機能を実行するコンピュータ実行型の方法および／またはコンピュータ・プログラム製品の形である。
【００１７】
以上のことは、添付図面で図示したように、以下の本発明の実施例のより具体的な記載から明らかであろう。添付図面においては、様々な図全体にわたって、同様な参照番号により同一の部分を参照する。本発明の諸実施形態の説明を重視し、図面は必ずしも正確な縮尺では描かれていない。
【図面の簡単な説明】
【００１８】
【図１】本発明の１実施形態のブロック図である。
【図２】図１の実施形態における、データベース相互動作の流れ図である。
【図３】図１の実施形態における、データベース相互動作の流れ図である。
【図４】本発明の諸実施形態が動作するコンピュータ・ネットワークの略図である。
【図５】図４のネットワークにおけるコンピュータ・ノードのブロック図である。
【発明を実施するための形態】
【００１９】
以下で、本発明の実施例を説明する。
【００２０】
本明細書で引用した全ての特許、公開特許出願、および参照の教示事項は、参照により全体として組み込まれる。
【００２１】
図１では、本発明を具体化するコンピュータ・データベース・システム、装置および方法１０８を示す。
【００２２】
システム１００は、ＯＬＴＰデータベース・システム３０とＯＬＡＰデータベース・システム４０を備える。ＯＬＡＰデータベース・システム４０は一般に、当分野で一般的かつＯＬＡＰクライアント５０ｂがアクセス可能なように構成される。さらに、以下で明らかになるように、ＯＬＴＰデータベース・システム３０とアプリケーション・サーバ６０はＯＬＡＰデータベース４０にアクセスし、データをＯＬＡＰデータベース４０と同期する。
【００２３】
アプリケーション・サーバ６０はＯＬＴＰクライアント５０ａをサポートする。アプリケーション・サーバ６０はデータベース・アダプタ・アブストラクタ（ｄａｔａｂａｓｅ  ａｄａｐｔｅｒ  ａｂｓｔｒａｃｔｏｒ）１３、ＯＬＴＰアダプタ１５、およびＯＬＡＰアダプタ１７から成る。当分野で一般的な技法を用いて、データベース・アダプタ１３はＯＬＴＰデータベース３０の動作の情報を抽象化し、ＯＬＴＰクライアント５０ａをその実装の詳細から分離する役割を果たす。ＯＬＴＰアダプタ１５は、当分野で公知な技法を用いてＯＬＴＰデータベース・インタフェースを実装する。すなわち、クエリの要求と結果をＯＬＴＰクライアント５０ａとＯＬＴＰデータベース・サーバ３０の間で変換する。
【００２４】
ＯＬＡＰアダプタ１７はＯＬＡＰデータベース４０のインタフェースを実装する。ＯＬＡＰアダプタ１７は、ＯＬＡＰのデータをＯＬＴＰデータベース３０のセマンティクスにマッピングするマッパ１９を使用する。マッパ１９はまた、ＯＬＴＰのデータをＯＬＡＰデータベース４０のセマンティクスにマッピングする。
【００２５】
ＯＬＴＰクライアント５０ａのクエリと動作に応答して、デフォルトで、アプリケーション・サーバ６０は、ＯＬＡＰアダプタ１７を介してＯＬＴＰクライアント・アプリケーション５０ａをＯＬＡＰデータベース・システム４０に誘導する。しかし、クライアント５０ａが更新動作を行うと、アプリケーショシ・サーバ６０はクライアント５０ａをＯＬＴＰデータベース・システム３０へ（ＯＬＴＰアダプタ１５を介して）リダイレクトし、クライアント５０ａは、（１）クライアント５０ａの更新動作が完了し、（２）変更がＯＬＴＰデータベース３０に書き込まれ、（３）ＯＬＴＰデータベース・システム３０がＯＬＴＰデータベース４０と同期されるまで、ＯＬＴＰデータベース・システム３０に留まる。実際には、この時間間隔は数秒から数分の間であってもよい。最終的には、システム１００の全ての「散発的な」使用（閲覧、参照、等）がＯＬＡＰデータベース・システム４０によってサポートされる。ＯＬＴＰデータベース・システム３０は、オーサリング（または非読取専用の）セッションが開始し、その後可能な限り長く必要とされるだけである。
【００２６】
データベースのセマンティクスが異なることの問題には２つの要因がある。第１の要因は、ＯＬＡＰデータベース・サーバ４０に格納される、取り出しデータが、ＯＬＴＰデータベース・システム３０内で作成された元のデータと１対１にマッピング可能でなければならないということである。すなわち、ＯＬＴＰデータベース４０に格納した情報を取得して、当該情報を元のＯＬＴＰデータベース３０の表現に変換し戻すことができなければならない。次いで、アプリケーション・サーバ６０は対応する、または、協調するコネクタを有する。このコネクタは、ＯＬＴＰデータベース３０のデータ定義をベースラインとして用いて、ＯＬＡＰデータベース４０の双方向マッピングを理解しサポートすることができる。このコネクタは、マッパ１９であり、アプリケーション・サーバ６０を起点とするクエリをＯＬＴＰデータベース・システム３０からＯＬＡＰデータベース・システム４０へリダイレクトするために用いられる。マッパ１９は、クエリの記述をＯＬＡＰデータベース・システム４０にマッピングし、クエリの結果をＯＬＴＰデータベース３０の定義にマッピングする。これにより、アプリケーション・サーバ６０は、ＯＬＡＰデータベース・システム４０が使用されているかＯＬＴＰデータベース・システム３０が使用されているかに関わらず、同一の結果をＯＬＴＰクライアント・アプリケーション５０ａに提示することができる。
【００２７】
第２の要因、すなわち、ＯＬＡＰデータベース・システム４０とＯＬＴＰデータベース・システム３０の何れにいつアクセスするかを知ることにおいては、アプリケーション・サーバ６０が、１）実行されている動作モード（例えば、読取または更新）を理解し、２）クライアント５０ａの最新の更新がいつＯＬＴＰデータベース３０の環境に提供され、以降のクエリに利用可能となるかを知る必要がある。これらの要件のうち第１のものは一見、幾分つまらないもののようにも見える。なぜならば、アプリケーション・サーバ６０は動作モードをその公開ＡＰＩの一部として知っているからである。第２の要件については、ＯＬＴＰデータベース３０とＯＬＡＰデータベース４０の間で最後に完了した同期を表現するためのバージョン・スタンプ２１をＯＬＴＰデータ・ストア３０上で提供することにより、サポートすることができる。諸実施形態では、バージョン・スタンプ２１を幾つかの方法、例えば、整数、タイムスタンプ、または他の指標で実装してもよい。トランザクションがＯＬＴＰデータベース３０に対して終了すると、アプリケーション・サーバ６０はバージョン・スタンプ２１をＯＬＴＰデータベース３０から、トランザクションを実行したクライアント５０ａのセッション状態にコピーする。以降のクライアント５０ａの各操作の開始時に、このバージョン・スタンプのクライアント・コピー２１’を、ＯＬＴＰデータ・ストア３０に格納した現在のバージョン・スタンプ２１に対してチェックする。ＯＬＴＰデータ・ストア３０のバージョン・スタンプ２１が変更されると、同期が完了し、クライアント５０ａをＯＬＡＰデータベース・サーバ４０にリダイレクトできることとなる。
【００２８】
１実施形態では、同期は実際にはバックグラウンド・プロセスによって実現される。このバックグラウンド・プロセスは、数秒ごとにポーリングしてＯＬＡＰデータベース４０の環境に提供すべき変更を探す。変更が必要であることをバックグランド・プロセスが検出すると、バックグラウンド・プロセスは、完了時にＯＬＴＰボールト（ｖａｕｌｔ）３０上でバージョン・スタンプ２１を増加させる。
【００２９】
さらに詳述すると、アプリケーション・サーバ６０がデータを複数の記憶域または「ボールト」に分割するように選択してもよい。この場合、同期およびクライアント５０ａのリダイレクションを「ボールト」レベルで実行してもよい。例えば、或るボールトが作業中（ＷＩＰ（Ｗｏｒｋ  Ｉｎ  Ｐｒｏｃｅｓｓ））のデータに使用され別のボールトが供給側のデータに使用されている場合、ＷＩＰのボールトを更新しても、供給側のボールトへのアクセスがＯＬＴＰデータベース・サーバ３０へリダイレクトされることはない。
【００３０】
対話的アプリケーションの負荷をＯＬＡＰデータベース４０のサーバに移すと、様々な効率化を生み出す。第１に、ＯＬＴＰデータベース３０の環境の負荷を軽減しつつ、より多くの作業をＯＬＡＰデータベース４０の環境に移すと、典型的なＩＴ環境で作業負荷が平準化される。第２に、データベース・アプリケーションに対して効率的で安価な代替手段が提供され、データベース層の水平展開が可能となる。最後に、ＯＬＡＰデータベース・システム４０が現代の非関係記憶技術を使用する場合に、これらのシステムがしばしば読取専用動作向けの関係エンジンよりもかなり高いレベルで動作するので、アプリケーションのスケーラビリティを急激に増大させることができる。
【００３１】
図２および図３は、本発明のシステム１００およびアプリケーション・サーバ６０の付随的な動作をさらに説明するものである。データベースの対話（ｄａｔａｂａｓｅ  ｉｎｔｅｒａｃｔｉｏｎ）を開始するためのクライアント・アプリケーション５０ａの要求またはコマンドに応答して、アプリケーション・サーバ６０は２５でトランザクションを開始する。次にステップ２７で、アプリケーション・サーバ６０は、クライアント・アプリケーション５０ａの動作モードが読取専用動作以外（例えば、更新モード）か否かを判定する。ステップ２７で動作モードが「更新」かまたは非読取専用である場合は、ステップ３１で、ＯＬＴＰデータベース３０の使用を指示し、動作処理が通常通り（すなわち、ＯＬＴＰアダプタ１５を介したＯＬＴＰデータベースのインタフェース処理によって）継続する。
【００３２】
ステップ２７で動作モードが「更新」または非読取専用でない場合は、ステップ２８で、ＯＬＡＰデータベース・サーバ４０の同期状態を決定する。ステップ２８で同期を待つ必要がない場合、すなわち、状態が「同期済み」である場合は、ステップ３４でＯＬＡＰデータベース４０の使用を指示する。そして、ＯＬＡＰアダプタ１７がＯＬＡＰデータベース４０とのインタフェースを処理しマッパ１９がＯＬＡＰデータベース４０とＯＬＴＰデータベース３０のセマンティクスの間でマッピングすることによって、動作処理が継続する。
【００３３】
ステップ２８の同期状態が「未同期」（すなわち、同期を待機している）場合は、ステップ２９でバージョンインジケータ２１をチェックする。ＯＬＴＰデータベース・ストア３０側に格納したバージョン・スタンプ２１が対象のクライアント・アプリケーション５０ａのバージョン・スタンプ２１’のコピーと異なる場合は、同期が完了しており、ステップ３４でクライアント・アプリケーション５０ａをＯＬＡＰデータベース・サーバ４０にリダイレクトする。その後、ＯＬＡＰアダプタ１７がＯＬＡＰデータベース４０とのインタフェースを提供しマッパ１９がＯＬＴＰデータベース３０とＯＬＡＰデータベース４０のセマンティクスの間でマッピングすることにより動作が継続する。
【００３４】
ステップ２９でＯＬＴＰデータベース３０のサーバに格納したバージョン・スタンプ２１がクライアント・アプリケーション５０ａのバージョン・スタンプ２１’のコピーと同一であると判定された場合は、ステップ３１でクライアント・アプリケーション５０ａをＯＬＴＰデータベース３０のサーバに誘導する。その後、上述のように動作が行われる。
【００３５】
図３を参照すると、クライアント・アプリケーション５０ａが所与のトランザクション３５をコミットした後、システム１００またはアプリケーション・サーバ６０は以下のようにデータベースの対話を終了する。ステップ３６で、アプリケーション・サーバ６０が動作モード（例えば、読取または更新）をチェックする。ステップ３６で動作モードが読取専用であると判定された場合は、ステップ３８でデータベースの対話が終了する。
【００３６】
そうでない場合は、ステップ３７で対象のデータをＯＬＴＰデータベース３０にコミットする。次に、上述のバックグラウンド・プロセスが変更をＯＬＡＰデータベース４０に提供（同期）し、同期が完了したときにＯＬＴＰデータベース・サーバ３０のバージョン・スタンプ２１を増加（更新）させる。
【００３７】
次に、ステップ３９で現在のＯＬＴＰデータベースのバージョン・スタンプ２１をＯＬＴＰクライアント５０ａのセッション状態にキャッシュし、データベースの対話または処理が終了する。
【００３８】
図４は、本発明を実装できるコンピュータ・ネットワークまたはそれと同様なデジタル処理環境を示す。
【００３９】
クライアント・コンピュータ（複数可）または装置５０（クライアント５０ａ、ｂを含む）およびサーバ・コンピュータ（複数可）６０は、アプリケーション・プログラム等を実行する処理装置、記憶装置、および入出力装置を提供する。クライアント・コンピュータ（複数可）または装置５０を、通信ネットワーク７０を介して他のコンピューティング装置に接続することもできる。当該他のコンピューティング装置には、他のクライアント装置またはプロセス５０およびサーバ・コンピュータ（複数可）６０が含まれる。通信ネットワーク７０は、リモート・アクセス・ネットワーク、グローバル・ネットワーク（例えば、インターネット）、世界規模のコンピュータ集合、ローカル・エリア・ネットワークまたは広域ネットワーク、互いに通信するための各プロトコル（ＴＣＰ／ＩＰ、Ｂｌｕｅｔｏｏｔｈ、等）を今日では使用するゲートウェイの一部であることができる。他の電子装置またはコンピュータ・ネットワーク・アーキテクチャも適している。
【００４０】
図５は、図４のコンピュータ・システム内のコンピュータ（例えば、クライアント・プロセッサもしくはクライアント装置５０またはサーバ・コンピュータ６０）の内部構造の図である。各コンピュータ５０、６０はシステム・バス７９を含む。ここで、バスとは、コンピュータまたは処理システムのコンポーネント間でのデータ転送に使用される１組のハードウェア線である。バス７９は本質的には、要素間での情報の転送を可能とするコンピュータ・システムの様々な要素（例えば、プロセッサ、ディスク記憶、メモリ、入出力ポート、ネットワーク・ポート、等）を接続する共有の管路である。システム・バス７９には、コンピュータ５０、６０に対する様々な入出力装置（例えば、キーボード、マウス、ディスプレイ、プリンタ、スピーカ、等）を接続するための入出力装置インタフェース８２が取り付けられている。ネットワーク・インタフェース８６により、コンピュータを、ネットワーク（例えば、図４のネットワーク７０）に取り付けられた他の様々な装置に接続することができる。メモリ９０は、本発明の実施形態を実装するために用いるコンピュータ・ソフトウェア命令９２およびデータ９４（例えば、上で詳述した、アプリケーション・サーバ６０、ＯＬＡＰアダプタ１７、マッパ１９、バージョンインジケータ２１、および支援コード）に対する揮発性記憶を提供する。ディスク記憶９５は、本発明の実施形態を実装するために用いるコンピュータ・ソフトウェア命令９２およびデータ９４に対する不揮発性記憶を提供する。中央演算装置８４もシステム・バス７９に取り付けられ、コンピュータ命令を実行する。
【００４１】
１実施形態では、プロセッサ・ルーチン９２およびデータ９４はコンピュータ・プログラム製品（９２は一般的に参照される）である。この・コンピュータ・プログラム製品には、本発明のシステムに対するソフトウェア命令の少なくとも一部を提供するコンピュータ読取可能媒体（例えば、１つまたは複数のＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、ディスケット、テープ、等のような取外し可能記憶媒体）が含まれる。コンピュータ・プログラム製品９２を当分野で良く知られているように任意の適切なソフトウェア・インストール手順でインストールすることができる。別の実施形態では、ソフトウェア命令の少なくとも一部を、ケーブル、通信接続および／または無線接続を介してダウンロードしてもよい。他の実施形態では、本発明のプログラムは、伝播媒体（例えば、電波、赤外線波、レーザー波、音波、またはインターネット、もしくは他のネットワーク（複数可）のようなグローバル・ネットワークを介して伝播される電波）上の伝播信号で具体化されたコンピュータ・プログラム伝播信号製品１０７である。かかる搬送媒体または信号は、本発明のルーチンまたはプログラム９２に対するソフトウェア命令の少なくとも一部を提供する。
【００４２】
代替実施形態では、伝播信号はアナログ搬送波または伝播媒体上で搬送されるデジタル信号である。例えば、伝播信号は、グローバル・ネットワーク（例えば、インターネット）、電気通信ネットワーク、または他のネットワーク上で伝播されるデジタル信号であってもよい。１実施形態では、伝播信号は、ある期間に伝播媒体上で送信される信号、例えば、ミリ秒、秒、分、またはそれより長い期間にネットワークを介してパケットで送信された、ソフトウェア・アプリケーション向けの命令である。別の実施形態では、コンピュータ・プログラム製品９２のコンピュータ読取可能媒体は伝播媒体であり、コンピュータ・システム５０は、例えば、コンピュータ・プログラム伝播信号製品に関して上述したように、当該伝播媒体を受信して当該伝播媒体で具体化された伝播信号を識別することによって、当該伝播媒体を受信し読み取ることができる。
【００４３】
一般的に言うと、「搬送媒体」または過渡キャリアは上述の過渡信号、伝播信号、伝播媒体、記憶媒体、等を包含するものである。
【００４４】
本発明を、本発明の実施例を参照して具体的に図示および説明したが、添付の特許請求の範囲によって網羅される本発明の範囲から逸脱しない、形態および細部における様々な変更を当該実施例に加え得ることは当業者には理解されよう。
【図１】
0005873700.tif 000002
【図２】
0005873700.tif 000003
【図３】
0005873700.tif 000004
【図４】
0005873700.tif 000005
【図５】
0005873700.tif 000006