| 【発明の名称】 |
共用データベースによるアベイラビリティ・モニタリング方法 |
| 【発明者】 |
【氏名】レイマン・フランク
【氏名】ローレル・ディーテル
|
| 【要約】 |
【課題】本発明は、複数のアプリケーション・サーバのアベイラビリティを表示し、および判別するテクノロジに関する。
【解決手段】提案された方法は、アプリケーション・サーバの各々について、アプリケーション・サーバが使用可能である間は繰り返されるアベイラビリティ信号の反復期間の時間制限の上限を定義する通知期間を、アベイラビリティ・データベースに挿入する第1のステップを含み、第2のステップにおいて、各アベイラビリティ信号について、その対応するタイム・スタンプを、アベイラビリティ・タイムとして、アベイラビリティ・データベースに挿入する。前記通知期間と比較された、現在時刻と最近のアベイラビリティ・タイムとの差異は、アプリケーション・サーバのアベイラビリティの基準を表す。 |
【特許請求の範囲】
【請求項1】1または複数のアプリケーション・サーバのアベイラビリティを表示するコンピュータ化された方法であって、前記方法は、通知期間を含む第1のデータ要素(301,601)を、アベイラビリティ・データベース(200)に挿入する第1のステップ(503)を含み、前記通知期間は、前記アプリケーション・サーバが使用可能である間は繰り返されるアベイラビリティ信号の反復期間の時間制限の上限を定義し、前記方法は、各アベイラビリティ信号について、アベイラビリティ・タイムであるその対応するタイム・スタンプを含む第2のデータ要素(401,602)を、前記アベイラビリティ・データベースに挿入する第2のステップ(504)を含み、前記通知期間と比較される、現在時刻と最近のアベイラビリティ・タイムとの差異は、前記アプリケーション・サーバのアベイラビリティの基準を表すアベイラビリティを表示するコンピュータ化された方法。 【請求項2】前記方法は、前記アプリケーション・サーバのワークロードの総量が増加する場合には、前記通知期間を増加させることによるか、または前記ワークロードの総量が減少する場合には、前記通知期間を減少させることによるかのいずれかにより、前記アプリケーション・サーバのワークロードの総量に従属して前記通知期間を更新する第3のステップ(505)を含む請求項1に記載のアベイラビリティを表示するコンピュータ化された方法。 【請求項3】前記第1および前記第2のステップ内で、さらに、アプリケーション・サーバID(300,400,600)が前記アベイラビリティ・データベースに挿入され、前記第1および前記第2のデータ要素と関係づけられる請求項1に記載のアベイラビリティを表示するコンピュータ化された方法。 【請求項4】前記差異が、前記通知期間を越える場合には、前記アベイラビリティの基準は、前記アプリケーション・サーバのアンアベイラビリティ(unavailability)を表示する請求項3に記載のアベイラビリティを表示するコンピュータ化された方法。 【請求項5】前記アベイラビリティ・データベースは、前記1または複数のアプリケーション・サーバのホット・プールを各々が含む複数のアプリケーション・サーバによって共用され、前記ホット・プールに対して、ウォッチドッグが前記ホット・プールのアベイラビリティ状況をモニタリングし、前記方法は、前記ウォッチドッグによって実行され、前記アベイラビリティ信号は、前記ホット・プールの前記アプリケーション・サーバの少なくとも一つが使用可能である間は繰り返され、前記第1および前記第2のステップ内で、さらに、ホット・プールIDが前記アベイラビリティ・データベースに挿入され、前記第1および前記第2のデータ要素と関係づけられる請求項1に記載のアベイラビリティを表示するコンピュータ化された方法。 【請求項6】他の差異である前記最近のアベイラビリティ・タイムと直前のアベイラビリティ・タイム(603)との差異が、前記アベイラビリティの基準に含まれる請求項2または5に記載のアベイラビリティを表示するコンピュータ化された方法。 【請求項7】アプリケーション・サービス要求を受け入れる1または複数のアプリケーション・サーバのアベイラビリティを判別するコンピュータ化された方法であって、前記方法は、アベイラビリティ・データベース(200)に対して、通知期間を含む第1のデータ要素(301,601)、前記通知期間は、前記アプリケーション・サーバが使用可能である間は繰り返されるアベイラビリティ信号の反復期間の時間制限の上限を定義し、最近のアベイラビリティ信号のための、最近のアベイラビリティ・タイムであるそのタイム・スタンプを含む第2のデータ要素、を問い合わせる第1のステップを含み、前記方法は、現在時刻と前記最近のアベイラビリティ・タイムとの差異を、前記通知期間と比較することにより、前記アプリケーション・サーバのアベイラビリティの基準を判別する第2のステップを含み、前記方法は、前記アベイラビリティの基準が、前記指示サーバのアベイラビリティを表示する場合には、アプリケーション・サービス要求を、前記アプリケーション・サーバだけに発行する第3のステップを含むアベイラビリティを判別するコンピュータ化された方法。 【請求項8】前記差異が、前記通知期間を越える場合には、前記アベイラビリティの基準は、前記アプリケーション・サーバのアンアベイラビリティを表示する請求項7に記載のアベイラビリティを判別するコンピュータ化された方法。 【請求項9】前記方法は、前記第1のステップにおいて、さらに、直前のアベイラビリティ信号のための直前のアベイラビリティ・タイムを含む第3のデータ要素(603)を問い合わせ、前記第2のステップにおいて、さらに、他の差異である、前記最近のアベイラビリティ・タイムと前記直前のアベイラビリティ・タイムとの差異が、前記アベイラビリティの基準に含まれる請求項7に記載のアベイラビリティを判別するコンピュータ化された方法。 【請求項10】前記差異が、Nのファクタだけ前記通知期間を越える場合には、前記アベイラビリティの基準は、前記アプリケーション・サーバのアンアベイラビリティを表示する請求項7に記載のアベイラビリティを判別するコンピュータ化された方法。 【請求項11】前記方法は、複数のアプリケーション・サーバに対して実行され、前記第3のステップにおいて、前記アベイラビリティの基準がアベイラビリティを表示するアプリケーション・サーバを含むアプリケーション・サーバのサブセットが判別され、前記サブセット内部の各アプリケーション・サーバに対して、その対応するアベイラビリティの基準が、ワークロード表示と解釈され、前記アプリケーション・サービス要求が、最低のワークロードを有するアプリケーション・サーバへ発行される請求項9に記載のアベイラビリティを判別するコンピュータ化された方法。 【請求項12】1または複数のアプリケーション・サーバのアベイラビリティを表示するシステムであって、前記システムは、請求項1〜6のいずれかに記載の方法のステップを実行するために適切な手段を含むシステム。 【請求項13】請求項1〜6のいずれかに記載の方法を実行するソフトウェア・コード部分を含む、データ処理システムにおける実行のためのデータ処理プログラム。 【請求項14】請求項1〜6のいずれかに記載の方法をコンピュータに実行させるコンピュータ読み取り可能なプログラム手段を含む、コンピュータ使用可能媒体に格納されたコンピュータ・プログラム製品。 【請求項15】アプリケーション・サービス要求を受け入れる1または複数のアプリケーション・サーバのアベイラビリティを判別するシステムであって、前記システムは、請求項7〜11のいずれかに記載の方法のステップを実行するために適切な手段を含むシステム。 【請求項16】データ処理プログラムであって、前記プログラムが前記コンピュータ上で実行された時に、請求項7〜11のいずれかに記載の方法を実行するソフトウェア・コード部分を含む、データ処理システムにおける実行のためのデータ処理プログラム。 【請求項17】コンピュータ読み取り可能なプログラム手段であって、前記プログラムが前記コンピュータ上で実行された時に、請求項7〜11のいずれかに記載の方法を前記コンピュータに実行させるコンピュータ読み取り可能なプログラム手段を含む、コンピュータ使用可能媒体に格納されたコンピュータ・プログラム製品。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、複数のアプリケーション・クライアントにアプリケーション・サービスを提供する複数のアプリケーション・サーバのアベイラビリティを表示し、判別する方法および手段に関する。 【0002】 【従来の技術】企業は、彼らの日ごとの経営を支援するシステムのアベイラビリティに依存する。システムが作動しており、実行中である場合には、システムは使用可能といわれ、正確な結果を作り出している。狭い意味で、システムのアベイラビリティは、システムが使用可能である時間の一部である。MTBFは、このようなシステムの平均故障間隔、すなわち、故障が発生するよりも前にシステムが使用可能である平均時間を表す(これは、システムの信頼性である)。MTTRは、その平均修理時間、すなわち、故障の後にシステムを修理するのにかかる平均時間を表す(これは、故障のゆえのシステムのダウン時間である)。従って、【0003】 【表1】
【0004】は、システムのアベイラビリティである。理想的には、システムのアベイラビリティは1である。今日、システムのアベイラビリティがおよそ99.999%である場合には、システムは、高いアベイラビリティを主張することができる(システムのアベイラビリティが、およそ99.99%である場合には、システムは、耐障害といわれる)。J.GrayおよびA.Reuter,“Transaction processing:Concepts and Techniques”,San Mateo,カリフォルニア州:Morgan Kaufmann 1993は、これらの側面に関して更に詳細に説明する。一定のシステムまたはアプリケーションのアベイラビリティは、少なくとも2つの側面を有する。すなわち、第1の狭い意味において、アベイラビリティは、一定のシステムが、そのサービスの全ての提供においてアクティブか否かという問題に関し、第2のより広い意味において、アベイラビリティは、十分な応答性を提供するタイムリな方法でこのサービスが提供されたか否か、という問題に関する。 【0005】アベイラビリティを改善する一つの基本的なメカニズムは、“冗長度”に基づく。すなわち、ハードウェアのアベイラビリティは、マシンのクラスタを作成することによって改良され、ソフトウェアのアベイラビリティは、複数のアドレス・スペースにおいて同一のソフトウェアを実行することによって改善される。 【0006】分散システムの出現と共に、同一のソフトウェアを実行する異なるマシン上で2以上のアドレス・スペースを使用して、アベイラビリティを改善する手法(しばしば、アクティブ・レプリケーションといわれる)が考案された。これらの側面に関する更なる詳細は、S.Mullender,“DistributedSystems”,ACM Press,1993において得ることができる。共用インプット・キューからその要求を得る同一のソフトウェアを実行する同一のマシン上で2以上のアドレス・スペースを使用する際に、ウォーム・バックアップの手法は、ホット・プール手法によって一般化される。 【0007】C.R.Gehrら“Dynamic Server Switchingfor Maximum Server Availability andLoad Balancing”,米国特許第5,828,847号公報は、先に定義されたアベイラビリティの狭い意味に関連するダイナミック・サーバ・スイッチング・システムを教示する。ダイナミック・サーバ・スイッチング・システムは、クライアントのための1次サーバおよび優先通信方法、そして引き続いて2次サーバおよび通信方法対の階層を識別する静的かつ事前定義されたリスト(プロファイルの一種)を各クライアント内に保持する。クライアントが、指定された1次サーバ、または指定された通信方法によって提供された要求を有さないというイベントにおいて、システムは、リストをトラバースして、第1の使用可能代替サーバ−通信方法対のIDを得る。このシステムは、クライアントが、反応しないサーバから事前定義代替サーバへ要求を転送するのを可能にする。このように、システムは、サービス・アベイラビリティのためのリアクティブ・サーバ・スイッチングを提供する。 【0008】先に定義された狭い意味におけるアベイラビリティの改良にもかかわらず、この教示はいくつかの欠点を伴う。Gehrの教示は、1次サーバに全く到達できない場合にだけ、リアクティブ・レスポンスを与える。クライアントが非応答的サーバからサービスを要求するということをそれまでに予防する事前の対策を講じた要素が存在しない。1次および代替サーバのリストは、静的に事前定義されているので、そこにおいて得られ得るサーバが一つもない、あるいは、そこにおいていくつかの非応答的代替サーバがテストされるよりも前にサーバが得られることはないという状態が存在し得る。クライアントおよびサーバがネットワークに永続的に入るまたは出る、そしてサーバへのアクセス・パターンが刻々と変化し得る、高度にダイナミックな,世界的なオペレーティング・ネットワーク状態において、Gehrの教示は、適切ではない。 【0009】本発明と同じ発明者による“Improved Availabilityin Clustered Application Servers”と呼ばれる欧州特許出願 EP99109926.8は、また、アベイラビリティ問題に関する。しかし、この教示は、アプリケーション・クライアントの面にもっぱら集中する。一定のアプリケーション要求が、使用可能なアプリケーション・サーバによって処理されているということを確かめるために、少なくとも一つの使用可能なアプリケーション・サーバがこの要求を受信できるということを仮定する複数の並列アプリケーション・サーバへ、マルチキャスト(multi−casting)・ステップでこのアプリケーション要求を、送ることが提案される。この教示は、一定のアプリケーション・サーバのアベイラビリティの表し方の手法に関して全く一言も触れていない。 【0010】同一の発明者に基づく、“Improving Availabilityand Scalability in Clustered Application Servers”と呼ばれる、さらなる欧州特許出願 EP99122914.7が知られている。この出願において、アプリケーション・サーバのアベイラビリティを判別するための手法の存在が開始点としてすでに想定される。この教示は、次に、アプリケーション要求を処理する一定のアプリケーション・サーバを選択することにより、いかなる方法でアプリケーション・クライアントがワークロード平衡化を実行できるのかの手法に集中する。 【0011】これらの進歩の全てにもかかわらず、誰かが一定のアプリケーション・サーバのアクセスに興味を有し得るあらゆる時点での、世界的なコンピュータ・ネットワークのユービクィティの理由から、彼らのアプリケーションのアベイラビリティを増加させ、そして7(日)*24(時間)ベースの電子ビジネスの要求に備えている企業を支援するために、さらなる改良が緊急に必要とされる。 【0012】 【発明が解決しようとする課題】本発明は、アプリケーション要求を受け入れるアプリケーション・サーバのアベイラビリティを表す改良された方法および手段を提供し、そして、アプリケーション・サーバのアベイラビリティをアプリケーション・クライアントによって判別する改良された方法および手段を提供する目的に基づく。 【0013】本発明のさらなる目的は、ネットワーク内部の個々のアプリケーション・サーバのアベイラビリティのダイナミックな変更に高度に応答するテクノロジを提供することにより、アベイラビリティを増大させることである。 【0014】 【課題を解決するための手段】本発明の目的は、独立のクレイムによって解決される。本発明のさらに有益な構成および実施形態は、それぞれのサブクレイムにおいて説明される。 【0015】提示された方法は、アプリケーション・サーバの各々について、アベイラビリティ信号の反復期間のための時間制限の上限を定義する通知期間をアベイラビリティ・データベースに挿入する第1のステップを含み、アベイラビリティ信号は、アプリケーション・サーバが使用可能である間は繰り返される。第2のステップにおいて、各アベイラビリティ信号については、その対応するタイム・スタンプが、アベイラビリティ・タイムとしてアベイラビリティ・データベースに挿入される。前記通知期間と比較される、現在時刻と最近のアベイラビリティ・タイムとの差異は、アプリケーション・サーバのアベイラビリティの基準を表す。 【0016】提示されたテクノロジは、複数のアプリケーション・クライアントへサービスを提供する複数のアプリケーション・サーバのアベイラビリティおよびスケーラビリティを増大させる。本発明は、アプリケーション・クライアントが、非応答的サーバからサービスを要求する誤った要求ルーティングを生成することを予防する事前の策を講じたテクノロジを提供する。継続している処理を有する動的手法は、クライアントおよびサーバがネットワークに永続的に入るまたは出るという動的ネットワーク状態に高度に応答する。このようにして、本発明は、サーバ・マシンのホット・プラグインを、アプリケーション・クラスタに収容することができ、従って、環境のスケーラビリティをさらに増加させることができる。アプリケーション・クライアントをアプリケーション・サーバと関係づけるための複雑な管理努力は、完全に回避される。 【0017】 【発明の実施の形態】本発明は、ハードウェア,ソフトウェア,またはハードウェアおよびソフトウェアの組み合わせにおいて実現可能である。あらゆる種類のコンピュータ・システム、あるいは、この中で述べられる方法の実行に適応した他の装置が適している。ハードウェアおよびソフトウェアの典型的な組み合わせは、ロードされ実行される時に、コンピュータシステムを制御してこの中で述べられる方法を実行するコンピュータ・プログラムを有する汎用コンピュータ・システムであり得る。本発明は、また、この中で述べられる方法の実施を可能にする全ての特徴を含み、コンピュータ・システムにロードされた時にこれらの方法を実行することができるコンピュータ・プログラム製品において実現可能である。 【0018】本コンテキストにおいてコンピュータ・プログラム手段あるいはコンピュータ・プログラムとは、情報処理能力を有するシステムに、特定の機能を直接、またはa)他の言語,コードまたは表記への変換、b)異なる具体的な形式における複製、のいずれか一方もしくは双方の後に、実行させることが意図された一組の命令のあらゆる言語,コードまたは表記でのあらゆる表現を意味する。 【0019】本明細書がアプリケーションに言及している場合に、アプリケーションは、いかなる特定のタイプまたは実施態様にも限定されないあらゆる種類のコンピュータ・プログラムであり得る。用語アプリケーション・クライアントおよびアプリケーション・サーバは、いくつかのタイプの“実例”に関連がある論理的な見地のみから解される必要がある。これらの用語は、異なるアドレス・スペースを、あるいは異なるコンピュータ・システムでさえも、必ずしも識別するとは限らない。 【0020】本発明は、アプリケーション・クライアントおよびアプリケーション・サーバ間の一定の通信パスを想定しており、これは、本発明が一定の通信パラダイムに限定されるということを意味するものではない。 【0021】また、本明細書が“データベース”に言及している場合に、その用語は、実際のデータベース(関係,階層データベース等のような)だけでなく単純ファイル等をも含む広い意味において解されるべきである。言い替えれば、用語データベースは、あらゆるタイプの永続的ストレージを指す。 【0022】導入および課題企業は、彼らの日ごとの経営を支援するシステムのアベイラビリティに依存する。システムが作動しており、実行中である場合には、システムは使用可能といわれ、正確な結果を作り出している。狭い意味で、システムのアベイラビリティは、システムが使用可能である時間の一部である。第2のより広い意味において、アベイラビリティは、十分な応答性を提供するタイムリな方法でアプリケーション・サービスが提供されたか否か、という問題に関する。 【0023】最も好適な実施の形態において、本発明は、図1においても示される以下の概念に基づく“アプリケーション・クラスタ”といわれる環境に関する。 【0024】アプリケーション・サーバ(110,111または112)は、関連しているサービスの集合−例えば、共用リモート・データベース(100)へのアクセスを含む−を実行可能に実施している。ホット・プール(110,111,112)は、アドレス・スペースの集合であり、アドレス・スペースの各々は、同一のアプリケーション・サーバを実行し、これらのアプリケーション・サーバの各々は、入力キュー(125)から要求を受信し、入力キューは、ホット・プール・メンバ間で共用される。サーバ・マシン(101,102または103)については、アプリケーション・サーバのホット・プールをホストする一定の物理的なマシンを意味する。アプリケーション・クラスタ(120)は、独立して障害が起こるサーバの集合であり、各サーバは、同種のアプリケーション・サーバのホット・プールをホストする。 【0025】アプリケーション(130)は、アプリケーション・クライアントを経てアプリケーション・サーバからサービスを要求する。アプリケーションと同じマシン上で実行し、アプリケーションに代わってサーバと通信するアプリケーション・クライアント(131)が、実行可能である。アプリケーション・クライアントおよびサーバ間の通信が、(非同期)高信頼性メッセージ交換に基づく場合には、アプリケーション・サーバは、メッセージ・ベースであるといわれる。以下において、アプリケーション・クライアントおよびアプリケーション・サーバ間のメッセージ・ベースの通信を想定する。もちろん、他のパラダイムが代わりに使用可能であるので、本発明は、メッセージ・ベースの通信パラダイムに限定されない。結果として、アプリケーション・クライアントは、特定のマシン上の関連アプリケーション・サーバのホット・プールの入力キューへ対応するメッセージを送信することにより一定のサービスのパフォーマンスを要求する。 【0026】クライアントは、サーバ障害から自身を保護し、従って、欧州特許出願 EP99109926.8と共に既に上述したように、その要求を単純にマルチキャストすることによって全体の環境のアベイラビリティを増加させることができる。しかしながら、これは、アプリケーション・サーバの特殊な実施を必要とし、あるいはそれは、べき等の要求に制限される。さらに、それは、ファクタによって送信されるメッセージの数を増加させる。 【0027】メッセージの数が問題である場合には、ホット・プールへ要求を送信する各クライアントは、このホット・プールが障害を起こしたということを検出しなければならない(これは容易である、すなわち、対応するPUTコマンドが、メッセージ・ミドルウェアによってクライアントへ否定的に応答され得る)。クライアントが、同一のアプリケーション・サーバの他のホット・プール(すなわち、障害ホット・プールがメンバであるアプリケーション・クラスタのサーバ・マシン)を認める時、クライアントは、クラスタの異なるサーバ上の他のホット・プールへその要求を送信できる。そうすることで、クライアントは、ホット・プール自身間の引継ぎを実現できる。 【0028】従って、問題は、要求を受け入れるためにいまだに使用可能であるサーバを検出することである(いわゆるアベイラビリティ・モニタリング)。この目的のために、いわゆるウォッチングが使用可能であり、単一マシン上のホット・プールを監視して障害を起こしたサーバを検出できる。その上、ウォッチドッグは、ウォッチドッグが監視するホット・プールの障害を起こしたアプリケーション・サーバを自動的にリスタートし得る。上述した欧州特許出願 EP99122914.7と共に、ウォッチドッグ・モニタリングの概念が、アプリケーション・クラスタにおいて障害を起こしたサーバ・マシンを検出するために検討されてきた。この概念は、使用可能なアプリケーション・サーバの組を監視し、判別するウォッチドッグ間の特定の通信プロトコルに基づく。 【0029】典型として、メッセージは、分散アプリケーションのパーツ間のネットワークを経て送信され、そのコンポーネントの全体の状態を維持する。監視されるウォッチドッグの集合をこのような分散アプリケーションとみなす(その唯一の目的は、その分散コンポーネントの活性(liveliness)についての問い合わせに応答することであり得る)と、このようなネットワーク・ベースのメッセージ受け渡しスキームが使用可能である。しかしながら、ネットワーク・ベースのメッセージ受け渡しプロトコルは、数個の固有の問題(多少困難な)を有する。例えば、【0030】送信されるメッセージが、ある状態で許容できないネットワーク上に追加的な負荷を加えることもあるという単純な事実。 【0031】より複雑なアルゴリズムが、障害の単一点を回避するために実施されなければならず(識別されたウォッチドッグが参加者である他のウォッチドッグを単に監視する“集中”モニタリングにおけるのと同様に)、これは、より一層の開発努力に帰する。さらに、このような実施は、“チェッカ検査(check thechecker)”、すなわち、これらのチェック・インスタンス自身がいかなる障害も引き起こさないということを確かめるために特定のプログラミング手法が活用されなければならないという問題を起こす。 【0032】到達可能性プロパティは確保されなければならず(例えば、中央ウォッチドッグは、“集中モニタリング”において全ての他のウォッチドッグに到達できなければならず、あるいは、各ウォッチドッグは、“分散モニタリング”において全ての他のウォッチドッグに到達できなければならない)、到達可能性プロパティは、環境を適切にセットアップして管理タスクを達成することが難しいと同時に、発生し得るものであり、処理されなければならないネットワーク分割化(すなわち、接続損失のために、ネットワークが分離したサブネットに分離する)の場合には処理することが困難である。 【0033】結果として、本発明の目的は、これらの大規模ネットワーク・ベースのメッセージ受け渡しプロトコルを必要とするようなメカニズムを克服することである。しかしながら、同時に、これらの問題に対する望ましい解決法は、クラスタに入る(ホット・プラグイン)あるいは出るアプリケーション・サーバを自動的に判別する事前の対策を講じたテクノロジを提供することと思われる。 【0034】解決法の基本的思想本発明の中心思想は、図2に反映される。本発明の中心的な所見は、中央および共用データベースの導入が、上述のネットワーク・メッセージ・トラフィック問題を著しく削減し得るということである。アプリケーション・サーバの活性(liveliness)についての状態を交換する通信媒体として監視される全てのウォッチドッグによって共用されるデータベースを使用することが提案される。この新しいデータベースは、ライフ(life)・データベースあるいはアベイラビリティ・データベース200と称される。本発明の好適な実施の形態において、クラスタ202の対応するアプリケーション・サーバの各ウォッチドッグ201は、“I am alive!”203レコードを、ライフ・データベースに周期的に書き込み、このレコードは、対応するアプリケーション・サーバのアベイラビリティ信号として解され、アプリケーション・サービス要求を受け入れるためにアプリケーション・サーバが作動可能であることを表す。ウォッチドッグ概念の導入は、すでに付加的な改良である。もちろん、各アプリケーション・サーバ自身が、アベイラビリティ信号をアベイラビリティ・データベースに挿入することに責任を負うということが可能であり得る。 【0035】見本の実施の形態として、アプリケーション・クラスタのライフ・データベースをホストする関係データベース・システムが想定される。これが本発明にとって中心とならない、すなわち、あらゆる他の永続的ストア(例えば、ファイル・システム、またはenterprise Java(R) beans エンティティ・コンテナ)がこのために使用可能であるということに留意されたい。とりわけ、アプリケーション・クラスタがそのシステム管理のために使用できるトポロジ・データベースは、ライフ・データベースに相当する適切なテーブルによって拡張され得る。 【0036】アプリケーション・クラスタのライフ・データベースにアクセス可能なあらゆるソフトウェア(例えば、アプリケーション・サービスの要求に関与したアプリケーション・クライアント)は、使用可能なサーバ、および障害を起こし現在は使用できないサーバを判別できる。 【0037】一定のアプリケーション・サーバまたはそのウォッチドッグに対して、対応するアベイラビリティ信号がアベイラビリティ・データベースに一度だけ入力され得るということは、十分ではない。このイベントの後に、アプリケーション・サーバがクラッシュした場合には、アベイラビリティ・データベースは、現在の状態との同期がなくなり得る。この問題を処理するために、本発明は、ライフ・データベースが、各ウォッチドッグが“I am alive!”レコードをデータベースに書き込むことに同意した期間に関する情報をも含まなければならないということを、この目的のために提案する。従って、通知期間を含むさらなるデータ要素が、アベイラビリティ・データベースに挿入される。通知期間は、対応するウォッチドッグ(またはアプリケーション・サーバ)が使用可能である間はアベイラビリティ信号が繰り返される際の時間制限の上限を定義する。 【0038】見本の実施の形態として、図3は、個々の通知期間を格納する期間テーブルを示す。期間テーブルは、ウォッチドッグ(アプリケーション・クラスタに相当する)のID、またはアベイラビリティ信号を繰り返すアプリケーション・サーバ300そして通知期間301のIDを含むということが提案される。アベイラビリティ・モニタリングに関係する各ウォッチドッグ/アプリケーション・サーバは、このようなレコードを、アベイラビリティ・データベースに入力し得る。ウォッチドッグがそれと共に“I am alive!”メッセージを書き込む期間を、このテーブルからSQLによって取り出す方法は、この技術分野のあらゆる当業者にとって明白である。同様に、アプリケーション・クラスタによって包含された全てのウォッチドッグは、SQLによってこのテーブルから取り出されることが可能である。 【0039】見本の実施の形態として、図4は、ウォッチドッグの“I am alive!”レコードを表すために使用されるテーブルAlive_Signalを示す。すなわち、ウォッチドッグから受信された各アベイラビリティ信号に対して、このようなレコードが、アベイラビリティ・データベースに入力され得る。期間テーブルと同様に、Alive_Signalテーブルが、アベイラビリティ信号を送信した対応するウォッチドッグ/アプリケーション・サーバのID400を含むということが提案される。さらに、Alive_Timestampフィールド401は、タイムスタンプと、従って、最も最近のアベイラビリティ信号のアベイラビリティ・タイムとを格納する。 【0040】これらの2つのテーブル、すなわち期間テーブルおよびAlive_Signalテーブルに含まれる情報は、アプリケーション・サーバのアベイラビリティの正確なピクチャを反映する。一般的にいえば、各アプリケーション・サーバに対して、アベイラビリティ基準は、特定のアプリケーション・サーバの通知期間と比較した、現在の時刻(例えば、アベイラビリティ・データベースに問い合わせる時刻)と最も最近のアベイラビリティ・タイムとの差異によって定義される。さらに一般的には、現在のアベイラビリティ・タイムと直前のアベイラビリティ・タイムとの間の他の差異がアベイラビリティ基準に加えられ得る。以下の特定のアベイラビリティ基準がサクセスフルであると証明された。 【0041】1.現在の時刻と、最も最近のアベイラビリティ・タイムとの差異が、通知期間を越える場合には、対応するアプリケーション・サーバは、使用不可能であるとして扱われる。これは、アプリケーション・サーバが、少なくとも通知期間以内にアベイラビリティ信号を繰り返すことを約束したからである。そうでなければ、アプリケーション・サーバは、使用可能であるとみなされる。 【0042】2.Alive_Signalテーブルに基づいて、特定のウォッチドッグによって書き込まれた最後の2つの“I am alive!”レコードの挿入の間に経過した時間が定義可能である。すなわち、最も最近のアベイラビリティ・タイムと直前のアベイラビリティ・タイムとの間の時間の差異が定義される。この期間が、このウォッチドッグが“I am alive!”メッセージを挿入することに同意した通知期間を越える場合には、ウォッチドッグは、障害を起こした候補となる。このアベイラビリティ基準は、最後の2つのアベイラビリティ信号が予定された通知期間以内でない場合には、これは、アプリケーション・サーバが現在は問題を経験しており、従って回避されるべきであるというしるしであるという仮定に基づく。 【0043】3.典型として、このようなタイムアウト・ベースの障害判別メカニズムは、ウォッチドッグが、単に忙し過ぎて、アベイラビリティ信号をアベイラビリティ・データベースに書き込むことができないが、なおも使用可能であるというような状態を処理しなければならない。このような状態を処理できるアベイラビリティ基準は、現在の時刻と直前のアベイラビリティ・タイムとの間の差異が、Nのファクタだけ通知期間を越える場合には、アプリケーション・サーバを使用不可能であるとして扱うことによって達成される。 【0044】他方において、アベイラビリティ・データベース(ライフ・データベース)に基づいて、どのウォッチドッグ/アプリケーション・サーバが障害を起こしているのか、そしてどのウォッチドッグ/アプリケーション・サーバがなおも使用可能であるのかが判別可能である。とりわけ、ライフ・データベースにアクセスできるあらゆるプログラムがこのチェックを実行できる。すなわち、プログラムとは、各ウォッチドッグ,この環境のために構築され得る分離管理コンポーネントおよび、もちろんアプリケーション・サービス要求を運ぶための使用可能なアプリケーション・サーバを捜す各アプリケーション・クライアントである。各アプリケーション・クライアントは、アベイラビリティ・データベースに問い合わせ、上述のアベイラビリティ基準を利用して少なくとも一つの使用可能アプリケーション・サーバを判別し、判別した使用可能アプリケーション・サーバにアプリケーション・サービス要求を送信することができる。 【0045】本発明のさらに有益な実施の形態は、ウォッチドッグまたはアプリケーション・サーバがそれらの通知期間を動的に調整する場合に達成可能である。この動的調整が、アプリケーション・サーバによって処理されるワークロードの総量に従属する場合には、アベイラビリティ基準は、ワークロード表示をも表すことによって新しい性質になる。ワークロードの総量が増加する場合には、通知期間を増加させることにより、そして、ワークロードの総量が減少する場合には、通知期間を減少させることにより、通知期間は、アプリケーション・サーバの応答性を表現するワークロード・インディケータを(同時に)表す。この表示は、平行をなす一組のアプリケーション・サーバのためのアベイラビリティ基準を判別することにより、アプリケーション・クライアントによって活用され得る。この状態において、アベイラビリティ基準は、使用可能なアプリケーション・サーバのサブセットを判別するために使用され得るだけでなく(これは、2分決定、すなわち“使用可能”/“使用不可能”のみを表すこととなる)、アベイラビリティ基準は、アプリケーション・クライアントによって実行されるワークロード平衡化決定のための基礎を形成することも可能である。パラメータである現在の通知期間によって多少影響を受けるアベイラビリティ基準の数値的値は、ワークロード表示でもある。アプリケーション・クライアントは、そのアプリケーション・サービス要求を、最低のワークロードを有する使用可能なアプリケーション・サーバ、すなわち、このさらなるアプリケーション要求については、最大のアベイラビリティ基準を有するアプリケーション・サーバへ発行し得る。 【0046】図5は、ワークロード状態に従属する通知期間に適応する動的側面をも含むアベイラビリティを表示する方法を説明するフロー図である。アプリケーション・サーバまたはウォッチドッグによるアベイラビリティ・モニタリングのプロセスは、ステップ501内で開始される。次のステップ502内で、現在のワークロード状態と比較して高すぎず、あるいは低すぎない通知期間を算出するために現在のワークロード状態が判別される。この算出された通知期間は、ステップ503内でアベイラビリティ・データベースに(もちろん)入力されなければならない。通知期間によってセットされた時間フレーム以内に、現在のアベイラビリティ信号はアベイラビリティ・データベースに入力されなければばらない。これは、ステップ504において反映される。通知期間は、アベイラビリティ信号の反復のための時間制限の上限を定義する。ワークロードに従属して、アプリケーション・サーバ/ウォッチドッグは、アベイラビリティ信号をより頻繁に発行するよう試み得る。ステップ504の後(または、このステップよりも前に代替の実施形態として)、ステップ505内で現在のワークロード状態が分析される。通知期間を再調整することを必要とする方法で、現在のワークロード状態が変化した場合には、制御パス506を選択して、通知期間を判別するプロセス・ステップが再び開始される。現在のワークロード状態が大きくは変化しなかった場合には、パス507を選択してアベイラビリティ信号発行の反復が繰り返される。 【0047】その期間テーブル(図3において説明された),そのアベイラビリティ・テーブル(図4において説明された)を有するアベイラビリティ・データベースの構造およびレイアウトは、概念的な面のみから解釈される必要がある。もちろん、アベイラビリティ・データベースの構造は、以下のような、なおいっそうの改良の対象となり得る。 【0048】1.新しい通知期間、または新しいアベイラビリティ信号の各挿入は、新しいレコードをデータベースに導入し得る。アベイラビリティ・データベースが永続的に大きくなり得ることを予防するために、もはや有用でない古いデータベース・レコードを除去するというプロセスが提案される。例えば、一定のウォッチドッグ/アプリケーション・サーバの各レコード・タイプについては、最も最新のおよび直前のレコードだけがデータベース内部に維持される。このようなプロセスの実現のために、“ストアド・プロシージャ”のテクノロジが有益に活用可能である。このような適応ストアド・プロシージャは、もはや必要とされないレコードを削除するバックグラウンドにおいてデータベース内で実行可能である。 【0049】2.通知期間とアベイラビリティ信号とを異なるデータベース・レコード内に格納することは、もちろん本発明にとって本質ではない。双方のデータ要素を一つのデータベース・レコード内部に含む方法の例が、図6において視覚化される。図6から認められるように、ウォッチドッグID/アプリケーション・サーバID600および通知期間601のほかに、複数のアベイラビリティ信号が2つのエントリだけに縮小される。現在のアベイラビリティ信号602が新しいアベイラビリティ信号によって更新される時はいつでも、その内容は、直前のアベイラビリティ信号603を格納するフィールドに転送される。その後、新しいアベイラビリティ信号が、現在のアベイラビリティ信号602のフィールドに挿入される。この手法を用いて、アベイラビリティ・データベースは、各ウォッチドッグ/アプリケーション・サーバについては、単一データベース・レコードが保持されなければならないだけである適度なサイズに限定される。 【0050】本発明の利点提案されたテクノロジは、複数のアプリケーション・クライアントへサービスを提供する複数のアプリケーション・サーバのアベイラビリティおよびスケーラビリティを増加させる。本発明は、クライアントが、非応答的サーバからサービスを要求する誤った要求ルーティングを生成するということを予防する事前の対策を講じたテクノロジを提供する。クライアントおよびサーバが永続的にネットワークに入るまたは出るところの動的ネットワーク状態に高度に応答する継続しているプロセスが提案される。こうして、本発明は、サーバ・マシンのホット・プラグインをアプリケーション・クラスタに収容し、環境のスケーラビリティをさらに増加させることができる。アプリケーション・クライアントをアプリケーション・サーバと関係づけるための複雑な(すなわち、当然に支払われるべきその絶対的に受け入れがたい複雑性)管理努力は完全に回避される。 【0051】本発明は、どのようなネットワーク・ベースのメッセージ受け渡しも想定しないので、このようなメカニズムの全ての障害(上述の所見を参照されたい)が回避される。唯一のシステム条件は、共用データベースである。今日のデータベース管理システムは極めて堅固であり、従って、ライフ・データベースを障害の単一点とみなす必要はない。さらに、大抵のアプリケーション・サーバは、データベース・システムのトップに構築される。こうして、共用データベースの前提条件が多くの状態において自動的に満たされる。ホット・プールをホストすることにより、各サーバ・マシンは共用データベースにアクセスできるので、到達可能性は全然問題にならない。最後に、ウォッチドッグ・モニタリング手法は、ライフ・データベースを関係DBMSに入れる際にSQLによって容易に実現できる。 【0052】まとめとして、本発明の構成に関して以下の事項を開示する。 (1)1または複数のアプリケーション・サーバのアベイラビリティを表示するコンピュータ化された方法であって、前記方法は、通知期間を含む第1のデータ要素(301,601)を、アベイラビリティ・データベース(200)に挿入する第1のステップ(503)を含み、前記通知期間は、前記アプリケーション・サーバが使用可能である間は繰り返されるアベイラビリティ信号の反復期間の時間制限の上限を定義し、前記方法は、各アベイラビリティ信号について、アベイラビリティ・タイムであるその対応するタイム・スタンプを含む第2のデータ要素(401,602)を、前記アベイラビリティ・データベースに挿入する第2のステップ(504)を含み、前記通知期間と比較される、現在時刻と最近のアベイラビリティ・タイムとの差異は、前記アプリケーション・サーバのアベイラビリティの基準を表すアベイラビリティを表示するコンピュータ化された方法。 (2)前記方法は、前記アプリケーション・サーバのワークロードの総量が増加する場合には、前記通知期間を増加させることによるか、または前記ワークロードの総量が減少する場合には、前記通知期間を減少させることによるかのいずれかにより、前記アプリケーション・サーバのワークロードの総量に従属して前記通知期間を更新する第3のステップ(505)を含む上記(1)に記載のアベイラビリティを表示するコンピュータ化された方法。 (3)前記第1および前記第2のステップ内で、さらに、アプリケーション・サーバID(300,400,600)が前記アベイラビリティ・データベースに挿入され、前記第1および前記第2のデータ要素と関係づけられる上記(1)に記載のアベイラビリティを表示するコンピュータ化された方法。 (4)前記差異が、前記通知期間を越える場合には、前記アベイラビリティの基準は、前記アプリケーション・サーバのアンアベイラビリティ(unavailability)を表示する上記(3)に記載のアベイラビリティを表示するコンピュータ化された方法。 (5)前記アベイラビリティ・データベースは、前記1または複数のアプリケーション・サーバのホット・プールを各々が含む複数のアプリケーション・サーバによって共用され、前記ホット・プールに対して、ウォッチドッグが前記ホット・プールのアベイラビリティ状況をモニタリングし、前記方法は、前記ウォッチドッグによって実行され、前記アベイラビリティ信号は、前記ホット・プールの前記アプリケーション・サーバの少なくとも一つが使用可能である間は繰り返され、前記第1および前記第2のステップ内で、さらに、ホット・プールIDが前記アベイラビリティ・データベースに挿入され、前記第1および前記第2のデータ要素と関係づけられる上記(1)に記載のアベイラビリティを表示するコンピュータ化された方法。 (6)他の差異である前記最近のアベイラビリティ・タイムと直前のアベイラビリティ・タイム(603)との差異が、前記アベイラビリティの基準に含まれる上記(2)または(5)に記載のアベイラビリティを表示するコンピュータ化された方法。 (7)アプリケーション・サービス要求を受け入れる1または複数のアプリケーション・サーバのアベイラビリティを判別するコンピュータ化された方法であって、前記方法は、アベイラビリティ・データベース(200)に対して、通知期間を含む第1のデータ要素(301,601)、前記通知期間は、前記アプリケーション・サーバが使用可能である間は繰り返されるアベイラビリティ信号の反復期間の時間制限の上限を定義し、最近のアベイラビリティ信号のための、最近のアベイラビリティ・タイムであるそのタイム・スタンプを含む第2のデータ要素、を問い合わせる第1のステップを含み、前記方法は、現在時刻と前記最近のアベイラビリティ・タイムとの差異を、前記通知期間と比較することにより、前記アプリケーション・サーバのアベイラビリティの基準を判別する第2のステップを含み、前記方法は、前記アベイラビリティの基準が、前記指示サーバのアベイラビリティを表示する場合には、アプリケーション・サービス要求を、前記アプリケーション・サーバだけに発行する第3のステップを含むアベイラビリティを判別するコンピュータ化された方法。 (8)前記差異が、前記通知期間を越える場合には、前記アベイラビリティの基準は、前記アプリケーション・サーバのアンアベイラビリティを表示する上記(7)に記載のアベイラビリティを判別するコンピュータ化された方法。 (9)前記方法は、前記第1のステップにおいて、さらに、直前のアベイラビリティ信号のための直前のアベイラビリティ・タイムを含む第3のデータ要素(603)を問い合わせ、前記第2のステップにおいて、さらに、他の差異である、前記最近のアベイラビリティ・タイムと前記直前のアベイラビリティ・タイムとの差異が、前記アベイラビリティの基準に含まれる上記(7)に記載のアベイラビリティを判別するコンピュータ化された方法。 (10)前記差異が、Nのファクタだけ前記通知期間を越える場合には、前記アベイラビリティの基準は、前記アプリケーション・サーバのアンアベイラビリティを表示する上記(7)に記載のアベイラビリティを判別するコンピュータ化された方法。 (11)前記方法は、複数のアプリケーション・サーバに対して実行され、前記第3のステップにおいて、前記アベイラビリティの基準がアベイラビリティを表示するアプリケーション・サーバを含むアプリケーション・サーバのサブセットが判別され、前記サブセット内部の各アプリケーション・サーバに対して、その対応するアベイラビリティの基準が、ワークロード表示と解釈され、前記アプリケーション・サービス要求が、最低のワークロードを有するアプリケーション・サーバへ発行される上記(9)に記載のアベイラビリティを判別するコンピュータ化された方法。 (12)1または複数のアプリケーション・サーバのアベイラビリティを表示するシステムであって、前記システムは、上記(1)〜(6)のいずれかに記載の方法のステップを実行するために適切な手段を含むシステム。 (13)上記(1)〜(6)のいずれかに記載の方法を実行するソフトウェア・コード部分を含む、データ処理システムにおける実行のためのデータ処理プログラム。 (14)上記(1)〜(6)のいずれかに記載の方法をコンピュータに実行させるコンピュータ読み取り可能なプログラム手段を含む、コンピュータ使用可能媒体に格納されたコンピュータ・プログラム製品。 (15)アプリケーション・サービス要求を受け入れる1または複数のアプリケーション・サーバのアベイラビリティを判別するシステムであって、前記システムは、上記(7)〜(11)のいずれかに記載の方法のステップを実行するために適切な手段を含むシステム。 (16)データ処理プログラムであって、前記プログラムが前記コンピュータ上で実行された時に、上記(7)〜(11)のいずれかに記載の方法を実行するソフトウェア・コード部分を含む、データ処理システムにおける実行のためのデータ処理プログラム。 (17)コンピュータ読み取り可能なプログラム手段であって、前記プログラムが前記コンピュータ上で実行された時に、上記(7)〜(11)のいずれかに記載の方法を前記コンピュータに実行させるコンピュータ読み取り可能なプログラム手段を含む、コンピュータ使用可能媒体に格納されたコンピュータ・プログラム製品。
|
| 【出願人】 |
【識別番号】390009531 【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション 【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
|
| 【出願日】 |
平成13年7月13日(2001.7.13) |
| 【代理人】 |
【識別番号】100086243 【弁理士】 【氏名又は名称】坂口 博 (外2名)
|
| 【公開番号】 |
特開2002−108817(P2002−108817A) |
| 【公開日】 |
平成14年4月12日(2002.4.12) |
| 【出願番号】 |
特願2001−213586(P2001−213586) |
|