(57)【要約】      （修正有）【課題】動的にサーバーの電力制限（ｐｏｗｅｒ  ｃａｐｐｉｎｇ）を行う技術を提供する。【解決手段】サーバー群について第１の電力リミットを得る工程と、第１の電力リミットに基づいて第１の閾値を計算し、第１の閾値が第１の電力リミットよりも小さい場合、サーバー群の消費電力が第１の閾値をこえるかどうか判断する工程と、サーバー群の消費電力が第１の閾値をこえるときに、サーバー群を電力制限モードに移行させる工程と、を含む。サーバーが電力制限される電力の量は、ラックまたはデータセンター中の電力制限されたサーバーに分配するのに利用可能な任意の電力の量と、データセンターまたはラック中の他のサーバーに対比してサーバーが消費する電力の量と、に基づいて、動的に決定される。【選択図】図４
2016157443.tif 000002
【特許請求の範囲】
【請求項１】
サーバー群について第１の電力リミットを得る工程と、
前記第１の電力リミットに基づいて第１の閾値を計算する工程であって、前記第１の閾値が前記第１の電力リミットよりも小さい工程と、
前記サーバー群の消費電力が前記第１の閾値をこえるかどうか判断する工程と、
前記サーバー群の前記消費電力が前記第１の閾値をこえるときに、前記サーバー群を電力制限モードに移行させる工程と、
を含む方法。
【請求項２】
前記サーバー群が利用可能な任意の電力量を決定する工程と、
前記サーバー群中の特定のサーバーについて電力制限が有効にされたかどうか判断する工程と、
前記任意の電力量の一部を前記特定のサーバーに割り当てる工程と、
をさらに含む請求項１に記載の方法。
【請求項３】
前記特定のサーバーの消費電力に基づいて前記任意の電力量の前記一部を前記特定のサーバーに割り当てる請求項２に記載の方法。
【請求項４】
前記サーバー群中の他の電力制限されたサーバーの総消費電力に対する前記特定のサーバーの消費電力に基づいて前記任意の電力量の前記一部を前記特定のサーバーに割り当てる請求項２に記載の方法。
【請求項５】
前記任意の電力量の前記割り当てられた一部が、前記特定のサーバーについての消費電力リミットである請求項２に記載の方法。
【請求項６】
前記消費電力リミットを前記特定のサーバーに送る工程をさらに含み、前記特定のサーバーが前記消費電力リミットにより設定されるよりも少ない電力を消費するように、前記特定のサーバーの動作パラメータが調整される請求項５に記載の方法。
【請求項７】
前記サーバー群の消費電力を監視する工程と、
前記消費電力が第２の閾値を下回るかどうか判断する工程と、
前記サーバー群の前記消費電力が前記第２の閾値を下回るとき、前記サーバー群に電力制限モードを終了させる工程と、
をさらに含む請求項１に記載の方法。
【請求項８】
１つまたはそれ以上のプロセッサによって実行されると、
前記１つまたはそれ以上のプロセッサが請求項１〜７の何れかに記載の方法におけるステップを実行するようにする１つまたはそれ以上の命令のシーケンスを含む非一時的なコンピュータ可読媒体。
【請求項９】
１つまたはそれ以上のプロセッサと、
前記１つまたはそれ以上のプロセッサにより実行されると、前記１つまたはそれ以上のプロセッサが請求項１〜７の何れかに記載の方法におけるステップを実行するようにする１つまたはそれ以上の命令のシーケンスを含む非一時的なコンピュータ可読媒体と、
を含むシステム。
【発明の詳細な説明】
【発明の属する技術分野】
【０００１】
本発明は概してサーバーの電力管理に関する。
【背景技術】
【０００２】
データセンターは複数のサーバーのラックからなっていることが多い。サーバーラックは、ラック中のサーバーに、最大の電力量になるまで安全に電力を供給することのできる電源ユニットを備えて構成されている。電源ユニットのうちの１つが故障すると、電源ユニットによって安全に供給され得る最大の電力量が減少し得る。サーバーが、動作中の電源ユニットにより安全に供給され得る最大の電力量よりも多く電力を引き出すと、動作中の電源ユニットが故障する、および／またはラック中のサーバーが損傷する可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
動的にサーバーの電力制限（ｐｏｗｅｒ  ｃａｐｐｉｎｇ）を行う技術を提供する。
【課題を解決するための手段】
【０００４】
いくつかの実施形態において、システム管理者はデータセンターまたはサーバーのラックについて最大の電力量を設定する（ｓｐｅｃｉｆｙ）ことができる。データセンターまたはラックが電力の閾値量より多く電力を消費すると、データセンターまたはラックは電力制限（ｐｏｗｅｒ  ｃａｐｐｉｎｇ）モードに入り得る。電力制限モードに入ると、データセンターまたはラック中のサーバーは電力制限され得る。サーバーが電力制限される電力の量は、ラックまたはデータセンター中の電力制限されたサーバーに分配するのに利用可能な任意の電力（ｄｉｓｃｒｅｔｉｏｎａｒｙ  ｐｏｗｅｒ）の量と、データセンターまたはラック中の他のサーバーに対比してサーバーが消費する電力の量とに基づいて、動的に決定され得る。データセンターまたはラックにおける消費電力が閾値レベルを下回ると、データセンターまたはラックに対する電力制限は無効になり得る。
【発明の効果】
【０００５】
特定の実施形態は少なくとも次の利点を提供する。つまり、データセンターまたはラックが所定の警告閾値以下で動作しているときは、データセンターまたはラックにおける個々のサーバーは最大電力で動作することができる。データセンターまたはラックが電力制限モードに入ると、データセンターまたはラックにおけるサーバーは過度に電力を引き出せないようになり、電源ユニットの故障を引き起こすことが防がれる。電力制限モードは自動的に有効とされ得る。データセンターまたはラックにおける各サーバーについて電力制限の電力レベルが自動的に決定され設定され得る。
【図面の簡単な説明】
【０００６】
１つまたはそれ以上の実施形態の詳細が、添付の図面および以下の説明に示される。その他の特徴、態様、および潜在的な利点は、これら説明および図面、ならびに特許請求の範囲から明らかとなるであろう。
【０００７】
【図１】データセンターの消費電力を管理するための例示的なシステムを示している。
【図２】サーバーラックの消費電力を管理するためのシステムを示している。
【図３】データセンターの消費電力を管理するための例示的なグラフィカルユーザーインターフェースを示している。
【図４】動的サーバー電力制限の例示的なプロセスを示している。
【図５】図１〜４の特徴およびプロセスを実施する例示的なシステムアーキテクチャのブロック図である。
【０００８】
各図における類似する参照符号は類似する構成要素を示す。
【発明を実施するための形態】
【０００９】
図１は、データセンターの消費電力を管理するための例示的なシステム１００を示している。例えば、システム１００は、システム管理者がサーバー管理ソフトウェア１０２を用いデータセンターまたはサーバーラックにおいてサーバー電力制限（ｐｏｗｅｒ ｃａｐｐｉｎｇ）を設定（ｃｏｎｆｉｇｕｒｅ）することのできるメカニズムを提供できる。
【００１０】
いくつかの実施形態においてシステム１００は管理装置１０４を含み得る。例えば、管理装置１０４はラップトップコンピュータ、デスクトップコンピュータ、タブレットデバイスまたはその他の携帯用デバイス（例えばスマートフォン）であってよい。管理装置１０４は管理ソフトウェア１０２を備えて構成されていてよい。いくつかの実施形態において、サーバーまたはデータセンター管理者は、管理ソフトウェア１０２とやりとりして、データセンター１１０および／またはサーバーラック１２０、１３０、および１４０について電力制限パラメータを設定することができる。例えば、データセンター１１０は、１つまたはそれ以上のラック１２０、１３０および／または１４０に編成されたサーバーの群に対応するものであり得る。ラック１２０、１３０および／または１４０は、下記に詳述するように、１つまたはそれ以上のサーバー、電源ユニット、スイッチ、および／またはラック管理コントローラを含み得る。サーバーのラックは、データセンターのサーバーのサブグループまたはサブセットと見なすことができる。
【００１１】
いくつかの実施形態では、管理装置１０４は、ネットワーク１０６を介して電力制限パラメータをデータセンター１１０および／またはサーバーラック１２０、１３０および１４０に送ることができる。例えば、ネットワーク１０６はローカルエリアネットワーク、広域ネットワーク、またはインターネットであり得る。電力制限パラメータには、例えば、データセンター１１０に対する電力リミット、サーバーラック１２０、１３０および／もしくは１４０に対する電力リミット、またはサーバーラック中の１つもしくそれ以上のサーバー（例としてサーバー１２４）に対する電力リミットが含まれ得る。
【００１２】
いくつかの実施形態において、データセンター、サーバーラック、および／または個々のサーバーは、サーバー管理者が設定した電力制限パラメータに基づいて、自動的に電力制限モードに移行することができる。例えば、システム管理者があるサーバー群（例えばデータセンター、ラックなど）について電力リミットを設定している場合、当該サーバー群の総消費電力が設定された電力リミットに近付くと（例えば設定された電力リミットの閾値パーセンテージをこえると）、当該サーバー群について電力制限モードが動的に開始され得る（例えば、電力制限モードに移行、電力制限モードが始まる）。サーバー群の総消費電力がサーバー群について設定された電力リミットの閾値量を下回ると、当該サーバー群についての電力制限モードは動的に終了し得る（例えば、電力制限モードが終わる、取り消される）。個々のサーバーそれぞれについての電力制限は、サーバー群における他のサーバーに対比しての、当該個々のサーバーの所要電力（ｐｏｗｅｒ  ｒｅｑｕｉｒｅｍｅｎｔｓ）に基づいて動的に調整することが可能である。これについては以下により詳しく述べる。
【００１３】
いくつかの実施形態において、システム１００はデータセンター１１０を含み得る。例えば、データセンター１１０はサーバーラック１２０、１３０および／または１４０を含み得る。サーバーラック１２０は複数のサーバー１２４を含み得る。サーバーラック１２０はパワーシェルフ（ｐｏｗｅｒ  ｓｈｅｌｆ）１２２を含み得る。パワーシェルフ１２２は１つまたはそれ以上の電源ユニットを含み得る。パワーシェルフ１２２は、下記するように、ラック管理コントローラを含み得る。
【００１４】
いくつかの実施形態において、サーバー管理者は、管理ソフトウェア１０２を用い、データセンター１１０の電力制限パラメータを設定することができる。例えば、サーバー管理者は、管理ソフトウェア１０２のグラフィカルユーザーインターフェース（図３）を介して、データセンター１１０の電力リミット（例えば、最大電力定格、消費電力リミットなど）を設定することができる。
【００１５】
いくつかの実施形態において、管理ソフトウェア１０２は各サーバーラック１２０、１３０および１４０から使用電力統計値（ｐｏｗｅｒ  ｕｓａｇｅ  ｓｔａｔｉｓｔｉｃｓ）を受け取ることができる。例えば、各ラック１２０、１３０および１４０におけるラック管理コントローラは、各ラックの電力使用を監視し、消費電力メトリクス（ｐｏｗｅｒ ｃｏｎｓｕｍｐｔｉｏｎ  ｍｅｔｒｉｃｓ）を管理ソフトウェア１０２に報告することができる。例えば、管理ソフトウェア１０２は、ネットワーク接続を介しラック管理コントローラに接続されて、ラック管理コントローラから消費電力メトリクスを受け取ることができる。
【００１６】
いくつかの実施形態において、管理ソフトウェア１０２は、各ラックの消費電力をデータセンター１１０について設定された電力リミットと比較することができる。例えば、管理ソフトウェア１０２は、各ラックについて受け取った消費電力メトリクスの総計を計算して、データセンター１１０の総消費電力を決定することができる。データセンター１１０の総消費電力が閾値（例えば設定されたデータセンターの電力リミットの９０％）よりも大きい場合、管理ソフトウェア１０２はデータセンター１１０を電力制限モードに移行させ得る。管理ソフトウェア１０２はデータセンター１１０の総消費電力を監視すると共に、データセンターの総消費電力が閾値（例えば設定されたデータセンターの電力リミットの７０％）を下回るときに、データセンター１１０に電力制限モードを終了させる。例えば、いつデータセンター１１０の電力制限モードを開始および終了するかを決定するのに、異なる閾値を用いることができる。
【００１７】
いくつかの実施形態において、管理ソフトウェア１０２は、データセンター１１０中のサーバーラック１２０、１３０および／または１４０についての電力制限リミットを自動的に決定することができる。例えば、管理ソフトウェア１０２は、データセンター１１０が電力制限モードにあるときに、ラックの消費電力リミットを設定することによってデータセンター１１０におけるラックの消費電力を制限することができる。
【００１８】
いくつかの実施形態において、データセンター１１０におけるサーバーラック１２０、１３０、および／または１４０の電力制限リミットを決めるのに、管理ソフトウェア１０２は、データセンター１１０が利用可能な任意の電力（ｄｉｓｃｒｅｔｉｏｎａｒｙ  ｐｏｗｅｒ）の量を決定することができる。任意のデータセンターの電力は、例えば、電力制限が有効となったデータセンター１１０中のサーバーラックに分配され得る電力の量に対応していてよい。例えば、サーバーラック１４０が電力制限されていないときに、サーバーラック１２０およびサーバーラック１３０は電力制限が有効となり得る。サーバーラック１４０は電力制限されていないため、サーバーラック１４０は、いかなる人為的なリミット（例えば制限（ｃａｐ））もなしに、データセンターから必要なだけ電力を引き出すことができるであろう。
【００１９】
いくつかの実施形態において、任意のデータセンター電力（ｄｄｃＰｏｗｅｒ）は、データセンターに対し管理者が設定した電力リミット（ｄｃＬｉｍｉｔ）から、非制限（ｎｏｎ−ｃａｐｐｅｄ）ラック、例えば電力制限が無効となっている（ｄｉｓａｂｌｅｄ）ラック（例えばラック１４０）の消費電力（ｎＲａｃｋｓ）と、現在電源オフとなっているラックの予期される消費電力（ｏＲａｃｋｓ）とを引くことによって算出され得る（例えばｄｄｃＰｏｗｅｒ．＝ｄｃＬｉｍｉｔ−（ｎＲａｃｋｓ＋ｏＲａｃｋｓ））。任意のデータセンター電力の計算には電源オフのラックも含めなくてはならない。それらラックは、後に電源オンとなるときに、電力制限されないかもしれないからである。
【００２０】
いくつかの実施形態において、管理ソフトウェア１０２は、任意のデータセンター電力を、電力制限されたラック（例えばラック１２０、ラック１３０）に分配することができる。例えば、管理ソフトウェア１０２は、データセンター１１０中の各電力制限されたラックの相対的な消費電力に基づいて、各電力制限されたラックの電力リミット（ｒＬｉｍｉｔ）を決めることができる。任意のデータセンター電力は、例えば、データセンター１１０中の電力制限されたラックの総消費電力に対する、電力制限されたラックの消費電力の比率に基づいて分配され得る。
【００２１】
いくつかの実施形態において、管理ソフトウェア１０２はラック１２０の最大消電力を決定することができる。最大消費電力（ｒＰｏｗｅｒＣｏｎｓｕｍｐｔｉｏｎ）は、経験的データ（ｅｍｐｉｒｉｃａｌ  ｄａｔａ）に基づいて決定され得る。例えば、管理ソフトウェア１０２は、長い期間をかけてラック１２０から消費電力メトリクスを収集し（例えば履歴データ（ｈｉｓｔｏｒｉｃａｌ  ｄａｔａ））、収集したメトリクスに基づいて、過去の（ｈｉｓｔｏｒｉｃａｌ）消費電力の平均を算出する、または収集された最高の消費電力メトリクスを判断することができる。最大消費電力はラックおよび／またはその中のサーバーの仕様に基づいて設定され得る。最大消費電力は管理者により設定される値（ａｄｍｉｎｉｓｔｒａｔｏｒ−ｓｐｅｃｉｆｉｅｄ  ｖａｌｕｅ）であってよい。
【００２２】
いくつかの実施形態において、管理ソフトウェア１０２は、データセンター１１０における全ての電力制限されたラックの最大消費電力を決定することができる。例えば、管理ソフトウェア１０２は、データセンター１１０における全ての電力制限されたラックについての最大消費電力値の総計を計算する（例えば合計する）ことで、データセンター１１０における電力制限されたラックの総消費電力（ｔｄｃＰｏｗｅｒＣｏｎｓｕｍｐｔｉｏｎ）を決定することができる。
【００２３】
いくつかの実施形態において、管理ソフトウェア１０２は、任意のデータセンター電力（ｄｄｃＰｏｗｅｒ）に、総データセンター消費電力（ｔｄｃＰｏｗｅｒＣｏｎｓｕｍｐｔｉｏｎ）に対するラック１２０消費電力（ｒＰｏｗｅｒＣｏｎｓｕｍｐｔｉｏｎ）の割合を掛けることにより、ラック１２０の電力制限リミット（ｒＬｉｍｉｔ）を決定することができる。例えば、管理ソフトウェアは、ｒＬｉｍｉｔ＝ｄｄｃＰｏｗｅｒ＊（ｒＰｏｗｅｒＣｏｎｓｕｍｐｔｉｏｎ／ｔｄｃＰｏｗｅｒＣｏｎｓｕｍｐｔｉｏｎ）を計算することによって、ラック電力リミットを決定することができる。
【００２４】
いくつかの実施形態において、ラック１２０の電力制限リミットが算出されたら、管理ソフトウェア１０２はラック１２０に電力制限リミットを送ることができる。例えば、管理ソフトウェア１０２は、ラック１２０のラック管理コントローラに電力制限リミットを送ることができる。いくつかの実施形態では、ラック１２０は、管理ソフトウェア１０２によって計算されたラック電力リミットに基づき、自動的に消費電力を管理することができる。例えば、ラック１２０のラック管理コントローラは、後述する電力制限技術を用いてラック１２０の消費電力を管理することができる。
【００２５】
図２は、サーバーラックの消費電力を管理するためのシステム２００を示している。システム２００は、上述したシステム１００の追加的な詳細を説明するものである。いくつかの実施形態において、管理ソフトウェア１０２はラック電力制限リミット（ｒＬｉｍｉｔ）をラック１２０に送ることができる。例えば、上述したように、データセンターの電力制限が実行されているとき、管理ソフトウェア１０２は自動的にラック電力制限リミットを決定することができる。管理ソフトウェア１０２は、ラック１２０の電力制限リミットを設定するサーバー管理者から入力を受信することができる。
【００２６】
いくつかの実施形態において、管理ソフトウェア１０２は、ラック１２０のラック電力制限リミットをラック管理コントローラ（ＲＭＣ）２０４に送ることができる。例えば、ＲＭＣ２０４は、ラック１２０の各種機能を監視および制御するように構成されたラックレベルプロセッサ（ｒａｃｋ−ｌｅｖｅｌ  ｐｒｏｃｅｓｓｏｒ）であり得る。例えば、ＲＭＣ２０４は、ラック１２０のパワーシェルフ１２２内に収納されていてよい。ＲＭＣ２０４は、電源ユニット２０４の健康状態を監視し、バックアップバッテリユニット（図示せず）をオンにすることによって電源異常を軽減することができる。ＲＭＣ２０４はラック１２０内の温度を監視し、ファンをオンにし、サーバーをオフにする、または消費電力を調整することで温度を下げると共にコンポーネントを保護することができる。
【００２７】
いくつかの実施形態において、ＲＭＣ２０４はサーバー２１０および２２０の消費電力を監視することができる。例えば、ＲＭＣ２０４はサーバー２１０のサービスコントローラ（ＳＣ）２１４およびサーバー２２０のサービスコントローラ（ＳＣ）２２４と通信可能に（ｃｏｍｍｕｎｉｃａｔｉｖｅｌｙ）接続され得る。サービスコントローラ２１４およびサービスコントローラ２２４は例えばベースボード管理コントローラ（ＢＭＣ）またはマネジメントエンジン（ＭＥ）であってよい。サービスコントローラ２１４および２２４は、既知のメカニズムを用い、サーバーの２１０および２２０の消費電力を監視することができる。ＲＭＣ２０４はサービスコントローラから周期的に消費電力メトリクスを取得することができ、これによりＲＭＣ２０４はサーバー２１０および２２０の消費電力を監視し、ラック１２０の消費電力を管理できるようになる。ＲＭＣ２０４は消費電力メトリクスを順次、管理ソフトウェア１０２に送ることができ、これによってサーバー管理者がサーバーの消費電力を監視し、電力制限ポリシー（ｐｏｌｉｃｉｅｓ）を実行できるようになる。
【００２８】
いくつかの実施形態において、ＲＭＣ２０４はサーバー２１０および２２０の消費電力を、管理ソフトウェア１０２から受け取ったラック電力制限リミット（ｒＬｉｍｉｔ）と比較して、ラック１２０の電力制限モードをいつ開始するかを決定することができる。例えば、ＲＭＣ２０４は、各サーバー２１０、２２０の消費電力を、ラック１２０について管理ソフトウェア１０２が設定した電力リミットと比較することができる。ＲＭＣ２０４は、ラック１２０中の各サーバー２１０および２２０についてサービスコントローラ２１４およびサービスコントローラ２２４から受け取った消費電力メトリクスを合計して、ラック１２０の総消費電力を決定することができる。ラック１２０の総消費電力は、例えば、ラック１２０中の全てのサーバーの消費電力を合計する（例えば総計する（ｓｕｍｍｉｎｇ、ｔｏｔａｌｉｎｇ）ことによって算出され得る。ラック１２０の総消費電力が閾値（例えば設定されたラック電力リミットの９０％）よりも大きい場合、ＲＭＣ２０４は、ラック１２０の電力制限モードに自動的に移行することができる。ＲＭＣ２０４はラック１２０の総消費電力を監視すると共に、ラック１２０の総消費電力が閾値（例えば設定されたラック電力リミットの７０％）を下回ると、ラック１２０の電力制限モードを終了することができる。例えば、いつラック１２０の電力制限モードに移行するか、およびいつラック１２０の電力制限モードを終了するかを、異なる閾値を用いて決定することができる。
【００２９】
いくつかの実施形態において、ＲＭＣ２０４は、ラック１２０が電力制限モードにあるときに、ラック１２０中のサーバー２１０および２２０について電力制限リミットを自動的に決定することができる。例えば、ＲＭＣ２０４は、ラック１２０が電力制限モードにあるときに、サーバーの消費電力リミットを設定することによって、ラック１２０中のサーバーの消費電力を制限することができる。ラック１２０中のサーバー２１０および２２０の電力制限リミットを決定するのに、ＲＭＣ２０４は、ラック１２０が利用可能な任意の電力の量を決定することができる。任意のラック電力は、例えば、電力制限が有効とされたラック１２０中のサーバーに分配され得る電力の量に対応し得る。
【００３０】
いくつかの実施形態において、任意のラック電力（ｄｒＰｏｗｅｒ）は、ラック１２０について管理者または管理ソフトウェア１０２が設定した電力リミット（ｒＬｉｍｉｔ）から、非キャップサーバー、例えば電力制限が無効となっているサーバーの消費電力（ｎＳｅｒｖｅｒｓ）と、現在電源オフとなっているサーバーの予期される消費電力（ｏＳｅｒｖｅｒｓ）とを引くことによって算出することができる（例えば、ｄｒＰｏｗｅｒ．＝ｒＬｉｍｉｔ−（ｎＳｅｒｖｅｒｓ＋ｏＳｅｒｖｅｒｓ））。任意のラック電力の計算には電源オフのサーバーも含めなくてはならない。それらサーバーは、電源オンのときに電力制限されないかもしれず、故にシステムから過度の電力を引き出す可能性があるからである。
【００３１】
いくつかの実施形態において、ＲＭＣ２０４は、電力制限されたサーバーに任意のラック電力を分配することができる。例えば、ＲＭＣ２０４は、ラック１２０中の各電力制限されたサーバーの相対的な消費電力に基づいて、各電力制限されたサーバーの電力リミット（ｓＬｉｍｉｔ）を決定することができる。任意のラック電力は、ラック１２０中の電力制限されたサーバーの総消費電力に対する電力制限されたサーバーの消費電力の比率に基づいて、電力制限されたサーバーに分配され得る。サーバーの電力リミット（ｓＬｉｍｉｔ）は、サーバーに分配される任意のラック電力の比例量（ｐｒｏｐｏｒｔｉｏｎａｌ  ａｍｏｕｎｔ）であり得る。
【００３２】
いくつかの実施形態において、ＲＭＣ２０４はサーバー２１０の最大消費電力を決定することができる。サーバー２１０の最大消費電力（ｓＰｏｗｅｒＣｏｎｓｕｍｐｔｉｏｎ）は経験的データ（ｅｍｐｉｒｉｃａｌ  ｄａｔａ）に基づくものであり得る。例えば、ＲＭＣ２０４は、長い期間をかけて、サービスコントローラ２１４およびサービスコントローラ２２４から消費電力メトリクス（履歴データ（ｈｉｓｔｏｒｉｃａｌ  ｄａｔａ））を収集することができる。ＲＭＣ２０４は、過去の（ｈｉｓｔｏｒｉｃａｌ）消費電力の平均を算出することによって、最大消費電力を決定することができる。ＲＭＣは、収集された消費電力メトリクス中から最大消費電力メトリックを判断することによって、最大消費電力を決定することができる。サーバー２１０の最大消費電力はサーバーの仕様および／またはその中のＣＰＵの仕様に基づくものであり得る。サーバー２１０の最大消費電力は管理者により設定される値であってよい。
【００３３】
いくつかの実施形態において、ＲＭＣ２０４は、ラック１２０中の全ての電力制限されたサーバーの最大消費電力を決定することができる。例えば、ＲＭＣ２０４は、ラック１２０中の全ての電力制限されたサーバーの最大消費電力値を合計し（例えば総計し）、ラック１２０中の電力制限されたサーバーの総消費電力（ｔｒＰｏｗｅｒＣｏｎｓｕｍｐｔｉｏｎ）を決定することができる。
【００３４】
いくつかの実施形態において、ＲＭＣ２０４は、任意のラック電力（ｄｒＰｏｗｅｒ）に、総ラック消費電力（ｔｒＰｏｗｅｒＣｏｎｓｕｍｐｔｉｏｎ）に対するサーバー２１０の消費電力（ｓＰｏｗｅｒＣｏｎｓｕｍｐｔｉｏｎ）の割合を掛けることによって、サーバー２１０の電力制限リミット（ｓＬｉｍｉｔ）を決定することができる。例えば、ＲＭＣ２０４は、ｓＬｉｍｉｔ＝ｄｓＰｏｗｅｒ＊（ｓＰｏｗｅｒＣｏｎｓｕｍｐｔｉｏｎ／ｔｒＰｏｗｅｒＣｏｎｓｕｍｐｔｉｏｎ）を計算することにより、サーバーの電力リミットを決定することができる。
【００３５】
いくつかの実施形態において、サーバー２１０の電力制限リミットが算出されると、ＲＭＣ２０４は電力制限リミットをサーバー２１０に送ることができる。例えば、ＲＭＣ２０４は電力制限リミットをサーバー２１０のサービスコントローラ２１４に送ることができる。次いで、サービスコントローラ２１４は、サーバー２１０について設定された電力制限リミット以上の電力をサーバーが消費しないように、サーバー２１０の各種コンポーネント（例えばＣＰＵ２１２）を調整することができる。いくつかの実施形態において、サービスコントローラ２１４は、ＲＭＣ２０４によって算出されたサーバー電力リミットに基づいて、サーバー２１０の消費電力を自動的に管理することができる。例えば、サービスコントローラ２１４は、ＣＰＵ２１２の設定（ｃｏｎｆｉｇｕｒａｔｉｏｎ）（例えば、ｐ状態（ｐ−ｓｔａｔｅ）、電力状態、動作状態、動作周波数）を調整して、ＣＰＵ２１２が動作する周波数を低減することにより、サーバー２１０により消費される電力の量を減らすことができる。
【００３６】
サーバー２１０と類似する方式で、サーバー２２０についてＲＭＣ２０４により電力制限リミットが算出され得る。例えば、ＲＭＣ２０４は電力制限リミットをサービスコントローラ２２４に送ることができ、サービスコントローラ２２４は、サーバー２２０がＲＭＣにより設定される電力制限リミットよりも少ない電力を消費するよう、サーバー２２０の各種コンポーネント（例えばＣＰＵ２２２）を調整することができる。サービスコントローラ２２４は、ＲＭＣ２０４により算出されたサーバー電力リミットに基づいて、サーバー２２０の消費電力を自動的に管理することができる。例えば、サービスコントローラ２２４は、ＣＰＵ２２２の設定（例えばｐ状態）を調整して、ＣＰＵ２２２が動作する周波数を低減することにより、サーバー２２０によって消費される電力の量を減らすことができる。
【００３７】
いくつかの実施形態において、管理ソフトウェア１０２は上述したＲＭＣ２０４の機能を実行することができる。例えば、ラック１２０はＲＭＣ２０４を含まなくてもよい。よって、いくつかの実施形態において管理ソフトウェア１０２は、図２およびＲＭＣ２０４に関して上に述べたように、サービスコントローラ２１４および２２４から直接に電力消費メトリクスを受け取り、サーバー２１０および２２０の電力制限リミットを決定し、かつ決定された電力制限リミットをサービスコントローラ２１４および２２４に伝達することができる。
【００３８】
図３は、データセンターの消費電力を管理するのに用いる例示的なグラフィカルユーザーインターフェース（ＧＵＩ）３００を示している。例えば、上述したように、ＧＵＩ３００は管理ソフトウェア１０２のインターフェースであり得る。サーバー管理者は入力をＧＵＩ３００に提供して、データセンター、ラックおよび／またはサーバーについて電力制限を有効にすることができる。上述のように、サーバー管理者は入力をＧＵＩ３００に提供して、データセンター、ラックおよびサーバーの電力制限を実行するのに用いられることとなるデータセンターおよびラックの消費電力リミットを設定することができる。
【００３９】
いくつかの実施形態において、ＧＵＩ３００は、データセンターにおいて電力制限を有効にするのに用いられるグラフィカルエレメント３０２を含み得る。例えば、サーバー管理者（つまりユーザー）は、グラフィカルエレメント３０２を選択して、データセンター１１０における電力制限を有効または無効にすることができる。ＧＵＩ３００は、データセンター１１０の電力リミットを設定するのに用いられるグラフィカルエレメント３０４を含み得る。例えば、サーバー管理者は、グラフィカルエレメント３０４（例えばプルダウンメニュー、リストなど）から、データセンターがこえることのできない消費電力の量を示す値を選択することができる。サーバー管理者は、最大電力値を示すグラフィカルエレメント３０４中にテキストを入力することができる。データセンター１１０において電力制限が有効となっているときに、データセンターの消費電力が閾値（例えばデータセンターの電力リミットの９０％）をこえると、データセンター１１０は電力制限モードに移行することとなる。データセンターの消費電力が閾値（例えばデータセンターの電力リミットの７０％）を下回ると、データセンター１１０は電力制限モードを終了することとなる。
【００４０】
いくつかの実施形態において、ＧＵＩ３００は、サーバーラックについての電力制限パラメータを設定するのに用いられるグラフィカルエレメント３０６を含み得る。例えば、グラフィカルエレメント３０６は、データセンター１１０におけるラック１２０を表すことができる。例えば、ＧＵＩ３００は、データセンター１１０中の各ラックに対応するグラフィカルエレメント３０６を含み得る。
【００４１】
いくつかの実施形態では、グラフィカルエレメント３０６は、サーバーラックにおいて電力制限を有効にするのに用いられるグラフィカルエレメント３０８を含み得る。例えば、サーバー管理者は、グラフィカルエレメント３０６を選択して、サーバーラック１２０の電力制限をオンおよびオフにすることができる。グラフィカルエレメント３０６は、サーバーラック１２０の電力リミットを設定するのに用いられるグラフィカルエレメント３１０を含み得る。例えば、サーバー管理者は、グラフィカルエレメント３１０（例えばプルダウンメニュー、リストなど）から、サーバーラック１２０がこえることのできない消費電力の量を示す値を選択することができる。サーバー管理者は、サーバーラック１２０の最大電力値を示すグラフィカルエレメント３１０中にテキストを入力することができる。サーバーラック１２０で電力制限が有効となっているときに、サーバーラック１２０の消費電力が閾値（例えばラックの電力リミットの９０％）をこえると、サーバーラック１２０は電力制限モードに移行することとなる。サーバーラック１２０の消費電力が閾値（例えばラックの電力リミットの７０％）を下回ると、サーバーラック１２０は電力制限モードを終了することとなる。
【００４２】
いくつかの実施形態において、グラフィカルエレメント３０６は、サーバーラック中のサーバーの電力制限を有効および無効にするのに用いられるグラフィカルエレメント３１２〜３２２を含み得る。例えば、グラフィカルエレメント３１２〜３２２はサーバーラック１２０中のサーバー（例えばサーバー２１０、サーバー２２０）に対応し得る。サーバー管理者は、個々のグラフィカルエレメント３１２〜３２２（例えば、チェックボックス、スイッチ、トグルなど）を選択して、対応するサーバーの電力制限を有効または無効にすることができる。
【００４３】
いくつかの実施形態において、グラフィカルエレメント３０６は、ラック中の各サーバーの最大消費電力を示すことができる。例えば、グラフィカルエレメント３０６は、ラック１２０中の対応するサーバー（例えばサーバー２１０、サーバー２２０など）および各サーバーが消費する最大の電力量を明らかとする（ｉｄｅｎｔｉｆｙ）グラフィカルエレメント３１２〜３２２を示すことができる。ラック１２０が電力制限モードにあるとき、ラック１２０は最大消費電力値を用いて、ラックの任意の電力を、ラック中のサーバーにどのように分配するかを決定することができる。
【００４４】
例えば、上述したように、任意の電力は、ラックの電力リミットから、非電力制限サーバーの消費電力と、電源オフとなっているサーバーの消費電力とを引くことによって、算出され得る。グラフィカルエレメント３０６を参照すると、ラック１２０は、選択された（例えばボックスにチェックが入っている）グラフィカルエレメント３１２、３１４および３１６に対応する３つの電力制限されたサーバー（例えば、サーバー１、サーバー２、サーバー３）を含む。ラック１２０は、グラフィカルエレメント３１８および３２０に対応する２つの非電力制限サーバー（例えばサーバー４、サーバー５）を含む。ラック１２０は、グラフィカルエレメント３２２に対応する１つの電源オフのサーバー（例えばサーバー６）を含む。ラック１２０（例えばラック１）の任意の電力を計算するため、２つの非電力制限サーバーの消費電力（サーバー４：４００ワット；サーバー５：３２５ワット）と、電源オフのサーバーの消費電力（サーバー６：４００ワット）とを、ラック１２０の電力リミット（２０００ワット）から引くことができる。よって、ラック１２０の任意の電力は８７５ワットである（例えば２０００−（４００＋３２５＋４００））。
【００４５】
上記した実施例に続いて、各サーバーにより消費される相対的な電力の量に基づいて、ラック１２０の任意の電力が、電力制限されたサーバー（例えばサーバー１、サーバー２、サーバー３）に分配され得る。例えば、サーバー１に割り当てられる任意の電力の量は、任意の電力（８７５ワット）に、ラック１２０中の全ての電力制限されたサーバーの総消費電力（例えば６００ワット＋４５０ワット＋５００ワット＝１５５０ワット）に対する当該サーバーの消費電力（例えば６００ワット）の割合を掛けることにより算出することができる。よって、サーバー１に割り当てられる任意の電力の量は３３８ワットである（例えば８７５＊（６００／１５５０））。サーバー２に割り当てられる任意の電力の量は２５４ワットである（例えば８７５＊（４５０／１５５０））。サーバー３に割り当てられる任意の電力の量は２８２ワットである（例えば８７５＊（５００／１５５０））。
【００４６】
データセンターの任意の電力、およびデータセンター内のラックへの任意の電力の割り当てを決定するのに、図１を参照して上に述べたような、類似するプロセスを用いることができる。
【００４７】
図４は、動的なサーバー電力制限の例示的なプロセス４００を示している。例えば、データセンターレベルおよび／またはサーバーラックレベルでサーバーの消費電力を管理するのにプロセス４００を用いることができる。
【００４８】
ステップ４０２において、計算装置（ｃｏｍｐｕｔｉｎｇ  ｄｅｖｉｃｅ）はサーバーの群の電力使用量（ｐｏｗｅｒ  ｕｓａｇｅ）を監視することができる。例えば、サーバーの群はデータセンターに対応していてよい。サーバーの群はサーバーラックに対応していてよい。管理装置１０４は、管理ソフトウェア１０２を備えて構成されており、データセンター１１０内のサーバーの電力使用量を監視することができる。ラック管理コントローラ２０４は、ラック１２０内のサーバーの電力使用量を監視するように構成されていてよい。
【００４９】
ステップ４０４において、計算装置は、サーバーの群の電力使用量が第１の閾値レベルをこえていると判断することができる。例えば、管理装置１０４は、データセンター１１０の電力使用量がデータセンター１１０の電力リミットの９０％をこえていると判断することができる。ラック管理コントローラ２０４は、ラック１２０の電力使用量がラック１２０の電力リミットの９０％をこえていると判断することができる。
【００５０】
ステップ４０６において、計算装置は、サーバーの群を電力制限モードに移行させることができる。例えば、データセンター１１０の電力使用量が第１の閾値をこえるとの判断に応じ、管理装置１０４はデータセンター１１０を電力制限モードに移行させることができる。同様に、ラック１２０の電力使用量が第１の閾値よりも大きいとの判断に応じ、ラック管理コントローラ２０４はラック１２０を電力制限モードに移行させることができる。
【００５１】
ステップ４０８において、計算装置は、電力制限（ｐｏｗｅｒ  ｃａｐｐｉｎｇ）に用いることのできる任意の電力の量を決定することができる。例えば、管理装置１０４は、データセンター１１０内の電力制限されたサーバーラックに分配するのに利用可能な任意の電力の量を決定することができる。ラック管理コントローラ２０４は、サーバーラック１２０内の電力制限されたサーバーに分配するのに利用可能な任意の電力の量を決定することができる。
【００５２】
ステップ４１０において、計算装置は任意の電力を割り当てることができる。例えば、上述したように、管理装置１０４は、データセンター１１０内の各ラックにより消費される電力の比例量（ｐｒｏｐｏｒｔｉｏｎａｌ  ａｍｏｕｎｔ）に基づいて、データセンター１１０内の電力制限されたラックに任意のデータセンター電力を割り当てることができる。上述したように、ラック管理コントローラ２０４は、ラック１２０内の各サーバーにより消費される電力の比例量に基づいて、ラック１２０内のサーバーに任意のラック電力を割り当てることができる。例えば、ラックまたはサーバーに割り当てられる任意の電力の量は、ラックまたはサーバーの電力リミットとなる。
【００５３】
ステップ４１４において、計算装置は、サーバーの群の電力使用量が第２の閾値レベルを下回ると判断することができる。例えば、管理装置１０４は、データセンター１１０内のラックの消費電力を監視すると共に、ラックの消費電力がいつ第２の閾値レベル（例えば、データセンターの電力リミットの７０％）を下回るかを検出することができる。ラック管理コントローラ２０４は、ラック１２０内のサーバーの消費電力を監視すると共に、サーバーの消費電力がいつ第２の閾値レベル（例えば、ラックの電力リミットの７０％）を下回るかを検出することができる。
【００５４】
ステップ４１６において、計算装置は、サーバーの群に電力制限モードを終了させることができる。例えば、データセンター１１０内のラックの消費電力が第２の閾値レベルを下回ったと検出したことに応じ、管理装置１０４は、データセンター１１０内のラックから電力リミットを取り除くことができ、これによりデータセンター１１０中のラックの消費電力はもはや制限されないようになる。同様に、ラック１２０内のサーバーの消費電力が第２の閾値レベルを下回ったと検出したことに応じ、ラック管理コントローラ２０４はラック１２０内のサーバーから電力リミットを取り除くことができ、これによりラック１２０中のサーバーのラックの消費電力はもはや制限されないようになる。
【００５５】
＜例示的なシステムアーキテクチャ＞
図５は、図１〜４の特徴およびプロセスを実行する例示的システムアーキテクチャ５００のブロック図である。アーキテクチャ５００は、コンパイルされた命令からできた（ｄｅｒｉｖｅｄ  ｆｒｏｍ）ソフトウェアアプリケーションを実行する任意の電子デバイスにおいて実施されるものであってよく、当該任意の電子デバイスには、限定はされないが、パーソナルコンピュータ、サーバー、スマートフォン、メディアプレーヤー、電子タブレット、ゲームコンソール、ｅメールデバイスなどが含まれる。いくつかの実施形態において、アーキテクチャ５００は１つまたはそれ以上のプロセッサ５０２、１つまたはそれ以上の入力装置５０４、１つまたはそれ以上のディスプレイ装置５０６、１つまたはそれ以上のネットワークインターフェース５０８、および１つまたはそれ以上のコンピュータ可読媒体５１０を含み得る。これらコンポーネントの各々はバス５１２によって接続され得る。
【００５６】
ディスプレイ装置５０６は、限定はされないが、液晶ディスプレイ（ＬＣＤ）または発光ダイオード（ＬＥＤ）技術を用いたディスプレイ装置を含む任意の既知のディスプレイ装置であってよい。プロセッサ（複数のプロセッサ）５０２は、限定はされないが、グラフィックプロセッサおよびマルチコアプロセッサを含む任意の既知のプロセッサ技術を用いるものであってよい。入力装置５０４は、限定はされないが、キーボード（バーチャルキーボードを含む）、マウス、トラックボール、およびタッチセンシティブパッドまたはディスプレイを含む任意の既知の入力装置であってよい。バス５１２は、限定はされないが、ＩＳＡ、ＥＩＳＡ、ＰＣＩ、ＰＣＩエクスプレス、ＮｕＢｕｓ、ＵＳＢ、シリアルＡＴＡまたはファイヤーワイヤー（ＦｉｒｅＷｉｒｅ）を含む任意の既知の内部または外部バス技術を用いるものであってよい。
【００５７】
コンピュータ可読媒体５１０は、プロセッサ（複数のプロセッサ）５０２に命令を与えて実行させることに関与する任意の媒体であってよく、限定はされないが、不揮発性ストレージメディア（例えば光ディスク、磁気ディスク、フラッシュドライブなど）または揮発性メディア（例えばＳＤＲＡＭ、ＲＯＭなど）が含まれる。コンピュータ可読媒体（例えばストレージデバイス、媒体、およびメモリ）は、例えば、ビットストリームなどを含むケーブルまたはワイヤレス信号を含み得る。しかし、非一時的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）コンピュータ可読ストレージ媒体は、言及されるときには、エネルギー、搬送波信号、電磁波および信号それ自体のような媒体を明示的に排除する。
【００５８】
コンピュータ可読媒体５１０は、オペレーティングシステム５１４（例えばＭａｃ  ＯＳ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標））を実行するためのさまざまな命令を含み得る。オペレーティングシステム５１４は、マルチユーザー、マルチプロセッシング、マルチタスキング、マルチスレッディング、リアルタイムなどのものであり得る。オペレーティングシステム５１４は、限定はされないが、入力装置５０４からの入力を認識するタスク、ディスプレイ装置５０６に出力を送るタスク、コンピュータ可読媒体５１０上にファイルおよびディレクトリを記録するタスク、直接またはＩ／Ｏコントローラを介して制御され得る周辺装置（例えばディスクドライブ、プリンタなど）を制御するタスク、ならびにバス５１２上のトラフィックを管理するタスクを含む基本的なタスクを実行する。ネットワーク通信命令５１６はネットワーク接続を確立および維持することができる（例えば、ＴＣＰ／ＩＰ、ＨＴＴＰ、Ｅｔｈｅｒｎｅｔ（登録商標）などのような通信プロトコルを実行するソフトウェア）。いくつかの実施形態において、オペレーティングシステム５１４は、上に図１〜４に関して説明したプロセスの少なくとも一部を実行することができる。
【００５９】
グラフィック処理システム５１８は、グラフィックおよび画像処理能力を与える命令を含み得る。例えば、グラフィック処理システム５１８は、図１〜４を参照にして述べたプロセスを実行することができる。アプリケーション（複数のアプリケーション）５２０は、図１〜４を参照にして述べたプロセスを使用または実行するアプリケーションであり得る。例えば、アプリケーション５２０は管理ソフトウェア２０４を含み得る。アプリケーション（複数のアプリケーション）５２０は、ラック内の電力を管理するためのラック管理コントローラソフトウェアを含み得る。アプリケーション（複数のアプリケーション）５２０は、サーバー内の消費電力を管理するためのシステムコントローラソフトウェアを含み得る。
【００６０】
サービスコントローラ５２２は、プロセッサ（複数のプロセッサ）５０２および／またはオペレーティングシステム５１４から独立して動作するコントローラであり得る。いくつかの実施形態において、サービスコントローラ５２２は、プロセッサ（複数のプロセッサ）５０２が電源オンにされ、オペレーティングシステム５１４がプロセッサ（複数のプロセッサ）５０２にロードされる前に、電源が供給され、動作可能となり得る。例えば、サービスコントローラ５２２は、専用のネットワークインターフェースまたはその他の入力装置を介して、計算装置のｐｒｅ−ＯＳ管理を提供することができる。例えば、サービスコントローラ５２２は、インテリジェントプラットフォーム管理インターフェース（ＩＭＰＩ）、キーボード、ビデオ、およびマウス（ＫＶＭ）リダイレクション、シリアルオーバーＬＡＮ（ＳＯＬ）、ならびに／またはその他のインターフェースを介し、デバイスのセンサ（例えば、電圧、温度、ファンなど）の監視、故障解析のイベントのロギング、ＬＥＤ誘導診断（ｇｕｉｄｅｄ  ｄｉａｇｎｏｓｔｉｃｓ）の提供、電源管理の実行、および／または遠隔管理機能の提供を行うベースボード管理コントローラ（サービスコントローラ）であり得る。サービスコントローラ５２２は、上に図１〜４を参照して説明したプロセスを実行することができる。例えば、サービスコントローラ５２２は、サーバー内の消費電力を管理するように構成されていてよい。
【００６１】
記載された機能（ｆｅａｔｕｒｅｓ）は、有利には、データストレージシステム、少なくとも１つの入力装置、および少なくとも１つの出力装置からデータおよび命令を受信し、かつこれらへデータおよび命令を送信するよう接続された少なくとも１つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能である１つまたはそれ以上のコンピュータプログラムにおいて実施することができる。コンピュータプログラムとは、直接または間接的にコンピュータで用いられて所定の動作を行う、または所定の結果をもたらすことのできる一連の命令である。コンピュータプログラムは、コンパイルまたはインタープリットされた言語を含む任意の形式のプログラミング言語（例えばＯｂｊｅｃｔｉｖｅ−Ｃ，Ｊａｖａ（登録商標））で記述されたものであってよく、かつそれは、スタンドアロンプログラムまたはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境で用いるのに適したその他のユニットを含む任意の形式で展開され得る。
【００６２】
命令のプログラムの実行に適したプロセッサには、例えば、任意の種類のコンピュータの汎用および専用マイクロプロセッサの両方、ならびに単独のプロセッサまたは複数のプロセッサもしくはコアのうちの１つが含まれる。一般にプロセッサは、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。命令を実行するプロセッサ、ならびに命令およびデータを保存する１つまたはそれ以上のメモリは、コンピュータに不可欠な構成要素である。また、一般にコンピュータは、データファイルを保存するための１つもしくはそれ以上のマスストレージデバイスをも含む、またはこれらと通信すべく動作可能に接続される。かかるデバイスには、内蔵ハードディスクおよびリムーバブルディスクのような磁気ディスク、光磁気ディスク、ならびに光ディスクが含まれる。コンピュータプログラム命令およびデータを確実に具体化するのに適したストレージデバイスには、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスのような半導体メモリデバイス、内蔵ハードディスクおよびリムーバブルディスクのような磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクを含む全ての形式の不揮発性メモリが含まれる。プロセッサおよびメモリは、ＡＳＩＣ（特定用途向け集積回路）によって補われても、またはこれに組み込まれてもよい。
【００６３】
ユーザーとのインタラクションを実現するために、上記機能は、ユーザーに情報を表示するためのＣＲＴ（陰極線管）またはＬＣＤ（液晶ディスプレイ）モニターのようなディスプレイ装置、ならびにユーザーによるコンピュータへの情報の提供を可能とするキーボードおよびマウスまたはトラックボールのようなポインティングデバイスを備えたコンピュータに実装することができる。
【００６４】
上記機能は、データサーバーのようなバックエンドコンポーネント、またはアプリケーションサーバーもしくはインターネットサーバーのようなミドルウェアコンポーネント、またはグラフィカルユーザーインターフェースもしくはインターネットブラウザを有するクライアントコンピュータのようなフロントエンドコンポーネント、またはこれらの任意の組み合わせを含むコンピュータシステムに実装され得る。システムのコンポーネントは、任意の方式で、または通信ネットワークのようなデジタルデータ通信の媒体によって接続され得る。通信ネットワークの例には、例えば、ＬＡＮ、ＷＡＮ、ならびにインターネットを形成するコンピュータおよびネットワークが含まれる。
【００６５】
コンピュータシステムには、クライアントおよびサーバーが含まれ得る。クライアントおよびサーバーは一般に互いに遠く離れたところにあり、かつ通常はネットワークを通じてやり取りする。クライアントとサーバーとの関係は、それぞれのコンピュータで実行され、かつクライアント−サーバーの関係（ｃｌｉｅｎｔ−ｓｅｒｖｅｒ  ｒｅｌａｔｉｏｎｓｈｉｐ）を互いに有するコンピュータプログラムに基づいて生じる。
【００６６】
開示した実施形態の１つまたはそれ以上の特徴またはステップは、ＡＰＩを用いて実行され得る。ＡＰＩは、通話アプリケーション（ｃａｌｌｉｎｇ  ａｐｐｌｉｃａｔｉｏｎ）と、サービスを提供する、データを提供する、またはオペレーションもしくは計算を実行するその他のソフトウェアコード（例えばオペレーティングシステム、ライブラリルーチン、ファンクション）との間で伝達される１つまたはそれ以上のパラメータを定義することができる。
【００６７】
ＡＰＩは、ＡＰＩ仕様書において定義された呼び出し規約（ｃａｌｌ  ｃｏｎｖｅｎｔｉｏｎ）に基づくパラメータリストまたはその他の構造により１つまたはそれ以上のパラメータを送信または受信するプログラムコード中の１つまたはそれ以上の呼び出しとして実行され得る。パラメータは、定数、キー、データ構造、オブジェクト、オブジェクトクラス、変数、データ型、ポインタ、アレイ、リスト、またはその他の呼び出しであってよい。ＡＰＩ呼び出しおよびパラメータは任意のプログラミング言語に実装され得る。プログラミング言語は、プログラマがＡＰＩをサポートする機能にアクセスするために用いるであろう語彙および呼び出し規約を定義することができる。
【００６８】
いくつかの実施において、ＡＰＩ呼び出しは、入力能力、出力能力、処理能力、電源能力、通信能力などのようなアプリケーションを動作させるデバイスの能力を、アプリケーションに報告することができる。
【００６９】
多数の実施形態を上に記載した。しかしながら、さまざまな変更を加え得るということが理解されるであろう。例えば、上述したフローから他のステップが提供されても、またはステップが省かれてもよいし、かつ、上述したシステムに他のコンポーネントが加えられても、または上述したシステムから除去されてもよい。したがって、他の実施形態も以下の特許請求の範囲内に入る。
【符号の説明】
【００７０】
１００…システム
１０２…管理ソフトウェア
１０４…管理装置
１０６…ネットワーク
１１０…データセンター
１２０、１３０、１４０…サーバーラック
１２２…パワーシェルフ
１２４…サーバー
２０２…電源ユニット
２０４…ラック管理コントローラ
２１０…サーバー
２１２…ＣＰＵ
２１４…サービスコントローラ
２２０…サーバー
２２２…ＣＰＵ
２２４…サーバーコントローラ
３００…グラフィカルユーザーインターフェース
３０２、３０４、３０６、３０８、３１０、３１２、３１４、３１６、３１８、３２０、３２２…グラフィカルエレメント
４００…フローチャート
４０２、４０４、４０６、４０８、４１０、４１４、４１６…ステップ
５００…システムアーキテクチャ
５０２…プロセッサ
５０４…入力装置
５０６…ディスプレイ装置
５０８…ネットワークインターフェース
５１０…コンピュータ可読媒体
５１２…バス
５１４…オペレーティングシステム
５１６…ネットワーク通信命令
５１８…グラフィック処理システム
５２０…アプリケーション
５２２…サービスコントローラ
【図１】
2016157443.tif 000003
【図２】
2016157443.tif 000004
【図３】
2016157443.tif 000005
【図４】
2016157443.tif 000006
【図５】
2016157443.tif 000007