(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-08-01
(45)【発行日】2025-08-12
(54)【発明の名称】需要主導型ロケール管理
(51)【国際特許分類】
G06F 8/61 20180101AFI20250804BHJP
【FI】
G06F8/61
(21)【出願番号】P 2023526082
(86)(22)【出願日】2021-10-13
(86)【国際出願番号】 CN2021123588
(87)【国際公開番号】W WO2022100347
(87)【国際公開日】2022-05-19
【審査請求日】2024-03-19
(32)【優先日】2020-11-16
(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)【発明者】
【氏名】ヤン、ファン
(72)【発明者】
【氏名】ツェン、ボイ
【審査官】松平 英
(56)【参考文献】
【文献】特開2006-099766(JP,A)
【文献】米国特許出願公開第2020/0125634(US,A1)
【文献】米国特許出願公開第2015/0161114(US,A1)
【文献】米国特許第08990809(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/61
(57)【特許請求の範囲】
【請求項1】
コンピュータが、ユーザからの入力を示す選択データに少なくとも部分的に基づいて、インストールリストにロケールを追加するための需要閾値を設定することと、
コンピュータが、クラウドコンピューティング環境へのユーザ入力を監視し、前記ロケールをインストールする要求を含むユーザ入力を検出することと、
コンピュータが、ユーザ入力の前記監視中にロケールインストール要求の進行中の検出に基づいて、前記ロケールに関連する需要スコアを動的に更新することと、
コンピュータが、前記需要スコアが前記需要閾値を満たしたことを検出すると、自動的に前記インストールリストに前記ロケールを追加することと、を含む、コンピュータ実装方法。
【請求項2】
コンピュータが、前記クラウドコンピューティング環境でアプリケーションを起動するとき、前記インストールリストにあるロケールを自動的にインストールすることをさらに含む、請求項1に記載の方法。
【請求項3】
コンピュータが、一定時間、前記ロケールをインストールするための要求がないことを検出すると、前記需要スコアを減少させることをさらに含む、請求項1に記載の方法。
【請求項4】
前記選択データは、ユーザのグループを指定し、前記需要スコアの前記更新は、前記ユーザのグループからのロケールのインストール要求の進行中の検出に基づく、請求項1に記載の方法。
【請求項5】
コンピュータが、前記クラウドコンピューティング環境において、前記ユーザのグループ内の任意のユーザがアプリケーションを起動した際に、前記ロケールが前記インストールリストにある間に自動的にインストールすることと、をさらに含む、請求項4に記載の方法。
【請求項6】
前記需要スコアの前記更新は、
前記ロケールをインストールするために検出された要求に関連するユーザ特性を検出することと、
前記検出されたユーザ特性に基づいて、前記需要スコアを増加させることと、を含む請求項1に記載の方法。
【請求項7】
前記ユーザ特性の前記検出は、ルートユーザを検出することを含む、請求項6に記載の方法。
【請求項8】
前記検出されたユーザ特性に基づいて前記需要スコアを前記増加させることは、非ルートユーザに対する増加よりも大きい量だけ前記需要スコアを増加させることを含む、請求項7に記載の方法。
【請求項9】
前記ユーザ入力の監視は、前記選択データによって指定された時間帯に実施される、請求項1に記載の方法。
【請求項10】
コンピュータが、前記需要スコアが前記需要閾値を満たしたことを検出することと、
コンピュータが、前記需要スコアが前記需要閾値を満たしたことを検出したことに応答して、前記ロケールが前記インストールリストに既に含まれておらず、かつ前記ロケールがデフォルトロケールリストに含まれていないことを確認することと、をさらに含む、請求項1に記載の方法。
【請求項11】
プログラム命令を含む
コンピュータプログラムであって、前記プログラム命令は、プロセッサによって実行可能であり、前記プロセッサに、動作を実行させ、前記動作は、
ユーザからの入力を示す選択データに少なくとも部分的に基づいて、インストールリストにロケールを追加するための需要閾値を設定することと、
クラウドコンピューティング環境へのユーザ入力を監視し、前記ロケールをインストールする要求を含むユーザ入力を検出することと、
ユーザ入力の前記監視中にロケールインストール要求の進行中の検出に基づいて、前記ロケールに関連する需要スコアを動的に更新することと、
前記需要スコアが前記需要閾値を満たしたことを検出すると、自動的に前記インストールリストに前記ロケールを追加することと、を含む、
コンピュータプログラム。
【請求項12】
前記コンピュータプログラムは、1つまたは複数のコンピュータ可読記憶媒体にまとめて記憶されたプログラム命令を含み、
前記記憶されたプログラム命令は、データ処理システム内のコンピュータ可読記憶装置に記憶され、前記記憶されたプログラム命令は、リモートデータ処理システムからネットワークを介して転送される、請求項11に記載の
コンピュータプログラム。
【請求項13】
前記コンピュータプログラムは、1つまたは複数のコンピュータ可読記憶媒体にまとめて記憶されたプログラム命令を含み、
前記記憶されたプログラム命令は、サーバデータ処理システム内のコンピュータ可読記憶装置に記憶され、前記記憶されたプログラム命令は、リモートデータ処理システムに関連するコンピュータ可読記憶装置で使用するために、前記リモートデータ処理システムに、ネットワークを介した要求に応答してダウンロードされ、
前記要求に関連する前記プログラム命令の使用を測定するためのプログラム命令と、
前記測定された使用に基づいて請求書を生成するプログラム命令をさらに含む、請求項11に記載の
コンピュータプログラム。
【請求項14】
前記クラウドコンピューティング環境でアプリケーションを起動するとき、前記インストールリストにあるロケールを自動的にインストールすることをさらに含む、請求項11に記載の
コンピュータプログラム。
【請求項15】
一定時間、前記ロケールをインストールするための要求がないことを検出すると、前記需要スコアを減少させることを、さらに含む、請求項11に記載の
コンピュータプログラム。
【請求項16】
前記選択データは、ユーザのグループを指定し、前記需要スコアの前記更新は、前記ユーザのグループからのロケールインストール要求の進行中の検出に基づく、請求項11に記載の
コンピュータプログラム。
【請求項17】
プロセッサと、1つまたは複数のコンピュータ可読記憶媒体と、前記1つまたは複数のコンピュータ可読記憶媒体にまとめて記憶されたプログラム命令とを含むコンピュータシステムであって、前記プログラム命令は、前記プロセッサによって実行可能であり、前記プロセッサに、動作を実行させ、前記動作は、
ユーザからの入力を示す選択データに少なくとも部分的に基づいて、インストールリストにロケールを追加するための需要閾値を設定することと、
クラウドコンピューティング環境へのユーザ入力を監視し、前記ロケールをインストールするための要求を含むユーザ入力を検出することと、
ユーザ入力の前記監視中にロケールインストール要求の進行中の検出に基づいて、前記ロケールに関連する需要スコアを動的に更新することと、
前記需要スコアが前記需要閾値を満たしたことを検出すると、自動的に前記インストールリストに前記ロケールを追加することと、を含む、コンピュータシステム。
【請求項18】
前記クラウドコンピューティング環境でアプリケーションを起動するとき、前記インストールリストにあるロケールを自動的にインストールすることをさらに含む、請求項17に記載のコンピュータシステム。
【請求項19】
一定時間、前記ロケールをインストールするための要求がないことを検出すると、前記需要スコアを減少させることを、さらに含む、請求項17に記載のコンピュータシステム。
【請求項20】
前記選択データは、ユーザのグループを指定し、前記需要スコアの前記更新は、前記ユーザのグループからのロケールインストール要求の進行中の検出に基づく、請求項17に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、サーバークラスタにおけるコンピューティングリソースの割り当てを管理するための方法、システム、およびコンピュータプログラム製品に関するものである。より詳細には、本発明は、需要主導型ロケール管理のための方法、システム、およびコンピュータプログラム製品に関連している。
【背景技術】
【0002】
データ処理環境は、さまざまなハードウェア、ソフトウェア、ファームウェアのネットワークコンポーネントで構成されている。物理ネットワークは、データプレーンまたはアンダーレイとも呼ばれ、実際のネットワーキングオペレーションが実行され、計算ワークロードが実行される物理コンポーネントのネットワークである。
【0003】
現在、このようなネットワークコンポーネントから、ソフトウェア定義ネットワーク(SDN)オーバーレイ(以下、互換的に「SDN」または「オーバーレイ」)としても知られる論理ネットワークを構築する技術が利用可能である。基本的に、ネットワークコンポーネントは対応する論理的または仮想的な表現に抽象化され、その抽象化を用いてSDNが定義される。言い換えれば、SDNは基礎となる物理コンポーネントの仮想表現を用いて形成され、運用される論理的なネットワークである。
【0004】
物理コンピューティングマシンは仮想装置、仮想マシン(VM)、としてSDNで表現され、使用されることがあり、これはネットワーク仮想化エッジ(NVE)と呼ばれることもある。エッジで実行するように設定されたアプリケーションは、基本的に物理コンピューティングマシンで同じように実行される。
【0005】
SDNでは、ネットワーク機能を実行する実際の物理ネットワークコンポーネントは、それらのコンポーネントによって提供されるネットワーク機能を表す論理エンティティに抽象化され、それらの機能の実際の実装ではないため、それらのネットワーク機能を機能する論理ネットワークに導くものが必要となる。SDNコントローラはSDN内の論理的なネットワークコンポーネントを管理および操作するコンポーネントである。
【0006】
VMは、データ処理システムで利用可能な実際のハードウェア、ソフトウェア、およびファームウェアのコンポーネントを仮想化したものである。データ処理システムは、その上に構成された任意の数のVMを有することができ、その中で任意の数の仮想化されたコンポーネントを利用することができる。データ処理システムは、コンピューティングノード、計算ノード、ノード、またはホストとも呼ばれる。
【発明の概要】
【0007】
例示的な実施形態は、需要主導型ロケール管理を提供する。実施形態は、ユーザからの入力を示す選択データに少なくとも部分的に基づいて、インストールリストにロケールを追加するための需要閾値を確立することを含む。本実施形態は、ロケールをインストールするための要求を含むユーザ入力を検出するために、クラウドコンピューティング環境へのユーザ入力を監視することも含む。また、本実施形態は、ユーザ入力の監視中にロケールインストール要求の進行中の検出に基づいて、ロケールに関連付けられた需要スコアを動的に更新することも含まれる。また、本実施形態は、需要スコアが需要閾値を満たしたことを検出すると、ロケールをインストールリストに自動的に追加することも含む。この態様の他の実施形態は、対応するコンピュータシステム、装置、及び1つまたは複数のコンピュータ記憶装置に記録されたコンピュータプログラムを含み、各々が実施形態の動作を実行するように構成されたものである。
【0008】
実施形態は、コンピュータが使用可能なプログラム製品を含む。コンピュータ使用可能なプログラム製品は、コンピュータ可読記憶媒体と、記憶媒体に記憶されたプログラム命令とを含む。
【0009】
実施形態は、コンピュータシステムを含む。コンピュータシステムは、プロセッサと、コンピュータ可読メモリと、メモリを介したプロセッサによる実行のために記憶媒体に記憶されたプログラム命令と、を含む。
【0010】
本発明の特徴と信じられている新規な特徴は、添付の特許請求の範囲に記載されている。しかしながら、本発明自体、ならびにその好ましい使用態様、さらなる目的および利点は、添付の図面と併せて読むと、例示的な実施形態の以下の詳細な説明を参照することにより最もよく理解されるであろう。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施形態によるクラウドコンピューティング環境を示す図である。
【
図2】本発明の実施形態による抽象化モデルレイヤを示す図である。
【
図3】例示的な実施形態によるコンテナ需要ロケール管理(CDLM)システムを含む例示的なクラウドコンピューティング環境のブロック図である。
【
図4】例示的な実施形態による例示的なCDLMのブロック図である。
【
図5】例示的な実施形態による、過去のコンテナノード使用データの表を示す図である。
【
図6】需要主導型ロケール管理の処理例を示すフローチャートである。
【発明を実施するための形態】
【0012】
仮想化されたデータ処理環境は、しばしば「クラウド」と呼ばれ、複数のクライアントに必要に応じてコンピューティングリソースやコンピューティングサービスを提供する。クラウドコンピューティングサービスは、Infrastructure as a Service(IaaS)、Platform as a Service(PaaS)、Software as a Service(SaaS)、およびFunction as a Service(FaaS)など、さまざまなモデルによる典型的な仮想化データ処理環境にて利用可能である。これらのサービスは、グローバルなネットワーク機能やインフラの向上とともに拡大し続ける国際的な顧客基盤に提供される。
【0013】
仮想化の方法としてよく使われるのが、コンテナ型仮想化である。コンテナ型仮想化とは、オペレーティングシステム仮想化とも呼ばれ、仮想化レイヤをオペレーティングシステム内のアプリケーションとして動作させる仮想化の手法である。レイヤとは、イメージに参加するソフトウェアパッケージのことである。イメージは、ハードウェアにインストールして、ハードウェア上にVMをインスタンス化できるバイナリパッケージである。イメージは、レイヤがモノリシックバイナリとしてイメージ内で一緒に組み立てられた、任意の数のソフトウェアパッケージを含むことができる。1つのイメージで1つのアプリケーションを表現することができるが、必ずしもそうである必要はない。
【0014】
コンテナ型仮想化では、オペレーティングシステムのカーネルがハードウェアノード上で動作し、その上に複数の分離されたアプリケーション環境がインストールされている。分離されたアプリケーション環境は、コンテナと呼ばれる。つまり、コンテナとは、レイヤが互いに区別されたVMのイメージの実行インスタンスのことである。コンテナ型仮想化とは、複数のVMを同一ホスト上で動作させる方法であり、VM同士やホストと同じカーネルとメモリ空間を共有する。コンテナ間の分離は、ファイルシステム、ネットワークスタックサブシステム、1つまたは複数の名前空間など、複数のリソースで行われるが、これらに限定されるものではない。同じ実行カーネルとメモリ空間を共有することで、「ホスト」オペレーティングシステムとコンテナの性能に実質的な差はない。
【0015】
一般に、コンテナは、1つまたは複数のレイヤのセットを使用して形成されたイメージである。レイヤは通常、オペレーティングシステムを特定のバージョンに変更するためのレイヤや、オペレーティングシステムのローカライゼーションなどの特定のカスタマイズを行うためのレイヤを含んでいる。ローカライゼーションによって、オペレーティングシステム(およびコンピューティングサービスの他の側面)を世界のさまざまな地域の顧客向けにカスタマイズすることができる。例えば、オペレーティングシステムは、エンジニアリングの変更なしに、さまざまな言語や地域に適応させることができる。ローカライゼーションは、ユーザーインターフェース要素やドキュメントなどのコンテンツをロケールに基づき翻訳するために使用される。ローカライゼーションは、ロケールに基づく数字、日付、通貨などの表示など、コンテンツに対する他の関連する変更も含む場合もある。
【0016】
一般的なコンピューティングプラットフォームにおいて、「ロケール」とは、ユーザの特定の地域、言語、または領土に固有のデータの処理方法に関する情報をまとめたユーザ環境の一部である。多くのオペレーティングシステムやアプリケーションは、入力と出力の両方でデータの処理を行う方法を指定する「ロケール」を使用することで、さまざまな地域設定に適合させることができる。このような地域設定は、ユーザにとって単なる利便性にとどまらない。ローカライゼーションを行わないと、地域設定を適切に行うことができず、エラーが発生することがある。例えば、日付の書式や貨幣の設定が想定と異なる場合、ユーザはエラーを経験する可能性がある。また、ローカライゼーションによって言葉の壁がなくなり、一部のユーザはそのようなシステムやサービスを利用することができなくなる。
【0017】
ロケールは、通常、オペレーティングシステムの一部である。オペレーティングシステムで使用されるロケールは、通常、一連の文化的慣習を識別するために使用されるオブジェクトファイルとして表現される。文化的慣習の例としては、照合順序、文字分類、日付/時刻形式、貨幣記号、数値表現に関する情報などがある。コンピューティングプラットフォーム上で実行されるアプリケーションは、ロケールを使用して、場所または言語に関連するさまざまなデフォルト値を決定する。ロケールは、アプリケーションと、アプリケーションが実行されているプラットフォームの両方にとって重要である。例えば、プラットフォームは、ロケールを使用して、デフォルトの言語、タイムゾーン、および日付形式を決定することができる。
【0018】
ユーザの言語や地域が、オペレーティングシステムにインストールされているどのロケールとも一致しないことはよくあることである。オペレーティングシステムには、通常、プリインストールされたデフォルトのロケールが含まれている。しかし、デフォルトのロケールは、利用可能なすべてのロケールのごく一部しか含まれていない場合がある。例えば、オペレーティングシステムには、10個以下のプリインストールされたデフォルトロケールが含まれることがあるが、プリインストールされていない他のロケールが何百個も利用可能であることがある。
【0019】
必要なロケールがインストールされていない場合、ユーザはロケールを手動でインストールする必要がある。ユーザの経験レベルに応じて、ロケールを手動でインストールするプロセスは、いくつかの理由で困難または不都合になる可能性がある。例えば、経験の浅いユーザは、別のロケールをインストールできることを知らなかったり、ロケールのインストール手順に慣れていなかったり、追加のロケールがどこにあるのか知らなかったりする場合がある。また、経験豊富なユーザであっても、ロケールのインストールのためのシステム権限がないなどの問題が発生する場合がある。このような問題は、ユーザにとって克服することが困難な場合があり、特に、これらの問題を解決しようとしている間、ユーザは不慣れな言語用に設定されたオペレーティングシステムで作業している可能性があるからである。
【0020】
提案された解決策の1つは、利用可能なすべてのロケールをプリインストールすることである。しかし、オペレーティングシステムは、何百ものロケールを使用できる場合があり、所望よりも多くのメモリを消費することになる。これは、特にクラウドコンピューティングサービスにおいて、パフォーマンスの目的のためにオペレーティングシステムのインストールフットプリントを最小化することが望まれる場合に当てはまる。
【0021】
そのため、現在の技術では、クラウドサービスにインストールされたオペレーティングシステムに自分の好みまたは必要なロケールがない場合、ユーザは手動でロケールを探してインストールするしか方法がない。このような手作業は、グローバルなネットワーク機能やインフラが向上し続けることにより拡大し続ける国際的な顧客基盤にクラウドコンピューティングサービスを提供する上で、利便性やアクセス性に欠ける。
【0022】
図示された実施形態は、コンピューティング環境におけるロケールの需要を検出し、ロケールをインストールリストに自動的に追加することによって、これらの問題を解決する。一部の実施形態では、ロケールがインストールリストに登録されると、ユーザまたはユーザグループがコンピューティング環境でアプリケーションを起動するたびに自動的にロケールがインストールされるため、ユーザまたはユーザグループが手動でロケールをインストールする必要がなくなる。
【0023】
実施形態は、特定のハードウェアコンポーネントとソフトウェアアプリケーションの組合せとして実装することができる。実施形態の実装、またはその1つまたは複数のコンポーネントは、既存のコントローラ(例えば、既存のSDNコントローラ)の修正、既存のコンテナマネージャの修正として構成することができ、コンパニオンソフトウェアアプリケーションは、(i)コントローラまたはマネージャ自体、(ii)コントローラまたはマネージャと短距離無線またはローカルエリアネットワーク(LAN)で通信するデータ処理システム、(iii)コントローラまたはマネージャとワイドエリアネットワーク(WAN)で通信するデータのいくつかの組み合わせで実行することが可能である。
【0024】
一般に、実施形態は、ユーザ入力に関連する選択データに従って、インストールリストにロケールを追加するための需要閾値を確立するように構成することができる。いくつかの実施形態では、グラフィカルユーザインターフェース(GUI)は、ロケールをインストールリストに追加するための基準を入力するために、ユーザが入力または操作できるフォーム要素をユーザに提供する。そのような実施形態のいくつかは、ユーザが選択した基準に基づいて選択データを生成するように構成することができる。基準の非限定的な例としては、ロケールのインストール要求の最小数(たとえば、ロケールのインストールは少なくとも5回要求されなければならない)、最小数の要求を受け取る必要がある特定の時間帯(たとえば、ロケールのインストールは6時間の間に少なくとも3回要求されなければならない)、またはロケールをインストールするための要求は特定のユーザグループから来る必要がある(たとえば、ロケールのインストールは特定のグループのユーザから少なくとも5回要求されなければならない)などがある。
【0025】
実施形態は、ロケールをインストールする要求を含むユーザ入力を検出するように、クラウドコンピューティング環境へのユーザ入力を監視する。いくつかの実施形態では、ユーザ入力の監視は、選択データによって指定された期間中に実施される。実施形態は、様々な異なる方法でユーザ入力を監視するように構成されることができる。非限定的な例として、クラウドコンピューティング環境において、監視は、監視結果をバックエンドサーバに提供するノードによって実行される。別の非限定的な例として、クラウドコンピューティング環境において、モニタリングは、アプリケーションプログラミングインターフェース(API)を監視することによってユーザ入力を監視するバックエンドサーバによって実行される。いくつかの実施形態では、バックエンドサーバは、リアルタイム又はほぼリアルタイムでユーザ入力を監視する。
【0026】
実施形態は、ユーザ入力の監視中にロケールインストール要求の進行中の検出に基づいて、ロケールに関連する需要スコアを動的に更新するように構成することができる。いくつかの実施形態では、ロケールのインストール要求が指定された期間検出されなかったことを検出すると、需要スコアが減少する。例えば、基準として、m時間以内にロケールをインストールするn個の要求を必要とする場合があり、そのような実施形態では、検出された要求がm時間を超えて古くなると需要スコアを減少させるm時間のスライド時間ウィンドウを採用する場合がある。いくつかの実施形態では、選択データは、ユーザのグループを指定するので、ロケールのインストール要求の検出が指定されたグループのユーザからのものである場合にのみ、需要スコアが更新される。
【0027】
いくつかの実施形態は、需要スコアの更新が、いくつかのユーザまたはグループからのインストール要求を他のものよりも重み付けすることを含むように構成される。例えば、いくつかの実施形態は、要求がルートユーザまたはVIPユーザからのものである場合に、より大きな量によって需要スコアを増加させる。いくつかのそのような実施形態は、ユーザがルートであるか、VIPアカウントまたはステータスを有するかなどのユーザ特性を検出し、需要スコアを計算する目的で、そのようなユーザからの要求を他のユーザよりも多く重み付けすることを含む。
【0028】
一部の実施形態では、需要スコアが需要閾値を満たしたことを検出したときに、ロケールをインストールリストに自動的に追加する。いくつかの実施形態では、インストールリストは、例えばコンテナインスタンスの形態のアプリケーションが起動されたときに自動的にインストールされるロケールのリストである。いくつかの実施形態では、ロケールがインストールリストに追加される前に、実施形態は、需要スコアが需要閾値を満たしたことを検出し、ロケールがインストールリスト及びデフォルトロケールリストに既にないことを確認する。
【0029】
説明を明確にするために、また、それに対するいかなる限定も示唆することなく、例示的な実施形態は、いくつかの例示的な構成を使用して説明される。この開示から、当業者は、記載された目的を達成するために、記載された構成の多くの変更、適応、及び修正を思いつくことができ、同じことが例示的な実施形態の範囲内で企図されるであろう。
【0030】
さらに、図および例示的な実施形態では、データ処理環境の簡略化された図が使用されている。実際のコンピューティング環境では、例示的な実施形態の範囲を逸脱することなく、本明細書に示されていない又は説明されていない追加の構造又は構成要素、又は示されているものとは異なるが本明細書に説明されているのと同様の機能を有する構造又は構成要素が存在してもよい。
【0031】
さらに、例示的な実施形態は、例としてのみ、特定の実際のまたは仮想の構成要素に関して説明されている。様々な例示的な実施形態によって説明されるステップは、例えば、機械学習分類器モデルによってなされる決定に対する説明を提供するために適合させることができる。
【0032】
これら及び他の類似のアーティファクトの任意の特定の現れは、本発明を限定することを意図していない。これら及び他の類似のアーティファクトの任意の好適な現れは、例示的な実施形態の範囲内で選択され得る。
【0033】
本開示における例は、説明を明確にするためにのみ使用され、例示的な実施形態を限定するものではない。本明細書に記載された任意の利点は、例示に過ぎず、例示的な実施形態を限定することを意図していない。追加の又は異なる利点は、特定の例示的な実施形態によって実現され得る。さらに、特定の例示的な実施形態は、上記に列挙した利点の一部、全て、又はいずれも有していてもよい。
【0034】
さらに、例示的な実施形態は、任意のタイプのデータ、データソース、またはデータネットワークを介したデータソースへのアクセスに関して実施され得る。任意のタイプのデータ記憶装置は、本発明の範囲内で、データ処理システムでローカルに、またはデータネットワークを介して、本発明の実施形態にデータを提供することができる。実施形態がモバイルデバイスを使用して説明される場合、モバイルデバイスと共に使用するのに適した任意のタイプのデータ記憶装置は、例示的な実施形態の範囲内で、モバイルデバイスでローカルに、またはデータネットワークを介して、かかる実施形態にデータを提供することができる。
【0035】
例示的な実施形態は、特定のコード、対比的な説明、コンピュータ可読記憶媒体、高レベルの特徴、履歴データ、設計、アーキテクチャ、プロトコル、レイアウト、回路図、およびツールを例としてのみ使用して説明されており、例示的な実施形態を制限するものではない。さらに、例示的な実施形態は、説明の明確化のために、特定のソフトウェア、ツール、及びデータ処理環境を例としてのみ使用して説明される場合がある。例示的な実施形態は、他の同等のまたは類似の目的の構造、システム、アプリケーション、またはアーキテクチャと組み合わせて使用することができる。例えば、他の比較可能なモバイルデバイス、構造、システム、アプリケーション、またはそのためのアーキテクチャは、本発明の範囲内で、本発明のかかる実施形態と組み合わせて使用することができる。例示的な実施形態は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。
【0036】
本開示の例は、説明を明確にするためにのみ使用され、例示的な実施形態を限定するものではない。追加のデータ、動作、アクション、タスク、アクティビティ、及び操作が本開示から考えられ、同じものが例示的な実施形態の範囲内で企図される。
【0037】
本明細書に記載された任意の利点は、例示に過ぎず、例示的な実施形態を限定することを意図していない。追加の又は異なる利点が、特定の例示的な実施形態によって実現され得る。さらに、特定の例示的な実施形態は、上記に列挙した利点の一部、すべて、またはいずれも有し得る。
【0038】
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実装は、クラウドコンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られている又は後に開発される任意の他のタイプのコンピューティング環境と組み合わせて実施することが可能である。
【0039】
クラウドコンピューティングは、設定可能なコンピューティングリソースの共有プール(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシンおよびサービス)へ、簡便かつオンデマンドのネットワークアクセスを可能にするためのサービス提供のモデルであり、リソースは、最小限の管理労力または最小限のサービスプロバイダとのやり取りによって速やかに準備(provision)およびリリースできるものである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含むことがある。
【0040】
特性は以下の通りである。
【0041】
オンデマンド・セルフサービス:クラウドの消費者は、サービスプロバイダとの人的な対話を必要することなく、必要に応じて自動的に、サーバ時間やネットワークストレージなどのコンピューティング能力を一方的に準備することができる。
【0042】
ブロード・ネットワークアクセス:コンピューティング能力はネットワーク経由で利用可能であり、また、標準的なメカニズムを介してアクセスできる。それにより、異種のシンまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、PDA)による利用が促進される。
【0043】
リソースプーリング:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを利用して複数の消費者に提供される。様々な物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。一般に消費者は、提供されたリソースの正確な位置を管理または把握していないため、位置非依存(location independence)の感覚がある。ただし消費者は、より高い抽象レベル(例えば、国、州、データセンタ)では場所を特定可能な場合がある。
【0044】
迅速な柔軟性(elasticity):コンピューティング能力は、迅速かつ柔軟に準備することができるため、場合によっては自動的に、直ちにスケールアウトし、また、速やかにリリースされて直ちにスケールインすることができる。消費者にとって、準備に利用可能なコンピューティング能力は無制限に見える場合が多く、任意の時間に任意の数量で購入することができる。
【0045】
測定されるサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、アクティブユーザアカウント)に適したある程度の抽象化レベルでの測定機能を活用して、リソースの使用を自動的に制御し最適化する。リソース使用量を監視、制御、および報告して、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供することができる。
【0046】
サービスモデルは以下の通りである。
【0047】
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを利用できることである。当該そのアプリケーションは、ウェブブラウザ(例えばウェブメール)などのシンクライアントインタフェースを介して、各種のクライアント装置からアクセスできる。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージや、個別のアプリケーション機能さえも含めて、基礎となるクラウドインフラストラクチャの管理や制御は行わない。ただし、ユーザ固有の限られたアプリケーション構成の設定はその限りではない。
【0048】
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラム言語およびツールを用いて、消費者が作成または取得したアプリケーションを、クラウドインフラストラクチャに展開(deploy)することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、ストレージを含む、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、展開されたアプリケーションを制御でき、かつ場合によってはそのホスティング環境の構成も制御できる。
【0049】
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される機能は、オペレーティングシステムやアプリケーションを含む任意のソフトウェアを消費者が展開および実行可能な、プロセッサ、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを準備することである。消費者は、基礎となるクラウドインフラストラクチャの管理や制御は行わないが、オペレーティングシステム、ストレージ、および展開されたアプリケーションを制御でき、かつ場合によっては一部のネットワークコンポーネント(例えばホストファイアウォール)を部分的に制御できる。
【0050】
展開モデルは以下の通りである。
【0051】
プライベートクラウド:このクラウドインフラストラクチャは、特定の組織専用で運用される。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0052】
コミュニティクラウド:このクラウドインフラストラクチャは、複数の組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス)を持つ特定のコミュニティをサポートする。このクラウドインフラストラクチャは、当該組織または第三者によって管理することができ、オンプレミスまたはオフプレミスで存在することができる。
【0053】
パブリッククラウド:このクラウドインフラストラクチャは、不特定多数の人々や大規模な業界団体に提供され、クラウドサービスを販売する組織によって所有される。
【0054】
ハイブリッドクラウド:このクラウドインフラストラクチャは、2つ以上のクラウドモデル(プライベート、コミュニティまたはパブリック)を組み合わせたものとなる。それぞれのモデル固有の実体は保持するが、標準または個別の技術によってバインドされ、データとアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースティング)を実現する。
【0055】
クラウドコンピューティング環境は、ステートレス性(statelessness)、低結合性(low coupling)、モジュール性(modularity)および意味論的相互運用性(semantic interoperability)に重点を置いたサービス指向型環境である。クラウドコンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0056】
ここで、
図1に例示的なクラウドコンピューティング環境50を示す。図示するように、クラウドコンピューティング環境50は1つ以上のクラウドコンピューティングノード10を含む。これらに対して、クラウド消費者が使用するローカルコンピュータ装置(例えば、PDAもしくは携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、もしくは自動車コンピュータシステム54Nまたはこれらの組み合わせなど)は通信を行うことができる。ノード10は互いに通信することができる。ノード10は、例えば、上述のプライベート、コミュニティ、パブリックもしくはハイブリッドクラウドまたはこれらの組み合わせなど、1つ以上のネットワークにおいて、物理的または仮想的にグループ化(不図示)することができる。これにより、クラウドコンピューティング環境50は、サービスとしてのインフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせを提供することができ、クラウド消費者はこれらについて、ローカルコンピュータ装置上にリソースを維持する必要がない。なお、
図1に示すコンピュータ装置54A~Nの種類は例示に過ぎず、コンピューティングノード10およびクラウドコンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続(例えば、ウェブブラウザの使用)またはその両方を介して、任意の種類の電子装置と通信可能であることを理解されたい。
【0057】
ここで、クラウドコンピューティング環境50(
図1)によって提供される機能的抽象化レイヤのセットを
図2に示す。なお、
図2に示すコンポーネント、レイヤおよび機能は例示に過ぎず、本発明の実施形態はこれらに限定されないことをあらかじめ理解されたい。図示するように、以下のレイヤおよび対応する機能が提供される。
【0058】
ハードウェアおよびソフトウェアレイヤ60は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、縮小命令セットコンピュータ(RISC)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0059】
仮想化レイヤ70は、抽象化レイヤを提供する。当該レイヤから、例えば以下の仮想エンティティを提供することができる:仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75。
【0060】
一例として、管理レイヤ80は以下の機能を提供することができる。リソース準備81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を可能にする。計量および価格設定82は、クラウドコンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費に対する請求またはインボイス送付を可能にする。一例として、これらのリソースはアプリケーションソフトウェアのライセンスを含んでよい。セキュリティは、データおよび他のリソースに対する保護のみならず、クラウド消費者およびタスクの識別確認を可能にする。ユーザポータル83は、消費者およびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当ておよび管理を可能にする。サービス品質保証(SLA)の計画および履行85は、SLAに従って将来必要になると予想されるクラウドコンピューティングリソースの事前手配および調達を可能にする。
【0061】
ワークロードレイヤ90は、クラウドコンピューティング環境が利用可能な機能の例を提供する。このレイヤから提供可能なワークロードおよび機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の配信93、データ分析処理94、取引処理95、および需要主導型ロケール管理96が含まれる。
【0062】
図3を参照すると、この図は、例示的な実施形態によるコンテナ需要ロケール管理(CDLM)システム302を含む例示的なクラウドコンピューティング環境300のブロック図を示している。いくつかの実施形態では、CDLMは、
図2のワークロードレイヤ90に配備される。例として、いくつかの実施形態では、CDLM302は、
図2の需要主導型ロケール管理96として実装される。
【0063】
いくつかの実施形態では、環境300は、IaaS、PaaS、SaaS、及びFaaSなどの1つ又は複数の異なるサービスモデルをサポートする仮想化されたデータ処理環境である。いくつかの実施形態では、環境300のコンポーネントの少なくともサブセットは、本明細書で集合的にコンテナノード304と呼ばれる1つまたは複数のコンテナノード304A~304D、及びマスターノード306によって実装されてもよい。環境300の実施形態は、数百又は数千のコンテナノード304及び複数のマスターノード306を含んでもよい。マスターノード306は、アプリケーションプログラミングインターフェース(API)サーバ308及びCDLM302を含む、コンテナノード304をサポートするアプリケーションをホストする。いくつかの実施形態では、コンテナノード304及びマスターノード306は、クラウドコンピューティング環境300の一部として、ネットワーク接続を介して通信する。いくつかの実施形態では、コンテナノード304は、APIサーバ308を介してCDLM302と通信する。いくつかの実施形態では、ユーザ装置310は、APIサーバ308を介してCDLM302と通信する。
【0064】
図示された実施形態では、CDLM302は、ユーザまたは管理者がオンデマンド基準を設定および変更することを可能にする。オンデマンド基準は、インストールリストにロケールを追加するためのルール又はルールのセットを含む。いくつかの実施形態では、オンデマンド基準は、需要閾値を含む。ロケールをインストールリストに追加するためのオンデマンド基準の非限定的な例としては、ロケールに対する通常のユーザ要求を1時間以内に3つ以上受け取ることが必要である。いくつかの実施形態では、基準は、単一のユーザに対するものであっても、ユーザのグループに対するものであっても、ユーザの他の指定に対するものであってもよい。いくつかの実施形態では、基準が満たされると、ロケールは、インストールリストに後から自動的に追加され、その後、指定されたユーザ又はグループがクラウドコンピューティング環境300においてコンテナ又はアプリケーションを起動するときに自動的にインストールされることになる。いくつかの実施形態では、CDLM302は、ユーザがオンデマンド基準を設定及び管理することを可能にするグラフィカルユーザインターフェース(GUI)を提供する。
【0065】
いくつかの実施形態において、CDLM302は、ユーザ装置310を介してユーザによって指定された需要閾値などのオンデマンド化基準を追跡する。例えば、いくつかの実施形態では、CDLM302は、オンデマンド化基準をサービスプロファイルに保存する。いくつかの実施形態では、サービスプロファイルは、言語及びロケール機能に関連するクラウドサービス設定を含む。いくつかのそのような実施形態では、ロケールファイルセットリポジトリデータベースは、コンテナインスタンスにデフォルトでインストールされていないロケールも格納し、CDLM302にアクセスすることを提供する。いくつかの実施形態では、CDLM302は、ユーザロケールプリファレンスを含むユーザプロファイルも格納する。いくつかの実施形態では、CDLM302は、コンテナインスタンスに既にインストールされているロケールのリストも格納する。
【0066】
いくつかの実施形態では、CDLM302は、例えば、ロケールをインストールするための要求を含むユーザ入力を検出するように、ノード304へのユーザ入力を監視することによって、ロケール要求情報を追跡する。いくつかの実施形態では、CDLM302は、CDLM302上のバックエンド監視アプリケーションを使用して、例えば、リアルタイムまたはほぼリアルタイムでロケール要求情報を追跡する。例えば、CDLM302が「LANG=ja_JP」などのユーザ入力を検出し、そのアプリケーションを実行した場合、その情報は、ユーザが指定言語ロケールを必要としていることを示し、CDLM302によって追跡される。
【0067】
いくつかの実施形態では、CDLM302は、例えば、ユーザ入力を監視しながら、ロケールインストール要求の進行中の検出に基づいて、ロケールに関連する需要スコアを動的に更新することによって、需要スコアを計算する。いくつかの実施形態では、CDLM302は、ユーザが、コンテナ304のそれぞれについてロケール需要スコアを計算するアルゴリズムを定義し、修正することを可能にする。いくつかのそのような実施形態において、CDLM302は、需要を計算する目的で、特定の指定されたユーザまたはユーザグループ(例えば、ルートユーザまたはVIPグループ)による要求を、他のユーザによる要求よりも高く重み付けしてもよい。
【0068】
いくつかの実施形態では、CDLM302は、例えば、予め定義されたオンデマンド化基準に従ってトップデマンドロケールを追加することによって、インストールリストにロケールを追加する。そのような実施形態では、CDLM302は、アプリケーションがクラウドコンピューティング環境において起動されたときに、インストールリスト上のロケールを自動的にインストールする。
【0069】
図示された実施形態では、マスターノード306は、コンテナノード304上のワークロードのスケジューリング及びクラスタ構成管理などのクラスタ制御機能を実行するが、これらに限定されるものではない。本発明の1つまたは複数の実施形態に従って、マスターノード306は、本明細書で説明するCDLM302を実装する。
【0070】
図示された実施形態では、ワーカーノード304A~304Dは、それぞれのノードモニタ312A~312Dを含む。いくつかの実施形態では、ノードモニタ312A~312Dは、ロケールをインストールするための要求を含むユーザ入力を検出するように、それぞれのノード304A~304Dへのユーザ入力を監視する。いくつかのそのような実施形態では、ノードモニタ312は、ユーザ入力がロケールのインストール要求を含む場合、APIサーバ308を介してマスターノード306内のCDLM302に検出されたユーザ入力を報告する。
【0071】
図4を参照すると、この図は、例示的な実施形態による例示的なCDLM400のブロック図を示している。特定の実施形態において、CDLM400は、
図3のCDLM302の一例である。
【0072】
図示された実施形態では、CDLM400は、CDLMマネージャ402、CDLMトラッカー404、CDLM計算機406、およびCDLMエージェント408を含む。CDLMマネージャ402は、インストールに利用可能なすべての言語-ロケールパッケージを格納するファイルセットリポジトリ414を含む。CDLMマネージャ402はまた、サービスプロファイルアップデータ410、およびユーザープロファイルアップデータ412を含む。サービスプロファイルアップデータ410は、CDLMアルゴリズムアップデータ416とCDLMデータ構造アップデータ418を含む。CDLMトラッカー404は、インストールされたロケールリスト420を含む。代替の実施形態では、CDLM400は、本明細書に記載される機能の一部またはすべてを含むことができるが、1つまたは複数のモジュールに異なってグループ化される。いくつかの実施形態では、本明細書に記載される機能性は、複数のシステムの間で分散され、これは、例えば特定用途向け集積回路(ASIC)、コンピュータプログラム、またはスマートフォンアプリケーションのような、ソフトウェアもしくはハードウェアベースまたはその両方のシステムの組合せを含むことが可能である。
【0073】
図示された実施形態では、CDLM400は、APIサーバ428を介してコンテナノード422及び管理装置430と通信を行う。図示された実施形態では、ユーザ装置432は、ネットワーク接続を介してコンテナノード422と通信する。
【0074】
図示された実施形態では、CDLMマネージャ402は、例えば管理装置430を介して、ユーザ又は管理者がオンデマンド基準を設定及び変更することを可能にする。図示された実施形態では、CDLMマネージャ402のサービスプロファイルアップデータ410は、サービスプロファイル410内の基準を更新し、保存する。オンデマンド化基準は、インストールリストにロケールを追加するためのルールまたはルールのセットを含む。いくつかの実施形態では、オンデマンド化基準は、需要閾値を含む。ロケールをインストールリストに追加するためのオンデマンド化基準の非限定的な例は、ロケールに対する通常のユーザ要求を1時間以内に3つ以上受け取ることを必要とすることである。いくつかの実施形態では、基準は、単一のユーザに対するものであっても、ユーザのグループに対するものであっても、ユーザの他の指定に対するものであってもよい。いくつかの実施形態では、基準が満たされると、CDLMマネージャ402のCDLMデータ構造アップデータ418は、サービスプロファイル410に格納されたCDLMデータ構造を更新して、インストールリスト上のロケールを追跡し、指定ユーザまたはグループがコンテナ422上でコンテナまたはアプリケーションを起動するとCDLMエージェント408が自動的にロケールをインストールするようにする。いくつかの実施形態では、基準が満たされると、CDLMマネージャ402は、コンテナ422上のインストールされたロケールリスト424を更新し、指定されたユーザまたはグループがコンテナ422上でコンテナまたはアプリケーションを起動するときにCDLMエージェント408がロケールを自動的にインストールするように、インストールリスト上のロケールを含むようにする。
【0075】
いくつかの実施形態において、CDLMマネージャ402は、管理装置430を介してユーザによって指定された需要閾値などのオンデマンド化基準を追跡する。例えば、いくつかの実施形態では、サービスプロファイルアップデータ410は、オンデマンド化基準をサービスプロファイルに保存する。いくつかのそのような実施形態において、ファイルセットリポジトリ414は、コンテナインスタンスにデフォルトでインストールされていないロケール(すなわち、クラウドノードにインストールすることができるが現在インストールされていないすべての言語ロケールパッケージ)、ユーザロケールプリファレンスを含むユーザプロファイル、及びコンテナインスタンスに既にインストールされているロケールのリストを格納し、CDLM400にアクセスできるようにする。
【0076】
いくつかの実施形態では、CDLMトラッカー404は、例えば、ロケールをインストールする要求を含むユーザ入力を検出するように、コンテナノード422へのユーザ入力を監視することによって、ロケール要求情報を追跡する。いくつかの実施形態では、CDLMトラッカー404は、リアルタイムまたはほぼリアルタイムでロケール要求情報を追跡する。例えば、CDLMトラッカー404が、「LANG=ja_JP」(または同様の言語ロケール要求コマンド)などのユーザ入力を検出し、その後、そのアプリケーションを実行すると、その情報は、ユーザが、CDLMトラッカー404によって追跡される、指定言語ロケールを必要とすることを示す。
【0077】
いくつかの実施形態では、CDLM計算機406は、例えば、ユーザ入力を監視しながら、ロケール設置要求のCDLMトラッカー404による進行中の検出に基づいて、ロケールに関連する需要スコアを動的に更新することによって、需要スコアを計算する。いくつかの実施形態では、CDLM400は、コンテナ422の各々についてロケール需要スコアを計算するアルゴリズムをユーザが定義し、修正することを可能にする。いくつかのそのような実施形態において、CDLM計算機406は、需要を計算する目的で、特定の指定されたユーザまたはユーザグループ(例えば、ルートユーザまたはVIPグループ)による要求を、他のユーザによる要求よりも高く重み付けしてもよい。
【0078】
いくつかの実施形態では、CDLMマネージャ402のCDLMデータ構造アップデータ418は、CDLMエージェント408がロケールを自動的にインストールするように、インストールリスト上にロケールを含めるためにファイルセットリポジトリ414に格納されたCDLMデータ構造を更新する。いくつかの実施形態では、CDLMエージェント408は、アプリケーションがクラウドコンピューティング環境で起動されたときに、インストールリスト上のロケールを自動的にインストールする。
【0079】
図示された実施形態では、コンテナ422は、ノードモニタ426を含む。いくつかの実施形態では、ノードモニタ426は、ロケールをインストールするための要求を含むユーザ入力を検出するように、コンテナ422へのユーザ入力を監視する。いくつかのそのような実施形態では、ノードモニタ426は、ユーザ入力がロケールのインストール要求を含む場合、APIサーバ428を介してCDLM400に検出されたユーザ入力を報告する。
【0080】
図5を参照すると、この図は、例示的な実施形態による、過去のコンテナノード使用データの表500を示すものである。いくつかの実施形態では、表500のデータは、
図4のCDLM400のようなCDLMによって生成される。
【0081】
図示の実施形態では、4つの行Time-1~Time-4に対応する4つの期間にわたる単一のコンテナ(コンテナID C00001)の履歴データを示しており、例えば、各行は3時間を表している。実際の履歴データは、さらに多くの期間の情報を含むことができ、さらに多くのコンテナの履歴データを含むことができるが、例示のために、この例では、単一のコンテナの12時間の情報を示している。非限定的な例として、ロケールをインストールリストに追加するためのコンテナC00001の要件は、需要スコアが2.0以上でなければならないということである。
【0082】
図示された実施形態では、対応する行の他のデータに関連するコンテナの一意の識別子をリストするコンテナID列に加えて、各行に関連する期間を示すための時間列502、関連するコンテナに自動的にインストールされるロケールを示すためのインストールされたロケールリスト列504、ユーザが関連するコンテナにアクセスした地理的地域を示すための優先アクセス地理的位置列506、各時間帯のロケール別に要求されたアンインストールロケールの数の合計を示すためのアンインストールされたロケール列508、ユーザの主要言語を示すための主要ロケール列510、および他のデータと関連付けられたコンテナに固有の識別子であるコンテナIDのための各時間帯のCDLMスコアをリストするためのCDLMスコア列512を含む。実際の履歴データは、さらに多くの異なるタイプのデータの列を含むことができる。いくつかの実施形態では、CDLMトラッカー(例えば、
図4のCDLMトラッカー404)が列504~510のデータを収集し、CDLM計算機(例えば、
図4のCDLM計算機406)が列512にCDLMスコアを計算する。
【0083】
図示された実施形態では、時間期間Time-1の間、データは、既にインストールされているUSAロケールが使用されているが、日本ロケールが要求されていないことを示すので、CDLMトラッカー404は追跡を継続する。時間期間Time-2およびTime-3の間、アンインストールされた日本ロケールを要求するユーザの数は増加しているが、CDLMスコアは閾値2.0に達していない。時間期間Time-4の間、アンインストールされた日本ロケールを要求するユーザが増え続け、CDLMスコアは2.2となり、スコアの閾値である2.0を超えた。その結果、CDLMの閾値を超えた日本ロケールに対応するJa_JP.IBM-943のロケールが自動的にインストールリストに追加される。
【0084】
図6を参照すると、この図は、例示的な実施形態による需要主導型ロケール管理のための例示的なプロセス600のフローチャートを示すものである。いくつかの実施形態では、プロセス600は、例えば
図3のクラウドコンピューティング環境300のCDLM302または
図4のCDLM400のように、クラウドコンピューティング環境に配備されたCDLMによって実行される。
【0085】
実施形態では、ブロック602において、プロセスは、ユーザからの入力を示す選択データに少なくとも部分的に基づいて、インストールリストにロケールを追加するための需要閾値を確立する。
【0086】
実施形態では、ブロック604において、プロセスは、ロケールをインストールする要求を含むユーザ入力を検出するように、クラウドコンピューティング環境に対するユーザ入力を監視し、ロケールをインストールするための要求を含むユーザ入力を検出する。
【0087】
実施形態では、ブロック606において、プロセスは、ロケール要求がなされたかどうかを判断する。そうでない場合、プロセスはブロック604において監視を継続する。
【0088】
実施形態では、ブロック606においてプロセスがロケール要求を検出した場合、プロセスはブロック608に進み、プロセスは、ユーザ入力の監視中にロケールインストール要求の進行中の検出に基づいて、ロケールに関連する需要スコアを更新する。
【0089】
実施形態では、ブロック610において、プロセスは、需要閾値(またはCDLM閾値)値が満たされたかどうかを判断する。そうでない場合、プロセスはブロック604において監視を継続する。
【0090】
実施形態では、ブロック610において需要閾値(またはCDLM閾値)値に達したとプロセスが判断した場合、プロセスはブロック612に進み、需要スコアが満たされたことを検出すると、プロセスは自動的にロケールをインストールリストに追加する。
【0091】
実施形態では、ブロック614において、プロセスは、アプリケーションがクラウドコンピューティング環境で起動されたときに、インストールリスト上のロケールを自動的にインストールする。
【0092】
以下の定義および略語は、特許請求の範囲および明細書の解釈のために使用されるものとする。本明細書で使用される場合、用語「含む(comprises)」、「含む(comprising)」、「含む(includes)」、「含む(including)」、「含む(has)」、「含む(having)」、「含む(contains)」、または「含む(containing)」、またはその他の変形は、非排他的な含有をカバーすることを意図している。例えば、要素のリストからなる組成物、混合物、プロセス、方法、製品、または装置は、必ずしもそれらの要素のみに限定されず、明示的にリストされていない他の要素またはかかる組成物、混合物、プロセス、方法、製品、または装置に固有の要素を含むことができる。
【0093】
さらに、「例示的」という用語は、本明細書において、「例、実例、または説明として機能する」ことを意味するために用いられる。本明細書で「例示的」として説明される任意の実施形態または設計は、必ずしも他の実施形態または設計よりも好ましいまたは有利であると解釈されるものではない。用語「少なくとも1つ」及び「1つまたは複数」は、1以上の任意の整数、すなわち1、2、3、4などを含むと理解される。「複数」という用語は、2以上の任意の整数、すなわち、2、3、4、5などを含むと理解される。「接続」という用語は、間接的な「接続」及び直接的な「接続」を含むことができる。
【0094】
本明細書における「一実施形態」、「実施形態」、「例示的実施形態」等への言及は、記載された実施形態が特定の特徴、構造、又は特性を含み得るが、全ての実施形態が特定の特徴、構造、又は特性を含んでも含まなくてもよいことを示すものである。さらに、このようなフレーズは、必ずしも同じ実施形態を指すものではない。さらに、特定の特徴、構造、または特性が実施形態に関連して記載されている場合、明示的に記載されているかどうかにかかわらず、他の実施形態に関連してそのような特徴、構造、または特性に影響を与えることは当業者の知識の範囲内であると考えられる。
【0095】
「約」、「実質的に」、「概算」という用語、及びそれらの変形は、出願時に利用可能な機器に基づく特定の量の測定に関連する誤差の程度を含むことを意図している。例えば、「約」は、所与の値の±8%、5%、または2%の範囲を含むことができる。
【0096】
本発明の様々な実施形態の説明は、説明のために提示されたが、網羅的であること、または開示された実施形態に限定されることを意図していない。説明した実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見出される技術に対する実用化または技術的改良を最もよく説明するために、または当業者が本明細書に記載された実施形態を理解できるようにするために選択されたものである。
【0097】
本発明の様々な実施形態の説明は、説明のために提示されたが、網羅的であること、または開示された実施形態に限定されることを意図していない。説明した実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見出される技術に対する実用化または技術的改良を最もよく説明するために、または当業者が本明細書に記載された実施形態を理解できるようにするために選択されたものである。
【0098】
したがって、オンラインコミュニティへの参加および他の関連する特徴、機能、または動作を管理するためのコンピュータ実装方法、システムまたは装置、およびコンピュータプログラム製品が、例示的な実施形態において提供される。実施形態またはその一部が装置のタイプに関して説明される場合、コンピュータ実装方法、システムまたは装置、コンピュータプログラム製品、またはその一部は、そのタイプの装置の適切かつ同等の発現と共に使用するように適合されるかまたは構成される。
【0099】
実施形態がアプリケーションに実装されるものとして説明される場合、例示的な実施形態の範囲内で、サービスとしてのソフトウェア(SaaS)モデルにおけるアプリケーションの配信が企図される。SaaSモデルでは、実施形態を実装するアプリケーションの機能は、クラウドインフラストラクチャでアプリケーションを実行することによって、ユーザに提供される。ユーザは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインタフェース、又は他の軽量クライアントアプリケーションを介して、様々なクライアントデバイスを使用してアプリケーションにアクセスすることができる。ユーザは、ネットワーク、サーバ、オペレーティングシステム、またはクラウドインフラのストレージを含む基礎となるクラウドインフラを管理または制御しない。場合によっては、ユーザはSaaSアプリケーションの機能を管理または制御しない。他のいくつかのケースでは、アプリケーションのSaaS実装は、限られたユーザ固有のアプリケーション構成設定の可能な例外を許可する場合がある。
【0100】
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。
【0101】
コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶装置は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。
【0102】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピュータ装置/処理装置へダウンロード可能である。あるいは、ネットワーク(例えばインターネット、LAN、WANもしくはワイヤレスネットワークまたはこれらの組み合わせ)を介して、外部コンピュータまたは外部記憶装置へダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを備えることができる。各コンピュータ装置/処理装置内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、各々のコンピュータ装置/処理装置におけるコンピュータ可読記憶媒体に記憶するために転送する。
【0103】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【0104】
本発明の実施形態は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実行可能である。
【0105】
上記のコンピュータ可読プログラム命令は、機械を生産するために、コンピュータ、または他のプログラマブルデータ処理装置のプロセッサに提供してよい。これにより、かかるコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行するための手段を創出する。上記のコンピュータ可読プログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他の装置またはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータ可読記憶媒体に記憶してよい。これにより、命令が記憶された当該コンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行するための命令を含む製品を構成する。
【0106】
また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル装置、または他の装置にロードし、一連の動作ステップを当該コンピュータ、他のプログラマブル装置、または他の装置上で実行させることにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他の装置上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。
【0107】
本開示の図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行してもよい。例えば、連続して示される2つのブロックは、実際には、関係する機能に応じて、同時もしくは略同時に実行してもよいし、または場合により逆順で実行してもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能または動作を行う、または専用ハードウェアとコンピュータ命令との組み合わせを実行する専用ハードウェアベースのシステムによって、実行可能である。
【0108】
本発明の実施形態はまた、クライアント企業、非営利組織、政府機関、内部組織構造などとのサービス係の一部として提供されてもよい。これらの実施形態の態様は、本明細書に記載される方法の一部または全部を実行するためにコンピュータシステムを構成すること、および実装するソフトウェア、ハードウェア、およびウェブサービスを展開することを含んでもよい。これらの実施形態の態様は、クライアントの業務を分析すること、分析に応答する勧告を作成すること、勧告の一部を実装するシステムを構築すること、システムを既存のプロセス及びインフラストラクチャに統合すること、システムの使用を測定すること、システムのユーザに費用を割り当てること、及びシステムの使用に対して課金することを含むこともできる。以上、本発明の実施形態をそれぞれ個別の利点を述べて説明したが、本発明は、その特定の組み合わせに限定されるものではない。それどころか、このような実施形態も、その有益な効果を失うことなく、本発明の意図する展開に応じて、任意の方法および数で組み合わせることができる。