JP5068313B2 - サービス・インフラストラクチャのオン・デマンド合成及び分解のための方法及び装置 - Google Patents

サービス・インフラストラクチャのオン・デマンド合成及び分解のための方法及び装置 Download PDF

Info

Publication number
JP5068313B2
JP5068313B2 JP2009515480A JP2009515480A JP5068313B2 JP 5068313 B2 JP5068313 B2 JP 5068313B2 JP 2009515480 A JP2009515480 A JP 2009515480A JP 2009515480 A JP2009515480 A JP 2009515480A JP 5068313 B2 JP5068313 B2 JP 5068313B2
Authority
JP
Japan
Prior art keywords
service
active
component
state
active object
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
JP2009515480A
Other languages
English (en)
Other versions
JP2009540469A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009540469A publication Critical patent/JP2009540469A/ja
Application granted granted Critical
Publication of JP5068313B2 publication Critical patent/JP5068313B2/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/60Software deployment
    • G06F8/61Installation
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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

本発明は、ネットワーク化コンピュータ・システムに係り、さらに詳細に説明すれば、ネットワーク化コンピュータ環境内のソフトウェア及びシステム管理に係る。
コンピューティング・システムのクラスタ、データ・センタ及びグリッド・システムのような分散環境は、多数の資源及びサービス・コンポーネントを管理することを必要とする。かかるシステムのユーザに対し提供される典型的なエンド・サービスは、当該ユーザにとって関心の高いエンド・サービスを連携して提供する、複数の資源及びサービス・コンポーネントの合成(composition)を必要とする。かかる複数のコンポーネントの合成、すなわち複合サービス(composite services)は、これらのコンポーネントが整合的な態様でインタフェースするように、これらのコンポーネントの注意深い構成(configuration)及び配備(deployment)を必要とする。その結果、かかる複合サービスが配備され、初期化されると、ユーザによって提供されたワークロードを処理し、コンポーネント・レベルの障害を優雅に処理し、当該ワークロードの変動を処理しつつ堅固なサービスを提供することができる。
コンポーネントからかかる合成を実現することは、多数の異種の資源及びサービス・コンポーネントの調整(orchestration)を必要とする。種々のタスクを手動的に管理することは、面倒であるばかりか、間違いを起こしやすい。資源が複数の管理可能ドメインに属する場合、複雑さの度合いが増加する。グリッド・ベース・システムは、複数の管理可能ドメインにわたる資源共有を促進することができるという利点があるが、システム管理者の観点からすると、グリッド・ベース・システムは、管理するのが遙かに困難である。その1つの理由は、最新のシステム管理技術が、ミドルウェア及びグリッド技術の進歩に対応していないということにある。単一又はクラスタ・ベース・システムの管理については、一定の成果が得られた。しかし、かかるシステムについてさえ、システム管理者は、既存のインフラストラクチャ上に新しいサービスを構成し且つ配備するか、又は既存のサービス及びソフトウェア・スタックのライフサイクルを管理する場合に、遙かに高いレベルの複雑さに直面する。複雑なアプリケーション環境、例えば、複数のビジネス・プロセスによって形成されたワークフローの調整を必要とする環境では、状況は遙かに悪くなる。このような場合、配備及びライフサイクル管理のソリューションは、関係する複数の層の総合的ビューを取る必要があるが、現在のシステム管理技術は、かかるソリューションを構築するのに必要な手段を提供しない。
ソフトウェア・コンポーネントの構成及び配備用の伝統的な方法は、コンポーネントの要件に関するドメイン・エキスパートの知識、ミドルウェア及び基礎をなすインフラストラクチャの使用可能性、並びに全体的なIT環境に大きく依存する。システム管理者は、この背景的知識を使用して、先ず、既存のインフラストラクチャを構成し、次に、新しいコンポーネントを成功裡に配備することができるように、当該新しいコンポーネント用の構成及び配備ステップをカスタマイズしなければならない。分散コンポーネントの場合には、かかるアプローチは、多大な時間を要し、間違いを起こしやすく、しかも大規模なインストールに拡張できないことがある。さらに、かかるアプローチは、システム管理者が配備ワークフロー内の重要な要素であるために、自動化には適していない。
システムの大きなインストールを構成し且つ管理する能力は、情報技術コミュニティにおける活発な研究領域であった。ローカル構成(LCFG)は、現用中のスクリプト・ベース・システムであって、中央データベース内に格納された構成情報に基づいて機械を動的に構成するものである(Anderson, P., "Towards a High-Level MachineConfiguration," LISA, 1994)。この情報は、システム上に構成すべきネットワーク、システム及びサービスに関係する。Smart Framework for Object Groups(SmartFrog)は、分散アプリケーションの構成及び配備を指定するための公知のシステムである(Goldsack, P, Guijarro, J, Mecheneau, G, Murray, P, Toft, P,"SmartFrog: Configuration and Automatic Iginition of DistributedApplications," HP OVUA 2003)。SmartFrog は、アプリケーションの構成及びアプリケーション間の依存関係を指定するための言語を提供する。SmartFrog は、分散システム上でアプリケーションを処理及び配備するためのインフラストラクチャを提供する。GridWeaver プロジェクトは、大規模システムの構成管理を行うために LCFG 及び SmartFrog 技術を組み合わせるという概念を調査中である。Organization for the Advancement of Structured Information Standards(OASIS)は、ウェブ・サービスを利用して、分散資源を管理することを調査中である。グリッド・フォーラムは、Configuration Description, Deployment, and Lifecycle Management(CDDLM)活動の一部として、仕様言語を標準化することを試行中である。
幾つかの技術は、サービスを提供することに関与中の、個別的な Java 2 Platform Enterprise Edition(J2EE)コンポーネントをモニタするための手段を提供する(「Java」は、サン・マイクロシステムズ社の登録商標)。この技術は、システム管理者が性能をモニタし、障害を識別し、性能ボトルネックを検査することを支援する。
Anderson, P., "Towards a High-Level MachineConfiguration," LISA, 1994 Goldsack, P, Guijarro, J, Mecheneau, G, Murray, P, Toft, P,"SmartFrog: Configuration and Automatic Iginition of DistributedApplications," HP OVUA 2003
従って、当分野では、前述の従来技術に関連する問題を解決することが要請されている。
実施形態は、一の複合サービスを作成するためのコンピュータ実装方法、装置及びコンピュータ使用可能なプログラム・コードを提供する。前記複合サービス用の一の要求を受け取ることに応答して、サービスを管理するために使用される1セットのアクティブ・オブジェクトを利用して依存関係(dependency)を識別することにより、識別された依存関係を形成する。前記識別された依存関係は、前記複合サービスの要件を指定する。前記複合サービスは、複数のコンポーネントを有する。前記識別された依存関係を使用して前記複合サービス用のコンポーネントを識別することにより、識別されたコンポーネントを形成する。前記識別されたコンポーネントを使用して、前記複合サービスを作成する。
本明細書で使用する「物理資源」又は「資源」という用語は、コンピュータ・サーバ、コンピュータ・ネットワーク、ファイル・システム等のハードウェア資源を意味する。かかる資源は、オン又はオフに切り替えたり、共有されるか又は専用モードで使用したり、物理的位置を有することができる。「コンピュータ・サービス」という用語は、1つ以上の資源上で動作するコンピュータ・プログラムによって提供されるサービスを意味する。
実施形態は、ソフトウェア・コンポーネント及びサービスの管理に対するソリューションを提供する。図1及び図2は、実施形態を実装することができるデータ処理環境を例示する。図1及び図2は、単に例示的なものであって、異なる実施形態を実装することができる環境に関する如何なる制限をも意味するものではない。図示の環境に対し多くの修正を施すことができる。
図1は、実施形態を実装することができるデータ処理システムのネットワーク図である。ネットワーク・データ処理システム100は、コンピュータのネットワークであって、その内部で実施形態を実装することができる。ネットワーク・データ処理システム100内に含まれるネットワーク102は、ネットワーク・データ処理システム100内で相互に接続される、種々の装置及びコンピュータの間の通信リンクを提供するために使用される媒体である。ネットワーク102は、有線、無線通信リンク又は光ファイバ・ケーブルのような接続を含むことができる。
サーバ104及び106は、ストレージ・ユニット108と共にネットワーク102に接続される。また、クライアント110〜114が、ネットワーク102に接続される。クライアント110〜114は、パーソナル・コンピュータ又はネットワーク・コンピュータとすることができる。サーバ104は、ブート・ファイル、オペレーティングシステム・イメージ及びクライアント110〜114に対するアプリケーションのようなデータを提供する。この例では、クライアント110〜114は、サーバ104に対するクライアントである。ネットワーク・データ処理システム100は、図示されていない追加のサーバ、クライアント及び他の装置を含むことができる。
ネットワーク・データ処理システム100は、ネットワーク102を有するインターネットである。周知のように、インターネットは、ネットワーク及びゲートウェイの世界的な集合を表し、互いに通信するために伝送制御プロトコル/インターネット・プロトコル(TCP/IP)スイートを使用する。インターネットの中心は、データ及びメッセージを経路指定する、何千もの商用、政府用、教育用及び他のコンピュータ・システムから成る、主要ノード又はホスト・コンピュータ間の高速データ通信回線のバックボーンである。もちろん、ネットワーク・データ処理システム100は、イントラネット、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)等の、多くの異なるタイプのネットワークとしても実装することができる。図1は、1例として図示されたものであって、異なる実施形態のアーキテクチャ上の制限を示すことを意図するものではない。
図2は、実施形態を実装することができるデータ処理システムのブロック図を示す。データ処理システム200は、図1のサーバ104又はクライアント110のようなコンピュータの1例であり、その内部には実施形態用のプロセスを実装するコンピュータ使用可能なプログラム・コードすなわち命令が存在する。
データ処理システム200は、ノース・ブリッジ兼メモリ・コントローラ・ハブ(NB/MCH)202及びサウスブリッジ兼入出力コントローラ・ハブ(SB/ICH)204を含む、ハブ・アーキテクチャを使用する。処理ユニット206、主メモリ208及びグラフィックス・プロセッサ210は、NB/MCH202に結合される。グラフィックス・プロセッサ218は、例えば、アクセラレィテッド・グラフィックス・ポート(AGP)を介して、NB/MCH202に結合することができる。
ローカル・エリア・ネットワーク(LAN)アダプタ212は、SB/ICH204に結合される。オーディオ・アダプタ216、キーボード及びマウス・アダプタ220、モデム222、読み取り専用メモリ(ROM)224、ユニバーサル・シリアル・バス(USB)ポート及び他の通信ポート232、PCI/PCIe装置234は、バス238を通して、SB/ICH204に結合される。ハード・ディスク・ドライブ(HDD)226及びCD−ROMドライブ230は、バス240を通して、SB/ICH204に結合される。PCI/PCIe装置234は、例えば、イーサネット(登録商標)・アダプタ、アドイン・カード、ノート型コンピュータ用のPCカードを含むことができる。PCIはカード・バス・コントローラを使用するが、PCIeはこれを使用しない。ROM224は、例えば、フラッシュ型の基本入出力システム(BIOS)とすることができる。HDD226及びCD−ROMドライブ230は、例えば、統合ドライブ・エレクトロニクス(IDE)又はシリアル・アドバンスト・テクノロジ・アタッチメント(SATA)インタフェースを使用することができる。SIO(Super I/O)装置236は、SB/ICH204に結合することができる。
オペレーティング・システムは、処理ユニット206上で動作し、データ処理システム200内の種々のコンポーネントを統制及び制御する。オペレーティング・システムは、Microsoft Windows XP(「Microsoft」及び「Windows」は、マイクロソフト社の登録商標)のような市販のオペレーティング・システムとすることができる。Java プログラミング・システムのようなオブジェクト指向のプログラミング・システムは、オペレーティング・システムと共に動作することができ、データ処理システム200上で実行中の Java プログラム又はアプリケーションからオペレーティング・システムへの呼び出しを提供する。
オペレーティング・システム、オブジェクト指向のプログラミング・システム及びアプリケーション又はプログラム用の命令は、HDD226のようなストレージ装置に置かれ、処理ユニット206による実行のために主メモリ208にロードすることができる。実施形態のプロセスは、例えば、主メモリ208、ROM224のようなメモリ内、又は1つ以上の周辺装置内に置かれたコンピュータ実装命令を使用する、処理ユニット206によって実行することができる。
図1及び図2のハードウェアは、実装に応じて変わることがある。図1及び図2に示すハードウェアに加えて、又はそのハードウェアに代えて、フラッシュ・メモリ、それと同等の不揮発性メモリ、光ディスク・ドライブ等の、他の内部ハードウェア又は周辺装置を使用することができる。また、実施形態のプロセスは、多重プロセッサ・データ処理システムにも適用することができる。
幾つかの例では、データ処理システム200は、オペレーティング・システムのファイル及び/又はユーザ生成データを格納するための不揮発性メモリ又はフラッシュ・メモリで構成される、パーソナル・デジタル・アシスタント(PDA)とすることができる。バス・システムは、システム・バス、I/Oバス及びPCIバスのような、1つ以上のバスから構成することができる。もちろん、このバス・システムは、異なるコンポーネント又は装置の間でデータを転送するための、任意のタイプの通信ファブリック又はアーキテクチャを使用して実装することができる。通信ユニットは、モデム又はネットワーク・アダプタのような、データを送信及び受信するために使用される1つ以上の装置を含むことができる。メモリは、例えば、主メモリ208又はNB/MCH202内にあるキャッシュとすることができる。処理ユニットは、1つ以上のプロセッサ又はCPUを含むことができる。図1及び図2に示した例及び前述の例は、アーキテクチャ上の制限を意味するものではない。例えば、データ処理システム200は、PDAの形式を取ることに加えて、タブレット・コンピュータ、ラップトップ・コンピュータ又は電話機の形式を取ることができる。
実施形態は、サービス・インフラストラクチャのオン・デマンド合成及び分解(teardown)のためのコンピュータ実装方法、装置及びコンピュータ使用可能なプログラム・コードを提供する。本方法は、クラスタ環境、データ・センタ環境及び共有グリッド環境のような分散環境上で、ソフトウェア・サービス及び資源コンポーネントを構成し且つ配備する。その結果、コンポーネントが互いに連携して、期待される態様で振る舞う一の複合サービスを提供する。自動管理及び制御は、コンポーネント・レベル及び合成フェデレーテッド・レベルで行われる。
一のソフトウェア・サービスは、ローカル及び/又は遠隔コンピュータ・ネットワーク上で動作するプログラム又はプログラムの集合によって提供されるサービスであって、一のサービス要求に対する部分的又は完全なソリューションを提供するが、要求元が当該サービスに関連する任意の管理タスク(例えば、構成、配備及びライフサイクル管理タスク)を実行することを必要としない。ソフトウェア・サービスの幾つかの例は、給与計算サービス、顧客関係サービス、サプライチェーン管理サービス、検索エンジン・サービス、電子メール・サービス、認証サービス、メッセージ・サービス、WebSphere(登録商標)アプリケーション・サーバによって提供されるような汎用アプリケーション管理サービス、データベース・サービス、ネットワーク接続サービス等を含む。
ソフトウェア・サービス管理は、サービス依存関係の分析、資源及び配備されるサービスの計画及びスケジューリング、構成管理、配備管理及び配備後のライフサイクル管理を含む。これらの管理機能は、それら自体がソフトウェア・サービスである。実施形態は、ユーザからのサービス要求に応答して、ソフトウェア・サービスの必要なインストール、構成及び配備が系統的に且つ制御された態様で実行されるように、これらの管理サービスを提供する。さらに、実施形態は、配備されたサービスが現に要求されたワークロード及び/又は期待される将来のワークロードによって望まれるレベルで実行され、そして当該配備されたサービスが必要とされないか又は保守が必要となる場合には、当該配備されたサービスがオフライン化されるか又は終了されるように、当該配備されたサービスを管理する。
実施形態が提供する管理サービスは、配備されたサービスを一の所望の状態に維持し且つそのサービス状態が当該所望の状態から逸脱する場合は、修正アクションを取る。実施形態内の管理サービスは、特定のサービスに関係する一のアラートに応答して、分析を自動的にトリガすることにより、当該アラートの原因を決定し、一の代替資源又はサポーティング・サービスを使用する必要があるか否かを決定し、代替資源及び/又はサービスを使用して管理されるサービス(以下「管理対象サービス」とも称する)を再配備する。これらの管理サービスは、拡張可能であり、本質的に自律型であり、複数のプラットフォーム用のサービスを管理することができる。
図3は、実施形態に従った、構成及び配備用のアクティブ・リポジトリを使用する、合成ベースのサービス管理インフラストラクチャ300を示す。この合成ベースのサービス管理インフラストラクチャ300では、新しいタイプのサービス要求302及び現にサポートされる要求タイプのサービス要求304は、サービス・インフラストラクチャ・マネージャ・インタフェース306に到着する。一のサービス要求は、(i)エンド・ユーザ、(ii)当該システム内の他のサービス、又は(iii)ネットワーク内のどこかにある他のサービスの何れかからのサービスの要求である。当該要求されたサービスは、1つ以上のソフトウェア・サービス及び当該システムによってサポートされる物理資源を使用して、当該システムが提供することができるサービスである。
一の要求は、完了前に複数のソフトウェア・サービスによって処理することが可能であり、そして全てのかかるサービスは、実行時における構成、配備及び管理により使用可能にされなければならないことに留意されたい。一のソフトウェア・サービスは、当該システムによってサポートされることがあるが、当該ソフトウェア・サービスは、常に構成され且つ配備されるとは限らない。たとえ、当該ソフトウェア・サービスが構成され且つ配備されるとしても、当該ソフトウェア・サービスは、所望の性能及び/又は提供すべきサービスの態様の観点から、一のサービス要求の要件を満たすように構成されないことがある。例えば、一の要求は、セキュア又は専用サービス提供モードで一のサービスを提供することを求めることがある。
新しいタイプのサービス要求302は、当該システム内で現に構成され且つ配備されていない、ソフトウェア・サービスの要求から成る。現にサポートされる要求タイプのサービス要求304は、当該システム内で既に構成され且つ配備されたサービスを要求する要求である。新しいタイプのサービス要求302又は現にサポートされる要求タイプのサービス要求304は、エンド・ポイント資源314上で動作するソフトウェア・サービスによってサービスされる。サービス・インフラストラクチャ・マネージャ・インタフェース306におけるこれらの要求の処理は、サービス要求元に対し透過的に行われる。
管理者は、管理者インタフェース308を使用して、資源状態を構成し又は再構成するためのポリシを設定したり、デフォルト設定値を変更指定することによりソフトウェア・サービスを構成し且つ配備するなどのアクションや、これと同様の動作を実行するために、当該システムと対話することができる。管理者によって発行されるコマンドは、管理者インタフェース308を介して、インフラストラクチャ・マネージャ・インタフェース306に送られる。バック・エンドでは、サービス・インフラストラクチャ・マネージャ・インタフェース306は、調整兼管理サービス310及びアクティブ・リポジトリ312と対話する。アクティブ・リポジトリ312は、アクティブ・オブジェクト及びアクティブ・テンプレートから成る。アクティブ・オブジェクトは、エンド・ポイント管理インタフェース316を介して、エンド・ポイント資源314と対話するか、又はエンド・ポイント資源上で動作するソフトウェア・サービスと対話する。また、調整兼管理サービス310は、アクティブ・リポジトリ312と対話する。前述のように、要求は、エンド・ポイント資源314において実際に処理される。
図4は、実施形態に従った、アクティブ・リポジトリ402のコンポーネントを示す。アクティブ・リポジトリ402は、図3のアクティブ・リポジトリ312のようなアクティブ・リポジトリとすることができる。前述のように、アクティブ・リポジトリ402は、アクティブ・テンプレート404及びアクティブ・オブジェクト406から成る。一のアクティブ・テンプレートは、一のアクティブ・オブジェクト用の一のテンプレートである。一のアクティブ・オブジェクトは、使用可能な資源及び他の管理対象サービス・インスタンスを使用して、インスタンス化された又はインスタンス化すべき一のサービス・インスタンス(例えば、管理対象サービス・コンポーネント408のうちの1つ)を管理するために使用される一の管理オブジェクトである。当該システム内の各物理資源及びサービス・コンポーネントは、アクティブ・リポジトリ402内に一の代表的なアクティブ・オブジェクトを有する。当該アクティブ・オブジェクトは、その資源又はそのサービスを管理する。資源及びサービス、すなわちサポーティング資源及びサポーティング・サービスは、一の複合サービスを構築するためのコンポーネントと呼ばれる。管理対象サービスの各タイプごとに、アクティブ・リポジトリ402の一のアクティブ・テンプレート404内に一のアクティブ・テンプレートが存在する。
また、一のサービスの一の新しいインスタンスがインスタンス化される場合は常に、インスタンス化されているサービスのタイプを表す、アクティブ・テンプレート404内の一のアクティブ・テンプレートからの一の新しいアクティブ・オブジェクトが、アクティブ・オブジェクト406内でインスタンス化される。しかし、アクティブ・テンプレート404内の全てのアクティブ・テンプレートが、アクティブ・オブジェクト406内でインスタンス化された一のアクティブ・オブジェクトを常に有するとは限らない。
新しいアクティブ・オブジェクトは、管理されている物理資源及びこれらの物理資源を使用して合成された現在の1セットのサービスに基づいて、アクティブ・オブジェクト406内でインスタンス化される。資源は、サービスを実装するために必要とされるコンポーネントである。例えば、一の資源は、一の物理的コンピューティング・サーバ、一のアプリケーション・サーバ又は一のウェブ・サーバとすることができる。一のサービスは、一の論理的コンポーネントによって提供される一の機能である。例えば、一のコンピューティング・サービスが、計算機能を提供することができるのに対し、一のデータベース・サービスは、一のストレージ機能を提供することができる。資源は、完全なハードウェア資源、ソフトウェア資源又はハードウェア及びソフトウェアの組み合わせとすることができる。
新しいサービスが既存のサービス及び/又は物理資源上で合成され且つインスタンス化される場合、アクティブ・オブジェクト406内で新しいアクティブ・オブジェクトをインスタンス化することができる。同様に、一の複合サービスがもはや必要とされない場合には、当該複合サービス及び当該複合サービスを管理するために使用されたアクティブ・オブジェクトの両方が終了される。終了されるアクティブ・オブジェクトは、ガーベジ・コレクションの対象となる。また、終了中のサービスをサポートし且つ合成するために使用されたコンポーネント・サービス又は資源に対応するアクティブ・オブジェクト406内のアクティブ・オブジェクトは、それらの全てがもはや当該複合サービスをサポートしていないという事実を反映するように更新される。一のコンポーネントがもはや必要とされない場合、アクティブ・オブジェクト406内の対応するアクティブ・オブジェクトが破棄され且つガーベジ・コレクションの対象となる。
アクティブ・テンプレート404は、それらの範囲が変わるか、又は対応するアクティブ・オブジェクトによって制御される環境が固定される際に、更新されるか、さもなければ展開される。また、新しいタイプの資源又はサービスが管理対象環境内に導入される場合は、新しいアクティブ・テンプレートがアクティブ・テンプレート404内に導入される。例えば、WebSphere 6.0 が Enterprise JavaBeans(EJB)コンテナ・サービスとして当該システム内に導入される場合、一の新しいテンプレートがアクティブ・テンプレート404内に導入される。アクティブ・テンプレート404内に WebSphere 5.x 用の一のアクティブ・テンプレートが存在していたとしても、このことが行われる。なぜなら、WebSphere 6.0 の管理は、WebSphere 5.x コンテナの管理とは著しく相違しているからである。このアクティブ・テンプレートは、提供中のサービス及び依存関係の要件に関する情報を有するとともに、1つ以上のプラットフォーム用の構成及び配備情報を有する。
WebSphere 6.01 がサポートされる場合、新しいテンプレートは導入されないが、その相違に対応するように既存のテンプレートが更新される。WebSphere 6.0 コンテナ用のテンプレートへの更新が適用される理由は、管理上の観点からすると、2つのリリースされたバージョンの相違が小さいためである。このテンプレートから派生したアクティブ・オブジェクトは、WebSphere 6.01 コンテナを管理するとともに、WebSphere 6.0 コンテナをも管理することができる。同様に、当初は WebSphere 6.0 を Linux(登録商標)プラットフォーム上にのみ配備するのであれば、WebSphere 6.0 用のテンプレートは、Linux プラットフォーム上のコンテナのみを管理するための情報を有する。その後、WebSphere 6.0 を Windowsプラットフォーム上に配備し且つサポートするのであれば、WebSphere 6.0 用のテンプレートを更新することにより、この能力を追加しなければならない。これは、テンプレートの範囲を変更する1例である。
新しいサービス・コンポーネントを配備し且つイネーブルする場合、一のアクティブ・オブジェクトの形態を有する新しいサービス・インスタンス・オブジェクトが、アクティブ・リポジトリ402内でインスタンス化される。このアクティブ・オブジェクトは、当該システム内で合成され、構成され且つ配備される実際のサービス・インスタンスを管理する。成功裡の配備及び機能のためには、一のサービス・インスタンスは、他のサービス及び資源インスタンスからのサポートを必要とすることがある。当該必要とされるサポートは、当該サービス・インスタンスの依存関係及びアクティブ・リポジトリ402内の対応するアクティブ・オブジェクトのための依存関係要件と呼ばれる。
アクティブ・リポジトリ402のアクティブ・オブジェクト406内にある各アクティブ・オブジェクトは、一の所望の状態を達成することによりコンポーネント特有のサービスを提供すべく、一の特定の資源又はサービス・コンポーネントを管理するようにプログラムされる。一の所望の状態は、当該アクティブ・オブジェクトによって管理される実際のサービス・インスタンスから、一の所望の結果又は振る舞いを達成するのに必要とされる状態である。アクティブ・オブジェクト406内の各アクティブ・オブジェクトは、これが管理責任を有する、管理対象資源又はサービス・コンポーネントの現在の状態及び所望の状態を知っている。当該所望の状態は、当該システム内のシステム管理者、ポリシ・マネージャ又は他のオブジェクトによって影響を受けることがある。もし、一のアクティブ・オブジェクトが満たされていない依存関係要件を有していれば、当該アクティブ・オブジェクトの現在の状態は、この依存関係が成功裡に満たされるまで、所望の状態に遷移しない。もし、そのサービス・インスタンスの観察された状態が所望の状態と一致しなければ、当該アクティブ・オブジェクトは、アクティブ・リポジトリ402内の追加処理用の1セットのアクションをトリガする。アクティブ・リポジトリ402は、ルックアップや、サービス/資源のブローカリングを実行したり、グループ・メンバーシップを作成したり、ポリシを設定する等の機能を提供する。
各アクティブ・オブジェクト406は、次のエンティティをモニタする。
1.提供されるサービスの状態、
2.サポーティング・サービスの状態、
3.サポートされるサービスの状態。
構成及び配備用の制御は、マイクロ・レベル及びマクロ・レベルの2つのレベルで実行される。マイクロ・レベル制御は、サービス・テンプレート及びサービス・インスタンス・オブジェクトのレベルで動作する。1つ以上の比較的高レベルのサービスをサポートするための複数のサービスを調整するのに必要な全体的な制御は、マクロ・レベル制御によって促進される。マクロ・レベル制御は、管理サービスが、フェデレーテッド・サービス構成及び配備のようなアクションを整合的に調整することを可能にする。マクロ・レベル制御は、マイクロ・レベル制御を活用するように、その上部に構築される。
依存関係の解決及びサポーティング・サービスの共有のような計画に関係する全ての論理は、アクティブ・オブジェクト406内にカプセル化される。この論理は、動的に更新可能であり、以前に存在しなかった機能を追加するためにプラグ・インを挿入することができる。
各アクティブ・オブジェクト406は、当該アクティブ・オブジェクトがアクティブ・リポジトリ402内で表すサービスを管理するための4つの機能コンポーネントを有する。これらの4つの管理機能は、モニタし、分析し、構成し、実行すること(MACE)を含むことができる。
これらの例において、モニタ機能は、次のエンティティをモニタする。
(1)管理対象サービスの状態、
(2)管理対象サービス・コンポーネントが依存するサービスの状態、すなわち管理対象サービス(存在する場合)に対しサポートを提供するサービス・コンポーネントの状態、
(3)管理対象コンポーネントによってサポートされるサービス・コンポーネントの状態、すなわち管理対象サービス・コンポーネント(存在する場合)に依存するサービス・コンポーネントの状態、
(4)管理入力。
分析機能は、一のアクティブ・オブジェクトに対し意思決定能力を提供する。分析機能は、次のイベントのうちの1つによってアクションをトリガする。
(1)管理対象オブジェクトの観察された状態及び所望の状態の不均衡、
(2)サポーティング・コンポーネントによって提供される機能及びサービス・レベルの不均衡、
(3)このコンポーネントがサポートするコンポーネントによって要求された機能及びサービス・レベルの不均衡。
前述の不均衡の任意のものは、(i)現在の状態内の変更、又は(ii)所望の状態内の変更が原因で生じることがある。例えば、一のWebSphere アプリケーション・サーバが一のサーバ上にインストールされているが、現に起動されていないものとする。このアプリケーション・サーバの現在の状態は、「オフライン」である。もし、所望の状態が、バッファ・サイズ、処理すべき要求の数及び特定のデータベースへの接続のような属性を伴って、「オンライン」に設定されるならば、これは一の不均衡に帰着し、対応するアクティブ・オブジェクト内の分析コンポーネントをトリガする。このアプリケーション・サーバが所望の属性を有するように「オンライン」化された後、その現在の状態が「オンライン」及び「データベースへの接続消失」に変わるものとする。これは、再び一の不均衡に帰着し、分析コンポーネントのアクションをトリガする。現在の状態内の変更は、モニタ機能コンポーネントを介して、通知される。所望の状態内の変更は、(i)調整兼管理サービスによって、(ii)管理インタフェースを介する管理アクションによって、又は(iii)既存のポリシの下でのアクションを必要とする他のアクティブ・オブジェクトからの一のサービス要求によってもたらされる。
分析コンポーネントが、管理対象オブジェクトの現在の状態及び所望の状態の間に不均衡が存在することを認識する場合、分析コンポーネントは、一の分析を実行することにより、管理対象サービスが遷移することができる最適の構成可能な状態を確立する。分析コンポーネントは、この分析を実行するために、当該システム内の他のサービス及び資源の状態及び使用可能性を考慮するとともに、現在及びサポートすべきコンポーネント又はワークロードのデマンド及び優先順位をも考慮する。この分析ステップの終わりには、サポーティング資源及びソフトウェア・サービスが完全に決定され、当該サポートを特徴づけるパラメータが確定される。例えば、当該サポートを特徴づけるパラメータは、接続の数、ポート番号、期待される応答時間及び最低保証帯域幅とすることができる。同様に、サポートされるサービスの特性も確定される。
分析の複雑さ及び性質は、分析コンポーネントに対し使用可能な意思決定の選択肢に依存する。所望の状態は、高い精度で指定することができる。例えば、所望の状態は、イネーブルされた特定のネットワーク・アダプタを有し、特定のIPアドレスを有し且つ特定の態様で配備された特定のウェブ・サービスを有する、一の特定サーバ上の「オンライン」WebSphere インスタンスの特定のバージョン、リリース及びパッチ・レベルを詳述することがある。このような場合において、選択肢が存在しなければ、分析コンポーネントは、管理対象サービスが規定されるような所望の状態を達成するように、使用すべき資源及びサービス並びにサポーティング・サービスに適用すべき構成パラメータを識別する。
他方、所望の状態は、或る範囲の可能な状態又は或る程度の自由度を以て指定することができる。例えば、所望の状態は、特定のネットワーク・サブドメインにおける任意のサーバ上の、バージョン6.0に準拠する「オンライン」WebSphere インスタンスを詳述することができるし、或いはアプリケーション・サーバの所望の状態は、当該アプリケーション・サーバが起動されるサーバに関し何らの制約なしに「オンライン」に設定することができる。その結果、最初に使用可能なサーバを使用することができる。他の例では、制約により、1セットのサーバからの最大量のメモリを有するサーバを使用することが必要になることがある。サポーティング・サービス及び資源を選択し且つ構成することに選択肢が存在する場合、分析コンポーネントは、他のアクティブ・テンプレート及び/又はアクティブ・オブジェクトとの対話を通して、意思決定を行う。
この対話は、使用可能なキャパシティ及び性能レベル並びに構成及び配備のために考慮中の既存及び新しいサービスによる対応するデマンドに基づき、一の最適化問題を策定し且つ解決することにより達成することができる。この最適化問題の目的は、管理対象オブジェクトに関連するポリシによって管理される。一の管理対象サービスに関連するポリシの幾つかの例は、指定された期間に特定のユーザ・グループによって当該サービスを排他的に使用すること、保守目的用の時間を取っておくこと、サポート資源として推奨される資源インスタンスを使用すること等である。
分析コンポーネントは、これらのポリシを考慮に入れて、当該システム内で可能な限り多くの不均衡を解決することを試みる。もし、不均衡を完全に排除することができなければ、分析コンポーネントは、依存関係を満たすように試みることにより、使用可能な新しい状態が所望の状態に最も近くなり且つ現在の状態からこの新しい状態への遷移が可能になるようにする。この分析の結果は、当該システム内の不均衡を修正するために使用すべき実際のサポーティング・サービス及び資源を決定する。これらのサポーティング・サービス及び資源の状態は、管理対象サービスが遷移可能な最終的な状態を決定するから、管理対象サービスは、常に実際の所望の状態を実現するとは限らないが、準最適な状態を実現することができる。実現された状態が所望の状態からどれだけ離れているかに依存して、前記分析ステップや後続の構成及び配備ステップを反復することができる。
構成機能は、分析機能からの出力を取り、次のタスクを実行する。
(1)管理対象サービス・コンポーネントが最適な態様でその現在の状態から新しい状態へ遷移することができるように、管理対象サービス・コンポーネントの既存の状態を構成し又は再構成するためのアクションの計画を作成する、
(2)コンポーネント内に実際の変更をもたらすように、実行すべき実際のコマンド、スクリプト及び手順を決定する、
(3)自己構成の前にサポーティング・サービス・コンポーネントに対し要求メッセージを送り、構成変更の後に依存サービスに対し確認メッセージを送る。
実行機能は、次のタスクを実行する。
(1)障害のリスクがポリシによって管理されるように、構成機能によって決定されたアクションの計画を実行する、
(2)所望の変更が生じたことを確認する検証ステップを実行する、
(3)初期の計画が成功しない場合は、代替的なアクションの計画を実行する、
(4)構成変更の後に、サポーティング・コンポーネント及び依存性コンポーネントとの対話を検証する。
MACE機能を各アクティブ・オブジェクト406内にカプセル化すると、当該アクティブ・オブジェクトによって表される管理対象ソフトウェア・サービス・コンポーネントが独立的に展開することが可能となり、しかも当該システムで生じている変更に適応することが可能となる。当分野における現在の技術とは異なり、実施形態は、サービス・コンポーネントを管理するために当該サービス・コンポーネントの完全に集中化された評価を必要としない。本明細書に開示するシステムは、集中化された意思決定及び実行能力を必要とすることなく、当該システムの総合的な管理を指示するためのグローバル・ポリシを許容する。一のアクティブ・オブジェクトが管理対象オブジェクトを操作する必要がある場合は常に、当該アクティブ・オブジェクトは、一のシステム実行時間をトリガする。このシステム実行時間は、単に当該アクティブ・オブジェクトの状態を調べ、当該アクティブ・オブジェクト内に保持されるアクションを実行する。これらのアクションのうちの或るものは、管理対象サービスに作用し、他のものは、アクティブ・リポジトリ402内の他のアクティブ・オブジェクトに作用する。
例えば、一のアクティブ・オブジェクトは、管理対象オブジェクトを「オフライン化する」ことを求める、一のコマンドを発行することがある。他の例では、当該アクティブ・オブジェクトは、他のアクティブ・オブジェクトに通知を送ることにより、当該他のアクティブ・オブジェクトによって管理されるサービスからのサポート・サービスがもはや必要ではないことを指示することがある。当該アクティブ・オブジェクトの状態は、資源モニタ、サービス・モニタ及び管理アクションを要求する比較的高レベルのアクティブ・オブジェクトのような、外部イベントによって影響されることがある。一のイベントが当該アクティブ・オブジェクトの状態を変更する場合、前述の管理コンポーネントがアクティブ化され、そして当該アクティブ・オブジェクトは、当該管理対象サービスをより安定した状態へ導くことを開始する。
アクティブ・リポジトリ402内の各アクティブ・オブジェクト406は、当該アクティブ・オブジェクトが管理する資源又はサービスの振る舞いを制御し且つモニタするために、管理インタフェースに関連する。当該管理インタフェースは、実際の資源コンポーネント又はサービス・コンポーネント用のものであって、当該コンポーネントをどのように構成し、インストールし、配備し、テストし、そしてそのライフサイクルのイベントをどのように管理するかということに係る手順を含む。また、当該管理インタフェースは、各管理対象サービス・コンポーネントごとに、現在のステータス情報及び当該管理対象サービスが遷移することができる可能な状態用の依存関係情報を維持する。例えば、図4において、アクティブ・オブジェクト410は、アプリケーション・サーバ412に関連し、アクティブ・オブジェクト414は、サーバ上のオペレーティング・システム・プラットフォーム416に関連し、アクティブ・オブジェクト418は、データベース・サーバ420に関連する。
既存のサービス又は複合サービスを使用して一のサービス要求にサービスを提供することができない場合、当該要求されたサービスのタイプを表すアクティブ・テンプレートが通知される。次に、当該アクティブ・テンプレートは、この要求を評価して、そのサービスの一の新しいインスタンスを管理すべき一の新しいアクティブ・オブジェクトをインスタンス化するか、又は管理対象オブジェクトを再構成して当該新しい要求に対応するように既存の一のアクティブ・オブジェクトに命令する。当該再構成用の命令は、単に管理対象サービスの所望の状態を変更することにより行われる。このような場合の後続するアクションは、一の新しいアクティブ・オブジェクトが作成される場合に後続するアクションのサブセットである。以下では、新しくインスタンス化された一のアクティブ・オブジェクトによって実行される1セットのアクションであって、その結果が、コンポーネント・サービスから一の複合サービスを構成及び配備することにつながるような、1セットのアクションについて説明する。この過程では、依存関係ツリーが下方に再帰的に探索され、そして全体的な複合サービスが完全に構成され且つ配備されるまで、コンポーネント・サービス・ツリーが構築される。
アクティブ・リポジトリ402内の生成時には、一のアクティブ・オブジェクトの直接依存関係は知られているが、満たされていない。アクティブ・リポジトリ402内で一のアクティブ・オブジェクトがインスタンス化される場合、当該アクティブ・オブジェクトには、所望の状態と呼ばれる一の状態及び現在の状態と呼ばれる他の状態が割り振られる。現在の状態は、当該アクティブ・オブジェクトによって管理されるサービス又は資源の状態である。所望の状態は、当該管理対象サービス又は資源の期待される状態である。
当該アクティブ・オブジェクト内の分析コンポーネントは、これらの2つの状態を連続的にモニタする。もし、これらの2つの状態が一致しなければ、分析コンポーネントは、現在の状態を所望の状態に遷移させるための可能な代替方法を分析するとともに、所望の状態を達成するために任意の依存関係要件が満たされなければならないか否かを決定する。従って、一のアクティブ・オブジェクトがインスタンス化される時に、もし、現在の状態が「オフライン」で且つ所望の状態が「オンライン」であれば、当該アクティブ・オブジェクト内の分析コンポーネントは、管理対象資源/サービスをオンライン化するために満たさなければならないような依存関係を調べる。この依存関係情報は、管理対象オブジェクト用の6つの管理インタフェースのうちの1つである、依存関係要件インタフェース内に格納される。各依存関係は、必要とされるサービス又は資源のタイプに従って表現される。依存関係の分析は、現在の状態を所望の状態に遷移させるのに必要とされるサービス又は資源の特定のタイプを識別する。また、分析コンポーネントは、依存関係を満たすのに必要とされる、性能及び他のサービス/資源に関する任意の位置制約をも決定する。これは、所望の状態の一の機能である。
例えば、一のウェブ・サービスの所望の状態が毎分当たりm個のトランザクションを処理することを必要としていれば(但し、mの値は既知である)、分析コンポーネントは、最初に、当該ウェブ・サービスが一のデータベース・サービスに依存するであろうということを決定し、次に、性能要件を満たすことができる当該データベース・サービスの特性を定量化する。当該データベース・サービスは、データベース・レコードの読み取り速度及び更新速度によって特徴づけられるから、分析コンポーネントは、一のデータベース・サービスを適格なサポーティング・サービスとして見なすための条件である、当該データベース・サービスの最小の読み取り速度(r)及び最小の更新速度(u)を計算する。言いかえれば、分析コンポーネントは、当該サポーティング・データベース・サービスの1セットの性能制約を計算する。m、u及びrの間の関係は、単純な代数式によって表現されることがあり、又は当該データベースシステムの近似的な振る舞いを表す多項式の評価を必要とすることがある。
或る所望の状態を達成するために必要とされる、サポーティング・サービスからの性能のレベルを決定するための性能特有の特性は、依存関係要件インタフェース内で符号化される。分析コンポーネントは、特定の依存関係を満たすために使用すべきサポーティング・サービス/資源の正確なインスタンスを識別しないことに留意されたい。分析コンポーネントは、単に必要とされる資源/サービスのタイプ及び性能、サポーティング・コンポーネントに関する位置及びセキュリティ制約を定量化するに過ぎない。次に、所望の状態、その状態に到達するのに満たすべき依存関係及びサポーティング・サービス/資源に関する制約についての情報は、構成コンポーネントに渡される。
構成コンポーネントは、実際のコンポーネントを決定するとともに、依存関係を満たすために使用すべきそれらのキャパシティの部分を決定する。構成コンポーネントは、その依存関係を満たすために必要とされるサービスのタイプ/資源を表すアクティブ・テンプレートと接触することにより、満たされていない各依存関係について決定を行う。かかる各アクティブ・テンプレートに対し、構成コンポーネントは、それが探しているサービスのタイプの要求及び満たされねばならない関連する制約を送る。かかる各アクティブ・テンプレートは、次の3つの方法のうちの1つで、この要求を満たすことを試みる。すなわち、(i)必要なサポートを提供すべき既存のサービス/資源を割り振る方法、(ii)この新しいデマンドに対応するように既存のサービスを再構成する方法、又は(iii)必要なサポートを提供すべき一の新しいサービス・インスタンスを構成し且つ配備する方法。これらの代替方法のどれもが可能でなければ、構成コンポーネントは、否定確認を返送する。このサポートを提供することが可能であれば、構成コンポーネントは、サポーティング・サービスを管理する対応するアクティブ・オブジェクトのアドレスを返送する。この依存関係に関する性能制約は、一の許容範囲として表現されることがあることに留意されたい。例えば、許容範囲は、当該範囲内でサービスを提供することが期待される、識別されたサポーティング・サービスによって表現される。ポリシも、制約を決定することに関与する。一のポリシは、制約が緩和可能である条件を指定するとともに、制約が緩和可能なエクステントを指定することがある。意思決定を行う際に、当該サポーティング・アクティブ・テンプレートは、これらのポリシを考慮に入れる。
各サポーティング・アクティブ・テンプレートにおける後続ステップは、指示されたアクティブ・オブジェクトにおけるアクションをトリガした最初の要求に関連して説明した前述のステップと同じである。これらのステップは、全ての依存関係が解決されるか、又は1セットのシステム資源及び現在の1セットのポリシを前提として、依存関係を解決することができなくなるまで、再帰的に行われる。従って、任意のサービス・コンポーネントに対しサポートを提供するための依存関係ツリー全体は、アクティブ・テンプレートからサポーティング・アクティブ・テンプレートやアクティブ・オブジェクト等に至るまで、トップ・ダウン式に探索される。実際のサービスの依存関係ツリーは、依存関係グラフの並行式縦型探索(concurrent depth-first traversal)に従うことにより、ボトム・アップ式の態様で構築される。サポーティング・ノードから発する全ての経路は、同時に探索される。
一旦サポーティング・サービスが構成され且つ必要なサポートを提供する準備が完了した一の状態で配備されると、要求元のアクティブ・オブジェクトは、肯定確認に加えて、当該サポーティング・サービスを管理するアクティブ・オブジェクトの詳細を通知される。確認の後、全てのサポーティング・サービス/資源コンポーネント並びにそれらの使用可能なキャパシティを含む、それらの現在の構成は、依存関係グラフ内の各ノードごとに知られている。構成コンポーネントは、この情報を使用して、当該サービスを当該サポーティング・サービス上に構成する際に使用すべき実際のパラメータを定量化する。これらのパラメータは、IPアドレス、使用すべき通信ポート、サポーティング・サービスへのアクセスを許可されたユーザID及びパスワード、バッファ・サイズ等を含むことができる。これらのパラメータの詳細は、サービスのタイプに依存する。次に、構成情報が実行コンポーネントに渡される。
実行コンポーネントは、管理対象サービスがその所望の状態でサポーティング・サービス上にインスタンス化されるように、設定及びインストール手順を実行するとともに、コマンドを送る。これらのコマンド及び手順は、当該アクティブ・オブジェクトのサービス配備管理インタフェース内に格納される。この結果、コンポーネント・サービスの合成として、当該サービスの配備が完了する。配備に続いて、ユーザ要求が処理されるか、又は比較的高レベルのサービスがかかる複合サービス上に合成される。
要約すると、一の複合サービスは、当該複合サービスを集合的に形成するサービス・コンポーネントを構成し且つ配備することにより形成される。正確なサービス・コンポーネントが、動的に決定されるのに対し、コンポーネント間の依存関係ツリーは、トップ・ダウン式に探索される。当該複合サービスの最高レベルにおけるサービス・タイプ用のアクティブ・テンプレートから開始して、アクティブ・リポジトリ内のアクティブ・テンプレート及びアクティブ・オブジェクトを調べることにより、依存関係ツリーがトップ・ダウン式に探索される。アクティブ・リポジトリにおいて、アクティブ・オブジェクトは、依存関係ツリー内のノードである。依存関係ツリーがトップ・ダウン式に探索されるにつれて、各ノードにおけるアクティブ・オブジェクトが識別される。また、同じ依存関係ツリーが、当該アクティブ・オブジェクトによって管理される実際のサービス・コンポーネント間で形成される。依存関係グラフ内の実際のサービス・コンポーネントは、当該依存関係グラフの並行式縦型探索に従うことにより、ボトム・アップ式の態様で構成され且つ配備される。
複合サービスの合成中に、もし、任意のサービス・コンポーネントが必要とされる構成を持たないで既に配備されていれば、対応するアクティブ・オブジェクトは、当該コンポーネント内に所望の構成変更をもたらすために、特定のアクションを呼び出す。一旦当該サービス・コンポーネントが再構成され且つ配備され、そして性能が満足できるものであれば、依存関係グラフ内の比較的高レベルのアクティブ・オブジェクトが通知される。一旦必要とされる全てのサポーティング・コンポーネントが準備を完了しており且つ機能的であることが知られていれば、次のレベルのオブジェクトは、実際のサービス・コンポーネントを構成し且つ配備する。このことは、最上位レベルのサービス・コンポーネントを含む全てのコンポーネントが構成され、配備され、所望のサービス提供状態がもたらされるまで、継続的に行われる。
分解プロセスが生じるのは、一のサービスがもはや必要とされない場合、管理者が一のサービス分解コマンドを発行する場合、当該サービスをオフにすることを必要とする一のポリシが実施される場合、又は現在の1セットの条件の下では当該サービスを維持することができない場合である。分解プロセスに関係するステップは、一のサービスを合成する際に取られたステップの正反対である。この状況では、先ず、最上位レベルにあるサービスのアクティブ・テンプレートは、アクティブ・オブジェクト内の所望の状態をオフラインに設定する。次に、そのアクティブ・オブジェクト用の分析コンポーネントは、構成コンポーネントに対し、構成をオフラインに変更するように通知する。これに応じて、構成コンポーネントは、先ず、サポートされるサービス・コンポーネントのアクティブ・テンプレート(存在する場合)に対し、サービス終了を通知する。構成コンポーネントは、サポートされるコンポーネントのアクティブ・テンプレートから、肯定応答を受け取ることを待機する。当該アクティブ・テンプレートから、当該アクティブ・テンプレートがサービス・コンポーネントに関するそれらの依存関係を終了したという応答を受け取った後、構成コンポーネントは、実行コンポーネントに対し、当該アクティブ・オブジェクトによって管理されるサービスを終了するように通知する。当該管理対象サービスが終了した後、構成コンポーネントは、このサービスにサポートを提供している当該サービスに対応するアクティブ・テンプレート(存在する場合)に対し、サポート・サービスがもはや必要とされないことを通知する。当該アクティブ・テンプレートから肯定応答を受け取った後、構成コンポーネントは、それ自体のアクティブ・テンプレートに対し、当該サービスの成功裡の終了を通知し、その後、当該アクティブ・オブジェクトは、自己終了する。
複合サービスの分解は、複合サービス管理ツリーの一部である各アクティブ・オブジェクトにおいて行われた同じステップの再帰的プロセスである。この分解プロセスは、依存関係ツリー内の必ずしも最上位レベルにではない任意のノードにおいて開始することができる。一旦依存関係グラフ内の任意のノードにおける一のアクティブ・オブジェクトがオフラインに移行するように通知されると、当該アクティブ・オブジェクトは、当該アクティブ・オブジェクトがサポートする全てのサービスが終了したか、又は他の代替サポーティング・サービス・コンポーネントを検出した後にのみ、当該管理対象サービスを終了させる。同様に、かかるサポートされるサービスのそれぞれは、当該サービスに依存する全てのサービスが自己終了したか、又は代替サポートを検出した後にのみ、終了することになる。検証プロセスは、実際の目標サービスの最初の分解が生じる、依存関係グラフの最上部に至るまで、再帰的に継続する。これに続いて、比較的低レベルのサービス・コンポーネントが、トップ・ダウン式に終了される。当該再帰的プロセスは、依存する各アクティブ・オブジェクトにおいて開始する並行な経路に沿って、分解を同時的に行うことに留意されたい。一のソフトウェア・コンポーネントが、分解の一部としてそれ自体をアンインストール又は再構成するのに対し、ハードウェア・コンポーネントは、使用可能な資源プールの一部になる。
図5は、実施形態に従った、一のサービス用の一のオブジェクト依存関係グラフを例示する。オブジェクト依存関係グラフ500は、一の企業のような高レベルのサービスの依存関係を記述することができる。オブジェクト依存関係グラフ500は、コンポーネント間の依存関係を一の有向グラフとして捕捉する。オブジェクト依存関係グラフ500の各ノードは、一の資源又はサービス・コンポーネントを表す。オブジェクト依存関係グラフ500における各ノード間の線は、比較的低レベルのサポーティング・コンポーネントに関する高レベル・コンポーネントの依存関係を表す。例えば、一の高レベル又は複合サービスは、複数の個別サービス及び個別資源に依存することがある。
例えば、オブジェクト依存関係グラフ500のルートに含まれる一のノードは、サービス502を表し、foobar.redbank.com:80/AccountServiceとして示されている。例えば、サービス502は、インターネットを介してユーザがアクセス可能なオン・ライン銀行用の高レベル・サービスとすることができる。1つの例では、サービス502は、統一資源識別子(URI)、ハイパーリンク、ハイパーテキスト転送プロトコル(HTTP)又は他のフォーマットの形式でアクセスすることができる。ハイパーテキスト転送プロトコルとは、一のクライアント装置と一のサーバの間のウェブ・ブラウジングを可能にする実際の通信プロトコルである。統一資源識別子は、例えば、インターネット上にある一の資源用の識別子として作用する、フォーマットされたストリングである。統一資源識別子は、ハイパーリンクのアンカを識別するために、ハイパーテキスト・マークアップ言語(HTML)のようなソフトウェア言語内で使用される。
この例に示すように、サービス502は、プレゼンテーション及び認証サービス機能を含む追加サービスのために、AccountService 504及び Apache Web Server 508と呼ばれる、一のウェブ・サービスに依存する。ウェブ・サービスである AccountService 504は、IBM WebSphere Application Server 506及び IBM DB2 database server 514への依存関係を有する。IBMWebSphere Application Server 506は、マイクロソフト社の Windows 2003 server 516への依存関係を有する。IBM DB2 database server 514は、Windows 2003 server 518に依存する。さらに、サービス502は、abc.payment.com:9080/Pyment 及び abc.broker.com:9080/Portfolio としてそれぞれ示された、外部的にホストされるサービス510及び512に依存する。例えば、外部的にホストされるサービス510は、サービス502によって提供されるサービス用の支払いを受け取るために使用することができる。外部的にホストされるサービス512は、ポートフォリオ内の金融資産に関するデータを保存するために使用することができる。オブジェクト依存関係グラフ500内のオブジェクトに対して変更及び更新を最も有効に実装する方法を決定するために、変更管理システムをユーザ定義のポリシと共に使用することができる。
前述の複合サービスの合成及び分解は、アクティブ・リポジトリ内のアクティブ・オブジェクト及びアクティブ・テンプレートによって行われるマイクロ・レベル制御を使用して、サービス・コンポーネントを管理することを例証する。そうする際に、アクティブ・オブジェクト及びテンプレートは、サポーティング及びサポートされるサービス又は資源インスタンスの振る舞いにも影響を及ぼす。さらに、アクティブ・オブジェクト及びテンプレートは、サポーティング及びサポートされる資源の振る舞いの変更に応答する。しかし、マイクロ・レベル制御は、グローバルな制約及びポリシを考慮に入れて同時的なグローバルの変更をもたらさない。かかる変更は、マクロ・レベル制御によってもたらされる。例えば、マクロ・レベル制御は、グローバル・ポリシ(例えば、重要な資源が共有される態様、デマンドが優先順位付けされ且つサービスされる態様)を実施するために必要とされる。かかるポリシが必要であるのは、資源が不十分であり、そしてデマンドがサプライを超過することがあるような場合である。さらに、かかるポリシが必要であるのは、複雑な意思決定が行われ、そしてトレードオフが明確でないような場合である。
図6は、実施形態に従った、複合サービスを管理するためのマクロ・レベル制御を示す。調整兼管理サービス600は、図3の調整兼管理サービス310のような、調整兼管理サービスである。調整兼管理サービス600は、複合サービスを管理するためにマクロ・レベル制御を提供する管理サービスから成る。
調整兼管理サービス600は、分析兼計画エンジン602、構成エンジン604、配備エンジン606、モニタ・エンジン608及びライフサイクル・エンジン610を備える。これらのエンジンの各々は、アクティブ・リポジトリ612及びアクティブ・リポジトリ612内に表される管理オブジェクトと対話する。図示の5つのエンジンによって提供されるマクロ・レベル制御は、マイクロ・レベル制御に変換される。アクティブ・リポジトリ612内のアクティブ・オブジェクト(例えば、図4のアクティブ・オブジェクト406に相当)は、マクロ・レベル制御の所望の効果がマイクロ・レベルで実現されるように、対応する資源及びコンポーネント・サービスを制御する。
前述のように、アクティブ・リポジトリ612は、サービス要求に応答してソリューションを提供するように、ソフトウェア・サービス・コンポーネントの全てのライフサイクル側面を管理する。アクティブ・リポジトリ612は、関係するシステム管理ポリシ及び物理資源の使用可能性によって課される制約を考慮に入れて、この機能を実行する。後述するように、このライフサイクル管理の1つの側面は、一の複合サービスに対する一のデマンドがある場合は常に、かかる複合サービスを合成することである。他の側面は、デマンドが存在しない場合、ポリシが必要とする場合、又は1つ以上のサポーティング・サービスが使用不能である場合に、一の複合サービスを分解することである。
前述のように、アクティブ・リポジトリ612内の一のアクティブ・オブジェクトは、1セットの依存性コンポーネントをサポートするため又は1クラスの要求を処理するために、管理対象サービスを構成することができる。サポーティング・サービス及び資源コンポーネントを複数のエンティティ間で共有すべき場合、これらのコンポーネントが異種である場合、又はこれらが不十分である場合には、これらのサービス及び資源のブローカリングを行って、1つ以上の比較的高レベルの依存サービスに割り振る必要がある。一のサービス及び資源コンポーネントは、1つ以上の属性キャパシティにおいて他のコンポーネントとは異なる。不十分なコンポーネントは、同じサポーティング資源をめぐって競合する複数の依存性コンポーネントを有する、一のコンポーネントである。サポーティング資源は、一の高レベル・サービスの機能を提供するために、当該高レベル・サービスによって使用されるものである。例えば、もし、当該高レベル・サービスが銀行であれば、そのサポーティング資源は、ユーザ用のインターネット・ポータル、信用調査サービス及び顧客情報を有するデータベースを含むことができる。調整兼管理サービス600は、必要なブローカリング、割り振り、整合化(matching)、構成及び配備サービスを提供する。
分析兼計画エンジン602は、サービス及び資源のブローカリング、整合化及び割り振り機能を提供する。サービス及び資源キャパシティが不十分である場合、又はアクティブ・テンプレートが既存のポリシの結果として共有問題を解決することができない場合には、サポーティング・コンポーネントを必要とする比較的高レベルのアクティブ・オブジェクトは、依存関係グラフを構築し、それらの要件を、依存関係グラフと共に、分析兼計画エンジン602に渡す。分析兼計画エンジン602は、アクティブ・リポジトリ612内で未解決の全てのかかる要件及び依存関係を収集する。分析兼計画エンジン602は、現に使用可能な資源及びサービス・コンポーネントのキャパシティ、資源及びサービスに特有のポリシ、優先順位、プリファレンス及び全体的なビジネス目標を収集する。分析兼計画エンジン602は、この情報を、サービス仕様書、サービス構成及び分析中のアクティブ・オブジェクトのサービス状態セクション内で見つける。
分析兼計画エンジン602は、依存関係グラフ内の依存関係及び使用可能なキャパシティを制約としてモデル化し且つビジネス目標を目的関数としてモデル化することにより、一の最適化問題を策定する。この最適化問題のソリューションは、分析される依存関係グラフ内の各ノードでどのサポーティング・コンポーネントを使用すべきかを正確に決定する。
また、分析兼計画エンジン602は、一のサポーティング・コンポーネントを複数の依存サービスによって共有すべきか否か、又は当該サポーティング・コンポーネントを専用モードで使用すべきか否かを決定し、共有のために使用すべき任意の優先順位方式を決定し、そして一の依存性コンポーネントが一のサポーティング・コンポーネントを使用すべき正確な時間を決定する。もし、一のサポーティング・コンポーネントがアクティブ・リポジトリ612内に存在しないか、又は既存のポリシが共有を許可しなければ、アクティブ・リポジトリ612内の対応するアクティブ・テンプレートを使用して、当該オブジェクトの新しいインスタンスが作成される。既存の及び新しく作成されるインスタンス・オブジェクトの所望の状態は、依存関係グラフ内に配置される新しいデマンドを反映するように設定される。
分析兼計画エンジン602は、満たされていない依存関係を有する各アクティブ・オブジェクトごとに、一のソリューション依存関係グラフを準備する。このソリューション依存関係グラフは、対応するアクティブ・オブジェクトのサービス構成セクション内に書き込まれる。また、分析兼計画エンジン602は、依存関係ツリーにおいてサポーティング・サービスを提供する、アクティブ・オブジェクトの所望の状態を更新する。
もし、分析兼計画エンジン602が、当該アクティブ・オブジェクトの依存関係を満たすことができなければ、現在の状態は所望の状態と一致しない。かかる場合、当該アクティブ・オブジェクトの要件は、次の評価段階中に、分析兼計画エンジン602によって再考される。かかる再考は、必要な資源及びサービスが使用可能になるまで、又は当該アクティブ・オブジェクトに対応するサービスがもはや必要とされなくなるまで、継続的に行われる。
構成エンジン604は、サービス依存関係グラフを使用することにより、比較的高レベルのサービスの要件を満たすために必要とされるサービスの構成記述を生成する。構成エンジン604が生成する一の構成依存関係グラフは、依存関係ツリー内の各コンポーネント用の構成設定を記述するとともに、コンポーネント・サービス及び資源を配備及び構成すべき順序を記述する。この構成依存関係グラフも、問題となっているオブジェクトの配備セクション内に格納され、配備エンジン606によって使用される。また、構成エンジン604は、構成依存関係グラフ内の各アクティブ・オブジェクト用の構成設定を更新する。これらの更新は、対応するアクティブ・オブジェクトに対し、コンポーネントが必要なサポートを提供することができるように、それらが管理するオブジェクト内に所望の変更をもたらすことを指示する。
次に、配備エンジン606は、構成依存関係グラフを使用することにより、要求を満たすために必要とされる資源を要求する。配備エンジン606は、一の内部ワークフローに従うことにより、資源を割り振り且つ提供するとともに、提供され且つ構成されるサービスについて単体及び統合テストを実行する。配備エンジン606は、各資源ごとに、構成依存関係グラフを使用することにより、当該資源のインストール及び構成を開始する。このインストール及び構成の進行状況は、モニタ・エンジン608により連続的にモニタされる。モニタ・エンジン608は、リポジトリ内の代表的な各オブジェクトのステータスを更新する責任を有する。もし、単体又は統合テストの間に障害に遭遇すれば、新しい1セットの資源を獲得することを含むことがある、回復アクションを実行することにより、ワークフローが再開する。
図7は、実施形態に従った、一の複合ソフトウェア・サービスを合成し且つ管理するために使用される動作のフローチャートである。図7のプロセスが開始する前に、一のコンピュータ・ネットワーク内に一のソフトウェア・サービスを配備するための一の要求が受け取られる。もし、当該要求されたソフトウェア・サービスが一の新しいソフトウェア・サービスであれば、図3のサービス・インフラストラクチャ・マネージャ・インタフェース306のようなサービス・インフラストラクチャ・マネージャ・インタフェースは、図3のアクティブ・リポジトリ312のようなアクティブ・リポジトリに対し、当該要求を通知する。当該サービス・インフラストラクチャ・マネージャは、アクティブ・リポジトリからの応答を待機する。
この通知に応答して、アクティブ・リポジトリは、通知された要求タイプを処理するための一のサービスの管理を提供することができる、アクティブ・リポジトリ内の一のアクティブ・テンプレートを識別する(ステップ702)。次に、アクティブ・リポジトリは、当該識別されたアクティブ・テンプレートに対し、一のサービス要求通知を送る(ステップ704)。次に、アクティブ・リポジトリは、識別されたアクティブ・テンプレートからの、要求されたサービスの使用可能性に関する肯定確認を待機する(ステップ706)。要求されたサービスが使用可能になった後、アクティブ・テンプレートは、アクティブ・リポジトリに対し、当該サービスの使用可能性及び位置を通知する(ステップ708)。これに応じて、アクティブ・リポジトリは、サービス・インフラストラクチャ・マネージャに対し、サービス合成を伴う当該サービスの使用可能性及び位置を通知し(ステップ710)、その後このプロセスが終了する。
図8は、実施形態に従った、一のアクティブ・テンプレート用のサービス合成のためのフローチャートである。図8のプロセスは、図3のアクティブ・リポジトリ312のようなアクティブ・リポジトリ内に存在する、図4のアクティブ・テンプレート404のような一のアクティブ・テンプレートによって実装することができる。図7のステップ704で通知を受け取った後、当該アクティブ・テンプレートは、それが作成した既存のアクティブ・オブジェクトのうちの任意のものが未解決の通知イベントを処理することができるか、又は一の新しいアクティブ・オブジェクトをインスタンス化する必要があるかを決定する(ステップ802)。ステップ802の決定を行う際には、当該新しい要求の要件及び当該既存のアクティブ・オブジェクトが管理する既存のサービスによってそれらの要件を処理する能力が考慮される。当該要求を処理するために既存のサービスが使用されるのは、当該既存のサービスが現在のコミットメントに影響せず、しかも既存のポリシに違反しない場合に限られる。さもなければ、一の新しいサービス・インスタンスを作成し且つこれを管理しなければならない。
もし、当該アクティブ・テンプレートが、新しいアクティブ・オブジェクトをインスタンス化することを決定すれば、当該アクティブ・テンプレートは、一の新しいアクティブ・オブジェクトをアクティブ・リポジトリ内に作成するとともに、必要とされるサービス・インスタンスの成功裡のインスタンス化に帰着するような状態に所望の状態を設定する(ステップ806)。例えば、当該アクティブ・テンプレートは、アカウント更新の一の要求に応答して、図5のサービス502のような AccoutService web service を管理するための一のアクティブ・オブジェクトを作成するとともに、所望の状態を AccountService に関する「オンラインに移行」に設定することができる。次に、当該アクティブ・テンプレートは、管理対象サービス内で所望の状態を達成する、当該アクティブ・オブジェクトからの肯定確認を待機する(ステップ808)。次に、当該アクティブ・テンプレートは、要求されたサービスの使用可能性に関する肯定確認をアクティブ・リポジトリに送り(ステップ810)、その後このプロセスが終了する。アクティブ・リポジトリは、図8のプロセスのサービス要求元である。
もし、ステップ802で、当該アクティブ・テンプレートが一の新しいアクティブ・オブジェクトをインスタンス化しないことを決定すれば、このプロセスは、再構成すべき既存の一のアクティブ・オブジェクトを識別し、その所望の状態を変更する(ステップ812)。次に、当該アクティブ・テンプレートは、管理対象サービス内で所望の状態を達成する、当該アクティブ・オブジェクトからの肯定確認を待機する(ステップ808)。
図9は、実施形態に従った、一のアクティブ・オブジェクト用のサービス合成のためのフローチャートである。図9のプロセスは、図4のアクティブ・オブジェクト410のような一のアクティブ・オブジェクトによって実装することができる。図8のステップ806及び812の後、当該インスタンス化されたアクティブ・オブジェクトは、現在の状態が所望の状態と同じであるか否かを決定する(ステップ902)。もし、現在の状態が所望の状態と同じであれば、当該インスタンス化されたアクティブ・オブジェクトは、所望の状態及び現在の状態を継続的にモニタし、ステップ902が反復される。さもなければ、当該インスタンス化されたアクティブ・オブジェクトは、当該アクティブ・オブジェクトによって管理されるサービス・コンポーネントの構成が所望の状態にあるか否かを決定する(ステップ904)。次に、このプロセスは、当該管理対象サービス・コンポーネントが所望の状態にある場合、他のサービス・コンポーネントへの依存関係を決定する(ステップ906)。次に、このプロセスは、サポーティング・サービス・コンポーネント用の構成パラメータに関する境界を決定する(ステップ908)。次に、このプロセスは、必要とされるサポーティング・サービスに関連するアクティブ・テンプレートに対し、サービス要求通知を送る(ステップ910)。
次に、このプロセスは、サポーティング・サービスのアクティブ・テンプレートからの、肯定確認を待機する(ステップ912)。次に、全てのサポーティング・サービス・コンポーネントがサービスを提供する準備を完了している場合、このプロセスは、サービス・コンポーネントが現在の状態から所望の状態に遷移することができるように、当該アクティブ・オブジェクトによって管理されるサービス・コンポーネントに対し、構成コマンドを送る(ステップ914)。次に、当該アクティブ・オブジェクトによって管理されるサービス・コンポーネントが所望の構成で動作している場合、このプロセスは、当該サービス・コンポーネントのアクティブ・テンプレートに対し肯定確認を送り(ステップ916)、その後このプロセスが終了する。図9のステップ910の後、このプロセスは図8のステップ802に進み、そこで図9のステップ906で識別されたサポーティング・サービス用のアクティブ・テンプレートが、必要なサポートをイネーブルするためのプロセス・ステップを実行する。
図10は、実施形態に従った、一のアクティブ・テンプレート用のサービス分解のためのフローチャートである。このプロセスが開始されるのは、一のアクティブ・テンプレートがアクティブ・オブジェクトを介して管理する、1つ以上の管理対象サービス・インスタンスによって提供される一のサービスがもはや必要とされないという通知を、当該アクティブ・テンプレートが受け取る場合である。この通知は、一のポリシ、管理コマンド、期待されるワークロード減少、又は一の依存サービス・コンポーネントのオフライン化によってトリガすることができる。この通知の原因に拘わらず、当該アクティブ・テンプレートの観点からすれば、この通知は、サービス・コンポーネントによってサポートされるワークロードの減少を意味する。図10のプロセスは、図4のアクティブ・テンプレート404のようなアクティブ・テンプレートによって実装することができる。
図10のプロセスは、前記通知を分析することにより開始する。すなわち、当該アクティブ・テンプレートは、依存関係の終了によって影響されるであろう1つ以上のサービス・インスタンスを決定し、その決定から、それらのサービス・インスタンスに対応するアクティブ・オブジェクトを識別する(ステップ1002)。次に、当該アクティブ・テンプレートは、当該1セットのアクティブ・オブジェクトによって管理されるサービス・コンポーネントへの現在のワークロードのマッピングに対する依存関係終了の影響を決定する(ステップ1004)。たとえ終了されるサービス依存関係が、サービス・インスタンスのロード・バランス及びポリシ・ベースの整合化を維持するために、当該サービス・インスタンスのうちの1つによって処理されるとしても、当該アクティブ・テンプレートは、終了すべき依存関係を含めて又は終了すべき依存関係を含めないで、当該サービス・インスタンスの構成を集合的に分析する。総合的なワークロードの変更に起因して、当該サービス・インスタンスへの残存するサービス依存関係のマッピングのような新しい構成は、1つ以上のサービス・インスタンスの終了及び/又は再構成に帰着することがある。次に、当該アクティブ・テンプレートは、この新しい構成を使用して、影響される各アクティブ・オブジェクトが処理されるまで、影響されるサービス・インスタンスの識別されたリスト上をループする(ステップ1006)。かかる各アクティブ・オブジェクトごとに、このプロセスは、当該アクティブ・オブジェクトによって管理されるサービス・コンポーネントを終了又は再構成すべき場合、古い構成及び新しい構成を比較することにより、当該アクティブ・テンプレートの構成を決定する。次に、当該アクティブ・オブジェクトによって管理されるサービス・コンポーネントを終了又は再構成すべきかという決定が行われる(ステップ1008)。
もし、ステップ1008で、サービス・インスタンスを終了すべきと決定されるならば、当該アクティブ・テンプレートは、当該影響されるアクティブ・オブジェクトの所望の状態を終了するように設定する(ステップ1010)。このステップ及びこのステップに至る全てのステップは、分解プロセスの一部である。
もし、ステップ1008で、サービス・インスタンスを再構成すべきと決定されるならば、当該アクティブ・テンプレートは、当該影響されるアクティブ・オブジェクトの所望の状態を新しいワークロード及び新しい依存性サービス・コンポーネントで再構成するように設定する(ステップ1012)。ステップ1012の後、このプロセスは、図9のステップ902に示すようなサービス・インスタンスの再構成に進む。
図11〜図13は、実施形態に従った、一のアクティブ・オブジェクト用のサービス分解のためのフローチャートである。図11〜図13のプロセスは、図4のアクティブ・オブジェクト410のような一のアクティブ・オブジェクトによって実装される。図10のステップ1010の後、このプロセスは、同様に影響される各アクティブ・オブジェクトについて、並行に実施される。これらのプロセス・ステップが当該影響されるアクティブ・オブジェクトにおいてトリガされるのは、当該アクティブ・オブジェクトが、管理対象サービス・インスタンス用の現在の状態及び所望の状態が一致しないことを決定する場合である(ステップ1102)。これらの2つの状態が一致する限り、ステップ1102が反復される。さもなければ、このプロセスは、当該アクティブ・オブジェクトによって管理されるサービス・コンポーネントの所望の状態における構成を決定する(ステップ1104)。
次に、当該管理対象サービス・コンポーネントによって現にサポートされる各サービス・コンポーネントごとに、このプロセスは、各サービス・コンポーネントが所望の状態でサポートされるかであろうか否かを決定する(ステップ1106)。次に、現在の状態ではサポートされるが、所望の状態ではサポートされない各サービス・コンポーネントごとに、このプロセスは、対応するアクティブ・テンプレートに対し、それらの依存関係を終了させるための通知を送る(ステップ1108)。
次に、このプロセスは、全ての依存性サービス・コンポーネントからの、依存関係終了の肯定確認を待機する(ステップ1110)。次に、当該管理対象サービス・コンポーネントが所望の状態にある場合、このプロセスは、他のサービス・コンポーネントへの依存関係を決定する(ステップ1112)。次に、このプロセスは、所望の状態では必要とされないサービス・コンポーネントへの依存関係を終了させるために、再構成コマンドを当該管理対象サービスに送る(ステップ1114)。次に、再構成コマンドが成功する場合、このプロセスは、所望の状態においてもはや必要とされないサービス・コンポーネント用のアクティブ・テンプレートに対し、情報通知を送る(ステップ1116)。
次に、このプロセスは、当該管理対象サービスを終了すべきか否かを決定する(図12のステップ1118)。もし、当該管理対象サービスを終了すべきと決定すれば、このプロセスは、終了の準備をさせるために、再構成コマンドを当該管理対象サービスに送る(図13のステップ1120)。次に、このプロセスは、当該管理対象サービスのアクティブ・テンプレートに通知を送ることにより、サービス・コンポーネントの終了を知らせる(ステップ1122)。次に、当該管理対象サービス・コンポーネントが終了する準備を完了している場合、このプロセスは、当該管理対象サービス・コンポーネントを終了させるためのコマンドを送る(ステップ1124)。次に、当該管理対象サービス・コンポーネントは、自己終了し(ステップ1126)、その後このプロセスが終了する。
もし、図12のステップ1118で、当該管理対象サービスを終了すべきでないと決定すれば、当該管理対象サービスが所望の状態において継続的に依存するであろうサービス・コンポーネントについて、このプロセスは、依存関係を再構成する必要があるか否かを決定する(ステップ1128)。次に、再構成する必要がある各サポーティング・サービス・コンポーネントごとに、このプロセスは、その依存関係を保留し、サービス再構成通知要求を対応するアクティブ・テンプレートに送る(ステップ1130)。次に、当該管理対象サービスが所望の状態において依存するであろう任意の新しいサービス・コンポーネントについて、このプロセスは、必要とされるサービスに関連するアクティブ・テンプレートに対し、サービス要求通知を送る(ステップ1132)。
次に、このプロセスは、所望の状態において必要とされるサポーティング・サービスのアクティブ・テンプレートからの、肯定確認を待機する(ステップ1134)。次に、全てのサポーティング・サービス・コンポーネントが必要なサポートを提供する準備を完了している場合、このプロセスは、当該管理対象サービス・コンポーネントが現在の状態から所望の状態に遷移することができるように、再構成コマンドを当該管理対象サービス・コンポーネントに送る(ステップ1136)。次に、当該アクティブ・オブジェクトによって管理されるサービス・コンポーネントが所望の状態で動作している場合、このプロセスは、現在の状態を所望の状態に変更し、この状態変更を当該サービス・コンポーネントのアクティブ・テンプレートに知らせ(ステップ1138)、その後このプロセスが終了する。
図11のステップ1110及び図13のステップ1122の後、このプロセスは、図10のステップ1002に戻る。図12のステップ1130及び1132の後、このプロセスは、図8のステップ802に戻る。
要するに、実施形態は、管理対象エンティティ間の依存関係を動的に且つ自律的に表すための、テンプレート及びオブジェクトの一のリポジトリを提供する。サービス・コンポーネントは、高レベルのサービスを構成し且つ配備するために必要とされる完全なサポート機構を形成するように、自己組織化される。満たされていない依存関係を有する高レベルのサービスは、自動的に検出される。適格性のあるサービス及び資源コンポーネントが識別され、1つ以上の高レベルのサービスの依存関係要件を部分的に又は完全に満たすように、部分的に又は完全に整合される。
計画の使用は、サポーティング・サービスがビジネス目標を有効に満たすことを可能にする。システム制約のグローバル最適化を実行するために、高レベルのサービスの依存関係及び要件、サポーティング・サービス及び資源コンポーネントの使用可能なキャパシティ、コンポーネントに特有のポリシ及びプリファレンス、指定されたビジネス目標に基づく目的関数が考慮に入れられる。
アクティブ・リポジトリ内にあるアクティブ・オブジェクト間の配備レディ依存関係は、一の分散環境内で使用可能な資源を使用して、複合サービス配備のために動的に合成される。資源プール内の変更には、自動的に応答する。例えば、一の機械がサービスのために除去される場合、その機械に依存する全てのワークフローが使用可能となるように再構成する必要があるとは限らない。一の間接レベルを使用するアクティブ・リポジトリ内のオブジェクト及びテンプレートを使用すると、システム管理者が合成内の各コンポーネントを追跡し、構成し且つ配備することを必要とすることなく、基礎をなす物理資源の容易な管理を可能にする。複合サービスは、高レベルのサービスの状態内に単一の変更を導入して、サポーティング・サービスを識別し且つ構成することにより合成され且つ分解される。
従って、実施形態は、サービス・インフラストラクチャのオン・デマンド合成及び分解のためのコンピュータ実装方法、装置及びコンピュータ使用可能なプログラム・コードを提供する。この方法は、コンポーネントが互いに連携して、期待される態様で振る舞う一の複合サービスを提供するように、ソフトウェア・サービス及び資源コンポーネントを構成し且つ配備する。自動管理及び制御は、コンポーネント・レベル及び合成フェデレーテッド・レベルで行われる。その結果、高レベルのサービスが、オンデマンドで、自動的に配備され、構成され、再構成され、分解されるから、管理者及び他のIT担当者が高レベルのサービスを維持するのに必要な時間の量を減少させることができる。
本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、又はソフトウェア及びハードウェア要素の両方を含む実施形態の形式を取ることができる。推奨実施形態では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコード等を含む、ソフトウェアで実装される。
また、本発明は、コンピュータ又は任意の命令実行システムに関連して又はこれらによって使用するためのコンピュータ使用可能なプログラム・コードを提供する、コンピュータ使用可能な媒体又はコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形式を取ることができる。この記載の目的上、コンピュータ使用可能な媒体又はコンピュータ可読媒体は、前記命令実行システム又は装置に関連して又はこれらによって使用するためのプログラムを保持し、格納し、通信し、伝送し、移送することができる、任意の有形的装置とすることができる。
媒体は、電子、磁気、光学、電磁気、赤外線又は半導体システム(若しくは装置)又は伝送媒体とすることができる。コンピュータ可読媒体の例には、半導体又は固体メモリ、磁気テープ、取り外し可能なフレキシブル・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、剛体磁気ディスク及び光ディスク等がある。光ディスクの例には、読み取り専用のCD−ROM、読み書き可能なCD−R/W及びDVDがある。
コンピュータ使用可能なプログラム・コードを格納及び/又は実行するのに適したデータ処理システムは、システム・バスを通してメモリ要素に直接的又は間接的に結合された少なくとも1つのプロセッサを含む。これらのメモリ要素は、コンピュータ使用可能なプログラム・コードの実行中に使用されるローカル・メモリ、バルク・ストレージ、コンピュータ使用可能なプログラム・コードの実行中にバルク・ストレージからの取り出し回数を減少させるために少なくとも或るコンピュータ使用可能なプログラム・コードの一時的記憶領域を提供するキャッシュ・メモリを含むことができる。
I/O装置(キーボード、ディスプレイ、ポインティング装置等を含む)は、システムに対し直接的に又は介在するI/Oコントローラを通して結合することができる。
また、ネットワーク・アダプタをデータ処理システムに対し結合することもできる。そのようにすると、当該データ処理システムは、介在する専用又は公衆ネットワークを通して、他のデータ処理システム、遠隔プリンタ又は記憶装置に結合されるようになる。ネットワーク・アダプタの例には、モデム、ケーブル・モデム及びイーサネット(登録商標)・カード等がある。
本発明に関する記述は、例示及び説明を目的として与えられたものであって、網羅的であること及び開示された形態に本発明を制限することを意図するものではない。当業者にとって、多くの修正及び変形が明らかであろう。実施形態は、本発明の原理及び実際的な応用を最もよく説明し、考えられる特定の用途に適するような種々の修正を伴う種々の実施形態に関して当業者が本発明を理解することを可能にするために、選択され説明されたものである。
実施形態を実装することができるデータ処理システムのネットワーク図である。 実施形態を実装することができるデータ処理システムのブロック図である。 実施形態に従った、構成及び配備用のアクティブ・リポジトリを使用する、合成ベースのサービス管理インフラストラクチャを示す図である。 実施形態に従った、アクティブ・リポジトリのコンポーネントを示す図である。 実施形態に従った、サービス用のオブジェクト依存関係グラフを例示する図である。 実施形態に従った、複合サービスを管理するためのマクロ・レベル制御を示す図である。 実施形態に従った、一の複合ソフトウェア・サービスを合成し且つ管理するために使用される動作のフローチャートである。 実施形態に従った、一のアクティブ・テンプレート用のサービス合成のためのフローチャートである。 実施形態に従った、一のアクティブ・オブジェクト用のサービス合成のためのフローチャートである。 実施形態に従った、一のアクティブ・オブジェクト用のサービス分解のためのフローチャートである。 実施形態に従った、一のアクティブ・オブジェクト用のサービス分解のためのフローチャートである。 実施形態に従った、一のアクティブ・オブジェクト用のサービス分解のためのフローチャートである。 実施形態に従った、一のアクティブ・オブジェクト用のサービス分解のためのフローチャートである。

