JP4809772B2 - コンピュータシステムおよび分散アプリケーションのモデルに基づく管理 - Google Patents

コンピュータシステムおよび分散アプリケーションのモデルに基づく管理 Download PDF

Info

Publication number
JP4809772B2
JP4809772B2 JP2006536552A JP2006536552A JP4809772B2 JP 4809772 B2 JP4809772 B2 JP 4809772B2 JP 2006536552 A JP2006536552 A JP 2006536552A JP 2006536552 A JP2006536552 A JP 2006536552A JP 4809772 B2 JP4809772 B2 JP 4809772B2
Authority
JP
Japan
Prior art keywords
model
manifest
management
component
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006536552A
Other languages
English (en)
Other versions
JP2007509404A (ja
Inventor
ダブリュ.マッカラム レイモンド
アール.パランカ ラドゥ
ティ.プフェニング イェルク
エム.サットン アレクサンダー
アール.ブラウン マーク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/692,432 external-priority patent/US7765540B2/en
Priority claimed from US10/693,072 external-priority patent/US7539974B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2007509404A publication Critical patent/JP2007509404A/ja
Application granted granted Critical
Publication of JP4809772B2 publication Critical patent/JP4809772B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Description

本発明は、コンピュータシステムに関し、より詳細には、コンピュータシステムおよびアプリケーションの管理に関する。
従来方式のシステム管理は、概ね場当たり的である。アプリケーションの開発者は、自身のアプリケーションを管理し、高い信頼性を実現するための体系化されたフレームワークをもっていない。アプリケーションの予想される挙動は、多くはリバース・エンジニアリングにより解析される。アプリケーションの開発者は、自身のアプリケーションを管理し、高い信頼性を実現することについてどのように考えるかに関する体系化された手引きおよびフレームワークをもっていない。さらに、オペレーティングシステムは、開発者が活用し得る包括的なシステムを提供しない。
システムの複雑さは、操作者が理解し得るものを超えつつある。依存性および隠れたエラーを突き止めるために多大な時間が費やされている。機器編成が利用できない場合、操作者は、プロセスダンプ(process dump)を取得する必要がある。というのは、これが、実行中の要求の種類と現在の状態を決定する唯一の方法だからである。
現在のシステムがユーザに潜在的な問題および実際の問題を警告する能力は貧弱である。ユーザは、どんなアプリケーションがインストールされているかを容易に見分けることができず、システムおよびアプリケーションが、正しいファイルを有し、かつ正しいバージョンであり、これらのシステムおよびアプリケーションの使用方法に対して正しく構成されており、環境に対して安全に構成されているか、ならびにこれらのシステムおよびアプリケーションが最適に動作し、かつリソースが不足していないかがわからない。さらに、アプリケーションを複数の機械にわたってデバッグするのは容易ではない。すなわち、共通のアプリケーションおよびトランザクションのコンテキストが存在しない。
操作者は、アプリケーションの依存性が、ファイル、コンポーネント、構成設定、セキュリティ設定、またはストレージエリアネットワーク(storage area network)およびルータなどの装置のいずれなのかを容易に見分けることもできない。システムは、変更により他のアプリケーションを壊す恐れがあることをユーザに警告することもできないし、この情報を用いて根本的な原因を特定する助けとすることもできない。
現在、最も一般的なのは事後対応型の監視であり、この場合、警告により、ユーザは障害があったことがわかるが、問題の原因はわからない。改善されたスクリプトおよびプロバイダ(provider)は、より有益かつ動作に結びつけ得る警告を提供し得るが、根本的な原因を分析する基盤が欠けている。トラブルシューティングを行うには、しばしば追加の診断が必要とされる。しかし、事後対応型の監視に伴う問題は、多くの場合警告は遅すぎ、すでにアプリケーションがユーザに利用可能な状態ではなくなっていることである。フェイルオーバをトリガするか、あるいは、負荷分散装置によりサーバをオフラインにすることによって監視は役に立ち得る。しかし、システムは、アプリケーションにおける潜在的な問題を、これらの潜在的な問題が障害になる前に検出するのに十分にインテリジェントであるべきである。
他の問題は、複数のマシンおよびクライアント全体を見渡すことによってしか検出されない。これらの例には、分散型浸入検出およびアプリケーションパフォーマンスの低下が含まれる。管理者が、その自由裁量で想定パフォーマンスからの逸脱を判断でき、スナップショット(snapshot)をキャプチャしたときに根本的な原因が構成の変更であることを突き止めることができ、ユーザの不満が生じる前に問題を解決すれば、多くの大規模なネットワークパフォーマンスの問題およびダウンタイムを回避し得るはずである。
従来方式では、分散アプリケーションに伴う問題は、ユーザの観点から履歴のデータまたは傾向を見ることによってしか判定されない。管理者は、管理者による複製バックログが問題であるかどうかがわからないことが多く、まずサービスを実行し、運用メトリクスのログを取って警告閾値および臨界閾値によるベースラインを確立する必要がある。
管理基盤を実現するために、改善されたメカニズムが求められている。
本発明のいくつかの態様を基本的に理解するために、本発明の概要を簡略化して以下に示す。この概要は、本発明を広範に概説したものではなく、本発明の主要不可欠な要素を明らかにし、また、本発明の範囲を限定するためのものではない。この概要の唯一の目的は、本発明のいくつかの概念を簡略化した形態で、後で示すより詳細な説明の前置きとして示すことである。
本明細書で開示し特許請求する発明は、その一態様において、開発者が、アプリケーションまたはサービスを、そのコンポーネントに関して記述し得る革新的なフレームワークを提供する、モデルに基づく管理システムを含む。開発者は、このアプリケーションまたはサービスの所望の状態を、機能、構成、セキュリティ、およびパフォーマンスに関して記述し得る。この記述またはモデルは、アプリケーションとともに提供され、インストール時にシステムがこれを用いて管理サービスを構成する。コンピュータシステムは、インストール時に開発者の記述を用いて管理サービスを構成する。この管理サービスは、構成の管理、問題の検出、診断、および復旧などの自動管理動作を介してアプリケーションの可用性を確保する助けになる。このモデルは、管理者が実施し得る一般のタスクも記述する。
このモデルに基づく管理アーキテクチャは、健全性の状態および復旧、構成設定、および管理タスクなど、アプリケーションを構成するコンポーネント用のモデルと、監視を行うために機器編成および論理を示す、ソースコード内のアトリビューションと、アプリケーションとともに出荷される1つまたは複数のマニフェストとを含む。これら1つ(または複数)のマニフェストは、モデルおよびソースコードアトリビューションからの情報を、管理システムサービスが使用し得る機械可読の形式で含む。このモデルに基づく管理アーキテクチャはさらに、アプリケーションマニフェスト内の情報によって構成された複数のサービスからなる管理システムと、マニフェスト内で定義されるアプリケーション用管理タスクとを含む。
このモデルに基づく管理アーキテクチャのシステムコンポーネントは、アプリケーションの可用性を確保するのに必要なサービスからなる。このシステムは、マニフェスト内で表現され、かつ管理者によって改変された所望の状態を用いて、依存性を検証し、必要なファイル、設定、およびセキュリティのみをインストールするインストール作業と、指定どおりにイベントをサブスクライブ(subscribe)し転送するイベントサブスクリプションと、機器編成をポーリングして機器編成およびカウンタを周期的に収集することと、タスクをスケジュールして自動管理タスクを実施することと、プログラム機能へのアクセスを制限する、ロールに基づくアクセスと、問題を検出し、根本的原因を診断し、是正処置を講じ、介入が必要なときにはシステム管理者に通知する監視機能と、上記を行うためのポリシーをカスタマイズし、それを多くの機械に適用するための中央構成とを実施する。
本発明の別の態様では、モデルに基づく管理システムは、ハードウエアおよびソフトウエアの分散ネットワークに適用される。それに従って、ローカルおよびリモートのアプリケーションのコンポーネントが、ローカルおよびリモートのマシンおよびサービスとともに記述され管理される。
上記および関連する目的を達成するために、本明細書では、以下の説明および添付の図面に関連して本発明のある種の態様の例を説明する。ただし、これらの態様は、本発明の原理を利用し得る様々な方法を示すほんの数例であり、本発明は、このような態様およびそれらの均等物をすべて包含することを意図している。本発明の他の利点および新規な特徴は、本発明の以下の詳細な説明をこれらの図面と併せ読めば明らかになるであろう。
次に、図面を参照して本発明を説明する。これらの図面を通じて、同じ参照数字を用いて同じ要素を指す。以下の記載では、説明のために、本発明が十分に理解されるように多くの特定の細部を述べる。ただし、これらの特定の細部を用いずに本発明を実施し得ることが当業者には明らかであろう。他の例では、本発明の説明をうまく進めるために、周知の構造および装置はブロック図の形式で示す。
本出願では、「コンポーネント」および「システム」という用語は、コンピュータに関係するエンティティを指すためのものである。これらは、ハードウエア、ハードウエアとソフトウエアの組合せ、ソフトウエア、または実行中のソフトウエアのいずれかである。例えば、コンポーネントは、プロセッサ上で実行中のプロセス、プロセッサ、オブジェクト、実行ファイル、実行の流れ、プログラム、および/またはコンピュータとし得るが、これらに限定されるものではない。例として、サーバ上で実行中のアプリケーション、およびこのサーバはともにコンポーネントとし得る。1つまたは複数のコンポーネントが、実行の過程および/または流れの中に存在することもあるし、あるコンポーネントが、1つのコンピュータ上に局在し、かつ/または2つ以上のコンピュータに分散されることもある。
本明細書では、「推測」という用語は概ね、イベントおよび/またはデータを介してキャプチャされた1組の観察結果から、システム、環境、および/またはユーザの状態について推論または推測するプロセスを指す。推測を用いて、特定の状況または動作を識別し、また、例えば状態全体にわたる確率分布を生成し得る。この推測は、確率的であり得る。すなわち、データおよびイベントの考察に基づいて、対象とする状態全体にわたる確率分布を計算することである。推測は、1組のイベントおよび/またはデータから高水準のイベントを構成するのに用いる技術を指すこともある。このような推測により、1組の観察されたイベントおよび/または記憶されたイベントデータから、これらのイベントが時間的に近接して相関しているかどうかにかかわらず、また、これらのイベントおよびデータが1つまたは複数のイベントおよびデータのソースから得られたかどうかにかかわらず、新しいイベントまたは動作が構築される。
次に図1を参照すると、本発明に従ってアプリケーションまたはサービスのモデルに基づく管理をうまく進めるアーキテクチャ100が示されている。このモデルに基づく管理手法により、開発者は、アプリケーションまたはサービス102を、その構成要素、ならびに機能、構成、セキュリティ、およびパフォーマンスの点での所望の状態に関して記述することができる。そのため、アプリケーションまたはサービスの記述504により、少なくとも、モデルコンポーネント106、マニフェスト(manifest)コンポーネント108、システムコンポーネント110、およびタスクコンポーネント112を含めて、1つまたは複数の管理可能なコンポーネントに関してアプリケーションまたはサービス102を記述することが容易になる。モデルに基づく管理システム100は、アトリビューション(attribution)コンポーネント114を使用して、モデルコンポーネント106からマニフェストコンポーネント108へのソースコードのアトリビューションをうまく進める。
コンピュータシステム516は、アプリケーション102のインストール時にアプリケーションまたはサービスの記述104を使用して、このコンピュータのオペレーティングシステムに関連する管理サービス518を構成する。次いで、管理サービス118は、構成管理、問題検出、診断、および復旧などの自動管理動作によってアプリケーションまたはサービス102の可用性を確保する助けとなる。モデル106は、管理者が実施し得る共通のタスクも記述する。モデルに基づく管理アーキテクチャ100は、総所有コストを下げることを容易にし、開発から、デプロイメント(deployment)、運用、およびビジネス分析までのアプリケーションのライフサイクル全体にわたって用いられる。一般に、開発者は、アプリケーションまたはサービスの1つまたは複数のモデルを生成することから開始する。このモデルは、このアプリケーションがどのように機能するか、その構成要素、開発者が定義し監視することを選択する所望の健全性の状態、少なくともこのアプリケーションまたはサービスをどのようにインストールし、このアプリケーションまたはサービスがどんな設定を必要とするかに関する構成上の態様、ならびに管理タスクおよびそのスケジューリングという点で生成されるものである。次いで、このモデルのソースコードの、明示する特定の領域に属性を与える(あるいは、タグを付ける)。
これらのモデルを機器編成マニフェストにロールアップ(roll up)する。これらのモデルは、テキストドキュメント、スプレッドシートドキュメントなどの形式をとる傾向がある。これらは、コード、スクリプト、ツールによって、あるいは手作業で、より多くのXMLスキーマになる傾向があるマニフェストに変換され、さらに機械によって処理され機械によって読み込まれる構造化ドキュメントである。すなわち、モデルドキュメントは、より人間可読であり、マニフェストはより機械可読である。次いで、これらのマニフェストを使用して、システム管理をうまく進める。
アトリビューションサブコンポーネント114は、ソースコードアトリビューションに関連するものである。アトリビューションを用いて、管理情報およびこの管理情報が関係するコードを表す。アトリビューションがないと、2つの別々のコードを記述することが必要になる。1つは、通常のアプリケーション処理用のものであり、1つは、アプリケーションを管理にエクスポーズ(expose)するためのものである。ソースコード中のアトリビューションを用いて、(プローブと呼ぶ)コードのどの部分を用いて健全性を判定かつ/または是正し、かつ管理ルールを実行する時点を指定すべきなのかを記述する。プローブは、既存のオペレーティングシステムAPI(アプリケーションプログラムインターフェース)にアクセスするコンポーネントから、あるいは、実行中のアプリケーションまたはサービスの内部にロードしたコンポーネントからエクスポーズし得る。いずれの場合でも、開発者は、アトリビューションを付加して、これらのコンポーネント内のタイプのどのサブセットをエクスポーズすべきかと、それらをどのように識別すべきかを示す。プローブは、管理者名前空間内のURI(ユニフォームリソース識別子)を用いて識別する。実行時に、プローブは、コンピュータ上のすべてのプローブのカタログ内から識別し、このプローブについての関連情報をたどることによって取り出す。
ソースコードアトリビューションは、監視サービス、例えば属性関数に命令も提供し得る。この属性関数は、監視ルールとして使用され、起動時にロードされ、周期的にポーリングされ、イベントに対して実行されるべきものである。このアトリビューションを自動的に処理し、機器編成と同じやり方でマニフェスト中に置くことができる。そのため、アトリビューションは、単に機器編成ではなく、他の管理目的にも用いられる。アトリビューションを用いて、管理タスクおよび/または是正措置(corrective action)をサポートすることもできる。
次に図2を参照すると、モデルに基づく管理アーキテクチャ100の主要コンポーネントを記述することに関係する図面マップ200が示されている。このアーキテクチャは、図3Aに関連して説明するモデルコンポーネント106、図3Bに関連して説明するマニフェストコンポーネント108、図3Cおよび図3Dに関連して説明するシステムコンポーネント110、ならびに図3Eに関連して説明するタスクコンポーネント112を含む。アトリビューションはすでに説明してあり、本明細書を通じて参照する。
次に図3Aを参照すると、モデルに基づく管理アーキテクチャのモデルコンポーネント106に関係するブロックが示されている。アプリケーションを構成するコンポーネント、健全性の状態および復旧、構成設定、ならびに管理タスクについてモデルが形成される。
これらに加えて、システムの任意のかつすべてのコンポーネント(ならびにこれらに関連する関係、依存性、およびサービスロール)をモデル化するためのコンポーネントモデルサブコンポーネント300がある。コンポーネントモデル300は、ファイル、構成、アプリケーションをインストールし得る様々な方法などを記述する。
健全性モデルサブコンポーネント301は、様々な障害状態、およびアプリケーションまたはサービスの障害の発生のしかたが記述されるように形成し得る。健全性モデル301は、健全性についての機能を自動化するためにとる必要があるステップを記述する。健全性モデル301は、少なくとも、障害の状態、これらの状態の検出、システム状態の検証、診断、および解決を表す。健全性の状態は、完全に健全である、完全に障害がある、および任意の中間状態とみなすにはどんな基準を満たさなければならないかという点で記述し得る。この中間状態は、例えば、パフォーマンスの劣化、部分的に機能している、顧客機能の一部が機能している、顧客機能の一部が、想定したレベルのサービスを提供するアプリケーションまたはサービスである、などである。健全性は、機能は満足のいく状態だが、パフォーマンスが基準以下であり、アプリケーションまたはサービスが健全でないことを示すことも考慮する。
構成モデルサブコンポーネント302は、システム構成のモデル化に関係するものである。構成モデル302を用いて、アプリケーション設定、ユーザコントロール、既定値、様々な制約などを記述する。管理タスクモデルサブコンポーネント303は、管理タスクのモデル化に関係するものであり、開始、停止、ユーザの追加、データベースの追加、および健全性モデル301からコールし得る是正処置など、ユーザがシステムに対して取り得る動作を含む。モデル302は、アプリケーションまたはサービスによって行い得るすべてのことを列挙する。アーキテクチャモデル304を用いて、分散環境および関連するデプロイメントを記述する。これらは通常、例えば、同じまたは類似のハードウェアおよびソフトウェアの設定および構成を有するクライアント、ならびに分散データベースからなる大規模ネットワークに関係するものである。そのため、ローカルアプリケーションは、リモートディスクアレイに依存し得る。デプロイメントの際に、このディスクアレイを、マニフェストによって、かつURIを用いてデプロイメントレベルでインスタンス化する必要がある。URIは機械に依存しないので、分散システムも、モデルに基づく管理システムの利益を得ることができる。パフォーマンスモデル305は、開発者が、メトリクス(metrics)を用いてアプリケーションまたはサービスのパフォーマンスを監視したい場合のやり方が記述されるように形成し得る。これは、システムの健全性と密接に関係する。アプリケーションまたはサービスに関係するセキュリティのタイプを記述するセキュリティモデル306を生成し得る。
本明細書で提供するモデルの数は網羅的ではないことに留意されたい。というのは、開発者は、アプリケーションまたはサービスの様々な態様を管理するための多くの異なるモデルを提供し得るからである。
この主題のモデルに基づくシステムは、その様々な態様を実施するために様々な人工知能に基づく方式を採用し得る。例えば、モデルに関して、所与のインスタンスまたはインプリメンテーションにはどのモデルを使用し得るかを決定するプロセスを、自動分類システムおよびプロセスによってうまく進めることができる。さらに、このような分類子を用いて、システムのパターンを検出し、何が良好な状態で、何が不良状態であり、何が成功したトランザクションで、何が成功しなかったトランザクションかを学習することを開始するシステムの動作プロファイルを形成し得る。次いで、この情報を、対応するモデルにフィードバックし、後続のシステムに対する更新されたモデルとして使用することができる。このような分類では、(例えば、解析ユーティリティおよびコストを計算に入れる)確率および/または統計に基づく解析を用いて、ユーザが自動的に実施されるように望む動作を予測または推測することができる。例えば、SVM(サポートベクトルマシン)の分類子を用いることができる。他の分類手法には、ベイズネットワーク(Bayesian networks)、デシジョンツリー(decision tree)が含まれ、異なる独立パターンを提供する確率分類モデルを用いることができる。本明細書で用いる分類には、優先モデルを形成するのに用いられる統計回帰も含まれる。
本明細書から容易に理解されるように、モデルに基づくシステムは、(例えば、一般的な訓練データによって)明示的に訓練された分類子、ならびに(例えば、ユーザの挙動を観察し、外からの情報を受け取ることによって)暗示的に訓練された分類子を採用し、それによって、これら1つ(または複数)の分類子を用いて、所定の基準に従って、例えば、所与のインプリメンテーションに対してどの初期設定を用いるかを自動的に決定し、次いで、システムが成熟し、データ、インストールされたいくつかのアプリケーション、および対話するノードの数に関する様々なロード条件を経験するにつれ、時間をかけて設定を調整することができる。例えば、十分に理解されているSVMに関して、SVMは、分類子コンストラクタおよび特徴選択モジュール内での学習または訓練の段階を介して構成される。分類子は、入力属性ベクトルx=(x1、x2、x3、x4、xn)を、コンフィデンス(confidence)にマッピングする関数である。コンフィデンスの入力はクラスに属し、すなわち、f(x)=confidence(class)である。管理システムの場合、例えば、属性は、所望の状態のシステムパラメータであり、クラスは、対象とするカテゴリまたは領域(例えば、すべてのドライブ、すべてのネイティブプロセス)である。分類子を用いて、トランザクションログをキャプチャ(capture)し解析し、パターンを探し、成功したパターンおよび成功しなかったパターンを探すことによってシステムを診断することもできる。
構成の健全性は、例えば、キューのサイズを5から10に変更し、この変更がアプリケーション、サービス、またはシステムにどんな影響を及ぼし得るかを判定することを含む。同じことが、セキュリティおよびパフォーマンスに当てはまる。この場合、分類子を用いて、パフォーマンスカウンタを監視し、それに従ってシステムの変更を行ってパフォーマンスを最適化することができる。セキュリティをパターンについて監視し分析することもでき、この影響を用いてセキュリティポリシーを提案または変更し得る。このように、健全性は、システムの多くの領域に適用し得る広い概念であることを理解されたい。システム規模の範囲では、パフォーマンスは良好だが、セキュリティが貧弱なことがある。そのため、システムの多くの規範にまたがる包括的な観点が有利である。
管理者が所望する状態をコード中に表現することができ、これを、マニフェストで表面化させ、それを渡して監視サービスによって監視する。システムは、マニフェスト中の命令に基づいてアプリケーションまたはサービスを監視し、アプリケーションまたはサービスがパフォーマンスを満たさないときには管理者に警告し、命令に基づいて是正措置を講ずることができる。例えば、電子メール用のテスト設定が維持されず、ある期間閾値未満に落ちる場合、負荷が正常な状態に戻るまで別の機械を追加することができ、ネットワークトラフィックを、リソースの数を増やすトリガとして用いて、所与の負荷に対処することもできる。目標は、手作業の動作が必要とされるときにのみ管理者が関与するように、できるだけ多くを自動化することである。
モデルに基づく管理システムは構成可能である。この管理システムは、コンポーネントに基づくものであり、コンポーネントはほぼ何でも含む。そのため、このシステムを、その最も小さい管理可能な部品まで小さくし、元通りに構成し得る。データベースでは、例えば、インスタンス、このデータベース、テーブル、およびストアドプロシージャを有するアプリケーションがあり、1つのファイルにまで小さくし得る。401kの応用例を考える。401kの応用例は、データベース、ウエブサーバ、および顧客自身のビジネス論理、さらに、オペレーティングシステムおよび関連のものに依存するデータベースにまで依存し得る。様々なレベルで管理および報告を行うことが望ましい。アプリケーションは、コンポーネント間の関係によって記述される。これらの関係は、個々のアプリケーションをどのように組み立てるか(例えば、SQLサーバは、サービス、インスタンス、およびデータベースを含む)、プラットフォームの要件(例えば、オペレーティングシステムその他のアプリケーション)、および他のコンポーネント(SQLサーバに接続するウエブサーバ)への通信を表現し得る。1人の管理者は、データベースおよび1台の機械を管理し、金融管理者は401kの応用例を管理し、CIOはこれらのアプリケーションおよび機械のすべてを管理する。これらのモデル、報告、および所望の状態により、個々のメトリクスを参照してシステムが想定どおりのことを行っているかどうかを判定し得るように、すべてのことが処理されるべきである。
すべてのモデルはURI名前空間に結びつけられ、それによって、システムを運用し、インストールされているすべてのコンポーネントを列挙し、コンポーネントに問合せを行う標準的な方法が提供される。この問合せには、コンポーネントが何を提供するか、何が健全とみなされるか、コンポーネントがどんなイベントを有するか、この1日またはここ数時間でどんなエラーイベントが生じたか、どんな構成設定が含まれているか、この1時間でどんな変化が生じたか、などが含まれる。
次に図3Bを参照すると、モデルに基づく管理アーキテクチャのマニフェストコンポーネント108に関係するブロックが示されている。アプリケーションとともに出荷されるマニフェストは、モデルおよびソースコードアトリビューションからの情報を、管理システムのサービスが使用するために機械可読形式で含む。アプリケーション用の管理タスクは、このマニフェスト中で定義される。コンポーネント依存性、コンポーネント間の関係、およびサービスロールに関係する第1マニフェストサブコンポーネント307、イベント、プローブ、ルール、および動作に関係する第2マニフェストサブコンポーネント308、設定およびアサーション(assertion)に関係する第3マニフェストサブコンポーネント309、コマンド(すなわち、コマンドレット)および管理ロールに関係する第4マニフェストサブコンポーネント310、分散環境に関係する第5マニフェストサブコンポーネント311、ならびにデプロイメントに関係する第6マニフェストサブコンポーネント312を含めて、モデルに対応して生成されたいくつかのマニフェストが存在し得る。
マニフェストは、開発者、運用チーム、および管理者の間の「橋渡し」であり、属性を与えられたコードについてモデルを走査するツールによって自動的に生成される。設定エンジンは、コンポーネントマニフェスト307を使用して、アプリケーションまたはサービスのインストール方法を決める。コンポーネントマニフェスト307は、論理コンポーネント、ファイル、これらのファイルをどこにインストールすべきか、および構成設定(または任意の設定)を記述する。依存性は、インストール前に定義する必要があるものであり、アプリケーションを異なるモードで、様々なセキュリティの度合いおよび異なる動作プロファイルでインストールすることができるように様々なロールを含む。コンポーネントマニフェスト307は、手動および自動で何を行うかをユーザおよび/またはシステムにより簡単に知らせる。マニフェストの粒度は、1コンポーネント当たり1つのマニフェストにまで小さくし得る。
従来方式では、実際に必要とされるよりもはるかに多くのファイルをインストールする。マニフェストにより、必要とされるファイルだけをインストールすることができる。こうすると、少なくともパフォーマンスおよびセキュリティが改善される。ソフトウェアの依存性は、マニフェスト307内で定義される。アプリケーションレベルでは、こられの依存性は、単一の機械に固有のものであり、コンポーネントの関係およびハードウェアリソースを定義し得る。コンピュータは、マニフェストによって記述し得る。例えば、アプリケーションは、特定の製造業者のデュアルプロセッサマシン上にデプロイ(deploy)すべきである、あるいは、4プロセッサマシンに接続すべきである、などである。マニフェスト307は、プロセッサ、メモリ、ドライブなどを、実装に必要とされるハードウェアの粒度のレベルまで記述する。そのため、管理は、従来方式のシステムの場合の事後対応型ではなく、事前対応型になり得る。ハードディスクの障害は、システム温度を長時間にわたって監視し、電源レール電圧を監視し、それらが十分であると判明した場合には、例えば、熱による障害によって生じると判定し得る。
健全性モデル301を用いて、健全性マニフェスト308を生成する。健全性マニフェスト308は、アトリビューションその他のツールを用いて健全性モデル301からポピュレートする。イベントはモデル301内でコールされず、リソースファイル内でコールされる。ツールがリソースファイルおよび属性を与えられたソースコードを走査し、健全性マニフェスト308をポピュレートする。所定のシーケンスのイベントに注意するか、あるいはパフォーマンスカウンタの閾値を監視することによって障害状態を検出し得る。このような障害状態の対処方法に関して、システムに命令を提供し得る。健全性モデルは、ルールに変換される。健全性マニフェスト308は、event1、event2、time3などのパラメータを伴うルールタイプのイベントシーケンスを含む。
構成モデル302は、どんな設定が含まれるかを記述し、設定/アサーションマニフェスト309に変換される。マニフェスト309は、コンポーネントがインストールされるときにシステムが設定を生成するための命令スキーマを提供する。
管理タスクモデル303は、コマンドレット/管理ロールマニフェスト310を介して動作に変換される。例えば、データのバックアップが必要とされる場合、コマンドレットは、このバックアップタスクをうまく進めるのに用いられる実際のコードまたはURIになる。多くの管理タスクを実施する必要がある場合、マニフェスト310は、これらのコマンドへの、おそらくはコードへのURI経路を提供する。コマンドレットは、このコードに対するアサーションによって処理するか、あるいは外部コードを要求し得る。管理ロールは、例えば、アプリケーションまたはサービスを管理するユーザの複数のクラスおよびそれらがそれぞれ実行し得る制御レベルをサポートする別のアブストラクション(abstraction)である。これは、ロールに基づくアクセスに関係する。様々なユーザのロールおよびそれらの許可機能を記述するメタデータが必要とされる。ロールは、誰にインストール権限があるのか、誰が監視を変更し得るのか、誰が健全性を監視し得るのか、誰が警告を解決し得るのか、誰がこれらの様々な動作を取り得るのかなど、このシステムのすべての態様にまたがるものである。
タスクモデル303は、管理者がすべきことと開発者が考えることを定義する。これらは、マニフェスト310に表され、運用チームによってその環境に対してカスタマイズされる。これらのカスタマイズ化は、クラスレベルおよびインスタンスレベルで行い得る。クラスレベル、インスタンスレベルでマニフェストに変更を加えることができ、実行時に直接変更を加えることができる。ここで開示するモデルに基づく管理アーキテクチャの極めて強力な特徴は、機能をまずクラスレベルで記述することができ、実行時にアクセスがインスタンス空間に対して行われることである。
アーキテクチャモデル304は、分散コンポーネントマニフェスト311およびデプロイメントマニフェスト312を表面化(surface)させる。例えば、機械間のネットワーク接続、ハードウェア要件はここで扱う。デプロイメントマニフェスト312は少なくとも、ウエブサーバ、中間階層サーバ、およびデータベースサーバを備えるアプリケーションをサポートし、フロントエンド/バックエンドアプリケーション、2つのアプリケーション間のネットワーク接続性を含み、個々のノード間の関係を記述する。デプロイメント期間には、全体的アーキテクチャモデル304で記述したもののインスタンスが生成される。
パフォーマンスモデルおよびセキュリティモデル(305および306)はそれぞれ、対応する関連機能および操作を記述する(図示しない)マニフェストをサポートする。
機械ベースの学習を採用することに戻ると、分類子を用いて、例えば第1のデプロイメント中に、要件に基づいてモデルコードの選択部分のマニフェストを選択し、動的に生成し得る。使用するアトリビューションの数を増減させて、既定モデルを自動的に生成し得る。時間の経過とともにシステムの動作情報が利用可能になるので、この情報を分析して、例えば、最新のデータの傾向およびログに基づいて、特定の領域におけるシステムをより厳密に監視することができるようにマニフェストの粒度レベルを調整し得る。次いで、更新されたマニフェストを生成し直し、必要に応じて、アプリケーションまたはサービスをより厳密に監視するために使用する。
マニフェストに、製造業者からの既定のインストールまたは推奨された最適な実務慣行が記述されている場合、管理者は、それらの事柄を変更したいことがある。例えば、健全性ルールに関して、管理者は、閾値を30から40に変更し、コンポーネントをインストールし、またセキュリティポリシーを上書きしたいことがある。これは、マニフェストのカスタマイズされたバージョンを生成して、製造業者がバンドルしたマニフェストを上書きすることによって行い得る。異なるバージョンはインストール中に検出することができ、それによって、既定のマニフェストまたはカスタマイズされたマニフェストの選択権がユーザに与えられる。あるいは、上書き値が列挙された、システムが読み込む別のファイルが存在し得る。この一覧を表示し、それによってユーザが選択して既定のマニフェストに適用するか、あるいは、インストール中に既定の設定が上書きされるようにする。
分散アプリケーションに関して、管理者は、より一般には、これらのうち3つを、そのうちの4つを、それらのうち6つをすべてこの構成内で結線(wired)したいことを規定し得る。この管理者は、それに従って所与の環境についてのデプロイメントマニフェスト312をカスタマイズし得る。
次に図3Cを参照すると、モデルに基づく管理アーキテクチャに従ってアプリケーションまたはサービス314を管理するのに使用するシステムコンポーネント110のコアシステムAPIのブロック図が示されている。システムコンポーネント110は、管理すべきアプリケーションまたはサービス314を含む。システム110は、モデルに基づく管理をうまく進めるために協調して通信を行ういくつかのAPIを含む。システム110は、(図3Bに関して説明した)アプリケーションマニフェスト内の情報によって構成された複数のサービスからなる。
システム110は、アプリケーションの可用性を確保するのに必要なサービスからなり、マニフェストコンポーネント108内で表現され、かつ管理者によって改変された所望の状態を用いて、依存性を検証し、必要なファイル、設定、およびセキュリティだけをインストールするインストール作業と、イベントをサブスクライブ(subscribe)し、指定どおりに転送するイベントサブスクリプションと、機器編成をポーリングして、機器編成およびカウンタを周期的に収集することと、および統合的トランザクションまたはユーザシミュレーショントランザクションとを実施する。アプリケーションが利用可能であり、かつ想定どおりに(所望の状態で)実施されているかどうかを判定する最適な方法の1つは、監視システムが、ユーザであるかのようにこのアプリケーションを使用することである。これは能動的監視である。潜在的に可能な第2の方法は、ユーザによる現実のトランザクションを能動的に監視し、集計したデータをシステムに報告して分析することである。これらのステップではループが閉じており、内部アプリケーションデータが十分ではないことが示される。モデルに基づく管理は、アプリケーション外でも機能する。
また、システム110は、マニフェストコンポーネント108内で表現された所望の状態を用いて、自動タスク管理を行うためのタスクスケジューリングと、プログラムの機能へのアクセスを制限するためのロールに基づくアクセスと、問題を検出し、根本的原因を診断し、是正処置を講じ、介入が必要な場合にはシステム管理者に通知するために監視を行うことと、上記を行うためにポリシーをカスタマイズし、それを多くの機械に適用するための中央構成(central configuration)とを実施する。
アプリケーション314と通信するインストールAPI 316が提供され、それによって、このアプリケーションのインストール、アプリケーションのアップデート、およびパッチがうまく進む。インストールAPI 316は、コードを介してマニフェストアセンブリを取得し、これらのアセンブリをインスタンス化する。これは、この機械上に、このコンポーネント、このマニフェスト、およびこのバージョンをインストールするようにシステムに命令することによって行われる。インストールAPI 316は、それに関連するプロトコル318およびビューア320を有する。プロトコル318は、システム110の他のコンポーネントへのAPI関連データの通信をうまく進める。ビューア320は、インストールAPI 316に関係するデータを表示する。インストールAPI 316は、単一の機械上へのインストールだけでなく、ローカルシステムおよびリモートシステムがともに関与する分散アプリケーションまたはサービス、ならびにハードウェアのプロビジョニング(provisioning)およびアブストラクションもうまく進める。分散データセンタ環境では、ハードウェアシステムを全体的により細かい粒度に、個々の機械のアブストラクションに抽象化し得ることが重要である。プロトコルは、APIに関して本明細書で企図されているように、API関連データの送受信を司るルールである。ビューア320は、この記述の中で理解されるように、API、ここではインストールAPI 316に関連するデータを表示するプログラムである。APIデータは、例えば、サウンドファイル、ビデオファイル、その他のタイプのデータファイルを含むが、これらに限定されるものではない。
システム110は、アプリケーション314と通信する構成API 322を含み、それによって、アプリケーション314の構成がうまく進む。構成API 322は、それに関連するスキーマ323、プロトコル324、およびビューア326を有する。スキーマ323は、API 322とアプリケーション314の間で渡されるデータの構造および内容を定義する。プロトコル324は、システム110の他のコンポーネントへのAPI関連データの通信をうまく進める。ビューア326は、構成API 322に関係するデータを表示する。
分散環境で多数対1の管理をうめく進める管理API 328も含まれる。API 328は、管理されるアプリケーション314と通信し、(図示しない)リモートシステムとも通信する。API 328は、それに関連するプロトコル330およびビューア332を有する。
システム110は、アプリケーション314と通信するパフォーマンスカウンタAPI 334を含み、それによって、アプリケーション314を管理するのに使用するカウンタ変数の追跡がうまく進む。カウンタAPI 334は、それに関連するプロトコル336およびビューア338を有する。プロトコル336は、システム110の他のコンポーネントへのAPI関連データの通信をうまく進める。ビューア338は、カウンタAPI 334に関係するデータを表示する。パフォーマンスカウンタは、アプリケーション314によってエクスポーズされ、ビューア338を介してカウンタをパブリッシュ(publish)する。
アプリケーション314と通信する機器編成API 340が提供され、それによって、機器編成を構成し、機器編成データをアプリケーション314に渡すことがうまく進む。機器編成API 340は、それに関連するプロトコル342およびビューア344を有し、ビューア344を介して機器編成がエクスポーズされる。プロトコル342は、システム110の他のコンポーネントへのAPI関連データの通信をうまく進める。ビューア344は、機器編成API 340に関係するデータを表示する。機器編成API 340は、IPC(プロセス間通信)346を介して、管理されるアプリケーション314と通信する。IPCは、同じコンピュータ内の、あるいはネットワークを介して、1つのプログラムと別のプログラムの間でデータを自動的に交換する。IPC機能の一例は、ユーザがクリップボードを使用して、1つのファイルから別のファイルに手作業でデータをカットアンドペーストするときに実施されるものである。カウンタは、共有メモリを介して常にパブリッシュされ、機器編成は、要求時に送達される。機器編成API 340は、イベントスキーマに類似のやり方で機器編成クラスのサーフェイス(surface)を記述するスキーマ348も含む。(図示しない)機器編成ログも含まれることがあるが、管理者の多くは、イベントログを使用することを好む。
システム110は、コンポーネントおよびモード情報を追跡しキャッシュする記憶部であるカタログ347を含む。このモード情報は、インストール時にマニフェストから送られ、その一部は動的であり、実行時に更新される。カタログ347は、カタログAPIを含み、カタログ347内に記憶されるデータへのアクセスを提供する。これらのデータのいくつかのタイプとして、イベント、カウンタ、機器編成、および構成のデータが挙げられる。カタログ347へのアクセスは、プロトコル351およびビューア353によってうまく進む。中央構成データベースは、複数の管理ノード全体にわたってロールアップされた、あるいは集計されたカタログの一覧を含む。
システム110は、アプリケーションまたはサービス314と通信するイベントAPI 350を含み、それによって、アプリケーション314を管理するのに使用するイベントの実装および追跡がうまく進む。イベントAPI 350は、発生するすべてのイベントの記憶部として働くイベントログ352に接続される。イベントAPI 350は、それに関連するプロトコル354およびビューア356を有する。プロトコル354は、システム110の他のコンポーネントへのAPI関連データの通信をうまく進める。ビューア356は、イベントAPI 350に関係するデータを表示する。イベントAPI 350とアプリケーション314の通信は、それらの間で渡されるデータの構造および内容を定義するイベントスキーマ358に従う。これらのイベントは、それらが記述または発生したときにパブリッシュされる。このスキーマは、イベントのサーフェイスを記述する。
システム110は、アプリケーション314と通信する自動化API 360を含み、それによって、普通ならアプリケーション314と対話的に行われる手順の自動化がうまく進む。自動化API 360は、それに関連するプロトコル362およびシェル364を有する。プロトコル362は、システム110の他のコンポーネントへのAPI関連データの通信をうまく進める。シェル364は、ユーザと自動化API 360の対話をうまく進めるユーザインターフェースを提供し、それによって、自動化プロセスおよびこれらの自動化プロセスのユーザコントロールに関係するデータの入力および表示が行われる。
システム110はさらに、アプリケーション314および自動化API 366と通信するスケジュールされたタスクAPI 366を含む。スケジュールされたタスクAPI 366により、少なくとも自動化API 360および管理されるアプリケーション314についてスケジューリングを行うジョブまたはプログラムがうまく進む。スケジュールされたタスクAPI 366は、実行すべきジョブの一覧を維持し、それに従ってリソースを割り当てる。スケジュールされたタスクAPI 366は、それに関連するプロトコル368およびビューア370を有する。プロトコル368は、システム110の他のコンポーネントへのAPI関連データの通信をうまく進める。ビューア370は、スケジュールされたタスクAPI 366に関係するデータを表示する。タスクスキーマ372は、タスクAPIと他のコンポーネントの間で渡されるデータの構造および内容を定義する。
自動化およびタスクのデータは、タスクモデルおよびコマンドレットモデルから受け取る。これらの機能は、管理シェルを介してローカルまたはリモートで自動化し得る。このスケジューリングシステムは、これらの機能、例えば午前3時のバックアップを実行し得る。
図3Cで説明したコンポーネントは、ローカルな実施形態のものを表し、図3Dのコンポーネントは、多くの機械およびソフトウェアのシステム全体にわたって解析が行われる分散実施形態に関連するものを表し得ることを理解されたい。そのため、分散実施形態では、図3Dのコンポーネントは、図3Cのローカルシステムの少なくとも1つと通信する。ただし典型的には、複数のこのようなローカルな実施形態は、有線および/または無線の方式をとる。ローカルな実施形態では、システム110は、ローカル監視サービスAPI 365を含めて、図3Dのコンポーネントのいずれか、またはすべても含み得る。ローカル監視サービスAPI 365は、プロトコル367、ビューア369、およびスキーマ371も含み、これらはそれぞれ、他のAPIのこのようなコンポーネントに類似の機能をうまく進める。分散実施形態では、ローカル監視サービスAPI 365は、以下で説明する分散監視サービスに監視情報を渡す。
次に図3Dを参照すると、モデルに基づく管理アーキテクチャのシステムコンポーネント110の管理に関連するAPIのブロック図が示されている。構成データベースサブコンポーネント374が提供され、このサブコンポーネントに、中央構成API 376を介してアクセスおよび制御が提供される。中央構成API 376は、システム110のすべてのサブコンポーネントに接続される。中央構成API 376は、それに関連する通信および対話用のプロトコル378およびビューア380、ならびにアサーションおよび既定値などの構成設定および属性のシェイプ(shape)を記述するスキーマコンポーネント382を有する。プロトコル378は、システム110の他のコンポーネントへのAPI関連データの通信をうまく進める。
管理システムの運用関連データ、例えば、報告、現在の状態、および履歴データなどのリポジトリ(repository)として働く運用データベースサブコンポーネント383も提供される。監視API 384は、運用データベース383およびモデルに基づく管理システムのすべてのサブコンポーネントに接続される。監視API 384はさらに、それに関連するプロトコル385、ビューア386、およびスキーマ387を有する。プロトコル385は、システム110の他のコンポーネントへのAPI関連データの通信をうまく進める。ビューア386は、監視API 384に関係するデータを表示する。スキーマ387は、運用データベース383全体の定義を、少なくともその構造と、この構造内の各データ要素が含み得る内容のタイプとに関して提供する。
中央構成は、すべてのAPIに接続することができ、構成の詳細を設定するために管理者が使用するものである。構成の詳細は、どの機械にアプリケーションをインストールすべきかなど、分散アプリケーションのシナリオついての詳細を含み得る。構成は、監視構成も含み得る。例えば、すべての機械は、5分間にわたってCPUの利用率が80%未満にならないことを示さなければならない。そのため、この監視システムは、構成システムを使用する。監視は、アプリケーションが1つのモデルごとに、挙動し、構成され、インストールされることを、管理者が管理システムを介して保証する方法である。監視は、想定される機能、所望のセキュリティの程度、正しく実施されること、およびユーザの想定どおりにデータが送達されることを保証することも含む。そのため、監視は、これらすべての領域にまたがる。全体的なプロセスは、インストールし、構成し、要求時にタスクを実行し、イベントを消費し、機器編成、構成を提供し、データおよび結果を記憶することである。健全性マニフェストは、監視システムに作業命令を、監視システムへの命令であるルールの形式で提供する。一般に、このマニフェストは実行時の命令を含み、これら実行時の命令は所望の状態を実装する。
監視サービスは、ローカルサービスであるだけでなく、中央または分散型のメカニズムである。分散実施形態では、健全性は、ローカルマシンの健全性ならびにローカルマシンとリモートマシンの間の関係も含む。例えば、一まとまりの10台の機械があると仮定し、6台が正しく機能している限り、このシステムは健全であるとみなされる。しかし、5台以下の機械しか動いていない場合、このシステムの健全性の状態は、警戒状態まで劣化している。4台以下の機械しか動いていない場合、このシステムの健全性は障害状態とみなし得る。ハードウェアのアブストラクションにより、1つまたは複数のクラスタマシンに障害が発生するか、あるいはオフラインになった場合、1つまたは複数のバックアップシステムまたはアプリケーション/サービスをオンラインにすることが容易になる。そのため、命令に基づいて、共同のアイドル状態のリソースまたは共有リソースを制御し得る。この機能は、データセンタ環境では特に有用である。システムが、最適な、あるいは少なくとも最低限の機能を確実に維持するために、自動化された動作を実装し得る。
モデルに基づく管理アーキテクチャの一態様により、開発者は、システムが健全であるとみなされるために満たさなければならない基準を表す多数のルールを記述し得る。監視API 384は、ルールの暗示的な同時処理をうまく進めるルールランタイムエンジンを含む。このルールエンジンは、これらのルールを中間形式として表す入力命令を受け取る。これらのルールは、RDL(ルール定義言語)を用いて表現される。このルールエンジンは、構成データベース374から、ルールコードをインスタンス化するのに用いる構成データも受け取る。翻訳器は、これらの入力命令を読み込み、これらを並列実行形式に変換する。ランタイムエンジンは、これら翻訳された命令を読み込み、並列実行をうまく進める。このルールコードは、ランタイムエンジンに、どのルールを実行するかと、このルールを実行するのに必要とされるパラメータとを指定する構成データをロードすることによってインスタンス化される。ルールのパラメータは、実行時に変更し得る。例えば、問題が検出されたときにのみ、システムに大きな影響を及ぼすルールを実行可能にする。このように、これらのルールは動的であり、それに従って変更し得る閾値もそうである。監視API 384は、システム110のすべてのサブコンポーネントにも接続される。
管理者が使用するための、マニフェストを記憶し編集するサービス388も提供される。マニフェストサービス388は、それに関連するプロトコル389およびビューア390を有し、それによって、これらのマニフェスト機能を管理者にエクスポーズする。マニフェストサービス388は、プロトコル389およびビューア390を介してこれらのマニフェストを管理者に供給し、それによって管理者が、インストール前に、これらのマニフェストを閲覧し変更することができる。マニフェストサービス388により、アップデートおよびカスタマイズに従って、これらのマニフェストをバージョニング(versioning)もうまく進む。
モデルに基づく管理システムのすべてのサブコンポーネントに接続されるロールに基づくアクセスAPI 391も提供される。ロールに基づくアクセスAPI 391はさらに、それに関連するプロトコル392およびビューア393を有する。プロトコル392は、システム110の他のコンポーネントへのAPI関連データの通信をうまく進める。ビューア393は、ロールに基づくアクセスAPI 391に関係するデータを表示する。このAPI 391は、監視コンポーネントおよび構成コンポーネントの上のレベルで示されており、そのため、モデルに基づく管理システムの様々なコンポーネントおよび態様へのアクセスを全体的に管理する。ロールに基づくアクセスAPI 391は、プロトコル392およびビューア393を含む必要はない。というのは、これらの機能は、システム110の他のコンポーネントによってうまく進めることができるからである。
このシステムは、機械ベースの学習および制御用の分類子394も含む。上記で示したように、分類子394は、システムの、いくつか例を挙げると、パフォーマンスや健全性を高めるために多くのやり方で使用することができる。機械ベースの学習をうまく進めるために、分類子394は、このシステムのすべてのコンポーネントにアクセスし、そのデータを使用し得るように、中央構成サービス376に接続される。
次に図3Eを参照すると、モデルに基づく管理アーキテクチャのタスクコンポーネント112の主要サブコンポーネントが示されている。これらのタスクは、管理タスクモデルによって記述される。これらのタスクは、監視サブコンポーネント395、トラブルシューティングサブコンポーネント396、および管理サブコンポーネント397の3つのサブコンポーネントに分けられる。
監視サブコンポーネント395のタスクは、健全性、セキュリティ、パッチ、構成、パフォーマンス、およびアプリケーションデータを監督することを含む。トラブルシューティングサブコンポーネント396のタスクは、健全性の状態の診断、警告の処理、ならびにイベントログ、機器編成ログ、およびパフォーマンスログを更新することを含む。管理サブコンポーネント397のタスクは、中央構成/ポリシー、スケジューリング、および更新デプロイメントを含む。管理には、単一のシステムの管理だけでなく、例えば、多数の機械、アプリケーション、およびシステム、ならびにポリシー、バックアップ時間、変更、およびアップデートを管理することも含まれる。
モデルに基づく管理アーキテクチャでは、抽象リソースまたは物理リソース、あるいはリソースコレクション(collection)を一意に識別するためにURIを用いる。リソース用のスキーマは、このリソース用のプレースホルダ(placeholder)を伴うURIによって識別される。プレースホルダを伴うURIをURIテンプレートと呼ぶ。このシステムのカタログは、特定のインスタンスを参照せずに機器編成を記述するために、URIテンプレートに依存する。URIテンプレートにより、実際に特定のインスタンスについてのプローブを取り出すことなく、プローブを識別し、このプローブの特徴を理解することができる。インスタンスとは切り離して機器編成をあらかじめ定義する機能を保護すると、ルールのデプロイメントおよび記述が比較的容易になり、関連するオペレーティングシステムが管理可能になる。
モデルに基づく管理フレームワークでは、ソフトウェアおよびハードウェアの可用性を監視するために、RDLを用いてルールの定義を可能にする。RDLで記述されたルールは、ランタイムエンジンによって監視サービスの一部として実行される。RDLの目的は、アサーションをテストし、実行時の情報を用いて制約を実行し、推測を行い、相関を実施し、動的テストの結果を他のコンポーネントに送ることである。RDLによりルールタイプ(すなわちクラス)を定義し、別のXML(拡張マークアップ言語)ドキュメントを用いて、インスタンス化に必要なパラメータ値を指定することによってこのルールタイプのインスタンスを生成する。問題の検出、診断、解決、検証、および警告を行うためにこのシステムが取るべきステップのシーケンスを記述するためにスキーマが存在する。このシーケンスが、監視システムによって、モデルに記述され、マニフェストに表現され、実行/管理される。
モデルに基づく管理フレームワークでは、前に示したように、イベントおよびパフォーマンスカウンタの更新値を用いて、サービスおよびテストまたは統合的トランザクションの健全性モデル(またはステータス)を示す。健全性モデル301は、サービスまたはコンポーネントにどのように障害が発生し得るかについてのグラフィカルな、かつ/またはテキストによる表現であり、サービスの様々なイベントおよびパフォーマンスカウンタの重大さを管理者が理解し、観察された機器編成データに基づいてなんらかの動作を取るかどうかを効率的に判断する助けになる。開発者は、健全性モデル301を、次いで、このモデルおよびソースコードアトリビューションから生成される対応するファイルとともに構築する。
健全性モデル301は、コンポーネントの依存性に加えて、コンポーネントの関係の記述を含む。検出された問題の状況に応じて、システムは、関係ツリーを移動し、他のコンポーネントの健全性に基づいて根本的原因を決定しようと試みることができる。この手法は、モデルおよびマニフェストによって補佐される。
ここで開示したアーキテクチャは、サービス定義モデルシステムに適用される。本特許の譲受人の特許出願の主題であるこのアーキテクチャの様々な態様の第1のものは、2003年10月 出願の「Architecture for Distributed Computing System and Automated Design, Deployment, and Management of Distributed Applications」という名称の米国特許出願第 号明細書であり、第2のものは、2003年10月 出願の「Integrating Design, Deployment, and Management Phases for an Application」という名称の米国特許出願第 号明細書である。
次に図4を参照すると、モデルに基づく管理のプロセスの流れ図が示されている。説明を簡単にするために、例えば流れ図の形式で本明細書に示す1つまたは複数の方法を一連の動作として示し説明するが、本発明は、動作の順序によって限定されず、いくつかの動作は、本発明に従って、本発明で示し説明するものと異なる順序で、かつ/または他の動作と同時に実施し得ることを理解かつ認識されたい。例えば、一連の相互に関連する状態またはイベントとして、状態図などの形で方法を代わりに表現し得るはずであることが当業者には理解かつ認識されよう。さらに、本発明による方法を実施するのに、例示した動作が必ずしもすべて必要とされないことがある。
400で、インストールすべきアプリケーションまたはサービスを、そのコンポーネントに関して記述する。402で、このアプリケーションまたはサービスを、機能、構成、セキュリティ、およびパフォーマンスについての所望の状態の形で記述する。404で、この記述は、インストール中にアプリケーションまたはサービスとともに提供され、それによって、システムがこの記述を用いて、システムの管理サービスを構成する。次いで、このプロセスは、停止(Stop)ブロックに達する。
次に図5を参照すると、モデルに基づく管理を実施するプロセスのより詳細な流れ図が示されている。500で、アプリケーションのコンポーネント、健全性の状態および復旧、構成の設定、ならびに管理タスクに関するモデルを形成する。502で、ユーザは、環境に応じて、システム/ルール/モデルをカスタマイズする。504で、ソースコードにアトリビューションを挿入して、監視を行うための機器編成および論理を示す。506で、モデル情報およびソースコードアトリビューションのマニフェストを提供し、それを管理システムのサービスが使用する。このマニフェストは、管理システムのサービスが使用できるように機械可読形式で提供される。508で、マニフェスト情報に基づいて、管理システムのサービスの1つまたは複数を構成する。510で、システムによるコマンドレットの登録、スケジュールの設定など、マニフェスト内でこのアプリケーションについての管理タスクを定義する。次いで、このプロセスは、停止(Stop)ブロックに達する。
次に図6を参照すると、モデルに基づく管理の所望の状態を実施するプロセスの流れ図が示されている。600で、マニフェストから所望の状態にアクセスする。602で、依存性を検証し、必要なファイル、設定、およびセキュリティ機能だけをインストールする。604で、マニフェストの指定どおりにイベントをサブスクライブし、転送する。606で、機器編成データおよびカウンタデータ、ならびに実施されるテストおよび統合的トランザクションを周期的に収集する。608で、自動管理タスクを実施する。610で、プログラム機能へのアクセスを制限する。ただし、モデルに基づく管理をうまく進めることにこれを含める必要はない。612で、問題を検出し、根本的問題を診断し、是正措置を講じ、介入時にシステム管理者に通知する。614で、上記すべてについてのポリシーをカスタマイズして、多くの他のタイプの機械およびシステムに適用する。次いで、このプロセスは、停止(Stop)ブロックに達する。
次に図7を参照すると、開示したアーキテキチャを実行するように動作可能なコンピュータのブロック図が示されている。本発明の様々な態様についての追加の状況を提供するために、図7および以下の検討は、本発明の様々な態様を実施し得る適切なコンピューティング環境700を簡潔かつ全体的に説明することを意図している。1つまたは複数のコンピュータ上で実行し得るコンピュータにより実行可能な命令の一般的な状況において本発明をこれまで説明してきたが、当業者には、他のプログラムモジュールと組み合わせて、かつ/または、ハードウェアおよびソフトウェアの組合せとして、本発明を実施することもできることが理解されよう。一般に、プログラムモジュールは、特定のタスクを実施し、また特定の抽象データタイプを実装するルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者には、シングルプロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、大型コンピュータ、ならびにパーソナルコンピュータ、ハンドヘルドコンピューティング装置、マイクロプロセッサベースまたはプログラム可能な民生用電子機器などを含めて、他のコンピュータシステム構成によって本発明の方法を実施し得ることが理解されよう。これらはそれぞれ、1つまたは複数の関連装置に動作可能に結合し得る。例示した本発明の態様は、通信ネットワークを介して接続された遠隔処理装置によってある種のタスクが実施される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、ローカルおよびリモートのメモリ記憶装置に配置することができる。
再度図7を参照すると、本発明の様々な態様を実施するための、コンピュータ702を含む環境の例700が示されている。コンピュータ702は、処理装置704、システムメモリ706、およびシステムバス708を含む。システムバス708は、システムメモリ706を含めてシステムコンポーネントを処理装置704に接続するが、システムコンポーネントの例はこれに限定されるものではない。処理装置704は、様々な市販のプロセッサのいずれかとし得る。処理装置704として、デュアルマイクロプロセッサその他のマルチプロセッサアーキテキチャも使用し得る。
システムバス708は、様々な市販のバスアーキテクチャのいずれかを利用して、(メモリコントローラ付き、またはメモリコントローラを伴わない)メモリバス、ペリフェラルバス、およびローカルバスをさらに相互接続し得るいくつかのタイプのバス構造のいずれかとし得る。システムメモリ706は、ROM(読出し専用メモリ)710およびRAM(ランダムアクセスメモリ)712を含む。BIOS(基本入出力システム)は、ROM、EPROM、EEPROMなどの不揮発性メモリ710内に格納される。このBIOSは、例えば起動時に、コンピュータ702内の要素間で情報を転送する助けとなる基本ルーチンを含む。RAM 712は、データをキャッシュするスタティックRAMなどの高速RAMも含み得る。
コンピュータ702は、ハードディスクドライブ714、(例えば、リムーバブルディスク718に対して読書きを行う)磁気ディスクドライブ716、および(例えば、CD−ROMディスク722を読み込み、また、DVD(デジタルビデオディスク)などの他の大容量光メディアに対して読書きを行う)光ディスクドライブ720をさらに含む。ハードディスクドライブ714、磁気ディスクドライブ716、および光ディスクドライブ720はそれぞれ、ハードディスクドライブインターフェース724、磁気ディスクドライブインターフェース726、および光ドライブインターフェース728よってシステムバス708に接続し得る。これらのドライブおよびそれらに関連するコンピュータ可読メディアは、データ、データ構造、コンピュータにより実行可能な命令などを記憶する不揮発性記憶装置を提供する。コンピュータ702の場合、これらのドライブおよびメディアは、適切なデジタルフォーマットでブロードキャストプログラムを記憶することに対応する。上記のコンピュータ可読メディアの説明では、ハードディスク、リムーバブル磁気ディスク、およびCDについて言及したが、当業者には、zipドライブ、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、カートリッジなど、コンピュータによって読込み可能な他のタイプのメディアも、例示の動作環境で使用し得ること、さらに、このようなメディアはいずれも、本発明の方法を実施するコンピュータにより実行可能な命令を収容し得ることが理解されよう。
オペレーティングシステム730、1つまたは複数のアプリケーションプログラム732、他のプログラムモジュール734、およびプログラムデータ736を含めて、いくつかのプログラムモジュールをこれらのドライブおよびRAM 712内に記憶することができる。オペレーティングシステム、アプリケーション、モジュール、および/またはデータの全部または一部を、RAM 712内にキャッシュすることもできる。
様々な市販のオペレーティングシステムまたはオペレーティングシステムの組合せによって、本発明を実施し得ることを理解されたい。
ユーザは、キーボード738、およびマウス740などのポインティングデバイスを介してコンピュータ702にコマンドおよび情報を入力することができる。(図示しない)他の入力装置は、マイクロホン、IRリモートコントロール、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどを含み得る。上記その他の入力装置は、システムバス708に結合されたシリアルポートインターフェース742を介して処理装置704に接続されることが多いが、パラレルポート、ゲームポート、または「USB」(ユニバーサルシリアルバス)、IRインターフェースなど、他のインターフェースによって接続することができる。モニタ744その他のタイプのディスプレイ装置も、ビデオアダプタ746などのインターフェースを介してシステムバス708に接続される。コンピュータは一般に、モニタ744に加えて、スピーカ、プリンタなどの(図示しない)他の周辺出力装置も含む。
コンピュータ702は、1つ(または複数)のリモートコンピュータ748など、1つまたは複数のリモートコンピュータへの有線および/または無線による通信を介した論理接続部を利用するネットワーク環境で動作し得る。1つ(または複数)のリモートコンピュータ748は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースの娯楽機器、ピアデバイス(peer device)その他一般のネットワークノードとすることができ、一般に、コンピュータ702に関連して上記で説明した要素の多くまたはすべてを含むが、簡単にするために図にはメモリ記憶装置750だけを示す。図に示す論理接続部は、LAN(ローカルエリアネットワーク)752およびWAN(ワイドエリアネットワーク)754を含む。このようなネットワーク環境は、一般事務所、企業規模のコンピュータネットワーク、イントラネット、およびインターネットで一般的なものである。
LANネットワーク環境で用いられるとき、コンピュータ702は、有線または無線による通信ネットワークインターフェースまたはアダプタ756を介してローカルネットワーク752に接続される。アダプタ756により、LAN 752への有線または無線による通信が容易になり得る。LAN 752は、無線アダプタ756と通信するためにLAN 752上に配設された無線アクセスポイントも含み得る。WANネットワーク環境で用いられるとき、コンピュータ702は一般に、モデム758を含むか、または、LAN上の通信サーバに接続されるか、あるいは、インターネットなどのWAN754を介して通信を確立するための他の手段を有する。内蔵型または外付け、および有線または無線による装置とし得るモデム758は、シリアルポートインターフェース742を介してシステムバス708に接続される。ネットワーク環境では、コンピュータ702に関連して示すプログラムモジュールまたはその一部は、リモートメモリ記憶装置750に格納することができる。図に示すネットワーク接続部は例であり、コンピュータ間で通信リンクを確立する他の手段を使用し得ることを理解されたい。
コンピュータ702は、任意の無線装置、または無線通信の形で動作可能に配設されたエンティティ、例えば、プリンタ、スキャナ、デスクトップ型および/またはポータブル型のコンピュータ、ポータブルデータ端末、無線により検出可能なタグに関連する任意の機器または場所(例えば、キオスク、新聞・雑誌販売所、休憩室)、ならびに電話と通信するように動作可能である。これは、少なくともWi−FiおよびBluetooth(登録商標)による無線技術を含む。このように、通信は、従来方式のネットワークの場合と同様に所定の構造とすることもできるし、あるいは、単に少なくとも2つの装置間のその場限りの通信とすることもできる。
Wi−Fiすなわちワイヤレスフィデリティ(Wireless Fidelity)により、自宅のソファから、またはホテルの部屋のベッドから、あるいは仕事での会議室から、電線なしにインターネットに接続することができる。Wi−Fiは携帯電話のような無線技術であり、それによって、基地局の範囲内であればどこでも、例えばコンピュータなどの装置が屋内外でデータの送受信を行うことができる。Wi−Fiネットワークは、安全で、信頼性が高く、高速な無線接続性を提供するIEEE802.11(a、b、gなど)と呼ぶ高周波技術を利用する。Wi−Fiネットワークを使用して、コンピュータの相互接続、インターネットへの接続、(IEEE802.3すなわちイーサネット(登録商標)を使用する)有線ネットワークへの接続が可能である。Wi−Fiネットワークは、無認可の2.4GHzおよび5GHzの高周波帯域で、11Mbps(802.11b)または54Mbps(802.11a)のデータレートで、あるいは、両方の帯域を含む(デュアルバンド)製品で動作し、そのため、これらのネットワークは、多くの一般事務所で使用されている基本10BaseT有線イーサネット(登録商標)ネットワークに類似の現実のパフォーマンスを提供し得る。
次に図8を参照すると、本発明によるコンピューティング環境の例800の概略ブロック図が示されている。システム800は、1つまたは複数のクライアント802を含む。1つ(または複数)のクライアント802は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティング装置)とし得る。1つ(または複数)のクライアント802は、例えば、本発明を利用することによって、1つ(または複数)のクッキーおよび/または関連するコンテキスト情報を収容し得る。システム800は、1つまたは複数のサーバ804も含む。1つ(または複数)のサーバ804も、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティング装置)とし得る。サーバ804は、例えば、本発明を利用することによって、変換を実施するためのスレッドを収容し得る。クライアント802とサーバ804の間の1つの可能な通信は、2つ以上のコンピュータプロセス間で送信されるように適合されたデータパケットの形態を取り得る。このデータパケットは、例えば、クッキーおよび/または関連するコンテキスト情報を含み得る。システム800は、1つ(または複数)のクライアント802と1つ(または複数)のサーバ804の間の通信をうまく進めるために使用し得る通信フレームワーク806(例えば、インターネットなどのグローバル通信ネットワーク)を含む。
通信は、(光ファイバを含めて)有線および/または無線技術によってうまく進めることができる。1つ(または複数)のクライアント802は、1つ(または複数)のクライアント802に局在する情報(例えば、1つ(または複数)のクッキーおよび/または関連するコンテキスト情報)を記憶するのに使用し得る1つまたは複数のクライアントデータ記憶部808に動作可能に接続される。同様に、1つ(または複数)のサーバ804は、サーバ804に局在する情報を記憶するのに使用し得る1つまたは複数のサーバデータ記憶部810に動作可能に接続される。
上記で示したように、ここで開示したモデルに基づく管理アーキテクチャは、企業タイプのシステム管理に適用される。例えば、クライアント802の1つは、ローカルなアプリケーションまたはサービスだけでなく、例えばサーバ804のリモートノードのアプリケーションまたはサービスも管理し得る。すべての態様が、ローカルクライアントの単一のインスタンスから、複数のネットワークノードのリモートのシステムおよびアプリケーションにまたがる複数のインスタンスまで、健全性の監視をサポートするように適用される。機械ベースの学習を、ローカルなレベルから企業レベルまで、さらにそれを超えて利用し、それによってシステムのパフォーマンスおよび機能を自動化し改善することができる。
以上説明してきたことには、本発明の実施例が含まれる。当然のことながら、本発明を説明するためにコンポーネントまたは方法の考え得るすべての組合せを説明することは不可能であり、本発明の多くの別の組合せおよび並替えが可能であることが当業者には理解されよう。したがって、本発明は、添付の特許請求の範囲の趣旨および範囲に含まれるすべてのこのような改変形態、修正形態、および変形形態を包含することを意図している。さらに、「含む」という用語を詳細な説明または特許請求の範囲において使用する限りにおいては、このような用語は、「備える」という用語が特許請求の範囲において用いられる際には暫定的な言葉として解釈されるように、「備える」と同様に包括的であることが意図されている。
本発明によるルールエンジンを使用する、モデルに基づく管理アーキテクチャを示す図である。 モデルに基づく管理アーキテクチャの主要コンポーネントを記述することに関係する図面マップを示す図である。 モデルに基づく管理アーキテクチャのモデルコンポーネントに関係するブロックを示す図である。 モデルに基づく管理アーキテクチャのマニフェストコンポーネントに関係するブロックを示す図である。 モデルに基づく管理アーキテクチャに従ってアプリケーションまたはサービスを管理するのに使用するシステムコンポーネントのコアシステムAPIのブロック図である。 モデルに基づく管理アーキテクチャのシステムコンポーネントの管理に関連するAPIのブロック図である。 モデルに基づく管理アーキテクチャのタスクコンポーネントの主要サブコンポーネントを示す図である。 モデルに基づく管理のプロセスの流れ図である。 モデルに基づく管理を実施するプロセスのより詳細な流れ図である。 モデルに基づく管理の所望の状態を実施するプロセスの流れ図である。 本発明によるアーキテキチャを実行するように動作可能なコンピュータのブロック図である。 本発明によるコンピューティング環境の例の概略ブロック図である。

Claims (31)

  1. アプリケーションまたはサービスを管理する、モデルに基づく管理システムであって、
    前記アプリケーションまたはサービスにおける、機能、構成、システムリソースの利用率、セキュリティ、およびパフォーマンスの少なくとも1つに関する所望の状態を記述した少なくとも1つのモデルを、ソースコードを用いて生成する記述コンポーネントであって、
    前記モデルのソースコードに、健全性の判定および/または是正を行うため、及び監視ルールをいつ実行するかを指定するために用いられるソースコード部分を示すためのアトリビューションを挿入するアトリビューションコンポーネントと、
    前記モデル及び前記アトリビューションを機械可読形式で含むマニフェストを生成するマニフェストコンポーネントと
    を含む、記述コンポーネントと、
    前記アプリケーションまたはサービスのインストール時に、前記マニフェストを使用して、前記アプリケーションまたはサービス自体を構成する管理サービスコンポーネントと
    を含むことを特徴とするシステム。
  2. 前記管理サービスコンポーネントは、構成の管理、問題の検出、診断、および復旧の少なくとも1つを含む管理動作を介して前記アプリケーションの可用性を確保することを特徴とする請求項1に記載のシステム。
  3. 前記記述コンポーネントは、健全性の状態および復旧、構成設定、および管理タスクの1つまたは複数をモデル化するモデルコンポーネントを含むことを特徴とする請求項1に記載のシステム。
  4. 前記記述コンポーネントは、前記マニフェストから受け取った情報から構成された複数のサービスを含む管理システムコンポーネントを含むことを特徴とする請求項1に記載のシステム。
  5. 前記記述コンポーネントは、前記マニフェスト内で定義された管理タスクを含む管理タスクコンポーネントを含むことを特徴とする請求項1に記載のシステム。
  6. 前記記述コンポーネントは、前記マニフェスト内で表現された前記所望の状態を用いる管理システムコンポーネントを含むことを特徴とする請求項1に記載のシステム。
  7. 前記管理システムコンポーネントは、管理者によって改変された前記所望の状態を用いることを特徴とする請求項6に記載のシステム。
  8. 前記所望の状態は、依存性を検証し、必要なファイル、設定、およびセキュリティデータのみをインストールすることを特徴とする請求項7に記載のシステム。
  9. 前記所望の状態の1つまたは複数は、所定の仕様に従って、イベントをサブスクライブし、前記イベントを転送することを特徴とする請求項7に記載のシステム。
  10. 前記所望の状態の1つまたは複数は、機器編成データおよびカウンタデータの少なくとも1つを周期的に収集することを特徴とする請求項7に記載のシステム。
  11. 前記所望の状態の1つまたは複数は、自動管理タスクを実施することを特徴とする請求項7に記載のシステム。
  12. 前記所望の状態の1つまたは複数は、プログラム機能へのアクセスを制限することを特徴とする請求項7に記載のシステム。
  13. 前記所望の状態の1つまたは複数は、問題を検出し、根本的原因を診断し、是正措置を講じ、介入が必要なときには管理者に通知することの少なくとも1つを実施することを特徴とする請求項7に記載のシステム。
  14. 前記所望の状態の1つまたは複数は、複数の異なるコンピュータとともに用いるポリシーをカスタマイズすることを特徴とする請求項7に記載のシステム。
  15. ソフトウエアおよびハードウエアのコンポーネントの可用性を監視するためのルールを定義し得るRDL(ルール定義言語)をさらに含み、前記RDLは、問題のテスト、診断、解決、検証、および通知の少なくとも1つを進めることを特徴とする請求項1に記載のシステム。
  16. 抽象リソース、物理リソース、またはリソースコレクションの少なくとも1つを一意に識別するのに使用するURI(ユニフォームリソース識別子)をさらに含むことを特徴とする請求項1に記載のシステム。
  17. URIテンプレートをさらに含み、前記URIテンプレートにより、プローブを識別し、前記プローブを取り出すことなく前記プローブの特徴を理解することができることを特徴とする請求項1に記載のシステム。
  18. URIテンプレートを用いて、特定のインスタンスを参照せずに機器編成を記述する機器編成カタログをさらに含むことを特徴とする請求項1に記載のシステム。
  19. モデルに基づく管理システムであって、
    アプリケーション、サービス、および/またはシステムの所望の状態に関して記述したモデルを生成する記述コンポーネントであって、
    コンポーネントモデル、健全性モデル、構成モデル、管理タスクモデル、アーキテクチャモデル、パフォーマンスモデル、およびセキュリティモデルの少なくとも1つをさらに含むモデルコンポーネントと、
    前記モデルのソースコードに、健全性の判定および/または是正を行うため、及び監視ルールをいつ実行するかを指定するために用いられるソースコード部分を示すためのアトリビューションを挿入するアトリビューションコンポーネントと、
    前記モデル及び前記アトリビューションを機械可読形式で含むマニフェストを生成するマニフェストコンポーネントと、
    前記アプリケーション、サービス、またはシステムへのインターフェースとなる1つまたは複数のAPI(アプリケーションプログラムインターフェース)を含む管理システムコンポーネントと、
    前記モデルに基づく管理システムによって実施される監視タスク、トラブルシューティングタスク、および管理タスクの少なくとも1つを定義するタスクコンポーネントと
    の少なくとも1つを含む、記述コンポーネントと、
    前記マニフェストを使用して、前記アプリケーション、サービス、および/またはシステムをデプロイする管理サービスコンポーネントと
    を含むことを特徴とするシステム。
  20. 前記APIは、中央構成、ロールに基づくアクセス、システムの監視、マニフェストの記憶および編集、イベントの生成およびログ記録、機器編成、パフォーマンスカウンタの処理、ローカルな構成、インストール、自動化、およびタスクのスケジューリングの少なくとも1つを進めることを特徴とする請求項19に記載のシステム。
  21. アプリケーションを管理するためのモデルに基づく管理方法であって、
    ソースコードを使用して、前記アプリケーションの所望の状態を記述した1つまたは複数のモデルを形成するステップと、
    前記モデルのソースコードに、健全性の判定および/または是正を行うため、及び監視ルールをいつ実行するかを指定するために用いられるソースコード部分を示すためのアトリビューションを挿入するステップと、
    前記モデル及び前記アトリビューションを機械可読形式で含むマニフェストを生成するステップと、
    前記マニフェストに基づいて、複数の管理システムサービスを構成するステップと、
    前記マニフェスト内で所望の状態を表現するステップと
    を含むことを特徴とする方法。
  22. 前記所望の状態の1つまたは複数に基づいて、依存性を検証し、必要なファイル、設定、およびセキュリティの少なくとも1つのみをインストールするステップをさらに含むことを特徴とする請求項21に記載の方法。
  23. 前記所望の状態の1つまたは複数に基づく所定のイベント仕様に従って、イベントをサブスクライブし、前記イベントを転送するステップをさらに含むことを特徴とする請求項21に記載の方法。
  24. 前記所望の状態の1つまたは複数に基づいて、機器編成情報、カウンタ情報、およびテストを周期的に収集することによって機器編成をポーリングするステップをさらに含むことを特徴とする請求項21に記載の方法。
  25. 前記所望の状態の1つまたは複数に基づいて、自動管理タスクを実施するステップをさらに含むことを特徴とする請求項21に記載の方法。
  26. 前記所望の状態の1つまたは複数に基づいて、プログラム機能へのアクセスを制限するステップをさらに含むことを特徴とする請求項21に記載の方法。
  27. 問題を検出し、根本的原因を診断し、是正措置を講じ、介入が必要とされるときにはシステム管理者に通知することによって、前記所望の状態に基づいてシステムのプロセスを監視するステップをさらに含むことを特徴とする請求項21に記載の方法。
  28. 問題のテスト、診断、解決、検証、および通知を進めるために、ポリシーをカスタマイズし、当該カスタマイズしたポリシーを異なるコンピュータに適用するステップをさらに含むことを特徴とする請求項21に記載の方法。
  29. サービスの1つまたは複数の健全性状態を判定するステップと、
    前記アプリケーションの機器編成をパブリッシュするステップと、
    当該パブリッシュした機器編成を分析するステップと、
    前記パブリッシュした機器編成に基づいて、前記サービスの健全性モデルを形成するステップと
    をさらに含み、
    前記健全性モデルは、コンポーネント間の関係の情報を含むことを特徴とする請求項21に記載の方法。
  30. アプリケーションまたはサービスを管理する方法を実施するための、コンピュータ実行可能命令を格納したコンピュータ可読記録媒体であって、前記方法は、
    ソースコードを使用して、前記アプリケーションの所望の状態を記述した1つまたは複数のモデルを形成するステップと、
    前記モデルのソースコードに、健全性の判定および/または是正を行うため、及び監視ルールをいつ実行するかを指定するために用いられるソースコード部分を示すためのアトリビューションを挿入するステップと、
    前記モデル及び前記アトリビューションを機械可読形式で含むマニフェストを生成するステップと、
    前記マニフェストに基づいて、複数の管理システムサービスを構成するステップと、
    前記マニフェスト内で所望の状態を表現するステップと
    を含むことを特徴とするコンピュータ可読記録媒体。
  31. 前記所望の状態の1つまたは複数に基づいて、依存性を検証し、必要なファイル、設定、およびセキュリティの少なくとも1つのみをインストールするステップをさらに含むことを特徴とする請求項30に記載のコンピュータ可読記録媒体。
