(57)【特許請求の範囲】
【請求項１】
それぞれポートと前記ポートに関連する帯域外通信用のローカルアドレスとを有する管理ノードと複数の計算ノードと、
通信バスと、
前記管理ノードのポートと、前記複数の計算ノードのそれぞれのポートを、前記通信バスにそれぞれ接続する複数のスマートプラグと、
を備え、
前記複数のスマートプラグは、それぞれ前記通信バス上のユニークアドレスを有し、且つ前記通信バスを介して要求メッセージを受信し、前記要求メッセージが前記ユニークアドレスにアドレス指定されているかを判断し、その判断に応じて、ローカルアドレスを使用して前記要求メッセージを前記ポートに対応するように再フォーマットし、
前記スマートプラグの前記ユニークアドレスは、前記ローカルアドレスにマップされ、
前記スマートプラグは、前記スマートプラグがそれに対応する計算ノードに接続されてない場合、および／または前記通信バスからの前記要求メッセージがそれに対応していないスマートプラグに送信される場合に、前記要求メッセージを再ルーティングしないまたは前記要求メッセージを前記複数のスマートプラグの内の対応するスマートプラグに再ルーティングするように設定されることを特徴とする、計算装置。
【請求項２】
前記通信バスはＩ２Ｃバスであることを特徴とする、請求項１に記載の計算装置。
【請求項３】
前記管理ノードに関連する前記複数のスマートプラグのうちの１つは、さらに前記要求メッセージの受信を応じて、前記ポートからの応答メッセージを受信し、前記応答メッセージを前記管理ノードに対応するように前記通信バスのプロトコルに従って再フォーマットし、前記応答メッセージを前記管理ノードに送信するように設定されることを特徴とする、請求項１に記載の計算装置。
【請求項４】
通信バスを介して要求メッセージを受信するステップと、
前記要求メッセージがユニークアドレスにアドレス指定されているかを判断するステップと、
前記判断に応じて、ローカルアドレスを使用して前記要求メッセージをポートに発信するステップと、
を含み、
そのうち、複数のスマートプラグのそれぞれは、管理ノードと複数の計算ノードに使用するポートを前記通信バスに連結し、
前記複数のスマートプラグは、前記通信バスにそれぞれの前記ユニークアドレスを有し前記ユニークアドレスは、前記ローカルアドレスにマップされ、
前記管理ノードと前記複数の計算ノードは、それぞれのポートと前記ポートに関連する帯域外通信用ローカルアドレスを有し、
前記スマートプラグは、前記スマートプラグがそれに対応する計算ノードに接続されてない場合、および／または前記通信バスからの前記要求メッセージがそれに対応していないスマートプラグに送信される場合に、前記要求メッセージを再ルーティングしないまたは前記要求メッセージを前記複数のスマートプラグの内の対応するスマートプラグに再ルーティングすることを特徴とする、ラックシステム内のサーバノードを管理する方法。
【請求項５】
命令が格納されている非一時的なコンピューター可読媒体であって、前記命令がスマートプラグ装置によって実行されると、前記スマートプラグ装置に、
通信バスを介して要求メッセージを受信するステップと、
前記要求メッセージがユニークアドレスにアドレス指定されているかを判断するステップと、
前記判断に応じて、ローカルアドレスを使用して前記要求メッセージをポートに発信するステップと、
を含み、
そのうち、複数のスマートプラグがそれぞれの管理ノードと複数の計算ノードに使用する前記ポートを前記通信バスに連結し、
前記複数のスマートプラグが、それぞれ前記通信バス上のユニークアドレスを有し、
且つ前記管理ノードと前記複数の計算ノードは、それぞれのポートと前記ポートに関連する帯域外通信用ローカルアドレスを有し、
前記スマートプラグの前記ユニークアドレスは、前記ローカルアドレスにマップされ、
前記スマートプラグは、前記スマートプラグがそれに対応する計算ノードに接続されてない場合、および／または前記通信バスからの前記要求メッセージがそれに対応していないスマートプラグに送信される場合に、前記要求メッセージを再ルーティングしないまたは前記要求メッセージを前記複数のスマートプラグの内の対応するスマートプラグに再ルーティングする動作を実行させることを特徴とする、非一時的なコンピューター可読記録媒体。
【請求項６】
前記命令が実行されると、前記スマートプラグ装置にさらに、
前記要求メッセージに応じて、前記ポートからの応答メッセージを受信するステップと、
前記応答メッセージを前記管理ノードに対応するように前記通信バスのプロトコルに従って再フォーマットするステップと、
前記応答メッセージを前記管理ノードに送信するステップとを含む動作を実行させることを特徴とする、請求項５に記載の非一時的なコンピューター可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はサーバノードの管理に係わり、特に、スマートプラグを使用してサーバノードに通信する非一時的なコンピューター可読媒体、計算装置及びその方法に関する。
【背景技術】
【０００２】
サーバノードのリモート管理には、一般的なラックシステム内のサーバノード数が多いため、サーバノードの位置を特定し、アクセスすることは容易ではない場合がある。よって、一部のラックシステムでは、そのサーバノードの位置を特定するように、管理バックプレーンを設置するようになっている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
管理バックプレーンはサーバノードと管理ノードを連結するプリント回路基板（ｐｒｉｎｔｅｄ  ｃｉｒｃｕｉｔ  ｂｏｒａｄ、  ＰＣＢ）である。管理バックプレーンは通常、ラックシステムの複雑度を一層増やすため、ラックシステムを維持するための費用及び人力コストの両方を増やすことになる。
【課題を解決するための手段】
【０００４】
本発明の基本的な理解を提供するため、以下に１つまたは複数の実施形態の簡単な概要を提出する。この概要は、本発明のすべての実施形態の広範な概要ではなく、すべての実施形態の重要要素を特定することも、本発明の任意またはすべての態様の範囲を描写することも意図していない。その唯一の目的は、後に提示されるより詳細な説明の前置きとして、１つまたは複数の実施形態のいくつかの概念を簡略化した形で提示することである。
【０００５】
本明細書が提示する実施形態の１つまたは複数の実施形態は、一種のラックシステム内のサーバノードを管理する計算装置と、非一時的なコンピューター可読媒体、システム及びその方法を提供する。計算装置は、管理ノードと複数の計算ノードを含み、その管理ノードと複数の計算ノードはそれぞれのポートとそのポートに関連する帯域外通信用ローカルアドレスを有する。計算装置はさらに通信バスと複数のスマートプラグを含み、そのスマートプラグは、管理ノード及び／または複数のスマートプラグを通信バスに連結する。複数のスマートプラグのそれぞれは通信バス上にユニークアドレスを有し、通信バスを介して要求メッセージを受信し、要求メッセージがユニークアドレスにアドレス指定されるかを判断し、その判断に応じて、ローカルアドレスを使用し、要求メッセージをポートに対応するように再フォーマットするように設定される。
【０００６】
スマートプラグは管理ノードからのノード情報要求を受信するように設定され、そしてノード情報要求をスマートプラグに連結する計算ノードと比較し、マッチングする計算ノードを見つかると、それぞれの計算ノードに使用されるローカルアドレスを使用し、ノード情報要求をマッチングする計算ノードのポートに送信する。また、スマートプラグは、ローカルアドレスを使用し、要求メッセージをＵＳＢポートに対応するように設定される。
【０００７】
いくつかの実施形態において、複数のスマートプラグのうちの１つは、ＵＳＢ−Ｉ２Ｃの変換器であって、その変換器は、事前に設定されたユニークＩ２Ｃスレーブアドレスを有する。スマートプラグは、ローカルアドレスを使用し、要求メッセージをＩ２Ｃポートに対応するようにさらに設定される。また、スマートプラグはユニークアドレスを複数の計算ノードのそれぞれ対応するコンプレックスプログラマブルロジック装置（ｃｏｍｐｌｅｘ  ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ、  ＣＰＬＤ）を有する。例えば、複数の計算ノードのそれぞれに対応するコントローラーはベースボード管理コントローラー（ｂａｓｅｂｏａｒｄ  ｍａｎａｇｅｍｅｎｔ  ｃｏｎｔｒｏｌｌｅｒ、  ＢＭＣ）である。計算装置はＩ２Ｃバスを含む通信ケーブル（ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｃａｂｌｅ）を含む。計算装置は、複数の計算ノードのそれぞれが管理ノードへの現在接続状態を検出するように設定されるスマートプラグと有する。計算装置はスマートプラグを含み、そのスマートプラグは、要求メッセージを受信することに応じて、ポートからの応答メッセージを受信し、応答メッセージを管理ノードに対応するように再フォーマットし、その応答メッセージを管理ノードに送信する。
【図面の簡単な説明】
【０００８】
本明細書に係る様々な実施形態を、図面を参照して説明する。
【図１】従来の管理バックプレーンラックシステム構成の例示的な実施形態のブロック図である。
【図２】スマートプラグラックシステム構成の例示的な実施形態のブロック図である。
【図３】スマートプラグラック構成の例示的な実施形態のブロック図である。
【図４】スマートプラグラック構成の例示的な実施形態のブロック図である。
【図５】ラックシステム内のサーバノードと通信する例示的な方法のフローチャート図である。
【図６】例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【０００９】
本発明の様々の態様は図面を参照しながら説明される。本発明の１つまたは複数の態様を説明するため、以下に多くの具体的な細部の描写を提供する。ただ、本発明の技術は以下の具体的な細部がなくても実現できることは明らかである。他の実施形態には、周知の構造及び装置をブロック図で提示によって、その態様の説明を容易にする。「例示的」という言葉は、本明細書では、「範例、事例または実例として扱う」ことを意味するために使用される。本明細書において「例示的」と記載された実施形態は、必ずしも他の実施形態よりも好ましいまたは有利であると解釈されるべきではない。
【００１０】
まず、図１に示されるのは、従来の管理バックプレーンラックシステムにサーバノードを有する実施形態のブロック図１００である。ブロック図１００に示されるように、個別のサーバノードをラックシステムに設置するための支持部品のアセンブリであるラックシステム１１９を提供し、且つ複数のサーバノードと管理ノードとの構造関係を提供する。図１に示されるように、従来のバックプレーンラックシステム１１９は、複数のサーバノード１０３〜１１０と、各サーバノード１０３〜１１０に内蔵のコントローラー１１１〜１１８と、管理バックプレーン１２０〜１２２を介して複数のサーバノード１０３〜１１０に連結する管理ノード１０２（例えば、管理コントローラー）と、管理バックプレーン１２０〜１２２を管理コントローラー１０２に連結する管理バス１２３を含む。
【００１１】
各サーバノード１０３〜１１０は、ノード間でデータを転送するように、管理バックプレーン１２０〜１２２に通信可能のコントローラー１１１〜１１８（例えば管理コントローラー）を含むことができる。コントローラー１１１〜１１８は、ＣＰＵに独立して動作する、サーバの管理任務をサポートするサービスまたは管理プロセッサー（例えばベースボード管理プロセッサー）である。例えば、コントローラーは帯域外の管理（ｍａｎａｇｅｍｅｎｔ）または監督（ａｄｍｉｎｉｓｔｒａｔｉｏｎ）を提供するように設定されるベースボード管理コントローラー（ＢＭＣ）である。
【００１２】
いくつかの構成では、管理コントローラー（管理ノード１０２）はラック管理コントローラーまたはＴｏＲ（ｔｏｐ−ｏｆ−ｒａｃｋ）スイッチを含む管理モジュールであっても良い。管理ノードは、ラックシステム中のそれぞれのサーバノードのノード位置をアドレス指定することができる。管理ノード１０２は、サーバノードに情報を検索するまたは要求された情報を有するサーバノードを識別する必要があるとき、サーバノードに要求メッセージ（例えばＩ２Ｃパケット）を送信することができる。
【００１３】
管理ノード１０２は、一般的に管理バックプレーン１２０〜１２２を介して複数のサーバノード１０３〜１１０に連結する。管理バックプレーン１２０〜１２２は、標準連結器を介して複数のサーバノード１０３〜１１０を管理コントローラーに連結するプリント回路基板（Ｐｒｉｎｔｅｄ  Ｃｉｒｃｕｉｔ  Ｂｏａｒｄ、  ＰＣＢ）である。いくつかの管理バックプレーンには、管理パケットがサーバノードに代理（ｐｒｏｘｙ）するためのシャーシ管理コントローラー（Ｃｈａｓｓｉｓ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ、  ＣＭ）が含まれている。いくつかの管理バックプレーンは、電子回路のみを使用して、管理パケットをサーバノードに送信することができる。
【００１４】
管理バックプレーン１２０〜１２２は、管理バス１２３を介して管理コントローラーに連結する。管理バス１２３は、管理バックプレーンと管理ノードの間にデータを通信するシステム管理ケーブルである。本明細書で実施されるバス信号のタイプは、ＵＳＢ、Ｉ２Ｃ、ＲＳ２３２、ＣＡＮバス、ＲＳ４８５、またはイーサネット（登録商標）であっても良い。ここで列挙したバス信号のタイプは網羅的なリストではなく、他の管理バスに適用なタイプも使用できる。
【００１５】
図１に示されるように、管理バックプレーンは管理ノード１０２の代わりにサーバノード位置をアドレス指定する。しかし、管理バックプレーンがラックシステムの中の位置により、サーバノードを設置することが困難な場合がある。一般的に管理バックプレーンはラックシステムの後ろ側に設置されるため、デサイン的には、ラックシステムの周囲に設置することが難しい。いくつかの実施形態には、サーバノードはデータを受信／送信用標準ポートを使用する標準サーバノードである。よって、サーバノードにより効率的な通信及び管理用のポートを含まないことになる。従って、本発明は、バックプレーンの必要をなくすと同時に、スマートプラグとラック管理ケーブルを介してサーバノードを位置決め及び通信する一種の通信機構を提供する。
【００１６】
図２を参照して、それはラック管理システム構成の例示的な実施形態のブロック図２００を示す。ラックシステム２１９は、スマートプラグ装置とラック管理ケーブル２３０を介して維持することができる。本発明に於いて、各サーバノードはそれぞれに対応するスマートプラグ装置に関連付けられている。例えば、図２に示されるように、サーバノード１（２０３）はスマートプラグＩＤ＃２（２２１）に関連付けられている、サーバノード２（２０４）はスマートプラグＩＤ＃３（２２２）に関連付けられている、サーバノード３（２０５）はスマートプラグＩＤ＃４  ２２３に関連付けられているなど。スマートプラグ装置は、管理コントローラーとサーバノード２０３〜２１０をブリッジするユニークＩ２Ｃアドレスを有する装置である。スマートプラグ装置は、さらに指定されたスマートプラグユニークアドレス（ＩＤ番号）を利用して、管理コントローラー（例えば管理ノード２０２）とサーバノード２０３〜２１０の間のＩ２Ｃパケットの通信を補助する。
【００１７】
例を挙げると、スマートプラグはテーブルヘッダに内蔵されるユニークプラックアドレス（例えば、ＩＤ番号）を有することができる。いくつかのテーブルヘッダは、プラグＩＤに関連する予めプログラムされたＩ２Ｃアドレスを有することができる。スマートプラグは、サーバノードとスマートプラグＩＤ番号のマッチング情報を有するテーブルを含む。その情報は、スマートプラグをそれと対応するサーバノードにマッチングすることに利用できる。例えば、スマートプラグ＃２のメモリには、スマートプラグ＃２（２２１）がサーバノード１（２０３）に関連し、スマートプラグ＃３（２２２）がサーバノード２（２０４）に関連するという情報を含む。よって、誤ったスマートプラグがサーバノードに接続される場合、間違ったデータパケットを受信したスマートプラグは、そのパケットが当該スマートプラグを対象とするものではないと判断する。よって、スマートプラグが対応するサーバノードへのパケット通信を中断し、その代わりに、そのパケットを再ルーティングして適切なサーバノードに送信する、またはそのパケットを無視する。
【００１８】
スマートプラグは、Ｉ２Ｃ装置（内蔵ＵＳＢ−Ｉ２Ｃ変換器）を含み、ユニークＩＤは出荷前に変換器内の予めプログラムされたチップに含まれることができる。管理コントローラー２０２はまた、データパケットを送信及び受信する時に、スマートプラグのユニークアドレス情報を学習（取得）して、データパケットに組み込むことができる。
【００１９】
サーバノード２０３〜２１０は、ラック管理ケーブル２３０を介して管理ノード２０２に相互接続することができる。ラック管理ケーブル２３０は、データを送信するためのＩ２Ｃ標準バス仕様と呼ばれ、クロック（ＳＣＬ）およびデータ（ＳＤＡ）ラインを含む。ラック管理ケーブル２３０は、サーバノード位置をアドレス指定し、サーバノードと通信することができるＩ２Ｃ（Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）バスである。いくつかの実施形態では、Ｉ２Ｃバス（例えば、ラック管理ケーブル）は、マスタ装置をスレーブ装置に接続することができる。例えば、マスタ装置（例えば管理ノード）２０２は、ラック管理ケーブル２３０を介して複数のスレーブ装置（例えば、サーバノード１−８（２２１−２２８）に使用されるスマートプラグＩＤ＃２−９）に接続される。
【００２０】
管理ノード２０２は、バスクロック信号を生成し、ラック管理ケーブル２３０上で通信を起動することができる。パケットメッセージは、Ｉ２Ｃバス２３０のＩ２Ｃバスプロトコルに従って送信することができる。ラック管理ケーブル２３０は、各サーバノードと通信し、サーバノード位置をアドレス指定するように設定することができる。図２には、管理ケーブル２３０が８つのスマートプラグに接続されていることが示されるが、この数量は一例に過ぎず、管理ケーブル２３０はより多く又は少ないスマートプラグを扱うことができる。例えば、４０個以上のスマートプラグ装置を扱うこともできる。
【００２１】
スマートプラグは、通常、様々なタイプの連結器２３１、２１１〜２１８を介してノードに連結する。ポートの種類は、ＵＳＢポート、Ｉ２Ｃポート、シリアル・イーサネット（登録商標）などが挙げられる。図３に関連してＵＳＢ連結器タイプを説明し、図４に関連してＩ２Ｃ連結器タイプを説明する。上記のタイプの連結器は網羅的なリストではなく、スマートプラグ装置と適用する他のタイプの連結器が使用することもできる。
【００２２】
いくつかの実施形態には、管理コントローラー（例えば、管理ノード）２０２は、ＴｏＲ（ｔｏｐ−ｏｆ−ｒａｃｋ）スイッチおよび／またはラック管理コントローラー（ＲＭＣ）を含むことができる。管理ノード２０２は、ルーティング情報ベース（ＲＩＢ）によって管理されるルーティングテーブルにルーティング情報を格納することができる。ルーティングテーブルは、スマートプラグのＩ２Ｃアドレスと対応するサーバノードアドレスとを含む検索可能なデータ構造を含むことができる。ルーティングテーブルは必ずテーブルとして編成する必要はないが、いくつかのタイプの検索可能なデータ構造にすることができる。スマートプラグのＩ２Ｃアドレスは、サーバノードアドレスにマップされる。パケット要求が管理ノードから送信されると、パケットの宛先アドレスを使用して、宛先アドレスに関連するルーティング情報を含むルーティングテーブルエントリから正しいスマートプラグを識別することができる。パケット要求は、サーバノードから管理ノードに返送される応答パケットの管理ノードのアドレスも含むことができる。
【００２３】
各サーバノードは、コントローラーも含むことが出来る。本明細書で説明するコントローラーは、サーバとは独立して動作する、サーバの管理任務をサポートするベースボード管理コントローラー（ＢＭＣ）である。ＢＭＣにはユニークＩＰアドレスが含まれていることができる。ＢＭＣは、以下にさらに説明するスマートプラグ構成に応じて、異なるタイプのポートや連結器に関連することもできる。
【００２４】
図３に示されるのは、スマートプラグ構成の例示的な実施形態のブロック図３００である。いくつかの実施形態では、スマートプラグは、スマートプラグのＩ２Ｃアドレスを変換し、サーバノード３０１、３０６、３１１に有するＵＳＢインターフェイスに対応するＵＳＢ−Ｉ２Ｃ変換器を有することができる。スマートプラグは、Ｉ２Ｃバス３１９とサーバノード３０１、３０６、３１１との間のインターフェイスを提供する。各変換器は、インストール前にスレーブＩ２Ｃアドレスで予めプログラムされたマイクロコントローラーである。例えば、スマートプラグ＃１（３０４）は、デサインされたＩ２Ｃアドレス０Ｘ０４を含み、スマートプラグ＃２（３０９）はデサインされたＩ２Ｃアドレス０Ｘ０６を含み、スマートプラグ＃３（３１４）はデサインされたＩ２Ｃアドレス０Ｘ０８を含む。スマートプラグのユニークアドレスは、互いのアドレスと異なることができる。
【００２５】
上述したように、サーバノード内のコントローラー（例えば、ＢＭＣ）３０２、３０７、３１２は、ユニバーサルシリアルバス（ＵＳＢ）ポート３０３、３０８、３１３に関連される。コントローラー対ＵＳＢモジュールは、コントローラーからＵＳＢへのモジュールは、変換（ｔｒａｎｓｌａｔｅｄ）されたＩ２Ｃパケットを読み書きできるＵＳＢプロトコルによって処理することができる。各サーバノードのＵＳＢポート３０３、３０８、３１３は、スマートプラグのＵＳＢ連結器３１６−３１８を接続することができる。
【００２６】
いくつかの実施形態では、管理ノードは、そのルーティング情報をルーティング情報ベース（ＲＩＢ）によって管理されるルーティングテーブルに格納することができる。ルーティングテーブルは、スマートプラグのＩ２Ｃアドレスに対応するサーバノードアドレスを含む検索可能なデータ構造を含むことができる。ルーティングテーブルはテーブルとして編成する必要はないが、何らかのタイプの検索可能なデータ構造である可能性がある。スマートプラグのＩ２Ｃアドレスは、サーバノードアドレスにマップされる。パケット要求が管理ノードから送信されると、パケットの宛先アドレスを使用して、宛先アドレスに関連されたルーティング情報を含むルーティングテーブルエントリからの正しいスマートプラグを識別することができる。
【００２７】
正しいサーバノードを識別するために、管理ノードは、要求メッセージを送信するときに、宛先サーバノードが関連するスマートプラグのアドレスを識別する。いくつかの実施形態では、管理パケットが間違ったスマートプラグに向けられた場合（例えば、スマートプラグがサーバノードに不適切にインストールされる）、パケット要求は、所定の期間の後に無視される。例えば、管理ノードは、ルーティングテーブルからマッピング情報を検索し、スマートプラグ＃２（３０９）がサーバノード２（３０６）に関連することを識別する。要求パッケージをサーバノード２に送信するため、管理ノードは要求パッケージをスマートプラグ＃２に送信し、スマートプラグ＃２は要求パッケージをサーバノード２に送信することができる。スマートプラグ＃２がサーバノード２に接続されていない場合、スマートプラグ＃２は、パッケージを受信するだけで要求パッケージを転送しない。しばらくして管理ノードに転送された応答パッケージがない場合、応答パッケージは期限切れになり無視される。この障害イベントは管理ノードに報告され、ログに記録される。
【００２８】
図４に示されるのは、スマートプラグ構成の例示的な実施形態のブロック図４００である。いくつかの実施形態では、スマートプラグ装置は、スマートプラグのＩ２Ｃスレーブアドレスをサーバノードインターフェイスに対応するアドレスに変換する複合プログラマブルロジック装置（ＣＰＬＤ）を含むように構成される。例えば、サーバノード４０１は、コントローラー４０２と、スマートプラグ４０６を受け入れるためのポート（例えば、Ｉ２Ｃポート）４０３とを含むことができる。ポート４０３は、スマートプラグ４０６のＩ２Ｃプラグ４０４を受け入れるＩ２Ｃポートとすることができる。サーバノード２（４０７）とサーバノード３（４１３）は同じように設定される。サーバノード４０７、４１３は、スマートプラグ４１２、４１７を受け入れるコントローラー４０８、４１４およびポート（例えば、Ｉ２Ｃポート）４０９、４１５を含むことができる。各サーバノードのポートは、スマートプラグ４１２、４１７のＩ２Ｃプラグ４１０、４１６を受け入れるためのＩ２Ｃポートとすることができる。
【００２９】
いくつかの実施形態では、サーバノード１〜３（４０１、４０７、４１３）のスレーブアドレスが同じであってもよい。例えば、サーバノード１〜３（４０１、４０７、４１３）のコントローラーアドレス４０２、４０８、４１４は、０×２４である。従って、各サーバノードのコントローラーアドレスはすべて同じであるため、サーバノードのスレーブアドレスによるサーバノードの特定は不可能である。本発明の技術では、管理ノードは代わりにスマートプラグのユニークＩ２Ｃアドレスを使用して、指定されたサーバーノードを特定することができる。例えば、各スマートプラグは、管理ノードに関するノードのための識別手段を提供する。
【００３０】
例えば、すべてのサーバノードを０Ｘ２４のスレーブアドレスに設定される。スマートプラグ＃１（４０６）は、Ｉ２Ｃアドレス０Ｘ０４を有するように設定することができ、スマートプラグ＃２（４１２）は、Ｉ２Ｃアドレス０Ｘ０６を有するように設定することができ、スマートプラグ＃３（４１７）は、Ｉ２Ｃアドレス０Ｘ０８を有するように設定される。各スマートプラグがＩ２Ｃバス４１９を介してそれぞれに向けられたＩ２Ｃパケットを受信すると、スマートプラグは、対応するサーバノードアドレスに対応するようにＩ２Ｃスレーブアドレスを０Ｘ２４に変換する。例えば、スマートプラグ＃２（４１２）がアドレス０Ｘ０６に向けられたパケットメッセージを受信すると、スマートプラグ＃２（４１２）がパケットはコントローラーに向けることを判断し、パケットをノード２コントローラー４０８に転送する。
【００３１】
スマートプラグが間違ったサーバノードに差し込まれて、誤ったスマートプラグに要求パッケージを送信された場合、スマートプラグが要求パッケージを無視することができる。例えば、スマートプラグ＃２がアドレス０Ｘ０８（スマートプラグ＃３のアドレス）に向けられた要求パケットを受信した場合、スマートプラグ＃２はその要求を無視するか、パケットを正しいスマートプラグ（スマートプラグ＃３）に再ルーティングする。管理ノードは、正しいスマートプラグから応答パッケージを受信するために所定の時間待機することができる。管理ノードが所定の時間内に応答パッケージを受信されない場合、要求パッケージは破棄される。管理ノードは、新しい要求パッケージを別のノードに再送するように促す。
【００３２】
Ｉ２Ｃプロトコルに従って、サーバノードが要求パケットを受信されると、要求パケットのヘッダには、少なくともそのスマートプラグのＩ２Ｃアドレスと管理ノードのアドレスを含むことができる。よって、サーバノードが応答パケットを管理ノードに返送すると、要求パッケージから宛先管理ノードとそのアドレスを識別することができる。当業者であれば、上に示したスレーブアドレスは単なる実施形態であり、現在のネットワークアーキテクチャでは様々なスレーブアドレスまたは複数の実施形態を使用できることが理解されよう。
【００３３】
図５に示されるのは、ラックシステム内のサーバノードと通信する例示的な方法のフローチャート図５００である。ステップ５１０からはじめ、ステップ５５０までに進む。要求メッセージがサーバノードに送信され、応答メッセージが管理ノードに返送される。ステップ５１０において、管理コントローラーは、通信バスを介して要求メッセージを受信する。要求メッセージは、サーバノードから情報を検索する要求またはサーバノードの可用性（ａｖａｉｌａｂｉｌｉｔｙ）をチェックする要求を含む任意のタイプの要求である。ステップ５２０において、スマートプラグは、要求メッセージがスマートプラグのユニークアドレスにアドレス指定されるかを判定するように設定される。ユニークアドレスは、要求メッセージのヘッダに含まれる。ステップ５３０において、スマートプラグは、その判定に応じて、ローカルアドレスを使用してスマートプラグに関連するポートに要求メッセージを送信する。
【００３４】
ステップ５４０において、スマートプラグは、サーバノードのポートから応答メッセージを受信する。サーバノードは、要求メッセージ内のルーティング情報から応答メッセージの宛先アドレスを決定する。その情報は、要求メッセージのヘッダに含まれる。要求メッセージをアドレス指定する応答メッセージは、スマートプラグのユニークアドレスに転送される。応答メッセージは、管理ノードからの要求された情報を含むことができる。ステップ５５０において、スマートプラグは、応答メッセージを管理ノードに送信するように設定される。
【００３５】
図６は、図１〜５の特徴およびプロセスを実施する例示的なシステムアーキテクチャ６００のブロック図である。アーキテクチャ６００は、パーソナルコンピューター、サーバ、スマートフォン、メディアプレーヤ、電子タブレット、ゲームコンソール、電子メール装置などを含むが、これに限定されないコンパイルされた命令から導出されるソフトウェアアプリケーションを実行する任意の電子装置上に実装することができる。１つまたは複数のプロセッサー６０２、１つまたは複数の入力装置６０４、１つまたは複数のディスプレイ装置６０６、１つまたは複数のネットワークインターフェイス６０８、および１つまたは複数のコンピューター可読媒体６１０を含むことができる。これらの構成要素のそれぞれは、バス６１２によって連結することができる。
【００３６】
ディスプレイ装置６０６は、液晶ディスプレイ（ＬＣＤ）または発光ダイオード（ＬＥＤ）技術を使用するディスプレイ装置を含むが、これに限定されない任意の既知のディスプレイ技術を使用することができる。プロセッサー６０２は、グラフィックプロセッサーおよびマルチコアプロセッサーを含むが、これに限定されない任意の既知のプロセッサー技術を使用することができる。入力装置６０４は、キーボード（仮想キーボードを含む）、マウス、トラックボール、およびタッチセンシティブパッドまたはディスプレイを含むが、これに限定されない任意の既知の入力装置技術を使用することができる。バス６１２は、ＩＳＡ、ＥＩＳＡ、ＰＣＩ、ＰＣＩ  Ｅｘｐｒｅｓｓ、ＮｕＢｕｓ、ＵＳＢ、シリアルＡＴＡまたはＦｉｒｅＷｉｒｅを含むが、これに限定されない、任意の既知の内部または外部バス技術を使用することができる。
【００３７】
コンピューター可読媒体６１０は、不揮発性記憶媒体（例えば、光ディスク、磁気ディスク、フラッシュドライブなど）または揮発性メモリメディア（例えば、ＳＤＲＡＭ、ＲＯＭなど）を含む。しかし、言及するとき、非一時的なコンピューター可読記憶媒体、コンピューター可読記憶媒体、およびコンピューター可読記憶装置は、エネルギー、キャリア信号、電磁波、および信号そのものなどの媒体を明示的に排除する。
【００３８】
コンピューター可読媒体６１０は、オペレーティングシステム（例えば、Ｍａｃ  ＯＳ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）を実行するための様々な命令６１４を含むことができる。このオペレーティングシステムは、マルチユーザ、マルチプロセッシング、マルチ任務、マルチスレッド、リアルタイムなどであってもよい。オペレーティングシステムは、以下を含む基本任務を実行するが、これらに限定されない：入力装置６０４からの入力を識別する；ディスプレイ装置６０６に出力を送信する；コンピューター可読媒体６１０上のファイルおよびディレクトリを追跡する；直接またはＩ／Ｏコントローラーを介して制御できる周辺装置（例えば、ディスクドライブ、プリンタなど）を制御する；またはバス６１２上のトラフィックを管理する。ネットワーク通信命令６１６は、ネットワーク接続（例えば、ＴＣＰ／ＩＰ、ＨＴＴＰ、イーサネット（登録商標）などの通信プロトコルを実装するためのソフトウェア）を確立して維持することができる。
【００３９】
グラフィック処理システム６１８は、グラフィックおよび画像処理能力を提供する命令を含むことができる。アプリケーション６２０は、図１〜５を参照して説明したプロセスを使用または実行するアプリケーションとすることができる。これらのプロセスは、オペレーティングシステム６１４に実行することもできる。
【００４０】
サービスコントローラー６２２は、プロセッサー６２２および／またはオペレーティングシステム６１４とは独立して動作するコントローラーとすることができる。いくつかの実装形態では、プロセッサー６０２が起動され、オペレーティングシステム６１４がプロセッサー６０２にロードされる前に、サービスコントローラー６２２に電力供給され、動作可能になる。例えば、サービスコントローラー６２２は、専用ネットワークインターフェイスまたは他の入力装置を介して計算装置のＯＳ前管理を提供することができる。例えば、システムコントローラー６２２は、ベースボード管理コントローラーであり、装置センサー（例えば、電圧、温度、扇風器など）を監視し、故障解析のためのイベントを記録し、ＬＥＤ誘導診断を提供し、電力管理を実施する、またはインテリジェント・プラットホーム管理インターフェイス（ＩＰＭＩ）、キーボード、ビデオ、マウス（ＫＶＭ）リダイレクション、ＳＯＬ（Ｓｅｒｉａｌ  Ｏｖｅｒ  ＬＡＮ）、および／またはその他のインターフェイスを介してリモート管理機能を提供する。サービス制御装置６２２は、図１〜５を参照して説明したプロセスを実施することができる。
【００４１】
上述した特徴は１つまたは複数のコンピュータープログラムで有利に実施され、そのプログラムは少なくとも１つプログラマブルプロセッサーを有するプログラマブルシスタムによって実行される。そのプログラマブルシステムは、データ保存システムと、少なくとも１つの入力装置と、少なくとも１つの出力装置からデータ及び命令を受信する、又はそれらにデータ及び命令を送信するように連結されるプロセッサーを含む。コンピュータープログラムとは、コンピューターで直接的または間接的に使用されて、特定の動作を実行又は特定の結果をもたらすための一連の命令である。コンピュータープログラムは、コンパイルまたはインタプリタ言語を含む任意の形式のプログラミング言語（Ｏｂｊｅｃｔｉｖｅ−Ｃ、Ｊａｖａ（登録商標）など）で記述することができ、且つスタンドアロンプログラムまたはモジュール、構成要素、サブルーチン、またはコンピューティング環境に適する他のユニットを含む任意の形式で展開することができる。
【００４２】
命令プログラムに実行のための適切なプロセッサーは、一例として、任意の種類のコンピューターの中に、汎用マイクロプロセッサーおよび専用マイクロプロセッサーの両方を含むか、単一のプロセッサーまたは複数のプロセッサーまたはコアのうちの１つを含む。一般的に、プロセッサーは読み出し専用メモリまたはランダムアクセスメモリ、またはその両方から命令およびデータを受信する。コンピューターの必須要素は、命令を実行するプロセッサーと、命令およびデータを記憶するための１つまたは複数のメモリである。一般的に、コンピューターは、データファイルを格納するための１つまたは複数の大容量保存装置を含む、またはそれと通信できるように動作可能に連結される。そのような装置は、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、および光ディスクを含む。コンピュータープログラム命令およびデータを具体的に実施する保存装置としては、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリ装置などの半導体メモリ装置を含むすべての形態の不揮発性メモリ、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、またはＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクが含まれる。プロセッサーおよびメモリは、ＡＳＩＣ（特定用途向け集積回路）によって補足または組み込むことができる。
【００４３】
ユーザとの対話を提供するために、本発明の特徴は、ユーザに情報を表示するためのＣＲＴ（ブラウン管）またはＬＣＤ（液晶ディスプレイ）モニタなどの表示装置と、キーボードおよびユーザがコンピューターへの入力を提供するマウスまたはトラックボールのようなポインティングデバイスとを含むことができる。
【００４４】
この特徴は、データサーバなどのバックエンドコンポーネントを含むコンピュータシステム、またはアプリケーションサーバまたはインターネットサーバなどのミドルウェアコンポーネントを含むコンピュータシステム、またはそのようなフロントエンドコンポーネントを含むコンピュータシステムで実行することができるグラフィカルユーザインターフェイスまたはインターネットブラウザを有するクライアントコンピューター、またはそれらの任意の組み合わせとして実行することができる。システムの構成要素は、通信ネットワークなどの任意の形式または媒体のデジタルデータ通信によって接続することができる。通信ネットワークの実施形態には、例えば、ＬＡＮ、ＷＡＮ、およびインターネットを形成するコンピューターおよびネットワークが含まれる。
【００４５】
コンピュータシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバは、一般に、互いに遠隔であり、典型的にはネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピューター上で実行され、互いにクライアント−サーバ関係を有するコンピュータープログラムによって実行される。
【００４６】
本文に開示された実施形態の１つまたは複数の特徴またはステップは、ＡＰＩを使用して実行することができる。ＡＰＩは、コーリングアプリケーションと、サービス提供、データ提供、または演算を実行する他のソフトウェアコード（例えば、動作システム、ライブラリルーチン、関数）との間で渡り合う１つ又は複数のパラメータに定義することができる。
【００４７】
ＡＰＩは、ＡＰＩ仕様書に定義されているコール規約に基づいて、パラメータリストまたは他の構造を介して１つまたは複数のパラメータを送受信するプログラムコード内の１つまたは複数のコールとして実行できる。パラメータには、定数、キー、データ構造、オブジェクト、オブジェクトクラス、変数、データ型、ポインタ、配列、リスト、または別のコールを指定できる。ＡＰＩコールおよびパラメータは、任意のプログラミング言語で実行できる。プログラミング言語は、ＡＰＩをサポートする機能にアクセスするためにプログラマーが採用するボキャブラリーおよびコーリング規則を定義することができる。
【００４８】
いくつかの実施形態では、ＡＰＩコールは、特定のアプリケーションに、そのアプリケーションを実行する装置の能力（ｃａｐａｂｉｌｉｔｉｅｓ）、例えば入力能力、出力能力、処理能力、電源能力、通信能力などを報告することができる。
【００４９】
以上、いくつかの実施形態が説明されている。しかし、様々な変更がなし得ることが理解されるであろう。例えば、説明された流れに他のステップを追加又は省略してもよく、説明されたシステムに他の構成要素を追加又は削除されてもよい。従って、他の実施態様も後述の請求項の範囲内に含まれる。
【００５０】
添付の特許請求の範囲内の態様を説明するために様々な実施形態および他の情報が使用されたが、当業者であれば実施形態における特定の特徴または配置に基づいて、さまざまな変更を導き出すことができる。さらに、いくつかの主題は、構造的特徴および／または方法ステップの実施形態に特定の用語で記述されているかもしれないが、添付の特許請求の範囲に定義された主題は必ずしもこれらの記載された特徴または動作に限定されない。例えば、そのような機能は、異なる方法で配布されてもよいし、本明細書で特定されたもの以外の構成要素で実行されてもよい。むしろ、記載された特徴およびステップは、添付の特許請求の範囲内のシステムおよび方法の構成要素の実施形態として開示される。
【符号の説明】
【００５１】
１００、２００、３００、４００：ブロック図
１０３−１１０、２０３−２１０、３０１、３０６、３１１、４０１、４０７、４１３：サーバノード
１０２、２０２：管理ノード
１１１−１１８、３０２、３０７、３１２、４０２、４０８、４１４：コントローラー
１１９、２１９：ラックシステム
１２０−１２２：バックプレーン
２１１−２１８、２３１：連接器
２２１−２２８、３０４、３０９、３１４、４０６、４１２、４１７：スマートプラグ
２３０：ラック管理ケーブル
３０３、３０８、３１３、４０３、４０９、４１５：ポート
３０５、３１０、３１５：ＵＳＢ−Ｉ２Ｃ変換器
３１６、３１７、３１８：ＵＳＢ連接器
３１９、４１９：Ｉ２Ｃバス
１２３：管理バス
４０４、４１０、４１６：Ｉ２Ｃプラグ
４０５、４１１、４１８、ＣＰＬＤ：コンプレックスプログラマブルロジック装置  
５００：フローチャート図
５１０、５２０、５３０、５４０、５５０：ステップ
６０２：プロセッサー
６０４：入力裝置
６０６：ディスプレイ裝置
６０８：インターネットインターフェイス
６１０：コンピューター可読媒体
６１２：バス
６１４：オペレーティングシステム
６１６：インターネット通信
６１８：グラフィック処理システム
６２０：アプリケーション
６２２：システムコントローラー
【図１】
0006484282.tif 000002
【図２】
0006484282.tif 000003
【図３】
0006484282.tif 000004
【図４】
0006484282.tif 000005
【図５】
0006484282.tif 000006
【図６】
0006484282.tif 000007