JP2005505833A - 多重発送プールを用いたアプリケーションサーバーのメッセージングのためのシステム - Google Patents

多重発送プールを用いたアプリケーションサーバーのメッセージングのためのシステム Download PDF

Info

Publication number
JP2005505833A
JP2005505833A JP2003535082A JP2003535082A JP2005505833A JP 2005505833 A JP2005505833 A JP 2005505833A JP 2003535082 A JP2003535082 A JP 2003535082A JP 2003535082 A JP2003535082 A JP 2003535082A JP 2005505833 A JP2005505833 A JP 2005505833A
Authority
JP
Japan
Prior art keywords
queue
resource
request
server
queues
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
JP2003535082A
Other languages
English (en)
Other versions
JP4287276B2 (ja
JP2005505833A5 (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.)
BEA Systems Inc
Original Assignee
BEA Systems Inc
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 BEA Systems Inc filed Critical BEA Systems Inc
Publication of JP2005505833A publication Critical patent/JP2005505833A/ja
Publication of JP2005505833A5 publication Critical patent/JP2005505833A5/ja
Application granted granted Critical
Publication of JP4287276B2 publication Critical patent/JP4287276B2/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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Abstract

本発明は、アプリケーションサーバーにおける使用のためのシステム又は機構を提供するが、これはサーバースレッド化モデル、すなわち作業要求を実行するためにスレッドを割り当てるポリシー、を高めるものである。本発明の実施形態を使用するように設計されたアプリケーションサーバー又は何らかのサーバーは、非同期プール及び同期プールを含む多重スレッドプールを使用するスレッド化モデルを採用するが、これは、システムが要求を優先順位付けすることを可能にする。この設計はまた、オペレーションのブロックを実行するユーザーコードをうまく許容するものである。
本発明はまた、単一サーバー内で多重実行キューを提供できる能力もサポートする。多重キューの付加は、要求の優先順位付け、絞込みのサポート、及び減少したキュー競合、を含む従来システムを超えるいくつかの利点を提供する。キューは、優先度の高い要求及び優先度の低い要求に、独立に割り当てることができる。それゆえ、システム管理者は、作業の各クラスについて要求されるスループットが達成されるまで、これらのキューに割り当てられるスレッドの数を調整することができる。

Description

【技術分野】
【0001】
本発明の実施形態は、一般的にアプリケーションサーバー及びトランザクションサーバーに関するものであり、特に多重発送プールを用いたメッセージキューイング及びスレッドをサポートするためのシステムに関するものである。
【0002】
(著作権表示)
本特許文献の開示の一部は、著作権保護を条件とする題材を含むものである。本特許文献又は特許開示が特許商標庁の特許書類又は記録に掲載される限りでは、著作権者は何人によるその複製にも異議はないが、しかしもしそうでなければ、一切の無断転載を禁ずる。
【0003】
(優先権の主張)
本出願は、2001年10月5日に出願され、かつ引用により本出願に組み入れられる「多重発送プールを用いたアプリケーションサーバーのメッセージングのためのシステム」という名称の米国特許仮出願60/327,543号、に基づく優先権を主張するものである。
【0004】
(相互引用)
本出願は、2001年10月5日に出願され、発明者がAdamMessinger及びDonFergusonである「非同期キューを用いたアプリケーションサーバーのメッセージングのためのシステム」という名称の米国特許仮出願60/327,530号、及び、2002年10月3日に出願され、発明者がAdamMessinger、SamPullara及びDaveBrownである「Javaサーブレットを非同期メッセージと統合するためのシステム」という名称の米国特許出願と関連のあるものであり、双方の出願とも引用により本出願に組み入れられる。
【背景技術】
【0005】
企業ソフトウェア界全体の中心的人物と共同で、サンマイクロシステムにより開発されたJava2プラットフォームエンタープライズエディション(J2EE)の仕様は、多層企業アプリケーションを開発するための現行標準の一つを定義する。J2EEは、企業アプリケーションの設計、開発、組み立て、及び導入へのコンポーネントベースの手法を提供し、これはコストを減らし、かつ設計及び実装をしっかりしたものにすることを可能にする。J2EEプラットフォームは、多層分散アプリケーションモデル、コンポーネントを再利用できる能力、一体化されたセキュリティモデル、及び柔軟なトランザクション制御、を開発者に与える。それらは、これまでになく早く市場に革新的なカスタマーソリューションを提供できるだけでなく、その結果として生じたプラットフォームに依存しないJ2EEのコンポーネントベースの解決策は、如何なるベンダーの製品及びアプリケーションプログラムインターフェース(APIs)とも結び付くものではない。
【0006】
J2EEの仕様は、以下の種類のコンポーネント、すなわち、アプリケーションクライアントコンポーネント、EnterpriseJavaBeans(EJB)、サーブレット及びJavaServerPages(JSP)(ウェブコンポーネントとも言う)、及びアプレットを定義する。多層分散アプリケーションモデルは、機能に従ってアプリケーションロジックがコンポーネントに分割され、異なるアプリケーションコンポーネントが同じ又は異なるサーバー上でJ2EEアプリケーションを作り上げることができることを含む。アプリケーションコンポーネントが実際にどこにインストールされるかは、そのアプリケーションコンポーネントが多層J2EE環境の中のどの層に属するかに依る。図1にこれらの層を図示する。そこで示すように、アプリケーションサーバー層104は、EJBコンテナ及び/又はサーブレット、JSP、及びhtmlページ104のような表示用コンテナを開発するのに使用される。これらは、クライアント108及びクライアントアプリケーションが配置されるクライアント層102と、企業リソース計画(ERP)システムのような企業アプリケーション又は従来アプリケーションのホストとして働くために使用される後端層106との間のインターフェースとして、順番に使用される。
【0007】
クライアント層:会社のファイアウォールの内側でも外側でも、これらはブラウザ、Javaベースのプログラム、又はクライアント層内で動作する他のウェブイネーブルのプログラミング環境、とすることができる。
【0008】
アプリケーションサーバー層:通常この層は、クライアント要求をサポートするために、表示ロジック及びビジネスロジックの組み合わせのホストとして働く。表示ロジックはHTMLページを表示するJSPページ及びサーブレットを介してサポートされるが、一方、ビジネスロジックは遠隔メソッド呼び出し(RMI)オブジェクト及びEJBs112を介してサポートされる。EJBは、トランザクション、ライフサイクル及び状態の管理、リソースプーリング、セキュリティ等のためのコンテナ環境に依存するが、これらは共に、ビーンを実行する実行時環境を作り上げるものである。
【0009】
後端層:これは一般的に、既存のアプリケーション及びデータ貯蔵の組み合わせである。それはまた、企業リソース計画(ERP)、汎用大型コンピュータのトランザクション処理、データベースシステム、及び他の従来の情報システムのようなシステムを含むことができるので、企業情報システム(EIS)層とも呼ばれる。
【0010】
J2EEアプリケーションのコンポーネントは別々に、かつしばしば異なるデバイス上で動作するので、クライアント層及びアプリケーションサーバー層のコードが他のコード及びリソースを捜しかつ参照するための方法が必要である。例えば、クライアント及びアプリケーションのコードは、エンタープライズビーンのようなユーザー定義のオブジェクト、及び、後端層の中のリソース及びメッセージ接続を探索するために順番に使用されるJavaデータベース接続(JDBC)データソースオブジェクトの場所のような環境登録、を捜すためにJava名称及びディレクトリインターフェース(JNDI)116を使用することができる。
【0011】
セキュリティ管理及びトランザクション管理のようなアプリケーション動作は、ウェブコンポーネント及びエンタープライズビーンコンポーネント上で配置時に、設定することができる。この配置時の特徴は、その組み立てと共に変化するであろう環境設定から、アプリケーションロジックを切り離すことである。J2EEセキュリティモデルにより、開発者は、システムリソースが承認されたユーザーによってのみアクセスできるように、ウェブコンポーネント又はエンタープライズビーンコンポーネントを構築できる。例えば、ウェブコンポーネントを、ユーザー名及びパスワードの入力を要求するように構築することができる。特定のグループ内の人だけがある決まった種類のそのメソッドを呼び出すことができるように、エンタープライズビーンコンポーネントを構築することができる。或いはその代わりに、サーブレットコンポーネントを、そのメソッドの幾つかは全ての人がアクセスできるように、かつ二、三のメソッドは組織内のある特権の与えられた人のみがアクセスできるように、構築することができるであろう。同じサーブレットコンポーネントを、他の環境においては、全てのメソッドが全ての人に利用可能であるように、又は全てのメソッドが二、三の選ばれた人のみに利用可能であるように、構築することができる。
【0012】
カリフォルニア州サンノゼにあるBEAシステムのウェブロジックサーバー製品のような幾つかのアプリケーションサーバーは、そのサーバー上で動作するコンポーネントの使用の細かい制御を考慮するアクセス制御リスト(ACL)機構を使用する。ACLを使用すると、開発者は、どのユーザー又はユーザーのグループによって、何を実行できるか又はできないか、をJavaメソッドの階層で定義することができる。このACL機構は、自分自身のアクセス制御機構をそのEJB仕様の中で定義させる、EJBを除いたアプリケーションサーバー上で動作する如何なるものをも扱う。セキュリティ領域は、管理者が既存の承認又は認証システムからの情報をACLに読み込むことを可能にする。
【0013】
Javaサーブレット
サーブレットとは、ウェブサーバーの機能を拡張するプログラムである。サーブレットは、クライアントから要求を受け取り、動的に応答を生成し(多分、その要求を満たすためにデータベースに問い合わせて)、次いでHTML又はXML文書を含む応答をクライアントに送る。サーブレットはJavaクラス及びストリームを使用するので、CGIに似ているが、しかし典型的に書くことがより容易である。サーブレットはJavaバイトコードにコンパイルされ、かつ実行時にはサーブレットインスタンスがメモリ内に保存されるため、それらはより高速に実行され、各クライアント要求は新たなスレッドを生む。サーブレットは、動的なやり方でHTTP応答ストリームに対するデータを生成することを容易にする。各クライアント要求は新たな接続として実行され、そのため通常、フロー制御は要求間では発生しない。このセッション管理を可能とすることは、要求間での特定のクライアントの状態を保持する。幾つかのアプリケーションサーバーでは、サーブレットは、メソッド要求間の自己の状態を保存するため、HTTPセッションオブジェクトを使用する。このオブジェクトは、フェイルオーバーの目的のため、クラスタ化された環境において複製することができる。
【0014】
Javaサーバーページ
JSPページは、サーブレットを開発するための、テキストベースの表示専用の方法である。JSPページは、サーブレットの全ての利点を提供し、かつJavaBeansクラスと組み合わされる時、内容と表示用ロジックとを別々にしておくための容易な方法を提供する。JSPページ及びサーブレットの双方は、プラットフォームに依存せず、かつより少ないオーバーヘッドを使用するので、共通ゲートウェイインターフェース(CGI)よりも望ましい。似たような外観及び雰囲気を持つページから成るウェブサイトを構築するためのウェブテンプレートを定義するために、JavaBeansクラスと共に、JSPページを使用することができる。JavaBeansクラスがデータ翻訳を実行するため、テンプレートはJavaコードを持たない。これは、HTMLエディタによりそれらを保守することができることを意味する。JSPページを使用した単純なウェブベースのアプリケーションは、JavaBeansクラスではなく、特注タグ又は小スクリプトを使って、内容をアプリケーションロジックと結び付けるのに使用することができる。特注タグは、JSPページに読み込まれるタグライブラリにまとめて束ねられる。小スクリプトは、JSPページに直接埋め込まれる小さなJavaコードの部分(セグメント)である。
【0015】
データベースアクセスサービス(JDBC)
JDBCはリレーショナルデータベースへの橋渡しの役割を果たし、かつODBC(開放型データベース接続性)の仕様でモデル化される。それはドライバの使用を通じて、データベースをプログラムコードから切り離す。JDBCの幾つかの実装は、詳細なデータ形式のサポートを提供し、またスクロール可能な結果集合及び一括更新の機能をサポートする。
【0016】
Javaメッセージングサービス(JMS)
JMSは、Javaプログラム間でのメッセージの交換をサポートするために使用されるJ2EEの機構である。これはJavaが非同期通信をサポートする方法であり、そこでは送信者及び受信者は互いを意識する必要がなく、それゆえ独立して動作することができる。JMSは現在、次の二つのメッセージングモデルをサポートする。
【0017】
ポイントツーポイント(point to point)−これはメッセージキューに基づくものである。このモデルでは、メッセージ作成者はキューにメッセージを送る。メッセージ消費者はメッセージを検出しようとするために、自分自身をキューに接続することができる。メッセージがキューに到着する時、消費者はそれをキューから取り外し、かつそれに応答する。メッセージはただ一つのキューに送られることができ、かつただ一人の消費者により使用されるであろう。消費者は、自分が必要とするまさにそのメッセージ形式を指定するために、メッセージを選別することを選択できる。
【0018】
発行及び購読(publish and subscribe)−これは、作成者がある話題に対してメッセージを送ることを可能にし、かつその話題について登録されている全ての消費者がそれらのメッセージを検索することを可能にする。この場合、多くの消費者が同じメッセージを受け取ることができる。
【0019】
JavaIDL及びマルチスレッドサーバー
CORBAの世界では、CORBAオブジェクトが、契約、すなわちCORBAオブジェクトが他のオブジェクトと相互作用しようとする方法を指定するために、インターフェース定義言語(IDL)を使用することを可能にしようとする試みがなされてきた。契約は、JavaIDLを用いて、Javaの世界とCORBAの世界との間で定義することができる。SunのJava開発キット(JDK)バージョン1.2から続けて、オブジェクト要求ブローカー(ORB)は、Javaアプリケーションがインターネット相互ORBプロトコル(IIOP)を介してリモートのCORBAオブジェクトを呼び出すことを可能にする。マルチスレッドCORBAサーバーでは、イベントキューは、スレッド化ポリシーをそのCORBAサーバー上で実装するための方法を提供する。実際には、イベントキューは、CORBA要求に望まれるスレッド化ポリシーをサポートし、かつそのスレッド化ポリシーの中で非CORBAイベントの処理を統合する。lonaソフトウェアのOrbixサーバーのようなマルチスレッドCORBAサーバーは、例えば、どのくらいの数のスレッドを作成するか、いつそれらのスレッドを作成するか、及びどの要求をどのスレッドにより処理するか、を定めるポリシーを実装することができる。特定のポリシーを実装することは典型的に、多数のキュー及び作業者スレッドを作成すること、及び各入力イベントに対してどのキューを使用すべきかを定めるロジックをプログラムすること、を含む。
【0020】
このように、マルチスレッドCORBAサーバーは、いくつかのCORBA要求を同時に処理することができる。これの一つの主な利点は、全体のスループットを高めることである。要求を処理する作業をどのようにそれらの間で共有すべきかに依って、スレッド化ポリシーをそれぞれの要望に対してカスタマイズすることができる。これらの選択肢は、以下のものを含む。
【0021】
各オペレーションにつき一つのスレッド:この場合、各入力要求を処理するために、新たなスレッドが作成される。この選択は、最大並行性を提供するが、しかし最高負荷時にサーバーが多数の同時要求を受け取る場合には、時々スレッドを多く作りすぎる。
【0022】
スレッドプールの使用:この場合、要求はキューに入れられ、かつスレッドのプール内の第一の利用可能なスレッドにより処理される。スレッドの最大数、従ってサーバーの負荷は、プールのサイズを制限することにより、制限される。
【0023】
各オブジェクトにつき一つのスレッド:この選択に従うと、各オブジェクトに対して、一又はそれ以上の要求キューが保持される。この選択は、オブジェクト間の完全な並行性を提供するが、しかしそれぞれの個々のオブジェクトへのアクセスを一列に並べる。
【0024】
各クライアントにつき一つのスレッド:各クライアントに対して、要求キューが保持される。この選択は、各々にリソースが割り当てられるスレッドの数を管理することにより、クライアントの平等な扱いを保証する。
【0025】
J2EEサーバーにおけるスレッド化
J2EEベースのトランザクションサーバー及びアプリケーションサーバーで使用するような現行のスレッド化ポリシーに関する一つの問題は、要求の概念又は優先順位付けである。スレッド化ポリシーは、要求管理の観点から最大スループットのために設計することはできるが、要求の優先順位付けの観点からの選択肢はほとんどない。多くの現行のサーバー製品は、ネットワーク上のクライアントからの要求を読み取るためにスレッドのプールを使用する。完全な要求がキューに読み込まれると、サーバーの中で、実行のためにそれを発送しなければならない。しかし、開発者が、発送するよりも前に、その完全な要求に優先順位を付けることが可能になることは、殆どない。
【0026】
要求の優先順位付けは一般的に求められる機能であるが、しかし、基となるサーバーコードにそれを付加する複雑さに対する懸念のため、及びそれが作り出す可能性のある優先度の逆転のような新たな問題のため、実装することは難しい。多重キューの付加は、ソフトウェア管理者又は開発者に、本来の優先方式が行うであろうよりも、これらの問題をうまく扱う優先機構を提供するであろう。
【0027】
要求の絞り込みは、アプリケーションサーバーの顧客が一般的に求めるもう一つの機能である。作業負荷の一部が大量のメモリ、CPU時間、又は他のリソースを必要とするところで、これは一般的に要求される。このシステムは、これらの要求の多くを並行に処理することができない。
【0028】
多くのアプリケーションサーバーは、要求を、それを読み取るスレッドと同じスレッド内で実行すること、又は作業者スレッドのプールを供給するキューに入れることを可能にする、発送オプションを提供する。この構成を使用すると、要求のサービスパラメータの様々な特性を制御することができる。例えば、要求を、それを読み取るスレッドの中で直接実行することにより、キューを飛び越し、迅速化することができる。幾つかの要求を、限られた数のスレッドのみによって対処されるキューに割り当てることにより、それらをかわるがわる絞ることができる。
【0029】
(要約)
これらの要求に対処するため、本発明の実施形態は、アプリケーションサーバーにおける使用のためのシステム又は機構を提供するが、これはサーバースレッド化モデル、すなわち作業要求を実行するためにスレッドを割り当てるポリシー、を高めるものである。本発明の実施形態は、例えばカリフォルニア州サンノゼにあるBEAシステムのウェブロジックサーバー製品を含む、いろいろなアプリケーションサーバーで使用することができる。本発明の実施形態を使用するように設計されたアプリケーションサーバー又は何らかのサーバーは、非同期プール(時々、読み取りスレッドと呼ばれる)及び同期プール(実行スレッドと呼ばれる)を含む多重スレッドプールを使用するスレッド化モデルを採用する。このプールの併用は、システムが要求を優先順位付けすることを可能にする。この設計はまた、オペレーションのブロックを実行するユーザーコードをうまく許容するものである。
【0030】
本発明の一実施形態では、非同期スレッドプールは、非同期読み取り結果が利用可能となるように、非同期入力機構(ここでは、多重化装置と呼ばれる)に応対する。結果が利用可能になると、プールからのスレッドは、そのメッセージを見て、かつ適切なコールバックを作成することによりそれを発送する。この発送コールバックは通常、同期スレッドプールによる後での処理の要求をキューに入れる。しかしながら、ある特定のブロック化なしの優先要求は、コールバックの中で直接処理される。積極的に入力を受け入れることで、これらの優先度の高い要求は、優先度の低い要求が実行する間、読み取られるのを待つことはない。
【0031】
同期スレッドプールは、要求のキューに応対する。要求が利用可能となると、同期プールからのスレッドは、その要求をキューから受け取り、それを処理し、かつその結果を送信する。要求を処理するのと同時に、スレッドは、結果の送信というようなコードを実行することができ、これはスレッドをブロックさせるものである。
【0032】
非同期出力及び非同期応答の付加は、従来システムにおける一般的なタスクであるスレッド処理の調整の必要性の一部を軽減する。さらに本発明の実施形態は、異なる要求形式の処理のより細かい制御を提供するように、多重同期スレッドプールの構成を考慮するものである。
【0033】
本発明の実施形態はまた、単一サーバー内で多重実行キューを提供できる能力もサポートする。これらのキューは、個々に、現行の実行キューと似ている。各実行キューは、キューからの作業の取り出しに割り当てられる作業者スレッドのプールを持つ。本発明の一実施形態によると、各サーバーは、一つのデフォルトの実行キュー、及び零又は一又はそれ以上のカスタムの実行キューを持つ。多重キューの付加は、要求の優先順位付け、絞込みのサポート、及び減少したキュー競合、を含む従来システムを超えるいくつかの利点を提供する。キューは、優先度の高い要求及び優先度の低い要求に、独立に割り当てることができる。それゆえ、システム管理者は、作業の各クラスについて要求されるスループットが達成されるまで、これらのキューに割り当てられるスレッドの数を調整することができる。
【発明の開示】
【0034】
(発明の詳細な説明)
大雑把に説明すると、本発明の実施形態は、トランザクションサーバー、アプリケーションサーバー、及びメッセージングサーバーにおける使用、特にRMI(遠隔メソッド呼び出し)、EJB(エンタープライズJavaビーン)、及びサーブレットにおける使用のための、柔軟な発送ポリシーのシステムのための拡張機能を提供する。本発明の実施形態を取り入れるアプリケーションサーバー、トランザクションサーバー、又はメッセージングサーバー(全て共通して以下、単にアプリケーションサーバーという)は、ネットワーク上のクライアントからの要求を読み取るためのスレッドのプールを使用する。完全な要求が読み取られると、それをサーバー内での実行のために発送しなければならない。本発明の実施形態は、この発送ポリシーを構築できる能力を提供する。サーブレットでは、これは各URL(全域資源位置指示子)ごとに構築される。RMI及びEJBでは、各メソッドごとに発送ポリシーが構築される。
【0035】
本発明の実施形態により提供される発送オプションは、要求を、それを読み取るのと同じスレッド内で実行することを可能にする、あるいはそのかわりに、作業者スレッドのプールを供給するキューに入れることを可能にする。この様々な発送の構成を使って、要求のサービスパラメータの様々な特性を制御することができる。例えば、要求を、それを読み取るスレッド内で直接要求を実行することにより、その結果キューを飛び越し、迅速化することができる。いくつかの要求を限られた数のスレッドのみにより対処されるキューに割り当てることにより、それらをかわるがわる絞り込むことができる。
【0036】
本発明の実施形態は、アプリケーションサーバーメッセージングに関連する新しい機能を提供するが、これは、ある種のメッセージングを要求する如何なるサーバー形式においても使用することができる。各サーバーの設計の中核において、スレッド化モデルは、作業要求を実行するためにスレッドを割り当てるポリシーである。本発明の実施形態に従って、サーバーは、非同期プール(読み取りスレッド)及び同期プール(実行スレッド)の2つのスレッドプールを使用するスレッド化モデルを採用する。このプールの併用及び発送オプションの柔軟性は、オペレーションのブロック化を実行するユーザーコードを許容すると同時に、管理者が要求を効果的に優先順位付けすることを可能にする。
【0037】
図2は、要求をサーバーリソース205に渡すのに使用される、本発明の実施形態により提供されるようなスレッドプール206を示している。サーバーは、個々のリソースにおいて使用されるべき発送ポリシー211を定める、各リソースのための構成情報を含む。一実施形態に従って、非同期読み取り結果が利用可能となるように、スレッドプール208は非同期入力機構202(時々、多重化装置と呼ばれる)に応対する。結果が利用可能となると、プールからのスレッドは、そのメッセージを見て、かつ適切なコールバックを作成することにより、それを発送する。発送コールバックは通常、同期スレッドプールによる後での処理の要求をキューに入れる。しかしながら、ある特定のブロック化なしの優先要求は、コールバックの中で直接処理される。非同期スレッドプールが積極的に入力を受け入れることを可能にすることにより、優先度の高い要求212は、優先度の低い要求216が実行する間、読み取られるのを待つことはない。これらのスレッドは決してブロックしないはずであるので、おそらく一つのCPUにつきたった一つの、少数のスレッドが通常存在する。本発明の実施形態は付加的に、非同期スレッドプールがネットワーク出力のオペレーションを実行できる能力を提供する。この特別な機能は、2001年10月5日に出願された、発明者がAdamMessinger及びDonFergusonである「非同期キューを用いたアプリケーションサーバーメッセージングのためのシステム」という名称の米国特許仮出願60/327,530号、及び、2002年10月3日に出願された、発明者がAdamMessinger、SamPullara及びDaveBrownである「Javaサーブレットを非同期メッセージと統合するためのシステム」という名称の米国特許出願の中で詳細に説明されており、双方の出願とも引用により本出願に組み入れられる。
【0038】
図2に示すように、同期スレッドプール210は、要求のキュー204に応対する。要求が利用可能となると、プールからのスレッドは、その要求をキューから受け取り、それを処理し、かつその結果216をリソース205に送出する。要求を処理する一方で、スレッドは、結果を送出するというようなコードを実行することができ、これによりスレッドはブロックする。それゆえスレッド数は、動作可能な状態にあるCPU一つにつき一つのスレッドが常に存在するように、調整されるべきである。サーバーの適切な最適化は、性能の理由のため重要である。本発明の実施形態で使用されるような非同期出力、及び非同期応答の付加は、この最適化の必要性の一部を軽減する。本発明の実施形態はまた、異なる要求形式の処理のより細かい制御を提供するように、管理者に多重同期スレッドプールを構築できる能力を与える。
【0039】
発送
発送とは、サーバー要求を受け取り、かつそれを処理するのに適切な場所にその要求を送る処理である。アプリケーションサーバー、又は本発明の実施形態を使用できるサーバーには典型的に、直接発送とキュー待ち発送、の二つの形式の発送が存在する。サーバー要求は、例えばネットワークから読み取られる入力の結果、時間トリガー、又は何か他の作業の続行を含む、サーバーからの如何なる信号ともすることができる。
【0040】
直接発送では、入力メッセージを生成するスレッドがまた、そのメッセージを処理する。要求を処理している間、発送スレッドは他のスレッドに置き換えられることはなく、そのため実行されるべき作業が、大幅な時間の間全く、発送スレッドをブロックしないであろうことが重要である。例えば、要求を処理するとき、ソケット読み取りスレッドがブロックされる場合には、サーバーは如何なる新たな入力メッセージも対処できないであろう、かつ更なる入力に応答できないであろう。同様に、時間トリガーのスレッドがブロックされる場合には、サーバー内の重要なタイミングイベントが配信されないであろう。この理由のため、直接発送は、典型的には内部APIを通じて利用可能にされ、かつ優先度の高いシステムレベルのメッセージのためだけに使用される。
【0041】
図3は、従来の実行キューの機構を示している。そこに示すように、全域資源位置指示子(URL)又はデータベースのような特定のリソースに送られるクライアントからの要求は、実行キュー304に入れられる。一又はそれ以上の作業者スレッドのセット306、308、又はスレッド処理は、キューからエントリ310を検索し、それらをリソースを背景に実行し、その結果をクライアントに返す。この機構における問題は、キューが最初の入力/最初の出力の方式で作動することであり、他のものの前にキューの中の一つのエントリを処理するような、特定のエントリを優先する方法がないことである。
【0042】
キュー待ち発送では、発送スレッドは入力メッセージをキューに入れ、そこでそのメッセージは後で作業者スレッドによりキューから取り出され、かつ処理されるであろう。幾つかの実施形態では、たった一つの実行キュー、及びそのキューからの要求を取り出しかつ処理するために割り当てられた実行スレッドの一つのプールが存在する。他の実施形態は、多重実行キューを使用することができる。キューの長さは、制限される又は制限されないとすることができるが、但し、キューの長さが制限される時はメモリ使用に関する問題を防ぐよう注意を払わなければならない。典型的には、全てのユーザー要求は配信されるのではなく、キューに発送される。
【0043】
多重キュー
図4は、本発明の実施形態により提供される多重キューが、発送ポリシーを構築するためにどのように使用されるかを示している。図4に示すように、クライアントからの要求は、複数のキューソケット402、404、406から選択されたキューソケットに渡される。ソケットは並列に作動し、一つのソケット上のエントリを同時に実行する、あるいはそれらを他のソケット内のエントリよりも先に実行することを可能にする。この別々かつ並列なオペレーションは、システムが要求を優先順位付けすることを可能にする。一又はそれ以上の非同期スレッドのセット412、414、416は、ソケット要求を処理する、及びリソースへのアクセスを提供するのに使用される。非同期スレッドの集合(例えば、412及び414)は、ソケットの集合(例えば、404及び406)間で共有することができる。あるいはそのかわりに、ソケット402が、そのソケット内での特定の要求の信頼できる、又は優先度の高い処理を可能とするため、専用のスレッド416を持つことができる。本発明の実施形態を具体化する、又は組み込むアプリケーションサーバーは、単一サーバーの中で多重実行キューを持つことができる能力をサポートする。典型的には、各実行キューは、キューから作業を取り出すことに割り当てられる作業者スレッドのプールを持つ。一実施形態では、各サーバーは、一つのデフォルトの実行キュー、及び零又は一又はそれ以上のカスタムの実行キューを持つ。多重キューの付加は、要求の優先順位付け、絞込みのサポート、及び減少したキュー競合を含む、幾つかの利点を提供する。
【0044】
要求の優先順位付け
上で説明するように、要求の優先順位付けは一般に求められる機能である。基となるコードにそれを加える場合の複雑さについての懸念のため、及びそれが作り出す可能性のある、優先度の逆転のような付加的な問題のため、従来、これは対処するのが難しい領域であった。本発明の実施形態で使用するように、多重キューの付加は、「本来の」優先方式が行うであろうよりもうまくこれらの懸念を扱う優先機構を提供する。管理者がそのように望む場合には、優先度の高い要求及び優先度の低い要求に、独立してキューを割り当てることができる。次いで、管理者は、作業の各クラスにおいて要求されるスループットが達成されるまで、これらのキューに割り当てられるスレッド数を調整することができる。
【0045】
要求の絞り込み
要求の絞り込みは、アプリケーションサーバーのユーザーにより一般に要求される機能である。絞り込みは、作業負荷の一部が大量のメモリ、CPU時間、又は他のリソースを要求する場合において重要である。典型的には、システムは、これらの要求の多くを同時に処理することができない。システムリソースを保全することを保証するため、適当な数のスレッドにより構成されるキューに、全てのこれらの形式の要求が送られる可能性があることから、本発明の実施形態は、要求の絞り込みのための機構を提供する。
【0046】
キュー競合の減少
キュー競合は、多重短要求に応じる、重く負荷のかかったシステムのベンチマークにおける問題である。本発明の実施形態は、負荷を幾つかのキュー上に分散させることにより、この問題にうまく取り組むための機構を提供し、キュー競合を減らすことができる。スループットを最大にするような手法で、要求はキューをまたがって配信される。
【0047】
図5は、本発明の実施形態に従った多重キュー発送ポリシーのフローチャートを示している。そこに示すように、ステップ502では、特定のリソースにアクセスする要求がサーバーで受け取られる。これは、例えば、特定のサービス、URL、又はデータベースにアクセスする要求とすることができる。ステップ504では、発送スレッドが、多重メッセージキュー又はソケットの中の一つに要求を置く。ステップ506では、デフォルトの実行キュー、及び多重カスタム実行キューの提供の組み合わせは、システム又はシステム管理者に、要求をどのソケット又はキューの中に置くべきかを指定することによりその要求を優先できる能力を与える。ステップ508では、作業者スレッドが適当なメッセージキューから要求を検索し、かつ、ステップ510では、要求をサーバーで処理し、かつその結果をクライアントに返す。
【0048】
RMI及びHTTPの実装
本発明の一実施形態に従って、典型的な遠隔メソッド呼び出し(RMI)の実装を、多重キューを利用するのに適応させる。RMI記述子は、メソッド毎のキューイングポリシーを設けることを可能にするために一般化される。この機能は、直接発送又はキュー待ち発送、を指定するための機構を提供する。Java仮想マシン(JVM)における使用のための一実施形態では、要求発送者メッセージがRJVMレベルに発送される。次にRJVMは、その実行時記述子を調べ、かつその要求にどの発送ポリシーを適用すべきかを定める。
【0049】
サーブレットの実装を多重キューを利用するのに適応させることは、同様に行うことができる。一実施形態では、発送ポリシーを説明するメタデータは、サーブレットの配置記述子の中に置くことができる。要求が通常キューに入れられる点は、サーブレットが呼び出されるべき点までに存在することが定められている。この点で、適切な発送ポリシーを定めることができ、かつ適切な措置をとることができる。HTTPトンネル機構もまた、この機構を使用するように修正することができる。いくつかの実装では、タイミングサービスを多重キューを利用するのに適応させることできる。如何なるAPIへの付加もまた、特定のタイマーのための発送ポリシーの仕様を受け入れるようにすることができる。これは、タイミングスレッドの中で直接トリガーを提供する、現行の直接発送機構と一体化することができる。
【0050】
特定のアプリケーションサーバーでは、幾つかの内部実装は、現在処理されている要求に付随する作業を処理するために、キュー待ち発送を使用する。これは、必要以上に長くロックを持続するのを防ぐためにしばしば行われるが、しかしこれはまた、多重キューの付加を伴って、付随的な要求を異なるキューの中に入れることにより、作業の優先度を区別するために使用することもできる。
【0051】
さらに、多くの顧客が、付随的な要求のこのキュー待ち発送を実行できる能力を要求している。一実施形態では、本発明は、ユーザーがjava.lang.Runnable関数を指定されたキューに入れることを可能にする。次いで、このRunnable関数は、実行要求(ExecuteRequest)内にラップされ、希望するキューに置かれる。
【0052】
実行キュー及びスレッドプールの構築
実行キュー及びスレッドプールの構築を可能にするために、本発明の実施形態は、コマンド及び構文のセットを提供する。次の章では、本発明の一実施形態に従って、これらのプールを使用するためのサーブレット、jsp、ejb、及びrmiオブジェクトの構築の手引きを与える。本発明の実施形態が、例証の目的のために与えられた、下で説明する特定の実装に限定されるものではなく、しかしそのかわり、他の実装において、及び他のアプリケーションサーバー又はサーバーにおいて使用することができることは明らかであろう。
【0053】
実行キューの構築
サーバー構築(例えば、config.xmlファイル)において、開発者は、サーバー構築における「実行キュー」タグを介して、実行キューのセットを定義することができる。
<サーバー
名前=「私のサーバー」
固有入出力イネーブル=「真」
リッスンポート(受信ポート)=「7701」
実行キュー=「テストキュー」
>
<実行キュー
名前=「テストキュー」
スレッド数=「4」
/>
【0054】
上で示す例は、4つの実行スレッドの関連プールを持つ、テストキューという名の実行キューの作成という結果となるであろう。
【0055】
実行キューを使用するためのサーブレットの構築
サーブレットを構築するために、開発者又は管理者は、例えば、構築のためにweb.xmlファイルを使用するシステム内の「wl発送ポリシー」というタグを介して、キューの名前を設定するのにサーブレット初期パラメータを使用することができる。web.xmlファイルは、以下に示す典型的な一つのように、init-param(初期パラメータ)部を含む。
Figure 2005505833
【0056】
実行キューを使用するためのJSPの構築
JSPは、サーブレットのように記載することができる。以下のコード例は、「テストキュー」という名前のキューを使用するように記載されたJSPを示している。
Figure 2005505833
【0057】
実行キューを使用するためのEJB及びRMIの構築
EJBC及びRMICは、発送ポリシーの構築又はコマンドラインを可能にするため、発送ポリシーフラグを受け入れるように修正することができる。すなわち、
java weblogic.rmic dispatchPolicy(発送ポリシー) testqueue(テストキュー)
java weblogic.ejbc dispatchPolicy(発送ポリシー) testqueue(テストキュー)
【0058】
優先度及びサービスの品質
本発明の幾つかの実施形態は、特定のスレッドプール内でスレッドの優先度を設定することを可能とするものである。しかしながら、本発明の一実施形態に従うと、その構築がプール内のスレッドの優先度を設定することを可能にするために、何の機構も提供されない。スレッドスケジューリングの意味規則はプラットフォーム間で変化するため、これは意図的なものであり、かつ、全ての実行スレッドが同じ優先度を持つ場合には、システムは欠乏/優先度逆転という問題により衝突しにくい。しかしながらまだ、優先度の高いトラフィックを軽く使用されるキュー、又はより多数の実行スレッドを持つキューに発送することができ、かつスレッドの優先度を明らかに使用することなく優先度の高い要求をより早く処理するという目標を達成することができる。
【0059】
優先順位付けに密接に関連のあるトピックは、サービスの品質(QOS)である。発送ポリシーを使用すると、ある特定の形式の要求がある一定数のスレッドを持つであろうことを保証することができる。マシン上の如何なる他の負荷に関係なく、ある一定の速度で処理され続けなければならない幾つかの形式の要求が存在する場合には、これは役立つものとなり得る。
【0060】
デッドロックの回避
別々の実行キューを使用するもっともな理由は、デッドロック状態を回避するためである。要求の処理が、追加の実行要求が完了することを要求する時、その追加要求のために別個のキューを構築することができる。例えば、サーブレット「a」がJMSキュー「b」から読み取る状況を考えなさい。サーバーの実行スレッドの全てがサーブレット「a」を実行している場合には、キュー「b」からメッセージを運ぶための実行スレッドは全く残らないであろう、そのためどの作業も進むことができない。サーブレット「a」のために別個のキューを定義することにより、この状態を回避することができる。
【0061】
絞り込み及びスループットの最適化
別々のキューを使用するもう一つのもっともな理由は、リソースのある決まったプールを使用する要求を絞り込むためである。例えば、特定のジョブが大量のメモリを使用する場合には、それを限られた数の関連スレッドを持つキューに発送することは、より最適なものとすることができる。このように、システムは、同時に実行しているこの形式のジョブの最大数を制限することができ、かつサーバーがメモリを使い切ってしまう如何なる危険性も最小化することができる。
【0062】
関連のある使用は、一つの特定のプールからのリソースへのアクセスを要求するそれらの要求を、アクセスを要求しない他のプール内の要求から切り離すことである。例えば、サーバーが2つのEJBのサーバーとして働いている場合を考えなさい。EJB「a」がデータベースにアクセスするために接続プールを使用し、その一方でEJB「b」があるメモリ内の作業のみを実行する(又はおそらく異なるプールを使用する)。スレッド数がプール内の接続数よりも多い場合には、システムは、「a」への要求を処理する間にプールからの接続を得ようとして、幾つかのスレッドがブロックされるという状態に遭遇し得る。同時に、空いている実行スレッドが存在する場合のみ進行することができるであろうキューの中に置かれている、「b」への他の要求が存在し得る。「a」及び「b」への要求を異なるキューに発送することにより、この状況を回避することができる。
【0063】
性能の考慮
多重実行キューを持つことは非常に強力なツールであるが、しかしこれは注意して使用、又は構築されるべきである。管理者が考慮すべき事柄の幾つかは、以下のことを含む。
リソースの無駄使い:各キューはある一定の数のスレッドが割り当てられるので、他のキュー上の要求が休止状態に置かれている間、何もしていない多くのスレッドを持つ可能性がある。スレッドは安価なリソースではないので、そのため必要以上のスレッドを割り当てることは避けるべきである。
ライブロック及び優先度逆転:上で説明したように、別々のキューの適切な使用はデッドロックの機会を減らすことができるのと同時にまた、デバッグするのがかなり難しい可能性のある、起こり得る問題の新たなクラスを持ち込む。ささいな例として、同じクライアントから同じサーバーに向けて作成され、しかし別々のキューに発送された2つのリモートコール(遠隔コール)は、予想とは異なる順で戻ってくる可能性がある。
【0064】
本発明の上述の説明は、例証及び説明の目的のために提供されている。これは、網羅的なもの、又は本発明を開示した厳密な形態に限定すること、を意図するものではない。明らかに、多くの修正及び変形が当業者には明白であろう。本発明の原理、及びその実用例を最もよく説明するために、本実施形態は選択されかつ説明されたものであり、その結果、他の当業者が、意図した特定の使用に適した様々な修正を伴った、様々な実施形態における本発明を理解することが可能となる。本発明の技術的範囲は、以下の特許請求の範囲、及びその均等技術により定められることを意図したものである。
【図面の簡単な説明】
【0065】
【図1】本発明の実施形態を利用することのできるJ2EE互換のサーバーアーキテクチャを示す。
【図2】本発明の実施形態による、スレッド化モデルを示す。
【図3】本発明の実施形態による、多重発送キューシステムを示す。
【図4】本発明の実施形態による、多重スレッド発送システムを示す。
【図5】本発明の実施形態による、多重発送処理のフローチャートを示す。

Claims (20)

  1. クライアントアプリケーションからサーバーリソースへの要求を受け取り、処理するためのシステムであって、
    サーバーリソースにアクセスすることについてのクライアントからの要求を受け取るサーバー要求インターフェースと、
    前記サーバーリソースにアクセスすることについての要求をキューに入れるように構築された、複数の実行キューと、
    前記キューの中の選択された一つのキューに特定の要求を入れるように、リソース毎に構築された発送ポリシーと、
    を備えることを特徴とするシステム。
  2. 前記要求が、前記リソースにアクセスするときにクライアントアプリケーションに提供すべきサービスの品質を指定するようになった、
    請求項1記載のシステム。
  3. 前記キューの要求に応じるためにスレッドを使用する請求項1記載のシステム。
  4. 構成ファイル内において、各リソースについて多重キューを構成することができる
    請求項1記載のシステム。
  5. 前記サーバーが、前記発送ポリシーにより、直接発送又はキュー待ち発送のいずれかを指定する、
    請求項1記載のシステム。
  6. 前記リソースがサーブレットである請求項1記載のシステム。
  7. 前記リソースがJavaサーブレットページである請求項1記載のシステム。
  8. 前記リソースが個々のキューの名前に対応付けられる請求項1記載のシステム。
  9. 各キューが複数の関連スレッドを持ち、当該スレッドの数は、前記キューに関連する要求の優先順位付けを可能とするように構成することができる、
    請求項1記載のシステム。
  10. 前記複数の実行キューが、非同期スレッドプール及び同期スレッドプールを使用する請求項1記載のシステム。
  11. クライアントアプリケーションからサーバーリソースへの要求を受け取り、かつ処理するための方法であって、
    サーバーリソースにアクセスすることについてのクライアントからの要求を受け取るステップと、
    前記要求を複数の実行キューの中の一つのキューに入れるステップと、
    を含み、前記キューに入れるステップが、前記キューの中の選択された一つのキューに特定の要求を入れるようリソース毎に構築することのできる発送ポリシーに従って、前記サーバーリソースへのアクセスの要求をキューに入れるように構成することができる、
    ことを特徴とする方法。
  12. 前記要求が、前記リソースにアクセスするときに前記クライアントアプリケーションに提供すべきサービスの品質を指定するようになった、
    請求項11記載の方法。
  13. 前記キューの要求に応じるためにスレッドを使用する請求項11記載の方法。
  14. 設定ファイルの中で、各リソースについて多重キューを構成することができる、
    請求項11記載の方法。
  15. 前記クライアントアプリケーションが、直接発送又はキュー待ち発送のいずれかを指定する、
    請求項11記載の方法。
  16. 前記リソースがサーブレットである請求項11記載の方法。
  17. 前記リソースがJavaサーブレットページである請求項11記載の方法。
  18. 前記リソースが個々のキューの名前に対応付けられる請求項11記載の方法。
  19. 各キューが複数の関連スレッドを持ち、当該スレッドの数が前記キューに関連する要求の優先順位付を可能とするように構成することができる、
    請求項11記載の方法。
  20. 前記複数の実行キューが、非同期スレッドプール及び同期スレッドプールを使用する、
    請求項11記載の方法。
JP2003535082A 2001-10-05 2002-10-04 多重発送プールを用いたアプリケーションサーバーのメッセージングのためのシステム Expired - Lifetime JP4287276B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US32754301P 2001-10-05 2001-10-05
US10/264,439 US6886041B2 (en) 2001-10-05 2002-10-03 System for application server messaging with multiple dispatch pools
PCT/US2002/031724 WO2003032185A1 (en) 2001-10-05 2002-10-04 System for application server messaging with multiple dispatch pools

Publications (3)

Publication Number Publication Date
JP2005505833A true JP2005505833A (ja) 2005-02-24
JP2005505833A5 JP2005505833A5 (ja) 2006-01-05
JP4287276B2 JP4287276B2 (ja) 2009-07-01

Family

ID=23276980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003535082A Expired - Lifetime JP4287276B2 (ja) 2001-10-05 2002-10-04 多重発送プールを用いたアプリケーションサーバーのメッセージングのためのシステム

Country Status (6)

Country Link
US (2) US6886041B2 (ja)
EP (1) EP1438678B1 (ja)
JP (1) JP4287276B2 (ja)
CN (1) CN100342369C (ja)
AU (1) AU2002362654B2 (ja)
WO (1) WO2003032185A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011501254A (ja) * 2007-10-15 2011-01-06 インターナショナル・ビジネス・マシーンズ・コーポレーション セッション・アフィニティを使用する分散環境においてフェイルオーバを処理する方法及びシステム
JP2016509306A (ja) * 2013-01-31 2016-03-24 オラクル・インターナショナル・コーポレイション クラスタにおけるワークシェアリング多重化をサポートするためのシステムおよび方法
US10261902B2 (en) 2016-01-04 2019-04-16 Toshiba Memory Corporation Parallel processing of a series of data units for writing
JP2019071108A (ja) * 2013-02-28 2019-05-09 オラクル・インターナショナル・コーポレイション コンカレントプライオリティキューにおいてシーケンサを用いるためのシステムおよび方法
JP2022543994A (ja) * 2019-08-05 2022-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散処理システムのリソース評価方法、システム、プログラム

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6886041B2 (en) * 2001-10-05 2005-04-26 Bea Systems, Inc. System for application server messaging with multiple dispatch pools
US7003570B2 (en) * 2001-10-05 2006-02-21 Bea Systems, Inc. System for integrating java servlets with asynchronous messages
US7222148B2 (en) * 2002-05-02 2007-05-22 Bea Systems, Inc. System and method for providing highly available processing of asynchronous service requests
US20030233485A1 (en) * 2002-06-13 2003-12-18 Mircrosoft Corporation Event queue
CA2549343C (en) * 2002-12-17 2008-08-19 Breathablebaby, Llc Crib shield system and other breathable apparatus
US7039914B2 (en) * 2003-03-07 2006-05-02 Cisco Technology, Inc. Message processing in network forwarding engine by tracking order of assigned thread in order group
JP4041002B2 (ja) * 2003-03-24 2008-01-30 株式会社三菱東京Ufj銀行 データベース更新処理システム、データベース更新のための更新データ入力方法、更新データ処理方法、およびプログラム
US7185060B2 (en) * 2003-03-26 2007-02-27 Microsoft Corporation Message processing pipeline for streams
US7424721B2 (en) * 2003-05-19 2008-09-09 Sun Microsystems, Inc. Inter-object communication interface bridge
US7246359B2 (en) * 2003-07-31 2007-07-17 International Business Machines Corporation Methods, systems and computer program products for maintaining association integrity of enterprise JavaBeans (EJB) during EJB passivation and reactivation
US8041821B2 (en) * 2003-11-26 2011-10-18 International Business Machines Corporation Connection pool management
US7693847B1 (en) * 2004-07-13 2010-04-06 Teradata Us, Inc. Administering workload groups
US8176117B2 (en) * 2003-12-19 2012-05-08 Stmicroelectronics, Inc. Accelerator for object-oriented communications and method
US7444536B1 (en) 2004-04-16 2008-10-28 Sun Microsystems, Inc. RMI-IIOP request failover mechanism
US7448041B2 (en) * 2004-04-28 2008-11-04 International Business Machines Corporation Interfacing an application server to remote resources using Enterprise Java Beans as interface components
US7657892B2 (en) * 2004-05-20 2010-02-02 Bea Systems, Inc. System and method for application server with self-tuned threading model
US7509429B2 (en) * 2004-05-28 2009-03-24 Sap Ag Message endpoint activation
US20050267918A1 (en) * 2004-05-28 2005-12-01 Gatev Andrei A System and method for bundling deployment descriptor files within an enterprise archive for fast reliable resource setup at deployment time
US7594237B2 (en) 2004-06-01 2009-09-22 Sap Ag Program object to support connection generation
US20050289212A1 (en) * 2004-06-01 2005-12-29 Tankov Nikolal D Non-transactional resource reference
US7676810B2 (en) * 2004-06-03 2010-03-09 Sap Ag Identification of execution context
US9582313B2 (en) * 2004-06-03 2017-02-28 Sap Se Connection resource system
US7657658B2 (en) * 2004-06-07 2010-02-02 Sap Ag Resource adapter deployment
CN100347675C (zh) * 2004-06-29 2007-11-07 北京大学 应用服务器的性能优化方法
US20050289551A1 (en) * 2004-06-29 2005-12-29 Waldemar Wojtkiewicz Mechanism for prioritizing context swapping
US20060026214A1 (en) * 2004-07-29 2006-02-02 International Business Machines Corporation Switching from synchronous to asynchronous processing
US7565662B2 (en) * 2004-09-24 2009-07-21 International Business Machines Corporation Program agent initiated processing of enqueued event actions
US8055821B2 (en) * 2004-11-17 2011-11-08 International Business Machines Corporation Apparatus, system, and method for converting a synchronous interface into an asynchronous interface
US7770150B2 (en) * 2004-12-15 2010-08-03 International Business Machines Corporation Apparatus, system, and method for sharing and accessing data by scopes
US7565395B2 (en) * 2005-02-01 2009-07-21 Microsoft Corporation Mechanism for preserving session state when using an access-limited buffer
WO2006089385A1 (en) * 2005-02-22 2006-08-31 Nextair Corporation Wireless communication device use of application server applications
US8005791B1 (en) 2005-03-14 2011-08-23 Oracle America, Inc. Methods and systems for publishing aggregated data to a business logic tier
US8055689B1 (en) 2005-03-14 2011-11-08 Oracle America, Inc. Methods and systems for distributing information model nodes in memory
US8090873B1 (en) * 2005-03-14 2012-01-03 Oracle America, Inc. Methods and systems for high throughput information refinement
US20060212846A1 (en) * 2005-03-21 2006-09-21 Dexterra, Inc. Data management for mobile data system
US8005933B2 (en) * 2005-04-13 2011-08-23 International Business Machines Corporation Probabalistic throttling of application server requests
GB0516444D0 (en) * 2005-08-10 2005-09-14 Symbian Software Ltd Improving the efficiency of file server requests in a computing device
CN100450105C (zh) * 2005-09-13 2009-01-07 中兴通讯股份有限公司 一种基于java消息服务的同步消息接口实现方法
US8671133B2 (en) * 2005-11-29 2014-03-11 The Boeing Company System having an energy efficient network infrastructure for communication between distributed processing nodes
CN100385863C (zh) * 2005-12-29 2008-04-30 华为技术有限公司 一种媒体资源分配方法
WO2008003536A2 (en) 2006-07-07 2008-01-10 International Business Machines Corporation Method, system and computer program for determining the processing order of a plurality of events
US20080148275A1 (en) * 2006-10-30 2008-06-19 Alexander Krits Efficient Order-Preserving Delivery of Concurrent Messages
WO2008074528A1 (en) * 2006-12-19 2008-06-26 International Business Machines Corporation Method and system for reducing difference in the time of retrieval of data retrieved from different sources
US9112808B2 (en) 2007-02-06 2015-08-18 At&T Intellectual Property Ii, L.P. Devices, systems, and methods for providing data
US20080209435A1 (en) * 2007-02-23 2008-08-28 Microsoft Corporation Scalable workflow management system
US7711822B1 (en) * 2007-03-26 2010-05-04 Oracle America, Inc. Resource management in application servers
US20080270974A1 (en) * 2007-04-30 2008-10-30 Krasimir Topchiyski Enterprise JavaBeans Metadata Model
US8438144B2 (en) * 2010-08-27 2013-05-07 Oracle International Corporation Transactionally consistent database replay in an environment with connection pooling
US8326816B2 (en) 2010-05-06 2012-12-04 Oracle International Corporation Fine grain synchronization for database replay
US8611378B2 (en) * 2007-05-29 2013-12-17 Red Hat, Inc. Message handling multiplexer
US7733863B2 (en) * 2007-05-30 2010-06-08 Red Hat, Inc. Out of band messages
US7921227B2 (en) * 2007-05-30 2011-04-05 Red Hat, Inc. Concurrent stack
US7992153B2 (en) * 2007-05-30 2011-08-02 Red Hat, Inc. Queuing for thread pools using number of bytes
US8505028B2 (en) * 2007-05-30 2013-08-06 Red Hat, Inc. Flow control protocol
US9021503B2 (en) * 2007-11-16 2015-04-28 Microsoft Technology Licensing, Llc Coordinating application state and communication medium state
US8719841B2 (en) * 2007-11-16 2014-05-06 Microsoft Corporation Dispatch mechanism for coordinating application and communication medium state
US8505030B2 (en) * 2007-11-16 2013-08-06 Microsoft Corporation Coordinating resources using a volatile network intermediary
CN101262352B (zh) * 2008-03-04 2010-10-13 浙江大学 一体化安全管理中数据统一加速处理方法
US8205202B1 (en) * 2008-04-03 2012-06-19 Sprint Communications Company L.P. Management of processing threads
US8214747B1 (en) 2008-10-10 2012-07-03 Adobe Systems Incorporated Role based state and dynamic feature enablement for collaborative and non-collaborative workspaces and imbeded applications
US20100241760A1 (en) * 2009-03-18 2010-09-23 Microsoft Corporation Web Front-End Throttling
US20100250651A1 (en) * 2009-03-31 2010-09-30 Inventec Corporation Data access method for making asynchronous request to block device
US8301706B2 (en) 2009-06-15 2012-10-30 Microsoft Corporation Routing of pooled messages via an intermediary
US9292702B2 (en) * 2009-08-20 2016-03-22 International Business Machines Corporation Dynamic switching of security configurations
US8230478B2 (en) 2009-08-27 2012-07-24 International Business Machines Corporation Flexibly assigning security configurations to applications
US8296411B2 (en) * 2010-03-01 2012-10-23 International Business Machines Corporation Programmatically determining an execution mode for a request dispatch utilizing historic metrics
US8549538B2 (en) * 2010-03-18 2013-10-01 Microsoft Corporation Coordinating communication medium state for subtasks
US8250234B2 (en) 2010-04-26 2012-08-21 Microsoft Corporation Hierarchically disassembling messages
US9886315B2 (en) * 2010-08-27 2018-02-06 Ebay Inc. Identity and semaphore-based quality of service
US8756329B2 (en) 2010-09-15 2014-06-17 Oracle International Corporation System and method for parallel multiplexing between servers in a cluster
US9727396B2 (en) * 2010-11-30 2017-08-08 Red Hat, Inc. Message queue deployment
US20120151479A1 (en) 2010-12-10 2012-06-14 Salesforce.Com, Inc. Horizontal splitting of tasks within a homogenous pool of virtual machines
CN103164273A (zh) * 2012-09-06 2013-06-19 佳都新太科技股份有限公司 一种利用自扩展的阻塞算法将同步服务调用转换为异步并行式调用的方法
GB2507294A (en) 2012-10-25 2014-04-30 Ibm Server work-load management using request prioritization
CN103197968B (zh) * 2013-03-18 2016-03-30 焦点科技股份有限公司 一种融合同步异步特点的线程池处理方法及系统
CN104063279B (zh) * 2013-03-20 2018-12-28 腾讯科技(深圳)有限公司 任务调度方法、装置和终端
US10346148B2 (en) 2013-08-12 2019-07-09 Amazon Technologies, Inc. Per request computer system instances
US9280372B2 (en) 2013-08-12 2016-03-08 Amazon Technologies, Inc. Request processing techniques
US9348634B2 (en) 2013-08-12 2016-05-24 Amazon Technologies, Inc. Fast-booting application image using variation points in application source code
US9705755B1 (en) * 2013-08-14 2017-07-11 Amazon Technologies, Inc. Application definition deployment with request filters employing base groups
EP3146426A4 (en) * 2014-05-21 2018-01-03 Georgia State University Research Foundation, Inc. High-performance computing framework for cloud computing environments
CN104598563B (zh) * 2015-01-08 2018-09-04 北京京东尚科信息技术有限公司 高并发数据存储方法及装置
CN104793071A (zh) * 2015-03-28 2015-07-22 合肥天海电气技术有限公司 基于j2ee分布式技术的电网故障诊断系统
WO2017066966A1 (en) * 2015-10-22 2017-04-27 Oracle International Corporation System and method for providing mssq notifications in transactional processing environment
US10635497B2 (en) * 2017-05-05 2020-04-28 Cavium, Llc Method and apparatus for job pre-scheduling by distributed job manager in a digital multi-processor system
US10616346B2 (en) * 2017-07-28 2020-04-07 International Business Machines Corporation Server connection capacity management
CN109117260B (zh) * 2018-08-30 2021-01-01 百度在线网络技术(北京)有限公司 一种任务调度方法、装置、设备和介质
US11553047B2 (en) 2018-11-30 2023-01-10 International Business Machines Corporation Dynamic connection capacity management
CN109840144B (zh) * 2018-12-28 2023-09-19 航天信息股份有限公司 一种针对跨机构批量服务请求的信息服务调度方法及系统
CN110598155A (zh) * 2019-09-17 2019-12-20 北京锐安科技有限公司 一种Ajax请求调用方法、装置、计算机设备及存储介质
CN111193774A (zh) * 2019-12-10 2020-05-22 天翼电子商务有限公司 提高服务器系统吞吐量的方法、系统以及服务器系统
CN111538600B (zh) * 2020-02-25 2023-09-12 远景智能国际私人投资有限公司 消息处理方法、装置、计算机设备及存储介质
CN112612586A (zh) * 2020-12-24 2021-04-06 大唐互联科技(武汉)有限公司 一种基于反应式架构设计连接设备的方法及系统
CN113342764A (zh) * 2021-06-12 2021-09-03 四川虹美智能科技有限公司 不同云端服务器之间的数据同步方法及装置
US20240064207A1 (en) * 2022-08-16 2024-02-22 Capital One Services, Llc Systems and methods for asynchronous and synchronous network communication
CN117453422B (zh) * 2023-12-22 2024-03-01 南京研利科技有限公司 数据处理方法、装置、电子设备及计算机可读存储介质

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2149445A1 (en) * 1994-07-27 1996-01-28 Aziza Bushra Faruqi Separation and transmission control method and apparatus for a microkernal data processing system
US6006247A (en) * 1995-03-21 1999-12-21 International Business Machines Corporation Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US5928323A (en) * 1996-05-30 1999-07-27 Sun Microsystems, Inc. Apparatus and method for dynamically generating information with server-side software objects
US6006274A (en) * 1997-01-30 1999-12-21 3Com Corporation Method and apparatus using a pass through personal computer connected to both a local communication link and a computer network for indentifying and synchronizing a preferred computer with a portable computer
US6192389B1 (en) * 1997-03-28 2001-02-20 International Business Machines Corporation Method and apparatus for transferring file descriptors in a multiprocess, multithreaded client/server system
US5987454A (en) * 1997-06-09 1999-11-16 Hobbs; Allen Method and apparatus for selectively augmenting retrieved text, numbers, maps, charts, still pictures and/or graphics, moving pictures and/or graphics and audio information from a network resource
CA2220578A1 (en) * 1997-11-10 1999-05-10 Northern Telecom Limited Distributed service network
US6859451B1 (en) * 1998-04-21 2005-02-22 Nortel Networks Limited Server for handling multimodal information
US6189033B1 (en) * 1998-07-16 2001-02-13 Hewlett-Packard Company Method and system for providing performance guarantees for a data service system of a data access network system
US6304906B1 (en) * 1998-08-06 2001-10-16 Hewlett-Packard Company Method and systems for allowing data service system to provide class-based services to its users
US6480865B1 (en) * 1998-10-05 2002-11-12 International Business Machines Corporation Facility for adding dynamism to an extensible markup language
US6401126B1 (en) * 1999-03-10 2002-06-04 Microsoft Corporation File server system and method for scheduling data streams according to a distributed scheduling policy
US6691208B2 (en) * 1999-03-12 2004-02-10 Diva Systems Corp. Queuing architecture including a plurality of queues and associated method for controlling admission for disk access requests for video content
US6292792B1 (en) * 1999-03-26 2001-09-18 Intelligent Learning Systems, Inc. System and method for dynamic knowledge generation and distribution
US6031747A (en) * 1999-08-02 2000-02-29 Lockheed Martin Missiles & Space Company Interleaved synchronous flyback converter with high efficiency over a wide operating load range
US6880126B1 (en) * 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
US6718516B1 (en) * 1999-09-30 2004-04-06 International Business Machines Corporation Method for verifying context between multiple related XML tags in document object model (DOM)
US6732330B1 (en) * 1999-09-30 2004-05-04 International Business Machines Corporation Scripting language blocks to support multiple scripting languages in a single web page
US6516337B1 (en) * 1999-10-14 2003-02-04 Arcessa, Inc. Sending to a central indexing site meta data or signatures from objects on a computer network
US6321265B1 (en) * 1999-11-02 2001-11-20 Altavista Company System and method for enforcing politeness while scheduling downloads in a web crawler
US6779152B1 (en) * 1999-12-07 2004-08-17 International Business Machines Corporation Method for rotating a dynamic HTML table
US6421673B1 (en) * 1999-12-13 2002-07-16 Novient, Inc. Method for mapping applications and or attributes in a distributed network environment
US20020046286A1 (en) * 1999-12-13 2002-04-18 Caldwell R. Russell Attribute and application synchronization in distributed network environment
US6442550B1 (en) * 1999-12-14 2002-08-27 International Business Machines Corporation System and method in a collaborative data processing environment for customizing the quality of service on a per-client basis
US20010047385A1 (en) * 1999-12-30 2001-11-29 Jeffrey Tuatini Passthru to shared service funtionality
WO2001052090A2 (en) * 2000-01-14 2001-07-19 Saba Software, Inc. Method and apparatus for a web content platform
US7702995B2 (en) * 2000-04-24 2010-04-20 TVWorks, LLC. Method and system for transforming content for execution on multiple platforms
US6327628B1 (en) * 2000-05-19 2001-12-04 Epicentric, Inc. Portal server that provides a customizable user Interface for access to computer networks
US6763520B1 (en) * 2000-08-24 2004-07-13 Cognos Incorporated Fair assignment of processing resources to queued requests
CA2427354A1 (en) * 2000-10-31 2002-08-01 Michael Philip Kaufman System and method for generating automatic user interface for arbitrarily complex or large databases
US6910187B2 (en) * 2001-01-23 2005-06-21 Mci, Inc. Graphical user interface for procuring telecommunications services on-line
US7546576B2 (en) * 2001-06-15 2009-06-09 Lightsurf Technology, Inc. Software framework for web-based applications
US6948151B2 (en) * 2001-06-29 2005-09-20 International Business Machines Corporation System and method for dynamic packaging of component objects
US6886041B2 (en) * 2001-10-05 2005-04-26 Bea Systems, Inc. System for application server messaging with multiple dispatch pools
US6873984B1 (en) * 2002-02-20 2005-03-29 Oracle International Corporation Data mining recommendation web beans and JSP tag libraries
US7080379B2 (en) * 2002-06-20 2006-07-18 International Business Machines Corporation Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011501254A (ja) * 2007-10-15 2011-01-06 インターナショナル・ビジネス・マシーンズ・コーポレーション セッション・アフィニティを使用する分散環境においてフェイルオーバを処理する方法及びシステム
JP2016509306A (ja) * 2013-01-31 2016-03-24 オラクル・インターナショナル・コーポレイション クラスタにおけるワークシェアリング多重化をサポートするためのシステムおよび方法
JP2019071108A (ja) * 2013-02-28 2019-05-09 オラクル・インターナショナル・コーポレイション コンカレントプライオリティキューにおいてシーケンサを用いるためのシステムおよび方法
US10261902B2 (en) 2016-01-04 2019-04-16 Toshiba Memory Corporation Parallel processing of a series of data units for writing
JP2022543994A (ja) * 2019-08-05 2022-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散処理システムのリソース評価方法、システム、プログラム
JP7461696B2 (ja) 2019-08-05 2024-04-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散処理システムのリソース評価方法、システム、プログラム

Also Published As

Publication number Publication date
EP1438678B1 (en) 2016-11-16
CN1589442A (zh) 2005-03-02
JP4287276B2 (ja) 2009-07-01
US20050149612A1 (en) 2005-07-07
EP1438678A1 (en) 2004-07-21
US20030093499A1 (en) 2003-05-15
EP1438678A4 (en) 2009-07-29
AU2002362654B2 (en) 2008-03-06
US6886041B2 (en) 2005-04-26
WO2003032185A1 (en) 2003-04-17
CN100342369C (zh) 2007-10-10

Similar Documents

Publication Publication Date Title
JP4287276B2 (ja) 多重発送プールを用いたアプリケーションサーバーのメッセージングのためのシステム
EP1438674B1 (en) System for integrating java servlets with asynchronous messages
AU2002362654A1 (en) System for application server messaging with multiple dispatch pools
AU2002362656A1 (en) System for integrating java servlets with asynchronous messages
EP1235150B1 (en) Apparatus and method for processing servlets
US7882501B1 (en) System and method for enabling dynamic modifed class reloading in an application server environment
US7530081B2 (en) System for creating a dynamic OGSI service proxy framework using runtime introspection of an OGSI service
JP4690437B2 (ja) ネットワークアプリケーションにおける通信方法、通信装置及びそのためのプログラム
Fay-Wolfe et al. Real-time CORBA
KR20010041297A (ko) 원격 프로세스의 중단과 연속 방법 및 장치
Picioroaga Scalable and Efficient Middleware for Real-time Embedded Systems. A Uniform Open Service Oriented Microkernel Based Architecture
Chen et al. Research on client/server communication mechanism in autosar system
Schmidt et al. TAO: a High-performance ORB Endsystem Architecture for Real-time CORBA
Joshi Operating Systems
Sharifi et al. CMI: a method to configure CORBA remote calls in support of FT-CORBA fault-detection mechanisms
Pyarali Patterns for Providing Real-Time Guarantees in DOC Middleware-Doctoral Dissertation, May 2002
Qian et al. Personal Assistant: A Case Study on Web Service vs. Web Based Application.

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050928

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071203

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080303

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080916

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081216

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090116

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

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

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

Free format text: PAYMENT UNTIL: 20120403

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4287276

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20120403

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120403

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130403

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130403

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140403

Year of fee payment: 5

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

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

EXPY Cancellation because of completion of term