(57)【要約】【課題】  自動タスク生成機構がコンピュータシステムのためのメンテナンスタスクなどのタスクの生成を行う。【解決手段】  １組のタスクをそれらのタスクを実行するための規則と共にセットアップする。規則は、タスクを規則にマップすることができるようにするメタデータに関連づけることができる。作成、変更、削除、または追加コマンドなどのデータベース操作に関連するイベントを検出することができる。システムがイベントを検出すると、システムはそのイベントとそれに関連づけられたメタデータとを記憶することができる。別のプロセスが、このメタデータおよびメタデータ記憶部を調べ、それらの項目を事前にセットアップされていた規則と比較することができる。規則とイベントとの一致がある場合、行うことが望ましい処置に対応する１つまたは複数のタスクを設定することができる。【選択図】  図２
2004362596.tif 000002
【特許請求の範囲】
【請求項１】
データベース管理システムのためのタスクを生成する方法であって、
前記データベース管理システムに対して操作をするイベントを検出するステップと、
検出された前記イベントに対応するイベント標識を、関連するメタデータと共に記憶するステップと、
前記イベント標識および関連する前記メタデータを、データベースオブジェクトメタデータを使用する規則であって、システムタスクを参照する規則と付き合わせるステップと、
前記イベント標識と一致する前記規則に基づいて特定のタスクを生成するステップとを備えることを特徴とする方法。
【請求項２】
ユーザインタフェースおよびプログラムインタフェースのうちの少なくとも一方を使用して前記システムタスクを定義するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記データベースオブジェクトメタデータは、ファイルのサイズ、場所、ユーザ、言語、ファイルの数、空きスペース、およびカスタム属性のうちの１つまたは複数を含むことを特徴とする請求項１に記載の方法。
【請求項４】
イベント標識を記憶するステップは、前記イベント標識を、関連するメタデータと共に順次に記憶するステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記突き合わせるステップは、
前記イベント標識を、関連するメタデータと共に取り出すステップと、
前記規則を取り出すステップと、
前記イベント標識および関連づけられたメタデータを前記規則と比較して、前記イベント標識と前記規則との一致を検出するステップとを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記特定のタスクは、前記システムタスクのうちの少なくとも１つのシステムタスクに対応する少なくとも１つのデータベース管理システムコマンドを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記データベース管理システムは、ＳＱＬベースのデータベース管理システムであることを特徴とする請求項１に記載の方法。
【請求項８】
前記特定のタスクは、ＳＱＬデータベースに対する操作を指示するＴｒａｎｓａｃｔ−ＳＱＬコマンドであることを特徴とする請求項１に記載の方法。
【請求項９】
前記特定のタスクは、データベース管理機能および非データベース管理機能のうちの少なくとも一方に向けられたハードウェアコマンドおよびソフトウェアコマンドのうちの少なくとも一方を含むことを特徴とする請求項１に記載の方法。
【請求項１０】
データベース管理システムのためのタスクを生成するシステムであって、
前記タスクを生成するソフトウェアを実行する第１のコンピュータと、
データベースオブジェクトに対する操作のための規則とシステムタスクとが記憶される少なくとも１つの記憶媒体と、
動作を実行するコンピュータ実行可能命令が記憶されたソフトウェア媒体とを備え、前記動作は
前記データベース管理システムに対して操作をするイベントを検出する動作と、
検出された前記イベントに対応するイベント標識を、関連するメタデータと共に記憶する動作と、
前記イベント標識および関連づけられた前記メタデータを、データベースオブジェクトメタデータを使用する規則であって、システムタスクを参照する規則と付き合わせる動作と、
前記イベント標識と一致する前記規則に基づいて特定のタスクを生成する動作とを含むことを特徴とするシステム。
【請求項１１】
前記ソフトウェアは、前記検出動作と前記記憶動作とを実行する第１のモジュールと、前記比較動作と前記生成動作とを実行する第２のモジュールとを含むことを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記第１のモジュールおよび前記第２のモジュールは、それぞれ前記第１のコンピュータおよび第２のコンピュータ上に存在することを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記規則および前記システムタスクに入力を与えるためのユーザインタフェースおよびプログラマチックインタフェースのうちの少なくとも一方をさらに備えることを特徴とする請求項１０に記載のシステム。
【請求項１４】
前記特定のタスクは、データベース管理システムコマンドおよび非データベース管理コマンドのうちの少なくとも一方を含むことを特徴とする請求項１０に記載のシステム。
【請求項１５】
前記突き合わせる動作および前記生成する動作の実行のための第２のコンピュータをさらに備えることを特徴とする請求項１０に記載のシステム。
【請求項１６】
前記データベース管理システムはＳＱＬベースのデータベース管理システムであることを特徴とする請求項１０に記載のシステム。
【請求項１７】
前記特定のタスクは、ＳＱＬデータベースに対する操作を検出するＴｒａｎｓａｃｔ−ＳＱＬコマンドであることを特徴とする請求項１０に記載のシステム。
【請求項１８】
前記特定のタスクは、ハードウェア機能およびソフトウェア機能のうちの少なくとも一方の起動を含むことを特徴とする請求項１０に記載のシステム。
【請求項１９】
特定のタスクを生成する方法を実行するコンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記方法は、
データベース管理システムに対して操作をするイベントを検出するステップと、
検出された前記イベントに対応するイベント標識を、関連するメタデータと共に記憶するステップと、
前記イベント標識および関連する前記メタデータを、データベースオブジェクトメタデータを使用する規則であって、システムタスクを参照する規則と付き合わせるステップと、
前記イベント標識に対応する前記規則に基づいて前記特定のタスクを生成するステップとを備えることを特徴とするコンピュータ可読媒体。
【請求項２０】
前記データベースオブジェクトメタデータは、ファイルのサイズ、場所、ユーザ、言語、ファイルの数、空きスペース、およびカスタム属性のうちの１つまたは複数を含むことを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
前記イベントを記憶するステップは、前記イベントおよび関連づけられたメタデータを順次に記憶するステップを含むことを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２２】
前記イベント標識を付き合わせるステップは、
記憶された前記イベント標識および関連づけられた前記メタデータを取り出すステップと、
前記規則を取り出すステップと、
前記イベント標識および関連づけられたメタデータを前記規則と比較して、前記イベント標識と前記規則との一致を検出するステップとを含むことを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２３】
前記特定のタスクは、データベース管理システムコマンドおよび非データベース管理コマンドのうちの少なくとも一方を含むことを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２４】
前記データベース管理システムはＳＱＬベースのデータベース管理システムであることを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２５】
前記特定のタスクは、ＳＱＬデータベースに対する操作を検出するためのＴｒａｎｓａｃｔ−ＳＱＬコマンドであることを特徴とする請求項１９に記載のコンピュータ可読媒体。
【請求項２６】
データベース管理システムのためのタスクを生成するシステムであって、
データベース管理システムを含むコンピュータと、
少なくとも１つのシステムタスクと、少なくとも１つの前記システムタスクに関連づけられた少なくとも１つの規則とを受け取るインタフェースと、
少なくとも１つの前記システムタスクと少なくとも１つの前記規則とを記憶するメモリと、
データベースイベントを検出するイベント検出部と、
前記データベースイベントに対応するデータベースイベント標識と関連メタデータとを登録するイベントキューと、
前記データベースイベント標識および前記関連メタデータの登録を検知し、前記登録を少なくとも１つの前記規則と比較するサーバエージェントと、
コマンドを生成するタスク生成部とを備え、
前記サーバエージェントが前記データベースイベント標識の前記登録を少なくとも１つの前記規則と付き合わせる場合、前記タスク生成部は、少なくとも１つのシステムタスクに対応する少なくとも１つの前記規則に基づいてコマンドを生成することを特徴とするシステム。
【請求項２７】
前記データベース管理システムは、ＳＱＬデータベース管理システムであることを特徴とする請求項２６に記載のシステム。
【請求項２８】
前記コマンドは、前記データベースシステム内での実行に向けられたＴｒａｎｓａｃｔ−ＳＱＬコマンドであることを特徴とする請求項２６に記載のシステム。
【請求項２９】
前記コマンドは、データベース管理機能および非データベース管理機能のうちの少なくとも一方に向けられたハードウェアコマンドおよびソフトウェアコマンドのうちの少なくとも一方を含むことを特徴とする請求項２６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にはコンピュータデータベースの分野に関し、より詳細にはデータベース管理システムにおけるオブジェクトのための自動タスク生成の分野に関する。
【背景技術】
【０００２】
コンピュータシステム管理者は、短時間で様々なタスクを行う必要に絶えず迫られている。このようなタスクには、データベースのバックアップなどの日常的なメンテナンスタスクから、ハードウェア障害などのより重要な問題まで、あらゆるものが含まれる。システム管理者に気付かれない可能性のある、ユーザによる新規データベースの作成など、事後システムメンテナンスを必要とする事象もある。したがって、新規作成されたファイルのバックアップなど、メンテナンスタスクの中には、メンテナンスタスクが必要であることが直ちには認識されないタスクもある。さらに、システム環境ごと、および企業環境への導入ごとに、メンテナンスタスク実施のための独自の１組の規則が指示される。しかし、そのようなメンテナンス作業が固有のものであるため、システム管理者は、そのコンピューティング環境および利用の規則または方針に基づいて独自の特化された１組のメンテナンスタスクを生成するのに、時間とエネルギー資源を費やすことが多い。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
したがって、コンピュータシステム上で自動メンテナンスタスクに関するタスクおよびその他の関連機能を自動的に呼び出す方法が必要である。そのような自動タスクは、メタデータとイベントデータとを使用して、タスクの作成と展開をトリガすれば有用であろう。本発明は、上記の必要に対処し、コンピュータシステム内で動作可能なタスクを生成する様々なシステム、方法、および技法により、上記の必要を解決する。本発明は、すべての自動タスク生成機能に有効であり、たとえばデータベース管理に適用可能な自動タスクエンリストメント（ｅｎｌｉｓｔｍｅｎｔ）機能の形態で実施することができる。
【課題を解決するための手段】
【０００４】
本発明は、コンピュータシステムのメンテナンスタスクなどのタスクを生成する自動タスク生成機構を含む。本発明は、タスクを実行するためのタスクと規則のセットの設定を含む。これらの規則は、タスクを規則にマップさせることができるようにするメタデータと関連づけることができる。システムによってイベントが検出されると、システムはそのイベントとそれに関連づけられたメタデータとを記憶する。別のストリングが、そのイベントとメタデータの記憶域を調べ、それらの項目を予め設定された規則と比較することができる。規則とイベントとの一致がある場合、行いたい処置に対応する１または複数のタスクを設定することができる。
【０００５】
たとえば、データベースを作成し、メタデータと共にイベントがトリガされ、規則のセットと比較された場合に、イベントがメンテナンスのために後でバックアップする必要があるイベントであることが規則によって示されている場合は、その規則を実施する一連のコマンドが生成される。
【発明を実施するための最良の形態】
【０００６】
上記の要約と、以下の最良の実施形態の詳細な説明は、添付図面と合わせて読めばよりよくわかる。本発明を例示するために、本発明の構成の例を図面に示すが、本発明は、開示されている方法および手段には限定されない。
【０００７】
概要
本発明は、自動的に動作して、コンピュータシステム、特にデータベース管理システムに対するコマンドを生成することができる、タスク生成機構に関する。この自動タスク生成機構は、データベース関連操作が行われたことを示す標識を受け取る。本発明は、データベース操作および関連メタデータを、記憶されている規則のセットと比較し、自動タスクを生成する必要があるか否かを判断する。自動タスクが必要な場合、元々検出されたデータベース操作に対応する規則に関連する記憶されたタスクから、自動タスクを形成することができる。
【０００８】
本発明は、１または複数のコンピュータシステムまたは構成要素の一部として常駐させることができる。したがって、例示のコンピュータシステムおよびその環境の説明を以下に記載する。
【０００９】
例示的コンピューティング装置
図１および以下の説明は、本発明を実施することができる、適合するコンピューティング環境について概説することを意図したものである。しかし、ハンドヘルド、携帯型、およびその他のあらゆる種類のコンピューティング装置およびコンピューティングオブジェクトが、本発明と共に使用されるものと企図される。したがって、以下では汎用コンピュータについて説明するが、これは一例に過ぎず、本発明は、ネットワーク／バス相互運用および対話機能を有するクライアントなど、他のコンピューティング装置でも実施可能である。したがって、本発明は、たとえば、機器内に配置されたオブジェクトなど、クライアント装置が単にネットワーク／バスへのインタフェースとしてのみ機能するネットワーク環境、またはその他のコンピューティング装置およびオブジェクトなど、きわめてわずかなクライアント資源または最小限のクライアント資源のみを含む、ネットワーク化されたホスト提供サービスの環境で実施することができる。基本的には、データを記憶することができる場所、またはデータを取り出すことができる場所であればどのような場所でも、本発明による動作にとって望ましい環境または適合する環境である。
【００１０】
また、必須ではないが、本発明は、装置またはオブジェクトのためのサービスの開発者が使用するために、オペレーティングシステムを介して実施するか、または本発明により動作するアプリケーションソフトウェア内に組み込むか、あるいはその両方による実施が可能である。ソフトウェアについて、クライアントワークステーション、サーバ、またはその他の装置など、１または複数のコンピュータにより実行可能なプログラムモジュールなどのコンピュータ実行可能命令という一般的文脈で説明する場合がある。一般に、プログラムモジュールとしては、特定のタスクを実行するかまたは特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。一般に、プログラムモジュールの機能は、様々な環境の必要に応じて組み合わせたり分散させたりすることができる。さらに、本発明は他のコンピュータ構成でも実施可能であることが、当業者ならわかるであろう。本発明と共に使用するのに適すると考えられる他の周知のコンピューティングシステム、環境および／または構成としては、パーソナルコンピュータ（ＰＣ）、現金自動預け払い機、サーバコンピュータ、ハンドヘルド機器またはラップトップ機器、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能家電製品、ネットワークＰＣ、電気製品、照明機器、環境制御装置、ミニコンピュータ、メインフレームコンピュータなどがあるが、これらには限定されない。また、本発明は、通信ネットワーク／バスまたはその他のデータ伝送媒体を介してリンクされたリモート装置によってタスクが実行される分散コンピューティング環境でも実施可能である。分散コンピューティング環境では、プログラムモジュールを、メモリ記憶装置を含むローカルおよびリモートの両方のコンピュータ記憶媒体に配置することができ、クライアントノードが入れ替わりにサーバノードとして動作することもできる。
【００１１】
したがって、図１には、本発明を実施することができる、適合するコンピューティングシステム環境１００を図示するが、前述のように、このコンピューティングシステム環境１００は、適合するコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲に関していかなる制限も示唆するものではない。また、このコンピューティング環境１００は、例示の動作環境１００に図示されている構成要素のいずれか１つまたは組合せに関する依存性または要件を有するものと解釈すべきではない。
【００１２】
図１を参照すると、本発明を実施するシステムの一例は、コンピュータシステム１１０の形態の汎用コンピューティング装置を含む。コンピュータシステム１１０の構成要素としては、処理装置１２０、システムメモリ１３０、およびシステムメモリを含めて様々なシステム構成要素を処理装置１２０に結合するシステムバス１２１などがあるが、これらには限定されない。システムバス１２１は、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、ペリフェラルバス、およびローカルバスを含む様々な種類のバス構造のいずれかとすることができる。たとえば、このようなアーキテクチャとしては、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオエレクトロニクススタンダードアソシエーション（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄ  Ａｓｓｏｃｉａｔｉｏｎ：ＶＥＳＡ）ローカルバス、ペリフェラルコンポーネントインンターコネクト（ＰＣＩ）バス（メザニンバスとも呼ぶ）などがあるが、これらには限定されない。
【００１３】
コンピュータシステム１１０は一般に、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータシステム１１０がアクセスすることができる、任意の利用可能な媒体とすることができ、揮発性媒体と不揮発性媒体、取外し可能媒体と固定媒体の両方を含む。たとえば、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体とを含むことができるが、これには限定されない。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報の記憶のための方法および技術で実現された、揮発性および不揮発性の、取外し可能および固定媒体を含む。コンピュータ記憶媒体には、所望の情報を記憶するために使用することができ、コンピュータシステム１１０がアクセスすることができる、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、電気的消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリもしくはその他のメモリ技術、コンパクトディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、書換え可能コンパクトディスク（ＣＤＲＷ）、デジタル多用途ディスク（ＤＶＤ）もしくはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくはその他の磁気記憶装置、またはその他の任意の媒体が含まれるが、これらには限定されない。通信媒体は、一般に、搬送波などの被変調データ信号またはその他の伝送機構の形態の、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを実現するものであり、任意の情報伝達媒体を含む。「被変調データ信号」という用語は、情報を信号の形態でコード化するように設定または変更された１または複数の特徴を有する信号を意味する。たとえば、通信媒体には、有線ネットワークまたは直接有線接続などの有線媒体と、音波、ＲＦ、赤外線、またはその他の無線媒体が含まれるが、これらには限定されない。これらの媒体の任意の組合せも、コンピュータ可読媒体の範囲に含まれるものと理解されたい。
【００１４】
システムメモリ１３０には、読取り専用メモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体が含まれる。始動時などにコンピュータシステム１１０内の要素間で情報を伝送するのを支援する基本ルーチンを含む、基本入出力システム１３３（ＢＩＯＳ）が、典型的にはＲＯＭ１３１に記憶される。ＲＡＭ１３２は、一般には、処理装置１２０が即時にアクセス可能および／または現在操作中のデータおよび／またはプログラムモジュールが格納される。たとえば、図１には、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７が図示されているが、これらには限定されない。
【００１５】
コンピュータシステム１１０は、他の取外し可能／固定の、揮発性／不揮発性コンピュータ記憶媒体も含むことができる。たとえば、図１には、固定不揮発性の磁気媒体の読み書きを行うハードディスクドライブ１４１と、取外し可能な不揮発性磁気ディスク１５２の読み書きを行う磁気ディスクドライブ１５１と、ＣＤ−ＲＯＭ、ＣＤＲＷ、ＤＶＤ、またはその他の光媒体などの取外し可能な不揮発性光ディスク１５６の読み書きを行う光ディスクドライブ１５５とが図示されている。例示の動作環境で使用可能なその他の取外し可能／固定の揮発性／不揮発性コンピュータ記憶媒体としては、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体ＲＡＭ、半導体ＲＯＭなどがあるが、これらには限定されない。ハードディスクドライブ１４１は、一般には、インタフェース１４０などの固定メモリインタフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、一般には、インタフェース１５０などの取外し可能メモリインタフェースによってシステムバス１２１に接続される。
【００１６】
上記で示し、図１に図示するドライブおよびそれに付随するコンピュータ記憶媒体は、コンピュータシステム１１０のために、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータのストレージを提供する。たとえば図１では、ハードディスクドライブ１４１が、オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶するものとして図示されている。これらの構成要素は、オペレーティングシステム１３４、アプリケーションプログラム１３５、その他のプログラムモジュール１３６、およびプログラムデータ１３７と同じ場合も異なる場合もあることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、その他のプログラムモジュール１４６、およびプログラムデータ１４７には、少なくとも異なるコピーであることを示すために異なる番号が付してある。ユーザは、キーボード１６２や、一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス１６１などの入力装置を介して、コンピュータシステム１１０にコマンドと情報を入力することができる。その他の入力装置（図示せず）として、マイクロフォン、ジョイスティック、ゲームパッド、衛星アンテナ、スキャナなども含むことができる。上記およびその他の入力装置は、システムバス１２１に結合されたユーザ入力インタフェース１６０を介して処理装置１２０に接続されることが多いが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など、他のインタフェースおよびバス構造によって接続することもできる。モニタ１９１またはその他のタイプの表示装置も、ビデオインタフェース１９０などのインタフェースを介してシステムバス１２１に接続され、このインタフェースはさらにビデオメモリ（図示せず）と通信する。モニタ１９１に加えて、コンピュータは、スピーカ１９７やプリンタ１９６など他の周辺出力装置も含むことができ、出力周辺装置インタフェース１９５を介して接続することができる。
【００１７】
コンピュータシステム１１０は、リモートコンピュータ１８０など、１つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、またはその他の共通ネットワークノードとすることができ、一般には、コンピュータシステム１１０に関連して前述した要素の多くまたは全部を含むことができるが、図１にはメモリ記憶装置１８１のみが図示されている。図１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１とワイドエリアネットワーク（ＷＡＮ）１７３とを含むが、他のネットワーク／バスも含むことができる。このようなネットワーク環境は、家庭、オフィス、企業規模コンピュータネットワーク、イントラネット、およびインターネットで一般的に使用されている。
【００１８】
ＬＡＮネットワーク環境で使用する場合、コンピュータシステム１１０はネットワークインタフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境で使用する場合、コンピュータシステム１１０は一般に、インターネットなどのＷＡＮ１７３を介した通信を確立するためのモデム１７２またはその他の手段を含む。モデム１７２は、内蔵または外付けモデムとすることができ、ユーザ入力インタフェース１６０またはその他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータシステム１１０に関連して図示されているプログラムモジュールまたはその一部を、リモートメモリ記憶装置に記憶することもできる。たとえば、図１には、リモートアプリケーションプログラム１８５がメモリ装置１８１に常駐するものとして図示されているが、これには限定されない。図のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立するその他の手段も使用可能であることがわかるであろう。
【００１９】
パーソナルコンピューティングとインターネットとの統合を考慮して、様々な分散コンピューティングフレームワークが、従来から開発され、現在も開発されている。個人と企業ユーザとを問わず、アプリケーションおよびコンピューティング装置用の、シームレスに相互運用可能なウェブ対応インタフェースが提供されており、コンピュータ活動がますますウェブブラウザまたはネットワーク指向になりつつある。
【００２０】
たとえば、米国９８０５２ワシントン州レドモンド、ワンマイクロソフトウェイのマイクロソフトコーポレーション（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ）から入手可能なＭＩＣＲＯＳＯＦＴ（登録商標）のＮＥＴ（商標）プラットフォームは、サーバ、ウェブベースのデータ記憶などのビルディングブロックサービス、およびダウンロード可能デバイスソフトウェアを含む。本明細書では例示の実施形態について、コンピューティング装置上にあるソフトウェアとの関連で説明したが、本発明の１つまたは複数の部分を、オペレーティングシステム、アプリケーションプログラミングインタフェース（ＡＰＩ）、または、コプロセッサ、表示装置、および要求側オブジェクトのいずれかの間の「中間」オブジェクトを介して実施し、それによって、本発明による動作を、ＮＥＴ（商標）のすべての言語およびサービスならびに他の分散コンピューティングフレームワークによって実行し、サポートし、またはそれらを介して本発明の動作にアクセスすることができるようにすることもできる。
【００２１】
本発明の例示の実施形態
本発明は、ユーザ定義ポリシーまたは規則と、オブジェクトメタデータに基づいてインテリジェントな日常的（ルーチン）メンテナンスタスクを実行することによって、管理者の負担の一部を軽減する、自動タスクエンリストメントシステムおよび方法を提供する。規則のセットに基づいてオブジェクトを日常的メンテナンスタスクに自動的に登録（エンリスト：ｅｎｌｉｓｔ）する機能によって、管理者は、日常的なメンテナンスタスクの実行ではなく、システム関連作業のうちのより能動的な部分の処理に、より多くの時間を割くことができるようになる。
【００２２】
データベース管理システム自動タスク生成機構が、自動的にメンテナンス関連コマンドを検出し、オブジェクトメタデータおよびポリシー規則を使用してそれらのタスクをコマンドに関連づけることによって、タスクの中でも特にメンテナンスを自動的に実行することができる。
【００２３】
一実施形態では、本発明は、ＳＱＬデータベースと共に実施される。本発明について、本発明の一般的な適用可能性と、ＳＱＬ環境における実施形態に即して説明する。タスクコマンド出力の一例は、トランザクションＳＱＬコマンドセットである。自動タスク生成機構は、データベース管理システムによって実施される操作を使用することができる。
【００２４】
たとえば、構造化問合せ言語（ｓｔｒｕｃｔｕｒｅｄ  ｑｕｅｒｙ  ｌａｎｇｕａｇｅ：ＳＱＬ）は、リレーショナルデータベースとの通信に使用されるアメリカ規格協会（Ａｍｅｒｉｃａｎ  Ｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄ  Ｉｎｓｔｉｔｕｔｅ：ＡＮＳＩ）標準である。ＳＱＬは、リレーショナルデータベース管理システムのための標準言語である。ＳＱＬステートメントは、リレーショナルデータベースのデータの更新やデータの検索などのタスクを実行するために使用される。多くのデータベースシステムがＳＱＬを使用しているが、それらの多くは、通常はそれぞれのシステム上でのみ使用される独自の追加の固有拡張機能を有する。しかし、「Ｓｅｌｅｃｔ」、「Ｉｎｓｅｒｔ」、「Ｕｐｄａｔｅ」、「Ｄｅｌｅｔｅ」、「Ｃｒｅａｔｅ」、「Ｄｒｏｐ」などの標準ＳＱＬコマンドを使用して、リレーショナルデータベースに関して行いたい多くのことを実行することができる。さらに、このようなコマンドステートメントを使用すれば、システムメンテナンスを必要とするデータベース内のデータ構造の導入が可能になる。したがって、このようなコマンドを、メンテナンスタスクの作成またはその他の必要なシステム機能または望ましいシステム機能のトリガとして使用することができるようになる。
【００２５】
図２は、例示の自動タスク生成機構２００の要素間の相互接続の例を示すブロック図である。ユーザインタフェースまたはプログラムインタフェース２１０によって、ユーザまたはプログラム型インタフェースは、タスクを生成し、記憶エリア２２０に入力２１５することができる。タスクは、特定のデータベース関連オブジェクトに対して実行される操作のセットとすることができる。これらのタスクは、まったく新たに作成することもできるし、サンプルまたはテンプレートから導入することもできる。
【００２６】
このようなタスクの例は、ファイルのバックアップ、ハードディスクのデフラグ、またはデータベースの再構築である。タスクは、システムの使用中にデータベースシステム上のメンテナンスまたはオブジェクトに関する操作を行う際に有用な場合がある。オブジェクトの例としては、データベース、テーブル、カラム、インデックス、ビュー、トリガ、ストアドプロシージャ、ユーザプログラムがある。オブジェクトを操作するタスクの一例は、毎日夜中に開始されるデータベースの「夜間バックアップ」と呼ばれる完全バックアップの実行である。
【００２７】
規則は、ユーザ／プログラムインタフェース２１０を介して生成し、入力し、タスクおよび規則記憶域２２０に格納することができる。タスクをデータベースオブジェクトメタデータと共に利用する規則を生成することもできる。データベースオブジェクトのためのオブジェクトメタデータの例としては、ファイルのサイズ、場所、ユーザ、言語、ファイルの数、空きスペース、およびカスタム属性などがある。
【００２８】
このメタデータを使用する規則の一例は、Ｇドライブでデータベースが作成され、１００ＭＢより大きく、それに関するバックアップがデータベースにない場合、定義済みで記憶済みの「夜間バックアップ」タスクの新しいインスタンスが実行されるべきである、ということである。このタスクのオブジェクトメタデータは、ドライブ名Ｇと、１００ＭＢを超えるサイズと、バックアップが存在しないことである。
【００２９】
図２のブロック図には、ＳＱＬリレーショナルデータベースとそれに関連する管理システムなどのデータベース管理システム２３６と、サーバイベントの検出のための別個のプログラム２３２と、イベントキュー２３４とを含むサーバ２３０も含まれている。米国ワシントン州レドモンドのマイクロソフトコーポレーションから入手可能なＳＱＬ  Ｓｅｒｖｅｒ（サーバ）（商標）などのデータベース管理システム２３６は、基礎となるデータベース（図示せず）に対するフルアクセスが可能である。サーバイベント検出部２３２は、データベース管理システムの操作に関するイベントを検出することができる。たとえば、ＣＲＥＡＴＥ、ＡＬＴＥＲ、およびＤＲＯＰコマンドなど、データ定義言語（ｄａｔａ  ｄｅｆｉｎｉｔｉｏｎ  ｌａｎｇｕａｇｅ：ＤＤＬ）イベントと呼ばれるイベントを、サーバイベント検出部２３２によって検出することができる。さらに、ＣＲＥＡＴＥ  ＤＡＴＡＢＡＳＥコマンドなどのその他のより一般的なイベントも、サーバイベント検出部２３２をトリガして応答させることができる。サーバイベント検出部２３２は、イベントキュー２３４にイベントを登録することにより、これらのデータベース関連イベントに応答する。このキューによって、サーバは、データベース管理システム２３６操作に応答して発生したイベントの記録を保持することができる。サーバイベント検出部２３２は、検出したイベントに関する適切なメタデータもイベントキュー２３４に格納する。検出されたイベントとそれに関連するメタデータの一例は、以下の通りである。
イベント：  データベースＮＥＷの作成
メタデータ：時刻／日付＝１１：３０ＡＭ  １１／０１／２００３
ドライブＧ
サイズ２００ＭＢ
照合デフォルト
【００３０】
サーバ２３０とは独立して稼働可能なサーバエージェント２４０が、該当するデータベース管理システム２３６の活動を発見する目的で、イベントキューをサンプリング２４５する。イベントキュー２３４は、情報のペイロードを送る２４５ことにより、この新しいイベント情報を求めるサーバエージェント要求に応答する。ペイロードには、イベントの識別情報と、検出されたイベントに対応する記憶済みメタデータとが含まれる場合がある。ペイロード情報は、イベントキュー２３４からサーバエージェント２４０に、拡張可能マークアップ言語（ＸＭＬ）ペイロードとして転送することができる２４５。このＸＭＬペイロードは、明確にタグ付けされた情報がその中に含まれているために、サーバエージェントによって容易に識別され、解読される。
【００３１】
サーバエージェント２４０は、ＸＭＬペイロードを受け取ると、事前に記憶されている規則のいずれかと一致する情報がそのＸＭＬペイロードに含まれているか否かを判断しようとする。したがって、サーバエージェント２４０は、タスクおよび規則ストレージ２２０を読み取って２２５、ＸＭＬペイロード内の内容と整合する規則にアクセスする。ＸＭＬペイロード情報と回収された規則との比較は、サーバエージェント２４０内で行うことができる。
【００３２】
一実施形態では、サーバエージェント２４０は、絶えず稼働し、一連の専用スレッドを含むサービスとすることができる。これらのスレッドの１つは、イベントキュー２３４の監視専用とされる。別のスレッドが、ＸＭＬペイロードデータと取り出された規則データとの比較専用とされる。
【００３３】
一実施形態では、比較のための適切な規則のアクセスは、ＸＭＬペイロード内のデータの少なくとも一部を使用することによって行うことができる。たとえば、ＸＭＬペイロードは、データベース管理システム内で発生する操作の識別情報をＣＲＥＡＴＥ  ＤＡＴＡＢＡＳＥとして含むことができる。さらに、ペイロードは、何らかの関連メタデータも含むことができる。この操作識別コマンドおよびメタデータは、サーバエージェントが、タスクおよび規則記憶装置に照会してＣＲＥＡＴＥ  ＤＡＴＡＢＡＳＥコマンド識別子に関連づけられたすべての規則を返すために使用することができる。タスクおよび記憶装置２２０から返された規則は、サーバエージェント２４０において、イベントキュー２３４から入手したＸＭＬペイロード情報の一部または全部を使用して比較される。
【００３４】
一致がない場合、サーバエージェントは、そのＸＭＬペイロードに関して何も処置を行わない。ＸＭＬペイロードとタスクおよび記憶モジュール２２０から取り出された情報との一致がある場合、サーバエージェントは、付き合わされた規則に関連づけられたタスクにアクセスし、それらのタスクをコマンド生成部２５０でアセンブルする。コマンド生成部は、データベース管理システム２３６に入力２６０可能なコマンドを生成することができる。
【００３５】
以下の例では、サーバエージェント２４０がイベントキュー２３６にアクセスし、ＳＱＬサーバ（商標）内で発生したＣＲＥＡＴＥ  ＤＡＴＡＢＡＳＥのイベントを含むＸＭＬペイロードを発見した場合、そのコマンドをタスクおよび規則記憶モジュール２２０内のコマンド規則と比較する。ＸＭＬペイロード内のコマンドとそれに付随するメタデータが、記憶済み規則に対応する場合、サーバエージェントは、記憶モジュール２２０内の規則データに関連づけられたタスクデータにアクセスする。タスクデータは、「夜間バックアップ」タスクを呼び出す必要があることを示すものとすることができる。タスクコマンド生成部２５０は、タスクをアセンブルし、どのようなコマンドおよびパラメータがいつそのタスクを実行するかに関する適切な制約条件をタスクに加え、ＳＱＬサーバ（商標）データベース管理システム２３６に、システムメンテナンスのためのＴｒａｎｓａｃｔ−ＳＱＬコマンドとして渡す。
【００３６】
図２の様々な要素の場所に関して本発明の多くの実施形態が可能である。たとえば、一実施形態では、サーバキュー２３４を、データベーステーブルとして明示的に示されたＳＱＬサーバ（商標）プログラムコード内で実施することができ、その場合、サーバキュー内の項目がテーブル内の行になる。
【００３７】
他の実施形態では、サーバエージェント２４０は、別個のコンピュータではなくサーバ２３０上で稼働するプログラムとすることができる。さらに別の実施形態では、タスク生成部２５０を、サーバエージェント２４０内部にある機能とすることができる。図２の機能構造は、本発明の実施の組合せにとって障害となるものではない。
【００３８】
別の実施形態では、本発明は、データベース管理システムの一部であるか否かを問わず、ハードウェアコマンドまたはソフトウェアコマンドに向けられたタスクコマンドを生成することができる（図２には図示せず）。生成されるイベントは、データベース内のオブジェクトの作成、削除、または更新など、データベース管理システムイベントの結果とすることができるが、イベントにより生成されるタスクコマンドは、トリガ元データベースイベントにとって一見無関係の操作を含むことができる。たとえば、ディスクドライブがいっぱいであることを示すメタデータの検査をトリガするオブジェクト作成などのデータベースイベントが発生する場合がある。その結果として、データベースの即時バックアップを行いたい場合がある。本発明は、バックアップ機能を支援する第三者ハードウェアモジュールまたはソフトウェアモジュールを呼び出すことができるハードウェアコマンドまたはソフトウェアコマンドを起動するコマンドを生成することができる。生成されたコマンドは、データベース管理システムの外部で実行することができ、表面上は、データベース管理機能とは無関係に見える。しかし、このコマンドは、より多くのシステム資源をデータベース機能に利用可能にすることによって、実際にはデータベース管理機能に役立っている。
【００３９】
図３は、本発明の実施形態例の方法の一例を示す流れ図である。データベース管理システムの動作中に発生可能なタスク３１０の定義と記憶のための入力を可能にすることによって、タスク生成プロセス３００をセットアップすることができる。このようなタスクは、メンテナンスタスクまたは、データベース管理システムを使用して実行することが望ましいその他の能動的なタスクとして使用することができる。タスクは、まったく新たに作成することも、サンプルやテンプレートから導出することもできる。
【００４０】
プロセス３００は、以前に定義されたタスクを利用する規則の入力３２０を受け入れることによって、セットアップを続ける。このような規則は、以前に定義された規則の使用要件を定義するためのオブジェクトメタデータの使用にも対応する。その後、タスクは、タスクと規則の両方を後で使用することができるように、記憶される（３３０）。なお、この手続きで記憶されるタスクと規則は、それらにアクセスする必要が生じる前の任意の時点で生成することができ、そのようなタスクおよび規則を使用する直前に生成する必要がない。
【００４１】
自動タスク生成プロセス３００は、次に、データベースオブジェクトの作成または変更などのデータベース管理システムイベント３４０を待つことにより継続する。そのようなイベントが発生すると、そのイベントが関連メタデータと共にログされる。イベントの発生によって、次のステップがトリガされ、イベントペイロード（メタデータ）を読み取り３５０、ペイロードおよびイベント３６０を、以前に生成され記憶された規則と比較する３６０。一致がない場合３７０、プロセスは、次のイベント通知を待つステップに戻る３４０。検出されたイベントと記憶されている規則との一致がある場合３７０、一致した規則に関連づけられたタスクが収集され、編成される３８０。典型的には、タスクは次に、その後の実行のためにデータベース管理システムに送ることができる３９０。
【００４２】
図４は、図３のステップ３４０にかかわる方法４００の一例を示す流れ図である。本発明の一実施形態では、イベント通知を待つステップ３４０は、データベース管理システムにおけるイベントの発生４１０を含むことができる。イベントの発生によって、イベントに対応するメタデータの生成がトリガされることができる４２０。このメタデータは、プロセス４００によって生成するか、またはデータベース管理システムまたはそのようなイベント検出を行うエージェント内の生成源からコピーまたは転送することができる。イベントとそれに対応するメタデータが、キューに格納される４３０。その後、このキューは照会することができ、または他のプロセスの注意を引くことができる。この後続のプロセスは、キューを調べて、イベントデータを読み取る４４０。この時点で、図４のプロセスは、図３のステップ３５０の一部として再開され、前述のようにイベントペイロードメタデータが読み取られる。
【００４３】
以上、本発明の例示の実施形態について様々なコンピューティング装置およびネットワークアーキテクチャと共に説明したが、基礎となる概念は、自動タスク生成機構を実施することが望ましいどのようなコンピューティング装置またはシステムにでも適用可能である。したがって、本発明の方法およびシステムは、様々なアプリケーションおよび装置に適用することができる。本明細書では、様々な選択肢の代表として、例示のプログラミング言語、名称、および例を選定したが、これらの言語、名称、および例は、限定的なものではない。本発明によって実現されるシステムおよび方法と同一、類似、または同等のシステムおよび方法を実現するオブジェクトコードには多くの実現方法があることが、当業者ならわかるであろう。
【００４４】
本明細書に記載の様々な技法は、ハードウェア、ソフトウェア、または適切な場合には、その両方の組合せと共に実施可能である。したがって、本発明の方法および装置、または本発明の特定の態様または部分は、フロッピー（Ｒ）ディスク、ＣＤ−ＲＯＭ、ハードドライブ、またはその他の任意の機械（マシン）可読記憶媒体など、有形媒体で実現されたプログラムコード（すなわち命令）の形態をとることができ、そのプログラムコードは、コンピュータなどのマシンにロードされ、実行されると、そのマシンは本発明を実施する装置となる。プログラム可能コンピュータでのプログラムコードの実行の場合、コンピューティングデバイスは、通常、プロセッサと、プロセッサが読み取ることができる記憶媒体（揮発性および不揮発性メモリおよび／または記憶素子を含む）と、少なくとも１つの入力装置、少なくとも１つの出力装置とを備える。たとえばデータ処理ＡＰＩなどを介して本発明の信号処理サービスを使用することができる１つまたは複数のプログラムは、コンピュータ通信するために高水準手続き型言語またはオブジェクト指向プログラミング言語で実現することが好ましい。しかし、必要であれば、プログラムをアセンブリ言語またはマシン語で実現することもできる。いずれの場合も、言語はコンパイラ型言語またはインタプリタ型言語とすることができ、ハードウェアによる実行と組み合わせることができる。
【００４５】
本発明の方法および装置は、電気配線またはケーブル、光ファイバ、またはその他の形態の伝送などを介した何らかの形態の伝送媒体を介して伝送されるプログラムコードの形態で実現された通信を介して実施することもでき、プログラムコードが、ＥＰＲＯＭ、ゲートアレイ、プログラマブルロジックデバイス（ＰＬＤ）、クライアントコンピュータ、ビデオレコーダなど、または前述の実施例で説明した信号処理機能を有する受信側機械によって受け取られ、ロードされ、実行されると、そのマシンは本発明を実施する装置となる。汎用プロセッサ上で実施した場合、プログラムコードは、プロセッサと組み合わされて、本発明の機能を実行するように動作する固有の装置を提供する。さらに、本発明と共に使用される記憶技術は、常にハードウェアとソフトウェアとの組合せとすることができる。
【００４６】
本発明について、様々な図面の好ましい実施形態と共に説明したが、本発明から逸脱することなく、他の同様の実施形態も使用することができ、本発明の同じ機能を実行するために上述の実施形態に変更および追加を加えることができることを理解されたい。さらに、特に無線ネットワーク装置の数が増大し続けるに伴い、ハンドヘルド装置オペレーティングシステムおよびその他の特定用途オペレーティングシステムを含めて、様々なコンピュータプラットフォームが考慮されることを強調しておく必要がある。したがって、本発明は、いずれか一つの実施形態に限定されるべきではなく、特許請求の範囲に記載の範囲で解釈すべきである。
【図面の簡単な説明】
【００４７】
【図１】本発明の各態様を実施することができる例示のコンピューティング環境を示すブロック図である。
【図２】本発明の各態様を実施することができる、例示のブロック図である。
【図３】本発明の一実施形態に適用可能な例示の流れ図である。
【図４】本発明の一態様の実施形態に適用可能な例示の流れ図である。
【符号の説明】
【００４８】
１００  コンピューティング環境
１２０  処理装置
１３０  システムメモリ
１３４、１４４  オペレーティングシステム
１３５、１４５  アプリケーションプログラム
１３６、１４６  その他のプログラムモジュール
１３７、１４７  プログラムデータ
１４０、１５０  固定不揮発性メモリインタフェース
１６０  ユーザ入力インタフェース
１６１  マウス
１６２  キーボード
１７０  ネットワークインタフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  ワイドエリアネットワーク
１８０  リモートコンピュータ
１８５  リモートアプリケーションプログラム
１９０  ビデオインタフェース
１９１  モニタ
１９５  出力周辺インタフェース
１９６  プリンタ
１９７  スピーカ
２１０  ユーザ／プログラムインタフェース
２２０  タスクおよびルール記憶域
２３０  サーバ
２３２  サーバイベント検出部
２３４  イベントキュー
２３６  データベース管理システム
２４０  サーバエージェント
２５０  タスクコマンド生成部
【図１】
2004362596.tif 000003
【図２】
2004362596.tif 000004
【図３】
2004362596.tif 000005
【図４】
2004362596.tif 000006