JP2005524147A - 分散形アプリケーションサーバおよび分散された機能を実施するための方法 - Google Patents

分散形アプリケーションサーバおよび分散された機能を実施するための方法 Download PDF

Info

Publication number
JP2005524147A
JP2005524147A JP2004500196A JP2004500196A JP2005524147A JP 2005524147 A JP2005524147 A JP 2005524147A JP 2004500196 A JP2004500196 A JP 2004500196A JP 2004500196 A JP2004500196 A JP 2004500196A JP 2005524147 A JP2005524147 A JP 2005524147A
Authority
JP
Japan
Prior art keywords
application server
message
node
nodes
distributed
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.)
Granted
Application number
JP2004500196A
Other languages
English (en)
Other versions
JP2005524147A5 (ja
JP4422606B2 (ja
Inventor
ページ、デイビッド・チャールズ
フェリー、デイビッド・イアン
Original Assignee
オープン・クラウド・リミテッド
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 オープン・クラウド・リミテッド filed Critical オープン・クラウド・リミテッド
Publication of JP2005524147A publication Critical patent/JP2005524147A/ja
Publication of JP2005524147A5 publication Critical patent/JP2005524147A5/ja
Application granted granted Critical
Publication of JP4422606B2 publication Critical patent/JP4422606B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time 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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本発明は、2以上のノードのクラスタをピア構成で含む分散形アプリケーションサーバを提供する。2以上のノードは、関連したノードを通って伝播された複数のメッセージを含む少なくとも1つのメッセージ流と関連付けられている。本発明はまた、2以上のノードのクラスタをピア構成に配列し、ノードを少なくとも1つのメッセージ流と関連付けるステップを含んでいる分散形アプリケーションサーバの構成方法を提供する。

Description

本発明は、アプリケーションサーバに関し、とくに、統合されたネットワーク内での使用に適した故障許容性の分散形アプリケーションサーバ、および分散形アプリケーションサーバがサポートする種々の機能を実施する方法に関する。
広い見地から、アプリケーションサーバは、アプリケーションにランタイム環境を提供する情報システムである。
一般的に述べると、アプリケーションサーバによってホストされたアプリケーションは、ある組織体のデータベースサーバおよび、またはバックと、企業アプリケーションと、これらのリソースへのアクセスを所望した任意のエンドユーザまたはクライアントとの間のトランザクションを取り扱う。
図1は、1以上のクライアント110がアプリケーションサーバ130を介して中央計算リソース120にアクセスすることのできる簡単化されたシナリオを示している。クライアントは、たとえば、適切なオペレーティングシステムおよびアプリケーションソフトウェア下で動作しているワークステーションであってもよい。クライアントは、アプリケーションサーバに、たとえば、オブジェクトデータベース120A、関連データベース120B、または外部アプリケーション120C等の、1以上のリソースにアクセスするように要求してもよい。このタイプの構成は、何人かの従業員が彼等のワークステーションからアクセスする必要がある集中リソースを備えた小規模な企業に対して満足できるもの化もしれない。
しかしながら、今日の環境において、とくに、インターネットの人気とその他の多数の無線および通信ネットワークの成長により、アプリケーションサーバを介して伝統的なWAN、無線ネットワークおよび有線ネットワークによってサービスを消費者に提供する組織体がますます増加している。これらのサービスは、たとえば、インターネットによる、あるいはクライアントの自宅電話から移動電話またはボイスメールアクセスへの通信サービス呼転送サービスでの専用データベースへのアクセスを含むことができる。このようなサービスの消費者がインターネット、無線および有線ネットワークの特徴を統合した新しいサービスに対して高い需要を生んでいる。アプリケーションサーバテクノロジーは、これら消費者の需要に遅れをとらないようにするためにますます複雑になってきている。
アプリケーションサーバに関する大きな問題は、非常に利用し易く、高度にスケーラブルであり、故障許容性があることと、クライアントおよび顧客向けの次世代サービスの迅速な開発を容易にすることである。高度にスケーラブルで故障許容性があり、可搬性で規格化されたものであり、また、統合されたネットワークにおけるサービス提供に適した分散形アプリケーションサーバを有することが有用であろう。
1つの形態の広い見地から、本発明は、ピア構成すなわち同等の構成の2以上のノードのクラスタを含む分散形アプリケーションサーバを含み、2以上のノードは複数のメッセージを含む少なくとも1つのメッセージ流と関連付けられ、その複数のメッセージはその関連付けられたノードを通って伝播される。
別の形態の広い見地から、本発明は、2以上のノードのクラスタをピア構成に配列し、ノードを少なくとも1つのメッセージ流と関連付けるステップを含んでいる分散形アプリケーションサーバを構成する方法を提供する。
以下、添付図面を参照として分散された機能を実施する分散形アプリケーションサーバおよび方法の好ましい形態を説明する。
アプリケーションサーバは、インテリジェントアプライアンスまたは遠隔埋込み型装置用の小さいフットプリントのウェブベースプロセッサから、1つの企業を越えてスケール可能な多層アプリケーションをアセンブルし、配置し、維持する完全な環境に及んでいる。
個々のアプリケーションサーバは、本発明の構築ブロックである。ほとんどの任意の適切なタイプのアプリケーションサーバが本発明の基礎として機能することが可能であると予想される。
図2には、典型的な単一のアプリケーションサーバを簡単に表したものが一例として示されている。このアプリケーションサーバによってクライアントにアクセス可能なリソースは、たとえば、関連データベース210A、インメモリデータベース210B、メッセージ待ち行列210C、またはスイッチ210D等の、1以上のトランザクションおよび非トランザクションリソース210を含んでいてもよい。特定のリソース210はサーバごとに異なっている。
ソフトウェアに関しては、アプリケーションサーバは、プログラマーが彼等のプログラムの中のビジネスロジック(business logic)をプラットホーム関連コードから隔離するのを助ける1組のソフトウェアを含んでいる。アプリケーションサーバは、クライアントサーバアプリケーション中で見出されたアプリケーション論理および接続性の全てを取り扱うことができる。
これが意味するのは、リソース210にアクセスする方法がサーバの1組のソフトウェアにおいて規定され、APIすなわちアプリケーションプログラミングインターフェースを介してアクセスされてもよいということである。APIは、そのアプリケーションプログラムを書込んだあるプログラマーがオペレーティングシステムまたはその他のシステムリソースのリクエストを形成することのできる特定の予め規定された方法に対するインターフェースを規定する。このAPIを使用することにより、プログラマーは、リソース210を含むデータベースまたはその他の継承システムのプラットホームまたは構造のどのような特性でも無視できることが多く、それは、これらの特性を処理する機能がサーバソウトウェアによって提供されるためである。
典型的に、アプリケーションサーバによってホストされたアプリケーションは、コンポーネントベースのものである。コンポーネントは、ある機能または1組の機能をカプセル化するソフトウェアオブジェクトであり、別のコンポーネントと対話するように設計されている。コンポーネントは、明確に定義されたインターフェースを有し、あるアーキテクチャ内の全てのコンポーネントに共通した規定された作用に従う。多数のコンポーネントを集めて、別のコンポーネントを形成することができる。大型ソフトウェアシステムは、既存のソフトウェアコンポーネントを統合することによって構築されることができる。したがつて、コンポーネントベースのアプリケーションは、あるアーキテクチャ内の全てのコンポーネントに共通する規定された機能に従う1以上のコンポーネントからなるソフトウェアである。
典型的に、APIは、このようなコンポーネントベースの機能を構築する開発者用のインターフェースを規定する。したがって、典型的にアプリケーションコンポーネントが上述されたようにシステムリソース210にアクセスする。それ故、高い抽象化レベルにおいて、アプリケーションサーバは、それが実施する1組の機能に関して、サーバがホストするアプリケーションの実行をサポートすると考えられてもよい。
アプリケーションサーバ上において、通常APIを介して提供される非常に重要な機能は、トランザクションに対するサポートである。あるトランザクションは、データベース管理システムまたは類似したリソースとの相互関係の単位である。それは、別のトランザクションとは無関係に一致して高い信頼性により扱われなければならない。あるトランザクションは、全体として成功または失敗しなければならない作業の最小単位にグループ化される1以上のソフトウェア問合せまたは命令から構成されている。トランザクションを管理しているとき、あるアプリケーションによりリクエストされたあるトランザクションによって更新された全てのリソースが常に一致した状態のままにされていることを確実にすることが重要である。とくに、あるユーザにより行われたあるトランザクション内の全ての変更は、同時に実行している別のユーザにより行われた変更から隔離されなければならない。
多くのアプリケーションコンポーネントおよびシステムリソース210がトランザクションに関係している可能性があるため、トランザクションが発生したときにその状態を設定し、維持することが重要である。この情報は通常トランザクションコンテキスト中に保存されている。トランザクションコンテキストは、リソース上のトランザクション動作または機能とその動作を呼出したコンポーネントとの間の関連である。
あるトランザクションコンテキスト内で実行することのできるコンポーネントベースのアプリケーションにとくに効果的なランタイム環境を提供するアプリケーションサーバのいくつかの例には、サーブレットエンジン、J2EEサーバ、およびJAIN SLEEサーバが含まれる。
1実施形態において、本発明のアプリケーションサーバは、JAIN SLEE(サービス論理実行環境)API仕様に従うAPIからの機能に影響を与える。この仕様は、ベンダー装置および種々のタイプのネットワークに対して可搬性であり、標準化され、それによって多くの開発者は専門知識をそれ程必要とせずに所定の専用装置セットを使用するサーバを構築することが可能となる。JAIN SLEE APIはとくに統合されたネットワークに適しており、また、とくに通信ネットワークサービスに適している。
JAIN SLEE仕様は本発明に好ましいが、任意のAPI仕様、とくに、異なったタイプのネットワークへのインターフェースを提供するものは種々のプロトコルへの簡単化されたアクセスを可能にし、ベンダー装置に対して可搬性であり、本発明のAPIに対する適切な基礎となる。同様に、JAVAプログラミング言語は本発明の開発に対して好ましい言語であるが、同じレベルの移植可能性を提供する任意のプログラミング言語が等しく適切である。
本発明のアプリケーションサーバ230は、故障許容性でなければならないことも想定される。故障許容性とは、サーバ上のある場所で故障が発生した場合でもそのサーバがクライアントリクエストを処理し続けることができるということである。故障許容性は、クラスタ化として知られているものにより達成されることが多い。
クラスタは本質的に、各インスタンスが別々にアドレス指定可能である1以上のアプリケーションサーバインスタンス(図2に示されている)のグループである。各インスタンスはノードと呼ばれ、1以上のプロセスとして具体化されてもよい。あるアプリケーションサーバクラスタは、あるネットワーク上の1以上の計算リソースまたはマシン上に配置されてもよい。
サーバノードは典型的にバックボーンによって接続され、分散形アプリケーションサーバを生成する。クラスタのノードはこのバックボーンを介してメッセージを互いに送ることによって通信する。1つのノード上に存在する状態および機能情報は、そのクラスタの中の残っているノードの少なくとも1つにおいて複製される。この冗長性により、クライアントはアプリケーションサーバシステムの故障から保護される。アプリケーションサーバリソースはクラスタのノードを横切って分配されているので、1つのノードが故障した場合、理論上、別のノードがクライアントリクエストの処理を引き継いで終了することができる。これは、フェイルオーバー(failover)として知られている。
しかしながら、現在のクラスタ化されたアプリケーションサーバは典型的に、クラスタ中の1つのノードがそのクラスタ上で連係(coordinating)作業を担うマスター/スレーブ構成を有している。あるマスター/スレーブ構成においては、マスターノードが故障した場合、フェイルオーバーを行うことははるかに困難である。同じことは、いくつかのノードが、その構成内の別のノードが有しない特別の機能または特定のリソースへのアクセスを有しているクラスタ構成にも該当する。このシナリオでは、重大な機能を有するノードが故障した場合、フェイルオーバーは事実上不可能である。
比較すると、本発明のクラスタ構成はマスター/スレーブ構成ではなく、ピア構成である。図3には、本発明による好ましいクラスタのピア構成が示されている。クラスタは、310、320、330および40でそれぞれ示された2以上のアプリケーションサーバノードを含んでいる。各ノードは、構造が図2のアプリケーションサーバに類似していることが好ましい。
本発明のピア構成において、各ノードは他のあらゆるノードと同じ機能セットを提供することができ、特別な役割を有するノードは存在しない。このようにして、ノードがクラスタ上で機能している限り、どのような単一の故障地点でも除去され、フェイルオーバーが保証されることができる。
本発明のクラスタサーバノードは、1以上のメッセージ流、たとえば、350によって対話する。好ましい形態のメッセージ流は、このネットワーク中のノードによって発生され、それらを通って伝播されたメッセージを含んでいる。あるノードはメッセージをメッセージ流から受取り、また、メッセージ流の中にメッセージを置くことができる。特定の流れと関連付けられているノードは、その流れのメンバーであると言われる。
メッセージ流上のあるメッセージは一般に、発生した重要な出来事(事象)に関係している。ある事象は通常、アプリケーションサーバによって完了されなければならないタスクを示している。
サーバのアクティビティは、事象によってドライブされる。あるアクティビティは一般に、事象のある関連した流れから構成されている。たとえば、通信アプリケーションサーバ上では、ボイスメールにアクセスするためにあるアクティビティが呼出されてもよい。ボイスメールシステムへのユーザアクセスを可能にするプロセスは非常に多くの事象を伴ない、これら事象は全て、その特定のセッションにおけるその特定のユーザのボイスメールアクセスのアクティビティに関連している。
分散形サーバ上において、受取られた全ての事象は、処理のために経路指定されなければならない。典型的に、本発明のアプリケーションサーバ内の全てのノードのサブセットだけが特定の事象の処理を担当させられる。クラスタ内のサーバノードのこのサブセットは、それ自身のメッセージ流によって対話する。
図4は、ノード1、ノード2、ノード3、ノード4およびノード5の5個のノードから構成されたクラスタ400を示している。図4に示されているアプリケーションサーバにおいて、1つのメッセージ流410は全てのノード1乃至5と関連付けられている。クラスタはさらに、ノードのサブセットだけが関連付けられている4つのメッセージ流、すなわち、符号420、430、440および450でそれぞれ示されているメッセージ流A、メッセージ流B、メッセージ流Cおよびメッセージ流Dを含んでいる。
ノード1および2は共にメッセージ流Aのメンバーであり、これと関連付けられている。ノード1、4および5は全てメッセージ流Bのメンバーである。ノード2、3および4はメッセージ流Cのメンバーであり、一方ノード3および5はメッセージ流Dのメンバーである。
典型的に、特定のアクティビティに関連した全ての事象メッセージが同じメッセージ流で送られ、したがってそのサーバクラスタ上の同じノードのサブセットによって処理される。それ故、特定のメッセージ流と関連付けられ、したがってその特定のアクティビティを処理している全てのノードに対してアクティビティコンテキストが伝播される。
本発明のアプリケーションサーバにおいて、各メッセージ流上のメッセージは常にそのメッセージ流上の各ノードに特定の“順序”で配信される。メッセージ流のメンバーである各ノードは、ノードの1つが故障していない限り、あらゆる事象をその同じ順序で受取る。これは、たとえば、図4中のノード1がメッセージ1、メッセージ2およびメッセージ3をメッセージ流A上におけるその順序で受取った場合に、ノード2はメッセージ1を受取り、続いてメッセージ2を受取り、その後メッセージ3を受取ることを意味する。メッセージ流Aと関連した任意の他のノードが存在しているならば、それらもまたメッセージ1、メッセージ2およびメッセージ3をその順序で受取る。あるメッセージ流のメンバーである全てのノードによる同じ順序でのメッセージのこの保証された配信を、順序付けられたメッセージ配信と呼ぶことができる。
本発明のアプリケーションサーバにおいて、ストリームメンバーシップ変更メッセージと呼ばれる特別なタイプのメッセージが存在する。このメッセージは、その他任意のメッセージと同様に、そのメッセージ流と関連付けられたあらゆるノードによりメッセージ順序の一部として受取られる。メンバーシップ変更メッセージの内容は、あるメッセージ流と関連したノードはいずれの新しいメンバーノード、およびもはやそのメッセージ流のメンバーではないいずれのノードについて知っていることが可能であるというものである。
本発明のアプリケーションサーバにおいて、クラスタおよび分散形アプリケーションサーバ内の各ノードは、クラスタメンバーシップメッセージ流410と呼ばれる特別なメッセージ流のメンバーであることが好ましい。したがって、特定メッセージ流のメンバーシップは、特別なクラスタメンバーシップメッセージ流のメンバーシップのサブセットである。
別のメッセージ流の任意のもののメンバーシップの変更は、特別なクラスタメンバーシップメッセージ流410のメンバーシップの変更によってドライブされる。したがって、新しいノードがクラスタに追加され、それ故クラスタメンバーシップメッセージ流410のメンバーになる場合、新しいクラスタノードはまた、別のメッセージ流の1以上のものに割当てられたメンバーシップである可能性がある。同様に、クラスタ上のあるノードが故障しているか、あるいはそのクラスタから除去された場合、そのノードはそれ故、もはやそのクラスタのメンバーシップメッセージ流のメンバーではない。この場合、このノードが関連付けられていたその他全てのメッセージ流におけるそのノードのメンバーシップもまた終了する。
単一のノードはクラスタメンバーシップ流310に付加される他の2以上のメッセージ流のメンバーであってもよいが、どのようなノードの故障でも、そのノードがメンバーであるこれらのメッセージ流(クラスタメンバーシップ流以外の)だけに影響を与える。別の流れ(クラスタメンバーシップ流以外の)は、影響を受けない。クラスタ中における、したがってメッセージ流中における全てのメンバーは同等なもの(peer)なので、ノードとメッセージ流との関連付けおよびメッセージ流からのノードの削除を動的に行うことは比較的簡単である。
上述された構成により、本発明の分散形アプリケーションサーバは、メッセージ流の中のメッセージの完全性を保存しながら、構成中のメンバーの故障を検出すると共に動的に再構成されることができる。
図5は、本発明による上述されたアプリケーションサーバノード上のローカル機能510とアプリケーションサーバ上の分散された機能520とメッセージ流530、540、550および560との間の関係を示している。
各ノード、たとえば、ノード570は、アプリケーションサーバクラスタ中のあらゆる他のノードと同じであり、同じ機能セットを提供することが好ましく、あるノード上で利用可能な機能は典型的に1以上のソフトウェアコンポーネントから構成されている。たとえば、アプリケーションサーバ中の各ノードは同じローカル機能セットを含んでいることができる。
ローカル機能510は、任意の他のノードと協力することなしにクラスタノードの単一のものの上で開始され、終了されることのできる機能である。
本発明のアプリケーションサーバにおいて、ローカル機能は、決定性アルゴリズムを使用して実施されることが好ましい。それは、そのアルゴリズムによってなされたどの決定においてもランダム化(randomization)は使用されないアルゴリズムである。決定性アルゴリズムは、それらが同じ入力によりアルゴリズムが常に同じ結果を生じることを保証するため、本発明に対してとくに好ましい。ある機能を特定の入力に基づいて行うあらゆるノードは、同じ機能を同じ入力に基づいて行う他のあらゆるノードと同じ出力を生成することが重要である。
分散された機能520は、所望の結果を生成するためにメッセージ流の少なくとも1つのものにおけるノードの間の協力を必要とする機能である。
図6に示されているように、分散された機能600は通常、2つの部分から構成されている。第1の部分は、少なくとも1つのサーバノード上で実施される少なくとも1つのローカル機能610であり、これは、たとえば、620、630および640等の1以上の順序付けられたメッセージ流上の事象メッセージと関連しており、これによってドライブされる。分散された機能の第2の部分は、事象が受取られ、送信されることのできる1以上のメッセージ流との1組の関連650である。
メッセージ流で受取られた事象は、ローカル機能への入力を構成する。同じ分散された機能をサポートする全てのノードは、必要とされる同じメッセージ流のメンバーである。したがって、各ノード上のローカル(決定性)機能は、調整のための付加的なメッセージ交換なしで同じアクションを同じ順序で行う。
調整のための付加的なメッセージ交換は必要とされないので、ローカル機能の決定性アルゴリズムは実質的にノード相互関係メカニズムから分離される。このようにして、分散された機能(ローカル機能)の実際の実施は、メッセージ流上のノードの間の相互関係から完全に分離されることができる。
上述したように、メンバーシップ変更メッセージは、あるメッセージ流のメンバーである全てのノードに対してそのメッセージ順序の一部として配信される。メンバーシップ変更メッセージの内容は、分散された機能(ローカル機能)の実施をすることにより、メンバーシップが変更したときに付加的なメッセージ交換を必要とせずにそのメッセージ流のメンバーである全てのノード間で一致したアクションがとられる、というものである。
本発明の分散形アプリケーションサーバの分散された機能の一例は、事象処理のためのノードの選択である。サーバ上の受取られた全ての事象は処理のために経路指定されなければならない。事象は、サーバクラスタ上の作業負荷のバランスが実効的に取られるようにして経路指定される必要がある。
負荷平衡は、応答時間および、またはスループットを改善するために作業負荷が2以上のサーバノードに対して分配される予め規定された手順を一般に示す用語である。実効負荷平衡は、分散形サーバのスケーラビリティの改善に対して重要である。
図7は、本発明の分散形サーバ内において事象を経路指定することに関与する構成要素のいくつかを、図4の例示的なクラスタからの2つのノード(ノード1および5)の視点から示している。
ノードが事象を受取ったとき、その事象を取り扱うためにあるメッセージ流が選択されなければならない。その後、この事象は選択されたメッセージ流に委任され、処理される。
たとえば、ノード1がある事象を受取った場合、ローカル事象プロセッサ機能はその事象をどこに経路指定すべきかを決定するが、しかしそれらは、メッセージ流関連への参照なしにこれを行うことはできない。
たとえば、ノード1がある事象を受取った場合、このノード1上のローカル事象プロセッサ機能は、メッセージ流関連を参照する。これは、ノード1がメッセージ流AおよびBのメンバーであることを明らかにし、それはまた、他のどのノードがそのメッセージ流のメンバーであるかに関する情報を提供する。さらに、各ノードは、それがメンバーである各メッセージ流に対する負荷のローカル推定値を維持する。この推定値は、これまで受取られて処理された事象の履歴から得られる。
したがって、関連データにより、事象処理および負荷平衡に対するルールを定めるローカル事象プロセッサ機能は、その事象が経路指定されるべきメッセージ流を決定することが可能になる。たとえば、ローカル事象プロセッサ機能は、難しい負荷平衡を実施することができる。その後、事象メッセージは選択されたメッセージ流のメンバーに送信される。このようにして、分散された事象経路指定および負荷平衡機能が行われる。
本発明の分散形アプリケーションサーバ上で実施される分散された機能の別の例は、コンポーネント状態(ホストされたアプリケーションコンポーネントの状態)の複製(replication)、事象処理成功/失敗の調整、フィードバックベースの事象レート制限、およびこのアプリケーションサーバ内の全てのノードにわたる管理動作の調整である。
上記は、好ましい形態を含む本発明を説明したものである。当業者に明らかになるであろう変更および修正は、添付された請求の範囲によって規定された本発明の技術的範囲内に含まれるものである。
従来技術のアプリケーションサーバの簡単な例を示す概略図。 単一のアプリケーションサーバに対する好ましいアーキテクチャを示す概略図。 本発明によるピア構成のクラスタベースの分散形アプリケーションサーバの概略図。 ノードが1以上のメッセージ流と関連付けられた本発明によるクラスタベースの分散形アプリケーションサーバの概略図。 本発明によるアプリケーションサーバノード上のローカル機能と分散された機能とメッセージ流との間の関係を示す概略図。 本発明において実施されたときの分散された機能の構成を示す概略図。 図4の分散形サーバ内における事象の経路指定に含まれるいくつかの構成要素を示す概略図。

Claims (13)

  1. ピア構成の2以上のノードのクラスタを含んでおり、その2以上のノードは複数のメッセージを含む少なくとも1つのメッセージ流と関連付けられ、その複数のメッセージは関連付けられたノードを通って伝播される分散形アプリケーションサーバ。
  2. アプリケーションサーバ内の各ノードは、クラスタメンバーシップメッセージ流と関連付けられている請求項1記載の分散形アプリケーションサーバ。
  3. 特定のメッセージ流上のメッセージは、そのメッセージ流と関連付けられた各ノードに定められた順序で配信される請求項1または2記載の分散形アプリケーションサーバ。
  4. ノードがアプリケーションサーバに動的に追加されることを可能にするように構成されている請求項1乃至3のいずれか1項記載の分散形アプリケーションサーバ。
  5. ノードがアプリケーションサーバから動的に除去されることを可能にするように構成されている請求項1乃至4のいずれか1項記載の分散形アプリケーションサーバ。
  6. メッセージ流メンバーシップの変更を示すメッセージは、メッセージ順序の一部として配信される請求項3乃至5のいずれか1項記載の分散形アプリケーションサーバ。
  7. アプリケーションサーバ内のノードは、あるローカル機能のセットを含んでいる請求項1乃至6のいずれか1項記載の分散形アプリケーションサーバ。
  8. アプリケーションサーバ内の各ノードは、同じローカル機能のセットを含んでいる請求項7記載の分散形アプリケーションサーバ。
  9. さらに、1以上のローカル決定性機能として実施される分散された機能と、関連したメッセージ流のセットとを含んでいる請求項7または8記載の分散形アプリケーションサーバ。
  10. 決定性ローカル機能は実質的に、メッセージ流上のノード間の相互作用から隔離されている請求項9記載の分散形アプリケーションサーバ。
  11. 2以上のノードのクラスタをピア構成に配置し、
    ノードを少なくとも1つのメッセージ流と関連付けるステップを含んでいる分散形アプリケーションサーバを構成する方法。
  12. メッセージを特定のメッセージ流で、そのメッセージ流と関連付けられた各ノードに定められた順序で配信するステップをさらに含んでいる請求項11記載の分散形アプリケーションサーバを構成する方法。
  13. メッセージ流メンバーシップの変更を示すメッセージを、そのメッセージ順序の一部として配信するステップをさらに含んでいる請求項12記載の分散形アプリケーションサーバを構成する方法。
JP2004500196A 2002-04-24 2003-04-24 分散型アプリケーションサーバおよび分散された機能を実施する方法 Expired - Lifetime JP4422606B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NZ518575A NZ518575A (en) 2002-04-24 2002-04-24 Distributed application server using a peer configuration
PCT/NZ2003/000071 WO2003091892A1 (en) 2002-04-24 2003-04-24 Distributed application server and method for implementing distributed functions

Publications (3)

Publication Number Publication Date
JP2005524147A true JP2005524147A (ja) 2005-08-11
JP2005524147A5 JP2005524147A5 (ja) 2006-06-15
JP4422606B2 JP4422606B2 (ja) 2010-02-24

Family

ID=29268118

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004500196A Expired - Lifetime JP4422606B2 (ja) 2002-04-24 2003-04-24 分散型アプリケーションサーバおよび分散された機能を実施する方法

Country Status (6)

Country Link
US (1) US7519652B2 (ja)
EP (2) EP1497737A4 (ja)
JP (1) JP4422606B2 (ja)
AU (1) AU2003222530A1 (ja)
NZ (1) NZ518575A (ja)
WO (1) WO2003091892A1 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7562154B2 (en) * 2003-06-30 2009-07-14 International Business Machines Corporation System and method for filtering stale messages resulting from membership changes in a distributed computing environment
US20060064400A1 (en) 2004-09-21 2006-03-23 Oracle International Corporation, A California Corporation Methods, systems and software for identifying and managing database work
US7747717B2 (en) * 2003-08-14 2010-06-29 Oracle International Corporation Fast application notification in a clustered computing system
US7664847B2 (en) * 2003-08-14 2010-02-16 Oracle International Corporation Managing workload by service
CN1302412C (zh) * 2003-11-11 2007-02-28 联想(北京)有限公司 一种计算机机群系统及其作业管理方法
US20050108593A1 (en) * 2003-11-14 2005-05-19 Dell Products L.P. Cluster failover from physical node to virtual node
US8983966B2 (en) * 2004-02-27 2015-03-17 Ebay Inc. Method and system to monitor a diverse heterogeneous application environment
US8332479B2 (en) * 2005-08-26 2012-12-11 Hewlett-Packard Development Company, L.P. Enterprise application server system and method
US8275602B2 (en) * 2006-04-21 2012-09-25 Scomm, Inc. Interactive conversational speech communicator method and system
US8615550B2 (en) * 2006-05-31 2013-12-24 Red Hat, Inc. Client-side data scraping for open overlay for social networks and online services
US7792903B2 (en) 2006-05-31 2010-09-07 Red Hat, Inc. Identity management for open overlay for social networks and online services
US8185584B2 (en) * 2006-05-31 2012-05-22 Red Hat, Inc. Activity history management for open overlay for social networks and online services
US8612483B2 (en) * 2006-05-31 2013-12-17 Red Hat, Inc. Link swarming in an open overlay for social networks and online services
US8688742B2 (en) 2006-05-31 2014-04-01 Red Hat, Inc. Open overlay for social networks and online services
US9165282B2 (en) * 2006-05-31 2015-10-20 Red Hat, Inc. Shared playlist management for open overlay for social networks and online services
US8082289B2 (en) 2006-06-13 2011-12-20 Advanced Cluster Systems, Inc. Cluster computing support for application programs
US8943210B2 (en) * 2006-11-30 2015-01-27 Red Hat, Inc. Mastering music played among a plurality of users
US8463893B2 (en) * 2006-11-30 2013-06-11 Red Hat, Inc. Automatic playlist generation in correlation with local events
US8832277B2 (en) * 2006-11-30 2014-09-09 Red Hat, Inc. Community tagging of a multimedia stream and linking to related content
US8812582B2 (en) * 2006-11-30 2014-08-19 Red Hat, Inc. Automated screen saver with shared media
US9021045B2 (en) * 2006-11-30 2015-04-28 Red Hat, Inc. Sharing images in a social network
US8091032B2 (en) * 2006-11-30 2012-01-03 Red Hat, Inc. Automatic generation of content recommendations weighted by social network context
US9405827B2 (en) * 2006-11-30 2016-08-02 Red Hat, Inc. Playlist generation of content gathered from multiple sources
US8060827B2 (en) 2006-11-30 2011-11-15 Red Hat, Inc. Method and system for preloading suggested content onto digital video recorder based on social recommendations
US20080133475A1 (en) * 2006-11-30 2008-06-05 Donald Fischer Identification of interesting content based on observation of passive user interaction
US8176191B2 (en) 2006-11-30 2012-05-08 Red Hat, Inc. Automated identification of high/low value content based on social feedback
US8713186B2 (en) * 2007-03-13 2014-04-29 Oracle International Corporation Server-side connection resource pooling
US8885832B2 (en) * 2007-03-30 2014-11-11 Ricoh Company, Ltd. Secure peer-to-peer distribution of an updatable keyring
US8046328B2 (en) * 2007-03-30 2011-10-25 Ricoh Company, Ltd. Secure pre-caching through local superdistribution and key exchange
US20080288937A1 (en) * 2007-05-15 2008-11-20 International Business Machines Corporation Enabling software service in a hosted environment
US20110119369A1 (en) * 2009-11-13 2011-05-19 International Business Machines,Corporation Monitoring computer system performance
US8280954B2 (en) * 2010-03-25 2012-10-02 Scomm, Inc. Method and system for providing live real-time communication via text between mobile user devices
TWI421677B (zh) * 2010-12-01 2014-01-01 Inventec Corp 伺服器集群的事務處理方法
US8949594B2 (en) * 2013-03-12 2015-02-03 Silver Spring Networks, Inc. System and method for enabling a scalable public-key infrastructure on a smart grid network
US9300712B2 (en) 2014-08-01 2016-03-29 Pivotal Software, Inc. Stream processing with context data affinity
US10652322B2 (en) * 2015-03-09 2020-05-12 International Business Machines Corporation Scalable parallel messaging process
KR101799835B1 (ko) 2016-07-04 2017-12-20 동국대학교 산학협력단 클라우드 기반의 동적 작업 관리 시스템 및 방법
US10474653B2 (en) 2016-09-30 2019-11-12 Oracle International Corporation Flexible in-memory column store placement
US11151032B1 (en) * 2020-12-14 2021-10-19 Coupang Corp. System and method for local cache synchronization

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4689815A (en) * 1985-08-23 1987-08-25 American Telephone And Telegraph Company, At&T Bell Laboratories Controlling multi-port hunt groups in a distributed control switching system
US4924384A (en) * 1988-09-21 1990-05-08 International Business Machines Corporation Method for controlling the peer-to-peer processing of a distributed application across a synchronous request/response interface using push-down stack automata
US5341374A (en) * 1991-03-01 1994-08-23 Trilan Systems Corporation Communication network integrating voice data and video with distributed call processing
WO1998003910A1 (en) * 1996-07-24 1998-01-29 Hewlett-Packard Company Ordered message reception in a distributed data processing system
US5949977A (en) * 1996-10-08 1999-09-07 Aubeta Technology, Llc Method and apparatus for requesting and processing services from a plurality of nodes connected via common communication links
US6715100B1 (en) * 1996-11-01 2004-03-30 Ivan Chung-Shung Hwang Method and apparatus for implementing a workgroup server array
US6108699A (en) * 1997-06-27 2000-08-22 Sun Microsystems, Inc. System and method for modifying membership in a clustered distributed computer system and updating system configuration
US6898791B1 (en) * 1998-04-21 2005-05-24 California Institute Of Technology Infospheres distributed object system
US6192417B1 (en) * 1999-03-30 2001-02-20 International Business Machines Corporation Multicast cluster servicer for communicating amongst a plurality of nodes without a dedicated local area network
WO2001040903A2 (en) 1999-12-06 2001-06-07 Warp Solutions, Inc. System and method for enhancing operation of a web server cluster
US6490586B1 (en) * 1999-12-27 2002-12-03 International Business Machines Corporation Ordered sub-group messaging in a group communications system
US6751573B1 (en) 2000-01-10 2004-06-15 Agilent Technologies, Inc. Performance monitoring in distributed systems using synchronized clocks and distributed event logs
US20020032754A1 (en) * 2000-04-05 2002-03-14 Gary Logston Method and apparatus for profiling in a distributed application environment
US7221660B1 (en) * 2000-08-08 2007-05-22 E.F. Johnson Company System and method for multicast communications using real time transport protocol (RTP)
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform

Also Published As

Publication number Publication date
EP1497737A1 (en) 2005-01-19
WO2003091892A1 (en) 2003-11-06
NZ518575A (en) 2004-08-27
US7519652B2 (en) 2009-04-14
US20060195525A1 (en) 2006-08-31
EP2843565A1 (en) 2015-03-04
AU2003222530A1 (en) 2003-11-10
EP1497737A4 (en) 2011-01-12
JP4422606B2 (ja) 2010-02-24

Similar Documents

Publication Publication Date Title
JP4422606B2 (ja) 分散型アプリケーションサーバおよび分散された機能を実施する方法
US11853748B2 (en) Methods and systems that share resources among multiple, interdependent release pipelines
US8788565B2 (en) Dynamic and distributed queueing and processing system
US11388123B2 (en) Method and system for providing resiliency in interaction servicing across data centers
CN114787781B (zh) 用于启用高可用性受管理故障转移服务的系统和方法
US8453163B2 (en) Systems and/or methods for policy-based JMS broker clustering
US7260818B1 (en) System and method for managing software version upgrades in a networked computer system
US7185096B2 (en) System and method for cluster-sensitive sticky load balancing
US7870419B2 (en) Subscription-based management and distribution of member-specific state data in a distributed computing system
US20080140760A1 (en) Service-oriented architecture system and methods supporting dynamic service provider versioning
US20080140857A1 (en) Service-oriented architecture and methods for direct invocation of services utilizing a service requestor invocation framework
JP4588704B2 (ja) 自己管理仲介情報フロー
EP2815346B1 (en) Coordination of processes in cloud computing environments
US20060195448A1 (en) Application of resource-dependent policies to managed resources in a distributed computing system
EP1210662A2 (en) System and method for enabling application server request failover
US9848060B2 (en) Combining disparate applications into a single workload group
CN115115329A (zh) 一种面向智能生产线的制造中间件及云制造架构
US10637918B2 (en) Load balancing content delivery servers
Mohamed et al. MidCloud: an agent‐based middleware for effective utilization of replicated Cloud services
CN111274018A (zh) 一种基于dl框架下的分布式训练方法
US10587725B2 (en) Enabling a traditional language platform to participate in a Java enterprise computing environment
US20020174259A1 (en) Distributable multi-daemon configuration for multi-system management
US20090094314A1 (en) Reroute of a web service in a web based application
Jun et al. A Subscription-based Monitoring Model for Distributed Object Systems
Wendel et al. Designing a Java-based grid scheduler using commodity services, in ‘

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060420

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080513

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080806

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080813

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080916

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080924

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081014

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081021

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091005

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091104

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

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

Free format text: PAYMENT UNTIL: 20121211

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4422606

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121211

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131211

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

SG99 Written request for registration of restore

Free format text: JAPANESE INTERMEDIATE CODE: R316G99

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D12

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term