(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-03
(45)【発行日】2024-06-11
(54)【発明の名称】アプリケーションの多目的最適化
(51)【国際特許分類】
G06F 11/34 20060101AFI20240604BHJP
G06F 8/77 20180101ALI20240604BHJP
【FI】
G06F11/34 152
G06F8/77
(21)【出願番号】P 2022562496
(86)(22)【出願日】2021-04-29
(86)【国際出願番号】 CN2021091104
(87)【国際公開番号】W WO2021219093
(87)【国際公開日】2021-11-04
【審査請求日】2023-09-25
(32)【優先日】2020-04-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】パーシャサラシー、スリニヴァサン
(72)【発明者】
【氏名】オリヴェイラ、ファビオ エー
(72)【発明者】
【氏名】ラヴィチャンドラン、スシュマ
【審査官】北川 純次
(56)【参考文献】
【文献】国際公開第2020/075017(WO,A1)
【文献】特開2016-105687(JP,A)
【文献】米国特許出願公開第2019/0129764(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/34
G06F 8/77
(57)【特許請求の範囲】
【請求項1】
コンピュータ・システムであって、
メモリに動作可能に結合された処理ユニットと、
前記処理ユニットに動作可能に結合された人工知能(AI)プラットフォームと、を備え、前記AIプラットフォームは、クラウド・アプリケーションの多目的最適化を統合するように構成され、前記AIプラットフォームが、
前記アプリケーションに関連する2つ以上の主要性能インジケータ(KPI)のセットを受け取る入力マネジャであって、前記KPIのセット中の各KPIがKPI値に関連付けられている、前記入力マネジャと、
機械学習(ML)ベースの代理関数学習モデルを獲得関数との組合せで活用して、1つまたは複数のパラメータを用いて前記アプリケーションの適応型試行実行を行う試行マネジャであって、前記試行マネジャが、各試行実行からの出力を観察し、前記観察された出力のパレート面を算出する、前記試行マネジャと、
前記算出されたパレート面を探索し、前記1つまたは複数のパラメータの構成に対応する最適なアプリケーション動作点を選択する最適化マネジャであって、前記最適化マネジャが、前記選択された最適な動作点で前記アプリケーションを実行する、前記最適化マネジャと、
を備える、コンピュータ・システム。
【請求項2】
前記MLベースの代理関数学習モデルが、前記1つまたは複数のパラメータの各構成を前記2つ以上のKPI値にマッピングする、請求項1に記載のコンピュータ・システム。
【請求項3】
前記MLベースの代理関数学習モデルが、ニューラル・ネットワーク、ガウス過程回帰、カーネル回帰技術、またはそれらの組合せを使用して実装される、請求項2に記載のコンピュータ・システム。
【請求項4】
前記獲得関数が、前記アプリケーションの第2の試行実行に対して、1つまたは複数の第2のパラメータの第2の構成を選択する、請求項1に記載のコンピュータ・システム。
【請求項5】
前記獲得関数が、期待改善関数、改善の最大確率関数、信頼度上限関数、またはそれらの組合せとして実装される、請求項4に記載のコンピュータ・システム。
【請求項6】
前記2つ以上のKPI値のセットが、待ち時間、エラー率、スループット、またはそれらの組合せを含み、1つまたは複数のトポロジ的制約に関連する前記1つまたは複数のパラメータが、タイムアウト、再試行、複製回数、またはそれらの組合せを含む、請求項1に記載のコンピュータ・システム。
【請求項7】
前記トポロジ的制約がマイクロサービスの階層を含み、前記1つまたは複数のパラメータが前記階層に対して設定され、前記階層中の子マイクロサービスからの1つまたは複数のクエリがアクティブである限り、親マイクロサービスからのクエリがアクティブであることを前記1つまたは複数のパラメータが保証するようにすることを含む、請求項6に記載のコンピュータ・システム。
【請求項8】
コンピュータにより実施される方法であって、
アプリケーションに関連する2つ以上の主要性能インジケータ(KPI)のセットを受け取ることであって、前記KPIのセット中の各KPIがKPI値に関連付けられている、前記受け取ることと、
機械学習(ML)ベースの代理関数学習モデルを獲得関数との組合せで活用して、1つまたは複数の受け取られたパラメータを用いて前記アプリケーションの適応的試行実行を行うことと、
各試行実行からの出力を観察し、前記観察された出力のパレート面を算出することと、
前記算出されたパレート面を探索し、前記1つまたは複数のパラメータの構成に対応する最適なアプリケーション動作点を選択することと、
前記選択された最適な動作点で前記アプリケーションを実行することと
を含む、方法。
【請求項9】
前記MLベースの代理関数学習モデルが、前記1つまたは複数のパラメータの各構成を前記2つ以上のKPI値にマッピングする、請求項
8に記載の方法。
【請求項10】
前記MLベースの代理関数学習モデルが、ニューラル・ネットワーク、ガウス過程回帰、カーネル回帰技術、またはそれらの組合せを使用して実装される、請求項
9に記載の方法。
【請求項11】
前記獲得関数が、前記アプリケーションの第2の試行実行に対して、1つまたは複数の第2のパラメータの第2の構成を選択する、請求項
8に記載の方法。
【請求項12】
前記獲得関数が、期待改善関数、改善の最大確率関数、信頼度上限関数、またはそれらの組合せとして実装される、請求項
11に記載の方法。
【請求項13】
前記2つ以上のKPI値のセットが、待ち時間、エラー率、スループット、またはそれらの組合せを含み、1つまたは複数のトポロジ的制約に関連する前記1つまたは複数のパラメータが、タイムアウト、再試行、複製回数、またはそれらの組合せを含む、請求項
8に記載の方法。
【請求項14】
前記トポロジ的制約がマイクロサービスの階層を含み、前記1つまたは複数のパラメータが前記階層に対して設定され、前記階層中の子マイクロサービスからの1つまたは複数のクエリがアクティブである限り、親マイクロサービスからのクエリがアクティブであることを前記1つまたは複数のパラメータが保証するようにすることを含む、請求項13に記載の方法。
【請求項15】
クラウド・アプリケーションの多目的最適化を統合するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、プロセッサに、請求項8ないし14のいずれかに記載の方法の各手順を実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、特定の主要性能インジケータに関して最適な動作点でアプリケーションを実行することに関する。より具体的には、実施形態は、機械学習(ML)を活用してパレート面を算出すること、および最適な動作点を特定するためのパレート面の活用を対象とする。
【背景技術】
【0002】
クラウド・コンピューティングは、最小限の管理労力またはサービス提供対話で迅速にプロビジョニングされ、リリースされることが可能な、構成可能リソース、例えばネットワーク、サーバ、ストレージ、アプリケーション、およびサービスなどの共有プールへの、ユビキタスで、便利な、オンデマンドのネットワーク・アクセスを可能にするモデルである。アプリケーション、またはより具体的にはクラウド・アプリケーションは、クラウド・ベースのコンポーネントとローカルのコンポーネントとが協働するソフトウェア・プログラムである。このモデルは、持続的なインターネット接続を用いてウェブ・ブラウザを通じてアクセスされ得る、ロジックを処理するためのリモート・サーバに依拠する。クラウド・アプリケーション・サーバは、リモートのデータ・センターに位置することがある。クラウド・ベースのアプリケーション・タスクは、電子メール、ファイルの記憶および共有、受注、在庫管理、文書処理、顧客関係管理、データ収集、または財務会計機能を包み得る。
【0003】
マイクロサービス・アーキテクチャとも呼ばれるマイクロサービスは、保守管理性および検証可能性が非常に高い、疎に結合され、独立してデプロイ可能である、1つまたは複数のモジュール式コンポーネントとして表されるサービスの集まりとして、アプリケーションを構築するアーキテクチャ様式である。各モジュールは、特定のタスクまたは業務目標を支援し、また、アプリケーション・プログラミング・インターフェース(API)などの単純で明確に定義されたインターフェースを使用して、他のマイクロサービスのセットと通信する。マイクロサービスは、小さく、スケーラブルなコンポーネントである。各モジュールは、特定のタスクを支援し、アプリケーション・プログラミング・インターフェース(API)などの定義されたインターフェースを使用して他のサービスと通信する。独立したマイクロサービス・モジュールはいずれも、複数のマイクロサービス・モジュールからなるプログラムの他の部分に影響を与えることなく変更することができる。そのため、マイクロサービス・アーキテクチャは、スケーラビリティを支援し、可能にする。
【0004】
モノリシック・アーキテクチャとは、ソフトウェア・アプリケーションの設計のための統一されたモデルをいう。モノリシック・ソフトウェアは、相互接続されかつ相互に依存しているプログラムのコンポーネントで自己完結するように設計される。モノリシック・アーキテクチャでは、コードがコンパイルまたは実行されるためには、各コンポーネントおよびそれに関連するコンポーネントが存在しなければならない。他の要素内の予期される変更および予期されない変更に対処するためにいずれかのプログラム・コンポーネントが更新される必要がある場合は、アプリケーション全体が書き直されなければならない。そのため、モノリシック・アーキテクチャは、大きい、密に結合されたアプリケーションを指す。
【0005】
当技術分野において、マイクロサービス・アーキテクチャは、モノリシック・ソフトウェア・アーキテクチャと比べて、より高速なソフトウェア開発とデプロイによって業務の機敏性を向上させることが理解される。より具体的には、マイクロサービス・アーキテクチャは、大きく複雑なアプリケーションの迅速、頻繁で、かつ信頼できる提供を可能にする。マイクロサービスを用いると、個々のサービスを個々にデプロイし、または個々にスケーリングすることができる。正しく行われた場合、マイクロサービスは、モノリシック・アプリケーションの場合のアプリケーション全体の代わりに、必要とされるコンポーネントのみの的確なスケーリングを可能にするため、マイクロサービスが必要とするインフラストラクチャはモノリシック・アプリケーションよりも少ない。当技術分野において、マイクロサービス、より具体的にはマイクロサービス・アーキテクチャ、を対象とする課題があることが理解される。そのような課題は、マイクロサービスの量が増すことに伴うマイクロサービスの管理、マイクロサービスの監視、検査、従属関係等を対象とする。
【発明の概要】
【0006】
実施形態は、主要性能インジケータに関するクラウド・アプリケーションの多目的最適化のためのシステム、コンピュータ・プログラム製品、および方法を含む。
【0007】
一つの態様において、コンピュータ・システムは、メモリに動作可能に結合された処理ユニットと、処理ユニットおよびメモリに動作可能に結合された人工知能(AI)プラットフォームとを備える。AIプラットフォームは、入力マネジャ、試行マネジャ、およびアプリケーションの多目的最適化を統合する機能を備えて構成された最適化マネジャの形態であるツールと共に構成されている。入力マネジャは、アプリケーションに関連する2つ以上の主要性能インジケータ(KPI)のセットを受け取るように構成されている。試行マネジャは、入力マネジャに動作可能に結合され、機械学習(ML)ベースの代理関数学習モデルを獲得関数との組合せで活用して、1つまたは複数の受け取られたパラメータを用いてアプリケーションの適応型試行実行を行うように構成されている。試行マネジャはさらに、試行実行から得られた観察された出力に基づいてアプリケーションのKPIのパレート面を算出するように構成される。試行マネジャに動作可能に結合されている最適化マネジャは、算出されたパレート面を探索し、アプリケーションの最適な動作点を選択するように機能する。最適な動作点は、1つまたは複数のパラメータの構成に対応する。最適化マネジャは、選択された最適な動作点でアプリケーションを実行する。
【0008】
別の態様において、アプリケーションの多目的最適化を統合するためのコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、具現化されたプログラム・コードを有するコンピュータ可読記憶装置を備えている。プログラム・コードは、アプリケーションに関連する2つ以上の主要性能インジケータ(KPI)のセットを受け取る機能を有する処理ユニットにより実行可能である。プログラム・コードは、機械学習(ML)ベースの代理関数学習モデルを獲得関数との組合せで活用して、1つまたは複数の受け取られたパラメータを用いてアプリケーションの適応型試行実行を行う。プログラム・コードは、試行実行から得られた観察された出力に基づいてアプリケーションのKPIのパレート面を算出する。プログラム・コードは、算出されたパレート面を探索し、アプリケーションの最適な動作点を選択し、最適な動作点は、1つまたは複数のパラメータの構成に対応する。プログラム・コードはさらに、選択された最適な動作点でアプリケーションを実行するように機能する。
【0009】
さらに別の態様において、アプリケーションの多目的最適化を統合するための方法が提供される。アプリケーションに関連する2つ以上の主要性能インジケータ(KPI)のセットが受け取られる。機械学習(ML)ベースの代理関数学習モデルが獲得関数との組合せで活用されて、1つまたは複数の受け取られたパラメータを用いてアプリケーションの適応型試行実行を行う。試行実行から得られた観察された出力に基づいて、アプリケーション・ベースのKPIのパレート面が算出される。算出されたパレート面が探索され、探索に基づいてアプリケーションに最適な動作点が選択され、最適な動作点は、1つまたは複数のパラメータの構成に対応する。アプリケーションは次いで、選択された最適な動作点で実行される。
【0010】
これらおよび他の特徴および利点は、添付図面と併せて読まれる、以下の現在好ましい実施形態の詳細な説明から明らかになろう。
【0011】
本明細書において参照される図面は、本明細書の一部をなし、本明細書に組み込まれる。図面に示される特徴は、明示的に指摘しない限り、すべての実施形態ではなく、一部の実施形態のみを例示することが意図される。
【図面の簡単な説明】
【0012】
【
図1】アプリケーションの多目的最適化を支援するためのコンピュータ・システムおよび埋め込まれたツールを示すシステム図である。
【
図2】
図1に示されるツールおよびそれらの関連するアプリケーション・プログラム・インターフェースを示すブロック図である。
【
図3】アプリケーションの多目的最適化のためのプロセスを示すフローチャートである。
【
図4】機械学習を活用して1つまたは複数の適応型試行を行うためのプロセスを示すフローチャートである。
【
図5】待ち時間およびエラー率の目的のKPIについてのグラフおよび例示的なパレート面を示すブロック図である。
【
図6】相互作用するマイクロサービスの例示的階層を描いたブロック図である。
【
図7】順次的なクエリ制約のあるアプリケーション・マイクロサービスの例示的階層を描いたブロック図である。
【
図8】並列のクエリ制約のあるアプリケーション・マイクロサービスの例示的階層を描いたブロック図である。
【
図9】
図1~
図8に関して上記で説明されたシステムおよびプロセスを実装するための、クラウド・ベースの支援システムのコンピュータ・システム/サーバの例を描いたブロック図である。
【
図10】クラウド・コンピュータ環境を示すブロック図である。
【
図11】クラウド・コンピューティング・ネットワークによって提供される機能抽象化モデル層のセットを示すブロック図である。
【発明を実施するための形態】
【0013】
本明細書の図に一般的に説明され、例示される本実施形態のコンポーネントは、各種の異なる構成で配置および設計されてよいことが直ちに理解されよう。よって、図に示される、本実施形態の装置、システム、方法、およびコンピュータ・プログラム製品の実施形態の以下の詳細な説明は、請求される実施形態の範囲を制限することは意図されず、単に選択された実施形態を表すものである。
【0014】
本明細書を通して、「選択された実施形態」、「一つの実施形態」、または「一実施形態」の参照は、その実施形態に関連して説明される特定の特徴、構造、または特性が少なくとも1つの実施形態に含まれることを意味する。よって、本明細書を通して、様々な箇所における表現「選択された実施形態」、「一つの実施形態」、または「一実施形態」の出現は、必ずしも同じ実施形態を指すとは限らない。
【0015】
説明される実施形態は、図面を参照することによって最もよく理解され、全図面を通じて、同様の部分は同様の符号によって指定されている。以下の説明は、単なる例であることが意図され、本明細書において請求される、実施形態と合致するデバイス、システム、および方法の特定の選択された実施形態を例示するに過ぎない。
【0016】
人工知能(AI)は、人間に関係するものとしてのコンピュータおよびコンピュータの挙動を対象とするコンピュータ科学の分野に関する。AIは、機械が情報に基づいて意思決定を行うことができる場合の知能のことであり、それが、例えば所与の主題の成功の可能性を向上させるかまたは最大にする。より具体的には、AIは、データ・セットから学習して問題を解き、関連性のある推奨を提供することができる。例えば、人工知能コンピュータ・システムの分野では、自然言語システム(IBM Watson(R)人工知能コンピュータ・システムや、他の自然言語質疑応答システムなど)が、システムによって獲得された知識に基づいて自然言語を処理する。自然言語を処理するために、システムは、データベースまたは知識のコーパスから導出されるデータを用いて訓練され得るが、その結果得られる成果は、様々な理由のために不適切または不正確であることがある。
【0017】
AIおよび関連する推論の中核にあるのは、類似性の概念である。自然言語およびオブジェクトを理解するプロセスは、関係の観点から推論することを必要とし、それは困難であり得る。静的な構造および動的な構造を含む構造が、所与の確定的な入力に対する決定された出力または動作を決定する。より具体的には、決定された出力または動作は、その構造内部にある明確なまたは本質的な関係に基づく。この機構は、限定された状況および条件には満足の行くものであり得る。しかし、動的な構造は本質的に変化を受け、それに応じて出力または動作が変化を受け得ることが理解される。
【0018】
上記のようにAIのサブセットである機械学習(ML)は、明示的なプログラミングによるのではなく、アルゴリズムを利用してデータから学習し、そのデータに基づいて洞察を作成する。MLは、明示的にプログラミングされるのではないタスクを行うことによって学習動作を呈することのできるニューラル・ネットワークの作成を通じた、AIのアプリケーションである。MLは、機械学習モデルを構築し、機械学習アルゴリズムを訓練するために、分析され、フォーマッティングされ、条件付けられたデータを必要とする。当技術分野において、MLアルゴリズムは、コンピュータ化された手順であり、データを基に訓練されたときに、MLモデルを生成することが理解される。MLアルゴリズムの選択は、MLの適用を成功させるために不可欠である。MLの例には、これらに限定されないが、回帰アルゴリズム、決定木、インスタンスベースのアルゴリズム、およびクラスタリング・アルゴリズムが含まれる。データが準備され、アルゴリズムが訓練されると、MLモデルは、そのデータに関する判定または予測を行うことができる。提供されるデータの量が多いほど、モデルはより多くのことを学習し、自身の予測の精度をより向上させる。
【0019】
MLモデルは、教師あり機械学習、教師なし機械学習、強化機械学習、および深層学習の基本カテゴリに分けられる。教師あり学習アルゴリズムは、あるデータ・セットについてのマッピング関数を既存の分類と共に学習し、教師なし学習アルゴリズムは、ラベル付けされていないデータ・セットを、そのデータ内の何らかの隠れた特徴に基づいてカテゴリ分けすることができる。強化学習は、不確定の環境における意思決定のためのポリシーを、その環境の反復的な探索を通じて学習することができる。深層学習は、ニューラル・ネットワークを連続した層として組み込んで、反復的な方式でデータから学習する。ニューラル・ネットワークは、神経系が動作する方式のモデルである。基本単位はニューロンと呼ばれ、それらは通例、層に編成される。ニューラル・ネットワークは、ニューロンの抽象的なバージョンを模した、多数の相互接続された処理ユニットを模倣することによって働く。通例は3つの部分がニューラル・ネットワーク内にあり、それらには、入力フィールドを表すユニットを伴う入力層、1つまたは複数の隠れ層、および目標フィールドを表す1つまたは複数のユニットを伴う出力層が含まれる。ユニット同士は、様々に異なる接続強度または重みで接続される。入力データは最初の層に提示され、値が各ニューロンから次の層のすべてのニューロンへと伝搬される。最終的に、結果が出力層から送出される。深層学習複雑ニューラル・ネットワークは、人間の脳が働く仕組みを模倣するように設計され、そのため、コンピュータは、不十分に定義された抽象化および問題に対応するように訓練することができる。ニューラル・ネットワークおよび深層学習は、画像認識、音声認識、およびコンピュータ・ビジョン・アプリケーションでしばしば使用される。
【0020】
インテリジェント・システム、コンピュータ・プログラム製品、および方法が、機械学習(ML)を使用するインテリジェントなリアルタイム解析を実行するためのツールおよびアルゴリズムと併せて、本明細書に提供される。より具体的には、図示され、本明細書に記載されるように、MLをマイクロサービス・アーキテクチャに適用して、例えばクラウド・アプリケーションを含む、アプリケーションの多目的最適化を容易にする。クラウド・アプリケーションをパラメータで表すために種々の手段が利用可能であり、そのようなパラメータの構成は、そのアプリケーションの主要性能インジケータ(KPI)の異なる値を生じる。
【0021】
待ち時間は、システム・コンポーネントが別のシステム・コンポーネントが応答するのを待っているときの時間間隔または遅延を指すネットワーキングの用語である。この時間間隔の長さが待ち時間と呼ばれる。タイムアウトは、ある長さの時間にわたり何らかの入力を待ったものの、それを受け取らなかったプログラムまたはデバイスによって生成される割込み信号を対象とする。多くのプログラムは、プログラムが、到着することがないかもしれない入力を待ってアイドル状態にならないように、タイムアウトを行う。マイクロサービスのタイムアウト値および再試行値を設定することは、アプリケーション、例えばクラウド・アプリケーションに対して、別個の終端間待ち時間値およびエラー率をもたらし得る。所与のアプリケーションが実行される前に、所与のアプリケーションの待ち時間対エラー率など、KPI間の最良のトレードオフを決定できることが望ましい。一実施形態では、これらのトレードオフを決定することにより、当該所与のアプリケーションに関連するサービス・レベル合意(SLA)の現実的な評価が可能になる。トレードオフの分析は、複雑であり、一つの実施形態ではクラウド・アプリケーション内のマイクロサービスのアーキテクチャ構造に比例する。
【0022】
図1を参照すると、コンピュータ・システム(100)が、アプリケーションの多目的最適化を支援するツールと共に提供される。図示されるように、サーバ(110)が、ネットワーク接続(105)を介して複数のコンピューティング・デバイス(180)、(182)、(184)、(186)、(188)、および(190)と通信するように提供される。サーバ(110)は、バス(116)を介してメモリ(114)に動作可能に結合された処理ユニット(112)、例えばプロセッサを備えて構成される。人工知能(AI)プラットフォーム(150)の形態のツールが、サーバ(110)のローカルに図示され、処理ユニット(112)およびメモリ(114)に動作可能に結合されている。図示されるように、AIプラットフォーム(150)は、入力マネジャ(152)、試行マネジャ(154)、および最適化マネジャ(156)の形態の1つまたは複数のツールを含んでおり、1つまたは複数のコンピューティング・デバイス(180)、(182)、(184)、(186)、(188)、および(190)からのネットワーク(105)を通じてアプリケーションの多目的最適化を提供し、支援する。より具体的には、コンピューティング・デバイス(180)、(182)、(184)、(186)、(188)、および(190)は、1つまたは複数の有線またはワイヤレス・データ通信リンク、あるいはその両方を介して、互いに、および他のデバイスもしくはコンポーネントと通信し、各通信リンクは、電線、ルータ、スイッチ、送信器、受信器等の1つまたは複数を備え得る。このネットワーク化された構成において、サーバ(110)およびネットワーク接続(105)は、分散リソース全体でクラウド・アプリケーションの最適化を可能にする。サーバ(110)の他の実施形態が、ここに描かれるもの以外のコンポーネント、システム、下位システム、またはデバイス、あるいはその組合せと共に使用されてよい。
【0023】
AIプラットフォーム(150)は、ここではMLをサポートするツールと共に構成され、より具体的には、獲得関数と組み合わせたMLベースの代理関数学習モジュールで構成され、クラウド・アプリケーションの最適化を容易にし、可能にするものと示されている。入力マネジャ(152)、試行マネジャ(154)、および最適化マネジャ(156)を含む、ここで埋め込まれているツールは、ネットワーク(105)からの入力、および動作可能に結合された知識ベース(160)を含むがこれらに限定されない、様々な供給源からの入力を受け取るように構成されている。一実施形態では、知識ベース(160)は、ここでは例としてアプリケーションA(164A)、アプリケーションB(164B)、およびアプリケーションN(164N)として示される、複数のアプリケーションを有するライブラリ(162)を備えて構成される。3つのアプリケーションのみが示されているが、この数は説明のためであり、制限的なものと考えるべきではない。一実施形態では、知識ベース(160)は、1つまたは複数の追加的なライブラリを備えて構成されてよく、各ライブラリが1つまたは複数のアプリケーションを有する。構造またはライブラリ(162)内のアプリケーションの数は、説明のためであり、制限的なものと考えるべきではない。
【0024】
各アプリケーションは、ここではMLモデルと呼ばれる、機械学習(ML)代理関数と共に示されている。アプリケーションA(164A)はMLモデルA(166A)を有するものと示され、アプリケーションB(164B)はMLモデルB(166B)を有するものと示され、アプリケーションN(164N)はMLモデルN(166N)を有するものと示される。ここでは、各MLモデルは、ここではマップとも呼ばれる、対応するモデル・マップと共に示されている。説明の目的で、MLモデルA(166A)は対応するモデル・マップA(170A)と共に示され、MLモデルB(166B)は対応するモデル・マップB(170B)と共に示され、MLモデルN(166N)は対応するモデル・マップN(170N)と共に示されている。さらに、各既存アプリケーションは、サンプリングすること、より具体的には生成されるであろう値を測定することを対象とする、対応する獲得関数も有してよい。アプリケーションA(164A)は獲得関数A(168A)を有するものと示され、アプリケーションB(164B)は獲得関数B(168B)を有するものと示され、アプリケーションN(164N)は獲得関数N(168N)を有するものと示される。ML代理関数、対応するモデル・マップ、および獲得関数がどのように利用されるかの詳細は、以下で示され、詳細に説明される。
【0025】
ネットワーク(105)と通信する様々なコンピューティング・デバイス(180)、(182)、(184)、(186)、(188)、および(190)は、AIプラットフォーム(150)へのアクセス・ポイントを示す。ツール(152)、(154)、および(156)は、アプリケーションの多目的最適化を支援し、可能にする。ネットワーク(105)は、様々な実施形態においてローカル・ネットワーク接続およびリモート接続を含んでよく、それにより、AIプラットフォーム(150)ならびに埋め込まれたツール(152)、(154)および(156)は、ローカルおよびグローバルなもの、例えばインターネットを含む、任意のサイズの環境内で動作し得る。そのため、サーバ(110)およびAIプラットフォーム(150)は、フロントエンド・システムとして機能し、知識ベース(160)およびアプリケーション(164A)~(164N)がバックエンド・システムとして機能する。
【0026】
以下で詳細に説明されるように、AIプラットフォーム(150)は、特定された主要性能インジケータ(KPI)に関するアプリケーションの性能を最適化し、このアプリケーションはマイクロサービスの集まりである。AIプラットフォーム(150)は、入力マネジャ(152)を利用して、アプリケーションに関連する2つ以上のKPIのセットを受け取る。KPIは、最適化の対象であるアプリケーションの性能態様を示す。一実施形態では、KPIのカテゴリは、ユーザによって選択され、ユーザが最適化することに関心を持つ性能態様に関係する。受け取ったKPIのセット中の各KPIは、関連付けられたまたは対応するインジケータ・タイプを有する。可能なKPIタイプの例には、量的インジケータと質的インジケータが含まれる。量的インジケータは数量を表し、一実施形態では、数、指数、比、百分率等であってよい。質的インジケータは、数値尺度は示さない。むしろ、品質の状態を表す。アプリケーション性能を測定する量的尺度のタイプの例には、これらに限定されないが、待ち時間、エラー率、およびスループットが含まれる。各量的インジケータは、1つまたは複数の対応する値を有する。
【0027】
当技術分野において、サービス、例えばマイクロサービス、の集まりとしてのアプリケーションに関して、そのようなサービスは線形に配置されないことがあることが理解される。そうではなく、マイクロサービスは従属関係を含むことがあり、そのため、マイクロサービスは、そのような従属関係を反映する階層的配置を有することが理解される。KPIに加えて、入力マネジャ(152)は、アプリケーションに関連する1つまたは複数のパラメータも受け取り、各パラメータはパラメータ値に関連付けられている。可能なパラメータ値の例には、タイムアウト、再試行、および階層的配置、例えば階層、に対応する1つまたは複数のトポロジ的制約に関連する複製回数が含まれるが、これらに限定されない。当技術分野において、階層は、複雑性を低減するために項目が層化またはグループ化される構造化技術であることが理解される。マイクロサービスの階層的配置の例が
図6~
図8に図示され、説明される。調整可能なパラメータは、マイクロサービスの階層に対して設定され、子マイクロサービスからのクエリがアクティブである限り、親マイクロサービスからのクエリがアクティブであることをパラメータ値が保証するようにする。
【0028】
ここでは入力マネジャ(152)に動作可能に結合されて示される試行マネジャ(154)は、AIプラットフォーム(150)内で機能して動的リソース状態を監視する。より具体的には、試行マネジャ(154)は、MLベースの代理関数学習モデルを獲得関数との組合せで活用して、アプリケーションの1つまたは複数の適応型試行を行う。知識ベース(160)に示されるように、各アプリケーションは、対応する代理関数および獲得関数を有している。各試行は、パラメータ設定に基づくアプリケーションの特定の構成を対象とする。試行マネジャ(154)は、獲得関数A(168A)を活用して、アプリケーションA(164A)の適応型試行実行のための1つまたは複数のパラメータの構成を選択する。適応型試行の結果は、パラメータの特定の構成に関連するアプリケーションの性能インジケータ値、例えばKPI、を提供する。また、試行マネジャ(154)は、ML代理関数を活用して、関連するMLモデル内のKPI値を取り込む。MLベースの代理関数学習モデルは、ニューラル・ネットワーク、ガウス過程回帰、または他の線形もしくは非線形のもしくはカーネル回帰技術、またはブラックボックス最適化もしくは強化学習で使用される他の値推定技術を使用して実装することができる。したがって、MLモデルは、1つまたは複数のパラメータの各構成を、2つ以上の対応するKPI値にマッピングする。
【0029】
アプリケーションの複数回の試行が、パラメータ値設定を通じて行われてよい。獲得関数、獲得関数A(168A)は、1つまたは複数のパラメータ値の新しい構成および別の適応型試行を選択し、対応するKPI値が測定される。獲得関数は、期待改善関数、改善の最大確率関数、または信頼度上限関数、またはブラックボックス最適化もしくは強化学習で使用される他の動作推定技術として実装することができる。試行マネジャ(154)は、各試行からのKPI値を使用し、アプリケーションのパレート面を算出する。パレート面は、適応型試行で用いられたパラメータ値の構成に基づいて達成され得るすべての可能なKPI値を、図式的に示す。そのため、試行マネジャ(154)は、ML代理関数学習モデルおよび獲得関数を活用して、選択された調整可能パラメータの構成に基づいて、アプリケーションの適応型試行を実行し、その試行で得られたKPI値を使用して対応するパレート面を算出する。
【0030】
ここでは入力マネジャ(152)および試行マネジャ(154)に動作可能に結合されて示される最適化マネジャ(156)は、試行マネジャ(154)によって算出されたパレート面を探索して、アプリケーションの最適な動作点を見つけ、選択された動作点でアプリケーションを実行するように機能する。最適化マネジャ(156)は、算出されたパレート面を探索し、その探索から、アプリケーションの、ここでは動作点とも呼ばれる最適な動作点を選択する。一実施形態では、選択された動作点は、KPI値のトレードオフを表し、選択された点は、第1のより望ましいKPIについてのより大きい値と、第2のより望ましくないKPIについてのより小さい値とを有し得る。一実施形態では、動作点はユーザによって選択されてよい。最適化マネジャ(156)は、選択された動作点を使用してアプリケーションを実行する。選択された動作点を使用することにより、アプリケーションは、ユーザによって指定された、望まれるKPI値で実行する。従って、最適化マネジャ(156)は、算出されたパレート面を探索し、アプリケーションの最適な動作点を選択し、次いで選択された動作点を使用してそのアプリケーションを実行する。
【0031】
図ではサーバ(110)に埋め込まれまたは一体化されたものとして示されるが、AIプラットフォーム(150)は、ネットワーク(105)を介してサーバ(110)に接続されている別個のコンピューティング・システム(例えば190)内に実装されてよい。サーバ(110)のローカルに示されているが、ツール(152)、(154)、および(156)は、まとめてまたは個々に、ネットワーク(105)に分散されてよい。埋め込まれた場合、入力マネジャ(152)、試行マネジャ(154)、および最適化マネジャ(156)は、アプリケーションの多目的最適化を管理・支援するために利用される。
【0032】
アプリケーションは、ネットワーク(105)を介してサーバ(110)に通信されてよい。例えば、一実施形態では、1つまたは複数のアプリケーションが、不揮発性データ・ストア(190A)からサーバ(110)に通信されてよい。ツール(152)、(154)、および(156)は、知識ベース(160)からのものであれネットワーク(105)を介したものであれ、アプリケーションを処理する。
【0033】
サーバ(110)を利用し得る情報処理システムのタイプは、手持ち型コンピュータ/携帯電話(180)などの小型の携帯デバイスから、メインフレーム・コンピュータ(182)などの大型のメインフレーム・システムに及ぶ。携帯コンピュータ(180)の例には、携帯情報端末(PDA)、MP4プレーヤ、携帯型テレビ、およびコンパクト・ディスク・プレーヤなどの個人娯楽機器が含まれる。情報処理システムの他の例には、ペンまたはタブレット・コンピュータ(184)、ラップトップまたはノートブック・コンピュータ(186)、パーソナル・コンピュータ・システム(188)、およびサーバ(190)が含まれる。図示されるように、様々な情報処理システムが、コンピュータ・ネットワーク(105)を使用して共にネットワーク化され得る。様々な情報処理システムを相互接続するために使用され得るコンピュータ・ネットワーク(105)のタイプには、ローカル・エリア・ネットワーク(LAN)、ワイヤレス・ローカル・エリア・ネットワーク(WLAN)、インターネット、公衆交換電話網(PSTN)、他のワイヤレス・ネットワーク、および情報処理システムを相互接続するために使用できる他のネットワーク・トポロジが含まれる。情報処理システムの多くは、ハード・ドライブまたは不揮発性メモリあるいはその両方などの不揮発性データ・ストアを含む。情報処理システムの一部は、別々の不揮発性データ・ストアを使用してよい(例えば、サーバ(190)は不揮発性データ・ストア(190A)を利用し、メインフレーム・コンピュータ(182)は不揮発性データ・ストア(182A)を利用する)。不揮発性データ・ストア(182A)は、様々な情報処理システムの外部にあるコンポーネントであってもよく、または情報処理システムの1つの内部にあるコンポーネントであってもよい。
【0034】
情報処理システムは、多くの形態を取り得、そのいくつかが
図1に示されている。例えば、情報処理システムは、デスクトップ、サーバ、携帯機器、ラップトップ、ノートブック、または他のフォーム・ファクタのコンピュータもしくはデータ処理システムの形態を取ることができる。また、情報処理システムは、携帯情報端末(PDA)、ゲーム・デバイス、ATM機、携帯型電話デバイス、通信デバイス、またはプロセッサおよびメモリを含む他のデバイスなどの他のフォーム・ファクタを取ってよい。
【0035】
アプリケーション・プログラム・インターフェース(API)は、当技術分野において、2つ以上のアプリケーション間を仲介するソフトウェアと理解される。
図1に図示され、説明されるアプリケーション最適化システムに関しては、1つまたは複数のAPIを利用して、入力マネジャ(152)、試行マネジャ(154)、および最適化マネジャ(156)、ならびにそれらの関連する機能を含むAIプラットフォーム・ツールの1つまたは複数を支援し得る。
図2を参照すると、AIプラットフォーム・ツールおよびそれらの関連するAPIを示すブロック図(200)が提供される。示されるように、複数のツールがAIプラットフォーム(205)に埋め込まれており、それらのツールには、API
0(212)に関連付けられた入力マネジャ(252)、API
1(222)に関連付けられた試行マネジャ(254)、およびAPI
2(232)に関連付けられた最適化マネジャ(256)が含まれる。各APIは、1つまたは複数の言語およびインターフェース仕様で実装され得る。API
0(212)は、選択されたKPIおよび調整可能パラメータの受け取りおよび管理のための支援を提供し、API
1(222)は、1つまたは複数の適応型アプリケーションの試行の実行および、その試行から観察されたKPIを使用して対応するパレート面の算出のための支援を提供し、API
2(232)は、最適なアプリケーション動作点の選択および選択された動作点におけるアプリケーションの実行を含む、パレート面の探索のための支援を提供する。示されるように、API(212)、(222)、および(232)は各々、オーケストレーション層としても知られるAPIオーケストレータ(260)に動作可能に結合されており、オーケストレータは、当技術分野において、別個のAPI同士を透過につなぐための抽象化層として機能することが理解される。一実施形態では、別個のAPIの機能が、連携されるかまたは組み合わせられてよい。そのため、ここで示されるAPIの構成は制限的なものと考えられるべきではない。したがって、ここに示されるように、ツールの機能は、各ツールのAPIによって具現化または支援され得る。
【0036】
図3を参照すると、アプリケーションの多目的最適化のプロセスを示すフローチャート(300)が提供される。図示され、説明されるように、ユーザが、アプリケーションに対して関心対象の2つ以上の主要性能インジケータ(KPI)を入力し(302)、アプリケーションは、一実施形態ではクラウド・ベースのアプリケーションであってよい。一実施形態では、KPIは、プロセスまたはプロジェクトがある予想および目標をどれほどよく満たしているかを測定し、評価する指標である。KPIは、クラウド・アプリケーションに組み込まれ、クラウド・アプリケーションの形態および機能に対する予想を監視および確認することができる。ステップ(302)に続いて、アプリケーションに関連する1つまたは複数のパラメータが受け取られる(304)。ステップ(304)で受け取られるパラメータは調整可能パラメータであり、一実施形態では受け取られるパラメータは制御可能であり、ステップ(302)で入力されたKPIに影響する。受け取られるパラメータの例には、イムアウト、再試行、およびアプリケーションの1つまたは複数のトポロジ制約に関連する複製回数が含まれるが、これらに限定されない。したがって、関心対象のKPIと、アプリケーションに関連するパラメータとが受け取られる。
【0037】
図1に説明され、
図6~
図8に図示され、説明されるように、アプリケーションは、マイクロサービスのトポロジ的配置から構成され、トポロジ的配置は一実施形態では、マイクロサービスの階層的配置を含む。階層的配置は、階層内に表されるトポロジを対象とする本質的な制約を有する。ステップ(304)で受け取られたパラメータはトポロジに応答し、一実施形態では、アプリケーションを構成するマイクロサービスの階層に対して調整または設定されて、子の、例えば従属する、マイクロサービスからのクエリがアクティブである限り、親マイクロサービスからのクエリがアクティブであることをパラメータ値が保証するようにする。ステップ(304)におけるパラメータの受け取りに続いて、アプリケーションに関連付けられたMLベースの代理関数を、対応する獲得関数と組合せて活用し、1つまたは複数の適応型アプリケーションの性能試行を行い、ステップ(302)で指定されたインジケータのカテゴリに対応するKPI値を測定し、測定されたKPI値は、ステップ(304)で受け取られたパラメータ値の構成に基づいて達成され得る可能なKPI値に相当する。
【0038】
図4を参照すると、MLを活用してアプリケーションの適応型試行を行うためのプロセスを示すフローチャート(400)が提供される。示されるように、獲得関数が活用され、1つまたは複数の調整可能パラメータ、例えばステップ(304)で受け取られた調整可能パラメータ、の構成が選択される(402)。一実施形態では、ステップ(402)での選択は、これまでに利用されたことがないパラメータを対象とする。アプリケーションの試行が、選択されたアプリケーション・パラメータで行われる(404)。試行の出力は、KPI値の形態で観察され、パラメータ修正および観察された出力でMLモデルが更新される(406)。このパラメータ選択およびKPI測定のプロセスは、予め決められた時間または定義された試行回数にわたって継続する。一実施形態では、この時間または回数の制限が構成可能である。例えば、一実施形態では、パラメータ構成の試行は、ある時間、例えば30分、にわたって評価されるように構成されてよい。そのため、ML代理関数および獲得関数を活用して、1つまたは複数のパラメータの異なる構成におけるKPIに関連する量的出力を決定する。
【0039】
アプリケーションの各試行は、関心対象のKPIに関連する量的な性能値を生じる。
図4に示される適応型試行の終了に続いて、プロセスはステップ(308)に戻り、KPI値の観察された量的出力を利用してパレート面を算出する。パレート効率性とは、少なくとも1つの個々のまたは優先基準をさらに悪くすることなく、いずれか1つの個々のまたは優先基準をさらに良くするように修正されることができない状況である。パレート・フロント、またはパレート面は、すべてのパレート効率な割り当てのセットであり、通常はグラフで示される。ステップ(308)で作成されるパレート面は、提供された、一実施形態では調整可能な、パラメータに基づいて達成され得る、アプリケーション試行から測定されるすべての可能な量的KPI値を示す。作成されたパレート面は、アプリケーションの最適な動作点を特定するための探索にかけられる(310)。アプリケーションは次いで、特定された最適なアプリケーション動作点を使用した実行にかけられる(312)。従って、ここに示されるように、アプリケーション・パラメータは、アプリケーションのマイクロサービスのトポロジ的配置に基づいて選択または調整され、MLは、アプリケーション・パラメータを活用して適応型アプリケーション試行を行って、対応するパレート面を算出し、そのパレート面を探索して最適な動作点を特定し、その最適な動作点でアプリケーションを実行する。
【0040】
図5を参照すると、待ち時間およびエラー率の目的のKPIについてのグラフおよび例示的なパレート面を示す図(500)が提供される。示されるように、待ち時間およびエラー率の2つのKPIを描いたグラフ(510)が示される。グラフ(510)は、第1の軸(520)上で測定された待ち時間インジケータ、および第2の軸(530)上で測定されたエラー率インジケータと共に示されている。アプリケーション試行が、選択されたパラメータを用いて行われ、インジケータに関連する量的値が測定され、それらの測定値がグラフ(510)に描かれている。各測定値は、項目によってグラフ(510)中に反映される。複数のKPI測定値が、試行からのグラフ(510)中に項目として示され、項目のうち選択されたサブセットを表すパレート面(540)が作成される。各グラフ項目は、提供された調整可能パラメータ(図示せず)に基づく選択されたKPIの値、この例では待ち時間およびエラー率を表す。パレート面上の任意の点は、対応する既知の(または特定可能な)KPI値でのアプリケーションの可能な動作点である。例えば、2つの可能なまたは最適な動作点が、動作点
A(550)および動作点
B(560)としてパレート面に示されている。動作点
A(550)は、待ち時間に関する面(540)上のアプリケーションの最適な動作点を表し、動作点
B(560)は、エラー率に関する面(540)上のアプリケーションの最適な動作点を表す。パレート面(540)に沿った動作点を選択することは、アプリケーションを実行する前にアプリケーション性能インジケータを決定する。
【0041】
図5に示されるグラフは、2つのKPIに対応する2次元パレート面である。一実施形態では、パレート面はより多くの数量のKPIを表し得ることが理解される。例えば、3つのKPIの場合、パレート面は3次元表面になる。そのため、
図5に示されるパレート面は、アプリケーションの試行から得られた例示的なパレート面に過ぎない。
【0042】
上記
図1で説明されたように、マイクロサービスは、階層的配置を有することがある。調整可能パラメータは、マイクロサービスの階層に対して設定されて、子マイクロサービスからのクエリがアクティブである限り、親マイクロサービスからのクエリがアクティブであることをそれらパラメータ値が保証するようにする。
図6を参照すると、相互作用するマイクロサービスの例示的な階層を描いたブロック図(600)が提供される。ゲートウェイ(602)が、マイクロサービスの階層と通信するように示されている。階層内に示されるトポロジは、3つの段(tier)を含み、ここでは段
0(610)、段
1(620)、および段
2(630)と示される。一実施形態では、段
0(610)は親層であり、段
1(620)は子層であり、段
2(630)は孫層である。段
0(610)は、単一のマイクロサービス、例えばマイクロサービス
0,0(612)と共に示されている。一実施形態では、マイクロサービス
0,0(612)は、子マイクロサービスからのクエリがアクティブである限りアクティブであり続ける親マイクロサービスと呼ばれる。マイクロサービス
1,0(622)およびマイクロサービス
1,1(624)は、子の段、例えば階層中の段
1(620)、に示されている。マイクロサービス
1,0(622)およびマイクロサービス
1,1(624)は、子マイクロサービスと呼ばれ、各々別個に親マイクロサービス
0,0(612)に関係付けられ、それに従属している。マイクロサービスは、階層中で親と子両方のマイクロサービスであり得る。示されるように、マイクロサービス
1,1(624)は、マイクロサービス
0,0(612)に従属しているのと同時に、段
2(630)のマイクロサービス
2,0(632)に対して親でもある。ここに示される階層および配置に基づくと、マイクロサービス
1,1(624)は、マイクロサービス
2,0(632)からのクエリがアクティブである限りのみ、アクティブであり続けることになる。したがって、ここに示されるマイクロサービスの階層的配置は、マイクロサービス間の従属関係の例を示している。
【0043】
図7は、順次的なクエリ制約のあるアプリケーション・マイクロサービスの例示的階層を描いたブロック図(700)である。ゲートウェイ(702)が、マイクロサービスの階層と通信するように示されている。階層内に示されるトポロジは、2つの段を含み、ここでは段
0(710)および段
1(720)と示される。一実施形態では、段
0(710)は、独立層とも呼ばれる親層であり、段
1(720)は、従属層とも呼ばれる子層である。段
0(710)は、親マイクロサービスとも呼ばれる単一のマイクロサービスと共に示され、それはマイクロサービス
0,0(712)である。段
1(720)は、マイクロサービス
1,0(722)およびマイクロサービス
1,1(732)を含む2つの子マイクロサービスと共に示されている。それぞれの子マイクロサービス(722)および(732)は、別個にかつ直接、親マイクロサービス(712)に関係付けられている。親マイクロサービス
0.0(712)は、タイムアウト・パラメータy
0(714)と共に構成されている。同様に、子マイクロサービス(722)および(732)は各々、対応するタイムアウト・パラメータおよび再試行パラメータと共に構成されている。示されるように、マイクロサービス
1,0(722)は、タイムアウト・パラメータy
2(724)および再試行パラメータz
2(726)と共に示され、マイクロサービス
1,1(732)は、タイムアウト・パラメータy
3(734)および再試行パラメータz
3(736)と共に示されている。ここに示される階層のトポロジ的制約は、式y
0≧y
2z
2+y
3z
3として示される、順次的なクエリ・シナリオである。この順次的なクエリ・シナリオの下では、親マイクロサービス
0,0(712)は、子マイクロサービス
1,0(722)または子マイクロサービス
1,1(732)のどちらかがアクティブであるときには、タイムアウトすべきでない。
【0044】
図8は、並列のクエリ制約のあるアプリケーション・マイクロサービスの例示的階層を描いたブロック図(800)である。ゲートウェイ(802)が、マイクロサービスの階層と通信するように示され、階層はマイクロサービスの2つの段を含んでいる。親マイクロサービスであるマイクロサービス
0,0(812)が、第1の段(810)、例えば段
0に示され、ゲートウェイ(802)と、子の段とも呼ばれる第2の段(820)、例えば段
1、に表されるマイクロサービスとの間のインターフェースを取る。段
1(820)は、2つの子マイクロサービスと共に示され、各々、直接かつ別個に親マイクロサービス
0,0(812)に対応している。子マイクロサービス
1,0(822)は親マイクロサービス
0,0(812)に直接関係付けられ、子マイクロサービス
1,1(832)は親マイクロサービス
0,0(812)に直接関係付けられている。親マイクロサービス
0,0(812)は、タイムアウト・パラメータy
1(814)と共に構成されている。同様に、子マイクロサービス
1,0(822)は、タイムアウト・パラメータがy
2(824)であり、再試行パラメータがz
2(826)であるように構成され、マイクロサービス
1,1(832)は、タイムアウト・パラメータy
3(834)および再試行パラメータz
3(836)と共に構成されている。ここに示される階層のトポロジ的制約は、式y
1≧max{y
2z
2,y
3z
3}として示される、並列のクエリ・シナリオである。この並列のクエリ・シナリオの下では、マイクロサービス
0,0(812)は、子マイクロサービス
1,0(822)または子マイクロサービス
1,1(832)のどちらかがアクティブであるときにはタイムアウトすべきでない。
【0045】
図6、
図7、および
図8に図示され、説明される階層的配置ならびに対応する順次的および並列のクエリ・シナリオは、説明のための例であり、制限的なものと考えるべきではない。より具体的には、ここに示される階層的配置は、配置に応じたトポロジ的制約の例を対象とする。一実施形態では、マイクロサービスの数量、トポロジ的配置、およびクエリ・シナリオが、複雑性を増すことがある。
【0046】
本明細書に示され、記載される実施形態は、クラウド・アプリケーションの多目的最適化を統合することを対象とする機械学習を提供するためのAIプラットフォームと共に使用するためのコンピュータ・システムの形態であってよい。ツール(152)、(154)、および(156)ならびにそれらに関連する機能の態様は、一つの場所にあるコンピュータ・システム/サーバとして具現化されてよく、または一実施形態では、コンピューティング・リソースを共有するクラウド・ベースのシステムとして構成されてもよい。
図9を参照すると、
図1~
図8に関して上記で説明されたシステムおよびプロセスを実装するための、以降でクラウド・ベースの支援システムと通信するホスト(902)と呼ばれる、コンピュータ・システム/サーバ(902)の例を示すブロック図(900)が提供される。ホスト(902)は、多数の他の汎用または特殊目的のコンピューティング・システム環境または構成と共に動作可能である。ホスト(902)と共に使用するのに適し得る、よく知られているコンピューティング・システム、環境、または構成、あるいはそれらの組合せの例は、これらに限定されないが、上述のシステム、デバイス、およびそれらの相当物の任意のものを含む、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち型またはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能消費者家電、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、およびファイル・システム(例えば、分散記憶環境および分散クラウド・コンピューティング環境)が含まれる。
【0047】
ホスト(902)は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的文脈で説明され得る。一般に、プログラム・モジュールは、特定のタスクを行う、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造等を含み得る。ホスト(902)は、通信ネットワークによって接続された遠隔の処理デバイスによってタスクが行われる分散クラウド・コンピューティング環境(910)で実施されてよい。分散クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ記憶装置を含む、ローカルおよびリモート両方のコンピュータ・システム記憶媒体に置かれてよい。
【0048】
図9に示されるように、ホスト(902)は、汎用コンピューティング・デバイスの形態で示されている。ホスト(902)のコンポーネントは、これらに限定されないが、1つまたは複数のプロセッサまたは処理ユニット(904)、システム・メモリ(906)、およびシステム・メモリ(906)を含む様々なシステム・コンポーネントをプロセッサ(904)に結合するバス(908)を含み得る。バス(908)は、各種のバス・アーキテクチャのいずれかを使用した、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィクス・ポート、およびプロセッサ・バスまたはローカル・バスを含む、数種のバス構造のいずれか1つまたは複数を表す。限定ではなく、例として、そのようなアーキテクチャには、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、およびPeripheral Component Interconnects(PCI)バスが含まれる。ホスト(902)は、通例、各種のコンピュータ・システム可読媒体を含む。そのような媒体は、ホスト(902)によってアクセス可能な任意の利用可能な媒体であってよく、揮発性および不揮発性の媒体、取り外し可能および取り外し不能の媒体の両方を含む。
【0049】
メモリ(906)は、ランダム・アクセス・メモリ(RAM)(930)またはキャッシュ・メモリ(932)あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。単なる例として、記憶システム(934)は、取り外し不能、不揮発性の磁気媒体(図示せず。一般に「ハード・ドライブ」と呼ばれる)の読み出しおよび書き込みのために設けることができる。図示されないが、取り外し可能、不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)の読み出しおよび書き込みのための磁気ディスク・ドライブ、ならびにCD-ROM、DVD-ROMまたは他の光学媒体などの取り外し可能、不揮発性の光ディスクの読み出しまたは書き込みのための光ディスク・ドライブが設けられ得る。そのような例において、各々は、1つまたは複数のデータ媒体インターフェースによってバス(908)に接続することができる。
【0050】
プログラム・モジュール(942)のセット(少なくとも1つ)を有するプログラム/ユーティリティ(940)が、限定ではなく例として、メモリ(906)に記憶されてよく、ならびにオペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データも記憶されてよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データの各々、またはそれらの何らかの組合せは、ネットワーキング環境の実装を含んでよい。プログラム・モジュール(942)は一般に、敵対的訓練および動的分類モデルの発展の実施形態の機能または方法あるいはその両方を実行する。例えば、プログラム・モジュールのセット(942)は、
図1で説明されたツール(152)、(154)、および(156)として構成されたモジュールを含んでよい。
【0051】
ホスト(902)は、キーボード、ポインティング・デバイス、感覚入力装置、感覚出力装置等の1つまたは複数の外部デバイス(914);ディスプレイ(924);ユーザがホスト(902)と対話することを可能にする1つまたは複数のデバイス;またはホスト(902)が1つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデム等)、あるいはその組合せと通信してもよい。そのような通信は、入力/出力(I/O)インターフェース(922)を介して行うことができる。さらに、ホスト(902)は、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)、または公衆ネットワーク(例えば、インターネット)、あるいはその組合せなどの1つまたは複数のネットワークと、ネットワーク・アダプタ(920)を介して通信することができる。描かれるように、ネットワーク・アダプタ(920)は、バス(908)を介してホスト(902)の他のコンポーネントと通信する。一実施形態では、分散ファイル・システム(図示せず)の複数のノードが、I/Oインターフェース(922)を介して、またはネットワーク・アダプタ(920)を介して、ホスト(902)と通信する。図示していないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方がホスト(902)と併せて使用され得ることが理解されるべきである。例には、これらに限定されないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ保存記憶システム等が含まれる。
【0052】
本文書では、用語「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、および「コンピュータ可読媒体」は、一般に、RAM(930)、キャッシュ(932)、および取り外し可能記憶ドライブやハード・ディスク・ドライブに設置されたハード・ディスクなどの記憶システム(934)を含む、メイン・メモリ(906)などの媒体を指すものとして使用される。
【0053】
コンピュータ・プログラム(コンピュータ制御ロジックとも呼ばれる)がメモリ(906)に記憶される。コンピュータ・プログラムは、ネットワーク・アダプタ(920)などの通信インターフェースを介して受信されてもよい。そのようなコンピュータ・プログラムは、実行されると、コンピュータ・システムが本明細書に論じられる本実施形態の機能を行うことを可能にする。特に、コンピュータ・プログラムは、実行されると、処理ユニット(904)がコンピュータ・システムの機能を行うことを可能にする。したがって、そのようなコンピュータ・プログラムは、コンピュータ・システムのコントローラに相当する。
【0054】
一実施形態では、ホスト(902)は、クラウド・コンピューティング環境のノードである。当技術分野で知られるように、クラウド・コンピューティングは、最小限の管理労力またはサービスの提供者との対話で迅速に提供および解放されることが可能な構成可能なコンピューティング・リソース(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス)の共有プールへの、利便なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイ・モデルを含み得る。そのような特性の例は以下の通りである。
【0055】
オンデマンド・セルフサービス:クラウド消費者が、サービスの提供者との人的な対話を必要とすることなく、必要に応じて、自動的に、サーバ時間やネットワーク・ストレージなどのコンピューティング能力を一方向に提供することができる。
【0056】
ブロード・ネットワーク・アクセス:諸能力が、ネットワークを通じて利用可能であり、異種混合のシンまたはシック・クライアント・プラットフォーム(例えば携帯電話、ラップトップ、およびPDA)による使用を促進する標準的な機構を通じてアクセスされる。
【0057】
リソース・プーリング:提供者のコンピューティング・リソースが、マルチテナント・モデルを使用して複数の消費者に対応するためにプールされ、種々の物理リソースおよび仮想リソースが、需要に従って動的に割り当て、および再割り当てされる。消費者は、一般に、提供されるリソースの正確な所在地に関してコントロールも知識も有さないが、高い抽象化層で場所(例えば、国、州、またはデータ・センター)を特定することができるという点で、場所への非依存感がある。
【0058】
速やかな柔軟性:迅速にスケール・アウトし、速やかに解放されて迅速にスケール・インするように、能力を、速やかかつ柔軟に、場合によっては自動的にプロビジョンすることができる。消費者にとって、プロビジョンするために利用可能な能力は、多くの場合無限に見え、任意の時に任意の数量で購入することができる。
【0059】
計測されるサービス:クラウド・システムが、サービスのタイプ(例えば、ストレージ、処理、帯域幅、および有効なユーザ・アカウント)に適する何らかの抽象化の層で、計測能力を活用することにより、リソース使用を自動的に制御および最適化する。リソース使用を監視、制御、および報告して、利用されるサービスの提供者と消費者の両方に透明性を提供することができる。
【0060】
サービス・モデルは以下の通りである。
【0061】
サービスとしてのソフトウェア(SaaS):消費者に提供される能力は、クラウド・インフラストラクチャ上で動作する提供者のアプリケーションを使用する能力である。アプリケーションには、ウェブ・ブラウザ(例えば、ウェブベースの電子メール)などのシン・クライアント・インターフェースを通じて、様々なクライアント・デバイスからアクセスすることができる。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション能力すらをも含む、基礎となるクラウド・インフラストラクチャを、限られたユーザ固有のアプリケーション構成設定を行う可能性を除き、管理も制御もしない。
【0062】
サービスとしてのプラットフォーム(PaaS):消費者に提供される能力は、提供者によってサポートされるプログラミング言語およびツールを使用して作成された、消費者によって作成または取得されたアプリケーションを、クラウド・インフラストラクチャ上にデプロイする能力である。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎となるクラウド・インフラストラクチャを管理も制御もしないが、デプロイされたアプリケーション、および可能性としてはアプリケーション・ホスト環境構成に対する制御を有する。
【0063】
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的なコンピューティング・リソースをプロビジョンする能力であり、消費者は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアをデプロイして実行することができる。消費者は、基礎となるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションに対する制御、および場合によっては選択されたネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)の制限された制御を有する。
【0064】
デプロイ・モデルは以下の通りである。
【0065】
プライベート・クラウド:クラウド・インフラストラクチャが、一つの組織のためだけに運用される。それは、その組織または第三者によって管理され得、構内または構外に存在し得る。
【0066】
コミュニティ・クラウド:クラウド・インフラストラクチャがいくつかの組織によって共有され、共有される課題(例えば、使命、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティを支援する。それは、それら組織または第三者によって管理され得、構内または構外に存在し得る。
【0067】
パブリック・クラウド:クラウド・インフラストラクチャが、一般公衆または大きな産業グループに利用可能とされ、クラウド・サービスを販売する組織によって所有される。
【0068】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合体であり、それらのクラウドは、固有のエンティティのままであるが、データおよびアプリケーションの移植性を可能にする、標準化されたまたは独自仕様の技術(例えばクラウド間の負荷分散のためのクラウド・バースティング)によって互いに結合される。
【0069】
クラウド・コンピューティング環境は、ステートレス性、低い結合度、モジュール性、および意味的な相互動作性を重視したサービスである。クラウド・コンピューティングの中核にあるのは、相互接続されたノードのネットワークを構成するインフラストラクチャである。
【0070】
次いで
図10を参照すると、例示的なクラウド・コンピューティング・ネットワーク(1000)。示されるように、クラウド・コンピューティング・ネットワーク(1000)は、クラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信し得る1つまたは複数のクラウド・コンピューティング・ノード(1010)を有するクラウド・コンピューティング環境(1050)を含む。そのようなローカル・コンピューティング・デバイスの例には、これらに限定されないが、携帯情報端末(PDA)またはセルラー電話(1054A)、デスクトップ・コンピュータ(1054B)、ラップトップ・コンピュータ(1054C)、または自動車コンピュータ・システム(1054N)、あるいはその組合せが含まれる。ノード(1010)内の個々のノードがさらに互いと通信してよい。それらは、本明細書の上記に記載されたようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、もしくはハイブリッド・クラウドなどの1つまたは複数のネットワークとして、またはそれらの組合せとして、物理的または仮想的にグループ化されてよい(図示せず)。これにより、クラウド・コンピューティング環境(1000)が、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せをサービスとして提供することが可能となり、それに対してクラウド消費者は、ローカル・コンピューティング・デバイス上にリソースを維持しておく必要がない。
図10に示されるコンピューティング・デバイス(1054A~N)の種類は、単に例示的なものであることが意図され、またクラウド・コンピューティング環境(1050)は、任意タイプのネットワークまたはネットワーク・アドレス指定可能接続(例えばウェブ・ブラウザを使用する)、あるいはその組合せを通じて、任意タイプのコンピュータ化されたデバイスと通信できることが理解される。
【0071】
次いで
図11を参照すると、
図10のクラウド・コンピューティング・ネットワークによって提供される機能抽象化層のセット(1100)が示されている。
図11に示されるコンポーネント、層、および機能は単に例示的なものであることが意図され、実施形態はそれに限定されないことがあらかじめ理解されるべきである。描かれるように、以下の層および対応する機能が提供される:ハードウェアおよびソフトウェア層(1110)、仮想化層(1120)、管理層(1130)、および作業負荷層(1140)。ハードウェアおよびソフトウェア層(1110)は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム、一例ではIBM(R) zSeries(R)システム; RISC(Reduced Instruction Set Computer)アーキテクチャに基づくサーバ、一例ではIBM pSeries(R)システム;IBM xSeries(R)システム;IBM BladeCenter(R)システム;記憶装置;ネットワークおよびネットワーキング・コンポーネントが含まれる。ソフトウェア・コンポーネントの例には、ネットワーク・アプリケーション・サーバ・ソフトウェア、一例ではIBM WebSphere(R)アプリケーション・サーバ・ソフトウェア; およびデータベース・ソフトウェア、一例ではIBM DB2(R)データベース・ソフトウェアが含まれる。(IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere、およびDB2は、世界中の多くの管轄においてインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。)
【0072】
仮想化層(1120)は抽象化層を提供し、そこから以下の仮想エンティティの例が提供され得る:仮想サーバ;仮想ストレージ;仮想プライベート・ネットワークを含む仮想ネットワーク;仮想アプリケーションおよびオペレーティング・システム;ならびに仮想クライアント。
【0073】
一例では、管理層(1130)は、下記の機能を提供し得る:リソース・プロビジョン、計測および価格決定、ユーザ・ポータル、サービス・レベル管理、およびSLAの計画および遂行。リソース・プロビジョンは、クラウド・コンピューティング環境内でタスクを行うために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計測および価格決定は、クラウド・コンピューティング環境内でリソースが利用されるのに伴う費用追跡、およびそれらリソースの消費に対する課金または送り状送付を提供する。一例では、これらリソースは、アプリケーション・ソフトウェアのライセンスを含み得る。セキュリティは、クラウド消費者およびタスクに関する身元検証、ならびにデータおよび他のリソースに関する保護を提供する。ユーザ・ポータルは、クラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス・レベル管理は、必要とされるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル合意(SLA)の計画および遂行は、将来の必要性が見込まれるクラウド・コンピューティング・リソースの事前の構成および調達をSLAに従って提供する。
【0074】
作業負荷層(1140)は、クラウド・コンピューティング環境が利用され得る機能の例を提供する。この層から提供され得る作業負荷および機能の例には、これらに限定されないが、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想教室教育配信、データ分析処理、トランザクション処理、およびアプリケーションの多目的最適化の管理が含まれる。
【0075】
本明細書に示されるシステムおよびフローチャートは、不可欠な駆動される体系化されたインフラストラクチャを動的に統合するためのコンピュータ・プログラム・デバイスの形態であってもよい。デバイス中には、プログラム・コードが具現化されている。プログラム・コードは、記載される機能を支援するために処理ユニットによって実行可能である。
【0076】
特定の実施形態が図示され、説明されたが、当業者には、本明細書の教示に基づいて、本発明のより広い態様から逸脱することなく、変更および改変がなされてよいことが明らかになろう。したがって、添付の特許請求の範囲は、実施形態の真の範囲内にあるすべてのそのような変更および改変をその範囲に包含するものとする。さらに、実施形態は、添付の特許請求の範囲のみによって定義されることが理解されるべきである。特定の数の提起されるクレーム要素が意図される場合、その意図はその請求項中に明示的に述べられ、そのような記述がない場合には、そのような限定が存在しないことが当業者によって理解されるであろう。非制限な例として、理解の助けとして、以下の特許請求の範囲は、クレーム要素を提起するために「少なくとも1つの」および「1つまたは複数の」という前置き表現の使用を含んでいる。しかし、そのような表現の使用は、同じ請求項が、「少なくとも1つの」および「1つまたは複数の」という前置き表現ならびに「a」または「an」などの不定冠詞を含む場合でも、不定冠詞「a」および「an」によるクレーム要素の提起が、その提起されるクレーム要素を含んでいる任意の特定の請求項を、その要素を1つしか含んでいない実施形態に制限することを示唆するとは解釈すべきでなく、同じことが、請求項における定冠詞の使用にも当てはまる。
【0077】
本実施形態は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。また、本実施形態の選択された態様は、本明細書においてすべて一般に「回路」、「モジュール」または「システム」と呼ばれることのある、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、または、ソフトウェア態様および/もしくはハードウェア態様を組み合わせた実施形態の形態を取ってよい。さらに、本実施形態の態様は、プロセッサに本実施形態の態様を実行させるためのコンピュータ可読プログラム命令を有したコンピュータ可読記憶媒体(1つまたは複数)として具現化されたコンピュータ・プログラム製品の形態を取ってよい。そのように具現化されると、開示される本システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せは、アプリケーションの多目的最適化の機能および動作を向上させるように動作する。
【0078】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶することが可能な有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、これらに限定されないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、または上述の任意の好適な組合せであってよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストには、携帯型コンピュータ・ディスケット、ハード・ディスク、動的または静的ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラム可能読出し専用メモリ(EPROMまたはフラッシュ・メモリ)、磁気記憶装置、携帯型コンパクト・ディスク読出し専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチ・カードや命令が記録されている溝内の隆起構造などの機械的に符号化されたデバイス、または上述の任意の好適な組合せが含まれる。本発明において使用されるコンピュータ可読記憶媒体は、電波または他の自由伝搬する電磁波、導波管もしくは他の伝送媒体を通って伝搬する電磁波(例えば光ファイバ・ケーブルを通る光パルス)、または電線を通じて伝送される電気信号などの一過性の信号自体であるとは解釈されるべきでない。
【0079】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークまたはワイヤレス・ネットワーク、あるいはその組合せを介して、外部コンピュータもしくは外部記憶装置にダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含んでよい。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内部のコンピュータ可読記憶媒体内に記憶するために転送する。
【0080】
本実施形態の動作を実施するためのコンピュータ可読プログラム命令は、Java(R)、Smalltalk(R)、C++等のオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、ソース・コードもしくはオブジェクト・コードのいずれかであってよい。コンピュータ可読プログラム命令は、スタンドアロンのソフトウェア・パッケージとして、全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータもしくはサーバもしくはサーバのクラスタ上で実行されてよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意タイプのネットワークを通じてユーザのコンピュータに接続されてよく、または接続は外部コンピュータになされてもよい(例えばインターネット・サービス・プロバイダを使用してインターネットを通じて)。一部の実施形態では、例えば、プログラム可能論理回路、フィールド・プログラム可能ゲートアレイ(FPGA)、またはプログラム可能論理アレイ(PLA)を含む電子回路が、本実施形態の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別設定することによって、コンピュータ可読プログラム命令を実行してよい。
【0081】
本実施形態の態様は、本明細書において、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して記載される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその組合せの中のブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
【0082】
それらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するための手段を作り出すように機械を制作すべく、汎用コンピュータ、特殊目的コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてよい。それらのコンピュータ可読プログラム命令は、命令が記憶されているコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作の態様を実施する命令を含む製造品を構成するように、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の様態で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
【0083】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイスで実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定される機能/動作を実施するように、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを行わせて、コンピュータにより実施されるプロセスを発生させてもよい。
【0084】
図におけるフローチャートおよびブロック図は、本実施形態の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を説明している。これに関して、フローチャートまたはブロック図中の各ブロックは、モジュール、セグメント、または命令の一部を表し得、それは、指定される論理機能を実施するための1つまたは複数の実行可能命令を含む。一部の代替実装形態では、ブロックに記される機能は、図に記される順序から外れて行われてよい。例えば、連続して示される2つのブロックが、実際には実質的に同時に実行され、またはそれらブロックは、時に、関与する機能に応じて逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方の中のブロックの組合せは、指定される機能もしくは動作を行うか、または特殊目的ハードウェアとコンピュータ命令との組合せを実施する、特殊目的のハードウェア・ベース・システムによって実施され得ることにも留意されたい。
【0085】
説明のために特定の実施形態が本明細書に記載されたが、実施形態の範囲から逸脱することなく、様々な変更がなされてよいことが理解されよう。特に、不可欠な駆動される体系化されたインフラストラクチャの動的な統合を含む、体系化されたインフラストラクチャが、異なるコンピューティング・プラットフォームによって、または複数のデバイスにわたって、実行されてよい。さらに、データ・ストレージまたはコーパスあるいはその両方は、ローカルにされるか、リモートにあるか、または複数のシステムにわたって分散されてよい。したがって、実施形態の保護範囲は、以下の特許請求の範囲およびその相当物のみによって制限される。