IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キンドリル・インクの特許一覧

特許7529634コンピュータ実装方法、コンピュータプログラムおよびコンピュータシステム(パフォーマンスおよびコストに基づくメインフレームおよび分散ワークロードのバランシング)
<>
  • 特許-コンピュータ実装方法、コンピュータプログラムおよびコンピュータシステム(パフォーマンスおよびコストに基づくメインフレームおよび分散ワークロードのバランシング) 図1
  • 特許-コンピュータ実装方法、コンピュータプログラムおよびコンピュータシステム(パフォーマンスおよびコストに基づくメインフレームおよび分散ワークロードのバランシング) 図2
  • 特許-コンピュータ実装方法、コンピュータプログラムおよびコンピュータシステム(パフォーマンスおよびコストに基づくメインフレームおよび分散ワークロードのバランシング) 図3
  • 特許-コンピュータ実装方法、コンピュータプログラムおよびコンピュータシステム(パフォーマンスおよびコストに基づくメインフレームおよび分散ワークロードのバランシング) 図4
  • 特許-コンピュータ実装方法、コンピュータプログラムおよびコンピュータシステム(パフォーマンスおよびコストに基づくメインフレームおよび分散ワークロードのバランシング) 図5
  • 特許-コンピュータ実装方法、コンピュータプログラムおよびコンピュータシステム(パフォーマンスおよびコストに基づくメインフレームおよび分散ワークロードのバランシング) 図6
  • 特許-コンピュータ実装方法、コンピュータプログラムおよびコンピュータシステム(パフォーマンスおよびコストに基づくメインフレームおよび分散ワークロードのバランシング) 図7
  • 特許-コンピュータ実装方法、コンピュータプログラムおよびコンピュータシステム(パフォーマンスおよびコストに基づくメインフレームおよび分散ワークロードのバランシング) 図8
  • 特許-コンピュータ実装方法、コンピュータプログラムおよびコンピュータシステム(パフォーマンスおよびコストに基づくメインフレームおよび分散ワークロードのバランシング) 図9
  • 特許-コンピュータ実装方法、コンピュータプログラムおよびコンピュータシステム(パフォーマンスおよびコストに基づくメインフレームおよび分散ワークロードのバランシング) 図10
  • 特許-コンピュータ実装方法、コンピュータプログラムおよびコンピュータシステム(パフォーマンスおよびコストに基づくメインフレームおよび分散ワークロードのバランシング) 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-29
