(57)【特許請求の範囲】
【請求項１】
ソフトウェア・コンポーネントをモニターするためのデータ処理システムであって、
前記モニターのための複数の情報をクライアントに公開する公開ソフトウェア・コンポーネント
を実装しており、
前記クライアントが、モニター対象ソフトウェア・コンポーネント、消費者ソフトウェア・コンポーネント、及びサード・パーティのモニター・ソフトウェア・コンポーネントのうちの少なくとも１つを実装しており、前記公開ソフトウェア・コンポーネント及び前記クライアントは互いに通信可能なように接続されており、
前記複数の情報それぞれが、前記モニター対象ソフトウェア・コンポーネントの動作をモニターするのに用いるためのモニター方法についてのコンピュータが読み取り可能な形式に基づいて記載されており、
前記情報が、
前記モニター対象ソフトウェア・コンポーネントが自分自身の動作をモニターするために、該モニター対象ソフトウェア・コンポーネント自身によって用いられるモニター方法を決定すること、
前記モニター対象ソフトウェア・コンポーネントをモニターするために、前記消費者ソフトウェア・コンポーネントによって用いられるモニター方法を決定すること、及び、
前記モニター対象ソフトウェア・コンポーネントをモニターするために、前記サード・パーティのモニター・ソフトウェア・コンポーネントによって用いられるモニター方法を決定すること
のうちの少なくとも１つを実行するために、クライアントによって用いられ、
前記モニター対象ソフトウェア・コンポーネントが前記公開ソフトウェア・コンポーネントに登録された特定のサービスを有し、
前記公開ソフトウェア・コンポーネントが、前記モニター対象ソフトウェア・コンポーネントを特定する情報と、該モニター対象ソフトウェア・コンポーネントがどのように自動的にモニターされるかを特定する情報とを、前記消費者ソフトウェア・コンポーネントに提供する機能を有し、
前記消費者ソフトウェア・コンポーネントが、前記情報を用いて前記モニター対象ソフトウェア・コンポーネントをモニターする機能を有し、
モニター・システムが前記サード・パーティのモニター・ソフトウェア・コンポーネントを含み、該サード・パーティのモニター・ソフトウェア・コンポーネントが、前記モニター対象ソフトウェア・コンポーネントをモニターするための要求を受け入れる、前記データ処理システム。
【請求項２】
前記モニター方法が、前記モニター対象ソフトウェア・コンポーネントと前記クライアントとの間に存在する合意に応じて前記情報内に用意される、請求項１に記載のデータ処理システム。
【請求項３】
前記公開ソフトウェア・コンポーネントがまた、前記複数の情報を介して前記モニター対象ソフトウェア・コンポーネントの情報を提供し、選択された基準を満たすクライアントの検索をディレクトリを介して可能にする、請求項１に記載のデータ処理システム。
【請求項４】
前記クライアントが、前記モニター方法を実行し且つ該モニター方法の実行結果に応答してアクションを実行する、請求項１に記載のデータ処理システム。
【請求項５】
前記アクションが、前記結果が一定の基準を満たすときに特定のクライアントにメッセージを送信すること、該結果が前記一定の基準を満たすときに前記情報において特定された特定のアルゴリズムを実行すること、前記結果が前記一定の基準を満たすときに前記モニター対象ソフトウェア・コンポーネントを再始動すること、前記結果が前記一定の基準を満たすときに新たなモニター対象ソフトウェア・コンポーネントを生成すること、前記結果が前記一定の基準を満たすときに前記モニター対象ソフトウェア・コンポーネントを終了すること、問題判別処理を開始すること、及び、前記モニター対象ソフトウェア・コンポーネント内の内部デッドロックを解消することのうちの少なくとも１つを含む、請求項４に記載のデータ処理システム。
【請求項６】
前記要求が前記消費者ソフトウェア・コンポーネントから受信される、請求項１に記載のデータ処理システム。
【請求項７】
前記サード・パーティのモニター・ソフトウェア・コンポーネントが、前記モニター対象ソフトウェア・コンポーネントをモニターするための料金を課す、請求項１に記載のデータ処理システム。
【請求項８】
前記要求が、前記モニター方法の特定、該要求を満たす特定のモニター方法を選択する方法の特定、認証、及び承認のうちの少なくとも１つを含む、請求項１に記載のデータ処理システム。
【請求項９】
前記サード・パーティのモニター・ソフトウェア・コンポーネントが、前記複数の情報中の前記モニター対象ソフトウェア・コンポーネントに関する情報を含む情報を調べることによって前記モニター方法を特定する、請求項５に記載のデータ処理システム。
【請求項１０】
前記複数の情報が前記モニター対象ソフトウェア・コンポーネントに関する統計情報を含み、前記統計情報が、モニター対象ソフトウェア・コンポーネントを現在モニターしているモニター・ソフトウェア・コンポーネント、モニター対象ソフトウェア・コンポーネントを以前にモニターしていたモニター・ソフトウェア・コンポーネント、及び、モニター対象ソフトウェア・コンポーネントをモニターすることが予定されたモニター・ソフトウェア・コンポーネントの特定を含み、前記統計情報が前記要求に応答して提供される、請求項１に記載のデータ処理システム。
【請求項１１】
前記クライアントが、モニター対象ソフトウェア・コンポーネントのモニターを行っている選択されたモニター・ソフトウェア・コンポーネントによって実行される前記モニター方法に用いられるパラメータの変更を要求することができる、請求項１０に記載のデータ処理システム。
【請求項１２】
前記モニター対象ソフトウェア・コンポーネントのモニター結果がソフトウェア・コンポーネントのセットに送信される、請求項１１に記載のデータ処理システム。
【請求項１３】
前記モニター対象ソフトウェア・コンポーネントが、該モニター対象ソフトウェア・コンポーネント上でのテスト方法を開始するように設計されたモニター・インターフェースをサポートする、請求項１に記載のデータ処理システム。
【請求項１４】
前記モニター・インターフェースが、要求を受け入れて、前記モニター対象ソフトウェア・コンポーネントが要求に応答できることの標識、特定の機能が正しく作動していることの標識、１組の機能が正しく作動していることの標識、連続的なデータ・ストリーム、及び、定期的なデータ・ストリームのうちの少なくとも１つを含む応答を生成する、請求項１３に記載のデータ処理システム。
【請求項１５】
ソフトウェア・コンポーネントをモニターするための方法であって、請求項１〜１４のいずれか１項に記載のデータ処理システムに下記ステップを実行させることを含み、該ステップが、
前記複数の情報それぞれがモニター方法と前記クライアントのセットに対して提供されるサービスとを特定することを含むように、該クライアントのセットを登録するステップと、
特定のサービスを要求するクライアントに対して、前記登録されたセット内の前記特定のサービスを提供する選択されたクライアントをモニターするために該クライアントが用いる情報を選択的に告知するステップであって、
前記特定のサービスを要求するクライアントからの要求を受信することに応じて、前記登録されたセットから１つのクライアントを識別するステップと、
前記識別されたクライアントへの応答を送信するステップであって、該応答は、前記識別されたクライアントを識別する情報とモニターする方法とを含む、前記送信するステップと、
サード・パーティのモニター・ソフトウェア・コンポーネントについての前記クライアントからの要求を受信することに応じて、前記識別されたクライアントをモニターすることが可能なサード・パーティのモニター・ソフトウェア・コンポーネントを識別するステップと、
前記識別されたクライアントへの他の応答を送信するステップであって、該応答は、前記識別されたサード・パーティのモニター・ソフトウェア・コンポーネントを識別する情報を含む、前記送信するステップと
含む、前記方法。
【請求項１６】
ソフトウェア・コンポーネントをモニターするためのコンピュータ・プログラムであって、請求項１〜１４のいずれか１項に記載のデータ処理システムに、請求項１５に記載の方法の各ステップを実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、改善された分散データ処理システムに関し、具体的には、分散データ処理システムにおけるエンティティをモニターするための方法及び装置に関する。さらにより具体的には、本発明は、ネットワーク・データ処理システムにおいてサービスを提供するエンティティを特定し、モニターするための方法及び装置を提供する。
【背景技術】
【０００２】
近年のコンピュータ技術が、非常に複雑で絶え間なく変わり続ける環境をもたらした。こうした環境の１つは、「インターネットワーク」とも呼ばれるインターネットである。インターネットは、データ転送と、送信ネットワークのプロトコルから受信ネットワークによって用いられるプロトコルへのメッセージ変換とを処理するゲートウェイによって相互に結合された、異なるものであってよい、１組のコンピュータ・ネットワークである。「インターネット」という用語を用いる場合、この用語は、ＴＣＰ／ＩＰプロトコル・スイートを用いるネットワーク及びゲートウェイの集合を指す。現在、インターネット上でデータを転送するのに利用される最も一般的な方法は、単に「ウェブ」とも呼ばれるワールド・ワイド・ウェブ環境を利用するものである。情報を転送するために、ファイル転送プロトコル（ＦＴＰ）及びＧｏｐｈｅｒなどの他のインターネット・リソースが存在するが、これらはウェブほど普及しなかった。ウェブ環境においては、サーバ及びクライアントが、様々なデータ・ファイル（例えば、テキスト、静止グラフィック画像、音声、動画ビデオなど）の転送を処理するための既知のプロトコルであるハイパーテキスト転送プロトコル（ＨＴＴＰ）を用いて、データ・トランザクションを行う。様々なデータ・ファイルの情報は、ユーザに提示するために、標準的なページ記述言語によって書式設定される。インターネットはまた、ブラウザを用いてアプリケーションをユーザに転送するのに広く用いられる。多くの場合、ソフトウェア・パッケージのユーザは、これらのソフトウェア・パッケージの更新版をインターネット経由で検索し、取得することができる。
【０００３】
他のタイプの複雑なネットワーク・データ処理システムとして、大企業の仕事を容易にするために作成されるシステムが挙げられる。多くの場合、こうしたネットワークは、世界の様々な場所において地域を越えて広がることになる。こうした複雑なネットワークも、事業を行うための仮想プライベート・ネットワークの一部として、インターネットを用いることができる。ネットワーク内部で用いられるソフトウェアを管理し、更新する必要性により、こうしたネットワークがさらに複雑なものになる。多くの場合、異なるネットワーク・データ処理システム間の相互作用は、異なるトランザクションを円滑に進めるように発生する。こうしたトランザクションとして、例えば、備品、部品、及びサービスの購入及び供給が挙げられる。トランザクションは、単一の企業内又は異なる企業間で発生する場合がある。
【０００４】
こうした環境は、緩やかに結びついた多くのソフトウェア・コンポーネントで構成される。これらのソフトウェア・コンポーネントは、「エンティティ」とも呼ばれる。近年の複雑なネットワーク・データ処理システムにおいては、特定の実行処理又は特定のサービスといった別のエンティティの動作をテスト又はモニターする必要性が生じる多くの状況が存在する。現在は、人間のオペレータが、重要なシステム・サービスなどのエンティティの適切な機能をテスト及びモニターして、これらのエンティティの障害及び故障を検出し、修正しなければならない。あるサービスが、その正しい機能について他のサービスに依存することが多い。この場合、こうした他のサービスが正しく機能していないときには措置を講じるか又は警報を発するために、該サービスが正しく機能しているかどうかを判断することが重要である。例えば、備品をオーダーするために用いられる購買エンティティが、まれに、選択されたコンポーネントを特定のプロバイダから要求することがある。このコンポーネントはほとんど必要とされることはないが、必要性が生じたときには迅速に該コンポーネントを取得できることが必要である。プロバイダがそのインベントリを変更してコンポーネントを提供できなくなったか、又は、プロバイダでオーダーを生成するのに用いられるオーダー・エンティティが利用不可能になった場合には、購買エンティティが別のサービスを探し出せることがきわめて重要である。現在は、オーダー・エンティティが正しく機能しているかどうかを判断するために、人間のオペレータが、該オーダー・エンティティをテストする処理を特定することが必要である。この例においては、オーダー・エンティティが、インベントリの中で利用可能な選択されたコンポーネントを提供した場合には、該オーダー・エンティティは正しく機能している。この処理を特定した後、人間のオペレータは、オーダー・エンティティをモニターしなければならない。
【０００５】
現在は、コンピュータ・エンティティのテスト及びモニターは、主として場当たり的に行われる。特定のサービスをモニターすることが必要な人間のオペレータは、そのサービスについてのモニター・プログラムを作成するか、又は、モニターを実行するために他人が作成したこのようなプログラムを手動で検索することになる。モニター・プログラムは、手動で配置及び設定され、人間のオペレータは、その出力を手動で検査する。場合によっては、人間のオペレータは、問題が検出されたときにサービスを再起動するといった幾つかの措置を自動的に行うシェルに、モニター・プログラムをラップすることができる。
【０００６】
ＩＢＭ  Ｔｉｖｏｌｉ  Ｅｎｔｅｒｐｒｉｓｅ  Ｃｏｎｓｏｌｅなどの既存の保守管理ツールは、多数の異なるエンティティからの、検出された障害及び生成された警報を含むモニター・ステータス及びテスト結果を表示し、一定の警報が生じた場合に自動的にとられなければならない措置を管理者が指定することを可能にする管理コンソールなどの機能を含む。ＩＢＭ  Ｔｉｖｏｌｉ  Ｅｎｔｅｒｐｒｉｓｅ  Ｃｏｎｓｏｌｅは、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎから入手可能である。Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ（ＳＮＭＰ）などの規格は、警報及び他のシステム・イベントをエンティティ間で通信するための十分に裏づけされた方法を規定するものである。最新のコンピュータ・システムには、ハードウェア及びソフトウェアともに、テスト容易性を考慮して設計されるものもあり、正規の製造者か、１つ又はそれ以上のサード・パーティのいずれかが、特定の製品をテストするための特定のテスト・ツール又はアルゴリズムを提供する場合もある。
【０００７】
これらのタイプの保守管理ツールを用いる場合であっても、人間のオペレータが、こうしたエンティティをモニターするのに用いられることになるエンティティ及び方法を特定することが必要である。こうしたシステムは、時間のかかるものであり、サービスをどのようにモニターすべきかを特定するのに広範囲に及ぶ調査を必要とする場合が多い。したがって、サービスを提供するエンティティを特定し、モニターするための改善された方法、装置、及びコンピュータ命令を有することが有利であろう。
【発明の開示】
【０００８】
本発明は、エンティティの特定及びモニターを行うための方法、装置、及びコンピュータ命令を提供するものである。分散データ処理システムが、コンピュータ読取可能な告知を標準的な言語で公開する１つ又はそれ以上の分散公開エンティティを含む。これらの告知には、１つ又はそれ以上の分散モニター対象エンティティの動作をモニターするのに用いることができるモニター方法の記述を含むことができる。これらの告知には、分散モニター対象エンティティが自分自身の動作をモニターするために用いるか、又は該分散モニター対象エンティティの動作をモニターするために分散消費者エンティティが用いることができるモニター方法を特定するのに用いられる情報を含むこともできる。モニターは、サード・パーティ分散モニター・エンティティが実行することもできる。
【０００９】
本発明の特質であると考えられる新規な特徴は、添付の特許請求の範囲に記述される。しかしながら、発明自体並びにその好ましい使用形態、さらなる目的、及び利点は、添付図面と共に読んだときに、以下の例示的な実施形態の詳細な説明を参照して、最も良く理解されるであろう。
【発明を実施するための最良の形態】
【００１０】
ここで図面を参照すると、図１は、本発明を実装することができるデータ処理システムのネットワークの図形表示を示す。ネットワーク・データ処理システム１００は、本発明を実装することができるコンピュータのネットワークである。ネットワーク・データ処理システム１００は、該ネットワーク・データ処理システム１００内で相互に接続される様々な装置及びコンピュータ間の通信リンクを提供するのに用いられる媒体であるネットワーク１０２を含む。ネットワーク１０２は、ワイヤ、ワイヤレス通信リンク、又は光ファイバ・ケーブルなどの接続を含むことができる。
【００１１】
示された例においては、サーバ１０４が、ストレージ・ユニット１０６と共にネットワーク１０２に接続される。さらに、クライアント１０８、１１０、及び１１２が、ネットワーク１０２に接続される。これらのクライアント１０８、１１０、及び１１２は、例えばパーソナル・コンピュータ又はネットワーク・コンピュータとすることができる。図示された例においては、サーバ１０４は、ブート・ファイル、オペレーティング・システム・イメージ、及びアプリケーションなどのデータをクライアント１０８、１１０、及び１１２に与えるものである。クライアント１０８、１１０、及び１１２は、サーバ１０４に対するクライアントである。ネットワーク・データ処理システム１００には、示されていない付加的なサーバ、クライアント、及び他の装置を含んでもよい。サーバ１０４及びクライアント１０８〜１１２は、ネットワーク１０２を介して相互に通信を行うことができる異なる分散エンティティを含むことができる。「分散エンティティ」は、自律型要素、エージェント、ブローカ、統合事業者、モニター、消費者、供給者、販売者、及び仲介者を含むがこれらに制限されるものではない機能を実行することができる、ネットワーク・データ処理システムにおける何らかの実体である。
【００１２】
図示された例においては、ネットワーク・データ処理システム１００は、Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（ＴＣＰ／ＩＰ）プロトコル・スイートを用いて相互に通信を行うネットワーク及びゲートウェイの世界的な集合を表すネットワーク１０２を持つインターネットである。インターネットの中心には、データ及びメッセージ送付する何千もの商用コンピュータ・システム、政府系コンピュータ・システム、教育用コンピュータ・システム、及び他のコンピュータ・システムで構成されるメジャー・ノード又はホスト・コンピュータ間の高速データ通信線のバックボーンがある。当然のことながら、ネットワーク・データ処理システム１００は、例えばインターネット、ローカル・エリア・ネットワーク（ＬＡＮ）、又は広域ネットワーク（ＷＡＮ）などの、多数の異なるタイプのネットワークとして実装することもできる。図１は、一例を表すものであり、本発明についてのアーキテクチャ面の制限として意図されるものではない。本発明の機構は、異なるデータ処理システムを含む、相互に通信を行うあらゆるネットワーク・データ処理システムに実装することができる。
【００１３】
図２を参照すると、本発明の好ましい実施形態にしたがって、図１のサーバ１０４などのサーバとして実装することができるデータ処理システムのブロック・ダイアグラムが示される。データ処理システム２００は、システム・バス２０６に接続された複数のプロセッサ２０２及び２０４を含む単一システム又は対称型マルチプロセッサ・システム（ＳＭＰ）とすることができる。代替的に、シングル・プロセッサ・システムを使用することもできる。システム・バス２０６には、ローカル・メモリ２０９とのインターフェースになるメモリ・コントローラ／キャッシュ２０８も接続される。Ｉ／Ｏバス・ブリッジ２１０が、システム・バス２０６に接続され、Ｉ／Ｏバス２１２とのインターフェースになる。メモリ・コントローラ／キャッシュ２０８及びＩ／Ｏバス・ブリッジ２１０は、図示されるように一体化することができる。
【００１４】
Ｉ／Ｏバス２１２に接続されたペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バス・ブリッジ２１４が、ＰＣＩローカル・バス２１６とのインターフェースになる。ＰＣＩローカル・バス２１６には、多数のモデムを接続することができる。典型的なＰＣＩバス実装は、４つのＰＣＩ拡張スロット又はアドイン・コネクタをサポートするものである。図１のクライアント１０８〜１１２との通信リンクは、アドイン・ボードを介してＰＣＩローカル・バス２１６に接続されたモデム２１８及びネットワーク・アダプタ２２０によって構成することができる。
【００１５】
付加的なＰＣＩバス・ブリッジ２２２及び２２４が、付加的なモデム又はネットワーク・アダプタをサポートすることができる付加的なＰＣＩローカル・バス２２６及び２２８のためのインターフェースになる。このようにして、データ処理システム２００は、多数のネットワーク・コンピュータとの接続が可能になる。図示されるように、メモリ・マップ・グラフィックス・アダプタ２３０及びハード・ディスク２３２も、直接的に又は間接的に、Ｉ／Ｏバス２１２に接続することができる。
【００１６】
当業者であれば、図２に示されたハードウェアは変更できることを理解するであろう。例えば、図示されたハードウェアに加えて、又はそれらに代えて、光ディスク・ドライブなどといった他の周辺装置を用いることもできる。図示された例は、本発明についてのアーキテクチャ面での制限を意味することを意図するものではない。図２に示されたデータ処理システムは、例えば、拡張対話式エグゼクティブ（ＡＩＸ）オペレーティング・システム又はＬＩＮＵＸ（Ｒ）オペレーティング・システムが作動する、ニューヨーク州アーモンクのＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの製品であるＩＢＭ  ｅＳｅｒｖｅｒ  ｐＳｅｒｉｅｓシステムとすることができる。
【００１７】
ここで図３を参照すると、本発明を実装することができるデータ処理システムを説明するブロック・ダイアグラムが示される。データ処理システム３００は、図１のクライアント１０８などのクライアント・コンピュータの例である。
データ処理システム３００は、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）ローカル・バス・アーキテクチャを利用する。図示された例はＰＣＩバスを利用するものであるが、Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ（ＡＧＰ）及びＩｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）などの他のバス・アーキテクチャを用いることもできる。プロセッサ３０２及びメイン・メモリ３０４が、ＰＣＩブリッジ３０８を介してＰＣＩローカル・バス３０６に接続される。ＰＣＩブリッジ３０８は、プロセッサ３０２のための一体型のメモリ・コントローラ及びキャッシュ・メモリを含むこともできる。コンポーネントの直接相互接続によって、又はアドイン・ボードを介して、ＰＣＩローカル・バス３０６との付加的な接続が行われる。図示された例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ３１０、ＳＣＳＩホスト・バス・アダプタ３１２、及び拡張バス・インターフェース３１４が、コンポーネントの直接接続によってＰＣＩローカル・バス３０６に接続される。対照的に、オーディオ・アダプタ３１６、グラフィックス・アダプタ３１８、及びオーディオ／ビデオ・アダプタ３１９が、拡張スロットに挿入されたアドイン・ボードによって、ＰＣＩローカル・バス３０６に接続される。拡張バス・インターフェース３１４は、キーボード及びマウス・アダプタ３２０、モデム３２２、及び追加メモリ３２４の接続を提供する。小型コンピュータ・システム・インターフェース（ＳＣＳＩ）ホスト・バス・アダプタ３１２は、ハード・ディスク・ドライブ３２６、テープ・ドライブ３２８、及びＣＤ−ＲＯＭドライブ３３０の接続を提供する。典型的なＰＣＩローカル・バス実装は、３つ又は４つのＰＣＩ拡張スロット又はアドイン・コネクタをサポートするものである。
【００１８】
オペレーティング・システムが、プロセッサ３０２上で作動し、図３のデータ処理システム３００内部の様々なコンポーネントの制御を調整及び提供するのに用いられる。オペレーティング・システムは、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎから入手可能なＷｉｎｄｏｗｓ（Ｒ）ＸＰなどの市販のオペレーティング・システムとすることができる。オペレーティング・システム及びアプリケーション又はプログラムについての命令は、ハード・ディスク・ドライブ３２６などの記憶装置上に置かれ、プロセッサ３０２による実行のためにメイン・メモリ３０４に読み込むことができる。
【００１９】
当業者であれば、図３のハードウェアは、実装形態に応じて変更できることを理解するであろう。図３に示されたハードウェアに加えて、又はそれらに代えて、フラッシュ読み取り専用メモリ（ＲＯＭ）、同様の不揮発性メモリ、及び光ディスク・ドライブなどといった他の内蔵ハードウェア又は周辺装置を用いることもできる。また、本発明の処理は、マルチプロセッサ・データ処理システムに応用することができる。
【００２０】
図３に示された例及び上述の例は、アーキテクチャ面での制限を意味することを意図するものではない。例えば、データ処理システム３００は、ＰＤＡの形態をとることに加えて、ノートブック・コンピュータ又はハンドヘルド・コンピュータとすることもできる。データ処理システム３００は、キオスク又はＷｅｂアプライアンスとすることもできる。
【００２１】
本発明は、ネットワーク・データ処理システムにおいてエンティティによって提供されるサービスを特定し、モニターするための改善された方法、装置、及びコンピュータ命令を提供するものである。具体的には、本発明の機構は、Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ（ＷＳＤＬ）などの規格と、Ｕｎｉｖｅｒｓａｌ  Ｄｅｓｃｒｉｐｔｉｏｎ，Ｄｉｓｃｏｖｅｒｙ，ａｎｄ  Ｉｎｔｅｇｒａｔｉｏｎ（ＵＤＤＩ）などのシステムとを利用するものであり、これにより、プログラムが、特定のサービスを提供するエンティティを探し出し、これらのサービスとどのように通信してトランザクションを実施するかを自動的に判断することが可能になる。ＷＳＤＬは、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎ、Ａｒｉｂａ，Ｉｎｃ．、及びＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎなどの代表企業によって開発され、ＷｏｒｌｄＷｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍによって検討されている提案規格である。ＵＤＤＩバージョン３は、ウェブ・サービス・アプリケーション及びサービスについて用いられている現行仕様である。ＵＤＤＩのさらなる開発及び変更は、Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  ｔｈｅ  Ａｄｖａｎｃｅｍｅｎｔ  ｏｆ  Ｓｔｒｕｃｔｕｒｅｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｔａｎｄａｒｄｓ（ＯＡＳＩＳ）が担当することになる。本発明の機構は、これらの規格を用いて、通常は提供されない付加的な情報を公開する。この情報は、エンティティをモニターするのに用いることができる方法又は処理の特定を含む。このモニターには、例えば、サービスが機能しているかどうかを判断するためにエンティティをテストすることが含まれる。モニターは、サービスを提供するエンティティを用いるクライアントか、又は、自分自身の機能及び可用性をテストするエンティティ自体によって、実行することができる。この情報は、クライアントのためにエンティティをモニターするサード・パーティ・モニター・エンティティが用いることもできる。
【００２２】
ここで図４を参照すると、本発明の好ましい実施形態に従って、エンティティをモニターする際に用いられるメッセージ・フローを説明する図が示される。図４におけるメッセージ・フローは、分散モニター対象エンティティ４００と、分散公開エンティティ４０２と、分散消費者エンティティ４０４との間を流れる。分散モニター対象エンティティは、該エンティティの少なくとも一部が正しく作動しているか又は少なくとも１つの機能を実行できることを、ある程度の蓋然性で立証するのに用いることが可能な少なくとも１つの方法又はアルゴリズムが存在する分散エンティティである。分散公開エンティティは、利用可能な何らかの情報を、少なくとも１つの分散エンティティがアクセス可能な方法で公開するか、そうでなければ作成する分散エンティティである。分散消費者エンティティは、その機能を適切に又は最適に実行するために少なくとも１つの他の分散エンティティに依存する分散エンティティである。これらの例においては、エンティティは、図２のデータ処理システム２００又は図３のデータ処理システム３００などのデータ処理システム上で実行されるソフトウェア・コンポーネント又は処理である。特定の実装に応じて、これらのエンティティすべてを異なるデータ処理システム上に配置するか、又は、エンティティの幾つか又はすべてを同一のデータ処理システム上に配置することができる。
【００２３】
この例においては、分散モニター対象エンティティ４００は、登録メッセージ４０６をディレクトリ・サービスとして機能する分散公開エンティティ４０２に送信する。登録済みエンティティに関する情報は、ディレクトリ４０８に格納することができる。ディレクトリ４０８によって、分散公開エンティティ４０２が、分散モニター対象エンティティ４００に関する情報に加えて、該分散公開エンティティ４０２に登録済みの他のエンティティに関する情報を提供することが可能になる。具体的には、ディレクトリ４０８は、選択された基準を満たす登録済みエンティティを検索することを可能にする機構を提供する。これらの例においては、この選択された基準は、選択されたサービスである。他の基準として、例えば、分散モニター対象エンティティが配置されるコンピュータの地理的位置、又は、分散モニター対象エンティティと通信するのに用いられる特定のプロトコルを挙げることもできる。登録メッセージ４０６は、分散モニター対象エンティティ４００によって提供されるサービスに関する情報と、分散モニター対象エンティティ４００の適切な作動をどのように自動的にモニターすることができるかに関する情報との両方を含む。この登録情報は、分散モニター対象エンティティ４００をモニターするために用いられるモニター方法の記述を含むことができる。例えば、分散モニター対象エンティティ４００は、エンティティのモニターを可能にするように特別に設計されたモニター・インターフェースを含むことができる。例えば、モニター方法は、分散モニター対象エンティティ４００をモニターするテストを開始するための特定の命令又はパラメータを記述することができる。インターフェースは、単に要求を受け入れ、要求に応じることができることを示す応答を与えるのみである。インターフェースは、より複雑にして、連続的に又はモニター・インターフェースに送信された何らかの要求に基づいて定期的に、データ・ストリームを生成するようにしてもよい。分散モニター対象エンティティ４００は、データ・ストリームが受信された場合又は特定のデータが該データ・ストリームに戻された場合に、正しく機能していることについて確認することができる。応答は、クライアントである分散消費者エンティティ４０４によって要求された特定のサービス又はサービスのセットから生成されたデータとすることができる。代替的に、送信された要求は、予定されたエラー・メッセージが受信されることになる無効要求とすることができる。別のタイプのモニター方法においては、分散モニター対象エンティティ４００上に、Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＳＯＡＰ）要求を送信することができる特定のユニバーサル・リソース・エンドポイントを設けることができる。この要求に応答して、分散モニター対象エンティティ４００が正しく機能している場合に予定されることになる応答として、特定の応答を指定することができる。別のモニター方法は、特定のデータ・パターンを分散モニター対象エンティティ４００の指定ポートに送信することを含むことができる。このデータ・パターンに対する応答は、分散モニター対象エンティティ４００が正しく機能している場合には、幾つかの選択された対応パターンを有するはずである。別のモニター方法においては、分散モニター対象エンティティ４００が正しく機能している場合には選択された時間内に応答が受信されるようにして、特定の要求又は要求のクラスを分散モニター対象エンティティ４００に送信することができる。この特定の時間は、送信される要求の中で指定することができる。他の場合では、モニター方法は、分散モニター対象エンティティ４００をテストするために用いられることになる特定のプログラム又はプログラム断片とすることができる。このタイプのプログラムは、例えば、Ｐｒａｃｔｉｃａｌ  Ｅｘｔｒａｃｔｉｏｎ  Ｒｅｐｏｒｔ  Ｌａｎｇｕａｇｅ（ＰＥＲＬ）スクリプト、Ｒｅｍｏｔｅ  Ｍｅｔｈｏｄ  Ｉｎｖｏｃａｔｉｏ（ＲＭＩ）クライアント、ＲＭＩスタブ・クラス、及び実行可能バイナリなどの様々な形態をとることができる。当然のことながら、特定の実装に応じて、他のタイプのモニター方法を実装することもできる。
【００２４】
さらに、分散モニター対象エンティティ４００の適切な作動をどのように自動的にモニターすることができるかに関する情報は、分散モニター対象エンティティ４００以外のエンティティによるディレクトリ４０８への入力のために、分散公開エンティティ４０２に送信することができる。例えば、この登録情報は、テスト・エキスパート・エージェントを介するか、又は人間のオペレータの入力データによっても、送信することができる。分散モニター対象エンティティ４００をどのようにモニターすることができるかに関する情報は、分散モニター対象エンティティ４００に保存され、ディレクトリ４０８には入力されない場合もある。この場合には、分散消費者エンティティ４０４などのクライアントは、分散モニター対象エンティティ４００をモニターするための方法を分散モニター対象エンティティ４００から直接取得するであろう。ディレクトリ４０８は、エンティティをモニターするためのモニター方法だけでなく、エンティティの特定及びエンティティによって提供されるサービスも含む。このディレクトリは、例えば、現在モニターされているか、以前にモニターされたか、又は将来モニターされることが予定された分散モニター対象エンティティといった他の情報を含むこともできる。
【００２５】
その後、分散消費者エンティティ４０４が特定のサービスを提供するエンティティを探し出すことが必要なときには、このエンティティは、クエリ・メッセージ４１０を分散公開エンティティ４０２に送信する。代替的に、このクエリは、多数の分散公開エンティティによって受信され、これらのエンティティの１つ又はそれ以上が応答を返すようにしたブロードキャスト・メッセージとすることができる。分散公開エンティティ４０２は、ディレクトリ４０８内の適切なサービスを探し出し、応答メッセージ４１２を使って、特定のサービスを提供するエンティティに関する情報を分散消費者エンティティ４０４に返信する。この応答は、特定のサービスを提供する多数の異なるエンティティに関する情報を含むことができる。２つ以上のエンティティが応答メッセージ４１２に含まれる場合は、分散消費者エンティティ４０４は、これらの中から操作又は通信を行う１つ又はそれ以上のエンティティを選択することができる。この例においては、分散消費者エンティティ４０４は、分散モニター対象エンティティ４００を選択する。応答メッセージ４１２の情報は、分散モニター対象エンティティの適切な作動をどのようにモニターすることができるかだけでなく、該分散モニター対象エンティティ４００とどのように連絡を取るかに関する情報を含む。この情報は、分散モニター対象エンティティ４００に対して適用することができるモニター方法の少なくとも１つの記述を含むことができる。このモニター方法は、分散モニター対象エンティティ４００上で開始される処理とすることができる。モニター方法の処理は、分散モニター対象エンティティ４００内部か又は分散消費者エンティティ４０４などの別の場所に配置することができる。特定の実装によっては、モニター情報を応答メッセージ４１２から除外して、分散消費者エンティティ４０４がこのモニター情報を分散モニター対象エンティティ４００から直接取得するようにしてもよい。
【００２６】
特定されたエンティティ及び提供されたモニター方法は、異なるエンティティ間の特定のサービス・レベルの合意（ａｇｒｅｅｍｅｎｔ）又は他の合意に基づくものとすることができる。例えば、分散モニター対象エンティティ４００をモニターするのに用いられるモニター方法は、分散モニター対象エンティティ４００と分散公開エンティティ４０２との間に設定された何らかのサービス・レベルの合意又は他の合意に基づいて、分散公開エンティティ４０２が分散消費者エンティティ４０４に提供することができる。
【００２７】
分散消費者エンティティ４０４は、応答メッセージ４１２を受信した後に分散モニター対象エンティティ４００と連絡を取り、方法及びプロトコルを用いて機能操作４１４を開始する。これらは、例えばＷＳＤＬ及びＵＤＤＩといった、当該技術分野で知られている方法及びプロトコルである。この連絡は、分散消費者エンティティ４０４が分散モニター対象エンティティ４００によって提供される１つ又は複数のサービスを用いることが可能になるように開始される。分散消費者エンティティ４０４はまた、分散モニター対象エンティティ４００が適切に作動し続けていることを確認するために、分散モニター対象エンティティ４００と共にモニター操作４１６を実行する。これらの例においては、こうしたモニター操作は、応答メッセージ４１２に記述される。モニター操作は、定期イベント又は非定期イベントなどの異なるイベントによって開始させることができる。定期イベントは、モニター操作を起動するタイマーの期限とすることができる。非定期イベントは、例えば、分散消費者エンティティ４０４による購入オーダーといった選択された操作の開始とすることができる。これらの例においては、モニター操作４１６は、分散モニター対象エンティティ４００上で実行することができる１つ又はそれ以上のテストなどの方法である。モニターの間に１つ又はそれ以上のテストに不合格となった場合は、分散消費者エンティティ４０４は修正措置をとることができる。これらの修正措置として、例えば、障害の原因を判断するためにさらに診断テストを実行すること、人間の管理者にテスト不合格を通知すること、問題が存在することを別の分散エンティティに通知すること、分散モニター対象エンティティ４００の代わりを特定するために分散公開エンティティ４０２と連絡をとること、分散モニター対象エンティティ４００の再始動を試行すること、又は、応答メッセージ４１２において特定されたテスト方法内に指定された一連の選択措置を実行することなどを挙げることができる。
【００２８】
本発明の別の実施形態においては、分散消費者エンティティ４０４が分散モニター対象エンティティ４００と機能操作４１４を開始する前に、該分散消費者エンティティ４０４は、応答メッセージ４１２に記述されたテスト操作を実行して、該分散モニター対象エンティティ４００の適切な作動を確認する。本発明の別の実施形態においては、分散消費者エンティティ４０４は、分散モニター対象エンティティ４００と分散消費者エンティティ４０４との間でサービス・レベルの合意又は他の合意が整って初めて、応答メッセージ４１２に記述されたテスト操作を実行し、該テスト操作はその合意に対応するものである。１つの可能な実施形態においては、テスト操作を用いて、分散モニター対象エンティティ４００によって提供されるサービスが関連する合意に指定された応答時間の範囲内であることを確認する。
【００２９】
本発明の好ましい実施形態においては、分散モニター対象エンティティ４００は、該分散モニター対象エンティティ４００をモニターするために分散消費者エンティティ４０４によって開始されるモニター操作４１６を可能にするように特別に設計された、少なくとも１つのモニター・インターフェースを実装する。本発明の好ましい実施形態においては、分散モニター対象エンティティ４００をモニターするために分散消費者エンティティ４０４によって開始されるモニター操作４１６には、無効要求を該分散モニター対象エンティティ４００に送信し、予定されたエラー標識が受信されることを確認することが含まれる。さらに他の実施形態においては、モニター操作４１６は、分散モニター対象エンティティ４００が分散公開エンティティ４０２に向けた連続的な又は定期的なメッセージ・ストリームを生成することを要求し、該メッセージ・ストリームが予定通り到着し続けるのを確認することを含むものとすることができる。
【００３０】
本発明の別の実施形態においては、分散モニター対象エンティティ４００は、分散公開エンティティ４０２のディレクトリ４０８に問い合わせを行って、該分散モニター対象エンティティ４００の適切な作動をどのようにモニターすることができるかに関する情報を取得する。この情報は、自己診断の目的で、自分自身の作動をモニターする分散モニター対象エンティティ４００によって用いられる。本発明のさらに別の実施形態においては、分散消費者エンティティ４０４は、分散モニター対象エンティティ４００の適切な作動をどのようにモニターすることができるかに関する情報を、分散公開エンティティ４０２ではなく、分散モニター対象エンティティ４００自体から受信する。
【００３１】
ここで図５を参照すると、本発明の好ましい実施形態に従って、サード・パーティ分散モニター・エンティティが存在するエンティティをモニターするのに用いられるメッセージ・フローを説明する図が示される。この例においては、エンティティのモニターは、分散モニター対象エンティティである分散モニター対象エンティティ５００と、サード・パーティ分散モニター・エンティティ５０２と、分散公開エンティティ５０４と、分散消費者エンティティ５０６とに関係する。場合によっては、分散消費者エンティティ５０６は、正しく又は最適に機能するために、分散モニター対象エンティティ５００などの別のエンティティによって提供されるサービスに依存することがある。分散消費者エンティティ５０６は、モニター機能を実行することができない場合もある。効率性を理由として、サード・パーティ・モニターを用いることもできる。結果として、サード・パーティ分散モニター・エンティティ５０２などの別のエンティティを利用して、モニター機能を提供することができる。
【００３２】
分散モニター・エンティティは、分散モニター対象エンティティの少なくとも一部が正しく作動しているか又は少なくとも１つの機能を実行できることを、ある程度の蓋然性で立証するための少なくとも１つの技術又はアルゴリズムを利用する分散エンティティである。サード・パーティ分散モニター・エンティティは、自分自身の機能の適切な又は最適な実行について自分自身には依存しない少なくとも１つの分散モニター対象エンティティをモニターする可能性がある分散エンティティである。さらに、サード・パーティ分散モニター・エンティティ５０２は、分散消費者エンティティ５０６以外の他のエンティティからの要求を受け入れて、分散モニター対象エンティティ５００又は他のエンティティをモニターすることもできる。言い換えると、サード・パーティ分散モニター・エンティティ５０２は、多数のクライアント及び多数の分散モニター対象エンティティをモニターすることができる。さらに、サード・パーティ分散モニター・エンティティ５０２によって提供されるモニター・サービスについて、料金を課すことができる。さらに、モニターのタイプ、モニター方法、又はモニターに用いられるパラメータは、例えば分散公開エンティティ５０４などの別のエンティティから受信した入力に基づいて、変更又は修正することができる。修正は、例えば、分散モニター対象エンティティ５００のモニター結果に応じて、通知されることになるエンティティを変更することを含むものとすることができる。この例においては、サード・パーティ分散モニター・エンティティ５０２は、登録メッセージ５０８を、ディレクトリ・サービスとして機能する分散公開エンティティ５０４に送信する。分散モニター対象エンティティ５００に関する情報、及び、サード・パーティ分散モニター・エンティティ５０２に関する情報は、分散公開エンティティ５０４内部のディレクトリ５１０に格納することができる。この例においては、登録メッセージ５０８には、モニター方法、すなわち分散モニター対象エンティティ５００上で実行することができる方法に関する情報が含まれる。この例においては、サード・パーティ分散モニター・エンティティ５０２は、分散モニター対象エンティティ５００などのエンティティ上でモニター操作を実行することができるエンティティとして自分自身を分散公開エンティティ５０４に登録するために、登録メッセージ５１２を送信する。登録メッセージ５１２は、サード・パーティ分散モニター・エンティティ５０２が実行することができるモニターの種類を特定する。この情報は、モニターを実行することができるエンティティを特定することもできる。
【００３３】
特定の実装に応じて、サード・パーティ分散モニター・エンティティ５０２は、分散モニター対象エンティティ５００に関するモニター情報を分散公開エンティティ５０４に登録するために、情報を登録メッセージ５１２に加えることもできる。さらに、ディレクトリ５１０は、モニター・サービスを現在提供しているサード・パーティ分散モニター・エンティティ、モニター・サービスを以前に提供したサード・パーティ分散モニター・エンティティ、及び、モニター・サービスを提供することが予定されたサード・パーティ分散モニター・エンティティに関する情報を含むこともできる。
【００３４】
本発明の幾つかの実施形態においては、分散消費者エンティティ５０６のような分散消費者エンティティが、（例えば、過去にモニター目的で用いられたサード・パーティ分散モニター・エンティティが、現在モニターを行うことが可能であると想定することができるか、又は、将来モニターを行う可能性があることを示したエンティティが、現在モニターを行うようにさらに準備することができるかという考え方で）幾つかの可能なサード・パーティ分散モニター・エンティティのうちのどれを利用するかを判断する際に、どのサード・パーティ分散モニター・エンティティが過去に分散モニター対象エンティティ５００及び他の分散モニター対象エンティティをモニターしたか、及び／又は、どのサード・パーティ分散モニター・エンティティが将来そうしたモニターを行う可能性があるかに関する情報を用いることを希望する場合があるので、分散公開エンティティ５０４又は別の分散公開エンティティは、この情報を含む情報を提供することができる。その後、分散消費者エンティティ５０６が特定のサービスを提供するエンティティを探し出そうとするときは、このエンティティは、クエリ・メッセージ５１４を分散公開エンティティ５０４に送信する。クエリ・メッセージ５１４を受信すると、分散公開エンティティ５０４は、該クエリ・メッセージ５１４に指定されたサービスを提供することができるエンティティを特定する。これらのエンティティに関する情報は、応答メッセージ５１６を使って分散消費者エンティティ５０６に戻される。この応答は、分散モニター対象エンティティ５００などのエンティティに関する情報を含む。さらに、この例においては、応答メッセージ５１６を使って分散消費者エンティティ５０６に戻された情報には、分散モニター対象エンティティ５００の適切な作動の自動モニターに関する情報も含む。応答メッセージを受信すると、分散消費者エンティティ５０６は、操作及び通信を行う１つ又はそれ以上のエンティティを選択することができる。この例においては、このエンティティは、分散モニター対象エンティティ５００である。
【００３５】
さらに、分散消費者エンティティ５０６は、クエリ・メッセージ５１８を分散公開エンティティ５０４に送信し、その中で、該クエリ５１８は、応答メッセージ５１６に記述されたモニター操作を実行することができるサード・パーティ分散モニター・エンティティに関する情報を要求する。クエリ・メッセージ５１８を受信すると、分散公開エンティティ５０４は、分散モニター対象エンティティ５００上でモニター操作を実行することができる１つ又はそれ以上のサード・パーティ分散モニター・エンティティを特定する。上述のように、これらのモニター操作は、エンティティが適切に作動しているかどうかを判断するために該エンティティ上で実行することができるテスト又は方法などの様々な形態を取ることができる。この情報は、応答メッセージ５２０を使って分散消費者エンティティ５０６に戻される。この情報に基づいて、分散消費者エンティティ５０６は、分散モニター対象エンティティ５００をモニターする際に用いるための１つ又はそれ以上のサード・パーティ分散モニター・エンティティを選択する。
【００３６】
その後、分散消費者エンティティ５０６は、分散モニター対象エンティティ５００と連絡を取り、分散モニター対象エンティティ５００によって提供されるサービスを利用する機能操作５２２を開始する。分散消費者エンティティ５０６は、要求５２４を用いてサード・パーティ分散モニター・エンティティ５０２とも連絡を取り、分散モニター対象エンティティ５００のモニターを要求する。要求されたモニターは、分散公開エンティティ５０４から受信した応答メッセージ５１６に記述された操作についてのものである。例えば、この操作は、分散モニター対象エンティティ５００に適用されることになるモニター方法を指定することができる。代替的に、モニター方法が要求５２４に指定されない場合は、この要求の情報には、どのようにモニター方法を特定することができるかに関する情報を含むことができる。この場合には、サード・パーティ分散モニター・エンティティ５０２は、分散公開エンティティ５０４内部のディレクトリ５１０にあるような公開された情報を調べることによって、分散モニター対象エンティティ５００をモニターする際に用いるためのモニター方法を特定することができる。この要求は、分散消費者エンティティ５０６の代わりに分散モニター対象エンティティ５００上でモニター操作を実行するために、サード・パーティ分散モニター・エンティティ５０２について必要な何らかの認証、確認情報、又は委任命令を含むこともできる。結果として、サード・パーティ分散モニター・エンティティ５０２は、分散モニター対象エンティティ５００上でモニター操作５２６を実行する。その結果に応じてサード・パーティ分散モニター・エンティティ５０２は措置をとり、この措置として、モニター操作で実行された１つ又はそれ以上のテストが分散モニター対象エンティティ５００における問題又は障害の存在を示した場合に、通知５２８を分散消費者エンティティ５０６に送信することを挙げることができる。特に重要な障害は、分散消費者エンティティ５０６によって求められたサービスの障害である。分散モニター対象エンティティ５００によって提供される他のサービスはテストされない場合があり、こうしたサービスの障害は通知５２８を起動しない。特定の実装に応じて、サード・パーティ分散モニター・エンティティ５０２によって提供されるサービスは、モニター・サービスについての料金を分散消費者エンティティ５０６に課して提供することができる。
【００３７】
本発明の別の実施形態においては、サード・パーティ分散モニター・エンティティ５０２は、分散モニター対象エンティティ５００上で実行されることになるテスト操作に関する情報を取得するために、分散公開エンティティ５０４と連絡を取る。さらに他の実施形態においては、サード・パーティ分散モニター・エンティティ５０２は、その情報について分散モニター対象エンティティ５００自体と連絡を取る。さらに他の実施形態においては、サード・パーティ分散モニター・エンティティ５０２は、分散公開エンティティ５０４又は他のソースから得られる、分散モニター対象エンティティに関する他の情報を調べることによって、該分散モニター対象エンティティ５００をモニターするための適切な方法を推測することができる。
【００３８】
本発明のさらに他の実施形態においては、サード・パーティ分散モニター・エンティティ５０２は、そのサード・パーティ分散モニター・エンティティ５０２がどの分散モニター対象エンティティを既にモニターしているかに関する利用可能な情報を公開するか、そうでなければ作成する。この種類の情報の公開によって、分散消費者エンティティ５０６などの分散消費者エンティティは、課された価格の割引を受けるために、又は効率性のために、分散モニター対象エンティティ５００などの所与の分散モニター対象エンティティのモニターを既に行っているサード・パーティ分散モニター・エンティティのモニター・サービスを要求することを決定することができる。
【００３９】
ここで図６を参照すると、本発明の好ましい実施形態に従って、エンティティを特定し、モニターするために用いられる処理のフローチャートが示される。図６で説明される処理は、図４の分散消費者エンティティ４０４などのクライアントに実装することができる。
【００４０】
処理は、サービス要求を特定することによって開始する（ブロック６００）。プロバイダ及びモニター方法のリストが、図４の分散公開エンティティ４０４などの分散公開エンティティから要求される（ブロック６０２）。プロバイダ及びモニター方法のリストは、分散公開エンティティから受信される（ブロック６０４）。１つの分散モニター・エンティティのプロバイダがそのリストから選択され、モニター方法が格納される（ブロック６０６）。特定の実装に応じて、２つ以上のエンティティを選択してもよい。選択された分散消費者エンティティにサービスを提供するために、選択された分散モニター対象エンティティと合意が形成される（ブロック６０８）。この合意は、その時点で利用されている様々な自動ネゴシエーション・プロトコル又は方法を用いて形成することができる。合意が終了したかどうかに関して、判断が行われる（ブロック６１０）。この合意は、該合意に指定された様々な条件の下で終了することになる。例えば、合意は、一定時間経過後か、該合意が更新されずに一定時間が経過した後か、幾つかの数のトランザクション後か、いずれかのパーティの開始後か、又は、何らかの選択値を上回るか若しくは下回る商品若しくはサービスの価格といった存在している何らかの市場条件に基づいて、終了することになる。合意が終了する別の要因は、本発明を用いて告知されたテストの障害とすることができる。この種類の障害が生じると、処理は図６の先頭のブロック６００に戻ることになる。合意が終了しない場合は、クライアントは分散モニター対象エンティティを用いて操作を行う。これらの操作は、分散モニター対象エンティティによって分散消費者エンティティに提供されているサービスに応じて、変わる場合がある。この操作として、例えば、言語翻訳、株価見積もり、ニュースの更新、数学上の計算、バイナリ・データの格納及び検索、データベース検索、ストリーミング音声又は映像などのコンテンツの提供、及び、天気予報を挙げることができる。
【００４１】
次に、モニター方法が分散モニター対象エンティティのテストを要求するかどうかに関して、判断が行われる（ブロック６１４）。モニター方法がテストを要求する場合は、テスト要求は分散モニター対象エンティティに送信され（ブロック６１６）、応答が該分散モニター対象エンティティから受信される（ブロック６１８）。モニター方法に指定された通りに応答されたかどうかに関して、判断が行われる（ブロック６２０）。基本的には、ブロック６２０は、分散モニター対象エンティティが予定された通りに機能しているかどうか、又はエラー若しくは障害が発生したかどうかを判断するのに用いられる。応答がモニター方法に指定されたとおりではない場合は、修正措置がとられ（ブロック６２２）、処理は上述のようにブロック６１０に戻る。障害によっては、及び修正措置の成功次第で、処理はブロック６１０に戻ることができない場合もある。こうした事例は、分散モニター対象エンティティが深刻な障害を受け、修正措置によってもその障害を修正できなかった場合に発生する。この場合は、分散モニター対象エンティティを正常に操作できないことになる。
【００４２】
ブロック６２２において実行される修正措置として、例えば、分散モニター対象エンティティを再始動すること、人間のオペレータに通知を送信すること、別の分散モニター対象エンティティを選択すること、分散モニター対象エンティティの実行を終了させること、又は、ログファイルにエントリを生成することを含む様々な方法をとることができる。とられる修正措置は、選択された基準を満たすテスト結果に基づいて送信される特定のメッセージとすることができる。例えば、モニター方法のアプリケーションから応答が受信されない場合には、メッセージは、エンティティが利用不可能であることを表すことになる。テストに応答してエラーが戻された場合には、メッセージは、エンティティが適切に機能していないことを表すことになる。これらのメッセージは、例えば、モニターを要求する分散消費者エンティティ、及び分散モニター対象エンティティが登録された分散公開エンティティを含む様々なエンティティに送信することができる。さらに、修正措置には、選択された基準を満たすテストに応答してプログラム又は処理を実行することを含むこともできる。例えば、修正措置は、標準的な問題判別プログラム又は処理を開始し、テストに不合格になったエンティティと不合格になったテストの種類とを特定するのに十分な情報を含むパラメータをそのプログラムに与えることから構成するようにしてもよい。分散消費者エンティティが、どういった修正手段を試みるべきかを知る１つの方法は、このような場合に何をするべきかに関する自分自身の内部ポリシーを調べることによるものであろう。分散消費者エンティティが、どういった修正手段を試みるべきかを知る別の方法は、分散公開エンティティから受信したテスト方法の情報と共にまとめられた情報を検索することによるものであろう。別の修正措置として、テスト結果が選択された基準を満たすときにエンティティ内の内部デッドロックが解消されそうな分散モニター対象エンティティに対して、措置をとることを挙げることができる。内部デッドロックの解消に関して、分散モニター対象エンティティが作動しているプラットフォームに対して要求を送信することができる。この要求は、ある選択された時間の間ロックを待っていた分散モニター対象エンティティのあらゆるスレッドを終了させるようにプラットフォームに求める要求とすることができる。この修正措置を開始する基準は、特定の実装に対して求められる何らかのポリシーに基づく基準とすることができる。
【００４３】
再びブロック６２０を参照すると、応答がモニター方法に指定されたとおりである場合は、処理は、上述のようにブロック６１０に戻る。再度ブロック６１４を参照すると、モニター方法がテストを要求しない場合は、処理は、上述のようにブロック６１０に戻る。再びブロック６１０を参照すると、合意が終了した場合は、処理は終了する。
【００４４】
ここで図７を参照すると、本発明の好ましい実施形態に従って、エンティティをモニターするためにサード・パーティ分散モニター・エンティティによって用いられる処理のフローチャートが示される。図７で説明される処理は、図５のサード・パーティ分散モニター・エンティティ５０２などのサード・パーティ分散モニター・エンティティに実装することができる。
【００４５】
処理は、分散公開エンティティに登録することによって開始する（ブロック７００）。ブロック７００では、サード・パーティ分散モニター・エンティティは、このエンティティが実行することができるモニター操作に関する情報を送信する。この情報は、モニターすることができる特定のエンティティを特定することもできる。その後、処理は要求を待つ（ブロック７０２）。ブロック７０２では、待たれる要求は、サービスを提供するエンティティのモニターを求める分散消費者エンティティからの要求といった、あるエンティティからの要求である。特定のモニター方法によって分散モニター対象エンティティをモニターするために、分散消費者エンティティから要求を受信する（ブロック７０４）。分散消費者エンティティと合意が形成される（ブロック７０６）。この合意は、現在知られているか又は用いられている何らかのネゴシエーション・プロトコルによって達成することができる。例えば、分散消費者エンティティは、１組の標準的なモニター合意のうちの１つをサード・パーティ分散モニター・エンティティに提案し、該サード・パーティ分散モニター・エンティティはその提案を受け入れる場合がある。代替的に、当該技術分野で知られている様々な自動ネゴシエーション・プロトコル又は他の方法のいずれかによって、モニター合意を形成することができる。いずれの場合においても、分散消費者エンティティは、サード・パーティ分散モニター・エンティティが要求された分散モニター対象エンティティのモニターを実行できるようにするのに十分な情報を、合意の一部として該サード・パーティ分散モニター・エンティティに提供することになる。
【００４６】
その後、合意が終了したかどうかに関して、判断が行われる（ブロック７０８）。上述のように、様々な要因が合意を終了させる原因となり得る。最も一般的な要因は、典型的には、時間である。合意が終了しない場合は、分散モニター対象エンティティのために特定されたモニター方法がテストを要求するかどうかに関して、判断が行われる（ブロック７１０）。モニター方法がテストを要求する場合は、テスト要求は分散モニター対象エンティティに送信され（ブロック７１２）、応答が受信される（ブロック７１４）。
【００４７】
次に、応答内の結果がモニター方法に指定されたとおりであるかどうかに関して、判断が行われる（ブロック７１６）。応答内の結果がモニター方法に指定されたとおりではない場合は、分散消費者エンティティに対して通知が送信され（ブロック７１８）、処理は、上述のようにブロック７０８に戻る。再びブロック７１６を参照すると、応答内の結果がテスト方法に指定されたとおりである場合は、処理は、上述のようにブロック７０８に戻る。再度ブロック７１０を参照すると、モニター方法がテストを要求しない場合は、処理は、上述のようにブロック７０８に戻る。再びブロック７０８を参照すると、合意が終了した場合は、処理は終了する。
【００４８】
ここで図８を参照すると、本発明の好ましい実施形態に従って、あるエンティティについてのモニター方法を公開する際に用いられるデータ構造を説明する図が示される。データ構造８００は、例えば分散消費者エンティティ又はサード・パーティ分散モニター・エンティティなどのエンティティに情報を提供するのに用いることができるデータ構造の一例である。セクション８０２は、言語変換サービスがその基本的な機能を正しく実行しているかどうかを判断するために、そのサービス上で実行することができる操作と、その要素が機能を正しく実行している場合に該操作から受信されることになる応答とを記述する記述行を含む。セクション８０４は、この操作を用いて特定のサービスのポート・タイプのうちのウェブ・サービス・ポートをテストすることができるという事実と、セクション８０２で記述された予定応答とを記述する記述行を含む。
【００４９】
従来技術の方法は、通常のＷＳＤＬフラグメントの一部として、セクション８０２及び８０４のないデータ構造８００といったデータ構造を送信する。本発明では、上述のモニター機構を提供するために、例示的なセクション８０２及び８０４などの情報を追加する。セクション８０４は、特定の操作を用い、該操作に応答して特定のメッセージが戻されることを想定してポート・タイプをテストすることができるアサーションを含む。セクション８０２は、操作及び応答を定める。セクション８０２及び８０４の行は、他の部分は標準的なＷＳＤＬコーディングのままで、ＷＳＤＬの拡張として提供される。図８に示される例は、拡張可能マークアップ言語（ＸＭＬ）を用いる。この例は、１つの例示として提供され、本発明をこの特定の形式を用いるように限定することを意図するものではない。特定の実装に応じて、他の何らかの形式を用いることができる。
【００５０】
このように、本発明は、自律型コンピュータ・システムにおいてエンティティを特定し、モニターするための情報を公開し、提供する改善された方法、装置、及びコンピュータ命令を提供するものである。この機構は、登録された特定のエンティティについて用いることができるモニター方法に関する情報を、本発明の機構を用いて提供するか又は公開するために、ＷＳＤＬ又はＵＤＤＩなどの標準化された言語を用いる。このように、分散消費者エンティティなどのクライアントが、所望のサービスを提供することが可能なエンティティの特定を要求し、受信することができる。サービスの特定に加えて、本発明の機構は、クライアントによって要求されたサービスをエンティティが提供できることを確認するために、該サービスを提供する該エンティティをどのようにモニターすることができるかを示す情報を提供する。この情報を用いて、クライアントはサービスをモニターし、モニターが、エンティティが要求された方法で機能することができないことを示す場合は、修正措置をとることができる。
【００５１】
本発明は完全に機能するデータ処理システムに即して説明されたが、当業者であれば、本発明の処理の命令をコンピュータ読取可能媒体の形態及び様々な形態で配布することが可能であり、本発明は、実際に配布を行うのに用いられる信号支持媒体の特定の種類にかかわらず等しく利用されると理解するであろうということに留意することが重要である。コンピュータ読取可能媒体の例として、フロッピー・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの書き込み可能タイプの媒体、並びに、例えば無線通信及び光通信などの通信形態を用いる、デジタル及びアナログ通信リンク、有線又は無線通信リンクといった通信タイプの媒体が挙げられる。コンピュータ読取可能媒体は、特定のデータ処理システムで実際に用いるためにデコードされるコード化フォーマットの形式をとることができる。
【００５２】
本発明の記述は、例示及び説明の目的で提示され、網羅的であること、又は本発明を開示された形態に限定することを意図するものではない。当業者には、多くの修正又は変形が明らかであろう。実施形態は、本発明の原理及び実際の適用を最もよく説明するように、及び、考慮された特定の使用に適合するような種々の修正を伴う様々な実施形態について当業者以外でも本発明を理解できるように、選択して記述された。
【図面の簡単な説明】
【００５３】
【図１】本発明を実装することができるデータ処理システムのネットワークの図形表示を示す。
【図２】本発明の好ましい実施形態にしたがって、サーバとして実装することができるデータ処理システムのブロック・ダイアグラムである。
【図３】本発明を実装することができるデータ処理システムを説明するブロック・ダイアグラムを示す。
【図４】本発明の好ましい実施形態にしたがって、エンティティをモニターするのに用いられるメッセージ・フローを説明する図を示す。
【図５】本発明の好ましい実施形態にしたがって、サード・パーティ分散モニター・エンティティが存在するエンティティをモニターするのに用いられるメッセージ・フローを説明する図を示す。
【図６】本発明の好ましい実施形態にしたがって、エンティティを特定し、モニターするために用いられる処理のフローチャートである。
【図７】本発明の好ましい実施形態にしたがって、エンティティをモニターするためにサード・パーティ分散モニター・エンティティによって用いられる処理のフローチャートである。
【図８】本発明の好ましい実施形態にしたがって、エンティティについてのモニター方法を公開する際に用いられるデータ構造を説明する図である。
【図１】
0004410679.tif 000002
【図２】
0004410679.tif 000003
【図３】
0004410679.tif 000004
【図４】
0004410679.tif 000005
【図５】
0004410679.tif 000006
【図６】
0004410679.tif 000007
【図７】
0004410679.tif 000008
【図８】
0004410679.tif 000009