JP4426797B2 - 依存性に基づく影響シミュレーションおよび脆弱性分析のための方法および装置 - Google Patents

依存性に基づく影響シミュレーションおよび脆弱性分析のための方法および装置 Download PDF

Info

Publication number
JP4426797B2
JP4426797B2 JP2003305288A JP2003305288A JP4426797B2 JP 4426797 B2 JP4426797 B2 JP 4426797B2 JP 2003305288 A JP2003305288 A JP 2003305288A JP 2003305288 A JP2003305288 A JP 2003305288A JP 4426797 B2 JP4426797 B2 JP 4426797B2
Authority
JP
Japan
Prior art keywords
service
model
dependency
components
services
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
JP2003305288A
Other languages
English (en)
Other versions
JP2004103014A (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 JP2004103014A publication Critical patent/JP2004103014A/ja
Application granted granted Critical
Publication of JP4426797B2 publication Critical patent/JP4426797B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/091Measuring contribution of individual network components to actual service level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • H04L41/5012Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF] determining service availability, e.g. which services are available at a certain point in time

Description

本発明は、分散型コンピューティングシステムに関し、更に特定すれば、かかる分散型コンピューティングシステムの様々なコンポーネント間の依存性に基づいてシミュレートしたサービス使用不能の潜在的な影響を分析し判定するための方法および装置に関する。
分散型システムのコンポーネント間の依存性の識別および追跡は、統合化された故障管理のためにますます重要になってきている。アプリケーション、サービス、およびそれらのコンポーネントは、様々なサポートサービスに頼っており、これらのサービスはサービス提供業者に外部委託される場合がある。更に、新たに生まれているウエブを用いた(ワールドワイドウエブを用いた)ビジネスアーキテクチャによって、ウエブを用いたe−ビジネス(電子ビジネス)アプリケーションを実行時に構成することが可能となっている。
「実行時」という言葉は、一般に、1本のソフトウエアがコンピュータのハードドライブ上の記憶装置に休止して単に存在しているのとは対照的に、1本のソフトウエアが実行されており、コンピュータシステムのメモリ内でアクティブである時間期間を指すことは理解されよう。このため、実行時にe−ビジネスアプリケーションを構成可能であるということは、システム/アプリケーションをダウンさせて再起動する必要なく、更に、アプリケーションを再コンパイルする必要なく、そうする機能を有するということである。従来、コンピュータプログラムのライフサイクルは、プログラムコードを書き、次いでコンパイルし(機械コードに翻訳し)、次いで実行する、というものであった。このため、上述の機能によって、数本のソフトウエアを組み合わせて1つの新しいアプリケーションを「実行中に」形成すること、すなわちアプリケーションをダウン/コンパイル/再起動する必要なく形成することが可能となる。
しかしながら、結果として、あるサービスにおいて生じた故障が、カスタマに提供されている他のサービスに影響を与える。すなわち、サービスは、他のサービスに対する依存性を有する。依存性は、単一のシステム上の異なるサービスのコンポーネント間に存在し、更に、多数のシステムおよびドメインにまたがる1つのサービスのクライアントおよびサーバコンポーネント間にも存在する。ここで、他のサービスに依存するサービスを依存者と呼び、他のサービスに依存されるサービスを先行者と呼ぶ。
多くの場合、1つのサービスが双方の役割を果たすことを注記しておくことは重要である(例えば、名前サービスは、多くのアプリケーションおよびサービスに必要とされるが、それ自体、オペレーティングシステムおよびネットワークプロトコルおよびインフラストラクチャ等、他のサービスの適切な機能に依存する)。更に、依存性の関係は推移的なものである。すなわち、所与のコンポーネントの依存者は、コンポーネント自体に加えて、コンポーネントの先行者(複数の先行者)を必要とする。
依存性は、エンドユーザサービス、システムサービス、アプリケーション、およびそれらの論理的および物理的コンポーネント等、分散型システムの様々なコンポーネント間に存在する。しかしながら、サービス依存性は、今日のシステムにおいて明確にされず、このため、問題の確定、切り離し、および解決が、特に難しくなる。
ソフトウエア開発(米国特許第4,751,635号および米国特許第5,960,196号等)、保守(米国特許第5,493,682号等)、およびソフトウエアパッケージング(米国特許第5,835,777号等)の分野における既存の技術は、プログラムパッケージの微小部分を形成する個々のソフトウエア要素およびモジュールを扱っており、ソフトウエアを構築してそれをソフトウエアプロダクトに抱き合わせで販売するために、プログラムソースコードの可用性を必要とする。ソースコードは、ソフトウエア開発者に利用可能であるが、サービスユーザには利用できない。本発明は、主に、すでにパッケージ化されているソフトウエアプロダクトに着目する。
電気通信学会規格1387.2(「Portable Operating System Interface(POSIX)system administration,part2:Software Administration」、IEEE、1995年)は、ソフトウエアの分配/展開/設置について述べている。IEEE規格が規定する機構は、新しいソフトウエアコンポーネント(インストールされる予定である)が既存のソフトウエアインストールと競合しないことを保証する。IEEE規格は、3種類の関係を識別する。すなわち、前提条件、前条件、同時条件であり、これらによって、かかるコンパチビリティのチェックが容易になる。これは、新しいソフトウエアをインストールする必要がある全てのシステムについて、個別に行われる。IEEE規格では、他のシステム上に存在するソフトウエアのインベントリは考慮されない。更に、IEEE規格は、インスタンス化したアプリケーションおよびサービスを扱っておらず、従って、実行時のコンポーネント間の依存性を求める手段については何も記述していない。
Open Group(Systems Management:Distributed Software Administration,CAE Specification C701,The Open Group,1998年1月)は、IEEE1387.2を拡張し、特定のシステム上のソフトウエアインストールツールによって呼び出されるいくつかのコマンド(swinstall、swlist、swmodify等)を規定している。また、Open Groupは、ソフトウエア定義ファイルフォーマットを規定して、上述のコマンドが必要とする情報が、そのコマンドが呼び出されるシステムから利用可能であることを確実とする。IEEE1387.2の欠点(すなわち、単一の切り離されたシステムに限定され、実行時のソフトウエア依存性を求める手段が無い)は、Open Groupの仕様にも当てはまる。
Current Operating System Inventoryの実施(IBMのAIX Object Data Manager(ODM)、LinuxのRed Hat Package Manager(PRM)、またはMicrosoftのWindows(登録商標) Registry等)は、OpenGroupの仕様およびIEEE1387.2規格に従うか、または自社開発フォーマットのソフトウエアインベントリを記述する。このため、上述の制約は、かかるCurrent Operetaing System Inventoryの実施にも当てはまる。
全プログラムパッケージの電子ソフトウエア分配(米国特許第6,009,525号および米国特許第5,721,824号等)またはアップデート/修正/修理/パッチ(米国特許第5,999,740号、米国特許第5,805,891号、および米国特許第5,953,533号等)のための技法は、定義上、(一度に1つまたは多くの)物理的なソフトウエアパッケージの分配/展開/インストールに制限されており、アプリケーションの実行時段階を考慮しない。更に、それらは、一度に1つのシステムを扱っており、複数のシステムにまたがったアプリケーションおよびサービスの局面を考慮しない。
また、既存のソフトウエア/ハードウエア構成(米国特許第5,867,714号等)における競合を求めるための技法も、単一のシステムに限定されており、実行時の局面を考慮しない。
既存の研究(米国特許第5,917,831号等)は、多くの場合、イベントの相関関係の範囲内のものであり(例えば、Gruschke等の「Integated Event Management:Event Correlation Using Dependency Graphs」、DSOM ‘98、1998年、およびKatker等、「Fault Isolation and Event Correlation for Intgrated Fault Management」、IM ‘97、1997年)、自社開発のフォーマットにおけるサービス依存性の識別および記述に焦点を当てているが、故障管理プロセスの異なるエンティティ間でどのように依存性情報が実際に交換される可能性があるかについては不明確なままである。外部委託されたアプリケーションの故障管理プロセスに関与する異なる関係者が、依存性追跡のために同一のツールセットを用いる可能性は低いので、依存性情報を規定し交換するためのオープンフォーマットを規定することが根本的に重要である。
また、故障管理プロセスが関与する分散型システムのコンポーネントに関連した異質性のため、既存の技法に制約があることを考えると、シミュレートしたシステム故障(例えばサービスの使用不能)の潜在的な影響を明らかにすることは極めて難しい。
米国特許第4,751,635号 米国特許第5,960,196号 米国特許第5,493,682号 米国特許第5,835,777号 米国特許第6,009,525号 米国特許第5,721,824号 米国特許第5,999,740号 米国特許第5,805,891号 米国特許第5,953,533号 米国特許第5,867,714号 米国特許第5,917,831号 電気通信学会規格1387.2(「Portable Operating System Interface(POSIX)system administration,part2:Software Administration」、IEEE、1995年) Open Group(Systems Management:Distributed Software Administration,CAE Specification C701,The Open Group,1998年1月 Gruschke等、「Integated Event Management:Event Correlation Using Dependency Graphs」、DSOM ‘98、1998年 Katker等、「Fault Isolation and Event Correlation for Intgrated Fault Management」、IM ‘97、1997年
要約すると、既存の技術において、ソフトウエアプロダクト間の関係を決定することに関するいくつかの技法が記述され実施されている。これらの既存の技法は、以下の欠点のうち1つ以上を有する。すなわち、
(a)ソフトウエアプロダクトのインストールおよび展開の段階のみに対処する。すなわち、設計および実行時の局面を取り入れようとしない。
(b)多数のシステムにまたがる終端間のアプリケーションおよびサービスを扱わない。すなわち、単一の切り離されたシステムに常駐するソフトウエアの特徴を扱う。
(c)ソフトウエアインベントリ情報は、自社開発のフォーマットにおいて記述されるので、様々な異種システム間でこの情報を共有することが極めて難しくなる。
(d)シミュレートされたサービス使用不能の潜在的な影響を効果的に識別しない。
本発明は、コンピューティング環境に従ってシミュレートされたコンポーネント故障の潜在的な影響を識別し、かかるシミュレートされたコンポーネント故障に対する前記コンピューティング環境の脆弱性を明らかにするための技法を提供する。一例として、本発明の技法は、分散型コンピューティング環境に適用可能である。また、コンピューティング環境は、自律型コンピューティング環境とすることも可能である。
例えば、本発明の一態様において、コンピューティング環境に関連した少なくとも1つの対象コンポーネントのシミュレートされた状況の潜在的な影響を明らかにするためのコンピュータに基づいた技法は、以下のステップ/動作を具備する。最初に、少なくとも1つの対象コンポーネントに依存する1つ以上のコンポーネントを識別し、1つ以上の識別されたコンポーネントの各々に関連付けられた潜在的な状況ステータスを判定する。次いで、該判定された状況ステータスに基づいて1つ以上の識別されたコンポーネントの少なくとも一部に関する情報をユーザに提示する。
ユーザに提示される情報は、判定された状況ステータスに基づいて1つ以上の識別されたコンポーネントの少なくとも一部に関連した脆弱性の表現を含む場合がある。一例として、この表現は、1つ以上の識別されたコンポーネントの各々に関連した故障の各可能性を示す脆弱性マップを含む場合がある。更に、ユーザに提示される情報は、潜在的に影響を受けるエンドユーザのリスト、潜在的に影響を受けるコンポーネントのリスト、および/または潜在的に影響を受けるホストのリストを含む場合がある。更に、ユーザに提示される情報は、少なくとも1つの対象コンポーネントのシミュレートされた状況の潜在的な影響の1つの判定、少なくとも1つの対象コンポーネントのシミュレートされた状況の潜在的な影響の1つの他の判定との比較を含む場合がある。
また、対象コンポーネントは、コンピューティング環境における既存のコンポーネント(例えばその環境において用いられる実際のコンポーネント)とすることができ、または、対象コンポーネントは、コンピューティング環境における既存のコンポーネントではない(例えば、その環境において用いることも可能であるコンポーネントを表す仮想コンポーネント)場合もある。
更に、1つ以上のコンポーネントの識別は、コンピューティング環境のコンポーネントの少なくとも一部に関連した1つ以上の関係の存在を表すモデルの少なくとも一部を横断することを含み、コンピューティング環境の少なくとも1つのコンポーネントに関連した全ライフサイクル(例えば、展開、インストール、および実行時を含む)を考慮に入れることができる。このモデルは、機能カテゴリ分類、構造カテゴリ分類、および動作カテゴリ分類から成る形態とすることができる。
一例として、コンポーネントは、サービス、アプリケーション、ミドルウエア、ハードウエア、デバイスドライバ、オペレーティングシステム、またはコンピューティング環境に関連したシステムとすることができる。しかしながら、「コンポーネント」という言葉は、これらの例に限定されるわけではない。
本発明のこれらおよび他の目的、特徴、および利点は、添付図面に関連付けて読むことができる以下の例示的な実施形態の詳細な説明から、明らかになろう。
本発明について、例示的な分散型コンピューティング環境という文脈の中で、以下に説明する。しかしながら、本発明は、かかる特定のコンピューティング環境に限定されないことは理解されよう。逆に、本発明は、より一般的に、問題を判定し、切り離し、解決するタスクを著しく容易にするために、依存性を管理する(例えば計算する、問い合わせる等)ことが望ましいコンピューティング環境であれば、どんなものにも適用可能である。
本明細書中で用いる場合、考察の文脈に応じて、「システム」という言葉を用いて、コンピュータシステム、ソフトウエアシステム、および/またはそれらの何らかの組み合わせを指すことができる。また、「システム」という言葉を用いて、アプリケーションおよび/またはサービスを指すことができる。このため、「多数のシステム」という言葉は、いくつかのシステムの集合を指す。また、「コンポーネント」という言葉は、システム自体、または、システムの1つ以上の部分を指すことができる。
上述のように、今日のシステムにおいてサービス依存性は明白になっておらず、このため、問題の判定、切り離し、および解決のタスクが特に難しくなっている。この問題を解決するには、異なるシステムおよびドメインにまたがるサービスおよびアプリケーション間の依存性を判定および計算する必要がある。すなわち、「グローバルな」サービス依存性モデルを確立し、結果として得られる有向グラフをシステムの管理者が上から下までおよび逆の順序で自由に見られるようにすることが必要である。かかる機構に対する必要性は、以下の2つの状況によって最も良く例示される。
第1の状況は、通常インターネットまたはアプリケーションサービスプロバイダ(ISP/ASP)によって提供される、外部委託されたサービスの管理を扱う。外部委託されたサービスは、層化されたサービス階層となり、例えば、ASPのサービスはISPが提供するIP接続性(インターネットプロトコル接続性)に依存し、一方、ISPは、電気通信事業者のワイドエリアネットワークに頼っている。全ての層において、サービスは、サービスアクセスポイント(SAP)を介してアクセスされる。SAPは、異なる組織ドメイン間の境界を定めるものであり、サービスレベルアグリーメント(SLA)を規定し観察する場所である。通常、これは、全ての層において、プロバイダが提示する特定のパラメータ集合を監視することによって行われる。上層サービスにおいて使用不能または性能劣化が起こった場合、サービス階層を上から下まで通り抜けて、問題の根本的な原因の識別をする必要がある。
第2の状況は、「実行中に」行うことができない、従ってサービスおよびそれらのカスタマに影響を与える、定期的な保守タスクを扱う。例えば、e−メールサーバをそれらのオペレーティングシステムの新しいレリースによって更新する、ネットワークデバイスを新しいファームウエアバージョンによって交換または更新する等である。あらゆる場合において、ネットワークおよびサーバ管理者は、保守によって、いくつの、更に具体的には、どのサービスおよびユーザが影響を受けるかを前もって判定することが重要である。このタスクを影響分析と呼ぶ。
影響分析の概念を採用することは、更に、影響シミュレーションおよび脆弱性分析の概念につながる。コンピュータシステム上で実行している特定のサービス(または特定のサービスインスタンス)を選択すると、影響シミュレーションによって、サービスの使用不能が起こると他のサービス、ユーザ、およびホストシステムのどれが影響を受ける可能性があるかを判定することができる。これによって、管理者は、既存の欠点を識別し、それを修理し、適用した修理が成功したか否かを検証するため、システム使用不能をシミュレートし、それらの環境の脆弱性を先回りして分析することができる。影響分析器に体系的にサービスデータを供給すると、分散型システム環境の「脆弱性マップ」を設定することができる。
上述のタスクは、更に、以下のファクタによって悪化する。
依存性モデルは、観察された問題の根本原因であり得るものを識別するための直接的な手段を提供する。システムの依存性グラフが明らかになれば、障害が起こったサービスからその先行者(同一のホストまたは異なるシステム上にコロケートしている)へとグラフを自由に見ることによって、どのエンティティが故障した可能性があるかが明らかとなる。グラフをそのルートへと(すなわち上方向に)横切ることによって、サービスの依存者、すなわち、このサービスが使用不能となった場合に故障する恐れのあるコンポーネントがわかる。以下の問題に対処する必要がある。
(a)規模:多くの関与するシステム間の依存性の数を計算することができるが、これは極めて多い場合がある。技術上の観点から見ると、完全な、インスタンス化された依存性モデルを単一の場所に格納することは、多くの場合、望ましくない(時には不可能である)。プラットフォームデータベースにおいてインスタンス化したネットワークマップを維持する等、ネットワーク管理プラットフォームにおいて用いられる従来の機構は、関与する依存性の変化する数およびダイナミクスのため、依存性に適用することはできない。
これらの2つの事実によって、アプリケーション、サービス、およびミドルウエア依存性モデルの展開のための「ネットワーク−管理−スタイル」の手法に従うことができなくなる。一例として、通常のサービス外部委託者のデータセンターは、極めて大量(数千)のウエブアプリケーションおよびデータベースサーバのホストとして働く。これは、例えばウエブアプリケーションおよびデータベースサーバの、非常に多くのプログラムインスタンスが同時に実行していることを意味する。依存性モデルを構築可能であるシステムは、管理プロセスに関与する複数のシステム間に依存性の格納および計算を分散させることによって、適切な拡張性を可能とする機構を提供しなければならない。
(b)ダイナミクス:ホストの下のアプリケーション(ウエブアプリケーションサーバ内で実行する)は、寿命が極めて短く、多くの場合、わずか数秒である。要求を受けると、ウエブアプリケーションのビジネス論理(通常、1つ以上のJava(登録商標) Servletとして実施される)は、アプリケーションサーバのServletエンジンによってインスタンス化され、そのタスクを実行し、次いで、Servletエンジンによって除去される。この結果、これらの動的エンティティ間の依存性を計算するためのシステムは、データの正確さとこのデータを検索するために発生した作業負荷との間のトレードオフに対処しなければならない。
(c)異質性:異質性は、3つの異なる特徴で生じる。第1に、カスタマに提供されるサービスには、大きな相違がある。第2に、サービスをカスタマに提供することに関与する様々な提供業者が存在し得る。最後に、サービスを実施する製品は、様々なベンダーから提供される可能性がある。依存性を計算するシステムは、特定のオペレーティングシステム、ネットワークプロトコル、ソフトウエアプロダクト、およびカスタマに提供されるサービスから独立した言語を提供しなければならない。
(d)手作業による依存性データの保守:サービス依存性モデルの獲得は、単一のホストシステムに限定しても、今日のシステムが適切な管理手段を提供していないので、それ自体が難題である。「手段」という言葉は、管理アプリケーションによってアクセス可能であるように、明確に定義された(時には標準化さえされている)インタフェースを介して、(管理された)リソースの管理特徴および機能を提示するプログラムコードを指すことは理解されよう。更に、管理されたリソースから利用可能であっても、依存性データは、今日の管理システムによって活用されない。代わりに、依存性情報は、特定の管理コンポーネントに手作業で入力されなければならないだけでなく、自社開発フォーマットで入力されなければならない。従って、依存性情報は、完全でなく、(誤りを起こしがちな手作業処理のため)時代遅れになっており、時には一貫性がない場合さえある。なぜなら、異なるオペレータがルールを別個に入力し、自動化した方法で一貫性についてルールベースをチェックする方法がないからである。
(e)依存性の分類:依存性の概念は、極めて粗いものであり、有用にするためには改良する必要がある。この例は、依存性の強さ(コンポーネントの先行者が故障した場合にそのコンポーネントが影響を受ける可能性および程度を示す)、重大さ(企業の目標および方針に関してこの依存性がどのくらい重要であるか)、形式化の程度(すなわち依存性を取得するのがどのくらい難しいか)、および他の多くのことである。依存性に属性を付加して、より適切にそれらを限定することができるようにする必要があり、従って、依存性表現にこれらの属性を反映させる必要がある。
(f)問題判定機構:全システムに格納されたローカルな依存性グラフを均一な依存性モデルに組み合わせるための更に別の機能が望まれる。更に、これらの機能は、管理アプリケーションが依存性モデルに対して問い合わせを発することができるAPI(アプリケーションプログラミングインタフェース)を提供しなければならない。これらの問い合わせは、特定のサービスが直接依存するエンティティを検索すること、または、副先行者を含むノード集合全体を再帰的に判定することを可能とする。管理アプリケーションによって受信されたノードのリストによって、特定の問題判定ルーチンを実行して、これらのサービスが動作中であるか否かを調べることができる。
先の考察によって、サービスライフサイクルの異なる段階間でマッピングを行うことが重要であることが示される。
(a)(抽象的な)サービスのカスタマへの提供。例えば、「ウエブホスティング」、「管理された記憶装置」、「IP接続性」、「管理されたデータベース」等である。
(b)サービスの実施。すなわち、例えば「IBM Universal Databaseバージョン7.1」、「WebSphere Application Serverバージョン3.2」のようなサービスを提供するためのプロダクト(複数のプロダクト)の使用。
(c)実施のインスタンス(複数のインスタンス)の実行。すなわち、プロセスまたはタスク、例えば「db2 daemon」、「nfs daemon」。
全ての段階において利用可能な情報を個別に得るタスクは実現可能であるが、3つの段階を均一な依存性モデルに組み合わせることは、難題であり、以前の研究では行われていない。更に、人による介入および依存性データの保守の必要性をなくしつつ、基礎的な環境の規模、ダイナミクス、および異質性の要求に対処する、効率的に計算可能な依存性モデルを確立する必要がある。
図面に関連付けて以下に例示するが、本発明は、これらおよび他の必要性に応える。すなわち、本発明は、管理アプリケーションの代わりに分散型システムのコンポーネント間の実行時依存性(「依存性モデル」)を計算する機構を有する。本発明は、個々のコンピュータシステムの構成情報を検索するための機構を提供するか、またはかかるデータを機械可読フォーマットで提供する、コンピュータシステムから依存性情報を検索するための一般的かつ一貫した手法を提供する。
上述のシステムの1つの利点は、個々のアプリケーション/サービスに手段を備える必要なく、これらのコンピュータシステムから大量のアプリケーション/サービス管理情報を取得可能なことである。しかしながら、かかるアプリケーション/サービスの手段が利用可能である場合、これを本発明によって用いることができる。
本発明によって説明されるシステムの実行は、特定の(管理)アプリケーション(影響分析器、根本原因分析器等)、ネットワーク管理プラットフォーム(IBM/Tivoli NetView、HP OpenViewまたはAprisma Spectrum)、または従来のネットワーク管理システムおよびプラットフォームに基づく管理アプリケーションのいずれかによって作動させることができる。
本発明は、とりわけ、以下のための機構を提供する。
(a)加入サービスの性能劣化および使用不能を観察する。
(b)依存性モデルの異なる層を上から下まで通り抜けることによって、問題の根本原因を突き止める(なぜなら、様々なサービスが他のサービス提供業者に外部委託されており、この(再帰的な)依存性モデルの横断はドメインの境界を横切るからである)。
(c)依存性モデルを下から上まで自由に見ることによって、サービスの使用不能の影響を分析する。
(d)サービスまたはホストシステムの使用不能が、他のサービス、ユーザ、および他のホストシステムに及ぼす潜在的な影響をシミュレートする。
本発明は、アプリケーションまたはサービスのライフサイクルの間に利用可能な依存性情報を組み合わせる(すなわち、アプリケーション/サービスの設計から展開、インストール、および実行時段階まで)。この情報は、以下のモデル内に維持される。
(a)機能モデル:好適な実施形態では、機能モデルは、異なる一般サービス(データベースサービス、名前サービス、ウエブアプリケーションサービス、接続性サービス等)間の依存性を規定する。機能モデルは、特定のサービス内のクライアント/サーバ関係を記述しない。更に、機能モデルは、サービスを実施するためにどの具体的な製品を選択したかも、それらの実際の構成も、考慮しない。機能モデルは、他のモデル(以下で説明する)を結び付ける主要な制約を確立する。すなわち、別のモデルは、具体的なシステムインフラストラクチャに関して機能モデルにおいて規定される依存性を改良することができるが、サービスカテゴリ間に新たな依存性を導入してはならない。このモデルは、極めてコンパクトであり、一般的であり、好ましくは管理システム上に格納される。
(b)構造モデル:好適な実施形態では、構造モデルは、機能モデルにおいて規定されたサービスを実現するソフトウエアコンポーネントの詳細な記述を含む。構造モデルは、インストール/展開段階の間に捕捉された詳細事項を提供し、具体的なシステムのソフトウエアインベントリを考慮することによって機能モデルを補足する。構造モデルは、特定のシステム上でどのサービスをインストールおよび構成するか、ならびに、全てのサービスについて、システムがクライアントまたはサーバのどちらの役割で動作するかに関する情報を提供する。システムおよびサービスの数が潜在的に多いことによって、遠隔位置からこれらの依存性を追跡することは難しくなる。このため、管理されたリソースの近くで、または管理されたリソースにおいて、このモデルを格納することが望ましい。
(c)動作モデル:好適な実施形態では、ソフトウエアパッケージがインスタンス化され、サービスとアプリケーションとの間の結合が確立されると、依存性の動作モデルが生成される。このモデルおよび多数の関与するシステムの高度なダイナミクスのために、完全なモデルをインスタンス化し格納することができる程度が制限される。かかるモデルを規定し格納することは現実的でなく、むしろ、モデルは動的かつ段階的に計算しなければならない。従って、動作モデルは、「オンデマンド」で計算され、機能モデルおよび構造モデルに頼っている。
予想されるように、大規模な分散型システムでは、依存性の量は極めて多く、それらのダイナミクスは極めて高度である。本発明の機構は、分散型システムに対するそれらの(リソースおよび帯域幅の使用という点での)影響を、できる限り小さく抑え、ユーザまでの性能に影響する可能性がある多くの構成オプションを与える。この例として、更新した依存性モデルを検索するための時間間隔、依存性を追跡しなければならないシステムの範囲、依存性モデルの深さ(直ちに影響を受けるサービスのみ、所与のサービスの推移的な終了、またはサービス階層全体)が挙げられる。
本発明は、好ましくは、以下の依存性情報の特徴を利用する。
(a)異なるサービス間の依存性を層化する。更に、それらの依存性グラフは有向であり無周期である。後者の表現は、DNS(Domain Name System)、NFS(Network File System)、DFS(Distributed File System)、NIS(Network Information System)等のIPに基づくネットワークサービスによる経験を反映しているが、いくつかのシステムにおいて相互依存性が生じる場合もあり得る。かかる相互依存性の異常な例は、DNSサーバが、ファイルシステムを搭載し、遠隔システムからNFSを介してそのDNS構成を格納するというものである。かかる構成は技術的には実現可能であるが、システム設計の欠陥をもたらす。なぜなら、これによって、立ち上げが非決定論的である恐れがあり、従って回避しなければならない不安定なシステムとなるからである。周期的な依存性を発見する依存性チェックアプリケーションは、管理者に警告を発しなければならない。
(b)全ての依存性は、カスタマ/提供業者ドメインの境界において可視的であり、SLAによって明白になる。その結果、観察可能な依存性の数は有限である。
(c)依存性モデルによって、依存性連鎖をトップダウンで横断することが可能となる。
(d)異なるシステム間(システム間)の依存性は、同一サービスのクライアントおよびサーバの部分間の依存性として知覚される。サービスAのクライアントが、異なるサービスBを提供するサーバに要求を出すことは不可能である。
本発明の1つの目的は、具体的なサービス/アプリケーション手段から最大の程度の独立性を達成するため、主にいくつかの周知の/明確に規定された場所(例えばシステムレポジトリ)から情報を検索することである。これを実現するため、本発明は、最小かつ十分な量の共通して利用可能な依存性情報を規定する。
本発明は、依存性モデルを永続的に格納するための機能を具備するか、または、これを、本発明を用いる管理アプリケーションまたは別のサービスの自由裁量に委ねる。
本発明は、依存性モデルの変化を検出し判定するための履歴の概念を有することができる。この場合、本発明は、依存性モデル内の変化について以前に登録されたソフトウエアコンポーネントに通知するための発行/加入インタフェースを提供する。本発明の別の可能な使用法は、依存性モデルの変化の検出を、管理アプリケーション(または変化管理サービス)の自由裁量に委ねて、依存性モデルの変化が生じたか否かを判定するために本発明に定期的に呼を発することである。
更に、以下に例示するように、本発明は、影響シミュレーションおよび脆弱性分析を実行するための技法を提供する。
本発明は、様々なサービス、ユーザ、およびホストシステムを、それらの依存性と共に表すグラフィカルユーザインタフェースを備えている。グラフィカルユーザインタフェースは、管理者によって特定のサービスが選択されると、サービスの使用不能によって影響を受ける可能性があるサービス/ユーザ/ホストシステムを視覚的に表すマップを表示する。かかる「脆弱性マップ」は、分散型環境内の既存の欠点および単一点の故障を正確に指摘するのに役立つ。
また、本発明は、「合成」(すなわち仮想)サービスインスタンス/ユーザ/ホストシステムを分散型環境内に導入して、新たに導入したサービス/ホストシステムが既存の脆弱性を排除するのに役立つか否かを評価するための機構を備えている。
また、本発明は、あるサービスの使用不能が、分散型環境の他のサービス、ユーザ、およびホストシステムに対して及ぼす影響をシミュレートする。サービス使用不能の影響を判定することは、サービス階層を上から下まで通過して、問題を生じる可能性がある依存者サービスを識別することを示す。なぜなら、この問題は、対象のサービスから依存者に伝搬する恐れがあるからである。使用不能が観察されたサービスからその依存者に向かってのこの通過を行う際には、特定のサービスに直接依存するエンティティ、特定のサービスに依存するサービス集合全体、またはエンドユーザサービスから成る最高サービス層のいずれかを検索する。影響シミュレータによって検索された依存者ノードのリストによって、管理者は、「what−if」分析を実行して、サービス使用不能に対する分散型環境の脆弱性を正確に指摘することができる。影響シミュレータは、問題の根本原因であると見なされるサービスに対する依存性関係を有しないノードを除去することを注記しておくことは重要である。
本発明によって、管理者は、コンピュータシステム上で実行している特定のサービスまたは特定のサービスインスタンスを選択し、サービスの使用不能が起こると他のサービス、ユーザ、およびホストシステムのどれが影響を受ける可能性があるかを判定することができる。これによって、管理者は、既存の欠点を識別し、それを修理し、適用した修理が成功したか否かを検証するため、システム使用不能をシミュレートし、それらの環境の脆弱性を先回りして分析することができる。影響分析器に体系的にサービスデータを供給すると、管理者は、分散型環境の脆弱性マップを設定することができる。
分散型環境の脆弱性マップを設定して本発明を用いる例は、以下の通りである。管理者は、分散型環境のサービスおよびそれらの依存性を表すグラフィカルユーザインタフェースを用い、ホストシステム上の特定のサービスを選択し、使用不能によって影響を受けるサービスについて問い合わせることによって影響シミュレータを実行する。次いで、影響シミュレータは、結果のリストを計算する。このリストは、(最終的に確率または重大さの程度に依存して)影響を受けるサービスを表すアイコンの色を変えることによって、グラフィカルユーザインタフェース上に表示されると好ましい。かかる脆弱性マップによって、実際の環境のコンポーネントと接続する必要なく、管理者は、実際の(「現実の」)データに基づいて、分散型環境における「弱い」サービスを正確に指摘することができる。
更に、本発明の方法は、1つ以上の対象コンポーネントについて実質的に同時に(例えば、一度に1つのコンポーネント、または多数のコンポーネントを並列に)実行することができる。本発明の方法の結果の少なくとも一部を永続的に格納することができるが、かかる結果は永続的に格納しない場合もある。
更に、本発明の方法に関連した結果の履歴を維持することができる。このため、本発明は、影響シミュレータの実行結果を、以前の影響シミュレーション結果に対して比較することができるように格納するための機構を備える。これによって、影響シミュレータの1度の実行と影響シミュレータの1度以上の他の実行との間で実施されるように、分散型システムから欠点および単一点の故障を排除するための動作が成功したか否かを評価し検証することができる。
本発明に従って成される上述の達成および本発明に関連した一般的な特徴を想定し、詳細な説明の残り部分では、図1ないし15の状況においてかかる達成および特徴を実施するための技法を例示的に説明する。
最初に図1を参照すると、ブロック図が、本発明の機構と相互作用して情報を生成可能なクライアント−サーバアプリケーションアーキテクチャの形態で電子商取引システムの一例を示す。図1のアーキテクチャについて、以下で説明して、かかるアーキテクチャが本発明の技法がない場合にトランザクションをどのように扱うことができるかを示す。
図示するように、クライアントシステム105を用いて、例えばキーボードを介して要求を開始する。しかしながら、要求は、マウスクリック、音声コマンド、バーコード読み取り等のいずれかの従来の手段によって開始することも可能である。クライアントシステム105の例は、パーソナルコンピュータ、キオスク、データ入力端末、スキャナ、電話、ポケットベル、手持ち式または着用式デバイス、無線デバイス、パーソナルデジタルアシスタント、ネットワークによって動作可能となる時計等である。
要求が定式化され、ネットワーク110を介してウエブアプリケーションサーバ120に送信された場合、1つ以上のネットワークアクセス115デバイスを通過することによって、要求がローカルに実行される。ネットワーク110および通信プロトコルの例は、ローカルエリアネットワーク(LAN)を介したTCP/IP(Transmission Control Protocol/Internet Protocol)転送によるソケットを用いた通信であり、これは、ルータ等のネットワークアクセス115デバイスによって接続され、多くの切り替え位置を含むワイドエリアネットワーク(WAN)に切り替わって、サービス提供業者および最終的にウエブアプリケーションサーバ120へのバーチャル回路を生成する。ウエブアプリケーションサーバ120の例は、高性能パーソナルコンピュータ、RISCベースのPowerPC、UNIX(登録商標)ベースのワークステーション、ミニコンピュータ、またはメインフレームコンピュータであり、これらは、クライアントからの要求を受けて、その要求を適切なバックエンドデータベースサーバに適宜分配するソフトウエアを実行する。
例示の目的のため、ここで、インターネットを用いて品物を購入するためにウエブブラウザ(クライアントシステム105上で動作している)内で開始する電子商取引トランザクションについて説明する。本発明の技法は、いかなる形態のトランザクションでも機能することができることは理解されよう。ウエブアプリケーションサーバの例は、WEBSPHEREの商標でIBM社から入手可能なもの、WEBLOGICの商標でBEA Systems社から入手可能なもの、またはLOTUS DOMINO SERVERの商標でLotus社から入手可能なものが含まれるが、これらに限定されるわけではない。
例示のトランザクションにおいて、ウエブアプリケーションサーバ120のビジネスロジックは、入来する要求を処理し、クライアントシステム105の認証および/または識別を行う。いったん、ウエブアプリケーションサーバ120が実施するビジネスロジックが、クライアントがこの購入を続行可能であると判定すると、これは、ネットワーク123を介してデータベースサーバ125に対して別の要求を伝達して、インベントリを減らす。データベースサーバ125は、この要求を処理し、そのデータベース130にアクセスし、ウエブアプリケーションサーバ120への応答を準備する。データベースサーバの例は、SQL/SERVERまたはTRANSACTION SERVERの商標でMicrosoft社によって販売されているもの、またはDB2 UNIVERSAL DATABASE SERVERの商標でIBM社から販売されているものを含むが、これらに限定されるわけではない。
ウエブアプリケーションサーバ120は、データベースサーバ125から応答を受け取り、これを、ネットワーク110を介してクライアントシステム105に戻す。次いで、クライアントシステム105は、この応答を処理して、これを表示するためにフォーマットし、トランザクションイニシエータが調べるためにこの応答を提示する。
管理者100は、サービス提供業者の場所に位置する、ビジネストランザクションを処理する様々なソフトウエアおよびハードウエアコンポーネントを観察し、それらが適正に機能しているか否かを判定する。データベース130において、テーブルスペースが壊れたり、データベース実行時システムが故障したりする等の使用不能135が起こった場合、管理者100のタスクは、使用不能の原因を突き止め、問題を正し、システム全体が再び適正に機能しているか否か確認することである。本発明は、あらゆる形態の使用不能または性能劣化に対する動作を意図することは理解されよう。
管理者100は、ソフトウエアおよびハードウエアコンポーネントと、直接にまたは管理システムを介して対話する。この管理システムは、明確に規定された管理インタフェースにおいてソフトウエアおよびハードウエアコンポーネントが提示する管理情報(ステータスおよび健康データ等)を処理する。いずれの場合であっても、ハードウエアおよびソフトウエアコンポーネントは、管理者によって、別個のリソースとして認知され、特定のビジネス目的に供するシステム全体の一部として認知されるものではないことを注記しておくことは重要である。
特に、1つのコンポーネントにおいて生じているエラーは、見つけることができない場合がある。なぜなら、管理者は、連続的に監視していないので、それらに気づくことがないからである。更に、本発明の技法を用いなければ、様々なコンポーネント間の相互依存性に関する明確な情報は、管理者に直接的に利用可能ではない。このため、連続的に監視されていないコンポーネント内のエラーは、その故障が被監視コンポーネントに伝搬するまで、見つからないままである可能性がある。
上述のデータベース使用不能135の場合、管理者は、ウエブアプリケーションサーバ120が適正に機能していない場合に使用不能について最終的に気づくのみである場合がある(例えば、ウエブアプリケーションサーバは、データベースサーバ125に対する接続を再試行し続け、クライアントシステム105が送信した要求を完了することができないので、ウエブアプリケーションサーバに対する負荷が激増する)。このため、管理者100は、最初に、ウエブアプリケーションサーバ120について調査し、次いで、ネットワーク123の接続性の問題があるか否か判定し、最終的に、データベースサーバ125が、データベース130における内部エラーに起因し得る問題に直面しているか否かを検証する。
上述のクライアントサーバアプリケーションアーキテクチャは、IBM社が「自律的」コンピューティング環境と呼ぶ新生のコンピューティング環境の先駆けと考えることができる。IBM Reserch、2001年10月の、P.Hornによる、「Autonomic Computing:IBM’s Perspective on the State of Information Technology」は、自律的コンピューティングを、人による介入を最小にした自己管理コンピューティングシステムに対する包括的かつ全体論的な取り組み方法として規定する。この開示は、引用により本願にも含まれるものとする。この語は、自覚も介入もせずに重要な機能を制御する身体の自律神経系に由来する。更に具体的には、自律的コンピューティングの目的の1つは、管理者100が通常実行するタスクの一部または全てを自動化することである。そうするための動機は、以下の通りである。
コンピューティングが進化すると、重複する接続、依存性、および相互作用するアプリケーションによって、いかなる人間が行い得るよりも速い管理的な意思決定および応答が必要となる。故障の根本原因を正確に指摘することは更に難しくなり、一方で、システム効率を向上させる方法を見出すことは、どんな人が解決を期待するよりも多くの変数を有する問題を発生させる。自律的コンピューティング環境の異なるシステム間の依存性を識別し追跡する問題は、以下のように特徴付けることができる。1つのシステムは多くのレベルで存在し得るので、自律的システムは、それ自身を制御するため、そのコンポーネント、現在のステータス、最終的な容量、および他のシステムとの接続全てについて、詳細な知識を必要とする。本発明を自律的コンピューティング環境において実行可能であることは、当業者には認められよう。
ここで図2を参照すると、ブロック図は、本発明の一実施形態による、依存性管理を行うためのシステムを示す。更に具体的には、図2は、上述の問題に対処する依存性管理システムを示す。このシステムは、4つの層(アプリケーション層200、サービス層205、ミドルウエア層210、およびリソース層215)、ならびに、管理者グラフィカルユーザインタフェース285を備え、このインタフェース285によって管理者100はシステムと対話する。
最下層は、リソース層215である。リソース層215は、被管理リソース220、リソース依存性レポジトリ225、およびレポジトリエージェント230を備える。被管理リソース220の例は、物理的および論理的ハードウエアコンポーネント(前者の例は、ハードディスク、ランダムアクセスメモリ、中央演算処理装置、ネットワークアダプタ、チャネルコントローラ等であり、後者の例は、ディスクパーティション、ファイルシステム等である)、ならびにソフトウエアコンポーネント(オペレーティングシステム、プリントスプーラーまたは名前サービスのようなシステムサービス、およびエンドユーザアプリケーション等)を含むが、これらに限定されるわけではない。
リソース依存性レポジトリ225は、全ての被管理リソース220のハードウエアおよびソフトウエアコンポーネントのインベントリおよび依存性情報(すなわち被管理リソース220内のコンポーネント間の依存性)をリソースごとに含む。リソース依存性レポジトリ225は、個々の被管理リソース220の全てにコロケートするか、または、1つの場所に集中化して置くことができる。リソース依存性レポジトリ225は、レポジトリエージェント230を介して、問い合わせ、更新、変更することができる。レポジトリエージェント230は、リソース依存性レポジトリ225の情報をシステムの他のコンポーネントに利用可能とする。
ミドルウエア層210は、プロトコルおよびオブジェクト要求ブローカ等の管理通信インフラストラクチャ235を備え、これによって、システムの異なるコンポーネントが(管理)情報を交換する。
サービス層205は、政策、イベント、およびディレクトリ等の様々な一般管理サービス250を備え、これらは、様々な管理アプリケーションによって使用可能である。特に重要なサービスは、依存性サービス245であり、これは、被管理リソース220およびレポジトリエージェント230の双方から情報を検索し、この情報を処理して、リソース環境全体の終端間依存性モデルを確立する。このモデル(またはその部分)は、依存性サービス245の必要に応じて(例えば、より迅速な検索のためのキャッシュすること)終端間依存性レポジトリ240に格納される。依存性サービス245は、上述のシステムにおいて、終端間依存性レポジトリ240と直接対話する唯一のコンポーネントであることを注記しておく。
上述の依存性モデルおよびその部分は、先に引用し、同時に出願された、「Methods And Apparatus For Managing Dependencies in Distributed Systems」と題する弁理士整理番号第YOR920020097US1が付された米国特許出願において開示された技法に従って発生することができる。この出願の一部の例示的な詳細事項を、以下に述べる。しかしながら、他のモデル発生技法も使用可能である。
アプリケーション層200は、一般管理サービス250および/または依存性サービス245を用いる様々な管理アプリケーションを備える。かかる管理アプリケーションの例は、故障マネージャ260、トポロジ発生器265、影響分析器270、影響シミュレータ275、および根本原因分析器280を含むが、これらに限定されるわけではない。
根本原因分析器280は、使用不能によって影響を受けるコンポーネントからその先行者に向けて、(依存性サービス245が提供する)依存性モデルを横断することに基づいて、使用不能の根本原因(すなわち、その使用不能を最初に引き起こしたコンポーネント)を決定する。根本原因分析器は、先に引用し、同時に出願された、「Methods And Apparatus For Root Cause Identification and Problem Determination in Distributed Systems」と題する弁理士整理番号第YOR920020096US1が付された米国特許出願において開示された技法を採用することができる。しかしながら、他の根本原因分析技法も使用可能である。
影響分析器270は、使用不能を経験しているコンポーネントからその依存者に向けて、(依存性サービス245が提供する)依存性モデルを横断することに基づいて、使用不能の影響(すなわち、使用不能によって影響を受ける可能性のあるコンポーネント)を決定する。影響分析器は、先に引用し、同時に出願された、「Methods And Apparatus For Impact Analysis and Problem Determination 」と題する弁理士整理番号第SOM920020004US1が付された米国特許出願において開示された技法を採用することができる。
以下で更に詳細に述べる影響シミュレータ275によって、管理者100は、分散型環境全体に対して特定のコンポーネントの使用不能が与える影響をシミュレートすることによって、「what−if」分析を実行することができる。これによって、適切なフェイルオーバ解決策を提供することができる。
故障マネージャ260は、根本原因分析器280または影響分析器270のいずれかによって故障の候補として識別されたコンポーネントに対し、適切な「健全さのチェック」すなわちテストを実行する。すなわち、故障マネージャは、根本原因分析器280または影響分析器270の指示によって、かかるテストを実行し(すなわち、これらのモジュールに対するインタフェースとして機能し)、それに結果を報告することができる。しかしながら、根本原因分析器280または影響分析器270は、故障マネージャとは独立してそれら自身のテストを実行することも可能である。
故障マネージャは、好ましくは、特定用途向けまたは特定リソース向けのツールの集合から成り、これによって、テストされているコンポーネントが適性に機能しているか否かを判定可能であることは理解されよう。このため、関連ツールによってコンポーネントをテストした後、故障マネージャは、そのコンポーネントが「機能している」か、または「機能していない」かを示すメッセージを戻すことができる。これらのツールは、自動化されているもの、および/または手作業によるものとすることができる。自動化の一例として、いわゆる「ピング」プログラムが、ネットワーク接続性をチェックする。対象の遠隔システムがピングに応答した場合、これはオンラインであり、そのネットワークプロトコルスタック(および全ての基礎にあるハードウエア、例えばネットワークアダプタ、ケーブル、中間ネットワークコンポーネント等)は機能している。遠隔システムが応答しない場合、少なくとも何かが不調であることがわかり、別のツール(複数のツール)(の集合)を用いて問題を決定することができる。このように、故障マネージャはピングプログラムを用いることができ、更に、分散型コンピューティング環境のコンポーネントをテストするために必要な他のツールを、いくつでも、またどんな種類のものでも、使用可能である(例えば、心拍検出、ステータス指示等)。
トポロジ発生器265は、ウエブアプリケーション、データベースインスタンス、およびトランザクション等、大量の極めて動的なコンポーネントから成る分散型システムの全体的なトポロジ(の副集合)を確立する。トポロジ発生器265を用いる一例は、特定のクライアントシステム105の要求を満たすのに関与する分散型システムのコンポーネントを表示することである。依存性モデル(またはその部分)を、トポロジ発生器265の必要(例えば、より迅速な検索のためにキャッシュすること)に従って、トポロジデータベース255に格納する。トポロジ発生器265は、上述のシステムにおいて、トポロジデータベース255と直接対話する唯一のコンポーネントであることを注記しておく。トポロジ発生器は、先に引用し、同時に出願された、「Methods And Apparatus For Topology Discovery and Representation of Distributed Applications and Services」と題する弁理士整理番号第SOM920020003US1が付された米国特許出願において開示された技法を採用することができる。しかしながら、他のトポロジ発生技法も使用可能である。
ここで図3を参照すると、図面に示され、ここで詳細に説明する、依存性管理を行うためのシステムの様々な機能コンポーネント/モジュールを実施するのに適切なコンピュータシステムの一般化ハードウエアアーキテクチャを例示するブロック図が示されている。依存性管理システムの個々のコンポーネント、すなわち、グラフィカルユーザインタフェース285、アプリケーション層200、サービス層205、およびミドルウエア層210(図2)に関連したコンポーネントは、図3に示すようなアーキテクチャを有する1つ以上のコンピュータシステム上で実施可能であることは理解されよう。図2に示す他のコンポーネント、例えばリソース層215に関連したコンポーネントも、同様のコンピュータシステム上で実施可能である。
図示のように、コンピュータシステムは、プロセッサ290、メモリ292、およびI/Oデバイス294に従って実施することができる。「プロセッサ」という言葉は、ここで用いる場合、例えば、CPU(中央演算処理装置)および/または他の処理回路を含むもの等、あらゆる処理デバイスを含むことが意図されることは認められよう。「メモリ」という言葉は、ここで用いる場合、例えば、RAM、ROM、固定メモリデバイス(例えばハードドライブ)、着脱可能メモリデバイス(例えばディスケット)、フラッシュメモリ等、プロセッサまたはCPUに関連したメモリを含むことを意図する。更に、「入力/出力デバイス」または「I/Oデバイス」という言葉は、ここで用いる場合、例えば、処理ユニットにデータを入力するための1つ以上の入力デバイス(例えばキーボード)、および/または、処理ユニットに関連した結果を提示するための1つ以上の出力デバイス(例えばCRTディスプレイおよび/またはプリンタ)を含むことを意図する。
また、「プロセッサ」という言葉は2つ以上の処理デバイスを指す場合があること、更に、1つの処理デバイスに関連した様々な要素を他の処理デバイスによって共有可能であることも理解されよう。
従って、ここで述べるような本発明の方法論を実行するための命令またはコードを含むソフトウエアコンポーネントは、関連する1つ以上のメモリデバイス(例えばROM、固定または着脱可能メモリ)に格納することができ、利用する準備が整った場合、部分的にまたは全体的に(例えばRAMに)ロードし、CPUによって実行することができる。
ここで図4を参照すると、ブロック図が、本発明の一実施形態によるサービスの機能依存性モデルを示す。更に具体的には、図4は、図1に示したもののような電子商取引システムにおける様々なコンポーネント間の機能アプリケーション依存性の図を示す。この機能依存性モデルは、分散型システムの機能コンポーネントおよびそれらの依存性の双方を表す。このため、このモデルは、ビジネスの観点から見ると微小と考えられる一般的なサービス間の依存性を規定する。これは、機能モデルが、ビジネスサービス内で発生する依存性とは関連しないことを意味する。かかる分解は、サービスを実施するために用いられている特定の製品の範囲において意味を成し、以下で、図5を参照して更に詳細に説明する。
コンポーネント間の依存性は、矢印として示す。1つの矢印は、常に依存者から先行者を指し示す。機能コンポーネントは、(副)サービスであって、カスタマに終端間サービスを提供するためにサービス提供業者によって展開する必要がある。後者はサービスレベルアグリーメントにおいて規定されている。機能モデルは、終端間サービスの設計に焦点を当て、終端間サービスの技術的実現に関する詳細事項を抽象化する。この詳細事項とは、サービス提供のために用いられている製品、それらの位置(ローカルまたは遠隔システム)、提供業者のドメイン(すなわち、提供業者自身がそのサービスの一部をユーザに透過的な別のサービス提供業者に外部委託するか否か)等である。
図示のように、e−ビジネスアプリケーション300サービスは、ビジネスロジックのホストとなるためにウエブアプリケーションサービス305に依存する。適正に機能するために、ウエブアプリケーションサービス305は、2つの更に別のサービスを必要とする。電子商取引ウエブサイトの静的コンテンツはウエブサービス310によって提供され、一方、バックエンドデータベースサービス330は、カスタマに提供されているe−ビジネスアプリケーション300の動的コンテンツ(製品記述、ユーザおよび製造業者のデータ、ショッピングカート、ユーザのプロファイルおよび好み、支払い情報等)を格納する。ウエブサービス310は、それ自体、2つのサービス、すなわち、ホスト名をIPアドレスにマッピングするための名前サービス315、および、ネットワーク接続性のためのIPサービス320に依存する。
依存性関係は推移的であること、すなわち、所与のコンポーネントの依存者は、コンポーネント自体に加えて、コンポーネントの先行者(複数の先行者)も必要とすることを思い出されよう。このため、IPサービス320およびデータベースサービス330に加えて、全ての図示したサービスは、オペレーティングシステム(OS)325のサービスの存在を必要とする。簡潔さのため、ハードウエアコンポーネントに対するOS325の依存性関係は図示しないが、それらは機能モデル内に存在している。
ここで図5を参照すると、ブロック図は、本発明の一実施形態によるサービスの構造依存性モデルを示す。更に具体的には、図5は、図1に示したもののような電子商取引システムにおける様々なコンポーネント間の構造アプリケーション依存性の図を示す。
この構造依存性モデルは、以下の方法で機能的モデル(図4)を拡張する。構造依存性モデルは、ビジネスサービスの実施を処理し、具体的な製品およびそれらの論理的(モジュール、コンポーネント)および物理的(ファイル、共有ライブラリ)アーキテクチャに焦点を当てる。構造依存性モデルは、ソフトウエアコンポーネントの詳細な説明すなわちシステムインベントリを捕捉する。システムインベントリは、通常、様々なシステムレポジトリ、または、例えば被管理リソース220の構成ファイルのような、明確に規定された場所に記録されている。
構造モデルは単一のシステムのコンポーネントを処理するが、これは、他のシステムがホストとなるサービスおよびアプリケーションに対する参照を維持することができることを注記しておく。なぜなら、システム上に位置する構成ファイルがこの情報を含むことができるからである。システムレポジトリの例は、IBM AIX Object Data Manager(ODM)、Linux Red Hat Package Manager(RPM)、またはMicrosoft Windows Registryを含むが、これらに限定されるわけではない。ソフトウエアコンポーネントに関する情報は、通常、ソフトウエアパッケージのインストールおよび展開の間に補足される。加えて、構造モデルは、矢印として示す様々なシステムコンポーネント間の依存性を含む。明確さのため、図5において、ビジネスサービスの名前は引用符を用いずに示すが、構造モデルの要素の名前は引用符を用いて示す。
十分に承認されたドメイン名wslab8.watson.ibm.com400を有するシステムは、以下のコンポーネントのホストとして働く。e−ビジネスアプリケーション(機能モデルにおいて規定されたビジネスサービス)。これは、storefrontservlets410として実施され、後者はアプリケーションのビジネスロジックを内包する。ウエブアプリケーションサービスは、IBM WebSphereバージョン3.5 415によって実現され、ウエウサービスはIBM HTTP Serverバージョン1.3.6 420によって実現される。IPサービスは、デフォルトのIPプロトコルスタック430によって実施され、オペレーティングシステム(OS)は、Win(dows)NTバージョン4425である。
十分に承認されたドメイン名rslab2.watson.ibm.com405を有するシステムは、以下のコンポーネントのホストとして働く。(IBM)DB2 Universal Database(UDB)バージョン5.2 435によって実施されるデータベースサービス、および、ここでは(IBM)Advanced Interactive Excecutive(AIX)バージョン4.3.3 440であるオペレーティングシステム。
ここで図6を参照すると、ブロック図は、本発明の一実施形態による、機能、構造、および動作依存性モデルによって記述されるサービスライフサイクルを示す。更に具体的には、図6は、上述した機能モデル500と構造モデル510との間の関係を示し、第3の依存性モデルすなわち動作モデル520を導入する。これらの3つのモデルによって、本発明は、それらの全ライフサイクルの間、すなわち、インストール段階から設置および展開段階、更に動作または実行時段階まで、サービスを追跡することができる。
先に説明したように、機能モデル500は、ビジネスサービスの設計に関し、従って、ビジネスシステムの設計時に捕捉される。いったん、機能モデル500が記述するシステムが、インストールまたは展開されると(ステップ505)、構造モデル510が確立される。構造モデル510の様々なコンポーネントがインスタンス化され(ステップ515)、それらの間の実行時の結合が確立されると、動作モデル520が生成される。動作モデルは、実行時に、先に説明したモデルの特徴を提示する。ここで、上述の概念を示すいくつかの状況を説明する。
ウエブアプリケーションサーバ305は、IBM WebSphere415によって実施される。後者の1つ以上のインスタンスを、websphere−daemon545と呼ぶ。ここで、ウエブ(またはWWW)サービス310は、2つの製品、すなわちApache1.3.4 525およびLotus Domino530によって実施される。これらの製品の実行中のインスタンスは、http daemons「httpd」550として識別することができる。データベースサービス330は、2つの製品、すなわち、Oracle v7 535およびDB2 UDB435によって実施される。しかしながら、動作モデル520ではサーバプロセスは見えないので、Oracle v7 535のインスタンスはアクティブではない。これに対して、DB2 UDB435の4つのインスタンスは実行中である。このことは、動作モデル520における4つのDB2 daemon「db2d」555の存在からわかる。名前サーバ315は、BINDバージョン5.6 540によって実施される。BINDの実行中のインスタンスは、動作モデル520において、「named」560として観察することができる。
依存性は、機能モデルから構造モデルおよび動作モデルへと伝搬することを注記しておく。これが必要である理由は、実行中のアプリケーションインスタンスからは、適正に機能するために、他のアプリケーションインスタンス(複数のインスタンス)のどれが必要であるかを判定することができないからである。
一部のアプリケーションインスタンスは短命であるので、動作モデル520は高度に動的であり、潜在的に極めて大きい。機能および構造依存性モデルとは対照的に、動作モデル520は、レポジトリにもデータベースにも格納されないが、オンデマンドで、必要な程度に、計算される。
ここで図7を参照すると、ブロック図は、本発明の一実施形態による、機能、構造、および動作依存性モデル間の関係を示す。更に具体的には、図7は、3つの依存性モデルに用いるデータテンプレートの詳細および、これらのモデルを結び付けるための手段を一例として示す。この例は、ライフサイクル中に名前サービスを記述するためのテンプレートおよびその関連する値を詳述する。
機能モデル500に用いられる機能テンプレート605は、「hostName」(サービスのホストとなるコンピュータシステムの一意の名前)、「serviceName」(サービスの名前)、および「componentType」「このサービスが担う役割、すなわちクライアントまたはサーバ」を含む。この情報によって、分散型の環境内で、サービスを一意に識別することができる。しかしながら、本発明の精神から逸脱することなく、記述データを含む更に別のフィールドを追加することも可能である(サービスの目的の記述、このサービスに加入しているカスタマ等)。最後に、「Antecedent」フィールドは、適正に機能するためにこのサービスが必要とするサービス(複数のサービス)を含む。
構造モデル510に用いられる構造テンプレート610は、機能テンプレート605のフィールドを全て含み、これによって、機能モデル500から構造モデル510への移動、またはその逆の移動を行うために、機能テンプレート605を構造テンプレート610にリンクさせることができる。更に、構造テンプレート610は、「componentName」(プロダクトコンポーネントの名前)、「identifier」(コンポーネントを識別するための全体に渡って一意の名前)、「version」、「release」、および「modification」(例えば保守またはパッチ/修理レベル)の数、「installState」(コンポーネントのインストールがうまく完了したか否かを示す)、および「processName」(このプロダクトコンポーネントを実行時に識別するプロセス(複数のプロセス)の名前)を含む。更に、「Antecedent」フィールドは、このコンポーネントが動作可能となるために必要なコンポーネント(複数のコンポーネント)を列挙する。
動作モデル520に用いられる動作テンプレート615は、フィールド「hostName」(サービスのホストとなるコンピュータシステムの一意の名前)、「processName」(プロダクトコンポーネントを実行時に識別するプロセス(複数のプロセス)の名前)を含む。これらの2つのフィールドは、構造モデル510から動作モデル520への移動、またはその逆の移動を行うために、構造テンプレート610を動作テンプレート615にリンクする。更に、動作テンプレート615は、フィールド「operState」(プロセスの動作的状態、すなわち実行中、割り込みを受けた、ゾンビ等)、「portNumber」(アプリケーションをプロセスに接続することができるTCP/UDPポートの数)、および「instanceID」(コンピュータシステムの範囲内で様々なアプリケーションインスタンスを識別する)を含む。
3つの依存性モデルは、異なる場所で格納および計算されて、最大の効率を達成する。機能モデル500は、管理システム620、すなわち、管理者100が分散型環境と対話する制御の中心点に集められて格納される。この選択の理由のいくつかは以下の通りである。図4および6の記載に見られるように、機能モデル500は、可能なビジネスサービスの量が限られているので、きわめてコンパクトである。更に、機能モデルは、過度に頻繁な変更を受けない。機能モデルは、ビジネスサービスをカスタマに供給した時に規定され、このサービス提供期間が終了するまで不変のままである。管理者100は機能モデル500のセットアップおよび更新を担うので、これを管理システム620の近くに保持することは当然の選択である。
図5および6の記載に見られるように、構造モデル510は、対照的に、ソフトウエアコンポーネントの詳細な記述すなわちシステムインベントリを捕捉する。システムインベントリは、通常、様々なシステムレポジトリ、または、例えば被管理リソース220の構成ファイルのような明確に規定された場所に記録されている。この結果、これはサイズが大きく(システムレポジトリの内容は、数百キロバイトから数メガバイトの間になる傾向がある)、更に、頻繁に変更される。従って、システムの構造モデル510を被管理リソース220に保持すること自体が、モデルを更新するための通信オーバーヘッドを排除し、更に、全ての被管理リソース(220)の構造モデル510が1つの場所に集中化して格納されている場合に生じる恐れのある大量の記憶の必要も無くなる。
動作モデル520は、図6において、極めて動的であり、非常に大きいものとして記述した。なぜなら、これは、分散型環境のコンピュータシステム上に存在する全てのアプリケーションの潜在的に多数のインスタンスおよびそれらの間の依存性関係を扱うからである。インターネット/アプリケーション/記憶サービス提供業者および外部委託者の現在のデータセンタが、数千のコンピュータシステムから成り、各々が100近くのアプリケーションおよびシステムサービスのホストとして働くと想定すれば、現在インスタンス化されているアプリケーションおよびそれらの依存性の全てを1つの動作モデルが含むことは、非現実的である場合がある。このため、現実的な手法は、オンデマンドで動作モデルの関連部分を計算することである(ステップ625)。これが依存性サービス245の目的である。
ここで図8を参照すると、ブロック図は、本発明の一実施形態による、終端間依存性の計算に関与するコンポーネントを示す。更に具体的には、図8は、終端間依存性を問い合わせて計算するために用いられる様々なコンポーネント間のデータフローを示す。被管理リソース220は、それらのシステムインベントリ、構成ファイル、およびそれらの様々な依存性のXML(Extensible Markup Language)記述を提供可能であると仮定する。しかしながら、本発明に従って、いかなる記述フォーマットも使用可能であることを注記しておく。この情報をどのように取得するかについての詳細は、以下の通りである。
1つの直接的な方法は、システムおよびそのアプリケーションおよびサービス内に適切な手段を提供することである。この情報は、フラットXMLファイル740において記述され、ウエブサーバ725を介してシステムの他のコンポーネントに利用可能である。
あるいは、依存性サービス245は、適切なサービス依存性情報を発生するために、システムレポジトリ745に格納された情報を利用する。この情報は、ウエブサーバ730を介してシステムの他のコンポーネントに利用可能である。
第3に、被管理リソース220は、CIMプロバイダ750と呼ばれる手段エージェントによって、それらの情報を提示する。これは、Distributed Management Task Force(DMITF)によって提案されたように、CIM Object Manager(CIMOM)735と対話する。次いで、CIMOMは、必要な情報を、対象のコンポーネントに提示する。
図8の中央に、サービスサーバ205の一部である様々な管理サービスが示されている。これらは、名前サービス700、取引業者サービス710、イベントサービス715、および依存性サービス245である。依存性サービス245は、その管理システム、または通信プロトコル(例えばJava Remote Method Invocation(RMI))を用いてアプリケーション層200に位置するいずれかの管理アプリケーションを介して管理者100の問い合わせによってトリガされ、それらを処理し、結果を影響分析器270に送り返す。影響分析器270は、次いで、更に処理するために、その結果を影響シミュレータ275に転送する。最後に、その結果は、管理者100に送出される。
依存性サービス245の主なタスクは、以下の通りである。
(a)管理システムまたはアプリケーション層200に位置するいずれかの管理アプリケーションとの対話。管理システムは、依存性サービス245のアプリケーションプログラミングインタフェース(API)に問い合わせを発する。
(b)「ドリルダウン」方法を提示し、サービスの識別子を受け取ると、以下を戻す。
(i)その直接の先行者の記述、すなわちサービスを表すノードの下の第1のレベル、または
(ii)サービスを表すノードの下のサブグラフ全体、
(iii)依存性グラフの任意のサブセット(所与のノードの下のレベルmからn)。
(c)サービスの依存性を対象として、同じ機能によって「ドリルアップ」方法を提供する。
(d)非管理オブジェクトのクラスおよび特性のための情報を収集しフィルタに通すための追加の方法がある。
(e)http(HyperText Transport Protocol)上で問い合わせを発し、それに(管理者100が規定したような)フィルタリングルールを適用することによって、被管理リソース220から依存性情報を取得する。
(f)情報をデータ構造に組み合わせて、これをXMLドキュメントとして管理システムに送り返す。
上述のように、完全に分散型の性質を有するため、本発明は、全ての関与するシステムに対する負荷をできる限り小さく抑えることを目指している。本発明は、被管理リソース220から管理システムを分離させ、時間のかかるフィルタおよび連結動作を依存性サービス245に内包し、これを様々なシステム上で再現することができる。従って、問い合わせ動作のための最高レベルの並列処理を達成することができる。なぜなら、依存性サービス245のインスタンスの選択は、管理システムによって柔軟に実行可能だからである。
別の重要な利点は、(極めて大きく高度に動的な)動作モデル520は、特定の場所に格納されるのではなく、オンデマンドで段階的に計算されるということである。構造モデル510の異なる部分は、被管理リソース220に格納される。従って、管理システムは、常に最も新しい情報を受信するが、なお、綿密なキャッシュ政策に従ってそれを自由に格納することができる。
ここで図9を参照すると、ブロック図は、本発明の一実施形態による影響シミュレータのコンポーネントを例示する。図示のように、影響シミュレーションプロセス全体のフローコーディネータとして機能する影響相関器830は、管理者100からサービス問題報告840を受信する。サービス問題報告840は、その使用不能(または劣化)の影響をシミュレートするサービスの名前およびホストの名前(および、図15において具体的に示すように、最終的に他のパラメータ)を含む。影響相関器830は、(弁理士整理番号第SOM920020004US1が付された先に引用した米国特許出願において記載されたような)影響分析器270と対話し、次いで、依存性サービス245と対話して、対象のサービスに依存する高レベルサービスのリストを取得する。高レベルサービスの例は、電子メールサービス、ウエブサービス等である。
依存性サービス245のタスクは、電子商取引環境が異なる被管理ドメイン800に及ぶとしても、対象のサービスの依存性を見出すことである。多数のドメインを扱うために、依存性サービス245の様々な(カスケード接続された)インスタンスが共に機能することができる。図9において、電子商取引環境は、点線の矩形によって示される。通常、かかる環境は1つ以上の被管理ドメインを含み、結局、その各々が、それ自身の依存性データベース810および依存性サービス245を有する。
依存性サービス245は、依存者の名前および識別子を影響分析器270に戻し、次いで影響分析器270は、その結果を影響相関器830に転送し、更に処理が行われる。この処理には、故障の可能性を計算すること、または、直接依存者のみ報告するか、または故障の可能性に関するある閾値をこえた依存者のみ報告するか等、要求840において特定されたパラメータに従って得られた結果をフィルタリングすることが含まれる場合がある。
要求840が、サービスの使用不能によって影響を受ける可能性があるユーザについて要求する場合(図15におけるAPIの記載を参照のこと)、影響相関器830は、どのユーザがいずれかの依存者サービスに加入しているのかを検証する。これは、全ての依存者サービスについて、加入したユーザについてユーザ加入マネージャ820に問い合わせることによって行われる。ユーザ加入マネージャ820は、この計算のため、ユーザ/サービスデータベース835に頼る。ユーザ/サービスデータベース835は、登録ユーザと、彼らが加入しているサービスとの間のマッピングを含む。
要求840が、提供するサービスのうち1つの使用不能を生じた可能性のあるホストシステムの名前を要求する場合(図15におけるAPIの記載を参照のこと)、影響相関器830は、直接的な方法でホストの名前を確定する。なぜなら、依存性サービス245および影響分析器270は、定義上サービスおよびホストの名前の双方を含むユニフォームリソースロケータ(URI)の形態で、サービスの名前を戻すからである。このため、影響相関器830は、ホストの名前(これは、全URIのプレフィックスである)を抽出し、この特定のホストの名前が、重複を排除するための結果のリストにすでに現れているか否かを検証する。使用不能によって影響を受ける可能性がある依存者サービスを、あり得る最小のサービスおよびリソース集合に絞り込んだ後、影響相関器830は、この情報850を管理者に戻す。
ここで図10を参照すると、フロー図は、本発明の一実施形態による、依存性サービスを呼び出し、動作モデルに対して影響シミュレーションおよび脆弱性分析を実行するためのステップを示す。更に具体的には、図10は、依存性サービス(例えば依存性サービス245)を呼び出し、その結果を収集し、それらに影響シミュレーションおよび脆弱性分析を適用する方法を示す。この方法は、管理者100または管理アプリケーションのいずれかによって開始する。
この方法は、ブロック900において開始し、以下のように進行する。最初に、通常は機能モデルから、ビジネスサービスを選択する(ステップ905)。なぜなら、管理者は、分散型システムが提供するビジネスサービスに関心があるからである。ビジネスサービスを選択すると、構造モデルに問い合わせて、ビジネスサービスの提供に関与するホストの選択を提供する。これは、分散型システムの全ホスト上に存在する構造モデルの位置を特定することか、または、(効率の目的のため)管理システムに格納された(周期的に更新される)サービス/ホストルックアップ表に問い合わせることのいずれかによって行うことができる。このルックアップ表は、分散型システムに存在するサービスとホストとの間のマッピングを含む。次いで、管理者は、自由裁量で、ホストを選択する(ステップ910)。
更に、管理者は、問い合わせを作成する(ステップ915)。問い合わせパラメータの例は、横断の方向(サービス依存者に向かって、またはその先行者に向かって)、横断の深さ(例えば直接の先行者/依存者のみ、可能な先行者/依存者の全て、すなわち動作モデルの完全な推移的な終了、動作モデルのm番目の層とn番目の層との間のみ等)、属性の存在またはそれらの値のいずれかに関連するフィルタリング基準を含むが、これらに限定されるわけではない。
サービスの選択(ステップ905)、ホストの選択(ステップ910)、および問い合わせを作成するためのオプションのステップの順序をここに定めるという事実によって、(既存の技術の「ホスト中心の」手法に対して)本発明の「サービス中心の」手法が強調される。しかしながら、本発明の精神および範囲から逸脱することなく、ステップ(ステップ905、910、および915)の順序を変更可能であることは、関連する分野の技術を有する者には認められよう。
かかる変更の例は、ユーザに、(例えばグラフィカルユーザインタフェースによって)任意の順序で選択プロセスの3つのステップを実行する選択肢を与えること、最初にホストを選択して次いで構造モデルに問い合わせることによってそのホスト上に存在するサービスを検索し、これによって選択のためのサービスの可能な候補を限定することである。
サービスおよびホストを選択し、問い合わせを作成した後、これらのパラメータによって、依存性サービスを呼び出す(ステップ920)。呼び出しのモードは、同期(すなわち依存性サービスによって結果が戻されるまで呼び出し側を阻止する)、または非同期(呼び出し側は計算の間に追加のタスクを実行可能である)のいずれかとすることが可能であることを注記しておく。
依存性サービスは、動作モデルの適切な部分を計算し、呼び出しのモードに応じて、結果を呼び出し側に返送するか、または呼び出し側に、結果が利用可能であることを通知する。次いで、呼び出し側は、結果を収集し、それらに影響シミュレーションおよび脆弱性分析を適用する(ステップ925)。この方法は、ブロック930において終了する。
ここで図11を参照すると、フロー図が、本発明の一実施形態に従って機能依存性モデルを生成および更新するための管理者のタスクを示す。これが必要であるのは、新しい(ビジネス)サービスを展開および提供する場合、または、既存のモデルに変更を行う場合、または、既存の(ビジネス)サービスを提供品から外す場合である。
この方法は、ブロック1000において開始し、以下のように進行する。管理者または管理アプリケーションは、新しいビジネスサービスを追加するべきか、または既存のサービスを消去するかを評価する(ステップ1005)。これが必要でない場合、方法は直接ブロック1025に進む。その他の場合、ステップ1010において、サービスおよびその記述を、図7に記載した機能モデルのテンプレート605に入力(またはテンプレート605から除去)する。
次いで、ステップ1015において、サービス依存性すなわちその先行者に関する関係性を、機能モデルのテンプレート605に追加(またはテンプレート605から除去)する必要がある。消去の場合、サービス依存者からの依存性は、除去されるサービスの先行者を指すように調整する必要があることを注記しておく。これは、先行者の依存性内に結果として起こる重複する記述についてのチェックを必要とする場合がある。最後に、管理システムのレポジトリに、更新した機能モデルを格納する(ステップ1020)。この方法は、ブロック1025において終了する。
ここで図12を参照すると、フロー図は、本発明の一実施形態による、影響シミュレーションおよび脆弱性分析に基づいて分散型環境の脆弱性を排除するための管理上の手順を示す。この方法は、ブロック1100において開始し、以下のように進行する。
管理者100は、特定のホストシステム上の特定のサービス(例えば電子メールサービス)を選択し、入力パラメータの形態で追加の処理命令を提供する(ステップ1105)。管理者が指定する基準に従って、依存者サービスについてシステムに問い合わせることで、影響シミュレーションが開始する(ステップ1110)。これを実行するには、影響分析器270および、影響シミュレータ275から依存性サービス245を呼び出し、結果を検索する。
問い合わせの目的に従って、異なる手順を適用する。管理者は、対象のサービスの使用不能によって影響を受ける可能性のあるサービスに関心を持っている(ブロック1115)か、エンドユーザに関心を持っている(ブロック1120)か、または様々な依存者サービスのホストとして機能するホストシステムに関心を持っている(ブロック1125)可能性がある。第1の場合、影響シミュレータは、この特定のサービスの使用不能によって実際に影響を受けるサービスのリストを返送する。依存性の重みに従って使用不能の確率を計算する等、応答について更に別の処理が必要である場合がある(ステップ1127)。
第2の場合、影響シミュレータは、この特定のサービスの使用不能によって実際に影響を受けるユーザのリストを返送する。影響シミュレータはサービスのリストを受信するので、ユーザ/サービスデータベースを検索することで、これらのサービスを、依存者サービスに加入しているユーザにマッピングする。
第3の場合、影響シミュレータは、この特定のサービスの使用不能によって実際に影響を受けるサービスを提供するホストシステムのリストを返送する。依存性サービス245および影響分析器270は双方とも、定義上サービスおよびホストの名前の双方を含むURIを戻すので、影響シミュレータは、直接的にホストの名前を確定する。このため、影響シミュレータ(275)は、ホストの名前(これは、全URIのプレフィックスである)を抽出する必要があり(ステップ1135)、この特定のホストの名前が、重複を排除するための結果のリストにすでに現れているか否かを結果から検証する(ステップ1140)。
これらのステップを実行した後、管理者が、サービス、ユーザ、またはホストシステムのどれに関心を持っているか否かに応じて、結果を管理者に返送する。管理者は、分散型環境のコンポーネントのマップを、それらの依存性と共に表すグラフィカルユーザインタフェースを用いることができる。この場合、影響シミュレータの結果を用いて、例えば対応するアイコンを特定の色で表示することによって、影響を受けるサービス(またはユーザまたはホストシステム)を強調する(ステップ1145)。あるいは(または、グラフ表現に加えて)、管理者は、結果のリストを、以前の影響シミュレーションの結果と比較して、以前の実行の脆弱性がまだ存在するか否かを判定することを選択することも可能である(ステップ1150)。
排除する必要がある脆弱性が存在する場合、管理者は、以降のステップにおいて、補正のための動作(バックアップe−メールサーバまたは適切なフェイルオーバ解決策の展開等)を行う。これらの補正動作が成功したか否かを検証するため、管理者は、影響シミュレータを再び実行し(ステップ1105に戻る)、その結果を、(ステップ1145において)以前の影響シミュレーションの結果と比較する。
第2の実行によって戻された結果のリストが著しく小さい(または空である)場合、管理者は、その分散型環境から脆弱性の源を除去することに成功している。この方法は、ブロック1160において終了する。
管理者によって、合成または仮想のサービス、ユーザ、およびホストシステム(すなわち実際の分散型環境における「現実の」コンポーネントを有しないコンポーネント)を追加して、実際の「現実の」コンポーネントを展開する必要なく、計画の目的のための堅固な基礎が得られるようにすることで、本発明を拡張することができることを注記しておく。本発明の精神および範囲から逸脱することなく、かかる変更および拡張を実行可能であることは、関連する分野の技術を有する者には認められよう。
ここで図13を参照すると、フロー図は、本発明の一実施形態による、動作モデルに対する影響シミュレーションおよび脆弱性分析の実行を示す。この方法はブロック1200において開始し、以下のように進行する。動作依存性モデルに対するシミュレーションおよび分析を実行するシステムは、常時、システムが実行されるホストの特定のポートにおいて要求がないかと監視している。これは、ブロック1205をそれ自身に接続するループによって示される。これは、いつでもアプリケーションによって呼び出すことができる、サービスを実施するサーバプロセス(「daemons」)について標準的な挙動である。
要求を受けると、システムは、要求から入力パラメータを抽出する(ステップ1210)。図10の記載において述べたように、入力パラメータの例は、対象のサービスおよびホストの名前、横断の方向、横断の深さ、属性の存在またはそれらの値のいずれかに関連したフィルタリング基準を含むが、これらに限定されるわけではない。次いで、これらの入力パラメータを用いて、動作モデルの計算を呼び出す。これは、ステップ1215において呼び出される。
更に、計算の結果、すなわち動作モデルを収集する。次いで、動作モデルに対し、影響シミュレーションおよび脆弱性分析を実行する(ステップ1220)。呼び出しの時に規定された呼び出しのモードに従って、影響分析の結果を呼び出しアプリケーションに戻す(ステップ1225)。このステップの後、システムが実行しているホストの割り当てられたリソースはいずれも解放される(ステップ1230)。ホストリソースの例は、メモリ、ディスクスペース、またはCPUレジスタを含むが、これらに限定されるわけではない。最後に、システムはその最初の段階に戻り、続けて入来する要求がないかと監視する(ステップ1205)。
ここで図14を参照すると、フロー図は、本発明の一実施形態による、サービスの依存者に対する影響シミュレーションおよび脆弱性分析の実行を示す。この方法は、ブロック1300において開始し、次のように進行する。
最初に、目的とするサービスおよびホストの名前を、様々な他のユーザ規定パラメータと共に取得する(ステップ1305)。これらのパラメータは、呼び出し管理アプリケーションによって提供され、管理者から直接、または管理コンソールに到着するイベントメッセージから取得される。更に、依存者のステータスに従って検索基準を指定する。それらは、問題を生じた(「不良の」)サービスまたは適切に実行しているサービスをシステムが戻すべきかを示す。通常、管理アプリケーションが関心を持つのは、前者すなわち不良のサービスである。更に、検索経路を指定する。管理アプリケーションが関心を持つ可能性があるのは、サービスの直接依存者(検索経路長=1)、サービスに直接的に(または間接的に)依存する全サービス集合(検索経路=再帰的)、または依存者の最高レベル、すなわち対象のサービスに依存する最高レベル(エンドユーザ)サービス(検索経路=最大)のいずれかである。
次いで、パラメータ「サービスの名前」、「ホストの名前」、「依存者のステータス」、「検索経路」に従って、依存性サービスによって動作モデルの計算を実行する(ステップ1310)。次に、ステップ1315において、結果、すなわち依存者サービス要素のリスト(「候補者リスト」)を依存性サービスから取得する。
候補者サービス要素のリストが空になるまで、以下のステップを実行する(1320)。
候補者リストの第1のサービス要素を選択し(ステップ1325)、更に計算を行う必要があるか否かを判定する(ステップ1330)。更に別の計算は、故障可能性の計算、依存者サービスに加入したユーザの参照、または戻されたURIからホストの名前を取得することを含む場合がある。この手順のステップは、図9の状況において先に詳細に説明した。更に計算を行う必要がある場合、これを(最初の要求に従って)影響シミュレータによって実行する(ステップ1335)。最後に、サービスの名前(および、要求に従った更に別の情報)を結果リストに追加する(ステップ1337)。
しかしながら、更に計算を行う必要がないとわかった場合は、サービスの名前を直接結果リストに追加する(ステップ1340)。最後に、入力したサービス要素リストから、対象のサービス要素を除去し(ステップ1345)、この方法はステップ1320に戻る。サービス要素のリストが空である場合、この方法は直接ステップ1350に進み、ここで、実行中のサービス要素のリストを呼び出し側に返すか、または不良のサービス要素のリストを返す。結果内容は、ステップ1305において呼び出し側が求めた詳細事項に依存する。この方法は、ブロック1355において終了する。
図15に、ステータスチェック手順のステップを詳細に記載する。対象のサービス要素が適正に機能している場合(ステータス=「OK」)、これを、実行中のサービス要素リストすなわち「OK」リストに追加する(ステップ1335)。しかしながら、サービス要素が問題を生じていることがわかった場合、これを「不良」リストに追加する(ステップ1340)。最後に、対象のサービス要素を、候補者サービス要素リストから除去し(ステップ1345)、この方法はステップ1320に戻る。
候補者サービス要素リストが空である場合、この方法は直接ステップ1350に進み、実行中のサービス要素リストまたは不良のサービス要素リストのどちらかを呼び出し側に戻す。結果内容は、ステップ1305において呼び出し側が実行中または不良のサービスのどちらを求めていたかに依存する。この方法は、ブロック1355において終了する。
ここで図15を参照すると、本発明の一実施形態による影響シミュレーションアプリケーションプログラミングインタフェース(API)の例が示されている。このテーブルは、所与のサービスおよびホストの名前について適切な動作モデルの受信を発生、送出、および要求することができるベースAPIを含む。APIは、1つ以上のパラメータ(図示せず)を用いて、APIが用いる(機能記述において指定される)特性を識別可能であることは、当業者には認められよう。
具体的には、「getImpactedDirectDependents(parameters)」APIは、特定のホスト上に配置されたサービスの使用不能によって影響を受ける可能性がある直接の依存者(対象のサービスよりも1つ上のレベルに位置するサービス)を検索する。
「getImpactedDependentsRecursive(parameters)」APIは、再帰的「ドリルアップ」を実行する、すなわち、このAPIは、特定のホスト上に配置された所与のサービスの依存者を全て検索する。従って、このAPIは、使用不能によって影響を受ける可能性がある、依存性階層内の所与のサービスよりも「上に」ある全てのサービスを戻す。
「getImpactedHighestDependents(parameters)」APIは、使用不能によって影響を受ける可能性のある、特定のホスト上に配置されたサービスの最高の依存者を検索する。このAPIによって、依存者を全く有しないサービスが生じる(すなわち、それらは、所与のサービスの依存性階層の最高層に位置する)。このAPIは、ユーザまたは管理アプリケーションが、「中間」サービスを扱う必要なく、いずれかの「エンドユーザ」サービス(例えば電子メールサービスまたはウエブサービス)
が使用不能によって影響を受ける可能性があるか否かを迅速に判定したい場合に、特に有用である。
「getImpactedUsers(parameters)」APIは、特定のホスト上に配置されたサービスサービスの依存者に加入したユーザの識別子を全て検索する。従って、これらのユーザは、使用不能によって影響を受ける可能性がある。
「getImpactedHosts(parameters)」APIは、特定のホスト上に配置されたサービスの依存者のホストとなるシステムのホストの名前を全て検索する。従って、これらのホストは、1つ以上の提供するサービスの使用不能を経験する可能性がある。
「getImpactedTopNDependents(parameters)」APIは、使用不能によって最も影響を受ける依存者を(依存性の重みに従って)検索する。nは、検索されるアイテムの最大数を指定する。このAPIは、全ての依存性に重みが添付されて存在すると仮定し、これが、その先行者が使用不能を経験した場合にこのサービスが故障する可能性を示す。更に、管理者は、戻された結果の最大数を示すことによって、結果をカスタマイズすることができる。
例えば、管理者は、特定のホスト上に配置された特定のサービスが使用不能に直面した場合に少なくとも75%の可能性で故障すると考えられる依存者サービスの上位10個を要求することができる。次いで、APIは、故障の可能性とは逆の順序で、最大10のタプルを有するリスト(サービス識別子およびその故障可能性を含む)を戻す。この可能性は、75%以上である(例えば、[サービスA、98%]、[サービスB、82%]、[サービスC、79%]、[サービスD、75%])。依存者の位置(直接、間接、または最高)は、このAPIについて役割を果たしていないことを注記しておく。
「getImpactedTopNHighestDependents(parameters)」APIは、使用不能によって最も影響を受ける最高の依存者を(依存性の重みに従って)検索する。nは、検索されるアイテムの最大数を指定する。このAPIは、全ての依存性に重みが添付されて存在すると仮定し、これが、その先行者が使用不能を経験した場合にこのサービスが故障する可能性を示す。更に、管理者は、戻された結果の最大数を示すことによって、結果をカスタマイズすることができる。
例えば、管理者は、特定のホスト上に配置された特定のサービスが使用不能に直面した場合に少なくとも75%の可能性で故障すると考えられる依存者サービスの上位10個を要求することができる。このAPIについて、依存者の位置が役割を果たすことを注記しておく。なぜなら、APIは、動作依存性モデルにおけるサービスの最高層にのみ焦点を当てている、すなわち、このAPIは、全く依存者を有しないサービスを生じるからである(すなわち、それらは、所与のサービスの依存性階層の最高層に位置する)。このAPIは、ユーザまたは管理アプリケーションが、どの「エンドユーザ」サービス(例えば電子メールサービスまたはウエブサービス)が使用不能によって最も影響を受ける可能性があるか否かを迅速に判定したい場合に、特に有用である。
本発明の例示的な実施形態について、添付図面を参照して説明したが、本発明は、それらの正確な実施形態に限定されるわけではなく、本発明の範囲および精神から逸脱することなく、当業者によって、様々な他の変更および修正を行い得ることは理解されよう。
まとめとして、本発明の構成に関して以下の事項を開示する。
(1)コンピューティング環境に関連した少なくとも1つの対象コンポーネントのシミュレートした状況の潜在的な影響を明らかにするためのコンピュータに基づいた方法であって、
前記少なくとも1つの対象コンポーネントに依存する前記コンピューティング環境における1つ以上のコンポーネントを識別し、前記1つ以上の識別されたコンポーネントの各々に関連した潜在的な状況ステータスを求めるステップと、
対応する状況ステータスに基づいて前記1つ以上の識別されたコンポーネントの少なくとも一部に関して情報をユーザに提示するステップと、
を具備することを特徴とする、方法。
(2)前記コンピューティング環境は分散型コンピューティング環境から成ることを特徴とする、(1)の方法。
(3)前記コンピューティング環境は自律型コンピューティング環境から成ることを特徴とする、(1)の方法。
(4)前記ユーザに提示される前記情報は、前記対応する状況ステータスに基づいて前記1つ以上の識別されたコンポーネントの少なくとも一部に関連した脆弱性の表現を含むことを特徴とする、(1)の方法。
(5)前記表現は、前記1つ以上の識別されたコンポーネントの各々に関連した故障の各可能性を示す脆弱性マップを含むことを特徴とする、(4)の方法。
(6)前記ユーザに提示される前記情報は、潜在的に影響を受けるエンドユーザのリスト、潜在的に影響を受けるコンポーネントのリスト、および潜在的に影響を受けるホストのリストのうち少なくとも1つを含むことを特徴とする、(1)の方法。
(7)前記ユーザに提示される前記情報は、前記少なくとも1つの対象コンポーネントのシミュレートされた状況の潜在的な影響の1度の判定の、前記少なくとも1つの対象コンポーネントのシミュレートされた状況の潜在的な影響の少なくとも1度の他の判定に対する比較を含み、前記ユーザは、前記潜在的な影響を少なくとも最小限に抑えるために、前記1度の判定と前記少なくとも1度の他の判定との間で行われる1つ以上のステップが、実質的に有効であるか否かを検証することができるようになっていることを特徴とする、(1)の方法。
(8)前記少なくとも1つの対象コンポーネントは、前記コンピューティング環境における既存のコンポーネントであることを特徴とする、(1)の方法。
(9)前記少なくとも1つの対象コンポーネントは、前記コンピューティング環境における既存のコンポーネントではないことを特徴とする、(1)の方法。
(10)前記識別するステップは、更に、前記コンピューティング環境のコンポーネントの少なくとも一部に関連した1つ以上の関係の存在を表すモデルの少なくとも一部を横断することを含み、前記コンピューティング環境の少なくとも1つのコンポーネントに関連した全ライフサイクルを考慮に入れることができることを特徴とする、(1)の方法。
(11)前記モデルは、機能カテゴリ分類、構造カテゴリ分類、および動作カテゴリ分類から成る形態であることを特徴とする、(10)の方法。
(12)前記識別するステップは、更に、少なくとも1つの入力基準に基づいて前記モデルの前記動作カテゴリ分類を計算し、前記動作カテゴリ分類を横断して、前記少なくとも1つの対象コンポーネントに依存する前記コンピューティング環境における前記1つ以上のコンポーネントを識別することを含むことを特徴とする、(11)の方法。
(13)前記少なくとも1つの入力基準は、前記少なくとも1つの対象コンポーネントの名前、前記少なくとも1つの対象コンポーネントに関連したホスト、前記横断の方向、前記横断の深さ、前記横断の経路、および少なくとも1つのフィルタリング基準のうち少なくとも1つを含むことを特徴とする、(12)の方法。
(14)前記少なくとも1つの対象コンポーネントの前記状況は、故障、非故障、および劣化のうち1つであることを特徴とする、(1)の方法。
(15)コンポーネントは、サービス、アプリケーション、ミドルウエア、ハードウエア、デバイスドライバ、オペレーティングシステム、および前記コンピューティング環境に関連したシステムのうち1つであることを特徴とする、(1)の方法。
(16)コンピューティング環境に関連した少なくとも1つの対象コンポーネントのシミュレートした状況の潜在的な影響を明らかにするための装置であって、
少なくとも1つのプロセッサであって、(i)前記少なくとも1つの対象コンポーネントに依存する前記コンピューティング環境における1つ以上のコンポーネントを識別し、前記1つ以上の識別されたコンポーネントの各々に関連した潜在的な状況ステータスを求める、および(ii)対応する状況ステータスに基づいて前記1つ以上の識別されたコンポーネントの少なくとも一部に関して情報をユーザに提示させる、ように動作するプロセッサと、
前記少なくとも1つのプロセッサに結合され、前記識別および提示動作に関連した結果の少なくとも一部を格納するように動作するメモリと、
を具備することを特徴とする、装置。
(17)前記コンピューティング環境は分散型コンピューティング環境から成ることを特徴とする、(16)の装置。
(18)前記コンピューティング環境は自律型コンピューティング環境から成ることを特徴とする、(16)の装置。
(19)前記ユーザに提示される前記情報は、前記対応する状況ステータスに基づいて前記1つ以上の識別されたコンポーネントの少なくとも一部に関連した脆弱性の表現を含むことを特徴とする、(16)の装置。
(20)前記表現は、前記1つ以上の識別されたコンポーネントの各々に関連した故障の各可能性を示す脆弱性マップを含むことを特徴とする、(19)の装置。
(21)前記ユーザに提示される前記情報は、潜在的に影響を受けるエンドユーザのリスト、潜在的に影響を受けるコンポーネントのリスト、および潜在的に影響を受けるホストのリストのうち少なくとも1つを含むことを特徴とする、(16)の装置。
(22)前記ユーザに提示される前記情報は、前記少なくとも1つの対象コンポーネントのシミュレートされた状況の潜在的な影響の1度の判定の、前記少なくとも1つの対象コンポーネントのシミュレートされた状況の潜在的な影響の少なくとも1度の他の判定に対する比較を含み、前記ユーザは、前記潜在的な影響を少なくとも最小限に抑えるために、前記1度の判定と前記少なくとも1度の他の判定との間で行われる1つ以上のステップが、実質的に有効であるか否かを検証することができるようになっていることを特徴とする、(16)の装置。
(23)前記少なくとも1つの対象コンポーネントは、前記コンピューティング環境における既存のコンポーネントであることを特徴とする、(16)の装置。
(24)前記少なくとも1つの対象コンポーネントは、前記コンピューティング環境における既存のコンポーネントではないことを特徴とする、(16)の装置。
(25)前記識別動作は、更に、前記コンピューティング環境のコンポーネントの少なくとも一部に関連した1つ以上の関係の存在を表すモデルの少なくとも一部を横断することを含み、前記コンピューティング環境の少なくとも1つのコンポーネントに関連した全ライフサイクルを考慮に入れることができることを特徴とする、(16)の装置。
(26)前記モデルは、機能カテゴリ分類、構造カテゴリ分類、および動作カテゴリ分類から成る形態であることを特徴とする、(25)の装置。
(27)前記識別動作は、更に、少なくとも1つの入力基準に基づいて前記モデルの前記動作カテゴリ分類を計算し、前記動作カテゴリ分類を横断して、前記少なくとも1つの対象コンポーネントに依存する前記コンピューティング環境における前記1つ以上のコンポーネントを識別することを含むことを特徴とする、(26)の装置。
(28)前記少なくとも1つの入力基準は、前記少なくとも1つの対象コンポーネントの名前、前記少なくとも1つの対象コンポーネントに関連したホスト、前記横断の方向、前記横断の深さ、前記横断の経路、および少なくとも1つのフィルタリング基準のうち少なくとも1つを含むことを特徴とする、(27)の装置。
(29)前記少なくとも1つの対象コンポーネントの前記状況は、故障、非故障、および劣化のうち1つであることを特徴とする、(16)の装置。
(30)コンピューティング環境に関連した少なくとも1つの対象コンポーネントのシミュレートした状況の潜在的な影響を明らかにするための製造の物品であって、1つ以上のプログラムを含む機械読み取り可能媒体を具備し、前記プログラムは、実行された場合、
前記少なくとも1つの対象コンポーネントに依存する前記コンピューティング環境における1つ以上のコンポーネントを識別し、前記1つ以上の識別されたコンポーネントの各々に関連した潜在的な状況ステータスを求めるステップと、
対応する状況ステータスに基づいて前記1つ以上の識別されたコンポーネントの少なくとも一部に関して情報をユーザに提示するステップと、
を実施することを特徴とする、物品。
本発明の機構と相互作用して情報を生成することができるクライアント−サーバアプリケーションアーキテクチャの一例を示すブロック図である。 本発明の一実施形態による、依存性管理を行うためのシステムを例示するブロック図である。 本発明の一実施形態による、依存性管理を提供するためのシステムを実施するのに適切なコンピュータシステムの一般化ハードウエアアーキテクチャを例示するブロック図である。 本発明の一実施形態によるサービスの機能依存性モデルを例示するブロック図である。 本発明の一実施形態によるサービスの構造依存性モデルを例示するブロック図である。 本発明の一実施形態による、機能、構造、および動作依存性モデルによって記述されるサービスライフサイクルを例示するブロック図である。 本発明の一実施形態による、機能、構造、および動作依存性モデル間の関係を例示するブロック図である。 本発明の一実施形態による、サービスの使用不能の潜在的な影響を分析し計算する際に関与するコンポーネントを例示するブロック図である。 本発明の一実施形態による、影響シミュレータおよび脆弱性分析器のコンポーネントを例示するブロック図である。 本発明の一実施形態による、依存性サービスを呼び出すと共に動作モデルに対して影響シミュレーションおよび脆弱性分析を実行するためのステップを例示するフロー図である。 本発明の一実施形態による、機能依存性モデルを生成し更新するための管理者のタスクを例示するフロー図である。 本発明の一実施形態による、影響シミュレーションおよび脆弱性分析に基づいて分散型コンピューティング環境の脆弱性を排除するための管理上の手順を示すフロー図である。 本発明の一実施形態による、動作モデルに対する影響シミュレーションおよび脆弱性分析の実行を示すフロー図である。 本発明の一実施形態による、サービスの依存者に対する影響シミュレーションおよび脆弱性分析の実行を示すフロー図である。 本発明の一実施形態による、影響シミュレーションおよび脆弱性分析のアプリケーションプログラミングインタフェースの例を示す。

Claims (8)

  1. コンピューティング環境に関連付けられた少なくとも1つの対象コンポーネントのシミュレートされたコンポーネント故障によって潜在的に影響を受けるエンドユーザのリスト、コンポーネントのリストおよびホストのリストのうち少なくとも1つを明らかにするための装置であって、
    少なくとも1つのプロセッサであって、前記装置は、前記少なくとも1つのプロセッサを用いて、(i)前記少なくとも1つの対象コンポーネントに依存する1つ以上のコンポーネントを識別すること、ここで、当該コンポーネントそれぞれは、機能モデル、構造モデル、及び動作モデルによって記述されるサービスライフサイクルのいずれかのモデルに属しており、及び当該サービスライフサイクルの間に利用可能な依存性情報が各モデル内に格納されており、並びに前記機能モデルはコンポーネント間の機能アプリケーション依存性についてのモデルであり、前記構造モデルは前記機能モデルにおいて規定されたサービスを実現するソフトウェアコンポーネントであり、及び前記動作モデルは前記ソフトウェアコンポーネントがインスタンス化され、前記ソフトウェアコンポーネント間の実行時の結合が確立することによって生成されたモデルであり、ii)前記1つ以上の識別されたコンポーネントの各々に関連付けられたシミュレートしたサービス使用不能の潜在的な影響を検索すること、ここで該検索は、特定のサービスに直接依存するエンティティ、特定のサービスに依存するサービス集合全体、又はエンドユーザサービスからなる最高サービス層のいずれかの検索である、および(iii)前記検索された潜在的な影響に基づいて前記1つ以上の識別されたコンポーネントの少なくとも一部に関する情報をユーザのためにディスプレイ上に提示する、前記少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに結合されたメモリであって、前記装置は、前記メモリ内に、前記識別および提示動作に関連付けられた結果の少なくとも一部を格納する、前記メモリと
    を含む、装置。
  2. 前記コンピューティング環境は分散型コンピューティング環境を含む、請求項1に記載の装置。
  3. 前記コンピューティング環境は自律型コンピューティング環境を含む、請求項1に記載の装置。
  4. 前記ユーザに提示される前記情報は、前記検索された潜在的な影響に基づいて、前記1つ以上の識別されたコンポーネントの少なくとも一部に関連付けられた脆弱性の表現を含む、請求項1に記載の装置。
  5. 前記表現は、前記1つ以上の識別されたコンポーネントの各々に関連付けられた故障の各可能性を示す脆弱性マップを含み、該脆弱性マップは前記故障によって影響を受ける可能性があるサービス、ユーザまたはホストシステムを視覚的に表す、請求項4に記載の装置。
  6. 前記ユーザに提示される前記情報は、前記コンポーネント故障によって潜在的に影響を受けるエンドユーザのリスト、前記コンポーネント故障によって潜在的に影響を受けるコンポーネントのリスト、および前記コンポーネント故障によって潜在的に影響を受けるホストのリストのうち少なくとも1つを含む、請求項1に記載の装置。
  7. 前記少なくとも1つの対象コンポーネントは、前記コンピューティング環境において用いられる実際のコンポーネントである、請求項1に記載の装置。
  8. 前記少なくとも1つの対象コンポーネントは、前記コンピューティング環境において用いることも可能であるコンポーネントを表す仮想コンポーネントである、請求項1に記載の装置。