Claims (15)

  1. コンピュータの処理によって、一の複合サービスを作成するための方法であって、
    一のサービス要求通知を処理するようにインスタンス化された一のサービス・コンポーネントを管理すべき一のアクティブ・オブジェクト用の一のアクティブ・テンプレートにして、一のアクティブ・オブジェクトを含む一のアクティブ・テンプレートを識別するステップと、
    前記インスタンス化されたサービス・コンポーネントを管理すべき前記識別されたアクティブ・テンプレートにおいて一の新しいアクティブ・オブジェクトをインスタンス化するか否かを決定するステップと、
    一の新しいアクティブ・オブジェクトをインスタンス化するとの肯定的な決定に応答して、前記サービス要求通知のサービス状態を有する当該新しいアクティブ・オブジェクトを生成するステップと、
    前記サービス・コンポーネントを一の所望の状態、すなわち前記インスタンス化されたサービス・コンポーネントの一の所望の振る舞いを達成するために必要とされる前記サービス状態において、一の所望の状態を達成することによりコンポーネント特有のサービスを提供すべく管理するように、前記新しいアクティブ・オブジェクトの前記サービス状態を構成するステップと、
    前記インスタンス化されたサービス・コンポーネントから必要とされる一のサービスの使用可能性に基づく一の肯定確認を、前記新しいアクティブ・オブジェクトから送るステップと、
    一の新しいアクティブ・オブジェクトをインスタンス化しないとの否定的な決定に応答して、既存の一のアクティブ・オブジェクトの一のサービス状態を一の現在の状態からそれとは異なる一の所望の状態、すなわち前記インスタンス化されたサービス・コンポーネントの一の所望の振る舞いを達成するために必要とされる前記サービス状態に再構成するステップと、
    前記複合サービスの満たされていない依存関係を検出するステップと、
    前記複合サービスの前記満たされていない依存関係を分析するステップと、
    前記満たされていない依存関係を満たすように、使用可能なサポーティング・サービス及び使用可能なサポーティング資源を前記複合サービスと整合化させるステップと、
    を含む、方法
  2. 前記複合サービスに関連するサポーティング・サービス及びサポーティング資源をオンライン化するために満たさなければならないような依存関係を識別するステップをさらに含み、前記依存関係が、一の依存関係グラフを使用して識別される、請求項1に記載の方法
  3. 前記整合化させるステップが、
    前記使用可能なサポーティング・サービス及び前記使用可能なサポーティング資源を前記複合サービスと完全に又は部分的に整合化させるステップをさらに含む、請求項1に記載の方法
  4. ビジネス目標を満たすように、前記サポーティング・サービス及び前記サポーティング資源の一の使用を計画するステップと、
    制約に基づき一のグローバル最適化を実行するステップとをさらに含む、請求項2に記載の方法
  5. 前記依存関係、要件、使用可能なサポーティング・サービス、使用可能なサポーティング資源、ポリシ、コンポーネントのプリファレンス及びビジネス目標に基づき、前記制約を策定するステップをさらに含む、請求項4に記載の方法
  6. 前記依存関係を識別する一の依存関係グラフを作成するステップをさらに含む、請求項2に記載の方法
  7. 前記サポーティング・サービス及び一の資源プール内の前記サポーティング資源の変更に応答して、前記複合サービスを連続的にサポートするステップをさらに含む、請求項2に記載の方法
  8. 前記複合サービス、前記サポーティング・サービス及び前記サポーティング資源が、一の分散ネットワークの一部であり、アクティブ・オブジェクトが一のアクティブ・リポジトリ内に格納される、請求項2に記載の方法
  9. 前記複合サービスを分解するためのステップをさらに含み、
    当該分解するためのステップが、
    一のイベントを受け取ることに応答して、識別されたサービスを管理すべき1セットのアクティブ・オブジェクトを利用することにより、コンポーネント及び依存関係を識別するステップを含み、
    前記イベントが、一のポリシ、前記複合サービスを分解するための管理者コマンド及び一のコンポーネントの障害のうちの1つによってトリガされ、
    一のシステムによって提供される他の複合サービスに影響しないように、前記1セットのアクティブ・オブジェクトを使用して前記複合サービスを系統的に分解するステップをさらに含む、請求項1に記載の方法
  10. 前記複合サービスの一の状態内に一の変更を導入することにより、前記サポーティング・サービス及び前記サポーティング資源に関連する前記複合サービスを配備するステップと、
    前記複合サービスの前記状態内に前記変更を導入することにより、前記複合サービスを分解するステップとをさらに含む、請求項2に記載の方法
  11. データ処理システムであって、
    バス・システムと、
    前記バス・システムに接続された通信システムと、
    前記バス・システムに接続され且つ1セットの命令及び一の複合サービスを含むメモリと、
    前記メモリに通信可能に接続された処理ユニットとを備え、
    前記処理ユニットが、前記1セットの命令を実行することにより、
    一のサービス要求通知を処理するようにインスタンス化された一のサービス・コンポーネントを管理すべき一のアクティブ・オブジェクト用の一のアクティブ・テンプレートにして、一のアクティブ・オブジェクトを含む一のアクティブ・テンプレートを識別し、
    前記インスタンス化されたサービス・コンポーネントを管理すべき前記識別されたアクティブ・テンプレートにおいて一の新しいアクティブ・オブジェクトをインスタンス化するか否かを決定し、
    一の新しいアクティブ・オブジェクトをインスタンス化するとの肯定的な決定に応答して、前記サービス要求通知のサービス状態を有する当該新しいアクティブ・オブジェクトを生成するステップと、
    前記サービス・コンポーネントを一の所望の状態、すなわち前記インスタンス化されたサービス・コンポーネントの一の所望の振る舞いを達成するために必要とされる前記サービス状態において、一の所望の状態を達成することによりコンポーネント特有のサービスを提供すべく管理するように、前記新しいアクティブ・オブジェクトの前記サービス状態を構成し、
    前記インスタンス化されたサービス・コンポーネントから必要とされる一のサービスの使用可能性に基づく一の肯定確認を、前記新しいアクティブ・オブジェクトから送り、
    一の新しいアクティブ・オブジェクトをインスタンス化しないとの否定的な決定に応答して、既存の一のアクティブ・オブジェクトの一のサービス状態を一の現在の状態からそれとは異なる一の所望の状態、すなわち前記インスタンス化されたサービス・コンポーネントの一の所望の振る舞いを達成するために必要とされる前記サービス状態に再構成し、
    前記複合サービスの満たされていない依存関係を検出し、
    前記複合サービスの前記満たされていない依存関係を分析し、
    前記満たされていない依存関係を満たすように、使用可能なサポーティング・サービス及び使用可能なサポーティング資源を前記複合サービスと整合化させる、
    データ処理システム。
  12. 一の複合サービスを作成する機能をコンピュータに実現させるためのコンピュータ・プログラムであって、
    一のサービス要求通知を処理するようにインスタンス化された一のサービス・コンポーネントを管理すべき一のアクティブ・オブジェクト用の一のアクティブ・テンプレートにして、一のアクティブ・オブジェクトを含む一のアクティブ・テンプレートを識別するためのコンピュータ使用可能なプログラム・コードと、
    前記インスタンス化されたサービス・コンポーネントを管理すべき前記識別されたアクティブ・テンプレートにおいて一の新しいアクティブ・オブジェクトをインスタンス化するか否かを決定するためのコンピュータ使用可能なプログラム・コードと、
    一の新しいアクティブ・オブジェクトをインスタンス化するとの肯定的な決定に応答して、前記サービス要求通知のサービス状態を有する当該新しいアクティブ・オブジェクトを生成するためのコンピュータ使用可能なプログラム・コードと、
    前記サービス・コンポーネントを一の所望の状態、すなわち前記インスタンス化されたサービス・コンポーネントの一の所望の振る舞いを達成するために必要とされる前記サービス状態において、一の所望の状態を達成することによりコンポーネント特有のサービスを提供すべく管理するように、前記新しいアクティブ・オブジェクトの前記サービス状態を構成するためのコンピュータ使用可能なプログラム・コードと、
    前記インスタンス化されたサービス・コンポーネントから必要とされる一のサービスの使用可能性に基づく一の肯定確認を、前記新しいアクティブ・オブジェクトから送るためのコンピュータ使用可能なプログラム・コードと、
    一の新しいアクティブ・オブジェクトをインスタンス化しないとの否定的な決定に応答して、既存の一のアクティブ・オブジェクトの一のサービス状態を一の現在の状態からそれとは異なる一の所望の状態、すなわち前記インスタンス化されたサービス・コンポーネントの一の所望の振る舞いを達成するために必要とされる前記サービス状態に再構成するためのコンピュータ使用可能なプログラム・コードと、
    前記複合サービスの満たされていない依存関係を検出するためのコンピュータ使用可能なプログラム・コードと、
    前記複合サービスの前記満たされていない依存関係を分析するためのコンピュータ使用可能なプログラム・コードと、
    前記満たされていない依存関係を満たすように、使用可能なサポーティング・サービス及び使用可能なサポーティング資源を前記複合サービスと整合化させるためのコンピュータ使用可能なプログラム・コードと、
    を含む、コンピュータ・プログラム。
  13. 前記複合サービスのコンポーネントを識別するためのコンピュータ使用可能なプログラム・コードと、
    前記識別されたコンポーネントを構成することにより、前記複合サービスを一の現在の状態から一の所望の状態に変更するためのコンピュータ使用可能なプログラム・コードとをさらに含む、請求項12に記載のコンピュータ・プログラム。
  14. 一の依存関係ツリーから前記複合サービスを形成するためのコンピュータ使用可能なプログラム・コードをさらに含み、
    前記複合サービスの前記識別されたコンポーネントが、一のアクティブ・リポジトリ内のアクティブ・オブジェクト及びアクティブ・テンプレートである、請求項13に記載のコンピュータ・プログラム。
  15. 前記アクティブ・リポジトリが、1セットの複合サービスをアクティブに管理し、前記1セットの複合サービスが、デマンドに基づき、前記1セットの複合サービスを作成し、更新し、分解することにより管理される、請求項14に記載のコンピュータ・プログラム。
