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
Application number
JP11141038A
Other languages
English (en)
Other versions
JP3515423B2 (ja
Inventor
Virinder Mohan Batra
ヴィリンダ・モハン・バトラ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2000029814A publication Critical patent/JP2000029814A/ja
Application granted granted Critical
Publication of JP3515423B2 publication Critical patent/JP3515423B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5691Access to open networks; Ingress point selection, e.g. ISP selection
    • H04L12/5692Selection among different networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer 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

(57)【要約】 【課題】ウェブ環境においてコンピュータのパフォーマ
ンスを強化するためのテクニック、システム、及びコン
ピュータ・プログラムを提供する。 【解決手段】これは、ウェブ・サーバ及びバックエンド
・データ・サーバの間の接続のプールを作成すること、
データ・サーバをアクセスするために必要なオーバヘッ
ドを少なくすること、及びウェブ・サーバ上で走るアプ
リケーションがより速くなることを可能にすることによ
って行われる。プールには、同じ又は異なるデータ・サ
ーバに対する多くの種々なタイプの接続が維持可能であ
る。バックエンド・データ・サーバ接続のタイプに関係
なく、そのプールに対する共通のインターフェースが使
用され、そのプールを使用するプログラムを書き込み及
びサポートすることを容易にする。従って、より安価な
ものにする。プールにおける接続の数を最適化するため
のオプションが定義される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ・コ
ミュニケーションに関するものであり、更に詳しく云え
ば、ウェブ環境においてコンピュータのパフォーマンス
を強化するためのテクニック、システム、及びコンピュ
ータ・プログラムに関するものである。これは、ウェブ
・サーバ及びバックエンド・データ・サーバの間の接続
のプールを作成すること、それらデータ・サーバをアク
セスするために必要なオーバヘッドを少なくすること、
及びウェブ・サーバ上で走るアプリケーションがより速
くなることを可能にすることによって行われる。バック
エンド・データ・サーバ接続のタイプに関係なく、その
プールに対する共通のインターフェースが使用され、そ
のプールを使用するプログラムを書き込み及びサポート
することを容易にする(従って、より安価なものにす
る)。
【0002】
【従来の技術】インターネットは、世界中のサイトから
ネットワークとして相互接続されたコンピューティング
資源の巨大な集合体である。それは、毎日、数百万の人
々によって使用される。ワールド・ワイド・ウェブ(本
願では、「ウェブ」と呼ばれる)は、メッセージを交換
するためのプロトコルとしてハイパーテキスト転送プロ
トコル(HTTP)を使用するインターネットのその部
分である。(別の方法として、「HTTPS」プロトコ
ルが使用可能である。なお、このプロトコルはHTTP
のセキュリティ強化バージョンである)。
【0003】インターネットのユーザは、一般に、イン
ターネット・サービス・プロバイダ(ISP)のサービ
スを通してネットワーク接続を確立することによりイン
ターネットをアクセスし、及び、使用する。ISPは、
コンピュータ・モデム(或いは、衛星通信のような他の
接続機構)を使用して電話番号をダイヤルし、それによ
って、ISPが所有し又は管理するリモート・コンピュ
ータへの接続を確立するという機能をコンピュータ・ユ
ーザに供給する。そこで、このリモート・コンピュータ
はサービスを、ユーザのコンピュータにとって利用可能
なものにする。代表的なサービスは、そのユーザに関連
ある項目に関してインターネットの相互接続されたコン
ピュータを通してサーチするためのサーチ機構、そのサ
ーチ機能によって見つけられた情報を表示するためのブ
ラウズ機能、及びユーザが他のコンピュータ・ユーザに
メール・メッセージを送ること及び他のコンピュータ・
ユーザからメール・メッセージを受け取ることができる
電子メール機能を提供することを含む。
【0004】ウェブ環境におけるユーザの作業は、その
ユーザが情報に関するリクエストを作成して送ることを
可能にするために自分のコンピュータ上で走るソフトウ
エアを持つであろう。これらの機能は、一般に、「ウェ
ブ・ブラウザ」又は「ブラウザ」と呼ばれるものにおい
て結合される。ユーザがブラウザを使用して自分のリク
エストを作成した後、リクエスト・メッセージが処理の
ためにインターネットに送出される。そのリクエスト・
メッセージのターゲットは、インターネットのネットワ
ークにおける相互接続されたコンピュータの1つであ
る。そのコンピュータはメッセージを受け取り、ユーザ
のリクエストを満足させるデータを見つけようと試み、
ユーザのブラウザによる表示のためにそのデータをフォ
ーマットし、そしてユーザのコンピュータ上で走るブラ
ウザ・ソフトウエアにそのフォーマットされた応答を戻
す。
【0005】これは、コンピューティングのクライアン
ト・サーバ・モデルの一例であり、この場合、ユーザが
情報をリクエストする機械はクライアントと呼ばれ、そ
の情報を見つけ、それをクライアントに戻すコンピュー
タがサーバである。ウェブ環境では、サーバは「ウェブ
・サーバ」と呼ばれる。クライアント・サーバ・モデル
は「3層アーキテクチャ」と呼ばれるものに拡張可能で
ある。このアーキテクチャは中間層にウェブ・サーバを
配置する。その場合、付加された第3層は、一般に、ク
ライアントのリクエストを処理するタスクの一部として
ウェブ・サーバがアクセスすることが可能な情報のデー
タ・リポジトリを表す。この3層アーキテクチャは、多
くのクライアント・リクエストが単に静的データを見つ
けて戻すことを必要とするだけではなく、戻されるべき
データを動的に作成するために、アプリケーション・プ
ログラムがクライアントのリクエストの処理を遂行する
ことを必要とする。
【0006】このアーキテクチャでは、ウェブ・サーバ
は等価的に「アプリケーション・サーバ」とも呼ばれ
る。この中間層は、アプリケーションのビジネス・ロジ
ックが一般に存在する場所であるという事実を反映して
いる。データ・リポジトリが存在するコンピュータは、
「データ・サーバ」又は「バックエンド・データ・サー
バ」と呼ばれる。データ・サーバはアプリケーションに
よって使用されるデータを記憶及び管理するものであ
り、データを記憶し、アクセスし、及び検索する場合に
使用されるソフトウエア製品を含む。一般に、インター
ナショナル・ビジネス・マシーンズ・コーポレーション
(IBM社)からのDB2のようなリレーショナル・デ
ータベースが使用されるであろう。しかし、データを管
理及びアクセスするためのサービスを提供する製品であ
って、IBM社からのMQSeries及びCICSの
ようなメッセージング製品及び他のタイプのミドルウエ
アを含む他の製品も、データ・サーバの範囲内にあるも
のと考えられる。なお、DB2、MQSeries、及
びCICSはIBM社の商標である。
【0007】Javaプログラミング言語は、それが特
にウェブ環境に対して定義された耐久力のある移植性の
オブジェクト指向言語であるので、ウェブ・アプリケー
ションを書くことに関して幅広く容認されつつある。
(「Java」は、Sun Microsystem
s,Inc.の商標である)。Javaは、特別に設計
された仮想機械の使用を通してそれの移植性を得る。J
ava仮想機械を実施するウェブ・サーバは、Java
「サーブレット(servlet)」を使用して機能的
に拡張可能である。サーブレットは、サーバ上で走るコ
ードに動的にプラグ・イン可能であるか又は付加可能で
ある比較的小さい実行可能コードである。サーブレット
は、一般に、サーバによって(又は、他のサーブレット
によって)それ自身の機能性を拡張するために呼び出さ
れる或る特殊化された機能を遂行する。サーブレットは
リクエストを処理し、それを呼び出したサーバ(又は、
サーブレット)に応答を返送する。
【0008】一般に、ウェブ・アプリケーションは、人
間のユーザに、クライアント・リクエストに対する応答
を待たせるので、応答は非常に速く返送されなければな
らず、さもないと、ユーザはそのサービスが不満となる
であろう。サーバに対する使用量は非常に大きいことが
あり、特定のサーバは一日に数千のクライアント・リク
エスト、或いは、数百万のクライアント・リクエストさ
えも、受けることがある。これらのリクエストは受容可
能な応答時間でもってすべて処理されなければならず、
さもないと、ユーザは競合相手のアプリケーション・サ
ービスに切り替えることが可能である。リクエストが、
バック・エンド・サーバからのデータのアクセス及び検
索を伴う時(それは通常生じ得ることなので)、ウェブ
・サーバは、先ず、データ・サーバへの接続を確立しな
ければならない。この接続プロセスは多数のメッセージ
の送信及び受信を伴うことがある。
【0009】例えば、ネーム・サーバは、所望のデータ
・サーバのネットワーク・アドレスを決定するためにウ
ェブ・サーバによって接触される必要があることがあ
る。ウェブ・サーバは、ネットワーク・アドレスを受け
取った後、データ・サーバに接続リクエストを送る。そ
のリクエストの詳細はデータ・サーバの特定のタイプ及
びそれをアクセスするために使用されるネットワーキン
グ・プロトコルに依存するが、接続リクエストの複数の
シーケンス及び接続応答メッセージが、(例えば、接続
タイプの詳細を折衝するために)接続の完了前にウェブ
・サーバ及びデータ・サーバの間で交換される必要があ
るかもしれない。クライアント・リクエストが完了した
時、その接続は、ウェブ・サーバ及びデータ・サーバの
間の更なるメッセージ交換を伴って、切断されなければ
ならない。接続及び切断に伴うメッセージはクライアン
トのリクエストの処理に大量のオーバヘッドを加え、し
かも、クライアントの照会に答えるトランザクションを
終了させる場合には実際に費やされる時間よりも遥かに
重要であるかもしれない。
【0010】従って、ウェブ・サーバ及びデータ・サー
バの現在の実施方法におけるこれらのパフォーマンス問
題を克服し得るテクニックに対する要求が存在する。本
発明は、クライアント・リクエストの処理が終了した後
で接続を維持するためのテクニックに関するものであ
る。既存の接続は接続プールにおいて維持される。クラ
イアント・リクエストが受信される時、そのプールから
の接続は、適当な接続が利用可能である場合に、従っ
て、接続を確立するというオーバヘッドを回避する場合
に使用される。(プールからの接続を使用することがで
きない時、新たな接続が確立可能である)。このプール
は、単一のデータ・サーバに対する多くの接続、(複数
のDB2データベースのような)単一のタイプの複数の
データ・サーバに対する多くの接続、及び(又は)種々
のタイプのデータ・サーバに対する多くの接続(例え
ば、DB2データベース、MQSeriesメッセージ
・サービス等)を含み得るものである。プールからの接
続をリクエストするために共通インターフェースが使用
され、それは、プログラマ及び支援要員が理解し及び使
用するために必要とされるAPI(アプリケーション・
プログラミング・インターフェース)の数を少なくす
る。これはプールに伴う作業を容易なものにするであろ
うし、一方、開発及び支援のコストを少なくするであろ
う。
【0011】
【発明が解決しようとする課題】本発明の目的は、ウェ
ブ環境におけるパフォーマンスを改良するためのテクニ
ックを提供することにある。
【0012】本発明のもう1つの目的は、接続プールに
おいて複数の接続を維持し得るテクニックを提供するこ
とにある。
【0013】本発明の更なる目的は、プールされた接続
が種々の特性を持った種々のタイプのものであることを
可能にすることにある。
【0014】本発明のもう1つの目的は、共通インター
フェースを使用するアクセスをこれらのプールされた接
続に提供することにある。
【0015】本発明の更にもう1つの目的は、所与の時
間にプールにおける接続の数及びタイプを最適化するテ
クニックを提供することにある。
【0016】本発明の他の目的及び利点が後述の説明及
び図面において部分的に示され、しかも、それは、部分
的にはその説明から明らかであろうし、本発明を実施す
ることによってわかるであろう。
【0017】
【課題を解決するための手段】上記の目的を達成するた
めに、及び本願において広範に記述されている本発明の
目的に従って、本発明は、バックエンド・データ・サー
バへの接続をプールすることによってサーバ・パフォー
マンスを改良するための、しかもネットワークへの接続
を有するコンピューティング環境において使用するため
のソフトウエア実施されたプロセス、システム、及び方
法を提供する。本発明は、アプリケーション・サーバ
と、1つ又は複数のバックエンド・データ・サーバと、
接続プールと、各々が前記アプリケーション・サーバを
前記1つ又は複数のバックエンド・データ・サーバの1
つに接続する1つ又は複数の接続を確立するためのサブ
プロセスと、前記確立された接続を前記接続プールに入
れるためのサブプロセスと、前記接続プールにおける前
記入れられた接続を管理するためのサブプロセスとを含
む。
【0018】そのプロセス、システム、及び方法は、望
ましくは、更に、1つ又は複数のサーブレットと、各々
が前記サーブレットの1つによって実行される複数のク
ライアント・リクエストとを含む。しかも、前記接続プ
ールにおける前記入れられた接続を管理するためのサブ
プロセスは、更に、前記1つ又は複数のサーブレットか
らリクエストを受け取るためのサブプロセスにして、前
記リクエストの各々は適当な接続を割り当てるためのリ
クエストであり、共通のアプリケーション・プログラミ
ング・インターフェースを使用するものであることと、
前記サーブレットによる使用のために前記サーブレット
に前記適当な接続を割り当てるためのサブプロセスとを
含む。望ましくは、前記適当な接続を割り当てるための
サブプロセスは、更に、前記接続プールにおける前記適
当な接続を、それが得られる場合に、見つけるためのサ
ブプロセスと、新たな接続を、それが必要な時に、確立
するためのサブプロセスと、エラーを、それが必要な時
に、戻すためのサブプロセスとを含む。
【0019】更に、前記適当な接続を割り当てるための
サブプロセスは、更に、前記適当な接続が前記プールに
おいて使用可能になるために或る指定された期間待機す
るためのサブプロセスを含むことができる。前記新たな
接続を確立するためのプロセスは、前記適当な接続を前
記接続プールにおいて見つけることができなかった時及
び最大プール・サイズに達していない時に動作可能であ
る。前記入れられた接続を管理するためのサブプロセス
は、更に、前記1つ又は複数の接続が最大アイドル時間
よりも長くアイドルしていたことを検出した時、前記接
続されたバックエンド・データ・サーバから前記接続の
うちの1つ又は複数を切断するためのサブプロセスと、
前記切断された接続を前記プールから除去するためのサ
ブプロセスとを含むことができる。更に、前記入れられ
た接続を管理するためのサブプロセスは、前記1つ又は
複数の割り当てられた接続が最大時間よりも長く使用さ
れなかったことを検出する時、前記1つ又は複数の前記
割り当てられた接続を、該接続が割り当てられていた前
記サーブレットから割当て解除するためのサブプロセス
と、前記割当て解除された接続を前記プールにおいて使
用可能にするためのサブプロセスとを含むことができ
る。
【0020】次に、図面を参照して本発明を説明するこ
とにする。なお、これらの図面では、全体を通して、同
じ参照番号は同じエレメントを示している。
【0021】
【発明の実施の形態】図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に接続する。
【0022】ワークステーション10は通信チャネル3
2を介して他のコンピュータと、又はコンピュータのネ
ットワークとコミュニケートする。ワークステーション
10は、ローカル・エリア・ネットワーク(LAN)又
は広域ネットワーク(WAN)におけるそのような他の
コンピュータと関連付け可能であり、或いは、ワークス
テーション10は他のコンピュータ等とのクライアント
/サーバ構成におけるクライアントであってもよい。こ
れらの構成のすべて及び適切な通信ハードウエア及びソ
フトウエアはその分野において知られている。
【0023】図2は、本発明を実施し得るデータ処理ネ
ットワーク40を示す。データ処理ネットワーク40
は、LAN42及び44を含む複数の個別のネットワー
クを含み、それらのLANの各々は複数の個別のワーク
ステーション10を含む。別の方法として、当業者には
明らかであるように、LANは、ホスト・プロセッサに
接続された複数のインテリジェント・ワークステーショ
ンを含むことが可能である。
【0024】更に図2を参照すると、データ処理システ
ム40はメインフレーム・コンピュータ46のような複
数のメインフレーム・コンピュータ又はサーバを含むこ
とも可能であり、それらは、通信リンク48によってL
AN44に接続可能である。メインフレーム・コンピュ
ータ46は、IBM社から入手可能なエンタープライズ
・システム・アーキテクチャ/370又はエンタープラ
イズ・システム・アーキテクチャ/390を利用するこ
ともできる。アプリケーション次第で、中型コンピュー
タのような更に小さいコンピュータ(例えば、AS/4
00としても知られたアプリケーション・システム/4
00)が使用可能である。なお、「エンタープライズ・
システム・アーキテクチャ/370」、「エンタープラ
イズ・システム・アーキテクチャ/390」、「アプリ
ケーション・システム/400」及び「AS/400」
はIBM社の商標である。
【0025】メインフレーム・コンピュータ46は記憶
装置50にも接続可能であり、その記憶装置はLAN4
4のためのリモート記憶装置としても働き得るものであ
る。同様に、LAN44は通信リンク52、サブシステ
ム制御装置/通信コントローラ54及び通信リンク56
を介してゲートウェイ・サーバ58に結合可能である。
ゲートウェイ・サーバ58は、望ましくは、LAN42
をLAN44にリンクするように働く個別のコンピュー
タ又はインテリジェント・ワークステーションである。
【0026】当業者には明らかであるように、メインフ
レーム・コンピュータ46はLAN44から長い地理的
距離をもって設置可能であり、同様に、LAN44はL
AN42からかなりの距離をもって設置可能である。例
えば、LAN42はカリフォルニアに設置可能であり、
一方、LAN44はテキサスに設置可能であり、メイン
フレーム・コンピュータ46はニューヨークに設置可能
である。
【0027】本発明を具体化するソフトウエア・プログ
ラミング・コードは、一般に、CD−ROMドライブ又
はハード・ディスクのような或るタイプの長期記憶媒体
30から、ワークステーション10のマイクロプロセッ
サ12によってアクセスされる。ウェブ・サーバ環境で
は、そのようなソフトウエア・プログラミング・コード
が、サーバと関連した記憶装置によって記憶可能であ
る。ソフトウエア・プログラミング・コードは、ディス
ケット、ハード・ドライブ、又はCD−ROMのよう
な、データ処理システムによる使用のための種々の既知
の媒体のいずれにおいても具体化可能である。そのコー
ドはそのような媒体上に分配可能であり、或いは、1つ
のコンピュータ・システムのメモリ又は記憶装置から或
るタイプのネットワークを介して他のコンピュータ・シ
ステムへ、そのような他のコンピュータ・システムによ
る使用のために分配可能である。別の方法として、プロ
グラミング・コードは、メモリ28において具体化可能
であり、しかもバス14を使用してマイクロプロセッサ
12によりアクセス可能である。メモリにおけるソフト
ウエア・プログラミング・コードを物理的媒体上に具体
化するための及びネットワークを介してソフトウエア・
コードを分配するためのテクニック及び方法は周知であ
り、ここではこれ以上説明しないことにする。
【0028】本発明を実施する接続プール機構は、長期
記憶装置30によって使用される種々のタイプの媒体の
いずれにおいても記憶可能である。このコードは、一般
に、サーバ46のような中間層のサーバにインストール
され、そのサーバが、ワークステーション10のような
コンピュータを有するユーザから生じたリクエストを処
理する。
【0029】ウェブ環境におけるサーバは、一般には、
ディスプレイ装置24を含まないかもしれないけれど
も、本発明の好適な実施例は、接続をプールするために
必要なパラメータを(例えば、ウェブ・アドミニストレ
ータにより)構成することを可能にするためにディスプ
レイ装置24を使用してもよい。別の方法として、構成
パラメータは、その構成された値を実施に供するために
インターネット接続を利用するクライアント(ワークス
テーション10のような)に取り付けられたディスプレ
イ装置24を使用して入れることが可能である。
【0030】次に、図3乃至図5を参照して本発明の好
適な実施例を説明することにする。
【0031】好適な実施例では、本発明はコンピュータ
・ソフトウエア・プログラムとして実施される。このプ
ログラムは、クライアントがデータに関するリクエスト
をサーバに送った場合に使用されるであろうし、ネット
ワークのサーバ側において行われる処理の一部を構成す
るものである。一般に、そのプログラムは、サーバがウ
ェブ・サーバであり、リクエストがHTTP(又は、H
TTPS)を使用してフォーマットされる場合のインタ
ーネット環境において使用されるであろう。別の方法と
して、接続は、ユーザのコンピュータが1つのコンポー
ネントであるコーポレート・イントラネット(即ち、ユ
ーザの会社にとって内部的に所有又は管理されるネット
ワーク)への接続であってもよい。なお、このコーポレ
ート・イントラネットはインターネットと同様の態様で
サービスを提供する。本願における「インターネット」
という用語の使用は、ユーザのリクエストと関連した処
理を説明する時、別の断り書きがない限り、イントラネ
ットにおいて生じる処理も含む。好適な実施例のプログ
ラム・コードは、Javaのようなオブジェクト指向プ
ログラミング言語におけるオブジェクトとして実施可能
である。望ましくは、接続プール機能は、Javaウェ
ブ・サーバの機能性を拡張するJavaサーブレットと
して実施されるであろう。
【0032】しかし、本発明の発明的概念は、オブジェ
クト指向環境における実施、Java言語における実
施、或いはサーブレットを構成する特定のスタイルの実
施のいずれにも限定されない。「C」プログラミングの
ような通常の手続き型言語は、オブジェクト指向言語の
代わりに使用可能である。又は、手続き型言語及びオブ
ジェクト指向言語プログラミングの混合が使用可能であ
る。プール機能は、ウェブ・サーバの機能又はサブルー
チンとして、及びウェブ・サーバ等によって呼び出され
る機能又はサブルーチンとして実施可能である。
【0033】図3は、本発明を使用し得る3層ネットワ
ーク環境を示す。一般的には、ブラウザ60及び62の
ような1つ又は複数のクライアント・ブラウザが第1層
を形成する。一般に、第1層は、アプリケーション・ソ
フトウエアのビジュアル・インターフェースが設けられ
る層である。このインターフェースは、ブラウザ・ソフ
トウエアによる以外の方法で設けられてもよい。しか
し、説明を容易にするために、本願では、このインター
フェースは、ブラウザを利用するものとして参照される
であろう。人間のユーザは、ブラウザ・ソフトウエアが
走っている機械において作業する。
【0034】ブラウザはインターネット70を通してウ
ェブ・サーバ80に接続される。図3には1つのウェブ
・サーバ80しか示されてないけれども、代表的な構成
では多くのウェブ・サーバが存在し得る。着信するクラ
イアント・リクエストの負荷を平衡させるために複数の
ウェブ・サーバが使用される時、インターネット70と
ウェブ・サーバとの間に負荷平衡ホスト(図示されてな
い)が設置可能であり、それは、一般に、「クラスタ化
サーバ」環境と呼ばれるものを形成する。図3はウェブ
・サーバ80を、アプリケーション・サーバ82を含む
ものとして示す。アプリケーション・サーバの目的は、
クライアント・リクエストを満足させるために使用され
るアプリケーション・ロジック(一般に、「ビジネス・
ロジック」とも呼ばれる)を提供することである。この
アプリケーション・サーバ82は別個のコンポーネント
として示されているけれども、これは単に説明の目的の
ためであって、それが提供するアプリケーション・サー
ビスがウェブ・サーバ80の実施と分離してなければな
らないことを意味するものではない。ウェブ・サーバ、
アプリケーション・サーバ、及び負荷平衡ホスト(適用
可能である場合)は層2を構成する。
【0035】データ・サーバ90のようなデータ・サー
バが層3を構成する。前述のように、これらのデータ・
サーバは、リレーショナル・データベース、メッセージ
ング・システム、或いは、アプリケーションによってア
クセス可能なデータ管理サービスを提供する任意のタイ
プのミドルウエアであってもよい。データ・サーバ90
からのデータが必要とされる時、アプリケーション・サ
ーバ82は、メッセージを送信及び受信するネットワー
ク接続100を使用する。図3はアプリケーション・サ
ーバ82に対する単一の接続100を有する単一のデー
タ・サーバ90を示しているけれども、複数のそのよう
な接続がいつでも存在し得る。一般に、アプリケーショ
ン・サーバ82は一時に複数の平行スレッドを走らせる
であろう。なお、スレッドは再入可能プログラムの1つ
の実行である。各スレッドはデータ・サーバ90に対す
るそれ自身の接続を持つことが可能である。この場合、
複数の接続が単一のアプリケーション・サーバを起点と
する。しかし、複数のアプリケーション・サーバが1つ
の特定のデータ・サーバに接続することも可能である。
その場合、各アプリケーション・サーバは複数のスレッ
ドを使用することが可能であり、従って、複数の接続を
持つことが可能である。更に、1つのアプリケーション
・サーバ82がいつでも複数のデータ・サーバへの接続
(複数のデータ・サーバの各々への複数の接続を含む)
を持つことが可能である。例えば、単一のクライアント
・リクエストを満足させるために、アプリケーション・
サーバ82は、リレーショナル・データベース及びメッ
セージング・サービスをアクセスすることを必要とする
ことがあり、その場合、(少なくとも)2つの異なる接
続が必要である。
【0036】図3に示されたような3層アーキテクチャ
は、その分野では、一般に、クライアント/サーバのよ
うな他のアーキテクチャに比べてアプリケーションの管
理及び拡張容易性における重要な利点を提供するものと
考えられている。しかし、これらの利点は本発明の一部
を形成するものではなく、従って、ここではこれ以上説
明しないことにする。
【0037】図4は、本発明を実施する機能の、3層ア
ーキテクチャにおける望ましい配列を示す。更に、図4
は、後述するこれらのコンポーネントの間のアクティビ
ティ及びメッセージの望ましいフローを示す。
【0038】望ましくは、接続プール・テクニックを実
施する機能が層2に設けられる。そのプール・テクニッ
クは、図4において「接続マネージャ」110と呼ばれ
るものによって与えられる。この接続マネージャ110
の目的は、既に確立された接続のプール120を管理す
ること、リクエストされた時に適当な接続130をサー
ブレット140に与えること、必要な場合に新しい接続
(接続150のような)を作成すること等である。前述
のように、プール120は、一般に、複数の異なるタイ
プのデータ・サーバ(データ・サーバ90のような)に
対するものでよい複数の接続を含んでいる。更に、その
プールには1つのデータ・サーバに対する複数の接続が
存在してもよく、これらの接続は同じ特性又は異なる特
性を持つものでもよい。
【0039】接続プール120の適正な管理によって、
所与の接続を確立するために必要なオーバヘッドが多く
のクライアント・リクエストに分散可能である。そのよ
うな各リクエストに対して新たな接続を作成する代わり
に、プールからの既存の接続が使用され、接続を確立す
るために必要なかなりのオーバヘッドを取り除くことが
できる。クライアント・リクエスト処理が完了した時、
接続はその後のクライアント・リクエストによる使用の
ために接続プールに戻される。それは、データ・サーバ
から切断するというオーバヘッドを取り除く。このプー
ル・テクニックは、個々の各リクエストを処理する効率
を高め、しかも、リクエストがより速く完了することを
可能にする。
【0040】この接続プール・テクニックの更なる利点
は、データ・サーバ製品への同時接続の数を制御するこ
とを可能にすることである。データ・サーバ製品ライセ
ンスは、実際には決定することが難しい並行ユーザの最
大数を指定することが可能である。この最大数よりも多
い接続を確立しないように接続マネージャ110を構成
することによって、そのライセンスとのコンプライアン
スが更に容易に得られる。(コンプライアンスはこの手
順によって自動的に保証されるものではないが、接続マ
ネージャ110を通すことなくデータ・サーバ製品90
に接続するための別の方法があり得るであろう)。
【0041】個々のクライアント・リクエストに対する
接続プールの望ましい実施例を使用することに関連した
処理アクティビティ及びメッセージのフローは、図4を
参照して次のようになる。アプリケーション・サーバ8
2が開始する時、ライン151において、接続マネージ
ャ110(アプリケーション・サーバ82のもとで動作
する)がロードされることが望ましい。ライン152に
おいて、インターネット70を通して到来したクライア
ント・リクエストが、処理のためにアプリケーション・
サーバ82によって、サーブレット140に送られる。
サーブレット140の機能性はアプリケーション特有の
ものであり、本発明の一部を形成するものではない。本
発明がサーブレットを使用しない環境において実施され
る場合、クライアント・リクエストは単にアプリケーシ
ョン特有の方法、サブルーチン、又は機能に送られる。
説明を容易にするために、サーブレットが使用されるも
のと仮定する。ライン153において、サーブレット1
40は接続マネージャ110の方法(オブジェクト指向
の実施方法を仮定する。そうでない場合、手順又は関数
呼出しが使用される)を使用してプール120からの接
続(100のような)を要求する。
【0042】ライン154において、接続マネージャ1
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における)に応答を返送する。
【0043】サーブレット140が接続マネージャ11
0に接続を要求し、しかも適当な接続が得られない場
合、接続マネージャ110はデータ・サーバ90と直接
にコミュニケートして新たな接続150をリクエストす
る。ライン160において、この新たな接続150がプ
ール120に加えられ、ライン154に関連して前述し
たようにサーブレット140に戻されるであろう。しか
し、好適な実施例では、データ・サーバ90への接続の
最大数が、例えば、構成パラメータとして指定可能であ
る。更に、プール120に対する接続の最大数全体が構
成可能である。これらの最大数のいずれも既に遭遇され
ている場合、新たな接続150は確立されないであろ
う。その代わり、サーブレットのリクエストは、利用可
能になっている使用中の接続を接続マネージャ110が
識別するまで待つか、或いは、接続マネージャ110が
サーブレット140にエラーを返送するまで待つ。これ
らの可能性については、「ウェブ再試行」パラメータに
関連して更に後述することにする。
【0044】図5は、バックエンド・データ・サーバへ
のアクセスを必要とするクライアント・リクエストを処
理するために好適な実施例において使用されるロジック
を示し、図4に示されたアクティビティ及びフローを発
展させるものである。図5の左側の欄はサーブレットに
おいて生じるプロセスを示し、右側の欄は接続マネージ
ャにおいて生じるプロセスを示す。ブロック400にお
いて、クライアント・リクエストがサーブレットに到達
する。(データ・サーバへのアクセスを必要としないリ
クエストは本発明に関連のないものであり、図5のロジ
ックによって説明されない。この可能性を含むように図
5のロジックを拡張する方法は当業者には明らかであろ
う)。
【0045】ブロック410において、データ・サービ
スに関するリクエストがフォーマットされ、接続マネー
ジャに送られる。前述のように、データ・サーバに対す
る1つの共通のインターフェースが好適な実施例におい
て使用される。各データ・サーバはサーブレットからの
種々な情報を要求できるし、そのサーブレットに種々な
情報を戻すことができる。各特定のデータ・サーバにと
って必要な情報を知らせるために、ポリモアフィズムが
使用される。即ち、インターフェースのパラメータは、
リクエストが送られるデータ・サーバ次第で、種々の情
報を持ち得る複雑なデータ・タイプである。オブジェク
ト指向言語では、「オブジェクト」という用語はこの複
雑なデータ・タイプを参照するために使用される。すべ
ての接続タイプにわたって共通する特性を含む基本オブ
ジェクトが本発明に従って定義される。この基本オブジ
ェクトは、各データ・サーバ・タイプに特有の特性を加
えるサブクラス(又は、Javaにおける「exten
sion」)を定義することによって更に洗練される。
基本オブジェクトは、本願では、「基本接続指定オブジ
ェクト」と呼ばれ、拡張されたオブジェクトは「特殊接
続指定オブジェクト」と呼ばれる。基本接続指定オブジ
ェクトは次のような属性を有する。 (1)サブプール・ネーム、又は接続タイプ (2)「待機−再試行」フラッグ
【0046】サブプール・ネーム又は接続タイプは、サ
ーブレットがどのデータ・サーバとの接続を望んでいる
かを接続マネージャに知らせるために使用される。プー
ルが複数のデータ・サーバへの接続を含む時、接続マネ
ージャは、その接続の他端における特定のデータ・サー
バを識別する情報を各接続と関連付けるであろう。論理
的サブプールという概念を使用することによってこれを
行うことができる。その場合、各サブプールは1つのデ
ータ・サーバへの接続しか持たない。そこで、サブプー
ル・ネームがそのデータ・サーバを識別し、サーブレッ
トはそのデータ・サーバへの接続を得るためにそのサブ
プールからの接続をリクエストする。別の方法として、
接続タイプが使用可能である。その場合、接続タイプは
名前、数、又はその2つの組合せであってもよい。その
タイプ情報は、データ・サーバの識別、及び保護接続が
必要とされるかどうかのようなその接続に関する特殊な
特性を含み得るものである。そこで、接続マネージャは
このタイプ情報を使用して必要な特性を持った接続を見
つける。
【0047】「待機−再試行」フラッグは、厳密に云え
ば、本発明による接続プールの利点を達成するためには
必要ではないけれども、実現可能であるパフォーマンス
の利点を増大させる。このフラッグが「偽」にセットさ
れる場合(又は、このパラメータが使用されない場
合)、接続マネージャは、接続がリクエストされ、適当
な接続が現在利用可能ではなく、しかもこれ以上の接続
を確立することができない時にはいつもサーブレットに
エラーを戻す。このフラッグが「真」にセットされ、適
当な接続が得られない場合、接続マネージャは、そのリ
クエストに応答する前に経過すべき或る指定された期間
の間待機するであろう。この待機期間は、使用中の接続
がフリーになりそしてプールに戻される時間を許容す
る。これが生じ、戻された接続の1つがサーブレットの
リクエストを満足させる場合、接続マネージャはその接
続をサーブレットに割り当てるであろう。それがサーブ
レットのリクエストを満足させない場合、その待機期間
の終了時にエラーが発生されるであろう。
【0048】基本オブジェクトに対する値はサーブレッ
トによってセットされ、指定された接続指定オブジェク
トの如何なる拡張されたオブジェクトも、アプリケーシ
ョン特有の手順を使用してフォーマットされる。完全な
接続指定オブジェクトが作成されてしまった時、ブロッ
ク410は、リクエストによってこのオブジェクトを接
続マネージャに送る。
【0049】ブロック500は、接続マネージャがサー
ブレットからこのリクエストを受け取ることを表す。ブ
ロック510において、指定された要件に適合した何ら
かの接続がその時得られるかどうかを決定するためにテ
ストが行われる。接続マネージャは、プールにおける各
接続に関するステータス情報を維持する責任がある。な
お、そのステータス情報はその接続が現在使用されつつ
あるかどうかを含んでいる。「使用中」フラッグを各接
続と関連付けることによって、これを行うことが可能で
ある。なお、そのフラッグは、接続がサーブレットに割
り当てられている時には「真」にセットされ、サーブレ
ットがその接続の使用を終了してそれをプールに戻した
時には「偽」にセットされる。ブロック510は、使用
中ではないとしてマークされた接続だけをチェックす
る。このテストが肯定応答を有する場合、制御はブロッ
ク520に移る。そうでない場合、制御はブロック53
0に移る。
【0050】ブロック520において、適当な接続が、
今「使用中」であるとしてマークされ、その接続がリク
エスティング・サーブレットに割り当てられる。望まし
くは、サーブレットによって渡された接続指定オブジェ
クトは、割り当てられる接続のアドレスを反映するよう
に接続マネージャによって更新されるであろう。ブロッ
ク420において、接続マネージャからの応答を受け取
った時、サーブレットは、今や、それがその接続を使用
する必要がある情報を有し、そしてそれはアプリケーシ
ョン特有の態様でこれを行い始める。
【0051】ブロック430は、その接続を使用してサ
ーブレットが行われるかどうかを尋ねる。それが否定さ
れる場合、サーブレットは、ブロック420によって示
されるようにその接続を使用し続ける。それが肯定され
る場合、ブロック440において、接続は接続マネージ
ャに戻される。ブロック430におけるテストは反復実
行テストとして意図されず、サーブレットがその接続の
使用を終了した時に処理のフローが異なるパスを取るこ
とを表すために含まれているということは当業者には明
らかであろう。ブロック440において接続を戻した
後、ブロック570において、接続マネージャはそれを
プールに戻し、それを使用中でないものとしてマークす
る。このクライアント・リクエストの処理(それが本発
明に関連するので)は完了し、図5の処理は終了する。
【0052】プールにおいて適当な接続が見つからなか
ったことをブロック510におけるテストが表す時、ブ
ロック530に達する。ブロック530は待機−再試行
パラメータをテストして、それの要求に適合する接続が
得られるようになったかどうかを知るために、このサー
ブレットが或る指定された期間の間待機するつもりであ
るかどうかを知る。このパラメータがサーブレットによ
って「偽」にセットされていた場合、制御はブロック5
60に移るであろう。その場合、エラーが発生され、サ
ーブレットに戻される。Javaの用語では、接続マネ
ージャはブロック560において例外を投じる。サーブ
レットはブロック450においてエラー表示を受け取
る。そのエラーに応答して遂行される処理は、接続が確
立され得なかった時に呼び出される既存のテクニックを
使用するアプリケーション特有のものであり、本発明の
一部を形成するものではない。このアプリケーション特
有の処理に続いて、図5のロジック・フローはこのクラ
イアント・リクエストに関して終了する。
【0053】エラーを直ちに戻す代わりに、可能性のあ
ることとして新たな接続を確立するため、ブロック53
0及び560の間に付加的な処理を任意選択的に含むこ
とが可能である。この付加的な処理は、接続プールが接
続の最大数及び(又は)特定のデータ・サーバに対する
接続の最大数(特定のサブプールにおける最大数として
考えられる)を持つように構成された時に行われてもよ
い。存在する接続の数はその構成された最大数と比較さ
れ、それが少ない場合(更なる接続をプール又はサブプ
ールに依然として加えることができることを表す場
合)、新たな接続が確立されるであろうし、(この接続
を使用中としてマークし、それをサーブレットに戻すた
めに)制御がブロック520に移るであろう。プール又
はアプリケーション・プールに対する最大数に既に達し
ている場合、制御はブロック560に移り、エラー状態
を発生する。
【0054】待機−再試行パラメータがサーブレットに
よって「真」にセットされた時、制御はブロック540
に達する。これは、前述のように、指定された期間の間
サーブレットが待機するつもりであることを表す。待機
する時間の長さは、本発明の発明的概念を逸脱すること
なく多くの代替方法で指定可能である。例えば、その時
間は接続プール全体に対する構成パラメータとして指定
可能であるか、又は、それは各タイプのサブプールに対
するパラメータとして指定可能であるか、又は、それは
接続マネージャ・コードにおいて指定された静的値であ
るか、又は、それは接続指定オブジェクトにおけるサー
ブレットによって送られた属性の1つであることも可能
である。ブロック540は、この時間の長さを超えてし
まったかどうかを尋ねる。それが肯定的である場合、ブ
ロック540からの「肯定(イエス)」ブランチをたど
ることによって、制御はブロック560に移る。そうで
ない場合、制御はブロック550に移る。
【0055】ブロック550において、接続マネージャ
はサーブレットのリクエストに対する待機プロセスを実
施するであろう。これは、或る待機期間又はすべての待
機期間の間作動するタイマを始動させるというようなそ
の分野では知られた幾つかの異なる方法で行われ得るこ
とである。タイマが待機期間の一部分の間作動する場
合、ブロック510乃至550のチェック・プロセスが
何回も反復可能である。これは、サーブレットのリクエ
ストが待機している間に適当な接続がプールに戻される
場合、それらの特性を持った接続もまたリクエストする
他のサーブレットの代わりに、それがそのサーブレット
に割り当てられる可能性を高める。タイマを使用する代
わりに、接続マネージャは接続を見つけようとしている
プロセスをブロックし、接続が他のプロセスによってプ
ールに戻される時そのプロセスをブロック解除する事象
を活性化する。ブロック550において待機を行うため
に使用される如何なるテクニックの終了時にも、制御は
ブロック510に戻り、現存のプールをチェックする。
【0056】プロセスの更なる最適化が可能である。ブ
ロック530及び560と関連して上述した最大接続数
の処理はブロック530及び560の間で付加的処理と
して反復され、待機−再試行パラメータが「真」にセッ
トされた時に新たな接続の作成を可能にする。別の方法
として、これらの両方の位置における最大接続数の処理
を含む代わりに、それがブロック510及び530の間
に挿入されるようにしてもよい。
【0057】接続マネージャは、いつでもプールにおけ
る接続の数を最適化することを任意選択的に求めること
も可能である。この最適化を実施し得る1つの方法は、
指定された期間の間使用されないままになっていた接続
を切断することによって実施可能である。望ましくは、
これは「最後に使用された」というタイムスタンプを各
接続と関連付けることによって、及び接続プールに対す
る(又は、別の方法として、論理的サブプールの各々に
対する)「最大アイドル時間」値を指定することによっ
て実施されるであろう。サーブレットが接続の使用を終
了する時にいつも、そのサーブレットは現在の時間を反
映するようにその「最後に使用された」タイムスタンプ
に記憶された値を更新する。そこで、接続マネージャ
は、使用中ではないとしてマークされた各接続を検査す
るプロセスを定期的に呼び出し、その最後に使用された
タイムスタンプを現在のシステム時間に比較する。この
差が最大アイドル時間(この接続が適用可能である場合
に関連するプール又はサブプールに対する)を超える場
合、この接続はアイドルしていた時間が長すぎたことに
なり、接続を開いておく必要がある資源を浪費すること
になる。アイドル接続は切断されるであろう。任意選択
的に、このプロセスにおいて解放される接続が多くなり
過ぎないようにするために、「接続の最大数」が、再び
プール全体のパラメータとして又は各サブプールのパラ
メータとしてセット可能である。最小値が指定される
時、既存の接続の数がこの数に達した時にいつも比較プ
ロセスは終了する。
【0058】更にもう1つの最適化では、サーブレット
に割り当てられる接続は、そのサーブレットが依然とし
て生産的に接続を使用しようとすることを保証するため
に定期的に検査可能である。望ましくは、タイムスタン
プ値が各接続と関連付けられ、それは、接続がサーブレ
ットに割り当てられる時に先ずセットされ、そしてサー
ブレットがその接続を使用する度に更新される。この値
を使用中の接続に対する現在時間に比較することによっ
て、サーブレットがその接続を最後に使用した以後にど
のくらいの時間が経過したかを決定することが可能であ
る。プールに対して、又は個々のサブプールに対して、
「最大経過時間」を設定することが可能である。そこ
で、接続に対するその経過した時間がこの最大経過時間
値に比較される。その経過した時間の方が大きい場合、
これは、サーブレットがクラッシュ、ハング等を受け、
最早その接続を使用し得ないという表示である。接続が
この状況において廃棄資源とならないようにするため
に、接続マネージャはタイムスタンプをクリアし、その
接続を使用中でないものとしてマークし、それをプール
に戻す。
【0059】サーブレットが接続の使用において長い遅
延を単に経験しただけであるが依然として活動的に実行
しているというケースを説明するために、サーブレット
は、それらの接続が、データ・サーバにデータを送る前
にこの方法でそれらから除去されてしまったかどうかを
検証することが可能である。望ましくは、これは、サー
ブレットが依然としてその接続を所有しているかどうか
を接続マネージャに尋ねるための方法をサーブレットが
呼び出すことによって行われるであろう。接続マネージ
ャは、どの接続がどのサーブレットに割り当てられるか
を記録する責任がある。サーブレットが依然としてその
接続を所有することを応答が表す場合、サーブレットは
正常に進行する。その応答がそれを表さない場合、接続
は除去され、サーブレットは接続マネージャから新たな
接続をリクエストしなければならない。
【0060】例えば、接続の最大数又はプール全体の待
機−再試行値を指定するために構成パラメータが使用さ
れる時、これらの値は、当業者には周知であるテクニッ
クを使用して、ウェブ・アドミニストレータのようなユ
ーザによって入れられるであろう。構成プロセスは、一
般に、ウェブ・サーバ82が始動されつつある時、その
ウェブ・サーバに対する管理インターフェースから構成
オプションを選択することによって呼び出されるであろ
う。この管理インターフェースは、クライアントの機械
においてアクセスされるグラフィカル・ユーザ・インタ
ーフェース(層1)であってもよく、構成された値は、
インターネット接続を使用して、そのグラフィカル・ユ
ーザ・インターフェースからプール機能の実装体に送ら
れるであろう。このプロセスは、構成されたパラメータ
の既存の値を変更することが望ましい時にはいつも、必
要に応じて反復可能である。
【0061】本発明の望ましい実施例を説明したけれど
も、当業者がこの基本的な発明概念を知ってしまえば、
実施例における付加的な変更及び修正を行うことが可能
であろう。従って、特許請求の範囲の記載は、好適な実
施例及びそのようなすべての変更及び修正を本発明の精
神及び技術範囲に或るものとして含むように解釈されべ
きものと考えられる。
【0062】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0063】(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)に記載
の方法。
【図面の簡単な説明】
【図1】本発明を実施し得るコンピュータ・ワークステ
ーション環境のブロック図である。
【図2】本発明を実施し得るネットワークされたコンピ
ューティング環境を表す図である。
【図3】本発明を使用し得る従来技術の3層ネットワー
ク環境を示す。
【図4】3層ネットワーク環境における本発明の配列を
示し、プールされた接続を利用するためのコンポーネン
ト間のアクティビティ及びメッセージの望ましいフロー
を示す。
【図5】バックエンド・データ・サーバの使用を必要と
するクライアント・リクエストを受け取る時の本発明と
関連したロジックを示すフロー・チャートを示す。

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】ネットワークへの接続を有するコンピュー
    ティング環境において、バックエンド・データ・サーバ
    への接続をプールすることによってサーバ・パフォーマ
    ンスを改良するための、前記環境におけるコンピュータ
    ・システムによる読取り可能なコンピュータ読取り可能
    コードにして、 アプリケーション・サーバと、 1つ又は複数のバックエンド・データ・サーバと、 接続プールと、 各々が前記アプリケーション・サーバを前記1つ又は複
    数のバックエンド・データ・サーバの1つに接続する1
    つ又は複数の接続を確立するためのサブプロセスと、 前記確立された接続を前記接続プールに入れるためのサ
    ブプロセスと、 前記接続プールにおける前記入れられた接続を管理する
    ためのサブプロセスと、 を含むコンピュータ読取り可能コード。
  2. 【請求項2】1つ又は複数のサーブレットと、 各々が前記サーブレットの1つによって実行される複数
    のクライアント・リクエストと、 を更に含み、 前記接続プールにおける前記入れられた接続を管理する
    ためのサブプロセスは更に、 前記1つ又は複数のサーブレットからリクエストを受け
    取るためのサブプロセスにして、前記リクエストの各々
    は適当な接続を割り当てるためのリクエストであり、共
    通のアプリケーション・プログラミング・インターフェ
    ースを使用するものであることと、 前記サーブレットによる使用のために前記サーブレット
    に前記適当な接続を割り当てるためのサブプロセスと、 を含む請求項1に記載のコンピュータ読取り可能コー
    ド。
  3. 【請求項3】前記適当な接続を割り当てるためのサブプ
    ロセスは、更に、 前記接続プールにおける前記適当な接続を、それが得ら
    れる場合に、見つけるためのサブプロセスと、 新たな接続を、それが必要とされる時に、確立するため
    のサブプロセスと、 エラーを、それが必要とされる時に、戻すためのプロセ
    スと、 を含む、請求項2に記載のコンピュータ読取り可能コー
    ド。
  4. 【請求項4】前記適当な接続を割り当てるためのサブプ
    ロセスは、更に、前記適当な接続が前記プールにおいて
    使用可能になるために或る指定された期間待機するため
    のサブプロセスを含む、請求項2に記載のコンピュータ
    読取り可能コード。
  5. 【請求項5】前記新たな接続を確立するためのサブプロ
    セスは、前記適当な接続を前記接続プールにおいて見つ
    けることができなかった時及び最大プール・サイズに到
    達していない時に動作する、請求項3に記載のコンピュ
    ータ読取り可能コード。
  6. 【請求項6】前記入れられた接続を管理するためのサブ
    プロセスは、更に、 前記1つ又は複数の接続が最大アイドル時間よりも長く
    アイドルしていたことを検出した時、前記接続されたバ
    ックエンド・データ・サーバから前記接続のうちの1つ
    又は複数を切断するためのサブプロセスと、 前記切断された接続を前記プールから除去するためのサ
    ブプロセスと、 を含む、請求項3に記載のコンピュータ読取り可能コー
    ド。
  7. 【請求項7】前記入れられた接続を管理するためのサブ
    プロセスは、 前記1つ又は複数の割り当てられた接続が最大時間より
    も長く使用されてなかったことを検出する時、前記1つ
    又は複数の割り当てられた接続を、該接続が割り当てら
    れていた前記サーブレットから割当て解除するためのサ
    ブプロセスと、 前記割当て解除された接続を前記プールにおいて使用可
    能にするためのプロセスと、 を含む、請求項3に記載のコンピュータ読取り可能コー
    ド。
  8. 【請求項8】ネットワークへの接続を有するコンピュー
    ティング環境において接続をプールすることによってサ
    ーバ・パフォーマンスを改良するためのシステムであっ
    て、 アプリケーション・サーバと、 1つ又は複数のバックエンド・データ・サーバと、 接続プールと、 各々が前記アプリケーション・サーバを前記1つ又は複
    数のバックエンド・データ・サーバの1つに接続する1
    つ又は複数の接続を確立するための手段と、 前記確立された接続を前記接続プールに入れるための手
    段と、 前記接続プールにおける前記入れられた接続を管理する
    ための手段と、 を含むシステム。
  9. 【請求項9】1つ又は複数のサーブレットと、 各々が前記サーブレットの1つによって実行される複数
    のクライアント・リクエストと、 を更に含み、 前記接続プールにおける前記入れられた接続を管理する
    ための手段は、更に、 前記1つ又は複数のサーブレットからリクエストを受け
    取るための手段であって、前記リクエストの各々は適当
    な接続を割り当てるためのリクエストであり、共通のア
    プリケーション・プログラミング・インターフェースを
    使用するものであることと、 前記サーブレットによる使用のために前記サーブレット
    に前記適当な接続を割り当てるための手段と、 を含む請求項8に記載のシステム。
  10. 【請求項10】前記適当な接続を割り当てるための手段
    は、更に、 前記接続プールにおける前記適当な接続を、それが得ら
    れる場合に、見つけるための手段と、 新たな接続を、それが必要とされる時に、確立するため
    の手段と、 エラーを、それが必要とされる時に、戻すための手段
    と、 を含む、請求項9に記載のシステム。
  11. 【請求項11】前記適当な接続を割り当てるための手段
    は、更に、前記適当な接続が前記プールにおいて使用可
    能になるために或る指定された期間待機するための手段
    を含む、請求項10に記載のシステム。
  12. 【請求項12】前記新たな接続を確立するための手段
    は、前記適当な接続が前記接続プールにおいて見つける
    ことができなかった時及び最大プール・サイズに到達し
    ていない時に動作する、請求項10に記載のシステム。
  13. 【請求項13】前記入れられた接続を管理するための手
    段は、更に、 前記1つ又は複数の接続が最大アイドル時間よりも長く
    アイドルしていたことを検出した時、前記接続されたバ
    ックエンド・データ・サーバから前記接続のうちの1つ
    又は複数を切断するための手段と、 前記切断された接続を前記プールから除去するための手
    段と、 を含む、請求項10に記載のシステム。
  14. 【請求項14】前記入れられた接続を管理するための手
    段は、 前記1つ又は複数の割り当てられた接続が最大時間より
    も長く使用されてなかったことを検出する時、前記1つ
    又は複数の割り当てられた接続を、該接続が割り当てら
    れていた前記サーブレットから割当て解除するための手
    段と、 前記割当て解除された接続を前記プールにおいて使用可
    能にするための手段と、 を含む、請求項10に記載のシステム。
  15. 【請求項15】ネットワークへの接続を有するコンピュ
    ーティング環境において接続をプールすることによって
    サーバ・パフォーマンスを改良するための方法であっ
    て、 各々が前記アプリケーション・サーバを前記1つ又は複
    数のバックエンド・データ・サーバの1つに接続する1
    つ又は複数の接続を確立するステップと、 前記確立された接続を前記接続プールに入れるステップ
    と、 前記接続プールにおける前記入れられた接続を管理する
    ステップと、 を含む方法。
  16. 【請求項16】1つ又は複数のサーブレットと、 各々が前記サーブレットの1つによって実行される複数
    のクライアント・リクエストと、 を更に含み、 前記接続プールにおける前記入れられた接続を管理する
    ステップは、更に、 前記1つ又は複数のサーブレットからリクエストを受け
    取るステップにして、前記リクエストの各々は適当な接
    続を割り当てるためのリクエストであり、共通のアプリ
    ケーション・プログラミング・インターフェースを使用
    するものであることと、 前記サーブレットによる使用のために前記サーブレット
    に前記適当な接続を割り当てるステップと、 を含む請求項15に記載の方法。
  17. 【請求項17】前記適当な接続を割り当てるステップ
    は、更に、 前記接続プールにおける前記適当な接続を、それが得ら
    れる場合に、見つけるステップと、 新たな接続を、それが必要とされる時に、確立するステ
    ップと、 エラーを、それが必要とされる時に、戻すステップと、 を含む、請求項16に記載の方法。
  18. 【請求項18】前記適当な接続を割り当てるステップ
    は、更に、前記適当な接続が前記プールにおいて使用可
    能になるために或る指定された期間待機するステップを
    含む、請求項17に記載の方法。
  19. 【請求項19】前記新たな接続を確立するステップは、
    前記適当な接続が前記接続プールにおいて見つけること
    ができなかった時及び最大プール・サイズに到達してい
    ない時に動作する、請求項17に記載の方法。
  20. 【請求項20】前記入れられた接続を管理するステップ
    は、更に、 前記1つ又は複数の接続が最大アイドル時間よりも長く
    アイドルしていたことを検出した時、前記接続されたバ
    ックエンド・データ・サーバから前記接続のうちの1つ
    又は複数を切断するステップと、 前記切断された接続を前記プールから除去するステップ
    と、 を含む、請求項17に記載の方法。
  21. 【請求項21】前記入れられた接続を管理するステップ
    は、 前記1つ又は複数の割り当てられた接続が最大時間より
    も長く使用されてなかったことを検出する時、前記1つ
    又は複数の割り当てられた接続を、該接続が割り当てら
    れていた前記サーブレットから割当て解除するステップ
    と、 前記割当て解除された接続を前記プールにおいて使用可
    能にするステップと、 を含む、請求項17に記載の方法。
JP14103899A 1998-06-05 1999-05-21 サーバ・パフォーマンスを改良するためのシステムおよび方法 Expired - Fee Related JP3515423B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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