JP2003305288A 2002-09-11 2003-08-28 依存性に基づく影響シミュレーションおよび脆弱性分析のための方法および装置 Expired - Fee Related JP4426797B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/241,397 US7334222B2 (en) 2002-09-11 2002-09-11 Methods and apparatus for dependency-based impact simulation and vulnerability analysis

Publications (2)

Publication Number Publication Date
JP2004103014A JP2004103014A (ja) 2004-04-02
JP4426797B2 true JP4426797B2 (ja) 2010-03-03

Family

ID=31991186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003305288A Expired - Fee Related JP4426797B2 (ja) 2002-09-11 2003-08-28 依存性に基づく影響シミュレーションおよび脆弱性分析のための方法および装置

Country Status (3)

Country Link
US (1) US7334222B2 (ja)
JP (1) JP4426797B2 (ja)
TW (1) TWI234977B (ja)

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003216547A (ja) * 2002-01-23 2003-07-31 Murata Mach Ltd 通信装置及びプログラム
US6856942B2 (en) * 2002-03-09 2005-02-15 Katrina Garnett System, method and model for autonomic management of enterprise applications
US7680818B1 (en) * 2002-12-18 2010-03-16 Oracle International Corporation Analyzing the dependencies between objects in a system
US9350752B2 (en) 2003-07-01 2016-05-24 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9118710B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc System, method, and computer program product for reporting an occurrence in different manners
US9118708B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Multi-path remediation
US9100431B2 (en) 2003-07-01 2015-08-04 Securityprofiling, Llc Computer program product and apparatus for multi-path remediation
US9118709B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9118711B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US20070113272A2 (en) 2003-07-01 2007-05-17 Securityprofiling, Inc. Real-time vulnerability monitoring
US8984644B2 (en) 2003-07-01 2015-03-17 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
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
US7509373B2 (en) * 2003-11-24 2009-03-24 At&T Intellectual Property I, L.P. Methods for providing communications services
US7506335B1 (en) 2003-11-29 2009-03-17 Cisco Technology, Inc. Method and apparatus for software loading and initialization in a distributed network
US7461374B1 (en) * 2003-12-01 2008-12-02 Cisco Technology, Inc. Dynamic installation and activation of software packages in a distributed networking device
US7552447B2 (en) * 2004-05-26 2009-06-23 International Business Machines Corporation System and method for using root cause analysis to generate a representation of resource dependencies
CA2570620A1 (en) * 2004-06-16 2006-01-19 State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Portland State University System and method for simulating global product development
US20060020937A1 (en) * 2004-07-21 2006-01-26 Softricity, Inc. System and method for extraction and creation of application meta-information within a software application repository
US7788536B1 (en) 2004-12-21 2010-08-31 Zenprise, Inc. Automated detection of problems in software application deployments
US7383161B2 (en) 2005-04-13 2008-06-03 Microsoft Corporation Systems and methods for device simulation
US7383516B2 (en) * 2005-04-13 2008-06-03 Microsoft Corporation Systems and methods for displaying and editing hierarchical data
US7979520B2 (en) * 2005-04-15 2011-07-12 Microsoft Corporation Prescriptive architecture recommendations
US7689616B2 (en) * 2005-04-15 2010-03-30 Microsoft Corporation Techniques for specifying and collecting data aggregations
US7552036B2 (en) * 2005-04-15 2009-06-23 Microsoft Corporation Preconditioning for stochastic simulation of computer system performance
JP4672722B2 (ja) * 2005-04-25 2011-04-20 富士通株式会社 ネットワーク設計処理装置,方法およびそのプログラム
AU2005331434B2 (en) * 2005-04-25 2009-11-26 Fujitsu Limited Monitoring simulating device, method, and program
WO2007089786A2 (en) * 2006-01-30 2007-08-09 Sudhakar Govindavajhala Identifying unauthorized privilege escalations
JP2007207059A (ja) * 2006-02-03 2007-08-16 Nec System Technologies Ltd 検出システム、データ処理装置、検出方法およびプログラム
US7770052B2 (en) * 2006-05-18 2010-08-03 The Boeing Company Collaborative web-based airplane level failure effects analysis tool
US7584163B2 (en) * 2006-09-14 2009-09-01 Sap Ag Method and system for expression evaluation
CN100536479C (zh) * 2006-10-10 2009-09-02 华为技术有限公司 业务创建系统及方法
US7996816B2 (en) * 2006-11-15 2011-08-09 International Business Machines Corporation Method and apparatus for dynamically binding service component implementations for specific unit test cases
US8150662B2 (en) * 2006-11-29 2012-04-03 American Express Travel Related Services Company, Inc. Method and computer readable medium for visualizing dependencies of simulation models
US8689186B2 (en) * 2006-12-20 2014-04-01 Oracle America, Inc. Execution of a BPEL process by simulating partners
US7930321B2 (en) * 2007-10-31 2011-04-19 Bank Of America Corporation Reference architecture framework
US8301755B2 (en) * 2007-12-14 2012-10-30 Bmc Software, Inc. Impact propagation in a directed acyclic graph
US8051164B2 (en) * 2007-12-14 2011-11-01 Bmc Software, Inc. Impact propagation in a directed acyclic graph having restricted views
US9054942B1 (en) * 2007-12-20 2015-06-09 Amazon Technologies, Inc. Monitoring of services
US8954550B2 (en) * 2008-02-13 2015-02-10 Microsoft Corporation Service dependency discovery in enterprise networks
US8117145B2 (en) * 2008-06-27 2012-02-14 Microsoft Corporation Analytical model solver framework
US8411085B2 (en) * 2008-06-27 2013-04-02 Microsoft Corporation Constructing view compositions for domain-specific environments
US20090322739A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Visual Interactions with Analytics
US8620635B2 (en) * 2008-06-27 2013-12-31 Microsoft Corporation Composition of analytics models
US8255192B2 (en) * 2008-06-27 2012-08-28 Microsoft Corporation Analytical map models
EP2314019A4 (en) * 2008-07-31 2011-09-07 Juma Technology Corp METHOD FOR RESOLVING ADDRESS CONFLICTS BETWEEN DISPARATE NETWORKS IN A NETWORK MANAGEMENT SYSTEM
US8155931B2 (en) * 2008-11-26 2012-04-10 Microsoft Corporation Use of taxonomized analytics reference model
US8190406B2 (en) * 2008-11-26 2012-05-29 Microsoft Corporation Hybrid solver for data-driven analytics
US8145615B2 (en) * 2008-11-26 2012-03-27 Microsoft Corporation Search and exploration using analytics reference model
US8103608B2 (en) * 2008-11-26 2012-01-24 Microsoft Corporation Reference model for data-driven analytics
WO2010060985A2 (de) * 2008-11-28 2010-06-03 Inchron Gmbh Verfahren, system und simulations- bzw. analysemodell zur datenverarbeitung
JP4469910B1 (ja) * 2008-12-24 2010-06-02 株式会社東芝 セキュリティ対策機能評価プログラム
US8314793B2 (en) * 2008-12-24 2012-11-20 Microsoft Corporation Implied analytical reasoning and computation
US7979747B2 (en) * 2009-02-20 2011-07-12 International Business Machines Corporation Interactive problem resolution presented within the context of major observable application behaviors
US20100217867A1 (en) * 2009-02-25 2010-08-26 International Business Machines Corporation System and method for creating and using service dependency graphs to automate the development and deployment of service oriented applications
US8134935B2 (en) * 2009-05-22 2012-03-13 International Business Machines Corporation Transaction topology discovery using constraints
US8788574B2 (en) * 2009-06-19 2014-07-22 Microsoft Corporation Data-driven visualization of pseudo-infinite scenes
US8692826B2 (en) * 2009-06-19 2014-04-08 Brian C. Beckman Solver-based visualization framework
US8531451B2 (en) * 2009-06-19 2013-09-10 Microsoft Corporation Data-driven visualization transformation
US9330503B2 (en) 2009-06-19 2016-05-03 Microsoft Technology Licensing, Llc Presaging and surfacing interactivity within data visualizations
US8866818B2 (en) 2009-06-19 2014-10-21 Microsoft Corporation Composing shapes and data series in geometries
US8493406B2 (en) * 2009-06-19 2013-07-23 Microsoft Corporation Creating new charts and data visualizations
US8259134B2 (en) * 2009-06-19 2012-09-04 Microsoft Corporation Data-driven model implemented with spreadsheets
US20100325564A1 (en) * 2009-06-19 2010-12-23 Microsoft Corporation Charts in virtual environments
US9384080B2 (en) * 2009-09-01 2016-07-05 International Business Machines Corporation Synchronizing problem resolution task status using awareness of current state and transaction history
US8352397B2 (en) * 2009-09-10 2013-01-08 Microsoft Corporation Dependency graph in data-driven model
US9483746B2 (en) 2009-11-02 2016-11-01 International Business Machines Corporation Comparing utility and warranty of services
US20110119202A1 (en) * 2009-11-13 2011-05-19 Bank Of America Corporation Automated, self-learning tool for identifying impacted business parameters for a business change-event
US8707293B2 (en) * 2010-03-03 2014-04-22 Red Hat, Inc. Package management system
US8601462B2 (en) 2010-06-17 2013-12-03 International Business Machines Corporation Modifying a multi-module application
US9043296B2 (en) 2010-07-30 2015-05-26 Microsoft Technology Licensing, Llc System of providing suggestions based on accessible and contextual information
WO2012176104A1 (en) * 2011-06-24 2012-12-27 Koninklijke Philips Electronics N.V. Discharge readiness index
WO2013111317A1 (ja) * 2012-01-27 2013-08-01 富士通株式会社 情報処理方法、装置及びプログラム
US9015289B2 (en) 2012-04-12 2015-04-21 Netflix, Inc. Method and system for evaluating the resiliency of a distributed computing service by inducing a latency
US20150358215A1 (en) * 2012-06-29 2015-12-10 Nec Corporation Shared risk influence evaluation system, shared risk influence evaluation method, and program
US10026064B2 (en) 2013-09-13 2018-07-17 Microsoft Technology Licensing, Llc Automatically recommending updates based on stored lifecycle information
US9830142B2 (en) 2013-09-13 2017-11-28 Microsoft Technology Licensing, Llc Automatic installation of selected updates in multiple environments
US9665359B2 (en) 2013-09-13 2017-05-30 Microsoft Technology Licensing, Llc Automatically resolving conflicts after installation of selected updates in a computer system
US9626176B2 (en) * 2013-09-13 2017-04-18 Microsoft Technology Licensing, Llc Update installer with technical impact analysis
US9473347B2 (en) 2014-01-06 2016-10-18 International Business Machines Corporation Optimizing application availability
US20150193783A1 (en) * 2014-01-07 2015-07-09 Bank Of America Corporation Assessing Client Impact
US9489517B2 (en) * 2014-10-21 2016-11-08 Fujitsu Limited Determining an attack surface of software
CN105808619B (zh) * 2014-12-31 2019-08-06 华为技术有限公司 基于影响分析的任务重做的方法、影响分析计算装置及一键重置装置
US10217067B2 (en) 2015-03-11 2019-02-26 International Business Machines Corporation System, method and program product for scheduling interventions on allocated resources with minimized client impacts
US9747153B2 (en) * 2015-06-22 2017-08-29 Microsoft Technology Licensing, Llc Resilience as a service
US10536349B1 (en) * 2015-12-31 2020-01-14 VCE IP Holding Company LLC Configuration system and method for an integrated computing system
US10346615B2 (en) * 2016-12-29 2019-07-09 Intel Corporation Rule driven patch prioritization
US10666507B2 (en) * 2017-06-30 2020-05-26 Microsoft Technology Licensing, Llc Automatic reconfiguration of dependency graph for coordination of device configuration
US10469327B1 (en) * 2017-10-18 2019-11-05 Vulcan Inc. Operations environment model and simulation to reduce operator error
US10601857B2 (en) 2017-11-28 2020-03-24 International Business Machines Corporation Automatically assessing a severity of a vulnerability via social media
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
US10783065B2 (en) 2018-03-23 2020-09-22 Sungard Availability Services, Lp Unified test automation system
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
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
US11405260B2 (en) * 2019-11-18 2022-08-02 Juniper Networks, Inc. Network model aware diagnosis of a network
US11533215B2 (en) 2020-01-31 2022-12-20 Juniper Networks, Inc. Programmable diagnosis model for correlation of network events
CN113206749B (zh) 2020-01-31 2023-11-17 瞻博网络公司 网络事件的相关性的可编程诊断模型
US11748458B2 (en) 2020-04-15 2023-09-05 Codelogic, Inc. Systems and methods for a governance engine
US11269711B2 (en) 2020-07-14 2022-03-08 Juniper Networks, Inc. Failure impact analysis of network events
US11550925B2 (en) 2021-03-24 2023-01-10 Bank Of America Corporation Information security system for identifying potential security threats in software package deployment
US11593192B2 (en) * 2021-05-17 2023-02-28 International Business Machines Corporation Detecting resource redundancy and conflicts in a heterogeneous computing environment
US11645056B2 (en) * 2021-07-15 2023-05-09 Intuit Inc. Capturing variable dependencies using a variable agnostic object

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US583577A (en) * 1897-06-01 Wire fence
US4751635A (en) 1986-04-16 1988-06-14 Bell Communications Research, Inc. Distributed management support system for software managers
DE3750944T2 (de) * 1986-10-14 1995-05-11 Sharp Kk Eingabesystem für eine tragbare Datenverarbeitungsanlage.
EP0496494A3 (en) 1991-01-22 1993-05-12 International Business Machines Corporation Software maintenance system
US5500940A (en) * 1994-04-25 1996-03-19 Hewlett-Packard Company Method for evaluating failure in an electronic data storage system and preemptive notification thereof, and system with component failure evaluation
DE4428132C2 (de) 1994-08-06 1996-07-18 Ibm Verfahren zur automatischen Überprüfung eines Datenübertragungsnetzwerks
US5652867A (en) * 1994-09-08 1997-07-29 Sabre Decision Technologies, A Division Of The Sabre Group, Inc. Airline flight reservation system simulator for optimizing revenues
US5805891A (en) 1995-07-26 1998-09-08 International Business Machines Corporation System and method for managing maintenance of computer software
US5835777A (en) 1996-03-20 1998-11-10 Hewlett-Packard Company Method of automatically generating a software installation package
US6612382B2 (en) * 1996-03-25 2003-09-02 Halliburton Energy Services, Inc. Iterative drilling simulation process for enhanced economic decision making
US5721824A (en) 1996-04-19 1998-02-24 Sun Microsystems, Inc. Multiple-package installation with package dependencies
US5867714A (en) 1996-10-31 1999-02-02 Ncr Corporation System and method for distributing configuration-dependent software revisions to a computer system
GB9623298D0 (en) 1996-11-08 1997-01-08 Int Computers Ltd Updating mechanism for software
US5960196A (en) 1996-12-18 1999-09-28 Alcatel Usa Sourcing, L.P. Software release metric reporting system and method
US5953533A (en) 1997-08-27 1999-09-14 Lucent Technologies Inc. Computer software distribution, installation and maintenance method and apparatus
US6009525A (en) 1997-08-29 1999-12-28 Preview Systems, Inc. Multi-tier electronic software distribution
DE19742446B4 (de) * 1997-09-26 2006-05-24 Daimlerchrysler Ag Fehlerdiagnoseverfahren
JP3875436B2 (ja) 1999-10-28 2007-01-31 富士通株式会社 ネットワーク管理装置および記録媒体
JP2001222424A (ja) 2000-02-08 2001-08-17 Fujitsu Ltd ソフトウェアライセンス管理装置,ソフトウェアライセンス管理方法およびソフトウェアライセンス管理用プログラム記録媒体
EP1287445A4 (en) 2000-04-04 2003-08-13 Goahead Software Inc DEVELOPING A COMPONENT MANAGEMENT DATABASE FOR MANAGING ROLES USING ORIENTED GRAPHS
US6496814B1 (en) * 2000-07-19 2002-12-17 International Business Machines Corporation Method and system for integrating spatial analysis, and scheduling to efficiently schedule and monitor infrastructure maintenance
US20020147966A1 (en) * 2001-02-14 2002-10-10 Ncr Corporation Operating software performance monitor
US6651187B2 (en) * 2001-12-31 2003-11-18 Globespanvirata Inc. System and method for determining fault path behavior
US20030187967A1 (en) * 2002-03-28 2003-10-02 Compaq Information Method and apparatus to estimate downtime and cost of downtime in an information technology infrastructure