JP2009515480A 2006-06-15 2007-06-14 サービス・インフラストラクチャのオン・デマンド合成及び分解のための方法及び装置 Expired - Fee Related JP5068313B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/453,741 2006-06-15
US11/453,741 US7496893B2 (en) 2006-06-15 2006-06-15 Method for no-demand composition and teardown of service infrastructure
PCT/US2007/013941 WO2007146368A2 (en) 2006-06-15 2007-06-14 Method and apparatus for on-demand composition and teardown of service infrastructure

Publications (2)

Publication Number Publication Date
JP2009540469A JP2009540469A (ja) 2009-11-19
JP5068313B2 true JP5068313B2 (ja) 2012-11-07

Family

ID=38832533

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009515480A Expired - Fee Related JP5068313B2 (ja) 2006-06-15 2007-06-14 サービス・インフラストラクチャのオン・デマンド合成及び分解のための方法及び装置

Country Status (8)

Country Link
US (2) US7496893B2 (ja)
EP (1) EP2035925A4 (ja)
JP (1) JP5068313B2 (ja)
CN (1) CN101449242B (ja)
BR (1) BRPI0713643A2 (ja)
IL (1) IL195214A (ja)
TW (1) TW200820075A (ja)
WO (1) WO2007146368A2 (ja)

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7950007B2 (en) * 2006-06-15 2011-05-24 International Business Machines Corporation Method and apparatus for policy-based change management in a service delivery environment
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
US7519711B2 (en) * 2006-06-15 2009-04-14 International Business Machines Corporation Method for middleware assisted system integration in a federated environment
US9274921B2 (en) * 2006-12-27 2016-03-01 International Business Machines Corporation System and method for managing code displacement
US20090165021A1 (en) * 2007-10-23 2009-06-25 Microsoft Corporation Model-Based Composite Application Platform
US8751626B2 (en) * 2007-10-23 2014-06-10 Microsoft Corporation Model-based composite application platform
WO2009067709A2 (en) * 2007-11-21 2009-05-28 Motive, Incorporated Service management system and method of executing a policy in a network
US8370795B1 (en) * 2008-01-31 2013-02-05 Intuit Inc. Method and system for explaining a value of a field in a form
US8307329B2 (en) 2008-02-07 2012-11-06 Microsoft Corporation Implicit composition of component bindings
US8108831B2 (en) * 2008-02-07 2012-01-31 Microsoft Corporation Iterative component binding
US8954550B2 (en) * 2008-02-13 2015-02-10 Microsoft Corporation Service dependency discovery in enterprise networks
US8935371B2 (en) * 2008-02-25 2015-01-13 Sap Se Hierarchical system operation in an adaptive computing environment
US9104794B2 (en) * 2008-07-15 2015-08-11 Microsoft Technology Licensing, Llc Automatic incremental application dependency discovery through code instrumentation
US8051332B2 (en) 2008-07-15 2011-11-01 Avicode Inc. Exposing application performance counters for .NET applications through code instrumentation
US8689231B2 (en) * 2009-06-30 2014-04-01 Sap Ag System and method for ordering tasks with complex interrelationships
US8832676B2 (en) * 2009-09-30 2014-09-09 Zynga Inc. Apparatuses, methods and systems for a social networking application updater
US8352610B2 (en) * 2009-11-25 2013-01-08 International Business Machines Corporation Matching interest and availability of services in distributed federated service domains
US8438573B2 (en) * 2010-01-15 2013-05-07 Oracle International Corporation Dependency on a resource type
US8583798B2 (en) * 2010-01-15 2013-11-12 Oracle International Corporation Unidirectional resource and type dependencies in oracle clusterware
US9098334B2 (en) * 2010-01-15 2015-08-04 Oracle International Corporation Special values in oracle clusterware resource profiles
US20110179173A1 (en) * 2010-01-15 2011-07-21 Carol Colrain Conditional dependency in a computing cluster
US9207987B2 (en) * 2010-01-15 2015-12-08 Oracle International Corporation Dispersion dependency in oracle clusterware
US8949425B2 (en) 2010-01-15 2015-02-03 Oracle International Corporation “Local resource” type as a way to automate management of infrastructure resources in oracle clusterware
US9069619B2 (en) * 2010-01-15 2015-06-30 Oracle International Corporation Self-testable HA framework library infrastructure
US9026589B1 (en) * 2010-05-04 2015-05-05 Amazon Technologies, Inc. Stubbing techniques in distributed-services environments
WO2011141759A1 (en) * 2010-05-10 2011-11-17 Telefonaktiebolaget L M Ericsson (Publ) System and method for auto-scaling information distribution using distributed processing elements
US8930941B2 (en) * 2010-05-26 2015-01-06 Tibco Software Inc. Capability model for deploying componentized applications
US9178766B2 (en) * 2010-06-28 2015-11-03 Amazon Technologies, Inc. Provisioning multiple network resources
US8819683B2 (en) * 2010-08-31 2014-08-26 Autodesk, Inc. Scalable distributed compute based on business rules
US8615755B2 (en) * 2010-09-15 2013-12-24 Qualcomm Incorporated System and method for managing resources of a portable computing device
JPWO2012114889A1 (ja) * 2011-02-23 2014-07-07 日本電気株式会社 アプリケーション構築配置システム、アプリケーション構築配置方法、およびプログラム
US9389922B2 (en) 2011-03-11 2016-07-12 International Business Machines Corporation Declarative service domain federation
JP5914646B2 (ja) * 2011-07-07 2016-05-11 エンパイア テクノロジー ディベロップメント エルエルシー 集約された環境におけるベンダ最適化
US9817807B1 (en) * 2011-08-23 2017-11-14 Amazon Technologies, Inc. Selecting platform-supported services
US8862941B2 (en) 2011-09-16 2014-10-14 Tripwire, Inc. Methods and apparatus for remediation execution
US8819491B2 (en) 2011-09-16 2014-08-26 Tripwire, Inc. Methods and apparatus for remediation workflow
US9977653B2 (en) * 2012-06-30 2018-05-22 International Business Machines Corporation Discovery and modeling of deployment actions for multiple deployment engine providers
US8935234B2 (en) * 2012-09-04 2015-01-13 Oracle International Corporation Referentially-complete data subsetting using relational databases
CN103269282A (zh) 2013-04-25 2013-08-28 杭州华三通信技术有限公司 网络配置自动部署方法和装置
US10261882B2 (en) 2014-01-31 2019-04-16 Hewlett Packard Enterprise Development Lp Functional unit promotion to management unit
US9258196B2 (en) 2014-02-05 2016-02-09 International Business Machines Corporation Composite service pre-provisioning
US9705995B2 (en) * 2014-03-18 2017-07-11 Axis Ab Capability monitoring in a service oriented architecture
US11570065B2 (en) 2014-04-09 2023-01-31 Convida Wireless, Llc Service enabler function
CN105335207B (zh) * 2014-05-29 2019-04-12 国际商业机器公司 用于管理虚拟机实例的方法和装置
US9965263B2 (en) * 2014-06-02 2018-05-08 Gogrid, LLC Cloud orchestration engine
WO2015194139A1 (ja) * 2014-06-17 2015-12-23 日本電気株式会社 情報処理装置、配備方法、及び、記録媒体
US10282187B2 (en) 2014-07-03 2019-05-07 Oracle International Corporation Efficient application patching in heterogeneous computing environments
US11356340B2 (en) * 2014-09-29 2022-06-07 Hewlett Packard Enterprise Development Lp Provisioning a service
US9778926B2 (en) * 2014-10-30 2017-10-03 Google Inc. Minimizing image copying during partition updates
WO2016102297A1 (en) * 2014-12-24 2016-06-30 Koninklijke Kpn N.V. Method for controlling on-demand service provisioning
US9886263B2 (en) * 2015-03-24 2018-02-06 Oracle International Corporation Techniques for efficient application configuration patching
CN105007323A (zh) * 2015-07-22 2015-10-28 上海斐讯数据通信技术有限公司 一种云资源的编排系统和方法
US11263006B2 (en) 2015-11-24 2022-03-01 Vmware, Inc. Methods and apparatus to deploy workload domains in virtual server racks
US10313479B2 (en) * 2015-11-24 2019-06-04 Vmware, Inc. Methods and apparatus to manage workload domains in virtual server racks
WO2017129248A1 (en) * 2016-01-28 2017-08-03 Hewlett Packard Enterprise Development Lp Service orchestration
US10037536B2 (en) 2016-02-13 2018-07-31 At&T Intellectual Property I, L.P. Method and apparatus for autonomous services composition
WO2017208431A1 (ja) * 2016-06-03 2017-12-07 株式会社日立製作所 管理システム及びリソーススケジューリング方法
US10922089B2 (en) * 2016-09-22 2021-02-16 Groupon, Inc. Mobile service applications
JP2018055479A (ja) * 2016-09-29 2018-04-05 富士通株式会社 サービス条件処理プログラム、装置、及び方法
US10454836B2 (en) * 2016-11-01 2019-10-22 At&T Intellectual Property I, L.P. Method and apparatus for dynamically adapting a software defined network
US10284730B2 (en) 2016-11-01 2019-05-07 At&T Intellectual Property I, L.P. Method and apparatus for adaptive charging and performance in a software defined network
US10469376B2 (en) 2016-11-15 2019-11-05 At&T Intellectual Property I, L.P. Method and apparatus for dynamic network routing in a software defined network
US10039006B2 (en) 2016-12-05 2018-07-31 At&T Intellectual Property I, L.P. Method and system providing local data breakout within mobility networks
US10264075B2 (en) * 2017-02-27 2019-04-16 At&T Intellectual Property I, L.P. Methods, systems, and devices for multiplexing service information from sensor data
US10469286B2 (en) 2017-03-06 2019-11-05 At&T Intellectual Property I, L.P. Methods, systems, and devices for managing client devices using a virtual anchor manager
US10212289B2 (en) 2017-04-27 2019-02-19 At&T Intellectual Property I, L.P. Method and apparatus for managing resources in a software defined network
US10466979B1 (en) * 2017-06-01 2019-11-05 Nationwide Mutual Insurance Company Software requirements creating and tracking system and method
CN107508704A (zh) * 2017-08-16 2017-12-22 郑州云海信息技术有限公司 一种云服务的生成方法及生成装置
JP6984087B2 (ja) * 2017-10-11 2021-12-17 日本電信電話株式会社 サービス開発システム、リソース予測方法及びサービス開発プログラム
CN107729046A (zh) * 2017-10-17 2018-02-23 福建富士通信息软件有限公司 一种软件版本自动化发布方法及装置
US10360012B2 (en) * 2017-11-09 2019-07-23 International Business Machines Corporation Dynamic selection of deployment configurations of software applications
EP3769472A4 (en) * 2018-03-23 2021-11-24 Schneider Electric USA, Inc. PROGRESSIVE CLOUD ARCHITECTURE SYSTEM AND METHODS
US11196643B2 (en) 2018-04-04 2021-12-07 Hewlett Packard Enterprise Development Lp State transitions for a set of services
US11175802B2 (en) * 2018-09-21 2021-11-16 Sap Se Configuration object deletion manager
JP7046217B2 (ja) * 2018-10-03 2022-04-01 三菱電機株式会社 ソフトウェア解析装置、ソフトウェア解析方法およびソフトウェア解析プログラム
US11281491B2 (en) 2018-11-21 2022-03-22 Hewlett Packard Enterprise Development Lp Execution of services concurrently
US11556321B2 (en) * 2019-09-06 2023-01-17 International Business Machines Corporation Deploying microservices across a service infrastructure
US11500687B2 (en) 2019-09-27 2022-11-15 Tencent America LLC Method and apparatus for cloud service
US11775350B2 (en) 2019-09-28 2023-10-03 Tencent America LLC Compute resource estimation for function implementation on computing platform
US11356382B1 (en) * 2020-09-30 2022-06-07 Amazon Technologies, Inc. Protecting integration between resources of different services using service-generated dependency tags

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2326253A (en) * 1997-06-10 1998-12-16 Advanced Risc Mach Ltd Coprocessor data access control
US7024450B1 (en) * 1997-10-06 2006-04-04 Mci, Inc. Method and apparatus for deploying service modules among service nodes distributed in an intelligent network
US6330689B1 (en) 1998-04-23 2001-12-11 Microsoft Corporation Server architecture with detection and recovery of failed out-of-process application
US6247113B1 (en) * 1998-05-27 2001-06-12 Arm Limited Coprocessor opcode division by data type
US6330710B1 (en) * 1998-06-19 2001-12-11 At&T Corp. Servlet-based architecture for dynamic service composition
US6336138B1 (en) * 1998-08-25 2002-01-01 Hewlett-Packard Company Template-driven approach for generating models on network services
US6286047B1 (en) * 1998-09-10 2001-09-04 Hewlett-Packard Company Method and system for automatic discovery of network services
US6901442B1 (en) 2000-01-07 2005-05-31 Netiq Corporation Methods, system and computer program products for dynamic filtering of network performance test results
US6697806B1 (en) * 2000-04-24 2004-02-24 Sprint Communications Company, L.P. Access network authorization
US7051098B2 (en) 2000-05-25 2006-05-23 United States Of America As Represented By The Secretary Of The Navy System for monitoring and reporting performance of hosts and applications and selectively configuring applications in a resource managed system
JP2002041489A (ja) * 2000-07-25 2002-02-08 Mitsubishi Electric Corp 同期信号生成回路、それを用いたプロセッサシステムおよび同期信号生成方法
US7076728B2 (en) * 2000-12-22 2006-07-11 International Business Machines Corporation Method and apparatus for end-to-end content publishing system using XML with an object dependency graph
US7287147B1 (en) * 2000-12-29 2007-10-23 Mips Technologies, Inc. Configurable co-processor interface
US7013461B2 (en) * 2001-01-05 2006-03-14 International Business Machines Corporation Systems and methods for service and role-based software distribution
US6996588B2 (en) * 2001-01-08 2006-02-07 International Business Machines Corporation Efficient application deployment on dynamic clusters
US7464154B2 (en) * 2001-05-18 2008-12-09 Network Resonance, Inc. System, method and computer program product for analyzing data from network-based structured message stream
US7694303B2 (en) * 2001-09-25 2010-04-06 Sun Microsystems, Inc. Method for dynamic optimization of multiplexed resource partitions
US7216158B2 (en) * 2002-01-18 2007-05-08 Bea Systems, Inc. System, method and interface for controlling server lifecycle
US20040003390A1 (en) * 2002-06-27 2004-01-01 Microsoft Corporation System and method for installing a software application in a non-impactfull manner
US7313793B2 (en) * 2002-07-11 2007-12-25 Microsoft Corporation Method for forking or migrating a virtual machine
US7243306B1 (en) * 2002-07-17 2007-07-10 International Business Machines Corporation Service descriptor for a multitier compute infrastructure
US7096459B2 (en) * 2002-09-11 2006-08-22 International Business Machines Corporation Methods and apparatus for root cause identification and problem determination in distributed systems
US20040060054A1 (en) * 2002-09-20 2004-03-25 International Business Machines Corporation Composition service for autonomic computing
US7103597B2 (en) * 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US8140677B2 (en) 2002-11-21 2012-03-20 International Business Machines Corporation Autonomic web services hosting service
US7526452B2 (en) * 2002-12-16 2009-04-28 International Business Machines Corporation Apparatus, methods and computer programs for metering and accounting for services accessed over a network
US20060294238A1 (en) * 2002-12-16 2006-12-28 Naik Vijay K Policy-based hierarchical management of shared resources in a grid environment
US7072807B2 (en) * 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7890543B2 (en) * 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7392399B2 (en) * 2003-05-05 2008-06-24 Sun Microsystems, Inc. Methods and systems for efficiently integrating a cryptographic co-processor
US7426736B2 (en) * 2003-05-22 2008-09-16 International Business Machines Corporation Business systems management solution for end-to-end event management using business system operational constraints
US20040261060A1 (en) * 2003-06-20 2004-12-23 Haselden J. Kirk Dependency based package deployment
US7703029B2 (en) * 2003-07-28 2010-04-20 Sap Ag Grid browser component
US7584454B1 (en) * 2003-09-10 2009-09-01 Nextaxiom Technology, Inc. Semantic-based transactional support and recovery for nested composite software services
US7103874B2 (en) * 2003-10-23 2006-09-05 Microsoft Corporation Model-based management of computer systems and distributed applications
US7926051B2 (en) * 2003-11-10 2011-04-12 International Business Machines Corporation Automatic parallel non-dependent component deployment
US7568195B2 (en) 2003-12-16 2009-07-28 Microsoft Corporation Determining a maximal set of dependent software updates valid for installation
US7340654B2 (en) * 2004-06-17 2008-03-04 Platform Computing Corporation Autonomic monitoring in a grid environment
US7712100B2 (en) * 2004-09-14 2010-05-04 International Business Machines Corporation Determining a capacity of a grid environment to handle a required workload for a virtual grid job request
US7222149B2 (en) * 2004-09-17 2007-05-22 Microsoft Corporation Ordering decision nodes in distributed decision making
GB0421646D0 (en) * 2004-09-29 2004-10-27 British Telecomm Sharing data processing resources
US7668741B2 (en) * 2005-01-06 2010-02-23 International Business Machines Corporation Managing compliance with service level agreements in a grid environment
US20060195559A1 (en) * 2005-02-28 2006-08-31 University Of Westminster Services for grid computing
US7945041B2 (en) * 2005-05-27 2011-05-17 International Business Machines Corporation Method, system and program product for managing a customer request
CN100583137C (zh) * 2005-08-26 2010-01-20 南京邮电大学 基于内部工作流的网格服务构造方法
US20070050431A1 (en) * 2005-08-26 2007-03-01 Microsoft Corporation Deploying content between networks
US7899903B2 (en) * 2005-09-30 2011-03-01 Microsoft Corporation Template based management system
CN1764183A (zh) * 2005-11-03 2006-04-26 西安交通大学 一种基于计算机网络的QoS驱动的提供组合Web服务的计算机系统
US7620653B1 (en) * 2006-02-01 2009-11-17 Amazon Technologies, Inc. Service for retrieving and aggregating data used to generate web pages or other content items
US7496893B2 (en) * 2006-06-15 2009-02-24 International Business Machines Corporation Method for no-demand composition and teardown of service infrastructure
US20070294364A1 (en) 2006-06-15 2007-12-20 International Business Machines Corporation Management of composite software services
US7950007B2 (en) * 2006-06-15 2011-05-24 International Business Machines Corporation Method and apparatus for policy-based change management in a service delivery environment
US7519711B2 (en) * 2006-06-15 2009-04-14 International Business Machines Corporation Method for middleware assisted system integration in a federated environment

Also Published As

Publication number Publication date
US20080209397A1 (en) 2008-08-28
EP2035925A2 (en) 2009-03-18
US20070294668A1 (en) 2007-12-20
CN101449242A (zh) 2009-06-03
EP2035925A4 (en) 2010-11-03
IL195214A (en) 2012-05-31
CN101449242B (zh) 2013-03-20
JP2009540469A (ja) 2009-11-19
WO2007146368A3 (en) 2008-10-02
TW200820075A (en) 2008-05-01
US7496893B2 (en) 2009-02-24
US8191043B2 (en) 2012-05-29
WO2007146368A2 (en) 2007-12-21
IL195214A0 (en) 2009-08-03
BRPI0713643A2 (pt) 2014-06-24

Similar Documents

Publication Publication Date Title
JP5068313B2 (ja) サービス・インフラストラクチャのオン・デマンド合成及び分解のための方法及び装置
US8677318B2 (en) Management of composite software services
US11038778B2 (en) Methods and systems that provision distributed applications that invoke functions provided by a distributed-function-as-a-service feature
US7519711B2 (en) Method for middleware assisted system integration in a federated environment
US9967318B2 (en) Apparatus, systems, and methods for cloud agnostic multi-tier application modeling and deployment
US7568199B2 (en) System for matching resource request that freeing the reserved first resource and forwarding the request to second resource if predetermined time period expired
US8135841B2 (en) Method and system for maintaining a grid computing environment having hierarchical relations
US8108855B2 (en) Method and apparatus for deploying a set of virtual software resource templates to a set of nodes
US7631069B2 (en) Maintainable grid managers
US20210367852A1 (en) Determining formal models using weighting factors for computing elements in multi-domain environments
JP2006313545A (ja) ワークロード・スケジューラによる自動リソース・プロビジョニングを管理する方法、システム、およびコンピュータ・プログラム
JP2022097438A (ja) ロボティックプロセスオートメーション(rpa)ロボットの動的クラウドデプロイメント
Carrasco et al. Live migration of trans-cloud applications
Nastic et al. A serverless computing fabric for edge & cloud
Lublinsky et al. A kubernetes ‘bridge’operator between cloud and external resources
Lavacca Scheduling Jobs on Federation of Kubernetes Clusters
Brandle et al. Cloud computing patterns of expertise
Li et al. Model-based system configuration approach for Internetware
woon Ahn et al. Mirra: Rule-based resource management for heterogeneous real-time applications running in cloud computing infrastructures
Quint et al. Taming the complexity of elasticity, scalability and transferability in Cloud Computing-Cloud-Native applications for SMEs
Bhat et al. Preparing for Production Deployments
Jarzab et al. Adaptable Service Oriented Infrastructure Provisioning with Lightweight Containers Virtualization Technology.
Henschel Dimensioning, Performance and Optimization of Cloud-native Applications
Bellur Automating applications management in the enterprise using DMTF information models
Matsunaga Automatic enablement, coordination and resource usage prediction of unmodified applications on clouds

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100319

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120702

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: 20120731

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: 20120814

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

Free format text: PAYMENT UNTIL: 20150824

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees