JP2000029814A - サ―バ・パフォ―マンスを改良するためのシステムおよび方法 - Google Patents
サ―バ・パフォ―マンスを改良するためのシステムおよび方法Info
- Publication number
- JP2000029814A JP2000029814A JP11141038A JP14103899A JP2000029814A JP 2000029814 A JP2000029814 A JP 2000029814A JP 11141038 A JP11141038 A JP 11141038A JP 14103899 A JP14103899 A JP 14103899A JP 2000029814 A JP2000029814 A JP 2000029814A
- Authority
- JP
- Japan
- Prior art keywords
- connection
- pool
- connections
- sub
- servlet
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5691—Access to open networks; Ingress point selection, e.g. ISP selection
- H04L12/5692—Selection among different networks
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/10015—Access to distributed or replicated servers, e.g. using brokers
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
ンスを強化するためのテクニック、システム、及びコン
ピュータ・プログラムを提供する。 【解決手段】これは、ウェブ・サーバ及びバックエンド
・データ・サーバの間の接続のプールを作成すること、
データ・サーバをアクセスするために必要なオーバヘッ
ドを少なくすること、及びウェブ・サーバ上で走るアプ
リケーションがより速くなることを可能にすることによ
って行われる。プールには、同じ又は異なるデータ・サ
ーバに対する多くの種々なタイプの接続が維持可能であ
る。バックエンド・データ・サーバ接続のタイプに関係
なく、そのプールに対する共通のインターフェースが使
用され、そのプールを使用するプログラムを書き込み及
びサポートすることを容易にする。従って、より安価な
ものにする。プールにおける接続の数を最適化するため
のオプションが定義される。
Description
ミュニケーションに関するものであり、更に詳しく云え
ば、ウェブ環境においてコンピュータのパフォーマンス
を強化するためのテクニック、システム、及びコンピュ
ータ・プログラムに関するものである。これは、ウェブ
・サーバ及びバックエンド・データ・サーバの間の接続
のプールを作成すること、それらデータ・サーバをアク
セスするために必要なオーバヘッドを少なくすること、
及びウェブ・サーバ上で走るアプリケーションがより速
くなることを可能にすることによって行われる。バック
エンド・データ・サーバ接続のタイプに関係なく、その
プールに対する共通のインターフェースが使用され、そ
のプールを使用するプログラムを書き込み及びサポート
することを容易にする(従って、より安価なものにす
る)。
ネットワークとして相互接続されたコンピューティング
資源の巨大な集合体である。それは、毎日、数百万の人
々によって使用される。ワールド・ワイド・ウェブ(本
願では、「ウェブ」と呼ばれる)は、メッセージを交換
するためのプロトコルとしてハイパーテキスト転送プロ
トコル(HTTP)を使用するインターネットのその部
分である。(別の方法として、「HTTPS」プロトコ
ルが使用可能である。なお、このプロトコルはHTTP
のセキュリティ強化バージョンである)。
ターネット・サービス・プロバイダ(ISP)のサービ
スを通してネットワーク接続を確立することによりイン
ターネットをアクセスし、及び、使用する。ISPは、
コンピュータ・モデム(或いは、衛星通信のような他の
接続機構)を使用して電話番号をダイヤルし、それによ
って、ISPが所有し又は管理するリモート・コンピュ
ータへの接続を確立するという機能をコンピュータ・ユ
ーザに供給する。そこで、このリモート・コンピュータ
はサービスを、ユーザのコンピュータにとって利用可能
なものにする。代表的なサービスは、そのユーザに関連
ある項目に関してインターネットの相互接続されたコン
ピュータを通してサーチするためのサーチ機構、そのサ
ーチ機能によって見つけられた情報を表示するためのブ
ラウズ機能、及びユーザが他のコンピュータ・ユーザに
メール・メッセージを送ること及び他のコンピュータ・
ユーザからメール・メッセージを受け取ることができる
電子メール機能を提供することを含む。
ユーザが情報に関するリクエストを作成して送ることを
可能にするために自分のコンピュータ上で走るソフトウ
エアを持つであろう。これらの機能は、一般に、「ウェ
ブ・ブラウザ」又は「ブラウザ」と呼ばれるものにおい
て結合される。ユーザがブラウザを使用して自分のリク
エストを作成した後、リクエスト・メッセージが処理の
ためにインターネットに送出される。そのリクエスト・
メッセージのターゲットは、インターネットのネットワ
ークにおける相互接続されたコンピュータの1つであ
る。そのコンピュータはメッセージを受け取り、ユーザ
のリクエストを満足させるデータを見つけようと試み、
ユーザのブラウザによる表示のためにそのデータをフォ
ーマットし、そしてユーザのコンピュータ上で走るブラ
ウザ・ソフトウエアにそのフォーマットされた応答を戻
す。
ト・サーバ・モデルの一例であり、この場合、ユーザが
情報をリクエストする機械はクライアントと呼ばれ、そ
の情報を見つけ、それをクライアントに戻すコンピュー
タがサーバである。ウェブ環境では、サーバは「ウェブ
・サーバ」と呼ばれる。クライアント・サーバ・モデル
は「3層アーキテクチャ」と呼ばれるものに拡張可能で
ある。このアーキテクチャは中間層にウェブ・サーバを
配置する。その場合、付加された第3層は、一般に、ク
ライアントのリクエストを処理するタスクの一部として
ウェブ・サーバがアクセスすることが可能な情報のデー
タ・リポジトリを表す。この3層アーキテクチャは、多
くのクライアント・リクエストが単に静的データを見つ
けて戻すことを必要とするだけではなく、戻されるべき
データを動的に作成するために、アプリケーション・プ
ログラムがクライアントのリクエストの処理を遂行する
ことを必要とする。
は等価的に「アプリケーション・サーバ」とも呼ばれ
る。この中間層は、アプリケーションのビジネス・ロジ
ックが一般に存在する場所であるという事実を反映して
いる。データ・リポジトリが存在するコンピュータは、
「データ・サーバ」又は「バックエンド・データ・サー
バ」と呼ばれる。データ・サーバはアプリケーションに
よって使用されるデータを記憶及び管理するものであ
り、データを記憶し、アクセスし、及び検索する場合に
使用されるソフトウエア製品を含む。一般に、インター
ナショナル・ビジネス・マシーンズ・コーポレーション
(IBM社)からのDB2のようなリレーショナル・デ
ータベースが使用されるであろう。しかし、データを管
理及びアクセスするためのサービスを提供する製品であ
って、IBM社からのMQSeries及びCICSの
ようなメッセージング製品及び他のタイプのミドルウエ
アを含む他の製品も、データ・サーバの範囲内にあるも
のと考えられる。なお、DB2、MQSeries、及
びCICSはIBM社の商標である。
にウェブ環境に対して定義された耐久力のある移植性の
オブジェクト指向言語であるので、ウェブ・アプリケー
ションを書くことに関して幅広く容認されつつある。
(「Java」は、Sun Microsystem
s,Inc.の商標である)。Javaは、特別に設計
された仮想機械の使用を通してそれの移植性を得る。J
ava仮想機械を実施するウェブ・サーバは、Java
「サーブレット(servlet)」を使用して機能的
に拡張可能である。サーブレットは、サーバ上で走るコ
ードに動的にプラグ・イン可能であるか又は付加可能で
ある比較的小さい実行可能コードである。サーブレット
は、一般に、サーバによって(又は、他のサーブレット
によって)それ自身の機能性を拡張するために呼び出さ
れる或る特殊化された機能を遂行する。サーブレットは
リクエストを処理し、それを呼び出したサーバ(又は、
サーブレット)に応答を返送する。
間のユーザに、クライアント・リクエストに対する応答
を待たせるので、応答は非常に速く返送されなければな
らず、さもないと、ユーザはそのサービスが不満となる
であろう。サーバに対する使用量は非常に大きいことが
あり、特定のサーバは一日に数千のクライアント・リク
エスト、或いは、数百万のクライアント・リクエストさ
えも、受けることがある。これらのリクエストは受容可
能な応答時間でもってすべて処理されなければならず、
さもないと、ユーザは競合相手のアプリケーション・サ
ービスに切り替えることが可能である。リクエストが、
バック・エンド・サーバからのデータのアクセス及び検
索を伴う時(それは通常生じ得ることなので)、ウェブ
・サーバは、先ず、データ・サーバへの接続を確立しな
ければならない。この接続プロセスは多数のメッセージ
の送信及び受信を伴うことがある。
・サーバのネットワーク・アドレスを決定するためにウ
ェブ・サーバによって接触される必要があることがあ
る。ウェブ・サーバは、ネットワーク・アドレスを受け
取った後、データ・サーバに接続リクエストを送る。そ
のリクエストの詳細はデータ・サーバの特定のタイプ及
びそれをアクセスするために使用されるネットワーキン
グ・プロトコルに依存するが、接続リクエストの複数の
シーケンス及び接続応答メッセージが、(例えば、接続
タイプの詳細を折衝するために)接続の完了前にウェブ
・サーバ及びデータ・サーバの間で交換される必要があ
るかもしれない。クライアント・リクエストが完了した
時、その接続は、ウェブ・サーバ及びデータ・サーバの
間の更なるメッセージ交換を伴って、切断されなければ
ならない。接続及び切断に伴うメッセージはクライアン
トのリクエストの処理に大量のオーバヘッドを加え、し
かも、クライアントの照会に答えるトランザクションを
終了させる場合には実際に費やされる時間よりも遥かに
重要であるかもしれない。
バの現在の実施方法におけるこれらのパフォーマンス問
題を克服し得るテクニックに対する要求が存在する。本
発明は、クライアント・リクエストの処理が終了した後
で接続を維持するためのテクニックに関するものであ
る。既存の接続は接続プールにおいて維持される。クラ
イアント・リクエストが受信される時、そのプールから
の接続は、適当な接続が利用可能である場合に、従っ
て、接続を確立するというオーバヘッドを回避する場合
に使用される。(プールからの接続を使用することがで
きない時、新たな接続が確立可能である)。このプール
は、単一のデータ・サーバに対する多くの接続、(複数
のDB2データベースのような)単一のタイプの複数の
データ・サーバに対する多くの接続、及び(又は)種々
のタイプのデータ・サーバに対する多くの接続(例え
ば、DB2データベース、MQSeriesメッセージ
・サービス等)を含み得るものである。プールからの接
続をリクエストするために共通インターフェースが使用
され、それは、プログラマ及び支援要員が理解し及び使
用するために必要とされるAPI(アプリケーション・
プログラミング・インターフェース)の数を少なくす
る。これはプールに伴う作業を容易なものにするであろ
うし、一方、開発及び支援のコストを少なくするであろ
う。
ブ環境におけるパフォーマンスを改良するためのテクニ
ックを提供することにある。
おいて複数の接続を維持し得るテクニックを提供するこ
とにある。
が種々の特性を持った種々のタイプのものであることを
可能にすることにある。
フェースを使用するアクセスをこれらのプールされた接
続に提供することにある。
間にプールにおける接続の数及びタイプを最適化するテ
クニックを提供することにある。
び図面において部分的に示され、しかも、それは、部分
的にはその説明から明らかであろうし、本発明を実施す
ることによってわかるであろう。
めに、及び本願において広範に記述されている本発明の
目的に従って、本発明は、バックエンド・データ・サー
バへの接続をプールすることによってサーバ・パフォー
マンスを改良するための、しかもネットワークへの接続
を有するコンピューティング環境において使用するため
のソフトウエア実施されたプロセス、システム、及び方
法を提供する。本発明は、アプリケーション・サーバ
と、1つ又は複数のバックエンド・データ・サーバと、
接続プールと、各々が前記アプリケーション・サーバを
前記1つ又は複数のバックエンド・データ・サーバの1
つに接続する1つ又は複数の接続を確立するためのサブ
プロセスと、前記確立された接続を前記接続プールに入
れるためのサブプロセスと、前記接続プールにおける前
記入れられた接続を管理するためのサブプロセスとを含
む。
ましくは、更に、1つ又は複数のサーブレットと、各々
が前記サーブレットの1つによって実行される複数のク
ライアント・リクエストとを含む。しかも、前記接続プ
ールにおける前記入れられた接続を管理するためのサブ
プロセスは、更に、前記1つ又は複数のサーブレットか
らリクエストを受け取るためのサブプロセスにして、前
記リクエストの各々は適当な接続を割り当てるためのリ
クエストであり、共通のアプリケーション・プログラミ
ング・インターフェースを使用するものであることと、
前記サーブレットによる使用のために前記サーブレット
に前記適当な接続を割り当てるためのサブプロセスとを
含む。望ましくは、前記適当な接続を割り当てるための
サブプロセスは、更に、前記接続プールにおける前記適
当な接続を、それが得られる場合に、見つけるためのサ
ブプロセスと、新たな接続を、それが必要な時に、確立
するためのサブプロセスと、エラーを、それが必要な時
に、戻すためのサブプロセスとを含む。
サブプロセスは、更に、前記適当な接続が前記プールに
おいて使用可能になるために或る指定された期間待機す
るためのサブプロセスを含むことができる。前記新たな
接続を確立するためのプロセスは、前記適当な接続を前
記接続プールにおいて見つけることができなかった時及
び最大プール・サイズに達していない時に動作可能であ
る。前記入れられた接続を管理するためのサブプロセス
は、更に、前記1つ又は複数の接続が最大アイドル時間
よりも長くアイドルしていたことを検出した時、前記接
続されたバックエンド・データ・サーバから前記接続の
うちの1つ又は複数を切断するためのサブプロセスと、
前記切断された接続を前記プールから除去するためのサ
ブプロセスとを含むことができる。更に、前記入れられ
た接続を管理するためのサブプロセスは、前記1つ又は
複数の割り当てられた接続が最大時間よりも長く使用さ
れなかったことを検出する時、前記1つ又は複数の前記
割り当てられた接続を、該接続が割り当てられていた前
記サーブレットから割当て解除するためのサブプロセス
と、前記割当て解除された接続を前記プールにおいて使
用可能にするためのサブプロセスとを含むことができ
る。
とにする。なお、これらの図面では、全体を通して、同
じ参照番号は同じエレメントを示している。
的なワークステーション・ハードウエア環境を示す。図
1の環境は、関連の周辺装置を含むパーソナル・コンピ
ュータのような代表的なコンピュータ又はインテリジェ
ント・ワークステーション10を含む。ワークステーシ
ョン10はマイクロプロセッサ12及びバス14を含
み、バス14は既知のテクニックに従ってマイクロプロ
セッサ12とワークステーション10の複数のコンポー
ネントとの間を接続するために及びそれらの間のコミュ
ニケーションを可能にするために使用される。一般に、
ワークステーション10は、バス14を介して、キーボ
ード18、マウス20のような1つ又は複数のインター
フェース装置に、及び(又は)タッチ・センシティブ・
スクリーン、ディジタル化エントリ・パッド等のような
任意のインターフェース装置であってもよい他のインタ
ーフェース装置22に、マイクロプロセッサ12を接続
するユーザ・インターフェース・アダプタ16を含む。
又、バス14は、LCDスクリーン又はモニタのような
ディスプレイ装置24を、ディスプレイ・アダプタ26
を介してマイクロプロセッサ12に接続する。更に、バ
ス14は、マイクロプロセッサ12をメモリ28に、及
びハード・ドライブ、ディスケット・ドライブ、テープ
・ドライブ等を含み得る長期記憶装置30に接続する。
2を介して他のコンピュータと、又はコンピュータのネ
ットワークとコミュニケートする。ワークステーション
10は、ローカル・エリア・ネットワーク(LAN)又
は広域ネットワーク(WAN)におけるそのような他の
コンピュータと関連付け可能であり、或いは、ワークス
テーション10は他のコンピュータ等とのクライアント
/サーバ構成におけるクライアントであってもよい。こ
れらの構成のすべて及び適切な通信ハードウエア及びソ
フトウエアはその分野において知られている。
ットワーク40を示す。データ処理ネットワーク40
は、LAN42及び44を含む複数の個別のネットワー
クを含み、それらのLANの各々は複数の個別のワーク
ステーション10を含む。別の方法として、当業者には
明らかであるように、LANは、ホスト・プロセッサに
接続された複数のインテリジェント・ワークステーショ
ンを含むことが可能である。
ム40はメインフレーム・コンピュータ46のような複
数のメインフレーム・コンピュータ又はサーバを含むこ
とも可能であり、それらは、通信リンク48によってL
AN44に接続可能である。メインフレーム・コンピュ
ータ46は、IBM社から入手可能なエンタープライズ
・システム・アーキテクチャ/370又はエンタープラ
イズ・システム・アーキテクチャ/390を利用するこ
ともできる。アプリケーション次第で、中型コンピュー
タのような更に小さいコンピュータ(例えば、AS/4
00としても知られたアプリケーション・システム/4
00)が使用可能である。なお、「エンタープライズ・
システム・アーキテクチャ/370」、「エンタープラ
イズ・システム・アーキテクチャ/390」、「アプリ
ケーション・システム/400」及び「AS/400」
はIBM社の商標である。
装置50にも接続可能であり、その記憶装置はLAN4
4のためのリモート記憶装置としても働き得るものであ
る。同様に、LAN44は通信リンク52、サブシステ
ム制御装置/通信コントローラ54及び通信リンク56
を介してゲートウェイ・サーバ58に結合可能である。
ゲートウェイ・サーバ58は、望ましくは、LAN42
をLAN44にリンクするように働く個別のコンピュー
タ又はインテリジェント・ワークステーションである。
レーム・コンピュータ46はLAN44から長い地理的
距離をもって設置可能であり、同様に、LAN44はL
AN42からかなりの距離をもって設置可能である。例
えば、LAN42はカリフォルニアに設置可能であり、
一方、LAN44はテキサスに設置可能であり、メイン
フレーム・コンピュータ46はニューヨークに設置可能
である。
ラミング・コードは、一般に、CD−ROMドライブ又
はハード・ディスクのような或るタイプの長期記憶媒体
30から、ワークステーション10のマイクロプロセッ
サ12によってアクセスされる。ウェブ・サーバ環境で
は、そのようなソフトウエア・プログラミング・コード
が、サーバと関連した記憶装置によって記憶可能であ
る。ソフトウエア・プログラミング・コードは、ディス
ケット、ハード・ドライブ、又はCD−ROMのよう
な、データ処理システムによる使用のための種々の既知
の媒体のいずれにおいても具体化可能である。そのコー
ドはそのような媒体上に分配可能であり、或いは、1つ
のコンピュータ・システムのメモリ又は記憶装置から或
るタイプのネットワークを介して他のコンピュータ・シ
ステムへ、そのような他のコンピュータ・システムによ
る使用のために分配可能である。別の方法として、プロ
グラミング・コードは、メモリ28において具体化可能
であり、しかもバス14を使用してマイクロプロセッサ
12によりアクセス可能である。メモリにおけるソフト
ウエア・プログラミング・コードを物理的媒体上に具体
化するための及びネットワークを介してソフトウエア・
コードを分配するためのテクニック及び方法は周知であ
り、ここではこれ以上説明しないことにする。
記憶装置30によって使用される種々のタイプの媒体の
いずれにおいても記憶可能である。このコードは、一般
に、サーバ46のような中間層のサーバにインストール
され、そのサーバが、ワークステーション10のような
コンピュータを有するユーザから生じたリクエストを処
理する。
ディスプレイ装置24を含まないかもしれないけれど
も、本発明の好適な実施例は、接続をプールするために
必要なパラメータを(例えば、ウェブ・アドミニストレ
ータにより)構成することを可能にするためにディスプ
レイ装置24を使用してもよい。別の方法として、構成
パラメータは、その構成された値を実施に供するために
インターネット接続を利用するクライアント(ワークス
テーション10のような)に取り付けられたディスプレ
イ装置24を使用して入れることが可能である。
適な実施例を説明することにする。
・ソフトウエア・プログラムとして実施される。このプ
ログラムは、クライアントがデータに関するリクエスト
をサーバに送った場合に使用されるであろうし、ネット
ワークのサーバ側において行われる処理の一部を構成す
るものである。一般に、そのプログラムは、サーバがウ
ェブ・サーバであり、リクエストがHTTP(又は、H
TTPS)を使用してフォーマットされる場合のインタ
ーネット環境において使用されるであろう。別の方法と
して、接続は、ユーザのコンピュータが1つのコンポー
ネントであるコーポレート・イントラネット(即ち、ユ
ーザの会社にとって内部的に所有又は管理されるネット
ワーク)への接続であってもよい。なお、このコーポレ
ート・イントラネットはインターネットと同様の態様で
サービスを提供する。本願における「インターネット」
という用語の使用は、ユーザのリクエストと関連した処
理を説明する時、別の断り書きがない限り、イントラネ
ットにおいて生じる処理も含む。好適な実施例のプログ
ラム・コードは、Javaのようなオブジェクト指向プ
ログラミング言語におけるオブジェクトとして実施可能
である。望ましくは、接続プール機能は、Javaウェ
ブ・サーバの機能性を拡張するJavaサーブレットと
して実施されるであろう。
クト指向環境における実施、Java言語における実
施、或いはサーブレットを構成する特定のスタイルの実
施のいずれにも限定されない。「C」プログラミングの
ような通常の手続き型言語は、オブジェクト指向言語の
代わりに使用可能である。又は、手続き型言語及びオブ
ジェクト指向言語プログラミングの混合が使用可能であ
る。プール機能は、ウェブ・サーバの機能又はサブルー
チンとして、及びウェブ・サーバ等によって呼び出され
る機能又はサブルーチンとして実施可能である。
ーク環境を示す。一般的には、ブラウザ60及び62の
ような1つ又は複数のクライアント・ブラウザが第1層
を形成する。一般に、第1層は、アプリケーション・ソ
フトウエアのビジュアル・インターフェースが設けられ
る層である。このインターフェースは、ブラウザ・ソフ
トウエアによる以外の方法で設けられてもよい。しか
し、説明を容易にするために、本願では、このインター
フェースは、ブラウザを利用するものとして参照される
であろう。人間のユーザは、ブラウザ・ソフトウエアが
走っている機械において作業する。
ェブ・サーバ80に接続される。図3には1つのウェブ
・サーバ80しか示されてないけれども、代表的な構成
では多くのウェブ・サーバが存在し得る。着信するクラ
イアント・リクエストの負荷を平衡させるために複数の
ウェブ・サーバが使用される時、インターネット70と
ウェブ・サーバとの間に負荷平衡ホスト(図示されてな
い)が設置可能であり、それは、一般に、「クラスタ化
サーバ」環境と呼ばれるものを形成する。図3はウェブ
・サーバ80を、アプリケーション・サーバ82を含む
ものとして示す。アプリケーション・サーバの目的は、
クライアント・リクエストを満足させるために使用され
るアプリケーション・ロジック(一般に、「ビジネス・
ロジック」とも呼ばれる)を提供することである。この
アプリケーション・サーバ82は別個のコンポーネント
として示されているけれども、これは単に説明の目的の
ためであって、それが提供するアプリケーション・サー
ビスがウェブ・サーバ80の実施と分離してなければな
らないことを意味するものではない。ウェブ・サーバ、
アプリケーション・サーバ、及び負荷平衡ホスト(適用
可能である場合)は層2を構成する。
バが層3を構成する。前述のように、これらのデータ・
サーバは、リレーショナル・データベース、メッセージ
ング・システム、或いは、アプリケーションによってア
クセス可能なデータ管理サービスを提供する任意のタイ
プのミドルウエアであってもよい。データ・サーバ90
からのデータが必要とされる時、アプリケーション・サ
ーバ82は、メッセージを送信及び受信するネットワー
ク接続100を使用する。図3はアプリケーション・サ
ーバ82に対する単一の接続100を有する単一のデー
タ・サーバ90を示しているけれども、複数のそのよう
な接続がいつでも存在し得る。一般に、アプリケーショ
ン・サーバ82は一時に複数の平行スレッドを走らせる
であろう。なお、スレッドは再入可能プログラムの1つ
の実行である。各スレッドはデータ・サーバ90に対す
るそれ自身の接続を持つことが可能である。この場合、
複数の接続が単一のアプリケーション・サーバを起点と
する。しかし、複数のアプリケーション・サーバが1つ
の特定のデータ・サーバに接続することも可能である。
その場合、各アプリケーション・サーバは複数のスレッ
ドを使用することが可能であり、従って、複数の接続を
持つことが可能である。更に、1つのアプリケーション
・サーバ82がいつでも複数のデータ・サーバへの接続
(複数のデータ・サーバの各々への複数の接続を含む)
を持つことが可能である。例えば、単一のクライアント
・リクエストを満足させるために、アプリケーション・
サーバ82は、リレーショナル・データベース及びメッ
セージング・サービスをアクセスすることを必要とする
ことがあり、その場合、(少なくとも)2つの異なる接
続が必要である。
は、その分野では、一般に、クライアント/サーバのよ
うな他のアーキテクチャに比べてアプリケーションの管
理及び拡張容易性における重要な利点を提供するものと
考えられている。しかし、これらの利点は本発明の一部
を形成するものではなく、従って、ここではこれ以上説
明しないことにする。
ーキテクチャにおける望ましい配列を示す。更に、図4
は、後述するこれらのコンポーネントの間のアクティビ
ティ及びメッセージの望ましいフローを示す。
施する機能が層2に設けられる。そのプール・テクニッ
クは、図4において「接続マネージャ」110と呼ばれ
るものによって与えられる。この接続マネージャ110
の目的は、既に確立された接続のプール120を管理す
ること、リクエストされた時に適当な接続130をサー
ブレット140に与えること、必要な場合に新しい接続
(接続150のような)を作成すること等である。前述
のように、プール120は、一般に、複数の異なるタイ
プのデータ・サーバ(データ・サーバ90のような)に
対するものでよい複数の接続を含んでいる。更に、その
プールには1つのデータ・サーバに対する複数の接続が
存在してもよく、これらの接続は同じ特性又は異なる特
性を持つものでもよい。
所与の接続を確立するために必要なオーバヘッドが多く
のクライアント・リクエストに分散可能である。そのよ
うな各リクエストに対して新たな接続を作成する代わり
に、プールからの既存の接続が使用され、接続を確立す
るために必要なかなりのオーバヘッドを取り除くことが
できる。クライアント・リクエスト処理が完了した時、
接続はその後のクライアント・リクエストによる使用の
ために接続プールに戻される。それは、データ・サーバ
から切断するというオーバヘッドを取り除く。このプー
ル・テクニックは、個々の各リクエストを処理する効率
を高め、しかも、リクエストがより速く完了することを
可能にする。
は、データ・サーバ製品への同時接続の数を制御するこ
とを可能にすることである。データ・サーバ製品ライセ
ンスは、実際には決定することが難しい並行ユーザの最
大数を指定することが可能である。この最大数よりも多
い接続を確立しないように接続マネージャ110を構成
することによって、そのライセンスとのコンプライアン
スが更に容易に得られる。(コンプライアンスはこの手
順によって自動的に保証されるものではないが、接続マ
ネージャ110を通すことなくデータ・サーバ製品90
に接続するための別の方法があり得るであろう)。
接続プールの望ましい実施例を使用することに関連した
処理アクティビティ及びメッセージのフローは、図4を
参照して次のようになる。アプリケーション・サーバ8
2が開始する時、ライン151において、接続マネージ
ャ110(アプリケーション・サーバ82のもとで動作
する)がロードされることが望ましい。ライン152に
おいて、インターネット70を通して到来したクライア
ント・リクエストが、処理のためにアプリケーション・
サーバ82によって、サーブレット140に送られる。
サーブレット140の機能性はアプリケーション特有の
ものであり、本発明の一部を形成するものではない。本
発明がサーブレットを使用しない環境において実施され
る場合、クライアント・リクエストは単にアプリケーシ
ョン特有の方法、サブルーチン、又は機能に送られる。
説明を容易にするために、サーブレットが使用されるも
のと仮定する。ライン153において、サーブレット1
40は接続マネージャ110の方法(オブジェクト指向
の実施方法を仮定する。そうでない場合、手順又は関数
呼出しが使用される)を使用してプール120からの接
続(100のような)を要求する。
10は、プール120からの接続130をサーブレット
140に与える。ライン155において、サーブレット
140は接続130を使用してデータ・サーバ90と直
接に対話する。それは、特定のデータ・サーバ90に対
して標準的なAPIを使用する。ライン156におい
て、データ・サーバ90は、接続130を通してサーブ
レット140にデータを戻す。ライン157において、
サーブレット140がデータ・サーバ90との対話を終
了した後、サーブレット140は、他のクライアント・
リクエストによる使用のために接続130をプール12
0に戻す。ライン158において、サーブレット140
は、アプリケーション・サーバ82を通してユーザ(例
えば、ブラウザ60における)に応答を返送する。
0に接続を要求し、しかも適当な接続が得られない場
合、接続マネージャ110はデータ・サーバ90と直接
にコミュニケートして新たな接続150をリクエストす
る。ライン160において、この新たな接続150がプ
ール120に加えられ、ライン154に関連して前述し
たようにサーブレット140に戻されるであろう。しか
し、好適な実施例では、データ・サーバ90への接続の
最大数が、例えば、構成パラメータとして指定可能であ
る。更に、プール120に対する接続の最大数全体が構
成可能である。これらの最大数のいずれも既に遭遇され
ている場合、新たな接続150は確立されないであろ
う。その代わり、サーブレットのリクエストは、利用可
能になっている使用中の接続を接続マネージャ110が
識別するまで待つか、或いは、接続マネージャ110が
サーブレット140にエラーを返送するまで待つ。これ
らの可能性については、「ウェブ再試行」パラメータに
関連して更に後述することにする。
のアクセスを必要とするクライアント・リクエストを処
理するために好適な実施例において使用されるロジック
を示し、図4に示されたアクティビティ及びフローを発
展させるものである。図5の左側の欄はサーブレットに
おいて生じるプロセスを示し、右側の欄は接続マネージ
ャにおいて生じるプロセスを示す。ブロック400にお
いて、クライアント・リクエストがサーブレットに到達
する。(データ・サーバへのアクセスを必要としないリ
クエストは本発明に関連のないものであり、図5のロジ
ックによって説明されない。この可能性を含むように図
5のロジックを拡張する方法は当業者には明らかであろ
う)。
スに関するリクエストがフォーマットされ、接続マネー
ジャに送られる。前述のように、データ・サーバに対す
る1つの共通のインターフェースが好適な実施例におい
て使用される。各データ・サーバはサーブレットからの
種々な情報を要求できるし、そのサーブレットに種々な
情報を戻すことができる。各特定のデータ・サーバにと
って必要な情報を知らせるために、ポリモアフィズムが
使用される。即ち、インターフェースのパラメータは、
リクエストが送られるデータ・サーバ次第で、種々の情
報を持ち得る複雑なデータ・タイプである。オブジェク
ト指向言語では、「オブジェクト」という用語はこの複
雑なデータ・タイプを参照するために使用される。すべ
ての接続タイプにわたって共通する特性を含む基本オブ
ジェクトが本発明に従って定義される。この基本オブジ
ェクトは、各データ・サーバ・タイプに特有の特性を加
えるサブクラス(又は、Javaにおける「exten
sion」)を定義することによって更に洗練される。
基本オブジェクトは、本願では、「基本接続指定オブジ
ェクト」と呼ばれ、拡張されたオブジェクトは「特殊接
続指定オブジェクト」と呼ばれる。基本接続指定オブジ
ェクトは次のような属性を有する。 (1)サブプール・ネーム、又は接続タイプ (2)「待機−再試行」フラッグ
ーブレットがどのデータ・サーバとの接続を望んでいる
かを接続マネージャに知らせるために使用される。プー
ルが複数のデータ・サーバへの接続を含む時、接続マネ
ージャは、その接続の他端における特定のデータ・サー
バを識別する情報を各接続と関連付けるであろう。論理
的サブプールという概念を使用することによってこれを
行うことができる。その場合、各サブプールは1つのデ
ータ・サーバへの接続しか持たない。そこで、サブプー
ル・ネームがそのデータ・サーバを識別し、サーブレッ
トはそのデータ・サーバへの接続を得るためにそのサブ
プールからの接続をリクエストする。別の方法として、
接続タイプが使用可能である。その場合、接続タイプは
名前、数、又はその2つの組合せであってもよい。その
タイプ情報は、データ・サーバの識別、及び保護接続が
必要とされるかどうかのようなその接続に関する特殊な
特性を含み得るものである。そこで、接続マネージャは
このタイプ情報を使用して必要な特性を持った接続を見
つける。
ば、本発明による接続プールの利点を達成するためには
必要ではないけれども、実現可能であるパフォーマンス
の利点を増大させる。このフラッグが「偽」にセットさ
れる場合(又は、このパラメータが使用されない場
合)、接続マネージャは、接続がリクエストされ、適当
な接続が現在利用可能ではなく、しかもこれ以上の接続
を確立することができない時にはいつもサーブレットに
エラーを戻す。このフラッグが「真」にセットされ、適
当な接続が得られない場合、接続マネージャは、そのリ
クエストに応答する前に経過すべき或る指定された期間
の間待機するであろう。この待機期間は、使用中の接続
がフリーになりそしてプールに戻される時間を許容す
る。これが生じ、戻された接続の1つがサーブレットの
リクエストを満足させる場合、接続マネージャはその接
続をサーブレットに割り当てるであろう。それがサーブ
レットのリクエストを満足させない場合、その待機期間
の終了時にエラーが発生されるであろう。
トによってセットされ、指定された接続指定オブジェク
トの如何なる拡張されたオブジェクトも、アプリケーシ
ョン特有の手順を使用してフォーマットされる。完全な
接続指定オブジェクトが作成されてしまった時、ブロッ
ク410は、リクエストによってこのオブジェクトを接
続マネージャに送る。
ブレットからこのリクエストを受け取ることを表す。ブ
ロック510において、指定された要件に適合した何ら
かの接続がその時得られるかどうかを決定するためにテ
ストが行われる。接続マネージャは、プールにおける各
接続に関するステータス情報を維持する責任がある。な
お、そのステータス情報はその接続が現在使用されつつ
あるかどうかを含んでいる。「使用中」フラッグを各接
続と関連付けることによって、これを行うことが可能で
ある。なお、そのフラッグは、接続がサーブレットに割
り当てられている時には「真」にセットされ、サーブレ
ットがその接続の使用を終了してそれをプールに戻した
時には「偽」にセットされる。ブロック510は、使用
中ではないとしてマークされた接続だけをチェックす
る。このテストが肯定応答を有する場合、制御はブロッ
ク520に移る。そうでない場合、制御はブロック53
0に移る。
今「使用中」であるとしてマークされ、その接続がリク
エスティング・サーブレットに割り当てられる。望まし
くは、サーブレットによって渡された接続指定オブジェ
クトは、割り当てられる接続のアドレスを反映するよう
に接続マネージャによって更新されるであろう。ブロッ
ク420において、接続マネージャからの応答を受け取
った時、サーブレットは、今や、それがその接続を使用
する必要がある情報を有し、そしてそれはアプリケーシ
ョン特有の態様でこれを行い始める。
ーブレットが行われるかどうかを尋ねる。それが否定さ
れる場合、サーブレットは、ブロック420によって示
されるようにその接続を使用し続ける。それが肯定され
る場合、ブロック440において、接続は接続マネージ
ャに戻される。ブロック430におけるテストは反復実
行テストとして意図されず、サーブレットがその接続の
使用を終了した時に処理のフローが異なるパスを取るこ
とを表すために含まれているということは当業者には明
らかであろう。ブロック440において接続を戻した
後、ブロック570において、接続マネージャはそれを
プールに戻し、それを使用中でないものとしてマークす
る。このクライアント・リクエストの処理(それが本発
明に関連するので)は完了し、図5の処理は終了する。
ったことをブロック510におけるテストが表す時、ブ
ロック530に達する。ブロック530は待機−再試行
パラメータをテストして、それの要求に適合する接続が
得られるようになったかどうかを知るために、このサー
ブレットが或る指定された期間の間待機するつもりであ
るかどうかを知る。このパラメータがサーブレットによ
って「偽」にセットされていた場合、制御はブロック5
60に移るであろう。その場合、エラーが発生され、サ
ーブレットに戻される。Javaの用語では、接続マネ
ージャはブロック560において例外を投じる。サーブ
レットはブロック450においてエラー表示を受け取
る。そのエラーに応答して遂行される処理は、接続が確
立され得なかった時に呼び出される既存のテクニックを
使用するアプリケーション特有のものであり、本発明の
一部を形成するものではない。このアプリケーション特
有の処理に続いて、図5のロジック・フローはこのクラ
イアント・リクエストに関して終了する。
ることとして新たな接続を確立するため、ブロック53
0及び560の間に付加的な処理を任意選択的に含むこ
とが可能である。この付加的な処理は、接続プールが接
続の最大数及び(又は)特定のデータ・サーバに対する
接続の最大数(特定のサブプールにおける最大数として
考えられる)を持つように構成された時に行われてもよ
い。存在する接続の数はその構成された最大数と比較さ
れ、それが少ない場合(更なる接続をプール又はサブプ
ールに依然として加えることができることを表す場
合)、新たな接続が確立されるであろうし、(この接続
を使用中としてマークし、それをサーブレットに戻すた
めに)制御がブロック520に移るであろう。プール又
はアプリケーション・プールに対する最大数に既に達し
ている場合、制御はブロック560に移り、エラー状態
を発生する。
よって「真」にセットされた時、制御はブロック540
に達する。これは、前述のように、指定された期間の間
サーブレットが待機するつもりであることを表す。待機
する時間の長さは、本発明の発明的概念を逸脱すること
なく多くの代替方法で指定可能である。例えば、その時
間は接続プール全体に対する構成パラメータとして指定
可能であるか、又は、それは各タイプのサブプールに対
するパラメータとして指定可能であるか、又は、それは
接続マネージャ・コードにおいて指定された静的値であ
るか、又は、それは接続指定オブジェクトにおけるサー
ブレットによって送られた属性の1つであることも可能
である。ブロック540は、この時間の長さを超えてし
まったかどうかを尋ねる。それが肯定的である場合、ブ
ロック540からの「肯定(イエス)」ブランチをたど
ることによって、制御はブロック560に移る。そうで
ない場合、制御はブロック550に移る。
はサーブレットのリクエストに対する待機プロセスを実
施するであろう。これは、或る待機期間又はすべての待
機期間の間作動するタイマを始動させるというようなそ
の分野では知られた幾つかの異なる方法で行われ得るこ
とである。タイマが待機期間の一部分の間作動する場
合、ブロック510乃至550のチェック・プロセスが
何回も反復可能である。これは、サーブレットのリクエ
ストが待機している間に適当な接続がプールに戻される
場合、それらの特性を持った接続もまたリクエストする
他のサーブレットの代わりに、それがそのサーブレット
に割り当てられる可能性を高める。タイマを使用する代
わりに、接続マネージャは接続を見つけようとしている
プロセスをブロックし、接続が他のプロセスによってプ
ールに戻される時そのプロセスをブロック解除する事象
を活性化する。ブロック550において待機を行うため
に使用される如何なるテクニックの終了時にも、制御は
ブロック510に戻り、現存のプールをチェックする。
ロック530及び560と関連して上述した最大接続数
の処理はブロック530及び560の間で付加的処理と
して反復され、待機−再試行パラメータが「真」にセッ
トされた時に新たな接続の作成を可能にする。別の方法
として、これらの両方の位置における最大接続数の処理
を含む代わりに、それがブロック510及び530の間
に挿入されるようにしてもよい。
る接続の数を最適化することを任意選択的に求めること
も可能である。この最適化を実施し得る1つの方法は、
指定された期間の間使用されないままになっていた接続
を切断することによって実施可能である。望ましくは、
これは「最後に使用された」というタイムスタンプを各
接続と関連付けることによって、及び接続プールに対す
る(又は、別の方法として、論理的サブプールの各々に
対する)「最大アイドル時間」値を指定することによっ
て実施されるであろう。サーブレットが接続の使用を終
了する時にいつも、そのサーブレットは現在の時間を反
映するようにその「最後に使用された」タイムスタンプ
に記憶された値を更新する。そこで、接続マネージャ
は、使用中ではないとしてマークされた各接続を検査す
るプロセスを定期的に呼び出し、その最後に使用された
タイムスタンプを現在のシステム時間に比較する。この
差が最大アイドル時間(この接続が適用可能である場合
に関連するプール又はサブプールに対する)を超える場
合、この接続はアイドルしていた時間が長すぎたことに
なり、接続を開いておく必要がある資源を浪費すること
になる。アイドル接続は切断されるであろう。任意選択
的に、このプロセスにおいて解放される接続が多くなり
過ぎないようにするために、「接続の最大数」が、再び
プール全体のパラメータとして又は各サブプールのパラ
メータとしてセット可能である。最小値が指定される
時、既存の接続の数がこの数に達した時にいつも比較プ
ロセスは終了する。
に割り当てられる接続は、そのサーブレットが依然とし
て生産的に接続を使用しようとすることを保証するため
に定期的に検査可能である。望ましくは、タイムスタン
プ値が各接続と関連付けられ、それは、接続がサーブレ
ットに割り当てられる時に先ずセットされ、そしてサー
ブレットがその接続を使用する度に更新される。この値
を使用中の接続に対する現在時間に比較することによっ
て、サーブレットがその接続を最後に使用した以後にど
のくらいの時間が経過したかを決定することが可能であ
る。プールに対して、又は個々のサブプールに対して、
「最大経過時間」を設定することが可能である。そこ
で、接続に対するその経過した時間がこの最大経過時間
値に比較される。その経過した時間の方が大きい場合、
これは、サーブレットがクラッシュ、ハング等を受け、
最早その接続を使用し得ないという表示である。接続が
この状況において廃棄資源とならないようにするため
に、接続マネージャはタイムスタンプをクリアし、その
接続を使用中でないものとしてマークし、それをプール
に戻す。
延を単に経験しただけであるが依然として活動的に実行
しているというケースを説明するために、サーブレット
は、それらの接続が、データ・サーバにデータを送る前
にこの方法でそれらから除去されてしまったかどうかを
検証することが可能である。望ましくは、これは、サー
ブレットが依然としてその接続を所有しているかどうか
を接続マネージャに尋ねるための方法をサーブレットが
呼び出すことによって行われるであろう。接続マネージ
ャは、どの接続がどのサーブレットに割り当てられるか
を記録する責任がある。サーブレットが依然としてその
接続を所有することを応答が表す場合、サーブレットは
正常に進行する。その応答がそれを表さない場合、接続
は除去され、サーブレットは接続マネージャから新たな
接続をリクエストしなければならない。
機−再試行値を指定するために構成パラメータが使用さ
れる時、これらの値は、当業者には周知であるテクニッ
クを使用して、ウェブ・アドミニストレータのようなユ
ーザによって入れられるであろう。構成プロセスは、一
般に、ウェブ・サーバ82が始動されつつある時、その
ウェブ・サーバに対する管理インターフェースから構成
オプションを選択することによって呼び出されるであろ
う。この管理インターフェースは、クライアントの機械
においてアクセスされるグラフィカル・ユーザ・インタ
ーフェース(層1)であってもよく、構成された値は、
インターネット接続を使用して、そのグラフィカル・ユ
ーザ・インターフェースからプール機能の実装体に送ら
れるであろう。このプロセスは、構成されたパラメータ
の既存の値を変更することが望ましい時にはいつも、必
要に応じて反復可能である。
も、当業者がこの基本的な発明概念を知ってしまえば、
実施例における付加的な変更及び修正を行うことが可能
であろう。従って、特許請求の範囲の記載は、好適な実
施例及びそのようなすべての変更及び修正を本発明の精
神及び技術範囲に或るものとして含むように解釈されべ
きものと考えられる。
の事項を開示する。
ピューティング環境において、バックエンド・データ・
サーバへの接続をプールすることによってサーバ・パフ
ォーマンスを改良するための、前記環境におけるコンピ
ュータ・システムによる読取り可能なコンピュータ読取
り可能コードにして、アプリケーション・サーバと、1
つ又は複数のバックエンド・データ・サーバと、接続プ
ールと、各々が前記アプリケーション・サーバを前記1
つ又は複数のバックエンド・データ・サーバの1つに接
続する1つ又は複数の接続を確立するためのサブプロセ
スと、前記確立された接続を前記接続プールに入れるた
めのサブプロセスと、前記接続プールにおける前記入れ
られた接続を管理するためのサブプロセスと、を含むコ
ンピュータ読取り可能コード。 (2)1つ又は複数のサーブレットと、各々が前記サー
ブレットの1つによって実行される複数のクライアント
・リクエストと、を更に含み、前記接続プールにおける
前記入れられた接続を管理するためのサブプロセスは更
に、前記1つ又は複数のサーブレットからリクエストを
受け取るためのサブプロセスにして、前記リクエストの
各々は適当な接続を割り当てるためのリクエストであ
り、共通のアプリケーション・プログラミング・インタ
ーフェースを使用するものであることと、前記サーブレ
ットによる使用のために前記サーブレットに前記適当な
接続を割り当てるためのサブプロセスと、を含む上記
(1)に記載のコンピュータ読取り可能コード。 (3)前記適当な接続を割り当てるためのサブプロセス
は、更に、前記接続プールにおける前記適当な接続を、
それが得られる場合に、見つけるためのサブプロセス
と、新たな接続を、それが必要とされる時に、確立する
ためのサブプロセスと、エラーを、それが必要とされる
時に、戻すためのプロセスと、を含む、上記(2)に記
載のコンピュータ読取り可能コード。 (4)前記適当な接続を割り当てるためのサブプロセス
は、更に、前記適当な接続が前記プールにおいて使用可
能になるために或る指定された期間待機するためのサブ
プロセスを含む、上記(2)に記載のコンピュータ読取
り可能コード。 (5)前記新たな接続を確立するためのサブプロセス
は、前記適当な接続を前記接続プールにおいて見つける
ことができなかった時及び最大プール・サイズに到達し
ていない時に動作する、上記(3)に記載のコンピュー
タ読取り可能コード。 (6)前記入れられた接続を管理するためのサブプロセ
スは、更に、前記1つ又は複数の接続が最大アイドル時
間よりも長くアイドルしていたことを検出した時、前記
接続されたバックエンド・データ・サーバから前記接続
のうちの1つ又は複数を切断するためのサブプロセス
と、前記切断された接続を前記プールから除去するため
のサブプロセスと、を含む、上記(3)に記載のコンピ
ュータ読取り可能コード。 (7)前記入れられた接続を管理するためのサブプロセ
スは、前記1つ又は複数の割り当てられた接続が最大時
間よりも長く使用されてなかったことを検出する時、前
記1つ又は複数の割り当てられた接続を、該接続が割り
当てられていた前記サーブレットから割当て解除するた
めのサブプロセスと、前記割当て解除された接続を前記
プールにおいて使用可能にするためのプロセスと、を含
む、上記(3)に記載のコンピュータ読取り可能コー
ド。 (8)ネットワークへの接続を有するコンピューティン
グ環境において接続をプールすることによってサーバ・
パフォーマンスを改良するためのシステムであって、ア
プリケーション・サーバと、1つ又は複数のバックエン
ド・データ・サーバと、接続プールと、各々が前記アプ
リケーション・サーバを前記1つ又は複数のバックエン
ド・データ・サーバの1つに接続する1つ又は複数の接
続を確立するための手段と、前記確立された接続を前記
接続プールに入れるための手段と、前記接続プールにお
ける前記入れられた接続を管理するための手段と、を含
むシステム。 (9)1つ又は複数のサーブレットと、各々が前記サー
ブレットの1つによって実行される複数のクライアント
・リクエストと、を更に含み、前記接続プールにおける
前記入れられた接続を管理するための手段は、更に、前
記1つ又は複数のサーブレットからリクエストを受け取
るための手段であって、前記リクエストの各々は適当な
接続を割り当てるためのリクエストであり、共通のアプ
リケーション・プログラミング・インターフェースを使
用するものであることと、前記サーブレットによる使用
のために前記サーブレットに前記適当な接続を割り当て
るための手段と、を含む上記(8)に記載のシステム。 (10)前記適当な接続を割り当てるための手段は、更
に、前記接続プールにおける前記適当な接続を、それが
得られる場合に、見つけるための手段と、新たな接続
を、それが必要とされる時に、確立するための手段と、
エラーを、それが必要とされる時に、戻すための手段
と、を含む、上記(9)に記載のシステム。 (11)前記適当な接続を割り当てるための手段は、更
に、前記適当な接続が前記プールにおいて使用可能にな
るために或る指定された期間待機するための手段を含
む、上記(10)に記載のシステム。 (12)前記新たな接続を確立するための手段は、前記
適当な接続が前記接続プールにおいて見つけることがで
きなかった時及び最大プール・サイズに到達していない
時に動作する、上記(10)に記載のシステム。 (13)前記入れられた接続を管理するための手段は、
更に、前記1つ又は複数の接続が最大アイドル時間より
も長くアイドルしていたことを検出した時、前記接続さ
れたバックエンド・データ・サーバから前記接続のうち
の1つ又は複数を切断するための手段と、前記切断され
た接続を前記プールから除去するための手段と、を含
む、上記(10)に記載のシステム。 (14)前記入れられた接続を管理するための手段は、
前記1つ又は複数の割り当てられた接続が最大時間より
も長く使用されてなかったことを検出する時、前記1つ
又は複数の割り当てられた接続を、該接続が割り当てら
れていた前記サーブレットから割当て解除するための手
段と、前記割当て解除された接続を前記プールにおいて
使用可能にするための手段と、を含む、上記(10)に
記載のシステム。 (15)ネットワークへの接続を有するコンピューティ
ング環境において接続をプールすることによってサーバ
・パフォーマンスを改良するための方法であって、各々
が前記アプリケーション・サーバを前記1つ又は複数の
バックエンド・データ・サーバの1つに接続する1つ又
は複数の接続を確立するステップと、前記確立された接
続を前記接続プールに入れるステップと、前記接続プー
ルにおける前記入れられた接続を管理するステップと、
を含む方法。 (16)1つ又は複数のサーブレットと、各々が前記サ
ーブレットの1つによって実行される複数のクライアン
ト・リクエストと、を更に含み、前記接続プールにおけ
る前記入れられた接続を管理するステップは、更に、前
記1つ又は複数のサーブレットからリクエストを受け取
るステップにして、前記リクエストの各々は適当な接続
を割り当てるためのリクエストであり、共通のアプリケ
ーション・プログラミング・インターフェースを使用す
るものであることと、前記サーブレットによる使用のた
めに前記サーブレットに前記適当な接続を割り当てるス
テップと、を含む上記(15)に記載の方法。 (17)前記適当な接続を割り当てるステップは、更
に、前記接続プールにおける前記適当な接続を、それが
得られる場合に、見つけるステップと、新たな接続を、
それが必要とされる時に、確立するステップと、エラー
を、それが必要とされる時に、戻すステップと、を含
む、上記(16)に記載の方法。 (18)前記適当な接続を割り当てるステップは、更
に、前記適当な接続が前記プールにおいて使用可能にな
るために或る指定された期間待機するステップを含む、
上記(17)に記載の方法。 (19)前記新たな接続を確立するステップは、前記適
当な接続が前記接続プールにおいて見つけることができ
なかった時及び最大プール・サイズに到達していない時
に動作する、上記(17)に記載の方法。 (20)前記入れられた接続を管理するステップは、更
に、前記1つ又は複数の接続が最大アイドル時間よりも
長くアイドルしていたことを検出した時、前記接続され
たバックエンド・データ・サーバから前記接続のうちの
1つ又は複数を切断するステップと、前記切断された接
続を前記プールから除去するステップと、を含む、上記
(17)に記載の方法。 (21)前記入れられた接続を管理するステップは、前
記1つ又は複数の割り当てられた接続が最大時間よりも
長く使用されてなかったことを検出する時、前記1つ又
は複数の割り当てられた接続を、該接続が割り当てられ
ていた前記サーブレットから割当て解除するステップ
と、前記割当て解除された接続を前記プールにおいて使
用可能にするステップと、を含む、上記(17)に記載
の方法。
ーション環境のブロック図である。
ューティング環境を表す図である。
ク環境を示す。
示し、プールされた接続を利用するためのコンポーネン
ト間のアクティビティ及びメッセージの望ましいフロー
を示す。
するクライアント・リクエストを受け取る時の本発明と
関連したロジックを示すフロー・チャートを示す。
Claims (21)
- 【請求項1】ネットワークへの接続を有するコンピュー
ティング環境において、バックエンド・データ・サーバ
への接続をプールすることによってサーバ・パフォーマ
ンスを改良するための、前記環境におけるコンピュータ
・システムによる読取り可能なコンピュータ読取り可能
コードにして、 アプリケーション・サーバと、 1つ又は複数のバックエンド・データ・サーバと、 接続プールと、 各々が前記アプリケーション・サーバを前記1つ又は複
数のバックエンド・データ・サーバの1つに接続する1
つ又は複数の接続を確立するためのサブプロセスと、 前記確立された接続を前記接続プールに入れるためのサ
ブプロセスと、 前記接続プールにおける前記入れられた接続を管理する
ためのサブプロセスと、 を含むコンピュータ読取り可能コード。 - 【請求項2】1つ又は複数のサーブレットと、 各々が前記サーブレットの1つによって実行される複数
のクライアント・リクエストと、 を更に含み、 前記接続プールにおける前記入れられた接続を管理する
ためのサブプロセスは更に、 前記1つ又は複数のサーブレットからリクエストを受け
取るためのサブプロセスにして、前記リクエストの各々
は適当な接続を割り当てるためのリクエストであり、共
通のアプリケーション・プログラミング・インターフェ
ースを使用するものであることと、 前記サーブレットによる使用のために前記サーブレット
に前記適当な接続を割り当てるためのサブプロセスと、 を含む請求項1に記載のコンピュータ読取り可能コー
ド。 - 【請求項3】前記適当な接続を割り当てるためのサブプ
ロセスは、更に、 前記接続プールにおける前記適当な接続を、それが得ら
れる場合に、見つけるためのサブプロセスと、 新たな接続を、それが必要とされる時に、確立するため
のサブプロセスと、 エラーを、それが必要とされる時に、戻すためのプロセ
スと、 を含む、請求項2に記載のコンピュータ読取り可能コー
ド。 - 【請求項4】前記適当な接続を割り当てるためのサブプ
ロセスは、更に、前記適当な接続が前記プールにおいて
使用可能になるために或る指定された期間待機するため
のサブプロセスを含む、請求項2に記載のコンピュータ
読取り可能コード。 - 【請求項5】前記新たな接続を確立するためのサブプロ
セスは、前記適当な接続を前記接続プールにおいて見つ
けることができなかった時及び最大プール・サイズに到
達していない時に動作する、請求項3に記載のコンピュ
ータ読取り可能コード。 - 【請求項6】前記入れられた接続を管理するためのサブ
プロセスは、更に、 前記1つ又は複数の接続が最大アイドル時間よりも長く
アイドルしていたことを検出した時、前記接続されたバ
ックエンド・データ・サーバから前記接続のうちの1つ
又は複数を切断するためのサブプロセスと、 前記切断された接続を前記プールから除去するためのサ
ブプロセスと、 を含む、請求項3に記載のコンピュータ読取り可能コー
ド。 - 【請求項7】前記入れられた接続を管理するためのサブ
プロセスは、 前記1つ又は複数の割り当てられた接続が最大時間より
も長く使用されてなかったことを検出する時、前記1つ
又は複数の割り当てられた接続を、該接続が割り当てら
れていた前記サーブレットから割当て解除するためのサ
ブプロセスと、 前記割当て解除された接続を前記プールにおいて使用可
能にするためのプロセスと、 を含む、請求項3に記載のコンピュータ読取り可能コー
ド。 - 【請求項8】ネットワークへの接続を有するコンピュー
ティング環境において接続をプールすることによってサ
ーバ・パフォーマンスを改良するためのシステムであっ
て、 アプリケーション・サーバと、 1つ又は複数のバックエンド・データ・サーバと、 接続プールと、 各々が前記アプリケーション・サーバを前記1つ又は複
数のバックエンド・データ・サーバの1つに接続する1
つ又は複数の接続を確立するための手段と、 前記確立された接続を前記接続プールに入れるための手
段と、 前記接続プールにおける前記入れられた接続を管理する
ための手段と、 を含むシステム。 - 【請求項9】1つ又は複数のサーブレットと、 各々が前記サーブレットの1つによって実行される複数
のクライアント・リクエストと、 を更に含み、 前記接続プールにおける前記入れられた接続を管理する
ための手段は、更に、 前記1つ又は複数のサーブレットからリクエストを受け
取るための手段であって、前記リクエストの各々は適当
な接続を割り当てるためのリクエストであり、共通のア
プリケーション・プログラミング・インターフェースを
使用するものであることと、 前記サーブレットによる使用のために前記サーブレット
に前記適当な接続を割り当てるための手段と、 を含む請求項8に記載のシステム。 - 【請求項10】前記適当な接続を割り当てるための手段
は、更に、 前記接続プールにおける前記適当な接続を、それが得ら
れる場合に、見つけるための手段と、 新たな接続を、それが必要とされる時に、確立するため
の手段と、 エラーを、それが必要とされる時に、戻すための手段
と、 を含む、請求項9に記載のシステム。 - 【請求項11】前記適当な接続を割り当てるための手段
は、更に、前記適当な接続が前記プールにおいて使用可
能になるために或る指定された期間待機するための手段
を含む、請求項10に記載のシステム。 - 【請求項12】前記新たな接続を確立するための手段
は、前記適当な接続が前記接続プールにおいて見つける
ことができなかった時及び最大プール・サイズに到達し
ていない時に動作する、請求項10に記載のシステム。 - 【請求項13】前記入れられた接続を管理するための手
段は、更に、 前記1つ又は複数の接続が最大アイドル時間よりも長く
アイドルしていたことを検出した時、前記接続されたバ
ックエンド・データ・サーバから前記接続のうちの1つ
又は複数を切断するための手段と、 前記切断された接続を前記プールから除去するための手
段と、 を含む、請求項10に記載のシステム。 - 【請求項14】前記入れられた接続を管理するための手
段は、 前記1つ又は複数の割り当てられた接続が最大時間より
も長く使用されてなかったことを検出する時、前記1つ
又は複数の割り当てられた接続を、該接続が割り当てら
れていた前記サーブレットから割当て解除するための手
段と、 前記割当て解除された接続を前記プールにおいて使用可
能にするための手段と、 を含む、請求項10に記載のシステム。 - 【請求項15】ネットワークへの接続を有するコンピュ
ーティング環境において接続をプールすることによって
サーバ・パフォーマンスを改良するための方法であっ
て、 各々が前記アプリケーション・サーバを前記1つ又は複
数のバックエンド・データ・サーバの1つに接続する1
つ又は複数の接続を確立するステップと、 前記確立された接続を前記接続プールに入れるステップ
と、 前記接続プールにおける前記入れられた接続を管理する
ステップと、 を含む方法。 - 【請求項16】1つ又は複数のサーブレットと、 各々が前記サーブレットの1つによって実行される複数
のクライアント・リクエストと、 を更に含み、 前記接続プールにおける前記入れられた接続を管理する
ステップは、更に、 前記1つ又は複数のサーブレットからリクエストを受け
取るステップにして、前記リクエストの各々は適当な接
続を割り当てるためのリクエストであり、共通のアプリ
ケーション・プログラミング・インターフェースを使用
するものであることと、 前記サーブレットによる使用のために前記サーブレット
に前記適当な接続を割り当てるステップと、 を含む請求項15に記載の方法。 - 【請求項17】前記適当な接続を割り当てるステップ
は、更に、 前記接続プールにおける前記適当な接続を、それが得ら
れる場合に、見つけるステップと、 新たな接続を、それが必要とされる時に、確立するステ
ップと、 エラーを、それが必要とされる時に、戻すステップと、 を含む、請求項16に記載の方法。 - 【請求項18】前記適当な接続を割り当てるステップ
は、更に、前記適当な接続が前記プールにおいて使用可
能になるために或る指定された期間待機するステップを
含む、請求項17に記載の方法。 - 【請求項19】前記新たな接続を確立するステップは、
前記適当な接続が前記接続プールにおいて見つけること
ができなかった時及び最大プール・サイズに到達してい
ない時に動作する、請求項17に記載の方法。 - 【請求項20】前記入れられた接続を管理するステップ
は、更に、 前記1つ又は複数の接続が最大アイドル時間よりも長く
アイドルしていたことを検出した時、前記接続されたバ
ックエンド・データ・サーバから前記接続のうちの1つ
又は複数を切断するステップと、 前記切断された接続を前記プールから除去するステップ
と、 を含む、請求項17に記載の方法。 - 【請求項21】前記入れられた接続を管理するステップ
は、 前記1つ又は複数の割り当てられた接続が最大時間より
も長く使用されてなかったことを検出する時、前記1つ
又は複数の割り当てられた接続を、該接続が割り当てら
れていた前記サーブレットから割当て解除するステップ
と、 前記割当て解除された接続を前記プールにおいて使用可
能にするステップと、 を含む、請求項17に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/092,928 US6105067A (en) | 1998-06-05 | 1998-06-05 | Connection pool management for backend servers using common interface |
US09/092928 | 1998-06-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000029814A true JP2000029814A (ja) | 2000-01-28 |
JP3515423B2 JP3515423B2 (ja) | 2004-04-05 |
Family
ID=22235822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14103899A Expired - Fee Related JP3515423B2 (ja) | 1998-06-05 | 1999-05-21 | サーバ・パフォーマンスを改良するためのシステムおよび方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6105067A (ja) |
JP (1) | JP3515423B2 (ja) |
GB (1) | GB2338386A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8250201B2 (en) | 2002-09-09 | 2012-08-21 | International Business Machines Corporation | Servlet monitoring tool |
US10645152B2 (en) | 2017-06-21 | 2020-05-05 | Fujitsu Limited | Information processing apparatus and memory control method for managing connections with other information processing apparatuses |
Families Citing this family (167)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9603582D0 (en) | 1996-02-20 | 1996-04-17 | Hewlett Packard Co | Method of accessing service resource items that are for use in a telecommunications system |
US6976093B2 (en) | 1998-05-29 | 2005-12-13 | Yahoo! Inc. | Web server content replication |
US7581006B1 (en) | 1998-05-29 | 2009-08-25 | Yahoo! Inc. | Web service |
US7143193B1 (en) * | 1998-05-29 | 2006-11-28 | Yahoo! Inc. | Content collection |
US6633914B1 (en) * | 1998-08-05 | 2003-10-14 | International Business Machines Corporation | Systems, methods and computer program products for handling client requests for server application processing using a thread pool |
US6493749B2 (en) * | 1998-08-17 | 2002-12-10 | International Business Machines Corporation | System and method for an administration server |
WO2000023879A1 (en) * | 1998-10-16 | 2000-04-27 | Objectera, Inc. | Connection concentrator for distributed object systems |
US20020169820A1 (en) * | 1998-11-20 | 2002-11-14 | Eugene Sayan | Process pool methods and apparatus |
US6487581B1 (en) * | 1999-05-24 | 2002-11-26 | Hewlett-Packard Company | Apparatus and method for a multi-client event server |
US6754714B1 (en) * | 1999-10-05 | 2004-06-22 | Cisco Technology, Inc. | Multilink point-to-point protocol network access server channel allocation method and apparatus |
US6604046B1 (en) * | 1999-10-20 | 2003-08-05 | Objectfx Corporation | High-performance server architecture, methods, and software for spatial data |
US7418506B1 (en) * | 1999-11-12 | 2008-08-26 | International Business Machines Corporation | Apparatus for connection management and the method therefor |
US6694367B1 (en) * | 1999-11-30 | 2004-02-17 | Ge Medical Technology Services | Communication connectivity initialization and verification system and method of use |
JP3681313B2 (ja) * | 1999-12-01 | 2005-08-10 | 富士通株式会社 | データ配信方法 |
US7120692B2 (en) | 1999-12-02 | 2006-10-10 | Senvid, Inc. | Access and control system for network-enabled devices |
US9191443B2 (en) | 1999-12-02 | 2015-11-17 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US8793374B2 (en) * | 1999-12-02 | 2014-07-29 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US6499054B1 (en) * | 1999-12-02 | 2002-12-24 | Senvid, Inc. | Control and observation of physical devices, equipment and processes by multiple users over computer networks |
DE60038982D1 (de) * | 1999-12-02 | 2008-07-03 | Western Digital Tech Inc | System zum fernaufnehmen von fernsehprogrammen |
US7934251B2 (en) * | 1999-12-02 | 2011-04-26 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US8688797B2 (en) * | 1999-12-02 | 2014-04-01 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US7587467B2 (en) * | 1999-12-02 | 2009-09-08 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US6760767B1 (en) * | 1999-12-02 | 2004-07-06 | General Electric Company | Communication connectivity verification and reporting system and method of use |
US7917628B2 (en) * | 1999-12-02 | 2011-03-29 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
CA2293062A1 (en) * | 1999-12-22 | 2001-06-22 | Ibm Canada Limited-Ibm Canada Limitee | Efficient use of domain socket pairs in communication for tightly coupled transactions |
US6654784B1 (en) * | 2000-01-14 | 2003-11-25 | Nexaweb Technologies, Inc | Computing architecture |
US6938256B2 (en) | 2000-01-18 | 2005-08-30 | Galactic Computing Corporation | System for balance distribution of requests across multiple servers using dynamic metrics |
US6430273B1 (en) * | 2000-03-10 | 2002-08-06 | U.S. West, Inc. | System and method of providing a bi-directional DSL connection |
US20010044743A1 (en) * | 2000-03-28 | 2001-11-22 | Mckinley James M. | System and method for profile driven commerce |
US6631417B1 (en) * | 2000-03-29 | 2003-10-07 | Iona Technologies Plc | Methods and apparatus for securing access to a computer |
US7139743B2 (en) | 2000-04-07 | 2006-11-21 | Washington University | Associative database scanning and information retrieval using FPGA devices |
US6711558B1 (en) | 2000-04-07 | 2004-03-23 | Washington University | Associative database scanning and information retrieval |
US8095508B2 (en) * | 2000-04-07 | 2012-01-10 | Washington University | Intelligent data storage and processing using FPGA devices |
US7139822B2 (en) * | 2000-07-07 | 2006-11-21 | International Business Machines Corporation | Interception method and system for compensating disadvantageous characteristics of a communication protocol |
US6816905B1 (en) * | 2000-11-10 | 2004-11-09 | Galactic Computing Corporation Bvi/Bc | Method and system for providing dynamic hosted service management across disparate accounts/sites |
US8538843B2 (en) | 2000-07-17 | 2013-09-17 | Galactic Computing Corporation Bvi/Bc | Method and system for operating an E-commerce service provider |
WO2002015018A1 (en) * | 2000-08-11 | 2002-02-21 | 3Ware, Inc. | Architecture for providing block-level storage access over a computer network |
US6668370B1 (en) * | 2000-09-21 | 2003-12-23 | International Business Machines Corporation | Synchronous execution of object-oriented scripts and procedural code from within an interactive test facility |
US7801978B1 (en) | 2000-10-18 | 2010-09-21 | Citrix Systems, Inc. | Apparatus, method and computer program product for efficiently pooling connections between clients and servers |
JP3632756B2 (ja) * | 2000-11-22 | 2005-03-23 | 日本電気株式会社 | 通信システム、サーバ、その方法及び記録媒体 |
US6968557B1 (en) | 2000-12-18 | 2005-11-22 | Stratum8 Corporation | Reducing stack memory resources in a threaded computer system |
US6697206B2 (en) * | 2000-12-19 | 2004-02-24 | Imation Corp. | Tape edge monitoring |
US6988140B2 (en) * | 2001-02-23 | 2006-01-17 | Sun Microsystems, Inc. | Mechanism for servicing connections by disassociating processing resources from idle connections and monitoring the idle connections for activity |
US20020120743A1 (en) * | 2001-02-26 | 2002-08-29 | Lior Shabtay | Splicing persistent connections |
EP1381979A4 (en) * | 2001-03-30 | 2005-01-26 | Goldman Sachs & Co | PROCESS AND SYSTEM FOR PROCESSING INQUIRIES REQUIRING COORDINATED ACCESS TO DISTRIBUTED DATABASES |
CN1547702A (zh) * | 2001-04-27 | 2004-11-17 | ��������ķ������ | 高速服务器系统 |
US7577598B2 (en) | 2001-05-01 | 2009-08-18 | United Parcel Service Of America, Inc. | Account opening facilitation system, method and computer program product |
US7774492B2 (en) * | 2001-07-26 | 2010-08-10 | Citrix Systems, Inc. | System, method and computer program product to maximize server throughput while avoiding server overload by controlling the rate of establishing server-side net work connections |
US20030055913A1 (en) * | 2001-07-26 | 2003-03-20 | Harkin Arthur S. | Tiered web site with web-tier admission control based on utilization data generated on application tier |
US20030065949A1 (en) * | 2001-10-01 | 2003-04-03 | Madeleine Le | International trade system |
US7716330B2 (en) | 2001-10-19 | 2010-05-11 | Global Velocity, Inc. | System and method for controlling transmission of data packets over an information network |
EP1326476B1 (en) * | 2002-01-08 | 2013-03-13 | Alcatel Lucent | Network, network-unit, method, and processor program product for exchanging packet signals via pooled connection |
US6915341B2 (en) * | 2002-01-08 | 2005-07-05 | International Business Machines Corporation | System for sending messages to all users in a web hosting environment |
AU2003228512A1 (en) * | 2002-04-10 | 2003-10-27 | Instasolv, Inc. | Method and system for managing computer systems |
US6993683B2 (en) * | 2002-05-10 | 2006-01-31 | Microsoft Corporation | Analysis of pipelined networks |
US7962630B2 (en) * | 2002-05-10 | 2011-06-14 | Oracle International Corporation | Method and mechanism for implementing tagged session pools |
US20040143670A1 (en) * | 2002-07-02 | 2004-07-22 | Pratik Roychowdhury | System, method and computer program product to avoid server overload by controlling HTTP denial of service (DOS) attacks |
DE10229900B4 (de) * | 2002-07-03 | 2005-05-04 | Siemens Ag | Konfiguration eines auf einem Breitbandkabelverteilnetz beruhenden Telefoniezugangsnetzes und einer zugehörigen paketbasierten Vermittlungsstelle |
US7007200B2 (en) * | 2002-07-11 | 2006-02-28 | International Business Machines Corporation | Error analysis fed from a knowledge base |
US7080287B2 (en) * | 2002-07-11 | 2006-07-18 | International Business Machines Corporation | First failure data capture |
US20040010775A1 (en) * | 2002-07-12 | 2004-01-15 | International Business Machines Corporation | Method, system and program product for reconfiguration of pooled objects |
US7058717B2 (en) * | 2002-07-25 | 2006-06-06 | International Business Machines Corporation | Method and system for providing highly available services based on a load balancing policy and a reusable connection context object |
US7711844B2 (en) | 2002-08-15 | 2010-05-04 | Washington University Of St. Louis | TCP-splitter: reliable packet monitoring methods and apparatus for high speed networks |
US7698434B2 (en) * | 2002-08-29 | 2010-04-13 | Bea Systems, Inc. | J2EE connector architecture |
US7386857B2 (en) * | 2002-09-17 | 2008-06-10 | International Business Machines Corporation | Application connector parallelism in enterprise application integration systems |
US7117324B2 (en) * | 2002-10-18 | 2006-10-03 | International Business Machines Corporation | Simultaneous data backup in a computer system |
US8145759B2 (en) * | 2002-11-04 | 2012-03-27 | Oracle America, Inc. | Dynamically configurable resource pool |
US7840856B2 (en) * | 2002-11-07 | 2010-11-23 | International Business Machines Corporation | Object introspection for first failure data capture |
US7599959B2 (en) * | 2002-12-02 | 2009-10-06 | Sap Ag | Centralized access and management for multiple, disparate data repositories |
US7359982B1 (en) * | 2002-12-26 | 2008-04-15 | International Business Machines Corporation | System and method for facilitating access to content information |
US20040145605A1 (en) * | 2003-01-28 | 2004-07-29 | Sujoy Basu | Access method and system for remote desktops |
US8473620B2 (en) * | 2003-04-14 | 2013-06-25 | Riverbed Technology, Inc. | Interception of a cloud-based communication connection |
US7743083B2 (en) | 2003-04-24 | 2010-06-22 | Oracle America, Inc. | Common transaction manager interface for local and global transactions |
US7610305B2 (en) | 2003-04-24 | 2009-10-27 | Sun Microsystems, Inc. | Simultaneous global transaction and local transaction management in an application server |
US8621031B2 (en) * | 2003-04-29 | 2013-12-31 | Oracle International Corporation | Method and apparatus using connection pools in communication networks |
EP2528000B1 (en) | 2003-05-23 | 2017-07-26 | IP Reservoir, LLC | Intelligent data storage and processing using FPGA devices |
US10572824B2 (en) | 2003-05-23 | 2020-02-25 | Ip Reservoir, Llc | System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines |
US7523200B2 (en) * | 2003-07-02 | 2009-04-21 | International Business Machines Corporation | Dynamic access decision information module |
US7640545B2 (en) * | 2003-07-14 | 2009-12-29 | Sun Microsytems, Inc. | Transaction manager freezing |
US7739252B2 (en) * | 2003-07-14 | 2010-06-15 | Oracle America, Inc. | Read/write lock transaction manager freezing |
US20050021511A1 (en) * | 2003-07-24 | 2005-01-27 | Etagon Israel Ltd. | System and method for load balancing in database queries |
US7747717B2 (en) * | 2003-08-14 | 2010-06-29 | Oracle International Corporation | Fast application notification in a clustered computing system |
US20050256971A1 (en) * | 2003-08-14 | 2005-11-17 | Oracle International Corporation | Runtime load balancing of work across a clustered computing system using current service performance levels |
US7664847B2 (en) | 2003-08-14 | 2010-02-16 | Oracle International Corporation | Managing workload by service |
US7937493B2 (en) * | 2003-08-14 | 2011-05-03 | Oracle International Corporation | Connection pool use of runtime load balancing service performance advisories |
US7953860B2 (en) * | 2003-08-14 | 2011-05-31 | Oracle International Corporation | Fast reorganization of connections in response to an event in a clustered computing system |
US20060064400A1 (en) * | 2004-09-21 | 2006-03-23 | Oracle International Corporation, A California Corporation | Methods, systems and software for identifying and managing database work |
CN100547583C (zh) * | 2003-08-14 | 2009-10-07 | 甲骨文国际公司 | 数据库的自动和动态提供的方法 |
US8521875B2 (en) * | 2003-09-04 | 2013-08-27 | Oracle America, Inc. | Identity for data sources |
KR100991891B1 (ko) * | 2003-10-22 | 2010-11-04 | 인터내셔널 비지네스 머신즈 코포레이션 | 접속 관리 방법 및 시스템과 컴퓨터 판독가능 저장 매체 |
US8244880B2 (en) * | 2003-10-22 | 2012-08-14 | International Business Machines Corporation | Connection management method, system, and program product |
WO2005050625A2 (en) | 2003-11-14 | 2005-06-02 | Senvid, Inc. | Managed peer-to-peer applications in a secure network |
US8041821B2 (en) * | 2003-11-26 | 2011-10-18 | International Business Machines Corporation | Connection pool management |
US7260743B2 (en) * | 2004-01-13 | 2007-08-21 | International Business Machines Corporation | System and method for achieving autonomic computing self-healing, utilizing meta level reflection and reasoning |
US7602785B2 (en) | 2004-02-09 | 2009-10-13 | Washington University | Method and system for performing longest prefix matching for network address lookup using bloom filters |
GB0410151D0 (en) * | 2004-05-07 | 2004-06-09 | Zeus Technology Ltd | Load balancing & traffic management |
EP1805619A4 (en) | 2004-10-04 | 2008-02-13 | Research In Motion Ltd | SYSTEM AND METHOD FOR THE ADAPTIVE ALLOCATION OF THREADS TO USER OBJECTS IN A COMPUTER SYSTEM |
CA2577230C (en) * | 2004-10-04 | 2014-12-30 | Research In Motion Limited | Allocation of threads to user objects in a computer system |
US20060148568A1 (en) * | 2004-12-30 | 2006-07-06 | Motorola, Inc. | Device and method for wirelessly accessing game media |
US8327003B2 (en) * | 2005-02-03 | 2012-12-04 | International Business Machines Corporation | Handling backend failover in an application server |
WO2006096324A2 (en) | 2005-03-03 | 2006-09-14 | Washington University | Method and apparatus for performing biosequence similarity searching |
US7945591B2 (en) * | 2005-06-16 | 2011-05-17 | International Business Machines Corporation | Identifying problems, usage patterns, and performance in a database interface using aspect-oriented programming |
US7849199B2 (en) * | 2005-07-14 | 2010-12-07 | Yahoo ! Inc. | Content router |
US7623515B2 (en) | 2005-07-14 | 2009-11-24 | Yahoo! Inc. | Content router notification |
US7631045B2 (en) | 2005-07-14 | 2009-12-08 | Yahoo! Inc. | Content router asynchronous exchange |
US8478986B2 (en) * | 2005-08-10 | 2013-07-02 | Riverbed Technology, Inc. | Reducing latency of split-terminated secure communication protocol sessions |
US8438628B2 (en) * | 2005-08-10 | 2013-05-07 | Riverbed Technology, Inc. | Method and apparatus for split-terminating a secure network connection, with client authentication |
US8613071B2 (en) * | 2005-08-10 | 2013-12-17 | Riverbed Technology, Inc. | Split termination for secure communication protocols |
US20070086350A1 (en) * | 2005-10-13 | 2007-04-19 | International Business Machines Corporation | Method, system, and computer program product for providing failure detection with minimal bandwidth usage |
US20070100856A1 (en) * | 2005-10-21 | 2007-05-03 | Yahoo! Inc. | Account consolidation |
US8024290B2 (en) | 2005-11-14 | 2011-09-20 | Yahoo! Inc. | Data synchronization and device handling |
US8065680B2 (en) | 2005-11-15 | 2011-11-22 | Yahoo! Inc. | Data gateway for jobs management based on a persistent job table and a server table |
CA2632235A1 (en) | 2005-12-02 | 2007-06-07 | Citrix Systems, Inc. | Method and apparatus for providing authentication credentials from a proxy server to a virtualized computing environment to access a remote resource |
US7924884B2 (en) * | 2005-12-20 | 2011-04-12 | Citrix Systems, Inc. | Performance logging using relative differentials and skip recording |
US9367832B2 (en) * | 2006-01-04 | 2016-06-14 | Yahoo! Inc. | Synchronizing image data among applications and devices |
US7954114B2 (en) * | 2006-01-26 | 2011-05-31 | Exegy Incorporated | Firmware socket module for FPGA-based pipeline processing |
US7695370B2 (en) * | 2006-02-08 | 2010-04-13 | Gaia Interactive Inc. | Massively scalable multi-player game system |
US20070184903A1 (en) * | 2006-02-08 | 2007-08-09 | Derek Liu | Network-based game system capable of serving massive number of game players |
WO2007121035A2 (en) * | 2006-03-23 | 2007-10-25 | Exegy Incorporated | Method and system for high throughput blockwise independent encryption/decryption |
US8782393B1 (en) | 2006-03-23 | 2014-07-15 | F5 Networks, Inc. | Accessing SSL connection data by a third-party |
US7636703B2 (en) * | 2006-05-02 | 2009-12-22 | Exegy Incorporated | Method and apparatus for approximate pattern matching |
US8463843B2 (en) * | 2006-05-26 | 2013-06-11 | Riverbed Technology, Inc. | Throttling of predictive ACKs in an accelerated network communication system |
US7921046B2 (en) | 2006-06-19 | 2011-04-05 | Exegy Incorporated | High speed processing of financial information using FPGA devices |
US7840482B2 (en) | 2006-06-19 | 2010-11-23 | Exegy Incorporated | Method and system for high speed options pricing |
WO2008022036A2 (en) * | 2006-08-10 | 2008-02-21 | Washington University | Method and apparatus for protein sequence alignment using fpga devices |
US8326819B2 (en) | 2006-11-13 | 2012-12-04 | Exegy Incorporated | Method and system for high performance data metatagging and data indexing using coprocessors |
US7660793B2 (en) | 2006-11-13 | 2010-02-09 | Exegy Incorporated | Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors |
CN1972276B (zh) * | 2006-11-26 | 2010-08-11 | 华为技术有限公司 | 一种协议访问管理方法和系统 |
US8713186B2 (en) * | 2007-03-13 | 2014-04-29 | Oracle International Corporation | Server-side connection resource pooling |
US8879727B2 (en) * | 2007-08-31 | 2014-11-04 | Ip Reservoir, Llc | Method and apparatus for hardware-accelerated encryption/decryption |
US9479599B2 (en) * | 2007-10-04 | 2016-10-25 | International Business Machines Corporation | Reroute of a web service in a web based application |
US10229453B2 (en) * | 2008-01-11 | 2019-03-12 | Ip Reservoir, Llc | Method and system for low latency basket calculation |
US8374986B2 (en) | 2008-05-15 | 2013-02-12 | Exegy Incorporated | Method and system for accelerated stream processing |
US8433680B2 (en) | 2008-07-01 | 2013-04-30 | Oracle International Corporation | Capturing and restoring database session state |
WO2010008539A1 (en) * | 2008-07-14 | 2010-01-21 | Riverbed Technology, Inc. | Methods and systems for secure communications using a local certification authority |
CA3059606C (en) | 2008-12-15 | 2023-01-17 | Ip Reservoir, Llc | Method and apparatus for high-speed processing of financial market depth data |
US8886787B2 (en) * | 2009-02-26 | 2014-11-11 | Microsoft Corporation | Notification for a set of sessions using a single call issued from a connection pool |
US8707043B2 (en) * | 2009-03-03 | 2014-04-22 | Riverbed Technology, Inc. | Split termination of secure communication sessions with mutual certificate-based authentication |
US8238538B2 (en) | 2009-05-28 | 2012-08-07 | Comcast Cable Communications, Llc | Stateful home phone service |
CN102045251B (zh) * | 2009-10-20 | 2012-08-22 | 国基电子(上海)有限公司 | 路由器及tcp端口防御方法 |
US8898191B2 (en) * | 2009-12-23 | 2014-11-25 | International Business Machines Corporation | Method for providing connections for application processes to a database server |
US20110219440A1 (en) * | 2010-03-03 | 2011-09-08 | Microsoft Corporation | Application-level denial-of-service attack protection |
US8700892B2 (en) | 2010-03-19 | 2014-04-15 | F5 Networks, Inc. | Proxy SSL authentication in split SSL for client-side proxy agent resources with content insertion |
US9612641B2 (en) * | 2010-11-17 | 2017-04-04 | International Business Machines Corporation | Adjusting the connection idle timeout in connection pools |
EP2649580A4 (en) | 2010-12-09 | 2014-05-07 | Ip Reservoir Llc | METHOD AND DEVICE FOR THE MANAGEMENT OF CONTRACTS IN FINANCIAL MARKETS |
US8474046B1 (en) * | 2011-07-21 | 2013-06-25 | Symantec Corporation | Systems and methods for identifying the spreading of sensitive data by a suspicious application |
US9047243B2 (en) | 2011-12-14 | 2015-06-02 | Ip Reservoir, Llc | Method and apparatus for low latency data distribution |
US11436672B2 (en) | 2012-03-27 | 2022-09-06 | Exegy Incorporated | Intelligent switch for processing financial market data |
US10121196B2 (en) | 2012-03-27 | 2018-11-06 | Ip Reservoir, Llc | Offload processing of data packets containing financial market data |
US9990393B2 (en) | 2012-03-27 | 2018-06-05 | Ip Reservoir, Llc | Intelligent feed switch |
US10650452B2 (en) | 2012-03-27 | 2020-05-12 | Ip Reservoir, Llc | Offload processing of data packets |
WO2014066416A2 (en) | 2012-10-23 | 2014-05-01 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
US9633093B2 (en) | 2012-10-23 | 2017-04-25 | Ip Reservoir, Llc | Method and apparatus for accelerated format translation of data in a delimited data format |
US9633097B2 (en) | 2012-10-23 | 2017-04-25 | Ip Reservoir, Llc | Method and apparatus for record pivoting to accelerate processing of data fields |
JP5962493B2 (ja) * | 2012-12-20 | 2016-08-03 | 富士通株式会社 | プログラム、情報処理装置およびオブジェクト送信方法 |
US10191887B2 (en) * | 2013-07-18 | 2019-01-29 | Microsoft Technology Licensing, Llc | Context affinity in a remote scripting environment |
CN103559204A (zh) * | 2013-10-08 | 2014-02-05 | 北京奇虎科技有限公司 | 处理数据库操作请求的方法、设备和系统 |
KR101552170B1 (ko) * | 2014-02-27 | 2015-09-11 | 주식회사 티맥스 소프트 | 더미 http를 이용한 연결 관리 방법 및 그 장치 |
GB2541577A (en) | 2014-04-23 | 2017-02-22 | Ip Reservoir Llc | Method and apparatus for accelerated data translation |
US10389652B2 (en) * | 2014-12-19 | 2019-08-20 | International Business Machines Corporation | Connection pool management |
US10942943B2 (en) | 2015-10-29 | 2021-03-09 | Ip Reservoir, Llc | Dynamic field data translation to support high performance stream data processing |
US11290540B2 (en) * | 2016-08-12 | 2022-03-29 | Oracle International Corporation | System and method for use of server-side connection pool tagging in a multi-tenant environment |
US10474653B2 (en) | 2016-09-30 | 2019-11-12 | Oracle International Corporation | Flexible in-memory column store placement |
WO2018119035A1 (en) | 2016-12-22 | 2018-06-28 | Ip Reservoir, Llc | Pipelines for hardware-accelerated machine learning |
US12007941B2 (en) | 2017-09-29 | 2024-06-11 | Oracle International Corporation | Session state tracking |
US11936739B2 (en) | 2019-09-12 | 2024-03-19 | Oracle International Corporation | Automated reset of session state |
US11995481B2 (en) * | 2022-08-22 | 2024-05-28 | Sap Se | Efficient connection pooling |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB794490A (en) * | 1944-09-14 | 1958-05-07 | Atomic Energy Authority Uk | Improved process for separating uranium |
US5519707A (en) * | 1992-10-13 | 1996-05-21 | Synoptics Communications, Inc. | Multiplexing of communications services on a virtual service path in an ATM network or the like |
US5553242A (en) * | 1993-11-03 | 1996-09-03 | Wang Laboratories, Inc. | Client/server connection sharing |
US5553239A (en) * | 1994-11-10 | 1996-09-03 | At&T Corporation | Management facility for server entry and application utilization in a multi-node server configuration |
US5682478A (en) * | 1995-01-19 | 1997-10-28 | Microsoft Corporation | Method and apparatus for supporting multiple, simultaneous services over multiple, simultaneous connections between a client and network server |
US5812819A (en) * | 1995-06-05 | 1998-09-22 | Shiva Corporation | Remote access apparatus and method which allow dynamic internet protocol (IP) address management |
US5617540A (en) * | 1995-07-31 | 1997-04-01 | At&T | System for binding host name of servers and address of available server in cache within client and for clearing cache prior to client establishes connection |
US6182109B1 (en) * | 1996-03-08 | 2001-01-30 | International Business Machines Corporation | Dynamic execution unit management for high performance user level network server system |
US5898761A (en) * | 1996-03-29 | 1999-04-27 | Cisco Technology, Inc. | Communication server apparatus using digital signal switching and method |
US5894554A (en) * | 1996-04-23 | 1999-04-13 | Infospinner, Inc. | System for managing dynamic web page generation requests by intercepting request at web server and routing to page server thereby releasing web server to process other requests |
US5958014A (en) * | 1996-09-24 | 1999-09-28 | Intervoice Limited Partnership | System and method for establishing a real-time agent pool between computer systems |
IE981035A1 (en) * | 1997-12-09 | 1999-06-16 | Scp Powersoft Ltd | An Inter-Computer Communications Apparatus |
-
1998
- 1998-06-05 US US09/092,928 patent/US6105067A/en not_active Expired - Lifetime
-
1999
- 1999-04-23 GB GB9909258A patent/GB2338386A/en not_active Withdrawn
- 1999-05-21 JP JP14103899A patent/JP3515423B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8250201B2 (en) | 2002-09-09 | 2012-08-21 | International Business Machines Corporation | Servlet monitoring tool |
US10645152B2 (en) | 2017-06-21 | 2020-05-05 | Fujitsu Limited | Information processing apparatus and memory control method for managing connections with other information processing apparatuses |
Also Published As
Publication number | Publication date |
---|---|
US6105067A (en) | 2000-08-15 |
GB2338386A (en) | 1999-12-15 |
GB9909258D0 (en) | 1999-06-16 |
JP3515423B2 (ja) | 2004-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3515423B2 (ja) | サーバ・パフォーマンスを改良するためのシステムおよび方法 | |
US8495131B2 (en) | Method, system, and program for managing locks enabling access to a shared resource | |
US7856496B2 (en) | Information gathering tool for systems administration | |
US6907395B1 (en) | System and method for designing a logical model of a distributed computer system and deploying physical resources according to the logical model | |
US6098093A (en) | Maintaining sessions in a clustered server environment | |
US8903996B2 (en) | Operating cloud computing services and cloud computing information system | |
US20180329738A1 (en) | Methods and systems that verify endpoints and external tasks in release-pipeline prior to execution | |
US6119157A (en) | Protocol for exchanging configuration data in a computer network | |
CA2543753C (en) | Method and system for accessing and managing virtual machines | |
CN103677967B (zh) | 一种数据库的远程数据服务系统及任务调度方法 | |
EP1061446A2 (en) | Web-based enterprise management with multiple repository capability | |
US6502099B1 (en) | Method and system for extending the functionality of an application | |
US20010023440A1 (en) | Directory-services-based launcher for load-balanced, fault-tolerant, access to closest resources | |
US7502824B2 (en) | Database shutdown with session migration | |
US20020103889A1 (en) | Virtual storage layer approach for dynamically associating computer storage with processing hosts | |
US20120041927A1 (en) | Performing scheduled backups of a backup node associated with a plurality of agent nodes | |
EP1654649B1 (en) | On demand node and server instance allocation and de-allocation | |
US20080177948A1 (en) | Method and apparatus for managing placement of data in a tiered storage system | |
KR100322153B1 (ko) | 애플리케이션인터페이스에대한영속성을제공하기위한장치및방법 | |
US20080082665A1 (en) | Method and apparatus for deploying servers | |
JP2002505471A (ja) | 遠隔処理の中断および継続の方法と装置 | |
EP0812090B1 (en) | Method and apparatus for running a client computer without a server software | |
CN1142504C (zh) | 工作负载均衡系统及其方法 | |
WO2004090660A2 (en) | Controlling usage of system resources by a network manager | |
TW503368B (en) | Automatic software version updating method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040113 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040115 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080123 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090123 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090123 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100123 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100123 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110123 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120123 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130123 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140123 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |