(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】トランザクションリクエストのハンドリング
(51)【国際特許分類】
G06F 9/46 20060101AFI20240927BHJP
G06F 11/34 20060101ALI20240927BHJP
【FI】
G06F9/46 430
G06F11/34 142
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024519467
(86)(22)【出願日】2022-09-06
(85)【翻訳文提出日】2024-03-28
(86)【国際出願番号】 EP2022074706
(87)【国際公開番号】W WO2023057152
(87)【国際公開日】2023-04-13
(32)【優先日】2021-10-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ブルークス、マイケル
(72)【発明者】
【氏名】ウェイクリン、フィリップ
(72)【発明者】
【氏名】ホリングヘッド、アラン
(72)【発明者】
【氏名】ホーン、ジュリアン、チャールズ
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GB01
5B042JJ29
5B042MC22
(57)【要約】
本発明の実施形態は、過去において類似のトランザクションを実行するために要求されたサーバリソースの履歴レコード及びトランザクションサーバの現在の能力に基づいて到来するトランザクションリクエストをトランザクションサーバにハンドリングするための概念を提供する。到来するトランザクションリクエストは、ヘビーウェイトトランザクション及びライトウェイトトランザクションとして分類されてよく、トランザクションリクエストのハンドリングは、当該分類に基づいてよい。
【特許請求の範囲】
【請求項1】
トランザクションサーバにおいて受信されたトランザクションリクエストをハンドリングするコンピュータ実装方法であって、前記トランザクションリクエストは、前記トランザクションサーバに対するトランザクションを実行するリクエストを含み、前記コンピュータ実装方法は、
前記トランザクションサーバにおいてトランザクションリクエストを受信することに応答して、トランザクションを実行するために要求されるサーバリソースの履歴レコードを含むトランザクションレコード、及び前記トランザクションリクエストをハンドリングするためのハンドリングアクションを決定するための現サーバ能力メトリックに基づいて前記トランザクションリクエストを解析する段階
を備える、コンピュータ実装方法。
【請求項2】
前記コンピュータ実装方法は、
前記トランザクションサーバによって処理される複数のトランザクションをモニタリングする段階;及び
前記複数のトランザクションを処理するために要求される前記サーバリソースに基づいてトランザクションレコードを生成する段階
を更に備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記トランザクションレコードは、1つ又は複数のトランザクション分類を含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記トランザクションレコードを生成する段階は、前記1つ又は複数のトランザクション分類に従って前記複数のトランザクションの各々を分類する段階を有し、前記1つ又は複数のトランザクション分類は、
ヘビーウェイトトランザクション;及び
ライトウェイトトランザクション
を含む、請求項3に記載のコンピュータ実装方法。
【請求項5】
トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超える場合、ヘビーウェイトトランザクションとして分類される、請求項4に記載のコンピュータ実装方法。
【請求項6】
トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類される、請求項4に記載のコンピュータ実装方法。
【請求項7】
前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階は、
前記トランザクションリクエストの前記解析に基づいて前記トランザクションリクエストを分類する段階;及び
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階
を有する、請求項3に記載のコンピュータ実装方法。
【請求項8】
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階は、
前記トランザクションリクエストがライトウェイトトランザクションとして分類される場合、前記トランザクションリクエストを処理する段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類される;及び
前記トランザクションリクエストがヘビーウェイトトランザクションとして分類される場合、前記トランザクションリクエストをキューイングする段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えている場合、ヘビーウェイトトランザクションとして分類される
有する、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記コンピュータ実装方法は、
前記トランザクションサーバの前記サーバリソースをモニタリングする段階;
前記サーバリソースの前記モニタリングに基づいて前記トランザクションサーバによってヘビーウェイトトランザクションを処理することができるときを決定する段階;及び
ヘビーウェイトトランザクションを処理することができるときを決定する前記段階に基づいて、キューイングされたトランザクションリクエストを処理する段階
を更に備える、請求項8に記載のコンピュータ実装方法。
【請求項10】
前記コンピュータ実装方法は、
前記トランザクションサーバの前記サーバリソースをモニタリングする段階;
前記サーバリソースの前記モニタリングに基づいて前記トランザクションサーバによってヘビーウェイトトランザクションをライトウェイトトランザクションと同時に処理することができるか否かを決定する段階;及び
ヘビーウェイトトランザクションをライトウェイトトランザクションと同時に処理することができるか否かを決定する前記段階に基づいて、ライトウェイトトランザクションと同時に前記ヘビーウェイトトランザクションを処理する段階
を更に備える、請求項8に記載のコンピュータ実装方法。
【請求項11】
複数のトランザクションリクエストは、前記トランザクションサーバにおいて受信され、前記複数のトランザクションリクエストは、1つ又は複数のヘビーウェイトトランザクション及び1つ又は複数のライトウェイトトランザクションを含み、前記コンピュータ実装方法は、
前記トランザクションサーバの前記サーバリソースをモニタリングする段階;
前記サーバリソースの前記モニタリングに基づいて前記トランザクションサーバによって1つ又は複数のヘビーウェイトトランザクションを1つ又は複数のライトウェイトトランザクションと同時に処理することができるか否かを決定する段階;及び
ヘビーウェイトトランザクションをライトウェイトトランザクションと同時に処理することができるか否かを決定する前記段階に基づいて、1つ又は複数のライトウェイトトランザクションと同時に前記1つ又は複数のヘビーウェイトトランザクションを処理する段階
を更に備える、請求項8に記載のコンピュータ実装方法。
【請求項12】
前記サーバリソースは、
メモリ使用メトリック;
ピークメモリ使用メトリック;
トラステッドコンピューティングベース使用メトリック;
処理時間;及び
プロセッサ使用メトリック
のうちの1つ又は複数を含む、請求項1に記載のコンピュータ実装方法。
【請求項13】
前記現サーバ能力メトリックは、
現在処理されている現在のトランザクションの数;
メモリ使用メトリック;
プロセッサ使用メトリック;及び
キュー内のトランザクションリクエストの数
のうちの1つ又は複数を含む、請求項1に記載のコンピュータ実装方法。
【請求項14】
前記ハンドリングアクションは、
前記トランザクションリクエストをキューイングすること;
前記トランザクションリクエストを処理すること;
前記トランザクションリクエストを拒否すること;
前記トランザクションリクエストを検証すること;及び
前記トランザクションリクエストをルーティングすること
のうちの1つ又は複数を含む、請求項1に記載のコンピュータ実装方法。
【請求項15】
トランザクションサーバによってトランザクションリクエストをハンドリングするコンピュータプログラム製品であって、前記トランザクションリクエストは、トランザクションサーバに対するトランザクションを実行するリクエストを含み、前記コンピュータプログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を備え、前記プログラム命令は、処理ユニットに方法を実行させるために前記処理ユニットによって実行可能であり、前記方法は、
前記トランザクションサーバにおいてトランザクションリクエストを受信することに応答して、トランザクションを実行するために要求されるサーバリソースの履歴レコードを含むトランザクションレコード、及び前記トランザクションリクエストをハンドリングするためのハンドリングアクションを決定するための現サーバ能力メトリックに基づいて前記トランザクションリクエストを解析する手順
を備える、コンピュータプログラム製品。
【請求項16】
前記コンピュータプログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を備え、前記プログラム命令は、処理ユニットに、前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定するときに、以下の段階を実行させるために前記処理ユニットによって実行可能であり、前記段階は、
前記トランザクションリクエストの前記解析に基づいて前記トランザクションリクエストを分類する段階;及び
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階
である、請求項15に記載のコンピュータプログラム製品。
【請求項17】
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階は、
前記トランザクションリクエストがライトウェイトトランザクションとして分類される場合、前記トランザクションリクエストを処理する段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類される;及び
前記トランザクションリクエストがヘビーウェイトトランザクションとして分類される場合、前記トランザクションリクエストをキューイングする段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えている場合、ヘビーウェイトトランザクションとして分類される
を有する、請求項16に記載のコンピュータプログラム製品。
【請求項18】
トランザクションサーバによってトランザクションリクエストをハンドリングする処理システムであって、前記トランザクションリクエストは、前記トランザクションサーバに対するトランザクションを実行するリクエストを含み、前記処理システムは、
前記トランザクションサーバにおいてトランザクションリクエストを受信することに応答して、トランザクションを実行するために要求されるサーバリソースの履歴レコードを含むトランザクションレコード、及び前記トランザクションリクエストをハンドリングするためのハンドリングアクションを決定するための現サーバ能力メトリックに基づいて前記トランザクションリクエストを解析する段階
を実行するように構成されたプロセッサ装置を備える、処理システム。
【請求項19】
前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階は、
前記トランザクションリクエストの前記解析に基づいて前記トランザクションリクエストを分類する段階;及び
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階
を有する、請求項18に記載の処理システム。
【請求項20】
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階は、
前記トランザクションリクエストがライトウェイトトランザクションとして分類される場合、前記トランザクションリクエストを処理する段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類される;及び
前記トランザクションリクエストがヘビーウェイトトランザクションとして分類される場合、前記トランザクションリクエストをキューイングする段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えている場合、ヘビーウェイトトランザクションとして分類される、
を有する、請求項19に記載の処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の技術的特徴は、概して、トランザクションサーバの分野に関し、より具体的には、トランザクションサーバにおけるトランザクションリクエストをハンドリングすることに関する。
【背景技術】
【0002】
トランザクションサーバは、典型的には、サーバと通信する任意の数のクライアントから到来するトランザクションリクエストを受信及び処理するように適応されている。時として、そのようなトランザクション処理サーバは、リソース集約的トランザクション又はヘビーウェイトトランザクションとも称される大ボリュームのヘビーなリソースを消費するトランザクションが同時に実行される場合にサーバリソース制約問題に直面し得る。
【0003】
従来のトランザクションサーバ管理スキームでは、最大閾値は、トランザクションサーバ上で同時に実行することを可能にされるトランザクションの数を制限するように設定され得る。最大閾値に達すると、トランザクションサーバにおいて受信された任意の新たなトランザクションリクエストは、典型的には、既存のトランザクションリクエストが完了するまでキューイングされる。
【0004】
そのようなトランザクションサーバ管理スキームには幾つかの欠点が存在する。例えば、多くの場合、特に最大閾値がユーザによって手動で設定されるときには、適切な最大閾値を選択することは困難である。選択される最大閾値は、ピークワークロードシナリオに基づくワーストケースシナリオ制限であることが多い。さらに、選択される任意の最大閾値制限は、多くの場合、トランザクションサーバにわたって普遍的に適用され、これは、トランザクションサーバの特定の態様に不適切な制限を引き起こし得る。
【0005】
さらに、トランザクションによりサーバが最大閾値を超えることが引き起こされたと決定するためにトランザクションサーバにおいて深刻な問題が多くの場合に生じるはずである。加えて、所与のトランザクションリクエストの性質は、経時的に変化し得、これは、トランザクションサーバによって考慮されないことがある。
【0006】
したがって、トランザクションリクエストをハンドリングする改善されたメカニズムが必要とされている。
【発明の概要】
【0007】
本発明の実施形態は、トランザクションサーバにおいて受信されたトランザクションリクエストのためのハンドリングを提供することができる。また、本発明の実施形態は、トランザクションサーバにおいて受信されたヘビーウェイトトランザクション、すなわちリソース集約的トランザクションのためのリクエストをハンドリングしようとするものである。そのような実施形態は、コンピュータ実装されてよい。すなわち、そのような実施形態は、提案される方法を実行するように構成されたプログラミング命令を有するコンピュータ可読記憶媒体上にコンピュータ実行可能コードが有形に具現化されたコンピュータインフラストラクチャにおいて実装されてよい。本発明の実施形態は、さらに、プロセッサ上で実行されると提案される概念を実装するコンピュータプログラムコードを含むコンピュータプログラム製品を提供しようとするものである。本発明の実施形態は、さらにまた、トランザクションサーバにおいて受信されたトランザクションリクエストをハンドリングするシステムを提供しようとするものである。
【0008】
本発明の一態様によれば、トランザクションサーバにおいて受信されたトランザクションリクエストをハンドリングする方法が提供され、前記トランザクションリクエストは、前記トランザクションサーバに対するトランザクションを実行するリクエストを含む。前記方法は、前記トランザクションサーバにおいてトランザクションリクエストを受信することに応答して、トランザクションを実行するために要求されるサーバリソースの履歴レコードを含むトランザクションレコード、及び前記トランザクションリクエストをハンドリングするためのハンドリングアクションを決定するための現サーバ能力メトリックに基づいて前記トランザクションリクエストを解析する段階を備える。
【0009】
実施形態は、従来の/既存のトランザクションサーバとの組み合わせで採用されてよい。このようにして、実施形態は、レガシーシステムの機能及び能力を改善及び/又は拡張するように、そのレガシーシステムに統合してよい。したがって、改善されたトランザクションサーバは、提案される実施形態によって提供されてよい。
【0010】
本発明の別の実施形態によれば、トランザクションサーバによってトランザクションリクエストをハンドリングするコンピュータプログラム製品が提供され、前記トランザクションリクエストは、トランザクションサーバに対するトランザクションを実行するリクエストを含み、前記コンピュータプログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を備え、前記プログラム命令は、処理ユニットに方法を実行させるために前記処理ユニットによって実行可能であり、前記方法は、前記トランザクションサーバにおいてトランザクションリクエストを受信することに応答して、トランザクションを実行するために要求されるサーバリソースの履歴レコードを含むトランザクションレコード、及び前記トランザクションリクエストをハンドリングするためのハンドリングアクションを決定するための現サーバ能力メトリックに基づいて前記トランザクションリクエストを解析する手順を備える。
【0011】
更に別の態様によれば、1つ又は複数の実施形態に従って少なくとも1つのプロセッサ及びコンピュータプログラム製品を備える処理システムが提供され、前記少なくとも1つのプロセッサが、前記コンピュータプログラム製品の前記コンピュータプログラムコードを実行するように適応される。
【0012】
別の態様によれば、トランザクションサーバによってトランザクションリクエストをハンドリングする処理システムが提供され、前記トランザクションリクエストは、前記トランザクションサーバに対するトランザクションを実行するリクエストを含み、前記システムは、前記トランザクションサーバにおいてトランザクションリクエストを受信することに応答して、トランザクションを実行するために要求されるサーバリソースの履歴レコードを含むトランザクションレコード、及び前記トランザクションリクエストをハンドリングするためのハンドリングアクションを決定するための現サーバ能力メトリックに基づいて前記トランザクションリクエストを解析する段階を実行するように構成されたプロセッサ装置を備える。
【0013】
それゆえ、どのようにトランザクションリクエストがハンドリングされるべきかを決定するためにトランザクションレコード及び現サーバ能力メトリックに対して、トランザクションサーバにおいて受信されたトランザクションリクエストを解析するための提案される概念が存在し得る。例えば、実施形態は、トランザクションリクエストを処理するために要求されるリソースに基づいてどのようにトランザクションリクエストをハンドリングするかを動的に決定する手段を提供してよい。どのように到来するトランザクションリクエストをハンドリングするかを決定するそのような手段を提供することは、所与の時点においてハンドリングすることができるリクエストの数を改善することに役立ち得るとともに、トランザクションサーバがリソース集約的リクエストによって対処不能になることを防止することに役立ち得る。
【図面の簡単な説明】
【0014】
本発明は、本発明の例示的な実施形態の非限定的な例による記載された複数の図面を参照して、以下に続く詳細な説明において説明される。
【0015】
【
図1】本発明の一実施形態に係るクラウドコンピューティングノードを示す図である。
【0016】
【
図2】本発明の実施形態に係るクラウドコンピューティング環境を示す図である。
【0017】
【
図3】本発明の実施形態に係る抽象化モデル層を示す図である。
【0018】
【
図4】本発明の別の実施形態に係るクラウドコンピューティングノードを示す図である。
【0019】
【
図5】一実施形態に係る、トランザクションサーバにおいてトランザクションリクエストをハンドリングする方法の概略表現を示す図である。
【0020】
【
図6】一実施形態に係る、トランザクションレコードを生成する方法を示す図である。
【発明を実施するための形態】
【0021】
上記で説明された図は、概略にすぎず、縮尺どおりに描かれているわけではない。同じ又は同様の部分を示すために、図全体を通して同じ参照符号が使用されることも理解されるべきである。
【0022】
本発明の実施形態が方法を構成する本願のコンテキストでは、方法は、コンピュータによる実行のためのプロセスとすることができ、すなわち、コンピュータ実装可能方法とすることができることが理解されるべきである。したがって、方法の様々な段階は、コンピュータプログラムの様々な部分、例えば、1つ又は複数のアルゴリズムの様々な部分を反映することができる。
【0023】
また、本願のコンテキストでは、(処理)システムは、本発明の方法の1つ又は複数の実施形態を実行するように適応されている単一のデバイス又は分散デバイスの集合とすることができる。例えば、システムは、本発明の方法の少なくとも1つの実施形態を協働して実行するように、ローカルエリアネットワーク、インターネット等のようなネットワークを介して接続されたパーソナルコンピュータ(PC)、サーバ又はPC及び/又はサーバの集合とすることができる。
【0024】
また、本願のコンテキストでは、システムは、本発明の方法の1つ又は複数の実施形態を実行するように適応されている単一のデバイス又は分散デバイスの集合とすることができる。例えば、システムは、本発明の方法の少なくとも1つの実施形態を協働して実行するように、ローカルエリアネットワーク、インターネット等のようなネットワークを介して接続されたパーソナルコンピュータ(PC)、ポータブルコンピューティングデバイス(タブレットコンピュータ、ラップトップ、スマートフォン等のような)、セットトップボックス、サーバ、又はPC及び/又はサーバの集合とすることができる。
【0025】
本発明の実施形態の技術的特徴は、概して、トランザクションリクエスト管理に関し、より具体的には、トランザクションレコード及び現サーバ能力メトリックに基づいてトランザクションサーバにおいて受信されたトランザクションリクエストをハンドリングすることに関することができる。より具体的には、本発明の実施形態は、トランザクションサーバにおいて受信されたトランザクションリクエストをハンドリングするための概念を提供することができ、トランザクションリクエストは、トランザクションサーバに対するトランザクションを実行するリクエストを含むことができるが、これに限定されるものではない。トランザクションサーバにおいてトランザクションリクエストを受信することに応答して、トランザクションリクエストは、限定されるものではないがトランザクションを実行するために要求されるサーバリソースの履歴レコードを含むことができるトランザクションレコード、及びトランザクションリクエストをハンドリングするためのハンドリングアクションを決定するための現サーバ能力メトリックに基づいて解析することができる。
【0026】
本発明の実施形態は、所与のトランザクションを処理するために要求されるサーバリソースの履歴レコード及びサーバの現在の処理能力に基づいて、到来するトランザクションリクエストが即座に処理されるべきであるか、又はサーバによってキューイングされるべきであるかを動的に決定する能力を提供することができる。このようにして、トランザクションサーバは、現在のサーバ能力及びリクエストの処理要件に基づいて、到来するトランザクションリクエストに動的に適応させることができる。
【0027】
一実施形態では、方法は、トランザクションサーバによって処理される複数のトランザクションをモニタリングすること、及びモニタリングされた複数のトランザクションを処理するために要求されるサーバリソースに基づいてトランザクションレコードを生成することを含むことができるが、これらに限定されるものではない。このようにして、トランザクションサーバは、トランザクションレコードを生成し、トランザクションサーバの個々の実装に従って経時的に更新することができ、それによって、トランザクションレコードの関連性が改善される。
【0028】
更なる実施形態では、トランザクションレコードは、1つ又は複数のトランザクション分類を含むことができるが、これに限定されるものではない。このようにして、トランザクションレコードは、到来するトランザクションリクエストに対する比較のために1つ又は複数の所定のトランザクション分類を含むことができ、それによって、比較の効率が改善される。
【0029】
更なる実施形態では、トランザクションレコードを生成することは、1つ又は複数のトランザクション分類に従って複数のトランザクションの各々を分類することを含むことができるが、これに限定されるものではなく、1つ又は複数のトランザクション分類は、ヘビーウェイトトランザクション及びライトウェイトトランザクションを含む。
【0030】
更なる実施形態では、トランザクションは、トランザクションを処理するために要求されるサーバリソースがリソース閾値を超える場合、ヘビーウェイトトランザクションとして分類することができる。このようにして、トランザクションは、それがリソース集約的である場合、ヘビーウェイトトランザクションとして分類することができる。リソース閾値は、ユーザによって手動で設定されてよい。
【0031】
一実施形態では、トランザクションは、トランザクションを処理するために要求されるサーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類することができる。このようにして、トランザクションは、それがリソース集約的ではない場合、ライトウェイトトランザクションとして分類することができる。リソース閾値は、ユーザによって手動で設定することができる。
【0032】
一実施形態では、トランザクションリクエストをハンドリングするためのハンドリングアクションを決定することは、トランザクションリクエストの解析に基づいてトランザクションリクエストを分類すること、及びトランザクションリクエストの分類に基づいてトランザクションリクエストをハンドリングするためのハンドリングアクションを決定することを含むことができるが、これらに限定されるものではない。このようにして、到来するトランザクションリクエストに対するトランザクションサーバの動的適応は、トランザクションを処理するために要求されるサーバリソースの履歴レコードに基づいてトランザクションの分類に従って実行することができる。それゆえ、トランザクションリクエストをキューイングするか又は処理するかを決定することの正確性を改善し、トランザクションサーバの実装に合わせて調整することができる。
【0033】
更なる実施形態では、トランザクションリクエストの分類に基づいてトランザクションリクエストをハンドリングするためのハンドリングアクションを決定することは、トランザクションリクエストがライトウェイトトランザクションとして分類される場合、トランザクションリクエストを処理する段階、ここで、トランザクションは、トランザクションを処理するために要求されるサーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類される;及びトランザクションリクエストがヘビーウェイトトランザクションとして分類される場合、トランザクションリクエストをキューイングする段階、ここで、トランザクションは、トランザクションを処理するために要求されるサーバリソースがリソース閾値を超えている場合、ヘビーウェイトトランザクションとして分類される、を含むことができるが、これらに限定されるものではない。このようにして、ヘビーウェイトトランザクションは、現在のサーバ能力がリクエストを処理するために十分ではない場合にはキューイングされてよいが、ライトウェイトトランザクションは、中断を伴わずに処理を継続してよい。
【0034】
更なる実施形態では、方法は、トランザクションサーバのサーバリソースをモニタリングすること、モニタリングされるサーバリソースに基づいてトランザクションサーバによってヘビーウェイトトランザクションを処理することができるときを決定すること、及び決定に基づいて、キューイングされたトランザクションリクエストを処理することを更に含むことができるが、これらに限定されるものではない。このようにして、キューイングされたヘビーウェイトトランザクションは、サーバがそれを行うための能力を所持する場合に処理することができる。
【0035】
一実施形態では、方法は、トランザクションサーバのサーバリソースをモニタリングすること、モニタリングされるサーバリソースに基づいてトランザクションサーバによってヘビーウェイトトランザクションをライトウェイトトランザクションと同時に処理することができるか否かを決定すること、及び決定に基づいて、ライトウェイトトランザクションと同時にヘビーウェイトトランザクションを処理することを更に含むことができるが、これらに限定されるものではない。
【0036】
複数のトランザクションリクエストをトランザクションサーバにおいて受信することができる一実施形態では、複数のトランザクションリクエストは、1つ又は複数のヘビーウェイトトランザクション及び1つ又は複数のライトウェイトトランザクションを含むことができるが、これらに限定されるものではなく、方法は、トランザクションサーバのサーバリソースをモニタリングすること、モニタリングされるサーバリソースに基づいてトランザクションサーバによって1つ又は複数のヘビーウェイトトランザクションを1つ又は複数のライトウェイトトランザクションと同時に処理することができるか否かを決定すること、及び決定に基づいて、1つ又は複数のライトウェイトトランザクションと同時に1つ又は複数のヘビーウェイトトランザクションを処理することを更に含むことができるが、これらに限定されるものではない。
【0037】
一実施形態では、サーバリソースは、1つ又は複数のメモリ使用メトリック、ピークメモリ使用メトリック、トラステッドコンピューティングベース使用メトリック、処理時間、及びプロセッサ使用メトリックを含むことができるが、これらに限定されるものではない。
【0038】
一実施形態では、現サーバ能力メトリックは、現在処理されている1つ又は複数の現在のトランザクション、メモリ使用メトリック、プロセッサ使用メトリック、及びキュー内の1つ又は複数のトランザクションリクエストを含むことができるが、これらに限定されるものではない。
【0039】
一実施形態では、ハンドリングアクションは、1つ又は複数のトランザクションリクエストをキューイングすること、トランザクションリクエストを処理すること、トランザクションリクエストを拒否すること、トランザクションリクエストを検証すること、及びトランザクションリクエストをルーティングすることを含むことができるが、これらに限定されるものではない。
【0040】
本発明の実施形態は、トランザクションサーバによってトランザクションリクエストをハンドリングするコンピュータプログラム製品のための概念を更に提供することができ、トランザクションリクエストは、トランザクションサーバに対するトランザクションを実行するリクエストを含み、コンピュータプログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を備え、プログラム命令は、処理ユニットに方法を実行させるために処理ユニットによって実行可能であり、方法は、トランザクションサーバにおいてトランザクションリクエストを受信することに応答して、トランザクションを実行するために要求されるサーバリソースの履歴レコードを含むトランザクションレコード、及びトランザクションリクエストをハンドリングするためのハンドリングアクションを決定するための現サーバ能力メトリックに基づいてトランザクションリクエストを解析することを含むことができるが、これらに限定されるものではない。
【0041】
一実施形態では、コンピュータプログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含むことができるが、これに限定されるものではなく、プログラム命令は、処理ユニットに、トランザクションリクエストをハンドリングするためのハンドリングアクションを決定するときに、以下の段階を実行させるために処理ユニットによって実行可能であり、段階は、トランザクションリクエストの解析に基づいてトランザクションリクエストを分類すること、及びトランザクションリクエストの分類に基づいてトランザクションリクエストをハンドリングするためのハンドリングアクションを決定することである。
【0042】
本発明の実施形態は、限定されるものではないが、上記で説明された少なくとも1つのプロセッサ及びコンピュータプログラム製品を含む処理システムのための概念を更に提供することができ、少なくとも1つのプロセッサが、当該コンピュータプログラム製品のコンピュータプログラムコードを実行するように適応される。
【0043】
本発明の実施形態は、トランザクションサーバによってトランザクションリクエストをハンドリングするシステムのための概念を更に提供することができ、トランザクションリクエストは、トランザクションサーバに対するトランザクションを実行するリクエストを含むことができるが、これに限定されるものではなく、システムは、トランザクションサーバにおいてトランザクションリクエストを受信することに応答して、トランザクションを実行するために要求されるサーバリソースの履歴レコードを含むトランザクションレコード、及びトランザクションリクエストをハンドリングするためのハンドリングアクションを決定するための現サーバ能力メトリックに基づいてトランザクションリクエストを解析する段階を実行するように構成されたプロセッサ装置を含むことができるが、これに限定されるものではない。
【0044】
一実施形態では、トランザクションリクエストをハンドリングするためのハンドリングアクションを決定することは、トランザクションリクエストの解析に基づいてトランザクションリクエストを分類すること、及びトランザクションリクエストの分類に基づいてトランザクションリクエストをハンドリングするためのハンドリングアクションを決定することを含むことができるが、これらに限定されるものではない。
【0045】
一実施形態では、トランザクションリクエストの分類に基づいてトランザクションリクエストをハンドリングするためのハンドリングアクションを決定することは、トランザクションリクエストがライトウェイトトランザクションとして分類される場合、トランザクションリクエストを処理する段階、ここで、トランザクションは、トランザクションを処理するために要求されるサーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類される;及びトランザクションリクエストがヘビーウェイトトランザクションとして分類される場合、トランザクションリクエストをキューイングする段階、ここで、トランザクションは、トランザクションを処理するために要求されるサーバリソースがリソース閾値を超えている場合、ヘビーウェイトトランザクションとして分類される、を含むことができるが、これらに限定されるものではない。
【0046】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書において記載される技法の実装はクラウドコンピューティング環境に限定されるものではないことが事前に理解される。むしろ、本発明の実施形態は、現在既知の、又は、今後開発される他の任意のタイプのコンピューティング環境と組み合わせて実装されることが可能である。
【0047】
クラウドコンピューティングは、最小の管理労力又はサービスプロバイダとのインタラクションで迅速にプロビジョニング及びリリースすることができる構成可能コンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、及びサービス)の共有プールへの簡便なオンデマンドネットワークアクセスを可能にするためのサービス提供のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、及び少なくとも4つの展開モデルを含み得る。
【0048】
特性は、以下のとおりである。
オンデマンドセルフサービス:クラウド消費者は、サービスプロバイダとの人的対話を必要とすることなく、必要に応じて自動的に、サーバ時間及びネットワークストレージ等のコンピューティング能力を一方的にプロビジョニングすることができる。
幅広いネットワークアクセス:この能力は、ネットワークを介して利用可能であり、異種のシン又はシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、及びPDA(登録商標))による使用を促す標準メカニズムを通してアクセスされる。
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者に役立つようプールされ、異なる物理リソース及び仮想リソースが、需要に従って動的に割り当て及び再割り当てされる。消費者は概して提供されたリソースの正確なロケーションに対して制御又は知識を有していないが、より高いレベルの抽象化(例えば、国、州、又はデータセンタ)においてロケーションを指定することが可能である場合があるという点で、ロケーションの独立性がある。
迅速な弾力性:この能力は、迅速かつ弾力的に、幾つかのケースでは自動的にプロビジョニングして、早急にスケールアウトし、かつ迅速にリリースして早急にスケールインすることができる。消費者にとって、多くの場合、プロビジョニングに利用可能な能力は無制限に見え、任意の時点において任意の量で購入することができる。
測定されるサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅及びアクティブユーザアカウント)に適切な或るレベルの抽象化における計測能力を活用することによって、自動的にリソース使用を制御及び最適化する。リソース使用量をモニタリング、制御及び報告することができ、それにより、利用されるサービスのプロバイダ及び消費者の両方に透明性が提供される。
【0049】
サービスモデルは、以下のとおりである。
ソフトウェアアズアサービス(SaaS):消費者に提供される能力は、クラウドインフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベース電子メール)等のシンクライアントインターフェースを通して様々なクライアントデバイスからアクセス可能である。消費者は、考えられる例外としての限定されたユーザ固有のアプリケーション構成設定を除き、ネットワーク、サーバ、オペレーティングシステム、ストレージ又は更には個々のアプリケーション能力を含む、基礎をなすクラウドインフラストラクチャを管理又は制御しない。
プラットフォームアズアサービス(PaaS):消費者に提供される能力は、クラウドインフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語及びツールを使用して作成される、消費者が作成又は取得したアプリケーションを展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含む、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、展開されたアプリケーション、及び場合によってはアプリケーションホスティング環境構成を制御する。
インフラストラクチャアズアサービス(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク及び他の基本的なコンピューティングリソースをプロビジョニングすることであり、ここで消費者は、オペレーティングシステム及びアプリケーションを含むことができる任意のソフトウェアを展開及び実行することが可能である。消費者は、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御するとともに、場合によっては選択されたネットワーキングコンポーネント(例えば、ホストファイアウォール)を限定的に制御する。
【0050】
展開モデルは、以下のとおりである。
プライベートクラウド:このクラウドインフラストラクチャは、或る組織のためにのみ動作する。それは、組織又はサードパーティによって管理されてよく、オンプレミス又はオフプレミスで存在してよい。
コミュニティクラウド:このクラウドインフラストラクチャは、幾つかの組織によって共有され、共有される関心事項(例えば、ミッション、セキュリティ要件、ポリシ及びコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。それは、それらの組織又はサードパーティによって管理されてよく、オンプレミス又はオフプレミスで存在してよい。
パブリッククラウド:このクラウドインフラストラクチャは、一般大衆又は大規模な業界団体に利用可能とされ、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ又はそれより多くのクラウド(プライベート、コミュニティ、又はパブリック)の複合体であり、2つ又はそれより多くのクラウドは、独自のエンティティのままであるが、データ及びアプリケーションのポータビリティ(例えば、クラウド間の負荷バランシングのためのクラウドバースト)を可能にする標準技術又は独自技術によってともに結合される。
【0051】
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性、およびセマンティック相互運用性に重点を当てたサービス指向である。クラウドコンピューティングの中核には、相互接続されたノードからなるネットワークを含むインフラストラクチャが存在する。
【0052】
ここで
図1を参照すると、クラウドコンピューティングノードの一例の概略図が示されている。クラウドコンピューティングノード10は、適したクラウドコンピューティングノードの単に1つの例であり、本明細書において説明される本発明の実施形態の使用又は機能の範囲についていかなる限定も示唆することは意図されていない。それにもかかわらず、クラウドコンピューティングノード10は、上記で記載された機能のうちのいずれかの実装及び/又は実行が可能である。
【0053】
クラウドコンピューティングノード10において、コンピュータシステム/サーバ12が存在し、これは、数多くの他の汎用又は専用コンピューティングシステム環境又は構成とともに動作する。コンピュータシステム/サーバ12との使用に適し得る周知のコンピューティングシステム、環境及び/又は構成の例としては、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラマブル家電製品、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、及び上記のシステム又はデバイスのうちの任意のものを含む分散クラウドコンピューティング環境等が挙げられるが、これらに限定されるものではない。
【0054】
コンピュータシステム/サーバ12は、コンピュータシステムによって実行される、プログラムモジュール等のコンピュータシステム実行可能命令の一般的文脈において説明され得る。概して、プログラムモジュールは、タスクを実行するか又は抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造等を含んでよい。コンピュータシステム/サーバ12は、通信ネットワークを通してリンクされるリモート処理デバイスによってタスクが実行される分散クラウドコンピューティング環境において実施されてよい。分散クラウドコンピューティング環境では、メモリ記憶デバイスを含むローカル及びリモートコンピュータシステム記憶媒体の両方にプログラムモジュールが位置してよい。
【0055】
図1において示されているように、クラウドコンピューティングノード10におけるコンピュータシステム/サーバ12は、汎用コンピューティングデバイスの形態で示されている。コンピュータシステム/サーバ12のコンポーネントは、1つ又は複数のプロセッサ又は処理ユニット16、システムメモリ28、及びシステムメモリ28を含む様々なシステムコンポーネントを処理ユニット16に結合するバス18を含んでよいが、これらに限定されるものではない。
【0056】
バス18は、メモリバス又はメモリコントローラ、ペリフェラルバス、アクセラレーテッドグラフィックスポート、及び多様なバスアーキテクチャのうちの任意のものを使用するプロセッサ又はローカルバスを含む、幾つかのタイプのバス構造のうちの任意のものうちの1つ又は複数を表す。限定ではなく例示として、そのようなアーキテクチャは、産業標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、エンハンスドISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、及びペリフェラルコンポーネントインターコネクト(PCI)バスを含む。
【0057】
コンピュータシステム/サーバ12は、典型的には、多様なコンピュータシステム可読媒体を含む。そのような媒体は、コンピュータシステム/サーバ12によってアクセス可能である任意の利用可能な媒体であってよく、それは、揮発性及び不揮発性媒体、取り外し可能及び取り外し不能媒体の両方を含む。
【0058】
システムメモリ28は、ランダムアクセスメモリ(RAM)30及び/又はキャッシュメモリ32等の揮発性メモリの形態のコンピュータシステム可読媒体を含むことができる。コンピュータシステム/サーバ12は、他の取り外し可能/取り外し不能、揮発性/不揮発性コンピュータシステム記憶媒体を更に含んでよい。単なる例示として、記憶システム34は、(図示されておらず、典型的には「ハードドライブ」と呼ばれる)取り外し不能不揮発性磁気媒体に対して読み出し及び書き込みを行うために提供することができる。示されていないが、取り外し可能不揮発性磁気ディスク(例えば、「フロッピディスク」)に対して読み出し及び書き込みを行うための磁気ディスクドライブ、及びCD-ROM、DVD-ROM又は他の光学媒体等の取り外し可能不揮発性光ディスクに対して読み出し及び書き込みを行うための光学ディスクドライブを提供することができる。そのような事例では、各々を1つ又は複数のデータ媒体インターフェースによってバス18に接続することができる。以下で更に図示及び説明されるように、メモリ28は、本発明の実施形態の機能を実行するように構成されているプログラムモジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含んでよい。
【0059】
プログラムモジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40は、限定ではなく例示として、メモリ28に記憶されてよく、また、オペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータも同様である。オペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータの各々、又はこれらの何らかの組み合わせは、ネットワーキング環境の実装を含んでよい。
【0060】
プログラムモジュール42は、概して、本明細書において説明されるような本発明の実施形態の機能及び/又は方法論を実行する。例えば、DHCPクライアントの機能の幾つか又は全てを、プログラムモジュール42のうちの1つ又は複数として実装することができる。加えて、DHCPクライアントは、本明細書において説明される機能を提供するために別個の専用プロセッサ又は単一又は幾つかのプロセッサとして実装されてよい。実施形態において、DHCPクライアントは、本明細書において説明されるプロセスのうちの1つ又は複数を実行する。
【0061】
コンピュータシステム/サーバ12は、キーボード、ポインティングデバイス、ディスプレイ24等のような1つ又は複数の外部デバイス14;ユーザがコンピュータシステム/サーバ12とインタラクトすることを可能にする1つ又は複数のデバイス;及び/又はコンピュータシステム/サーバ12が1つ又は複数の他のコンピューティングデバイスと通信することを可能にする任意のデバイス(例えば、ネットワークカード、モデム等)と通信してもよい。そのような通信は、I/Oインターフェース22を介して行うことができる。なおもさらに、コンピュータシステム/サーバ12は、ネットワークアダプタ20を介して、ローカルエリアネットワーク(LAN)、一般的なワイドエリアネットワーク(WAN)、及び/又はパブリックネットワーク(例えば、インターネット)等の1つ又は複数のネットワークと通信することができる。図示されているように、ネットワークアダプタ20は、バス18を介して、コンピュータシステム/サーバ12の他のコンポーネントと通信する。示されていないが、他のハードウェア及び/又はソフトウェアコンポーネントは、コンピュータシステム/サーバ12と組み合わせて使用され得ることが理解されるべきである。例としては:マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAID(安価なディスクの冗長アレイ又は独立ディスクの冗長アレイ)システム、テープドライブ、及びデータアーカイブ記憶システム等が挙げられるが、これらに限定されるものではない。
【0062】
ここで
図2を参照すると、例示的なクラウドコンピューティング環境50が示されている。示されているように、クラウドコンピューティング環境50は、例えば、携帯情報端末(PDA)又は携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、及び/又は自動車コンピュータシステム54N等の、クラウド消費者によって使用されるローカルコンピューティングデバイスが通信し得る、1つ又は複数のクラウドコンピューティングノード10を備える。ノード10は、互いに通信してよい。それらは、本明細書の上記で説明されたようなプライベート、コミュニティ、パブリック、又はハイブリッドクラウド、又はこれらの組み合わせ等の、1つ又は複数のネットワーク内で物理的に又は仮想的にグループ化されてよい(図示せず)。これにより、クラウドコンピューティング環境50は、インフラストラクチャ、プラットフォーム及び/又はソフトウェアを、クラウド消費者がそのためにローカルコンピューティングデバイス上にリソースを維持する必要がないサービスとして提供することが可能になる。
図2において示されているコンピューティングデバイス54A~Nのタイプは、単に例示を意図し、コンピューティングノード10及びクラウドコンピューティング環境50は、任意のタイプのネットワーク及び/又はネットワークアドレス指定可能接続を介して(例えば、ウェブブラウザを使用して)、任意のタイプのコンピュータ化デバイスと通信することができることが理解される。
【0063】
ここで
図3を参照すると、クラウドコンピューティング環境50(
図2)によって提供される機能抽象化層のセットが示されている。
図3において示されているコンポーネント、層、及び機能は、単に例示を意図するものであり、本発明の実施形態はこれらに限定されるものではないことが事前に理解されるべきである。図示されているように、以下の層及び対応する機能が提供される。
【0064】
ハードウェア及びソフトウェア層60は、ハードウェア及びソフトウェアコンポーネントを備える。ハードウェアコンポーネントの例としては、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースサーバ62、サーバ63、ブレードサーバ64、ストレージデバイス65、及びネットワーク及びネットワーキングコンポーネント66が挙げられる。幾つかの実施形態では、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67及びデータベースソフトウェア68を含む。
【0065】
仮想化層70は、仮想エンティティの次の例:仮想サーバ71;仮想ストレージ72;仮想プライベートネットワークを含む仮想ネットワーク73;仮想アプリケーション及びオペレーティングシステム74;及び仮想クライアント75が提供され得る抽象化層を提供する。
【0066】
1つの例では、管理層80は、以下で説明される機能を提供してよい。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソース及び他のリソースの動的な調達を提供する。計測及び価格設定82は、リソースがクラウドコンピューティング環境内で利用されるときのコスト追跡、及びこれらのリソースの消費に対する請求又はインボイス作成を提供する。1つの例では、これらのリソースは、アプリケーションソフトウェアライセンスを含んでよい。セキュリティは、クラウド消費者及びタスクに対するアイデンティティ検証、並びに、データ及び他のリソースに対する保護を提供する。ユーザポータル83は、消費者及びシステムアドミニストレータに対してクラウドコンピューティング環境へのアクセスを提供する。サービス水準管理84は、要求されるサービス水準が満たされるように、クラウドコンピューティングリソース割り当て及び管理を提供する。サービス水準合意(SLA)計画及び履行85は、将来の要件がSLAに従って予期されるクラウドコンピューティングリソースの事前の取り決め及び調達を提供する。
【0067】
ワークロード層90は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロード及び機能の例としては、マッピング及びナビゲーション91;ソフトウェア開発及びライフサイクル管理92;仮想クラスルーム教育配信93;データ解析処理94;トランザクション処理95;及び本明細書において説明されるトランザクションハンドリングプロセス96が挙げられる。本発明の態様によれば、トランザクションハンドリングプロセス96ワークロード/機能は、本明細書において説明されるプロセスのうちの1つ又は複数を実行するように動作する。
【0068】
図4は、本発明の別の実施形態に係るクラウドコンピューティングノードを示している。特に、
図4は、
図1と同じクラウドコンピューティングノード10を備える別のクラウドコンピューティングノードである。
図4では、また、コンピュータシステム/サーバ12は、トランザクションクライアント170、及びトランザクションサーバ160を備えるか、又はこれらと通信する。
【0069】
本発明の態様によれば、トランザクションクライアント170は、別個の又は組み合わされたモジュールとしてメモリに記憶されたプログラムモジュール42において1つ又は複数のプログラムコードとして実装することができる。加えて、トランザクションクライアント170は、これらのツールの機能を提供するために別個の専用プロセッサ又は単一又は幾つかのプロセッサとして実装することができる。コンピュータプログラムコードを実行している間、処理ユニット16は、メモリ、記憶システム、及び/又はI/Oインターフェース22に対してデータを読み出し及び/又は書き込みすることができる。プログラムコードは、本発明の実施形態のプロセスを実行することができる。
【0070】
例示として、トランザクションクライアント170は、クラウドコンピューティング環境50を介してトランザクションサーバ160と通信するように構成することができる。
図2を参照して論述されるように、例えば、クラウドコンピューティング環境50は、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/又はワイヤレスネットワークとすることができる。提案されるトランザクションメカニズムの実施形態では、トランザクションサーバ160は、トランザクションクライアント170にデータをプロビジョニングすることができる。当業者であれば、トランザクションクライアント170及びトランザクションサーバ160は直接通信することができることを理解するであろう。代替的には、クラウドコンピューティング環境50を介してトランザクションクライアント170及びトランザクションサーバ160の間でメッセージを中継するための仲介として中継エージェントを使用することができる。
【0071】
本発明は、システム、方法、及び/又はコンピュータプログラム製品とすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(又は複数の媒体)を含むことができる。
【0072】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持及び記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、又は前述したものの任意の適した組み合わせとすることができるが、これらに限定されるものではない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、次のもの:ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピディスク、機械的にエンコードされたデバイス、例えば、パンチカード又は命令を記録した溝内の隆起構造、及び前述したものの任意の適した組み合わせを含む。コンピュータ可読記憶媒体は、本明細書において使用される場合、無線波又は他の自由に伝播する電磁波、導波路又は他の送信媒体を通して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤを通して送信される電気信号等の一時的な信号それ自体とは解釈されるべきではない。
【0073】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれのコンピューティング/処理デバイスに、又は、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はワイヤレスネットワークを介して、外部コンピュータ又は外部記憶デバイスに、ダウンロードすることができる。ネットワークは、銅送信ケーブル、光送信ファイバ、ワイヤレス送信、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含んでよい。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
【0074】
本発明の動作を実行するコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は1つ又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかとすることができ、当該1つ又は複数のプログラミング言語は、Smalltalk(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む。コンピュータ可読プログラム命令は、スタンドアロンソフトウェアパッケージとして、完全にユーザのコンピュータ上で実行されてもよいし、部分的にユーザのコンピュータ上で実行されてもよいし、部分的にユーザのコンピュータ上で、かつ部分的にリモートコンピュータ上で実行されてもよいし、又は、完全にリモートコンピュータ又はサーバ上で実行されてもよい。後者のシナリオでは、リモートコンピュータが、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよいし、又はその接続が、(例えば、インターネットサービスプロバイダを使用するインターネットを介して)外部コンピュータに対して行われてもよい。幾つかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズしてよい。
【0075】
本発明の態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して説明されている。フローチャート図及び/又はブロック図の各ブロック、及びフローチャート図及び/又はブロック図におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装することができることが理解されるであろう。
【0076】
これらのコンピュータ可読プログラム命令を汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供して機械を生成することができ、それにより、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図の単数又は複数のブロックで指定された機能/動作を実装する手段を作成するようになる。また、これらのコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体に記憶されてよく、当該命令は、コンピュータ、プログラマブルデータ処理装置、及び/又は他のデバイスに対し、特定の方法で機能するように命令することができ、それにより、命令を記憶したコンピュータ可読記憶媒体は、フローチャート及び/又はブロック図の単数又は複数のブロックで指定された機能/動作の態様を実装する命令を含む製品を含むようになる。
【0077】
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスにロードして、一連の動作段階をコンピュータ、他のプログラマブル装置、又は他のデバイス上で実行させ、コンピュータ実装プロセスを生成することができ、それにより、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行される命令は、フローチャート及び/又はブロック図の単数又は複数のブロックで指定された機能/動作を実装するようになる。
【0078】
図におけるフローチャート及びブロック図は、本発明の様々な実施形態に係るシステム、方法、及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、及び動作を示す。これに関して、フローチャート又はブロック図における各ブロックは、指定される論理機能を実装する1つ又は複数の実行可能命令を含む命令のモジュール、セグメント、又は部分を表し得る。幾つかの代替的な実装では、ブロックに記載される機能が、図に記載される順序とは異なる順序で行われ得る。例えば、連続して示されている2つのブロックは、実際には、実質的に同時に実行されてもよいし、又はブロックは、関与する機能に依存して逆の順序で実行される場合もあり得る。
【0079】
図5は、一実施形態に係る、トランザクションサーバにおいて受信されたトランザクションリクエストをハンドリングする一例を示している。
図5の例示の実施形態は、例えば、
図1及び
図4の実施形態において実装することができる。上述されたように、フローチャートは、本発明の様々な実施形態に係る本明細書において既に説明されたようなシステム、方法、及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、及び動作を示す。図におけるフローチャート及びブロック図は、本発明の様々な実施形態に係るシステム、方法、及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、及び動作を示す。これに関して、フローチャート又はブロック図における各ブロックは、指定される論理機能を実装する1つ又は複数の実行可能命令を含む命令のモジュール、セグメント、又は部分を表すことができる。幾つかの代替的な実装では、ブロックに記載される機能が、図に記載される順序とは異なる順序で行われ得ることにも留意されたい。例えば、連続して示されている2つのブロックは、実際には、実質的に同時に実行されてもよいし、又はブロックは、関与する機能に依存して逆の順序で実行される場合もあり得る。ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図におけるブロックの組み合わせは、指定される機能又は動作を実行するか、又は専用ハードウェア及びコンピュータ命令の組み合わせを実行する専用ハードウェアベースシステムによって実装することができることにも留意されたい。
【0080】
図5を参照すると、トランザクションサーバ220において受信されたトランザクションリクエスト210をハンドリングするコンピュータ実装方法200の概略表現が示されている。トランザクションリクエストは、トランザクションサーバに対するトランザクションを実行するリクエストを含む。トランザクションリクエストは、トランザクションサーバによって実施又は実行される任意のタイプのトランザクションのためのリクエストであってよい。例えば、トランザクションリクエストは、共有データベースからの読み出し又は書き込みを含んでよい。代替的には、トランザクションリクエストは、トランザクションサーバ上で実行される自己充足プログラム、又は様々な機能を実行するように他のプログラムを呼び出すことに進むプログラムを呼び出すことであってよい。
【0081】
トランザクションサーバ220においてトランザクションリクエスト210を受信することに応答して、トランザクションリクエストは、トランザクションレコード240及び現サーバ能力メトリック250に基づいて解析される(230)。トランザクションレコードは、トランザクションを実行するために要求されるサーバリソースの履歴レコードを含む。
【0082】
サーバリソースは、1つ又は複数のメモリ使用メトリック、例えば、トランザクションを処理するために要求されるサーバのメモリ割り当ての割合、ピークメモリ使用メトリック、例えば、処理アクション全体にわたってトランザクションを処理するために要求されるメモリの最大量;トラステッドコンピューティングベース使用メトリック、処理時間、すなわち、所与のトランザクションを処理するために要する時間、及びプロセッサ使用メトリック、例えば、トランザクションを処理するために要求されるサーバのプロセッサ割り当ての割合を含むことができるが、これらに限定されるものではない。
【0083】
それに応じて、トランザクションレコードは、履歴レコードのセット、すなわち、トランザクションIDごとに1つのレコードであってよく、ここで、各レコードは、所与のトランザクションの典型的なサーバリソース消費を表すことができる。各レコードは、ピーク仮想ストレージ使用、総CPU使用、トランザクションの持続時間、TCB使用等のようなクリティカルリソースフットプリントのためにエントリを含むことができる。トランザクションレコードは、リソース消費の移動平均とすることができ、これは、各トランザクションが実行されるにつれて更新される。それゆえ、所与のトランザクションタイプの挙動が、例えばクライアントがトランザクションリクエストを生成することの機能的変化に起因して、変更される場合、これらの変更は、最終的には、トランザクションレコードにおいて反映されることになる。
【0084】
現サーバ能力メトリックは、現在処理されている現在のトランザクションの数;メモリ使用メトリック;プロセッサ使用メトリック;及びキュー内のトランザクションリクエストの数のうちの1つ又は複数を含むことができるが、これらに限定されるものではない。例えば、多数のトランザクションが所与の時点において現在処理されている場合、現サーバ能力メトリックは減少し得、一方、少数のトランザクションが所与の時点において現在処理されている場合、現サーバ能力メトリックは増加し得る。更なる例では、サーバメモリの大きい割合が現在使用されている場合、現サーバ能力メトリックは減少し得、一方、サーバメモリの小さい割合が現在使用されている場合、現サーバ能力メトリックは増加し得る。更なる例では、サーバの処理能力の大きい割合が現在使用されている場合、現サーバ能力メトリックは減少し得、一方、サーバの処理能力の小さい割合が現在使用されている場合、現サーバ能力メトリックは増加し得る。更なる例では、多数のトランザクションが現在キュー内にある場合、現サーバ能力メトリックは減少し得、一方、少数のトランザクションがキュー内にある場合、現サーバ能力メトリックは増加し得る。
【0085】
次に、トランザクションリクエストをハンドリングするためのハンドリングアクションを決定することができる(260)。ハンドリングアクションは、トランザクションリクエストをキューイングすること、トランザクションリクエストを処理すること、トランザクションリクエストを拒否すること、トランザクションリクエストを検証すること、及びトランザクションリクエストをルーティングすることのうちの1つ又は複数を含むことができる。ハンドリングアクションの例、及びトランザクションサーバにおいて受信されたトランザクションリクエストをハンドリングするために所与のハンドリングアクションを選択することができる場合の例が、以下で更に詳述される。
【0086】
トランザクションリクエスト210をハンドリングするためのハンドリングアクションを決定すること260は、トランザクションリクエストの解析に基づいてトランザクションリクエストを分類すること、及びトランザクションリクエストの分類に基づいてトランザクションリクエストをハンドリングするためのハンドリングアクションを決定することを含むことができるが、これらに限定されるものではない。
【0087】
特に、トランザクションリクエスト210は、ヘビーウェイトトランザクション又はライトウェイトトランザクションとして分類することができる。トランザクションリクエストは、トランザクションを処理するために要求されるサーバリソースがリソース閾値を超える場合、ヘビーウェイトトランザクションとして分類することができる。トランザクションは、トランザクションを処理するために要求されるサーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類することができる。トランザクションレコード240は、トランザクションを処理するために要求されるサーバリソースに従ってライトウェイトトランザクション又はヘビーウェイトトランザクションとして分類された以前に実行されたトランザクションの履歴レコードを含むことができるが、これに限定されるものではない。次に、到来するトランザクションリクエストを、そのトランザクションがトランザクションレコードにおける分類されたトランザクションのうちの1つに一致すると決定された場合、ヘビーウェイトトランザクション又はライトウェイトトランザクションとして分類することができる。
【0088】
トランザクションレコード240は、トランザクションサーバがトランザクションリクエストを処理するにつれて経時的に生成することができる。例えば、トランザクションレコードは、トランザクションサーバによって処理される複数のトランザクションをモニタリングすること、及びモニタリングされた複数のトランザクションを処理するために要求されるサーバリソースに基づいてトランザクションレコードを生成することによって、生成することができる。換言すれば、トランザクションサーバは、サーバによって実行されたトランザクションのレコードを生成し、当該トランザクションを実行するために要求されたサーバリソースに基づいてそれらのトランザクションをヘビーウェイトトランザクション又はライトウェイトトランザクションとして分類するために、トランザクションが実行されるにつれてそれらを、及び当該トランザクションを実行するために要求されるサーバリソースをモニタリングするように適応することができる。
【0089】
図6は、トランザクションレコードを生成するコンピュータ実装方法300を示しており、これは、トランザクションを実行するために要求されるトランザクションサーバのサーバリソースの履歴レコードを含む。
【0090】
方法は、トランザクションサーバによって、処理又は実行されているトランザクションをモニタリングすることによる段階310、及びトランザクションを実行するために要求されるサーバリソースの測定値を取得する段階320から開始することができる。
【0091】
次に、トランザクションを実行するために要求されるサーバリソースの測定値は、段階330においてリソース閾値と比較することができる。リソース閾値は、トランザクションサーバのアプリケーションに従う任意の適した閾値とすることができ、リソース閾値は、ユーザによって手動で定義することができる。
【0092】
トランザクションを実行するために要求されるサーバリソースがリソース閾値を超える場合、トランザクションは、ヘビーウェイトトランザクションとして分類することができ(340)、トランザクションを実行するために要求されるサーバリソースがリソース閾値を超えていない場合、トランザクションは、ライトウェイトトランザクションとして分類することができる(350)。
【0093】
段階360において、分類トランザクションは、次に、トランザクションレコードに追加することができる。
【0094】
到来するトランザクションリクエストがトランザクションサーバにおいて受信されると、到来するトランザクションリクエストは、到来するトランザクションリクエストがトランザクションサーバによって実行されたトランザクションに基づいてヘビーウェイトトランザクションとして分類されるべきであるか又はライトウェイトトランザクションとして分類されるべきであるかを決定するために、トランザクションレコードと比較することができる。トランザクションリクエストがライトウェイトトランザクションとして分類される場合、トランザクションリクエストを即座に処理することができ、ここで、トランザクションは、トランザクションを処理するために要求されるサーバリソース、又はトランザクションを処理するために要求されると予想されるサーバリソースが上記で説明されたようにリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類される。トランザクションリクエストがヘビーウェイトトランザクションとして分類される場合、トランザクションリクエストをキューイングすることができ、ここで、トランザクションは、トランザクションを処理するために要求されるサーバリソース、又はトランザクションを処理するために要求されると予想されるサーバリソースがリソース閾値を超えている場合、ヘビーウェイトトランザクションとして分類される。
【0095】
所与のトランザクションを、異なるサーバリソースに従って異なるように分類することができることに留意されたい。例えば、実行するために大量のメモリを要求するが、ただし実行するために少量のプロセッサ能力を要求するトランザクションリクエストは、メモリ使用に関してはヘビーウェイトトランザクションとして、ただしプロセッサ使用に関してはライトウェイトトランザクションとして分類することができる。それに応じて、そのようなトランザクションは、現サーバメトリックが低メモリ可用性及び高処理能力を示す場合にキューイングすることができるが、現サーバメトリックが高メモリ可用性及び低処理能力を示す場合には即座に処理することができる。
【0096】
それに応じて、トランザクションサーバは、それらの履歴リソース使用に基づいて異なるトランザクションリクエストをカテゴリ化するように適応させることができる。トランザクションサーバは、自動的に、ライトウェイトトランザクションを影響を受けないままにしながら、リソースがヘビーな、又はヘビーウェイトの、トランザクションに対して同時の実行制限を置くことができる。現在のシステム負荷に基づいて、トランザクションサーバは、現サーバ能力メトリックによって示されるように、新たなヘビーウェイトトランザクションがサーバ上で実行することを可能にされるべきであるか、又はシステム上の負荷が減少するまでキューイングされるべきであるかを判断することができる。
【0097】
トランザクションリクエストがキューイングされる場合(例えば、トランザクションが所与のサーバリソースに関してヘビーウェイトトランザクションとして分類されており、現サーバ能力メトリックが、ヘビーウェイトトランザクションを即座に処理することができないことを示すので)、トランザクションサーバのサーバリソースは、ヘビーウェイトトランザクションをトランザクションサーバによって処理することができるときを決定するためにモニタリングすることができる。例えば、ヘビーウェイトトランザクションがメモリ使用に基づいてリソース集約的であると分類される場合、トランザクションサーバは、現在利用可能なメモリをモニタリングし、現在利用可能なメモリがトランザクションを処理するために十分である場合にトランザクションを処理することができる。
【0098】
トランザクションリクエストのキューは、最大キュー時間を含むことができ、これは、所与のトランザクションによって超えられる場合、トランザクションがタイムアウトすることをもたらすことになる。このようにして、トランザクションリクエストは、キューを無期限に占有することを防止され得る。
【0099】
幾つかのケースでは、トランザクションサーバのサーバリソースをモニタリングする場合、モニタリングされるサーバリソースに基づいてヘビーウェイトトランザクションをライトウェイトトランザクションと同時に処理することができることが決定され得る。このケースでは、ヘビーウェイトトランザクションは、ライトウェイトトランザクションと同時に処理されてよい。例示として、メモリ使用に関するヘビーウェイトトランザクションは、プロセッサ使用に関する、又はサーバのメモリ容量が許容する場合には、メモリ使用に関するライトウェイトトランザクションと同時に処理することができる。
【0100】
実用時には、トランザクションサーバは、異なるクライアントから複数のトランザクションリクエストを受信することができ、複数のトランザクションリクエストは、1つ又は複数のヘビーウェイトトランザクション及び1つ又は複数のライトウェイトトランザクションを含むことができる。このケースでは、トランザクションサーバは、複数のトランザクションリクエストを解析して、1つ又は複数のヘビーウェイトトランザクションが1つ又は複数のライトウェイトトランザクションと同時に処理され得るか否かを決定することができる。1つ又は複数のヘビーウェイトトランザクションは、次に、決定に基づいて1つ又は複数のライトウェイトトランザクションと同時に処理されてよい。さらに、ヘビーウェイトトランザクション及びライトウェイトトランザクションの任意の数の組み合わせは、現在利用可能なサーバリソースに基づいて同時に処理され得る。
【0101】
トランザクションサーバは、可能な最大数のトランザクションを同時に処理するように適応され得る。しかしながら、ヘビーウェイトトランザクションが処理からロックアウトされることを防止するために、トランザクションサーバは、最大数のヘビーウェイトトランザクションを同時に処理するように適応され得、残りのリソースはライトウェイトトランザクションに割り当てられ得る。
【0102】
さらに、トランザクションサーバは、キューの長さが所定の長さを超える場合にサーバ上の負荷を削減するためにライトウェイトトランザクションリクエストをキューイングするように適応され得る。キューが所定の長さになるとライトウェイトトランザクションをキューイングすることによって、トランザクションサーバは、ヘビーウェイトトランザクションがライトウェイトトランザクションリクエストによって拒絶されることを防止することができる。
【0103】
それに応じて、本発明の実施形態は、トランザクションリクエストの分類に基づいて、トランザクションサーバ上での自動化されかつ動的なトランザクションリクエストハンドリングを提供する。特に、実施形態は、過去において類似のトランザクションを実行するために要求されたサーバリソースの履歴レコード及びトランザクションサーバの現在の能力に基づいて到来するトランザクションリクエストをハンドリングすることを提供することができる。
【0104】
換言すれば、トランザクションサーバは、履歴トランザクションデータ及び現在のサーバ能力の組み合わせに基づいて、新たなトランザクションリクエストを実行するか、又はトランザクションリクエストを延期又はキューイングするかについてその場で判断を行うことができる。
【0105】
ここで、当業者であれば、本発明の実施形態では、提案されるトランザクションハンドリング概念が従来のトランザクションハンドリング手法に優る多数の利点を提供することが理解されるべきである。これらの利点は、到来するトランザクションリクエストがどのようにハンドリングされるべきかについての動的かつ正確な決定を含むが、これに限定されるものではない。本発明の実施形態では、この技術的解決策は、以前にハンドリングされたトランザクションの履歴レコード及び現サーバ能力メトリックに基づいて達成される。
【0106】
技術的問題に対するまた更なる解決策では、本明細書において説明されるシステム及びプロセスは、分散通信ネットワーク上で、又はこれを介して、トランザクションサーバにおいて受信されたトランザクションリクエストをハンドリングするコンピュータ実装方法を提供することができる。このケースでは、
図1及び
図4において示されているコンピュータシステム又は
図2において示されているクラウド環境等のコンピュータインフラストラクチャを提供することができ、本発明のプロセスを実行する1つ又は複数のシステムを取得(例えば、作成、購入、使用、変更等)し、コンピュータインフラストラクチャに展開することができる。この範囲で、システムの展開は、(i)コンピュータ可読媒体から
図1において示されたコンピュータシステム等のコンピューティングデバイス上にプログラムコードをインストールすること;(ii)コンピュータインフラストラクチャ及びより具体的にはクラウド環境に1つ又は複数のコンピューティングデバイスを追加すること;及び(iii)コンピュータインフラストラクチャが本発明のプロセスを実行することを可能にするためにコンピュータインフラストラクチャの1つ又は複数の既存のシステムを組み込む及び/又は変更することを含むことができるが、これらに限定されるものではない。
【0107】
本発明の様々な実施形態の説明が例示の目的で提示されてきたが、網羅的であること、又は開示された実施形態に限定されることを意図するものではない。説明された実施形態の範囲から逸脱することなく、多くの修正及び変形が、当業者には明らかになるであろう。本明細書において使用される術語は、実施形態の原理、実際の適用、又は市場で見られる技術に優る技術的改善を最も良好に説明するために、又は他の当業者が本明細書において開示された実施形態を理解することを可能にするために選択されたものである。
【手続補正書】
【提出日】2024-04-17
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
トランザクションサーバにおいて受信されたトランザクションリクエストをハンドリングするコンピュータ実装方法であって、前記トランザクションリクエストは、前記トランザクションサーバに対するトランザクションを実行するリクエストを含み、前記コンピュータ実装方法は、
前記トランザクションサーバにおいてトランザクションリクエストを受信することに応答して、トランザクションを実行するために要求されるサーバリソースの履歴レコードを含むトランザクションレコード、及び前記トランザクションリクエストをハンドリングするためのハンドリングアクションを決定するための現サーバ能力メトリックに基づいて前記トランザクションリクエストを解析する段階
を備える、コンピュータ実装方法。
【請求項2】
前記コンピュータ実装方法は、
前記トランザクションサーバによって処理される複数のトランザクションをモニタリングする段階;及び
前記複数のトランザクションを処理するために要求される前記サーバリソースに基づいてトランザクションレコードを生成する段階
を更に備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記トランザクションレコードは、1つ又は複数のトランザクション分類を含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記トランザクションレコードを生成する段階は、前記1つ又は複数のトランザクション分類に従って前記複数のトランザクションの各々を分類する段階を有し、前記1つ又は複数のトランザクション分類は、
ヘビーウェイトトランザクション;及び
ライトウェイトトランザクション
を含む、請求項3に記載のコンピュータ実装方法。
【請求項5】
トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超える場合、ヘビーウェイトトランザクションとして分類される、請求項4に記載のコンピュータ実装方法。
【請求項6】
トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類される、請求項4に記載のコンピュータ実装方法。
【請求項7】
前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階は、
前記トランザクションリクエストの前記解析に基づいて前記トランザクションリクエストを分類する段階;及び
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階
を有する、請求項3に記載のコンピュータ実装方法。
【請求項8】
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階は、
前記トランザクションリクエストがライトウェイトトランザクションとして分類される場合、前記トランザクションリクエストを処理する段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類される;及び
前記トランザクションリクエストがヘビーウェイトトランザクションとして分類される場合、前記トランザクションリクエストをキューイングする段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えている場合、ヘビーウェイトトランザクションとして分類される
有する、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記コンピュータ実装方法は、
前記トランザクションサーバの前記サーバリソースをモニタリングする段階;
前記サーバリソースの前記モニタリングに基づいて前記トランザクションサーバによってヘビーウェイトトランザクションを処理することができるときを決定する段階;及び
ヘビーウェイトトランザクションを処理することができるときを決定する前記段階に基づいて、キューイングされたトランザクションリクエストを処理する段階
を更に備える、請求項8に記載のコンピュータ実装方法。
【請求項10】
前記コンピュータ実装方法は、
前記トランザクションサーバの前記サーバリソースをモニタリングする段階;
前記サーバリソースの前記モニタリングに基づいて前記トランザクションサーバによってヘビーウェイトトランザクションをライトウェイトトランザクションと同時に処理することができるか否かを決定する段階;及び
ヘビーウェイトトランザクションをライトウェイトトランザクションと同時に処理することができるか否かを決定する前記段階に基づいて、ライトウェイトトランザクションと同時に前記ヘビーウェイトトランザクションを処理する段階
を更に備える、請求項8に記載のコンピュータ実装方法。
【請求項11】
複数のトランザクションリクエストは、前記トランザクションサーバにおいて受信され、前記複数のトランザクションリクエストは、1つ又は複数のヘビーウェイトトランザクション及び1つ又は複数のライトウェイトトランザクションを含み、前記コンピュータ実装方法は、
前記トランザクションサーバの前記サーバリソースをモニタリングする段階;
前記サーバリソースの前記モニタリングに基づいて前記トランザクションサーバによって1つ又は複数のヘビーウェイトトランザクションを1つ又は複数のライトウェイトトランザクションと同時に処理することができるか否かを決定する段階;及び
ヘビーウェイトトランザクションをライトウェイトトランザクションと同時に処理することができるか否かを決定する前記段階に基づいて、1つ又は複数のライトウェイトトランザクションと同時に前記1つ又は複数のヘビーウェイトトランザクションを処理する段階
を更に備える、請求項8に記載のコンピュータ実装方法。
【請求項12】
前記サーバリソースは、
メモリ使用メトリック;
ピークメモリ使用メトリック;
トラステッドコンピューティングベース使用メトリック;
処理時間;及び
プロセッサ使用メトリック
のうちの1つ又は複数を含む、請求項
1から11のいずれか一項に記載のコンピュータ実装方法。
【請求項13】
前記現サーバ能力メトリックは、
現在処理されている現在のトランザクションの数;
メモリ使用メトリック;
プロセッサ使用メトリック;及び
キュー内のトランザクションリクエストの数
のうちの1つ又は複数を含む、請求項
1から11のいずれか一項に記載のコンピュータ実装方法。
【請求項14】
前記ハンドリングアクションは、
前記トランザクションリクエストをキューイングすること;
前記トランザクションリクエストを処理すること;
前記トランザクションリクエストを拒否すること;
前記トランザクションリクエストを検証すること;及び
前記トランザクションリクエストをルーティングすること
のうちの1つ又は複数を含む、請求項
1から11のいずれか一項に記載のコンピュータ実装方法。
【請求項15】
トランザクションサーバによってトランザクションリクエストをハンドリングするコンピュータプログラ
ムであって、前記トランザクションリクエストは、トランザクションサーバに対するトランザクションを実行するリクエストを含み
、処理ユニットに、
前記トランザクションサーバにおいてトランザクションリクエストを受信することに応答して、トランザクションを実行するために要求されるサーバリソースの履歴レコードを含むトランザクションレコード、及び前記トランザクションリクエストをハンドリングするためのハンドリングアクションを決定するための現サーバ能力メトリックに基づいて前記トランザクションリクエストを解析する手順
を実行させるためのコンピュータプログラ
ム。
【請求項16】
前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定するときに
、前記処理ユニット
に、
前記トランザクションリクエストの前記解析に基づいて前記トランザクションリクエストを分類す
る手順;及び
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定す
る手順
を更に実行させるための請求項15に記載のコンピュータプログラ
ム。
【請求項17】
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定す
る手順は、
前記トランザクションリクエストがライトウェイトトランザクションとして分類される場合、前記トランザクションリクエストを処理す
る手順、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類される;及び
前記トランザクションリクエストがヘビーウェイトトランザクションとして分類される場合、前記トランザクションリクエストをキューイングす
る手順、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えている場合、ヘビーウェイトトランザクションとして分類される
を有する、請求項16に記載のコンピュータプログラ
ム。
【請求項18】
トランザクションサーバによってトランザクションリクエストをハンドリングする処理システムであって、前記トランザクションリクエストは、前記トランザクションサーバに対するトランザクションを実行するリクエストを含み、前記処理システムは、
前記トランザクションサーバにおいてトランザクションリクエストを受信することに応答して、トランザクションを実行するために要求されるサーバリソースの履歴レコードを含むトランザクションレコード、及び前記トランザクションリクエストをハンドリングするためのハンドリングアクションを決定するための現サーバ能力メトリックに基づいて前記トランザクションリクエストを解析する段階
を実行するように構成されたプロセッサ装置を備える、処理システム。
【請求項19】
前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階は、
前記トランザクションリクエストの前記解析に基づいて前記トランザクションリクエストを分類する段階;及び
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階
を有する、請求項18に記載の処理システム。
【請求項20】
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階は、
前記トランザクションリクエストがライトウェイトトランザクションとして分類される場合、前記トランザクションリクエストを処理する段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類される;及び
前記トランザクションリクエストがヘビーウェイトトランザクションとして分類される場合、前記トランザクションリクエストをキューイングする段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えている場合、ヘビーウェイトトランザクションとして分類される、
を有する、請求項19に記載の処理システム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0107
【補正方法】変更
【補正の内容】
【0107】
本発明の様々な実施形態の説明が例示の目的で提示されてきたが、網羅的であること、又は開示された実施形態に限定されることを意図するものではない。説明された実施形態の範囲から逸脱することなく、多くの修正及び変形が、当業者には明らかになるであろう。本明細書において使用される術語は、実施形態の原理、実際の適用、又は市場で見られる技術に優る技術的改善を最も良好に説明するために、又は他の当業者が本明細書において開示された実施形態を理解することを可能にするために選択されたものである。
[項目1]
トランザクションサーバにおいて受信されたトランザクションリクエストをハンドリングするコンピュータ実装方法であって、前記トランザクションリクエストは、前記トランザクションサーバに対するトランザクションを実行するリクエストを含み、前記コンピュータ実装方法は、
前記トランザクションサーバにおいてトランザクションリクエストを受信することに応答して、トランザクションを実行するために要求されるサーバリソースの履歴レコードを含むトランザクションレコード、及び前記トランザクションリクエストをハンドリングするためのハンドリングアクションを決定するための現サーバ能力メトリックに基づいて前記トランザクションリクエストを解析する段階
を備える、コンピュータ実装方法。
[項目2]
前記コンピュータ実装方法は、
前記トランザクションサーバによって処理される複数のトランザクションをモニタリングする段階;及び
前記複数のトランザクションを処理するために要求される前記サーバリソースに基づいてトランザクションレコードを生成する段階
を更に備える、項目1に記載のコンピュータ実装方法。
[項目3]
前記トランザクションレコードは、1つ又は複数のトランザクション分類を含む、項目2に記載のコンピュータ実装方法。
[項目4]
前記トランザクションレコードを生成する段階は、前記1つ又は複数のトランザクション分類に従って前記複数のトランザクションの各々を分類する段階を有し、前記1つ又は複数のトランザクション分類は、
ヘビーウェイトトランザクション;及び
ライトウェイトトランザクション
を含む、項目3に記載のコンピュータ実装方法。
[項目5]
トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超える場合、ヘビーウェイトトランザクションとして分類される、項目4に記載のコンピュータ実装方法。
[項目6]
トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類される、項目4に記載のコンピュータ実装方法。
[項目7]
前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階は、
前記トランザクションリクエストの前記解析に基づいて前記トランザクションリクエストを分類する段階;及び
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階
を有する、項目3に記載のコンピュータ実装方法。
[項目8]
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階は、
前記トランザクションリクエストがライトウェイトトランザクションとして分類される場合、前記トランザクションリクエストを処理する段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類される;及び
前記トランザクションリクエストがヘビーウェイトトランザクションとして分類される場合、前記トランザクションリクエストをキューイングする段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えている場合、ヘビーウェイトトランザクションとして分類される
有する、項目7に記載のコンピュータ実装方法。
[項目9]
前記コンピュータ実装方法は、
前記トランザクションサーバの前記サーバリソースをモニタリングする段階;
前記サーバリソースの前記モニタリングに基づいて前記トランザクションサーバによってヘビーウェイトトランザクションを処理することができるときを決定する段階;及び
ヘビーウェイトトランザクションを処理することができるときを決定する前記段階に基づいて、キューイングされたトランザクションリクエストを処理する段階
を更に備える、項目8に記載のコンピュータ実装方法。
[項目10]
前記コンピュータ実装方法は、
前記トランザクションサーバの前記サーバリソースをモニタリングする段階;
前記サーバリソースの前記モニタリングに基づいて前記トランザクションサーバによってヘビーウェイトトランザクションをライトウェイトトランザクションと同時に処理することができるか否かを決定する段階;及び
ヘビーウェイトトランザクションをライトウェイトトランザクションと同時に処理することができるか否かを決定する前記段階に基づいて、ライトウェイトトランザクションと同時に前記ヘビーウェイトトランザクションを処理する段階
を更に備える、項目8に記載のコンピュータ実装方法。
[項目11]
複数のトランザクションリクエストは、前記トランザクションサーバにおいて受信され、前記複数のトランザクションリクエストは、1つ又は複数のヘビーウェイトトランザクション及び1つ又は複数のライトウェイトトランザクションを含み、前記コンピュータ実装方法は、
前記トランザクションサーバの前記サーバリソースをモニタリングする段階;
前記サーバリソースの前記モニタリングに基づいて前記トランザクションサーバによって1つ又は複数のヘビーウェイトトランザクションを1つ又は複数のライトウェイトトランザクションと同時に処理することができるか否かを決定する段階;及び
ヘビーウェイトトランザクションをライトウェイトトランザクションと同時に処理することができるか否かを決定する前記段階に基づいて、1つ又は複数のライトウェイトトランザクションと同時に前記1つ又は複数のヘビーウェイトトランザクションを処理する段階
を更に備える、項目8に記載のコンピュータ実装方法。
[項目12]
前記サーバリソースは、
メモリ使用メトリック;
ピークメモリ使用メトリック;
トラステッドコンピューティングベース使用メトリック;
処理時間;及び
プロセッサ使用メトリック
のうちの1つ又は複数を含む、項目1に記載のコンピュータ実装方法。
[項目13]
前記現サーバ能力メトリックは、
現在処理されている現在のトランザクションの数;
メモリ使用メトリック;
プロセッサ使用メトリック;及び
キュー内のトランザクションリクエストの数
のうちの1つ又は複数を含む、項目1に記載のコンピュータ実装方法。
[項目14]
前記ハンドリングアクションは、
前記トランザクションリクエストをキューイングすること;
前記トランザクションリクエストを処理すること;
前記トランザクションリクエストを拒否すること;
前記トランザクションリクエストを検証すること;及び
前記トランザクションリクエストをルーティングすること
のうちの1つ又は複数を含む、項目1に記載のコンピュータ実装方法。
[項目15]
トランザクションサーバによってトランザクションリクエストをハンドリングするコンピュータプログラム製品であって、前記トランザクションリクエストは、トランザクションサーバに対するトランザクションを実行するリクエストを含み、前記コンピュータプログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を備え、前記プログラム命令は、処理ユニットに方法を実行させるために前記処理ユニットによって実行可能であり、前記方法は、
前記トランザクションサーバにおいてトランザクションリクエストを受信することに応答して、トランザクションを実行するために要求されるサーバリソースの履歴レコードを含むトランザクションレコード、及び前記トランザクションリクエストをハンドリングするためのハンドリングアクションを決定するための現サーバ能力メトリックに基づいて前記トランザクションリクエストを解析する手順
を備える、コンピュータプログラム製品。
[項目16]
前記コンピュータプログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を備え、前記プログラム命令は、処理ユニットに、前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定するときに、以下の段階を実行させるために前記処理ユニットによって実行可能であり、前記段階は、
前記トランザクションリクエストの前記解析に基づいて前記トランザクションリクエストを分類する段階;及び
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階
である、項目15に記載のコンピュータプログラム製品。
[項目17]
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階は、
前記トランザクションリクエストがライトウェイトトランザクションとして分類される場合、前記トランザクションリクエストを処理する段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類される;及び
前記トランザクションリクエストがヘビーウェイトトランザクションとして分類される場合、前記トランザクションリクエストをキューイングする段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えている場合、ヘビーウェイトトランザクションとして分類される
を有する、項目16に記載のコンピュータプログラム製品。
[項目18]
トランザクションサーバによってトランザクションリクエストをハンドリングする処理システムであって、前記トランザクションリクエストは、前記トランザクションサーバに対するトランザクションを実行するリクエストを含み、前記処理システムは、
前記トランザクションサーバにおいてトランザクションリクエストを受信することに応答して、トランザクションを実行するために要求されるサーバリソースの履歴レコードを含むトランザクションレコード、及び前記トランザクションリクエストをハンドリングするためのハンドリングアクションを決定するための現サーバ能力メトリックに基づいて前記トランザクションリクエストを解析する段階
を実行するように構成されたプロセッサ装置を備える、処理システム。
[項目19]
前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階は、
前記トランザクションリクエストの前記解析に基づいて前記トランザクションリクエストを分類する段階;及び
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階
を有する、項目18に記載の処理システム。
[項目20]
前記トランザクションリクエストの前記分類に基づいて前記トランザクションリクエストをハンドリングするための前記ハンドリングアクションを決定する段階は、
前記トランザクションリクエストがライトウェイトトランザクションとして分類される場合、前記トランザクションリクエストを処理する段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えていない場合、ライトウェイトトランザクションとして分類される;及び
前記トランザクションリクエストがヘビーウェイトトランザクションとして分類される場合、前記トランザクションリクエストをキューイングする段階、ここで、トランザクションは、前記トランザクションを処理するために要求される前記サーバリソースがリソース閾値を超えている場合、ヘビーウェイトトランザクションとして分類される、
を有する、項目19に記載の処理システム。
【国際調査報告】