(45)【発行日】2024-08-06
(54)【発明の名称】コンピュータ実装方法、コンピュータプログラムおよびコンピュータシステム(パフォーマンスおよびコストに基づくメインフレームおよび分散ワークロードのバランシング)
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240730BHJP
【FI】
G06F9/50 150E
G06F9/50 150A
G06F9/50 150D
【請求項の数】 20
(21)【出願番号】P 2021156576
(22)【出願日】2021-09-27
(65)【公開番号】P2022056391
(43)【公開日】2022-04-08
【審査請求日】2023-04-24
(31)【優先権主張番号】17/035,873
(32)【優先日】2020-09-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521555742
【氏名又は名称】キンドリル・インク
【氏名又は名称原語表記】Kyndryl Inc.
【住所又は居所原語表記】One Vanderbilt Avenue,15th Floor,New York,New York 10017,USA
(74)【代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】モレイラ マーティンズ アラン ダグラス
(72)【発明者】
【氏名】バッティバ フェレイラ ティアゴ
(72)【発明者】
【氏名】ビオンド ジュニア ホセ ギルベルト
(72)【発明者】
【氏名】ディアス ジェネロソ ティアゴ
(72)【発明者】
【氏名】フェレイラ ロバート ジャスティニアーノ
【審査官】漆原 孝治
(56)【参考文献】
【文献】特表2013-538398(JP,A)
【文献】国際公開第2010/137455(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
1または複数のプロセッサが、複数の作業単位を含むアプリケーションワークロードをメインフレームプラットフォームおよび分散コンピューティングプラットフォームに割り当てるための要求を受信する段階と、
1つまたは複数のプロセッサが、前記アプリケーションワークロードを評価し、前記アプリケーションワークロードを前記複数の作業単位に分割する段階と、
1つまたは複数のプロセッサが、前記複数の作業単位のアクティビティを前記複数の作業単位のアクティビティのパフォーマンスおよび少なくとも1つの対象環境の使用のためのコストデータの少なくとも1つに基づいて前記アクティビティにスコアを付けてランク付けする段階と、
1または複数のプロセッサが、前記アプリケーションワークロード、前記メインフレームプラットフォーム、および前記分散コンピューティングプラットフォームに関連付けられた前記パフォーマンスおよび前記コストデータを収集する段階と、
1または複数のプロセッサが、前記パフォーマンスおよび前記コストデータの分析に基づいて、前記アプリケーションワークロードの前記複数の作業単位について、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームを判断する段階と、
1または複数のプロセッサが、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームでそれぞれ実行するために、前記アプリケーションワークロードの前記複数の作業単位を割り当て、前記パフォーマンスおよびコストをリアルタイムでバランシングする段階と
を備えるコンピュータ実装方法。
【請求項2】
1または複数のプロセッサが、前記アプリケーションワークロードに関する履歴データがレポジトリに存在すると判断する段階と、
1または複数のプロセッサが、前記アプリケーションワークロードに関する前記履歴データを検証する段階と、
1または複数のプロセッサが、前記履歴データに基づいて前記アプリケーションワークロードの前記複数の作業単位について、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームを優先化する段階と
を更に備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
1または複数のプロセッサが、前記アプリケーションワークロードに関する履歴データがレポジトリに存在しないと判断する段階と、
1または複数のプロセッサが、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームへの前記アプリケーションワークロードの前記複数の作業単位のコスト推定を実行する段階と、
1または複数のプロセッサが、前記コスト推定に基づいて、前記アプリケーションワークロードの前記複数の作業単位について、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームを優先化する段階と
を更に備える、請求項1または2に記載のコンピュータ実装方法。
【請求項4】
前記パフォーマンスおよびコストデータは、使用量、コスト、レイテンシ、およびスループットデータから成るグループから選択されるデータを含む、請求項1から3のいずれか一項に記載のコンピュータ実装方法。
【請求項5】
前記パフォーマンスおよびコストデータは、処理優先度、処理インデックス、データ要件、接続性、システム親和性、サーバ健全性、管理、および業務データから成るグループから選択されるデータを含む、請求項1から3のいずれか一項に記載のコンピュータ実装方法。
【請求項6】
前記アプリケーションワークロードの前記複数の作業単位について、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームを判断する段階は、
2以上のプラットフォームが同一のコストを提供するという判断に応答して、前記アプリケーションワークロードに関連付けられたワークロードのタイプについて、より高いパフォーマンス履歴を有する選択肢を選択する段階と、
2以上のプラットフォームが同一のパフォーマンス特性を提供するという判断に応答して、より低コストを有する選択肢を選択する段階と
を含む、請求項1から5のいずれか一項に記載のコンピュータ実装方法。
【請求項7】
前記アプリケーションワークロードに関連付けられた履歴データを動的に更新する段階を更に備える、請求項1から6のいずれか一項に記載のコンピュータ実装方法。
【請求項8】
プロセッサに、
複数の作業単位を含むアプリケーションワークロードをメインフレームプラットフォームおよび分散コンピューティングプラットフォームに割り当てるための要求を受信する手順と、
1つまたは複数のプロセッサが、前記アプリケーションワークロードを評価し、前記アプリケーションワークロードを前記複数の作業単位に分割する手順と、
1つまたは複数のプロセッサが、前記複数の作業単位のアクティビティを前記複数の作業単位のアクティビティのパフォーマンスおよび少なくとも1つの対象環境の使用のためのコストデータの少なくとも1つに基づいて前記アクティビティにスコアを付けてランク付けする手順と、
1または複数のプロセッサが、前記アプリケーションワークロード、前記メインフレームプラットフォーム、および前記分散コンピューティングプラットフォームに関連付けられた前記パフォーマンスおよび前記コストデータを収集する手順と、
1または複数のプロセッサが、前記パフォーマンスおよび前記コストデータの分析に基づいて、前記アプリケーションワークロードの前記複数の作業単位について、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームを判断する手順と、
1または複数のプロセッサが、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームでそれぞれ実行するために、前記アプリケーションワークロードの前記複数の作業単位を割り当て、前記パフォーマンスおよびコストをリアルタイムでバランシングする手順と
を実行させるためのコンピュータプログラム。
【請求項9】
前記プロセッサに、
前記アプリケーションワークロードに関する履歴データがレポジトリに存在すると判断する手順と、
前記アプリケーションワークロードに関する前記履歴データを検証する手順と、
前記履歴データに基づいて、前記アプリケーションワークロードの前記複数の作業単位について、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームを優先化する手順と
を更に実行させる、請求項8に記載のコンピュータプログラム。
【請求項10】
前記プロセッサに、
前記アプリケーションワークロードに関する履歴データがレポジトリに存在しないと判断する手順と、
前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームへの前記アプリケーションワークロードの前記複数の作業単位のコスト推定を実行する手順と、
前記コスト推定に基づいて、前記アプリケーションワークロードの前記複数の作業単位について、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームを優先化する手順と
を更に実行させる、請求項8または9に記載のコンピュータプログラム。
【請求項11】
前記パフォーマンスおよびコストデータは、使用量、コスト、レイテンシ、およびスループットデータから成るグループから選択されるデータを含む、請求項8から10のいずれか一項に記載のコンピュータプログラム。
【請求項12】
前記パフォーマンスおよびコストデータは、処理優先度、処理インデックス、データ要件、接続性、システム親和性、サーバ健全性、管理、および業務データから成るグループから選択されるデータを含む、請求項8から10のいずれか一項に記載のコンピュータプログラム。
【請求項13】
前記アプリケーションワークロードの前記複数の作業単位について、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームを判断する手順は、
2以上のプラットフォームが同一のコストを提供するという判断に応答して、前記アプリケーションワークロードに関連付けられたワークロードのタイプについて、より高いパフォーマンス履歴を有する選択肢を選択する手順と、
2以上のプラットフォームが同一のパフォーマンス特性を提供するという判断に応答して、より低コストを有する選択肢を選択する手順と
を含む、請求項8から12のいずれか一項に記載のコンピュータプログラム。
【請求項14】
前記プロセッサに、
前記アプリケーションワークロードに関連付けられた履歴データを動的に更新する手順を更に実行させる、請求項8から13のいずれか一項に記載のコンピュータプログラム。
【請求項15】
1または複数のコンピュータプロセッサと、1または複数のコンピュータ可読記憶媒体と、前記1または複数のコンピュータプロセッサの少なくとも1つによって実行するための、前記1または複数のコンピュータ可読記憶媒体に格納されたプログラム命令とを備えるコンピュータシステムであって、前記プログラム命令は、
複数の作業単位を含むアプリケーションワークロードをメインフレームプラットフォームおよび分散コンピューティングプラットフォームに割り当てるための要求を受信するプログラム命令と、
前記アプリケーションワークロードを評価し、前記アプリケーションワークロードを前記複数の作業単位に分割するプログラム命令と、
前記複数の作業単位のアクティビティを前記複数の作業単位のアクティビティのパフォーマンスおよび少なくとも1つの対象環境の使用のためのコストデータの少なくとも1つに基づいて前記アクティビティにスコアを付けてランク付けするプログラム命令と、
前記アプリケーションワークロード、前記メインフレームプラットフォーム、および前記分散コンピューティングプラットフォームに関連付けられた前記パフォーマンスおよび前記コストデータを収集するプログラム命令と、
前記パフォーマンスおよび前記コストデータの分析に基づいて、前記アプリケーションワークロードの前記複数の作業単位について、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームを判断するプログラム命令と、
1または複数のプロセッサが、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームでそれぞれ実行するために、前記アプリケーションワークロードの前記複数の作業単位を割り当て、前記パフォーマンスおよびコストをリアルタイムでバランシングするためのプログラム命令と
を含む、コンピュータシステム。
【請求項16】
前記アプリケーションワークロードに関する履歴データがレポジトリに存在すると判断するための、前記1または複数のコンピュータ可読記憶媒体に格納されたプログラム命令と、
前記アプリケーションワークロードに関する前記履歴データを検証するための、前記1または複数のコンピュータ可読記憶媒体に格納されたプログラム命令と、
前記履歴データに基づいて、前記アプリケーションワークロードの前記複数の作業単位について、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームを優先化するための、前記1または複数のコンピュータ可読記憶媒体に格納されたプログラム命令と
を更に備える、請求項15に記載のコンピュータシステム。
【請求項17】
前記アプリケーションワークロードに関する履歴データがレポジトリに存在しないと判断するための、前記1または複数のコンピュータ可読記憶媒体に格納されたプログラム命令と、
前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームへの前記アプリケーションワークロードの前記複数の作業単位のコスト推定を実行するための、前記1または複数のコンピュータ可読記憶媒体に格納されたプログラム命令と、
前記コスト推定に基づいて、前記アプリケーションワークロードの前記複数の作業単位について、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームを優先化するための、前記1または複数のコンピュータ可読記憶媒体に格納されたプログラム命令と
を更に備える、請求項15または16に記載のコンピュータシステム。
【請求項18】
前記パフォーマンスおよびコストデータは、使用量、コスト、レイテンシ、およびスループットデータから成るグループから選択されるデータを含む、請求項15から17のいずれか一項に記載のコンピュータシステム。
【請求項19】
前記パフォーマンスおよびコストデータは、処理優先度、処理インデックス、データ要件、接続性、システム親和性、サーバ健全性、管理、および業務データから成るグループから選択されるデータを含む、請求項15から17のいずれか一項に記載のコンピュータシステム。
【請求項20】
前記アプリケーションワークロードの前記複数の作業単位について、前記メインフレームプラットフォームおよび前記分散コンピューティングプラットフォームを判断するためのプログラム命令は、
2以上のプラットフォームが同一のコストを提供するという判断に応答して、前記アプリケーションワークロードに関連付けられたワークロードのタイプについて、より高いパフォーマンス履歴を有する選択肢を選択するためのプログラム命令と、
2以上のプラットフォームが同一のパフォーマンス特性を提供するという判断に応答して、より低コストを有する選択肢を選択するためのプログラム命令と
を含む、請求項15から19のいずれか一項に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、メインフレームおよび分散コンピューティングの分野に関し、より具体的には、アプリケーションワークロードを割り当ててメインフレームプラットフォームおよび分散コンピューティングプラットフォーム上で実行することに関する。
【背景技術】
【0002】
メインフレームは、非常に大量のデータを迅速に処理するために設計された大型のコンピュータシステムであり得る。メインフレームシステムは、金融業界、航空機の予約、物流、および、大量のトランザクションを日常的な業務慣行の一部として処理する必要がある他の分野などの産業において広く使用され得る。分散コンピュータシステムは、複数のコンピュータ上にあるが単一のシステムとして実行する複数のソフトウェアコンポーネントから成り得る。分散システムにおけるコンピュータは、物理的に互いの近くにあり、ローカルネットワークによって接続され得るか、または、地理的に遠くにあり、ワイドエリアネットワークによって接続され得る。分散システムは、メインフレーム、パーソナルコンピュータ、ワークステーション、マイクロコンピュータなど、任意の数の可能な構成から成り得る。分散コンピューティングの目標は、そのようなネットワークに単一のコンピュータとして作業させることである。
【発明の概要】
【発明が解決しようとする課題】
【0003】
分散コンピューティングの目標は、ネットワークに単一のコンピュータとして作業させることである。
【課題を解決するための手段】
【0004】
本開示の実施形態の態様は、メインフレームおよび分散ワークロードをバランシングするためのアプローチを開示する。プロセッサが、アプリケーションワークロードをメインフレームプラットフォームおよび分散コンピューティングプラットフォームに割り当てるための要求を受信する。アプリケーションワークロードは複数の作業単位を含む。プロセッサが、アプリケーションワークロード、メインフレームプラットフォーム、および、分散コンピューティングプラットフォームに関連付けられたパフォーマンスおよびコストデータを収集する。プロセッサが、パフォーマンスおよびコストデータの分析に基づいて、アプリケーションワークロードの複数の作業単位について、メインフレームプラットフォームおよび分散コンピューティングプラットフォームを判断する。プロセッサが、メインフレームプラットフォームおよび分散コンピューティングプラットフォーム上でそれぞれ実行するために、アプリケーションワークロードの複数の作業単位を割り当て、パフォーマンスおよびコストをリアルタイムでバランシングする。
【図面の簡単な説明】
【0005】
図1】本開示の実施形態によるワークロード制御環境を示す機能ブロック図である。
【0006】
図2】本開示の実施形態による、図1のコンピューティングデバイスにおけるワークロード制御モジュールの動作ステップを図示するフローチャートである。
【0007】
図3】本開示の実施形態による、図1のワークロード制御モジュールを適用する例示的な環境である。
【0008】
図4】本開示の実施形態による、図1のワークロード制御モジュールの例示的機能図である。
【0009】
図5】本開示の実施形態による、図1のワークロード制御モジュールの動作ステップを図示する例示的なアーキテクチャ図である。
【0010】
図6】本開示の実施形態による図1のワークロード制御モジュールの動作ステップを図示する例示的機能図である。
【0011】
図7】本開示の実施形態による図1のワークロード制御モジュールおよびレジデントの動作ステップを図示する例示的機能図である。
【0012】
図8】本開示の実施形態による、図1のワークロード制御モジュールの動作ステップを図示する例示的機能図である。
【0013】
図9】本開示の実施形態による、図1のコンピューティングデバイスのコンポーネントのブロック図である。
【0014】
図10】本開示によるクラウドコンピューティング環境の実施形態を図示する。
【0015】
図11】本開示によるクラウドコンピューティング環境の抽象化モデル層の実施形態を図示する。
【発明を実施するための形態】
【0016】
本開示は、パフォーマンスおよびコストに基づいてメインフレームおよび分散ワークロードをバランシングするシステムおよび方法に関する。
【0017】
本開示の実施形態は、メインフレームまたは分散(例えば、任意の非メインフレーム)コンピューティングプラットフォームを使用してアプリケーションを構築することを判断するための必要性を認識する。本開示の実施形態は、アプリケーション全体がメインフレームまたは分散プラットフォームに行くかどうか、もしくは、アプリケーションの一部がメインフレームプラットフォーム上で、別の一部が分散プラットフォーム上で実行できるかどうか、またはその両方を決定する必要性を認識する。本開示の実施形態は、メインフレームおよび分散解決策の両方で作業する長所および短所を理解し、何等かの方式で使用量に着目する必要性を認識する。本開示の実施形態は更に、メインフレームまたは分散環境上にマイクロサービス解決策を割り当てる必要性を認識する。両方のプラットフォームは、信頼性、コスト、パフォーマンス、およびセキュリティに基づいて、異なる恩恵を提供できる。
【0018】
本開示の実施形態は、アプリケーションの一部がメインフレーム上で実行できるかどうか、または、一時的に分散環境へ行くことができるかどうかを、使用されるコストモデル、パフォーマンス指標、および利用可能性に基づいてリアルタイムで決定することをサポートできる解決策を開示する。本開示の実施形態は、様々なデータソースからのデータを収集および処理して、処理される関連情報に基づいて、メインフレームまたは分散システム上で利用可能なアプリケーションを実行する決定を可能にすることを開示する。関連情報のいくつかのサンプルは、処理コスト、レイテンシ、スループット、および利用可能性を含み得る。本開示の実施形態は、パフォーマンス、スループット、およびユーザが要求するパフォーマンス指標をなお達成しながら、アプリケーション処理コストを低減することを開示する。本開示の実施形態は、メインフレーム環境からのアプリケーションワークロードを評価し、ワークロードを論理ピースに分解し、リソース消費に基づいてアクティビティをランク付けすることを開示する。本開示の実施形態は、分散環境によって処理されるべきワークロードの一部を送信することによってコストを節約する機会を識別することを開示する。本開示の実施形態は、履歴パフォーマンスデータを分析して、将来の決定を助けることを開示する。
【0019】
ここで、図を参照して本開示を詳細に説明する。図1は、本開示の実施形態による、一般的に100で示される、ワークロード制御環境を示す機能ブロック図である。
【0020】
図示される実施形態において、ワークロード制御環境100は、コンピューティングデバイス102、アプリケーションワークロード104、メインフレームプラットフォーム110、分散コンピューティングプラットフォーム112、データレポジトリ106、およびネットワーク108を含む。
【0021】
1または複数の実施形態において、アプリケーションワークロード104は、例えばメインフレームプラットフォーム110もしくは分散コンピューティングプラットフォーム112またはその両方など、様々なコンピューティングプラットフォームまたは環境に展開されるアプリケーションまたはサービスであり得る。サービスは、互いに協調して作業する数百のマイクロサービスを含む巨大なサービス、または、小さい個々のサービスであり得る。アプリケーションワークロード104は、別々のアプリケーションを構成する個々の作業の能力および単位すべてであり得る。アプリケーションワークロード104は、様々なコンピューティングプラットフォームまたは環境、例えば、メインフレームプラットフォーム110もしくは分散コンピューティングプラットフォーム112またはその両方において実行し得る。アプリケーションワークロード104は、パフォーマンス(例えば、メインフレームプラットフォーム110もしくは分散コンピューティングプラットフォーム112またはその両方がどれだけ容易にアプリケーションワークロード104を処理し得るか)で評価され得る。パフォーマンスは一般的に、応答時間(ユーザ要求と、プラットフォームからの要求への応答との間の時間)およびスループット(ある期間において、どれだけ多くの作業が達成されたか)に分けられる。アプリケーションワークロード104は、実行できる独立したサービスまたはコード群であり得る。アプリケーションワークロード104は、コンピュータアセット、例えば、メインフレームプラットフォーム110もしくは分散コンピューティングプラットフォーム112またはその両方に跨って実行され得る。アプリケーションワークロード104は、特定の期間においてコンピュータリソースによって達成される必要がある作業の量を含み得る。
【0022】
1または複数の実施形態において、メインフレームプラットフォーム110は、1または複数のメインフレームコンピュータ(または、交換可能にメインフレームと呼ばれる)、ならびに、メインフレームの動作、統合、およびインタフェースの態様を含むメインフレーム環境であり得る。メインフレームは一般に、サイズ、ストレージの量、処理能力が大きく、高度な信頼性で知られるコンピュータのタイプであり得る。メインフレームは、大量のデータ処理を必要とするミッションクリティカルのアプリケーションのために大きい組織によって使用され得る。メインフレームは、複数のオペレーティングシステムを実行する(またはホストする)能力を有し得る。メインフレームは、中断することなく、システム容量を追加またはホットスワップできる。メインフレームは、非常に大量の入出力(I/O)を処理し、スループットコンピューティングに重点を置くよう設計され得る。メインフレームは、大きいタイプのサーバであり得る。メインフレームは、数千のアプリケーションおよび入出力デバイスをサポートして、数千のユーザに同時にサービスを提供し得る。メインフレームは、ワークステーションまたは端末など、より低いパフォーマンスのデバイスを通じてユーザとつながる、企業のデータ処理センタにおける中央のデータレポジトリまたはハブであり得る。メインフレームは、商業用のデータベース、トランザクションサーバ、および、より小さいスケールの機械において通常見られるものより高度なセキュリティおよび利用可能性を必要とするアプリケーションをホストし得る。メインフレームは、重要なアプリケーション、バルクデータ処理(国勢調査、産業および消費者統計など)、企業リソース計画、およびトランザクション処理のために大きい組織によって使用されるコンピュータであり得る。
【0023】
メインフレームプラットフォーム110は、信頼性、コスト、パフォーマンス、およびセキュリティに基づいて、異なる恩恵を提供し得る。図示される実施形態において、メインフレームプラットフォーム110はレジデント116を含む。レジデント116は、例えばコンピューティングデバイス102上のワークロード制御モジュール114によってアクセスされるメインフレームプラットフォーム110のリソースおよびシステムデータを要求時に収集および提供し得る。リソースおよびシステムデータは、パフォーマンスおよび容量データを含み得る。レジデント116は、メインフレームリソースを監視および追跡し、パフォーマンスおよび使用統計値、ならびに、メインフレームプラットフォーム110で実行するワークロードに関するレポートをワークロード制御モジュール114に返し得る。任意選択で、レジデント116はまた、他の論理パーティションにおける他のレジデントと通信して、ワークロード制御モジュール114を介して送信されるデータを統合できる。
【0024】
1または複数の実施形態において、分散コンピューティングプラットフォーム112は、コンポーネントが異なるネットワークコンピュータ上に位置し得る分散コンピューティング環境であり得る。例示の目的で、分散コンピューティングプラットフォーム112は、メインフレームプラットフォーム以外の任意のプラットフォームであり得る。分散コンピューティングプラットフォーム112は、メッセージを互いに渡すことによってアクションを通信および調整し得る複数の分散コンピュータを含み得る。分散コンピューティングプラットフォーム112は、高度な目的に対して緊密に作業するように統合された複数のコンポーネント(例えば、ディレクトリサービス、ファイルサービス、セキュリティサービス)を含み得る。目的は、カスタムアプリケーションの構築、または、他のアプリケーションへのサポートの提供を含み得る。共通の目的を達成するべく、分散コンピューティングプラットフォーム112におけるコンポーネントは、互いにインタラクトし得る。分散コンピューティングプラットフォーム112は、個々の分散コンピュータ間の差を隠す既存のオペレーティングシステムの上に構築された、アーキテクチャ、標準サービスのセット、および、アプリケーションプログラムを含み得る。分散コンピューティングプラットフォーム112は、単一の分散システムにおける分散アプリケーションの開発および使用をサポートし得る。
【0025】
分散コンピューティングプラットフォーム112は、例えば、オープンソースソリューション、より速い開発時間、および、より大きい知識ベースなどを含む、様々な恩恵を提供し得る。メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112は、異なるインフラストラクチャサポート要件を有し得る。メインフレームプラットフォーム110は、コンピューティングの集中化された方法を使用し得る。メインフレームプラットフォーム110についてのインフラストラクチャ要素の多くは、既に含まれ得、内部で共有され得る。分散コンピューティングプラットフォーム112は、共有インフラストラクチャに依存し得る。分散コンピューティングプラットフォーム112上の分散アプリケーションの要素は、別個のサーバ上に展開され得、ネットワークを通じて接続され得る。
【0026】
1または複数の実施形態において、データレポジトリ106は、メインフレームプラットフォーム110、分散コンピューティングプラットフォーム112、およびアプリケーションワークロード104からのデータを含み、保存し得る。データレポジトリ106は、パフォーマンスおよびコストデータを含み得る。例えば、パフォーマンスおよびコストデータは、使用量、コスト、レイテンシ、およびスループットデータを含み得る。パフォーマンスおよびコストデータは、処理優先度、処理インデックス、データ要件、接続性、システム親和性、サーバ健全性、管理、および業務データであり得る。例えば、パフォーマンスおよびコストデータは、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112の使用量、サーバ数、応答時間、コスト、接続性、およびスループットを含む情報であり得る。パフォーマンスおよびコストデータは、メインフレームプラットフォーム110のデータシステム管理およびリソース管理データから収集され得る。ワークロード制御モジュール114は、様々なデータソースからのデータを収集および処理し得、処理される関連情報に基づいて、メインフレームまたは分散システム、例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112上で利用可能なアプリケーションを実行する決定を可能にする。関連情報のいくつかのサンプルは、処理コスト、レイテンシ、スループット、および利用可能性を含み得る。パフォーマンスおよびコストデータは、処理優先度、処理インデックス(例えば、どれだけ多くのCPUアプリケーションワークロード104を消費することが予測されるか)、データ要件(例えば、データベースアクセス、ファイルアクセス)、接続性およびシステム親和性を含み得る。パフォーマンスおよびコストデータは、サーバ健全性データ、例えば、接続性、利用可能性、処理速度および容量、メモリ、I/Oレート、コスト、ならびにネットワークを含み得る。ワークロード制御モジュール114は、管理および業務データ、例えば、主要パフォーマンスインデックス、コストモデル、ならびにアプリケーションおよびシステム閾値を収集および分析して、アプリケーションワークロード104を処理するために要求されるコンポーネントを配置するワークロード制御モジュール114が様々な異機種環境のどこで実行するかを判断し得る。ワークロード制御モジュール114は、データレポジトリ106におけるアプリケーションワークロード104に関連付けられた履歴データを更新し得る。ワークロード制御モジュール114は、データレポジトリ106を処理および更新して、意思決定情報データを更新し得る。
【0027】
本開示の様々な実施形態において、コンピューティングデバイス102は、ラップトップコンピュータ、タブレットコンピュータ、ネットブックコンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、携帯電話、スマートフォン、スマートウォッチ、ウェアラブルコンピューティングデバイス、パーソナルデジタルアシスタント(PDA)、またはサーバであり得る。別の実施形態において、コンピューティングデバイス102は、シームレスなリソースの単一プールとして機能するためにクラスタ化されたコンピュータおよびコンポーネントを利用するコンピューティングシステムを表す。他の実施形態において、コンピューティングデバイス102は、クラウドコンピューティング環境などにおいて、複数のコンピュータをサーバシステムとして利用するサーバコンピューティングシステムを表し得る。概して、コンピューティングデバイス102は、ワークロード制御モジュール114およびネットワーク108へのアクセスを有する任意のコンピューティングデバイスまたはデバイスの組み合わせであり得、本開示の実施形態に従って、プログラム命令を処理し、ワークロード制御モジュール114を実行することが可能である。コンピューティングデバイス102は、図9に関して更に詳細に図示および説明される内部または外部ハードウェアコンポーネントを含み得る。図示される実施形態において、コンピューティングデバイス102は、外部に位置し、ネットワーク108などの通信ネットワークを通じてアクセスされる。しかしながら、他の実施形態において、コンピューティングデバイス102は、メインフレームプラットフォーム110、分散コンピューティングプラットフォーム112、または、ネットワーク108などの通信ネットワークを通じてアクセスされる任意の他の好適な場所に位置し得る。
【0028】
更に、図示される実施形態において、コンピューティングデバイス102はワークロード制御モジュール114を含む。図示される実施形態において、ワークロード制御モジュール114はコンピューティングデバイス102に位置する。しかしながら、他の実施形態において、ワークロード制御モジュール114は、外部に位置し、ネットワーク108などの通信ネットワークを通じてアクセスされ得る。通信ネットワークは例えば、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、または、その2つの組み合わせであり得、有線、無線、光ファイバ、または、当技術分野において知られている任意の他の接続を含み得る。概して、通信ネットワークは、本開示の望ましい実施形態による、コンピューティングデバイス102とワークロード制御モジュール114との間の通信をサポートする接続およびプロトコルの任意の組み合わせであり得る。
【0029】
1または複数の実施形態において、ワークロード制御モジュール114は、アプリケーションワークロード104をメインフレームプラットフォーム110および分散コンピューティングプラットフォーム112に割り当てる要求を受信するよう構成される。例において、ワークロード制御モジュール114は、アプリケーションワークロード104を割り当てる要求をユーザから受信し得る。別の例において、ワークロード制御モジュール114は、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112に割り当てられるアプリケーションワークロード104を自動的に受信し得る。アプリケーションワークロード104は、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112上でそれぞれ実行するように割り当てられる複数の作業単位を含み得る。各作業単位は、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112上で実行できるアプリケーションワークロード104の論理ピースであり得る。ワークロード制御モジュール114は、処理されるアプリケーションワークロード104に関する情報についてデータレポジトリ106をチェックし得る。例えば、ワークロード制御モジュール114は、例えば、アプリケーションワークロード104の元となるシステムまたはネットワーク、オペレーティングシステム、要求されたコンポーネント(例えば、ネットワーク、I/O、メモリ、CPU)、システム親和性、および優先度情報(例えば、アプリケーションワークロード104自体またはデータレポジトリ106のいずれかから取得される)を含む、アプリケーションワークロード104に関連付けられたデータおよび情報を検索し得る。ワークロード制御モジュール114は、アプリケーションワークロード104に関する任意の履歴データがデータレポジトリ106に存在するかどうかを判断し得る。アプリケーションワークロード104に関するいくつかの履歴データがデータレポジトリ106に存在するとワークロード制御モジュール114が判断した場合、ワークロード制御モジュール114は更に、アプリケーションワークロードに関する履歴データを検証し得る。アプリケーションワークロード104に関する履歴データがデータレポジトリ106に存在しないとワークロード制御モジュール114が判断する場合、ワークロード制御モジュール114は、アプリケーションワークロード104の優先度を、例えばメインフレームプラットフォーム110および分散コンピューティングプラットフォーム112など適格なプラットフォームの処理容量と比較し得る。ワークロード制御モジュール114は、例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112などの各適格なプラットフォームにおいてアプリケーションワークロード104を実行するコスト推定を実行し得る。
【0030】
1または複数の実施形態において、ワークロード制御モジュール114は、メインフレームプラットフォーム110、分散コンピューティングプラットフォーム112、およびアプリケーションワークロード104に関連付けられたパフォーマンスおよびコストデータを収集するよう構成される。ワークロード制御モジュール114は、収集されたパフォーマンスおよびコストデータを分析および処理し得る。パフォーマンスおよびコストデータは、データレポジトリ106からのものであり得る。収集データは更に、データレポジトリ106において保存および更新され得る。パフォーマンスおよびコストデータは、使用量、コスト、レイテンシ、およびスループットデータを含み得る。パフォーマンスおよびコストデータは、処理優先度、処理インデックス、データ要件、接続性、システム親和性、サーバ健全性、管理、および業務データであり得る。例えば、パフォーマンスおよびコストデータは、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112の使用量、サーバ数、応答時間、コスト、接続性、およびスループットを含む情報であり得る。パフォーマンスおよびコストデータは、メインフレームプラットフォーム110のデータシステム管理およびリソース管理データから収集され得る。ワークロード制御モジュール114は、様々なデータソースからのデータを収集および処理し得、処理される関連情報に基づいて、メインフレームまたは分散システム、例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112上で利用可能なアプリケーションを実行する決定を可能にする。関連情報のいくつかのサンプルは、処理コスト、レイテンシ、スループット、利用可能性、およびその他を含み得る。ワークロード制御モジュール114は、ユーザ入力データおよびプリファレンスを収集して、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112からのパフォーマンスおよびコストデータと比較し得る。ワークロード制御モジュール114は、様々なソースからのデータを収集および分析して、アプリケーションワークロード104に関連付けられたパフォーマンスおよびコストデータを収集し得る。パフォーマンスおよびコストデータは、処理優先度、処理インデックス(例えば、どれだけ多くのCPUアプリケーションワークロード104を消費することが予測されるか)、データ要件(例えば、データベースアクセス、ファイルアクセス)、接続性およびシステム親和性を含み得る。パフォーマンスおよびコストデータは、サーバ健全性データ、例えば、接続性、利用可能性、処理速度および容量、メモリ、I/Oレート、コスト、ならびにネットワークを含み得る。ワークロード制御モジュール114は、管理および業務データ、例えば、主要パフォーマンスインデックス、コストモデル、ならびにアプリケーションおよびシステム閾値を収集および分析して、アプリケーションワークロード104を処理するために要求されるコンポーネントを配置するワークロード制御モジュール114が様々な異機種環境のどこで実行するかを判断し得る。
【0031】
1または複数の実施形態において、ワークロード制御モジュール114は、パフォーマンスおよびコストデータの分析、ならびに、アプリケーションワークロード104に関連付けられた要件に基づいて、アプリケーションワークロードの複数の作業単位についてメインフレームプラットフォーム110および分散コンピューティングプラットフォーム112を判断するよう構成される。ワークロード制御モジュール114は、アプリケーションワークロード104の複数の作業単位について、各適格なプラットフォーム、例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112を優先化し得る。ワークロード制御モジュール114はアプリケーションワークロード104を評価し得る。ワークロード制御モジュール114は、アプリケーションワークロード104を論理ピース、例えば作業単位に分割し得る。ワークロード制御モジュール114は、リソース消費に基づいて、アプリケーションワークロード104における作業単位のアクティビティをランク付けし得る。ワークロード制御モジュール114は、コストモデルに基づいて、分散環境、例えば、分散コンピューティングプラットフォーム112によって処理されるアプリケーションワークロード104の一部を送信することによってコストを節約する機会を識別し得る。ワークロード制御モジュール114は、処理済みデータを分析し、データのサイズ、日付、時間、プロセス単一性、および他の要素に基づいて作業を実行するための適切なプラットフォームを判断し得る。ワークロード制御モジュール114は、優先化されたプラットフォーム、例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112に基づいて、アプリケーションワークロード104をルーティングする対象環境を判断し得る。ワークロード制御モジュール114は、アプリケーションワークロード104のパフォーマンスおよびコスト要件を適用することによってパフォーマンスおよびコスト評価を実行し、対象環境を判断し得る。ワークロード制御モジュール114は、アプリケーションワークロード104の複数の作業単位の各々について、メインフレームおよび分散コンピューティングプラットフォームをそれぞれ選択し得る。対象環境は、アプリケーションワークロード104の複数の作業単位が対象環境に割り当てられた状態で、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112を含み得る。2以上の環境が同一のコストを提供するとワークロード制御モジュール114が判断するとき、ワークロード制御モジュール114は、アプリケーションワークロード104に関連付けられたワークロードのタイプについてのより高いパフォーマンスの履歴を有する選択肢を選択し得る。2以上の環境が同一のパフォーマンス特性を提供するとワークロード制御モジュール114が判断するとき、ワークロード制御モジュール114は、より低コストを有する選択肢を選択し得る。ワークロード制御モジュール114は、より低コスト、より良いパフォーマンス、または任意の他のパフォーマンスまたは業務指標に基づいてコンピューティングプラットフォームを選択し得る。ワークロード制御モジュール114は、パフォーマンスまたは業務指標、例えば、いくつかのタイプのワークロードについて、「コスト中心」の解決策を、他のワークロードについて、「パフォーマンス中心」の解決策を定義し得る。ワークロード制御モジュール114は、追加のデータについての処理環境、例えば、処理時間、I/O数、およびメモリ使用率を照会し得る。ワークロード制御モジュール114は、意思決定情報データを更新するために、データレポジトリ106を処理および更新し得る。
【0032】
1または複数の実施形態において、ワークロード制御モジュール114は、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112上でそれぞれ実行するために、アプリケーションワークロード104の複数の作業単位を割り当て、パフォーマンスおよびコストをリアルタイムでバランシングするよう構成される。例えば、ワークロード制御モジュール114は、複数の作業単位を分解し得、消費量に基づいてメインフレームコストを超えることを回避するために、分散コンピューティングプラットフォーム112上で処理されるコストモデルに基づくいくつかの作業単位を送信できる。ワークロード制御モジュール114は、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112を含み得る対象環境にアプリケーションワークロード104を割り当て得る。ワークロード制御モジュール114は、アプリケーションワークロード104の各作業単位を対象環境、例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112のそれぞれに割り当て得る。ワークロード制御モジュール114は、アプリケーションワークロード104に割り当てられた対象環境に基づいて履歴データを更新し得る。ワークロード制御モジュール114は、ユーザからの入力データ(例えば、パフォーマンス、コスト)の変化に基づいてアプリケーションワークロード104を割り当て得る。ワークロード制御モジュール114は、アプリケーションワークロード104が実行する時点に従って(例えば、収集および処理済みデータを使用して決定する)、異なる組み合わせのサーバにおいて毎回実行できる動的混合プラットフォーム手順をアプリケーションワークロード104に割り当て得る。ワークロード制御モジュール114は、パフォーマンス、信頼性、およびコストをバランシングするための解決策を継続的に学習するべく、メインフレームプラットフォーム110と分散コンピューティングプラットフォーム112との間でアプリケーションワークロード104をどのように分割するかについての評価の履歴を分析し得る。
【0033】
図2は、本開示の実施形態による、ワークロード制御モジュール114の動作ステップを図示するフローチャート200である。
【0034】
ワークロード制御モジュール114は、アプリケーションワークロード104をメインフレームプラットフォーム110および分散コンピューティングプラットフォーム112に割り当てるための要求を受信するよう動作する。ワークロード制御モジュール114はまた、メインフレームプラットフォーム110、分散コンピューティングプラットフォーム112、およびアプリケーションワークロード104に関連付けられたパフォーマンスおよびコストデータを収集するよう動作する。ワークロード制御モジュール114は、パフォーマンスおよびコストデータの分析、ならびに、アプリケーションワークロード104に関連付けられた要件に基づいて、アプリケーションワークロード104の複数の作業単位について、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112を判断するよう動作する。ワークロード制御モジュール114は、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112上でそれぞれ実行するために、アプリケーションワークロード104の複数の作業単位を割り当て、パフォーマンスおよびコストをリアルタイムでバランシングするよう動作する。
【0035】
ステップ202において、ワークロード制御モジュール114は、アプリケーションワークロード104をメインフレームプラットフォーム110および分散コンピューティングプラットフォーム112に割り当てるための要求を受信する。例において、ワークロード制御モジュール114は、アプリケーションワークロード104を割り当てる要求をユーザから受信し得る。別の例において、ワークロード制御モジュール114は、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112に割り当てられるアプリケーションワークロード104を自動的に受信し得る。アプリケーションワークロード104は、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112上でそれぞれ実行するように割り当てられる複数の作業単位を含み得る。各作業単位は、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112上で実行できるアプリケーションワークロード104の論理ピースであり得る。ワークロード制御モジュール114は、処理されるアプリケーションワークロード104に関する情報についてデータレポジトリ106をチェックし得る。例えば、ワークロード制御モジュール114は、例えば、アプリケーションワークロード104の元となるシステムまたはネットワーク、オペレーティングシステム、要求されたコンポーネント(例えば、ネットワーク、I/O、メモリ、CPU)、システム親和性、および優先度情報(例えば、アプリケーションワークロード104自体またはデータレポジトリ106のいずれかから取得される)を含む、アプリケーションワークロード104に関連付けられたデータおよび情報を検索し得る。ワークロード制御モジュール114は、アプリケーションワークロード104に関する任意の履歴データがデータレポジトリ106に存在するかどうかを判断し得る。アプリケーションワークロード104に関するいくつかの履歴データがデータレポジトリ106に存在するとワークロード制御モジュール114が判断した場合、ワークロード制御モジュール114は更に、アプリケーションワークロードに関する履歴データを検証し得る。アプリケーションワークロード104に関する履歴データがデータレポジトリ106に存在しないとワークロード制御モジュール114が判断する場合、ワークロード制御モジュール114は、アプリケーションワークロード104の優先度を、例えばメインフレームプラットフォーム110および分散コンピューティングプラットフォーム112など適格なプラットフォームの処理容量と比較し得る。ワークロード制御モジュール114は、例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112などの各適格なプラットフォームにおいてアプリケーションワークロード104を実行するコスト推定を実行し得る。
【0036】
ステップ204において、ワークロード制御モジュール114は、メインフレームプラットフォーム110、分散コンピューティングプラットフォーム112、およびアプリケーションワークロード104に関連付けられたパフォーマンスおよびコストデータを収集する。ワークロード制御モジュール114は、収集されたパフォーマンスおよびコストデータを分析および処理し得る。パフォーマンスおよびコストデータは、データレポジトリ106からのものであり得る。収集データは更に、データレポジトリ106において保存および更新され得る。パフォーマンスおよびコストデータは、使用量、コスト、レイテンシ、およびスループットデータを含み得る。パフォーマンスおよびコストデータは、処理優先度、処理インデックス、データ要件、接続性、システム親和性、サーバ健全性、管理、および業務データであり得る。例えば、パフォーマンスおよびコストデータは、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112の使用量、サーバ数、応答時間、コスト、接続性、およびスループットを含む情報であり得る。パフォーマンスおよびコストデータは、メインフレームプラットフォーム110のデータシステム管理およびリソース管理データから収集され得る。ワークロード制御モジュール114は、様々なデータソースからのデータを収集および処理し得、処理される関連情報に基づいて、メインフレームまたは分散システム、例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112上で利用可能なアプリケーションを実行する決定を可能にする。関連情報のいくつかのサンプルは、処理コスト、レイテンシ、スループット、利用可能性、およびその他を含み得る。ワークロード制御モジュール114は、ユーザ入力データおよびプリファレンスを収集して、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112からのパフォーマンスおよびコストデータと比較し得る。ワークロード制御モジュール114は、様々なソースからのデータを収集および分析して、アプリケーションワークロード104に関連付けられたパフォーマンスおよびコストデータを収集し得る。パフォーマンスおよびコストデータは、処理優先度、処理インデックス(例えば、どれだけ多くのCPUアプリケーションワークロード104を消費することが予測されるか)、データ要件(例えば、データベースアクセス、ファイルアクセス)、接続性およびシステム親和性を含み得る。パフォーマンスおよびコストデータは、サーバ健全性データ、例えば、接続性、利用可能性、処理速度および容量、メモリ、I/Oレート、コスト、ならびにネットワークを含み得る。ワークロード制御モジュール114は、管理および業務データ、例えば、主要パフォーマンスインデックス、コストモデル、ならびにアプリケーションおよびシステム閾値を収集および分析して、アプリケーションワークロード104を処理するために要求されるコンポーネントを配置するワークロード制御モジュール114が様々な異機種環境のどこで実行するかを判断し得る。
【0037】
ステップ206において、ワークロード制御モジュール114は、パフォーマンスおよびコストデータの分析、ならびに、アプリケーションワークロード104に関連付けられた要件に基づいて、アプリケーションワークロード104の複数の作業単位についてメインフレームプラットフォーム110および分散コンピューティングプラットフォーム112を判断する。ワークロード制御モジュール114は、アプリケーションワークロード104の複数の作業単位について、各適格なプラットフォーム、例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112を優先化し得る。ワークロード制御モジュール114はアプリケーションワークロード104を評価し得る。ワークロード制御モジュール114は、アプリケーションワークロード104を論理ピース、例えば作業単位に分割し得る。ワークロード制御モジュール114は、リソース消費に基づいて、アプリケーションワークロード104における作業単位のアクティビティをランク付けし得る。ワークロード制御モジュール114は、コストモデルに基づいて、分散環境、例えば、分散コンピューティングプラットフォーム112によって処理されるアプリケーションワークロード104の一部を送信することによってコストを節約する機会を識別し得る。ワークロード制御モジュール114は、処理済みデータを分析し、データのサイズ、日付、時間、プロセス単一性、および他の要素に基づいて作業を実行するための適切なプラットフォームを判断し得る。ワークロード制御モジュール114は、優先化されたプラットフォーム、例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112に基づいて、アプリケーションワークロード104をルーティングする対象環境を判断し得る。ワークロード制御モジュール114は、アプリケーションワークロード104のパフォーマンスおよびコスト要件を適用することによってパフォーマンスおよびコスト評価を実行し、対象環境を判断し得る。ワークロード制御モジュール114は、アプリケーションワークロード104の複数の作業単位の各々について、メインフレームおよび分散コンピューティングプラットフォームをそれぞれ選択し得る。対象環境は、アプリケーションワークロード104の複数の作業単位が対象環境に割り当てられた状態で、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112を含み得る。2以上の環境が同一のコストを提供するとワークロード制御モジュール114が判断するとき、ワークロード制御モジュール114は、アプリケーションワークロード104に関連付けられたワークロードのタイプについてのより高いパフォーマンスの履歴を有する選択肢を選択し得る。2以上の環境が同一のパフォーマンス特性を提供するとワークロード制御モジュール114が判断するとき、ワークロード制御モジュール114は、より低コストを有する選択肢を選択し得る。ワークロード制御モジュール114は、より低コスト、より良いパフォーマンス、または任意の他のパフォーマンスまたは業務指標に基づいてコンピューティングプラットフォームを選択し得る。ワークロード制御モジュール114は、パフォーマンスまたは業務指標、例えば、いくつかのタイプのワークロードについて、「コスト中心」の解決策を、他のワークロードについて、「パフォーマンス中心」の解決策を定義し得る。ワークロード制御モジュール114は、追加のデータについての処理環境、例えば、処理時間、I/O数、およびメモリ使用率を照会し得る。ワークロード制御モジュール114は、意思決定情報データを更新するために、データレポジトリ106を処理および更新し得る。
【0038】
ステップ208において、ワークロード制御モジュール114は、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112上でそれぞれ実行するために、アプリケーションワークロード104の複数の作業単位を割り当て。パフォーマンスおよびコストをリアルタイムでバランシングする。例えば、ワークロード制御モジュール114は、複数の作業単位を分解し得、消費量に基づいてメインフレームコストを超えることを回避するために、分散コンピューティングプラットフォーム112上で処理されるコストモデルに基づくいくつかの作業単位を送信できる。ワークロード制御モジュール114は、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112を含み得る対象環境にアプリケーションワークロード104を割り当て得る。ワークロード制御モジュール114は、アプリケーションワークロード104の各作業単位を対象環境、例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112のそれぞれに割り当て得る。ワークロード制御モジュール114は、アプリケーションワークロード104に割り当てられた対象環境に基づいて履歴データを更新し得る。ワークロード制御モジュール114は、ユーザからの入力データ(例えば、パフォーマンス、コスト)の変化に基づいてアプリケーションワークロード104を割り当て得る。ワークロード制御モジュール114は、アプリケーションワークロード104が実行する時点に従って(例えば、収集および処理済みデータを使用して決定する)、異なる組み合わせのサーバにおいて毎回実行できる動的混合プラットフォーム手順をアプリケーションワークロード104に割り当て得る。割り当てアプリケーションワークロード104は、パフォーマンス、信頼性、およびコストをバランシングするための解決策を継続的に学習するべく、メインフレームプラットフォーム110と分散コンピューティングプラットフォーム112との間でアプリケーションワークロード104をどのように分割するかについての評価の履歴を分析し得る。
【0039】
図3は、本開示の実施形態によるワークロード制御モジュール114を適用する例示的な環境である。
【0040】
図3の例において、ユーザまたは組織は、メインフレームプラットフォーム110と分散コンピューティングプラットフォーム112との間のどこでアプリケーションワークロード104を実行するか判断する必要がある。考慮する必要がある要素は、信頼性302、コスト304、複雑性306、オープンソース308、および他の好適な考慮事項を含む。例えば、ユーザは、アプリケーションワークロード104全体がメインフレームプラットフォーム110または分散コンピューティングプラットフォーム112へ行くかどうかを決定する必要があり得る。別の例において、ユーザは、アプリケーションワークロード104の一部がメインフレームプラットフォーム110上で実行でき、アプリケーションワークロード104の別の一部が分散コンピューティングプラットフォーム112上で実行できるかどうかを決定する必要があり得る。ワークロード制御モジュール114は、使用されたコストモデル、パフォーマンス指標、利用可能性などに基づいて、アプリケーションワークロード104の一部がメインフレームプラットフォーム110上で実行できるか、または、アプリケーションワークロード104の別の一部が分散コンピューティングプラットフォーム112上で実行できるかのリアルタイムの決定をサポートするよう構成される。
【0041】
図4は、本開示の実施形態による、ワークロード制御モジュール114の例示的機能図である。
【0042】
図4の例において、ワークロード制御モジュール114は、メインフレームプラットフォーム110と分散コンピューティングプラットフォーム112との間で実行するアプリケーションワークロード104を判断し割り当てる際に、様々なソースデータを収集および分析し得る。ソースデータは、例えば、分散リソース402、システムパフォーマンス404、データ分析406、コストデータ408、コストモデル410、履歴使用量412、およびメインフレームリソース414に由来し得る、または、それらについてのものであり得る。
【0043】
図5は、本開示の実施形態による、ワークロード制御モジュール114の動作ステップを図示する例示的なアーキテクチャ図である。
【0044】
図5の例において、ユーザ502は、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112にアプリケーションワークロード104を割り当てることを要求し得る。ワークロード制御モジュール114は、どの環境がアプリケーションワークロード104を受信するかについての意思決定情報を提供するべく、前線機構として作業し得る。アプリケーションワークロード104は更に、ロードバランサ504によって制御およびバランシングされ得る。ロードバランサ504は、処理全体をより効率的にする目的で、タスクのセットをリソースのセット(例えば、コンピューティングユニット)に分散し得る。ロードバランサ504は、各タスクについて応答時間を最適化し、他のコンピュートノードがアイドル状態の間にコンピュートノードを不均一にオーバロードすることを回避し得る。ワークロード制御モジュール114は、ディストリビュータ506を通じてアプリケーションワークロード104をメインフレームプラットフォーム110へ送信し得る。ディストリビュータ506は、動的仮想IPアドレス(VIPA)および自動VIPAテイクオーバの概念を拡張して、標的サーバ間の負荷分散を可能にし得る。ディストリビュータ506は、利用可能なサーバのセット間で、入ってくる接続要求を最適に分散し得る。アプリケーションワークロード104に対して適切なものを判断するべく、ワークロード制御モジュール114は、各環境、例えば、管理下にある様々なクラウドについてのデータを保持するマルチクラウド管理プラットフォームから情報(サーバ数、応答時間、コスト、接続性、および容量を含む)を受信し得る。
【0045】
ワークロード制御モジュール114が新しいワークロード、例えば、アプリケーションワークロード104を受信するとき、ワークロード制御モジュール114は、処理されるべき作業に関する情報についてデータレポジトリ106をチェックし得る。情報は、アプリケーションワークロードの由来であるシステムまたはネットワーク、オペレーティングシステム、要求されるコンポーネント(ネットワーク、I/O、メモリ、CPU)、システム親和性、および優先度を含み得る。アプリケーションワークロード104のリソースおよび優先度要件の判断の後に、ワークロード制御モジュール114は、パフォーマンス/業務/コスト/重要データをデータレポジトリ106から取得して、処理されるべき作業に対して適切なものを判断し得る。ワークロード制御モジュール114は、データレポジトリ106におけるパフォーマンスおよびリソースデータを更新するべく、適格な環境に対して新しい問い合わせを要求し得る。ワークロード制御モジュール114が、要求されたデータを環境またはデータレポジトリ106から取得するとき、ワークロード制御モジュール114は、業務ロジックを適用して、アプリケーションワークロード104がルーティングされる環境を判断し得る。ワークロード制御モジュール114は、パフォーマンスおよびコスト評価に基づいて、適切なものを選択するためにユーザ502によって提供される情報を使用し得る。2以上の環境が同一コストを提供する場合、ワークロード制御モジュール114は、そのタイプのワークロードについて、より良いパフォーマンス履歴を有する選択肢を選択できる。2以上の環境が同様のパフォーマンス特性を提供する場合、ワークロード制御モジュール114は、より低コストの選択肢を選択する。例えば、同一サービスに対して2つの例示的な要求元であるとき、一方は重要なブランチに由来し、他方は非重要なブランチに由来する。ワークロード制御モジュール114が要求を受信するとき、ワークロード制御モジュール114は、ソースをチェックし、要求が重要または非重要なユーザに由来するかどうか、プロセスに関するコスト、プラットフォーム可用性、および、実行のための時間を検証する。要求元が重要なプロファイルに由来する場合、条件が好ましい場合にメインフレームプラットフォーム110上で実行する要求をワークロード制御モジュール114が判断することに基づいて、ワークロード制御モジュール114は、コスト履歴データと比較して、プラットフォーム可用性および実行のための時間を優先化する。要求元が非重要なプロファイルに由来する場合、条件が好ましい場合に分散コンピューティングプラットフォーム112上で実行する要求をワークロード制御モジュール114が判断することに基づいて、ワークロード制御モジュール114は、コスト履歴データと比較して、プラットフォーム可用性およびコストを優先化する。より低コストのシステム、より良いパフォーマンス、または、任意の他のパフォーマンスもしくは業務指標の選択についての決定は、ワークロード制御モジュール114によって定義でき、いくつかのタイプのワークロードについては「コスト中心」解決策を、他のワークロードについては「パフォーマンス中心」解決策を定義することが可能である。
【0046】
選択が行われると、ワークロード制御モジュール114は、アプリケーションワークロード104をロードバランサ504へ誘導し得る。ワークロード制御モジュール114は、将来の参照および学習のために選択を保存し得る。アプリケーションワークロード104が処理され、結果がワークロード制御モジュール114へ戻されるとき、ワークロード制御モジュール114は、パフォーマンス統計(例えば、経過時間、出力サイズ)を記録し、パケットをユーザ502(例えば要求元)へ返し得る。ワークロード制御モジュール114は、追加のデータ(例えば、処理時間、I/O数、メモリ使用率)について処理環境に照会し得る。ワークロード制御モジュール114は、照会の結果を処理し、データレポジトリ106を更新して意思決定情報データを更新し得る。
【0047】
図6は、本開示の実施形態による、ワークロード制御モジュール114の動作ステップを図示する例示的機能図である。
【0048】
図6の例において、ワークロード制御モジュールは、例えば、オペレーティングシステム602、タイムシェアリングオプション604、およびジョブエントリサブシステム608など、リソースを共有する1または複数のシステム、ならびにデータレポジトリ106に接続され得る。ワークロード制御モジュール114は、要求されたパフォーマンスおよび容量インジケータを取得し得る。ワークロード制御モジュール114は、システム管理設備およびリソース管理設備データを収集すること、要求されたときに要求された情報を処理してワークロード制御モジュール114へ送信することを担うオペレーティングシステム602上で実行するレジデント116を使用し得る。レジデント116は、メインフレームリソースを監視および追跡して、パフォーマンスおよび使用統計値、ならびに、環境において実行するワークロードに関するレポートをワークロード制御モジュール114へ返し得る。レジデント116は、各ジョブ606処理のワークフローのオーケストレーションを行い得る。レジデント116は、システム管理者によって構成される各レジデント範囲を保持する構成ファイルを含み得る、または分析をサポートし得る。1より多くのレジデントがシステム上で起動されるとき、レジデントの1つは、ジョブ606を受信して、ステップの断片化および実行のオーケストレーションを実行することを他のレジデントに委譲するフォーカルレジデントである必要がある。任意選択で、レジデント116はまた、他の論理パーティションにおける他のレジデントと通信して、ワークロード制御モジュール114を介して送信されるデータを統合できる。 他のレジデントと通信するためのレジデントに関する詳細は、図7に示される。
【0049】
オンライン要求に提供されるバッチ処理および同一のアーキテクチャに関する透明性を維持するべく、出口614が各メインフレームシステム、例えばメインフレームプラットフォーム110上に配置され得る。出口614は、ジョブエントリサブシステム608上で実行するためにトリガされる各ジョブ606をインターセプトして、ジョブ606(例えば、アプリケーションワークロード104の作業単位)が、マルチプラットフォーム622(例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112)において実行する可能性を有するかどうかを、レジデント116によってホストされシステム管理者によって管理される表を使用して分析し得る。条件が満たされる場合、出口614は、プロセスをレジデント116に移動させ得る。レジデント116は、ジョブ606をステップに分割し、ステップ間の関係に応じて、ワークロード制御モジュール114へ順次、または非順次に各々を送信し得る。
【0050】
ワークロード制御モジュール114は分析エンジン618およびディープアナリシス・スコアモジュール620を含み得る。分析エンジン618およびディープアナリシス・スコアモジュール620は、要求されたソースから情報を取得し得、共通のアルゴリズムを使用して、両側のリソース消費、契約のコスト情報、およびリソース利用可能性に基づいて、アクティビティをスコアリングし得る。分析エンジン618はまた、成功か否かという観点でランク付けされた履歴評価についての入力を取得し、実際の評価を改善し得る。
【0051】
複数のプラットフォーム622上で実行するバッチ処理の例において、ワークロード制御モジュール114は、両方のタイプのプラットフォーム(例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112)のアプリケーションワークロード104をスライスし、処理し得る。例えば、ワークロード制御モジュール114は、メインフレームプラットフォーム110上でバッチ処理を開始し得、特定の標的時間までに行われる必要がある重要な処理を実行し、次に、分散コンピューティングプラットフォーム112上で、レポートをチェックおよび構築するときに、重要性の低いステップを実行し得る。ジョブ606は、通常に開始でき、ジョブエントリサブシステム608上に配置できる。ジョブエントリサブシステム608に配置されると、変換フェーズ612後に、出口614は、適格性リスト(レジデント116によって管理される)上で、ジョブ606がこのタイプのプロセスについてスライスできるかどうかについて照会し得る。レジデント116が適格性を検証する場合、ワークロード制御モジュール114は、レジデント116を使用して、バッチ処理を行い得る616(例えば、スライスおよびオーケストレーション)。プロセス全体が完了した後に、応答がユーザへ送信される。
【0052】
図7は、本開示の実施形態による、ワークロード制御モジュール114およびレジデント116の動作ステップを図示する例示的機能図である。
【0053】
図7の例において、レジデント116、例えば116aは、ステップの断片化を実行しオーケストレーションを実行するために他のレジデント、例えばレジデント116b、116c、116nに委譲し得る。例えば、レジデント116aは、ワークロード制御モジュール114へ送信されるデータを統合するべく、他の論理パーティションにおける他のレジデント、例えば、レジデント116b、116c、116nと通信できる。
【0054】
図8は、本開示の実施形態による、ワークロード制御モジュール114の動作ステップを図示する例示的機能図である。
【0055】
ブロック802において、ワークロード制御モジュール114は、アプリケーションワークロード104のパッケージを処理する要求を受信する。パッケージは、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112に割り当てるためのアプリケーションワークロード104の作業単位であり得る。アプリケーションワークロード104は、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112上でそれぞれ実行するように割り当てられる複数の作業単位を含み得る。各作業単位は、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112上で実行できるアプリケーションワークロード104の論理ピースであり得る。
【0056】
ブロック804において、ワークロード制御モジュール114は、アプリケーションワークロード104のパッケージに関する任意の最新データがデータレポジトリ106に存在するかどうかを判断する。ワークロード制御モジュール114が、パッケージに関するいくつかの履歴データがデータレポジトリ106に存在すると判断する場合、ブロック810において、ワークロード制御モジュール114は更に、パッケージに関する履歴データを検証する。パッケージに関する履歴データがデータレポジトリ106に存在しないとワークロード制御モジュール114が判断する場合、ブロック806は、ワークロード制御モジュール114は、パッケージの優先度を適格なプラットフォーム、例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112の処理容量と比較する。ブロック808において、ワークロード制御モジュール114は、各適格なプラットフォームにおけるアプリケーションワークロード104、例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112の実行のコスト推定を実行する。ブロック812において、ワークロード制御モジュール114は、返されたデータに基づいて、アプリケーションワークロード104の複数の作業単位について、各適格なプラットフォーム、例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112を優先化する。ワークロード制御モジュール114は、リソース消費に基づいて、アプリケーションワークロード104における作業単位のアクティビティをランク付けし得る。
【0057】
ブロック814において、ワークロード制御モジュール114は、選択されたプラットフォーム(例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112)が、アプリケーションワークロード104のパフォーマンスおよびコスト要件を満たすかどうかを判断する。選択されたプラットフォームがアプリケーションワークロード104のパフォーマンスおよびコスト要件を満たさないとワークロード制御モジュール114が判断する場合、ブロック816において、ワークロード制御モジュール114は、プリファレンスリストにおける次のプラットフォームを選択する。選択されたプラットフォームがアプリケーションワークロード104のパフォーマンスおよびコスト要件を満たすとワークロード制御モジュール114が判断する場合、ブロック818において、ワークロード制御モジュール114は、パッケージを標的プラットフォーム、例えば、メインフレームプラットフォーム110および分散コンピューティングプラットフォーム112に割り当てる。ブロック820において、ワークロード制御モジュール114は、パッケージ完了を監視する。ブロック822において、ワークロード制御モジュール114は、パッケージが処理されたかどうかを判断する。パッケージが処理されていないとワークロード制御モジュール114が判断する場合、ワークロード制御モジュール114は、パッケージ完了の監視を継続する。パッケージが処理されたとワークロード制御モジュール114が判断する場合、ブロック824において、ワークロード制御モジュール114は、パッケージをユーザへ返し得る。ブロック826において、ワークロード制御モジュール114は、ランタイム統計を収集し、履歴データを更新する。
【0058】
図9は、本開示の例示的実施形態によるコンピューティングデバイス102のコンポーネントのブロック図900を図示する。図9は、一実装の例示のみを提供し、異なる実施形態が実装され得る環境に関するいずれの限定も示唆しないことがあり得ることを理解されたい。図示された環境に対して多くの修正が行われ得る。
【0059】
コンピューティングデバイス102は、キャッシュ916、メモリ906、永続記憶装置908、通信ユニット910、および入出力(I/O)インタフェース912の間の通信を提供する通信ファブリック902を含み得る。通信ファブリック902は、システム内のプロセッサ(マイクロプロセッサ、通信およびネットワークプロセッサなど)、システムメモリ、ペリフェラルデバイス、および任意の他ハードウェアコンポーネントの間でデータもしくは制御情報またはその両方を渡すために設計された任意のアーキテクチャで実装できる。例えば、通信ファブリック902は、1または複数のバスまたはクロスバースイッチで実装できる。
【0060】
メモリ906および永続記憶装置908はコンピュータ可読記憶媒体である。この実施形態において、メモリ906はランダムアクセスメモリ(RAM)を含む。概して、メモリ906は、任意の好適な揮発性または非揮発性コンピュータ可読記憶媒体を含むことができる。キャッシュ916は、メモリ906からの最近アクセスされたデータ、および、アクセスされたデータに近いデータを保持することによって、コンピュータプロセッサ904のパフォーマンスを強化する高速メモリである。
【0061】
ワークロード制御モジュール114は、キャッシュ916を介して、それぞれのコンピュータプロセッサ904のうち1または複数による実行のために、永続記憶装置908およびメモリ906に格納され得る。実施形態において、永続記憶装置908は、磁気ハードディスクドライブを含む。磁気ハードディスクドライブに対して代替的に、または、追加的に、永続記憶装置908は、ソリッドステートハードドライブ、半導体記憶装置、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM)、フラッシュメモリ、または、プログラム命令またはデジタル情報を格納することが可能な任意の他のコンピュータ可読記憶媒体を含むことができる。
【0062】
永続記憶装置908によって使用される媒体は、リムーバブルでもあり得る。例えば、リムーバブルハードドライブは、永続記憶装置908のために使用され得る。他の例は、永続記憶装置908の一部でもある別のコンピュータ可読記憶媒体への転送のためにドライブに挿入される、光学および磁気ディスク、サムドライブ、ならびに、スマートカードを含む。
【0063】
これらの例における通信ユニット910は、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例において、通信ユニット910は、1または複数のネットワークインタフェースカードを含む。通信ユニット910は、物理的および無線通信リンクのいずれかまたは両方の使用を通じて通信を提供し得る。ワークロード制御モジュール114は、通信ユニット910を通じて永続記憶装置908にダウンロードされ得る。
【0064】
I/Oインタフェース912は、コンピューティングデバイス102に接続され得る他のデバイスとのデータの入出力を可能にする。例えば、I/Oインタフェース912は、キーボード、キーパッド、タッチ画面もしくはいくつかの他の好適な入力デバイスまたはその組み合わせなど、外部デバイス918への接続を提供し得る。外部デバイス918はまた、例えば、サムドライブ、ポータブル光学または磁気ディスク、およびメモリカードなどのポータブルコンピュータ可読記憶媒体を含み得る。本発明の実施形態を実施するために使用されるソフトウェアおよびデータは、例えばワークロード制御モジュール114は、そのようなポータブルコンピュータ可読記憶媒体に格納でき、I/Oインタフェース912を介して永続記憶装置908にロードできる。I/Oインタフェース912はまた、ディスプレイ920に接続する。
【0065】
ディスプレイ920は、データをユーザに表示するための機構を提供し、例えば、コンピュータモニタであり得る。
【0066】
本明細書において説明されるプログラムは、発明の特定の実施形態において実装されるアプリケーションに基づいて識別される。しかしながら、本明細書における任意の特定のプログラム名称は、単に便宜上の目的で使用され、したがって、本発明は、そのような名称によって識別もしくは示唆される、またはその両方の任意の特定の用途のみにおいて使用することに限定されるべきでないことが理解されるべきである。
【0067】
本発明は、統合の任意の可能な技術的な詳細レベルで、システム、方法もしくはコンピュータプログラム製品またはその組み合わせであり得る。コンピュータプログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0068】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるための命令を保持および格納できる有形デバイスであり得る。コンピュータ可読記憶媒体は例えば、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体記憶装置、または、上記の任意の好適な組み合わせに限定されるものではないことがあり得る。コンピュータ可読記憶媒体のより具体的な例の非包括的リストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタルバーサタイルディスク(DVD)、メモリスティック、フロッピーディスク、命令が記録されたパンチカードまたは溝における凸構造などの機械的符号化デバイス、および、上記の任意の好適な組み合わせを含む。本明細書において使用されるコンピュータ可読記憶媒体は、無線または他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバケーブルを通る光パルス)、または、ワイヤを通じて伝送される電気信号など、一時的な信号自体として解釈されるべきでない。
【0069】
本明細書において説明するコンピュータ可読プログラム命令は、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワークもしくは無線ネットワークまたはその組み合わせなどのネットワークを介して、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスへダウンロードされ得るか、または、外部コンピュータもしくは外部ストレージデバイスへダウンロードされ得る。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、無線伝送ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはその組み合わせを含み得る。各コンピューティング/処理デバイスにおけるネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体において記憶するためにコンピュータ可読プログラム命令を転送する。
【0070】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の構成データ、または、Python、C++、または同様のものなどのオブジェクト指向プログラミング言語、Cプログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1または複数のプログラミング言語の任意の組み合わせで書かれたソースコードまたはオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、スタンドアロンのソフトウェアパッケージとして、ユーザのコンピュータ上で部分的かつリモートコンピュータ上で部分的に、または、リモートコンピュータもしくはサーバ上で全体的に実行し得る。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続され得るか、または、接続は、(例えば、インターネットサービスプロバイダを使用してインターネットを通じて)外部コンピュータに行われ得る。いくつかの実施形態において、本発明の態様を実行するべく、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、または、プログラマブルロジックアレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行し得る。
【0071】
本発明の態様は、本明細書において、発明の実施形態に係る方法、装置(システム)、および、コンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して説明されている。フローチャート図および/またはブロック図の各ブロックは、ならびに、フローチャート図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることを理解されたい。
【0072】
これらのコンピュータ可読プログラム命令は、機械を生じさせるために、コンピュータのプロセッサ、または、他のプログラマブルデータ処理装置に提供され得る。それにより、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行する命令は、フローチャートもしくはブロック図またはその両方のブロックまたは複数のブロックにおいて指定される機能/動作を実装するための手段を形成する。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラマブルデータ処理装置もしくは他のデバイスまたはその組み合わせに、特定の方式で機能するよう指示できるコンピュータ可読記憶媒体に格納され得る。それにより、命令を格納したコンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方のブロックまたは複数のブロックにおいて指定された機能/動作の態様を実装する命令を含む、製造者の品目を含む。
【0073】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、または、他のデバイス上にロードされ得ることにより、一連の動作ステップを、コンピュータ、他のプログラマブル装置、または、他のデバイス上で実行させ、コンピュータ実装プロセスを生じさせ、それにより、コンピュータ、他のプログラマブル装置、または、他のデバイス上で実行する命令が、フローチャートもしくはブロック図またはその両方のブロックまたは複数のブロックにおいて指定される機能/動作を実装する。
【0074】
図面内のフローチャートおよびブロック図は、本発明の様々な実施形態に係る、システム、方法、および、コンピュータプログラム製品のあり得る実装のアーキテクチャ、機能、および、動作を示す。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実装するための1または複数の実行可能命令を含む、モジュール、セグメント、または、命令の一部を表し得る。いくつかの代替的な実装において、ブロックにおいて記載される機能は、図に記載された順序とは別の順序で生じ得る。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には1つのステップとして実現されるか、同時に実行されるか、ほぼ同時に実行されるか、部分的もしくは全体的に時間的に重複する方式で実行されてよく、または、ブロックは場合によっては、逆の順序で実行されてよい。また、ブロック図もしくはフローチャート図またはその両方の各ブロック、ならびに、ブロック図もしくはフローチャート図またはその両方におけるブロックの組み合わせは、指定された機能または動作を実行する特定用途向けハードウェアベースのシステムによって実装できる、または、特定用途向けハードウェアおよびコンピュータ命令の組み合わせを実行できることに留意されたい。
【0075】
本発明の様々な実施形態の説明は、例示の目的で提示されたものであり、包括的な意図、または、開示された実施形態に対する限定の意図はない。本発明の範囲および思想から逸脱しない多くの修正または変形が、当技術分野の当業者にとって明らかであろう。本明細書において使用される用語は、実施形態の原理、実際的な用途、または、市場において見られる技術に対する技術的改善をもっとも良く説明するために、または、当技術分野における他の当業者が、本明細書において開示される実施形態を理解することを可能にするために選択された。
【0076】
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書において列挙される教示の実装はクラウドコンピューティング環境に限定されるものではないことを理解されたい。むしろ、本発明の実施形態は、現在知られている、または、後に開発される任意の他のタイプのコンピューティング環境と協調して実装されることが可能である。
【0077】
クラウドコンピューティングは、管理の労力またはサービスのプロバイダとのインタラクションを最小限に抑えながら迅速にプロビジョニングおよびリリースできる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、プロセス、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールに対する便利なオンデマンドのネットワークアクセスを可能するための、サービス提供のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含み得る。
【0078】
特性は以下の通りである。
【0079】
オンデマンドセルフサービス:クラウド消費者は、人間とサービスのプロバイダとのインタラクションを要求することなく、必要に応じて自動的に、サーバ時間およびネットワークストレージなどのコンピューティング能力を一方的にプロビジョニングできる。
【0080】
ブロードネットワークアクセス:能力はネットワークを通じて利用可能であり、異種混合のシンまたはシッククライアントプラットフォームによる使用を促進する標準的な機構(例えば携帯電話、ラップトップ、およびPDA)を通じてアクセスされる。
【0081】
リソースプール:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを使用して複数の消費者にサービスを提供し、異なる物理的および仮想的リソースが需要に応じて動的に割り当ておよび再割り当てされる。概して消費者は提供されるリソースの厳密な位置についての制御または知識を有しないが、より高い抽象化レベル(例えば、国、州、またはデータセンタ)で位置を指定可能であり得るという点で、位置独立性の意味がある。
【0082】
迅速な柔軟性:いくつかの場合においては自動的に、迅速なスケールアウトのために、能力を急速かつ柔軟にプロビジョニングでき、迅速なスケールインのために迅速にリリースできる。消費者にとって、多くの場合、プロビジョニングに利用可能な能力は無制限に見え、任意の時間に任意の量で購入できる。
【0083】
測定されたサービス:クラウドシステムは、サービスのタイプに適切な、いくらかの抽象化レベル(例えば、ストレージ、処理、帯域幅、および、アクティブユーザアカウント)で、測定能力を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用量が監視、制御、レポートされ得、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供する。
【0084】
サービスモデルは以下の通りである。
【0085】
ソフトウェア・アズ・ア・サービス(SaaS):消費者に提供される能力は、クラウドインフラストラクチャ上で実行するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えばウェブベースの電子メール)などのシンクライアントインタフェースを通じて様々なクライアントデバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージ、または更には個々のアプリケーション能力を含む基礎のクラウドインフラストラクチャを管理または制御しないが、限定されたユーザ固有のアプリケーション構成設定は例外である可能性がある。
【0086】
プラットフォーム・アズ・ア・サービス(PaaS):消費者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して形成される、消費者が形成または取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、またはストレージを含む基礎のクラウドインフラストラクチャを管理または制御しないが、展開されたアプリケーション、および、場合によっては、環境構成をホストするアプリケーションに対する制御を有する。
【0087】
インフラストラクチャ・アズ・ア・サービス(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク、および、消費者がオペレーティングシステムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行することが可能な他の基本的なコンピューティングリソースをプロビジョニングすることである。消費者は、基礎のクラウドインフラストラクチャを管理または制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーション、および、場合によっては、選択されたネットワークコンポーネント(例えばホストファイアウォール)の限定された制御に対する制御を有する。
【0088】
展開モデルは以下の通りである。
【0089】
プライベートクラウド:クラウドインフラストラクチャは組織のみのために動作される。組織またはサードパーティによって管理され得、敷地内または敷地外に存在し得る。
【0090】
コミュニティクラウド:クラウドインフラストラクチャは、複数の組織によって共有され、共有された関心(例えば、役割、セキュリティ要件、ポリシー、および、コンプライアンス上の考慮事項)を有する特定のコミュニティをサポートする。組織またはサードパーティによって管理され得、敷地内または敷地外に存在し得る。
【0091】
パブリッククラウド:クラウドインフラストラクチャは、一般大衆または大きい産業グループに利用可能となり、クラウドサービスを販売する組織によって所有される。
【0092】
ハイブリッドクラウド:クラウドインフラストラクチャは、固有のエンティティであり続けるが、データおよびアプリケーションのポータビリティを可能にする標準化またはプロプライエタリ技術(例えば、クラウド間のロードバランシングのためのクラウドバースティング)によって共に結合される2以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0093】
クラウドコンピューティング環境は、ステートレス、低結合、モジュール性、および、セマンティック相互運用性に対する重点を指向したサービスである。クラウドコンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0094】
ここで、図10を参照すると、例示的なクラウドコンピューティング環境50が図示される。示されるように、クラウドコンピューティング環境50は、例えば、パーソナルデジタルアシスタント(PDA)または携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54Cもしくは自動車コンピュータシステム54Nまたはその組み合わせなど、クラウド消費者によって使用されるローカルコンピューティングデバイスが通信し得る1または複数のクラウドコンピューティングノード10を含む。ノード10は互いに通信し得る。それらは、上で説明されるプライベート、コミュニティ、パブリック、またはハイブリッドクラウド、またはそれらの組み合わせなど、1または複数のネットワークにおいて物理的または仮想的にグループ化され得る(図示されない)。これにより、クラウドコンピューティング環境50は、インフラストラクチャ、プラットフォームもしくはソフトウェアまたはその組み合わせを、クラウド消費者がローカルコンピューティングデバイス上にリソースを維持する必要がないサービスとして提供することが可能となる。図10に示されるコンピューティングデバイス54A-Nのタイプは、単に例示を意図するだけであり、コンピューティングノード10およびクラウドコンピューティング環境50は、任意のタイプのネットワークもしくはネットワークアドレス可能接続またはその両方を介して(例えば、ウェブブラウザを使用して)、任意のタイプのコンピュータ化デバイスと通信できることを理解されたい。
【0095】
ここで図11を参照すると、クラウドコンピューティング環境50(図10)によって提供される機能抽象化層のセットが示される。図11に示されるコンポーネント、層、および機能は、例示を意図するだけであり、本発明の実施形態はこれらに限定されるものではないことが理解されるべきである。図示されるように、以下の層および対応する機能が提供される。
【0096】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例は、メインフレーム61、RISC(最小命令セットコンピュータ)アーキテクチャベースサーバ62、サーバ63、ブレードサーバ64、ストレージデバイス65、ならびに、ネットワークおよびネットワークコンポーネント66を含む。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0097】
仮想化層70は抽象化層を提供し、抽象化層からは、仮想エンティティの以下の例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75が提供され得る。
【0098】
一例において、管理層80は、以下に説明される機能を提供し得る。リソースプロビジョニング81は、コンピューティングリソース、および、クラウドコンピューティング環境内でタスクを実行するために利用される他のリソースの動的な調達を提供する。測定および価格設定82は、クラウドコンピューティング環境内でリソースが利用されるときのコスト追跡、および、これらのリソースの消費に対する課金または請求を提供する。一例において、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティは、クラウド消費者およびタスクについてのアイデンティティ検証、ならびに、データおよび他のリソースについての保護を提供する。ユーザポータル83は、消費者およびシステム管理者のために、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されるサービスレベルが満たされるように、クラウドコンピューティングリソース割り当ておよび管理を提供する。サービス水準合意(SLA)計画および達成85は、SLAに従って将来の要件が予想されるクラウドコンピューティングリソースの事前手配および調達を提供する。
【0099】
ワークロード層90は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、および、例えば、ワークロード制御環境100に関して上で説明されたワークロード制御モジュール114を含むモジュール96を含む。
【0100】
本発明の具体的な実施形態が説明されたが、説明された実施形態と同等の他の実施形態があることが当業者によって理解される。したがって、発明は示された特定の実施形態によって限定されず、添付の特許請求の範囲のみによって限定されることが理解される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11