(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-09
(54)【発明の名称】スケーラブルアプリケーションにおいて行われる要求を調整すること
(51)【国際特許分類】
G06F 9/50 20060101AFI20231226BHJP
【FI】
G06F9/50 120Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023537207
(86)(22)【出願日】2021-11-25
(85)【翻訳文提出日】2023-06-16
(86)【国際出願番号】 EP2021083051
(87)【国際公開番号】W WO2022128394
(87)【国際公開日】2022-06-23
(32)【優先日】2020-12-18
(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)【復代理人】
【識別番号】100118599
【氏名又は名称】村上 博司
(74)【復代理人】
【識別番号】100160738
【氏名又は名称】加藤 由加里
(72)【発明者】
【氏名】ロス,マーチン
(72)【発明者】
【氏名】エヴァンズ,ジャック,ウィリアム,ドナート
(72)【発明者】
【氏名】スティーヴンソン,ジャック,リチャード,ウィリアム
(72)【発明者】
【氏名】ポーレット,ルーク,ジェームス
(57)【要約】
スケーラブルアプリケーションにおいて行われる要求を調整する為の、方法、コンピュータシステム及びコンピュータプログラム製品が提供される。本発明は、クライアント要求を処理する際に適用されるべき応答挙動に関するメタデータを、複数のアプリケーションインスタンスに登録することを含みうる。本発明は、該メタデータに従って該クライアント要求を拡張して、該拡張された要求インスタンスがそれに経路付けられるところの該アプリケーションインスタンスからの必要な数の応答インスタンスの完了を調整する為に拡張された要求インスタンスを提供することを含みうる。本発明は、該アプリケーションインスタンス全体にわたって該クライアント要求の状態を調整し、必要な数の完了した応答インスタンスが受信されたときに、未処理の拡張された要求インスタンスを終了することを含みうる。
【選択図】
図2
【特許請求の範囲】
【請求項1】
スケーラブルアプリケーションにおいて行われる要求を調整する方法であって、
1以上のアプリケーションインスタンスへのクライアント要求を処理する際に適用されるべき応答挙動に関するメタデータを登録すること;
前記メタデータに従って前記クライアント要求を拡張して、前記1以上のアプリケーションインスタンスからの必要な数の応答インスタンスの完了を調整する為に拡張された要求インスタンスを提供すること;及び、
前記アプリケーションインスタンス全体にわたって前記クライアント要求の状態を調整し、必要な数の完了した応答インスタンスが受信されたときに、未処理の拡張された要求インスタンスを終了すること
を含む、前記方法。
【請求項2】
前記メタデータに従って前記クライアント要求を拡張することが、拡張された要求インスタンスのヘッダ内に応答調整命令を追加することを含む、請求項1に記載の方法。
【請求項3】
前記1以上のアプリケーションインスタンス全体にわたって前記クライアント要求の前記状態を調整することが、完了した要求インスタンスにおける更新を受信する為の、及び他の要求インスタンスが完了したかをチェックする為の要求インスタンスの為のエンドポイントチェックを提供する、請求項1に記載の方法。
【請求項4】
前記応答インスタンスが完了したときに前記1以上のアプリケーションインスタンスが前記エンドポイントに更新を提供するところのコールバックメカニズムによって、前記エンドポイントチェックが提供される、請求項3に記載の方法。
【請求項5】
前記1以上のアプリケーションインスタンスが完了した要求インスタンスのイベントに登録するところのイベント登録メカニズムによって、前記エンドポイントチェックが提供される、請求項3に記載の方法。
【請求項6】
前記アプリケーションインスタンスからの複数の応答インスタンスを一緒にして、1以上の完了した応答インスタンスと在りうる終了した応答インスタンスとを含む集約応答を、前記登録されたメタデータに基づいて形成することを更に含む、請求項1に記載の方法。
【請求項7】
前記要求インスタンスからの前記応答インスタンスを待つこと;及び、
前記1以上の応答インスタンスを一緒にして、前記集約応答を形成すること
を更に含む、請求項6に記載の方法。
【請求項8】
スケーラブルアプリケーションにおいて要求を調整する為のコンピュータシステムであって、該コンピュータシステムが、
1以上のプロセッサ、1以上のコンピュータ可読メモリ、1以上のコンピュータ可読有形記憶媒体、及び前記1以上のコンピュータ可読メモリのうちの少なくとも1つを介して前記1以上のプロセッサのうちの少なくとも1つによって実行する為の、前記1以上のコンピュータ可読有形記憶媒体のうちの少なくとも1つ上に記憶された複数のプログラム命令を備えており、ここで、前記コンピュータシステムが、
1以上のアプリケーションインスタンスへのクライアント要求を処理する際に適用されるべき応答挙動に関するメタデータを登録すること;
前記メタデータに従って前記クライアント要求を拡張して、前記1以上のアプリケーションインスタンスからの必要な数の応答インスタンスの完了を調整する為に拡張された要求インスタンスを提供すること;及び、
前記アプリケーションインスタンス全体にわたって前記クライアント要求の状態を調整し、必要な数の完了した応答インスタンスが受信されたときに、未処理の拡張された要求インスタンスを終了すること
を含む方法を実行することができる、
前記コンピュータシステム。
【請求項9】
前記メタデータに従って前記クライアント要求を拡張することが、拡張された要求インスタンスのヘッダ内に応答調整命令を追加することを含む、請求項8に記載のコンピュータシステム。
【請求項10】
前記1以上のアプリケーションインスタンス全体にわたって前記クライアント要求の前記状態を調整することが、完了した要求インスタンスにおける更新を受信する為の、及び他の要求インスタンスが完了したかをチェックする為の要求インスタンスの為のエンドポイントチェックを提供する、請求項8に記載のコンピュータシステム。
【請求項11】
前記応答インスタンスが完了したときに前記1以上のアプリケーションインスタンスが前記エンドポイントに更新を提供するところのコールバックメカニズムによって、前記エンドポイントチェックが提供される、請求項10に記載のコンピュータシステム。
【請求項12】
前記1以上のアプリケーションインスタンスが完了した要求インスタンスのイベントに登録するところのイベント登録メカニズムによって、前記エンドポイントチェックが提供される、請求項10に記載のコンピュータシステム。
【請求項13】
前記アプリケーションインスタンスからの複数の応答インスタンスを一緒にして、1以上の完了した応答インスタンスと在りうる終了した応答インスタンスとを含む集約応答を、前記登録されたメタデータに基づいて形成することを更に含む、請求項8に記載のコンピュータシステム。
【請求項14】
前記要求インスタンスからの前記応答インスタンスを待つこと;及び、
前記1以上の応答インスタンスを一緒にして、前記集約応答を形成すること
を更に含む、請求項13に記載のコンピュータシステム。
【請求項15】
スケーラブルアプリケーションにおいて行われる要求を調整する為のコンピュータプログラム製品であって、該コンピュータプログラム製品が、1以上の有形コンピュータ可読記憶媒体、及び前記1以上の有形記憶媒体のうちの少なくとも1つ上に記憶された複数のプログラム命令を備えており、プロセッサによって実行可能な前記複数のプログラム命令が、前記プロセッサに、
1以上のアプリケーションインスタンスへのクライアント要求を処理する際に適用されるべき応答挙動に関するメタデータを登録すること;
前記メタデータに従って前記クライアント要求を拡張して、前記1以上のアプリケーションインスタンスからの必要な数の応答インスタンスの完了を調整する為に拡張された要求インスタンスを提供すること;及び、
前記アプリケーションインスタンス全体にわたって前記クライアント要求の状態を調整し、必要な数の完了した応答インスタンスが受信されたときに、未処理の拡張された要求インスタンスを終了すること
を含む方法を実行させる、
前記コンピュータプログラム製品。
【請求項16】
前記メタデータに従って前記クライアント要求を拡張することが、拡張された要求インスタンスのヘッダ内に応答調整命令を追加することを含む、請求項15に記載のコンピュータプログラム製品。
【請求項17】
前記1以上のアプリケーションインスタンス全体にわたって前記クライアント要求の前記状態を調整することが、完了した要求インスタンスにおける更新を受信する為の、及び他の要求インスタンスが完了したかをチェックする為の要求インスタンスの為のエンドポイントチェックを提供する、請求項15に記載のコンピュータプログラム製品。
【請求項18】
前記応答インスタンスが完了したときに前記1以上のアプリケーションインスタンスが前記エンドポイントに更新を提供するところのコールバックメカニズムによって、前記エンドポイントチェックが提供される、請求項17に記載のコンピュータプログラム製品。
【請求項19】
前記1以上のアプリケーションインスタンスが完了した要求インスタンスのイベントに登録するところのイベント登録メカニズムによって、前記エンドポイントチェックが提供される、請求項17に記載のコンピュータプログラム製品。
【請求項20】
前記アプリケーションインスタンスからの複数の応答インスタンスを一緒にして、1以上の完了した応答インスタンスと在りうる終了した応答インスタンスとを含む集約応答を、前記登録されたメタデータに基づいて形成すること;
前記要求インスタンスからの前記応答インスタンスを待つこと;及び、
前記1以上の応答インスタンスを一緒にして、前記集約応答を形成すること
を更に含む、請求項15に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的にコンピューティングの分野に関し、より特には、スケーラブルアプリケーション(scalable application)において行われる要求に関し、より詳細には、複数のアプリケーションインスタンスにおいて行われる要求を調整することに関する。
【背景技術】
【0002】
クラウドコンピューティングは、コンシューマが作成又は取得したアプリケーションをクラウドインフラストラクチャへとデプロイする為の機能を該コンシューマに提供しうる、サービスとしてのプラットフォーム(PaaS:Platform as a Service)を備えうる。クラウドプロバイダは、コンピューティングプラットフォーム、典型的には、オペレーティングシステム、プログラミング言語実行環境、データベース及びウェブサーバを包含する上記のコンピューティングプラットフォーム、を提供する。アプリケーション開発者は、クラウドプラットフォーム上でソフトウェアを開発及び実行することができ、基礎となるコンピュータ及びストレージリソースは、アプリケーションの需要に合わせて自動的にスケーリングしうる。
【0003】
一部のクラウドプラットフォームは、デプロイされるべき1つのアプリケーションの複数のインスタンス(すなわち、レプリカ)を提供することによって、アプリケーションがスケーリングされることを可能にしうる。ワークロードバランサーは、複数のアプリケーションインスタンスの前に配置されて、該複数のアプリケーションインスタンス間のワークのバランスをとりうる。該ワークロードバランサーは、該複数のアプリケーションインスタンス間のトラフィックをラウンドロビンしてもよく、これはランタイムワークロードの場合に上手く機能する。一部のクラウドプラットフォームは、クライアント要求をアプリケーションの特定のインスタンスに送信する機能又はラウンドロビンする機能を提供しうる。
【0004】
一部のコマンド要求、例えばトレースの収集、の場合は、該コマンドが該複数のアプリケーションインスタンスのうちの1つだけに送ることができる故に、そのようなラウンドロビンが理想的でない場合がある。それ故に、そのような状況においては、コマンド要求は複数のアプリケーションインスタンスにおいて行われうる。
【0005】
トレースを収集する際に、或る終了イベントが見られるまでトレースを収集するのみの選択肢がありうる。これは、収集されるトレースの量と、関連付けられたオーバーヘッドとを制限してもよく、それにより、診断が容易にされうる故に有利でありうる。該トレースが複数のアプリケーションインスタンスにおいて行われている場合、各インスタンスは、そのインスタンスにおいて終了イベントが見られるまで継続する可能性があり、それにより収集されるトレースデータが増加し、トレースデータを収集する関連付けられたオーバーヘッドが高くなる結果を生じうる。
【発明の概要】
【課題を解決するための手段】
【0006】
本発明の実施態様は、スケーラブルアプリケーションにおいて行われる要求を調整する為の、方法、コンピュータシステム及びコンピュータプログラム製品を開示する。本発明は、複数のアプリケーションインスタンスへのクライアント要求を処理する際に適用されるべき応答挙動に関するメタデータを登録することを含みうる。本発明は、該メタデータに従って該クライアント要求を拡張して、該拡張された要求インスタンスが経路付けされる複数のアプリケーションインスタンスからの必要な数の応答インスタンスの完了を調整する為に拡張された要求インスタンスを提供することを含みうる。本発明は、該アプリケーションインスタンス全体にわたって該クライアント要求の状態を調整し、必要な数の完了したインスタンスが受信されたときに、未処理の拡張された要求インスタンスを終了することを含みうる。
【0007】
本発明の、これらの目的及び他の目的、特徴及び利点は、その例示的な実施態様の下記の発明の詳細な説明から明らかになるであろう。図面の様々な特徴は、図面が発明の詳細な説明と併せて本発明を理解することを当業者に容易にすることを明確にする為のものである故に、縮尺どおりでない。図面は、下記に述べられる通りである。
【図面の簡単な説明】
【0008】
【
図1】
図1は、少なくとも1つの実施態様に従うシステムの模式図である。
【
図2】
図2は、少なくとも1つの実施態様に従う、スケーラブルアプリケーションにおいて行われる要求を調整する為のプロセスを図示する動作フローチャート図である。
【
図3】
図3は、少なくとも1つの実施態様に従う、複数の要求インスタンスの完了を調整する為のプロセスを図示する動作フローチャート図である。
【
図4】
図4は、少なくとも1つの実施態様に従って図示されたシステムのブロック図である。
【
図5】
図5は、少なくとも1つの実施態様に従う、
図1において図示されたコンピュータの内部コンポーネント及び外部コンポーネントのブロック図である。
【
図6】
図6は、本開示の実施態様に従う、
図1において図示されたシステムを備えている例示的なクラウドコンピューティング環境のブロック図である。
【
図7】
図7は、本開示の実施態様に従う、
図6の例示的なクラウドコンピューティング環境の複数の機能層のブロック図である。
【発明を実施するための形態】
【0009】
特許請求の範囲に記載されている構造及び方法の詳細な実施態様が本明細書において開示されている。しかしながら、開示された実施態様が、様々な形態で具現化されうる特許請求の範囲に記載された構造及び方法の例に過ぎないことが、理解されることができる。しかしながら、本発明は、様々な形態で具現化されていてもよく、本明細書において記載された例示的な実施態様に制限されると解釈されるべきでない。寧ろ、これらの例示的な実施態様は、この開示が徹底的且つ完全なものとなり、当業者にこの発明の範囲を十分に伝えることができるように提供される。発明の詳細な説明において、周知の特徴及び技術の詳細は、提示された実施態様を不必要に分かりにくくするのを避ける為に、省略されうる。
【0010】
本発明は、統合の在りうる任意の技術的詳細レベルでの、システム、方法若しくはコンピュータプログラム製品又はそれらの組み合わせでありうる。該コンピュータプログラム製品は、プロセッサに本発明の観点を実行させる為のコンピュータ可読プログラム命令を有する1以上のコンピュータ可読記憶媒体を包含しうる。
【0011】
該コンピュータ可読記憶媒体は、命令実行デバイスによって使用する為の命令を保持且つ記憶することができる有形のデバイスであることができる。該コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又はこれらの任意の適切な組み合わせでありうるが、これらに限定されない。該コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、下記を包含する:ポータブルのコンピュータディスケット(登録商標)、ハードディスク、ランダムアクセスメモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read only memory)、消去可能なプログラム可能な読み取り専用メモリ(EPROM(erasable programmable read-only memory)又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、ポータブル・コンパクトディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリスティック、フロッピーディスク、機械的に符号化されたデバイス、例えば、パンチカード若しくは命令が記憶されている溝内の隆起構造又はこれらの任意の適切な組み合わせ。本明細書において使用される場合、該コンピュータ可読記憶媒体は、一時的な信号それ自体、例えば、電波又は他の自由に伝播する電磁波、導波管若しくは他の伝送媒体を伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は電線を介して送信される電気信号、であると解釈されるべきでない。
【0012】
本明細書において記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から夫々のコンピューティングデバイス/処理デバイスに、又はネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク若しくはワイヤレスネットワーク又はそれらの組み合わせ、を介して外部コンピュータ又は外部記憶デバイスにダウンロードされることができる。該ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ若しくはエッジサーバ又はこれらの組み合わせで構成されうる。各コンピューティングデバイス/処理デバイスにおけるネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そして、該コンピュータ可読プログラム命令を、個々のコンピューティングデバイス/処理デバイス内にコンピュータ可読記憶媒体中に記憶する為に伝送する。
【0013】
本発明の動作を実行する為のコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の為の構成データ、又は、1以上のプログラミング言語、例えばオブジェクト指向プログラミング言語、例えば、Smalltalk、C++等、慣用的な手続き型プログラミング言語(例えば、「C」プログラミング言語又は同様のプログラミング言語)、の任意の組み合わせで書かれているソースコード又はオブジェクトコードのいずれか、でありうる。該コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に、ユーザのコンピュータ上で部分的に且つリモート・コンピュータ上で部分的に、又はリモート・コンピュータ若しくはサーバ上で全体的に、実行されうる。後者のシナリオにおいて、該リモート・コンピュータは、任意の種類のネットワーク、例えば、ローカルエリアネットワーク(LAN:local area network)若しくはワイドエリアネットワーク(WAN:wide area network)、を介してユーザのコンピュータに接続されうるか、又は該接続は(例えば、インターネットサービスプロバイダを使用したインターネットを通じて)外部コンピュータに対して行われうる。幾つかの実施態様において、電子回路、例えば、プログラム可能な論理回路、フィールドプログラム可能なゲートアレイ(FPGA:field-programmable gate arrays)又はプログラム可能なロジックアレイ(PLA:programmable logic arrays)、は、本発明の観点を実行する為に、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行しうる。
【0014】
本発明の観点は、本発明の実施態様に従う、方法、装置(システム)及びコンピュータプログラム製品若しくはコンピュータプログラムのフローチャート図若しくはブロック図又はそれらの組み合わせを参照して本明細書において記載されている。該フローチャート図若しくは該ブロック図又はそれらの組み合わせの各ブロック、並びに該フローチャート図若しくは該ブロック図又はそれらの組み合わせにおける複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されることができることが理解されるであろう。
【0015】
これらのコンピュータ可読プログラム命令は、該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行する命令が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定された機能/動作を実装する為の手段を作成するように、コンピュータのプロセッサ又は他のプログラム可能なデータ処理装置に提供されて、マシンを作り出しうる。記憶された命令を有するコンピュータ可読記憶媒体が該フローチャート図若しくはブロック図又はそれらの組み合わせの1以上のブロックにおいて特定される機能/動作の観点を実装する命令を含む製造品を含むように、これらのコンピュータ可読プログラム命令はまた、コンピュータプログラム可能なデータ処理装置若しくは他のデバイス又はこれらの組み合わせに特定の様式で機能するように指示することができるコンピュータ可読記憶媒体中に記憶されうる。
【0016】
該コンピュータ可読プログラム命令はまた、コンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上で実行される命令が、該フローチャート図若しくはブロック図若しくはそれらの組み合わせの1以上のブロックにおいて特定される機能/動作を実装するように、上記のコンピュータ上、他のプログラム可能なデータ処理装置上又は他のデバイス上にロードされて、コンピュータ、他のプログラム可能な装置又は他のデバイス上で一連の操作工程を実行させて、コンピュータに実装されたプロセスを生成しうる。
【0017】
図面中のフローチャート図及びブロック図は、本発明の様々な実施態様に従う、システム、方法及びコンピュータプログラム製品若しくはコンピュータプログラムの在りうる実装の、アーキテクチャ、機能及び動作を示す。これに関連して、該フローチャート図又はブロック図における各ブロックは、命令のモジュール、セグメント、又はその一部を表し得、それは、特定された1以上の論理機能を実装する為の1以上の実行可能命令を含む。幾つかの代替の実装において、該ブロックにおいて示されている機能は、図面中に示されている順序とは異なって生じうる。例えば、連続して示されている2つのブロックは、実際には、関与する機能に依存して、同時に、実質的に同時に、部分的又は全体的に時間的に重複する様式で実行される1つの工程として達成されうるか、又は該ブロックは、逆の順序で実行されうる。該ブロック図若しくはフローチャート図又はこれらの組み合わせの各ブロック、並びに該ブロック図若しくはフローチャート図又はこれらの組み合わせの複数のブロックの組み合わせは、特定された機能又は動作を実行する特別な目的のハードウェアベースのシステムによって実装することができ、又は特別な目的のハードウェアとコンピュータ命令との組み合わせを実行することができることに留意されたい。
【0018】
下記に記載された例示的な実施態様は、スケーラブルアプリケーションにおいて行われる要求を調整する為の、システム、方法、及びプログラム製品を提供する。このように、本実施態様は、アプリケーションの複数のインスタンスに広げられた要求又はアクションの完了が複数のインスタンス間で調整されることができるメカニズムを提供することによって、スケーラブルなクラウド環境におけるアプリケーションの管理及び診断の技術分野を改善する能力を有する。より具体的には、本発明は、該メタデータに従ってクライアント要求を拡張して、該拡張された要求インスタンスが経路付けられる該複数のアプリケーションインスタンスからの必要な数の応答インスタンスの完了を調整する為に、該拡張された要求インスタンスを提供することを含みうる。本発明は、該複数のアプリケーションインスタンス全体で該クライアント要求の状態を調整し、必要な数の完了したインスタンスが受信されたときに、未処理の拡張された要求インスタンスを終了することを含みうる。
【0019】
前述されているように、クラウドコンピューティングは、コンシューマが作成又は取得したアプリケーションをクラウドインフラストラクチャへとデプロイする為の機能を該コンシューマに提供しうる、サービスとしてのプラットフォーム(PaaS:Platform as a Service)を備えうる。クラウドプロバイダは、コンピューティングプラットフォーム、典型的には、オペレーティングシステム、プログラミング言語実行環境、データベース及びウェブサーバを包含する上記のコンピューティングプラットフォーム、を提供する。アプリケーション開発者は、クラウドプラットフォーム上でソフトウェアを開発及び実行することができ、基礎となるコンピュータ及びストレージリソースは、アプリケーションの需要に合わせて自動的にスケーリングしうる。
【0020】
一部のクラウドプラットフォームは、デプロイされるべき1つのアプリケーションの複数のインスタンス(すなわち、レプリカ)を提供することによって、アプリケーションがスケーリングされることを可能にしうる。ワークロードバランサーは、複数のアプリケーションインスタンスの前に配置されて、該複数のアプリケーションインスタンス間のワークのバランスをとりうる。該ワークロードバランサーは、該複数のアプリケーションインスタンス間のトラフィックをラウンドロビンしてもよく、これはランタイムワークロードの場合に上手く機能する。一部のクラウドプラットフォームは、クライアント要求をアプリケーションの特定のインスタンスに送信する機能又はラウンドロビンする機能を提供しうる。
【0021】
一部のコマンド要求、例えばトレースの収集、の場合は、該コマンドが該複数のアプリケーションインスタンスのうちの1つだけに送ることができる故に、そのようなラウンドロビンが理想的でない場合がある。それ故に、そのような状況においては、コマンド要求は複数のアプリケーションインスタンスにおいて行われうる。
【0022】
トレースを収集する際に、或る終了イベントが見られるまでトレースを収集するのみの選択肢がありうる。これは、収集されるトレースの量と、関連付けられたオーバーヘッドとを制限してもよく、それにより、診断が容易にされうる故に有利でありうる。該トレースが複数のアプリケーションインスタンスにおいて行われている場合、各インスタンスは、そのインスタンスにおいて終了イベントが見られるまで継続する可能性があり、それにより収集されるトレースデータが増加し、トレースデータを収集する関連付けられたオーバーヘッドが高くなる結果を生じうる。
【0023】
それ故に、なかんずく、複数のアプリケーションインスタンスへのクライアント要求を処理する際に適用されるべき応答挙動に関するメタデータを登録すること、該メタデータに従って該クライアント要求を拡張して、該拡張された要求インスタンスが経路付けられる該複数のアプリケーションインスタンスからの必要な数の応答インスタンスの完了を調整する為に、拡張された要求インスタンスを提供すること、及び該アプリケーションインスタンス全体にわたって該クライアント要求の状態を調整し、必要な数の完了したインスタンスが受信されたときに、未処理の拡張された要求インスタンスを終了することが有利でありうる。
【0024】
少なくとも1つの実施態様に従うと、本発明は、1以上の他のアプリケーションインスタンスから応答が利用可能である故に完了される必要がないアプリケーションインスタンスにおける要求インスタンスの終了を改善しうる。該クライアント要求は、該アプリケーションインスタンス上で実行されるべきコマンドでありうる。
【0025】
少なくとも1つの実施態様に従うと、本発明は、ユーザ体験を改善し得、且つスケーラブルなクラウド環境におけるアプリケーションを管理する為の能力を向上しうる。
【0026】
少なくとも1つの実施態様に従うと、本発明は、プロセッサ、メモリ及び応答時間の観点からリソース使用を削減することによって、スケーラブルなクラウド環境におけるアプリケーションの管理を改善しうる。
【0027】
本発明の少なくとも1つの実施態様に従うと、メタデータに従って該クライアント要求を拡張することが、要求インスタンスのヘッダ内に応答調整命令を追加することを含みうる。該アプリケーションインスタンス全体にわたって該クライアント要求の状態を調整することは、完了した要求インスタンスにおける更新を受信する為の、及び他の要求インスタンスが完了したかどうかをチェックする為の要求インスタンスの為のエンドポイントを提供しうる。1つの実施態様において、該エンドポイントチェックは、応答インスタンスが完了したときに該アプリケーションインスタンスが該エンドポイントに更新を提供するところのコールバックメカニズムによって提供される。別の実施態様において、該アプリケーションインスタンスが完了した要求インスタンスのイベントに登録するところのイベント登録メカニズムによって、該エンドポイントチェックが提供される。
【0028】
本発明の少なくとも1つの実施態様に従うと、該方法は、該拡張された要求インスタンスを複数のアプリケーションインスタンスに、該登録されたメタデータに基づいて経路付けすることを含みうる。該拡張された要求インスタンスは、全てのアプリケーションインスタンスに経路付けされてもよく、及び必要な数の完了した応答インスタンスは、単一の応答インスタンスでありうる。
【0029】
本発明の少なくとも1つの実施態様に従うと、該方法は、スケーラブルなクラウド環境に配置された複数のアプリケーションインスタンスが可能なスケーラブルアプリケーションの前にあるルータコンポーネントにおいて行われうる。
【0030】
本発明の少なくとも1つの実施態様に従うと、該方法は、該複数のアプリケーションインスタンスからの複数の応答インスタンスを一緒にして、該登録されたメタデータに基づく集約応答を形成することを含み得、ここで、該集約応答は、1以上の完了した応答インスタンスと在りうる終了した応答インスタンスとを含む。これは、全ての要求インスタンスからの応答インスタンスを待つこと、及び該1以上の応答インスタンスを一緒にして、集約応答を形成することを含みうる。代替的には、該方法は、他の要求インスタンスの終了を待つこと無しに、必要な数の応答インスタンスが受信されたときに、該クライアント要求に対する応答を送信しうる。
【0031】
本発明の少なくとも1つの実施態様に従うと、メタデータを登録することは、応答インスタンスの完了に関するルールと、必要な数の完了した応答インスタンスとを指定するメタデータを含むアプリケーションにインタフェース仕様を登録することを含みうる。インタフェース仕様をアプリケーションに登録することは、要求の種類に関連付けられた要件に従って応答挙動に関するメタデータを作成すること;及び、該作成されたメタデータを該インタフェース仕様に関連付けることを含みうる。
【0032】
本発明の少なくとも1つの実施態様に従うと、スケーラブルアプリケーションにおいて行われる要求を調整する為の、コンピュータに実装された方法があり得、該方法は、複数のアプリケーションインスタンスに経路付けされるクライアント要求を受信すること;登録されたメタデータに従って該クライアント要求のインスタンスを拡張し、該拡張された要求インスタンスが経路付けされるところの該アプリケーションインスタンスからの必要な数の応答インスタンスの完了を調整すること;及び、該アプリケーションインスタンス全体にわたって該要求の状態を調整し、必要な数の完了した応答インスタンスが受信されたときに、未処理の要求インスタンスを終了することを含む。
【0033】
本発明の少なくとも1つの実施態様に従うと、スケーラブルアプリケーションにおいて要求を調整する為のシステムがあり得、該システムは、プロセッサと、下記の複数のコンポーネントの機能を実行する為に複数のコンピュータプログラム命令を該プロセッサに提供するように構成されたメモリとを備えている:複数のアプリケーションインスタンスへの要求を処理する際に応答挙動に関するメタデータを登録する為の登録コンポーネント;該メタデータに従ってクライアント要求を拡張し、該拡張された要求インスタンスが経路付けされるところのアプリケーションインスタンスからの必要な数の応答インスタンスの完了を調整する為に、拡張された要求インスタンスを提供する為の要求インスタンス拡張コンポーネント;及び、必要な数の完了した応答インスタンスが受信されたときに、未処理の拡張された要求インスタンスを終了する為に、該クライアント要求の状態を調整する為の要求インスタンス調整コンポーネント。
【0034】
本発明の少なくとも1つの実施態様に従うと、該システムは、応答インスタンスの完了に関するルールと、必要な数の完了した応答インスタンスとを指定するメタデータを含む、インタフェース仕様における登録されたメタデータを検査する為の仕様検査コンポーネントを備えうる。
【0035】
本発明の少なくとも1つの実施態様に従うと、該システムは、該複数のアプリケーションインスタンスからの複数の応答インスタンスを一緒にして、完了した応答インスタンスと在りうる終了した応答インスタンスを含む集約応答を、該登録されたメタデータに基づいて形成する為の集約コンポーネントを備えうる。
【0036】
本発明の少なくとも1つの実施態様に従うと、該要求インスタンス調整コンポーネントが、完了した要求インスタンスの更新の為の、及び他の要求インスタンスが完了したかをチェックする為の要求インスタンスの為のエンドポイントチェックを提供しうる。該要求インスタンス調整コンポーネントは、コールバックメカニズムコンポーネント又はイベント登録コンポーネントを備えうる。
【0037】
本発明の少なくとも1つの実施態様に従うと、該システムは、アプリケーションの為の登録されたメタデータを解析すること;経路付けするメタデータを識別すること;及び、該拡張された要求インスタンスを該アプリケーションインスタンスに、該識別された経路付けするメタデータに基づいて経路付けすることを含む要求インスタンス経路付けコンポーネントを備えうる。該システムは、スケーラブルなクラウド環境にありうる複数のアプリケーションインスタンスの前にあるルータコンポーネントでありうる。
【0038】
本発明の少なくとも1つの実施態様に従うと、複数のアプリケーションインスタンスを有するスケーラブルアプリケーションにおいて行われる要求を調整する為に提供されるシステムがあり得、該システムは、プロセッサと、下記の複数のコンポーネントの機能を実行する為に複数のコンピュータプログラム命令を該プロセッサに提供するように構成されたメモリとを備えている:複数のアプリケーションインスタンスに経路付けされるべきクライアント要求を受信する為の要求受信コンポーネント;登録されたメタデータに従って該要求のインスタンスを拡張し、該拡張された要求インスタンスが経路付けされるアプリケーションインスタンスからの必要な数の応答インスタンスの完了を調整する為の要求インスタンス拡張コンポーネント;及び、必要な数の完了した応答インスタンスが受信されたときに、未処理の要求インスタンスを終了する為に該アプリケーションインスタンスにわたって該クライアント要求の状態を調整する為の要求インスタンス調整コンポーネント。
【0039】
本発明の少なくとも1つの実施態様に従うと、スケーラブルアプリケーションにおいて行われる要求を調整する為に提供されるコンピュータプログラム製品があり得、該コンピュータプログラム製品は、その中に埋め込まれた複数のプログラム命令を有するコンピュータ可読記憶媒体を備えており、プロセッサによって実行可能な該複数のプログラム命令が、該プロセッサに、複数のアプリケーションインスタンスへの要求を処理する際に適用されるべき応答挙動に関するメタデータを登録すること;該メタデータに従って該クライアント要求を拡張して、該拡張された要求インスタンスが経路付けされるところの複数のアプリケーションインスタンスからの必要な数の応答インスタンスの完了を調整する為の拡張された要求インスタンスを提供すること;及び、必要な数の完了した応答インスタンスが受信されたときに、未処理の拡張された要求インスタンスを終了する為に、該複数のアプリケーションインスタンスにわたって該クライアント要求の状態を調整することを含む方法を実行させる。
【0040】
本発明の少なくとも1つの実施態様に従うと、該コンピュータ可読記憶媒体は、非一時的なコンピュータ可読記憶媒体であってもよく、及びコンピュータ可読プログラムコードは、処理回路によって実行されうる。
【0041】
スケーラブルアプリケーションとのインタラクションを制御する為の概念が提案されている。クラウドコンピューティングの文脈におけるスケーラビリティは、トラフィック需要に対応する為に増大又は減少するリソースを有能な方法で処理する為の能力とみなしうる。本質的に、スケーラビリティは、必要に応じて成長又は縮小することができる容量のレベルを提供しうる。スケーラブルアプリケーションは、アプリケーションのレプリカの形式で、各々が該アプリケーションの機能を実行することができるところの複数のアプリケーションインスタンスを有しうる。該アプリケーションインスタンスは、マルチクラウド又はハイブリッドクラウドのソリューションにおけるクラウドリソース、例えば、異なるクラウドサービスプロバイダを包含する上記のクラウドリソース、の全体にわたって提供されうる。
【0042】
ハイパーテキスト転送プロトコル(HTTP:Hypertext Transfer Protocol)要求(すなわち、或るコンピュータが通信する為に別のコンピュータに送信する情報のパケット)の形式におけるコマンドは、複数のアプリケーションインスタンスのうちの1つだけ、又は複数のアプリケーションインスタンスに経路付けられうる。アプリケーションインスタンスの数は変化し得、及びスケーラブルアプリケーションは、任意の時点で単一のアプリケーションインスタンス又は複数のアプリケーションインスタンスを有しうる。
【0043】
記載された方法及びシステムは、複数のアプリケーションインスタンスに広げられた要求又はアクションの完了が複数のアプリケーションインスタンス間で調整されることができるメカニズムを提供する。本方法及びシステムは、クライアントコマンドと、クラウドプラットフォームの一部として提供されてもよく、クラウドプラットフォームによってホストされてもよく、又はクラウドプラットフォームに関連付けられてもよいところのアプリケーションインスタンスとの間に提供されるルータコンポーネントにおいて提供される。
【0044】
図1を参照すると、模式図は、本明細書に記載された方法が実装されうるシステム100の例示的な実施態様を示す。
図1は、1つの実装の例示に過ぎず、異なる実施態様が実装されうる環境に関していかなる制限も意味しないことが理解されるべきである。図示された環境に対する多くの修正が、設計及び実装要件に基づいてなされうる。
【0045】
アプリケーションを展開、実行又は管理する為のプラットフォームを提供するクラウドプラットフォーム110が示されている。該クラウドプラットフォーム110は、経路付け及びスケーリング機能を提供する任意の形式のクラウドプラットフォーム、例えば、マルチクラウドプラットフォーム及びハイブリッドクラウドプラットフォーム等を包含する上記の任意の形態のクラウドプラットフォーム、であってもよく、並びにアプリケーション又はアプリケーションのコンポーネントが、システムの残りの部分から独立してデプロイされ及びスケーリングされうるマイクロサービスアーキテクチャを可能にしうる。
【0046】
アプリケーションプログラミングインタフェース(API:application programming interface)140は、プラットフォーム110上にデプロイされるアプリケーションの為のハイパーテキスト転送プロトコル(HTTP:Hypertext Transfer Protocol)要求メッセージ及び応答メッセージの定義を含む仕様のセットを定義する。スケーラビリティの場合に、API 140は、例えば、クラウドプラットフォーム110の異なるサーバ上で提供されうる、複数のアプリケーションインスタンス141~143をサポートしうる。
【0047】
API 140は、定義された要求-応答メッセージシステムへの1以上の一般的に公開されたエンドポイントから構成されうる。クライアント101は、アプリケーションの開発、実行又は管理に関連するコマンド要求をAPI 140に発行しうる。例えば、これらは、HTTP要求、例えば、リプレゼンテーショナル・ステート・トランスファー(REST:Representational state transfer)API要求又はシンプル・オブジェクト・アクセス・プロトコル(SOAP:Simple Object Access Protocol)要求、でありうる。
【0048】
クラウドプラットフォーム110は、クライアント101からのクライアント要求102をAPI 140に経路付けする為のルータコンポーネント120を備えうる。ルータコンポーネント120は、ルータコンポーネント120に登録されたAPI 140又はルータコンポーネント120にアクセス可能なAPI 140のインタフェース仕様121にアクセスを有しうる。ルータコンポーネント120は、複数のアプリケーションインスタンスの間のワークロードのバランスをとる為のワークロードバランサーと同様の実装で提供されうる。記載されたルータコンポーネント120は、該ルータコンポーネント120の既存の形式に実装されうる要求完了調整コンポーネント130の追加機能を含みうる。
【0049】
該記載された方法及びシステムは、API 140に送信されうる要求102を調整する為のルータコンポーネント120に要求完了調整コンポーネント130を提供し、ここで、該要求は、複数のアプリケーションインスタンス141~143において行われうる。要求完了調整コンポーネント130は、複数のアプリケーションインスタンスに広げられたクライアント要求の要求インスタンスの完了が調整されうるメカニズムを提供しうる。
【0050】
該記載された方法に従って、インタフェース仕様121は、アプリケーションインスタンスに対する1以上の要求インスタンスとしてクライアント要求102を処理する際に実装されるべき応答挙動に関するメタデータ122を含みうる。メタデータ122は、多数のアプリケーションインスタンスへの必要な経路付けと、1以上のアプリケーションインスタンスから受信されるべき必要な数の完了した応答インスタンスとを含みうる。
【0051】
要求102は、メタデータ122において指定されているように多数のアプリケーションインスタンス141~143に転送されうる拡張された要求インスタンス103を結果として生じる為に、完了調整命令を含むようにルータコンポーネント120において拡張されうる。拡張された要求インスタンス103に対する応答インスタンス104は、要求完了調整コンポーネント130において受信されてもよく、及び該メタデータにおいて指定された調整に従ってそれらの完了が調整されてもよい。集約された応答105が、アプリケーションインスタンス141~143からの応答インスタンス104をコンパイルしてクライアント101に送り返されうる。
【0052】
この機能の1つの実装において、クライアント要求102は、他の要求インスタンス103が該要求を完了すること無しに終了することができるように、該要求に対する1つの完了した応答インスタンス104を有する全てのアプリケーションインスタンス141~143によって行われうる。これは、調整機構、例えば、コールバックメカニズム又は以下に更に説明するようなイベント登録メカニズム、によって実装されうる。
【0053】
ここで
図2を参照すると、少なくとも1つの実施態様に従うスケーラブルアプリケーションプロセス200において動作する例示的な調整要求を示す動作フローチャート図が図示されている。説明された方法は、スケーラブルなクラウド環境内に配置されうる複数のアプリケーションインスタンス141~143の前に設けられたルータコンポーネント120において、以下のように実施されうる。
【0054】
該方法は、複数のアプリケーションインスタンスへの要求を処理する際の応答挙動に関するメタデータを登録しうる。該メタデータは、複数のアプリケーションインスタンスへの要求の経路付けに関するメタデータ、必要な数の完了した応答インスタンスの指定に関するメタデータ、及び応答インスタンスの完了に関するルールを含むアプリケーションにインタフェース仕様を登録(201)することによって登録されうる。インタフェース仕様をアプリケーションに登録することは、要求の種類に関連付けられた要件に従ってメタデータを作成すること、及び該作成されたメタデータを該インタフェース仕様に関連付けることを含みうる。
【0055】
該メタデータは、ユーザによって手動で作成されるか又は機械学習アルゴリズムを用いて自動的に生成されるかのいずれかであるところのインタフェース仕様上の注釈でありうる。開発者又はエンジニアは、インタフェース仕様、例えば該メタデータの注釈を含むインタフェース仕様、を作成しうる。該メタデータは、予想される要求のタイプ(PUT、GET、POST等)に基づいて組み込まれてもよく、又は予想される要求が不明な場合は、メタデータの基本セットが含まれていてもよい。該メタデータは、要求若しくは応答又はそれらの組み合わせの経路付け(すなわち、調整/管理)が異なる方法で又は特定の方法で扱われるべきことを示す指示を提供しうる。例えば、アプリケーションのトレースを可能にする為のコマンド(すなわち、要求)の場合に、メタデータを提供する注釈は、該要求が1つのインスタンスというよりは寧ろ、全てのアプリケーションインスタンスに送信されるべきであること及び1つの完了した応答が必要であることを示し、並びに、完了した応答を構成するものに関するルールが指定されうる。
【0056】
該インタフェース仕様は、デプロイメント時にプラットフォーム技術に登録されてもよく、及びアプリケーションインスタンスの前にあるルータコンポーネントにアクセス可能であってもよい。このようにして、該要求は、ルータコンポーネントによって、インタフェース仕様によって概説される対応するアプリケーションインスタンスの各々に分配されうる。
【0057】
該インタフェース仕様はまた、インタフェース文書、API(アプリケーションプログラミングインタフェース)文書、又はUI(ユーザインタフェース)仕様として言及され、及び標準化されたフレームワークに準拠したアプリケーションの仕様又は記述を含みうる。アプリケーションのインタフェース仕様は、該アプリケーションに関連付けられたアプリケーションインタフェースとの相互作用若しくは統合又はそれらの組み合わせに関連する命令を含みうる。該インタフェース仕様は、ソフトウェアユーザインタフェースの詳細を文書化し、そして、エンドユーザがアプリケーションを介して実行しうる全ての在りうるアクション、並びにアプリケーションにおける全ての視覚、聴覚及び他の相互作用要素を網羅することができる。従って、該インタフェース仕様は、該アプリケーションがどのように動作すべきかについての実装/統合情報の主な情報源でありうる。実装だけでなく、該インタフェース仕様は、ユーザビリティ、ローカライゼーション、及びデモの制限を考慮しうる。一般的に、要求仕様の目的は、製品(すなわち、アプリケーション)が何をすることができるかを記述することであり得、一方、該インタフェース仕様は、これらの要求が実際にどのように実装されるかを詳細に記述することでありうる。
【0058】
例えば、インタフェース仕様121は、RESTful(representational state transfer(リプレゼンテーショナル・ステート・トランスファー))ウェブサービス(すなわち、アプリケーション)を記述し、生成し、消費し、及び可視化し、そして、RESTful APIを文書化する為の機械可読インタフェースファイルの仕様の形式におけるSwagger(登録商標)でありうる。Swagger(登録商標)は、NutraClick,LLCの登録商標である。リプレゼンテーショナル・ステート・トランスファーとは、ウェブサービスを作成する為に使用されるべき制約の1組を定義するソフトウェアアーキテクチャスタイルである。RESTアーキテクチャスタイルに準拠したウェブサービス(すなわちRESTful ウェブサービス)は、インターネット上の複数のコンピュータシステムの間で相互運用性を提供する。RESTful APIは、HTTP要求を使用して、2つ以上のアプリケーションが相互に通信することを可能にするアプリケーションプログラミングインタフェースである。
【0059】
インタフェース仕様121が一旦登録(201)されると、該方法は、クライアント要求を受信(202)しうる。該要求は、アプリケーションインスタンスにおいて実行されるべきコマンドを含みうる。これらは、ハイパーテキスト転送プロトコル(HTTP:Hypertext Transfer Protocol)要求でありうる。該コマンドの例は、該アプリケーションインスタンスにおけるエラーを識別し若しくは解決し又は識別及び解決する為のコマンド(例えば、TRACE HTTP要求)、該アプリケーションインスタンスの状態を含む状態通知を受信する為のコマンド(例えば、STATUS HTTP要求)、該アプリケーションの該インスタンスから情報を取得する為のコマンド(例えば、GET HTTP要求)、該アプリケーションに例えば顧客情報又はファイルアップロード等のデータを送信する為のコマンド(例えば、POST HTTP要求)、定義済みの情報を削除する為のコマンド(例えば、DELETE HTTP要求)、該アプリケーションとの通信フローを確立する為のコマンド(例えば、CONNECT HTTP要求)、該アプリケーションについての通信オプションを記述する為のコマンド(例えば、OPTIONS HTTP要求)を包含するが、これらに限定されない。
【0060】
提案された実施態様は、アプリケーションの全てのインスタンス(又は、該インスタンスの選択)によって経路付けされ、それによって完了する為に、RESTfulインタフェースを介して要求を呼び出すという概念を使用しうる。コマンドがどのように呼び出されるかは、該アプリケーションのインタフェース仕様に関連付けられたメタデータに基づきうる。
【0061】
該方法は、該受信した要求のインタフェース仕様を検査(203)して、該要求の経路付け及び応答の調整に関する命令を決定することでありうる。該メタデータは、要求インスタンスが複数のアプリケーションインスタンス(全てのインスタンス、又はインスタンスのサブセットのいずれか)に送信され、及び応答インスタンスが、要求が送信されるべきところの全てのアプリケーションインスタンスよりも少ないアプリケーションインスタンスからのみ必要であることを示す場合に、該要求は、完了することを必要としない要求インスタンスの終了を調整する為の指示を含む拡張要求インスタンスを生成する為に拡張(204)される。
【0062】
該方法は、複数のアプリケーションインスタンスに送信されるべきところの複数の要求インスタンスを拡張(204)しうる。各要求インスタンスは、該要求が経路付けされる複数のアプリケーションインスタンスからの必要な数の応答の完了を調整する為の命令を提供するように、拡張(204)されうる。例えば、該命令は、該要求インスタンスのヘッダ内に含まれうる。
【0063】
該拡張された要求インスタンスは、経路付けメタデータに従って、該複数のアプリケーションインスタンスに送信(205)されうる。
【0064】
該方法は、該複数のアプリケーションインスタンス全体にわたって全ての該要求インスタンスを含む要求の状態を調整(206)して、必要な数の完了した応答インスタンスが受信されたときに、未処理の要求インスタンスを終了する。これにより、各要求インスタンスが完了しなければならない場合に生じるリソースの使用及びクライアントへの応答における遅延を低減する。
【0065】
該調整は、要求インスタンスによる完了に応じて更新を受信する為の、及び要求インスタンスが他の要求インスタンスが完了したかをチェックする為のエンドポイントチェックを提供しうる。該アプリケーションインスタンスは、該エンドポイントチェックを実行してもよく、又は該要求完了調整コンポーネントは、適切な応答インスタンスを受信したときに登録されてもよい。該エンドポイントチェックは、コールバックメカニズムにより、イベント登録メカニズムにより、又は複数の要求インスタンスの間の調整を可能にする他の方法により提供されうる。
【0066】
該方法は、該複数のアプリケーションインスタンスに送信された該要求インスタンスからの全ての応答を待ち、そして、完了した応答と終了した応答とを含む応答を一緒(207)にして、集約された単一の応答を該クライアントに送信(208)する。代替的には、該方法は、他の要求インスタンスからの応答を待つこと無しに、1つの要求インスタンス又は指定された数の要求インスタンスからの最初の応答を、それが又はそれらが受信されるとすぐに該クライアントに送り返しうる。これにより、完了した要求応答ができるだけ早く送信されることが可能になりうる。
【0067】
該複数のアプリケーションインスタンスからの複数のインスタンスを一緒(207)にして集約応答を形成するかどうかは、該登録されたメタデータにおいて指定されうる。
【0068】
ここで
図3を参照すると、少なくとも1つの実施態様に従う、コールバックメカニズムの複数の要求インスタンスの完了の例示的な調整プロセス300を示す動作フローチャート図が図示されている。
【0069】
該複数の要求インスタンスが、コールバック命令を用いて複数のアプリケーションインスタンスに送信(301)されうる。該要求インスタンスに提供されるコールバックは、1つのアプリケーションインスタンスが要求を完了したときに、他のアプリケーションインスタンスが停止することができるように調整する。該要求インスタンスは、インタフェース仕様のメタデータに従って、全てのアプリケーションインスタンス又はインスタンスのサブセットに送信(301)をしうる。
【0070】
完了した応答は、該複数のアプリケーションインスタンスのうちの1つに送信された複数の要求インスタンスのうちの1つから受信(302)されうる。該要求インスタンスは、それが完了したことを示す為に、該要求インスタンスに対して拡張されたコールバックを呼び出し(303)うる。
【0071】
該複数のアプリケーションインスタンスが該要求インスタンスの処理の一部として、状態の為にコールバックをポーリングするときに、該要求インスタンスを処理する残りのアプリケーションインスタンスは、完了を観察(304)しうる。それ故に、残りの要求インスタンスを処理する残りのアプリケーションインスタンスは、それらの要求インスタンスの処理を終了(305)し、そして適切な応答を送信する。
【0072】
下記の例は、記載された方法の実装例が、トレース要求においてどのように機能しうるかを示す。
【0073】
あるアプリケーションは、3つのアプリケーションインスタンス(レプリカ)を有するクラウドプラットフォームにデプロイされ、及び予め定義された位置において、関連付けられたAPI仕様を有し、及びクラウドプラットフォームのルータコンポーネントに登録される。該API仕様は、要求が全てのインスタンスに振り分けられるべきことを示す経路付けメタデータと、該要求が1つのインスタンス(必須:1)のみによって処理される必要があり且つ応答が集約されるべきことを示す応答メタデータを含む。応答メタデータはまた、データをどのように集約するかのルールを含みうる。例えば、「少なくとも1つの200個の応答があれば200、それ以外は最も一般的」というルールとは、応答インスタンスからの200個のうちの少なくとも1つの応答コードがあった場合に、集約された応答の応答コードは200であるべきであり、それ以外は、200個の応答コードがない場合には最も一般的な応答コード(すなわち、503)が使用されうることを意味する。
【0074】
トレース要求のメタデータは、下記を含みうる:
【表1】
<表1訳>
パス
/v1/startTrace
ポスト:
オペレーションID:"startTrace"
記述: "サーバにトレースを開始するように指示"
経路付:
要求: "全てのインスタンス"
応答:
種類: "集約"
ルール: "少なくとも200個の応答がある場合は200、それ以外の場合は最も一般的"
要求される: 1
応答:
200:
記述: "OK"
503:
記述: "利用不可能"
【0075】
例外が発生させられる問題が識別され、そして、トレースが必要とされる。ユーザがREST APIを介してコマンドを発行し、トレースを開始し、そして、該例外が観測されうる時点で停止する。
【0076】
該要求はルータコンポーネントに送られ、ここで、API仕様が検査され得、そして、該アプリケーションの1つのインスタンスに経路付けするだけでなく、該メタデータが要求「全てのインスタンス」(all-instances)を要求する場合に、該要求は全てのアプリケーションインスタンスに経路付けられうる。
【0077】
或るアプリケーションインスタンスが該要求インスタンスを完了したときに、他のアプリケーションインスタンスが停止することができるように調整する為に、該要求インスタンスにコールバックが提供されうる。
【0078】
各アプリケーションインスタンスは要求インスタンスを受信し、そして、トレースを開始する。3つのアプリケーションインスタンスのうち、第2のアプリケーションインスタンスが例外を記憶し、そして、定義された応答インスタンスを送信する。該第2のアプリケーションインスタンスは、ルータによって該要求インスタンスに対して拡張されたコールバックを呼び出して、それが完了したことを示す。
【0079】
残りの第1及び第3のアプリケーションインスタンスは、状態についてのコールバックをポーリングし、及び該第2のアプリケーションインスタンスからの完了を観察し、そして、トレースを停止し、適切な応答インスタンスを送信する。
【0080】
ルータコンポーネントは、要求が経路付けされた全てのアプリケーションインスタンスからの応答を待ち、次に、該メタデータによる要求に応じて、それら全てをクライアントアプリケーションへの単一の応答に集約する。例えば、“HTTP Status Code:200 [{"BIP3001 not observed on server instance 0001"},{"BIP3001 observed on server instance 0002"},{"BIP3001 not observed on server instance 0003"}](単一の応答の訳:“HTTP状態コード:200 [{"BIP3001は、サーバインスタンス0001において観察されなかった"},{"BIP3001は、サーバインスタンス0002において観察された"},{"BIP3001は、サーバインスタンス0003において観察されなかった"}])。
【0081】
このことにより、全てのアプリケーションインスタンスにおいてトレースをすることが開始され、そして、全てのアプリケーションインスタンスは、エラーが検出されたときに停止する。ユーザがトレースログを取得するときに、該レースログはイベントを捕捉し、そして、リソースの使用効率を高める。
【0082】
他の実施態様において、実装が、要求インスタンスの調整の為のコールバックメカニズムの代わりにイベント登録メカニズムを選択しうる。
【0083】
イベント登録メカニズムにおいて、アプリケーションインスタンスは、特定の「イベント」についての所与のエンドポイントに「登録」要求を送信しうる。典型的には、該アプリケーションインスタンスは次に、特定のイベントタイプが起動したときに実行されるであろう異なるタイプのイベントを処理する為の「ハンドラ」(すなわち、onMessage()又はonError()関数)を有するであろう。この場合、要求インスタンスが成功裡に完了したときに、該要求インスタンスを完了したアプリケーションインスタンスは、エンドポイント又は要求完了調整コンポーネント130に伝えうる。次に、このことにより、他のアプリケーションインスタンスに通知する「イベント」がトリガーされ、それらのonMessage()関数が、最初のアプリケーションインスタンスが完了したことを示すメッセージとともに起動される。次に、アプリケーションインスタンスが適切なアクションを取るであろう。
【0084】
ここで
図4を参照すると、
図4は、少なくとも1つの実施態様に従って図示されたシステムのブロック図である。該ブロック図は、スケーラブルなクラウド環境に関連して提供される
図1において図示されたルータコンポーネント120の1つの実施態様を示す。ルータコンポーネント120は、少なくとも1つのプロセッサ401、ハードウェアモジュール、又は少なくとも1つのプロセッサ上で実行されるソフトウェアユニットでありうるところの上記で説明されたコンポーネントの機能を実行する為の回路を備えているコンピューティングシステム400上に提供されうる。並列処理スレッドを実行する複数のプロセッサが提供されてもよく、それは、コンポーネントの機能の一部又は全ての並列処理を可能にする。メモリ402は、コンポーネントの機能を実行する為に少なくとも1つのプロセッサ401にコンピュータ命令403を提供するように構成されうる。
【0085】
ルータコンポーネント120は、複数のアプリケーションインスタンスへの要求を処理する際の応答挙動に関するメタデータを含むインタフェース仕様121を登録する為の登録コンポーネント420を備えている。インタフェース仕様121によって提供されるメタデータは、要求の為に必要な経路付け動作に関する経路付けメタデータ421、例えば、要求が送信されるべきところのアプリケーションインスタンスの数等、を含む。インタフェース仕様121によって提供されるメタデータはまた、応答インスタンスの完了に関するルールと、必要な数の完了した応答インスタンスとを含む応答メタデータ422を含む。インタフェース仕様121によって提供されるメタデータはまた、要求に対する応答の報告挙動(reporting behavior)を指定する集約メタデータ423を含みうる。
【0086】
ルータコンポーネント120は、要求の要求インスタンスを調整する為の要求完了調整コンポーネント130を備えていてもよく、該要求インスタンスは、アクションの為に複数のアプリケーションインスタンスに送信される。
【0087】
要求完了調整コンポーネント130は、アプリケーションインスタンスへの経路付けの為の要求を受信する為の要求受信コンポーネント431と、要求の為に、登録されたインタフェース仕様121のメタデータを検査する為の仕様検査コンポーネント432とを備えていることができる。メタデータアクセスコンポーネント433は、要求に対する、経路付けメタデータ421、応答メタデータ422及び集約メタデータ423を包含する登録されたメタデータにアクセスしうる。
【0088】
要求完了調整コンポーネント130は、要求のインスタンスを複数のアプリケーションインスタンスに、経路付けメタデータ421に従って経路付けする為の要求インスタンス経路付けコンポーネント434と、要求インスタンスが経路付けされたところのアプリケーションインスタンスからの必要な数の応答インスタンスの完了を調整する為の指示を含むように、応答メタデータ422に従って各要求インスタンスを拡張する為の要求インスタンス拡張コンポーネント435とを備えうる。
【0089】
要求完了調整コンポーネント130は、必要な数の完了した応答が受信されたときに、該要求の未処理のインスタンスを終了させる為に、該アプリケーションインスタンス全体にわたって該要求の状態を調整する為の要求インスタンス調整コンポーネント440を備えうる。要求インスタンス調整コンポーネント440は、完了した要求インスタンスが完了時に更新を送信する為の、及び他の要求インスタンスが完了したかをチェックする為の要求インスタンスを提供する。要求インスタンス調整コンポーネント440は、コールバックメカニズムコンポーネント441又はイベント登録コンポーネント442を備えうる。
【0090】
要求完了調整コンポーネント130は集約コンポーネント436を備えていてもよく、該集約コンポーネント436は、該要求の為の登録された集約メタデータ423に基づいて、アプリケーションインスタンスからの複数の応答インスタンスを一緒にして集約応答を形成する。該集約された応答は、完了した応答と終了した応答とを含みうる。
【0091】
図5は、本発明の実施態様に従う、クラウドプラットフォーム110におけるルータコンポーネント120の
図1において図示されたシステムの為に使用されるコンピューティングシステムのコンポーネントのブロック図を図示する。
図5は、1つの実装の例示を提供するだけであり、異なる実施態様が実装されうる環境に関していかなる制限も意味しないことが理解されるべきである。図示された環境に対する多くの変更がなされうる。
【0092】
該コンピューティングシステムは、1以上のプロセッサ502、1以上のコンピュータ可読RAM 504、1以上のコンピュータ可読ROM 506、1以上のコンピュータ可読記憶媒体508、デバイスドライバ512、読み取り/書き込みドライブ又はインタフェース514、及びネットワークアダプタ又はインタフェース516を備えており、ここで、全てが通信ファブリック518上で相互接続されうる。通信ファブリック518は、プロセッサ(例えば、マイクロプロセッサ、通信及びネットワークプロセッサ)、システムメモリ、周辺デバイス、及び該システム内の他の任意のハードウェアコンポーネントの間でデータ若しくは制御情報又はそれらの組み合わせを渡す為に設計された任意のアーキテクチャで実装されることができる。
【0093】
1以上のオペレーティングシステム510、及びアプリケーションプログラム511、例えば、ルータコンポーネント120及び要求完了調整コンポーネント130、が、夫々のRAM 504(それは、典型的にはキャッシュメモリを包含する)の1以上を介してプロセッサ502のうちの1以上によって実行される為にコンピュータ可読記憶媒体508のうちの1以上において記憶される。図示された実施態様において、コンピュータ可読記憶媒体508の各々は、内部ハードドライブ、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク、半導体ストレージデバイス、例えば、RAM、ROM、EPROM、フラッシュメモリ、又は本発明の実施態様に従うコンピュータプログラム及びデジタル情報を記憶できる任意の他のコンピュータ可読記憶媒体であることができる。
【0094】
該コンピューティングシステムはまた、1以上のポータブルコンピュータ可読記憶媒体526から読み取り及びそれに書き込む為のR/Wドライブ又はインタフェース514を備えうる。コンピューティングシステム上のアプリケーションプログラム511は、ポータブルコンピュータ可読記憶媒体526のうちの1以上において記憶され、夫々のR/Wドライブ又はインタフェース514を介して読み取られ、そして、夫々のコンピュータ可読記憶媒体508へとロードされうる。
【0095】
該コンピューティングシステムはまた、ネットワークアダプタ又はインタフェース516、例えばTCP/IPアダプタカード又は無線通信アダプタ、を備えうる。該コンピューティングシステム上のアプリケーションプログラム511は、ネットワーク(例えば、インターネット、ローカルエリアネットワーク又は他のワイドエリアネットワーク又は無線ネットワーク)及びネットワークアダプタ又はインタフェース516を介して、外部コンピュータ又は外部ストレージデバイスからコンピューティングデバイスにダウンロードされることができる。ネットワークアダプタ又はインタフェース516から、該アプリケーションプログラムは、コンピュータ可読記憶媒体508へとロードされうる。該ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及びエッジサーバを備えうる。
【0096】
該コンピューティングシステムはまた、ディスプレイスクリーン520、キーボード又はキーパッド522、及びコンピュータマウス又はタッチパッド524を備えうる。デバイスドライバ512は、撮像の為にディスプレイスクリーン520に、キーボード又はキーパッド522に、コンピュータマウス又はタッチパッド524に、若しくは英数字文字入力及びユーザ選択の圧力検知の為に、又はそれらの組み合わせの為に、ディスプレイスクリーン520にインタフェースする。デバイスドライバ512、R/Wドライブ又はインタフェース514、及びネットワークアダプタ又はインタフェース516は、コンピュータ可読記憶媒体508若しくはROM 506又はそれらの組み合わせに記憶されたハードウェア及びソフトウェアを備えうる。
【0097】
本発明は、統合の在りうる任意の技術的詳細レベルでの、システム、方法若しくはコンピュータプログラム製品又はそれらの組み合わせでありうる。該コンピュータプログラム製品は、プロセッサに本発明の観点を実行させる為の複数のコンピュータ可読プログラム命令を有する1以上のコンピュータ可読記憶媒体を包含しうる。
【0098】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に列挙される教示の実装はクラウドコンピューティング環境に限定されないことが理解されるべきである。寧ろ、本発明の実施態様は、現在知られている又は後に開発される任意の他の種類のコンピューティング環境と組み合わされて実装されることができる。
【0099】
クラウドコンピューティングは、最小限の管理労力又はサービスのプロバイダとの相互作用で迅速にプロビジョニングされ且つ解放されることができる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理(processing)、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にする為のサービス提供のモデルである。このクラウドモデルは、少なくとも5つの特徴、少なくとも3つのサービスモデル、及び少なくとも4つのデプロイメントモデル(deployment model)を含みうる。
【0100】
特徴は下記の通りである。
【0101】
オンデマンドセルフサービス(On-demand self-service):クラウドコンシューマ(cloud consumer)は、サービスのプロバイダとのヒューマンインターラクション(human interaction)を必要とせずに、自動的に必要に応じて、コンピューティング機能、例えばサーバ時間及びネットワークストレージ、を一方的にプロビジョニングすることができる。
【0102】
ブロードネットワークアクセス:機能は、ネットワークを介して利用可能であり、及び異種のシン(thin)クライアント・プラットフォーム又はシック(thick)クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
【0103】
リソースのプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数のコンシューマにサービスを提供する為にプールされ、及び様々な物理リソースと仮想リソースが需要に従って動的に割り当てられ及び再割り当てされる。コンシューマは一般的に、提供されたリソースの正確なロケーションについての制御又はナレッジを有していないが、より高いレベルの抽象化でのロケーション(例えば、国、州又はデータセンター)を特定できうるという点で、ロケーションに依存しないといえる。
【0104】
迅速な順応性:機能は、迅速且つ弾力的にプロビジョニングされ、場合によっては自動的に、迅速にスケールアウトされ、迅速にリリースされて迅速にスケールインされうる。コンシューマにとって、プロビジョニングに利用可能な機能はしばしば、無制限であり及びいつでも任意の量で購入されることができる。
【0105】
測定されたサービス:クラウド・システムは、サービスの種類(例えば、ストレージ、処理、帯域幅、及びアクティブなユーザアカウント)に適した何らかの抽象化レベルでの計量機能を用いることによって、リソースの使用を自動的に制御し及び最適化する。リソース使用は監視され、制御され、及び報告されることができ、利用されるサービスのプロバイダ及びコンシューマの両方についての透明性を提供することができる。
【0106】
サービスモデルは下記の通りである。
【0107】
サービスとしてのソフトウェア(SaaS:Software as a Service):クラウドインフラストラクチャにおいて実行しているプロバイダのアプリケーションを使用する為に、コンシューマに提供される機能である。該アプリケーションは、シン・クライアント・インタフェース、例えばウェブブラウザ(例えば、ウェブベースの電子メール)、を通じて、様々なクライアント・装置からアクセス可能である。該コンシューマは、制限されたユーザ固有のアプリケーション構成設定の在りうる例外として、基礎をなすクラウドインフラストラクチャ、例えば、ネットワーク、サーバ、オペレーティングシステム、ストレージ、又は個々のアプリケーション機能さえも包含する基礎をなすクラウドインフラストラクチャ、を管理又は制御しない。
【0108】
サービスとしてのプラットフォーム(PaaS:Platform as a Service):プロバイダによってサポートされるプログラミング言語及びツールを用いて作成された、コンシューマが作成した又は取得したアプリケーションを、クラウドインフラストラクチャ上にデプロイする為に、該コンシューマに提供される機能である。該コンシューマは、基礎をなすクラウドインフラストラクチャ、例えば、ネットワーク、サーバ、オペレーティングシステム、又はストレージを包含する基礎をなすクラウドインフラストラクチャ、を管理又は制御しないが、デプロイされたアプリケーション、及び場合によってはアプリケーションホスティング環境構成に対して制御を有する。
【0109】
サービスとしてのインフラストラクチャ(IaaS:Infrastructure as a Service):コンシューマが、オペレーティングシステム及びアプリケーションを含むことができる任意のソフトウェアをデプロイ及び実行することができる、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティングリソースをプロビジョニングする為に、該コンシューマに提供される機能である。該コンシューマは、基礎をなすクラウドインフラストラクチャを管理又は制御しないが、オペレーティングシステム、ストレージ、デプロイされたアプリケーションに対する制御、並びに、場合によっては、ネットワーク・コンポーネント(例えば、ホストのファイアウォール)を選択することの制限された制御を有する。
【0110】
デプロイメントモデル(Deployment Models)は下記の通りである。
【0111】
プライベートクラウド:クラウドインフラストラクチャは、ある組織の為のみに運営される。該クラウドインフラストラクチャは、該組織又は第三者によって管理され得、及びオンプレミス(on-premises)又はオフプレミス(off-premises)に存在しうる。
【0112】
コミュニティクラウド:クラウドインフラストラクチャは、幾つかの組織によって共有され、及び共通の関心事項(例えば、ミッション、セキュリティ要件、ポリシ、及びコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。該クラウドインフラストラクチャは、該組織又は第三者によって管理され得、及びオンプレミス又はオフプレミスに存在しうる。
【0113】
パブリッククラウド:クラウドインフラストラクチャは、一般公衆又は大規模な業界グループに対して利用可能であり、及びクラウドサービスを販売する組織によって所有される。
【0114】
ハイブリッドクラウド:クラウドインフラストラクチャは、固有のエンティティのままであるが、データ及びアプリケーションの移行性を可能にする標準化された又は専用の技術(例えば、クラウド間の負荷分散の為のクラウド・バースティング)によって組み合わされる2以上のクラウド(プライベート、コミュニティ、又はパブリック)の混成物である。
【0115】
クラウドコンピューティング環境は、無国籍性(statelessness)、低結合性、モジュール性、及びセマンティック相互運用性(semantic interoperability)に焦点を有する指向されたサービスである。クラウドコンピューティングの中核(heart)は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0116】
ここで
図6を参照すると、例示的なクラウドコンピューティング環境50が図示されている。図示されているように、クラウドコンピューティング環境50は、クラウドコンシューマ、例えば、パーソナルデジタルアシスタント(PDA:personal digital assistant)又は携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C若しくは自動車コンピュータシステム54N又はそれらの組み合わせ、によって用いられるローカルコンピューティングデバイスが通信しうる1以上のクラウドコンピューティングノード10を備えている。クラウドコンピューティングノード10は、互いに通信しうる。それらは、1以上のネットワーク、例えば、本明細書において記載されている、プライベートクラウド、コミュニティクラウド、パブリッククラウド、若しくはハイブリッドクラウド、又はそれらの組み合わせ、において物理的又は仮想的にグループ化されていてもよい(図示せず)。これにより、クラウドコンピューティング環境50は、クラウドコンシューマがローカルコンピューティングデバイス上のリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム若しくはソフトウェア又はそれらの組み合わせを提供することができる。
図6に示されているコンピューティングデバイス54A~54Nの種類は、例示のみを意図されていること、並びにコンピューティングノード10及びクラウドコンピューティング環境50は、任意の種類のネットワーク若しくはネットワークアドレス可能接続又はそれらの組み合わせを介して(例えば、ウェブブラウザを使用して)任意の種類のコンピュータ化されたデバイスと通信することが理解される。
【0117】
ここで
図7を参照すると、クラウドコンピューティング環境50(
図6)によって提供される機能的抽象化層の1組が示されている。
図7において示されているコンポーネント、層及び機能は、単に例示であることが意図されていること、並びに本発明の実施態様はそれらに限定されないことが理解されるべきである。図示されている通り、下記の複数の層及び対応する複数の機能が提供される。
【0118】
ハードウェア及びソフトウェア層60は、ハードウェアコンポーネント及びソフトウェアコンポーネントを包含する。ハードウェアコンポーネントの例は、メインフレーム61、RISC(Reduced Instruction Set Computer(縮小命令セット・コンピュータ))アーキテクチャ・ベースのサーバ62;サーバ63;ブレード・サーバ64;ストレージデバイス65;並びに、ネットワーク及びネットワーキングコンポーネント66を包含する。幾つかの実施態様において、ソフトウェアコンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67及びデータベース・ソフトウェア68を包含する。
【0119】
仮想化層70は、抽象化層を提供し、この抽象化層から、仮想エンティティの下記の例が提供されうる:すなわち、仮想サーバ71;仮想ストレージ72;仮想ネットワーク73;例えば仮想プライベートネットワークを包含する上記の仮想ネットワーク73;仮想アプリケーション及びオペレーティングシステム74;並びに、仮想クライアント75。
【0120】
1つの例において、管理層80は、以下で説明される複数の機能を提供しうる。リソース・プロビジョニング81は、クラウドコンピューティング環境内でタスクを実行する為に利用されるコンピューティングリソース及び他のリソースの動的な調達を提供する。計量及び価格決定82は、リソースがクラウドコンピューティング環境内で利用される場合のコスト追跡と、これらのリソースの消費についての課金又は請求とを提供する。1つの例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを包含しうる。セキュリティは、クラウドコンシューマ及びタスクに対する識別検証と、データ及び他のリソースに対する保護とを提供する。ユーザ・ポータル83は、コンシューマ及びシステム管理者の為に、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されるサービスレベルが満たされるように、クラウド・コンピューティング・リソースの割り当て及び管理を提供する。サービス・レベル・アグリーメント(SLA:Service Level Agreement)の計画及び履行85は、将来の要件がSLAに従って予想されるクラウド・コンピューティング・リソースの為の事前配置及びその調達を提供する。
【0121】
ワークロード層90は、該クラウドコンピューティング環境が利用されうる複数の機能の例を提供する。この層から提供されうる複数のワークロード及び複数の機能の例は、マッピング及びナビゲーション91;ソフトウェア開発及びライフサイクル管理92;仮想教室教育の提供93;データアナリティクス処理94;トランザクション処理95;並びに要求ルーティング処理96を包含する。
【0122】
本発明のコンピュータプログラム製品は、コンピュータ可読プログラムコードがその中に格納された1以上のコンピュータ可読ハードウェアストレージデバイスを備えており、ここで、該プログラムコードは、本発明の方法を実装する為に1以上のプロセッサによって実行可能である。
【0123】
本発明のコンピュータシステムは、1以上のプロセッサ、1以上のコンピュータ可読メモリ、及び1以上のコンピュータ可読ハードウェアストレージデバイスを備えており、ここで、該1以上のハードウェアストレージデバイスは、本発明の方法を実装する為の該1以上のコンピュータ可読メモリを介して、該1以上のプロセッサによって実行可能なプログラムコードを含む。
【0124】
本発明の様々な実施態様の記載は、例示の目的の為に提示されたものであり、網羅的であること又は開示された実施態様に限定されることが意図されたものでない。多くの修正及び変形が、記載された実施態様の範囲及び精神から逸脱すること無しに当業者に明らかであろう。本明細書において使用される語は、実施態様の原理、実用的な用途、又は市場において見られる技術に対する技術的改善を最もよく説明する為に、又は当業者が本明細書において開示されている実施態様を理解することができるようにする為に選択された。
【0125】
改善及び修正が、本発明の範囲から逸脱すること無しに、前述されたものに対して行われることができる。
【手続補正書】
【提出日】2023-07-03
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
スケーラブルアプリケーションにおいて行われる要求を調整する方法であって、
1以上のアプリケーションインスタンスへのクライアント要求を処理する際に適用されるべき応答挙動に関するメタデータを登録すること;
前記メタデータに従って前記クライアント要求を拡張して、前記1以上のアプリケーションインスタンスからの必要な数の応答インスタンスの完了を調整する為に拡張された要求インスタンスを提供すること;及び、
前記アプリケーションインスタンス全体にわたって前記クライアント要求の状態を調整し、必要な数の完了した応答インスタンスが受信されたときに、未処理の拡張された要求インスタンスを終了すること
を含む、前記方法。
【請求項2】
前記メタデータに従って前記クライアント要求を拡張することが、拡張された要求インスタンスのヘッダ内に応答調整命令を追加することを含む、請求項1に記載の方法。
【請求項3】
前記1以上のアプリケーションインスタンス全体にわたって前記クライアント要求の前記状態を調整することが、完了した要求インスタンスにおける更新を受信する為の、及び他の要求インスタンスが完了したかをチェックする為の要求インスタンスの為のエンドポイントチェックを提供する、請求項1に記載の方法。
【請求項4】
前記応答インスタンスが完了したときに前記1以上のアプリケーションインスタンスが前記エンドポイントに更新を提供するところのコールバックメカニズムによって、前記エンドポイントチェックが提供される、請求項3に記載の方法。
【請求項5】
前記1以上のアプリケーションインスタンスが完了した要求インスタンスのイベントに登録するところのイベント登録メカニズムによって、前記エンドポイントチェックが提供される、請求項3に記載の方法。
【請求項6】
前記アプリケーションインスタンスからの複数の応答インスタンスを一緒にして、1以上の完了した応答インスタンスと在りうる終了した応答インスタンスとを含む集約応答を、前記登録されたメタデータに基づいて形成することを更に含む、請求項1に記載の方法。
【請求項7】
前記要求インスタンスからの前記応答インスタンスを待つこと;及び、
前記1以上の応答インスタンスを一緒にして、前記集約応答を形成すること
を更に含む、請求項6に記載の方法。
【請求項8】
スケーラブルアプリケーションにおいて要求を調整する為のコンピュータシステムであって、該コンピュータシステムが、
1以上のプロセッサ、1以上のコンピュータ可読メモリ、1以上のコンピュータ可読有形記憶媒体、及び前記1以上のコンピュータ可読メモリのうちの少なくとも1つを介して前記1以上のプロセッサのうちの少なくとも1つによって実行する為の、前記1以上のコンピュータ可読有形記憶媒体のうちの少なくとも1つ上に記憶された複数のプログラム命令を備えており、ここで、前記コンピュータシステムが、
1以上のアプリケーションインスタンスへのクライアント要求を処理する際に適用されるべき応答挙動に関するメタデータを登録すること;
前記メタデータに従って前記クライアント要求を拡張して、前記1以上のアプリケーションインスタンスからの必要な数の応答インスタンスの完了を調整する為に拡張された要求インスタンスを提供すること;及び、
前記アプリケーションインスタンス全体にわたって前記クライアント要求の状態を調整し、必要な数の完了した応答インスタンスが受信されたときに、未処理の拡張された要求インスタンスを終了すること
を含む方法を実行することができる、
前記コンピュータシステム。
【請求項9】
前記メタデータに従って前記クライアント要求を拡張することが、拡張された要求インスタンスのヘッダ内に応答調整命令を追加することを含む、請求項8に記載のコンピュータシステム。
【請求項10】
前記1以上のアプリケーションインスタンス全体にわたって前記クライアント要求の前記状態を調整することが、完了した要求インスタンスにおける更新を受信する為の、及び他の要求インスタンスが完了したかをチェックする為の要求インスタンスの為のエンドポイントチェックを提供する、請求項8に記載のコンピュータシステム。
【請求項11】
前記応答インスタンスが完了したときに前記1以上のアプリケーションインスタンスが前記エンドポイントに更新を提供するところのコールバックメカニズムによって、前記エンドポイントチェックが提供される、請求項10に記載のコンピュータシステム。
【請求項12】
前記1以上のアプリケーションインスタンスが完了した要求インスタンスのイベントに登録するところのイベント登録メカニズムによって、前記エンドポイントチェックが提供される、請求項10に記載のコンピュータシステム。
【請求項13】
前記アプリケーションインスタンスからの複数の応答インスタンスを一緒にして、1以上の完了した応答インスタンスと在りうる終了した応答インスタンスとを含む集約応答を、前記登録されたメタデータに基づいて形成することを更に含む、請求項8に記載のコンピュータシステム。
【請求項14】
前記要求インスタンスからの前記応答インスタンスを待つこと;及び、
前記1以上の応答インスタンスを一緒にして、前記集約応答を形成すること
を更に含む、請求項13に記載のコンピュータシステム。
【請求項15】
スケーラブルアプリケーションにおいて行われる要求を調整する為のコンピュータプログラムであって、
1以上のアプリケーションインスタンスへのクライアント要求を処理する際に適用されるべき応答挙動に関するメタデータを登録すること;
前記メタデータに従って前記クライアント要求を拡張して、前記1以上のアプリケーションインスタンスからの必要な数の応答インスタンスの完了を調整する為に拡張された要求インスタンスを提供すること;及び、
前記アプリケーションインスタンス全体にわたって前記クライアント要求の状態を調整し、必要な数の完了した応答インスタンスが受信されたときに、未処理の拡張された要求インスタンスを終了すること
を含む方法の各工程を前記プロセッサに実行させる、前記コンピュータプログラム。
【請求項16】
前記メタデータに従って前記クライアント要求を拡張することが、拡張された要求インスタンスのヘッダ内に応答調整命令を追加することを含む、請求項15に記載のコンピュータプログラム。
【請求項17】
前記1以上のアプリケーションインスタンス全体にわたって前記クライアント要求の前記状態を調整することが、完了した要求インスタンスにおける更新を受信する為の、及び他の要求インスタンスが完了したかをチェックする為の要求インスタンスの為のエンドポイントチェックを提供する、請求項15に記載のコンピュータプログラム。
【請求項18】
前記応答インスタンスが完了したときに前記1以上のアプリケーションインスタンスが前記エンドポイントに更新を提供するところのコールバックメカニズムによって、前記エンドポイントチェックが提供される、請求項17に記載のコンピュータプログラム。
【請求項19】
前記1以上のアプリケーションインスタンスが完了した要求インスタンスのイベントに登録するところのイベント登録メカニズムによって、前記エンドポイントチェックが提供される、請求項17に記載のコンピュータプログラム。
【請求項20】
前記アプリケーションインスタンスからの複数の応答インスタンスを一緒にして、1以上の完了した応答インスタンスと在りうる終了した応答インスタンスとを含む集約応答を、前記登録されたメタデータに基づいて形成すること;
前記要求インスタンスからの前記応答インスタンスを待つこと;及び、
前記1以上の応答インスタンスを一緒にして、前記集約応答を形成すること
を前記プロセッサに更に実行させる、請求項15に記載のコンピュータプログラム。
【国際調査報告】