JP2006536552A 2003-10-23 2004-07-12 コンピュータシステムおよび分散アプリケーションのモデルに基づく管理 Expired - Fee Related JP4809772B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US10/692,216 2003-10-23
US10/692,432 2003-10-23
US10/692,432 US7765540B2 (en) 2003-10-23 2003-10-23 Use of attribution to describe management information
US10/692,216 US7103874B2 (en) 2003-10-23 2003-10-23 Model-based management of computer systems and distributed applications
US10/693,072 US7539974B2 (en) 2003-10-24 2003-10-24 Scalable synchronous and asynchronous processing of monitoring rules
US10/693,072 2003-10-24
PCT/US2004/022378 WO2005045559A2 (en) 2003-10-23 2004-07-12 Model-based management of computer systems and distributed applications

Publications (2)

Publication Number Publication Date
JP2007509404A JP2007509404A (ja) 2007-04-12
JP4809772B2 true JP4809772B2 (ja) 2011-11-09

Family

ID=34577698

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006536552A Expired - Fee Related JP4809772B2 (ja) 2003-10-23 2004-07-12 コンピュータシステムおよび分散アプリケーションのモデルに基づく管理

Country Status (9)

Country Link
US (1) US7103874B2 (ja)
EP (1) EP1673694A4 (ja)
JP (1) JP4809772B2 (ja)
KR (1) KR101201008B1 (ja)
CN (1) CN1836208B (ja)
BR (1) BRPI0406418A (ja)
MX (1) MXPA05007141A (ja)
RU (1) RU2375744C2 (ja)
WO (1) WO2005045559A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013183249A1 (ja) 2012-06-04 2013-12-12 日本電気株式会社 配備装置、及び、配備方法

Families Citing this family (219)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6886038B1 (en) * 2000-10-24 2005-04-26 Microsoft Corporation System and method for restricting data transfers and managing software components of distributed computers
US7606898B1 (en) * 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US7113900B1 (en) * 2000-10-24 2006-09-26 Microsoft Corporation System and method for logical modeling of distributed computer systems
US7814198B2 (en) * 2007-10-26 2010-10-12 Microsoft Corporation Model-driven, repository-based application monitoring system
US7188335B1 (en) * 2001-12-28 2007-03-06 Trilogy Development Group, Inc. Product configuration using configuration patterns
US7777743B2 (en) * 2002-04-19 2010-08-17 Computer Associates Think, Inc. Viewing multi-dimensional data through hierarchical visualization
AU2003241302A1 (en) * 2002-04-19 2003-11-03 Computer Associates Think, Inc Using neural networks for data mining
US8122106B2 (en) * 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US7890543B2 (en) * 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7689676B2 (en) 2003-03-06 2010-03-30 Microsoft Corporation Model-based policy application
US7613822B2 (en) * 2003-06-30 2009-11-03 Microsoft Corporation Network load balancing with session information
US8015604B1 (en) * 2003-10-10 2011-09-06 Arcsight Inc Hierarchical architecture in a network security system
US9027120B1 (en) 2003-10-10 2015-05-05 Hewlett-Packard Development Company, L.P. Hierarchical architecture in a network security system
US20050278694A1 (en) * 2003-11-15 2005-12-15 International Business Machine Corporation Describing Runtime Components of a Solution for a Computer System
GB0326668D0 (en) 2003-11-15 2003-12-17 Ibm Apparatus and method for providing a solution for a computer system
US7590726B2 (en) * 2003-11-25 2009-09-15 Microsoft Corporation Systems and methods for unifying and/or utilizing state information for managing networked systems
US7430598B2 (en) * 2003-11-25 2008-09-30 Microsoft Corporation Systems and methods for health monitor alert management for networked systems
US7613804B2 (en) * 2003-11-25 2009-11-03 Microsoft Corporation Systems and methods for state management of networked systems
US8381207B2 (en) * 2003-12-02 2013-02-19 International Business Machines Corporation Script generation engine and mapping semantic models for target platform
US7379984B1 (en) * 2003-12-09 2008-05-27 Emc Corporation Apparatus, system, and method for autonomy controlled management of a distributed computer system
US7743008B2 (en) * 2003-12-30 2010-06-22 International Business Machines Corporation Adaptive management method with workflow control
US20050149732A1 (en) 2004-01-07 2005-07-07 Microsoft Corporation Use of static Diffie-Hellman key with IPSec for authentication
US7308818B2 (en) * 2004-02-09 2007-12-18 Garri Productions, Inc. Impact-sensing and measurement systems, methods for using same, and related business methods
US7584382B2 (en) * 2004-02-19 2009-09-01 Microsoft Corporation Method and system for troubleshooting a misconfiguration of a computer system based on configurations of other computer systems
US7392295B2 (en) 2004-02-19 2008-06-24 Microsoft Corporation Method and system for collecting information from computer systems based on a trusted relationship
US7778422B2 (en) * 2004-02-27 2010-08-17 Microsoft Corporation Security associations for devices
US20050246529A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Isolated persistent identity storage for authentication of computing devies
US8769671B2 (en) * 2004-05-02 2014-07-01 Markmonitor Inc. Online fraud solution
US7913302B2 (en) * 2004-05-02 2011-03-22 Markmonitor, Inc. Advanced responses to online fraud
US7992204B2 (en) 2004-05-02 2011-08-02 Markmonitor, Inc. Enhanced responses to online fraud
US8041769B2 (en) * 2004-05-02 2011-10-18 Markmonitor Inc. Generating phish messages
US7870608B2 (en) * 2004-05-02 2011-01-11 Markmonitor, Inc. Early detection and monitoring of online fraud
US9203648B2 (en) 2004-05-02 2015-12-01 Thomson Reuters Global Resources Online fraud solution
US7457823B2 (en) 2004-05-02 2008-11-25 Markmonitor Inc. Methods and systems for analyzing data related to possible online fraud
US20070107053A1 (en) * 2004-05-02 2007-05-10 Markmonitor, Inc. Enhanced responses to online fraud
US9207932B2 (en) * 2004-05-27 2015-12-08 International Business Machines Corporation Uniform references
US8020210B2 (en) * 2004-06-09 2011-09-13 Verizon Patent And Licensing Inc. System and method for assessing risk to a collection of information resources
US8321545B2 (en) * 2004-07-15 2012-11-27 Symbol Technologies, Inc. Service oriented platform architecture for a wireless network
US7536372B2 (en) * 2004-07-26 2009-05-19 Charles River Analytics, Inc. Modeless user interface incorporating automatic updates for developing and using Bayesian belief networks
US7975266B2 (en) * 2004-07-30 2011-07-05 Sap Aktiengesellschaft Remote installation of computer resources
US20060025984A1 (en) * 2004-08-02 2006-02-02 Microsoft Corporation Automatic validation and calibration of transaction-based performance models
US7710587B2 (en) * 2004-10-18 2010-05-04 Microsoft Corporation Method and system for configuring an electronic device
US20060095963A1 (en) * 2004-10-29 2006-05-04 Simon Crosby Collaborative attack detection in networks
US20060098790A1 (en) * 2004-11-05 2006-05-11 Mendonca John J Automatically configuring remote monitoring of a provisionable resource
US7797698B2 (en) * 2004-11-17 2010-09-14 International Business Machines Corporation Method and apparatus for dynamic middleware assembly
US7895650B1 (en) * 2004-12-15 2011-02-22 Symantec Corporation File system based risk profile transfer
US7490073B1 (en) 2004-12-21 2009-02-10 Zenprise, Inc. Systems and methods for encoding knowledge for automated management of software application deployments
US7516206B2 (en) * 2005-01-28 2009-04-07 Cassatt Corporation Management of software images for computing nodes of a distributed computing system
US8387037B2 (en) * 2005-01-28 2013-02-26 Ca, Inc. Updating software images associated with a distributed computing system
US7685148B2 (en) * 2005-01-31 2010-03-23 Computer Associates Think, Inc. Automatically configuring a distributed computing system according to a hierarchical model
US7454427B2 (en) * 2005-01-31 2008-11-18 Cassatt Corporation Autonomic control of a distributed computing system using rule-based sensor definitions
US7571154B2 (en) * 2005-01-31 2009-08-04 Cassatt Corporation Autonomic control of a distributed computing system using an application matrix to control application deployment
US7478097B2 (en) * 2005-01-31 2009-01-13 Cassatt Corporation Application governor providing application-level autonomic control within a distributed computing system
US7680799B2 (en) * 2005-01-31 2010-03-16 Computer Associates Think, Inc. Autonomic control of a distributed computing system in accordance with a hierarchical model
KR100652399B1 (ko) * 2005-02-02 2006-12-01 삼성전자주식회사 하드디스크 드라이브의 디펙트 처리 방법, 이에 적합한하드디스크 드라이브 및 기록 매체
US7590653B2 (en) * 2005-03-02 2009-09-15 Cassatt Corporation Automated discovery and inventory of nodes within an autonomic distributed computing system
US20060206544A1 (en) * 2005-03-09 2006-09-14 Microsoft Corporation Automatic backup and restore system and method
US8307336B1 (en) * 2005-03-30 2012-11-06 Oracle America, Inc. Mechanism for enabling a set of output from a functional component to be presented on different types of clients
US8489728B2 (en) 2005-04-15 2013-07-16 Microsoft Corporation Model-based system monitoring
US7802144B2 (en) * 2005-04-15 2010-09-21 Microsoft Corporation Model-based system monitoring
US7797147B2 (en) 2005-04-15 2010-09-14 Microsoft Corporation Model-based system monitoring
US20060235664A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Model-based capacity planning
US7979530B1 (en) * 2005-04-27 2011-07-12 Juniper Networks, Inc. Inventory life cycle management for a computer network
US8549513B2 (en) 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US20070005320A1 (en) * 2005-06-29 2007-01-04 Microsoft Corporation Model-based configuration management
CA2613083A1 (en) * 2005-07-01 2007-01-11 Markmonitor Inc. Enhanced fraud monitoring systems
US9418040B2 (en) 2005-07-07 2016-08-16 Sciencelogic, Inc. Dynamically deployable self configuring distributed network management system
US7657871B2 (en) 2005-07-22 2010-02-02 Sbc Knowledge Ventures, L.P. Method and system of managing configuration profiles of a plurality of deployed network elements
US8484250B2 (en) * 2005-09-30 2013-07-09 Rockwell Automation Technologies, Inc. Data federation with industrial control systems
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US8079017B2 (en) * 2005-11-29 2011-12-13 Alcatel-Lucent Automated QS interface testing framework
US7856100B2 (en) * 2005-12-19 2010-12-21 Microsoft Corporation Privacy-preserving data aggregation using homomorphic encryption
US7890315B2 (en) * 2005-12-29 2011-02-15 Microsoft Corporation Performance engineering and the application life cycle
US20070156420A1 (en) * 2005-12-29 2007-07-05 Microsoft Corporation Performance modeling and the application life cycle
US20070157311A1 (en) * 2005-12-29 2007-07-05 Microsoft Corporation Security modeling and the application life cycle
US7818788B2 (en) * 2006-02-14 2010-10-19 Microsoft Corporation Web application security frame
US7712137B2 (en) * 2006-02-27 2010-05-04 Microsoft Corporation Configuring and organizing server security information
US20070234278A1 (en) * 2006-03-02 2007-10-04 Microsoft Corporation Managing source code in a model-based development environment
US20070220481A1 (en) * 2006-03-20 2007-09-20 Microsoft Corporation Limited source code regeneration based on model modification
US8635596B2 (en) * 2006-04-21 2014-01-21 Microsoft Corporation Model-based event processing
US20070282983A1 (en) * 2006-06-05 2007-12-06 Manoj Gujarathi System and Method for Information Handling System Management With a Directory Service Tool Box
US20070294364A1 (en) * 2006-06-15 2007-12-20 International Business Machines Corporation Management of composite software services
US7496893B2 (en) * 2006-06-15 2009-02-24 International Business Machines Corporation Method for no-demand composition and teardown of service infrastructure
US20070294302A1 (en) * 2006-06-19 2007-12-20 Cerner Innovation, Inc. Defining privileges in association with the automated configuration, implementation and/or maintenance of a healthcare information system
US7904899B2 (en) * 2006-06-20 2011-03-08 Intuit Inc. Third-party customization of a configuration file
EP1909173B1 (en) * 2006-10-06 2010-02-24 Hewlett-Packard Development Company, L.P. Management of data of settings in an operating system of a computer
US8108836B1 (en) * 2006-10-13 2012-01-31 Hewlett-Packard Development Company, L.P. System and method for defining software management
US8010565B2 (en) * 2006-10-16 2011-08-30 Dell Products L.P. Enterprise rack management method, apparatus and media
US7908659B2 (en) * 2006-11-10 2011-03-15 Microsoft Corporation Extensible framework for system security state reporting and remediation
US7925674B2 (en) * 2006-11-27 2011-04-12 Oracle International Corp. Management of a distributed database
CN101578583A (zh) * 2007-01-18 2009-11-11 三菱电机株式会社 应用程序设定终端、应用程序执行终端及设定信息管理服务器
US8655623B2 (en) * 2007-02-13 2014-02-18 International Business Machines Corporation Diagnostic system and method
US20080209435A1 (en) * 2007-02-23 2008-08-28 Microsoft Corporation Scalable workflow management system
US20080209194A1 (en) * 2007-02-26 2008-08-28 Dwita, Inc. Systems and methods for providing configuration change information on a per setting basis
US8671146B2 (en) * 2007-02-28 2014-03-11 Microsoft Corporation Presence aware notification for information technology management
US9703666B2 (en) 2007-02-28 2017-07-11 International Business Machines Corporation Method, apparatus and software for managing the generation of process events by a software process
US8024396B2 (en) * 2007-04-26 2011-09-20 Microsoft Corporation Distributed behavior controlled execution of modeled applications
US7921203B2 (en) * 2007-05-31 2011-04-05 International Business Machines Corporation Specifying associations among attributes of entities in
US8239505B2 (en) 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US7970892B2 (en) 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US8015546B2 (en) * 2007-08-03 2011-09-06 International Business Machines Corporation Rapidly assembling and deploying selected software solutions
US8230386B2 (en) 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US8635608B2 (en) * 2007-09-04 2014-01-21 Teradata Us, Inc. Software update system and method
US7926070B2 (en) * 2007-10-26 2011-04-12 Microsoft Corporation Performing requested commands for model-based applications
US8099720B2 (en) 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US8225308B2 (en) 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US8181151B2 (en) * 2007-10-26 2012-05-15 Microsoft Corporation Modeling and managing heterogeneous applications
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US20090112932A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Visualizing key performance indicators for model-based applications
CN101452386B (zh) 2007-11-28 2013-05-15 国际商业机器公司 使用正向推理链执行基于上下文模型的策略的方法及策略引擎
US8683436B2 (en) * 2007-12-19 2014-03-25 Sap Ag Timer patterns for process models
US8359217B2 (en) * 2008-01-11 2013-01-22 International Business Machines Corporation Method and apparatus for determining optimized resolutions for infrastructures
US8139064B2 (en) * 2008-01-11 2012-03-20 International Business Machines Corporation Method and apparatus for aligning an infrastructure to a template
US8447719B2 (en) * 2008-01-14 2013-05-21 Hewlett-Packard Development Company, L.P. Compilation of causal rules into continuations
US8180723B2 (en) * 2008-01-14 2012-05-15 Hewlett-Packard Development Company, L.P. Root cause analysis in a system having a plurality of inter-related elements
US8180718B2 (en) * 2008-01-14 2012-05-15 Hewlett-Packard Development Company, L.P. Engine for performing root cause and effect analysis
WO2009108943A2 (en) * 2008-02-29 2009-09-03 Doyenz Incorporated Automation for virtualized it environments
US7930163B2 (en) * 2008-04-30 2011-04-19 Netapp, Inc. Modeling a storage environment at various times
US8868400B2 (en) * 2008-04-30 2014-10-21 Netapp, Inc. Modeling storage environments
US8037173B2 (en) * 2008-05-30 2011-10-11 Schneider Electric USA, Inc. Message monitor, analyzer, recorder and viewer in a publisher-subscriber environment
US8191083B2 (en) * 2008-06-25 2012-05-29 Microsoft Corporation Executing state machine processing modules with an executive processing module
US20090323516A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Diagnosing network problems
US20090327465A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Distributed Configuration Orchestration for Network Client Management
US8510718B2 (en) * 2008-06-30 2013-08-13 Ubs Ag Platform verification portal
US8849987B2 (en) * 2008-07-29 2014-09-30 International Business Machines Corporation Automated discovery of a topology of a distributed computing environment
US8291378B2 (en) 2008-07-29 2012-10-16 International Business Machines Corporation Simplified deployment modeling
US8302093B2 (en) * 2008-08-28 2012-10-30 International Business Machines Corporation Automated deployment of defined topology in distributed computing environment
US8417658B2 (en) 2008-09-12 2013-04-09 International Business Machines Corporation Deployment pattern realization with models of computing environments
US8793652B2 (en) 2012-06-07 2014-07-29 International Business Machines Corporation Designing and cross-configuring software
US9280335B2 (en) 2010-09-30 2016-03-08 International Business Machines Corporation Semantically rich composable software image bundles
US10089854B2 (en) * 2008-09-24 2018-10-02 Iintegrate Systems Pty Ltd Alert generation system and method
US8739154B2 (en) * 2008-10-24 2014-05-27 Oracle International Corporation Method and system for implementing performance kits
US7996719B2 (en) * 2008-10-24 2011-08-09 Microsoft Corporation Expressing fault correlation constraints
US9251283B2 (en) * 2008-11-14 2016-02-02 Microsoft Technology Licensing, Llc Instrumenting a website with dynamically generated code
WO2010067703A1 (ja) * 2008-12-08 2010-06-17 日本電気株式会社 データ依存関係解析装置、情報処理装置、データ依存関係解析方法、及びプログラム
US20100229022A1 (en) * 2009-03-03 2010-09-09 Microsoft Corporation Common troubleshooting framework
US8490187B2 (en) 2009-03-20 2013-07-16 Microsoft Corporation Controlling malicious activity detection using behavioral models
RU2467379C2 (ru) * 2009-10-19 2012-11-20 Александр Николаевич Сафонов Способ децентрализации программы для эвм
EP2394219A4 (en) * 2009-11-19 2013-07-24 Sony Corp SYSTEM INTEGRITY AND EFFICIENCY CARE OF DATA PROCESSING EQUIPMENT
US20110154004A1 (en) * 2009-12-23 2011-06-23 genForma Corp Installing and Configuring Software and/or Hardware Components Using Metadata Representations of Component Interdependencies
JP2011170638A (ja) * 2010-02-18 2011-09-01 Ricoh Co Ltd プログラム管理システム、プログラム管理方法、クライアントおよびプログラム
US8595334B2 (en) * 2010-02-22 2013-11-26 Microsoft Corporation Incrementally managing distributed configuration data
US8823536B2 (en) * 2010-04-21 2014-09-02 Microsoft Corporation Automated recovery and escalation in complex distributed applications
US8880560B2 (en) * 2010-04-28 2014-11-04 Ca, Inc. Agile re-engineering of information systems
CN103038786A (zh) * 2010-06-21 2013-04-10 惠普发展公司,有限责任合伙企业 用于测试和证明客户计算机系统上的虚拟设备的系统
WO2011162744A1 (en) 2010-06-22 2011-12-29 Hewlett-Packard Development Company, L.P. Methods and systems for planning application deployment
WO2011162746A1 (en) 2010-06-22 2011-12-29 Hewlett-Packard Development Company, L.P. A method and system for determining a deployment of applications
US9092561B2 (en) * 2010-10-20 2015-07-28 Microsoft Technology Licensing, Llc Model checking for distributed application validation
JP5803935B2 (ja) 2010-11-26 2015-11-04 日本電気株式会社 可用性分析装置及び可用性分析方法
US8769494B2 (en) 2010-12-14 2014-07-01 Microsoft Corporation Globally sound and consistent configuration management for distributed datacenter components
US9128803B2 (en) * 2010-12-15 2015-09-08 Microsoft Technology Licensing, Llc Application model for implementing composite applications
US20120159517A1 (en) * 2010-12-20 2012-06-21 Microsoft Corporation Managing a model-based distributed application
US9286037B2 (en) * 2010-12-29 2016-03-15 Microsoft Technology Licensing, Llc Platform for distributed applications
JP2012155478A (ja) * 2011-01-25 2012-08-16 Canon Inc 画像形成装置、装置、画像形成装置の制御方法、およびプログラム
US20120265323A1 (en) * 2011-04-15 2012-10-18 Sentgeorge Timothy M Monitoring process control system
WO2012142353A1 (en) * 2011-04-15 2012-10-18 Abb Technology Ag Monitoring process control system
US8910182B2 (en) 2011-05-27 2014-12-09 Microsoft Corporation Managing and simplifying distributed applications
US8689055B2 (en) * 2011-07-28 2014-04-01 International Business Machines Corporation Detecting device impairment through statistical monitoring
RU2465635C1 (ru) * 2011-08-02 2012-10-27 Открытое акционерное общество "ОТИК-групп" Метод диагностирования программно-аппаратной среды для распределенных вычислений в многоядерных однокристальных системах при решении задач в реальном масштабе времени, с использованием адаптивных графов сети петри
JP5304972B1 (ja) 2011-08-30 2013-10-02 日本電気株式会社 情報処理装置、情報処理方法、及びプログラム
US8862941B2 (en) 2011-09-16 2014-10-14 Tripwire, Inc. Methods and apparatus for remediation execution
US20130073704A1 (en) * 2011-09-16 2013-03-21 Tripwire, Inc. Methods and apparatus for remediating policy test failures, including promoting changes for compliance review
US8819491B2 (en) 2011-09-16 2014-08-26 Tripwire, Inc. Methods and apparatus for remediation workflow
US9069958B2 (en) * 2011-09-28 2015-06-30 International Business Machines Corporation Creating and maintaining a security policy
US8918501B2 (en) * 2011-11-10 2014-12-23 Microsoft Corporation Pattern-based computational health and configuration monitoring
US8935375B2 (en) 2011-12-12 2015-01-13 Microsoft Corporation Increasing availability of stateful applications
US20130159528A1 (en) * 2011-12-15 2013-06-20 Microsoft Corporation Failover based application resource acquisition
RU2485576C1 (ru) * 2012-02-09 2013-06-20 Государственное казенное образовательное учреждение высшего профессионального образования Академия Федеральной службы охраны Российской Федерации (Академия ФСО России) Система управления жизненным циклом компьютерных систем на основе интегрированной модели
US20130332587A1 (en) * 2012-06-11 2013-12-12 International Business Machines Corporation Method and a system for on-boarding, administration and communication between cloud providers and tenants in a share-all multi-tenancy environment
JP2014032503A (ja) 2012-08-02 2014-02-20 International Business Maschines Corporation セキュリティを考慮したクローニング方法、システム、およびプログラム
EP2720146A1 (en) * 2012-10-11 2014-04-16 Thomson Licensing Distributed application life-cycle management
US9569274B2 (en) 2012-10-16 2017-02-14 Microsoft Technology Licensing, Llc Distributed application optimization using service groups
US9031975B2 (en) 2012-11-06 2015-05-12 Rockwell Automation Technologies, Inc. Content management
US9135000B2 (en) 2012-11-06 2015-09-15 Rockwell Automation Technologies, Inc. Runtime process diagnostics
US8898634B2 (en) 2012-11-06 2014-11-25 Rockwell Automation Technologies, Inc. Customized object design for industrial automation application
US9355193B2 (en) 2012-11-06 2016-05-31 Rockwell Automation Technologies, Inc. Object design data model
US8887134B2 (en) * 2012-11-06 2014-11-11 Rockwell Automation Technologies, Inc. Customized object design for industrial automation application
US9563861B2 (en) 2012-11-06 2017-02-07 Rockwell Automation Technologies, Inc. Integration of workflow and library modules
JPWO2014097598A1 (ja) 2012-12-17 2017-01-12 日本電気株式会社 リスク分析を行う情報処理装置及びリスク分析方法
US9077613B2 (en) * 2013-04-10 2015-07-07 International Business Machines Corporation System and method for graph based K-redundant resiliency for IT cloud
US9559902B2 (en) * 2013-06-02 2017-01-31 Microsoft Technology Licensing, Llc Distributed state model for system configuration synchronization
JP2015007837A (ja) * 2013-06-24 2015-01-15 株式会社オプティム ユーザ端末、セキュリティセット選択方法、ユーザ端末用プログラム
IN2013CH03925A (ja) * 2013-09-02 2015-09-11 Appnomic Systems Private Ltd
US10013655B1 (en) * 2014-03-11 2018-07-03 Applied Underwriters, Inc. Artificial intelligence expert system for anomaly detection
CN106471465B (zh) * 2014-04-09 2019-10-22 康维达无线有限责任公司 服务启用器功能
EP3001869A1 (en) 2014-04-15 2016-04-06 Siemens Aktiengesellschaft Method and tool for engineering software architectures with its various software artifacts of complex cyber-physical systems of different technical domains
US20160274999A1 (en) * 2014-05-20 2016-09-22 Samsung Electronics Co., Ltd. Distributed test and profiler framework
CN105335207B (zh) * 2014-05-29 2019-04-12 国际商业机器公司 用于管理虚拟机实例的方法和装置
CN104156236A (zh) * 2014-07-23 2014-11-19 小米科技有限责任公司 节省存储空间的方法和装置
CN104572189A (zh) * 2014-12-25 2015-04-29 深圳联友科技有限公司 一种快速部署多个应用程序的方法
US9618998B2 (en) 2015-06-10 2017-04-11 International Business Machines Corporation Identification of idle servers using power consumption
KR101757558B1 (ko) * 2015-12-16 2017-07-12 에스케이 주식회사 It 서비스 건전성 자동 진단 방법 및 시스템
US10360132B2 (en) * 2016-05-11 2019-07-23 Accenture Global Solutions Limited Method and system for improving operational efficiency of a target system
US10305750B1 (en) * 2016-07-29 2019-05-28 Juniper Networks, Inc. Methods and apparatus for centralized configuration management of heterogenous network devices through software-based node unification
US10313406B2 (en) * 2016-11-01 2019-06-04 Microsoft Technology Licensing, Llc Synthetic transaction to determine centroid for cloud hosting
US10469318B1 (en) 2016-12-22 2019-11-05 Nutanix, Inc. State tracking in distributed computing systems
US10361917B1 (en) * 2016-12-22 2019-07-23 Nutanix, Inc. State control in distributed computing systems
CN110447018B (zh) * 2017-03-23 2023-02-10 日本电气株式会社 操作管理服务器、开发操作支持系统及其方法以及存储其程序的非暂时性计算机可读介质
US10482000B2 (en) * 2017-04-24 2019-11-19 Microsoft Technology Licensing, Llc Machine learned decision guidance for alerts originating from monitoring systems
US10496153B2 (en) 2017-10-27 2019-12-03 EMC IP Holding Company LLC Method and system for binding chassis and components
US10360012B2 (en) 2017-11-09 2019-07-23 International Business Machines Corporation Dynamic selection of deployment configurations of software applications
US11075925B2 (en) 2018-01-31 2021-07-27 EMC IP Holding Company LLC System and method to enable component inventory and compliance in the platform
US10693722B2 (en) 2018-03-28 2020-06-23 Dell Products L.P. Agentless method to bring solution and cluster awareness into infrastructure and support management portals
US10514907B2 (en) * 2018-03-28 2019-12-24 EMC IP Holding Company LLC System and method for out-of-the-box solution-level management via logical architecture awareness
US10754708B2 (en) 2018-03-28 2020-08-25 EMC IP Holding Company LLC Orchestrator and console agnostic method to deploy infrastructure through self-describing deployment templates
US10795756B2 (en) 2018-04-24 2020-10-06 EMC IP Holding Company LLC System and method to predictively service and support the solution
US11086738B2 (en) 2018-04-24 2021-08-10 EMC IP Holding Company LLC System and method to automate solution level contextual support
US11599422B2 (en) 2018-10-16 2023-03-07 EMC IP Holding Company LLC System and method for device independent backup in distributed system
US10862761B2 (en) 2019-04-29 2020-12-08 EMC IP Holding Company LLC System and method for management of distributed systems
US11301557B2 (en) 2019-07-19 2022-04-12 Dell Products L.P. System and method for data processing device management
US11669334B2 (en) * 2019-11-08 2023-06-06 Google Llc Just-in-time containers
US11442745B1 (en) * 2019-12-19 2022-09-13 Wells Fargo Bank, N.A. Interconnection discovery for automated standards assay
CN111523860B (zh) * 2020-04-23 2023-05-23 北京思特奇信息技术股份有限公司 一种采用组件化管理农业产品生产过程的方法和系统
CN111913713B (zh) * 2020-06-10 2023-01-17 中国科学院软件研究所 一种基于服务调用追踪的异构服务集成方法
KR102443791B1 (ko) * 2020-11-19 2022-09-16 고려대학교 산학협력단 보안 시스템 설계 및 검증을 위한 모델 기반 보안 프레임워크
CN113094158A (zh) * 2021-03-15 2021-07-09 国政通科技有限公司 服务的驱动调用方法、调用装置、电子设备及存储介质
US11409505B1 (en) 2021-04-16 2022-08-09 27 Software U.S. Inc. Automated authoring of software solutions from a data model with related patterns
US11314489B1 (en) 2021-04-16 2022-04-26 27 Software U.S. Inc. Automated authoring of software solutions by first analyzing and resolving anomalies in a data model
US11693652B2 (en) 2021-04-16 2023-07-04 27 Software U.S. Inc. Automated authoring of software solutions from a data model

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004252975A (ja) * 2003-02-21 2004-09-09 Internatl Business Mach Corp <Ibm> 自己最適化のために観察されたリソース要件を使用するオートノミック・サービス・ルーティング
JP2006520027A (ja) * 2003-03-10 2006-08-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 作業負荷が変化する場合にコンピューティング・デプロイメントを管理するための方法および装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE146611T1 (de) 1990-05-04 1997-01-15 Ibm Maschinenarchitektur für skalaren verbundbefehlssatz
GB2304944A (en) * 1995-09-12 1997-03-26 Ibm Support for application programs in a distributed environment
US6012152A (en) * 1996-11-27 2000-01-04 Telefonaktiebolaget Lm Ericsson (Publ) Software fault management system
US5920873A (en) 1996-12-06 1999-07-06 International Business Machines Corporation Data management control system for file and database
US6085030A (en) 1997-05-02 2000-07-04 Novell, Inc. Network component server
US6219666B1 (en) 1998-07-13 2001-04-17 Oracle Corporation Autonomous transactions in a database system
US6067548A (en) 1998-07-16 2000-05-23 E Guanxi, Inc. Dynamic organization model and management computing system and method therefor
US6477572B1 (en) 1998-12-17 2002-11-05 International Business Machines Corporation Method for displaying a network topology for a task deployment service
EP1050813A3 (en) * 1999-05-06 2007-02-28 Sun Microsystems, Inc. Method and apparatus for implementing deployment descriptions in an enterprise environment
US6553387B1 (en) 1999-11-29 2003-04-22 Microsoft Corporation Logical volume configuration data management determines whether to expose the logical volume on-line, off-line request based on comparison of volume epoch numbers on each extents of the volume identifiers
US6684231B1 (en) 1999-11-29 2004-01-27 Microsoft Corporation Migration of friendly volumes
US6965889B2 (en) 2000-05-09 2005-11-15 Fair Isaac Corporation Approach for generating rules
CN1300677C (zh) * 2000-06-22 2007-02-14 微软公司 分布式计算服务平台
US7113988B2 (en) 2000-06-29 2006-09-26 International Business Machines Corporation Proactive on-line diagnostics in a manageable network
US6598060B2 (en) 2000-12-27 2003-07-22 Microsoft Corporation Method and system for creating and maintaining version-specific properties in a distributed environment
US20020147726A1 (en) 2001-01-09 2002-10-10 Partnercommunity, Inc. Creating, distributing and enforcing relational and business rules at front-end application
US20020133535A1 (en) 2001-03-14 2002-09-19 Microsoft Corporation Identity-centric data access
US6985958B2 (en) 2001-03-14 2006-01-10 Microsoft Corporation Messaging infrastructure for identity-centric data access
US7559059B2 (en) 2001-09-21 2009-07-07 Bea Systems, Inc. Method and apparatus for smart directories for application deployment
US7603469B2 (en) 2002-01-15 2009-10-13 International Business Machines Corporation Provisioning aggregated services in a distributed computing environment
US7487509B2 (en) * 2002-08-08 2009-02-03 Sun Microsystems, Inc. System and method for providing multiple embodiments of abstract software modules in peer-to-peer network environments
US20040111638A1 (en) 2002-12-09 2004-06-10 Satyendra Yadav Rule-based network survivability framework
US8099425B2 (en) * 2003-03-14 2012-01-17 Computer Associates Think, Inc. Relational model for management information in network devices
WO2005022416A1 (en) * 2003-08-21 2005-03-10 The Trustees Of Columbia University In The City Of New York Methods and systems for autonomously managing a network
US7409676B2 (en) * 2003-10-20 2008-08-05 International Business Machines Corporation Systems, methods and computer programs for determining dependencies between logical components in a data processing system or network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004252975A (ja) * 2003-02-21 2004-09-09 Internatl Business Mach Corp <Ibm> 自己最適化のために観察されたリソース要件を使用するオートノミック・サービス・ルーティング
JP2006520027A (ja) * 2003-03-10 2006-08-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 作業負荷が変化する場合にコンピューティング・デプロイメントを管理するための方法および装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013183249A1 (ja) 2012-06-04 2013-12-12 日本電気株式会社 配備装置、及び、配備方法

