JP7023348B2 - トランザクション処理サーバ、トランザクション処理サーバへのクライアント接続を管理する方法、およびコンピュータ・プログラム - Google Patents

トランザクション処理サーバ、トランザクション処理サーバへのクライアント接続を管理する方法、およびコンピュータ・プログラム Download PDF

Info

Publication number
JP7023348B2
JP7023348B2 JP2020507087A JP2020507087A JP7023348B2 JP 7023348 B2 JP7023348 B2 JP 7023348B2 JP 2020507087 A JP2020507087 A JP 2020507087A JP 2020507087 A JP2020507087 A JP 2020507087A JP 7023348 B2 JP7023348 B2 JP 7023348B2
Authority
JP
Japan
Prior art keywords
client
server
request
client request
requests
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.)
Active
Application number
JP2020507087A
Other languages
English (en)
Other versions
JP2020531956A5 (ja
JP2020531956A (ja
Inventor
ホリングスヘッド、アラン
ブルックス、マイケル
ホーン、ジュリアン
ワケリン、フィリップ、アイヴァー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2020531956A publication Critical patent/JP2020531956A/ja
Publication of JP2020531956A5 publication Critical patent/JP2020531956A5/ja
Application granted granted Critical
Publication of JP7023348B2 publication Critical patent/JP7023348B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • 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/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/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Description

本開示は、高負荷を管理するため、サーバに対するクライアント接続を管理する、方法および装置に関する。
顧客情報管理システム(CICS(R))トランザクション・サーバ(TS) for IBM(R) z/OS(R)など、サーバのトランザクション処理領域は、複数のネットワーク接続を通じてそのクライアントから作業を受信することができる。これらの接続は、短寿命または長寿命のどちらかであることができる。例えば、ウェブ・ブラウザからの接続は、一般に長寿命であり、潜在的に、非常に多数の複数の同時接続要求に対応していることがある。したがって、長寿命の接続からの要求は、本開示の主題である、効率的な動作を担保するための管理を必要とすることになる。要求および応答メッセージは、接続を通じてシリアル化され、一般的に、ヘッダ部分およびペイロード部分を有するパケット形式となる。メッセージは、クライアントがサーバに渡す(またはその逆の)要求データを含むこととなり、それがメッセージのペイロードまたはボディを形成することとなる。メッセージはまた、メタデータを含むこととなり、それがメッセージの1つまたは複数のヘッダを形成することとなり、その場合、メタデータの役割は、要求データをどのように扱うかに関する命令をメッセージの受信者に提供することである。接続は、サーバ・コンポーネントが始動したときに確立されてもよく、サーバ・コンポーネントがアクティブの状態で追加または除去されてもよい。サーバ・コンポーネントは、それが稼動するマシンの中央処理装置(CPU)が利用することができる利用量、およびそれがアクセスできるメモリの量などの要因によって制限される、有限の容量を有することとなる。システム管理者は、リソース不足による失速のリスクを冒すことなく、対応できる作業量が最大限になるようにサーバ・コンポーネントを構成し、高負荷になることによってサーバ・コンポーネント全体が故障するのを回避する対策を講じる。この文脈では、失速とは、リソース競合がアプリケーション・タスクの処理に影響を与えたときにサーバで起こる状態である。サーバ・コンポーネントが同時に稼動させることができるタスクの最大数に対して、制限が設定される。一般的に、これは、サーバ・コンポーネントに対する個々の接続を通じて対応される数よりも多いが、1つの接続が非常にビジーで他の接続が軽負荷である場合があるので、全ての接続を合わせた数よりも少ない。
場合によっては、一連の接続を通じて到達する作業が多すぎると、サーバ・コンポーネントが高負荷になることがあり、即ちその全容量に達することがある。サーバ・コンポーネントが既に全容量に達しているときに受信される過度な作業要求は、即座に処理することができないので、サーバ・コンポーネント内でキューに入れられて、処理できるときまで待機する。しかしながら、キュー自体およびその管理は、既に過負荷になっているサーバ・コンポーネントの更なるシステム・リソースを消費する。現在、サーバ・コンポーネントがそのときの作業負荷に耐えられないことを検出したとき、これらのネットワークの問題を自動的に解決するメカニズムは存在しない。
1つのネットワーク・ノードが、その相手方のネットワーク・ノードがそのときの作業負荷を処理できないとき、相手方に要求を送り過ぎないようにする、制御が知られている。例えば、固定数の要求スロットのみを有するように、要求送出側(本書では、クライアントと呼ばれる)を構成することが知られている。例えば、「送出セッション数」を構成するパラメータを使用して、クライアントが接続を通じて経路指定することができる同時要求の最大数を設定することができる。その数は、接続が最初に確立されたときに設定され、接続の持続期間の間存続する。別の既知の例は、サービス提供者(本書では、サーバと呼ばれる)が、受信しているがまだ処理していない要求に対するキューを維持しており、キューがいっぱいになると、サーバが受信するそれ以上の更なる要求は拒否するというものである。これらの方策は、単一の接続のみを有する対になったシステムの場合、全体容量を前もって計算することができ、それに合わせて接続の容量を設定できるので、良好に働く。しかしながら、大規模システムでは、複数のエントリー・ポイントを有する場合が多いので、それらの要求を有効に管理する形で接続を構成するのは単純な作業ではない。
例えば、IBM CICS(R) TS for z/OSのプロダクション・サーバ・コンポーネントは、要求メッセージがそれを通じて到達することがある複数の接続を有する可能性がある。任意の単一の接続を通じた要求のトラフィック量は、時間に伴って大幅に変動する可能性がある。更に、異なる接続間での要求のトラフィック量も、時間に伴って大幅に変動する可能性がある。サーバがそのクライアント全ての最大容量に合致するように構成することは、大量の冗長性に結び付き、また需要がピークに近くない限り、使用されないリソースが無駄になるので、実用的ではない。その代わりに、各接続は、サーバの全体容量におけるその正当な配分よりも多い容量に対応するように構成されるので、サーバがあまりビジーではない間、ビジーなクライアントはより多量の要求をサーバへと経路指定することができる。結果的に、要求をサーバがサービスすることができるまで要求がキューに入れられる期間、または要求がサーバによって拒否される期間が延長されることがある。
この問題に対処するため、クライアントは、クライアントがその全容量まで特定の接続を使用しているかを知るための、追加のソフトウェアを使用することが知られている。IBM z/OSワーク・ロード・マネージャ(WLM)およびIBM Tivoli(R) Netview(R)は、かかる作業負荷バランシング・ソフトウェアの例である。作業負荷のバランシングは、TCP/IPベースの作業負荷要求(接続)を同様のサーバ・アプリケーション間で分配して、最適なリソース利用を達成し、スループットを最大限にし、応答時間を最小限に抑え、サーバ・アプリケーションまたはシステムが過負荷になるのを回避する技術である。負荷バランシングを含む複数のサーバ・アプリケーションを(単一のサーバ・アプリケーションの代わりに)使用することによって、冗長性を通して信頼性を増大させることができる。負荷バランシングのサービスは、通常、専用のソフトウェア・プログラムまたはハードウェア・デバイスによって提供される。作業負荷マネージャは、分配の推奨案を負荷バランシング・サービス(即ち、負荷バランサー・アプライアンス)に提供する。
このタイプの作業負荷管理環境では、同じデータ・ソースにアクセスするサーバ・アプリケーションは、一般的に同じ作業負荷に含まれる。これによって、これらのアプリケーション全てが利用可能であること、また作業負荷の代わりに追加の接続を扱えることを検証するのに、エージェントを監視することが可能になる。また、作業負荷マネージャが、作業負荷におけるアプリケーションの統合ビューを有することができるようになり、それにより、地理的に離れた場所(即ち、システムの異なるクラスタ)の間で作業負荷を簡単に切り替えることができるようになる。特に、作業負荷マネージャは、作業負荷を構成しているサーバ・アプリケーションに対する全ての接続を、代わりの場所に同時に切り替えるべきであることを、負荷バランサー・アプリケーションに信号で伝えることができる。これによって、アプリケーションによるデータ・ソースへのアクセスは、いずれの時点でも1つの場所のみから行われることが確定される。作業負荷バランシング・ソフトウェアは、接続を使用しているシステムと一緒に稼動する。しかしながら、かかる追加のソフトウェアは、それが監視する接続とは別個に構成されなければならないという不利な点がある。
高いサーバ負荷を扱う別の既知の方策は、サーバが、健康データと呼ばれるサーバの負荷状態に関連するクライアント・データを送出することである。サーバの負荷状態データを使用して、クライアントは、サーバが既にビジーである場合、要求をサーバに送出するかまたはその送出を遅らせるか否かを決定することができる。
トランザクション処理サーバ、トランザクション処理サーバへのクライアント接続を管理する方法、およびコンピュータ・プログラムを提供すること。
本開示では、本発明者らは、1つの接続または複数の同時接続のどちらであるかにかかわらず、所与の期間で多数の要求を受信するサーバから生じるサーバのトランザクション処理領域における持続的な高負荷を自動的に管理する、コーピング・メカニズムであって、並列で提供されることもあってもなくてもよい任意の作業負荷バランシング基準とは独立して動作する、コーピング・メカニズムを提案する。
本開示の一態様によれば、クライアント接続を管理することができる、トランザクション処理サーバが提供され、サーバは、サーバに対する個々のクライアント-サーバ接続を確立し、維持し、終了するように動作可能であり、各接続がクライアント要求をサーバに送信することができる、クライアント-サーバ・コネクタと、クライアント要求を処理し、応答を発行するように動作可能なサーバのトランザクション処理領域と、クライアント要求がどのくらい迅速に処理されているかの性能記録を維持するように動作可能なサーバ性能マネージャと、入ってくるクライアント要求を監視し、目標応答時間内でクライアント要求を処理するようにトランザクション処理サーバに対して示す目標応答時間を、クライアント要求から抽出し、また目標応答時間に基づくとともに性能記録を参照して、入ってくる各クライアント要求を許可または拒否するように動作可能な、接続マネージャとを備える。
提案される方策によって、サーバが、クライアント指定の緊急性要件に基づいて、各要求を異なるように処理することが可能になる。サーバはまた、ビジーすぎて対応できないリソース管理要求を消費することによって失速を回避する。この方策は、状況を管理するのに第三者のリソースを使用することも伴わず、それよりもむしろ、クライアント指定の目標応答時間に作用するサーバのみに基づく。この方策はまた、要求がサーバによって前もって拒否されることになるため、目標応答時間内に応答していない要求に関して、クライアントがサーバに「取消し要求」を送出する必要がない可能性が高いので、サーバにおけるトランザクション作業の回復の複雑さを減少させることができる。従来、かかる「取消し要求」は、特にサーバが要求の処理を開始しており、パージ・プロセスによって作業のバックアウトを行う必要がある場合、サーバの手間がかかる。
接続マネージャは、任意に、拒否された要求の作成元であるクライアントに対して、要求拒否メッセージを送信するように更に動作可能である。このように、要求が処理されないことがクライアントに直接通知されるので、例えば、クライアントは、利用量が少ないと思われ、要求をより迅速に実行できる可能性が高い代替サーバに、要求を自由に再送出することができる。要求拒否メッセージは、性能記録を参照して得られている、要求を処理するための予測応答時間を含んでもよい。この追加情報は次に、クライアントが拒否を受信したときに、どのように反応するのが最善であるかを決定するのに使用することができる。例えば、クライアントは、同じ要求を同じサーバに再送出する選択肢を有するが、このとき、例えば、拒否に含まれる予測処理時間を参照して設定した、それに等しい、または20%超過、50%超過、もしくは二倍など、何らかのより大きい値に等しい、目標応答時間を指定する。
接続マネージャは、有利には、要求を処理するのにかかるはずの時間よりもはるかに短い時間内で、要求拒否メッセージを送信するように動作可能である。例えば、接続マネージャは、いくつかの実施形態では、目標応答時間の何分の1か(例えば、1/5、1/10、1/20、1/50、および1/100)以内で、要求拒否メッセージを送信するように動作可能である。別の例は、性能記録から推論した予想応答時間の何分の1か以内で要求拒否メッセージを送信するものであろう。一般に、設計の目的は、いかなる拒否も、要求を処理するのにかかる時間よりもはるかに短い時間スケールで行われることを担保して、要求が拒否されたという応答をクライアントが即時に、またはほぼ即時に得ることである。これによってクライアントは、例えば要求を異なるサーバに送出することによって、反応することができる。
多くの実施形態に当てはまるように、接続上の通信がパケット・ベースであると仮定すると、要求拒否メッセージは、便利には、例えば「サーバ・ビジー」応答として、サーバからクライアントへのデータ・パケットのメタデータに挿入される。メタデータは、拒否を伝達する目的で生成された特定のパケットに挿入することができ、または他の情報を伝達するパケットもしくはパケット群に、例えば別の処理済み要求の結果を返すパケットに追加することができる。目標応答時間も、便利には、クライアント要求のメタデータに含まれる。
要求拒否/許可テストは、全ての要求に対して全般的に、または要求がトランザクション・タイプを有する場合、トランザクション・タイプに特異的に実施することができ、性能記録は、クライアント要求に対する処理時間履歴を含む。いくつかの実施形態では、複数のトランザクション・タイプそれぞれに対して処理時間履歴があることになる。例えば、5つの異なるトランザクション・タイプがある場合、5つの異なる最近の応答時間値を性能記録で維持することができる。
処理時間履歴は、関連する最近のクライアント要求から集めた平均時間であってもよい。平均は、より最近処理されたクライアント要求がより大きい重み付けを有して、リーセンシーによって重み付けされてもよい。あるいは、平均は、重み付けしていない、即ち各要素が等しい重み付けを有する、単純な平均であることができる。更に、平均は、中間値、最頻値、または中央値であり得ることが理解される。
特定の実施形態では、入ってくるクライアント要求は、評価されるクライアント要求に関連する目標応答時間および応答時間履歴の比較に基づいて、許可または拒否される。性能記録は、例えば、最後の200秒以内の時間、または12:28 CET(中央ヨーロッパ標準時)以後の時間の少なくとも1つによって定義される、ウィンドウ内で処理されたクライアント要求に基づいてもよい。あるいは、ウィンドウは、多数のクライアント要求によって定義することができ、例えば、最後の100個の処理済み要求、または処理された特定のタイプの最後の5つの要求に基づくことができる。
サーバはキューを更に含んでもよく、サーバが要求を許可する容量を現在有していないとき、サーバに対するクライアント要求はキューに入れられる。いくつかの実施形態では、接続マネージャはキューに対するゲート・キーパーとして作用するので、要求は、スクリーニングされ許可された後にのみキューに入れられる。つまり、接続マネージャは、入ってくるクライアント要求が許可されることを条件としてキューに追加され、拒否された要求はキューへのアクセスを拒絶されるように、キューへのアクセスをゲートで制御するように動作可能である。このように、拒否された要求がキュー・リソースを消費することが回避される。他の実施形態では、接続マネージャがキューに対してそのスクリーニングを実施するので、全ての要求がキューに入るが、接続マネージャがチェックした後にのみキューを出るようにクリアされ、トランザクション処理が許可される。つまり、入ってくるクライアント要求の接続マネージャによる監視は、キューを見ることによって行われ、拒否されたクライアント要求はキューから消去される。この方策はやはり、接続マネージャの過負荷の可能性を回避しながら、または接続マネージャにそれ自体の別個のキューを提供しなければならない一方、迅速な拒否をクライアントに送出することを可能にする。
本開示の別の態様によれば、トランザクション処理サーバへのクライアント接続を管理する方法が提供され、方法は、サーバによって実施され、クライアントからのクライアント要求をクライアント-サーバ接続で受信することと、クライアント要求から、クライアントがどのくらい迅速に要求が処理されることを望むかを示す目標応答時間を抽出することと、目標応答時間に基づいて、またサーバによって維持されている、クライアント要求がどのくらい迅速に処理されているかの性能記録を参照して、クライアント要求を許可または拒否することとを含む。
方法は、要求が拒否された場合、拒否メッセージをクライアントに送信することを更に含んでもよい。いくつかの実施形態では、クライアント要求はタイプ分類を含み、要求を許可または拒否するのに使用されるインジケータは、そのタイプに特異的である。
本開示の別の態様によれば、コンピュータ・プログラム製品が提供され、コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を備え、コンピュータ可読記憶媒体は一過性信号自体ではなく、プログラム命令は、プロセッサに方法を実施させるようにプロセッサによって実行可能であり、方法は、クライアントからのクライアント要求をクライアント-サーバ接続で受信することと、クライアント要求から、目標応答時間内でクライアント要求を処理するようにトランザクション処理サーバに対して示す、目標応答時間を抽出することと、要求される目標応答時間とトランザクション処理サーバにおける要求されるタイプのトランザクションに関する完了時間の性能記録との比較に基づいて、クライアント要求を許可または拒否することと、クライアント要求を拒否するように示す比較に基づいて、トランザクション処理サーバが、クライアント要求を完了する予測時間量を拒否メッセージに含むこととを含む。
以下、本発明について、図面に示される例示の実施形態を参照して、単なる例として更に記載する。
例示的実施形態の例示の態様が実現されてもよい、分散データ処理環境を示す例示のブロック図である。 例示的実施形態の例示の態様が実現されてもよい、データ処理システムを示す例示のブロック図である。 単一のサーバおよび複数のクライアントがネットワーク接続を介して接続される、本発明の実施形態に関するシステム環境を示す概略図である。 図3のネットワーク接続を介して送出されるメッセージのメッセージ構造を示す図である。 図3のサーバをより詳細に示す図である。 図3のクライアントをより詳細に示す図である。 図5のサーバによって実施される接続管理を示すフローチャートである。 図6のクライアントによって実施される接続管理を示すフローチャートである。 本開示の一実施形態によるクラウド・コンピューティング環境を示す図である。 本開示の一実施形態による抽象モデルレイヤを示す図である。
以下の詳細な説明では、限定ではなく説明の目的で、本開示の更なる理解を提供するために具体的な詳細について説明する。本開示は、これらの特定の詳細から逸脱する他の実施形態において実践されてもよいことが、当業者には明白となるであろう。
本開示の実施形態によるクライアントは、任意の適切なコンピューティング・デバイス、例えば、携帯電話(スマートフォン)、ファブレット、タブレット、ラップトップ・コンピュータ、ゲーム機、パーソナル・コンピュータ、スマート・テレビ、またはメディア・プレーヤーであってもよい。コンピューティング・デバイスは、1つまたは複数の電気通信規格によって定義されるようなユーザ機器であってもよい。コンピューティング・デバイスは、携帯型、例えば手持ち式コンピューティング・デバイス、または固定型であってもよい。
図1は、例示的実施形態の例示の態様が実現されてもよい、分散データ処理システム100の例示のブロック図である。分散データ処理システム100は、例示的実施形態の態様が実現されてもよい、コンピュータのネットワークを含んでもよい。分散データ処理システム100は、分散データ処理システム100内で互いに接続された、様々なデバイスおよびコンピュータの間に通信リンクを提供するのに使用される媒体である、少なくとも1つのネットワーク102を含む。ネットワーク102は、ワイヤ、ワイヤレス通信リンク、または光ファイバー・ケーブルなどの接続を含んでもよい。ネットワーク102は、インターネットなどの外部ネットワーク、またはイーサネット(R)ネットワークもしくは仮想私設ネットワーク(VPN)などの内部ネットワークであってもよい。
図示される例では、サーバ104およびサーバ106は、記憶装置ユニット108とともにネットワーク102に接続される。それに加えて、クライアント110、112、および114もネットワーク102に接続される。これらのクライアント110、112、および114は、例えば、パーソナル・コンピュータ、ネットワーク・コンピュータなどであってもよい。図示される例では、サーバ104は、ブート・ファイル、オペレーティング・システム画像、およびアプリケーションなどのデータを、クライアント110、112、および114に提供する。クライアント110、112、および114は、図示される例では、サーバ104に対するクライアントである。分散データ処理システム100は、追加のサーバ、クライアント、および図示されない他のデバイスを含んでもよい。
サーバ104、106はそれぞれ、1つもしくは複数のプロセッサおよび1つもしくは複数のメモリを備えるコンピューティング・デバイス、ならびに潜在的に、バス、記憶デバイス、通信インターフェースなどを含む、当該技術で一般に知られている他の任意のコンピューティング・デバイス要素を含むか、またはそれらに対するアクセスを有する。サーバは、クライアント-サーバ通信チャネルを形成するのに用いられてもよいものを含む、他のコンピューティング・デバイスからの通信を受信する入力ポートと、クライアント-サーバ通信チャネルを形成するのに用いられてもよいものを含む、他のコンピューティング・デバイスに通信を送信する出力ポートとを有する。
分散データ処理システム100は、一例では、ネットワーク102が、互いに通信するプロトコルの伝送制御プロトコル/インターネット・プロトコル(TCP/IP)一式を使用するネットワークおよびゲートウェイの世界規模の総体を表す、インターネットであってもよい。インターネットの中心には、データおよびメッセージを経路指定する数千の商用、政府、教育、および他のコンピュータ・システムから成る、主要ノードまたはホスト・コンピュータ間の高速データ通信ラインのバックボーンがある。分散データ処理システム100はまた、例えば、イントラネット、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)など、多数の異なるタイプのネットワークを含むように実現されてもよい。上述したように、図1は、開示される主題の異なる実施形態に対するアーキテクチャ上の制限ではなく実施例として意図され、したがって、図1に示される特定の要素は、本発明の例示的実施形態が実現されてもよい環境に関する制限と見なすべきではない。
図示されるように、サーバ104、106、クライアント110、112、114、および記憶装置108または任意のネットワーク作業負荷マネージャ(図示なし)などの他のネットワーク・リソースを含む、様々な情報処理システムを、コンピュータ・ネットワーク102を使用して互いにネットワーク化することができる。様々な情報処理システムを相互接続するのに使用することができる、コンピュータ・ネットワーク102のタイプとしては、ローカル・エリア・ネットワーク(LAN)、ワイヤレス・ローカル・エリア・ネットワーク(WLAN)、インターネット、公衆交換電話網(PSTN)、他のワイヤレス・ネットワーク、および情報処理システムを相互接続するのに使用することができる他の任意のネットワーク・トポロジーが挙げられる。情報処理システムの多くは、ハード・ドライブまたは不揮発性メモリあるいはその両方など、不揮発性データ・ストアを含む。不揮発性データ・ストアは、様々な情報処理システムの外部にあるコンポーネントであることができ、または情報処理システムの1つの内部にあることができる。
図2は、例示的実施形態が実現されてもよい、データ処理システムのブロック図である。データ処理システム200は、例示的実施形態の場合に、プロセスを実現するコンピュータ使用可能プログラム・コードまたは命令が位置してもよい、図1のサーバ104またはクライアント110など、コンピュータの一例である。この実例では、データ処理システム200は、プロセッサ・ユニット204、メモリ206、永続記憶装置208、通信ユニット210、入出力(I/O)ユニット212、およびディスプレイ214の間の通信を提供する、通信ファブリック202を含む。
プロセッサ・ユニット204は、メモリ206にロードされてもよい、ソフトウェアに対する命令を実行するのに役立つ。プロセッサ・ユニット204は、特定の実現例に応じて、1つもしくは複数のプロセッサのセットであってもよく、またはマルチプロセッサ・コアであってもよい。更に、プロセッサ・ユニット204は、補助プロセッサが単一のチップ上にあって、主要プロセッサが存在する、1つまたは複数のヘテロジニアス・プロセッサ・システムを使用して実現されてもよい。別の実例として、プロセッサ・ユニット204は、同じタイプの複数のプロセッサを含む対称型マルチプロセッサ(SMP)システムであってもよい。
メモリ206および永続記憶装置208は記憶デバイスの例である。記憶デバイスは、一時的または永続的あるいはその両方のいずれかで情報を記憶することができる、任意のハードウェア部品である。メモリ206は、これらの例では、例えば、ランダム・アクセス・メモリ、または他の任意の適切な揮発性もしくは不揮発性記憶デバイスであってもよい。永続記憶装置208は、特定の実現例に応じて様々な形態をとってもよい。例えば、永続記憶装置208は、1つもしくは複数のコンポーネントまたはデバイスを含んでもよい。例えば、永続記憶装置208は、ハード・ドライブ、フラッシュ・メモリ、書換え可能光学ディスク、書換え可能磁気テープ、ベルヌーイ・カートリッジ、またはそれらの何らかの組み合わせであってもよい。永続記憶装置208によって使用される媒体はまた、取外し可能であってもよい。例えば、リムーバブル・ハード・ドライブが永続記憶装置208に使用されてもよい。
通信ユニット210は、これらの例では、他のデータ処理システムまたはデバイスとの通信に対応する。これらの例では、通信ユニット210はネットワーク・インターフェース・カードである。通信ユニット210は、物理的およびワイヤレスどちらかまたは両方の通信リンクを使用することによって通信を提供してもよい。
入出力ユニット212は、データ処理システム200に接続されてもよい他のデバイスとの間での、データの入力および出力を可能にする。例えば、入出力ユニット212は、キーボードおよびマウスを通してユーザ入力するための接続を提供してもよい。更に、入出力ユニット212は出力をプリンタに送出してもよい。ディスプレイ214は、情報をユーザに対して表示するメカニズムを提供する。
オペレーティング・システムおよびアプリケーションまたはプログラムに対する命令は、永続記憶装置208上にある。これらの命令は、プロセッサ・ユニット204による実行のためメモリ206にロードされてもよい。異なる実施形態のプロセスは、メモリ206などのメモリに入れられてもよいコンピュータ実装命令を使用して、プロセッサ・ユニット204によって実施されてもよい。これらの命令は、プロセッサ・ユニット204のプロセッサによって読み出され実行されてもよい、プログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードと呼ばれる。異なる実施形態のプログラム・コードは、メモリ206もしくは永続記憶装置208など、異なる物理的または有形コンピュータ可読媒体上で具現化されてもよい。
プログラム・コード216は、選択的に取外し可能であって、プロセッサ・ユニット204によって実行するためにデータ処理システム200にロードされるかまたは転送されてもよい、コンピュータ可読媒体218上に機能的形態で存在する。プログラム・コード216およびコンピュータ可読媒体218は、これらの例ではコンピュータ・プログラム製品220を形成する。一例では、コンピュータ可読媒体218は、例えば、ドライブか、または永続記憶装置208の一部であるハード・ドライブなど、記憶デバイス上に転送される永続記憶装置208の一部である他のデバイスに、挿入されるかもしくは入れられる光学または磁気ディスクなど、有形形態であってもよい。有形形態で、コンピュータ可読媒体218はまた、ハード・ドライブ、サムドライブ、またはデータ処理システム200に接続されるフラッシュ・メモリなど、永続記憶装置の形態をとってもよい。コンピュータ可読媒体218の有形形態は、コンピュータ記録可能記憶媒体とも呼ばれる。いくつかの例では、コンピュータ記録可能媒体218は取外し可能でなくてもよい。
あるいは、プログラム・コード216は、通信ユニット210への通信リンクを通して、または入出力ユニット212への接続を通して、あるいはその両方で、コンピュータ可読媒体218からデータ処理システム200に転送されてもよい。通信リンクまたは接続あるいはその両方は、実例では、物理的またはワイヤレスであってもよい。コンピュータ可読媒体はまた、通信リンク、またはプログラム・コードを含むワイヤレス送信など、非有形媒体の形態をとってもよい。データ処理システム200に関して示される異なるコンポーネントは、異なる実施形態が実現されてもよいやり方に対してアーキテクチャ上の制限をもたらすものではない。異なる例示的実施形態は、データ処理システム200に関して例示したものに加えてまたはその代わりにコンポーネントを含む、データ処理システムにおいて実現されてもよい。図2に示される他のコンポーネントは、図示される実例とは異なる可能性がある。一例として、データ処理システム200の記憶デバイスは、データを記憶してもよい任意のハードウェア装置である。メモリ206、永続記憶装置208、およびコンピュータ可読媒体218は、有形形態の記憶デバイスの例である。
別の例では、バス・システムは、通信ファブリック202を実現するのに使用されてもよく、システム・バスもしくは入出力バスなど、1つまたは複数のバスで構成されてもよい。当然ながら、バス・システムは、バス・システムに取り付けられた異なるコンポーネントまたはデバイスの間でデータの転送を提供する、任意の適切なタイプのアーキテクチャを使用して実現されてもよい。それに加えて、通信ユニットは、モデムもしくはネットワーク・アダプタなど、データを送受信するのに使用される1つまたは複数のデバイスを含んでもよい。更に、メモリは、例えば、メモリ206、または、通信ファブリック202に存在してもよいインターフェースおよびメモリコントローラ・ハブで見出されるような、キャッシュであってもよい。
本発明の動作を実施するコンピュータ・プログラム・コードは、Java(TM)、C++、C#、Objective-Cなどのオブジェクト指向プログラミング言語、および従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで書かれてもよい。プログラム・コードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または完全にリモート・コンピュータもしくはサーバ上で実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意のタイプのネットワークを通して、ユーザのコンピュータに接続されてもよく、または(例えば、インターネット・サービス・プロバイダを使用してインターネットを通して)外部のコンピュータに対して接続が作られてもよい。
当業者であれば、図1および図2のハードウェアは実現例に応じて異なることがあることを認識するであろう。フラッシュ・メモリ、等価の不揮発性メモリ、もしくは光学ディスクドライブなど、他の内部ハードウェアまたは周辺デバイスが、図1および図2に示されるハードウェアに加えて、またはその代わりに使用されてもよい。また、例示的実施形態のプロセスは、上述したSMPシステム以外の、マルチプロセッサ・データ処理システムに適用されてもよい。
図から分かるように、本明細書に記載される技術は、クライアントマシンが1つまたは複数のマシンセットで実行されるインターネットアクセス可能なウェブベースのポータルと通信する、図1に示されるものなどの標準的なクライアント-サーバの枠組み内で連動して働いてもよい。エンドユーザは、ポータルにアクセスし相互作用することができる、インターネット接続可能なデバイス(例えば、デスクトップ・コンピュータ、ノートブック・コンピュータ、インターネットに接続可能な移動デバイスなど)を操作する。一般的に、各クライアントまたはサーバマシンは、ハードウェアおよびソフトウェアを備える図2に示されるようなデータ処理システムであり、これらのエンティティは、インターネット、イントラネット、エクストラネット、私設ネットワーク、または他の任意の通信媒体もしくはリンクなどのネットワークを通じて、互いに通信する。データ処理システムは、一般的に、1つまたは複数のプロセッサと、オペレーティング・システムと、1つまたは複数のアプリケーションと、1つまたは複数のユーティリティとを含む。データ処理システム上のアプリケーションは、非限定的に、中でも特にHTTP、SOAP、XML、WSDL、UDDI、およびWSFLに対するサポートを含む、ウェブ・サービスへのネイティブ・サポートを提供する。SOAP、WSDL、UDDI、およびWSFLに関する情報は、これらの規格の開発および維持に関与するワールド・ワイド・ウェブ・コンソーシアム(W3C)から入手可能であり、HTTPおよびXMLに関する更なる情報は、インターネット技術特別調査委員会(IETF)から入手可能である。これらの規格とのなじみやすさが推定される。
様々な実施形態では、ネットワーク102は、インターネット、物理的私設ネットワーク、仮想私設ネットワーク(VPN)、またはこれらの任意の組み合わせなどの公衆ネットワークであってもよい。特定の実施形態では、ネットワーク102は、ブルートゥースまたは超広帯域(UWB)などの技術に基づいた、パーソナルエリアネットワーク(PAN)を含むワイヤレス・ネットワークであってもよい。様々な実施形態では、ワイヤレス・ネットワークは、Wi-Fiと呼ばれる場合が多い、IEEE 802.11仕様の変形に基づいた、ワイヤレス・ローカル・エリア・ネットワーク(WLAN)を含んでもよい。特定の実施形態では、ワイヤレス・ネットワークは、汎欧州デジタル移動電話方式(GPRS)およびGSM進化型高速データレート(EDGE)など、第2.5世代(2.5G)ワイヤレス技術を含む業界規格に基づいた、ワイヤレス広域ネットワーク(WWAN)を含んでもよい。様々な実施形態では、ワイヤレス・ネットワークは、ユニバーサル移動体通信システム(UMTS)および広帯域符号分割多重アクセス(W-CDMA)および新無線(NR)を含む、第3、第4、または第5世代(3G、4G、5G)ワイヤレス技術に基づいて、WWANを含んでもよい。
他の実施形態は、エボリューションデータ最適化(EVDO)、IEEE 802.16(WiMAX)、ワイヤレス・ブロードバンド(WiBro)、高速ダウンリンク・パケット・アクセス(HSDPA)、高速アップリンク・パケット・アクセス(HSUPA)、および4Gまたは5Gワイヤレス技術を含む、他の3G技術の実現例を含んでもよい。
本開示の実施形態の文脈におけるサーバは、場合によっては、「古典的」メインフレームであるか、またはメインフレームでホストされてもよい。メインフレーム・コンピュータ・システムは、多種多様なデータ処理機能に広く使用されている。例えば、多くの企業財務会計システムがメインフレーム・コンピューティング・システム向けに開発され、それらのシステム上で動作する。パーソナル・コンピュータおよびパーソナル・コンピュータ・ネットワークの使用は近年増殖してきたが、レガシー・システムと呼ばれるメインフレーム・コンピュータ・システムは、将来的な多くのタイプのデータ処理に対して一般的なままであることが予想される。メインフレーム・コンピュータ・システムは、一般的に、メインフレーム・ホスト・コンピュータに接続された複数のユーザ端末を含む。様々なソフトウェア・アプリケーションは、ホスト・コンピュータに常駐するか、またはそれにアクセス可能であってもよい。クライアント端末または「クライアント」と呼ばれる場合があるユーザ端末は、ホスト通信システムを介して、メインフレーム・ホスト・コンピュータと通信する。IBM 3270端末システムは、ホスト・コンピュータと通信するためのより広く使用されているシステムの1つである。一般的に、3270端末はそれ自体のデータ処理能力を有さない。その代わりに、3270端末は、ホスト上で稼動するアプリケーションによって生成される表示画面であってもよく、ユーザからホストに情報を戻して処理してもよい。IBM 3270端末システムのユーザ・インターフェースは、3270端末上に表示する、ホスト・アプリケーションによって生成される複数の画面を備える。過去数年にわたり、多くの3270端末が、3270端末エミュレーション・ソフトウェアを介してメインフレーム・コンピュータ・システムと通信するように構成された、パーソナル・コンピュータ(PC)に取って代わられてきた。
多くのアプリケーションでは、3270端末、または他のデータ処理デバイス(例えば、PC)は、今ではインターネットを介してホスト・コンピュータにアクセスする。例えば、TN3270Eプロトコルで動作するシステムでは、3270端末は、TN3270Eクライアント端末とTN3270Eサーバとの間のTCP/IP接続の組み合わせを介して、またTN3270Eサーバとホスト・メインフレーム・コンピュータ上のシステム・ネットワーク・アーキテクチャ(SNA)アプリケーション・ソフトウェアとの間のSNAセッションを介して、ホスト・コンピュータ上のアプリケーション・ソフトウェアにアクセスしてもよい。
また、クライアント-サーバ技術をメインフレーム・コンピューティング環境内で統合することが知られている。コンポーネントが協働して働いてより大きいシステムを形成する、このタイプの代表的なマルチコンポーネント・システムは、IBM(R)のハイパーテキスト転送プロトコル(HTTP)、およびコンピューティング・マシンのIBM z196ファミリーなどのIBMメインフレーム・コンピュータを使用して実現されてもよい、ウェブ・サービス処理環境である。この環境は、一般的に、IBM CICS(顧客情報制御システム)またはIBM情報管理システム(IMS)あるいはその両方など、1つまたは複数のトランザクション処理製品、IBM WebSphere(R)MQなどのメッセージ処理製品、およびIBM DB2(R)などのリレーショナル・データベースと連動して働く、IBM WebSphere(R)アプリケーション・サーバ(WAS)ミドルウェア・プラットフォーム・ソフトウェア製品を含む。マルチコンポーネント環境の目的は、HTTPもしくは他のウェブ・サービスを使用して、インターネット・ブラウザを介してクライアント・エンドユーザにアクセス可能な、高性能トランザクション処理コンピューティング・システムまたは環境を提供することである。この環境では、HTTPまたはウェブ・サービスの要求を作成するクライアント・エンドユーザは、アプリケーション・サーバと直接通信する。一般的に、分散クライアント・エンドユーザからのトランザクション要求を満たすため、アプリケーション・サーバは、環境中の1つまたは複数の他のコンポーネントのサービスを呼び出す。これらのコンポーネントの1つまたは複数は、一般的に、「メインフレーム」オペレーティング・システム・プラットフォームと呼ばれる場合が多い、IBM z/OSオペレーティング・システムなどのオペレーティング・システム上で実行される。
図3は、単一のサーバおよび複数のクライアントがネットワーク接続を介して接続される、本発明の実施形態に関するシステム環境の概略図である。サーバ10は、例えば、CICSトランザクション・サーバ(TS)であってもよく、図1に示されるサーバのいずれかに対応してもよく、多数のクライアント20も配置されるシステム領域内にある。システムは、TCP/IPなどのネットワーク・プロトコルを使用して、異なるノードが通信するのを可能にする。各クライアント20は、ネットワーク・プロトコルを使用して、少なくともサーバ10に対するネットワーク接続15を確立することができる。ネットワーク接続は終了されるまで持続するので、長寿命であってもよい。クライアントのうち選択されたものは、サーバに対する現在のネットワーク接続を有して示されており、複数の同時のネットワーク接続が例示されていることが注目される。確立されたネットワーク接続はそれぞれ、一般的にはパケット形式で、サーバからクライアントへ、またクライアントからサーバへそれぞれ、メッセージ30を送受信することによって管理される。クライアントからサーバへのメッセージは、サーバに対するタスクまたは要求を含んでもよく、サーバからクライアントへのメッセージは、かかるタスクまたは要求に関する応答を含んでもよい。
図4は、図3のネットワーク接続を介して送出されるメッセージのメッセージ構造を示している。各メッセージは、ヘッダ部分32と、ペイロードまたはボディ部分34とを備える。ヘッダは、メッセージ受信側の接続マネージャによって使用される制御情報を含み、ボディ34は、クライアントがそこで行うことを要求しているサービスの詳細を含む。ヘッダ部分32は、一連の複数のフィールド32、32、…、32に分割されてもよく、それらはそれぞれ、受信するとペイロード部分34を適切に処理するのに用いることができるメッセージに関連する異なるコマンドおよび制御情報を伝達する。ヘッダ・フィールドは単純にヘッダと呼ばれることがあるので、各メッセージは、1つまたは複数のヘッダとボディとのセットで構成されているものと説明できることが注目される。
図5は、図3のサーバ10をより詳細に示している。動作原理について考察する例として、2つの現在のクライアント接続15および15が示されているが、1以上の任意の数が存在してもよく、事実上、数は通常2つ超過となる。クライアント-サーバ・コネクタ27は、サーバ10の入出力インターフェースとして作用し、特に、サーバ10に対する個々のクライアント-サーバ接続15および15を確立し、維持し、終了するように動作可能である。パケット30および30は、接続15および15のそれぞれのクライアントから送出され、パケットは、要求またはタスクを含むサーバ10に対するメッセージを含む。接続はそれぞれ、同時要求の上限が指定されてもよい。例えば、同時要求の上限は、接続15に対しては100、接続15に対しては50であることができ、サーバの同時要求の上限は120である。これは、組み合わされた同時接続セッションの限界150がサーバの限界120を上回るという意味で、一般的な構成である。
入ってくる要求は、要求またはタスクを処理するサーバ10のトランザクション処理領域(TPR)22に入るキュー25に入れられる。TPR 22が全容量未満で動作しているとき、要求は、キュー25における明らかな待ち時間なしでTPR22に直接入力されるか、またはキューを完全に迂回してもよい。他方で、TPR 22が全容量で動作しているとき、要求はキューに入れられる。処理済みの要求は、TPRからクライアント接続15および15へ流れる矢印線によって示されるように、組み合わされてパケットにされる返信情報をTPR 22が発行することによって返信され、クライアント15、15などにおける要求の作成元であるクライアントに返送される。
サーバ10は、接続マネージャ(CM)24とサーバ性能モニタ(SPM)26とを更に備える。
SPM 26の役割は、クライアント要求がどのくらい迅速に処理されているかの性能記録を維持することである。これは、例えば、図5に示される、トランザクション識別子「トランザクションID」によって指定されるような、各トランザクション・タイプの平均応答時間を記憶することによって行われ、図中、SPM 26は、最近の平均応答時間値がそれぞれ4.5秒、5.0秒、4.5秒、5.5秒である、4つのトランザクションID TRAN1、…、4が示されるルックアップ・テーブルを含んで示されている。したがって、最近の応答時間は最近の処理時間の履歴記録である。平均は、より最近処理されたクライアント要求がより大きい重み付けを有して、リーセンシーによって重み付けされてもよい。あるいは、平均は、重み付けしていない、即ち各要素が等しい重み付けを有する、単純な平均であることができる。更に、平均は、中間値、最頻値、または中央値であり得ることが理解される。性能記録は、例えば、最後の200秒以内の時間、または12:28 CET以後の時間の少なくとも1つによって定義される、ウィンドウ内で処理されたクライアント要求に基づいてもよい。あるいは、ウィンドウは、多数のクライアント要求によって定義することができ、例えば、最後の100個の処理済み要求、または処理された特定のタイプの最後の5つの要求に基づくことができる。時間、要求数、および特定のタイプ内の要求数に対するウィンドウ値は、例えば、システム管理者によって構成することができる。
CM 24の役割は入ってくるクライアント要求を監視することである。これは、クライアントが、要求がどのくらい迅速に処理されることを望むかを示す、要求に記憶された目標応答時間を抽出することによって行われる。CM 24は次に、目標応答時間と、性能記録に記憶されているかまたは性能記録に記憶された情報から推論される予想応答時間との比較に基づいて、入ってくる各クライアント要求を許可または拒否する。要求が拒否されると、接続マネージャは、要求しているクライアントに対する要求拒否メッセージを生成するか、またはそれを生成させ、接続を通じてそのクライアントに対して送信させる。
多くの実施形態に当てはまるような、クライアント-サーバ接続におけるパケットベースの通信の場合、要求拒否メッセージは、便利には、クライアント-サーバ・コネクタ27によって、例えば「サーバ・ビジー」応答として、サーバからクライアントへのデータ・パケットのメタデータに挿入される。メタデータは、拒否を伝達する目的で生成された特定のパケットに挿入することができ、または他の情報を伝達するパケットもしくはパケット群に、例えば別の処理済み要求の結果を返すパケットに追加することができる。
入ってくるクライアント要求が目標応答時間を含まない場合、即ち、クライアントが提案される方策にしたがって動作するように構成されていない場合、CM 24は、デフォルトで要求を許可するように、またはデフォルトで要求を拒否するように構成されてもよい。デフォルトは何にもかかわらず適用されてもよく、またはデフォルトは、現在サーバがロードしている同時要求またはペンディングしている同時要求の数に基づいて、「許可」と「拒否」との間で適応的に変更されてもよい。
CM 24はまた、クライアントに付された各接続から受信される要求の数、およびどのクライアントが要求の作成元であるかを監視するという独立した役割を有する。例えば、ある時点で、CM 24は、第1の接続からの38個のまだ返信していない要求、および第2の接続からの17個のまだ返信していない要求があると知ることがある。CM 24は、接続が確立され終了されるのを監視し、それによって現在アクティブである接続の記録を維持し、アクティブな接続それぞれに対して、サポートすることができる、またはサポートすることが許可された同時要求の最大数を維持する。CM 24はまた、現在のセッション中における、または進行する時間窓に基づいた最近の過去における、各接続からの未処理要求の最大数の記録を保持してもよい。したがって、この最大数は、所与の接続に対するアクティビティの高水標を表すことになる。
SPM 26は、サーバ10の、特にクライアント要求を扱うTPR 22の予備容量を監視する。SPM 26は、サーバ10の最大容量を知っており、現在どれだけの数の要求を扱っているかを監視し、それによってサーバのロード量を監視する。特に、SPM 26は、サーバ10が全容量に近付いているとき、または全容量に達したときにそれを検出する。SPM 26は、どれだけの数の要求をサーバが扱っているかを直接監視することができ、またはキュー25のフィル状態を監視することによって、全容量に達しているかを推論することができる。つまり、キュー25が空またはほぼ空の場合、サーバが予備容量を有すると推論することができ、いくつかの要求がキューに入れられているか、または要求1つ当たりのキュー・ドウェル時間が閾値時間を上回っている場合、サーバが全容量またはそれに近い状態で動作していると推論することができる。SPM 26はまた、入ってくるパケット30またはキュー25で待機している要求における、各要求のメタデータを分析するように動作可能であり、それは、作成元のクライアント20またはクライアント-サーバ接続15の識別子として役立つ。
これは、所望の目標応答時間と予測応答時間との比較に基づいて要求を予備スクリーニングする、提案される方法とは完全に独立して動作している、過負荷を回避するクライアント要求管理アクティビティの一例である。したがって、目標応答時間と最近の平均応答時間との比較に基づいた提案される方法は、唯一の高負荷に対処できるメカニズムであり得るか、または別個に独立して並列で動作しているいくつかのコーピング・メカニズムの1つであり得る。
図6は、図3のクライアント20のうち1つの一例をより詳細に示している。クライアント20は、1つまたは複数のサーバに対するクライアント-サーバ接続を確立し、維持し、終了するように動作可能な、クライアント-サーバ・コネクタ33を有し、各接続は、図示されるように、例えばパケット30を使用して、クライアント要求を特定のサーバに送信することができる。クライアント20はまた、どのくらい迅速に応答することが望ましいかをサーバに通知する、目標応答時間をクライアント要求に含めるように動作可能な、クライアント要求生成系29を有する。これは、例えば、2.0秒、2.0秒、3.0秒、および6.0秒という時間値を有する4つのトランザクションID TRAN1、…、4のそれぞれに対する目標応答時間を記憶するルックアップ・テーブル31を含む、図6に示されるようなトランザクションIDによって指定されるような、各トランザクション・タイプに対する目標応答時間を記憶することによって行われる。このように、目標応答時間は特定のクライアントそれぞれに特異的であり、即ちそのクライアントに対してローカルである。情報はルックアップ・テーブルに表されて示されており、これは1つの可能な現実世界の実現例であるが、他の実施形態では、同じ情報をアプリケーション論理に埋め込むことができることが注目される。一般に、応答時間目標情報は任意の適切な実現形態で組み込むことができる。
クライアント20は、トランザクション処理サーバ10に送出する各要求とともに、応答時間目標をメタデータとして供給することができる。次に、サーバ10は、現在のシステム状態に基づいて、応答時間目標が満たされる可能性が低いとサーバが分析した場合、「サーバ・ビジー」を、より具体的にはエラーを返すことができる。トランザクション処理サーバ10は、トランザクションIDによって分類されたトランザクション応答時間の最近の履歴を維持しているので、サーバが高負荷になった場合、応答時間が減少され、これが最近のトランザクションの性能記録に反映されることになる。応答時間目標は、トランザクション処理領域22でトランザクションを行うため、要求を伴うメタデータとして付加される。
クライアント要求がトランザクション処理サーバ10のCM 24コンポーネントに到達すると、応答時間目標およびトランザクションIDがメタデータから抽出され、要求のトランザクションIDに対する履歴データがアクセスされる。目標が達成可能であると見なされた場合、要求は許可される。他方で、達成可能ではないと見なされた場合、要求は、SERVERBUSY応答などの応答とともに即時に拒否される。任意に、トランザクションIDに対する予測応答時間は、SERVERBUSY応答とともにメタデータとして返すことができるので、クライアントは、拒否に対してどのように反応するのが最良かを決定する際に、この追加情報を考慮することができる。
図5および図6のルックアップ・テーブルに示される実例の値では、トランザクション処理領域22は高負荷であり、その最近の応答時間平均は全て秒の倍数である。クライアントによって指定された応答時間目標に基づいて、サーバがこの時点で許可するであろうトランザクションIDはTRAN4のみである。
「サーバ・ビジー」コードまたは他の拒否メッセージを受信した後、クライアントはいくつかの方式のうち任意の1つで反応してもよい。例えば、サーバからの拒否メッセージの一部としてクライアントに返送された場合のサーバからの予測応答時間を使用して、任意に以下の動作、
a.要求を別のサーバ・システムに再提出すること、b.例えばサーバの予測応答時間に合致するかそれを上回る、より長い目標応答時間で同じサーバに要求を再提出すること、c.要求を捨て、呼び出しているインターフェースにエラーを返すことのうちの、1つを実施することができる。
図7は、図5のサーバによって実施される接続管理のフローチャートである。
ステップS61で、サーバがクライアントからの接続要求を許可するという点で、クライアントと協力してクライアント-サーバ接続が確立される。
ステップS62で、サーバは、クライアント-サーバ接続上でクライアントから要求を受信する。
ステップS63で、サーバは、クライアントがどのくらい迅速に要求が処理されることを望むかを示す目標応答時間を、クライアント要求から抽出する。
ステップS64で、サーバは、要求をスクリーニングして、即ち分析して、クライアント要求においてクライアントが指定した目標応答時間に基づいて、許可すべきか拒否すべきかを決定する。これは、現在、即ち最近の過去にわたって、クライアント要求がどのくらい迅速に処理されているかを記録する、サーバによって記憶された性能記録を参照して行われる。上述したように、これはトランザクション・タイプに、即ちトランザクションIDに基づいて行われることが想到されるので、関連する要因は、その要求と同じタイプのクライアント要求がどのくらい迅速に現在処理されているかである。
拒否決定に続いて実行されるステップS65rで、サーバは、拒否メッセージを構成してそれをクライアントに送信する。任意に、拒否メッセージは、その要求が許可されていた場合は処理にどのくらいの時間がかかる可能性があるかという、時間の指示を含んでもよい。例えば、目標応答時間が3.5秒だった場合、予測応答時間は拒否という結果になった場合よりも長くなり、例えば5.0秒であり、この後者の値が拒否メッセージに含まれる。続いて、更なるクライアント要求が、ステップS65rからステップS62に戻るフローの矢印によって示されるのと同じ方式で処理されてもよい。
許可決定に続いて実行されるステップS65aで、サーバは、サーバのトランザクション処理領域で処理するために要求をクリアする。続いて、更なるクライアント要求が、ステップS65aからステップS62に戻るフローの矢印によって示されるのと同じ方式で処理されてもよい。
入ってくる要求がどのようにスクリーニングされ、次に許可または拒否されるかには、トランザクション・プロセッサが作用する前にクライアント要求がキューに入れられるサーバ・キューに関して、いくつかの構成上の決定を行うことが関与する。
1つの設計上の選択肢は、接続マネージャがキューに対するゲート・キーパーとして作用することであり、それによって要求は、スクリーニングされ許可された後にのみキューに入れられる。つまり、接続マネージャは、入ってくるクライアント要求が許可されることを条件としてキューに追加され、拒否された要求はキューへのアクセスを拒絶されるように、キューへのアクセスをゲートで制御するように動作可能である。このように、拒否された要求がキュー・リソースを消費することが回避される。
別の設計上の選択肢は、接続マネージャがキューに対してそのスクリーニングを実施することであり、それによって全ての要求がキューに入るが、接続マネージャがチェックした後にのみキューを出るようにクリアされ、トランザクション処理が許可される。つまり、入ってくるクライアント要求の接続マネージャによる監視は、キューを見ることによって行われ、拒否されたクライアント要求はキューから消去される。この方策はやはり、接続マネージャの過負荷の可能性を回避しながら、または接続マネージャにそれ自体の別個のキューを提供しなければならない一方、迅速な拒否をクライアントに送出することを可能にする。
図8は、図6のクライアントによって実施される接続管理のフローチャートである。
ステップS66で、クライアントは、サーバと協力して、そのサーバに対するクライアント-サーバ接続を確立する。
ステップS67で、クライアントは従来の要求を生成する。
ステップS68で、クライアントは、どのくらい迅速に応答することが望ましいかをサーバに対して指定する、目標応答時間を要求に追加する。(ステップS67およびS68は統合して単一の動作にすることができる。)
ステップS69で、要求は、クライアント-サーバ接続上でサーバに送信される。
ステップS70で、クライアントは、クライアント-サーバ接続上でサーバの応答を受信する。
ステップS71で、サーバの応答がSERVERBUSYメッセージであった場合、即ちクライアント要求を拒否するメッセージであった場合、フローは、ステップS72でSERVERBUSY応答を扱うように構成された処理論理へと方向付けられる。他の任意のタイプのサーバ応答では、フローは、ステップS73で、通常の応答を、即ち要求に対する実体的な応答を扱うように構成された他方の処理論理へと方向付けられる。
提案される方法を実現するため、負荷バランシングを実施する作業負荷マネージャなど、他のネットワーク・リソースは関与しないことが注目される。それでもなお、提案される方法はかかる負荷バランシングと並列して実施できることが注目される。
本開示の実施形態は、クラウド・コンピューティングを使用して実現されてもよいことが、理解されるであろう。具体的には、サーバおよびネットワーク・リソースの1つまたは複数は、クラウドでホストされてもよい。
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に列挙する教示の実現は、クラウド・コンピューティング環境に限定されないことが、理解されるべきである。それよりもむしろ、本開示の実施形態は、現在知られているかまたは今後開発される、他の任意のタイプのコンピューティング環境と併用して実現することができる。
クラウド・コンピューティングは、最小限の管理作業またはサービス提供者との相互作用で迅速に供給しリリースすることができる、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシン、およびサービス)の共有プールに対する便利なオンデマンドのネットワーク・アクセスを可能にする、サービス送達のモデルである。このクラウド・モデルは、少なくとも5つの特性と、少なくとも3つのサービス・モデルと、少なくとも4つの展開モデルとを含んでもよい。
特性は次の通りである。
オンデマンド・セルフサービス:クラウドサービス利用者は、人間がサービス提供者と相互作用する必要なく自動的に、必要に応じて、サーバ時間およびネットワーク記憶などのコンピューティング能力を一方的に供給することができる。
ブロード・ネットワーク・アクセス:ネットワークを通じて能力が利用可能であり、ヘテロジニアス・シンまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDAなど)による使用を促進する、標準的メカニズムを通してアクセスされる。
リソース・プーリング:提供者のコンピューティング・リソースが、マルチテナント・モデルを使用する複数の利用者に役立つようにプールされ、異なる物理的および仮想リソースが需要にしたがって動的に割当ておよび再割当てされる。利用者は一般に、提供されるリソースの正確な位置に関する制御または知識を有さないが、より高い抽象度(例えば、国、州、またはデータセンター)で位置を指定することができてもよいという点で、位置の独立性という意味合いがある。
迅速な順応性:急速にスケール・アウトするため、能力を迅速に弾性的に、場合によっては自動的に供給し、また急速にスケール・インするため、迅速にリリースすることができる。利用者にとっては、供給に利用可能な能力は、無制限に見える場合が多く、いつでも任意の量で購入することができる。
測定されたサービス:クラウド・システムは、サービスのタイプ(例えば、記憶、処理、帯域幅、およびアクティブ・ユーザのアカウント)に適したあるレベルの抽象度で計測能力をレバレッジすることによって、リソース使用を自動的に制御し最適化する。リソース利用を監視し、制御し、報告して、利用されるサービスの提供者および利用者の両方に対して透明性を提供することができる。
サービス・モデルは次の通りである。
サービスとしてのソフトウェア(SaaS):利用者に提供される能力は、クラウド・インフラストラクチャで稼動している提供者のアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース(例えば、ウェブベースの電子メール)を通して、様々なクライアント・デバイスからアクセス可能である。利用者は、限定されたユーザ指定のアプリケーション構成設定を場合によっては例外として、ネットワーク、サーバ、オペレーティング・システム、記憶装置、または更には個々のアプリケーション能力などを含む、基礎にあるクラウド・インフラストラクチャを管理または制御しない。
サービスとしてのプラットフォーム(PaaS):利用者に提供される能力は、クラウド・インフラストラクチャ上に、提供者がサポートしているプログラミング言語およびツールを使用して作成された、利用者作成または獲得のアプリケーションを展開することである。利用者は、ネットワーク、サーバ、オペレーティング・システム、または記憶装置を含む、基礎にあるクラウド・インフラストラクチャを管理または制御しないが、展開されたアプリケーション、および場合によってはアプリケーション・ホスティング環境構成に対する制御は有する。
サービスとしてのインフラストラクチャ(IaaS):利用者に提供される能力は、処理、記憶装置、ネットワーク、ならびに、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアを利用者が展開し稼動させることができる、他の基本的なコンピューティング・リソースを供給することである。利用者は、基礎にあるクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、記憶装置、展開されたアプリケーションに対する制御を有し、また場合によっては、ネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)を選択する限定された制御を有する。
展開モデルは次の通りである。
プライベート・クラウド:クラウド・インフラストラクチャはある組織に対してのみ操作される。組織または第三者によって管理されてもよく、施設内または施設外に存在してもよい。
コミュニティ・クラウド:クラウド・インフラストラクチャは、複数の組織によって共有され、共有の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。組織または第三者によって管理されてもよく、施設内または施設外に存在してもよい。
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大きい業界グループに対して利用可能にされ、クラウドサービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティを残しているが、データおよびアプリケーションの可搬性(例えば、クラウド間の負荷バランシングのためのクラウド・バースティング)を可能にする、標準化されたまたは専用の技術によって互いに結合された、2つ以上のクラウド(プライベート、コミュニティ、もしくはパブリック)を組成したものである。
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、およびセマンティック相互運用性に注目したサービス指向性である。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
次に図9を参照して、例示的なクラウド・コンピューティング環境50について説明する。図示されるように、クラウド・コンピューティング環境50は、1つまたは複数のクラウド・コンピューティング・ノードを含み、それらを用いて、例えば、個人情報端末(PDA)もしくは携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはそれら全てなど、クラウドサービス利用者によって使用されるローカル・コンピューティング・デバイスが通信してもよい。ノードは互いに通信してもよい。それらは、上述したようなプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはそれらの組み合わせなど、1つまたは複数のネットワークで、物理的または仮想的にグループ化(図示なし)されてもよい。これによって、クラウド・コンピューティング環境50が、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはそれら全てを、クラウドサービス利用者がローカル・コンピューティング・デバイスでリソースを維持する必要がないサービスとして提示することが可能になる。図9に示されるコンピューティング・デバイス54A~Nのタイプは例示にすぎず、コンピューティング・ノードおよびクラウド・コンピューティング環境50は、任意のタイプのネットワーク、またはネットワークアドレス可能な接続(例えば、ウェブ・ブラウザを使用)、あるいはその両方を通じて、任意のタイプのコンピュータ化デバイスと通信できることが理解される。
次に図10を参照すると、クラウド・コンピューティング環境50(図9)によって提供される一連の機能抽象化レイヤが示されている。図10に示されるコンポーネント、レイヤ、および機能は、例示のみを意図するものであり、本開示の実施形態はそれに限定されないことが、前もって理解されるべきである。図示されるように、次のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(冗長命令セットコンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、記憶デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66が挙げられる。いくつかの実施形態では、ソフトウェア・コンポーネントとしては、ネットワーク・アプリケーション・サーバ・ソフトウェア67、およびデータベース・ソフトウェア68が挙げられる。
仮想化レイヤ70は、仮想サーバ71、仮想記憶装置72、仮想私設ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75といった、仮想エンティティの例を提供するのに用いてもよい、抽象化レイヤを提供する。
図1および図2に示されるサーバまたはサーバ要素のいずれかが、レイヤ60および70それぞれの物理的または仮想化コンポーネントに対応してもよいことが認識されるであろう。
一例では、管理レイヤ80は後述する機能を提供してもよい。リソース供給81は、コンピューティング・リソース、およびクラウド・コンピューティング環境内でタスクを実施するのに利用される他のリソースの、動的調達を提供する。計量および価格決定82は、リソースがクラウド・コンピューティング環境内で利用されたときのコスト追跡、およびこれらのリソースの消費に対する請求書の作成または提出を提供する。一例では、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含んでもよい。セキュリティは、クラウドサービス利用者およびタスクに対する識別情報検証、ならびにデータおよび他のリソースの保護を提供する。ユーザ・ポータル83は、利用者およびシステム管理者のクラウド・コンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要なサービスレベルが満たされるように、クラウド・コンピューティング・リソースの割当ておよび管理を提供する。サービスレベル合意(SLA)計画および履行85は、SLAにしたがって今後の必要性が予測されるクラウド・コンピューティング・リソースの予備配置および調達を提供する。
作業負荷レイヤ90は、クラウド・コンピューティング環境が利用されてもよい機能性の例を提供する。このレイヤから提供されてもよい作業負荷および機能の例としては、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育供給93、データ分析処理94、トランザクション処理95、およびサーバ10が挙げられる。
好ましい実施形態の論理的プロセス・ステップの全てまたは一部は、あるいは、方法の論理的プロセス・ステップを実施するように配置された論理要素を備える、論理装置または複数の論理装置において具現化されてもよいこと、ならびにかかる論理要素は、ハードウェア・コンポーネント、ファームウェア・コンポーネント、またはそれらの組み合わせを備えてもよいことが、当業者には明白となるであろう。
好ましい実施形態の論理コンポーネントの全てまたは一部は、あるいは、方法のステップを実施する論理要素を備える論理装置において具現化されてもよいこと、ならびにかかる論理要素は、例えばプログラマブル論理アレイまたは特定用途向け集積回路の論理ゲートなどのコンポーネントを備えてもよいことが、当業者には等しく明白となるであろう。かかる論理配置は更に、例えば、固定のもしくは送信可能なキャリア媒体を使用して記憶され送信されてもよい仮想ハードウェア記述子言語を使用して、かかるアレイまたは回路において、要素が論理構造を一時的または恒久的に確立できるようにして具現化されてもよい。
更なる代替実施形態では、本開示は、コンピュータ・インフラストラクチャ内へと展開されそこで実行されると、コンピューティング・デバイスに方法の全てのステップを実施させるように動作可能な、コンピュータ・プログラムを展開するステップを含む、サービスを展開するコンピュータ実装方法の形態で実現されてもよい。
好ましい実施形態の方法およびコンポーネントは、あるいは、並列ソフトウェアを実行する2つ以上のプロセッサを備えるパラレル・コンピューティング・システムにおいて、完全にまたは部分的に具現化されてもよいことが認識されるであろう。
本開示の更なる実施形態は、システムおよび方法に関して定義されるコンピュータ・プログラム製品である。コンピュータ・プログラム製品は、プロセッサに本開示の態様を実施させるコンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体を含んでもよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し記憶することができる、有形デバイスであることができる。
本開示は、システム、方法、またはコンピュータ・プログラム製品、あるいはそれら全てであってもよい。コンピュータ・プログラム製品は、プロセッサに本開示の態様を実施させるコンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体を含んでもよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し記憶することができる、有形デバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、またはそれらの任意の適切な組み合わせであってもよいが、それらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非排他的リストとしては、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラマブル読出し専用メモリ(EPROMもしくはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、携帯型コンパクト・ディスク読出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)ディスク、パンチカード、もしくは命令が記録された溝の隆起構造を有するものなどの、機械的に符号化されたデバイス、およびそれらの任意の適切な組み合わせが挙げられる。コンピュータ可読記憶媒体は、本明細書で使用するとき、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝達媒体を通って伝播する電磁波(例えば、光ファイバー・ケーブルを通る光パルス)、またはワイヤを通って伝送される電気信号など、一過性信号自体としては解釈されない。
本明細書に記載するコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、またはワイヤレス・ネットワーク、あるいはそれら全てを介して、外部コンピュータまたは外部記憶デバイスにダウンロードすることができる。ネットワークは、銅の伝送ケーブル、光伝送ファイバー、ワイヤレス送信、ルーター、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジサーバ、あるいはそれら全てを含んでもよい。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶する。
本開示の動作を実施するコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいはSmalltalk(R)、C++などのオブジェクト指向型言語、および「C」プログラミング言語または類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組み合わせで書かれる、ソース・コードまたはオブジェクト・コードであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または完全にリモート・コンピュータもしくはサーバ上で実行してもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意のタイプのネットワークを通して、ユーザのコンピュータに接続されてもよく、または(例えば、インターネット・サービス・プロバイダを使用してインターネットを通して)外部のコンピュータに対して接続が作られてもよい。いくつかの実施形態では、例えば、プログラマブル論理回路構成、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル論理アレイ(PLA)などを含む、電子回路構成は、本開示の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路構成を個人化することによって、コンピュータ可読プログラム命令を実行してもよい。
本開示の態様は、本開示の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して、本明細書に記載されている。フローチャート図もしくはブロック図またはその両方の各ブロック、あるいはフローチャート図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実現できることが理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、フローチャートまたはブロック図あるいはその両方の1つもしくは複数のブロックで指定される機能/動作を実現する手段を作成するように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサがマシンを作成するために提供されてもよい。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つもしくは複数のブロックで指定される機能/動作の態様を実現する、命令を含む製品を含むように、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはそれら全てが、特定の方式で機能するように命令することができる、コンピュータ可読記憶媒体に記憶されてもよい。
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで指定される機能/動作を実現するように、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、一連の動作ステップをコンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上で実施させて、コンピュータ実装プロセスを生成してもよい。
図面中のフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実現例のアーキテクチャ、機能性、および動作を示している。この点で、フローチャートまたはブロック図の各ブロックは、指定された論理的機能を実現する1つもしくは複数の実行可能命令を含む、モジュール、セグメント、または命令の部分を表してもよい。いくつかの代替実現例では、ブロックに示される機能は図面に示される以外の順序で行われてもよい。例えば、関与する機能性に応じて、連続して示される2つのブロックが、実際には実質的に同時に実行されてもよく、またはブロックは、場合によっては逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方のブロックの組み合わせは、指定された機能もしくは動作を実施するか、または専用ハードウェアおよびコンピュータ命令の組み合わせを実施する、専用ハードウェアベースのシステムによって実現できることが注目されるであろう。
本発明は、クライアント、サーバ、ネットワークを通じて接続されたクライアントおよびサーバを備えるコンピュータ・システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの全てであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるコンピュータ可読プログラム命令を有する、コンピュータ可読記憶媒体を含んでもよい。
本開示の範囲から逸脱することなく、上述の例示的実施形態に対して多くの改善および修正を行い得ることが、当業者には明白となるであろう。

Claims (11)

  1. クライアント接続を管理することができるトランザクション処理サーバであって、
    前記サーバに対する個々のクライアント-サーバ接続を確立し、維持し、終了するように動作可能であり、各接続がクライアント要求を前記サーバに送信することができる、クライアント-サーバ・コネクタと、
    クライアント要求を処理し、応答を発行するように動作可能な、前記サーバのトランザクション処理領域と、
    クライアント要求がどのくらい迅速に処理されているかの性能記録を維持するように動作可能な、サーバ性能マネージャであって、前記性能記録は、クライアント要求の処理時間履歴を含み、各処理時間履歴は、クライアント要求の以前の処理時間から集計された平均時間である、性能マネージャと
    前記サーバがクライアント要求を許可する容量を現在有していないとき、前記サーバに対するクライアント要求を待機する、キューと、
    入ってくるクライアント要求を監視し、クライアント要求を受信したことに応答して、前記トランザクション処理サーバが前記クライアント要求を処理するためにクライアントが要求する時間を示す目標応答時間を各クライアント要求から抽出し、前記目標応答時間を評価対象の前記クライアント要求の性能記録に基づく予測応答時間と比較することによって、入ってくるクライアント要求を許可または拒否するように動作可能な、接続マネージャであって、前記監視が、前記キューを見ることによって行われ、拒否されたクライアント要求が前記キューから消去される、接続マネージャと、
    前記クライアント要求を拒否することに応答して、前記クライアント要求を送信したクライアントに要求拒否メッセージを送信し、前記要求拒否メッセージは、前記性能記録に基づいて前記クライアント要求を処理するための予測応答時間を含む、
    トランザクション処理サーバ。
  2. 前記要求拒否メッセージが、サーバからクライアントへのデータ・パケットのメタデータに挿入される、請求項に記載のサーバ。
  3. 前記目標応答時間が前記クライアント要求のメタデータに含まれる、請求項1に記載のサーバ。
  4. 前記要求がトランザクション・タイプを有し、前記性能記録が、各トランザクション・タイプに基づいたクライアント要求の処理時間履歴を含む、請求項1に記載のサーバ。
  5. 前記平均が、より最近処理されたクライアント要求がより大きい重み付けを有する、請求項1に記載のサーバ。
  6. 前記性能記録が、時間によって定義されるウィンドウ内で処理されたクライアント要求に基づく、請求項1に記載のサーバ。
  7. 前記性能記録が、多数の過去のトランザクション内におけるトランザクション・タイプのクライアント要求の数に基づく、請求項1に記載のサーバ。
  8. 前記性能記録が多数の過去のクライアント要求に基づく、請求項1に記載のサーバ。
  9. コンピュータの処理によりトランザクション処理サーバへのクライアント接続を管理する方法であって、
    前記トランザクション処理サーバは、前記サーバに対する個々のクライアント-サーバ接続を確立し、維持し、終了するように動作可能であり、各接続がクライアント要求を前記サーバに送信することができる、クライアント-サーバ・コネクタと、クライアント要求を処理し、応答を発行するように動作可能な、前記サーバのトランザクション処理領域と、クライアント要求がどのくらい迅速に処理されているかの性能記録を維持するように動作可能な、サーバ性能マネージャであって、前記性能記録は、クライアント要求の処理時間履歴を含み、各処理時間履歴は、クライアント要求の以前の処理時間から集計された平均時間である、性能マネージャと、前記サーバがクライアント要求を許可する容量を現在有していないとき、前記サーバに対するクライアント要求を待機する、キューとを有し、
    前記方法が、
    入ってくるクライアント要求を監視し、クライアント要求を受信したことに応答して、前記トランザクション処理サーバが前記クライアント要求を処理するためにクライアントが要求する時間を示す目標応答時間を各クライアント要求から抽出するステップと、
    前記目標応答時間を評価対象の前記クライアント要求の性能記録に基づく予測応答時間と比較することによって、入ってくるクライアント要求を許可または拒否するステップであって、前記監視が、前記キューを見ることによって行われ、拒否されたクライアント要求を前記キューから消去する、ステップと、
    前記クライアント要求を拒否することに応答して、前記クライアント要求を送信したクライアントに要求拒否メッセージを送信するステップであって、前記要求拒否メッセージは、前記性能記録に基づいて前記クライアント要求を処理するための予測応答時間を含む、前記ステップと、
    を含む、方法。
  10. 請求項に記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
  11. 請求項10に記載の前記コンピュータ・プログラムをコンピュータ可読記録媒体に記録した、記録媒体。
JP2020507087A 2017-08-25 2018-08-22 トランザクション処理サーバ、トランザクション処理サーバへのクライアント接続を管理する方法、およびコンピュータ・プログラム Active JP7023348B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/686,397 2017-08-25
US15/686,397 US10834230B2 (en) 2017-08-25 2017-08-25 Server request management
US15/813,262 US10749983B2 (en) 2017-08-25 2017-11-15 Server request management
US15/813,262 2017-11-15
PCT/IB2018/056345 WO2019038684A1 (en) 2017-08-25 2018-08-22 SERVER REQUEST MANAGEMENT

Publications (3)

Publication Number Publication Date
JP2020531956A JP2020531956A (ja) 2020-11-05
JP2020531956A5 JP2020531956A5 (ja) 2021-02-18
JP7023348B2 true JP7023348B2 (ja) 2022-02-21

Family

ID=65435766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020507087A Active JP7023348B2 (ja) 2017-08-25 2018-08-22 トランザクション処理サーバ、トランザクション処理サーバへのクライアント接続を管理する方法、およびコンピュータ・プログラム

Country Status (6)

Country Link
US (2) US10834230B2 (ja)
JP (1) JP7023348B2 (ja)
CN (1) CN111052104B (ja)
DE (1) DE112018003482B4 (ja)
GB (1) GB2579330B (ja)
WO (1) WO2019038684A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018108250A1 (en) * 2016-12-13 2018-06-21 Abb Schweiz Ag A multi-client/multi-server managing method and system with a routine of rejection of already connected clients for balancing the system
US10834230B2 (en) 2017-08-25 2020-11-10 International Business Machines Corporation Server request management
US11153260B2 (en) * 2019-05-31 2021-10-19 Nike, Inc. Multi-channel communication platform with dynamic response goals
CN110471749B (zh) * 2019-07-12 2023-04-25 平安普惠企业管理有限公司 任务处理方法、装置、计算机可读存储介质和计算机设备
CN112688982B (zh) * 2019-10-18 2024-04-16 北京京东振世信息技术有限公司 一种用户请求处理方法和装置
CN111737087B (zh) * 2020-06-30 2023-08-04 超越科技股份有限公司 身份信息显示方法及系统
CN111917617B (zh) * 2020-07-31 2022-03-29 宁波奥克斯电气股份有限公司 智能家电设备控制方法、装置、服务器及存储介质
CN111988187B (zh) * 2020-09-02 2022-07-26 北京亿安天下科技股份有限公司 中央管理服务器的互联网连接方法及装置
CN111897659B (zh) * 2020-09-29 2020-12-25 腾讯科技(深圳)有限公司 业务处理频率的控制方法、系统、装置、电子设备
US20220188271A1 (en) * 2020-12-10 2022-06-16 Microsoft Technology Licensing, Llc Framework for allowing complementary workloads/processes to bring in heavy load on a file collaboration platform
TWI760160B (zh) * 2021-03-26 2022-04-01 凌群電腦股份有限公司 降低伺服端運作壓力並提升回應時間之流量控制方法及其系統
US20220405477A1 (en) * 2021-06-17 2022-12-22 Ramp Business Corporation Real-time named entity based transaction approval
US20230108553A1 (en) * 2021-10-05 2023-04-06 International Business Machines Corporation Handling a transaction request
US11983721B2 (en) * 2021-10-29 2024-05-14 Paypal, Inc. Computer software architecture for execution efficiency
CN115174296B (zh) * 2022-05-30 2024-03-22 青岛海尔科技有限公司 设备功能接入方法、装置、存储介质及电子装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110161488A1 (en) 2009-12-31 2011-06-30 International Business Machines Corporation Reducing workload on a backend system using client side request throttling
JP2012208596A (ja) 2011-03-29 2012-10-25 Kddi Corp サービス要求受付制御方法、装置およびシステム

Family Cites Families (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129510A (ja) * 1993-11-01 1995-05-19 Toshiba Corp コンピュータシステム
US5913028A (en) 1995-10-06 1999-06-15 Xpoint Technologies, Inc. Client/server data traffic delivery system and method
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
US6418464B1 (en) 1998-09-25 2002-07-09 Apple Compunter, Inc. Method and apparatus for coordination of client/server processes
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
US6922685B2 (en) 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US6996631B1 (en) * 2000-08-17 2006-02-07 International Business Machines Corporation System having a single IP address associated with communication protocol stacks in a cluster of processing systems
US7254228B2 (en) * 2000-09-28 2007-08-07 Eci Telecom Ltd. Method and system for effective utilizing the switching capacity of local exchanges
US8831995B2 (en) * 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US7062567B2 (en) 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
US7185094B2 (en) 2001-03-30 2007-02-27 Sandcherry, Inc. Media session framework using a control module to direct and manage application and service servers
US20020152307A1 (en) * 2001-04-12 2002-10-17 Doyle Ronald Patrick Methods, systems and computer program products for distribution of requests based on application layer information
US7315892B2 (en) * 2001-06-27 2008-01-01 International Business Machines Corporation In-kernel content-aware service differentiation
US6912715B2 (en) * 2001-07-30 2005-06-28 Appeon Corporation System and method for web-based remote procedure call (RPC)
US20030055969A1 (en) * 2001-09-17 2003-03-20 International Business Machines Corporation System and method for performing power management on a distributed system
JP4469535B2 (ja) * 2002-01-10 2010-05-26 富士通株式会社 情報処理システム、情報処理装置並びにアクセス分散方法
US20030229695A1 (en) * 2002-03-21 2003-12-11 Mc Bride Edmund Joseph System for use in determining network operational characteristics
US7171479B2 (en) 2002-04-26 2007-01-30 International Business Machines Corporation Efficient delivery of boot code images from a network server
US8082339B2 (en) 2003-02-28 2011-12-20 Hewlett-Packard Development Company, L.P. Electronic device network having graceful denial of service
US7567504B2 (en) * 2003-06-30 2009-07-28 Microsoft Corporation Network load balancing with traffic routing
US7698457B2 (en) 2003-11-12 2010-04-13 Andrei Ghetie Scalable and dynamic quality of service control
JP2005184165A (ja) 2003-12-17 2005-07-07 Hitachi Ltd トラフィック制御装置およびそれを用いたサービスシステム
US7610377B2 (en) * 2004-01-27 2009-10-27 Sun Microsystems, Inc. Overload management in an application-based server
JP2006031063A (ja) 2004-07-12 2006-02-02 Hitachi Ltd 優先制御装置
JP2006319841A (ja) * 2005-05-16 2006-11-24 Funai Electric Co Ltd サーバ装置及びクライアント・サーバシステム
US7925769B2 (en) * 2005-11-23 2011-04-12 International Business Machines Corporation Media flow converter for use in real-time delivery transactions
US8145719B2 (en) 2006-03-03 2012-03-27 Gogroups Method and system for messaging and communication based on groups
US7647454B2 (en) * 2006-06-12 2010-01-12 Hewlett-Packard Development Company, L.P. Transactional shared memory system and method of control
US8832286B2 (en) * 2007-11-12 2014-09-09 International Business Machines Corporation Method and system for controlling client access to a server application
US7979497B2 (en) * 2008-01-25 2011-07-12 International Business Machines Corporation Message delivery using a plurality of queue managers
US9071608B2 (en) 2008-04-28 2015-06-30 International Business Machines Corporation Method and apparatus for load balancing in network based telephony application
US7797415B2 (en) 2008-04-29 2010-09-14 Computer Associates Think, Inc. Automatic context-based baselining for transactions
US8316085B2 (en) * 2008-08-13 2012-11-20 Sk Planet Co., Ltd. Contents delivery system and method using object redirection, and GSLB switch thereof
US8135850B2 (en) 2008-11-25 2012-03-13 Citrix Systems, Inc. Systems and methods for load balancing real time streaming
US20120066501A1 (en) 2009-03-17 2012-03-15 Chuyu Xiong Multi-factor and multi-channel id authentication and transaction control
US8699343B2 (en) * 2009-04-27 2014-04-15 Sonus Networks, Inc. Adaptive rate control based on overload signals
US8103781B1 (en) 2009-05-01 2012-01-24 Google Inc. Mechanism for handling persistent requests from stateless clients
WO2010144002A1 (en) * 2009-06-09 2010-12-16 Telefonaktiebolaget L M Ericsson (Publ) Power-saving functions in communications networks
KR101674903B1 (ko) 2009-10-20 2016-11-11 삼성전자주식회사 개인 네트워크를 이용한 서비스 제공 방법 및 장치
US8996611B2 (en) * 2011-01-31 2015-03-31 Microsoft Technology Licensing, Llc Parallel serialization of request processing
US8176357B2 (en) 2010-05-28 2012-05-08 Eastman Kodak Company System for handling storage system requests
US8762775B2 (en) 2010-05-28 2014-06-24 Intellectual Ventures Fund 83 Llc Efficient method for handling storage system requests
US8682310B2 (en) * 2010-05-28 2014-03-25 Telefonaktiebolaget L M Ericsson (Publ) Network-based area positioning for capacity and coverage improvement
US8892632B2 (en) 2010-06-04 2014-11-18 Microsoft Corporation Client-server interaction frequency control
EP2395710B1 (en) * 2010-06-08 2013-11-06 Alcatel Lucent Device and method for data load balancing
US8832061B2 (en) * 2010-07-02 2014-09-09 Salesforce.Com, Inc. Optimizing data synchronization between mobile clients and database systems
JP5582344B2 (ja) * 2010-08-09 2014-09-03 日本電気株式会社 接続管理システム、及びシンクライアントシステムにおける接続管理サーバの連携方法
US8645545B2 (en) 2010-11-24 2014-02-04 International Business Machines Corporation Balancing the loads of servers in a server farm based on an angle between two vectors
US9602414B2 (en) 2011-02-09 2017-03-21 Time Warner Cable Enterprises Llc Apparatus and methods for controlled bandwidth reclamation
EP2678995B1 (en) * 2011-02-26 2019-07-17 British Telecommunications public limited company Service session resource management
US8849900B2 (en) 2011-03-04 2014-09-30 Telcordia Technologies, Inc. Method and system supporting mobile coalitions
US9654601B2 (en) * 2011-03-14 2017-05-16 Verizon Digital Media Services Inc. Network connection hand-off and hand-back
US8874474B2 (en) * 2011-03-23 2014-10-28 Panasonic Intellectual Property Corporation Of America Communication server, communication method, memory medium and integrated circuit for mediating requests for content delivery according to expectation values of a probability of acceptance of the request, desired location, and history information
US20130080635A1 (en) * 2011-09-23 2013-03-28 Loyal3 Holdings, Inc. Massively Scalable Electronic Gating System
US9285859B2 (en) 2011-12-29 2016-03-15 Khalifa University of Science, Technology, and Research British Telecommunications PLC Method and system for determining allocation of clients to servers
EP3068102B1 (en) * 2011-12-29 2017-11-08 Koninklijke KPN N.V. Network-initiated content streaming control
GB2506930A (en) 2012-10-15 2014-04-16 Ibm Improved request-response operation for asynchronous messaging
US20140153577A1 (en) 2012-12-03 2014-06-05 Aruba Networks, Inc. Session-based forwarding
CN103067359A (zh) 2012-12-14 2013-04-24 北京思特奇信息技术股份有限公司 一种基于连接复用的提高服务器并发处理能力的系统及方法
JP6172649B2 (ja) * 2012-12-19 2017-08-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、プログラム、及び、情報処理方法
JP6106494B2 (ja) 2013-03-29 2017-03-29 株式会社東芝 通信制御装置、サーバ装置、通信システム及びプログラム
US9432269B2 (en) 2013-04-06 2016-08-30 Citrix Systems, Inc. Systems and methods for exporting application details using appflow
US10069903B2 (en) 2013-04-16 2018-09-04 Amazon Technologies, Inc. Distributed load balancer
US10038626B2 (en) 2013-04-16 2018-07-31 Amazon Technologies, Inc. Multipath routing in a distributed load balancer
US10362145B2 (en) * 2013-07-05 2019-07-23 The Boeing Company Server system for providing current data and past data to clients
US20150019686A1 (en) * 2013-07-12 2015-01-15 Seven Networks, Inc. Distributed caching systems with configurable extended caching optimization
US9870349B2 (en) 2013-09-20 2018-01-16 Yottaa Inc. Systems and methods for managing loading priority or sequencing of fragments of a web object
US10104166B2 (en) * 2014-05-20 2018-10-16 Citrix Systems, Inc. Systems and methods for providing load balancing as a service
EP3037965A1 (en) 2014-12-22 2016-06-29 Oberthur Technologies Client-server communication
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
CN106301883B (zh) * 2015-06-26 2019-09-03 精工爱普生株式会社 网络系统、以及网络系统的控制方法
CN105897836A (zh) * 2015-12-07 2016-08-24 乐视云计算有限公司 一种回源请求处理方法及装置
CN106940656A (zh) * 2016-01-04 2017-07-11 阿里巴巴集团控股有限公司 一种任务调度方法及装置
US10834230B2 (en) 2017-08-25 2020-11-10 International Business Machines Corporation Server request management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110161488A1 (en) 2009-12-31 2011-06-30 International Business Machines Corporation Reducing workload on a backend system using client side request throttling
JP2012208596A (ja) 2011-03-29 2012-10-25 Kddi Corp サービス要求受付制御方法、装置およびシステム

Also Published As

Publication number Publication date
US20190068751A1 (en) 2019-02-28
GB2579330A (en) 2020-06-17
US10834230B2 (en) 2020-11-10
JP2020531956A (ja) 2020-11-05
CN111052104B (zh) 2023-12-19
DE112018003482B4 (de) 2022-09-08
DE112018003482T5 (de) 2020-04-09
GB2579330B (en) 2020-11-11
US20190068752A1 (en) 2019-02-28
US10749983B2 (en) 2020-08-18
GB202003654D0 (en) 2020-04-29
WO2019038684A1 (en) 2019-02-28
CN111052104A (zh) 2020-04-21

Similar Documents

Publication Publication Date Title
JP7023348B2 (ja) トランザクション処理サーバ、トランザクション処理サーバへのクライアント接続を管理する方法、およびコンピュータ・プログラム
US11070625B2 (en) Server connection capacity management
US11178254B2 (en) Chaining virtual network function services via remote memory sharing
EP3115897B1 (en) Intelligent load balancer selection in a multi-load balancer environment
US11297534B2 (en) Intelligent and optimal resource selection within a network slice
US20120233315A1 (en) Systems and methods for sizing resources in a cloud-based environment
US11563636B1 (en) Dynamic management of network policies between microservices within a service mesh
JP2017112607A (ja) ハイブリッド・クラウド環境における動的に定められた仮想プライベート・ネットワーク・トンネル
US20110035248A1 (en) Distributed Service Platform Computing with a Guaranteed Quality of Service
EP2883342B1 (en) Virtual desktop policy control
US9882773B2 (en) Virtual resource provider with virtual control planes
JP6539341B2 (ja) プログラマティックインターフェースに従ったルータ情報の提供
WO2012125144A1 (en) Systems and methods for sizing resources in a cloud-based environment
US12047440B2 (en) Managing workload in a service mesh
US11782775B2 (en) Dynamic management of network policies between microservices within a service mesh
WO2023131232A1 (en) Intelligent service mesh data compression
US10243816B2 (en) Automatically optimizing network traffic
CN106775942B (zh) 一种云应用导向的固态盘缓存管理系统及方法
WO2022074439A1 (en) Overload protection for edge cluster using two tier reinforcement learning models
US10630554B1 (en) Input/output (I/O) performance of hosts through bi-directional bandwidth feedback optimization
US11902826B2 (en) Acknowledgement of data packet transmission using RLC in am mode operating in 5G protocol stack with mitigation of RLC channel congestion
Miskeen et al. Performance and security trade-off for routers in high speed networks

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220208

R150 Certificate of patent or registration of utility model

Ref document number: 7023348

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150