JP4132738B2 - アプリケーション・サーバのアベイラビリティを判別するコンピュータ化された方法 - Google Patents

アプリケーション・サーバのアベイラビリティを判別するコンピュータ化された方法 Download PDF

Info

Publication number
JP4132738B2
JP4132738B2 JP2001213586A JP2001213586A JP4132738B2 JP 4132738 B2 JP4132738 B2 JP 4132738B2 JP 2001213586 A JP2001213586 A JP 2001213586A JP 2001213586 A JP2001213586 A JP 2001213586A JP 4132738 B2 JP4132738 B2 JP 4132738B2
Authority
JP
Japan
Prior art keywords
availability
application server
application
database
notification period
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
JP2001213586A
Other languages
English (en)
Other versions
JP2002108817A (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 JP2002108817A publication Critical patent/JP2002108817A/ja
Application granted granted Critical
Publication of JP4132738B2 publication Critical patent/JP4132738B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、複数のアプリケーション・クライアントにアプリケーション・サービスを提供する複数のアプリケーション・サーバのアベイラビリティを表示し、判別する方法および手段に関する。
【0002】
【従来の技術】
企業は、彼らの日ごとの経営を支援するシステムのアベイラビリティに依存する。システムが作動しており、実行中である場合には、システムは使用可能といわれ、正確な結果を作り出している。狭い意味で、システムのアベイラビリティは、システムが使用可能である時間の一部である。MTBFは、このようなシステムの平均故障間隔、すなわち、故障が発生するよりも前にシステムが使用可能である平均時間を表す(これは、システムの信頼性である)。MTTRは、その平均修理時間、すなわち、故障の後にシステムを修理するのにかかる平均時間を表す(これは、故障のゆえのシステムのダウン時間である)。従って、
【0003】
【表1】
Figure 0004132738
【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 Switching for Maximum Server Availability and Load Balancing”,米国特許第5,828,847号公報は、先に定義されたアベイラビリティの狭い意味に関連するダイナミック・サーバ・スイッチング・システムを教示する。ダイナミック・サーバ・スイッチング・システムは、クライアントのための1次サーバおよび優先通信方法、そして引き続いて2次サーバおよび通信方法対の階層を識別する静的かつ事前定義されたリスト(プロファイルの一種)を各クライアント内に保持する。クライアントが、指定された1次サーバ、または指定された通信方法によって提供された要求を有さないというイベントにおいて、システムは、リストをトラバースして、第1の使用可能代替サーバ−通信方法対のIDを得る。このシステムは、クライアントが、反応しないサーバから事前定義代替サーバへ要求を転送するのを可能にする。このように、システムは、サービス・アベイラビリティのためのリアクティブ・サーバ・スイッチングを提供する。
【0008】
先に定義された狭い意味におけるアベイラビリティの改良にもかかわらず、この教示はいくつかの欠点を伴う。Gehrの教示は、1次サーバに全く到達できない場合にだけ、リアクティブ・レスポンスを与える。クライアントが非応答的サーバからサービスを要求するということをそれまでに予防する事前の対策を講じた要素が存在しない。1次および代替サーバのリストは、静的に事前定義されているので、そこにおいて得られ得るサーバが一つもない、あるいは、そこにおいていくつかの非応答的代替サーバがテストされるよりも前にサーバが得られることはないという状態が存在し得る。クライアントおよびサーバがネットワークに永続的に入るまたは出る、そしてサーバへのアクセス・パターンが刻々と変化し得る、高度にダイナミックな,世界的なオペレーティング・ネットワーク状態において、Gehrの教示は、適切ではない。
【0009】
本発明と同じ発明者による“Improved Availability in Clustered Application Servers”と呼ばれる欧州特許出願 EP99109926.8は、また、アベイラビリティ問題に関する。しかし、この教示は、アプリケーション・クライアントの面にもっぱら集中する。一定のアプリケーション要求が、使用可能なアプリケーション・サーバによって処理されているということを確かめるために、少なくとも一つの使用可能なアプリケーション・サーバがこの要求を受信できるということを仮定する複数の並列アプリケーション・サーバへ、マルチキャスト(multi−casting)・ステップでこのアプリケーション要求を、送ることが提案される。この教示は、一定のアプリケーション・サーバのアベイラビリティの表し方の手法に関して全く一言も触れていない。
【0010】
同一の発明者に基づく、“Improving Availability and Scalability in Clustered Application Servers”と呼ばれる、さらなる欧州特許出願 EP99122914.7が知られている。この出願において、アプリケーション・サーバのアベイラビリティを判別するための手法の存在が開始点としてすでに想定される。この教示は、次に、アプリケーション要求を処理する一定のアプリケーション・サーバを選択することにより、いかなる方法でアプリケーション・クライアントがワークロード平衡化を実行できるのかの手法に集中する。
【0011】
これらの進歩の全てにもかかわらず、誰かが一定のアプリケーション・サーバのアクセスに興味を有し得るあらゆる時点での、世界的なコンピュータ・ネットワークのユービクィティの理由から、彼らのアプリケーションのアベイラビリティを増加させ、そして7(日)*24(時間)ベースの電子ビジネスの要求に備えている企業を支援するために、さらなる改良が緊急に必要とされる。
【0012】
【発明が解決しようとする課題】
本発明は、アプリケーション要求を受け入れるアプリケーション・サーバのアベイラビリティを表す改良された方法および手段を提供し、そして、アプリケーション・サーバのアベイラビリティをアプリケーション・クライアントによって判別する改良された方法および手段を提供する目的に基づく。
【0013】
本発明のさらなる目的は、ネットワーク内部の個々のアプリケーション・サーバのアベイラビリティのダイナミックな変更に高度に応答するテクノロジを提供することにより、アベイラビリティを増大させることである。
【0014】
【課題を解決するための手段】
本発明の目的は、独立のクレイムによって解決される。本発明のさらに有益な構成および実施形態は、それぞれのサブクレイムにおいて説明される。
【0015】
提示された方法は、アプリケーション・サーバの各々について、アベイラビリティ信号の反復期間のための時間制限の上限 upper time limit を定義する通知期間をアベイラビリティ・データベースに挿入する第1のステップを含み、アベイラビリティ信号は、アプリケーション・サーバが使用可能である間は繰り返される。第2のステップにおいて、各アベイラビリティ信号については、その対応するタイム・スタンプが、アベイラビリティ・タイムとしてアベイラビリティ・データベースに挿入される。前記通知期間と比較される、現在時刻と最近のアベイラビリティ・タイムとの差異は、アプリケーション・サーバのアベイラビリティの基準 availability measure を表す。
【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は、個々の通知期間を格納する期間テーブルを示す。期間テーブルは、アベイラビリティ信号を繰り返すウォッチドッグ(アプリケーション・クラスタを表す/アプリケーション・サーバのID300、そして通知期間301を含むということが提案される。アベイラビリティ・モニタリングに関係する各ウォッチドッグ/アプリケーション・サーバは、このようなレコードを、アベイラビリティ・データベースに入力し得る。ウォッチドッグがそれと共に“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によって容易に実現できる。
【図面の簡単な説明】
【図1】 アプリケーション・サーバ,ホット・プール,アプリケーション・クラスタおよびアプリケーション・クライアントの概念を反映する図である。
【図2】 そのアベイラビリティ状況を表すための通信媒体である各アプリケーション・サーバ/対応するウォッチドッグによって維持される、本発明に従って提案されたアベイラビリティ・データベースを反映する図である
【図3】 個々の通知期間を含む、本発明に従う期間テーブルのレコード様式を示す図である
【図4】 個々のアベイラビリティ信号を格納するアベイラビリティ・データベース内部のレコード様式を視覚化する図である
【図5】 ワークロード状態に従属する通知期間に適応する動的側面をも含む本発明に従ってアベイラビリティを表す方法を説明するフロー図である
【図6】 期間テーブルおよびアベイラビリティ信号テーブルを結合して単一テーブルだけにする実施例を示す図である
【符号の説明】
100 共用リモート・データベース
101103 サーバ・マシン
110〜118 アプリケーション・サーバ
120 アプリケーション・クラスタ
125 入力キュー
130 アプリケーション
131 アプリケーション・クライアント
200 ライフ・データベース
201 ウォッチドッグ
202 クラスタ
203 レコード

Claims (4)

  1. アプリケーション・クライアントからのアプリケーション・サービス要求を受け入れる1または複数のアプリケーション・サーバのアベイラビリティを判別するコンピュータ化された方法であって、
    各アプリケーション・サーバに対応する通知期間を含む第1のデータ要素(301,601)を、アベイラビリティ・データベース(200)に挿入する第1のステップ(503)を含み、
    前記通知期間は、当該各アプリケーション・サーバが使用可能である間は繰り返されるアベイラビリティ信号の反復期間の時間制限の上限を定義し、
    さらに、各アプリケーション・サーバに対応する最近のアベイラビリティ信号のための、最近のアベイラビリティ・タイムであるその対応するタイム・スタンプを含む第2のデータ要素(401,602)を、前記アベイラビリティ・データベースに挿入する第2のステップ(504)と、
    各アプリケーション・サーバのワークロードの総量が増加するかまたは減少する場合は、当該各アプリケーション・サーバに対応する前記通知期間を増加させるかまたは減少させることにより、当該各アプリケーション・サーバのワークロードの総量に従属して前記通知期間を更新する第3のステップ(505)と、
    前記アベイラビリティ・データベースに対して、各アプリケーション・サーバに対応する前記第1および前記第2のデータ要素を、前記アプリケーション・クライアントによって問い合わせる第4のステップと、
    現在時刻と各アプリケーション・サーバに対応する前記第2のデータ要素のうちの前記最近のアベイラビリティ・タイムとの第1の差異を、当該各アプリケーション・サーバに対応する第1のデータ要素のうちの前記通知期間と比較することにより、当該アプリケーション・サーバのアベイラビリティの基準を判別する第5のステップと、
    前記第1の差異が前記通知期間を越えない場合には、前記アベイラビリティの基準が、それに対応するアプリケーション・サーバのアベイラビリティを表すものとして、前記アプリケーション・クライアントからのアプリケーション・サービス要求を、当該対応するアプリケーション・サーバだけに発行する第6のステップとを含む、方法。
  2. 前記第1および前記第2のステップにおいて、さらに、アプリケーション・サーバID(300,400,600)が前記アベイラビリティ・データベースに挿入され、当該各アプリケーション・サーバに対応する前記第1および前記第2のデータ要素と関係づけられる請求項1に記載の方法。
  3. 前記第1の差異が前記通知期間を越える場合には、前記アベイラビリティの基準は、それに対応するアプリケーション・サーバのアンアベイラビリティを表す、請求項に記載の方法。
  4. 前記第2のステップにおいて、さらに、各アプリケーション・サーバに対応する直前のアベイラビリティ信号のための直前のアベイラビリティ・タイムを含む第3のデータ要素(603)が、前記アベイラビリティ・データベースに挿入され、
    前記第のステップにおいて、さらに、各アプリケーション・サーバに対応する前記第3のデータ要素を問い合わせ、
    前記第のステップにおいて、さらに、第2の差異である、各アプリケーション・サーバに対応する前記第2のデータ要素のうちの前記最近のアベイラビリティ・タイムと当該各アプリケーション・サーバに対応する前記第3のデータ要素のうちの前記直前のアベイラビリティ・タイムとの差異が、前記アベイラビリティの基準に含まれる請求項1乃至3の何れか1項に記載の方法。
JP2001213586A 2000-07-15 2001-07-13 アプリケーション・サーバのアベイラビリティを判別するコンピュータ化された方法 Expired - Fee Related JP4132738B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP00115368 2000-07-15
EP00115368.3 2000-07-15

Publications (2)

Publication Number Publication Date
JP2002108817A JP2002108817A (ja) 2002-04-12
JP4132738B2 true JP4132738B2 (ja) 2008-08-13

Family

ID=8169279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001213586A Expired - Fee Related JP4132738B2 (ja) 2000-07-15 2001-07-13 アプリケーション・サーバのアベイラビリティを判別するコンピュータ化された方法

Country Status (5)

Country Link
US (1) US6968381B2 (ja)
JP (1) JP4132738B2 (ja)
KR (1) KR100423192B1 (ja)
CN (1) CN1156775C (ja)
TW (1) TW536670B (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7254640B2 (en) * 2002-04-09 2007-08-07 Vigilos, Inc. System for providing fault tolerant data warehousing environment by temporary transmitting data to alternate data warehouse during an interval of primary data warehouse failure
US20040139110A1 (en) * 2002-12-31 2004-07-15 Lamarca Anthony G. Sensor network control and calibration system
US7197447B2 (en) * 2003-05-14 2007-03-27 Microsoft Corporation Methods and systems for analyzing software reliability and availability
US7185231B2 (en) * 2003-05-14 2007-02-27 Microsoft Corporation Methods and systems for collecting, analyzing, and reporting software reliability and availability
US7739661B2 (en) * 2003-05-14 2010-06-15 Microsoft Corporation Methods and systems for planning and tracking software reliability and availability
JP4479284B2 (ja) 2004-03-08 2010-06-09 株式会社日立製作所 計算機システムのモニタリングを設定する管理計算機及びシステム
US7299231B2 (en) 2004-07-29 2007-11-20 International Business Machines Corporation Method and system of subsetting a cluster of servers
US20070203974A1 (en) * 2006-02-09 2007-08-30 Baskey Michael E Method and system for generic application liveliness monitoring for business resiliency
US20080046890A1 (en) * 2006-08-17 2008-02-21 Stanley Steven Dunlap Method and apparatus for balancing workloads in a cluster
US9026575B2 (en) * 2006-09-28 2015-05-05 Alcatel Lucent Technique for automatically configuring a communication network element
US8156082B2 (en) * 2006-10-06 2012-04-10 Sybase, Inc. System and methods for temporary data management in shared disk cluster
KR100806488B1 (ko) * 2006-10-11 2008-02-21 삼성에스디에스 주식회사 대외채널통합 환경에서의 성능 테스트 시스템 및 그 방법
EP1976232B1 (en) * 2007-03-30 2014-01-22 Hewlett-Packard Development Company, L.P. Signaling status information of an application service
TW201232280A (en) * 2011-01-20 2012-08-01 Hon Hai Prec Ind Co Ltd System and method for sharing desktop information
KR20230076020A (ko) 2021-11-23 2023-05-31 솔포스 주식회사 컴퓨터 가속율 알고리즘을 이용한 수행력 진단 시스템 및 방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3447347B2 (ja) 1993-12-24 2003-09-16 三菱電機株式会社 障害検出方法
JPH08249281A (ja) 1995-03-13 1996-09-27 Hitachi Ltd オンライン処理システム
US5777989A (en) * 1995-12-19 1998-07-07 International Business Machines Corporation TCP/IP host name resolution for machines on several domains
US5828847A (en) 1996-04-19 1998-10-27 Storage Technology Corporation Dynamic server switching for maximum server availability and load balancing
JPH10214208A (ja) 1997-01-31 1998-08-11 Meidensha Corp ソフトウェアの異常監視方式
US6324161B1 (en) * 1997-08-27 2001-11-27 Alcatel Usa Sourcing, L.P. Multiple network configuration with local and remote network redundancy by dual media redirect
JP3369445B2 (ja) * 1997-09-22 2003-01-20 富士通株式会社 ネットワークサービスサーバ負荷調整装置、方法および記録媒体
US6058420A (en) * 1998-02-27 2000-05-02 Netsolve, Inc. Alarm server systems, apparatus, and processes
JP3966598B2 (ja) * 1998-03-04 2007-08-29 富士通株式会社 サーバ選択システム
US6260155B1 (en) * 1998-05-01 2001-07-10 Quad Research Network information server
JP3062155B2 (ja) * 1998-07-31 2000-07-10 三菱電機株式会社 計算機システム
JP3398681B2 (ja) 1998-08-06 2003-04-21 エヌイーシーシステムテクノロジー株式会社 通信処理システム
US6226684B1 (en) * 1998-10-26 2001-05-01 Pointcast, Inc. Method and apparatus for reestablishing network connections in a multi-router network
US6370656B1 (en) * 1998-11-19 2002-04-09 Compaq Information Technologies, Group L. P. Computer system with adaptive heartbeat
US6532494B1 (en) * 1999-05-28 2003-03-11 Oracle International Corporation Closed-loop node membership monitor for network clusters
US6594786B1 (en) * 2000-01-31 2003-07-15 Hewlett-Packard Development Company, Lp Fault tolerant high availability meter

Also Published As

Publication number Publication date
KR20020007160A (ko) 2002-01-26
CN1156775C (zh) 2004-07-07
CN1334530A (zh) 2002-02-06
US20020059423A1 (en) 2002-05-16
KR100423192B1 (ko) 2004-03-16
US6968381B2 (en) 2005-11-22
TW536670B (en) 2003-06-11
JP2002108817A (ja) 2002-04-12

Similar Documents

Publication Publication Date Title
JP4637842B2 (ja) クラスタ化されたコンピューティングシステムにおける高速なアプリケーション通知
US10122595B2 (en) System and method for supporting service level quorum in a data grid cluster
JP2948496B2 (ja) データ処理システム内で複写データ一貫性を維持するためのシステムおよび方法
US6816860B2 (en) Database load distribution processing method and recording medium storing a database load distribution processing program
US7185096B2 (en) System and method for cluster-sensitive sticky load balancing
US7716353B2 (en) Web services availability cache
JP4132738B2 (ja) アプリケーション・サーバのアベイラビリティを判別するコンピュータ化された方法
US6839752B1 (en) Group data sharing during membership change in clustered computer system
US7870230B2 (en) Policy-based cluster quorum determination
US7441024B2 (en) Method and apparatus for applying policies
EP2435916B1 (en) Cache data processing using cache cluster with configurable modes
US6711606B1 (en) Availability in clustered application servers
US7487244B2 (en) Exactly once data framework method
CN101243445B (zh) 数据变更通告
US7146532B2 (en) Persistent session and data in transparently distributed objects
US8856091B2 (en) Method and apparatus for sequencing transactions globally in distributed database cluster
US20090113034A1 (en) Method And System For Clustering
US20070074066A1 (en) High availability for event forwarding
US7870419B2 (en) Subscription-based management and distribution of member-specific state data in a distributed computing system
CN110830582B (zh) 一种基于服务器集群选主方法和装置
JP2005502957A (ja) 厳密に一回のキャッシュフレームワーク
US7769844B2 (en) Peer protocol status query in clustered computer system
JP2004302564A (ja) ネームサービス提供方法及びその実施装置並びにその処理プログラム
JP5480046B2 (ja) 分散トランザクション処理システム、装置、方法およびプログラム
JP2000047890A (ja) 分散オブジェクト管理システムとそのオブジェクト選択方法およびその処理プログラムを記録した記録媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050317

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050419

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080602

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

Free format text: PAYMENT UNTIL: 20110606

Year of fee payment: 3

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120606

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120606

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130606

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees