(57)【特許請求の範囲】
【請求項１】
第１のデータベースにコミットされた各トランザクションに関連付けられたログエントリを含むログを用いて、第２のデータベースを更新する方法であって、
前記ログに含まれるログエントリを１つ以上の選択基準に対して評価する、コンピュータにより実施されるステップを含み、前記第１のデータベースは生産データベースであり、前記ログエントリは前記第１のデータベースに記憶される第１のレコードに対する変更に関連付けられるとともに、アンドゥ情報を含み、前記アンドゥ情報は、対応するトランザクションにより与えられる当該第１のレコードに対する変更内容を記述し、前記第１のレコードは生産データを含み、前記１つ以上の選択基準は前記第１のデータベースに含まれるデータに影響を与え得るトランザクションを選択するためのものであり、さらに
前記ログエントリに含まれる前記アンドゥ情報に基づき、前記１つ以上の選択基準が満たされているか否かを判断する、コンピュータにより実施されるステップと、
前記１つ以上の選択基準が満たされている場合に、前記ログエントリに対応付けられたトランザクションを前記第１のレコードに対して反映することで、第２のレコードを発生させる、コンピュータにより実施されるステップと、
前記第２のデータベースに記憶されるように前記第２のレコードを送る、コンピュータにより実施されるステップとを含み、前記第２のデータベースは情報提供データベースであり、前記第２のレコードは、前記生産データの一部および前記生産データに基づく情報提供データのうちの少なくとも１つを含む、方法。
【請求項２】
前記ログを監視する、コンピュータにより実施されるステップと、
前記ログに対する変更を識別する、コンピュータにより実施されるステップと、
前記ログへの前記変更を識別するステップに応答して、前記ログエントリを識別する、コンピュータにより実施されるステップとをさらに含む、請求項１に記載の方法。
【請求項３】
前記１つ以上の選択基準は、（ａ）規則の組、および、（ｂ）メタデータのうち少なくとも１つに基づいて定められ、
（ａ）規則の組、および、（ｂ）メタデータのうち少なくとも１つを変更することで前記１つ以上の選択基準を修正する、コンピュータにより実施されるステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記変更は、データベースビルダにより、ユーザからの入力に応答して実行される、請求項３に記載の方法。
【請求項５】
前記１つ以上の選択基準は、前記ログエントリを前記ログに基づき識別するための基準を含む、請求項１に記載の方法。
【請求項６】
前記１つ以上の選択基準は、第１のデータベースアーキテクチャデータ、第２のデータベースアーキテクチャデータ、ネットワーク情報、ジョブ制御データ、スケジュール化データ、およびソースコードデータからなる群から選択される少なくとも１つの特定のタイプのデータを含む、請求項１に記載の方法。
【請求項７】
前記第２のデータベースはデータ貯蔵部およびデータマートからなる群から選択されるある特定のデータベースであり、
前記第１のデータベースは生産データを含み、
前記第２のデータベースは前記生産データに基づき導き出される情報提供データを含む、請求項１に記載の方法。
【請求項８】
前記第２のレコードを発生させるステップの後、前記第２のレコードをキャッシュに記憶する、コンピュータにより実施されるステップをさらに含む、請求項１に記載の方法。
【請求項９】
前記１つ以上の選択基準は、動的に再定義可能なビジネス論理を含む規則の組に基づく、請求項１に記載の方法。
【請求項１０】
前記ビジネス論理は、前記第１および前記第２のデータベースとは独立して設けられる、請求項９に記載の方法。
【請求項１１】
前記ログエントリを１つ以上の選択基準に対して評価するステップは、さらに、
前記ログを開く、コンピュータにより実施されるステップと、
前記１つ以上のデータ選択基準に基づき、前記ログにおける１つ以上のログエントリの内容を動的に分析して前記ログエントリを評価する、コンピュータにより実施されるステップとを含み、
ログモニタは、前記動的に分析するステップ、前記発生させるステップ、および前記送るステップを、実質的に継続的に行ない、それによって、間接的に情報を前記第１のデータベースから検索して前記第２のデータベースを更新する際に用いることにより大粒度並行性を前記第１のデータベースと前記第２のデータベースとの間において維持する、請求項１に記載の方法。
【請求項１２】
第１のデータベースにコミットされた各トランザクションに関連付けられたログエントリを含むログを用いて、第２のデータベースを更新するログを用いるために１つ以上の命令のシーケンスを有するコンピュータ読取可能媒体であって、１つ以上のプロセッサによる１つ以上の命令のシーケンスの実行により、１つ以上のプロセッサは、
前記ログに含まれるログエントリを１つ以上の選択基準に対して評価するステップを実行し、前記第１のデータベースは生産データベースであり、前記ログエントリは前記第１のデータベースに記憶される第１のレコードに対する変更に関連付けられるとともに、アンドゥ情報を含み、前記アンドゥ情報は、対応するトランザクションにより与えられる当該第１のレコードに対する変更内容を記述し、前記第１のレコードは生産データを含み、前記１つ以上の選択基準は前記第１のデータベースに含まれるデータに影響を与え得るトランザクションを選択するためのものであり、さらに
前記ログエントリに含まれる前記アンドゥ情報に基づき、前記１つ以上の選択基準が満たされているか否かを判断するステップと、
前記１つ以上の選択基準が満たされている場合に、前記ログエントリに対応付けられたトランザクションを前記第１のレコードに対して反映することで、第２のレコードを発生させるステップと、
前記第２のデータベースに記憶されるように前記第２のレコードを送るステップとを実行し、前記第２のデータベースは情報提供データベースであり、前記第２のレコードは、前記生産データの一部および前記生産データに基づく情報提供データのうちの少なくとも１つを含む、コンピュータ読取可能媒体。
【請求項１３】
１つ以上のプロセッサにより実行されると、１つ以上のプロセッサに、
前記ログを監視するステップと、
前記ログに対する変更を識別するステップと、
前記ログに対する前記変更を識別するステップに応答して、前記ログエントリを識別するステップとを実行させる命令をさらに含む、請求項１２に記載のコンピュータ読取可能媒体。
【請求項１４】
前記１つ以上の選択基準は、（ａ）規則の組、および、（ｂ）メタデータのうち少なくとも１つに基づいて定められ、
１つ以上のプロセッサにより実行されると、１つ以上のプロセッサに、前記１つ以上の選択基準を、（ａ）規則の組および（ｂ）メタデータのうち少なくとも１つを変更することで前記１つ以上の選択基準を修正するステップを実行させる命令をさらに含む、請求項１２に記載のコンピュータ読取可能媒体。
【請求項１５】
前記変更は、データベースビルダにより、ユーザからの入力に応答して実行される、請求項１４に記載のコンピュータ読取可能媒体。
【請求項１６】
前記１つ以上の選択基準は、前記ログエントリを前記ログに基づき識別するための基準を含む、請求項１２に記載のコンピュータ読取可能媒体。
【請求項１７】
前記１つ以上の選択基準は、第１のデータベースアーキテクチャデータ、第２のデータベースアーキテクチャデータ、ネットワーク情報、ジョブ制御データ、スケジュール化データ、およびソースコードデータからなる群から選択される少なくとも１つの特定のタイプのデータを含む、請求項１２に記載のコンピュータ読取可能媒体。
【請求項１８】
前記第２のデータベースはデータ貯蔵部およびデータマートからなる群から選択されるある特定のデータベースであり、
前記第１のデータベースは生産データを含み、
前記第２のデータベースは前記生産データに基づき導き出される情報提供データを含む、請求項１２に記載のコンピュータ読取可能媒体。
【請求項１９】
１つ以上のプロセッサにより実行されると、１つ以上のプロセッサに、
前記第２のレコードを発生させるステップの後、前記第２のレコードをキャッシュに記憶するステップをさらに含む、請求項１２に記載のコンピュータ読取可能媒体。
【請求項２０】
前記１つ以上の選択基準は、動的に再定義可能なビジネス論理を含む規則の組に基づく、請求項１２に記載のコンピュータ読取可能媒体。
【請求項２１】
前記ビジネス論理は、前記第１および前記第２のデータベースとは独立して設けられる、請求項２０に記載のコンピュータ読取可能媒体。
【請求項２２】
前記ログエントリを１つ以上の選択基準に対して評価するための命令は、さらに、１つ以上のプロセッサにより実行されると、１つ以上のプロセッサに、
前記ログを開くステップと、
前記１つ以上のデータ選択基準に基づき、前記ログにおける１つ以上のログエントリの内容を動的に分析して前記ログエントリを評価するするステップとを実行させる命令をさらに含み、
ログモニタは、１つ以上のプロセッサに命じて、前記動的に分析し発生させ送るための命令を実質的に継続的に実行し、それによって、間接的に情報を前記第１のデータベースから検索して前記第２のデータベースを更新する際に用いることにより大粒度並行性を前記第１のデータベースと前記第２のデータベースとの間において維持する、請求項１２に記載のコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への相互参照
この特許出願は、米国特許法第１１９条（ｅ）に基づき、２００１年３月９日に提出された現在係属中の米国特許出願連続番号第０９／８０４，６７２号に対し優先権を主張し、その米国特許出願の開示をここに引用により援用する。
【０００２】
この発明は一般にデータベースオブジェクト抽出に関するものであり、特に、動的に再定義可能なビジネス論理を組込むログモニタで大粒度（large-grained）データベース並
行性を維持するためのシステムおよび方法に関する
【背景技術】
【０００３】
現在、組織のデータベース管理システムは生産および情報提供の２つのカテゴリに入る。生産データベースは、オペレーショナルデータストアを含み、製造、生産、およびトランザクションのシステムの動作によって発生されるかまたはそれらのシステムにおいて用いられる実時間または実時間に近いデータに対するリポジトリとして機能する。対照的に、情報提供データベースは、周期的に生産データベースから得られるデータを、判断サポートおよびオンラインの分析的処理システムにおいて用いるために、保存する。情報提供データベースはデータ貯蔵部を含むが、これは事業データベースおよびデータマートとして構造化される場合が多い。
【０００４】
典型的には、データ貯蔵部は情報提供データおよびデータベース構造を記述するメタデータの両方を記憶する。最低でも、情報提供データベースは、傾向分析およびデータ導出のために、生産データベースに記憶されるデータとの、或る割合の大粒度データ並行性を維持しなければならない。
【０００５】
オンライントランザクション処理システムは生産データの主な生産者である。オンライントランザクション処理システムは、最低限の保証された応答時間を、割込みされない利用可能性を伴って、特に電子商取引（ｅコマース）システムにおいて必要とする。大きなデータ量および高い利用可能性に対する要求は、低速のデータベースサーバよりもむしろトランザクションサーバの使用を必要とする。
【０００６】
生産データは未加工のグリストを判断サポートおよびオンラインの分析的な処理システムのために与える。これらのシステムはデータを分析し、報告を、組織の計画および戦略活動において用いるために、発生させる。未加工の生産データは、情報提供データに、データマイニング、複製、および浄化ツールによって変換される。判断サポートおよびオンラインの分析的処理システムはより低速の応答時間を許容し得る。しかしながら、これらのシステムのデータニーズは生産システムによって必要とされる自律性と釣り合わなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
頻繁に情報提供データベースを更新することは生産システムの動作に悪影響を与え得る。オンライントランザクション処理システムは全ハードウェア能力またはそれに近い能力で動作する。たとえば、典型的なｅコマースサイトは５００を越えるトランザクションまたは「ヒット」を秒単位で受取り得る。生産システム動作に割込んで情報提供データベースを更新することは、必要な利用可能性および応答性のレベルを維持するという問題を悪
化させ得る。
【０００８】
定期的には、生産データは、情報提供データに、ビジネス論理の適用を介して、データ検索プロセス中に変換されなければならない。しばしば、生産データを検索および変換することを要求されるビジネス論理は複雑であり電算処理が集中する。その上に、ビジネス論理は相対的に柔軟性を欠き静的である。これらの要因によりさらにシステム応答性が影響を受ける。
【０００９】
先行技術においては、２つの解決策が情報提供データベースを更新することに対し提案されている。１つの解決策は、定期的に生産データをコピーしその一方でそのデータを変換するデータ複製マネージャを提示する。残念ながら、この解決策は大量のデータ重複を引起し時間がかかり得る。
【００１０】
もう１つの先行技術解決策は、多層構造データベースアーキテクチャを、定期的更新を伴って導入する。ビジネス論理は、生産データベースに対して実行されるクエリにおいて実現される。第２の層構造ビジネス論理は検索された情報を利用してデータマートの配置および更新を部門特化クエリを用いて行ない得る。急速に変化する環境においては、過剰な更新は劇的に生産システム動作を混乱させ得る。
【００１１】
したがって、情報提供データベースの更新を高い頻度および低いオーバヘッドで行なうことができるデータマネージャが求められている。この方策により、リソース経費を最小限に抑えることが、実質的にデータ重複および非効率的なデータ検索を回避することにより達成されるであろう。
【００１２】
さらに、情報提供データの検索を動的に再定義可能なパラメータを伴って行なう方策も求められている。この方策により、柔軟性のあるビジネス論理の再定義が、データをアドホック態様で選択することに対し可能となるであろう。
【００１３】
さらに、非侵入的に情報提供データベースを更新するための方策も求められている。この方策は生産システム動作に僅かな影響しか与えず、自律的動作を尊重するであろう。
【課題を解決するための手段】
【００１４】
この発明は、宛先データベースの更新を、間接的にソースデータベースからログに基づく監視を介して検索されるデータで行なう、システムおよび方法を提供する。トランザクションログファイルがソースデータベースにコミットされるトランザクションの副産物としてトランザクションサーバにより発生される。このログファイルは監視され、ビジネス論理を実現する選択基準を特定する動的な規則の組に対して評価される。選択基準を満足するログエントリは、更新されたレコードに、宛先データベースのスキーマを記述するメタデータを用いて変換される。この規則の組およびメタデータは、動的な再定義が、データベースビルダツールを用いて行なわれ得る。ログモニタは自動的に選択基準およびレコード発生動作を修正する。データ検索中、ログモニタは各ログエントリに記憶される情報を利用して間接的な情報提供データの導出を僅かな影響しかトランザクションサーバ動作に及ぼさない状態で行なう。
【００１５】
この発明のある実施例は情報提供データベースのリフレッシュをログに基づくトランザクション監視を介して行なうためのシステムおよび方法である。生産データベースが維持され、そこには１つまたはそれより多いテーブルが含まれる。各テーブルはトランザクション処理システムによって発生される生産データのレコードを記憶する。ログエントリが定期的にログファイルに記憶される。少なくとも１つのログエントリが生産データベースにコミットされる各トランザクションに対し発生される。１つまたはそれより多いテーブ
ルを含む情報提供データベースが維持される。各テーブルは、情報提供データのレコードを、判断サポートシステムによる使用のために、記憶する。ログファイルに記憶されるログエントリの動的な分析が、データ選択基準を特定する規則の組を用いて行なわれる。データ選択基準を満足させる生産データから発生された更新されたレコードは、情報提供データベースに記憶される。
【００１６】
さらなる実施例は、動的に再定義可能なビジネス論理を組込むログモニタで大粒度データベース並行性を維持するためのシステムおよび方法である。データ操作言語で表現されるオペレーションがソースデータベースに対して実行される。少なくとも１つのオペレーションによって、各データベーストランザクションを完了させるコミットオペレーションが構成される。現在の規則の組が定義される。各規則はあるデータ選択基準をソースデータベースに記憶されるレコードに対して特定するビジネス論理を含む。ログエントリが、定期的に、あるログにおいて、ソースデータベースにコミットされる各トランザクションに対し発生される。各ログエントリは影響を受けたレコードを識別しトランザクションのデータを含む。各ログエントリにおいて識別されるトランザクションは現在の規則の組において特定されるデータ選択基準に対して評価される。新たなレコードの構築が宛先データベースを記述するメタデータに従って行なわれる。この新たなレコードは選択基準に合致する各トランザクションのログエントリから選択のトランザクションのデータを含む。新たなレコードは宛先データベースに記憶される。宛先データベースに記憶されたデータは、ソースデータベースの、少なくとも部分的な部分集合を含む。
【００１７】
この発明の１つの恩恵は、トランザクションログモニタによって解釈される規則として実現されるビジネス論理を動的に再定義する能力である。さらなる恩恵は、データ貯蔵部に本質的なメタデータを利用することにより知的にデータベースを配しデータベースの構造における変化に対するさらなる応答性のレベルを可能にすることである。
【００１８】
この発明のさらに別の実施例は当業者には以下の詳細な記載から容易に明らかとなる。記載されるのは、この発明の実施例であり、例示的に、この発明を実行するために企図されるベストモードを示す。認識されるように、この発明は他の異なる実施例が可能であり、そのいくつかの詳細は修正がさまざまな明らかな面において可能であるが、それらはすべてこの発明の精神および範囲から逸脱することなく行なわれる。したがって、図面および詳細な説明は本質的に例示的であるとみなされるものであり、制限的にみなされるものではない。
【発明を実施するための最良の形態】
【００１９】
図１は分散型コンピュータ処理環境１０を示すブロック図であり、大粒度データベース並行性の維持を、動的に再定義可能なビジネス論理を組込むログモニタで、この発明に従って行なうためのシステムを含む。オペレーショナルデータストア（ＯＤＳ）１１は生産システム１２によって発生される生産データを記憶する。生産システム１２は、オンライントランザクション処理システムを、電子商取引（ｅコマース）、予約、販売トランザクションのポイント、在庫管理、工場および製造オペレーション、ならびに同様のタイプの活動を処理するために、構成し得る。効率性を求めるため、生産システム１２は、中に生産データが維持されるローカル生産データベース１３を維持する。
【００２０】
高いレベルの応答性および利用可能性を維持するため、オペレーショナルデータストア１１は、高いスループットインターフェイスをオペレーショナルデータストア１１に対し与える専用のトランザクションサーバ１４に結合される。生産システム１２およびトランザクションサーバ１４はネットワーク１５たとえばインターネットワークまたはイントラネットワークなどを介して当業界において公知のように相互接続される。
【００２１】
オペレーショナルデータストア１１に記憶される生産データは定期的に事業データ貯蔵部１６に複製される。生産データを含むに過ぎないオペレーショナルデータストア１１とは異なり、事業データ貯蔵部１６は、情報提供データとして公知の直接および派生的データ値の両方を、判断サポートおよびオンラインの分析的処理システムによる使用のために含む。データベースサーバ１７は、事業データ貯蔵部１６に、データ操作言語（ＤＭＬ）クエリを事業データ貯蔵部１６に対して実行するために、結合される。データベースサーバ１７も他のシステムにネットワーク１５を介して相互接続される。
【００２２】
事業データ貯蔵部１６は階層的な構造化が二次的なデータベースたとえばワークグループデータマート１８で行なわれ得る。事業データ貯蔵部１６は組織活動のすべての局面に関連する情報提供データを含む一方、各ワークグループデータマート１８は専門化された情報提供データのビューを、特定のサブジェクトエリア、たとえば従業員記録、売上歳入の数字などに対して提示する部分集合である。ワークグループデータマート１８の構造化はローカルネットワーク環境においては専用のローカルデータサーバ１９が複数のクライアント２０とローカルネットワーク２１を介して相互接続される状態で行なわれ得ることが考えられる。次いで、ローカルネットワーク２１は組織ネットワーク１５と一連のハブ２２を介して相互接続され得る。
【００２３】
最後に、事業データ貯蔵部１６およびワークグループデータマート１８は共に遠隔的なアクセスが遠隔のクライアント２３によりたとえばインターネットなど組織ネットワーク１５にゲートウェイ２５を介して接続されるインターネットワーク２４を介して行なわれ得る。
【００２４】
オペレーショナルデータストア１１は高い割合の揮発性および変更により１００％の利用可能性および保証された応答時間を伴って特徴付けられる。逆に、事業データ貯蔵部１６は、柔軟性のある動作を、さまざまなクライアント２０および遠隔のクライアント２３によって提示されたアドホックなクエリに応答して実行する。
【００２５】
事業データ貯蔵部１６に記憶される情報提供データは、定期的なリフレッシュが、オペレーショナルデータストア１１から検索される生産データで行なわれなければならない。オペレーショナルデータストア１１に対するシステム負荷によっては、生産データの検索はピークのオペレーショナル時間中は実際的ではなく、精々オフピーク期間中において許容されるかも知れない。この結果、ログモニタ２６は大粒度データベース並行性をオペレーショナルデータストア１１と事業データ貯蔵部１６との間において間接的な情報提供データの更新により与え得る。
【００２６】
ログモニタ２６はトランザクションサーバ１４によりトランザクション処理の副産物として発生されるログエントリを読む。個々のログエントリの検索および分析が、さらに以下に図３を参照して記載されるように、ビジネス論理を実現する選択基準を動的に再定義可能な規則の組に適用することにより行なわれる。更新されたレコードが、選択基準を満足させるログエントリから、事業データ貯蔵部１６における情報提供データを更新するために、発生される。
【００２７】
オペレーショナルデータストア１１、事業データ貯蔵部１６およびワークグループデータマート１８を含む特定の形式のデータベースが記載される実施例との関係で参照されるが、当業者ならば他の形式の構造化されたデータベースもここに概要を示される一般的なパラメータおよび特性内において用いられ得ることもある旨を認識するであろう。さらに、他のネットワーク化されたトポロジおよびシステム構成も用いられ得る。
【００２８】
生産システム１２、トランザクションサーバ１４、データベースサーバ１７、ローカル
データベースサーバ１９、クライアント２０および遠隔のクライアント２３を含む個々のコンピュータシステムは、中央処理ユニット（ＣＰＵ）、ランダムアクセスメモリ（ＲＡＭ）、不揮発性二次記憶部、たとえばハードドライブまたはＣＤ−ＲＯＭドライブなど、ネットワークインターフェイス、ならびにユーザインターフェイス化手段を含むたとえばキーボードおよびディスプレイなどの周辺装置からなる汎用のプログラミングされたデジタルコンピュータ処理装置である。ソフトウェアプログラムを含むプログラムコードおよびデータがＲＡＭにロードされ、ＣＰＵにより実行され処理され、結果が発生されて、表示、出力、送信または記憶される。
【００２９】
図２は先行技術の多層データベースアーキテクチャ３０を示す機能ブロック図である。生産データベースおよび情報提供データベースをいくつかの層に構造化することによりデータベース更新および検索作業負荷を、たとえば、その開示がここに引用により援用されるR. Orfali, “Client/Server Survival Guide,” Chs. 12-13, John Wiley & Sons, Inc. (3d ed. 1999)に記載されるように分散する。複数の生産データベース１３がトランザクションサーバ１４により供される。生産データの記憶および検索はトランザクションサーバ１４を用いてオペレーショナルデータストア１１との間において大きな容量で最大の利用可能性で行なわれる（ステップ３１）。
【００３０】
定期的には、データサーバ１７は情報提供データをオペレーショナルデータストア１１から「タップする」（ステップ３２）。未加工の生産データはコピーされ、純化され浄化されて情報提供データになり事業データ貯蔵部１６に維持される。生産データの、オペレーショナルデータストア１１からの検索は、スケジュールされた繰返されるプロセス、たとえばcronジョブなど、定期的に呼び覚まされて、製品データをオペレーショナルデータストア１１から事業データ貯蔵部１６にリフレッシュするプロセスによって実行される。
【００３１】
生産データを事業データ貯蔵部１６にダウンロードするプロセスは瑣末なことではなく、コンピュータ処理上、記憶およびネットワークインターフェイスを行なうリソースに負担をかける。情報提供データ検索および変換は、ビジネス論理を、適切なデータ値をオペレーショナルデータストア１１から選択するために、実行する。各更新は、潜在的に、大量の複製された情報を巻き込み得る。
【００３２】
オペレーショナルデータストア１１上の負荷を緩和するために、一連の専門化されたデータマート、たとえば促進的データマート３４、親和性データマート３５、およびマーケットバスケットデータマート３６などが事業データ貯蔵部１６の部分集合として作成される（ステップ３３）。事業データ貯蔵部１６のように、データマート３４〜３６も定期的なリフレッシュが情報提供データでローカルデータサーバ１９により行なわれなければならない。ローカルデータベースサーバ１９の使用はさらに情報提供データを判断サポートおよびオンライントランザクション処理システム（図示せず）によって使用可能なフォーマットに洗練するのに必要な専門化されたビジネス論理の一部の負担を軽減する。
【００３３】
この先行技術による方策は、判断サポートおよびオンラインの分析的処理システムの必要性のバランスを、生産システムの自律的動作に対して、データ複製および処理動作の分散および負荷の軽減によりとることを試みる。しかしながら、多層化されたアーキテクチャ３０は専門化されたデータベースの各々において必要とされる情報を複製する。加えて、ビジネス論理実現例からなる複数の層は情報提供データをリフレッシュし更新することを要求される。これらの層は潜在的に、重複したクエリを含み得る。より重複的でない解決策が必要とされる。
【００３４】
図３は図１の大粒度データベース並行性を維持するためのシステム５０を示すブロック図である。このシステムのコア機能性はログモニタ２６によって実行される。ソースデー
タベース５１、これは典型的にはオペレーショナルデータベース１１（図２に示される）または代替的に事業データ貯蔵部１６もしくはワークグループデータマート１８であるが、生産（または情報提供）データを記憶する。記憶されたデータ値は、トランザクションがソースデータベース５１にコミットされると変化する。コミットメントで、ログライタ５３がログエントリをトランザクションログ５４に発生してトランザクションされたイベントをジャーナル化する。各ログエントリはトランザクションのデータを含み、これは、さらに以下において図４を参照して記載されるように、実行されるテーブル、レコードおよびオペレーションを識別する。ログライタ５３は、連続的に発生される、実行中の一連のトランザクションログ５２（ＴＬ）を「フラッシュ」する。
【００３５】
ログエントリがログライタ５３によってログ５４に書込まれると、ログモニタ２６はビジネス論理を組込む選択基準をジャーナル化されたログエントリに適用する。選択基準を満たす各ログエントリに対し、ログモニタ２６は関連付けられる生産（または情報提供）データをソースデータベース５１から検索して更新されたレコード５７を宛先データベース５８に対し発生させる。ログモニタ２６によって利用される選択基準は規則の組５５として実現される。この規則の組は、ビジネス論理を、判断サポートまたはオンラインの分析的処理システムに対し対象の生産（または情報提供）データに影響するトランザクションを選択するために、組込む。加えて、ログモニタ２６は宛先データベース５８によって用いられるスキーマを記述するメタデータ５６を利用する。
【００３６】
規則の組５５およびメタデータ５６は動的な再定義がデータベースビルダツール５６を介して行なわれ得る。データベースビルダツール５９の、本発明においての使用に対し好適な一例は、オラクル貯蔵部ビルダ（Oracle Warehouse Builder）製品であり、これはCalifornia州 Redwood ShoresのOracle Corporationによってライセンスを与えられるもの
である。ユーザによって、ビジネス論理およびメタデータの再定義が、データベースビルダツール５９を用いて行なわれ得る。
【００３７】
再定義は規則的にログモニタ２６に送られる。規則の組５５における個々の規則によりビジネス論理はデータ操作言語（ＤＭＬ）オペレーションとして実現される。メタデータ５６は、ログモニタ２６によって用いられることにより、更新されたレコード５７を、宛先データベース５８に記憶されるテーブルによって用いられるフォーマットに構造化する。規則の組５５の或る構造をさらに以下に図７を参照して記載する。
【００３８】
好ましくは、メタデータ５６は４つの構成要素を以下のように含む。第１に、メタデータ５６はソースデータベース５１および宛先データベース５８のアーキテクチャを記述する。メタデータ５６は、さらに、他のネットワークへのデータベースリンクおよびエイリアスを記述するネットワーク情報を含む。ログ５４も、論理的に加えられたデータベース上、たとえば分散型データベース環境などにおいて実行されるトランザクションを時系列で記憶し得る。加えて、メタデータ５６は、実現されたビジネス論理のための、ジャーナル化されたトランザクションエントリに対する実行の頻度を特定する、ジョブ制御およびスケジューリング情報を含む。記載される実施例では、ジョブ制御情報はＰＬ／ＳＱＬとして公知のより上位のデータベース操作言語において特定される。最後に、メタデータ５６は、実際のソースコードを、選択基準分析を実行するために含む。他の形式のメタデータも、生産（もしくは情報提供）データ検索またはリカバリの両方に対し用いることも考えられる。
【００３９】
パフォーマンスに対する最適化として、ログモニタ２６は、さらに、キャッシュ６０を、情報を段階化するために有し得るが、これにはログエントリおよび更新されたレコード５７が含まれる。記載される実施例では、ログモニタ２６は、あるプロセスとして、トランザクションサーバ１４およびデータベースサーバ１７、１９（図１に示される）とは別
途実現される。ログモニタ２６はプロセスステップのシーケンスに従い、さらに以下に図８を参照して記載されるように動作する。
【００４０】
図４は図３のシステム５０において用いられるログエントリ７０を示すデータ構造図である。各ログエントリ７０は、たとえば、５つの情報フィールドを含む。タイムスタンプ７１は関連付けられるトランザクションがソースデータベース５１にコミットされた日付および時間を時系列で記録する。テーブル識別子７２およびレコード識別子７３は、トランザクションがそれに対してコミットされたソーステーブルおよびレコードエントリを特定する。オペレーションタイプ７４はコミットされたトランザクションを識別する。最後に、アンドゥ情報７５は、オプションとして、データに与えられる実際の変化を、コミットされたトランザクションが展開されるフォーマットで記述する。記載される実施例では、アンドゥ情報７５は関連付けられるレコードに対するテーブルスペース内容および記憶位置を識別する。アンドゥ情報７５を用いて、コミットされたトランザクションは展開され、元のレコードエントリを回復し得る。アンドゥ情報７５はさらにログモニタ２６（図３に示す）に用いられることにより規則の組５５の選択基準が現在のログエントリ７０に対し満たされたか否かを判断し得る。
【００４１】
図５は情報提供データベースがログに基づくトランザクション監視を介して更新するのを示すプロセスフロー図である。データが更新されたレコード５７としてソースデータベース５１から宛先データベース５８に更新される。コミットされたトランザクション９１がトランザクションサーバ９２によってソースデータベース５１に記憶される。ログエントリ９３が各トランザクション９１のコミットメントで発生され、ログ５４にログライタ５３（図３に示す）によって記憶される。ログモニタ２６はビジネス論理９４を、規則の組５５において実現されるように適用する。選択基準を満足させる各ログエントリ９３を用いて、宛先データベース５３にデータベースサーバ９６によって記憶される更新されたレコード９５を発生させる。
【００４２】
先行技術の多層化データベースアーキテクチャ３０（図２に示す）において用いられる情報提供データ更新方策とは異なり、本方策は、更新されたレコード９５の発生を、情報提供データのログエントリ９３を介する間接的な導出により行なう。ログエントリ９３はトランザクションサーバ９２の副産物として発生される。この結果、更新されたレコード９５はトランザクションサーバ９２に対する最小限の費用で発生され、先行技術の多層化データベース階層において本来的なデータおよびビジネス論理の複製および潜在的重複を回避する。
【００４３】
図６は図３のシステム５０のソフトウェアモジュール１１０を示す機能ブロック図である。ログモニタ２６は２つの主なモジュール：評価モジュール１１１およびレコード−発生モジュール１１２を含む。評価モジュール１１１はログ５３におけるログエントリを入力として受取る。各ログエントリ７０（図４に示される）に含まれるトランザクションデータは規則の組５５によって提示される選択基準に対して評価される。選択基準を満たすログエントリ１１３はレコード発生モジュール１１２に送られる。メタデータ５６に記憶される宛先データベース５８のスキーマ記述を用いて、レコード発生モジュール１１２は、更新されたレコード５７を、宛先データベース５８の更新のために作成する。
【００４４】
記載される実施例では、更新されたレコード５７は、ファイル転送プロセスを介して、たとえばファイル転送プロトコル（ＦＴＰ）または同様のネットワーク移送プロトコルに従って送られる。ログモニタの各モジュールは、コンピュータプログラム、手続またはモジュールであり、ソースコードとして従来のプログラミング言語、たとえばＣ＋＋プログラミング言語などで書かれ、ＣＰＵによりオブジェクトまたはバイトコードとして実行されるために提示されるが、これは当該技術分野においては公知のとおりである。ソースコ
ードおよびオブジェクトおよびバイトコードのさまざまな実現例が、コンピュータ読取可能記憶媒体において保持され得、または伝送媒体上において搬送波において実施され得る。
【００４５】
図７は規則エントリ１３０を示すデータ構造図である。例として、および最低でも、各規則１３０は、選択基準が適用されるソースデータベース５１内におけるテーブル１３１を識別する。データ操作言語（ＤＭＬ）ステートメント１３２の組によって、選択基準が表現されるビジネス論理が実現される。その上に、しきい値１３３を含むことによりログモニタ２６（図３に示される）によって予め定義された境界条件に基づくログエントリを迅速かつ効率よくフィルタ処理し得る。他の規則フォーマットも実行可能である。
【００４６】
図８はこの発明に従って動的に再定義可能なビジネス論理を組込むログモニタ２６で大粒度データベース並行性を維持するための方法１５０の流れ図である。予備的に、ログファイル５４を、ログモニタ２６（ブロック１５１）により、ビジネス論理の適用の準備に開く。各ログエントリ（図４に示される）を次いで反復的に以下のように処理する。
【００４７】
各反復中、各ログエントリ７０はまずログモニタ２６によって読まれる（ブロック１５２）。ログエントリ７０を評価することにより、そのエントリが、判断基準が当てはまるテーブル１３１（図７に示される）に影響するコミットされたトランザクション９１（図５に示される）を記述するかを判断する（ブロック１５３）。ログエントリがリスト化されたテーブル１３１に当てはまる場合には（ブロック１５３）、規則は、データ操作言語手続１３２において実現されるとおりでは、評価される（ブロック１５４）。規則の選択基準が満たされる場合には（ブロック１５５）、更新されたレコード５７の発生がログモニタ２６によりメタデータ５６を用いて行なわれ（ブロック１５６）、その更新されたレコードは宛先データベース５８に送られる（ブロック１５７）。反復的処理が続く（ブロック１５２〜１５８）のはさらにログエントリ７０がある場合である（ブロック１５８）。最後のログエントリ７０が処理されると（ブロック１５８）、ログファイル５４は閉じられ（ブロック１５９）ルーチンは終結する。
【００４８】
この発明を特にその実施例に参照されるように図示し記載してきたが、当業者ならば前述および他の形式および詳細における変更がそこにおいてこの発明の精神および範囲から逸脱することなく行なわれてもよいことを理解するであろう。
【図面の簡単な説明】
【００４９】
【図１】分散型コンピュータ環境を示し、この発明に従って動的に再定義可能なビジネス論理を組込むログモニタで大粒度データベース並行性を維持するためのシステムを含む、ブロック図である。
【図２】先行技術の多層化データベースアーキテクチャを示す機能上ブロック図である。
【図３】図１の大粒度データベース並行性を維持するためのシステムを示すブロック図である。
【図４】図３のシステムにおいて用いられるログエントリを示すデータ構造図である。
【図５】情報提供データベースがログに基づくトランザクション監視を介して更新するのを示すプロセスフロー図である。
【図６】図３のシステムのソフトウェアモジュールを示す機能上ブロック図である。
【図７】規則エントリを示すデータ構造図である。
【図８】この発明に従って動的に再定義可能なビジネス論理を組込むログモニタで大粒度データベース並行性を維持するための方法を示すフローチャート図である。
【図１】
0004414139.tif 000002
【図２】
0004414139.tif 000003
【図３】
0004414139.tif 000004
【図４】
0004414139.tif 000005
【図５】
0004414139.tif 000006
【図６】
0004414139.tif 000007
【図７】
0004414139.tif 000008
【図８】
0004414139.tif 000009