Also Published As

Publication number Publication date
US20040049372A1 (en) 2004-03-11
TW200417221A (en) 2004-09-01
JP2004103014A (ja) 2004-04-02
US7334222B2 (en) 2008-02-19
TWI234977B (en) 2005-06-21

Similar Documents

Publication Publication Date Title
JP4426797B2 (ja) 依存性に基づく影響シミュレーションおよび脆弱性分析のための方法および装置
US7505872B2 (en) Methods and apparatus for impact analysis and problem determination
US7096459B2 (en) Methods and apparatus for root cause identification and problem determination in distributed systems
US7240325B2 (en) Methods and apparatus for topology discovery and representation of distributed applications and services
US6847970B2 (en) Methods and apparatus for managing dependencies in distributed systems
EP1386240B1 (en) Synthetic transaction monitor
EP1490775B1 (en) Java application response time analyzer
US8751283B2 (en) Defining and using templates in configuring information technology environments
US7792948B2 (en) Method and system for collecting, aggregating and viewing performance data on a site-wide basis
Oppenheimer et al. Why do Internet services fail, and what can be done about it?
US7047291B2 (en) System for correlating events generated by application and component probes when performance problems are identified
US7426736B2 (en) Business systems management solution for end-to-end event management using business system operational constraints
US20040039728A1 (en) Method and system for monitoring distributed systems
US20070156889A1 (en) Method and system for determining application availability
US7469287B1 (en) Apparatus and method for monitoring objects in a network and automatically validating events relating to the objects
WO2021086523A1 (en) Support ticket platform for improving network infrastructures
US20060095395A1 (en) Using MD4 checksum as primary keys to link transactions across machines
E-BUSINESS E-business Impact on IT Management

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060622

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060622

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20060622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060622

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20061127

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061127

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070109

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20070420

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20081225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091023

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20091209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091211

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S202 Request for registration of non-exclusive licence

Free format text: JAPANESE INTERMEDIATE CODE: R315201

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

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

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

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121218

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees