JP4422606B2 - 分散型アプリケーションサーバおよび分散された機能を実施する方法 - Google Patents
分散型アプリケーションサーバおよび分散された機能を実施する方法 Download PDFInfo
- Publication number
- JP4422606B2 JP4422606B2 JP2004500196A JP2004500196A JP4422606B2 JP 4422606 B2 JP4422606 B2 JP 4422606B2 JP 2004500196 A JP2004500196 A JP 2004500196A JP 2004500196 A JP2004500196 A JP 2004500196A JP 4422606 B2 JP4422606 B2 JP 4422606B2
- Authority
- JP
- Japan
- Prior art keywords
- nodes
- cluster
- message
- application server
- membership
- 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 - Lifetime
Links
- 230000006870 function Effects 0.000 title claims description 65
- 238000000034 method Methods 0.000 title claims description 17
- 238000012545 processing Methods 0.000 claims description 12
- 230000000694 effects Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 6
- 230000000644 propagated effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5033—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
Description
【0001】
本発明は、アプリケーションサーバに関し、特に、統合されたネットワーク内での使用に適した故障許容性の分散型アプリケーションサーバ、および分散型アプリケーションサーバがサポートする種々の機能を実施する方法に関する。
【0002】
広い見地から、アプリケーションサーバは、アプリケーションにランタイム環境を提供する情報システムである。
【0003】
一般的に述べると、アプリケーションサーバによってホストされたアプリケーションは、ある組織体のデータベースサーバおよび、またはバックと、企業アプリケーションと、これらのリソースへのアクセスを所望した任意のエンドユーザまたはクライアントとの間のトランザクションを取り扱う。
【0004】
図1は、1以上のクライアント110がアプリケーションサーバ130を介して中央計算リソース120にアクセスすることのできる簡単化されたシナリオを示している。クライアントは、たとえば、適切なオペレーティングシステムおよびアプリケーションソフトウェア下で動作しているワークステーションであってもよい。クライアントは、アプリケーションサーバに、たとえば、オブジェクトデータベース120A、関連データベース120B、または外部アプリケーション120C等の、1以上のリソースにアクセスするように要求してもよい。このタイプの構成は、何人かの従業員が彼等のワークステーションからアクセスする必要がある集中リソースを備えた小規模な企業に対して満足できるものかもしれない。
【特許文献1】
米国特許第 6,108,699号
【特許文献2】
米国特許第 6,327,630号
【特許文献3】
国際特許出願第 WO 01/40903号
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、今日の環境において、とくに、インターネットの人気とその他の多数の無線および通信ネットワークの成長により、アプリケーションサーバを介して伝統的なWAN、無線ネットワークおよび有線ネットワークによってサービスを消費者に提供する組織体がますます増加している。これらのサービスは、たとえば、インターネットによる、あるいはクライアントの自宅電話から移動電話またはボイスメールアクセスへの通信サービス呼転送サービスでの専用データベースへのアクセスを含むことができる。このようなサービスの消費者がインターネット、無線および有線ネットワークの特徴を統合した新しいサービスに対して高い需要を生んでいる。アプリケーションサーバテクノロジーは、これら消費者の需要に遅れをとらないようにするためにますます複雑になってきている。
【0006】
アプリケーションサーバに関する大きな問題は、非常に利用し易く、高度にスケーラブルであり、故障許容性があることと、クライアントおよび顧客向けの次世代サービスの迅速な開発を容易にすることである。高度にスケーラブルで故障許容性があり、可搬性で規格化されたものであり、また、統合されたネットワークにおけるサービス提供に適した分散形アプリケーションサーバを有することが有用であろう。
【課題を解決するための手段】
【0007】
本発明は1つの形態において、分散型アプリケーションサーバを含む故障許容性のコンピュータシステムを提供し、そのシステムは、ピア構成すなわち同等の構成の2以上のアプリケーションサーバノードのクラスタを含んでおり、その2以上のアプリケーションサーバノードは1以上のコンピュータ装置に配置されており、クラスタ中には単一の故障地点は存在せず、メンバーシップとして各ノードを有しているクラスタメンバーシップメッセージ流と、メンバーとして1以上のノードを有している1以上の付加的なメッセージ流とを有し、各ノードは、クラスタに結合されるノードおよびクラスタから除外されるノードとしてメッセージ流メンバーシップ中の変化を示すメッセージ流におけるメッセージを受取ることによりメンバーである各メッセージ流のメンバーシップを連続的に継続して観察し、クラスタメンバーシップメッセージ流と1以上の付加的なメッセージ流とはそれぞれ関連するノードを通って伝搬する複数のメッセージ流を含み、アプリケーションサーバは1組のメッセージ流と関連しているローカル機能をそのアプリケーションサーバのノードにおいて決定されたローカル機能のセットとして複数の分散された機能を実行し、各ノードは他のノードと同じ機能のセットを提供し、クラスタによる事象の受信において、クラスタは個々のノードと関連する分散された機能を使用して事象を処理するように構成されていることを特徴とする。
【0008】
本発明は形態の形態において、故障許容性の分散型アプリケーションサーバを構成する方法を提供し、その方法は、2以上のアプリケーションサーバノードのクラスタを同等の構成であるピア構成で形成し、アプリケーションサーバノードは1以上のコンピュータ装置に配置されており、クラスタメンバーシップメッセージ流のメンバーシップを各ノードに割当て、1以上の付加的なメッセージ流のメンバーシップを1以上のノードに割当て、アプリケーションサーバにおいてノード中の動的なローカル機能のセットとして複数の分散された機能を実行し、そのローカル機能は1組のメッセージ流と関連しており、クラスタ中の各ピアノードにおける同じ機能のセットを実行することにより任意の単一地点の故障を消去し、個々のノードに関連する複数の分散された機能を使用することによりクラスタにより受信された事象を処理するステップを含んでおり、クラスタメンバーシップメッセージ流と1以上の付加的なメッセージ流とはそれぞれ関連するノードを通って伝搬することを特徴とする。
【0009】
以下、添付図面を参照として分散された機能を実施する分散形アプリケーションサーバおよび方法の好ましい形態を説明する。
アプリケーションサーバは、インテリジェントアプライアンスまたは遠隔埋込み型装置用の小さいフットプリントのウェブベースプロセッサから、1つの企業を越えてスケール可能な多層アプリケーションをアセンブルし、配置し、維持する完全な環境に及んでいる。
【0010】
個々のアプリケーションサーバは、本発明の構築ブロックである。ほとんどの任意の適切なタイプのアプリケーションサーバが本発明の基礎として機能することが可能であると予想される。
【0011】
図2には、典型的な単一のアプリケーションサーバを簡単に表したものが一例として示されている。このアプリケーションサーバによってクライアントにアクセス可能なリソースは、たとえば、関連データベース210A、インメモリデータベース210B、メッセージ待ち行列210C、またはスイッチ210D等の、1以上のトランザクションおよび非トランザクションリソース210を含んでいてもよい。特定のリソース210はサーバごとに異なっている。
【0012】
ソフトウェアに関しては、アプリケーションサーバは、プログラマーが彼等のプログラムの中のビジネスロジック(business logic)をプラットホーム関連コードから隔離するのを助ける1組のソフトウェアを含んでいる。アプリケーションサーバは、クライアントサーバアプリケーション中で見出されたアプリケーション論理および接続性の全てを取り扱うことができる。
【0013】
これが意味するのは、リソース210にアクセスする方法がサーバの1組のソフトウェアにおいて規定され、APIすなわちアプリケーションプログラミングインターフェースを介してアクセスされてもよいということである。APIは、そのアプリケーションプログラムを書込んだあるプログラマーがオペレーティングシステムまたはその他のシステムリソースのリクエストを形成することのできる特定の予め規定された方法に対するインターフェースを規定する。このAPIを使用することにより、プログラマーは、リソース210を含むデータベースまたはその他の継承システムのプラットホームまたは構造のどのような特性でも無視できることが多く、それは、これらの特性を処理する機能がサーバソウトウェアによって提供されるためである。
【0014】
典型的に、アプリケーションサーバによってホストされたアプリケーションは、コンポーネントベースのものである。コンポーネントは、ある機能または1組の機能をカプセル化するソフトウェアオブジェクトであり、別のコンポーネントと対話するように設計されている。コンポーネントは、明確に定義されたインターフェースを有し、あるアーキテクチャ内の全てのコンポーネントに共通した規定された作用に従う。多数のコンポーネントを集めて、別のコンポーネントを形成することができる。大型ソフトウェアシステムは、既存のソフトウェアコンポーネントを統合することによって構築されることができる。したがつて、コンポーネントベースのアプリケーションは、あるアーキテクチャ内の全てのコンポーネントに共通する規定された機能に従う1以上のコンポーネントからなるソフトウェアである。
【0015】
典型的に、APIは、このようなコンポーネントベースの機能を構築する開発者用のインターフェースを規定する。したがって、典型的にアプリケーションコンポーネントが上述されたようにシステムリソース210にアクセスする。それ故、高い抽象化レベルにおいて、アプリケーションサーバは、それが実施する1組の機能に関して、サーバがホストするアプリケーションの実行をサポートすると考えられてもよい。
【0016】
アプリケーションサーバ上において、通常APIを介して提供される非常に重要な機能は、トランザクションに対するサポートである。あるトランザクションは、データベース管理システムまたは類似したリソースとの相互関係の単位である。それは、別のトランザクションとは無関係に一致して高い信頼性により扱われなければならない。あるトランザクションは、全体として成功または失敗しなければならない作業の最小単位にグループ化される1以上のソフトウェア問合せまたは命令から構成されている。トランザクションを管理しているとき、あるアプリケーションによりリクエストされたあるトランザクションによって更新された全てのリソースが常に一致した状態のままにされていることを確実にすることが重要である。とくに、あるユーザにより行われたあるトランザクション内の全ての変更は、同時に実行している別のユーザにより行われた変更から隔離されなければならない。
【0017】
多くのアプリケーションコンポーネントおよびシステムリソース210がトランザクションに関係している可能性があるため、トランザクションが発生したときにその状態を設定し、維持することが重要である。この情報は通常トランザクションコンテキスト中に保存されている。トランザクションコンテキストは、リソース上のトランザクション動作または機能とその動作を呼出したコンポーネントとの間の関連である。
【0018】
あるトランザクションコンテキスト内で実行することのできるコンポーネントベースのアプリケーションにとくに効果的なランタイム環境を提供するアプリケーションサーバのいくつかの例には、サーブレットエンジン、J2EEサーバ、およびJAIN SLEEサーバが含まれる。
【0019】
1実施形態において、本発明のアプリケーションサーバは、JAIN SLEE(サービス論理実行環境)API仕様に従うAPIからの機能に影響を与える。この仕様は、ベンダー装置および種々のタイプのネットワークに対して可搬性であり、標準化され、それによって多くの開発者は専門知識をそれ程必要とせずに所定の専用装置セットを使用するサーバを構築することが可能となる。JAIN SLEE APIはとくに統合されたネットワークに適しており、また、とくに通信ネットワークサービスに適している。
【0020】
JAIN SLEE仕様は本発明に好ましいが、任意のAPI仕様、とくに、異なったタイプのネットワークへのインターフェースを提供するものは種々のプロトコルへの簡単化されたアクセスを可能にし、ベンダー装置に対して可搬性であり、本発明のAPIに対する適切な基礎となる。同様に、JAVAプログラミング言語は本発明の開発に対して好ましい言語であるが、同じレベルの移植可能性を提供する任意のプログラミング言語が等しく適切である。
【0021】
本発明のアプリケーションサーバ230は、故障許容性でなければならないことも想定される。故障許容性とは、サーバ上のある場所で故障が発生した場合でもそのサーバがクライアントリクエストを処理し続けることができるということである。故障許容性は、クラスタ化として知られているものにより達成されることが多い。
【0022】
クラスタは本質的に、各インスタンスが別々にアドレス指定可能である1以上のアプリケーションサーバインスタンス(図2に示されている)のグループである。各インスタンスはノードと呼ばれ、1以上のプロセスとして具体化されてもよい。あるアプリケーションサーバクラスタは、あるネットワーク上の1以上の計算リソースまたはマシン上に配置されてもよい。
【0023】
サーバノードは典型的にバックボーンによって接続され、分散形アプリケーションサーバを生成する。クラスタのノードはこのバックボーンを介してメッセージを互いに送ることによって通信する。1つのノード上に存在する状態および機能情報は、そのクラスタの中の残っているノードの少なくとも1つにおいて複製される。この冗長性により、クライアントはアプリケーションサーバシステムの故障から保護される。アプリケーションサーバリソースはクラスタのノードを横切って分配されているので、1つのノードが故障した場合、理論上、別のノードがクライアントリクエストの処理を引き継いで終了することができる。これは、フェイルオーバー(failover)として知られている。
【0024】
しかしながら、現在のクラスタ化されたアプリケーションサーバは典型的に、クラスタ中の1つのノードがそのクラスタ上で連係(coordinating)作業を担うマスター/スレーブ構成を有している。あるマスター/スレーブ構成においては、マスターノードが故障した場合、フェイルオーバーを行うことははるかに困難である。同じことは、いくつかのノードが、その構成内の別のノードが有しない特別の機能または特定のリソースへのアクセスを有しているクラスタ構成にも該当する。このシナリオでは、重大な機能を有するノードが故障した場合、フェイルオーバーは事実上不可能である。
【0025】
比較すると、本発明のクラスタ構成はマスター/スレーブ構成ではなく、ピア構成である。図3には、本発明による好ましいクラスタのピア構成が示されている。クラスタは、310、320、330および40でそれぞれ示された2以上のアプリケーションサーバノードを含んでいる。各ノードは、構造が図2のアプリケーションサーバに類似していることが好ましい。
【0026】
本発明のピア構成において、各ノードは他のあらゆるノードと同じ機能セットを提供することができ、特別な役割を有するノードは存在しない。このようにして、ノードがクラスタ上で機能している限り、どのような単一の故障地点でも除去され、フェイルオーバーが保証されることができる。
【0027】
本発明のクラスタサーバノードは、1以上のメッセージ流、たとえば、350によって対話する。好ましい形態のメッセージ流は、このネットワーク中のノードによって発生され、それらを通って伝播されたメッセージを含んでいる。あるノードはメッセージをメッセージ流から受取り、また、メッセージ流の中にメッセージを置くことができる。特定の流れと関連付けられているノードは、その流れのメンバーであると言われる。
【0028】
メッセージ流上のあるメッセージは一般に、発生した重要な出来事(事象)に関係している。ある事象は通常、アプリケーションサーバによって完了されなければならないタスクを示している。
【0029】
サーバのアクティビティは、事象によってドライブされる。あるアクティビティは一般に、事象のある関連した流れから構成されている。たとえば、通信アプリケーションサーバ上では、ボイスメールにアクセスするためにあるアクティビティが呼出されてもよい。ボイスメールシステムへのユーザアクセスを可能にするプロセスは非常に多くの事象を伴ない、これら事象は全て、その特定のセッションにおけるその特定のユーザのボイスメールアクセスのアクティビティに関連している。
【0030】
分散形サーバ上において、受取られた全ての事象は、処理のために経路指定されなければならない。典型的に、本発明のアプリケーションサーバ内の全てのノードのサブセットだけが特定の事象の処理を担当させられる。クラスタ内のサーバノードのこのサブセットは、それ自身のメッセージ流によって対話する。
【0031】
図4は、ノード1、ノード2、ノード3、ノード4およびノード5の5個のノードから構成されたクラスタ400を示している。図4に示されているアプリケーションサーバにおいて、1つのメッセージ流410は全てのノード1乃至5と関連付けられている。クラスタはさらに、ノードのサブセットだけが関連付けられている4つのメッセージ流、すなわち、符号420、430、440および450でそれぞれ示されているメッセージ流A、メッセージ流B、メッセージ流Cおよびメッセージ流Dを含んでいる。
【0032】
ノード1および2は共にメッセージ流Aのメンバーであり、これと関連付けられている。ノード1、4および5は全てメッセージ流Bのメンバーである。ノード2、3および4はメッセージ流Cのメンバーであり、一方ノード3および5はメッセージ流Dのメンバーである。
【0033】
典型的に、特定のアクティビティに関連した全ての事象メッセージが同じメッセージ流で送られ、したがってそのサーバクラスタ上の同じノードのサブセットによって処理される。それ故、特定のメッセージ流と関連付けられ、したがってその特定のアクティビティを処理している全てのノードに対してアクティビティコンテキストが伝播される。
【0034】
本発明のアプリケーションサーバにおいて、各メッセージ流上のメッセージは常にそのメッセージ流上の各ノードに特定の“順序”で配信される。メッセージ流のメンバーである各ノードは、ノードの1つが故障していない限り、あらゆる事象をその同じ順序で受取る。これは、たとえば、図4中のノード1がメッセージ1、メッセージ2およびメッセージ3をメッセージ流A上におけるその順序で受取った場合に、ノード2はメッセージ1を受取り、続いてメッセージ2を受取り、その後メッセージ3を受取ることを意味する。メッセージ流Aと関連した任意の他のノードが存在しているならば、それらもまたメッセージ1、メッセージ2およびメッセージ3をその順序で受取る。あるメッセージ流のメンバーである全てのノードによる同じ順序でのメッセージのこの保証された配信を、順序付けられたメッセージ配信と呼ぶことができる。
【0035】
本発明のアプリケーションサーバにおいて、ストリームメンバーシップ変更メッセージと呼ばれる特別なタイプのメッセージが存在する。このメッセージは、その他任意のメッセージと同様に、そのメッセージ流と関連付けられたあらゆるノードによりメッセージ順序の一部として受取られる。メンバーシップ変更メッセージの内容は、あるメッセージ流と関連したノードはいずれの新しいメンバーノード、およびもはやそのメッセージ流のメンバーではないいずれのノードについて知っていることが可能であるというものである。
【0036】
本発明のアプリケーションサーバにおいて、クラスタおよび分散形アプリケーションサーバ内の各ノードは、クラスタメンバーシップメッセージ流410と呼ばれる特別なメッセージ流のメンバーであることが好ましい。したがって、特定メッセージ流のメンバーシップは、特別なクラスタメンバーシップメッセージ流のメンバーシップのサブセットである。
【0037】
別のメッセージ流の任意のもののメンバーシップの変更は、特別なクラスタメンバーシップメッセージ流410のメンバーシップの変更によってドライブされる。したがって、新しいノードがクラスタに追加され、それ故クラスタメンバーシップメッセージ流410のメンバーになる場合、新しいクラスタノードはまた、別のメッセージ流の1以上のものに割当てられたメンバーシップである可能性がある。同様に、クラスタ上のあるノードが故障しているか、あるいはそのクラスタから除去された場合、そのノードはそれ故、もはやそのクラスタのメンバーシップメッセージ流のメンバーではない。この場合、このノードが関連付けられていたその他全てのメッセージ流におけるそのノードのメンバーシップもまた終了する。
【0038】
単一のノードはクラスタメンバーシップ流310に付加される他の2以上のメッセージ流のメンバーであってもよいが、どのようなノードの故障でも、そのノードがメンバーであるこれらのメッセージ流(クラスタメンバーシップ流以外の)だけに影響を与える。別の流れ(クラスタメンバーシップ流以外の)は、影響を受けない。クラスタ中における、したがってメッセージ流中における全てのメンバーは同等なもの(peer)なので、ノードとメッセージ流との関連付けおよびメッセージ流からのノードの削除を動的に行うことは比較的簡単である。
【0039】
上述された構成により、本発明の分散形アプリケーションサーバは、メッセージ流の中のメッセージの完全性を保存しながら、構成中のメンバーの故障を検出すると共に動的に再構成されることができる。
【0040】
図5は、本発明による上述されたアプリケーションサーバノード上のローカル機能510とアプリケーションサーバ上の分散された機能520とメッセージ流530、540、550および560との間の関係を示している。
【0041】
各ノード、たとえば、ノード570は、アプリケーションサーバクラスタ中のあらゆる他のノードと同じであり、同じ機能セットを提供することが好ましく、あるノード上で利用可能な機能は典型的に1以上のソフトウェアコンポーネントから構成されている。たとえば、アプリケーションサーバ中の各ノードは同じローカル機能セットを含んでいることができる。
【0042】
ローカル機能510は、任意の他のノードと協力することなしにクラスタノードの単一のものの上で開始され、終了されることのできる機能である。
【0043】
本発明のアプリケーションサーバにおいて、ローカル機能は、決定性アルゴリズムを使用して実施されることが好ましい。それは、そのアルゴリズムによってなされたどの決定においてもランダム化(randomization)は使用されないアルゴリズムである。決定性アルゴリズムは、それらが同じ入力によりアルゴリズムが常に同じ結果を生じることを保証するため、本発明に対してとくに好ましい。ある機能を特定の入力に基づいて行うあらゆるノードは、同じ機能を同じ入力に基づいて行う他のあらゆるノードと同じ出力を生成することが重要である。
【0044】
分散された機能520は、所望の結果を生成するためにメッセージ流の少なくとも1つのものにおけるノードの間の協力を必要とする機能である。
【0045】
図6に示されているように、分散された機能600は通常、2つの部分から構成されている。第1の部分は、少なくとも1つのサーバノード上で実施される少なくとも1つのローカル機能610であり、これは、たとえば、620、630および640等の1以上の順序付けられたメッセージ流上の事象メッセージと関連しており、これによってドライブされる。分散された機能の第2の部分は、事象が受取られ、送信されることのできる1以上のメッセージ流との1組の関連650である。
【0046】
メッセージ流で受取られた事象は、ローカル機能への入力を構成する。同じ分散された機能をサポートする全てのノードは、必要とされる同じメッセージ流のメンバーである。したがって、各ノード上のローカル(決定性)機能は、調整のための付加的なメッセージ交換なしで同じアクションを同じ順序で行う。
【0047】
調整のための付加的なメッセージ交換は必要とされないので、ローカル機能の決定性アルゴリズムは実質的にノード相互関係メカニズムから分離される。このようにして、分散された機能(ローカル機能)の実際の実施は、メッセージ流上のノードの間の相互関係から完全に分離されることができる。
【0048】
上述したように、メンバーシップ変更メッセージは、あるメッセージ流のメンバーである全てのノードに対してそのメッセージ順序の一部として配信される。メンバーシップ変更メッセージの内容は、分散された機能(ローカル機能)の実施をすることにより、メンバーシップが変更したときに付加的なメッセージ交換を必要とせずにそのメッセージ流のメンバーである全てのノード間で一致したアクションがとられる、というものである。
【0049】
本発明の分散形アプリケーションサーバの分散された機能の一例は、事象処理のためのノードの選択である。サーバ上の受取られた全ての事象は処理のために経路指定されなければならない。事象は、サーバクラスタ上の作業負荷のバランスが実効的に取られるようにして経路指定される必要がある。
【0050】
負荷平衡は、応答時間および、またはスループットを改善するために作業負荷が2以上のサーバノードに対して分配される予め規定された手順を一般に示す用語である。実効負荷平衡は、分散形サーバのスケーラビリティの改善に対して重要である。
【0051】
図7は、本発明の分散形サーバ内において事象を経路指定することに関与する構成要素のいくつかを、図4の例示的なクラスタからの2つのノード(ノード1および5)の視点から示している。
【0052】
ノードが事象を受取ったとき、その事象を取り扱うためにあるメッセージ流が選択されなければならない。その後、この事象は選択されたメッセージ流に委任され、処理される。
【0053】
たとえば、ノード1がある事象を受取った場合、ローカル事象プロセッサ機能はその事象をどこに経路指定すべきかを決定するが、しかしそれらは、メッセージ流関連への参照なしにこれを行うことはできない。
【0054】
たとえば、ノード1がある事象を受取った場合、このノード1上のローカル事象プロセッサ機能は、メッセージ流関連を参照する。これは、ノード1がメッセージ流AおよびBのメンバーであることを明らかにし、それはまた、他のどのノードがそのメッセージ流のメンバーであるかに関する情報を提供する。さらに、各ノードは、それがメンバーである各メッセージ流に対する負荷のローカル推定値を維持する。この推定値は、これまで受取られて処理された事象の履歴から得られる。
【0055】
したがって、関連データにより、事象処理および負荷平衡に対するルールを定めるローカル事象プロセッサ機能は、その事象が経路指定されるべきメッセージ流を決定することが可能になる。たとえば、ローカル事象プロセッサ機能は、難しい負荷平衡を実施することができる。その後、事象メッセージは選択されたメッセージ流のメンバーに送信される。このようにして、分散された事象経路指定および負荷平衡機能が行われる。
【0056】
本発明の分散形アプリケーションサーバ上で実施される分散された機能の別の例は、コンポーネント状態(ホストされたアプリケーションコンポーネントの状態)の複製(replication)、事象処理成功/失敗の調整、フィードバックベースの事象レート制限、およびこのアプリケーションサーバ内の全てのノードにわたる管理動作の調整である。
【0057】
上記は、好ましい形態を含む本発明を説明したものである。当業者に明らかになるであろう変更および修正は、添付された請求の範囲によって規定された本発明の技術的範囲内に含まれるものである。
【図面の簡単な説明】
【0058】
【図1】従来技術のアプリケーションサーバの簡単な例を示す概略図。
【図2】単一のアプリケーションサーバに対する好ましいアーキテクチャを示す概略図。
【図3】本発明によるピア構成のクラスタベースの分散形アプリケーションサーバの概略図。
【図4】ノードが1以上のメッセージ流と関連付けられた本発明によるクラスタベースの分散形アプリケーションサーバの概略図。
【図5】本発明によるアプリケーションサーバノード上のローカル機能と分散された機能とメッセージ流との間の関係を示す概略図。
【図6】本発明において実施されたときの分散された機能の構成を示す概略図。
【図7】図4の分散形サーバ内における事象の経路指定に含まれるいくつかの構成要素を示す概略図。
Claims (9)
- 分散型アプリケーションサーバを含むフォールト・トレラントなコンピュータシステムにおいて、
同等の構成であるピア・ツー・ピア構成の2以上のアプリケーションサーバノードのクラスタを含んでおり、その2以上のアプリケーションサーバノードは1以上のコンピュータ装置に配置されており、
クラスタに属する全てのノードを通って伝搬するクラスタメンバーシップメッセージストリームと、メンバーとしてクラスタ中の1以上のノードを有しており、それらのメンバーであるノードを通って伝搬する1以上の付加的なメッセージストリームとを有し、クラスタメンバーシップメッセージストリームはクラスタに属する全てのメンバーであるノードのメンバーシップを含んでおり、
クラスタによる事象の受信において、クラスタは個々のノードと関連する分散された機能を使用してその事象を処理するように構成され、
クラスタ中の単一の故障地点を示すノードは処理から除去され、
各ノードは、クラスタ中の処理のために結合されるノードおよび処理において除外されるノードとしてクラスタメンバーシップメッセージストリームのメンバーシップ中の変化を示すメッセージを受取ることによりメンバーである各メッセージストリームのメンバーシップを連続的に継続して観察し、
各ノードは他のノードと同じ機能のセットを提供し、
アプリケーションサーバにおいてはノード中の動的なローカル機能のセットとして複数の分散された機能を実行し、各ローカル機能は1組のメッセージストリームと関連している分散型アプリケーションサーバを含むコンピュータシステム。 - 特定のメッセージストリームにおけるメッセージは、そのメッセージストリームと関連付けられた各ノードにメッセージ順序で配信される請求項1記載のシステム。
- 1以上の新しいノードにクラスタメンバーシップメッセージストリームのメンバーシップを割当てることによって、1以上のノードがアプリケーションサーバに動的に追加されることを可能にするように構成されている請求項1または2記載のシステム。
- ノードが1以上の除去されたノードのクラスタメンバーシップメッセージストリームのメンバーシップを終了することによってアプリケーションサーバから動的に除去されることを可能にするように構成されている請求項1乃至3のいずれか1項記載のシステム。
- メッセージストリームメンバーシップの変更を示すメッセージは、メッセージ順序の一部として配信され、メンバーシップ変更メッセージの内容は、メンバーシップか変更されるとき、複数の分配された機能の実行がメッセージストリームメンバーである全ノード間で一致している動作を行うものである請求項2乃至4のいずれか1項記載のシステム。
- アプリケーションサーバ内の各ノードは、同じローカル機能のセットを含んでいる請求項1乃至5のいずれか1項記載のシステム。
- フォールトトレラントな分散型アプリケーションサーバを構成する方法において、
2以上のアプリケーションサーバノードのクラスタを同等の構成であるピア・ツー・ピア構成で形成し、アプリケーションサーバノードは1以上のコンピュータ装置に配置されており、
クラスタの全てのメンバーのノードのメンバーシップを含んでいるクラスタメンバーシップメッセージストリームに含まれているメンバーシップを各ノードに割当て、1以上の付加的なメッセージストリームのメンバーシップを1以上のノードに割当て、前記クラスタメンバーシップメッセージストリームと前記1以上の付加的なメッセージストリームとはそれぞれ関連するノードを通って伝搬されるように構成され、
アプリケーションサーバにおいてはノード中の動的なローカル機能のセットとして複数の分散された機能を実行し、各ローカル機能は1組のメッセージストリームと関連しており、
個々のノードに関連する複数の分散された機能を使用することによりクラスタにより受信された事象を処理し、
クラスタ中の単一の故障地点を示すノードを処理から除外してクラスタ中の残りの各同等のノードにおいて同じ機能のセットを実行することにより任意の単一地点の故障の影響を除去するステップを含んでいる分散型アプリケーションサーバを構成する方法。 - メッセージを特定のメッセージストリームで、そのメッセージストリームのメンバーである各ノードにメッセージ順序で配信するステップをさらに含んでいる請求項7記載の分散型アプリケーションサーバの構成方法。
- メッセージストリームメンバーシップの変更を示すメッセージを、そのメッセージ順序の一部として配信し、メンバーシップ変更メッセージの内容は、メンバーシップか変更されるとき複数の分配された機能の実行がメッセージストリームメンバーである全てのノード間で一致している動作を行うものである請求項8記載の分散型アプリケーションサーバの構成方法。
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 JP2005524147A (ja) | 2005-08-11 |
JP2005524147A5 JP2005524147A5 (ja) | 2006-06-15 |
JP4422606B2 true 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) | EP2843565A1 (ja) |
JP (1) | JP4422606B2 (ja) |
AU (1) | AU2003222530A1 (ja) |
NZ (1) | NZ518575A (ja) |
WO (1) | WO2003091892A1 (ja) |
Families Citing this family (39)
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 |
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 |
US20060064400A1 (en) | 2004-09-21 | 2006-03-23 | Oracle International Corporation, A California Corporation | Methods, systems and software for identifying and managing database work |
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 |
WO2007124109A2 (en) * | 2006-04-21 | 2007-11-01 | Scomm, Inc. | Interactive conversational speech communicator method and system |
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 |
US8185584B2 (en) * | 2006-05-31 | 2012-05-22 | Red Hat, Inc. | Activity history management for open overlay for social networks and online services |
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 |
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 |
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 |
US8812582B2 (en) * | 2006-11-30 | 2014-08-19 | Red Hat, Inc. | Automated screen saver with shared media |
US8463893B2 (en) * | 2006-11-30 | 2013-06-11 | Red Hat, Inc. | Automatic playlist generation in correlation with local events |
US8091032B2 (en) * | 2006-11-30 | 2012-01-03 | Red Hat, Inc. | Automatic generation of content recommendations weighted by social network context |
US8943210B2 (en) * | 2006-11-30 | 2015-01-27 | Red Hat, Inc. | Mastering music played among a plurality of users |
US9405827B2 (en) * | 2006-11-30 | 2016-08-02 | Red Hat, Inc. | Playlist generation of content gathered from multiple sources |
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 |
US8832277B2 (en) * | 2006-11-30 | 2014-09-09 | Red Hat, Inc. | Community tagging of a multimedia stream and linking to related content |
US9021045B2 (en) * | 2006-11-30 | 2015-04-28 | Red Hat, Inc. | Sharing images in a social network |
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)
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 |
US6327630B1 (en) * | 1996-07-24 | 2001-12-04 | 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 |
US20020010783A1 (en) | 1999-12-06 | 2002-01-24 | Leonard Primak | 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 |
-
2002
- 2002-04-24 NZ NZ518575A patent/NZ518575A/en not_active IP Right Cessation
-
2003
- 2003-04-24 EP EP14163930.2A patent/EP2843565A1/en not_active Ceased
- 2003-04-24 WO PCT/NZ2003/000071 patent/WO2003091892A1/en active Application Filing
- 2003-04-24 JP JP2004500196A patent/JP4422606B2/ja not_active Expired - Lifetime
- 2003-04-24 EP EP03717810A patent/EP1497737A4/en not_active Withdrawn
- 2003-04-24 AU AU2003222530A patent/AU2003222530A1/en not_active Abandoned
- 2003-04-24 US US10/512,344 patent/US7519652B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US7519652B2 (en) | 2009-04-14 |
AU2003222530A1 (en) | 2003-11-10 |
EP1497737A1 (en) | 2005-01-19 |
EP2843565A1 (en) | 2015-03-04 |
JP2005524147A (ja) | 2005-08-11 |
NZ518575A (en) | 2004-08-27 |
US20060195525A1 (en) | 2006-08-31 |
EP1497737A4 (en) | 2011-01-12 |
WO2003091892A1 (en) | 2003-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4422606B2 (ja) | 分散型アプリケーションサーバおよび分散された機能を実施する方法 | |
US11853748B2 (en) | Methods and systems that share resources among multiple, interdependent release pipelines | |
US11765110B2 (en) | Method and system for providing resiliency in interaction servicing across data centers | |
US8788565B2 (en) | Dynamic and distributed queueing and processing system | |
CN109828831B (zh) | 一种人工智能云平台 | |
US10042628B2 (en) | Automated upgrade system for a service-based distributed computer system | |
US7260818B1 (en) | System and method for managing software version upgrades in a networked computer system | |
JP4588704B2 (ja) | 自己管理仲介情報フロー | |
US7774639B2 (en) | Subscription-based management and distribution of member-specific state data in a distributed computing system | |
US20080140857A1 (en) | Service-oriented architecture and methods for direct invocation of services utilizing a service requestor invocation framework | |
US20080140760A1 (en) | Service-oriented architecture system and methods supporting dynamic service provider versioning | |
CN114787781A (zh) | 用于启用高可用性受管理故障转移服务的系统和方法 | |
US9848060B2 (en) | Combining disparate applications into a single workload group | |
WO2013122815A1 (en) | Coordination of processes in cloud computing environments | |
US20170161101A1 (en) | Modularized automated-application-release-management subsystem | |
US10637918B2 (en) | Load balancing content delivery servers | |
CN115115329A (zh) | 一种面向智能生产线的制造中间件及云制造架构 | |
CN109117259A (zh) | 任务调度方法、平台、装置及计算机可读存储介质 | |
Mohamed et al. | MidCloud: an agent‐based middleware for effective utilization of replicated Cloud services | |
CN111274018A (zh) | 一种基于dl框架下的分布式训练方法 | |
US20020174259A1 (en) | Distributable multi-daemon configuration for multi-system management | |
US20070157212A1 (en) | Context key routing for parallel processing in an application serving environment | |
Vogels et al. | An overview of the galaxy management framework for scalable enterprise cluster computing | |
Leite et al. | Autonomic provisioning, configuration, and management of inter-cloud environments based on a software product line engineering method | |
US20090094314A1 (en) | Reroute of a web service in a web based application |
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 |