JP2005505833A - 多重発送プールを用いたアプリケーションサーバーのメッセージングのためのシステム - Google Patents
多重発送プールを用いたアプリケーションサーバーのメッセージングのためのシステム Download PDFInfo
- 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
Links
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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/50—Network services
- H04L67/60—Scheduling 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/61—Scheduling 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
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(初期パラメータ)部を含む。
【0056】
実行キューを使用するためのJSPの構築
JSPは、サーブレットのように記載することができる。以下のコード例は、「テストキュー」という名前のキューを使用するように記載されたJSPを示している。
【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記載のシステム。 - 前記キューの要求に応じるためにスレッドを使用する請求項1記載のシステム。
- 構成ファイル内において、各リソースについて多重キューを構成することができる
請求項1記載のシステム。 - 前記サーバーが、前記発送ポリシーにより、直接発送又はキュー待ち発送のいずれかを指定する、
請求項1記載のシステム。 - 前記リソースがサーブレットである請求項1記載のシステム。
- 前記リソースがJavaサーブレットページである請求項1記載のシステム。
- 前記リソースが個々のキューの名前に対応付けられる請求項1記載のシステム。
- 各キューが複数の関連スレッドを持ち、当該スレッドの数は、前記キューに関連する要求の優先順位付けを可能とするように構成することができる、
請求項1記載のシステム。 - 前記複数の実行キューが、非同期スレッドプール及び同期スレッドプールを使用する請求項1記載のシステム。
- クライアントアプリケーションからサーバーリソースへの要求を受け取り、かつ処理するための方法であって、
サーバーリソースにアクセスすることについてのクライアントからの要求を受け取るステップと、
前記要求を複数の実行キューの中の一つのキューに入れるステップと、
を含み、前記キューに入れるステップが、前記キューの中の選択された一つのキューに特定の要求を入れるようリソース毎に構築することのできる発送ポリシーに従って、前記サーバーリソースへのアクセスの要求をキューに入れるように構成することができる、
ことを特徴とする方法。 - 前記要求が、前記リソースにアクセスするときに前記クライアントアプリケーションに提供すべきサービスの品質を指定するようになった、
請求項11記載の方法。 - 前記キューの要求に応じるためにスレッドを使用する請求項11記載の方法。
- 設定ファイルの中で、各リソースについて多重キューを構成することができる、
請求項11記載の方法。 - 前記クライアントアプリケーションが、直接発送又はキュー待ち発送のいずれかを指定する、
請求項11記載の方法。 - 前記リソースがサーブレットである請求項11記載の方法。
- 前記リソースがJavaサーブレットページである請求項11記載の方法。
- 前記リソースが個々のキューの名前に対応付けられる請求項11記載の方法。
- 各キューが複数の関連スレッドを持ち、当該スレッドの数が前記キューに関連する要求の優先順位付を可能とするように構成することができる、
請求項11記載の方法。 - 前記複数の実行キューが、非同期スレッドプール及び同期スレッドプールを使用する、
請求項11記載の方法。
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)
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)
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)
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 |
-
2002
- 2002-10-03 US US10/264,439 patent/US6886041B2/en not_active Expired - Lifetime
- 2002-10-04 EP EP02800901.7A patent/EP1438678B1/en not_active Expired - Lifetime
- 2002-10-04 AU AU2002362654A patent/AU2002362654B2/en not_active Expired
- 2002-10-04 WO PCT/US2002/031724 patent/WO2003032185A1/en active Application Filing
- 2002-10-04 CN CNB028228723A patent/CN100342369C/zh not_active Expired - Lifetime
- 2002-10-04 JP JP2003535082A patent/JP4287276B2/ja not_active Expired - Lifetime
-
2005
- 2005-03-01 US US11/069,490 patent/US20050149612A1/en not_active Abandoned
Cited By (6)
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 |