(57)【要約】  各種の例示的実施形態は、複数のハードウェア部品のうちのハードウェア部品に診断検査を行うべきであると判定するステップであって、複数のハードウェア部品は複数のエージェント装置を支援し、複数のエージェント装置のうち少なくとも１つのエージェント装置が複数のハードウェア部品の少なくとも１つに割り当てられる、判定するステップと、複数のエージェント装置の中でそのハードウェア部品に割り当てられているエージェント装置がないことを保証するステップと、複数のエージェント装置の中でそのハードウェア部品に割り当てられているエージェント装置がないことを保証した後に、ハードウェア部品に診断検査を行うステップであって、複数のハードウェア部品のうち少なくとも１つの他のハードウェア部品は診断検査の実行中に動作を継続する、診断検査を行うステップと、の１つまたは複数を含む方法およびそれに関連するネットワークノードに関する。
2014531691.tif 000002
【特許請求の範囲】
【請求項１】
診断検査を行うためにハードウェア管理装置によって行われる方法であって、
複数のハードウェア部品のうちのハードウェア部品に診断検査を行うべきであると判定する（４１０）ステップであって、複数のハードウェア部品は複数のエージェント装置を支援し、複数のエージェント装置のうち少なくとも１つのエージェント装置が複数のハードウェア部品の少なくとも１つに割り当てられる、判定するステップと、
複数のエージェント装置の中でそのハードウェア部品に割り当てられているエージェント装置がないことを保証する（４１５）ステップと、
複数のエージェント装置の中でそのハードウェア部品に割り当てられているエージェント装置がないことを保証した後に、ハードウェア部品に診断検査を行う（４２０）ステップであって、複数のハードウェア部品のうち少なくとも１つの他のハードウェア部品は診断検査の実行中に動作を継続する、診断検査を行うステップと
を含む、方法。
【請求項２】
複数のエージェント装置の中でそのハードウェア部品に割り当てられているエージェント装置がないことを保証するステップ（４１５）が、複数のエージェント装置のうち少なくとも１つのエージェント装置を、当該ハードウェア部品から、複数のハードウェア部品のうち別のハードウェア部品に移し替えるステップを含む、請求項１に記載の方法。
【請求項３】
複数のハードウェア部品がハードウェアモジュールの一部であり、方法がさらに、
ハードウェアモジュールの現在の作業負荷を監視する（４３０）ステップと、
現在の作業負荷がハードウェアモジュールの現在の能力の限界を超えるかどうかを判定する（４３０）ステップと、
現在の作業負荷が現在の能力の限界を超える場合、診断検査を中断する（４３５）ステップと
を含む、請求項１または２に記載の方法。
【請求項４】
ハードウェア管理装置がハイパーバイザを含む、請求項１から３のいずれか一項に記載の方法。
【請求項５】
診断検査の完了後、複数のエージェント装置のうち少なくとも１つのエージェント装置を、複数のハードウェア部品のうち別のハードウェア部品から当該ハードウェア部品に移し替える（４４５）ステップをさらに含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
診断検査を行うべきであると判定する（４１０）ステップが、診断検査を行うよう求める命令をクラウドコンピューティングゲートウェイから受信するステップを含む、請求項１から５のいずれか一項に記載の方法。
【請求項７】
ハードウェア部品に診断検査を行う（４２０）ステップが、新しいエージェント装置を開始し、その新しいエージェント装置をハードウェア部品に割り当てるステップを含む、請求項１から６のいずれか一項に記載の方法。
【請求項８】
複数のハードウェア部品（２６２、２７２、２７４、２８６）と、
複数のエージェント装置（１５０ａ−ｄ）であって、少なくとも１つのエージェント装置が複数のハードウェア部品（２６２、２７２、２７４、２８６）の少なくとも１つを利用する、複数のエージェント装置と、
複数のハードウェア部品（２６２、２７２、２７４、２８６）の少なくとも１つを利用するリソース割振り装置（１４０ａ−ｂ）と
を備えるハードウェアシステムであって、リソース割振り装置（１４０ａ−ｂ）は、
複数のハードウェア部品（２６２、２７２、２７４、２８６）のうちのハードウェア部品に診断検査を行うべきであると判定し、
複数のエージェント装置の中でそのハードウェア部品を利用しているエージェント装置がないことを保証し、
複数のエージェント装置の中でそのハードウェア部品を利用しているエージェント装置がないことを保証した後、ハードウェア部品の診断検査の実行を実施し、複数のハードウェア部品（２６２、２７２、２７４、２８６）のうち少なくとも１つの他のハードウェア部品は診断検査の実行中に動作を継続する
ように構成される、ハードウェアシステム。
【請求項９】
複数のエージェント装置（１５０ａ−ｄ）の中でそのハードウェア部品に割り当てられているエージェント装置がないことを保証する際に、リソース割振り装置（１４０ａ−ｂ）が、複数のエージェント装置のうち少なくとも１つのエージェント装置を、当該ハードウェア部品から、複数のハードウェア部品（２６２、２７２、２７４、２８６）のうち別のハードウェア部品に移し替えるように構成される、請求項８に記載のハードウェアシステム。
【請求項１０】
リソース割振り装置（１４０ａ−ｂ）がさらに、
ハードウェアシステムの現在の作業負荷を監視し、
現在の作業負荷がハードウェアシステムの現在の能力の限界を超えるかどうかを判定し、
現在の作業負荷が現在の能力の限界を超える場合、診断検査を中断する
ように構成される、請求項８または９に記載のハードウェアシステム。
【請求項１１】
リソース割振り装置（１４０ａ−ｂ）がハイパーバイザを含む、請求項８から１０のいずれか一項に記載のハードウェアシステム。
【請求項１２】
リソース割振り装置（１４０ａ−ｂ）がさらに、診断検査の完了後、複数のエージェント装置（１５０ａ−ｄ）のうち少なくとも１つのエージェント装置を、複数のハードウェア部品（２６２、２７２、２７４、２８６）のうち別のハードウェア部品から当該ハードウェア部品に移し替えるように構成される、請求項８から１１のいずれか一項に記載のハードウェアシステム。
【請求項１３】
診断検査を行うべきであると判定する際に、リソース割振り装置（１４０ａ−ｂ）が診断検査を行うよう求める命令をクラウドコンピューティングゲートウェイから受信するように構成される、請求項８から１２のいずれか一項に記載のハードウェアシステム。
【請求項１４】
診断検査の実行を実施する際に、リソース割振り装置（１４０ａ−ｂ）が、新しいエージェント装置を開始し、その新しいエージェント装置をハードウェア部品に割り当てるように構成される、請求項８から１３のいずれか一項に記載のハードウェアシステム。
【請求項１５】
新しいエージェント装置を開始し、その新しいエージェント装置をハードウェア部品に割り当てる命令を含む、ハードウェア部品。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、同時係属出願である米国出願番号第１３／２５０１８８号、整理番号ＡＬＣ３７４７、Ｂａｕｅｒらによる「ハードウェア消費アーキテクチャ」を相互引用し、同文献は引用によりその全体が本明細書に組み込まれている。
【０００２】
本明細書に開示される各種の例示的実施形態は、一般にはシステムの信頼性および可用性に関する。
【背景技術】
【０００３】
仮想化やクラウドコンピューティング等の技術の台頭により、それまで専用の独立したハードウェアに関連付けられていた各種のアプリケーションを、共有ハードウェアリソースを提供するマシンに移行することが容易になっている。このいわゆる「サーバ統合」により、利用可能なリソースをより完全に利用し、したがって充分に利用されていないリソースに伴う費用を低減させることが可能になる。例えば、それまであまり利用されていなかったサーバを廃棄することにより、エネルギー消費、占有面積、および他のサーバ関係の費用を下げることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、サーバ統合は様々な望ましくない影響をもたらす可能性もある。ハードウェアリソースの利用率が増大することにより、ハードウェアの故障率が上がる可能性がある。これらの故障は、次いでそのハードウェアを利用する任意のアプリケーションに影響を及ぼす恐れがある。さらに、現在のアーキテクチャでは、サーバのハードウェア部品が故障すると、多くの場合そのサーバ全体を交換または修理しなければならず、サーバのハードウェア部品の一部は稼働し続けるにも関わらず、そのサーバをアプリケーションの実行に利用できるリソースプールから取り除くことになる。
【課題を解決するための手段】
【０００５】
各種例示的実施形態の簡単な概要を下記に提示する。以下の概要では多少の簡略化と省略を行うことがあるが、この概要は各種の例示的実施形態のいくつかの態様を取り上げて紹介するものであり、本発明の範囲を限定するものではない。当業者が本発明の概念を実施し、使用することを可能にするのに十分な好ましい例示的実施形態の詳細な説明はその後の項で述べる。
【０００６】
各種の例示的実施形態は、診断検査を行うためにハードウェア管理装置によって行われる方法に関し、方法は、複数のハードウェア部品のうちのハードウェア部品に診断検査を行うべきであると判定するステップであって、複数のハードウェア部品は複数のエージェント装置を支援し、複数のエージェント装置のうち少なくとも１つのエージェント装置が複数のハードウェア部品の少なくとも１つに割り当てられる、判定するステップと、複数のエージェント装置の中でそのハードウェア部品に割り当てられているエージェント装置がないことを保証するステップと、複数のエージェント装置の中でそのハードウェア部品に割り当てられているエージェント装置がないことを保証した後に、ハードウェア部品に診断検査を行うステップであって、複数のハードウェア部品のうち少なくとも１つの他のハードウェア部品は診断検査の実行中に動作を継続する、診断検査を行うステップと、の１つまたは複数を含む。
【０００７】
各種の例示的実施形態は、ハードウェアシステムに関し、ハードウェアシステムは、複数のハードウェア部品と、複数のエージェント装置であって、少なくとも１つのエージェント装置が複数のハードウェア部品の少なくとも１つを利用する、複数のエージェント装置と、
複数のハードウェア部品の少なくとも１つを利用するリソース割振り装置と、の１つまたは複数を含み、リソース割振り装置は、複数のハードウェア部品のうちのハードウェア部品に診断検査を行うべきであると判定し、複数のエージェント装置の中でそのハードウェア部品を利用しているエージェント装置がないことを保証し、複数のエージェント装置の中でそのハードウェア部品を利用しているエージェント装置がないことを保証した後、ハードウェア部品の診断検査の実行を実施し、複数のハードウェア部品のうち少なくとも１つの他のハードウェア部品は診断検査の実行中に動作を継続する、ように構成される。
【０００８】
各種の例示的実施形態は、診断検査を行うためにハードウェア管理装置によって実行される命令が符号化された有形で持続性の機械可読記憶媒体に関し、この有形で持続性の機械可読記憶媒体は、複数のハードウェア部品のうちのハードウェア部品に診断検査を行うべきであると判定するための命令であって、複数のハードウェア部品は複数のエージェント装置を支援し、複数のエージェント装置のうち少なくとも１つのエージェント装置が複数のハードウェア部品の少なくとも１つに割り当てられる、判定する命令と、複数のエージェント装置の中でそのハードウェア部品に割り当てられているエージェント装置がないことを保証するための命令と、複数のエージェント装置の中でそのハードウェア部品に割り当てられているエージェント装置がないことを保証した後に、ハードウェア部品に診断検査を行うための命令であって、複数のハードウェア部品のうち少なくとも１つの他のハードウェア部品は診断検査の実行中に動作を継続する、診断検査を行う命令と、の１つまたは複数を含む。
【０００９】
記載される各種の例示的実施形態で、複数のエージェント装置の中でそのハードウェア部品に割り当てられているエージェント装置がないことを保証するステップは、複数のエージェント装置のうち少なくとも１つのエージェント装置を、当該ハードウェア部品から、複数のハードウェア部品のうち別のハードウェア部品に移し替えるステップを含む。
【００１０】
記載される各種の例示的実施形態で、複数のハードウェア部品はハードウェアモジュールの一部であり、実施形態はさらに、ハードウェアモジュールの現在の作業負荷を監視するステップと、現在の作業負荷がハードウェアモジュールの現在の能力の限界を超えるかどうかを判定するステップと、現在の作業負荷が現在の能力の限界を超える場合、診断検査を中断するステップと、の１つまたは複数を含む。
【００１１】
記載される各種の例示的実施形態で、ハードウェア管理装置はハイパーバイザを含む。
【００１２】
各種の例示的実施形態は、また、診断検査の完了後、複数のエージェント装置のうち少なくとも１つのエージェント装置を、複数のハードウェア部品のうち別のハードウェア部品から当該ハードウェア部品に移し替えるステップを含む。
【００１３】
記載される各種の例示的実施形態で、診断検査を行うべきであると判定するステップは、診断検査を行うよう求める命令をクラウドコンピューティングゲートウェイから受信するステップを含む。
【００１４】
記載される各種の例示的実施形態で、ハードウェア部品に診断検査を行うステップは、新しいエージェント装置を開始し、その新しいエージェント装置をハードウェア部品に割り当てるステップを含む。
【００１５】
各種の例示的実施形態をよりよく理解するために、添付図面を参照する。
【図面の簡単な説明】
【００１６】
【図１ａ】共有ハードウェアリソースを提供する例示的システムを示す図である。
【図１ｂ】図１ａの一部の構成要素の代替構成を示す図である。
【図１ｃ】図１ａの一部の構成要素の別の代替構成を示す図である。
【図２−１】ハードウェアリソースを提供する例示的ハードウェアシステムを示す図である。
【図２−２】ハードウェアリソースを提供する例示的ハードウェアシステムを示す図である。
【図３】ハードウェア部品の状態を監視する例示的方法を示す図である。
【図４】稼働中のハードウェアモジュールのハードウェア部品に診断検査を行う例示的方法を示す図である。
【発明を実施するための形態】
【００１７】
理解を助けるために、実質的に同じもしくは同様の構造および／または実質的に同じもしくは同様の機能を持つ要素は、同じ参照符号を使用して識別している。
【００１８】
前述に鑑みて、共有ハードウェアリソースを提供するシステムであって、システムの残りの利用可能なハードウェア部品に影響を及ぼすことなく各種のハードウェア部品に広範な診断検査を行うことが可能なシステムを提供することが望ましい。詳細には、他のハードウェア部品が完全に動作可能な状態を保ったままで、診断検査を行うために実行時にハードウェア部品を切り離すことが望ましい。
【００１９】
図１ａは、共有ハードウェアリソースを提供する例示的システム１００ａを示す。例示的なシステムは、いくつかのクライアント装置１１０ａ−ｃ、ネットワーク１２０、クラウドコンピューティングゲートウェイ１３０、リソース割振り装置１４０ａ−ｂ、およびいくつかのエージェント装置１５０ａ−ｄを含むことができる。リソース割振り装置１４０ａ−ｂおよびエージェント装置１５０ａ−ｄは、１つまたは複数のクラウドコンピューティングインフラストラクチャに存在することができる。
【００２０】
クライアント装置１１０ａ−ｃは各々、ネットワーク１２０等のネットワークと通信することが可能な任意の装置を含むことができる。ここでは３つの装置を示すが、例示的システム１００ａは、それよりも少ない、または多い装置を含むことが可能である。さらに、例示的システム１００ａに参加するクライアント装置の数は運用中に変わる可能性がある。例えば、クライアント装置１１０ａが例示的システム１００ａへの参加をやめる、かつ／または新たに２つのクライアント装置（図示せず）が同様の参加を開始する等の可能性がある。
【００２１】
各クライアント装置１１０ａ−ｃは、パーソナルコンピュータもしくはラップトップコンピュータ、端末、サーバ、タブレット、ワイヤレス電子メール機器、携帯電話、スマートフォン、テレビのセットトップボックス、またはネットワーク１２０を介して他の装置と通信可能な任意の他の装置とすることができる。各クライアント装置１１０ａ−ｃは種々の理由で例示的システム１００ａに参加する可能性がある。例えば、クライアント装置１１０ａはシンクライアントであり、例示的システム１００ａ内の他のリソースに依存して、クライアント装置１１０ａの通常動作に関連する大半またはすべての処理を行う。別の例として、クライアント装置１１０ｂは、大半の作業は独力で行うことが可能なパーソナルコンピュータであり、例えば大きな音楽や電子書籍の集まりなどのデータを記憶して取り出すために例示的システム１００ａ内の他のリソースに依存する。さらに別の例として、クライアント装置１１０ｃは、他の装置（図示せず）から要求を受け取り、応答するサーバである。クライアント装置１１０ｃは、要求の到着率が非常に高く、何らかの効率性の尺度、応答時間、またはサーバ負荷を測る他の尺度の範囲内でクライアント装置１１０ｃが要求を処理できない時に、例示的システム１００ａ内の他のリソースに依存して要求の一部を処理することができる。
【００２２】
ネットワーク１２０は、例示的システム１００ａの他の装置間の通信を提供するようになされた装置または装置のグループとすることができる。したがって、ネットワーク１２０は、適切な宛先にパケットを転送するためのいくつかのルータおよび／またはスイッチを含むことができる。各種実施形態で、ネットワーク１２０は、１つまたは複数の２Ｇ、３Ｇ、および／もしくは４Ｇシステム、ならびに／または他のワイヤレスシステムを含むことができる。さらに、各種実施形態で、ネットワーク１２０は、インターネットおよび／もしくは１つまたは複数のローカルエリアネットワーク（ＬＡＮ）等の有線ネットワークを含むことができる。
【００２３】
クラウドコンピューティングゲートウェイ１３０は、ハードウェアリソースを管理するようになされた装置または装置のグループとすることができる。そのため、クラウドコンピューティングゲートウェイは、エージェント装置１５０ａ−ｄ等のエージェント装置の確立を実施し、クライアント装置１１０ａ−ｃおよびエージェント装置１５０ａ−ｄ間でメッセージを伝送し、ハードウェア利用についてユーザに課金し、ハードウェアリソースの状態を監視し、かつ／またはハードウェアリソースの消費を制御することができる。クラウドコンピューティングゲートウェイの詳細な動作は、下記で図２に関連して詳細に説明する。
【００２４】
下記でより詳細に説明するが、クラウドコンピューティングゲートウェイ１３０に管理されるハードウェアリソースは、いくつかのハードウェアモジュールを含むことができる。各ハードウェアモジュールは、いくつかのハードウェア部品を含む回路基板とすることができる。そして、ハードウェア部品は、クラウドコンピューティングゲートウェイ１３０で管理されるハードウェアリソースを提供する。例えば、あるハードウェアモジュールは、３２個のプロセッサが搭載された回路基板とすることができる。クラウドコンピューティングゲートウェイ１３０は、その３２個のプロセッサの処理能力の使用と消費を少なくとも部分的に管理するように動作することができる。ハードウェアモジュールのさらなる例は、後に図２を参照して説明する。例示的なシステム１００ａは、図示するように２つのハードウェアモジュール１６０ａ、１７０ａを含むことができる。図には２つのハードウェアモジュール１６０ａ、１７０ａを示すが、例示的システム１００ａはそれよりも少ない、または多いハードウェアモジュール（図示せず）を含むことが可能であることに留意されたい。
【００２５】
リソース割振り装置１４０ａ−ｂは各々、ハードウェアモジュール１６０ａ、１７０ａ等のハードウェアモジュールのハードウェアリソースを利用する装置とすることができる。リソース割振り装置１４０ａ−ｂは、エージェント装置１５０ａ−ｄを管理することもできる。例えば、リソース割振り装置１４０ａがエージェント装置１５０ａ−ｂを管理し、リソース割振り装置１４０ｂがエージェント装置１５０ｃ−ｄを管理することができる。エージェント装置１５０ａ−ｄを管理する際、リソース割振り装置１４０ａ−ｂは、各エージェント装置１４０ａ−ｄに関してハードウェアモジュール１６０ａ、１７０ａの共有ハードウェアリソースを割り当てる、かつ／または実施することができる。例えば、リソース割振り装置１４０ａは、エージェント装置１  １５０ａは第１のＣＰＵの処理時間の２０％を使用することができ、エージェント装置Ｍ  １５０ｂは同じＣＰＵの処理時間の１０％を使用できることを保証することができる。したがって、各種実施形態で、リソース割振り装置１４０ａ−ｂは各々ハイパーバイザを含むことができる。リソース割振り装置１４０ａ−ｂは、例えば要求および応答メッセージのルーティング、リソースの確保、負荷平衡、使用量の計測、および／または課金等の多数の追加的な機能を行うことができる。例示的システム１００ａは２つのリソース割振り装置１４０ａ−ｂを含むが、各種実施形態は、それよりも少ない、または多くのリソース割振り装置（図示せず）を含むことが可能であることに留意されたい。
【００２６】
エージェント装置１５０ａ−ｄは、各々、クライアント装置１１０ａ−ｃの１つまたは複数と連携して動作するように構成された装置とすることができる。各エージェント装置１５０ａ−ｄは、１つまたは複数のプロセッサ、メモリ、記憶域、および／またはネットワークインターフェース等のハードウェアリソースを含むことができる。各種実施形態で、エージェント装置１５０ａ−ｄは、そのようなハードウェアリソースを他のエージェント装置１５０ａ−ｄおよび／またはリソース割振り装置１４０ａ−ｂと共有することができる。例えば、エージェント装置１  １５０ａは、ＣＰＵをリソース割振り装置１４０ａおよびエージェント装置Ｍ  １５０ｂと共有することができる。そのようなハードウェアリソースは、ハードウェアモジュール１６０ａ、１７０ａ等の１つまたは複数の物理ハードウェアモジュールに分散配置することができる。各種実施形態で、エージェント装置１５０ａ−ｄの１つまたは複数は仮想マシンを含むことができる。
【００２７】
一部の実施形態によると、リソース割振り装置１４０ａ−ｂは、それらが管理するエージェント装置１５０ａ−ｄと同じ物理ハードウェアモジュールに共に存在することができる。例えば、リソース割振り装置１４０ａおよびエージェント装置１５０ａ−ｂが１つの物理ハードウェアモジュール１６０ａに共に存在することができる。そのような実施形態では、リソース割振り装置１４０ａがハイパーバイザを含み、一方エージェント装置１５０ａ−ｂは各々仮想装置を含むことができ、それらはすべて同じハードウェアモジュールの各種ハードウェア部品を使用して実行することができる。同様に、リソース割振り装置１４０ｂとエージェント装置１５０ｃ−ｄは共に別の物理ハードウェアモジュール１７０ａに存在することができる。ただし、本明細書に記載される方法は、各種の代替構成に適用可能であることが明らかであろう。例えば、図１ｂに示す代替構成１００ｂは、リソース割振り装置１４０ａが第１のハードウェアモジュール１６０ｂにあり、エージェント装置１５０ａ−ｂがすべて第２のハードウェアモジュール１６２ｂにあることを示している。別の代替例として、図１ｃに示す代替構成１００ｃは、リソース割振り装置１４０ａおよびエージェント装置１５０ａ−ｂがそれぞれ別個のハードウェアモジュール１６０ｃ、１６２ｃ、１６４ｃにあることが可能であることを示している。さらに、各リソース割振り装置１４０ａおよびエージェント装置１５０ａ−ｂは、複数のハードウェアモジュールから提供されるリソースを利用することができる。各種の他の構成が当業者には明らかとなろう。
【００２８】
図１ａに戻ると、クラウドコンピューティングゲートウェイ１３０および／またはリソース割振り装置１４０ａ−ｂは、ハードウェアモジュールのハードウェア部品の故障に対処するように構成することができる。例えば、ハードウェアモジュール１６０ａのＣＰＵが故障したか、または他の理由で使用不可能と見なされる場合、クラウドコンピューティングゲートウェイ１３０および／またはリソース割振り装置１４０ａは、そのＣＰＵのソフトウェアまたはハードウェアの構成を変更するか、他の方法でＣＰＵを利用可能リソースプールから除外することにより、故障したＣＰＵを非アクティブ状態にすることができる。クラウドコンピューティングゲートウェイ１３０および／またはリソース割振り装置１４０ａは、その後、ハードウェアモジュール１６０ａを再設定して故障したＣＰＵの電源を切ることにより、稼働費も低減させることができる。クラウドコンピューティングゲートウェイ１３０および／またはリソース割振り装置１４０ａはさらに、それまで故障したＣＰＵを使用していたエージェント装置１５０ａ−ｂを再設定して、モジュール１６０ａの別のＣＰＵか、またはモジュール１７０ａ等の別のモジュールのＣＰＵを代わりに利用させることができる。このようにして、ハードウェアモジュール１６０ａ、１７０ａは、各自の構成要素が機能しなくなっても動作可能な状態を保つことができる。モジュールは、漸次機能しなくなっていくため、能力は低下するものの機能し続けることができる。モジュールの能力が、稼働を継続することに費用効果がある点を下回ると、そのハードウェアモジュールは破棄し、交換することができる。上記のように、本アーキテクチャは、ハードウェアリソースの消費に対応する。
【００２９】
クラウドコンピューティングゲートウェイ１３０および／またはリソース割振り装置１４０ａ−ｂはさらに、ハードウェアモジュール１６０ａ、１７０ａの消費を管理するようになすことができる。詳細には、クラウドコンピューティングゲートウェイ１３０および／またはリソース割振り装置１４０ａ−ｂは、ハードウェアモジュール１６０ａ、１７０ａのハードウェア部品に定期的に診断検査を行って現在の状態を計測し、ハードウェアの残りの耐用寿命を推定することができる。より広範な診断検査を提供するために、クラウドコンピューティングゲートウェイ１３０および／またはリソース割振り装置１４０ａ−ｂはさらに、例えば、検査対象のハードウェア部品を使用しているエージェント装置を稼働中に他のハードウェア部品に移し替えることにより、検査するハードウェア部品をまず解放するようになすことができる。そして、広範で通例は「使用停止（ｏｕｔ−ｏｆ−ｓｅｒｖｉｃｅ）」にして行われる診断検査を部品に実行することができ、その間ハードウェアモジュールは能力が低下するものの動作を継続する。この診断検査の結果に基づいて、クラウドコンピューティングゲートウェイ１３０および／またはリソース割振り装置１４０ａ−ｂは、ハードウェアモジュール１６０ａ、１７０ａの各種動作パラメータを調整して、事前に決められたハードウェア交換スケジュールを考慮して適宜ハードウェアの寿命を縮めるか、または伸ばすことができる。
【００３０】
図２は、ハードウェアリソースを提供する例示的ハードウェアシステム２００を示す。例示的ハードウェアシステム２００は例示的システム１００ａの一部分に相当することができる。例示的なハードウェアシステム２００は、ネットワーク２２０、クラウドコンピューティングゲートウェイ２３０、およびハードウェアモジュール２６０、２７０、２８０を含むことができる。
【００３１】
ネットワーク２２０は、例示的システム１００ａの他の装置間に通信を提供するようになされた装置または装置のグループとすることができる。したがって、ネットワーク１２０は、適切な宛先にパケットを転送するためのいくつかのルータおよび／またはスイッチを含むことができる。各種実施形態で、ネットワーク１２０は、１つまたは複数の２Ｇ、３Ｇ、および／もしくは４Ｇシステム、ならびに／または他のワイヤレスシステムを含むことができる。さらに、各種実施形態で、ネットワーク１２０は、インターネットおよび／もしくは１つまたは複数のローカルエリアネットワーク（ＬＡＮ）等の有線ネットワークを含むことができる。各種実施形態で、ネットワーク２２０は、例示的システム１００ａのネットワーク１２０に対応することができる。
【００３２】
クラウドコンピューティングゲートウェイ２３０は、ハードウェアリソースを管理するようになされた装置または装置グループとすることができる。したがって、クラウドコンピューティングゲートウェイ２３０は、例示的システム１００ａのクラウドコンピューティングゲートウェイ１３０に相当することができる。クラウドコンピューティングゲートウェイ２３０は、要求ハンドラ２３２、エージェント装置割当てストレージ２３４、モジュールインターフェース２３６、診断エンジン２３８、モジュール状態ストレージ２４０、および診断スケジュールストレージ２４２を含むことができる。クラウドコンピューティングゲートウェイ２３０の種々の構成要素は、上記に代えて、または上記に加えて、１つまたは複数のハードウェアモジュール２６０、２７０、２８０に存在する１つまたは複数のリソース割振り装置（図示せず）に配置してもよいことに留意されたい。
【００３３】
要求ハンドラ２３２は、エージェント装置に対する要求を受け取って処理するように構成されたハードウェアおよび／または機械可読の記憶媒体に記憶された実行可能命令を含むことができる。例えば、要求ハンドラ２３２は、新しいエージェント装置の確立を求める要求を、ネットワーク２２０を介してクライアント装置（図示せず）から受け取ることができる。その後、要求ハンドラは、新しいエージェント装置をホストするのに適当なモジュール２６０、２７０、２８０を決定し、次いでモジュールインターフェース２３６を介してモジュール２６０、２７０、２８０に存在するリソース割振り装置（図示せず）と通信して、新しいエージェント装置の確立を実施することができる。適当なモジュール２６０、２７０、２８０の選択は、少なくとも部分的に、モジュール状態ストレージ２４０に記憶されているモジュール２６０、２７０、２８０の現在の状態、サービスプランストレージ２５４に記憶されている要求元ユーザのサービスプラン、および／または新しいエージェント装置で実行しようとするアプリケーションの信頼性の要件に基づくことができる。新しいエージェント装置を確立する際、要求ハンドラ２３２は、要求元のクライアント装置と、エージェント装置と、そのエージェント装置に割り当てられる（１つまたは複数の）ハードウェアモジュールとの間の対応関係を反映するようにエージェント装置割当てストレージ２３４の内容を更新することもできる。
【００３４】
要求ハンドラ２３２は、クライアント装置（図示せず）とアクティブ状態のエージェント装置（図示せず）の間のメッセージの伝送等の追加的機能を行うことができる。そのような機能を実施するために、要求ハンドラ２３２は、エージェント装置割当てストレージ２３４に記憶されたデータを参照して、どのリソース割振り装置および／またはハードウェアモジュールがどのクライアント装置に関連付けられているかを判定することができる。要求ハンドラ２３２は、各クライアント装置（図示せず）のユーザが適切に課金されるように、エージェント装置の確立および使用状況に関するデータを課金プロセッサに転送することもできる。
【００３５】
エージェント装置割当てストレージ２３４は、エージェント装置を記述する情報を記憶することが可能な任意の機械可読媒体であってよい。したがって、エージェント装置割当てストレージ２３４は、読取専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置、および／または同様の記憶媒体等の機械可読の記憶媒体を含むことができる。各種実施形態で、エージェント装置割当てストレージ２３４は、各エージェント装置とそれに関連付けられたリソース割振り装置および／または（１つまたは複数の）ハードウェアモジュール間の対応関係を記憶することができる。
【００３６】
モジュールインターフェース２３６は、１つまたは複数のハードウェアモジュール２６０、２７０、２８０との通信を可能にするように構成されたハードウェアおよび／または機械可読の記憶媒体に符号化された実行可能命令を含むインターフェースとすることができる。各種実施形態で、モジュールインターフェース２３６は、Ｅｔｈｅｒｎｅｔ（登録商標）、ＰＣＩ、ＳＣＳＩ、ＡＴＡ、および／または他のハードウェアインターフェース技術を含むことができる。各種実施形態で、モジュールインターフェース２３６は、ブレードサーバのバックプレーンを含むことができる。
【００３７】
診断エンジン２３８は、ハードウェアモジュール２６０、２７０、２８０およびそのハードウェア部品２６２、２７２、２７４、２８６に各種診断の実行を実施して、それらハードウェア装置の現在の動作状態および／または故障率を計測するように構成されたハードウェアおよび／または機械可読の記憶媒体に記憶された実行可能命令を含むことができる。各種の例示的実施形態で、診断エンジン２３８（または図示しないクラウドコンピューティングゲートウェイ２３０の別の構成要素）は、そのような診断検査の結果を使用して、ハードウェア部品の摩耗の程度、および／またはハードウェアモジュールもしくは部品の残りの耐用寿命を評価することができる。そのような実施形態の一部では、診断エンジン２３８（または図示しないクラウドコンピューティングゲートウェイ２３０の別の構成要素）は、ハードウェアモジュールまたは部品の現在の寿命段階を推定することができる。
【００３８】
各種実施形態で、診断エンジン２３８は、診断スケジュールストレージ２４２に記憶されたスケジュールに基づいて、各ハードウェア部品２６２、２７２、２７４、２８６の検査を定期的に開始して、ハードウェア部品２６２、２７２、２７４、２８６の現在の故障率および／またはこれまでの故障率を求めることができる。例えば、診断エンジンは、該当するハードウェアモジュール２６０、２７０、２８０に存在するリソース割振り装置と通信して、ハードウェア部品に１つまたは複数の診断検査を実施するためにハードウェア部品を解放し、その後新しいエージェント装置を確立することができる。各種実施形態で、計画されたハードウェア部品の検査の頻度は部品の寿命中に変化してよい。推定された部品の残りの耐用寿命に基づいて、診断エンジン２３８は毎日、毎週、毎月等の検査を予定することができる。例えば、推定される残りの耐用寿命が比較的長い第１のハードウェア部品は毎月検査し、推定される残りの耐用寿命がそれより短い第２のハードウェア部品は、部品の信頼性が低下して使用を継続できなくなる時をより正確に予測するために毎週検査することができる。部品に診断検査を行った後、診断エンジン２３８は、モジュールインターフェース２３６を介して検査結果を受け取り、その後、検査したハードウェア部品の現在の状態を反映するようにモジュール状態ストレージ２４０を更新することができる。
【００３９】
モジュール状態ストレージ２４０は、ハードウェアモジュールおよびハードウェア部品に関連する状態情報を記憶することが可能な任意の機械可読の媒体である。したがって、モジュール状態ストレージ２４０は、読取専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置、および／または同様の記憶媒体等の機械可読の記憶媒体を含むことができる。各種実施形態で、モジュール状態ストレージ２４０は、エージェント装置割当てストレージ２３４と同一の装置とすることができる。
【００４０】
診断スケジュールストレージ２４２は、各種ハードウェア部品２６２、２７２、２７４、２８６をいつ検査するかを指定するスケジュール情報を記憶することが可能な任意の機械可読の媒体とすることができる。したがって、診断スケジュールストレージ２４２は、読取専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置、および／または同様の記憶媒体等の機械可読記憶媒体を含むことができる。各種実施形態で、診断スケジュールストレージ２４２は、エージェント装置割当てストレージ２３４および／またはモジュール状態ストレージ２４０と同じ装置とすることができる。
【００４１】
ハードウェアモジュール２６０、２７０、２８０は各々、例示的ハードウェアシステム２００で使用されるハードウェアリソースを提供するハードウェアモジュールとすることができる。ハードウェアモジュール２６０、２７０、２８０は、ハードウェアモジュールの３つの可能な異なる構成を例示している。当業者は、３つの可能性を例示するが、各種の代替の構成も存在しうることを理解されよう。さらに、３つのハードウェアモジュール２６０、２７０、２８０の一方で、ハードウェアシステム２００はそれよりも少ない、または多いハードウェアモジュールを含むことも可能である。
【００４２】
ハードウェアモジュールＡ  ２６０は同種型のハードウェアモジュールであってよい。すなわち、モジュールＡ  ２６０は、単一種類のハードウェア部品を含むことができる。図の例では、モジュールＡ  ２６０は１８個のプロセッサ２６２を含み、その他のハードウェア部品は含まない。本明細書で使用する場合、用語「ハードウェア部品」は、リソース割振り装置またはエージェント装置の一部として使用されるハードウェアリソース、または外部のクライアント装置による使用のためにその他の形で提供されるハードウェアリソースを提供する構成要素を指すことに留意されたい。したがって、モジュールＡ  ２６０は、例えばプロセッサ２６２を支援する電源や通信インターフェース等の追加的なハードウェアを含むことが可能であるが、そのようなハードウェアはハードウェア部品に相当しない。
【００４３】
プロセッサ２６２の１つまたは複数は、少なくとも一部が、リソース割振り装置（図示せず）に属することができる。先に説明したように、リソース割振り装置は、プロセッサ２６２の１つまたは複数を少なくとも部分的に含むいくつかのエージェント装置（図示せず）の管理を担うことができる。上記のように、モジュールＡ  ２６０  は同種型のモジュールとすることができる。そのため、プロセッサ２６２を利用するエージェント装置は、他のハードウェアモジュール（図示せず）に位置する他のハードウェア部品もさらに利用することができる。例えば、プロセッサ２６２の１つを利用するエージェント装置が、別のモジュール（図示せず）に搭載された主メモリ（図示せず）の一部分も利用することができる。
【００４４】
モジュールＢ  ２７０は、分離型の異種混成ハードウェアモジュールを例示する。図に示すように、モジュールＢ  ２７０は、１２個のプロセッサ２７２と３つのメモリバンク２７４を備える。モジュールＡ  ２６０と同様に、モジュールＢ  ２７０は、１つのリソース割振り装置と複数のエージェント装置をサポートすることができる。ただし、モジュールＢ  ２７０の場合は、各リソース割振り装置およびエージェント装置は、同じ物理モジュールから複数種類のハードウェアリソースを選ぶことができる。任意のプロセッサ２７２が任意のメモリバンク２７４を利用することができ、すなわち２つのリソースが切り離されている。ただし、効率的で効果的な使用を保証するために、リソース割振り装置は、１つまたは複数のプロセッサ２７２および１つまたは複数のメモリバンク２７４の特定の割当て分を各エージェント装置に割り当てる責任を負うことができる。
【００４５】
モジュールＣ  ２８０は、結合型の異種混成ハードウェアモジュールを例示する。図のように、モジュールＣ  ２８０は１８個の「演算コア」２８６を含む。各演算コア２８６は、共に１つの単位として働くように設計された複数のハードウェア装置を含むことができる。例えば、各演算コア２８６は、プロセッサおよびメモリバンク（図示せず）を含むことができる。そのため、各演算コアはハードウェア要素と呼ぶことができる。この場合も、１つのリソース割振り装置といくつかのエージェント装置が演算コア２８６を共有することができる。ただし、様々な種類のハードウェアリソースが密結合されているため、リソース割振り装置は、エージェント装置への多くの異なる種類のリソースの割当てを管理する必要はなく、代わりに、リソース割振り装置は単に、各エージェント装置に１つまたは複数のコンピュータコア２８６の割当て分を割り当てればよい。
【００４６】
各モジュール２６０、２７０、２８０は、残りのハードウェア部品が動作を続けている状態で任意の１つのハードウェア部品を非アクティブ状態または切り離された状態にできるように設計することができる。そのため、各モジュール２６０、２７０、２８０は、搭載された各ハードウェア部品への制御信号で遮断されることが可能な電源供給回路を含むことができる。そのような制御信号は、特定のハードウェア部品が故障したか、その他の理由でもはや使用可能でないと判断すると、リソース割振り装置、および／またはクラウドコンピューティングゲートウェイによってアサートすることができる。
【００４７】
図３は、ハードウェア部品の状態を監視する例示的方法３００を示す。説明のために、方法３００は、クラウドコンピューティングゲートウェイ２３０等のクラウドコンピューティングゲートウェイの構成要素によって行われるものと仮定する。ただし、例示的方法３００の様々なステップは、それに加えて、またはそれに代えて、リソース割振り装置１４０ａ−ｂ等のリソース割振り装置で行われてもよいことは理解されよう。
【００４８】
方法３００はステップ３０５で開始し、ステップ３１０に進んで、クラウドコンピューティングゲートウェイが検査する部品を特定することができる。例えば、クラウドコンピューティングゲートウェイは、診断スケジュールおよび現在の時間を参照して、現在検査が予定されている部品があるかどうかを判定することができる。次に、ステップ３１５で、クラウドコンピューティングゲートウェイは、検査する部品に関連付けられたリソース割振り装置を特定することができる。リソース割振り装置を特定すると、クラウドコンピューティングゲートウェイは、ステップ３２０で、部品に１つまたは複数の診断検査を行うようにリソース割振り装置に命令することができる。クラウドコンピューティングゲートウェイが検査のためにリソースを解放する際により能動的な役割を担う各種実施形態では、クラウドコンピューティングゲートウェイは、対象部品に対するスケジューリング作業を中止し、かつ／または現在のプロセスを対象部品から移し替えるようにリソース割振り装置に指示することができる。クラウドコンピューティングゲートウェイは、次いで、それぞれステップ３２５および３３０で診断検査の結果を受け取り、処理することができる。ステップ３３０は、当技術分野で知られる各種の「耐用寿命」の推定を行い、推定される残りの耐用寿命に基づいて管理措置をとる等の各種機能を含むことができる。そのような管理措置は、残りの耐用寿命に基づいてハードウェアモジュールまたは部品の動作パラメータを調整する、および／または残りの耐用寿命に基づいて新しいエージェント装置をハードウェアモジュールに割り当てることを含むことができる。各種実施形態で、クラウドコンピューティングゲートウェイは、この時点で、対象部品の利用を再開するようにリソース割振り装置に命令してもよい。方法３００は次いでステップ３３５で終了することができる。
【００４９】
図４は、稼働中のハードウェアモジュールのハードウェア部品に診断検査を行う例示的方法４００を示す図である。説明のために、方法４００は、リソース割振り装置１４０ａ−ｂ等のリソース割振り装置によって行われるものと仮定する。ただし、例示的方法４００の様々なステップは、それに加えて、またはそれに代えて、クラウドコンピューティングゲートウェイ２３０等のクラウドコンピューティングゲートウェイの構成要素によって行われてもよいことは理解されよう。
【００５０】
方法４００はステップ４０５で開始し、ステップ４１０に進み、リソース割振り装置が、クラウドコンピューティングゲートウェイ等の別の装置から命令を受け取って、ハードウェア部品に診断検査を行うことができる。あるいは、リソース割振り装置は、ハードウェア部品を今検査すべきことを知らせる診断スケジュールを含むこともできる。次に、ステップ４１５で、リソース割振り装置は、そのハードウェア部品を現在使用しているエージェント装置がないことを保証することにより、ハードウェア部品が検査のために解放されていることを保証することができる。本明細書で使用する場合、用語「保証する」は、必ずしもリソース割振り装置がハードウェア部品の解放に完全に成功することを意味しない場合もあることに留意されたい。各種実施形態で、リソース割振り装置は、そのハードウェア部品を現在使用しているエージェント装置がないことを保証することができず、そのような結果をもたらすための手順をとる場合もある。例えば、リソース割振り装置が１つまたは複数のエージェント装置を再設定することができない、かつ／またはエージェント装置をハードウェア部品から移し替える試みが失敗する場合がある。
【００５１】
各種実施形態で、リソース割振り装置は、対象ハードウェア部品に現在割り当てられているエージェント装置を、アクティブ状態を維持する他のハードウェア部品に稼働中に能動的に移し替えることにより、現在ハードウェア部品を使用しているエージェント装置がないことを保証することができる。他の実施形態では、リソース割振り装置は、単に、そのリソースを利用可能リソースプールから除去して、それによりそのハードウェア部品にさらにタスクが割り当てられることを回避する受動的な方式をとってハードウェア部品を現在使用しているエージェント装置がないことを保証することができる。そして、リソース割振り装置は、エージェント装置に関連付けられたプロセスが通常の動作に従って完了するか、または他の形でハードウェア部品の利用をやめる際にハードウェア部品を監視することができる。ハードウェア部品が解放されると、方法４００はステップ４２０に進むことができる。
【００５２】
ステップ４２０で、リソース割振り装置は、解放された部品に診断検査を開始することができる。ハードウェア部品に診断検査を行う各種方法は当業者に明らかであろう。各種実施形態で、リソース割振り装置は、診断検査を行うためにハードウェア部品に割り当てられた新しいエージェント装置を開始することができる。診断検査が開始されると、方法４００はステップ４２５に進むことができる。
【００５３】
この時点で、リソース割振り装置は診断検査の進行を監視し始めることができる。ステップ４２５で、リソース割振り装置は、診断検査が終了したかどうかを判定することができる。例えば、リソース割振り装置は、診断検査を実行しているエージェント装置をポーリングする、または自身が検査結果を受け取ったかどうかを判定することができる。診断検査が終了していない場合、方法４００はステップ４３０に進み、リソース割振り装置は、当該ハードウェアモジュールの現在の利用負荷がモジュールの現在の能力の限界を超えているかどうかを判定する。リソース割振り装置は、例えばアクティブである各ハードウェア部品の事前定義された能力の限界を評価することにより、現在の能力の限界を判定することができる。現在の能力の限界は、そのような事前定義された各能力限界を加算することにより求めることができる。あるいは、リソース割振り装置は、単に、モジュール単位の事前定義された能力の限界を含んでもよい。そのような実施形態では、現在の能力の限界は、単にそのモジュールの事前定義された能力の限界となる。現在の負荷が現在の能力の限界を超えている場合、リソース割振り装置はステップ４３５で診断検査を中断して、現在の負荷を処理するためにハードウェアモジュールの能力を増大させることができる。一方、利用負荷が現在の能力の限界を超えていない場合、方法４００は、ループしてステップ４３０からステップ４２５に戻ることができる。
【００５４】
診断検査が終了すると、方法４００は、ステップ４２５からステップ４４０に進み、リソース割振り装置は診断検査の結果をクラウドコンピューティングゲートウェイ等の別の装置に返すことができる。最後に、ステップ４４５で、リソース割振り装置は、エージェント装置のためにハードウェア部品を利用することにより、ハードウェア部品を通常の動作に戻す。例えば、リソース割振り装置は、ハードウェア部品を利用可能リソースプールに戻す、かつ／または復帰したハードウェア部品に１つまたは複数のエージェント装置を稼働中に移すことができる。次いで方法４００はステップ４５０で終了することができる。
【００５５】
前述により、各種実施形態は、システム全体の信頼性に影響を及ぼすことなく、各種ハードウェア部品に広範な診断検査を行うことを可能にする。詳細には、ハードウェア部品が他のエージェント装置に使用されていないことを保証することにより、モジュール全体をオフライン状態にすることなく部品を徹底的に検査することができる。
【００５６】
前述の説明から、本発明の各種の例示的実施形態は、ハードウェアおよび／またはファームウェアとして実施できることが明らかであろう。さらに、各種の例示的実施形態は、機械可読の記憶媒体に記憶された命令として実施し、それを少なくとも１つのプロセッサで読み取って実行することにより、本明細書に詳細に記載される動作を行うことができる。機械可読の記憶媒体は、パーソナルコンピュータもしくはラップトップコンピュータ、サーバ、または他のコンピューティング装置等の機械により読み取ることが可能な形態で情報を記憶する任意の機構を含むことができる。したがって、有形で持続性の機械可読記憶媒体は、読取専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置、および同様の記憶媒体を含むことができる。
【００５７】
当業者には、本明細書中のブロック図は、本発明の原理を実施する例示的な回路の概念図を表すことが理解されよう。同様に、フローチャート、流れ図、状態遷移図、疑似コード等は、実際には機械可読媒体に表され、したがってコンピュータやプロセッサによって実行することが可能な各種処理を表し、そのようなコンピュータやプロセッサは明示的に図示される場合もされない場合もあることが理解されよう。
【００５８】
各種の例示的実施形態について、特定の例示的態様を参照して詳細に説明したが、本発明は他の実施形態も可能であり、その詳細は様々な自明な点で変更可能であることを理解されたい。当業者には容易に明らかになるように、本発明の主旨および範囲内で変形および変更を実施することができる。したがって、前述の開示、説明、および図は説明を目的とするものにすぎず、特許請求の範囲のみで定義される本発明を何ら限定するものではない。
【図１ａ】
2014531691.tif 000003
【図１ｂ】
2014531691.tif 000004
【図１ｃ】
2014531691.tif 000005
【図２−１】
2014531691.tif 000006
【図２−２】
2014531691.tif 000007
【図３】
2014531691.tif 000008
【図４】
2014531691.tif 000009
【国際調査報告】
2014531691.tif 000010
2014531691.tif 000011