宣言型管理フレームワーク(DECLARATIVEMANAGEMENTFRAMEWORK)
ユーザ生産性は、高レベルの意図と意図を達成するよう構成されるべき低レベルの設定との間にインターフェイスを提供することによって容易にすることができる。意図は、宣言型言語で表すことができる。意図は、ターゲット、ポリシー、または両方に準拠しているかどうかを決定するために、確認され得る。ポリシーバインディングは、ターゲットとポリシーとの間の関係を提供することができる。ユーザが1つまたは複数のデータベースを有するサーバを表示できるようにするアプリケーションビューを提供することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データベース管理の生産性を容易にするシステムおよびデータベース管理を提供するコンピュータ実行可能システムに関する。
【背景技術】
【0002】
システム管理者は、インストールされたアプリケーションを大量に有するデータベースまたは他のサーバを日常的に管理し得る。システム管理者は、システム障害に備えて回復可能なフォーマットでデータを提供するなど、様々な管理目標または管理ポリシーを満たすように、データベースまたはサーバを構成する。さらに、システム管理者は、ポリシーの更新を監視し、システムの状態または正常性(それが所望のポリシーに準拠しているかどうかなど)について報告し、システムがもはや所望のポリシーに準拠しないとき対処しなければならず、他のアクションもである。
【0003】
こうしたアクションを行うために、システム管理者は、ポリシーを、システムの構成に使用される1組の詳細な低レベルアクションに変換する。このことは、インストールされたアプリケーションにより公開されるオプション、およびデプロイされたアプリケーションの詳細およびセマンティクスのかなりの知識を必要とする。というのは、システム管理は、一般に、容易ではなく、直観的だからである。システム管理者は、別々の監視機構および報告機構を設定する場合があり、自動化が望まれる場合、これは、手動で設定されなければならない。システム管理者は、管理されている全てのターゲットについて、このプロセスを個別に繰り返し、従って、管理における規模の効率性はない。これによって、各管理ターゲットのために、余分な時間および労力が費やされる。
【0004】
こうした機能を行う構文は、様々な設定の有効化、無効化、または変更に関して、難解になり、ユーザフレンドリではなくなる可能性がある。さらに、様々な設定の位置に一貫性がない。例えば、いくつかの設定はディスプレイ上に表示され、別の設定は表示されない。これらおよび他の要因によって、各設定の場所を突き止め、変更するために費やされる時間量が増える。
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記および他の不備を克服するために、システム管理者の意図と、その意図を達成するのに必要な低レベルの設定との間の動的な仲裁が必要である。また、様々な設定がより集中化される場所、例えばディスプレイなどが必要である。
【課題を解決するための手段】
【0006】
以下は、開示した実施形態の一部の態様を基本的に理解できるようにするために、簡略化された要約を示している。この要約は、広範な概要を示すものではなく、こうした実施形態の鍵となるまたは重要な要素を識別するもの、およびこうした実施形態の範囲を画定するものではない。単に、後述するより詳細な説明の前置きとして、記載された実施形態の一部の概念を簡略化した形で提示するためのものである。
【0007】
1つまたは複数の実施形態および対応するその開示に従って、データ管理製品に関してユーザ生産性を向上させることとの関連で、様々な態様について説明される。(例えば、複雑なコマンドの大部分をマスターし、適用するなど)ユーザ対話を軽減するために、管理者の意図と、その意図を達成するために変更されるべき低レベルの設定との間の仲裁が提供される。
【0008】
実施形態は、ユーザの意図と、その意図を達成するために必要な低レベルの設定との間の仲裁を提供することができ、したがって、複雑なコマンドの大部分をマスターし、適用する負担からユーザを解放する。別個の方法で構成されるオブジェクトにより同じファセットを提示することができ、したがって、ユーザは、個々のオブジェクトを構成するために専門のセマンティクスを学ぶ必要はない。1つのファセットに対して1つのポリシーを適用することができ、ユーザは、単一のポリシーで、このファセットを提示する複数のオブジェクト全てを構成することができる。ファセットは、例えば別個のターゲットから別々の設定を抽出することができる(例えばリソース消耗ファセットは、OSファイルシステムおよびデータベースサーバの残りの空のページの両方を一緒に監視し、構成し得る)。ポリシーは、「複合管理ポリシー(composite management policies)」に集めることができる。
【0009】
一部の実施形態によれば、ユーザは、アドホックベースで、宣言型管理(DMF)システムに、所与のターゲットが所与のポリシーに準拠しているかどうかをチェックするよう指示することができる。DMFは、ポリシー準拠を強制するために、準拠していないターゲットを再構成する能力を含み得る。管理ファセットの個々の属性に基づいて、DMFは、単一であるか複合であるかにかかわらず、「構成可能な」ポリシーおよび/または「実施できる」ポリシーを認識する。準拠していないターゲットセットの構成の有無にかかわらず、スケジュール通りのポリシーチェックを自動化する能力が提供される。また、準拠していないターゲットセットの構成の有無にかかわらず、任意の変更に関するポリシーチェックを自動化する能力が提供され、任意の逸脱の即座の警告を提供することができる。
【0010】
ポリシー評価に似るように、自動ポリシーチェックを、1つのアクションまたは一連のアクションと結合することができる(例えば、セキュリティポリシーが失敗すると、電子メールが送信され得る)。アクションを、ポリシー評価の成功、不成功と関連付けることができる。可能な場合、ファセットを準拠させないようにする試行を検出し、その試行を防ぐための機構を含めることができる(自動式のポリシー実施など)。ポリシーは、サーバ上の単一のオブジェクトからエンタープライズまで延びる階層の任意のレベルを対象とすることができる。アプリケーションを対象とするポリシーを、そのアプリケーションに属するサーバ上のこれらのオブジェクトのみに適用するようにすることができる。ユーザは、ポリシーの対象をそれらのオブジェクトを含む階層のルートとすることにより、多くのオブジェクトをポリシー下に置くことができる。単一のアクションで、ユーザは、設定を確実に変更したり、多くのマシンにおけるポリシーの実施をチェックし、構成し、または自動化したりすることができる。性能または他の動的に変化するデータをサンプリングし、集め、それを管理ファセットから使用可能にするためのコレクタを含めることができる。
【0011】
一部の実施形態は、統合セキュリティモデルにより実施することができる。高レベルでデプロイされたポリシーは、低レベルポリシーに取って代わることができる(例えば、サーバグループポリシーは、データベースポリシーより優先度が高いなど)。ユーザは、見る権限を有するターゲットセットまたはポリシーの部分のみを見ることができる。DMFによりユーザは、「アプリケーション」を構成するターゲット要素を示すことができる。DMFアプリケーションは、おそらく複数の製品(ベンダーなど)からの複数のサーバにわたって拡張し得る。アプリケーションは、1つのターゲットからインポートされ、保存され、後で1つのユニットとして新しいターゲットにデプロイされ得る。異なるポリシーおよびポリシーバージョンの履歴、および管理ターゲットとの関連付けを表示するために、開示された実施形態を使用することができる。ユーザは、任意のターゲットに対して効力のあるポリシー(例えば、このターゲットを直接制約する任意のポリシーの部分など)を表示することができる。また、保管またはデプロイメントの目的で、ポリシーおよびバインディングをスクリプトし、インポートし、エクスポートする方法も提供される。
【0012】
システムがエンタープライズのポリシーに準拠するよう構成される前にユーザにリリースされる可能性を軽減するために、実施形態をソフトウェアのインストールまたはアプリケーションのデプロイメントに組み込んでもよい。管理ファセットを拡張可能APIに1つの構成体として含めることにより、ユーザは、各自の管理ファセットを作成して、各自の管理目標を捕捉し、実行することができる。管理ターゲットを拡張可能APIに1つの構成体として含めることは、新しいDMFターゲットを実装するユーザまたはソフトウェアベンダーにより、追加の管理ターゲットを宣言型管理下に置くことができることを意味する。DMFにより、デプロイメント時の自動構成、自動監視、自動準拠報告、および自動メンテナンス/調整を含めて、管理ライフサイクル全体の自動化が可能になる。多くの場合、これによって、完全な自己管理システムがもたらされる。
【0013】
上記および関連の目的の達成のために、1つまたは複数の実施形態は、以下において十分説明され、特に特許請求の範囲に示す特徴を含む。以下の説明および添付の図面は、いくつかの例示的な態様を詳細に示しており、実施形態の原理を使用することができる様々な方法のうちのほんの数例を示している。他の利点および新しい特徴は、以下の詳細な説明を図面と併せ読めば明らかになり、開示された実施形態は、こうした全ての態様およびその均等物を含むものとする。
【発明を実施するための最良の形態】
【0014】
次に、図面を参照して様々な実施形態について説明する。全体を通して、同様の参照番号を使用して同様の要素を指す。以下の説明では、説明上、1つまたは複数の態様を完全に理解できるようにするために様々な特定の詳細を記載している。しかし、こうした特定の詳細なしに様々な実施形態を実施できることは明らかである。他の例では、これらの実施形態を説明しやすくするために、よく知られている構造および装置をブロック図の形式で示している。
【0015】
本出願で使用する場合、「構成要素」、「モジュール」、「システム」などの用語は、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連のエンティティを指すものとする。例えば、構成要素は、それだけには限定されないが、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータとすることができる。例として、サーバ上で動作するアプリケーションおよびサーバはいずれも構成要素である。1つまたは複数の構成要素がプロセスおよび/または実行スレッド内に存在する可能性があり、1つの構成要素を1つのコンピュータ上に局所化し、かつ/または2つ以上のコンピュータ間に分散することができる。
【0016】
「例」という単語は、本明細書では、例、例示、例証として働くことを意味するために使用される。「例」として本明細書に記載されている任意の態様または設計は、必ずしも他の態様または設計より好ましい、または有利であるものと解釈されるものではない。
【0017】
メモリ、記憶装置、データベース、または他の媒体への任意の言及は、本明細書で使用される場合、不揮発性および/または揮発性メモリを含み得る。適した不揮発性メモリには、読み取り専用メモリ(ROM)、プログラム可能ROM(PROM)、電気的プログラム可能ROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリなどがある。揮発性メモリには、ランダムアクセスメモリ(RAM)などがあり、これは外部キャッシュメモリとして働く。RAMは、それだけには限定されないが一例として、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)、拡張SDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、ラムバスダイレクトRAM(RDRAM)、ダイレクトラムバスダイナミックRAM(DRDRAM)、ラムバスダイナミックRAM(RDRAM)など多くの形で使用可能である。
【0018】
本明細書で使用する場合、「推論する」または「推論」という用語は一般に、イベントおよび/またはデータを介して捕捉された1組の観察結果からシステム、環境、および/またはユーザの状態について推理または推論する過程を指す。例えば、推論を使用して、特定のコンテキストまたはアクションを識別したり、状態にわたる確率分布を生成したりすることができる。推論は、確率的、つまりデータおよびイベントの考慮に基づいた対象の状態にわたる確率分布の計算とすることができる。また、推論は、1組のイベントおよび/またはデータから上位レベルのイベントを構成するために使用される技術を指すことができる。こうした推論によって、複数のイベントが時間的にごく近接して相関しているかどうかにかかわらず、またイベントおよびデータが派生したイベントおよびデータソースが1つであろうと複数であろうと、1組の観察されたイベントおよび/または格納されたイベントデータから新しいイベントまたはアクションが構築される。
【0019】
いくつかの構成要素、モジュールなどを含み得るシステムの観点から、様々な実施形態について説明する。様々なシステムが、図面との関連で説明される追加の構成要素、モジュールなどを含んでいてもよい(またはその全てを含んでいなくてもよい)ことを理解されたい。これらの手法の組み合わせを使用することもできる。本明細書で開示された様々な実施形態を、タッチ画面ディスプレイ技術および/またはマウスおよびキーボードタイプのインターフェイスを使用する装置を含めて、電気装置において実行することができる。こうした装置の例には、コンピュータ(デスクトップおよびモバイル)、スマートフォン、個人用デジタル補助装置(PDA)、および有線および無線の両方の他の電子装置などがある。
【0020】
以下の詳細な説明において、様々な態様および実施形態を、SQL Serverの文脈で説明することができる。これらの発明の態様は、開示された実施形態との使用にうまく適し得るが、これらの発明の態様が様々な他のデータ管理製品における使用にも同様に適用可能であることを、当業者であれば容易に理解されよう。従って、こうした発明の態様が広範な用途を有するということを理解した上で、SQL Serverへの任意の言及は、発明の態様を例示するためのものにすぎない。
【0021】
最初に図1を参照すると、システムアーキテクチャ100の高レベルブロック図が示されている。データベースまたはシステム管理者(以下ユーザと呼ぶ)は、一般に、データ管理製品(SQLデータベースまたはサーバなど)との関連で、様々なサービス(リレーショナルデータベースなど)の継続的な正しい操作を提供する責任を負う。管理されるべきサービスまたはエンティティは、本明細書では、ターゲット102と呼ばれ、システム100は、ターゲット102に関連するこうした目標または管理ポリシーを達成するよう構成されなければならない。
【0022】
こうしたポリシーを定義するとき、これらがどのように実施されるべきか(例えば「1時間ごとのスケジュールでバックアップジョブを作成する」など)を記述する物理的ステートメントに対して、何を行うべきか(例えば「私は1時間以内にデータを回復することができるだろう」など)を記述するために論理的または宣言的ステートメントが使用される場合、より大きい生産性を達成することができる。したがって、ポリシーは、こうした目標を容易にするために変更されるべき実際の構成設定の観点で表されるのに対して、ユーザの意図の観点から表されるべきである。
【0023】
ポリシーの実際の実装は複雑であり得る。というのは、それぞれ別個のセマンティクスにより操作される多くの低レベルの設定があり得るからである。さらに、ユーザが一緒に扱うことを望み得る設定は、異なる位置、または異なる方法、またはその両方で公開され得る。多くの場合、ユーザは、複数の類似のオブジェクトに対して単一の設定を繰り返し適用せざるを得ない(例えば各データベースが文字データの特定のソート順を使用するなど)。ファセット104は、ユーザの意図と低レベルの設定との間のギャップを埋めるために使用することができる。ファセット104は、特定の大きさのユーザの意図をモデリングする1組の論理的プロパティと考えることができる。ユーザは、ポリシーを、基礎を成すターゲット102への問い合わせを行い、または構成するために使用することができるコマンドに変換するよう構成することができる、ファセット104により公開された高レベル構成体に対するポリシーを作成することができる。
【0024】
ターゲット102は、ファセット104を介して状態またはメタデータを公開することができる。例えば、テーブルは、そのスキーマメタデータ(名前、所有者など)に対応する状態を有することができる。その物理的な格納に対応する状態(例えばパーティショニング、ファイルグループなど)、およびデータの内容に対応する状態(例えばサイズ、行数など)がある。これらは、異なるファセットとすることができ、ターゲットタイプの各ファセットは、意図を指定するためのインターフェイスである。
【0025】
ポリシーは、例えば、ファセット104の許容できる状態についてのステートメントとすることができる。典型的な宣言的スタイルでは、ポリシーは、所望の状態を達成する方法ではなく、ターゲット102の所望の状態を指定する。例えば、スキーマメタデータにおけるポリシーは、名前が「xy_」で始まるべきであると指定することができる。これらの指定は、許容状態に関する制約106として(例えば、ファセット104の属性に対する簡易ブール式によって)定義することができる。したがって、制約106は、1組の許容状態を指定する、単一ファセットパラメータによるブール関数とすることができる。
【0026】
ポリシー108は、制約106およびその挙動(例えば、制約106が実行される方法など)を指定することができる。異なるポリシーを、複合ポリシーまたはポリシーグループ110に集めることができる(例えば、単一のポリシーは、マシンの全てのセキュリティ要件を含み得る、または全体的なサーバポリシーは、命名ポリシー、表面積ポリシー、データ回復可能性ポリシー、スペース管理ポリシーを結合することができる)。ポリシーは、他のポリシーを参照することができる。
【0027】
個々のポリシー108は、ターゲット102またはターゲットの組に対して明示的に評価され得る。ポリシー108を、単一オブジェクト、またはオブジェクトの集まりに適用することができる(例えば、ポリシーを、データベースの全てのオブジェクトに適用することができる)。ポリシー108を、エンタープライズにわたって適用することもできる(例えば、Webファームの全てのサーバに適用することができる)。構成およびメンテナンスポリシーが複数の異質のサーバインスタンス(例えば、サーバファーム、フェデレーテッドサーバなど)に及ぶ場合、エンタープライズ管理は、エンタープライズシステム管理の総費用を簡略化し、低減することができるフレームワークである。
【0028】
ポリシー108の対象となるオブジェクトの集まりは、ターゲットセット112と呼ばれ、ターゲットセット112は、パス式によって指定される1組の管理ターゲットである。ターゲットセット112は、そのパス下の全てのターゲットから成る。ポリシー108とターゲットセット112との関連付けは、ポリシーバインディング114と呼ばれ、ポリシー108と管理ターゲットセット112との間のM:Mの関係である。ターゲットセット112を使用することにより、ユーザは、単一アクションで、全てのマシンをチェックしたり構成したりすることができる。システム100は、ポリシーバインディングを介して、特定のポリシーを特定のターゲットの組に自動的に適用することができる。バインディングは、所望の挙動のタイプ(例えば、違反についてチェックする、ターゲットを準拠するよう変更するなど)を指定することもできる。
【0029】
宣言的意図として表される宣言型管理を使用して、ユーザは、ポリシー108が所与のターゲットセット112と比較されるよう要求することができ、こうしたユーザに、ターゲットセット112がポリシー108に準拠するかどうかを知らせることができる。宣言型管理ユーザは、所与のターゲットセット112がポリシーに準拠するようになるよう要求することもできる。システムは、ターゲットセット112を構成し、強制的に1つまたは複数の設定が準拠する結果をもたらすようにすることができる。これが可能ではない場合(例えば、CPU使用率が80%未満であることをポリシーが要求するなど)、システムは、ファセット104に構成可能とフラグを立て、非構成可能ファセットに依存するポリシーを構成しようとする試行を拒否することができる。以下の表は、開示された実施形態と共に使用することができるファセット例を表す。
【0030】
【表1】
【0031】
システム100は、例えばユーザが選択可能なポリシー自動化を介して進行中の監視および構成を提供することもできる。自動化が呼び出される場合、ユーザは、所望の挙動(例えば、違反についてチェックする、ターゲットを準拠するよう構成するなど)を指定することができる。一部の実施形態において、準拠していないターゲットセットの構成の有無にかかわらず、変更に対して、自動化されたポリシー監視を行うことができる。これによって、任意の逸脱の即座の警告をユーザに提供することができる。
【0032】
自動化の場合、ユーザは、ポリシーがいつ評価されるべきか(例えば、スケジュール通り、変更が行われるたびなど)を指定することもできる。あるいは、またはさらに、システムは、そのポリシーを自動的に実施することができる(例えば、ポリシーに違反する変更を許可しないなど)。したがって、システム100は、ユーザに、最小限のユーザ対話で構成を管理するための手段を提供することができる。
【0033】
dmf_policies、dmf_constraints、dmf_bindings、dmf_target_sets、dmf_target_type_to_eventsなど、DMFカタログ表を不揮発性ストレージ(SQL Serverインスタンスにおけるシステムデータベースなど)で保持することができる。DFMにより作成されたジョブをチェックするには、以下のクエリを使用することができる。
【0034】
【表2】
【0035】
図2は、データベースサーバの管理可能性を提供するシステム200を示す。ユーザは、そのライフサイクルにわたってデータベースサーバを管理することができ、ライフサイクルにわたってデータベースサーバにおいてホストされている複数のアプリケーションを管理することができる。管理可能性は、システムがユーザ生産性をどれぐらいうまく可能にするかの目安である。生産性は、様々なユーザ機能の使い易さ、親しみやすさ、直観性、および/または信頼性に正比例し得る。また、生産性は、管理機構の自動化、および一般的な一貫性のある方法で多数のインスタンスおよびデプロイメントを管理する能力のいずれか、または両方にも正比例し得る。システムがエンタープライズのポリシーに準拠するよう構成される前にリリースされないように、ソフトウェアインストール中、またはアプリケーションデプロイメント中にシステム200を組み込むことができる。
【0036】
システム200は、インターフェイス構成要素202、宣言型管理構成要素204、およびレンダリング構成要素206を含む。システム200は、ユーザが意図を入力できる簡単で管理可能な手段を提供し、最小限のユーザ対話での意図の達成を容易にするために、その意図を1つまたは複数の設定に自動的に適用することができる。ユーザは、インターフェイス構成要素202を介して、こうした意図を入力することができる。
【0037】
ユーザは、意図に関連してシステム200により実行される1つまたは複数の機能を指定することもできる。例えば、ユーザは、ポリシーが所与のターゲットセットに準拠することをシステムがチェックするよう要求することができる。ユーザは、所与のターゲットセットがポリシーに準拠するようになるよう要求することもできる。あるいは、またはさらに、ユーザは、ポリシー自動化を要求することができる。ポリシーの例には、それだけには限定されないが、命名規則ポリシー、名前制約ポリシー、セキュアログインポリシー、構成ポリシー、OffByDefaultポリシー、コンプライアンスポリシー、データベース管理ポリシー、分析サービスパッチレベルポリシー、バックアップポリシー、表面積構成ポリシー、サーバCPU使用率ポリシーなどがある。
【0038】
ターゲットを定義する間、これらのターゲットが、物理ユニット(例えば、個々のデータベースまたはファイルグループ)ではなく、論理ユニット(例えば、サーバインスタンスにデプロイされた個々のアプリケーションなど)に対応するとき、ユーザ生産性を向上させることができる。低レベルアクションへの変換の詳細は、システム200によって実行される。
【0039】
宣言型管理構成要素204は、ポリシーの意図を解釈し、認識し、または推論するとき(宣言的用語で表される場合がそうである)、監視および報告を自動化することができる。また、これは、ポリシーの準拠を助けるために、システム200の調整またはメンテナンスを自動化することもできる。自動調整は、ニーズおよび使用に基づく自動インデックス作成/削除を含み得る。自動調整は、稼働または非稼働(オンまたはオフ)にすることができ、アグレッシブ性(例えば、よりアグレッシブ、あまりアグレッシブではないなど)について構成することができる。また、自動調整は、例えばOLAPでの自動集計設計を含むこともできる。こうした設計は、キューブを構築することを含み得る(SQL Server Analysis Servicesは、学ぶにつれて集計を追加することができる)。このように、システム200は、妥当な性能で開始することができ、使用を介して改善され得る。
【0040】
例えば、意図を「私は1時間以内にデータを回復することができるだろう」と表すことができる。宣言型管理構成要素204は、データの回復が望まれる(例えば損失したデータを回復するなど)と推論することができ、システムがシャットダウンされると(例えば、故意に、または意図せず)、シャットダウンと実質的に同時にバックアップコピーを作成することがユーザの意図を達成することになると推論することができる。このバックアップは、最後のバックアップが1時間未満前に行われた場合でさえ、行われ得る。したがって、ユーザの意図は、ユーザの意図で特に言及していなかった状況が起こったときでさえ満たされる。しかし、意図が「1時間ごとのスケジュールでバックアップジョブを作成する」と表された場合、ユーザの意図は、明確ではない。ユーザは、1つには損失したデータを回復するためなど、様々な理由でバックアップを必要とし得るが、他の理由がいくつかあるかもしれない。さらに、「1時間ごとのスケジュール」という用語は、システム障害や損失したデータを回復することができることを考慮に入れていない。したがって、意図が宣言型言語で書かれている状態で、システム200は、その意図からのわずかな逸脱(例えば、大量のデータが1人または複数人のユーザによって操作されている場合、バックアップの作成は、1時間ごとより頻繁)がユーザの意図によりよく一致する状況で、ユーザの意図をよりよく推論することができる。
【0041】
様々な実施形態を使用して、宣言型で表される意図を理解することができる。こうした実施形態は、キーワードを認識し、それらのキーワードに関して共通のアクションを含む参照テーブルにそれらのキーワードを適用することを含み得る。他の実施形態は、入力された意図(単語文字列など)をその副構成要素(個々の単語など)に構文解析し、各副構成要素において1つまたは複数の機能を行うことを含み得る。類似の単語または業界で一般的に使用されている、またはこの特定のユーザまたはユーザグループによって使用されている他の単語を決定するために、各副構成要素またはキーワードを分析することができる。このように、反復アクションまたは類似のアクションを識別し、同じまたは類似の設定またはパラメータをアクションに合わせて構成することができる。他の実施形態は、構文エンジン(syntax engine)、機械学習、ルールベースのロジック、人工知能、推論エンジンなどを使用して、ユーザが要求した意図を決定または推論し、こうした意図を、多くのアプリケーションにわたって様々な低レベルの設定に動的に適用することができる。
【0042】
高レベルの意図を低レベルの設定に自動的に適用するために、宣言型管理構成要素204を、アプリケーションを構成するターゲット要素を識別するよう構成することができる。識別されたターゲット要素を、様々な個々のターゲット要素から成る単一のターゲットとして一括することができる。結果として得られたアプリケーションを、追加のシステムにデプロイすることができ、ポリシーは、アプリケーションにおけるこうしたオブジェクトを対象とすることができる。したがって、単一のアクションで、ユーザは、設定を確実に変更したり、多くのマシンにおけるポリシーの実施をチェックし、構成し、または自動化したりすることができる。宣言型管理構成要素204は、さらに、ターゲットサーバ上の他のオブジェクトを妨害することなくアプリケーションを取り除くことができる。
【0043】
自動化が呼び出されると、宣言型管理構成要素204は、要求された挙動を自動的に行うことができる。こうした挙動は、それだけには限定されないが、違反についてチェックする、ターゲットを準拠するよう構成するなどを含み得る。また、自動化によって、ユーザは、ポリシーがいつ評価されるべきか、またはポリシーをいつ実施すべきか、またはその両方を指定することもできる。
【0044】
宣言型管理構成要素204は、宣言型で表されるユーザの意図を分析し、こうした意図を達成するよう構成されるべき低レベルの設定にこうした意図を適用するよう構成することができる。また、保管またはデプロイメントの目的で、ポリシーおよびバインディングをスクリプトし、インポートし、エクスポートするよう構成することもできる。宣言型管理構成要素204は、ファセットの属性に基づいて、簡単であるか複雑であるかにかかわらず、構成可能な、かつ/または実施可能なポリシーを認識することができる。
【0045】
ファセットは、プロパティおよびコミットロジックにアクセスするためのディスパッチメソッドを含み得るBaseFacetなど共通インターフェイスから導出することができる。各ファセットは、読み取り専用または読み取り/書き込みプロパティであり得るプロパティを定義することができる。アダプタクラスは、BaseFacetインターフェイスから継承することができ、基礎を成すオブジェクトモデルクラスを集合させることができる。アダプタは、オブジェクトモデルクラス(および他のロジック)の物理的なプロパティを使用して、ファセットプロパティを公開することができる。
【0046】
レンダリング構成要素206は、宣言型管理構成要素204により行われる様々な機能に関して、情報をユーザに提供することができる。こうした情報は、ディスプレイ画面上で表示したり、ファイルに保存したり、印刷したりすることができるレポート形式で提示することができる。自動ポリシーチェックを、システム200により自律的に行うことができるアクションまたは一連のアクションと結合することができる。アクションおよび通知を、ポリシー評価の成功または失敗と関連付けることができる。こうした通知は、もしあるとしたら違反の重大度および要求された通知タイプに応じて、セキュリティポリシーが失敗した場合、電子メールを指定された1人の人または1組の人に自動的に送信すること、音声通知を生成すること、視覚通知(ワーニングステートメントなど)を生成すること、または他のアクションを行う(1つまたは複数の機能を無効にするなど)ことを含み得る。
【0047】
また、ユーザは、レンダリング構成要素206にアクセスすることにより、任意のターゲットのポリシーを表示することもできる。特定のターゲットは、多くの異なるポリシーに準ずることになり、一部のポリシーは、ターゲット自体に適用されている場合がある。ターゲットが属する対象のアプリケーションが存在するか、ターゲットをホストするマシンまたはマシンの上位グループにターゲットが結合されていることがある。ユーザは、ターゲットを制約するポリシーまたはポリシーの一部分を表示することができる。このように、ユーザは、ターゲット、ポリシー、または制約が依然として適用可能であるか、または1つまたは複数のパラメータに対して変更を行うべきかを決定することができる。
【0048】
ポリシーへの準拠またはポリシーの違反に関する情報を、フィードバックループ208を介してインターフェイス構成要素202または宣言型管理構成要素204に中継することができる。こうしたフィードバックによって、システム200は、ターゲットまたはポリシーが1つまたは複数のユーザ定義されたパラメータに違反する場合、ターゲットまたはポリシーを所望のユーザの意図を達成するよう自動的に構成することができる。
【0049】
ユーザがシステムの状態(ポリシーへの順守など)を監視(報告および分析など)し、傾向または問題を分析することを望む場合、宣言型管理構成要素204は、(フィードバックを介して)ポリシー評価の結果を捕捉し、報告および分析のために、取得されたターゲットの状態の履歴をオペレーショナルデータウェアハウス(operational data warehouse)にコンパイルすることができる。ユーザは、こうした報告を使用して、システムの状態を監視することができ、任意の不備を手動で訂正することができる。また、ユーザは、システム200に、(自動で、またはユーザの要求に応じて)不備を訂正するよう指示することもできる。
【0050】
システム200は、拡張可能であり、したがって、個々の体験(例えば、パーティショニングを管理するポリシー、データ回復可能性を管理するポリシーなど)は、システム200の拡張である。システムのインターフェイス構成要素も他のサービスも、特定のファセットの特定のターゲットタイプに依存しない。この分離によって、ユーザは、単にプログラミングモデルを拡張することによって、新しい宣言型管理ファセットを増分的に追加することができる。
【0051】
システム200は、バックアップ/復元、インデックス調整/メンテナンス、物理的破損からの自動回復、背景メンテナンス、および/またはパーティション管理など、様々な特徴を提供することもできる。自動システム200は、通常のメンテナンスタスク、自動デフラグメンテーション、自動縮小/圧縮、自動一貫性検査、および/または改良された自動統計分析を含み得る。一部の実施形態では、システム200は、データベース作成時に作成されたデフォルトのバックアップメンテナンスプランを提供することができ、またはデフォルトのプランをカスタマイズすることができる。パーティション管理は、スライディングウィンドウ方式の自動メンテナンス(新しいパーティション/パーティション機能を作成する、パーティションをマージする(7日を1週間になど)、パーティションをアーカイブするなど)を含み得る。
【0052】
物理的破損からの自動回復は、システム200によって容易にされ得る。これは、自動一貫性検査によって、または通常の操作中の破損の検出によってトリガすることができる。ルール(例えば、ルールベースの構成要素、機械学習構成要素など)は、復元戦略(例えば、インデックスの再構築、ページの復元、ファイル/ファイルグループの復元、データベース全体の復元など)を決定することができる。
【0053】
システム200は、プログラミングモデル、ユーザインターフェイス、および管理サービスの3つの層でサポートすることができる。プログラミングモデルによって、同じ概念を複数のツールに公開することができ、ユーザアクションは、スクリプト可能とすることができ、ユーザは、管理アプリケーションを構築することができる。ユーザインターフェイス(グラフィカル、コマンドラインなど)は、プログラミングモデルの上に構築することができる。管理サービスは、ユーザアクションを自動化する能力を提供し、ランタイムサービスのホスト環境を提供することができる。
【0054】
主としてグループ(CPU、ストレージ、およびメモリなど)をプロビジョニングすることによって、エンタープライズ管理は、システム200によって容易にすることができる。また、システム200は、グループの構成およびメンテナンスのプランを適用し、実施し、グループのメンテナンス操作の状況を監視することもできる。また、グループ構成およびメンテナンスのプランのための再利用可能なテンプレート、およびバックアップ、データベース一貫性検査(dbcc)、およびポリシーの監視のためのそのまま使えるテンプレートを提供することもできる。システム200は、グループ構成およびメンテナンスのプランの管理を変更するよう構成することができる。一部の実施形態では、システム200は、アプリケーションをサーバのグループにデプロイし、グループ内でアプリケーションを動的に再割り振りすることができる。
【0055】
グループ管理のためのランチパッド、正常性および状況監視のロールアップなど、フェデレーテッドサーバの単一のシステムビューを備えたサーバグループの形式概念があり得る。グループ構成、メンテナンス、およびデータ収集ポリシーを提供することができる。また、グループポリシー準拠の監視、実施、および監査、並びにサーバのグループへのアプリケーションのデプロイメントを提供することもできる。
【0056】
システム200は、データベースアプリケーションおよび環境の宣言型のポリシーベースの管理を提供することもできる。性能要件、セキュリティポリシー、信頼性要件など、データベースアプリケーションの所望の操作上および管理上の挙動を定義するためのポリシーベースのフレームワークを提供することができる。ポリシーは、デプロイメント中、またはデプロイメント時に定義することができる。データベースシステムは、定義された挙動の準拠を監視し、適切な場合、実施することができる。このフレームワークは、変更がコミットされる前にポリシーをチェックしたい、またはDDLが実行されるたびにサーバポリシーを実施したい任意の構成要素によって使用することができる。また、これによって、サードパーティ開発者は、同じフレームワークを使用してポリシーを実施することもできる。
【0057】
システム200は、宣言型ポリシーを使用して単一のリレーショナルデータベースを管理する能力、および宣言型ポリシーを使用してリレーショナルデータベースのグループを管理する能力を提供することができる。また、データベースアプリケーションのポリシー駆動型データベース構成およびポリシー駆動型デプロイメントも提供される。データベースのグループの構成、メンテナンス、および監視のためのポリシー駆動型エンジンによって、データベース管理者は、何を行うべきかを指定することができ、システムは、こうしたアクションを複数のサーバにわたって行うことができる。また、データベースのグループにおける全てのデータベースの構成、メンテナンス、および監視のために、何が行われるべきかを指定する能力も提供され、システムは、こうしたアクションを複数のサーバにわたって行う。
【0058】
図3は、ユーザの意図をデータ管理製品に動的に適用するシステム300を示す。システム300は、システム300が解釈することができる論理レベルでの高レベルポリシーとして管理の意図を捕捉するように構成することができる。システム300は、入力(ターゲット、ポリシー、意図、目標、要求など)を受け付けるよう構成することができるインターフェイス構成要素302を含む。こうした入力は、システム管理者などユーザから(テキスト、音声など)、またはシステム300からのフィードバックとして受信することができる。宣言型管理構成要素304は、入力を処理するよう構成することができ、処理された入力の結果は、レンダリング構成要素308によって提示(例えば表示)または捕捉(例えば報告)される。例えば、レンダリング構成要素308は、結果をディスプレイ画面に、音声手段を介して提示したり、後で報告する目的で、情報を捕捉したりすることができる。
【0059】
レンダリング構成要素308は、様々な形の監視および報告を含めて、ターゲットの準拠または非準拠に関する情報をユーザに提示することができる。ユーザは、レンダリング構成要素308に、任意のターゲットに対して効力のあるポリシーを提供し、ターゲットを直接制約する任意のポリシーの部分を提示するよう要求することができる。
【0060】
あるいは、またはさらに、レンダリング構成要素308は、フィードバックループ308を介して、フィードバックを入力構成要素302または宣言型管理構成要素304に提供することができ、このように、システム300は、こうした機能を自動的に行うよう構成されている場合、意図に従って1つまたは複数の設定値を連続的に監視し、構成することができる。フィードバックループ308によって、システム300は、自己管理、自己修復、および自己調整することができる(例えば、単にリレーショナルではなく、ボックスにわたって働く)。例えば毎日の使用から様々な設定または「ノブ」を取り除くことによって、操作においてゼロタッチを可能にするように(ユーザ対話を最小限に抑えるなど)、ポリシーを予めセットアップすることができる。
【0061】
構文解析構成要素310および構文エンジン312もシステム300に含まれ得る。これらの構成要素310、312は、示されているように、宣言型管理構成要素304の副構成要素または別個の構成要素とすることができる。構文解析構成要素310は、宣言型言語で表すことができる1つまたは複数のユーザの意図を取得し、こうした言語を分析できる構成要素に分割することができる。例えば、ユーザは、意図「私は1時間以内にデータを回復することができるだろう」を入力することができる。構文解析構成要素310は、センテンスをその単語および句に分割する(例えば、私、だろう、ことができる、回復する、データを、以内に、1時間など)。この情報は、特定のユーザの意図を導出するために各単語または句を分析する構文エンジン312によって評価することができる。
【0062】
「私」、「だろう」など、いくつかの単語または句は無視することができる。他の単語、例えば「回復」などは、この用語がこのユーザ、他のシステムユーザ、または業界内の一般的な用語により表された別の方法があるかどうかを決定するために評価することができる。例えば、システムは、単語「回復」を「バックアップ」、「障害」、「損失」などの単語と関連付けることができる。これによって、宣言型管理構成要素304は、より広いユーザの意図を推論することができ、この意図を、類似の単語または句を使用する複数のアプリケーションに適用することができる。
【0063】
図4は、高レベルの意図を低レベルの設定に自動的に適用することを容易にするシステム400を示す。システム400は、ユーザが、ポリシーをユーザの意図に準拠させるためにシステムをどのように構成するかではなく、システムがどのようになるべきか(ポリシー)を定義することができるようにすることによって、ユーザ対話を軽減する。ポリシーは、セキュリティまたはアクセス制御、性能、容量、操作、セットアップまたはパッチ、開発、宣言型管理など、いろいろな異なるカテゴリと関連し得る。ユーザは、意図を、物理的実装の仕様から抽象された論理レベルで一度定義することができ、システムは、それを複数回適用する。システム400は、データ管理製品(SQL Serverなど)に収容することができる。さらに、システムは、アクションをもたらす様々なモードを有することができる。こうしたモードは、それだけには限定されないが、準拠についてのチェック、準拠のための構成、準拠の実施などを含む。
【0064】
システム400は、インターフェイス構成要素402、宣言型管理構成要素404、およびフィードバックループ408を介してシステムにフィードバックを提供することができるレンダリング構成要素406を含む。様々なシステム400の構成要素は、宣言型管理構成要素404の1つまたは複数の機能を容易にするために、個別に、または一緒に動作することができる。こうした構成要素には、セキュリティ構成要素410、履歴構成要素412、集計構成要素414、構成構成要素(configuration component)416、最適化構成要素418、およびバインディング構成要素420などがある。これらの構成要素410〜420は、図示のように、独立していてもよく、または宣言型管理構成要素404の副構成要素であってもよい。
【0065】
インターフェイス構成要素402は、グラフィカルユーザインターフェイス(GUI)、コマンドラインインターフェイスなどとすることができる。ユーザは、インターフェイス構成要素402との対話を介して、宣言型管理構成要素404の結果として生じた出力(例えば、1つまたは複数の設定への変更)を選択的に構成することができる。インターフェイス構成要素402およびユーザインターフェイス例に関するさらなる詳細について、以下で説明する。
【0066】
セキュリティ構成要素410は、1つまたは複数のセキュリティ要素または統合セキュリティモデルを提供するよう構成することができる。セキュリティ構成要素410は、例えばユーザに関連付けられている一意の識別(ユーザ名、ユーザパスワードなど)を介して、ユーザに関する情報を集めることができる。ユーザが閲覧の権限を有するターゲットセットまたはポリシーの部分のみを表示することができるように、ユーザごとに予め定義されたセキュリティレベルに基づいて、セキュリティ構成要素410は、レンダリング構成要素406と選択的にインターフェイスすることができる。このように、システム400は、ユーザが許可されていない、またはユーザが十分な情報を有しておらず、したがって変更すべきではない設定に対する許可されていない変更、追加、削除などを減らすことができる。
【0067】
さらに、またはあるいは、セキュリティ構成要素410は、予め定義された構成など、特定の方法または順序でポリシーをデプロイするよう構成することができる。こうした予め定義された構成は、高レベルでデプロイされるポリシーが低レベルポリシーに取って代わることができるようにするなど、様々なタスクを含む。例えば、サーバグループポリシーは、データベースポリシーより高い優先度を有することができる。セキュリティ構成要素410は、ファセットを準拠させないようにする試行を検出し、こうした試行を防ぐこともできる(例えば、システムは、ポリシーを「実施する」ことができる)。しかし、他の多数の構成を使用することができ、適切なセキュリティレベルを有するユーザによって構成することができることを理解されたい。
【0068】
履歴構成要素412は、前のポリシー、ポリシーバージョン、ターゲット、ファセットなどに関する情報を維持することができる。これは、それぞれの関連付けおよび関連性を決定するために、前のポリシー、ポリシーバージョン、ターゲットなどにアクセスする能力を、1つまたは複数のシステム400の構成要素に提供することができる。こうした履歴情報は、1つまたは複数のシステム400の構成要素に関連付けられている記憶媒体において、取り出し可能なフォーマットで維持することができる。例えば、システム400は、メモリおよび/または情報を格納することができる他の何らかの媒体を含み得る。
【0069】
履歴情報は、宣言文(意図など)を低レベルの設定に変換するために、システム400によって使用することができ、それによってシステム400の構成の自動化が可能になる。例えば、ユーザは、アプリケーションを構成するターゲット要素を示すことができ、こうしたアプリケーションは、1つのターゲットからインポートされ、保存され、後で1つのユニットとして新しいターゲットにデプロイされ得る。この情報は、レンダリング構成要素406を介してユーザに提示することもでき、したがってユーザは、異なるポリシーおよびポリシーバージョンの履歴、および管理ターゲットとのその関連付けを表示することができる。ユーザは、こうした情報を使用して、システム400をさらに構成したり、特定のシステム400の構成を決定したり、システム400の過去の状態に関する他の情報を取得したりすることができる。
【0070】
物理的ステートメントが物理的なターゲットに適用されている状態で、ユーザは、そのアクションにおいてサーバ固有またはアプリケーション固有のアーティファクトをやむを得ず使用することが多く、これによって、多くのサーバにおける多くのアプリケーションにわたって意図を広く適用することがほとんど不可能になる。この問題を克服するために、集計構成要素414は、規模の自動化を含めて、規模の管理を可能にするよう構成することができる。したがって、ユーザは、同じ管理ファセットが別個の方法で構成されるオブジェクトによって表されるとき、個々のオブジェクトを構成するために特化したセマンティクスを学んだり覚えたりする必要はない。例えば、ポリシーは、単一のターゲットまたはターゲットのグループに対して適用することができる(明示的に、または自動化を介して)。ポリシーは、管理ファセットに対して適用することができるため、インターフェイス構成要素402を使用して単一ポリシーを入力することによって、ユーザは、この管理ファセットを表す複数のオブジェクトを構成することができる。しかし、アプリケーションを対象とするポリシーは、そのアプリケーションに属するサーバ上のこれらのオブジェクトのみに適用されるべきである。あるいは、またはさらに、集計構成要素414は、別個の管理ターゲットからの設定など、別々の設定を抽象することができる。例えば、リソース消費ファセットは、オペレーティングシステムファイルシステムおよびデータサーバ上の残りの空のページを監視し、構成することができる。
【0071】
構成構成要素416によって、ユーザは、1つまたは複数の要素を自動的に構成するために、システム400の1つまたは複数の要素(ポリシー、ターゲットなど)を選択的に構成することができる。例えば、ユーザは、アドホックベースで、宣言型管理構成要素404に、所与のターゲットが所与のポリシーに準拠するかどうかを確認するよう指示することができる。システム400は、ポリシーの準拠を強制するために、準拠していないターゲットにおいて別のアクションを再構成したり実行したりすることができる。
【0072】
ユーザは、拡張可能アプリケーションプログラムインターフェイス(API)など、プログラミングモデルを拡張することによって、新しいファセットまたはターゲットを増分的に追加することができる。APIは、1組のルーチン、プロトコル、およびツールを介してソフトウェアアプリケーションを構築することを容易にし、開発者および/またはプログラムは、APIを使用して、動作環境およびユーザのニーズと一致するカスタマイズされたアプリケーションを構築することができる。ファセットを拡張可能APIに1つの構成体として含めることによって、ユーザは、各自のファセットを作成して、各自の管理目標を捕捉し、実行することができる。ターゲットを拡張可能APIに1つの構成体として含めることによって、追加のターゲットを、新しいターゲットを実装するユーザまたはソフトウェア開発者によるシステム400の制御下に置くことができる。
【0073】
最適化構成要素418は、システム400の1つまたは複数のパラメータを最適化するよう構成することができる。最適化構成要素418によって、システム400のアプリケーションは、複数のサーバおよび複数の製品(ベンダー)にわたって拡張することができる。ユーザは、ポリシーの対象をそれらのオブジェクトを含む階層のルートとすることによって、多くのオブジェクトをポリシー下に置くことができる。したがって、ポリシーは、サーバ上の単一のオブジェクトからエンタープライズまで延びる階層の任意のレベルを対象とすることができる。
【0074】
類似のサーバのグループ(マルチサーバ構成など)の場合、システム400は、共通構成オプションを設定する、グループ構成への準拠を実施する、および構成の変更を監査する能力を提供する。システムは、サーバのグループの共通メンテナンスプランおよびジョブを構成することによって、サーバグループメンテナンスの簡略化を容易にすることができる。サーバのグループのメンテナンスタスクの状況を監視する能力。また、サーバグループメンテナンスの簡略化は、メンテナンスプラン、ジョブ、およびスクリプトの中央リポジトリ、並びにメンテナンスプラン変更を監査する能力によっても提供され得る。
【0075】
システム400は、監視コンテキスト(例えば、使用されたサーバ下または上)および/または性能/オペレーショナルデータ収集に基づいて、サーバのサブセットに焦点を当てるために、サーバのグループの一般的な正常性を監視する能力を提供することによって、複数のサーバの監視を容易にすることができる。
【0076】
一部の実施形態では、最適化構成要素418は、ライフサイクル全体の自動化を可能にすることによって、自己管理システムを提供するよう構成され得る。これは、システム400のデプロイメントの自動構成、自動監視、自動準拠報告、および自動メンテナンスおよび調整を含み得る。
【0077】
バインディング構成要素420は、1つまたは複数のポリシーの評価を効率的に行うためにバインディング評価(binding evaluation)を行うよう構成することができる。バインディング構成要素420は、M:M関係を有する(例えば、ターゲットセット当たり1つのポリシーがある)ポリシーとターゲットセットとの間の関連付けを提供することができる。すなわち、バインディングは、1つのポリシーと1つのターゲットセットから成る。1つのポリシーは、複数のバインディングによって参照され得る。1つのターゲットセットは、複数のバインディングによって参照され得る。バインディング挙動は、サーバのグループを類似の方法で管理されるように確立するために、標準データ複製技術(トランザクション複製など)を使用できるように、データ駆動とすることができる。一部の実施形態では、バインディング評価は、ターゲットセットによって記述された1組のオブジェクトを計算し、全ての制約を各ターゲットに適用することによって、クライアントコードで実行することができる(例えば、その制約によって含まれる式ツリーにおいてコードを実行するなど)。ポリシーバインディングを、管理サービスのための他のメタデータと一緒に、データベースまたは他のストレージメディアなどに格納することができる。
【0078】
一部の実施形態では、バインディング評価を、サーバコンテキストで実行することができるクエリに変換することができる。こうしたクエリは、バインディングにおける制約のいずれかに違反するオブジェクトを戻すことができる。ターゲットノードを記述するユニフォームリソース名(URN)で開始し、バインディングにおける制約ごとに、その制約を満たさない行を取得するためのみに、制約表現に含まれる情報が使用され、それを無効にする変換プロセスを使用することができる。バインディング評価に対応するURNを取得することができる。ほとんどの場合、このURNは、列挙子によりクエリに変換することができ、クエリへのバインディングを低減することができる。限定ではなく例示の目的で、以下は、データベース「JM_Accounts」において、ユーザが定義し、格納した全ての手順の名前が「JM_」で開始する制約の(英語での)例である。
【0079】
【表3】
【0080】
次に図5を参照すると、開示された実施形態を使用するイベントディスパッチ機構500が示されている。DDLトリガイベント502、トレースイベント504、WMIイベント506などのイベントは、複数のデータソースから収集され、処理される前にイベントを格納するために使用される一時テーブルであり得るステージングエリア508に配置され得る。どのバインディング510(システム500に存在する)がイベント508に関与し得るかを決定するために、アルゴリズム、メソッド、または他の技術を使用することができる。こうした決定は、バインディング510に存在する制約516によって使用される(登録された)ファセット514の既存のアダプタ512(例えば、システム500に登録されるアダプタについての情報)に基づいて行うことができる。バインディング510、アダプタ512、ファセット514、および制約516は、4ブロックテーブルの結合(four−block table join)518を表すことができる。バインディングは、バインディングアクティベーション(binding activation)を含む履歴テーブルであるバインディングアクティベーション520に含まれ得る。バインディングは、522に示されているように、稼働されたり、評価されたりすることができる。定義された結果および挙動に一部分基づいてカスタムアクションを、例えば、変更を防いだり、後の分析のために変更を報告したりするために行うことができる。バインディング評価は、同じトランザクションコンテキストを、イベントを生成した操作と共有することができる。操作の防止は、バインディングを評価した手順におけるトランザクションをロールバックすることを含み得る。
【0081】
図6は、開示された実施形態に従って1つまたは複数の特徴の自動化を容易にする機械学習を使用するシステム600を示す。システム600は、ユーザインターフェイス構成要素602、宣言型管理構成要素604、レンダリング構成要素606、フィードバックループ608、および機械学習構成要素610を含む。ユーザは、ユーザインターフェイス構成要素602との対話を介して、様々なポリシー、目標、意図を入力することができる。この情報は、システム600を動的に構成するために、機械学習構成要素610とインターフェイスする宣言型管理構成要素604に伝えられる。
【0082】
システム600は、様々な態様を実行するための様々な機械学習方式を使用することができる。一部の実施形態によれば、人工知能を使用することができる。人工知能ベースのシステム(例えば、明示的および/または暗黙的に訓練された分類器など)を、本明細書に記載されている1つまたは複数の態様による推論および/または確率的決定および/または統計ベースの決定の実行とともに使用することができる。様々な分類方式および/またはシステム(例えば、サポートベクトルマシン、ニューラルネットワーク、エキスパートシステム、ベイジアンビリーフネットワーク、ファジー論理、データフュージョンエンジン(data fusion engine)など)を、対象の実施形態に関連する自動アクションおよび推論されるアクションの実行に関連して使用することができる。
【0083】
例えば、特定のターゲットセットがポリシーに準拠しているかどうかを決定する人工プロセスは、自動分類器システムおよびプロセス(例えば、人工知能構成要素など)を介して容易にすることができる。さらに、同じまたは類似のリソースを有する複数のポリシーを要求している場合、特定の状況において使用すべきポリシーを決定するために、分類器を使用することができる。
【0084】
分類器は、入力属性ベクトル、x=(x1、x2、x3、x4、xn)を、入力があるクラスに属する、すなわちf(x)=信頼性(クラス)である信頼性にマッピングする関数である。こうした分類は、確率的および/または統計ベースの分析(例えば、分析ユーティリティおよびコストをファクタリングする)を使用して、ユーザが自動的に実行されることを望むアクションを予知または推論する。データベースシステムの場合、例えば、属性は、単語または句、または単語から導出された他のデータ固有の属性(データベーステーブル、主要な用語の存在など)とすることができ、クラスは、対象のカテゴリまたはエリアである(優先度のレベルなど)。
【0085】
サポートベクトルマシン(SVM)は、使用できる分類器の一例である。SVMは、可能な入力の空間内で、非トリガイベントからトリガ基準を分離するよう試行する超曲面を見つけることによって動作する。直観的には、これによって、訓練データに近いが同じではないデータのテストのために、分類が正確になる。他の有向および無向のモデル分類手法には、例えば、ナイーブベイズ、ベイジアンネットワーク、決定樹、ニューラルネットワーク、ファジー論理モデル、および独立性の異なるパターンの提供を使用することができる場合には、確率分類モデルなどがある。本明細書で使用される分類は、優先順位のモデルを開発するために使用される統計的回帰も含む。
【0086】
対象の明細書から容易に理解できるように、1つまたは複数の実施形態は、明示的に訓練された(例えば一般的な訓練データを介してなど)、および暗黙的に訓練された(例えば、ユーザ挙動を観察することによって、外部の情報を受信することによって)分類器を使用することができる。例えば、SVMは、分類コンストラクタ(classifier constructor)および特徴選択モジュール内の学習フェーズまたは訓練フェーズによって構成される。したがって、分類器は、それだけには限定されないが、ポリシーまたはターゲットを構成すべきとき、格納されているどのポリシーを実行すべきかなど、予め定められた基準に従って決定することを含めて、いくつかの関数を自動的に学習し、実行するために使用することができる。この基準は、それだけには限定されないが、変更すべきデータまたはアプリケーションの量、ポリシーまたはターゲットのタイプ、ポリシーまたはターゲットの重要度などを含み得る。
【0087】
一部の実施形態によれば、機械学習構成要素610は、ルールベースの論理方式を使用することができる。この実施形態によれば、データベースまたはドメイン内のポリシーまたは低レベルの設定を制御し、かつ/または規制するために、実装方式(例えばルール)を適用することができる。ルールベースの実装は、予め定義された基準に基づいてポリシーまたはターゲットセットを自動的および/または動的に規制することができることを理解されたい。それに応答して、ルールベースの実装は、任意の所望の基準(例えば、ポリシーまたはターゲットのタイプ、ポリシーまたはターゲットのサイズ、ポリシーまたはターゲットの重要度、データベース所有者、ユーザ識別など)に基づいて予め定義されたおよび/またはプログラムされたルールを使用することによって、特定のポリシーを許可し、拒否し、かつ/または変更することができる。
【0088】
一例によれば、ユーザは、予め定義されたタイプのリソースにアクセスするために信頼できるフラグおよび/または証明書を必要とし得るが、特定のデータベース内の他のリソースは、こうしたセキュリティクレデンシャルを必要としないというルールを確立することができる。任意の選好は、ルールの形で予め定義したり、予めプログラミングしたりすることによって実行することができることを理解されたい。
【0089】
上記で示され、記載されたシステム例に鑑みて、開示された主題に従って実装され得る方法は、図7および8のフローチャートを参照すると、よりよく理解されよう。説明を簡単にするために、この方法は、一連のブロックとして示され、記載されているが、特許請求された主題は、ブロックの数または順序によって制限されず、一部のブロックは、本明細書に示され、記載されているものとは異なる順序で、かつ/または他のブロックと同時に行われ得ることを理解されたい。さらに、以下に記載される方法を実施するために、示されている全てのブロックが必要というわけではない。ブロックに関連付けられている機能は、ソフトウェア、ハードウェア、その組み合わせ、または他の適した手段(装置、システム、プロセス、構成要素など)によって実施され得ることを理解されたい。さらに、以下に、および本明細書を通じて開示されている方法は、こうした方法を様々な装置に運び、移すことを容易にするために、製品上に格納することができることをさらに理解されたい。方法を、代わりに、例えば状態図に一連の相関状態またはイベントとして表すことができることを当業者であれば理解されよう。
【0090】
図7は、ユーザの生産性の向上を容易にする方法700を示す。方法700は、702で開始し、意図が受信されると、こうした意図を宣言型言語で表すことができる。704で、意図を達成するよう構成すべき設定に関する決定が行われる。こうした設定は、高レベルの設定から低レベルの設定までを含み得る。706で、適切な設定が最小限のユーザ対話により自動的に構成される。
【0091】
図8は、データ管理製品を構成する方法800を示す図である。方法800は、802で、情報の受信により開始し、こうした情報はターゲット、ポリシー、ファセット、制約、およびデータ管理製品に関連する他の情報を含み得る。ファセットは、「get」および「set」を有し得る。制約は、ファセットを、例えばブール値に対して評価することができる。制約当たり1つのファセット、およびポリシー当たり1つの制約があり得る。ポリシーは、チェック、構成、実施などの挙動を有する。804で、設定および/またはアプリケーションの間の類似性が確立される。
【0092】
806で、宣言型言語で表すことができる意図が受信される。808で、ポリシーをターゲットセットにマッピングするポリシーバインディングが行われる。ポリシーが評価されると、電子メールやイベントログ入力などのアクションがトリガされ得る。一部の実施形態では、ポリシーは、スケジュール通りに評価され得る。810で、制約または違反を評価することができる。違反がある場合、812で、ターゲットまたはポリシーを変更するなど、適切なアクションを取ることができる。814で、監視および報告の機能が提供され、810で違反が見つけられたかどうかが報告され得る。
【0093】
開示された実施形態を鑑みて、様々なユーザインターフェイス例および機能的シナリオが提示される。ユーザインターフェイスは、インターフェイス構成要素によって提供することができる。例えば、インターフェイス構成要素は、グラフィカルユーザインターフェイス(GUI)、コマンドラインインターフェイスなどを提供することができる。例えば、ユーザにロード、インポート、読み取りなどの領域または手段を提供するGUIをレンダリングすることができ、1つまたは複数の意図、ポリシー、ターゲットは、こうした結果を提示するための領域を含み得る。これらの領域は、ダイアログボックス、スタティック制御、ドロップダウンメニュー、リストボックス、ポップアップメニュー、編集制御、コンボボックス、ラジオボタン、チェックボックス、プッシュボタン、グラフィックボックスを含む既知のテキストおよび/またはグラフィック領域を含み得る。さらに、ナビゲーション用の縦および/または横のスクロールバーや、領域が可視かどうかを決定するためのツールバーボタンを使用することができるなど、情報伝達を容易にするユーティリティを提供することができる。例えば、ユーザは、情報を編集制御に入力することによって、システムと対話することができる。
【0094】
ユーザは、マウス、ローラーボール、キーパッド、キーボード、ペン、および/または音声稼働など、様々な装置を介して情報を選択し、提供するための領域と対話することもできる。一般に、情報伝達を開始するために、情報の入力後、プッシュボタンなどの機構やキーボード上の入力キーを使用することができる。しかし、開示された実施形態はそのように限定されていないことを理解されたい。例えば、チェックボックスの単なる強調表示によって、情報伝達を開始することができる。別の例では、コマンドラインインターフェイスを使用することができる。例えば、コマンドラインインターフェイスは、テキストメッセージを提供することによって、ユーザに情報を入力するよう要求することができる(例えば、ディスプレイ上のテキストメッセージ、および音声トーンによるなど)。次いで、ユーザは、インターフェイスプロンプトで提供されるオプションに対応する英数字入力や、プロンプトで提起される質問への回答など、適した情報を提供することができる。コマンドラインインターフェイスは、GUIおよび/またはAPIと共に使用することができることを理解されたい。さらに、コマンドラインインターフェイスは、グラフィックサポートが限られているハードウェア(例えばビデオカード)および/またはディスプレイ(白黒、EGAなど)、および/または低帯域幅通信チャネルに関連して使用することができる。
【0095】
次に図9を参照すると、ユーザインターフェイスのスクリーンショット例が示されている。ポリシーまたは制約の検索および選択を容易にすることができるオブジェクトブラウザ900が示されている。オブジェクトブラウザ900は、ユーザがポリシーまたは制約のパラメータを操作するように、様々な選択を提供することができる。データベース904、セキュリティ906、サーバオブジェクト908、複製910、管理912、通知サービス914、サーバエージェント916、および他の所望のサブディレクトリなどのサブディレクトリを含むディレクトリ902を選択することができる。各サブディレクトリ904〜916は、ディレクトリが拡張可能であることを示す、各サブディレクトリ904〜916の横に配置されているプラス「+」記号によって示されるように、さらにサブディレクトリを有し得る。ディレクトリが圧縮され得る、または展開できないことを示す、選択されたディレクトリの隣のマイナス「−」記号によって示されるように、管理サブディレクトリ912が選択される。
【0096】
管理サブディレクトリ912下は、ポリシー1 920、ポリシー2 922、およびポリシーN 924など、多数のポリシーを含み得るポリシーサブディレクトリ918とすることができる。この場合、Nは、ゼロ以上の数字である。管理サブディレクトリ912は、制約1 928、制約2 930、および制約N 932など、多数の制約を含み得る制約サブディレクトリ926を含むこともできる。この場合、Nは、ゼロ以上の数字である。
【0097】
単一サーバは、様々な実施形態に従って自動化された方法で管理することができる。ポリシーバインディング、バインディング、制約、またはファセット(ノードなど)において様々なアクション(表示、作成、編集、削除、適用、インポートなど)を行うために、ユーザは、オブジェクトブラウザ900のドロップダウンリストから所望の項目を選択することができる。ターゲットノードは、ノードを強調表示し、マウスの右ボタン(または等しいファンクション)を使用して、所望のアクションを選択することによって選択することができる。
【0098】
例えば、ポリシーバインディングにおいて様々なアクションを行うために、ユーザは、ノードを選択することができる(例えば、ノードを強調表示し、マウスの右ボタンを押下するなど)。「ポリシーバインディングプロパティ」ウィンドウまたは画面を呼び出すために、ドロップダウンメニューおよびリンクから、「ポリシーバインディング管理」などを選択することができる。ポリシーバインディングを表示するには、「デプロイされたポリシー」タブを選択することができる(例えば、マウスボタンでクリックするなど)。デプロイされたポリシーによって、ユーザは、ノードまたはその子孫にデプロイされたポリシーバインディングを表示することができる。ノードにおける有効なポリシーバインディングを表示するには、ユーザは、「ポリシーバインディング管理」ドロップダウンメニューから「有効なポリシー」タブを選択することができる。
【0099】
また、「ポリシーバインディング管理」ドロップダウンメニューによって、ユーザは、ポリシーバインディングを作成、編集、または削除することもできる。ポリシーバインディングを作成するには、「ポリシーバインディングプロパティ」ウィンドウまたはユーザ画面を呼び出すことができる「新規」ボタンが選択される。組み合わせボックスからポリシーを選択することができ、望ましい場合、スケジュールを選択することができる。選択されたポリシーバインディングを作成するには、ユーザは、変更を受け付けることができる(例えば「OK」ボタンをクリックする)。
【0100】
ポリシーバインディングを編集するには、「編集すべきポリシーバインディング」を選択(例えば強調表示)し、「編集」ボタンを選択して、「ポリシーバインディングプロパティ」ウィンドウを開いて編集することができる。ポリシーバインディングを削除するには、削除すべきポリシーバインディングを選択する(例えば強調表示する)ことができる。選択されたポリシーバインディングを削除するには、「削除」ボタンをクリックし、または選択することができる。
【0101】
図10は、ポリシーを適用するためのユーザインターフェイス例を示す図である。アドホック式の管理において、ポリシーは、オブジェクトブラウザ900または登録されたサーバペインにおいて、ターゲットノードを選択することによって適用することができる。ドロップダウンメニューから「ポリシーの適用」を選択して、ポリシーの適用ウィンドウ1000を呼び出すことができる。
【0102】
ロードされたポリシー1002またはポリシーファイル1004を選択するかどうかの決定が行われ、所望のアクションを選択することができる。示されているように、ロードされたポリシー1002が選択される。ポリシーのリスト1006から特定のポリシーを選択する、またはファイルを指定1008するために、ドロップダウンメニューを提供することができる。適用またはOKボタン1010を選択またはクリックすることによって、ポリシーを適用することができる。キャンセル1012ボタンを選択することによって、全アクションがキャンセルされ、ポリシーの適用ウィンドウ1000が閉じる。
【0103】
ポリシーに対してアクションを行う(表示、作成、編集、削除、インポートなど)には、ポリシーがオブジェクトブラウザ900から選択され、適したアクションがマウスボタンの右クリックによって呼び出されるドロップダウンメニューから選択され得る。「新規」の選択によって、「ポリシープロパティ」ウィンドウが呼び出される。ポリシーを編集するには、所望のアクションを選択する、コンボボックスから所望の制約を選択する、または新しい制約を作成することができる。変更を受け付けるには、受け付けまたはOKボタンを選択(例えばクリック)することができる。
【0104】
ポリシーを削除するには、ポリシーが選択され(例えば右クリック)、ドロップダウンメニューから「削除」が選択される。ポリシーをインポートするには、ドロップダウンメニューから「インポート」が選択されて、「ポリシーのインポート」ウィンドウを呼び出す。所望のポリシーファイルが選択され、「OK」ボタンが選択される。
【0105】
類似の方法で制約に対してアクションを行うことができる。オブジェクトブラウザ900から、制約が選択される。制約を作成するには、ドロップダウンメニューから「新規」が選択されて、「プロパティの制約」ウィンドウを呼び出す。所望の管理ファセットが選択され、「新規」ボタンがクリックされて、新しい数式行(expression row)を追加する。数式行において、「プロパティ演算子値」数式が構築される。行を削除するには、数式行を強調表示し、「削除」ボタンを押すことができる。「OK」ボタンをクリックすることによって、ウィンドウが閉じる。
【0106】
制約は、「制約プロパティ」ウィンドウを呼び出すことによって、編集することができる。異なる管理ファセットを選択することができる。「新規」ボタンをクリックすることによって、新しい数式行を追加する。上記と類似の方法で、数式行を削除することができる。数式行において、ユーザは、プロパティ、演算子、および値を編集することができる。「OK」ボタンを選択することによって、変更がサブミットされる。
【0107】
図11は、ポリシープロパティのユーザインターフェイス1100例を示しており、この場合、ポリシーは、「highSecurity」である。ユーザが構成可能な名前1102、およびポリシー1104の説明を選択または入力することができる。ドロップダウンメニュー1106からアクションを選択することができる。こうしたアクションは、新しいポリシーを作成すること、ポリシーを編集すること、ポリシーを削除することなどを含み得る。ドロップダウン制約リスト1108から制約を選択することができる。状態インターフェイスを含むドロップダウンリスト1110は、ファセットごとに使用可能である。制約1108およびファセット1110は、適切なアクションのためだけに可能にされるべきである。新規ボタン1112を選択して、新しい制約1108またはファセット1110を追加することができる。
【0108】
ポリシー1114の所有者、作成日1116、および最終変更日1118を含めて、他の様々なタイプの情報を捕捉することができる。ユーザは、キャンセル1120を選択して、アクションを削除し、ウィンドウ1100を閉じることができる。OKボタン1122を選択することによって、現在の変更を受け付け、ウィンドウ1100を閉じる。
【0109】
図12は、制約プロパティのユーザインターフェイス例1200を示す。インターフェイスは、名前1202を付けるまたは制約を選択するための手段を提供することができる。管理ファセット1204は、ファセットのリストを含むドロップダウンメニューから選択することができる。ユーザが制約ごとに様々なプロパティ1206、演算子1208、値1210を選択することができるテーブルまたはリストを提供することができる。こうした選択は、ドロップダウンメニューから、またはテーブルに情報を直接入力することによって行うことができる。テーブルは、プロパティの編集、追加、および削除を可能にするはずである。ユーザは、キャンセル1212を選択して、アクションを削除し、ウィンドウ1200を閉じることができる。OKボタン1214を選択することによって、現在の変更を受け付け、ウィンドウ1200を閉じる。
【0110】
図13は、制約プロパティのユーザインターフェイス1300の別のスクリーンショット例を示す。プロパティ名1302、所有者名1304、説明1306、作成日1308、および最終変更日1310は、システムによって提供または定義することができ、一部の実施形態によれば、ユーザは、これらのフィールドを変更することができない。ユーザは、制約リストテーブル1312から、制約名1314、状態インターフェイス1316、制約識別1318を選択し、定義することができる。ユーザは、適切なアクションボタン1320、1322、1324を選択することによって、新しい制約を作成したり、制約を編集したり、制約を削除したりすることができる。
【0111】
図14は、原子制約プロパティのユーザインターフェイス例1400を示す。制約名1402を選択することができ、状態インターフェイスを、状態インターフェイス1404のリストを含むドロップダウンメニューから選ぶことができる。ユーザが制約ごとに様々なプロパティ1406、演算子1408、値1410を選択することができるテーブルまたはリストを提供することができる。こうした選択は、ドロップダウンメニューから、またはテーブルに情報を直接入力することによって行うことができる。
【0112】
図15は、ポリシープロパティのユーザインターフェイス1500のスクリーンショット例を示す。プロパティ名1502、所有者名1504、説明1506、作成日1508、および最終変更日1510などのフィールドは、システムによって定義することができ、一部の実施形態によれば、ユーザは、これらのフィールドを変更することができない。ドロップダウンアクションリスト1512からアクションを選択することができる。ユーザは、制約リストテーブル1514から、制約名1516、状態インターフェイス1518、制約識別1520を選択し、定義することができる。ユーザは、適切なアクションボタン1522、1524、1526を選択することによって、新しいポリシーを作成したり、ポリシーを編集したり、ポリシーを削除したりすることができる。
【0113】
図16は、ポリシー実行レポートを表示する(または印刷する)ためのユーザインターフェイス例1600を示す図である。ポリシー実行履歴を表示(または印刷)するために、類似のユーザインターフェイスを使用することができる。違反の日時など、日付1602が含まれる。ポリシーの識別1604およびポリシー名1606も提供される。結果1608も表示され、違反の場合など、結果に注意を引き付けるために、異なる色(赤など)で表示することができる。他の結果は、ポリシーへの準拠、ポリシーへの変更などを含み得る。結果に関連し得るメッセージ1610を提供することもできる。複数のポリシーを異なるソート順で表示するために、任意の列1602〜1608において、リストをソートすることができる。
【0114】
次に図17を参照すると、ポリシーインスタンス管理ユーザインターフェイス例1700が示されている。このインターフェイスは、「ポリシーデプロイメント」メニューを選択することによって呼び出すことができる。ユーザインターフェイス1700は、アクション1704(準拠についてチェックする、準拠するよう変更するなど)を表示し、選択するためのテーブル1702を含み得る。状況1706も変更したり表示したりすることができる。ポリシー1708ごとに、スケジュール1710を選択することができ、これは、ユーザ定義であり得る、または他のスケジューリング基準に基づき得る。ユーザが所与のポリシー1708に関して様々な操作を行うことができるようにするために、スケジュールの履歴1712を表示することができる。
【0115】
図18は、デプロイされたポリシープロパティのユーザインターフェイス例1800を示す。インターフェイス1800は、ポリシーを選択するためのドロップダウンメニュー1802を含み得る。スケジュールもスケジュールのドロップダウンリスト1804から選択することができる。制約の名前1806、アクション1808、ターゲットセット1810、識別1812、所有者名1814、説明1816、作成日1818、最終変更日1820、およびポリシー最終実行日1822など、様々な他のフィールドを自動的に入力することができる。
【0116】
ユーザは、チェックボックス1824を選択することによって、全ての子孫を再帰的にチェックするかどうかを選択することができる。ポリシーのアクションがスケジュール通りにチェックすることであるとき、こうした選択が示されるはずである。ユーザは、ポリシーが有効にされる1826かどうかを選択することもできる。チェックボックスがチェックされていない場合、ポリシーは、無効にされる。レポート履歴1828をこの画面から表示し、将来の分析のために印刷または保存することができる。
【0117】
図19は、ポリシーインスタンスを適用するためのユーザインターフェイス例1900を示す。「ポリシーインスタンスの適用」など、アクションを選択することによって、このユーザインターフェイス1900を呼び出すことができる。ロードされたポリシー1902またはポリシーファイル1904を選択するかどうかの決定が行われ、所望のアクションを選択することができる。示されているように、ロードされたポリシー1902が選択される。アクション1906のリストからアクション(チェックや実施など)を選択するためのドロップダウンメニューを提供することができる。チェックボックス1908は、全ての子孫に関する再帰的チェックを有効にすることができる。ターゲットセット位置1910は、システムによって提供され得る。適用またはOKボタン1912を選択またはクリックすることによって、ポリシーを適用することができる。キャンセル1914ボタンを選択することによって、全アクションがキャンセルされ、ポリシーインスタンスの適用ウィンドウ1900が閉じる。
【0118】
図20は、マルチサーバ管理で使用することができるサーバプロパティのユーザインターフェイス例2000を示す。管理ファセットは、ターゲットノードの右クリックによって表示することができる。ドロップダウンメニューで「プロパティ」を選択することによって、「プロパティ」ウィンドウが呼び出される。管理ファセットは、例えば左ペイン2002に列挙され得る。ファセットをクリックすることによって、ユーザは、その現在の状態を表示することができ、管理ファセットは、読み取り可能な名前の属性を有し得る。
【0119】
管理ファセットの状態をポリシーファイルに抽出するには、「プロパティ」ウィンドウ200が開かれ、ファセットが選択される。「ポリシーへの抽出」ボタン2004をクリックすることによって、状態がポリシーファイルにエクスポートされる。類似のボタンを使用して、ポリシーバインディングをインポートすることができる。デプロイされたポリシー2006または有効なポリシー2008を表示するかどうか、選択を行うことができる。デプロイされたポリシー2006タブによって、ユーザは、ノードまたはその子孫にデプロイされたポリシーバインディングを表示することができる。
【0120】
所望のファイル名をダイアログボックスに入力することができる。「保存」ボタンによって、変更が保存され、ウィンドウが閉じる。ファセットにおけるポリシーバインディングは、「プロパティ」ウィンドウを介して、「デプロイされたポリシーバインディング」タブをクリックしてノードおよびファセットにデプロイされているポリシーバインディングを表示することによって、表示することができる。「有効なポリシーバインディング」タブをクリックすることによって、ユーザは、ノードおよびファセットにおける有効なポリシーバインディングを表示することができる。
【0121】
図21は、マルチサーバ管理で使用することができるサーバプロパティのユーザインターフェイス2100の別の例を示す。ユーザインターフェイス2100は、上記の図に示されているユーザインターフェイスに似ている。デプロイされているポリシー2102が選択されると、ユーザに、アクションを実行するための様々なボタンが提供される。デプロイされたポリシーをエクスポート2104することができる。適切なボタン2106、2108、2110を選択することによって、新しいポリシーを作成したり、既存のポリシーを編集または削除したりすることができる。
【0122】
様々な特徴を示すために、様々なシナリオが提示される。以下は、管理ファセットをまとめる例である。リレーショナルサーバに接続し、サーバにアクセスして、OBDファセットの状態を表示する。状態は、ポリシーとしてエクスポートすることができる。ユーザは、異なるサーバのところに行き(または開き)、ポリシーを評価する(例えば違反を確認する)ことができる。ポリシーは、サービスにおいて実施することができる。SQL Server Management Studio(SSMS)からサーバグループを明示的にチェックするには、ユーザは、登録されたサーバペインを訪れ、グループに対してOff−By−Default(OBD)ポリシーをチェックすることができる。レポートは、結果と共に提示することができ、ポリシーは、グループにおいて実施することができる。
【0123】
スケジュールされたチェックによる自動化は、OBDポリシーをサーバにインポートし、OBDポリシーノードを訪れることによって提供され得る。アクションが「スケジュール通りにチェック」であるかどうかを確認するために、OBDポリシーのプロパティを表示することができる。ポリシーがデプロイされ、スケジュールされたチェックが伴うバインディングが作成される。レポートがチェックされる。サーバの管理ファセット状態を変更することができ、レポートをチェックすることができる。
【0124】
命名ポリシーは、データベースと照合することができる名前プレフィックスに対してポリシーを作成することを含み得る。ポリシーをデプロイし、「実施」バインディングを作成することができる。サーバにおいて変更を行うことができ、ポリシーはそれを防ぐことができる。BPAポリシーは、SSMSにBPAルール(チェック)を含むことができる。
【0125】
拡張性および性能は、(グループポリシーのための)データ駆動ポリシーバインディングからの拡張性を含み得る。2つのポリシーを1つのサーバにデプロイすることができる(スケジュールされたチェックが伴うOBDポリシー、実施が伴う命名ポリシーなど)。1つのサーバからのポリシーおよびバインディングを他のサーバ上に複製することができる。第2のサーバにおいて有効であるかどうかを確認するために、ポリシーバインディングをチェックすることができる(例えば、OBD設定を変更し、違反レポートを表示する、サーバにおいて変更を行い、命名ポリシーが変更を防ぐかどうかを決定するなど)。第1のサーバにおいて変更されたポリシーを、第2のサーバにおけるその効果について観察することができる。
【0126】
バインディングのエクスポート/インポートからの拡張性:1つのサーバに、スケジュールされたチェックが伴うOBDポリシー、実施が伴う命名ポリシーなど2つのポリシーをデプロイする。次に、サーバノードからポリシーバインディング情報ファイルをエクスポートする。別のサーバに行き、ポリシーバインディングファイルをインポートする。例えば、OBD設定を変更し、違反レポートを表示する、および/またはサーバにおいて変更を行い、命名ポリシーが変更を防ぐことを示すなど、ポリシーバインディングが第2のサーバにおいて有効であることをチェックする。
【0127】
図22は、システムライフサイクル例2200を示す。開示された技術は、システムが解釈することができる論理レベルでの高レベルポリシーとして、管理の意図を捕捉することができる。拡張可能な管理によって、システムは、ポリシーを多くのアプリケーション、インスタンス、および/またはサーバに適用することができる。自己管理は、問題の検出につながり、結果的に管理の自動化をもたらし得る。したがって、システムは、かなりのデフォルトポリシーを使用可能にし得る。一貫性のある統合管理インフラストラクチャは、全てのデータ管理製品(SQLなど)サービスを一様に管理することができる。これは、レベルを下ることもでき、例えばSQL Server 2000およびSQL Server 2005のサーバに対する管理機能をサポートする。また、それだけには限定されないが、MOM、Dynamic Systems Initiative(DSI)、Visual Studioなどを含めて他の技術と統合することもできる。また、迅速な問題解決のために、深い診断およびツールをサポートし、したがって、支持可能性と協調し得る。
【0128】
上部は、サービスライフサイクル2202を示しており、下部は、アプリケーションライフサイクル2204を示している。これらは、例えば、オペレーティングシステム2206およびサーバインスタンス2208を表すことができる。開発およびデプロイメントは、構成につながる。システムが監視され、もしある場合は問題が見つけられ、システムが保守される。これは、報告、監査、および準拠につながり得る。
【0129】
データ管理製品(SQL Serverなど)を構成するためにポリシーを使用することができる。例えば、T−SQLスクリプトを書く代わりに、ポリシーを使用して、初期構成を行うことができる。ポリシーは、サーバ構成を特定の構成と照合することができる。したがって、サーバ構成に最良の実践を表すポリシーをリリースすることができ、ユーザは、その環境を基準(最良の実践)ポリシーと比較することができる。ポリシーイベントの特別な処理、および拡張された宣言型管理を提供することができる。
【0130】
以下のサンプルポリシーは、単に例示の目的で含まれる。表面積構成:
【0131】
【表4】
【0132】
従来のデータベースアプリケーションは、例えばクライアントAPIとインターフェイスするデータベースおよびクライアントマシンを含む。アプリケーションは、アプリケーションが行およびテーブル、または埋め込みSQLの観点で考えられるデータベース方式と結合される。従来、データサービスは、アプリケーションにおける妥当性検査および制約の実施により制限されていた(取得、配置、削除、クエリなど)。クライアントサーバアーキテクチャでは、アプリケーションは、通常、データベースと接続される。開示された実施形態は、多層、分散、切断、およびモバイルのシステムを提供することができる。これは、装置、デスクトップ(コンピュータ)サーバ、クラスタ、クラウドに対して分散される。データは、層を横断することができ、アプリケーションの近くで処理される。データは、複数のデータソースから統合することができる。時折アプリケーションに接続することができる。開示された実施形態は、より豊富なデータタイプおよびより高いデータ抽象化を提供することができる。また、(ビジネスプロセス状態、メッセージ、ビジネスルールなど)動的データを提供することもできる。
【0133】
以下に、開示された実施形態のいくつかの要素を列挙する。多層、切断(時折接続される)、分散、SOAベース(例えば)、オープン、相互運用、装置、テーブル、デスクトップ、サービス、動的(データ、アプリケーションモビリティ)、複数のデータソース、情報ベース、モデル駆動、コンポーネント化、カスタマイズ可能、および適応可能である。
【0134】
開示された実施形態は、物理、論理、概念、プログラミングまたはプレゼンテーションの4レベルの抽象化を有し得る。物理は、レコード形式、ファイル範囲、ファイルグループ、インデックス、およびファイルパーティションを指す。アプリケーションは、物理レベルに気付かない可能性がある。論理レベルは、テーブル、キー、PK/FK制約、正規化、物理データ独立性、リレーショナルアプリケーションを含む。概念レベルは、エンティティ、関係、制約、将来のアプリケーションへのシフト、データプラットフォームのターゲットモデルを含む。プログラミングまたはプレゼンテーションレベルは、普遍的なプログラミングモードを有していない。これは、エンティティ値、オブジェクト、XMLを含み、ほとんどのアプリケーションがこれらの間で変換できるはずである。
【0135】
ユーザがデータベースアプリケーションを作成するとき、これらは、データベース内にオブジェクトを作成しており、サーバレベルでオブジェクトを作成することもできる。データベースは、テーブルおよび様々なオブジェクトを含み、複数のデータベースを有し得るサーバとすることができる。テーブルおよびビューは、データベースに含まれる。また、サーバレベルで存在するオブジェクトもあり得る。ユーザは、各自のカスタムサーバエラーメッセージを作成するか、SQL Serverで、例えばサーバレベルを作成することができる。開示された実施形態は、ユーザに、サーバのシステムまたはアプリケーションビューを取得するための手段を提供する。このビューは、サーバが1つのデータベースを有しているか、特定の1つのアプリケーションに属し得る複数のデータベースを有しているか、または同じデータベース内のオブジェクトを有する複数のアプリケーションを有しているかに関係なく提供することができる。
【0136】
ユーザは、例えばインターフェイス構成要素を介して、アプリケーション「A」のサーバを表示する(例えば、レンダリング構成要素によって)よう要求することができ、ポリシーを、アプリケーション「A」上に作成する(例えば、宣言型管理構成要素によって)ことができる。例えば、ユーザは、アプリケーション「A」の全てのデータベーステーブルがAppA_で開始するよう要求する。新しいテーブルが作成された場合、テーブルがAppA_で開始することを指定するポリシーは、有効であり、新しいテーブルに適用される。システムは、それが1つのデータベースにあろうと、複数のデータベースにあろうと、デプロイメントを自動的に行う。したがって、ユーザ対話の量が低減する。
【0137】
次に、図23を参照すると、システム例2300が示されている。システムは、コアビジネスロジック2304を含むアプリケーション2302を含む。ナビゲーション/クエリ2306は、データ管理サービスとすることができる。データマッピングサービスは、ビジネスオブジェクト2308およびオフライン/同期サポート2310とすることができる。ストアインターフェイス2312も提供される。アプリケーションによる扱いは、エンティティとしてであり、アプリケーションには、データをマッピングする多くのソリューションがある。アプリケーションがそれ自体のナビゲーション/クエリ/変換情報を書くことができるインピーダンスミスマッチが提供される。
【0138】
次に図24を参照すると、データベース2402、クライアントAPI2404、BCP2406、およびアプリケーション2408を含む管理ツール例が示されている。データベース管理製品は、クライアントライブラリ、データユーティリティ(BCP2406など)、および管理ツールを含むコアリレーショナルエンジン(core relational engine)とすることができる。各サービスは、行およびテーブルを伝えることができる。
【0139】
図25は、アドホック式にエンティティにおいて動作する(報告、マージ、複製など)データサービスを提供するシステム2500を示す。ストア/データAPI2502部分、行/テーブル/MDS部分2504、エンティティ部分2506が含まれる。システム2500は、様々な暗黙的および明示的マッピングレイヤおよびマッピング記述を提供する。
【0140】
図26にデータプラットフォームが示されている。アプリケーション2602は、コアのビジネスロジック2604を含む。データ管理サービス(ナビゲーション/クエリなど)2606も含まれる。値データサービスは、マージ複製2608、SSAS2610、およびレポートビルダー2612、および他の構成要素を含む。ストアインターフェイスは、データベース2618と対話するODBC2614およびADO.NET2616を含む。アプリケーションは、DALレイヤにおいてエンティティを構築することができる(顧客、アカウントなど)。値データサービス2608、2610、2612は、エンティティにおいて働くことができる(例えば、記述の独立した方法を有するなど)。
【0141】
図27は、アプリケーション2702、データサービス2704、および他の項目2706を含むデータプラットフォーム2700を示す。データの構造は、定義されたものとすることができる(エンティティなど)。例えば、用語「資産」、「顧客」、および「アカウント」を定義することができ、次いで、エンティティバス全体にわたって使用することができる。「資産」を定義すること、シェアポイント資産追跡アプリケーションを構築すること、ワークフローを、資産状況の更新のために電子メールの形に作成すること、および資産状況のレポートを作成することを含むデータサービスにおける好循環を提供することができる。企業またはエンタープライズおよび生態系内の他のものをバスに接続することができる。
【0142】
図28は、データプラットフォームの様々なデータサービスを示す。こうしたサービスは、論理2802または概念2804とすることができる。論理サービス2802は、例えば、transact SQLとすることができ、以下の形式をとり得る。
【0143】
【表5】
【0144】
また、概念サービス2804は、エンティティビューマネージャとすることができ、以下の形式のエンティティSQLを含み得る。
【0145】
【表6】
【0146】
概念サービス2804は、エンティティおよび関係を提供するエンティティデータモデルを含み得る。また、例えば拡張されたリレーショナル代数に基づき得るエンティティSQLが提供される。エンティティSQLは、エンティティを生成し、消費することができ、関係にわたるより良いナビゲーションを提供する。エンティティビューマネージャは、エンティティランタイムを提供することができ、概念を論理マッピングに提供することができる。
【0147】
次に図29を参照すると、データプラットフォームアーキテクチャ2900が示されている。プラットフォームは、データベース監視、およびVLDBおよびネイティブXMLサポートを提供することができる。また、マルチ言語プログラム可能性および伸長性、サーバ報告、エンタープライズETL、および深いデータマイニングも提供され得る。
【0148】
図30は、アダプタ例の図3000を示す。ファセット3002は、プロパティおよびコミットロジックにアクセスするためのディスパッチメソッドを含み得るBaseFacet3004など共通インターフェイスから導出することができる。各ファセットは、読み取り専用または読み取り/書き込みプロパティであり得るプロパティを定義することができる。アダプタクラス3005は、BaseFacetインターフェイスから継承することができ、基礎を成すオブジェクトモデルクラスを集合させることができる。アダプタは、オブジェクトモデルクラス3008(および他のロジック)の物理プロパティを使用して、ファセットプロパティを公開することができる。
【0149】
次に図31を参照すると、開示されたアーキテクチャを実行するよう動作可能なコンピュータのブロック図を示している。本明細書に開示された様々な態様に関する状況をさらに提供するために、図31および以下の説明は、様々な態様を実施できるのに適したコンピューティング環境3100の概略説明を提供するものである。1つまたは複数の実施形態は、上記で、1つまたは複数のコンピュータ上で稼働し得るコンピュータ実行可能命令の一般的な文脈で説明してきたが、様々な実施形態を他のプログラムモジュールとの組み合わせで実施することができる、かつ/またはハードウェアおよびソフトウェアの組み合わせとして実施することもできることを、当業者であれば理解されよう。
【0150】
一般にプログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装するルーチン、プログラム、構成要素、データ構造などを含む。さらに、本発明の方法は、単一のプロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、パーソナルコンピュータ、ハンドヘルドコンピューティング装置、マイクロプロセッサベースまたはプログラム可能家庭用電化製品など、1つまたは複数の関連の装置に操作可能にそれぞれ結合することができる他のコンピュータシステム構成で実施できることを当業者であれば理解されよう。
【0151】
また、示された態様は、いくつかのタスクが通信ネットワークによってリンクされているリモート処理装置によって実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールを、ローカルおよびリモートのメモリ記憶装置に置くことができる。
【0152】
コンピュータは、一般に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータからアクセスできる使用可能な任意の媒体とすることができ、揮発性および不揮発性媒体、取外式および固定式の媒体を含む。コンピュータ可読媒体は、それだけには限定されないが一例として、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性の取外式および固定式媒体がある。コンピュータ記憶媒体には、それだけには限定されないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタルビデオディスク(DVD)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報の格納に使用でき、コンピュータからアクセスできる他の任意の媒体などがある。
【0153】
通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の移送機構などの変調されたデータ信号に組み込む。これには任意の情報配送媒体がある。「変調されたデータ信号」という用語は、信号に情報を符号化するように1つまたは複数のその特性が設定または変更された信号を意味する。通信媒体には、それだけには限定されないが一例として、有線ネットワーク、直接配線された接続などの有線媒体、および音響、RF、赤外線、その他の無線媒体などの無線媒体がある。また、上記のどんな組み合わせでもコンピュータ可読媒体の範囲内に含まれるものとする。
【0154】
再度図31を参照すると、様々な態様を実装する環境3100の例は、コンピュータ3102を含んでおり、コンピュータ3102は、処理ユニット3104、システムメモリ3106、およびシステムバス3108を含んでいる。システムバス3108は、それだけには限定されないが、システムメモリ3106を含むシステム構成要素を処理ユニット3104に結合する。処理ユニット3104は、市販の様々なプロセッサのうちのどんなものでもよい。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを処理ユニット3104として使用することもできる。
【0155】
システムバス3108は、市販の様々なバスアーキテクチャのうちの任意のものを使用するメモリバス(メモリコントローラ付きまたはなし)、周辺バス、およびローカルバスとさらに相互接続し得るいくつかのタイプのバス構造のうちどんなものでもよい。システムメモリ3106は、読み取り専用メモリ(ROM)3110およびランダムアクセスメモリ(RAM)3112を含む。基本入出力システム(BIOS)は、ROM、EPROM、EEPROMなどの不揮発性メモリ3110に格納されており、例えば起動中など、コンピュータ3102内の要素間での情報の転送を助ける基本ルーチンを含む。RAM3112は、例えばデータをキャッシュに入れるための静的RAMなど高速RAMを含むこともできる。
【0156】
コンピュータ3102は、適したシャーシ(図示せず)により外部での使用のために構成することもできる内部ハードディスクドライブ(HDD)3114(EIDE、SATAなど)、磁気フロッピー(登録商標)ディスクドライブ(FDD)3116(例えば取外式ディスケット3118から読み取り、またはそこに書き込む)、および光ディスクドライブ3120(例えばCD−ROMディスク3122を読み込む、またはDVDなど他の大容量光媒体から読み取り、そこに書き込む)をさらに含む。ハードディスクドライブ3114、磁気ディスクドライブ3116、および光ディスクドライブ3120は、それぞれハードディスクドライブインターフェイス3124、磁気ディスクドライブインターフェイス3126、および光ドライブインターフェイス3128によってシステムバス3108に接続することができる。外部ドライブ実装用のインターフェイス3124は、ユニバーサルシリアルバス(USB)およびIEEE1394インターフェイス技術のうちの少なくとも一方または両方を含む。他の外部ドライブ接続技術も1つまたは複数の実施形態の企図内に含まれる。
【0157】
ドライブおよびその関連のコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などの不揮発性の記憶域を提供する。コンピュータ3102では、ドライブおよび媒体は、任意のデータの記憶を適したデジタル形式で収納する。上記のコンピュータ可読媒体の説明は、HDD、取外式磁気ディスケット、およびCDやDVDなどの取外式光媒体を指すが、zipドライブ、磁気カセット、フラッシュメモリカード、カートリッジなど、コンピュータによって読み取り可能な他のタイプの媒体を動作環境例で使用してもよく、さらに、こうした任意の媒体は、本明細書に開示された方法を実行するコンピュータ実行可能命令を含むことができることを当業者であれば理解されたい。
【0158】
オペレーティングシステム3130、1つまたは複数のアプリケーションプログラム3132、他のプログラムモジュール3134およびプログラムデータ3136を含めて、いくつかのプログラムモジュールをドライブおよびRAM3112に格納することができる。オペレーティングシステム、アプリケーション、モジュール、および/またはデータの全てまたは一部をRAM3112にキャッシュすることもできる。様々な実施形態は、市販の様々なオペレーティングシステムまたはオペレーティングシステムの組み合わせで実施できることを理解されたい。
【0159】
ユーザは、コマンドおよび情報をキーボード3138およびマウス3140などのポインティング装置など、1つまたは複数の有線/無線の入力装置を介してコンピュータ3102に入力することができる。他の入力装置(図示せず)には、マイクロフォン、IRリモートコントロール、ジョイスティック、ゲームパッド、スタイラスペン、タッチ画面などがある。これらおよび他の入力装置は、システムバス3108に結合されている入力装置インターフェイス3142を介して処理ユニット3104に接続されることが多いが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインターフェイスなど他のインターフェイスで接続することができる。
【0160】
モニタ3144または他のタイプの表示装置も、ビデオアダプタ3146などのインターフェイスを介してシステムバス3108に接続される。コンピュータは一般に、モニタ3144に加えて、スピーカやプリンタなど他の周辺出力装置(図示せず)を含んでいる。
【0161】
コンピュータ3102は、リモートコンピュータ3148など1つまたは複数のリモートコンピュータへの有線および/または無線の通信を介した論理接続を使用してネットワーク式環境で動作することができる。リモートコンピュータ3148は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、携帯用コンピュータ、マイクロプロセッサベースの娯楽装置、ピア装置、または他の一般のネットワークノードなどとすることができ、一般にコンピュータ3102に関連して記載した多くまたは全ての要素を含むが、簡潔にするために、メモリ/記憶装置3150のみを示している。示した論理接続は、ローカルエリアネットワーク(LAN)3152、および/または広域ネットワーク(WAN)3154などのより大きいネットワークへの有線/無線の接続を含む。こうしたLANおよびWANネットワーキング環境は、オフィスや会社ではごく一般的であり、イントラネットなど全社規模のコンピュータネットワークを容易にし、これらは全て、インターネットなどのグローバルな通信ネットワークと接続することができる。
【0162】
LANネットワーキング環境で使用する場合、コンピュータ3102は、有線および/または無線の通信ネットワークインターフェースまたはアダプタ3156を介してローカルネットワーク3152に接続される。アダプタ3156は、無線アダプタ3156と通信するために配置されている無線アクセスポイントも含み得るLAN3152との有線または無線の通信を容易にすることができる。
【0163】
WANネットワーキング環境で使用する場合、コンピュータ3102は、モデム3158を含むことができ、WAN3154を介して通信サーバに接続され、またはインターネットによるなどWAN3154を介して通信を確立する他の手段を有する。モデム3158は、内蔵または外付け、および有線または無線の装置とすることができ、シリアルポートインターフェース3142を介してシステムバス3108に接続される。ネットワーク式環境では、コンピュータ3102に関連して示したプログラムモジュール、またはその一部をリモートメモリ/記憶装置3150に格納することができる。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を使用することができることは理解されよう。
【0164】
コンピュータ3102は、プリンタ、スキャナ、デスクトップ、および/または携帯用コンピュータ、PDA、通信衛星、無線で検出できるタグに関連付けられている任意の設備または場所(キオスク、新聞雑誌売り場、休憩室など)、および電話など、無線通信で動作可能に配置されている任意の無線装置またはエンティティと通信するよう動作可能である。これは、少なくともWi−FiおよびBluetooth(商標)無線技術を含む。したがって、通信は、従来のネットワークと同様に予め定義されている構造、または単に少なくとも2つの装置間のアドホック式の通信とすることができる。
【0165】
Wi−Fi、すなわちWireless Fidelityによって、家、ホテルの部屋、または職場から、配線なしにインターネットへの接続が可能になる。Wi−Fiは、コンピュータなどのこうした装置がデータを屋内および屋外の基地局の範囲内のどこででも送受信できるようにするセル方式電話で使用されているものと似た無線技術である。Wi−Fiネットワークは、IEEE802.11(a、b、gなど)と呼ばれる無線技術を使用して、安全で信頼性が高い高速無線接続を提供する。Wi−Fiネットワークは、コンピュータを互いに、インターネットに、および有線のネットワーク(IEEE802.3またはEthernet(登録商標)を使用する)に接続するために使用することができる。Wi−Fiネットワークは、ライセンス不要の2.4GHzおよび5GHzの無線帯域で、例えば11Mbps(802.11a)または54Mbps(802.11b)データ転送速度で、または両方の帯域(デュアルバンド)を含む製品で動作するため、ネットワークは、多くのオフィスで使用されている基本的な10BaseT配線のEthernet(登録商標)ネットワークと似た実環境での性能を提供することができる。
【0166】
次に図32を参照すると、様々な実施形態によるコンピューティング環境3200の例の概略ブロック図を示している。システム3200は、1つまたは複数のクライアント3202を含む。クライアント3202は、ハードウェアおよび/またはソフトウェア(スレッド、プロセス、コンピューティング装置など)とすることができる。クライアント3202は、例えば様々な実施形態を使用することによって、クッキーおよび/または関連の文脈情報を収納することができる。
【0167】
システム3200は、1つまたは複数のサーバ3204も含む。サーバ3204もハードウェアおよび/またはソフトウェア(スレッド、プロセス、コンピューティング装置など)とすることができる。サーバ3204は、例えば様々な実施形態を使用することによって変形を行うためのスレッドを収容することができる。クライアント3202とサーバ3204との間の考え得る1つの通信は、2つ以上のコンピュータプロセス間で送信されるように構成されたデータパケットの形式とすることができる。データパケットは、例えばクッキーおよび/関連の文脈情報を含み得る。システム3200は、クライアント3202とサーバ3204との間の通信を容易にするために使用できる通信フレームワーク3206(インターネットなどのグローバル通信ネットワークなど)を含む。
【0168】
通信は、有線(光ファイバを含む)および/または無線の技術を介して容易にすることができる。クライアント3202は、クライアント3202にローカルな情報(クッキーおよび/または関連の文脈情報など)を格納するために使用できる1つまたは複数のクライアントデータストア3208に動作可能に接続される。同様に、サーバ3204は、サーバ3204にローカルな情報を格納するために使用できる1つまたは複数のサーバデータストア3210に動作可能に接続される。
【0169】
上記で説明してきたことは、様々な実施形態の例を含む。当然、様々な実施形態を説明するために構成要素または方法の予想される全ての組み合わせについて説明することは不可能であるが、他の多くの組み合わせおよび置換えが可能であることを当業者であれば理解できよう。したがって、本明細書は、添付の特許請求の範囲の意図および範囲に含まれるこうした全ての代替形態、変更形態、および変形形態を含むものとする。
【0170】
特に上述した構成要素、装置、回路、システムなどによって実行される様々な機能に関して、こうした構成要素の説明に使用した用語(「手段」への言及を含む)は、本明細書で示した態様の例の機能を実行する開示した構造に構造上同じではない場合でも、特に指定のない限り、説明した構成要素の指定した機能(機能上の同等物など)を実行する任意の構成要素に対応するものとする。この点で、様々な態様は、様々な方法の動作および/またはイベントを実行するコンピュータ実行可能命令を有するシステムおよびコンピュータ可読媒体を含むことも理解されたい。
【0171】
さらに、特定の特徴を、いくつかの実装形態のうちの1つのみを参照して開示してきたが、こうした特徴は、思い通りに他の実装形態の1つまたは複数の他の特徴、および所与または特定の任意のアプリケーションの利点と組み合わせることができる。さらに、「含む」および「含んでいる」という用語およびその変形が詳細な説明または特許請求の範囲で使用されている範囲で、これらの用語は、「備える」という用語と同じように包括的なものとする。
【0172】
さらに、1つまたは複数の実施形態は、標準のプログラミングおよび/またはエンジニアリング技術を使用して、ソフトウェア、ファームウェア、ハードウェア、またはその任意の組み合わせを生成して、開示された実施形態を実施するようコンピュータを制御するための方法、装置、または製品として実装することができる。「製品」という用語(あるいは「コンピュータプログラム製品」)は、本明細書で使用される場合、任意のコンピュータ可読装置、キャリア、またはメディアからアクセス可能なコンピュータプログラムを含むものとする。例えば、コンピュータ可読媒体には、それだけには限定されないが、磁気記憶装置(ハードディスク、フロッピー(登録商標)ディスク、磁気ストライプなど)、光ディスク(コンパクトディスク(CD)、デジタル多用途ディスク(DVD)など)、スマートカード、およびフラッシュメモリ装置(カード、スティックなど)などがある。さらに、搬送波を使用して、電子メールの送受信、またはインターネットやローカルエリアネットワーク(LAN)などのネットワークへのアクセスに使用されるものなど、コンピュータ可読電子データを運ぶことができることを理解されたい。開示された実施形態の範囲または意図から逸脱することなく、この構成に多くの変更を加えることができることを当業者であれば当然理解されよう。
【図面の簡単な説明】
【0173】
【図1】システムアーキテクチャの高レベルブロック図である。
【図2】データベースサーバの管理可能性を提供するシステムを示す図である。
【図3】ユーザの意図をデータ管理製品に動的に適用するシステムを示す図である。
【図4】高レベルの意図を低レベルの設定に自動的に適用するシステムを示す図である。
【図5】開示された実施形態を使用するイベントディスパッチ機構を示す図である。
【図6】1つまたは複数の実施形態に従って1つまたは複数の特徴の自動化を容易にする機械学習を使用するシステムを示す図である。
【図7】ユーザ生産性の向上を容易にする方法を示す図である。
【図8】データ管理製品を構成する方法を示す図である。
【図9】ユーザインターフェイスのスクリーンショット例を示す図である。
【図10】ポリシーを適用するためのユーザインターフェイス例を示す図である。
【図11】ポリシープロパティのユーザインターフェイス例を示す図である。
【図12】制約プロパティのユーザインターフェイス例を示す図である。
【図13】制約プロパティのユーザインターフェイスの別のスクリーンショット例を示す図である。
【図14】原子制約プロパティ(atomic constraint properties)のユーザインターフェイス例を示す図である。
【図15】ポリシープロパティのユーザインターフェイスのスクリーンショット例を示す図である。
【図16】ポリシー実行レポートを表示する(または印刷する)ためのユーザインターフェイス例を示す図である。
【図17】ポリシーインスタンス管理ユーザインターフェイス例を示す図である。
【図18】デプロイされたポリシープロパティのユーザインターフェイス例を示す図である。
【図19】ポリシーインスタンスを適用するためのユーザインターフェイス例を示す図である。
【図20】サーバプロパティのユーザインターフェイス例を示す図である。
【図21】サーバプロパティの別のユーザインターフェイス例を示す図である。
【図22】システムライフサイクル例を示す図である。
【図23】システム例を示す図である。
【図24】管理ツール例を示す図である。
【図25】アドホック式に動作するデータサービスを提供するシステムを示す図である。
【図26】データプラットフォームを示す図である。
【図27】別のデータプラットフォームを示す図である。
【図28】データプラットフォームの様々なデータサービスを示す図である。
【図29】データプラットフォームアーキテクチャを示す図である。
【図30】アダプタ例を示す図である。
【図31】開示された実施形態を実行するよう動作可能なコンピュータのブロック図である。
【図32】開示された実施形態を実行するよう動作可能なコンピューティング環境例のブロック略図である。
【技術分野】
【0001】
本発明は、データベース管理の生産性を容易にするシステムおよびデータベース管理を提供するコンピュータ実行可能システムに関する。
【背景技術】
【0002】
システム管理者は、インストールされたアプリケーションを大量に有するデータベースまたは他のサーバを日常的に管理し得る。システム管理者は、システム障害に備えて回復可能なフォーマットでデータを提供するなど、様々な管理目標または管理ポリシーを満たすように、データベースまたはサーバを構成する。さらに、システム管理者は、ポリシーの更新を監視し、システムの状態または正常性(それが所望のポリシーに準拠しているかどうかなど)について報告し、システムがもはや所望のポリシーに準拠しないとき対処しなければならず、他のアクションもである。
【0003】
こうしたアクションを行うために、システム管理者は、ポリシーを、システムの構成に使用される1組の詳細な低レベルアクションに変換する。このことは、インストールされたアプリケーションにより公開されるオプション、およびデプロイされたアプリケーションの詳細およびセマンティクスのかなりの知識を必要とする。というのは、システム管理は、一般に、容易ではなく、直観的だからである。システム管理者は、別々の監視機構および報告機構を設定する場合があり、自動化が望まれる場合、これは、手動で設定されなければならない。システム管理者は、管理されている全てのターゲットについて、このプロセスを個別に繰り返し、従って、管理における規模の効率性はない。これによって、各管理ターゲットのために、余分な時間および労力が費やされる。
【0004】
こうした機能を行う構文は、様々な設定の有効化、無効化、または変更に関して、難解になり、ユーザフレンドリではなくなる可能性がある。さらに、様々な設定の位置に一貫性がない。例えば、いくつかの設定はディスプレイ上に表示され、別の設定は表示されない。これらおよび他の要因によって、各設定の場所を突き止め、変更するために費やされる時間量が増える。
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記および他の不備を克服するために、システム管理者の意図と、その意図を達成するのに必要な低レベルの設定との間の動的な仲裁が必要である。また、様々な設定がより集中化される場所、例えばディスプレイなどが必要である。
【課題を解決するための手段】
【0006】
以下は、開示した実施形態の一部の態様を基本的に理解できるようにするために、簡略化された要約を示している。この要約は、広範な概要を示すものではなく、こうした実施形態の鍵となるまたは重要な要素を識別するもの、およびこうした実施形態の範囲を画定するものではない。単に、後述するより詳細な説明の前置きとして、記載された実施形態の一部の概念を簡略化した形で提示するためのものである。
【0007】
1つまたは複数の実施形態および対応するその開示に従って、データ管理製品に関してユーザ生産性を向上させることとの関連で、様々な態様について説明される。(例えば、複雑なコマンドの大部分をマスターし、適用するなど)ユーザ対話を軽減するために、管理者の意図と、その意図を達成するために変更されるべき低レベルの設定との間の仲裁が提供される。
【0008】
実施形態は、ユーザの意図と、その意図を達成するために必要な低レベルの設定との間の仲裁を提供することができ、したがって、複雑なコマンドの大部分をマスターし、適用する負担からユーザを解放する。別個の方法で構成されるオブジェクトにより同じファセットを提示することができ、したがって、ユーザは、個々のオブジェクトを構成するために専門のセマンティクスを学ぶ必要はない。1つのファセットに対して1つのポリシーを適用することができ、ユーザは、単一のポリシーで、このファセットを提示する複数のオブジェクト全てを構成することができる。ファセットは、例えば別個のターゲットから別々の設定を抽出することができる(例えばリソース消耗ファセットは、OSファイルシステムおよびデータベースサーバの残りの空のページの両方を一緒に監視し、構成し得る)。ポリシーは、「複合管理ポリシー(composite management policies)」に集めることができる。
【0009】
一部の実施形態によれば、ユーザは、アドホックベースで、宣言型管理(DMF)システムに、所与のターゲットが所与のポリシーに準拠しているかどうかをチェックするよう指示することができる。DMFは、ポリシー準拠を強制するために、準拠していないターゲットを再構成する能力を含み得る。管理ファセットの個々の属性に基づいて、DMFは、単一であるか複合であるかにかかわらず、「構成可能な」ポリシーおよび/または「実施できる」ポリシーを認識する。準拠していないターゲットセットの構成の有無にかかわらず、スケジュール通りのポリシーチェックを自動化する能力が提供される。また、準拠していないターゲットセットの構成の有無にかかわらず、任意の変更に関するポリシーチェックを自動化する能力が提供され、任意の逸脱の即座の警告を提供することができる。
【0010】
ポリシー評価に似るように、自動ポリシーチェックを、1つのアクションまたは一連のアクションと結合することができる(例えば、セキュリティポリシーが失敗すると、電子メールが送信され得る)。アクションを、ポリシー評価の成功、不成功と関連付けることができる。可能な場合、ファセットを準拠させないようにする試行を検出し、その試行を防ぐための機構を含めることができる(自動式のポリシー実施など)。ポリシーは、サーバ上の単一のオブジェクトからエンタープライズまで延びる階層の任意のレベルを対象とすることができる。アプリケーションを対象とするポリシーを、そのアプリケーションに属するサーバ上のこれらのオブジェクトのみに適用するようにすることができる。ユーザは、ポリシーの対象をそれらのオブジェクトを含む階層のルートとすることにより、多くのオブジェクトをポリシー下に置くことができる。単一のアクションで、ユーザは、設定を確実に変更したり、多くのマシンにおけるポリシーの実施をチェックし、構成し、または自動化したりすることができる。性能または他の動的に変化するデータをサンプリングし、集め、それを管理ファセットから使用可能にするためのコレクタを含めることができる。
【0011】
一部の実施形態は、統合セキュリティモデルにより実施することができる。高レベルでデプロイされたポリシーは、低レベルポリシーに取って代わることができる(例えば、サーバグループポリシーは、データベースポリシーより優先度が高いなど)。ユーザは、見る権限を有するターゲットセットまたはポリシーの部分のみを見ることができる。DMFによりユーザは、「アプリケーション」を構成するターゲット要素を示すことができる。DMFアプリケーションは、おそらく複数の製品(ベンダーなど)からの複数のサーバにわたって拡張し得る。アプリケーションは、1つのターゲットからインポートされ、保存され、後で1つのユニットとして新しいターゲットにデプロイされ得る。異なるポリシーおよびポリシーバージョンの履歴、および管理ターゲットとの関連付けを表示するために、開示された実施形態を使用することができる。ユーザは、任意のターゲットに対して効力のあるポリシー(例えば、このターゲットを直接制約する任意のポリシーの部分など)を表示することができる。また、保管またはデプロイメントの目的で、ポリシーおよびバインディングをスクリプトし、インポートし、エクスポートする方法も提供される。
【0012】
システムがエンタープライズのポリシーに準拠するよう構成される前にユーザにリリースされる可能性を軽減するために、実施形態をソフトウェアのインストールまたはアプリケーションのデプロイメントに組み込んでもよい。管理ファセットを拡張可能APIに1つの構成体として含めることにより、ユーザは、各自の管理ファセットを作成して、各自の管理目標を捕捉し、実行することができる。管理ターゲットを拡張可能APIに1つの構成体として含めることは、新しいDMFターゲットを実装するユーザまたはソフトウェアベンダーにより、追加の管理ターゲットを宣言型管理下に置くことができることを意味する。DMFにより、デプロイメント時の自動構成、自動監視、自動準拠報告、および自動メンテナンス/調整を含めて、管理ライフサイクル全体の自動化が可能になる。多くの場合、これによって、完全な自己管理システムがもたらされる。
【0013】
上記および関連の目的の達成のために、1つまたは複数の実施形態は、以下において十分説明され、特に特許請求の範囲に示す特徴を含む。以下の説明および添付の図面は、いくつかの例示的な態様を詳細に示しており、実施形態の原理を使用することができる様々な方法のうちのほんの数例を示している。他の利点および新しい特徴は、以下の詳細な説明を図面と併せ読めば明らかになり、開示された実施形態は、こうした全ての態様およびその均等物を含むものとする。
【発明を実施するための最良の形態】
【0014】
次に、図面を参照して様々な実施形態について説明する。全体を通して、同様の参照番号を使用して同様の要素を指す。以下の説明では、説明上、1つまたは複数の態様を完全に理解できるようにするために様々な特定の詳細を記載している。しかし、こうした特定の詳細なしに様々な実施形態を実施できることは明らかである。他の例では、これらの実施形態を説明しやすくするために、よく知られている構造および装置をブロック図の形式で示している。
【0015】
本出願で使用する場合、「構成要素」、「モジュール」、「システム」などの用語は、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連のエンティティを指すものとする。例えば、構成要素は、それだけには限定されないが、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータとすることができる。例として、サーバ上で動作するアプリケーションおよびサーバはいずれも構成要素である。1つまたは複数の構成要素がプロセスおよび/または実行スレッド内に存在する可能性があり、1つの構成要素を1つのコンピュータ上に局所化し、かつ/または2つ以上のコンピュータ間に分散することができる。
【0016】
「例」という単語は、本明細書では、例、例示、例証として働くことを意味するために使用される。「例」として本明細書に記載されている任意の態様または設計は、必ずしも他の態様または設計より好ましい、または有利であるものと解釈されるものではない。
【0017】
メモリ、記憶装置、データベース、または他の媒体への任意の言及は、本明細書で使用される場合、不揮発性および/または揮発性メモリを含み得る。適した不揮発性メモリには、読み取り専用メモリ(ROM)、プログラム可能ROM(PROM)、電気的プログラム可能ROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリなどがある。揮発性メモリには、ランダムアクセスメモリ(RAM)などがあり、これは外部キャッシュメモリとして働く。RAMは、それだけには限定されないが一例として、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)、拡張SDRAM(ESDRAM)、シンクリンクDRAM(SLDRAM)、ラムバスダイレクトRAM(RDRAM)、ダイレクトラムバスダイナミックRAM(DRDRAM)、ラムバスダイナミックRAM(RDRAM)など多くの形で使用可能である。
【0018】
本明細書で使用する場合、「推論する」または「推論」という用語は一般に、イベントおよび/またはデータを介して捕捉された1組の観察結果からシステム、環境、および/またはユーザの状態について推理または推論する過程を指す。例えば、推論を使用して、特定のコンテキストまたはアクションを識別したり、状態にわたる確率分布を生成したりすることができる。推論は、確率的、つまりデータおよびイベントの考慮に基づいた対象の状態にわたる確率分布の計算とすることができる。また、推論は、1組のイベントおよび/またはデータから上位レベルのイベントを構成するために使用される技術を指すことができる。こうした推論によって、複数のイベントが時間的にごく近接して相関しているかどうかにかかわらず、またイベントおよびデータが派生したイベントおよびデータソースが1つであろうと複数であろうと、1組の観察されたイベントおよび/または格納されたイベントデータから新しいイベントまたはアクションが構築される。
【0019】
いくつかの構成要素、モジュールなどを含み得るシステムの観点から、様々な実施形態について説明する。様々なシステムが、図面との関連で説明される追加の構成要素、モジュールなどを含んでいてもよい(またはその全てを含んでいなくてもよい)ことを理解されたい。これらの手法の組み合わせを使用することもできる。本明細書で開示された様々な実施形態を、タッチ画面ディスプレイ技術および/またはマウスおよびキーボードタイプのインターフェイスを使用する装置を含めて、電気装置において実行することができる。こうした装置の例には、コンピュータ(デスクトップおよびモバイル)、スマートフォン、個人用デジタル補助装置(PDA)、および有線および無線の両方の他の電子装置などがある。
【0020】
以下の詳細な説明において、様々な態様および実施形態を、SQL Serverの文脈で説明することができる。これらの発明の態様は、開示された実施形態との使用にうまく適し得るが、これらの発明の態様が様々な他のデータ管理製品における使用にも同様に適用可能であることを、当業者であれば容易に理解されよう。従って、こうした発明の態様が広範な用途を有するということを理解した上で、SQL Serverへの任意の言及は、発明の態様を例示するためのものにすぎない。
【0021】
最初に図1を参照すると、システムアーキテクチャ100の高レベルブロック図が示されている。データベースまたはシステム管理者(以下ユーザと呼ぶ)は、一般に、データ管理製品(SQLデータベースまたはサーバなど)との関連で、様々なサービス(リレーショナルデータベースなど)の継続的な正しい操作を提供する責任を負う。管理されるべきサービスまたはエンティティは、本明細書では、ターゲット102と呼ばれ、システム100は、ターゲット102に関連するこうした目標または管理ポリシーを達成するよう構成されなければならない。
【0022】
こうしたポリシーを定義するとき、これらがどのように実施されるべきか(例えば「1時間ごとのスケジュールでバックアップジョブを作成する」など)を記述する物理的ステートメントに対して、何を行うべきか(例えば「私は1時間以内にデータを回復することができるだろう」など)を記述するために論理的または宣言的ステートメントが使用される場合、より大きい生産性を達成することができる。したがって、ポリシーは、こうした目標を容易にするために変更されるべき実際の構成設定の観点で表されるのに対して、ユーザの意図の観点から表されるべきである。
【0023】
ポリシーの実際の実装は複雑であり得る。というのは、それぞれ別個のセマンティクスにより操作される多くの低レベルの設定があり得るからである。さらに、ユーザが一緒に扱うことを望み得る設定は、異なる位置、または異なる方法、またはその両方で公開され得る。多くの場合、ユーザは、複数の類似のオブジェクトに対して単一の設定を繰り返し適用せざるを得ない(例えば各データベースが文字データの特定のソート順を使用するなど)。ファセット104は、ユーザの意図と低レベルの設定との間のギャップを埋めるために使用することができる。ファセット104は、特定の大きさのユーザの意図をモデリングする1組の論理的プロパティと考えることができる。ユーザは、ポリシーを、基礎を成すターゲット102への問い合わせを行い、または構成するために使用することができるコマンドに変換するよう構成することができる、ファセット104により公開された高レベル構成体に対するポリシーを作成することができる。
【0024】
ターゲット102は、ファセット104を介して状態またはメタデータを公開することができる。例えば、テーブルは、そのスキーマメタデータ(名前、所有者など)に対応する状態を有することができる。その物理的な格納に対応する状態(例えばパーティショニング、ファイルグループなど)、およびデータの内容に対応する状態(例えばサイズ、行数など)がある。これらは、異なるファセットとすることができ、ターゲットタイプの各ファセットは、意図を指定するためのインターフェイスである。
【0025】
ポリシーは、例えば、ファセット104の許容できる状態についてのステートメントとすることができる。典型的な宣言的スタイルでは、ポリシーは、所望の状態を達成する方法ではなく、ターゲット102の所望の状態を指定する。例えば、スキーマメタデータにおけるポリシーは、名前が「xy_」で始まるべきであると指定することができる。これらの指定は、許容状態に関する制約106として(例えば、ファセット104の属性に対する簡易ブール式によって)定義することができる。したがって、制約106は、1組の許容状態を指定する、単一ファセットパラメータによるブール関数とすることができる。
【0026】
ポリシー108は、制約106およびその挙動(例えば、制約106が実行される方法など)を指定することができる。異なるポリシーを、複合ポリシーまたはポリシーグループ110に集めることができる(例えば、単一のポリシーは、マシンの全てのセキュリティ要件を含み得る、または全体的なサーバポリシーは、命名ポリシー、表面積ポリシー、データ回復可能性ポリシー、スペース管理ポリシーを結合することができる)。ポリシーは、他のポリシーを参照することができる。
【0027】
個々のポリシー108は、ターゲット102またはターゲットの組に対して明示的に評価され得る。ポリシー108を、単一オブジェクト、またはオブジェクトの集まりに適用することができる(例えば、ポリシーを、データベースの全てのオブジェクトに適用することができる)。ポリシー108を、エンタープライズにわたって適用することもできる(例えば、Webファームの全てのサーバに適用することができる)。構成およびメンテナンスポリシーが複数の異質のサーバインスタンス(例えば、サーバファーム、フェデレーテッドサーバなど)に及ぶ場合、エンタープライズ管理は、エンタープライズシステム管理の総費用を簡略化し、低減することができるフレームワークである。
【0028】
ポリシー108の対象となるオブジェクトの集まりは、ターゲットセット112と呼ばれ、ターゲットセット112は、パス式によって指定される1組の管理ターゲットである。ターゲットセット112は、そのパス下の全てのターゲットから成る。ポリシー108とターゲットセット112との関連付けは、ポリシーバインディング114と呼ばれ、ポリシー108と管理ターゲットセット112との間のM:Mの関係である。ターゲットセット112を使用することにより、ユーザは、単一アクションで、全てのマシンをチェックしたり構成したりすることができる。システム100は、ポリシーバインディングを介して、特定のポリシーを特定のターゲットの組に自動的に適用することができる。バインディングは、所望の挙動のタイプ(例えば、違反についてチェックする、ターゲットを準拠するよう変更するなど)を指定することもできる。
【0029】
宣言的意図として表される宣言型管理を使用して、ユーザは、ポリシー108が所与のターゲットセット112と比較されるよう要求することができ、こうしたユーザに、ターゲットセット112がポリシー108に準拠するかどうかを知らせることができる。宣言型管理ユーザは、所与のターゲットセット112がポリシーに準拠するようになるよう要求することもできる。システムは、ターゲットセット112を構成し、強制的に1つまたは複数の設定が準拠する結果をもたらすようにすることができる。これが可能ではない場合(例えば、CPU使用率が80%未満であることをポリシーが要求するなど)、システムは、ファセット104に構成可能とフラグを立て、非構成可能ファセットに依存するポリシーを構成しようとする試行を拒否することができる。以下の表は、開示された実施形態と共に使用することができるファセット例を表す。
【0030】
【表1】
【0031】
システム100は、例えばユーザが選択可能なポリシー自動化を介して進行中の監視および構成を提供することもできる。自動化が呼び出される場合、ユーザは、所望の挙動(例えば、違反についてチェックする、ターゲットを準拠するよう構成するなど)を指定することができる。一部の実施形態において、準拠していないターゲットセットの構成の有無にかかわらず、変更に対して、自動化されたポリシー監視を行うことができる。これによって、任意の逸脱の即座の警告をユーザに提供することができる。
【0032】
自動化の場合、ユーザは、ポリシーがいつ評価されるべきか(例えば、スケジュール通り、変更が行われるたびなど)を指定することもできる。あるいは、またはさらに、システムは、そのポリシーを自動的に実施することができる(例えば、ポリシーに違反する変更を許可しないなど)。したがって、システム100は、ユーザに、最小限のユーザ対話で構成を管理するための手段を提供することができる。
【0033】
dmf_policies、dmf_constraints、dmf_bindings、dmf_target_sets、dmf_target_type_to_eventsなど、DMFカタログ表を不揮発性ストレージ(SQL Serverインスタンスにおけるシステムデータベースなど)で保持することができる。DFMにより作成されたジョブをチェックするには、以下のクエリを使用することができる。
【0034】
【表2】
【0035】
図2は、データベースサーバの管理可能性を提供するシステム200を示す。ユーザは、そのライフサイクルにわたってデータベースサーバを管理することができ、ライフサイクルにわたってデータベースサーバにおいてホストされている複数のアプリケーションを管理することができる。管理可能性は、システムがユーザ生産性をどれぐらいうまく可能にするかの目安である。生産性は、様々なユーザ機能の使い易さ、親しみやすさ、直観性、および/または信頼性に正比例し得る。また、生産性は、管理機構の自動化、および一般的な一貫性のある方法で多数のインスタンスおよびデプロイメントを管理する能力のいずれか、または両方にも正比例し得る。システムがエンタープライズのポリシーに準拠するよう構成される前にリリースされないように、ソフトウェアインストール中、またはアプリケーションデプロイメント中にシステム200を組み込むことができる。
【0036】
システム200は、インターフェイス構成要素202、宣言型管理構成要素204、およびレンダリング構成要素206を含む。システム200は、ユーザが意図を入力できる簡単で管理可能な手段を提供し、最小限のユーザ対話での意図の達成を容易にするために、その意図を1つまたは複数の設定に自動的に適用することができる。ユーザは、インターフェイス構成要素202を介して、こうした意図を入力することができる。
【0037】
ユーザは、意図に関連してシステム200により実行される1つまたは複数の機能を指定することもできる。例えば、ユーザは、ポリシーが所与のターゲットセットに準拠することをシステムがチェックするよう要求することができる。ユーザは、所与のターゲットセットがポリシーに準拠するようになるよう要求することもできる。あるいは、またはさらに、ユーザは、ポリシー自動化を要求することができる。ポリシーの例には、それだけには限定されないが、命名規則ポリシー、名前制約ポリシー、セキュアログインポリシー、構成ポリシー、OffByDefaultポリシー、コンプライアンスポリシー、データベース管理ポリシー、分析サービスパッチレベルポリシー、バックアップポリシー、表面積構成ポリシー、サーバCPU使用率ポリシーなどがある。
【0038】
ターゲットを定義する間、これらのターゲットが、物理ユニット(例えば、個々のデータベースまたはファイルグループ)ではなく、論理ユニット(例えば、サーバインスタンスにデプロイされた個々のアプリケーションなど)に対応するとき、ユーザ生産性を向上させることができる。低レベルアクションへの変換の詳細は、システム200によって実行される。
【0039】
宣言型管理構成要素204は、ポリシーの意図を解釈し、認識し、または推論するとき(宣言的用語で表される場合がそうである)、監視および報告を自動化することができる。また、これは、ポリシーの準拠を助けるために、システム200の調整またはメンテナンスを自動化することもできる。自動調整は、ニーズおよび使用に基づく自動インデックス作成/削除を含み得る。自動調整は、稼働または非稼働(オンまたはオフ)にすることができ、アグレッシブ性(例えば、よりアグレッシブ、あまりアグレッシブではないなど)について構成することができる。また、自動調整は、例えばOLAPでの自動集計設計を含むこともできる。こうした設計は、キューブを構築することを含み得る(SQL Server Analysis Servicesは、学ぶにつれて集計を追加することができる)。このように、システム200は、妥当な性能で開始することができ、使用を介して改善され得る。
【0040】
例えば、意図を「私は1時間以内にデータを回復することができるだろう」と表すことができる。宣言型管理構成要素204は、データの回復が望まれる(例えば損失したデータを回復するなど)と推論することができ、システムがシャットダウンされると(例えば、故意に、または意図せず)、シャットダウンと実質的に同時にバックアップコピーを作成することがユーザの意図を達成することになると推論することができる。このバックアップは、最後のバックアップが1時間未満前に行われた場合でさえ、行われ得る。したがって、ユーザの意図は、ユーザの意図で特に言及していなかった状況が起こったときでさえ満たされる。しかし、意図が「1時間ごとのスケジュールでバックアップジョブを作成する」と表された場合、ユーザの意図は、明確ではない。ユーザは、1つには損失したデータを回復するためなど、様々な理由でバックアップを必要とし得るが、他の理由がいくつかあるかもしれない。さらに、「1時間ごとのスケジュール」という用語は、システム障害や損失したデータを回復することができることを考慮に入れていない。したがって、意図が宣言型言語で書かれている状態で、システム200は、その意図からのわずかな逸脱(例えば、大量のデータが1人または複数人のユーザによって操作されている場合、バックアップの作成は、1時間ごとより頻繁)がユーザの意図によりよく一致する状況で、ユーザの意図をよりよく推論することができる。
【0041】
様々な実施形態を使用して、宣言型で表される意図を理解することができる。こうした実施形態は、キーワードを認識し、それらのキーワードに関して共通のアクションを含む参照テーブルにそれらのキーワードを適用することを含み得る。他の実施形態は、入力された意図(単語文字列など)をその副構成要素(個々の単語など)に構文解析し、各副構成要素において1つまたは複数の機能を行うことを含み得る。類似の単語または業界で一般的に使用されている、またはこの特定のユーザまたはユーザグループによって使用されている他の単語を決定するために、各副構成要素またはキーワードを分析することができる。このように、反復アクションまたは類似のアクションを識別し、同じまたは類似の設定またはパラメータをアクションに合わせて構成することができる。他の実施形態は、構文エンジン(syntax engine)、機械学習、ルールベースのロジック、人工知能、推論エンジンなどを使用して、ユーザが要求した意図を決定または推論し、こうした意図を、多くのアプリケーションにわたって様々な低レベルの設定に動的に適用することができる。
【0042】
高レベルの意図を低レベルの設定に自動的に適用するために、宣言型管理構成要素204を、アプリケーションを構成するターゲット要素を識別するよう構成することができる。識別されたターゲット要素を、様々な個々のターゲット要素から成る単一のターゲットとして一括することができる。結果として得られたアプリケーションを、追加のシステムにデプロイすることができ、ポリシーは、アプリケーションにおけるこうしたオブジェクトを対象とすることができる。したがって、単一のアクションで、ユーザは、設定を確実に変更したり、多くのマシンにおけるポリシーの実施をチェックし、構成し、または自動化したりすることができる。宣言型管理構成要素204は、さらに、ターゲットサーバ上の他のオブジェクトを妨害することなくアプリケーションを取り除くことができる。
【0043】
自動化が呼び出されると、宣言型管理構成要素204は、要求された挙動を自動的に行うことができる。こうした挙動は、それだけには限定されないが、違反についてチェックする、ターゲットを準拠するよう構成するなどを含み得る。また、自動化によって、ユーザは、ポリシーがいつ評価されるべきか、またはポリシーをいつ実施すべきか、またはその両方を指定することもできる。
【0044】
宣言型管理構成要素204は、宣言型で表されるユーザの意図を分析し、こうした意図を達成するよう構成されるべき低レベルの設定にこうした意図を適用するよう構成することができる。また、保管またはデプロイメントの目的で、ポリシーおよびバインディングをスクリプトし、インポートし、エクスポートするよう構成することもできる。宣言型管理構成要素204は、ファセットの属性に基づいて、簡単であるか複雑であるかにかかわらず、構成可能な、かつ/または実施可能なポリシーを認識することができる。
【0045】
ファセットは、プロパティおよびコミットロジックにアクセスするためのディスパッチメソッドを含み得るBaseFacetなど共通インターフェイスから導出することができる。各ファセットは、読み取り専用または読み取り/書き込みプロパティであり得るプロパティを定義することができる。アダプタクラスは、BaseFacetインターフェイスから継承することができ、基礎を成すオブジェクトモデルクラスを集合させることができる。アダプタは、オブジェクトモデルクラス(および他のロジック)の物理的なプロパティを使用して、ファセットプロパティを公開することができる。
【0046】
レンダリング構成要素206は、宣言型管理構成要素204により行われる様々な機能に関して、情報をユーザに提供することができる。こうした情報は、ディスプレイ画面上で表示したり、ファイルに保存したり、印刷したりすることができるレポート形式で提示することができる。自動ポリシーチェックを、システム200により自律的に行うことができるアクションまたは一連のアクションと結合することができる。アクションおよび通知を、ポリシー評価の成功または失敗と関連付けることができる。こうした通知は、もしあるとしたら違反の重大度および要求された通知タイプに応じて、セキュリティポリシーが失敗した場合、電子メールを指定された1人の人または1組の人に自動的に送信すること、音声通知を生成すること、視覚通知(ワーニングステートメントなど)を生成すること、または他のアクションを行う(1つまたは複数の機能を無効にするなど)ことを含み得る。
【0047】
また、ユーザは、レンダリング構成要素206にアクセスすることにより、任意のターゲットのポリシーを表示することもできる。特定のターゲットは、多くの異なるポリシーに準ずることになり、一部のポリシーは、ターゲット自体に適用されている場合がある。ターゲットが属する対象のアプリケーションが存在するか、ターゲットをホストするマシンまたはマシンの上位グループにターゲットが結合されていることがある。ユーザは、ターゲットを制約するポリシーまたはポリシーの一部分を表示することができる。このように、ユーザは、ターゲット、ポリシー、または制約が依然として適用可能であるか、または1つまたは複数のパラメータに対して変更を行うべきかを決定することができる。
【0048】
ポリシーへの準拠またはポリシーの違反に関する情報を、フィードバックループ208を介してインターフェイス構成要素202または宣言型管理構成要素204に中継することができる。こうしたフィードバックによって、システム200は、ターゲットまたはポリシーが1つまたは複数のユーザ定義されたパラメータに違反する場合、ターゲットまたはポリシーを所望のユーザの意図を達成するよう自動的に構成することができる。
【0049】
ユーザがシステムの状態(ポリシーへの順守など)を監視(報告および分析など)し、傾向または問題を分析することを望む場合、宣言型管理構成要素204は、(フィードバックを介して)ポリシー評価の結果を捕捉し、報告および分析のために、取得されたターゲットの状態の履歴をオペレーショナルデータウェアハウス(operational data warehouse)にコンパイルすることができる。ユーザは、こうした報告を使用して、システムの状態を監視することができ、任意の不備を手動で訂正することができる。また、ユーザは、システム200に、(自動で、またはユーザの要求に応じて)不備を訂正するよう指示することもできる。
【0050】
システム200は、拡張可能であり、したがって、個々の体験(例えば、パーティショニングを管理するポリシー、データ回復可能性を管理するポリシーなど)は、システム200の拡張である。システムのインターフェイス構成要素も他のサービスも、特定のファセットの特定のターゲットタイプに依存しない。この分離によって、ユーザは、単にプログラミングモデルを拡張することによって、新しい宣言型管理ファセットを増分的に追加することができる。
【0051】
システム200は、バックアップ/復元、インデックス調整/メンテナンス、物理的破損からの自動回復、背景メンテナンス、および/またはパーティション管理など、様々な特徴を提供することもできる。自動システム200は、通常のメンテナンスタスク、自動デフラグメンテーション、自動縮小/圧縮、自動一貫性検査、および/または改良された自動統計分析を含み得る。一部の実施形態では、システム200は、データベース作成時に作成されたデフォルトのバックアップメンテナンスプランを提供することができ、またはデフォルトのプランをカスタマイズすることができる。パーティション管理は、スライディングウィンドウ方式の自動メンテナンス(新しいパーティション/パーティション機能を作成する、パーティションをマージする(7日を1週間になど)、パーティションをアーカイブするなど)を含み得る。
【0052】
物理的破損からの自動回復は、システム200によって容易にされ得る。これは、自動一貫性検査によって、または通常の操作中の破損の検出によってトリガすることができる。ルール(例えば、ルールベースの構成要素、機械学習構成要素など)は、復元戦略(例えば、インデックスの再構築、ページの復元、ファイル/ファイルグループの復元、データベース全体の復元など)を決定することができる。
【0053】
システム200は、プログラミングモデル、ユーザインターフェイス、および管理サービスの3つの層でサポートすることができる。プログラミングモデルによって、同じ概念を複数のツールに公開することができ、ユーザアクションは、スクリプト可能とすることができ、ユーザは、管理アプリケーションを構築することができる。ユーザインターフェイス(グラフィカル、コマンドラインなど)は、プログラミングモデルの上に構築することができる。管理サービスは、ユーザアクションを自動化する能力を提供し、ランタイムサービスのホスト環境を提供することができる。
【0054】
主としてグループ(CPU、ストレージ、およびメモリなど)をプロビジョニングすることによって、エンタープライズ管理は、システム200によって容易にすることができる。また、システム200は、グループの構成およびメンテナンスのプランを適用し、実施し、グループのメンテナンス操作の状況を監視することもできる。また、グループ構成およびメンテナンスのプランのための再利用可能なテンプレート、およびバックアップ、データベース一貫性検査(dbcc)、およびポリシーの監視のためのそのまま使えるテンプレートを提供することもできる。システム200は、グループ構成およびメンテナンスのプランの管理を変更するよう構成することができる。一部の実施形態では、システム200は、アプリケーションをサーバのグループにデプロイし、グループ内でアプリケーションを動的に再割り振りすることができる。
【0055】
グループ管理のためのランチパッド、正常性および状況監視のロールアップなど、フェデレーテッドサーバの単一のシステムビューを備えたサーバグループの形式概念があり得る。グループ構成、メンテナンス、およびデータ収集ポリシーを提供することができる。また、グループポリシー準拠の監視、実施、および監査、並びにサーバのグループへのアプリケーションのデプロイメントを提供することもできる。
【0056】
システム200は、データベースアプリケーションおよび環境の宣言型のポリシーベースの管理を提供することもできる。性能要件、セキュリティポリシー、信頼性要件など、データベースアプリケーションの所望の操作上および管理上の挙動を定義するためのポリシーベースのフレームワークを提供することができる。ポリシーは、デプロイメント中、またはデプロイメント時に定義することができる。データベースシステムは、定義された挙動の準拠を監視し、適切な場合、実施することができる。このフレームワークは、変更がコミットされる前にポリシーをチェックしたい、またはDDLが実行されるたびにサーバポリシーを実施したい任意の構成要素によって使用することができる。また、これによって、サードパーティ開発者は、同じフレームワークを使用してポリシーを実施することもできる。
【0057】
システム200は、宣言型ポリシーを使用して単一のリレーショナルデータベースを管理する能力、および宣言型ポリシーを使用してリレーショナルデータベースのグループを管理する能力を提供することができる。また、データベースアプリケーションのポリシー駆動型データベース構成およびポリシー駆動型デプロイメントも提供される。データベースのグループの構成、メンテナンス、および監視のためのポリシー駆動型エンジンによって、データベース管理者は、何を行うべきかを指定することができ、システムは、こうしたアクションを複数のサーバにわたって行うことができる。また、データベースのグループにおける全てのデータベースの構成、メンテナンス、および監視のために、何が行われるべきかを指定する能力も提供され、システムは、こうしたアクションを複数のサーバにわたって行う。
【0058】
図3は、ユーザの意図をデータ管理製品に動的に適用するシステム300を示す。システム300は、システム300が解釈することができる論理レベルでの高レベルポリシーとして管理の意図を捕捉するように構成することができる。システム300は、入力(ターゲット、ポリシー、意図、目標、要求など)を受け付けるよう構成することができるインターフェイス構成要素302を含む。こうした入力は、システム管理者などユーザから(テキスト、音声など)、またはシステム300からのフィードバックとして受信することができる。宣言型管理構成要素304は、入力を処理するよう構成することができ、処理された入力の結果は、レンダリング構成要素308によって提示(例えば表示)または捕捉(例えば報告)される。例えば、レンダリング構成要素308は、結果をディスプレイ画面に、音声手段を介して提示したり、後で報告する目的で、情報を捕捉したりすることができる。
【0059】
レンダリング構成要素308は、様々な形の監視および報告を含めて、ターゲットの準拠または非準拠に関する情報をユーザに提示することができる。ユーザは、レンダリング構成要素308に、任意のターゲットに対して効力のあるポリシーを提供し、ターゲットを直接制約する任意のポリシーの部分を提示するよう要求することができる。
【0060】
あるいは、またはさらに、レンダリング構成要素308は、フィードバックループ308を介して、フィードバックを入力構成要素302または宣言型管理構成要素304に提供することができ、このように、システム300は、こうした機能を自動的に行うよう構成されている場合、意図に従って1つまたは複数の設定値を連続的に監視し、構成することができる。フィードバックループ308によって、システム300は、自己管理、自己修復、および自己調整することができる(例えば、単にリレーショナルではなく、ボックスにわたって働く)。例えば毎日の使用から様々な設定または「ノブ」を取り除くことによって、操作においてゼロタッチを可能にするように(ユーザ対話を最小限に抑えるなど)、ポリシーを予めセットアップすることができる。
【0061】
構文解析構成要素310および構文エンジン312もシステム300に含まれ得る。これらの構成要素310、312は、示されているように、宣言型管理構成要素304の副構成要素または別個の構成要素とすることができる。構文解析構成要素310は、宣言型言語で表すことができる1つまたは複数のユーザの意図を取得し、こうした言語を分析できる構成要素に分割することができる。例えば、ユーザは、意図「私は1時間以内にデータを回復することができるだろう」を入力することができる。構文解析構成要素310は、センテンスをその単語および句に分割する(例えば、私、だろう、ことができる、回復する、データを、以内に、1時間など)。この情報は、特定のユーザの意図を導出するために各単語または句を分析する構文エンジン312によって評価することができる。
【0062】
「私」、「だろう」など、いくつかの単語または句は無視することができる。他の単語、例えば「回復」などは、この用語がこのユーザ、他のシステムユーザ、または業界内の一般的な用語により表された別の方法があるかどうかを決定するために評価することができる。例えば、システムは、単語「回復」を「バックアップ」、「障害」、「損失」などの単語と関連付けることができる。これによって、宣言型管理構成要素304は、より広いユーザの意図を推論することができ、この意図を、類似の単語または句を使用する複数のアプリケーションに適用することができる。
【0063】
図4は、高レベルの意図を低レベルの設定に自動的に適用することを容易にするシステム400を示す。システム400は、ユーザが、ポリシーをユーザの意図に準拠させるためにシステムをどのように構成するかではなく、システムがどのようになるべきか(ポリシー)を定義することができるようにすることによって、ユーザ対話を軽減する。ポリシーは、セキュリティまたはアクセス制御、性能、容量、操作、セットアップまたはパッチ、開発、宣言型管理など、いろいろな異なるカテゴリと関連し得る。ユーザは、意図を、物理的実装の仕様から抽象された論理レベルで一度定義することができ、システムは、それを複数回適用する。システム400は、データ管理製品(SQL Serverなど)に収容することができる。さらに、システムは、アクションをもたらす様々なモードを有することができる。こうしたモードは、それだけには限定されないが、準拠についてのチェック、準拠のための構成、準拠の実施などを含む。
【0064】
システム400は、インターフェイス構成要素402、宣言型管理構成要素404、およびフィードバックループ408を介してシステムにフィードバックを提供することができるレンダリング構成要素406を含む。様々なシステム400の構成要素は、宣言型管理構成要素404の1つまたは複数の機能を容易にするために、個別に、または一緒に動作することができる。こうした構成要素には、セキュリティ構成要素410、履歴構成要素412、集計構成要素414、構成構成要素(configuration component)416、最適化構成要素418、およびバインディング構成要素420などがある。これらの構成要素410〜420は、図示のように、独立していてもよく、または宣言型管理構成要素404の副構成要素であってもよい。
【0065】
インターフェイス構成要素402は、グラフィカルユーザインターフェイス(GUI)、コマンドラインインターフェイスなどとすることができる。ユーザは、インターフェイス構成要素402との対話を介して、宣言型管理構成要素404の結果として生じた出力(例えば、1つまたは複数の設定への変更)を選択的に構成することができる。インターフェイス構成要素402およびユーザインターフェイス例に関するさらなる詳細について、以下で説明する。
【0066】
セキュリティ構成要素410は、1つまたは複数のセキュリティ要素または統合セキュリティモデルを提供するよう構成することができる。セキュリティ構成要素410は、例えばユーザに関連付けられている一意の識別(ユーザ名、ユーザパスワードなど)を介して、ユーザに関する情報を集めることができる。ユーザが閲覧の権限を有するターゲットセットまたはポリシーの部分のみを表示することができるように、ユーザごとに予め定義されたセキュリティレベルに基づいて、セキュリティ構成要素410は、レンダリング構成要素406と選択的にインターフェイスすることができる。このように、システム400は、ユーザが許可されていない、またはユーザが十分な情報を有しておらず、したがって変更すべきではない設定に対する許可されていない変更、追加、削除などを減らすことができる。
【0067】
さらに、またはあるいは、セキュリティ構成要素410は、予め定義された構成など、特定の方法または順序でポリシーをデプロイするよう構成することができる。こうした予め定義された構成は、高レベルでデプロイされるポリシーが低レベルポリシーに取って代わることができるようにするなど、様々なタスクを含む。例えば、サーバグループポリシーは、データベースポリシーより高い優先度を有することができる。セキュリティ構成要素410は、ファセットを準拠させないようにする試行を検出し、こうした試行を防ぐこともできる(例えば、システムは、ポリシーを「実施する」ことができる)。しかし、他の多数の構成を使用することができ、適切なセキュリティレベルを有するユーザによって構成することができることを理解されたい。
【0068】
履歴構成要素412は、前のポリシー、ポリシーバージョン、ターゲット、ファセットなどに関する情報を維持することができる。これは、それぞれの関連付けおよび関連性を決定するために、前のポリシー、ポリシーバージョン、ターゲットなどにアクセスする能力を、1つまたは複数のシステム400の構成要素に提供することができる。こうした履歴情報は、1つまたは複数のシステム400の構成要素に関連付けられている記憶媒体において、取り出し可能なフォーマットで維持することができる。例えば、システム400は、メモリおよび/または情報を格納することができる他の何らかの媒体を含み得る。
【0069】
履歴情報は、宣言文(意図など)を低レベルの設定に変換するために、システム400によって使用することができ、それによってシステム400の構成の自動化が可能になる。例えば、ユーザは、アプリケーションを構成するターゲット要素を示すことができ、こうしたアプリケーションは、1つのターゲットからインポートされ、保存され、後で1つのユニットとして新しいターゲットにデプロイされ得る。この情報は、レンダリング構成要素406を介してユーザに提示することもでき、したがってユーザは、異なるポリシーおよびポリシーバージョンの履歴、および管理ターゲットとのその関連付けを表示することができる。ユーザは、こうした情報を使用して、システム400をさらに構成したり、特定のシステム400の構成を決定したり、システム400の過去の状態に関する他の情報を取得したりすることができる。
【0070】
物理的ステートメントが物理的なターゲットに適用されている状態で、ユーザは、そのアクションにおいてサーバ固有またはアプリケーション固有のアーティファクトをやむを得ず使用することが多く、これによって、多くのサーバにおける多くのアプリケーションにわたって意図を広く適用することがほとんど不可能になる。この問題を克服するために、集計構成要素414は、規模の自動化を含めて、規模の管理を可能にするよう構成することができる。したがって、ユーザは、同じ管理ファセットが別個の方法で構成されるオブジェクトによって表されるとき、個々のオブジェクトを構成するために特化したセマンティクスを学んだり覚えたりする必要はない。例えば、ポリシーは、単一のターゲットまたはターゲットのグループに対して適用することができる(明示的に、または自動化を介して)。ポリシーは、管理ファセットに対して適用することができるため、インターフェイス構成要素402を使用して単一ポリシーを入力することによって、ユーザは、この管理ファセットを表す複数のオブジェクトを構成することができる。しかし、アプリケーションを対象とするポリシーは、そのアプリケーションに属するサーバ上のこれらのオブジェクトのみに適用されるべきである。あるいは、またはさらに、集計構成要素414は、別個の管理ターゲットからの設定など、別々の設定を抽象することができる。例えば、リソース消費ファセットは、オペレーティングシステムファイルシステムおよびデータサーバ上の残りの空のページを監視し、構成することができる。
【0071】
構成構成要素416によって、ユーザは、1つまたは複数の要素を自動的に構成するために、システム400の1つまたは複数の要素(ポリシー、ターゲットなど)を選択的に構成することができる。例えば、ユーザは、アドホックベースで、宣言型管理構成要素404に、所与のターゲットが所与のポリシーに準拠するかどうかを確認するよう指示することができる。システム400は、ポリシーの準拠を強制するために、準拠していないターゲットにおいて別のアクションを再構成したり実行したりすることができる。
【0072】
ユーザは、拡張可能アプリケーションプログラムインターフェイス(API)など、プログラミングモデルを拡張することによって、新しいファセットまたはターゲットを増分的に追加することができる。APIは、1組のルーチン、プロトコル、およびツールを介してソフトウェアアプリケーションを構築することを容易にし、開発者および/またはプログラムは、APIを使用して、動作環境およびユーザのニーズと一致するカスタマイズされたアプリケーションを構築することができる。ファセットを拡張可能APIに1つの構成体として含めることによって、ユーザは、各自のファセットを作成して、各自の管理目標を捕捉し、実行することができる。ターゲットを拡張可能APIに1つの構成体として含めることによって、追加のターゲットを、新しいターゲットを実装するユーザまたはソフトウェア開発者によるシステム400の制御下に置くことができる。
【0073】
最適化構成要素418は、システム400の1つまたは複数のパラメータを最適化するよう構成することができる。最適化構成要素418によって、システム400のアプリケーションは、複数のサーバおよび複数の製品(ベンダー)にわたって拡張することができる。ユーザは、ポリシーの対象をそれらのオブジェクトを含む階層のルートとすることによって、多くのオブジェクトをポリシー下に置くことができる。したがって、ポリシーは、サーバ上の単一のオブジェクトからエンタープライズまで延びる階層の任意のレベルを対象とすることができる。
【0074】
類似のサーバのグループ(マルチサーバ構成など)の場合、システム400は、共通構成オプションを設定する、グループ構成への準拠を実施する、および構成の変更を監査する能力を提供する。システムは、サーバのグループの共通メンテナンスプランおよびジョブを構成することによって、サーバグループメンテナンスの簡略化を容易にすることができる。サーバのグループのメンテナンスタスクの状況を監視する能力。また、サーバグループメンテナンスの簡略化は、メンテナンスプラン、ジョブ、およびスクリプトの中央リポジトリ、並びにメンテナンスプラン変更を監査する能力によっても提供され得る。
【0075】
システム400は、監視コンテキスト(例えば、使用されたサーバ下または上)および/または性能/オペレーショナルデータ収集に基づいて、サーバのサブセットに焦点を当てるために、サーバのグループの一般的な正常性を監視する能力を提供することによって、複数のサーバの監視を容易にすることができる。
【0076】
一部の実施形態では、最適化構成要素418は、ライフサイクル全体の自動化を可能にすることによって、自己管理システムを提供するよう構成され得る。これは、システム400のデプロイメントの自動構成、自動監視、自動準拠報告、および自動メンテナンスおよび調整を含み得る。
【0077】
バインディング構成要素420は、1つまたは複数のポリシーの評価を効率的に行うためにバインディング評価(binding evaluation)を行うよう構成することができる。バインディング構成要素420は、M:M関係を有する(例えば、ターゲットセット当たり1つのポリシーがある)ポリシーとターゲットセットとの間の関連付けを提供することができる。すなわち、バインディングは、1つのポリシーと1つのターゲットセットから成る。1つのポリシーは、複数のバインディングによって参照され得る。1つのターゲットセットは、複数のバインディングによって参照され得る。バインディング挙動は、サーバのグループを類似の方法で管理されるように確立するために、標準データ複製技術(トランザクション複製など)を使用できるように、データ駆動とすることができる。一部の実施形態では、バインディング評価は、ターゲットセットによって記述された1組のオブジェクトを計算し、全ての制約を各ターゲットに適用することによって、クライアントコードで実行することができる(例えば、その制約によって含まれる式ツリーにおいてコードを実行するなど)。ポリシーバインディングを、管理サービスのための他のメタデータと一緒に、データベースまたは他のストレージメディアなどに格納することができる。
【0078】
一部の実施形態では、バインディング評価を、サーバコンテキストで実行することができるクエリに変換することができる。こうしたクエリは、バインディングにおける制約のいずれかに違反するオブジェクトを戻すことができる。ターゲットノードを記述するユニフォームリソース名(URN)で開始し、バインディングにおける制約ごとに、その制約を満たさない行を取得するためのみに、制約表現に含まれる情報が使用され、それを無効にする変換プロセスを使用することができる。バインディング評価に対応するURNを取得することができる。ほとんどの場合、このURNは、列挙子によりクエリに変換することができ、クエリへのバインディングを低減することができる。限定ではなく例示の目的で、以下は、データベース「JM_Accounts」において、ユーザが定義し、格納した全ての手順の名前が「JM_」で開始する制約の(英語での)例である。
【0079】
【表3】
【0080】
次に図5を参照すると、開示された実施形態を使用するイベントディスパッチ機構500が示されている。DDLトリガイベント502、トレースイベント504、WMIイベント506などのイベントは、複数のデータソースから収集され、処理される前にイベントを格納するために使用される一時テーブルであり得るステージングエリア508に配置され得る。どのバインディング510(システム500に存在する)がイベント508に関与し得るかを決定するために、アルゴリズム、メソッド、または他の技術を使用することができる。こうした決定は、バインディング510に存在する制約516によって使用される(登録された)ファセット514の既存のアダプタ512(例えば、システム500に登録されるアダプタについての情報)に基づいて行うことができる。バインディング510、アダプタ512、ファセット514、および制約516は、4ブロックテーブルの結合(four−block table join)518を表すことができる。バインディングは、バインディングアクティベーション(binding activation)を含む履歴テーブルであるバインディングアクティベーション520に含まれ得る。バインディングは、522に示されているように、稼働されたり、評価されたりすることができる。定義された結果および挙動に一部分基づいてカスタムアクションを、例えば、変更を防いだり、後の分析のために変更を報告したりするために行うことができる。バインディング評価は、同じトランザクションコンテキストを、イベントを生成した操作と共有することができる。操作の防止は、バインディングを評価した手順におけるトランザクションをロールバックすることを含み得る。
【0081】
図6は、開示された実施形態に従って1つまたは複数の特徴の自動化を容易にする機械学習を使用するシステム600を示す。システム600は、ユーザインターフェイス構成要素602、宣言型管理構成要素604、レンダリング構成要素606、フィードバックループ608、および機械学習構成要素610を含む。ユーザは、ユーザインターフェイス構成要素602との対話を介して、様々なポリシー、目標、意図を入力することができる。この情報は、システム600を動的に構成するために、機械学習構成要素610とインターフェイスする宣言型管理構成要素604に伝えられる。
【0082】
システム600は、様々な態様を実行するための様々な機械学習方式を使用することができる。一部の実施形態によれば、人工知能を使用することができる。人工知能ベースのシステム(例えば、明示的および/または暗黙的に訓練された分類器など)を、本明細書に記載されている1つまたは複数の態様による推論および/または確率的決定および/または統計ベースの決定の実行とともに使用することができる。様々な分類方式および/またはシステム(例えば、サポートベクトルマシン、ニューラルネットワーク、エキスパートシステム、ベイジアンビリーフネットワーク、ファジー論理、データフュージョンエンジン(data fusion engine)など)を、対象の実施形態に関連する自動アクションおよび推論されるアクションの実行に関連して使用することができる。
【0083】
例えば、特定のターゲットセットがポリシーに準拠しているかどうかを決定する人工プロセスは、自動分類器システムおよびプロセス(例えば、人工知能構成要素など)を介して容易にすることができる。さらに、同じまたは類似のリソースを有する複数のポリシーを要求している場合、特定の状況において使用すべきポリシーを決定するために、分類器を使用することができる。
【0084】
分類器は、入力属性ベクトル、x=(x1、x2、x3、x4、xn)を、入力があるクラスに属する、すなわちf(x)=信頼性(クラス)である信頼性にマッピングする関数である。こうした分類は、確率的および/または統計ベースの分析(例えば、分析ユーティリティおよびコストをファクタリングする)を使用して、ユーザが自動的に実行されることを望むアクションを予知または推論する。データベースシステムの場合、例えば、属性は、単語または句、または単語から導出された他のデータ固有の属性(データベーステーブル、主要な用語の存在など)とすることができ、クラスは、対象のカテゴリまたはエリアである(優先度のレベルなど)。
【0085】
サポートベクトルマシン(SVM)は、使用できる分類器の一例である。SVMは、可能な入力の空間内で、非トリガイベントからトリガ基準を分離するよう試行する超曲面を見つけることによって動作する。直観的には、これによって、訓練データに近いが同じではないデータのテストのために、分類が正確になる。他の有向および無向のモデル分類手法には、例えば、ナイーブベイズ、ベイジアンネットワーク、決定樹、ニューラルネットワーク、ファジー論理モデル、および独立性の異なるパターンの提供を使用することができる場合には、確率分類モデルなどがある。本明細書で使用される分類は、優先順位のモデルを開発するために使用される統計的回帰も含む。
【0086】
対象の明細書から容易に理解できるように、1つまたは複数の実施形態は、明示的に訓練された(例えば一般的な訓練データを介してなど)、および暗黙的に訓練された(例えば、ユーザ挙動を観察することによって、外部の情報を受信することによって)分類器を使用することができる。例えば、SVMは、分類コンストラクタ(classifier constructor)および特徴選択モジュール内の学習フェーズまたは訓練フェーズによって構成される。したがって、分類器は、それだけには限定されないが、ポリシーまたはターゲットを構成すべきとき、格納されているどのポリシーを実行すべきかなど、予め定められた基準に従って決定することを含めて、いくつかの関数を自動的に学習し、実行するために使用することができる。この基準は、それだけには限定されないが、変更すべきデータまたはアプリケーションの量、ポリシーまたはターゲットのタイプ、ポリシーまたはターゲットの重要度などを含み得る。
【0087】
一部の実施形態によれば、機械学習構成要素610は、ルールベースの論理方式を使用することができる。この実施形態によれば、データベースまたはドメイン内のポリシーまたは低レベルの設定を制御し、かつ/または規制するために、実装方式(例えばルール)を適用することができる。ルールベースの実装は、予め定義された基準に基づいてポリシーまたはターゲットセットを自動的および/または動的に規制することができることを理解されたい。それに応答して、ルールベースの実装は、任意の所望の基準(例えば、ポリシーまたはターゲットのタイプ、ポリシーまたはターゲットのサイズ、ポリシーまたはターゲットの重要度、データベース所有者、ユーザ識別など)に基づいて予め定義されたおよび/またはプログラムされたルールを使用することによって、特定のポリシーを許可し、拒否し、かつ/または変更することができる。
【0088】
一例によれば、ユーザは、予め定義されたタイプのリソースにアクセスするために信頼できるフラグおよび/または証明書を必要とし得るが、特定のデータベース内の他のリソースは、こうしたセキュリティクレデンシャルを必要としないというルールを確立することができる。任意の選好は、ルールの形で予め定義したり、予めプログラミングしたりすることによって実行することができることを理解されたい。
【0089】
上記で示され、記載されたシステム例に鑑みて、開示された主題に従って実装され得る方法は、図7および8のフローチャートを参照すると、よりよく理解されよう。説明を簡単にするために、この方法は、一連のブロックとして示され、記載されているが、特許請求された主題は、ブロックの数または順序によって制限されず、一部のブロックは、本明細書に示され、記載されているものとは異なる順序で、かつ/または他のブロックと同時に行われ得ることを理解されたい。さらに、以下に記載される方法を実施するために、示されている全てのブロックが必要というわけではない。ブロックに関連付けられている機能は、ソフトウェア、ハードウェア、その組み合わせ、または他の適した手段(装置、システム、プロセス、構成要素など)によって実施され得ることを理解されたい。さらに、以下に、および本明細書を通じて開示されている方法は、こうした方法を様々な装置に運び、移すことを容易にするために、製品上に格納することができることをさらに理解されたい。方法を、代わりに、例えば状態図に一連の相関状態またはイベントとして表すことができることを当業者であれば理解されよう。
【0090】
図7は、ユーザの生産性の向上を容易にする方法700を示す。方法700は、702で開始し、意図が受信されると、こうした意図を宣言型言語で表すことができる。704で、意図を達成するよう構成すべき設定に関する決定が行われる。こうした設定は、高レベルの設定から低レベルの設定までを含み得る。706で、適切な設定が最小限のユーザ対話により自動的に構成される。
【0091】
図8は、データ管理製品を構成する方法800を示す図である。方法800は、802で、情報の受信により開始し、こうした情報はターゲット、ポリシー、ファセット、制約、およびデータ管理製品に関連する他の情報を含み得る。ファセットは、「get」および「set」を有し得る。制約は、ファセットを、例えばブール値に対して評価することができる。制約当たり1つのファセット、およびポリシー当たり1つの制約があり得る。ポリシーは、チェック、構成、実施などの挙動を有する。804で、設定および/またはアプリケーションの間の類似性が確立される。
【0092】
806で、宣言型言語で表すことができる意図が受信される。808で、ポリシーをターゲットセットにマッピングするポリシーバインディングが行われる。ポリシーが評価されると、電子メールやイベントログ入力などのアクションがトリガされ得る。一部の実施形態では、ポリシーは、スケジュール通りに評価され得る。810で、制約または違反を評価することができる。違反がある場合、812で、ターゲットまたはポリシーを変更するなど、適切なアクションを取ることができる。814で、監視および報告の機能が提供され、810で違反が見つけられたかどうかが報告され得る。
【0093】
開示された実施形態を鑑みて、様々なユーザインターフェイス例および機能的シナリオが提示される。ユーザインターフェイスは、インターフェイス構成要素によって提供することができる。例えば、インターフェイス構成要素は、グラフィカルユーザインターフェイス(GUI)、コマンドラインインターフェイスなどを提供することができる。例えば、ユーザにロード、インポート、読み取りなどの領域または手段を提供するGUIをレンダリングすることができ、1つまたは複数の意図、ポリシー、ターゲットは、こうした結果を提示するための領域を含み得る。これらの領域は、ダイアログボックス、スタティック制御、ドロップダウンメニュー、リストボックス、ポップアップメニュー、編集制御、コンボボックス、ラジオボタン、チェックボックス、プッシュボタン、グラフィックボックスを含む既知のテキストおよび/またはグラフィック領域を含み得る。さらに、ナビゲーション用の縦および/または横のスクロールバーや、領域が可視かどうかを決定するためのツールバーボタンを使用することができるなど、情報伝達を容易にするユーティリティを提供することができる。例えば、ユーザは、情報を編集制御に入力することによって、システムと対話することができる。
【0094】
ユーザは、マウス、ローラーボール、キーパッド、キーボード、ペン、および/または音声稼働など、様々な装置を介して情報を選択し、提供するための領域と対話することもできる。一般に、情報伝達を開始するために、情報の入力後、プッシュボタンなどの機構やキーボード上の入力キーを使用することができる。しかし、開示された実施形態はそのように限定されていないことを理解されたい。例えば、チェックボックスの単なる強調表示によって、情報伝達を開始することができる。別の例では、コマンドラインインターフェイスを使用することができる。例えば、コマンドラインインターフェイスは、テキストメッセージを提供することによって、ユーザに情報を入力するよう要求することができる(例えば、ディスプレイ上のテキストメッセージ、および音声トーンによるなど)。次いで、ユーザは、インターフェイスプロンプトで提供されるオプションに対応する英数字入力や、プロンプトで提起される質問への回答など、適した情報を提供することができる。コマンドラインインターフェイスは、GUIおよび/またはAPIと共に使用することができることを理解されたい。さらに、コマンドラインインターフェイスは、グラフィックサポートが限られているハードウェア(例えばビデオカード)および/またはディスプレイ(白黒、EGAなど)、および/または低帯域幅通信チャネルに関連して使用することができる。
【0095】
次に図9を参照すると、ユーザインターフェイスのスクリーンショット例が示されている。ポリシーまたは制約の検索および選択を容易にすることができるオブジェクトブラウザ900が示されている。オブジェクトブラウザ900は、ユーザがポリシーまたは制約のパラメータを操作するように、様々な選択を提供することができる。データベース904、セキュリティ906、サーバオブジェクト908、複製910、管理912、通知サービス914、サーバエージェント916、および他の所望のサブディレクトリなどのサブディレクトリを含むディレクトリ902を選択することができる。各サブディレクトリ904〜916は、ディレクトリが拡張可能であることを示す、各サブディレクトリ904〜916の横に配置されているプラス「+」記号によって示されるように、さらにサブディレクトリを有し得る。ディレクトリが圧縮され得る、または展開できないことを示す、選択されたディレクトリの隣のマイナス「−」記号によって示されるように、管理サブディレクトリ912が選択される。
【0096】
管理サブディレクトリ912下は、ポリシー1 920、ポリシー2 922、およびポリシーN 924など、多数のポリシーを含み得るポリシーサブディレクトリ918とすることができる。この場合、Nは、ゼロ以上の数字である。管理サブディレクトリ912は、制約1 928、制約2 930、および制約N 932など、多数の制約を含み得る制約サブディレクトリ926を含むこともできる。この場合、Nは、ゼロ以上の数字である。
【0097】
単一サーバは、様々な実施形態に従って自動化された方法で管理することができる。ポリシーバインディング、バインディング、制約、またはファセット(ノードなど)において様々なアクション(表示、作成、編集、削除、適用、インポートなど)を行うために、ユーザは、オブジェクトブラウザ900のドロップダウンリストから所望の項目を選択することができる。ターゲットノードは、ノードを強調表示し、マウスの右ボタン(または等しいファンクション)を使用して、所望のアクションを選択することによって選択することができる。
【0098】
例えば、ポリシーバインディングにおいて様々なアクションを行うために、ユーザは、ノードを選択することができる(例えば、ノードを強調表示し、マウスの右ボタンを押下するなど)。「ポリシーバインディングプロパティ」ウィンドウまたは画面を呼び出すために、ドロップダウンメニューおよびリンクから、「ポリシーバインディング管理」などを選択することができる。ポリシーバインディングを表示するには、「デプロイされたポリシー」タブを選択することができる(例えば、マウスボタンでクリックするなど)。デプロイされたポリシーによって、ユーザは、ノードまたはその子孫にデプロイされたポリシーバインディングを表示することができる。ノードにおける有効なポリシーバインディングを表示するには、ユーザは、「ポリシーバインディング管理」ドロップダウンメニューから「有効なポリシー」タブを選択することができる。
【0099】
また、「ポリシーバインディング管理」ドロップダウンメニューによって、ユーザは、ポリシーバインディングを作成、編集、または削除することもできる。ポリシーバインディングを作成するには、「ポリシーバインディングプロパティ」ウィンドウまたはユーザ画面を呼び出すことができる「新規」ボタンが選択される。組み合わせボックスからポリシーを選択することができ、望ましい場合、スケジュールを選択することができる。選択されたポリシーバインディングを作成するには、ユーザは、変更を受け付けることができる(例えば「OK」ボタンをクリックする)。
【0100】
ポリシーバインディングを編集するには、「編集すべきポリシーバインディング」を選択(例えば強調表示)し、「編集」ボタンを選択して、「ポリシーバインディングプロパティ」ウィンドウを開いて編集することができる。ポリシーバインディングを削除するには、削除すべきポリシーバインディングを選択する(例えば強調表示する)ことができる。選択されたポリシーバインディングを削除するには、「削除」ボタンをクリックし、または選択することができる。
【0101】
図10は、ポリシーを適用するためのユーザインターフェイス例を示す図である。アドホック式の管理において、ポリシーは、オブジェクトブラウザ900または登録されたサーバペインにおいて、ターゲットノードを選択することによって適用することができる。ドロップダウンメニューから「ポリシーの適用」を選択して、ポリシーの適用ウィンドウ1000を呼び出すことができる。
【0102】
ロードされたポリシー1002またはポリシーファイル1004を選択するかどうかの決定が行われ、所望のアクションを選択することができる。示されているように、ロードされたポリシー1002が選択される。ポリシーのリスト1006から特定のポリシーを選択する、またはファイルを指定1008するために、ドロップダウンメニューを提供することができる。適用またはOKボタン1010を選択またはクリックすることによって、ポリシーを適用することができる。キャンセル1012ボタンを選択することによって、全アクションがキャンセルされ、ポリシーの適用ウィンドウ1000が閉じる。
【0103】
ポリシーに対してアクションを行う(表示、作成、編集、削除、インポートなど)には、ポリシーがオブジェクトブラウザ900から選択され、適したアクションがマウスボタンの右クリックによって呼び出されるドロップダウンメニューから選択され得る。「新規」の選択によって、「ポリシープロパティ」ウィンドウが呼び出される。ポリシーを編集するには、所望のアクションを選択する、コンボボックスから所望の制約を選択する、または新しい制約を作成することができる。変更を受け付けるには、受け付けまたはOKボタンを選択(例えばクリック)することができる。
【0104】
ポリシーを削除するには、ポリシーが選択され(例えば右クリック)、ドロップダウンメニューから「削除」が選択される。ポリシーをインポートするには、ドロップダウンメニューから「インポート」が選択されて、「ポリシーのインポート」ウィンドウを呼び出す。所望のポリシーファイルが選択され、「OK」ボタンが選択される。
【0105】
類似の方法で制約に対してアクションを行うことができる。オブジェクトブラウザ900から、制約が選択される。制約を作成するには、ドロップダウンメニューから「新規」が選択されて、「プロパティの制約」ウィンドウを呼び出す。所望の管理ファセットが選択され、「新規」ボタンがクリックされて、新しい数式行(expression row)を追加する。数式行において、「プロパティ演算子値」数式が構築される。行を削除するには、数式行を強調表示し、「削除」ボタンを押すことができる。「OK」ボタンをクリックすることによって、ウィンドウが閉じる。
【0106】
制約は、「制約プロパティ」ウィンドウを呼び出すことによって、編集することができる。異なる管理ファセットを選択することができる。「新規」ボタンをクリックすることによって、新しい数式行を追加する。上記と類似の方法で、数式行を削除することができる。数式行において、ユーザは、プロパティ、演算子、および値を編集することができる。「OK」ボタンを選択することによって、変更がサブミットされる。
【0107】
図11は、ポリシープロパティのユーザインターフェイス1100例を示しており、この場合、ポリシーは、「highSecurity」である。ユーザが構成可能な名前1102、およびポリシー1104の説明を選択または入力することができる。ドロップダウンメニュー1106からアクションを選択することができる。こうしたアクションは、新しいポリシーを作成すること、ポリシーを編集すること、ポリシーを削除することなどを含み得る。ドロップダウン制約リスト1108から制約を選択することができる。状態インターフェイスを含むドロップダウンリスト1110は、ファセットごとに使用可能である。制約1108およびファセット1110は、適切なアクションのためだけに可能にされるべきである。新規ボタン1112を選択して、新しい制約1108またはファセット1110を追加することができる。
【0108】
ポリシー1114の所有者、作成日1116、および最終変更日1118を含めて、他の様々なタイプの情報を捕捉することができる。ユーザは、キャンセル1120を選択して、アクションを削除し、ウィンドウ1100を閉じることができる。OKボタン1122を選択することによって、現在の変更を受け付け、ウィンドウ1100を閉じる。
【0109】
図12は、制約プロパティのユーザインターフェイス例1200を示す。インターフェイスは、名前1202を付けるまたは制約を選択するための手段を提供することができる。管理ファセット1204は、ファセットのリストを含むドロップダウンメニューから選択することができる。ユーザが制約ごとに様々なプロパティ1206、演算子1208、値1210を選択することができるテーブルまたはリストを提供することができる。こうした選択は、ドロップダウンメニューから、またはテーブルに情報を直接入力することによって行うことができる。テーブルは、プロパティの編集、追加、および削除を可能にするはずである。ユーザは、キャンセル1212を選択して、アクションを削除し、ウィンドウ1200を閉じることができる。OKボタン1214を選択することによって、現在の変更を受け付け、ウィンドウ1200を閉じる。
【0110】
図13は、制約プロパティのユーザインターフェイス1300の別のスクリーンショット例を示す。プロパティ名1302、所有者名1304、説明1306、作成日1308、および最終変更日1310は、システムによって提供または定義することができ、一部の実施形態によれば、ユーザは、これらのフィールドを変更することができない。ユーザは、制約リストテーブル1312から、制約名1314、状態インターフェイス1316、制約識別1318を選択し、定義することができる。ユーザは、適切なアクションボタン1320、1322、1324を選択することによって、新しい制約を作成したり、制約を編集したり、制約を削除したりすることができる。
【0111】
図14は、原子制約プロパティのユーザインターフェイス例1400を示す。制約名1402を選択することができ、状態インターフェイスを、状態インターフェイス1404のリストを含むドロップダウンメニューから選ぶことができる。ユーザが制約ごとに様々なプロパティ1406、演算子1408、値1410を選択することができるテーブルまたはリストを提供することができる。こうした選択は、ドロップダウンメニューから、またはテーブルに情報を直接入力することによって行うことができる。
【0112】
図15は、ポリシープロパティのユーザインターフェイス1500のスクリーンショット例を示す。プロパティ名1502、所有者名1504、説明1506、作成日1508、および最終変更日1510などのフィールドは、システムによって定義することができ、一部の実施形態によれば、ユーザは、これらのフィールドを変更することができない。ドロップダウンアクションリスト1512からアクションを選択することができる。ユーザは、制約リストテーブル1514から、制約名1516、状態インターフェイス1518、制約識別1520を選択し、定義することができる。ユーザは、適切なアクションボタン1522、1524、1526を選択することによって、新しいポリシーを作成したり、ポリシーを編集したり、ポリシーを削除したりすることができる。
【0113】
図16は、ポリシー実行レポートを表示する(または印刷する)ためのユーザインターフェイス例1600を示す図である。ポリシー実行履歴を表示(または印刷)するために、類似のユーザインターフェイスを使用することができる。違反の日時など、日付1602が含まれる。ポリシーの識別1604およびポリシー名1606も提供される。結果1608も表示され、違反の場合など、結果に注意を引き付けるために、異なる色(赤など)で表示することができる。他の結果は、ポリシーへの準拠、ポリシーへの変更などを含み得る。結果に関連し得るメッセージ1610を提供することもできる。複数のポリシーを異なるソート順で表示するために、任意の列1602〜1608において、リストをソートすることができる。
【0114】
次に図17を参照すると、ポリシーインスタンス管理ユーザインターフェイス例1700が示されている。このインターフェイスは、「ポリシーデプロイメント」メニューを選択することによって呼び出すことができる。ユーザインターフェイス1700は、アクション1704(準拠についてチェックする、準拠するよう変更するなど)を表示し、選択するためのテーブル1702を含み得る。状況1706も変更したり表示したりすることができる。ポリシー1708ごとに、スケジュール1710を選択することができ、これは、ユーザ定義であり得る、または他のスケジューリング基準に基づき得る。ユーザが所与のポリシー1708に関して様々な操作を行うことができるようにするために、スケジュールの履歴1712を表示することができる。
【0115】
図18は、デプロイされたポリシープロパティのユーザインターフェイス例1800を示す。インターフェイス1800は、ポリシーを選択するためのドロップダウンメニュー1802を含み得る。スケジュールもスケジュールのドロップダウンリスト1804から選択することができる。制約の名前1806、アクション1808、ターゲットセット1810、識別1812、所有者名1814、説明1816、作成日1818、最終変更日1820、およびポリシー最終実行日1822など、様々な他のフィールドを自動的に入力することができる。
【0116】
ユーザは、チェックボックス1824を選択することによって、全ての子孫を再帰的にチェックするかどうかを選択することができる。ポリシーのアクションがスケジュール通りにチェックすることであるとき、こうした選択が示されるはずである。ユーザは、ポリシーが有効にされる1826かどうかを選択することもできる。チェックボックスがチェックされていない場合、ポリシーは、無効にされる。レポート履歴1828をこの画面から表示し、将来の分析のために印刷または保存することができる。
【0117】
図19は、ポリシーインスタンスを適用するためのユーザインターフェイス例1900を示す。「ポリシーインスタンスの適用」など、アクションを選択することによって、このユーザインターフェイス1900を呼び出すことができる。ロードされたポリシー1902またはポリシーファイル1904を選択するかどうかの決定が行われ、所望のアクションを選択することができる。示されているように、ロードされたポリシー1902が選択される。アクション1906のリストからアクション(チェックや実施など)を選択するためのドロップダウンメニューを提供することができる。チェックボックス1908は、全ての子孫に関する再帰的チェックを有効にすることができる。ターゲットセット位置1910は、システムによって提供され得る。適用またはOKボタン1912を選択またはクリックすることによって、ポリシーを適用することができる。キャンセル1914ボタンを選択することによって、全アクションがキャンセルされ、ポリシーインスタンスの適用ウィンドウ1900が閉じる。
【0118】
図20は、マルチサーバ管理で使用することができるサーバプロパティのユーザインターフェイス例2000を示す。管理ファセットは、ターゲットノードの右クリックによって表示することができる。ドロップダウンメニューで「プロパティ」を選択することによって、「プロパティ」ウィンドウが呼び出される。管理ファセットは、例えば左ペイン2002に列挙され得る。ファセットをクリックすることによって、ユーザは、その現在の状態を表示することができ、管理ファセットは、読み取り可能な名前の属性を有し得る。
【0119】
管理ファセットの状態をポリシーファイルに抽出するには、「プロパティ」ウィンドウ200が開かれ、ファセットが選択される。「ポリシーへの抽出」ボタン2004をクリックすることによって、状態がポリシーファイルにエクスポートされる。類似のボタンを使用して、ポリシーバインディングをインポートすることができる。デプロイされたポリシー2006または有効なポリシー2008を表示するかどうか、選択を行うことができる。デプロイされたポリシー2006タブによって、ユーザは、ノードまたはその子孫にデプロイされたポリシーバインディングを表示することができる。
【0120】
所望のファイル名をダイアログボックスに入力することができる。「保存」ボタンによって、変更が保存され、ウィンドウが閉じる。ファセットにおけるポリシーバインディングは、「プロパティ」ウィンドウを介して、「デプロイされたポリシーバインディング」タブをクリックしてノードおよびファセットにデプロイされているポリシーバインディングを表示することによって、表示することができる。「有効なポリシーバインディング」タブをクリックすることによって、ユーザは、ノードおよびファセットにおける有効なポリシーバインディングを表示することができる。
【0121】
図21は、マルチサーバ管理で使用することができるサーバプロパティのユーザインターフェイス2100の別の例を示す。ユーザインターフェイス2100は、上記の図に示されているユーザインターフェイスに似ている。デプロイされているポリシー2102が選択されると、ユーザに、アクションを実行するための様々なボタンが提供される。デプロイされたポリシーをエクスポート2104することができる。適切なボタン2106、2108、2110を選択することによって、新しいポリシーを作成したり、既存のポリシーを編集または削除したりすることができる。
【0122】
様々な特徴を示すために、様々なシナリオが提示される。以下は、管理ファセットをまとめる例である。リレーショナルサーバに接続し、サーバにアクセスして、OBDファセットの状態を表示する。状態は、ポリシーとしてエクスポートすることができる。ユーザは、異なるサーバのところに行き(または開き)、ポリシーを評価する(例えば違反を確認する)ことができる。ポリシーは、サービスにおいて実施することができる。SQL Server Management Studio(SSMS)からサーバグループを明示的にチェックするには、ユーザは、登録されたサーバペインを訪れ、グループに対してOff−By−Default(OBD)ポリシーをチェックすることができる。レポートは、結果と共に提示することができ、ポリシーは、グループにおいて実施することができる。
【0123】
スケジュールされたチェックによる自動化は、OBDポリシーをサーバにインポートし、OBDポリシーノードを訪れることによって提供され得る。アクションが「スケジュール通りにチェック」であるかどうかを確認するために、OBDポリシーのプロパティを表示することができる。ポリシーがデプロイされ、スケジュールされたチェックが伴うバインディングが作成される。レポートがチェックされる。サーバの管理ファセット状態を変更することができ、レポートをチェックすることができる。
【0124】
命名ポリシーは、データベースと照合することができる名前プレフィックスに対してポリシーを作成することを含み得る。ポリシーをデプロイし、「実施」バインディングを作成することができる。サーバにおいて変更を行うことができ、ポリシーはそれを防ぐことができる。BPAポリシーは、SSMSにBPAルール(チェック)を含むことができる。
【0125】
拡張性および性能は、(グループポリシーのための)データ駆動ポリシーバインディングからの拡張性を含み得る。2つのポリシーを1つのサーバにデプロイすることができる(スケジュールされたチェックが伴うOBDポリシー、実施が伴う命名ポリシーなど)。1つのサーバからのポリシーおよびバインディングを他のサーバ上に複製することができる。第2のサーバにおいて有効であるかどうかを確認するために、ポリシーバインディングをチェックすることができる(例えば、OBD設定を変更し、違反レポートを表示する、サーバにおいて変更を行い、命名ポリシーが変更を防ぐかどうかを決定するなど)。第1のサーバにおいて変更されたポリシーを、第2のサーバにおけるその効果について観察することができる。
【0126】
バインディングのエクスポート/インポートからの拡張性:1つのサーバに、スケジュールされたチェックが伴うOBDポリシー、実施が伴う命名ポリシーなど2つのポリシーをデプロイする。次に、サーバノードからポリシーバインディング情報ファイルをエクスポートする。別のサーバに行き、ポリシーバインディングファイルをインポートする。例えば、OBD設定を変更し、違反レポートを表示する、および/またはサーバにおいて変更を行い、命名ポリシーが変更を防ぐことを示すなど、ポリシーバインディングが第2のサーバにおいて有効であることをチェックする。
【0127】
図22は、システムライフサイクル例2200を示す。開示された技術は、システムが解釈することができる論理レベルでの高レベルポリシーとして、管理の意図を捕捉することができる。拡張可能な管理によって、システムは、ポリシーを多くのアプリケーション、インスタンス、および/またはサーバに適用することができる。自己管理は、問題の検出につながり、結果的に管理の自動化をもたらし得る。したがって、システムは、かなりのデフォルトポリシーを使用可能にし得る。一貫性のある統合管理インフラストラクチャは、全てのデータ管理製品(SQLなど)サービスを一様に管理することができる。これは、レベルを下ることもでき、例えばSQL Server 2000およびSQL Server 2005のサーバに対する管理機能をサポートする。また、それだけには限定されないが、MOM、Dynamic Systems Initiative(DSI)、Visual Studioなどを含めて他の技術と統合することもできる。また、迅速な問題解決のために、深い診断およびツールをサポートし、したがって、支持可能性と協調し得る。
【0128】
上部は、サービスライフサイクル2202を示しており、下部は、アプリケーションライフサイクル2204を示している。これらは、例えば、オペレーティングシステム2206およびサーバインスタンス2208を表すことができる。開発およびデプロイメントは、構成につながる。システムが監視され、もしある場合は問題が見つけられ、システムが保守される。これは、報告、監査、および準拠につながり得る。
【0129】
データ管理製品(SQL Serverなど)を構成するためにポリシーを使用することができる。例えば、T−SQLスクリプトを書く代わりに、ポリシーを使用して、初期構成を行うことができる。ポリシーは、サーバ構成を特定の構成と照合することができる。したがって、サーバ構成に最良の実践を表すポリシーをリリースすることができ、ユーザは、その環境を基準(最良の実践)ポリシーと比較することができる。ポリシーイベントの特別な処理、および拡張された宣言型管理を提供することができる。
【0130】
以下のサンプルポリシーは、単に例示の目的で含まれる。表面積構成:
【0131】
【表4】
【0132】
従来のデータベースアプリケーションは、例えばクライアントAPIとインターフェイスするデータベースおよびクライアントマシンを含む。アプリケーションは、アプリケーションが行およびテーブル、または埋め込みSQLの観点で考えられるデータベース方式と結合される。従来、データサービスは、アプリケーションにおける妥当性検査および制約の実施により制限されていた(取得、配置、削除、クエリなど)。クライアントサーバアーキテクチャでは、アプリケーションは、通常、データベースと接続される。開示された実施形態は、多層、分散、切断、およびモバイルのシステムを提供することができる。これは、装置、デスクトップ(コンピュータ)サーバ、クラスタ、クラウドに対して分散される。データは、層を横断することができ、アプリケーションの近くで処理される。データは、複数のデータソースから統合することができる。時折アプリケーションに接続することができる。開示された実施形態は、より豊富なデータタイプおよびより高いデータ抽象化を提供することができる。また、(ビジネスプロセス状態、メッセージ、ビジネスルールなど)動的データを提供することもできる。
【0133】
以下に、開示された実施形態のいくつかの要素を列挙する。多層、切断(時折接続される)、分散、SOAベース(例えば)、オープン、相互運用、装置、テーブル、デスクトップ、サービス、動的(データ、アプリケーションモビリティ)、複数のデータソース、情報ベース、モデル駆動、コンポーネント化、カスタマイズ可能、および適応可能である。
【0134】
開示された実施形態は、物理、論理、概念、プログラミングまたはプレゼンテーションの4レベルの抽象化を有し得る。物理は、レコード形式、ファイル範囲、ファイルグループ、インデックス、およびファイルパーティションを指す。アプリケーションは、物理レベルに気付かない可能性がある。論理レベルは、テーブル、キー、PK/FK制約、正規化、物理データ独立性、リレーショナルアプリケーションを含む。概念レベルは、エンティティ、関係、制約、将来のアプリケーションへのシフト、データプラットフォームのターゲットモデルを含む。プログラミングまたはプレゼンテーションレベルは、普遍的なプログラミングモードを有していない。これは、エンティティ値、オブジェクト、XMLを含み、ほとんどのアプリケーションがこれらの間で変換できるはずである。
【0135】
ユーザがデータベースアプリケーションを作成するとき、これらは、データベース内にオブジェクトを作成しており、サーバレベルでオブジェクトを作成することもできる。データベースは、テーブルおよび様々なオブジェクトを含み、複数のデータベースを有し得るサーバとすることができる。テーブルおよびビューは、データベースに含まれる。また、サーバレベルで存在するオブジェクトもあり得る。ユーザは、各自のカスタムサーバエラーメッセージを作成するか、SQL Serverで、例えばサーバレベルを作成することができる。開示された実施形態は、ユーザに、サーバのシステムまたはアプリケーションビューを取得するための手段を提供する。このビューは、サーバが1つのデータベースを有しているか、特定の1つのアプリケーションに属し得る複数のデータベースを有しているか、または同じデータベース内のオブジェクトを有する複数のアプリケーションを有しているかに関係なく提供することができる。
【0136】
ユーザは、例えばインターフェイス構成要素を介して、アプリケーション「A」のサーバを表示する(例えば、レンダリング構成要素によって)よう要求することができ、ポリシーを、アプリケーション「A」上に作成する(例えば、宣言型管理構成要素によって)ことができる。例えば、ユーザは、アプリケーション「A」の全てのデータベーステーブルがAppA_で開始するよう要求する。新しいテーブルが作成された場合、テーブルがAppA_で開始することを指定するポリシーは、有効であり、新しいテーブルに適用される。システムは、それが1つのデータベースにあろうと、複数のデータベースにあろうと、デプロイメントを自動的に行う。したがって、ユーザ対話の量が低減する。
【0137】
次に、図23を参照すると、システム例2300が示されている。システムは、コアビジネスロジック2304を含むアプリケーション2302を含む。ナビゲーション/クエリ2306は、データ管理サービスとすることができる。データマッピングサービスは、ビジネスオブジェクト2308およびオフライン/同期サポート2310とすることができる。ストアインターフェイス2312も提供される。アプリケーションによる扱いは、エンティティとしてであり、アプリケーションには、データをマッピングする多くのソリューションがある。アプリケーションがそれ自体のナビゲーション/クエリ/変換情報を書くことができるインピーダンスミスマッチが提供される。
【0138】
次に図24を参照すると、データベース2402、クライアントAPI2404、BCP2406、およびアプリケーション2408を含む管理ツール例が示されている。データベース管理製品は、クライアントライブラリ、データユーティリティ(BCP2406など)、および管理ツールを含むコアリレーショナルエンジン(core relational engine)とすることができる。各サービスは、行およびテーブルを伝えることができる。
【0139】
図25は、アドホック式にエンティティにおいて動作する(報告、マージ、複製など)データサービスを提供するシステム2500を示す。ストア/データAPI2502部分、行/テーブル/MDS部分2504、エンティティ部分2506が含まれる。システム2500は、様々な暗黙的および明示的マッピングレイヤおよびマッピング記述を提供する。
【0140】
図26にデータプラットフォームが示されている。アプリケーション2602は、コアのビジネスロジック2604を含む。データ管理サービス(ナビゲーション/クエリなど)2606も含まれる。値データサービスは、マージ複製2608、SSAS2610、およびレポートビルダー2612、および他の構成要素を含む。ストアインターフェイスは、データベース2618と対話するODBC2614およびADO.NET2616を含む。アプリケーションは、DALレイヤにおいてエンティティを構築することができる(顧客、アカウントなど)。値データサービス2608、2610、2612は、エンティティにおいて働くことができる(例えば、記述の独立した方法を有するなど)。
【0141】
図27は、アプリケーション2702、データサービス2704、および他の項目2706を含むデータプラットフォーム2700を示す。データの構造は、定義されたものとすることができる(エンティティなど)。例えば、用語「資産」、「顧客」、および「アカウント」を定義することができ、次いで、エンティティバス全体にわたって使用することができる。「資産」を定義すること、シェアポイント資産追跡アプリケーションを構築すること、ワークフローを、資産状況の更新のために電子メールの形に作成すること、および資産状況のレポートを作成することを含むデータサービスにおける好循環を提供することができる。企業またはエンタープライズおよび生態系内の他のものをバスに接続することができる。
【0142】
図28は、データプラットフォームの様々なデータサービスを示す。こうしたサービスは、論理2802または概念2804とすることができる。論理サービス2802は、例えば、transact SQLとすることができ、以下の形式をとり得る。
【0143】
【表5】
【0144】
また、概念サービス2804は、エンティティビューマネージャとすることができ、以下の形式のエンティティSQLを含み得る。
【0145】
【表6】
【0146】
概念サービス2804は、エンティティおよび関係を提供するエンティティデータモデルを含み得る。また、例えば拡張されたリレーショナル代数に基づき得るエンティティSQLが提供される。エンティティSQLは、エンティティを生成し、消費することができ、関係にわたるより良いナビゲーションを提供する。エンティティビューマネージャは、エンティティランタイムを提供することができ、概念を論理マッピングに提供することができる。
【0147】
次に図29を参照すると、データプラットフォームアーキテクチャ2900が示されている。プラットフォームは、データベース監視、およびVLDBおよびネイティブXMLサポートを提供することができる。また、マルチ言語プログラム可能性および伸長性、サーバ報告、エンタープライズETL、および深いデータマイニングも提供され得る。
【0148】
図30は、アダプタ例の図3000を示す。ファセット3002は、プロパティおよびコミットロジックにアクセスするためのディスパッチメソッドを含み得るBaseFacet3004など共通インターフェイスから導出することができる。各ファセットは、読み取り専用または読み取り/書き込みプロパティであり得るプロパティを定義することができる。アダプタクラス3005は、BaseFacetインターフェイスから継承することができ、基礎を成すオブジェクトモデルクラスを集合させることができる。アダプタは、オブジェクトモデルクラス3008(および他のロジック)の物理プロパティを使用して、ファセットプロパティを公開することができる。
【0149】
次に図31を参照すると、開示されたアーキテクチャを実行するよう動作可能なコンピュータのブロック図を示している。本明細書に開示された様々な態様に関する状況をさらに提供するために、図31および以下の説明は、様々な態様を実施できるのに適したコンピューティング環境3100の概略説明を提供するものである。1つまたは複数の実施形態は、上記で、1つまたは複数のコンピュータ上で稼働し得るコンピュータ実行可能命令の一般的な文脈で説明してきたが、様々な実施形態を他のプログラムモジュールとの組み合わせで実施することができる、かつ/またはハードウェアおよびソフトウェアの組み合わせとして実施することもできることを、当業者であれば理解されよう。
【0150】
一般にプログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装するルーチン、プログラム、構成要素、データ構造などを含む。さらに、本発明の方法は、単一のプロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、パーソナルコンピュータ、ハンドヘルドコンピューティング装置、マイクロプロセッサベースまたはプログラム可能家庭用電化製品など、1つまたは複数の関連の装置に操作可能にそれぞれ結合することができる他のコンピュータシステム構成で実施できることを当業者であれば理解されよう。
【0151】
また、示された態様は、いくつかのタスクが通信ネットワークによってリンクされているリモート処理装置によって実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールを、ローカルおよびリモートのメモリ記憶装置に置くことができる。
【0152】
コンピュータは、一般に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータからアクセスできる使用可能な任意の媒体とすることができ、揮発性および不揮発性媒体、取外式および固定式の媒体を含む。コンピュータ可読媒体は、それだけには限定されないが一例として、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性の取外式および固定式媒体がある。コンピュータ記憶媒体には、それだけには限定されないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタルビデオディスク(DVD)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報の格納に使用でき、コンピュータからアクセスできる他の任意の媒体などがある。
【0153】
通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の移送機構などの変調されたデータ信号に組み込む。これには任意の情報配送媒体がある。「変調されたデータ信号」という用語は、信号に情報を符号化するように1つまたは複数のその特性が設定または変更された信号を意味する。通信媒体には、それだけには限定されないが一例として、有線ネットワーク、直接配線された接続などの有線媒体、および音響、RF、赤外線、その他の無線媒体などの無線媒体がある。また、上記のどんな組み合わせでもコンピュータ可読媒体の範囲内に含まれるものとする。
【0154】
再度図31を参照すると、様々な態様を実装する環境3100の例は、コンピュータ3102を含んでおり、コンピュータ3102は、処理ユニット3104、システムメモリ3106、およびシステムバス3108を含んでいる。システムバス3108は、それだけには限定されないが、システムメモリ3106を含むシステム構成要素を処理ユニット3104に結合する。処理ユニット3104は、市販の様々なプロセッサのうちのどんなものでもよい。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを処理ユニット3104として使用することもできる。
【0155】
システムバス3108は、市販の様々なバスアーキテクチャのうちの任意のものを使用するメモリバス(メモリコントローラ付きまたはなし)、周辺バス、およびローカルバスとさらに相互接続し得るいくつかのタイプのバス構造のうちどんなものでもよい。システムメモリ3106は、読み取り専用メモリ(ROM)3110およびランダムアクセスメモリ(RAM)3112を含む。基本入出力システム(BIOS)は、ROM、EPROM、EEPROMなどの不揮発性メモリ3110に格納されており、例えば起動中など、コンピュータ3102内の要素間での情報の転送を助ける基本ルーチンを含む。RAM3112は、例えばデータをキャッシュに入れるための静的RAMなど高速RAMを含むこともできる。
【0156】
コンピュータ3102は、適したシャーシ(図示せず)により外部での使用のために構成することもできる内部ハードディスクドライブ(HDD)3114(EIDE、SATAなど)、磁気フロッピー(登録商標)ディスクドライブ(FDD)3116(例えば取外式ディスケット3118から読み取り、またはそこに書き込む)、および光ディスクドライブ3120(例えばCD−ROMディスク3122を読み込む、またはDVDなど他の大容量光媒体から読み取り、そこに書き込む)をさらに含む。ハードディスクドライブ3114、磁気ディスクドライブ3116、および光ディスクドライブ3120は、それぞれハードディスクドライブインターフェイス3124、磁気ディスクドライブインターフェイス3126、および光ドライブインターフェイス3128によってシステムバス3108に接続することができる。外部ドライブ実装用のインターフェイス3124は、ユニバーサルシリアルバス(USB)およびIEEE1394インターフェイス技術のうちの少なくとも一方または両方を含む。他の外部ドライブ接続技術も1つまたは複数の実施形態の企図内に含まれる。
【0157】
ドライブおよびその関連のコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などの不揮発性の記憶域を提供する。コンピュータ3102では、ドライブおよび媒体は、任意のデータの記憶を適したデジタル形式で収納する。上記のコンピュータ可読媒体の説明は、HDD、取外式磁気ディスケット、およびCDやDVDなどの取外式光媒体を指すが、zipドライブ、磁気カセット、フラッシュメモリカード、カートリッジなど、コンピュータによって読み取り可能な他のタイプの媒体を動作環境例で使用してもよく、さらに、こうした任意の媒体は、本明細書に開示された方法を実行するコンピュータ実行可能命令を含むことができることを当業者であれば理解されたい。
【0158】
オペレーティングシステム3130、1つまたは複数のアプリケーションプログラム3132、他のプログラムモジュール3134およびプログラムデータ3136を含めて、いくつかのプログラムモジュールをドライブおよびRAM3112に格納することができる。オペレーティングシステム、アプリケーション、モジュール、および/またはデータの全てまたは一部をRAM3112にキャッシュすることもできる。様々な実施形態は、市販の様々なオペレーティングシステムまたはオペレーティングシステムの組み合わせで実施できることを理解されたい。
【0159】
ユーザは、コマンドおよび情報をキーボード3138およびマウス3140などのポインティング装置など、1つまたは複数の有線/無線の入力装置を介してコンピュータ3102に入力することができる。他の入力装置(図示せず)には、マイクロフォン、IRリモートコントロール、ジョイスティック、ゲームパッド、スタイラスペン、タッチ画面などがある。これらおよび他の入力装置は、システムバス3108に結合されている入力装置インターフェイス3142を介して処理ユニット3104に接続されることが多いが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインターフェイスなど他のインターフェイスで接続することができる。
【0160】
モニタ3144または他のタイプの表示装置も、ビデオアダプタ3146などのインターフェイスを介してシステムバス3108に接続される。コンピュータは一般に、モニタ3144に加えて、スピーカやプリンタなど他の周辺出力装置(図示せず)を含んでいる。
【0161】
コンピュータ3102は、リモートコンピュータ3148など1つまたは複数のリモートコンピュータへの有線および/または無線の通信を介した論理接続を使用してネットワーク式環境で動作することができる。リモートコンピュータ3148は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、携帯用コンピュータ、マイクロプロセッサベースの娯楽装置、ピア装置、または他の一般のネットワークノードなどとすることができ、一般にコンピュータ3102に関連して記載した多くまたは全ての要素を含むが、簡潔にするために、メモリ/記憶装置3150のみを示している。示した論理接続は、ローカルエリアネットワーク(LAN)3152、および/または広域ネットワーク(WAN)3154などのより大きいネットワークへの有線/無線の接続を含む。こうしたLANおよびWANネットワーキング環境は、オフィスや会社ではごく一般的であり、イントラネットなど全社規模のコンピュータネットワークを容易にし、これらは全て、インターネットなどのグローバルな通信ネットワークと接続することができる。
【0162】
LANネットワーキング環境で使用する場合、コンピュータ3102は、有線および/または無線の通信ネットワークインターフェースまたはアダプタ3156を介してローカルネットワーク3152に接続される。アダプタ3156は、無線アダプタ3156と通信するために配置されている無線アクセスポイントも含み得るLAN3152との有線または無線の通信を容易にすることができる。
【0163】
WANネットワーキング環境で使用する場合、コンピュータ3102は、モデム3158を含むことができ、WAN3154を介して通信サーバに接続され、またはインターネットによるなどWAN3154を介して通信を確立する他の手段を有する。モデム3158は、内蔵または外付け、および有線または無線の装置とすることができ、シリアルポートインターフェース3142を介してシステムバス3108に接続される。ネットワーク式環境では、コンピュータ3102に関連して示したプログラムモジュール、またはその一部をリモートメモリ/記憶装置3150に格納することができる。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を使用することができることは理解されよう。
【0164】
コンピュータ3102は、プリンタ、スキャナ、デスクトップ、および/または携帯用コンピュータ、PDA、通信衛星、無線で検出できるタグに関連付けられている任意の設備または場所(キオスク、新聞雑誌売り場、休憩室など)、および電話など、無線通信で動作可能に配置されている任意の無線装置またはエンティティと通信するよう動作可能である。これは、少なくともWi−FiおよびBluetooth(商標)無線技術を含む。したがって、通信は、従来のネットワークと同様に予め定義されている構造、または単に少なくとも2つの装置間のアドホック式の通信とすることができる。
【0165】
Wi−Fi、すなわちWireless Fidelityによって、家、ホテルの部屋、または職場から、配線なしにインターネットへの接続が可能になる。Wi−Fiは、コンピュータなどのこうした装置がデータを屋内および屋外の基地局の範囲内のどこででも送受信できるようにするセル方式電話で使用されているものと似た無線技術である。Wi−Fiネットワークは、IEEE802.11(a、b、gなど)と呼ばれる無線技術を使用して、安全で信頼性が高い高速無線接続を提供する。Wi−Fiネットワークは、コンピュータを互いに、インターネットに、および有線のネットワーク(IEEE802.3またはEthernet(登録商標)を使用する)に接続するために使用することができる。Wi−Fiネットワークは、ライセンス不要の2.4GHzおよび5GHzの無線帯域で、例えば11Mbps(802.11a)または54Mbps(802.11b)データ転送速度で、または両方の帯域(デュアルバンド)を含む製品で動作するため、ネットワークは、多くのオフィスで使用されている基本的な10BaseT配線のEthernet(登録商標)ネットワークと似た実環境での性能を提供することができる。
【0166】
次に図32を参照すると、様々な実施形態によるコンピューティング環境3200の例の概略ブロック図を示している。システム3200は、1つまたは複数のクライアント3202を含む。クライアント3202は、ハードウェアおよび/またはソフトウェア(スレッド、プロセス、コンピューティング装置など)とすることができる。クライアント3202は、例えば様々な実施形態を使用することによって、クッキーおよび/または関連の文脈情報を収納することができる。
【0167】
システム3200は、1つまたは複数のサーバ3204も含む。サーバ3204もハードウェアおよび/またはソフトウェア(スレッド、プロセス、コンピューティング装置など)とすることができる。サーバ3204は、例えば様々な実施形態を使用することによって変形を行うためのスレッドを収容することができる。クライアント3202とサーバ3204との間の考え得る1つの通信は、2つ以上のコンピュータプロセス間で送信されるように構成されたデータパケットの形式とすることができる。データパケットは、例えばクッキーおよび/関連の文脈情報を含み得る。システム3200は、クライアント3202とサーバ3204との間の通信を容易にするために使用できる通信フレームワーク3206(インターネットなどのグローバル通信ネットワークなど)を含む。
【0168】
通信は、有線(光ファイバを含む)および/または無線の技術を介して容易にすることができる。クライアント3202は、クライアント3202にローカルな情報(クッキーおよび/または関連の文脈情報など)を格納するために使用できる1つまたは複数のクライアントデータストア3208に動作可能に接続される。同様に、サーバ3204は、サーバ3204にローカルな情報を格納するために使用できる1つまたは複数のサーバデータストア3210に動作可能に接続される。
【0169】
上記で説明してきたことは、様々な実施形態の例を含む。当然、様々な実施形態を説明するために構成要素または方法の予想される全ての組み合わせについて説明することは不可能であるが、他の多くの組み合わせおよび置換えが可能であることを当業者であれば理解できよう。したがって、本明細書は、添付の特許請求の範囲の意図および範囲に含まれるこうした全ての代替形態、変更形態、および変形形態を含むものとする。
【0170】
特に上述した構成要素、装置、回路、システムなどによって実行される様々な機能に関して、こうした構成要素の説明に使用した用語(「手段」への言及を含む)は、本明細書で示した態様の例の機能を実行する開示した構造に構造上同じではない場合でも、特に指定のない限り、説明した構成要素の指定した機能(機能上の同等物など)を実行する任意の構成要素に対応するものとする。この点で、様々な態様は、様々な方法の動作および/またはイベントを実行するコンピュータ実行可能命令を有するシステムおよびコンピュータ可読媒体を含むことも理解されたい。
【0171】
さらに、特定の特徴を、いくつかの実装形態のうちの1つのみを参照して開示してきたが、こうした特徴は、思い通りに他の実装形態の1つまたは複数の他の特徴、および所与または特定の任意のアプリケーションの利点と組み合わせることができる。さらに、「含む」および「含んでいる」という用語およびその変形が詳細な説明または特許請求の範囲で使用されている範囲で、これらの用語は、「備える」という用語と同じように包括的なものとする。
【0172】
さらに、1つまたは複数の実施形態は、標準のプログラミングおよび/またはエンジニアリング技術を使用して、ソフトウェア、ファームウェア、ハードウェア、またはその任意の組み合わせを生成して、開示された実施形態を実施するようコンピュータを制御するための方法、装置、または製品として実装することができる。「製品」という用語(あるいは「コンピュータプログラム製品」)は、本明細書で使用される場合、任意のコンピュータ可読装置、キャリア、またはメディアからアクセス可能なコンピュータプログラムを含むものとする。例えば、コンピュータ可読媒体には、それだけには限定されないが、磁気記憶装置(ハードディスク、フロッピー(登録商標)ディスク、磁気ストライプなど)、光ディスク(コンパクトディスク(CD)、デジタル多用途ディスク(DVD)など)、スマートカード、およびフラッシュメモリ装置(カード、スティックなど)などがある。さらに、搬送波を使用して、電子メールの送受信、またはインターネットやローカルエリアネットワーク(LAN)などのネットワークへのアクセスに使用されるものなど、コンピュータ可読電子データを運ぶことができることを理解されたい。開示された実施形態の範囲または意図から逸脱することなく、この構成に多くの変更を加えることができることを当業者であれば当然理解されよう。
【図面の簡単な説明】
【0173】
【図1】システムアーキテクチャの高レベルブロック図である。
【図2】データベースサーバの管理可能性を提供するシステムを示す図である。
【図3】ユーザの意図をデータ管理製品に動的に適用するシステムを示す図である。
【図4】高レベルの意図を低レベルの設定に自動的に適用するシステムを示す図である。
【図5】開示された実施形態を使用するイベントディスパッチ機構を示す図である。
【図6】1つまたは複数の実施形態に従って1つまたは複数の特徴の自動化を容易にする機械学習を使用するシステムを示す図である。
【図7】ユーザ生産性の向上を容易にする方法を示す図である。
【図8】データ管理製品を構成する方法を示す図である。
【図9】ユーザインターフェイスのスクリーンショット例を示す図である。
【図10】ポリシーを適用するためのユーザインターフェイス例を示す図である。
【図11】ポリシープロパティのユーザインターフェイス例を示す図である。
【図12】制約プロパティのユーザインターフェイス例を示す図である。
【図13】制約プロパティのユーザインターフェイスの別のスクリーンショット例を示す図である。
【図14】原子制約プロパティ(atomic constraint properties)のユーザインターフェイス例を示す図である。
【図15】ポリシープロパティのユーザインターフェイスのスクリーンショット例を示す図である。
【図16】ポリシー実行レポートを表示する(または印刷する)ためのユーザインターフェイス例を示す図である。
【図17】ポリシーインスタンス管理ユーザインターフェイス例を示す図である。
【図18】デプロイされたポリシープロパティのユーザインターフェイス例を示す図である。
【図19】ポリシーインスタンスを適用するためのユーザインターフェイス例を示す図である。
【図20】サーバプロパティのユーザインターフェイス例を示す図である。
【図21】サーバプロパティの別のユーザインターフェイス例を示す図である。
【図22】システムライフサイクル例を示す図である。
【図23】システム例を示す図である。
【図24】管理ツール例を示す図である。
【図25】アドホック式に動作するデータサービスを提供するシステムを示す図である。
【図26】データプラットフォームを示す図である。
【図27】別のデータプラットフォームを示す図である。
【図28】データプラットフォームの様々なデータサービスを示す図である。
【図29】データプラットフォームアーキテクチャを示す図である。
【図30】アダプタ例を示す図である。
【図31】開示された実施形態を実行するよう動作可能なコンピュータのブロック図である。
【図32】開示された実施形態を実行するよう動作可能なコンピューティング環境例のブロック略図である。
【特許請求の範囲】
【請求項1】
データベース管理の生産性を容易にするシステム(200、300、400、600)であって、
宣言型言語で構築された高レベルの意図を受け付けるインターフェイス構成要素(202、302、402、602)と、
前記高レベルの意図を解釈し、こうした意図を低レベルの設定に適用する宣言型管理構成要素(204、304、404、604)と
を含むことを特徴とするシステム。
【請求項2】
前記意図を副構成要素に分割する構文解析構成要素と、
特定の意図を導出するために各副構成要素を分析する構文エンジンと
をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項3】
特定の予め定義された構成でポリシーをデプロイするセキュリティ構成要素をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項4】
ポリシー、ポリシーバージョン、ターゲット、およびファセットのうちの少なくとも1つに関連する履歴情報を維持する履歴構成要素をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項5】
規模の管理および規模の自動化のうちの少なくとも1つを提供する集計構成要素をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項6】
プログラミングモデルを拡張することによりファセットおよびターゲットのうちの少なくとも1つを増分的に追加する構成構成要素をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項7】
複数のサーバおよび複数の製品のうちの少なくとも1つにわたってアプリケーションを拡張する最適化構成要素をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項8】
ポリシーおよびターゲットセットを含むバインディング構成要素をさらに含み、前記ポリシーおよび前記ターゲットは、複数のバインディングにより参照され得ることを特徴とする請求項1に記載のシステム。
【請求項9】
前記宣言型管理構成要素は、複数のアプリケーションを含むサーバのアプリケーションビューを提供することを特徴とする請求項1に記載のシステム。
【請求項10】
前記宣言型管理構成要素の少なくとも1つの機能を自動化する機械学習構成要素をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項11】
高レベルの意図と低レベルの設定との間のインターフェイスを提供する方法(700、800)であって、
宣言型意図を受信するステップ(702、806)と、
前記意図を達成するよう構成するための1つまたは複数の設定を決定するステップ(704)と、
前記1つまたは複数の設定を構成するステップ(706)と
を含むことを特徴とする方法。
【請求項12】
前記受信された宣言型意図への準拠の監視を提供するステップをさらに含むことを特徴とする請求項11に記載の方法。
【請求項13】
ポリシーをターゲットセットにマッピングするためにポリシーバインディングを実行するステップをさらに含むことを特徴とする請求項11に記載の方法。
【請求項14】
制約または違反をチェックするステップをさらに含むことを特徴とする請求項11に記載の方法。
【請求項15】
レポート機能を提供するステップをさらに含むことを特徴とする請求項11に記載の方法。
【請求項16】
前記1つまたは複数の設定の構成は、複数のデータベースにわたることを特徴とする請求項11に記載の方法。
【請求項17】
データベース管理を提供するコンピュータ実行可能システム(200、300、400、600、3100)であって、
宣言型ステートメントとして表された高レベルの意図を受信するコンピュータ実施手段(202、302、402、602、3138、3140)と、
前記高レベルの意図を解釈し、前記高レベルの意図に基づいて加えるべき前記設定変更を識別するコンピュータ実施手段(204、304、404、604、3102、3104)と、
前記識別された設定変更を構成するコンピュータ実施手段(416、420、610、3102、3104)と
を含むことを特徴とするコンピュータ実行可能システム。
【請求項18】
複数のアプリケーションを含むサーバのアプリケーションビューを提供するコンピュータ実施手段をさらに含むことを特徴とする請求項17に記載のコンピュータ実行可能システム。
【請求項19】
前記高レベルの意図への準拠を監視するコンピュータ実施手段をさらに含むことを特徴とする請求項17に記載のコンピュータ実行可能システム。
【請求項20】
予め定義された方法でポリシーをデプロイするコンピュータ実施手段をさらに含むことを特徴とする請求項17に記載のコンピュータ実行可能システム。
【請求項1】
データベース管理の生産性を容易にするシステム(200、300、400、600)であって、
宣言型言語で構築された高レベルの意図を受け付けるインターフェイス構成要素(202、302、402、602)と、
前記高レベルの意図を解釈し、こうした意図を低レベルの設定に適用する宣言型管理構成要素(204、304、404、604)と
を含むことを特徴とするシステム。
【請求項2】
前記意図を副構成要素に分割する構文解析構成要素と、
特定の意図を導出するために各副構成要素を分析する構文エンジンと
をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項3】
特定の予め定義された構成でポリシーをデプロイするセキュリティ構成要素をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項4】
ポリシー、ポリシーバージョン、ターゲット、およびファセットのうちの少なくとも1つに関連する履歴情報を維持する履歴構成要素をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項5】
規模の管理および規模の自動化のうちの少なくとも1つを提供する集計構成要素をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項6】
プログラミングモデルを拡張することによりファセットおよびターゲットのうちの少なくとも1つを増分的に追加する構成構成要素をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項7】
複数のサーバおよび複数の製品のうちの少なくとも1つにわたってアプリケーションを拡張する最適化構成要素をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項8】
ポリシーおよびターゲットセットを含むバインディング構成要素をさらに含み、前記ポリシーおよび前記ターゲットは、複数のバインディングにより参照され得ることを特徴とする請求項1に記載のシステム。
【請求項9】
前記宣言型管理構成要素は、複数のアプリケーションを含むサーバのアプリケーションビューを提供することを特徴とする請求項1に記載のシステム。
【請求項10】
前記宣言型管理構成要素の少なくとも1つの機能を自動化する機械学習構成要素をさらに含むことを特徴とする請求項1に記載のシステム。
【請求項11】
高レベルの意図と低レベルの設定との間のインターフェイスを提供する方法(700、800)であって、
宣言型意図を受信するステップ(702、806)と、
前記意図を達成するよう構成するための1つまたは複数の設定を決定するステップ(704)と、
前記1つまたは複数の設定を構成するステップ(706)と
を含むことを特徴とする方法。
【請求項12】
前記受信された宣言型意図への準拠の監視を提供するステップをさらに含むことを特徴とする請求項11に記載の方法。
【請求項13】
ポリシーをターゲットセットにマッピングするためにポリシーバインディングを実行するステップをさらに含むことを特徴とする請求項11に記載の方法。
【請求項14】
制約または違反をチェックするステップをさらに含むことを特徴とする請求項11に記載の方法。
【請求項15】
レポート機能を提供するステップをさらに含むことを特徴とする請求項11に記載の方法。
【請求項16】
前記1つまたは複数の設定の構成は、複数のデータベースにわたることを特徴とする請求項11に記載の方法。
【請求項17】
データベース管理を提供するコンピュータ実行可能システム(200、300、400、600、3100)であって、
宣言型ステートメントとして表された高レベルの意図を受信するコンピュータ実施手段(202、302、402、602、3138、3140)と、
前記高レベルの意図を解釈し、前記高レベルの意図に基づいて加えるべき前記設定変更を識別するコンピュータ実施手段(204、304、404、604、3102、3104)と、
前記識別された設定変更を構成するコンピュータ実施手段(416、420、610、3102、3104)と
を含むことを特徴とするコンピュータ実行可能システム。
【請求項18】
複数のアプリケーションを含むサーバのアプリケーションビューを提供するコンピュータ実施手段をさらに含むことを特徴とする請求項17に記載のコンピュータ実行可能システム。
【請求項19】
前記高レベルの意図への準拠を監視するコンピュータ実施手段をさらに含むことを特徴とする請求項17に記載のコンピュータ実行可能システム。
【請求項20】
予め定義された方法でポリシーをデプロイするコンピュータ実施手段をさらに含むことを特徴とする請求項17に記載のコンピュータ実行可能システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【公表番号】特表2009−540461(P2009−540461A)
【公表日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願番号】特願2009−515381(P2009−515381)
【出願日】平成19年2月13日(2007.2.13)
【国際出願番号】PCT/US2007/003692
【国際公開番号】WO2007/145680
【国際公開日】平成19年12月21日(2007.12.21)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】
【公表日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願日】平成19年2月13日(2007.2.13)
【国際出願番号】PCT/US2007/003692
【国際公開番号】WO2007/145680
【国際公開日】平成19年12月21日(2007.12.21)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】
[ Back to top ]