JP2005505831A - Javaサーブレットを非同期メッセージと統合するための方法 - Google Patents
Javaサーブレットを非同期メッセージと統合するための方法 Download PDFInfo
- Publication number
- JP2005505831A JP2005505831A JP2003535078A JP2003535078A JP2005505831A JP 2005505831 A JP2005505831 A JP 2005505831A JP 2003535078 A JP2003535078 A JP 2003535078A JP 2003535078 A JP2003535078 A JP 2003535078A JP 2005505831 A JP2005505831 A JP 2005505831A
- Authority
- JP
- Japan
- Prior art keywords
- servlet
- response
- request
- client
- http
- 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.)
- Pending
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/12—Protocol engines
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
【0001】
本発明は、一般的に、アプリケーションサーバー及びトランザクションサーバーに関するものであり、特に多重実行キューを用いたメッセージキューイング及びスレッドをサポートするためのシステムに関するものである。
【0002】
(著作権表示)
本特許文献の開示の一部は、著作権保護を条件とする題材を含むものである。特許商標庁の書類又は記録に掲載される限り、著作権者は、本特許文献又は本特許開示の何人による複写複製にも異議はないが、しかしもしそうでなければ一切の無断転載を禁ずる。
【0003】
(優先権の主張)
本出願は、2001年10月5日に出願された「非同期キューを用いたアプリケーションサーバーメッセージングのためのシステム」という名称の米国特許仮出願60/327,530号に基づく優先権を主張するものであり、この出願は引用により本出願に組み入れられる。
【0004】
(相互引用)
本出願は、2001年10月5日に出願された「多重発送プールを用いたアプリケーションサーバーメッセージングのためのシステム」という名称の米国特許仮出願60/327,543号、及び、2002年10月3日に出願され、発明者がAdamMessinger及びDonFergusonである「多重発送プールを用いたアプリケーションサーバーメッセージングのためのシステム」という名称の米国特許出願、に関連するものであり、双方の出願とも引用により本出願に組み入れられる。
【背景技術】
【0005】
Java2プラットフォームエンタープライズエディション(J2EE)の仕様は、多層企業アプリケーションを開発するための現行標準の一つを定義するものである。J2EEは、企業アプリケーションの設計、開発、組み立て、及び導入のコンポーネントベースの手法を提供し、これはコストを減らし、かつ設計及び実装をしっかりしたものにすることを可能にする。J2EEプラットフォームは、開発者に、多層分散アプリケーションモデル、コンポーネントを再利用する能力、統一セキュリティモデル、及び柔軟なトランザクション制御を提供する。それらは、これまでになく早く市場に革新的なカスタマーソリューションを届けることができるだけでなく、その結果として生じた、プラットフォームに依存しないJ2EEコンポーネントベースのソリューションは、如何なるベンダーの製品及びアプリケーションプログラムインターフェース(API)とも結び付くものではない。
【0006】
J2EE仕様は、以下の種類のコンポーネントを定義する。アプリケーションクライアントコンポーネント、企業Javaビーン(EJB)、サーブレット及びJavaサーバーページ(JSP)(ウェブコンポーネントとも言う)、及びアプレットである。多層分散アプリケーションモデルは、アプリケーションロジックが機能に応じてコンポーネントに分かれること、及び、異なるアプリケーションコンポーネントが同じサーバー上又は異なるサーバー上でJ2EEアプリケーションを作り上げることができることを、暗に示している。アプリケーションコンポーネントが実際にどこにインストールされるかは、そのアプリケーションコンポーネントが多層J2EE環境の中のどの層に属するかによって決まる。これらの層を図1に示す。そこ示すように、アプリケーションサーバー層104は、EJBコンテナ及び/又はサーブレット、JSP、及びhtmlページ114のような表示用コンテナを開発するのに使用される。これらは、クライアント108及びクライアントアプリケーションが配置されるクライアント層102と、企業リソース計画(ERP)システムのような企業アプリケーション又は従来アプリケーションのホストとして働くために使用される後端層106との間のインターフェースとして、交替で使用される。
【0007】
クライアント層−会社のファイアウォールの内側でも外側でも、これらはブラウザ、Javaベースのプログラム、又はクライアント層内で動作する他のウェブイネーブルのプログラミング環境、とすることができる。
【0008】
アプリケーションサーバー層−通常、この層は、クライアント要求をサポートするため、表示用ロジック及びビジネスロジックの組み合わせのホストとして働く。表示用ロジックは、HTMLページを表示するJSPページ及びサーブレットを介してサポートされるが、一方、ビジネスロジックは、遠隔メソッド呼び出し(RMI)オブジェクト及びEJB112を介してサポートされる。ビーンを実行する実行時環境を共に作り上げるトランザクション、ライフサイクル及び状態管理、リソースプーリング、セキュリティ等を、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ドキュメントを含む応答をクライアントに送る。サーブレットはCGIに似ているが、しかしJavaクラス及びストリームを使用するので典型的には、より書きやすい。サーブレットはJavaバイトコードにコンパイルされ、かつ実行時にはサーブレットインスタンスがメモリ内に保持されるので、それらはより高速に実行され、各クライアント要求は新たなスレッドを生む。サーブレットにより、動的なやり方でHTTP応答ストリームへのデータを生成することが容易となる。各クライアント要求は新たな接続として実行され、そのため当然、フロー制御は要求間には出現しない。このセッション管理に備えることは、要求間の特定のクライアントの状態を保持することとなる。幾つかのアプリケーションサーバーでは、サーブレットは、メソッド要求間のそれらの状態を格納するためにHTTPセッションオブジェクトを利用する。フェイルオーバーの目的のため、クラスタ化された環境の中でこのオブジェクトを複製することができる。
【0014】
Javaサーバーページ
JSPページは、サーブレットを開発するための、テキストベースの表示専用の方法である。JSPページはサーブレットの全ての利点を提供し、かつJavaビーンクラスと組み合わされる時、内容と表示用ロジックをそれぞれ別々にわけておくための容易な方法を提供する。JSPページ及びサーブレットの双方とも、プラットフォームに依存せず、かつより少ないオーバーヘッドを使用するので、共通ゲートウェイインターフェース(CGI)よりも望ましい。JSPページは、似たような外観及び雰囲気を持つページから成るウェブサイトを構築するためのウェブテンプレートを定義するために、Javaビーンクラスと共に使用することができる。Javaビーンクラスがデータレンダリングを実行し、そのため、テンプレートは全くJavaコードを持たない。これは、HTMLエディタによってテンプレートを保持できることを意味する。JSPページを使用する単純なウェブベースのアプリケーションは、内容を、Javaビーンクラスではなくカスタムタグ又は小スクリプトを使用するアプリケーションロジックと結び付けるのに使用することができる。カスタムタグは、JSPページに取り込まれるタグライブラリにまとめて束ねられる。小スクリプトは、JSPページに直接埋め込まれる小さなJavaコードセグメントである。
【0015】
Javaメッセ−ジングサービス(JMS)
JMSは、Javaプログラム間でのメッセージの交換をサポートするために使用されるJ2EE機構である。これはJavaが非同期通信をサポートする方法であり、ここでは送信者及び受信者が互いを意識する必要がなく、そのため独立して動作することができる。JMSは、二つのメッセ−ジングモデルをサポートする。
【0016】
ポイントツーポイント(point to point)−これはメッセージキューに基づくものである。このモデルでは、メッセージ作成者がキューにメッセージを送る。メッセージ消費者は、メッセージを検出しようとするために、自分自身をキューに接続することができる。メッセージがキューに到着するとき、消費者はキューからそれを取り外し、かつそれに応答する。メッセージは、ただ一つのキューに送ることができ、かつただ一人の消費者により使用されるであろう。消費者は、自分達が必要とする厳密なメッセージ形式を指定するために、メッセージを選別するという選択肢をもつ。
【0017】
発行及び購読(publish and subscribe)−これは、メッセージ作成者がある話題に対してメッセージを送ることを可能にし、かつその話題について登録されている全てのメッセージ消費者がそれらのメッセージを検索することを可能にする。この場合、多くの消費者が同じメッセージを受け取ることができる。
【0018】
現行のサーブレットAPIに関する一つの問題は、完全同期プログラミングモデルである。要求が特定のスレッドに発送された後、適切なサーブレットのservice()メソッドが呼ばれる。そのservice()メソッドが戻ってきた時、応答が送られる。これは、作業の多くの形式に適する単純なプログラミングモデルであるが、しかし、サーブレットを実行するスレッドはイベントが起こるまでブロックしなければならないので、応答が送られ得る前に非同期イベントが起こらなければならない場合には最適ではない。
【0019】
(要約)
本発明は、応答を送る準備ができる前に、service()メソッドが戻ってくることを可能にする(それゆえ、スレッドを開放することが可能となる)非同期スレッド化のためのシステム、及び方法を提供する。次に、非同期イベントが後に発生する時、応答を完成させ、送ることができる。この機構の使用例は、サーブレットを組み合わせたJMSの使用である。
【0020】
本発明に従って、プロセスは、サーブレットが実行される時に開始する。サーブレットは、応答の一部分を構築するが、しかし典型的には、応答を完成させるためにより多くのデータを必要とする。それは、待っている間、データを要求するJMSメッセージをキューに入れ、必要なデータを含むJMSメッセージが到着した時に見つけることができる場所に、その応答オブジェクトを置いておく。この時点でサーブレットは戻ってくることができるが、しかしその応答はまだ送られないであろう。その後の時点で、例えばJMSを介してデータが到着した時、対応する応答オブジェクトを検索する。次いで、応答の残りの部分を作成することができる。応答が完成した時、それは明らかにクライアントに送ることができる。
【0021】
この機能はまた、JSPタグライブラリの使用を通じて利用可能である。タグを使って、JSPページの作者は、非同期イベントの前に何の作業を行うべきか、及び非同期イベントの後にどの作業を行うべきかを指定する。非同期イベントの後にそれらが元通りになり、及びその処理が中断せずに続くことができることを確実にするために、この機能はJSP状況機構と一体化する。
【0022】
(詳細な説明)
大雑把に説明すると、本発明は、非同期スレッド化を可能にするシステム、及び方法を提供する。本発明は、アプリケーションプログラミングインターフェース(API)を介してのサーブレットへのアクセスを可能にするアプリケーションサーバーシステムの中に組み込むことができる、又は非同期スレッド化の恩恵を受ける他のシステムの中に組み込むことができる。
【0023】
典型的なサーブレットAPIは、完全に同期する。要求がスレッドに発送された後、適切なサーブレットのservice()メソッドが呼ばれる。service()メソッドが戻ってきた時、応答が送られる。この単純なプログラミングモデルは、作業の多くの形式に適しているが、しかし、サーブレットを実行するスレッドはイベントが発生するまでブロックしなければならないので、応答を送る前に非同期イベントが発生しなければならない場合には最適ではない。
【0024】
一実施形態では、本発明は、応答を送る準備ができる前に、service()メソッドが戻ってくることを可能にする(それゆえ、スレッドを開放することが可能となる)サーブレットAPIへの拡張を提供する。次に、非同期イベントが後で発生する時、その応答を完成させ、かつ送ることができる。この機構の一使用例は、サーブレットを組み合わせたJMSの使用である。
【0025】
この実施形態では、サーブレットが実行される時、それは応答の一部分を構築するが、しかし次いで、典型的にはその応答を完成させるためにより多くのデータを必要とする。それは、データを要求するJMSメッセージをキューに入れ、及び、必要なデータを含むJMSメッセージが到着した時に見つけることができる場所にその応答オブジェクトを置いておく。この時点でサーブレットは戻ってくることができるが、しかし応答はまだ送られていないであろう。後で、JMSを介して要求されたデータが到着した時、その応答オブジェクトを検索する。次に、応答の残りの部分を作成することができ、かつ、それが完成した時、明らかにそれをクライアントに送ることができる。
【0026】
本発明は主に、BEAシステム社の製品のウェブロジックファミリーのようなアプリケーションサーバー、トランザクションサーバー、及びメッセ−ジングサーバーにおける使用のために設計されている。典型的なサーバー設計の中核において、スレッド化モデルは、作業要求を実行するためにスレッドを割り当てるポリシーである。サーブレット要求がサーバーに到着した時、それらはスレッドに発送される。このスレッドは、要求されたサーブレットの実行を担っている。サーバーは、非同期プール(しばしば読み取りスレッドと呼ばれる)及び同期プール(実行スレッドと呼ばれる)という二つのスレッドプールを使用するスレッド化モデルを採用する。このプールの併用は、ブロック化動作を実行するユーザーコードを容認する一方で、開発者又は管理が効果的に要求を優先順位付けすることを可能にする。
【0027】
図2は、本発明の実施形態に従ってスレッド化ポリシー機構206を示している。非同期読み取り結果が利用可能となるように、非同期スレッド化プール208は非同期入力機構202(多重化装置)に応対する。結果が利用可能となると、プールのスレッドは、メッセージを見て、かつ適切なコールバックを作ることによりそれを発送する。発送コールバックは普通、同期スレッドプールによる後での処理のための要求をキューに入れる。しかしながら、特定のブロック化なしの優先要求は、コールバックの中で直接処理される。積極的に入力を受け入れることにより、優先度の低い要求212が実行している間、優先度の高い要求214は読み取られるのを待つことはない。これらのスレッドは決してブロックすべきでないので、おそらくプロセッサ(CPU)につき一つの、より少数のスレッドが普通存在する。
【0028】
同期スレッドプール210は、要求のキュー204に応対する。要求が利用可能になると、プールプロセスのスレッドが、その要求をキューから取り出し、それを処理し、及び結果216を送出する。要求を処理する間、スレッドは、結果の送出のようなコードを実行することができ、これによりスレッドはブロックする。それゆえ、動作可能状態のCPUにつき一つのスレッドが常に存在するように、スレッド数を調整すべきである。発送ポリシーについては、2001年10月5日に出願された、発明者AdamMessingerの「多重発送プールを用いたアプリケーションサーバーメッセ−ジングのためのシステム」という名称の米国特許仮出願60/327,543号、及び、2002年10月3日に出願された、発明者AdamMessinger及びDonFergusonの「多重発送プールを用いたアプリケーションサーバーメッセ−ジングのためのシステム」という名称の審査中の米国特許出願の中で、より詳細に説明されている。
【0029】
図3は、従来の同期メッセージ応答機構を示している。そこに示すように、例えばウェブブラウザアプリケーションのようなクライアントアプリケーション302からの要求は、サーブレット304を介してアプリケーションサーバーに伝達される。要求はハイパーテキスト転送プロトコル(HTTP)要求306型とすることができ、そのため、クライアントは典型的にハイパーテキストマークアップ言語(html)応答308を期待するであろう。同期モデルでは、スレッドはサーブレットを実行し、次にサーブレットの実行が完了した時、即座にクライアントに応答を送る。この手法に関する問題は、サーブレットの実行全体のために実行スレッドを使い果たしてしまうことである。サーブレットが、ブロックするタスクを実行し、おそらく他のデータを待っている場合には、これはサーバーリソースの消耗となり得る。
【0030】
図4は、クライアントがサーバーのリソースにアクセスする場合の典型的なシステムライフサイクルを示している。図4に示すように、HTTPクライアント402は、典型的にリモートのウェブサーバー上で動作するサーブレット408にアクセスする。例示の目的のためにHTTPクライアントをここに示したが、本発明はそれに限定されず、他の形式のクライアントアプリケーションにおいて使用できることは、当業者には明らかであろう。図4のライフサイクルダイヤグラムに示すように、HTTPクライアントは、サーブレットコンテナ404を介してサーブレットにアクセスする。サーブレットコンテナは、HTTP要求410を受け取り、及び処理のためにそれをサーブレット408に渡す。このHTTP要求を処理する動作の大半は、サーブレット応答層406で起こる。図4に示すように、時間がページの鉛直下向きに進むにつれて、プロセスは、サーブレットへの初期化(init)コール412を続け、それは応答ハンドラ406により処理される。次に、サーブレットコンテナは、例えばデータを検索する又は更新するために、サーブレットへサービス(service)要求414を渡す。このようなシステムは電子商取引環境で典型的に使用され、そこでは飛行時間の探索の結果等のようなカタログリストを検索するようにクライアントアプリケーションが設計される。サーブレットは、典型的に、サーブレット応答ハンドラに出力416を書き出すことにより、要求に応答する。このステップは、しばしば、バッファリング及び最適化の目的のために必要である。次に、サーブレットコンテナが、クライアントに応答を返すことを要求する時、それは応答ハンドラに送信(send)要求418を送り、及び応答ハンドラは送信応答(send response)420をサーブレットコンテナに返す。次にこの応答は、HTTP応答422としてクライアントに送られる。
【0031】
図5は、本発明の実施形態に従って使用することのできる同様なライフサイクルを示している。図5に示すように、リモートサーバー、サーバーリソース、又はサーブレット508にアクセスするために、再びHTTPクライアント502を使用する。HTTP要求510は、サーブレット応答ハンドラ506に初期化(init)要求512を発行するサーブレットコンテナ504により、処理される。しかしながら今回は、サービス(service)要求514が処理のためにサーブレットに伝達した時、サーブレットは即座に応答ハンドラに516を返す。それらの要求を処理するためにサーブレットが自発的にデータを返すのを待つ必要がないということから、この即座の返答は、次に続く要求を処理するために応答ハンドラを開放する。ある時間t520の後、その要求に返すための適切なデータをサーブレットが有するとき、サーブレットは送信(send)信号518を応答ハンドラに送り、次にそれは送信(send)応答522をサーブレットコンテナに送る。次に続くHTTP応答524は、前記のようにクライアントに伝達される。
【0032】
上で説明したプロセスの一部として、サーブレットは、伝達すべき何か他のものを持つまで応答コードをセットし、効果的にコンテナ層から応答し、かつサーブレット層にそれを置く。実際に、サーブレットが送信(send)応答を発行するために待つ時間の総計は、ある任意の時間と定義することができる、又は、非同期メッセージの結果として、例えばその情報がクライアントに送信するのに利用可能であることを示すJMSメッセージを受け取った結果として実行されるものとすることができる。この形式の処理は、例えば、ユーザーが探索結果を待つときに典型的に遅延時間を経験する電子商取引のサイトで役立つものである。本発明により処理を実行するとき、ただ単に画面がフリーズするのではなく、ユーザーは、情報のうちの幾つかの項目を受け取ることができ、一方で他の項目は、サーブレットが適切なデータを見つけ及びそれを返す時に、一つずつ返される。同時に、サーブレット応答ハンドラは、他のクライアント要求を処理するために利用可能である。開発者は、即座に返されるデータの形式、及び後で返される形式を指定することができる。
【0033】
図6及び図7は、多重要求を処理するために適用される時の、本発明の動作をより詳細に示している。図6に示すように、非同期メッセ−ジングを使用しない時、クライアントからの次に続く要求を逐次的手法で処理しなければならない。そのため、例えば図6では、クライアントAからの第一のHTTP要求410は、クライアントB403からの第二のHTTP要求430が対応される前に、サーブレットコンテナ404及びサーブレット応答ハンドラ406により対応され、かつ完全に処理される。全体的な結果は、二つのクライアントからのHTTP要求を処理するために二倍の時間がかかるというものとなる。要求をこの逐次的手法で処理しない場合には、おそらく、処理時にユーザーが遅延を経験するであろうように、一又はそれ以上の要求が他の要求に対して未処理の仕事を作成するであろう。
【0034】
図7は、異なるスレッドで処理を実行できるような非同期手法で、単一クライアントからの多重要求及び/又は多重クライアントからの要求を処理するために非同期メッセ−ジングを使用する、本発明の実施形態に従った機構のライフサイクルを示している。図7に示すように、第一のHTTPクライアントA502及び第二のHTTPクライアントB503は、上で説明した機構を使ってサーブレットリソース508にアクセスする。この実施形態に従うと、第一のHTTP要求A510がサーブレットコンテナで受け取られる時、それは応答ハンドラにより初期化(init)Aコール512を使って処理され、次にサービス(service)要求514としてサーブレット508に渡される。サーブレットは、サーブレット応答ハンドラに即座に516を返し、次いでこれは、他の要求を処理するため応答ハンドラを開放する。図7に示すように、第二のHTTP要求Bは、初期化(init)Bコール532としてサーブレット応答ハンドラにより即座に対応され、処理のためのサービス(service)要求534としてサーブレットに渡される。再び、サーブレットは即座に536を返す。この手法におけるメッセージの差込みは、双方の要求を処理するための全体的な時間を減らし、かつ、情報が利用可能になった時及び場合にサーブレットがそれをクライアントに返すことを可能にする。例えば、図7に示すように、要求Aに応答するのに必要な情報をサーブレットが見つけた時、HTTP応答A524としてクライアントに回送するために、送信応答(send response)A信号522をサーブレットコンテナに返す。第二の送信応答(send response)B信号542及びHTTP応答B544は、同じ方法で同様に処理される。
【0035】
実装
ファイルサーブレットは、ネットワーク上のファイルの非同期送信をサポートするプラットフォーム上の高速ファイルサーブレットに置き換えることができる。この形式のサーブレットの実装は、サーブレットのための非同期応答の付加を要求し、これについては下記で説明する。
【0036】
同期及び非同期応答
リモートクライアントからのサーブレット要求が処理される時、しばしば応答が要求される。この応答は、要求を処理したのと同じスレッドにより送信するときには同期、又は異なるスレッドで後で送信するときには非同期、のいずれかとすることができる。この解析は、サーバー側の観点からのものである。クライアント側の観点からすれば、リモート要求がどのように作成されるかによって、どちらの形式の応答も、それを待つことを阻止できる又はできないとすることができる。
【0037】
現在、ほとんどの要求は同期手法で処理される。サーブレット要求を処理する時、処理スレッドが他の要求に移り得る前に、すべての処理を完了しなければならない。この同期モデルは、RMI及びサーブレット仕様により指定されるものである。これに対する従来の理由は、非同期コードを書くことは非常に難しく、そのためエラーを起こしがちということにある。
【0038】
非同期手法で要求に応答できる能力が、スレッドを保存するのに非常に役立つであろう特定の状況が存在する。これは、サーバーが一又はそれ以上の長く実行中の外部リソースの要求を作成する必要がある場合、又は要求を処理する間にサーバーがある状況に応対する必要がある場合に、典型的には真である。これの例は、現在空であるJMSキューからメッセージを取り出すというクライアント要求である。同期モデルでは、その要求を処理するスレッドは、クライアントに戻すべきメッセージがキューに存在するようになるまでブロックされる。非同期モデルでは、スレッドは要求を取っておくことができ、かつ他の要求を処理し続けることができる。メッセージがキュー内に置かれた時、その要求を発見し、かつ応答をクライアントに返すことができる。本発明は、サーバーがRMI及びサーブレット要求への非同期応答をサポートすることを可能にする。
【0039】
サーブレット
特定のサーブレットは、自己の配置記述子の中で非同期と宣言することができる。非同期サーブレットのserviceメソッド(サービスメソッド)が戻ってきた時には、その要求に対して何の更なる措置も取られないであろう。サーブレットは、その要求を、何か他の動作が起こった後に、それを検索し及びその応答を送ることができるようなどこかの場所に格納する。この時点で、ストリームを押し流し、要求のログを取り、かつそれが生きたままの接続である場合にはより多くのデータを受け取るためにソケットを多重化装置に登録する要求について、特別なsendメソッド(送信メソッド)が呼ばれるはずである。長く実行中の要求をタイムアウトさせることにより、リソースを適度に開放することを確実にする実装を作成することは重要であり、これによりガーベッジコレクション及び他のクリーンアップためのリソースを開放する。
【0040】
JSP
非同期モデルもまた、JSPタグライブラリの使用を通じて同様な手法でサポートすることができる。これらのタグライブラリは、非同期イベントよりも先にウェブページのどの部分を実行すべきか、及び非同期イベントの後にどの部分を実行すべきかを指定するために、http開発者/ページ作成者が使用する。タグライブラリは、非同期イベントが発生しかつJSPページ実行を再開すべき時が知らされるはずであるオブジェクトに作成者がアクセスすることを可能にする。
【0041】
タグライブラリを使用している時、その非同期イベントについて登録する前に、ページの実行状況を自動的に格納することができる。このように、非同期プログラミングの詳細の多くを、JSP作成者から見えないようにすることが可能である。JSPは状態維持について心配する必要はない。標準の範囲(ページ、要求、セッション又はアプリケーション)のいずれかに格納された状態は、同期JSPを使用して行うであろうように動作しつづけるであろう。
【0042】
本発明の上述の説明は、例証及び説明の目的のために提供されたものである。これは、網羅的なもの、又は本発明を開示した厳密な形態に限定することを意図するものではない。明らかに、多くの修正及び変形が当業者には明白であろう。本実施形態は、本発明の原理及びその実用例を最もよく説明するために選択され、かつ説明されたものであり、そのため他の当業者が、意図する特定の使用に適した様々な修正を伴った、様々な実施形態における本発明を理解することが可能となる。本発明の技術的範囲は、次の特許請求の範囲及びその均等技術により定められることを意図している。
【図面の簡単な説明】
【0043】
【図1】本発明を利用することができるJ2EE互換アーキテクチャを示している。
【図2】本発明の実施形態に従った、非同期スレッドプールを用いたスレッド化ポリシーを示している。
【図3】同期スレッド化処理のダイヤグラムを示している。
【図4】従来のメソッドを使って処理される単一のHTTP要求のライフサイクルを示している。
【図5】非同期メッセ−ジングを使って処理される単一のHTTP要求のライフサイクルを示している。
【図6】従来のメソッドを使って処理される複数のHTTP要求のライフサイクルを示している。
【図7】非同期メッセ−ジングを使って処理される複数のHTTP要求のライフサイクルを示している。
Claims (12)
- Javaサーブレットとサーブレットハンドラとの間の非同期メッセ−ジングのためのシステムであって、
サーブレット及びサーブレット応答ハンドラを含むサーバーと、
HTTPクライアントから要求を受け取り、HTTPクライアントへ応答を送るためのHTTPインターフェースと、
を備え、クライアントからの要求は、サーブレットが即座にある特定の応答データを返すこと、及び次に続く応答で使用するための応答コードをセットすることを可能にするものである、
ことを特徴とするシステム。 - 前記サーブレットの次に続く応答が、更なる応答データを送る応答コマンドによりトリガされる、
請求項1記載のシステム。 - 前記応答コマンドがJMSメッセージである、請求項2記載のシステム。
- 前記サーブレット及びサーブレット応答ハンドラの機能が、JSPタグライブラリを介してユーザーに公開される、
請求項1記載のシステム。 - 前記JSPタグライブラリが、どのHTTP応答データを即座に返すべきか、及びどの応答データを後で返すべきかを示すために使用される、
請求項4記載のシステム。 - JSP実行状況のサポートをさらに備える請求項4記載のシステム。
- Javaサーブレットとサーブレットハンドラとの間の非同期メッセ−ジングのための方法であって、
サーブレットリソースにアクセスするためのHTTPクライアントからの要求を受け取るステップと、
前記要求に非同期的に応答するステップと、
を含み、クライアントからの要求は、サーブレットが即座にある特定の応答データを返すこと、及び次に続く応答で使用するための応答コードをセットすることを可能にするものである、
ことを特徴とする方法。 - 前記サーブレットの次に続く応答が、更なる応答データを送る応答コマンドによりトリガされる、
請求項7記載の方法。 - 前記応答コマンドがJMSメッセージである、請求項8記載の方法。
- 前記サーブレット及びサーブレット応答ハンドラの機能が、JSPタグライブラリを介してユーザーに公開される、
請求項7記載の方法。 - 前記JSPタグライブラリが、どのHTTP応答データを即座に返すべきか、及びどの応答データを後で返すべきかを示すために使用される、
請求項10記載の方法。 - JSP実行状況のサポートをさらに備える請求項10記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US32753001P | 2001-10-05 | 2001-10-05 | |
US10/264,973 US7003570B2 (en) | 2001-10-05 | 2002-10-03 | System for integrating java servlets with asynchronous messages |
PCT/US2002/031727 WO2003032181A1 (en) | 2001-10-05 | 2002-10-04 | System for integrating java servlets with asynchronous messages |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005505831A true JP2005505831A (ja) | 2005-02-24 |
JP2005505831A5 JP2005505831A5 (ja) | 2006-01-05 |
Family
ID=26950863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003535078A Pending JP2005505831A (ja) | 2001-10-05 | 2002-10-04 | Javaサーブレットを非同期メッセージと統合するための方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7003570B2 (ja) |
EP (1) | EP1438674B1 (ja) |
JP (1) | JP2005505831A (ja) |
CN (1) | CN1302409C (ja) |
AU (1) | AU2002362656B9 (ja) |
WO (1) | WO2003032181A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007122189A (ja) * | 2005-10-25 | 2007-05-17 | Canon Inc | スケジュール実行装置及びプログラム |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7617273B2 (en) * | 2002-11-15 | 2009-11-10 | Sun Microsystems, Inc. | Method and apparatus for providing a unified component architecture for client-side and server-side components |
US7617278B1 (en) | 2003-01-29 | 2009-11-10 | Adobe Systems Incorporated | Client controllable server-side playlists |
US7246356B1 (en) * | 2003-01-29 | 2007-07-17 | Adobe Systems Incorporated | Method and system for facilitating comunications between an interactive multimedia client and an interactive multimedia communication server |
US7272658B1 (en) | 2003-02-13 | 2007-09-18 | Adobe Systems Incorporated | Real-time priority-based media communication |
US7287256B1 (en) | 2003-03-28 | 2007-10-23 | Adobe Systems Incorporated | Shared persistent objects |
US20040225724A1 (en) * | 2003-05-08 | 2004-11-11 | Gregory Pavlik | RPC type SOAP service access via taglibs for dynamic web content |
WO2004114581A2 (en) * | 2003-06-17 | 2004-12-29 | Bytemobile, Inc. | Method and system for dynamic interleaving |
JP4709481B2 (ja) * | 2003-07-31 | 2011-06-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | サーバ、情報処理方法およびプログラム |
US7761878B2 (en) * | 2003-11-19 | 2010-07-20 | Nexaweb Technologies, Inc | System and method for stateful web-based computing |
US7849459B2 (en) * | 2004-11-04 | 2010-12-07 | International Business Machines Corporation | Deploying java applications in resource constrained environments |
US7552198B2 (en) * | 2005-01-20 | 2009-06-23 | International Business Machines Corporation | Method, system, and program product for providing access to J2EE application servers from non-J2EE application clients |
US8429655B2 (en) * | 2005-04-29 | 2013-04-23 | Microsoft Corporation | System and method for asynchronous processing in page lifecycle |
US8161159B1 (en) | 2005-10-31 | 2012-04-17 | Adobe Systems Incorporated | Network configuration with smart edge servers |
US7945615B1 (en) | 2005-10-31 | 2011-05-17 | Adobe Systems Incorporated | Distributed shared persistent objects |
US20080071922A1 (en) * | 2006-09-19 | 2008-03-20 | International Business Machines Corporation | Methods, systems, and computer program products to transparently dispatch requests to remote resources in a multiple application server environment |
US20080127234A1 (en) * | 2006-09-19 | 2008-05-29 | International Business Machines Corporation | Methods, systems, and computer program products for a remote request dispatcher extension framework for container based programming models |
US8611378B2 (en) * | 2007-05-29 | 2013-12-17 | Red Hat, Inc. | Message handling multiplexer |
US8505028B2 (en) * | 2007-05-30 | 2013-08-06 | Red Hat, Inc. | Flow control protocol |
US7992153B2 (en) * | 2007-05-30 | 2011-08-02 | Red Hat, Inc. | Queuing for thread pools using number of bytes |
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 |
US8032587B2 (en) * | 2007-08-28 | 2011-10-04 | International Business Machines Corporation | Method and apparatus for client-side aggregation of asynchronous fragmented requests |
US8185610B2 (en) * | 2007-12-04 | 2012-05-22 | International Business Machines Corporation | Method for client-side aggregation of asynchronous, context-sensitive request operations for java server pages (JSP) |
US8073962B2 (en) * | 2008-03-03 | 2011-12-06 | Oracle International Corporation | Queued transaction processing |
US8849753B2 (en) * | 2008-05-20 | 2014-09-30 | Microsoft Corporation | Automating asynchronous programming in single threaded systems |
CN101621532B (zh) * | 2008-06-30 | 2012-09-05 | 中兴通讯股份有限公司 | 一种使用线程池实现超文本传输协议应用的方法 |
US8793398B2 (en) * | 2008-08-29 | 2014-07-29 | Red Hat, Inc. | Facilitating client server interaction |
US8793339B2 (en) * | 2008-08-29 | 2014-07-29 | Red Hat, Inc. | Facilitating client server interaction |
US8949344B2 (en) * | 2008-09-15 | 2015-02-03 | Microsoft Corporation | Asynchronous queued messaging for web applications |
US20100114898A1 (en) * | 2008-10-06 | 2010-05-06 | Teradata Us, Inc. | Publication services |
US8051287B2 (en) * | 2008-10-15 | 2011-11-01 | Adobe Systems Incorporated | Imparting real-time priority-based network communications in an encrypted communication session |
US8386562B2 (en) | 2009-07-01 | 2013-02-26 | International Business Machines Corporation | Method, apparatus and computer program product for processing responses to a web page |
US8412841B1 (en) | 2009-08-17 | 2013-04-02 | Adobe Systems Incorporated | Media content streaming using stream message fragments |
US8166191B1 (en) | 2009-08-17 | 2012-04-24 | Adobe Systems Incorporated | Hint based media content streaming |
JP2011096045A (ja) * | 2009-10-30 | 2011-05-12 | Hitachi Ltd | 計算機、計算機システム、及び、アプリケーション実行方法 |
US8296411B2 (en) | 2010-03-01 | 2012-10-23 | International Business Machines Corporation | Programmatically determining an execution mode for a request dispatch utilizing historic metrics |
US8903847B2 (en) * | 2010-03-05 | 2014-12-02 | International Business Machines Corporation | Digital media voice tags in social networks |
US8364794B2 (en) * | 2010-03-11 | 2013-01-29 | International Business Machines Corporation | Admission control framework method and system |
US9880860B2 (en) * | 2010-05-05 | 2018-01-30 | Microsoft Technology Licensing, Llc | Automatic return to synchronization context for asynchronous computations |
US20120246238A1 (en) * | 2011-03-21 | 2012-09-27 | International Business Machines Corporation | Asynchronous messaging tags |
US20120244842A1 (en) | 2011-03-21 | 2012-09-27 | International Business Machines Corporation | Data Session Synchronization With Phone Numbers |
US8688090B2 (en) | 2011-03-21 | 2014-04-01 | International Business Machines Corporation | Data session preferences |
US9189304B2 (en) * | 2011-09-09 | 2015-11-17 | Oracle International Corporation | System and method for providing a dynamic invocation and service interface for use in a middleware or other environment |
US8954555B2 (en) * | 2011-10-27 | 2015-02-10 | International Business Machines Corporation | Using push notifications to reduce open browser connections |
CN105094988A (zh) * | 2015-08-13 | 2015-11-25 | 深圳市金蝶中间件有限公司 | 基于http请求的数据处理方法和装置 |
CN109639767A (zh) * | 2018-11-20 | 2019-04-16 | 中国人民解放军总医院 | 一种业务网关数据处理方法、装置、设备 |
CN113242312B (zh) * | 2021-05-26 | 2022-10-25 | 西安热工研究院有限公司 | 一种电力实时数据传输中间件及异步数据访问的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10511794A (ja) * | 1995-09-15 | 1998-11-10 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | クライアント−サーバ環境用ブリッジ |
JPH11510632A (ja) * | 1996-05-24 | 1999-09-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ・ネットワークにおいて通信リンクを提供する方法 |
Family Cites Families (39)
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 |
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 |
US6279030B1 (en) * | 1998-11-12 | 2001-08-21 | International Business Machines Corporation | Dynamic JAVA™ class selection and download based on changeable attributes |
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 |
US6701438B1 (en) * | 1999-06-14 | 2004-03-02 | Sun Microsystems, Inc. | Methods and apparatus for providing customizable security and logging protocols in a servlet engine |
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 |
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 |
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) |
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 |
AU3263801A (en) * | 1999-12-13 | 2001-06-18 | Novient, Inc. | 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 |
EP1117220A1 (en) * | 2000-01-14 | 2001-07-18 | Sun Microsystems, Inc. | Method and system for protocol conversion |
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 |
EP1364313A2 (en) * | 2000-10-31 | 2003-11-26 | Michael Philip Kaufman | System and method for automatically generating user interfaces 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,973 patent/US7003570B2/en not_active Expired - Lifetime
- 2002-10-04 CN CNB028229932A patent/CN1302409C/zh not_active Expired - Lifetime
- 2002-10-04 AU AU2002362656A patent/AU2002362656B9/en not_active Expired
- 2002-10-04 WO PCT/US2002/031727 patent/WO2003032181A1/en active Application Filing
- 2002-10-04 EP EP02800903.3A patent/EP1438674B1/en not_active Expired - Lifetime
- 2002-10-04 JP JP2003535078A patent/JP2005505831A/ja active Pending
-
2005
- 2005-12-13 US US11/301,511 patent/US7788675B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10511794A (ja) * | 1995-09-15 | 1998-11-10 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | クライアント−サーバ環境用ブリッジ |
JPH11510632A (ja) * | 1996-05-24 | 1999-09-14 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ・ネットワークにおいて通信リンクを提供する方法 |
Non-Patent Citations (4)
Title |
---|
CSNB200100902001, 小泉 修, 図解でわかる Web技術のすべて, 20010301, 初版, 第190頁−第198頁, JP, 株式会社日本実業出版社 * |
CSND200100784012, 細川 努, "J2EEのアーキテクチャ設計を理解し企業内・企業間システムを構築する", 月刊ソリューションIT, 20010801, 第13巻,第8号, 第49頁−第53頁, JP, 株式会社リックテレコム * |
JPN6009008616, 細川 努, "J2EEのアーキテクチャ設計を理解し企業内・企業間システムを構築する", 月刊ソリューションIT, 20010801, 第13巻,第8号, 第49頁−第53頁, JP, 株式会社リックテレコム * |
JPN6009008617, 小泉 修, 図解でわかる Web技術のすべて, 20010301, 初版, 第190頁−第198頁, JP, 株式会社日本実業出版社 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007122189A (ja) * | 2005-10-25 | 2007-05-17 | Canon Inc | スケジュール実行装置及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
WO2003032181A1 (en) | 2003-04-17 |
AU2002362656A2 (en) | 2003-04-22 |
AU2002362656B9 (en) | 2008-06-19 |
CN1639703A (zh) | 2005-07-13 |
US7003570B2 (en) | 2006-02-21 |
CN1302409C (zh) | 2007-02-28 |
EP1438674A4 (en) | 2009-12-30 |
US20060168139A1 (en) | 2006-07-27 |
EP1438674A1 (en) | 2004-07-21 |
EP1438674B1 (en) | 2018-11-21 |
AU2002362656B2 (en) | 2008-05-29 |
US7788675B2 (en) | 2010-08-31 |
US20030084097A1 (en) | 2003-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7788675B2 (en) | System for integrating java servlets with asynchronous message | |
JP4287276B2 (ja) | 多重発送プールを用いたアプリケーションサーバーのメッセージングのためのシステム | |
AU2002362656A1 (en) | System for integrating java servlets with asynchronous messages | |
Indrasiri et al. | Microservices for the Enterprise | |
US7467389B2 (en) | System and methodology providing service invocation for occasionally connected computing devices | |
US7213049B2 (en) | System and method for transaction processing with transaction property feature | |
US7530081B2 (en) | System for creating a dynamic OGSI service proxy framework using runtime introspection of an OGSI service | |
US6859834B1 (en) | System and method for enabling application server request failover | |
US7769825B2 (en) | System and method for web services Java API-based invocation | |
US6879995B1 (en) | Application server message logging | |
US6697849B1 (en) | System and method for caching JavaServer Pages™ responses | |
US20060069751A1 (en) | System and method for transaction processing with delegated commit feature | |
AU2002318249A1 (en) | System and method for transaction processing with transaction property feature | |
JP2003076560A (ja) | Asp.nethttpランタイム | |
KR100370548B1 (ko) | 임베디드 시스템의 통합 소프트웨어 개발 프레임워크를제공하는 실시간 미들웨어 장치 및 그 서비스 방법 | |
US20070067265A1 (en) | Using one extensive portlet rather than multiple small portlets | |
Indrasiri et al. | Design Patterns for Cloud Native Applications | |
US11272035B1 (en) | API service gateway for third-party services | |
US20100299677A1 (en) | Article of manufacture for programmatically describing web service-driven applications | |
US20040093378A1 (en) | Internet document creation system | |
US7571236B2 (en) | System and method for managing connections | |
WO2004003770A1 (en) | System and method for web services java api-based invocation | |
Wasson | WSRF .NET 3.0 Programmer’s Reference | |
Guthrie et al. | Asp. net http runtime | |
Polgar et al. | Web Service Design Issues |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050929 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050929 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080526 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080826 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090302 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090602 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100405 |