Also Published As

Publication number Publication date
WO2005045559A2 (en) 2005-05-19
EP1673694A4 (en) 2010-04-28
MXPA05007141A (es) 2005-08-26
RU2375744C2 (ru) 2009-12-10
RU2005116258A (ru) 2005-12-20
WO2005045559A3 (en) 2006-02-09
JP2007509404A (ja) 2007-04-12
US7103874B2 (en) 2006-09-05
CN1836208A (zh) 2006-09-20
BRPI0406418A (pt) 2005-10-11
KR101201008B1 (ko) 2012-11-13
KR20070012178A (ko) 2007-01-25
EP1673694A2 (en) 2006-06-28
US20050091227A1 (en) 2005-04-28
CN1836208B (zh) 2010-09-08

Similar Documents

Publication Publication Date Title
JP4809772B2 (ja) コンピュータシステムおよび分散アプリケーションのモデルに基づく管理
JP5030592B2 (ja) 監視ルールのスケーラブル(scalable)な同期処理および非同期処理
US7765540B2 (en) Use of attribution to describe management information
JP5280587B2 (ja) ディペンダビリティ維持システム、変化対応サイクル実行装置、障害対応サイクル実行装置、ディペンダビリティ維持システムの制御方法、制御プログラムおよびそれを記録したコンピュータ読み取り可能な記録媒体
US8326910B2 (en) Programmatic validation in an information technology environment
US8990810B2 (en) Projecting an effect, using a pairing construct, of execution of a proposed action on a computing environment
US7676560B2 (en) Using URI&#39;s to identify multiple instances with a common schema
US11374807B2 (en) Handling dynamic command execution in hybrid cloud environments
US20130232245A1 (en) Automation for virtualized it environments
US20090307763A1 (en) Automated Test Management System and Method
US9230209B2 (en) Scope and distribution of knowledge in an autonomic computing system
Ahuja et al. Autonomic Computing: An emerging perspective and issues
US10462234B2 (en) Application resilience system and method thereof for applications deployed on platform
EP3993353A2 (en) System and method for managing clusters in an edge network
Collet et al. Issues and scenarios for self-managing grid middleware
CA2501729C (en) Model-based management of computer systems and distributed applications
Eyers et al. Configuring large‐scale storage using a middleware with machine learning
Scriven et al. Resource evaluation and node monitoring in service oriented ad-hoc grids
CN116610419A (zh) 自定义资源的管理方法及装置、非易失性存储介质
Choi Oracle Enterprise Manager Concepts, 10g Release 2 (10.2) B16241-01

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101015

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110506

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110513

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110701

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110812

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110819

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140826

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4809772

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees