(57)【特許請求の範囲】
【請求項１】
次のものを含む装置であって、
制御機能モジュールであって、対応する割り当てられたラック空間を有するラックマウント機器のセットを管理するように構成され、該セットは多数のキャビネットにまばらに分散しており、該セットによって占有されるラック空間の合計は、割り当てられたラック空間を上回らない、制御機能モジュール；および、
ユーザーインターフェースであって、制御機能モジュールに通信可能に接続し、および割り当てられたラック空間に対応する単一の仮想ラックにある該セットのユーザーに見える仮想表現を生成し、かつユーザーが該セットとインタラクトできるようにするためにユーザー制御を提供するように構成された、ユーザーインターフェース、
を含む装置。
【請求項２】
制御機能モジュールは、アセット位置システムから、セット内の各ラックマウント機器に関するセンサー情報を受信するように構成され、センサー情報は、地理的位置情報、ネットワークトポロジー情報、特定のラックマウント機器が存在するという指示、および特定のラックマウント機器が使用に有効であるという指示の少なくとも１つを含む、請求項１に記載の装置。
【請求項３】
アセット位置システムは、複数のパッシブＲＦＩＤタグおよび複数のアクティブＲＦＩＤタグの少なくとも１つを含む無線周波数識別（ＲＦＩＤ）システムを含む、請求項２に記載の装置。
【請求項４】
複数のパッシブＲＦＩＤタグおよび複数のアクティブＲＦＩＤタグの少なくとも１つは、複数のラックマウント機器との予め決められた関係の少なくとも１つを含み、予め決められた関係には、一対一の関係、多対一の関係、および一対多の関係が含まれる、請求項３に記載の装置。
【請求項５】
アセット位置システムは、少なくとも１つのフィルタパラメータに従ってラックマウント機器を検索し、かつ少なくとも１つのフィルタパラメータを満たすラックマウント機器としてセットを指定するように構成されたアセットフィルタを含む、請求項２に記載の装置。
【請求項６】
少なくとも１つのフィルタパラメータは、顧客識別子、機器メーカー、機器タイプ、機器の型番、機器の稼働状態、シリアルナンバー、地理的位置、およびネットワークトポロジーの位置の少なくとも１つを含む、請求項５に記載の装置。
【請求項７】
次のものを含む方法であって、
対応する割り当てられたラック空間を有するラックマウント機器のセットの制御を提供する工程であって、該セットは多数のキャビネットにわたってまばらに分散し、該セットによって占有されるラック空間の合計は、割り当てられたラック空間を上回らない、工程；
ユーザーに見える仮想表現を生成する工程であって、仮想表現は、割り当てられたラック空間に対応する少なくとも１つの仮想ラックにあるセットを描写する、工程；および、
ユーザーが該セットとインタラクトするのを可能にするために、ユーザーに制御を提供する工程、
を含む方法。
【請求項８】
アセット位置システムから、セット内の各ラックマウント機器に関するセンサー情報を
受信する工程をさらに含み、センサー情報は、地理的位置情報、ネットワークトポロジー情報、特定のラックマウント機器が存在することの指示、および特定のラックマウント機器が使用に有効であることの指示の少なくとも１つを含む、請求項７に記載の方法。
【請求項９】
アセット位置システムは、複数のパッシブＲＦＩＤタグおよび複数のアクティブＲＦＩＤタグの少なくとも１つを含む無線周波数識別（ＲＦＩＤ）システムを含む、請求項８に記載の方法。
【請求項１０】
複数のパッシブＲＦＩＤタグおよび複数のアクティブＲＦＩＤタグの少なくとも１つは、複数のラックマウント機器との予め決められた関係の少なくとも１つを含み、予め決められた関係は、一対一の関係、多対一の関係、および一対多の関係を含む、請求項９に記載の方法。
【請求項１１】
少なくとも１つのフィルタパラメータに従ってラックマウント機器を検索し、および少なくとも１つのフィルタパラメータを満たすセットに関してラックマウント機器を選択する工程をさらに含む、請求項７に記載の方法。
【請求項１２】
少なくとも１つのフィルタパラメータは、顧客識別子、機器メーカー、機器タイプ、機器の型番、機器の稼働状態、シリアルナンバー、地理的位置、およびネットワークトポロジーの位置の少なくとも１つを含む、請求項１１に記載の方法。
【請求項１３】
次のものを含む装置であって、
複数の分散型ラックマウント機器にある複数の割り当て可能なハードウェアコンポーネント；
複数のハードウェアコンポーネントを通信可能に接続する通信ネットワーク；
割り当て可能なハードウェアコンポーネントの各々の有効性を判定し、および有効性の判定に際して割り当て可能なハードウェアコンポーネントのセットを選択するように構成されたコントローラ；および、
ユーザーに該セットを単一のラックマウント機器として表すインターフェースを含み、およびユーザーが単一のラックマウント機器を操作できるようにするためのユーザー制御を含む、ハードウェア抽象化レイヤー、
を含む装置。
【請求項１４】
複数の割り当て可能なハードウェアコンポーネントの各々は、コンピュータ処理ユニット、メモリ、ネットワークインターフェース、および専用プロセッサの少なくとも１つを含む、請求項１３に記載の装置。
【請求項１５】
コントローラは、異なるプロトコルに従って動作するセット内の複数のコンポーネント間のインターオペラビリティを提供するように構成される、請求項１３に記載の装置。
【請求項１６】
コントローラは、少なくとも１つのフィルタパラメータに基づいてセットを選択するように構成され、少なくとも１つのフィルタパラメータは、顧客識別子、コンポーネントのタイプ、マシンタイプ、メーカー識別子、型番、シリアルナンバー、レイテンシ、バンド幅、輻輳、および通信ネットワークに関係するロード・バランシングを含む、請求項１３に記載の装置。
【請求項１７】
コントローラは、ユーザーによって提供される入力、装置上で動作するためにソフトウェアプログラムによって要求される必要とされる処理性能、装置上で動作するソフトウェアプログラムによって要求されるメモリ、および装置上で動作するサーバープログラムによって判定されるネットワークインターフェース基準の少なくとも１つに基づいたセット
の選択を適応させるように構成される、請求項１３に記載の装置。
【請求項１８】
インターフェースは、複数の異なるセットのための一般的なインターフェースを含む、請求項１３に記載の装置。
【請求項１９】
ハードウェア抽象化レイヤーは、ユーザーのタイプとソフトウェアプログラムのタイプの少なくとも１つに基づいた抽象化の複数の層を提供する、請求項１３に記載の装置。
【請求項２０】
インターフェースはフィルタ入力を含み、それによってユーザーはコントローラに少なくとも１つのフィルタタイプを入力することができる、請求項１３に記載の装置。
【請求項２１】
次のものを含む方法であって、
複数の分散型ラックマウント機器の各々の有効性を判定する工程であって、各ラックマウント機器は複数の割り当て可能なハードウェアコンポーネントの少なくとも１つを含む、工程；
有効性から、複数の選択された分散型ラックマウント機器を判定する工程であって、複数の選択された分散型ラックマウント機器は、単一のコンピュータサーバーとして機能するのに十分な複数の割り当て可能なハードウェアコンポーネントを含む、工程；
十分な複数の割り当て可能なハードウェアコンポーネントを通信可能に接続する工程；および、
単一のコンピュータサーバーとして十分な複数の割り当て可能なハードウェアコンポーネントを表し、および単一のコンピュータサーバーを操作するための制御を含むインターフェースを含むハードウェア抽象化レイヤーを生成する工程、
を含む方法。
【請求項２２】
複数の割り当て可能なハードウェアコンポーネントの各々は、コンピュータ処理ユニット、メモリ、ネットワークインターフェース、および専用プロセッサの少なくとも１つを含む、請求項２１に記載の方法。
【請求項２３】
通信可能な接続を提供する工程は、異なるプロトコルに従って動作する十分な複数の割り当て可能なハードウェアコンポーネント間のインターオペラビリティを提供する工程を含む、請求項２１に記載の方法。
【請求項２４】
複数の選択された分散型ランキングを判定する工程は、複数の有効な分散型マシンをフィルタリングする工程を含み、フィルタリングは、顧客識別子、コンポーネントタイプ、マシンタイプ、メーカー識別子、型番、シリアルナンバー、レイテンシ、バンド幅、輻輳、およびロード・バランシングを含む少なくとも１つのフィルタパラメータの使用を含む、請求項２１に記載の方法。
【請求項２５】
複数の選択された分散型ラックマウント機器の判定する工程は、ユーザー入力、単一のコンピュータサーバー上で動作するソフトウェアプログラムによって要求される処理性能、プログラムによって要求されるメモリ、およびプログラムによって判定されるネットワークインターフェース基準の少なくとも１つに基づいて適応される、請求項２１に記載の方法。
【請求項２６】
ハードウェア抽象化レイヤーは、ユーザータイプおよびソフトウェアプログラムタイプの少なくとも１つに基づいた抽象化の複数層を提供する、請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
＜関連出願への相互参照＞
本出願は、２０１６年１０月５日に出願された米国仮特許出願６２／４０４，３１７号の優先権の利益を主張する。本明細書で参照される全ての他の外部文献は、それらの全体が参照により組み込まれる。
【０００２】
本明細書に開示される主題は、概してデータセンターにおけるアセット管理に関し、およびとりわけデータセンターにおけるトラッキング機器に使用するための装置、システム、および方法に関する。
【背景技術】
【０００３】
背景についての記述は、本発明を理解するのに有用であろう情報を含む。本明細書に提供される情報のいずれもが先行技術であること、または本請求の発明に関連すること、または具体的にまたは暗に参照される刊行物のいずれもが先行技術であることを自認するものではない。
【０００４】
分散ネットワークシステム内でのアセット管理は、いくつかの理由により非常に困難であり得る。データセンター施設は、多数の第三者によって所有される機器をホストする場合もある。例えば、コロケーションデータセンターでは、顧客は、データセンター内の小さなスペース、通常はケージのない（ｃａｇｅｄ−ｏｆｆ）エリア、あるいはキャビネットまたはラック内のスペースを借りる。典型的には、これには、様々な顧客によって所有される設備を分離する必要があり、結果としてスペース、電力、冷却、および他のデータセンター資源の非能率的な使用につながる。
【０００５】
アセットが多数のデータセンターにわたって分散している場合、顧客の視点に立てばアセット管理は困難になり得る。例えば、リスク緩和のための戦略として、電力損失、自然災害および窃盗による破壊を最小化するために、地理的に分散している複数のデータセンターに機器を分散させることがあげられる。
【０００６】
機能の仮想化は多数のユニットに広がり得るため、仮想化された構築物（例えば仮想マシン（ＶＭ）等）が物理的に位置する場所を特定するのが困難になり得る。仮想化されたサービスおよび／または資源を借りるいくつかの例では、借りられるサービスおよび／または資源を提供するために、適切なハードウェアが確実に存在するようにすることが望ましいであろう。いくつかの適用事例では、そのようなハードウェア資源を追跡すると有用であろう。
【０００７】
機器は非常に高価であり得るため、単一の施設に余分なデバイスを有するのは、必ずしも経済的実用性があるとは限らない。代替ユニットまたはスペアは、大きな地理的距離（例えば＞１００ｋｍ）により隔てられた他の施設に位置している場合もある。したがって、代替ユニットおよび輸送中のユニットを含む余分なデバイスをよりよく管理し、かつ追跡すると有用であろう。
【０００８】
したがって、１つのデータセンターに、または多数のデータセンターにわたって分散しているデバイスのアセット管理は、デバイスの状況の認識、モニタリング、追跡、および操作を改善する仮想化ツールの使用によって改善することができる。当該技術分野におけるこれらの必要および他の必要は、本開示の態様により対処される。
【０００９】
本明細書で言及されるすべての刊行物は、個々の刊行物または特許出願が引用によって組み込まれていることが具体的かつ個別に示される程度まで、引用によって組み込まれる。組み込まれた文献において用語の定義または使用が一貫しない、または本明細書で提供される該用語の定義と矛盾する場合、本明細書で提供される該用語の定義が適用され、および文献中の該用語の定義は適用されない。
【００１０】
本開示のいくつかの態様では、本発明の主題の特定の実施形態を記述し、および請求するために使用される、要素の量、濃度、反応状態などの特性を表す数字は、いくつかの例では用語「約」によって修飾されているものと理解される。したがって、本開示のいくつかの態様では、明細書と添付される特許請求の範囲に明記される数的パラメータは、特定の実施形態によって得ようと試みられる望ましい特性に依存して変化し得る近似値である。本開示のいくつかの態様では、数的パラメータは、報告される有効数字の数に照らして、および通常の仕上げ技術を適用することによって解釈されるべきである。本開示のいくつかの態様の広い範囲を明記する数値範囲とパラメータは近似値であるが、具体的な例において言及される数値は、実用可能な程度に正確に報告される。本開示のいくつかの態様で示される数値は、個々の試験測定値に見られる標準偏差から必然的にもたらされる一定の誤差を含む場合もある。
【００１１】
文脈がそうでないと規定しない限り、本明細書に明記されるすべての範囲は、そのエンドポイントを含むと解釈されるべきであり、および制限のない範囲は、営利的実用性のある値のみを含むと解釈されるべきである。同様に、文脈がそうでないと指示しない限り、値のすべての列挙は、中間値を含むものと見なされるべきである。
【００１２】
本明細書の記載および以下の特許請求の範囲で使用されるように、「ａ」「ａｎ」および「ｔｈｅ」の意味には、文脈が他で明確に規定しない限り、複数の参照物が含まれる。さらに、本明細書の記載に使用されるように、「において（ｉｎ）」の意味には、文脈が他で明確に規定しない限り「において（ｉｎ）」と「上で（ｏｎ）」が含まれる。
【００１３】
本明細書における値の範囲の列挙は単に、範囲内にある各個別の値を個々に指すための省略表現方法として意図されている。本明細書に別記されない限り、各個別の値は、あたかも本明細書で個々に列挙されているかのように本明細書に組み込まれる。本明細書で別記されない限り、または文脈によって明確に否定されない限り、本明細書に記載されるすべての方法は、任意の適切な順序で実行され得る。本明細書において特定の実施形態に関連して提供される、あらゆるすべての例または典型的な用語（例えば「など（ｓｕｃｈ  ａｓ）」）の使用は、本発明の主題をより良く例示するように意図されているにすぎず、他に要求されない限り本発明の主題の範囲を限定するものではない。本明細書の用語は、本発明の主題の実施にとって不可欠な、請求されていない任意の要素を指示するものとして解釈されるべきでない。
【００１４】
本明細書に開示される発明の主題の代替的な要素または実施形態の分類は、限定として解釈されはしない。各群の構成員は、個別に言及され、かつ請求され、または群の他の構成員または本明細書に見出される他の要素と組み合わせることができる。群の１つ以上の構成員は、便宜上および／または特許性の理由により群に包含され、または群から削除され得る。そのような包含または削除が起きる場合、本明細書は修正されたものとして群を含むと見なされ、したがって添付される特許請求の範囲に使用される全てのマーカッシュ群の記述を満たす。
【発明の概要】
【００１５】
本開示の一態様では、システムと方法は、ＲＦＩＤ（ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）デバイスの、具体的にはＲＦＩＤデバイスが取り付けられているアセットの、位置を確認するためにリモートセンシングを行なう。ＲＦＩＤデバイス（アクティブまたはパッシブな送信器を含み得る）から受信した信号伝送は、センサー情報を生成するために処理され、各ＲＦＩＤデバイスに関する位置（および、場合によっては他の情報）を含む。ＲＦＩＤシステムから受信したセンサー情報は、多数の物理的ラックにわたって分散している一連のラックマウント機器の各々を識別し、およびラックマウント機器のリストを生成するために使用され得る。リストはフィルタリングされたリストを生成するためにフィルタリングされ、フィルタリングは、センサー情報と、少なくとも１つの追加のフィルタパラメータとに基づき得る。仮想ラックインターフェースが提供され、それはフィルタリングされたリストのラックマウント機器を単一のラックに存在するものとして表記する。
【００１６】
仮想ラックインターフェースは、グラフィカルユーザーインターフェースを含んでもよく、および仮想ラックに示される各々のラックマウント機器をユーザーが識別し、追跡し、管理し、制御し、および／または操作することができるようにすることができる。インターフェースは、単一のラックに存在するように地理的に分散した一連の機器を表すグラフィカルユーザーインターフェースを含むことができる。インターフェースは、ラックマウント機器の各々を操作するためのユーザー制御を含み得る。ユーザー制御は、それらの機器が同じラックにある場合のそれらの動作法と機能的に一致する方法で、地理的に分散した機器の動作を仮想化するデバイスと方法を構成することができる。仮想ラックインターフェースは、この仮想化された操作を提供するためのデバイスと方法を構成するために、センサー情報を利用することができる。
【００１７】
センサー情報は、地理的な位置情報、ネットワークトポロジー、特定のラックマウント機器が存在するという指示、および特定のラックマウント機器が使用可能であるという指示の少なくとも１つを含むことができる。
【００１８】
ＲＦＩＤタグは、一対一の関係、多対一の関係、および一対多の関係を含む、ラックマウント機器のセットとの予め決められた関係を含む。
【００１９】
いくつかの態様では、少なくとも１つの追加のフィルタパラメータは、顧客識別子、機器メーカー、機器タイプ、機器の型番、機器の稼働状態、シリアルナンバー、地理的位置、およびネットワークトポロジーの位置の少なくとも１つを含む。
【００２０】
本開示の他の態様では、装置は、ラックマウント機器のセットに付けられるＲＦＩＤシステム、および少なくとも１つのＲＦＩＤタグリーダーを含む。ＲＦＩＤシステムは、複数のラックに収容されたフィルタリングされたラックマウント機器のセットを識別するために、予め決められたラックマウント機器のセットが存在することを確証し、および、少なくとも１つのフィルタパラメータに基づいて、予め決められたラックマウント機器のセットをフィルタリングするように構成されたフィルタを含む。ハードウェア抽象化レイヤーは、フィルタリングされたラックマウント機器のセットを、フィルタリングされたラックマウント機器のセットを収容する単一のラック（例えばキャビネット）として表すインターフェースを含む。ハードウェア抽象化レイヤーは、フィルタリングされたラックマウント機器を操作するためのユーザーインターフェース制御を含み得る。
【００２１】
本開示の他の態様では、アセット管理システムはメモリとプロセッサを含む。メモリは、多数の物理的ラックに分散した多数のラックマウント機器に付けられたＲＦＩＤタグから受信したセンサー情報、および各ラックマウント機器に関連する、およびシャーシごとのラックユニットの数を含む、シャーシ情報を保存する。プロセッサは、少なくとも１つのフィルタパラメータに従ってラックマウント機器のセットをフィルタリングし、フィルタリングされたリストの各ラックマウント機器に関するセンサー情報とシャーシ情報を受信し、フィルタリングされたリストのラックマウント機器を、センサー情報とシャーシ情報に基づいて少なくとも１つの仮想ラックへと分類し、および少なくとも１つの仮想ラックに基づいて仮想ラックインターフェースを生成するために、動作可能である。仮想ラックインターフェースは、仮想ラックのラックマウント機器の操作のためのユーザーインターフェース制御を含み得る。
【００２２】
本開示の他の態様では、コンピュータシステムは、多数の分散しているマシンにある割り当て可能なハードウェアコンポーネント；ハードウェアコンポーネントと通信可能に接続している通信ネットワーク；各コンポーネントの有効性を判定する際にハードウェアコンポーネントのセットを選択するように構成されたコントローラ；および、該セットを単一のマシンとして表すインターフェースを含むハードウェア抽象化レイヤーを含む。インターフェースは、ハードウェアコンポーネントを別個に、および／またはまとめて操作するためのユーザーインターフェース制御を含み得る。ハードウェア抽象化レイヤーは、ハードウェアコンポーネントを操作するためのユーザーインターフェースに反応するように構成することができる。ハードウェア抽象化レイヤーは、ユーザーにはハードウェアコンポーネントが単一のマシンにあるように見えるような方法で、ハードウェアコンポーネントを動作させることができる。ハードウェア抽象化レイヤーは、コントローラに通信可能に接続させることができ、および、コントローラ等によって、ハードウェアコンポーネントの有効性（および／または性能）の変化に応じてユーザーインターフェースを更新するように構成可能である。ハードウェア抽象化レイヤーは、それらの有効性（および／または性能）の変化に応じた方法で、ハードウェアコンポーネントの動作を適応させることができる。
【００２３】
本開示の一態様では、方法とシステムは、分散型マシンのセットの有効性を判定するために提供され、各マシンは、割り当て可能なハードウェアコンポーネントのセットの少なくとも１つを含む。分散型マシンのセットは、有効な分散型マシンのセットから選択され、そうすると、選択された分散型マシンのセットは、単一のコンピュータサーバーとして機能するのに十分な数の割り当て可能なハードウェアコンポーネントを含むこととなる。選択された分散型マシンのセットは、共に通信可能に接続され、およびハードウェア抽象化レイヤーは、単一のデバイスとしての選択された分散型マシンに、割り当て可能なハードウェアコンポーネントのセットを表すインターフェースを含むように提供される。インターフェースはグラフィカルユーザーインターフェースを含むことができる。インターフェースは、選択された分散型マシンのセット、および／または選択された分散型マシンにある割り当て可能なハードウェアコンポーネントを操作するために構成可能な、ユーザー制御などの制御を含むことができる。ハードウェア抽象化レイヤーは、分散型マシンおよび／または割り当て可能なハードウェアコンポーネントの選択および／または動作を適応させるために、分散型マシン（および／または割り当て可能なハードウェアコンポーネント）の有効性（および／または性能）における変化に反応することができる。
【００２４】
本発明の主題の特徴と利点は、以下の記載に明記され、一部は記載から明らかになり、または本発明の主題の実施によって習得されるだろう。本発明の主題の特徴と利点は、添付の特許請求の範囲で特に指摘される機器および組み合わせによって実現され、獲得されるだろう。本発明のこれらの特徴および他の特徴は、以下の記載と添付の特許請求の範囲によってより完全に明白になり、または本明細書で明記されるように本発明の主題を実施することによって習得されるだろう。
【図面の簡単な説明】
【００２５】
本開示の態様は例として示され、添付の図面に限定を含まず、図面内の類似する参照符号は類似の要素を指す。
【図１】本発明の主題のいくつかの態様に係るシステムを表すブロック図である。
【図２】本発明の主題のいくつかの態様に係る方法を表すフローダイアグラムである。
【図３】本発明の主題の態様に係る他の方法を表すフローダイアグラムである。
【図４】本発明の主題の特定の態様に係る方法と、関連するデータ構造を例示する。
【図５】本発明の主題のいくつかの態様に係る仮想ラックアセット追跡エンジンを操作するための方法を表す。
【図６】本発明の主題の態様で使用され得るコンピュータシステムの典型的なブロック図を例示する。
【図７】本発明の主題のいくつかの態様に係る方法を例示する。
【図８】本発明の主題の他の態様に係る方法を例示する。
【図９】本発明の主題のいくつかの態様に係る方法を表すフローダイアグラムである。
【図１０】本発明の主題のいくつかの態様に係るシステムのブロック図である。
【発明を実施するための形態】
【００２６】
本開示の様々な態様が以下に記載される。本明細書の教示は広範な形態で具現され得ること、および本明細書に開示される特定の構造、機能、またはその両方は単なる典型であることが、明白であろう。本明細書の教示に基づき当業者は、本明細書に開示される態様が他のいかなる態様とも無関係に実施され得ること、およびこれらの態様の２つ以上は様々な手段で組み合わされてもよいことを理解すべきである。例えば、任意の数の本明細書に明記される態様を使用して、装置を実装し、または方法を実施してもよい。加えて、他の構造、機能、または本明細書に明記される１つ以上の態様に加えた構造と機能、または本明細書に明記される１つ以上の態様以外を使用して、そのような装置を実装し、またはそのような方法を実施してもよい。
【００２７】
以下の記載では、本発明の主題の徹底した理解を提供するために、説明目的で多数の具体的な詳細が明記される。しかしながら、本明細書に示され、記載される特定の態様は、本発明の主題を特定の形態に制限するようには意図されておらず、むしろ本発明の主題は、特許請求の範囲によって規定される本発明の主題の範囲内にある全ての修正、同等物、および代替物を包含することが理解されるべきである。
【００２８】
コンピュータを対象とする任意の言語は、サーバー、インターフェース、システム、データベース、エージェント、ピアー、エンジン、コントローラ、モジュール、または、個々にまたは共同して動作する他のタイプのコンピューティングデバイスを含む、コンピューティングデバイスの任意の適切な組み合わせを含むように読み取られなければならないことに留意すべきである。コンピューティングデバイスは、実体のある非一時的コンピュータ可読記憶媒体（例えばハードドライブ、ＦＰＧＡ、ＰＬＡ、ソリッド・ステート・ドライブ、ＲＡＭ、フラッシュ、ＲＯＭ等）に保存されたソフトウェア命令を実行するように構成されたプロセッサを含むと理解すべきである。ソフトウェア命令は、本開示の装置に関して以下で議論されるように、役割、責任、または他の機能を提供するために、コンピューティングデバイスを構成する、またはプログラムする。さらに、本開示の技術は、コンピュータベースのアルゴリズム、プロセス、方法または他の命令の実施に関連する本開示の工程をプロセッサに実行させるソフトウェア命令を保存する、非一時的コンピュータ可読媒体を含むコンピュータプログラム製品として具現することができる。いくつかの実施形態では、場合によっては様々なサーバー、システム、データベースまたはインターフェースが、ＨＴＴＰ、ＨＴＴＰＳ、ＡＥＳ、公開鍵と秘密鍵の交換、ウェブサービスＡＰＩ、既知の金融取引プロトコル、または電子情報を交換する他の方法に基づいて、標準化されたプロトコルまたはアルゴリズムを使用して、データを交換する。デバイス間のデータ交換は、パケット交換ネットワーク、インターネット、ＬＡＮ、ＷＡＮ、ＶＰＮ、または他のタイプのパケット交換ネットワーク；回線交換ネットワーク；セルスイッチングネットワーク；または他のタイプのネットワークを介して実行され得る。
【００２９】
本明細書の記載と以下の特許請求の範囲全体で使用されるように、システム、エンジン、サーバー、デバイス、モジュール、または他の演算器が、メモリのデータに機能を行なう、または実行するように構成されると記載される場合、「構成された」または「プログラムされた」の意味は、メモリに保存された対象のデータまたはデータオブジェクトに機能のセットを実行するための、演算器のメモリに保存されたソフトウェア命令のセットによってプログラムされた演算機の１つ以上のプロセッサまたはコアとして定義される。
【００３０】
開示される技術が、例えば非限定的な例として、どのようにユーザーが物理的なハードウェアデバイスとインタラクトできるか、そうでなければ物理的なハードウェアデバイスを管理できるかを改良することを含む、多くの有利な技術的効果を提供することを理解すべきである。詳細な説明で開示される工程は、単なるコンピュータの実装よりも、仮想化プロセスに著しく多くのことを追加する。例えば、抽象化レイヤーまたは仮想オブジェクトにインターフェースを提供することによって、本開示のこの態様および他の態様は、コンピュータを使用してデータを回収して組み合わせるという単なる概念を越える。さらに、インターフェースは、抽象化レイヤーまたは仮想オブジェクトの特定の使用を提供し、それは、１つのデータセンター全体におよび／または複数のデータセンターにまたがって分散する物理デバイスの管理、追跡、制御、および他の直接的操作法を提供する。
【００３１】
開示される態様の１つの焦点は、ヒトの能力を越えて、コンピューティングデバイスの構造または構成が莫大な量のデジタルデータに対して動作できるようにすることである。デジタルデータは現実のアセットと仮想アセットの両方を表すが、デジタルデータは、アセットではなく感知されたＲＦＩＤ情報に基づいた、現実のアセットの１つ以上のデジタルモデルの典型であることが理解されるべきである。コンピューティングデバイスのメモリにあるそのようなデジタルモデル（例えば、仮想アセット、仮想ラック等）のインスタンシエイションによって、コンピューティングデバイスは、ユーザーがそのようなツールを欠いている場合にコンピューティングデバイスのユーザーに有益性を提供し得る方法で、デジタルデータまたはモデルを管理することができる。
【００３２】
以下の説明は、本発明の主題の多くの態様の例を提供する。各々の態様は、本発明の要素の１つの組み合わせを表すことができるが、本発明の主題は、開示される要素の全ての可能性のある組み合わせを含むと見なされる。したがって、一実施形態が要素ＡとＢとＣを含み、および第２の実施形態が要素ＢとＤを含む場合、本発明の主題はまた、明確に開示されなかったとしても、Ａ、Ｂ、ＣまたはＤの他の残りの組み合わせを含むと見なされる。
【００３３】
本明細書において使用されるように、および文脈が他で指示しない限り、用語「に接続した」は、直接の接続（互いに結合した２つの要素が互いに接している）、および間接的な接続（少なくとも１つの追加の要素が２つの要素の間に配置されている）の両方を含むことが意図されている。したがって、用語「に接続された」および「と接続された」は同義的に使用される。
【００３４】
図１は、本発明の主題のいくつかの態様に係るシステムを例示する。システムは、１つ以上のデータセンターに、ラックマウント機器などのアセット（１１１−１１９）を収容するキャビネット（すなわち機器ラック）（１１０）を含む。アセット（１１１−１１９）の例として、コンピュータ、サーバー、スイッチ、ルーター、電源および記憶装置があげられる。キャビネット（１１０）は従来のサーバーラックを含んでもよい。
【００３５】
例えば、１９インチのラックは、多数の機器モジュールをマウントするための標準的フレームまたはエンクロージャーである。ラックは、高さ１．７５インチ（４４．４５ｍｍ）の領域に分けられる。そのような領域は、「単位（ｕｎｉｔ）」を表すＵとして一般に知られ、およびラック内の高さはこの単位によって測定される。ラックマウント機器は通常、いくつかの整数のＵを占めるように設計されている。例えば、オシロスコープは高さ４Ｕであってもよく、およびラックマウントコンピュータは典型的に高さ１Ｕから４Ｕである。ブレードサーバエンクロージャーは１０Ｕを必要とする場合もある。業界基準のラックは４２のスロットを含む。いくつかの例では、ラックは、２２スロットなどのより少ない数のスロット、またはより多くのスロットを含んでもよい。
【００３６】
アセットは、アセット位置システム（１２０）によって追跡され、それはリアルタイムで、データセンター要員に、ラック機器の識別、位置、安全、およびモニタリングを提供する電子ハードウェアおよびソフトウェアの集積システムを含むことができる。
【００３７】
本発明の主題の一態様では、アセット位置システム（１２０）は、ＲＦＩＤタグ（１２１）とリーダー（１２２）を使用するＲＦＩＤベースのシステムである。１つ以上のＲＦＩＤタグ（１２１）は各アセットに付けられてもよく、およびＲＦＩＤリーダー（１２２）はアセット検出を行なう。本発明の主題のいくつかの態様では、１つ以上のＲＦＩＤリーダー（１２２）をラック（１１０）にマウントしてもよい。いくつかの態様では、１つ以上のリーダーをラックの各スロットに提供してもよい。
【００３８】
アセット位置システム（１２０）からのデータ（位置情報または位置を指示するデータ）は、アセット管理システム（１３０）の制御機能モジュール（１３１）に伝達される。アセット管理システム（１３０）は、管理データベース（１４０）とインターフェースで接続し、後者はアセット位置システム（１２０）から受信した情報を保存する。管理データベース（１４０）はさらに、他の情報のうちアセット（１１１−１１９）へのＲＦＩＤタグの関連付情報、アセット（１１１−１１９）についての情報、および各アセットの所有権などのアセット管理情報を保存する。さらに、管理データベース（１４０）は、顧客のリース期間、各顧客に割り当てられたラックの数、それらのラックの顧客の利用、および１人の顧客当たりの運転経費などの、コロケーションサービス情報を保存してもよい。管理データベース（１４０）は、各アセットのリアルタイムの状態、メンテナンススケジュール、および電力消費などの動作情報を含んでもよい。管理データベース（１４０）は、アセット情報（例えばシリアルナンバー、保証書、型番等）、管理情報（例えば管理情報、システム管理者情報、電話番号、権利、許可等）等を含む他の種類の情報を含んでもよい。
【００３９】
短期賃貸でテナントにラック空間を貸す公共データセンターは、コロケーションデータセンターと呼ばれる。コロケーションでは、顧客は、データセンター内のスペース、通常はケージのない（ｃａｇｅｄ−ｏｆｆ）エリア、またはキャビネット、またはラック内のスペースを借りる。コロケーション施設から借りるテナントは、いくつかのラック、または何百ものラックを含むいくつかのフロアを借りてもよい。ターンキーデータセンターのリースとコロケーションの契約において、データセンターのオペレーターは、電力を整え、かつ空間を冷やすのに必要な設備を提供する。データセンターのユーザーが利用可能な電力の量は、土地の所有者とユーザーの両方にとって空間のサイズよりも重要である。したがって、データセンターのリースとコロケーションの契約下での賃貸料はしばしば、空間のサイズによってではなく、ユーザーに与えられる電力の量または電源回路の数によって判断される。
【００４０】
制御機能モジュール（１３１）および管理データベース（１４０）に接続されたユーザーインターフェース（１３２）は、アセットを見るため、および管理するために、データセンターの管理者と顧客のいずれか、または双方によって使用される。本発明の主題の一態様では、制御機能モジュール（１３１）は、データセンター資源の効果的な利用を提供するプロセスの一部として、アセットの仮想表現を提供する。例えば、１人の顧客によって十分に使用されていないラックは、別の顧客の機器を収容するために使用されてもよく、したがって冷却、電力、空間、保全、および他のデータセンター資源をより効果的に利用できるようにする。データセンター要員がサーバー、バーチャルマシン等を含むアセットを管理するのを助けるために、仮想表現はユーザーインターフェース（１３２）のディスプレイとして与えられてもよい。本発明の主題のいくつかの態様では、ＲＦＩＤアセットタグは、仮想マシンなどの、仮想化された資源に関する、現実世界において価値のある基盤を示す。
【００４１】
本発明の主題の他の態様では、制御機能モジュール（１３１）は、顧客のためのリスク緩和プロセスの一部として、アセットの仮想表現を提供する。物理的ラック全体を占有する代わりに、顧客は、リスク緩和戦略の一部として、場合によっては異なるデータセンターにある多数のラックにわたって、割り当てられたラック空間を分散させることを選択してもよい。これは、多数のラックの各々の一部（例えば１つ以上のラックユニット）を含む、まばらに分散しているラック空間を備えることができる。多数のラックの各々の残りの部分は、例えば、他の顧客に割り当てられてもよい。したがって、顧客の操作を完全に混乱させてしまう、電力損失、窃盗、または自然災害（例えば火事、洪水、地震等）のリスクは減じられる。制御機能モジュール（１３１）は、多数のキャビネットにわたって分散している、割り当てられたラック空間にあるデバイスを管理（モニタリング、制御および／または操作）するために構成可能であり得る。デバイスは異なるラックにある一方で、デバイスによって占有される全空間は、割り当てられたラック空間を超えない。割り当てられたラック空間（例えば仮想ラック）にあるデバイスの仮想表現は、データセンターの顧客が彼らのアセットを管理するのを助けるために、ユーザーインターフェース（１３２）のディスプレイとして与えられてもよい。本発明の主題のいくつかの態様では、ユーザーインターフェースは、顧客とデータセンター要員のいずれか、または両方によって、アセットの動作を制御するために使用されてもよい。
【００４２】
本発明の主題のいくつかの態様に従って、コンピューティングデバイスは、仮想ラックアセット追跡エンジンとして動作するように構成される。そのような態様では、コンピューティングデバイスの構成は、アセット追跡デバイスのメモリへのソフトウェア命令の保存、およびソフトウェア命令に従って実行するアセット追跡デバイスのプロセッサ上のアセット追跡モジュールへの実行を含んでもよい。ソフトウェア命令は、本明細書に開示される方法の工程の少なくともいくつかを実行するように構成されてもよい。
【００４３】
本開示の態様に従って、仮想表現のインスタンシエイションは、アセット管理システム内のデジタルオブジェクトを含む。これらのデジタルオブジェクトは、明確に管理または操作可能な、コンピュータ科学の意味におけるデジタルオブジェクトに対応している。したがって、所有者のラックの仮想表現は、現実世界では、場合によっては異なるデータセンターにある多数のラックに配置された機器を含む場合もあり、多数の対応するＲＦＩＤを有し得る。
【００４４】
図２は、本発明の主題のいくつかの態様に係る方法を表すフローダイアグラムである。物理アセットは、多数の区域、部屋、フロアおよびビルにわたるデータセンターのラックに収容されてもよい。さらに、物理アセットは多数のデータセンターに収容されてもよい。第一の工程（２０１）において、アセットフィルタが選択されてアセット管理システムに提供され、アセット管理システムはフィルタパラメータに従って、１つ以上のデータセンター内に収容されたアセットの探索を行うようにアセット位置システムに命令する。アセット管理システムは、フィルタパラメータを満たす物理アセットに関するアセット位置データ（２０２）を収集する（随意にフィルタリングする）。工程（２０２）に位置する物理アセットを示すリスト、または他の適切なデータ構造が、工程（２０３）に提供されてもよく、工程（２０３）は仮想ラックのアセットを分類する。本発明の主題のいくつかの態様に従って、仮想ラックにある物理アセットの分類は、続く工程（２４１−２４４）の１つ以上を促進する。一態様では、仮想ラックは、ユーザーインターフェースによってディスプレイ（２４１）用に処理される。他の態様では、仮想ラックは制御処理工程（２４２）へと入力され、制御処理工程（２４２）は例えば、グラフィカルユーザーインターフェースのユーザー制御を介してユーザーがアセットとインタラクトできるようにする場合もある。他の態様では、仮想ラックは協調工程（２４３）へと入力され、協調工程（２４３）は仮想ラックのアセットの操作を協調させるように構成される。さらに他の態様では、仮想ラックは再配置プロセス（２４４）へと入力され、再配置プロセス（２４４）は、予め決められた、または動的に推定された基準に基づいて、より適切な物理的位置を判定し得る。本発明の主題の態様は、工程（２４１−２４４）の様々な組み合わせを提供し得る。
【００４５】
本発明の主題の特定の態様に従って、工程（２０１）は１つ以上のフィルタ基準の選択を提供する。例えば、特定の顧客が所有する物理アセットがアセット位置システムによって位置づけられるように、アセットフィルタは顧客ＩＤを含んでもよい。したがって、工程（２０１）のフィルタパラメータは、工程（２０３）に続く１つ以上の工程（２４１−２４４）に対応する予め決められた基準に基づいて判定され得る。例えば、特定の顧客により所有される物理アセットは、顧客が借りたラック空間の利用を判定するディスプレイ工程（２４１）におけるプロセスのために選択され得る（２０１）。
【００４６】
いくつかの態様では、工程（２０１）のフィルタは、フィードバックメカニズム経由等で、工程（２４１−２４４）のいずれかのプロセスによって改良され、適応され、拡張され、そうでなければ変更され得る。例えば、工程（２４１−２４４）の１つ以上に従って動作するプロセスは、工程（２０３）からのアセットの現在のグループとの予め決められた目的を達成し損なうと、工程（２０１）において入力パラメータ（例えば、フィルタオプション）を適応させて、工程（２０３）によりアセット出力の新たなグループを生成し得る。工程（２０１）の選択基準の他の変化形体および適応物がさらに予想される。
【００４７】
本発明の主題の他の態様に従って、工程（２０１）の選択基準は、物理アセット（例えばメーカー、型番、アセットの一般的機能、その機能性能等）、アセットの状態（例えば、その現在のオペレーティングモード、そのメンテナンススケジュール、負荷、有効性、電力消費、健全さ、初期またはバックアップとしてのその使用等）、および／またはその位置（例えば地理的位置、ネットワークトポロジーに対する位置、他のアセットとの相対位置、相対的遅延等）を含み得る。
【００４８】
工程（２０２）において、各物理アセットの位置データはまた、アセットの存在を確証する役目を担い得る。さらに位置データは、アセットの有効性を判定し得る。例えば、位置データは、アセットが可能性として機能しているか（例えばアセットがデータセンターにある場合）、機能していないか（例えば、アセットが記憶装置にある、または輸送中である）を示し得る。本発明の主題のいくつかの態様では、工程（２０２）からの位置データは、工程（２０３）でアセットを分類するために使用されてもよい。１つの例では、近接するアセットは、一まとめにされてもよい。別の例では、地理的に分散したアセットは、分散アプリケーション用に分類されてもよい。本開示の様々な態様に従って、アセットの分類および／またはグループ内のアセットの配置は、物理的な距離、コスト、料金、仮想構築物（例えば仮想ラック、仮想ＲＡＩＤ等）への割り当て、電力、レイテンシ等を含む１つ以上のメトリクスに基づき得る。
【００４９】
工程（２０３）において、工程（２０２）からのフィルタリングされたアセットは、１つ以上の仮想ラックに分類されてもよい。仮想ラックは、物理アセットの表現を含み、それは、データセンター全体に分散する多数の物理的ラック、および／または異なるデータセンターのラックにあってもよい。例えば、まばらに分散したデバイスは、複数のラックの各々において有効なラックユニットの総数より少ない数を占める。したがって、特定の顧客、実体、用途または他の目的への全ラック空間の割り当ては、多数のラックにあるより小さな空間へと分割することができる。仮想ラックは、少なくとも１つの続くプロセス、工程（２４１−２４４）によって表されるもの等を促進する。例えば、ディスプレイプロセス（２４１）の仮想ラックは、顧客またはデータセンターのオペレーターが顧客のラックの利用を視覚化することを可能にする。制御プロセス（２４２）の仮想ラックは、多数の物理的ラックにあるラックマウント機器とのユーザーのインタラクションを促進し得る。同様に、仮想ラックは、ユーザーまたはマシンが開始した協調、および異なるラックの物理アセット間の協調（２４３）を促進することができる。いくつかの例では、仮想ラックは、１つ以上の基準を最適化するために１つ以上の物理アセットのための新たな物理アドレスを決定する再帰的アルゴリズムなどの、再配置プロセス（２４４）に使用され得る。
【００５０】
本発明の主題の一態様では、図３に記載される方法は、顧客によって所有されるラックマウント機器を含む仮想ラックが表示される、顧客識別子（３０１）を選択する工程を含む。ＲＦＩＤ追跡システムは、顧客（３０２）によって所有される機器（すなわち物理アセット）の各部分の位置を判定するために使用される。工程（３０２）はさらに、特定のＲＦＩＤタグに対応する機器が、顧客にラック空間を貸すデータセンター施設の１つにあることを確証する。
【００５１】
工程（３０３）で、アセット追跡モジュールは、仮想アセットオブジェクト（例えば、予め決められた数のラックユニット、例えば割り当てられたラック空間を含む仮想ラック）の仮想ラック識別子を、特有の機器識別子（それは場合によっては対応するＲＦＩＤタグを含み得る）に結合することによって、各物理アセットへと仮想ラック識別子を割り当てる。物理アセットが多数の物理的ラックにあり得る一方で、場合によっては、アセットは地理的に分離した施設にある場合もあり、顧客識別子に属する分散しているアセットは、一般的な仮想ラックに関連している。各物理アセットは、対応する数のラックユニットを含み、およびラックが予め決められた数のラックユニットを含むがゆえに、１群の物理アセットによって占有されたラック空間の合計が、仮想ラック（例えば割り当てられたラック空間）にあるラックユニットの数を超えないように、物理アセットは仮想ラックへと分類され得る。
【００５２】
本発明の主題の一態様に従って、工程（３０４）は、仮想ラックの内容の表示を提供する。例えば、グラフィカルユーザーインターフェース（ＧＵＩ）は、各物理アセットが同じ物理的ラックにあるかのように、仮想ラックの各ラックマウント機器の表現を表示するために生成され得る。ＧＵＩは、限定されないがデバイスのタイプ、型番、ハードウェア仕様、オペレーティングモード、運転費用、保守状態、および稼働状態を含む、各物理アセットについての情報を含み得る。
【００５３】
本発明の主題のいくつかの態様では、工程（３０４）は、各物理アセットにユーザー制御インターフェースを提供する工程をさらに含み得る。例えば、ユーザー制御は、ユーザーが制御パラメータを入力し、そうでなければ物理アセットの機能を遠隔で制御するのを可能にする工程を含み得る。ＧＵＩは、物理アセット上にある出力ディスプレイの再生を含み得る。
【００５４】
態様の他のセットでは、ＧＵＩは、ユーザーが異なる仮想ラック間で物理アセットを移動することができるようにする。本発明の主題のいくつかの態様に従って、ＧＵＩは、工程（３０１）、（３０２）、（３０３）および／または（３０４）を適応させ、フィルタリングし、そうでなければ変更する他のユーザー制御を含む。本開示のいくつかの態様に従って、仮想オブジェクトは物理デバイス間を移動することができる。そのような移動は、ユーザーによって、および／またはいくつかの内部または外部プロセスによって開始され得る。例えば、仮想サーバーは、ＲＦＩＤ＿Ａサーバーブレード上で作動し、次に、異なる施設にあるＲＦＩＤ＿Ｂサーバーブレードへと動かされる／移動させられる。したがって、仮想ラックは、仮想ラックのインターフェースによって指示されるように、安定して現れ、他方でその根本的な現実世界の物理的コンポーネントは、時間とともに変化する。
【００５５】
本発明の主題の一態様に従って、ユーザーは、工程（３０１）の１つ以上の顧客識別子を選択してもよい。本発明の主題の代替的な態様では、限定されないが機器タイプ、機器メーカー、型番、装置位置、オペレーティングモード、稼働状態、または様々なＲＦＩＤタグ数を含むフィルタパラメータが、顧客識別子の代わりに使用されてもよい。本発明の主題の他の態様では、他のパラメータ（前述のパラメータ等）は、仮想ラックに分類される物理アセットをさらにフィルタリングするために使用されてもよい。いくつかの態様では、ユーザー制御は、ユーザーがラック空間の割り当てを管理できるようにしてもよく、これには例えば特定の顧客、用途、使用等のための割り当てを更新することが含まれる。
【００５６】
本発明の主題の他の態様に従って、工程（３０３）は、物理アセットをフィルタリングして、物理アセットのサブセットを生成し、続いて各サブセットをそれ自身の仮想ラックに割り当てる工程を含み得る。例えば、各データセンター施設内のアセットは、仮想ラック内のアセット間の協調を要求する動作が施設間通信のラグを回避するように、仮想ラック内で一まとめにされてもよい。機器タイプ、メーカー、型番、ＩＤ等の他のサブセット分類は、仮想ラック内のデバイス間のインターオペラビリティを促進するように、工程（３０３）で行なわれてもよい。いくつかの態様では、仮想ラック／装置ＩＤは、ＧＵＩＤ、ＵＵＩＤ等であってもよい。
【００５７】
図４に例示されるように、本発明の主題の態様に従って作成されたソフトウェアは、多数の独立した、および交換可能なモジュールへと分離可能な機能を含み得る。いくつかの態様では、モジュールはソフトウェアオブジェクトを含み得る。いくつかの用途では、モジュールは、他のオブジェクトを含む容器を含み得る。モジュールのスケールがプログラミング言語と用途に応じて変化し得る一方で、モジュールは典型的には、論理上分離した機能を行ない、かつ十分に規定されたインターフェースを介してインタラクトするように設計される。モジュールはソフトウェアまたはデータオブジェクトを含む場合もあり、その場合、データオブジェクトはコンピューティングデバイスの物理メモリにあり、下記でさらに記述される開示された機能を向上させる工程をプロセッサに実行させるメモリ内の実行可能命令の記憶装置を含むことができる。
【００５８】
図４では、仮想ラックオブジェクト（Ｃ＿ｖｒａｃｋ）（４００）は、ディスプレイモジュール（Ｃ＿ｄｉｓｐｌａｙ）（４１０）、制御モジュール（Ｃ＿ｃｏｎｔｒｏｌ）（４２０）、協調モジュール（Ｃ＿ｃｏｏｒｄ）（４３０）、および再配置モジュール（Ｃ＿ｒｅｌｏｃａｔｅ）（４４０）の少なくとも１つとインターフェースで接続する。仮想ラックオブジェクト（４００）は、分散型マシンの物理的位置等の特定の詳細を隠す方法で、分散型ラックマウントマシン（すなわち物理アセット）をパッケージにする方法とデータ構造を含む。仮想ラック（４００）のグラフ表現は、均一の方法で、アクセス、インタラクション、および制御等のサービスを仮想ラック内のすべてのラックマウントマシンに提供する、分散型制御環境の一部であり得る。各仮想ラックマウントマシンは、オブジェクト指向インターフェース内のネットワーク通信を囲み得る。
【００５９】
モジュールインターフェースは、モジュールによって提供され、および要求されるエレメントを表わす。例えば、仮想ラックオブジェクト（４００）は、その入力として、エレメント標識されたｃ＿ｆｉｌｔｅｒを受信する。インターフェースにおいて定義されたエレメントは、通常は他のモジュールによって検出可能である。本発明の主題のいくつかの態様では、ｃ＿ｆｉｌｔｅｒは少なくとも１つのパラメータを示し、そのパラメータによってデータセンターの物理アセットが仮想ラックオブジェクト（４００）に包含されるように選択される。例えば、ｃ＿ｆｉｌｔｅｒは顧客識別子を示し、その顧客識別子によって、顧客識別子に関係する顧客によって所有されるラックマウント機器が選択される。本発明の主題の他の態様では、機器タイプ、メーカー、型番、アセット位置、および様々なＲＦＩＤ値などの様々なフィルタパラメータの組み合わせが、仮想ラックオブジェクト（４００）に包含するための物理アセットを選択するために使用されてもよい。エレメントは、リスト、配列、キュー、スタック、および他のオブジェクトなどの様々なデータ構造を含み得る。各データ構造は、そのデータ構造上で実行されてもよく、およびそれらの動作の効果を予め調整し、かつ制限する動作を含む。
【００６０】
仮想ラックオブジェクト（４００）は、典型的には機能（４０１−４０９）などの１つ以上の機能によって表される実装を含む。その実装は、インターフェースに公表されたエレメントに対応するワーキングコードを含む。例えば、ｆ＿ｃｒｅａｔｅ機能（４０１）は、少なくとも１つのアーギュメント（ｃ＿ｆｉｌｔｅｒ）に基づいてＣ＿ｖｒａｃｋオブジェクトを生成する。ｆ＿ｃｒｅａｔｅ機能（４０１）は、オブジェクト（４００）の内部および／または外部にあり得る機能ｆ＿ｌｏｃａｔｅ（４５０）などの、他の機能を招く場合もある。例えば、本発明の主題の１つの態様によれば、ｆ＿ｃｒｅａｔｅ機能（４０１）は、フィルタパラメータ、ｃ＿ｆｉｌｔｅｒに基づいて、ＲＦＩＤ値（ｉ＿ｒｆｉｄ）のリストを取り込む。ｆ＿ｌｏｃａｔｅ機能（４５０）は、ＲＦＩＤ読取りデバイス（４９０）とインターフェースで接続し、後者は、少なくとも１つのデータセンターにおいて物理アセットに付けられたＲＦＩＤタグを読み取り、およびｉ＿ｒｆｉｄの値に関係する物理アセットの位置情報（例えば物理アドレス）を返す。本発明の主題のいくつかの態様に従って、ｆ＿ｃｒｅａｔｅ機能（４０１）は、新しい仮想ラックオブジェクト（４００）にそれを含めるための条件として物理アセットが存在する（および／または動作可能である）という確証を単に使用してもよい。一旦仮想ラックオブジェクトが生成されると、それは、ハードウェアを制御する他のモジュール（例えばモジュール（４１０）（４２０）（４３０）および／または（４４０））へとアーギュメントとして渡される。
【００６１】
本発明の主題の一態様に従って、選択された物理アセットについての情報を含むデータ型を含み得る仮想ラックオブジェクト（４００）は、ＧＵＩディスプレイ装置（４９１）などのＩ／Ｏハードウェアを制御する１つ以上の機能（４１１−４１９）を実行するディスプレイモジュール（４１０）へと渡される。本発明の主題の他の態様では、仮想ラックオブジェクト（４００）は、物理アセット（すなわちラックマウント機器（４９２））を制御する１つ以上の機能（４２１−４２９）を含む制御モジュール（４２０）へと渡される。例えば、制御モジュール（４２０）は、ＧＵＩディスプレイ装置（４９１）をラックマウント機器（４９２）と結合し、およびユーザーがＧＵＩディスプレイ装置（４９１）を介してラックマウント機器（４９２）とインタラクトできるようにする機能を制御し得る。
【００６２】
本発明の主題の他の態様では、仮想ラックオブジェクト（４００）は、多数の物理アセット（４９２）の動作を協調させるように構成され得る協調モジュール（４３０）へと渡される。例えば、協調モジュール（４３０）は１つ以上の機能（４３１−４３９）を含み、後者は、データ処理、負荷分散、ルーティングおよび内容伝達等の協同的な動作を提供するように、異なる数片のラックマウント機器を制御し得る。本発明の主題の他の態様では、仮想ラックオブジェクト（４００）は、協調モジュール（４３０）によって行なわれる動作の改善等のために、ラックマウント機器（４９２）の物理的位置を最適化するように構成された１つ以上の機能（４４１−４４９）を含む再配置モジュール（４４０）に渡される。そのような態様では、再配置モジュール（４４０）は、１つ以上の物理アセットが移動されるべき新たな物理的位置を示す等のために、ＧＵＩディスプレイを制御するように構成されてもよい。
【００６３】
図５は、本発明の主題のいくつかの態様に従って仮想ラックアセット追跡エンジンを操作する方法を表す。仮想ラックアセット追跡エンジンは、サブルーチン（５０１−５０３）を含む、機能（５００）等のソフトウェア命令に従って実行するプロセッサの１つ以上のソフトウェアモジュールとして実装されてもよい。
【００６４】
本発明の主題のいくつかの態様に従って、機能ｆ＿ｃｒｅａｔｅ（５００）は仮想ラックオブジェクト（Ｃ＿ｖｒａｃｋ）の実装の一部であってもよい。機能ｆ＿ｃｒｅａｔｅ（５００）は、１つ以上の入力フィルタパラメータ（ｃ＿ｆｉｌｔｅｒ）に基づいて仮想ラックオブジェクトを生成する。第１のサブルーチン機能、ｆ＿ｆｅｔｃｈ（５０１）は、対応するＲＦＩＤ値を求めて管理データベース（１４０）を検索するためにｃ＿ｆｉｌｔｅｒ入力を使用する。例えば、ｃ＿ｆｉｌｔｅｒ入力が顧客ＩＤを含む場合、ｆ＿ｆｅｔｃｈ（５０１）は顧客ＩＤに対応するＲＦＩＤを求めて管理データベース（１４０）を検索する。顧客ＩＤに関係するＲＦＩＤ（ｉ＿ｒｆｉｄ）のリスト、および随意に各ＲＦＩＤに対応する物理アセットについての情報は、機能（５００）に返却される。
【００６５】
第２のサブルーチン機能、ｆ＿ｌｏｃａｔｅ（５０２）は、ＲＦＩＤリーダーハードウェア（５０５）を制御するための入力としてＲＦＩＤリスト（ｉ＿ｒｆｉｄ）を使用する。ＲＦＩＤリーダー（５０５）は、入力ｉ＿ｒｆｉｄ値に対応する特定のＲＦＩＤタグを検索する。例えば、ｉ＿ｒｆｉｄリストは、それぞれラックマウントユニット（５１１）、（５２１）および（５３１）に付けられたＲＦＩＤタグ（５１２）、（５２２）および（５３２）に対応し得る。各ＲＦＩＤタグが管理データベース（１４０）において識別された物理アセットに付けられているという仮定に基づいて、ＲＦＩＤタグの検出の成功は、対応するアセットの存在、および随意にそのアドレスの確証に対応する。本発明の主題の他の態様では、ｆ＿ｌｏｃａｔｅ機能（５０２）は、ｉ＿ｒｆｉｄリストに基づいてＲＦＩＤリーダー（５０５）から受信したＲＦＩＤデータをフィルタリングする。
【００６６】
本発明の主題のいくつかの態様に従って、ｉ＿ｒｆｉｄリストに対応する物理アセットは、場合によっては異なるデータセンターに位置する、多数の物理的ラック（例えば、ラック（５１０）（５２０）および（５３０））にわたって分散している。ＲＦＩＤリーダーは、各ＲＦＩＤタグ（５１２、５２２および５３２）の物理的位置、したがって対応する物理アセット（それぞれ５１１、５２１および５３１）の物理アドレスを判定し得る。管理データベース（１４０）とインターフェースで接続することによって、ＲＦＩＤリーダー（５０５）および／またはｆ＿ｌｏｃａｔｅ機能（５０２）は、データレコードセット（５９１）を生成してもよく、各データレコードは、ＲＦＩＤ数、関連機器識別子（シリアルナンバーなど）、およびＲＦＩＤリーダー（５０５）によって判定された物理アドレスを含む。このデータレコードセット（５９１）は、データセット、ｉ＿ａｄｄｒｅｓｓ１としてｆ＿ｌｏｃａｔｅ機能（５０２）によって出力され得る。
【００６７】
サブルーチン機能、ｆ＿ｂｕｉｌｄ（５０３）は、データセットｉ＿ａｄｄｒｅｓｓを受信し、および第２のデータレコードセット（５９２）を生成し、第２のセット（５９２）の各レコードは、関連する仮想アドレス（ＶＡｄｄｒｅｓｓ）を含む。仮想アドレスが判定される方法は、フィルタパラメータ（図示せず）などの追加入力パラメータに依存する場合もある。したがってｆ＿ｃｒｅａｔｅ機能（５００）は、多数の物理的ラックにわたって、仮想ラック内の仮想装置に分散している物理装置をマッピングする。
【００６８】
仮想ラックオブジェクトがアセット管理モジュールまたは機能（図示せず）に渡される場合、アセット管理は、多数の物理的ラックにわたって分散した物理装置に仮想ラック内の仮想機器をマッピングする。仮想ラックオブジェクトは識別子を含み、物理装置の各ピースは、それが位置している物理的ラックの物理アドレスに対応する物理アドレスを有し、およびラック内のその位置（例えばスロット）をさらに含む。この物理アドレスは、１つ以上のＲＦＩＤタグを介して識別され得る。機器の各部分にはさらに、仮想ラック内の他の機器にそれを関連づける仮想アドレスを有する。本発明の主題のいくつかの態様では、この関連付けは物理装置の所有権に関してなされ得る。したがって、特定のデータセンターの顧客に所属する機器の各部分は、同じ仮想ラックアドレスを共有する場合もある。ディスプレイは、機器の物理アドレスが多数の物理的ラックに及ぶとしても、機器の各ピースを仮想ラックにあるものとして表す。例えば、仮想ラック表現のディスプレイにおいて、顧客のアセットは、顧客のアセットのみを含む１つ以上のラックとして現われる。同様に、他のフィルタパラメータが、機器の種類、メーカー、型番等でアセットを分類するために使用されてもよい。物理アセットの操作を制御し、かつ協調させるために、アセット翻訳ソフト（すなわちアセット管理システム）は、仮想アドレスを特定の操作用の物理アドレスに変換する。
【００６９】
図６は、例えば該方法に例示される工程および本明細書に記載の他の工程の少なくともいくつかを含む、ソフトウェアを実行するための実行プラットフォームを提供する、プロセッサ（６０２）などの１つ以上のプロセッサを含むコンピュータシステムの典型的なブロック図を例示する。プロセッサ（６０２）はさらに、オペレーティングシステムタスクを行なうことに加えて、ソフトウェアを実行するためにオペレーティングシステム（図示せず）を実行し得る。コンピュータシステムはさらに、ランダムアクセスメモリ（ＲＡＭ）などのメインメモリ（６０４）を含み、ここでソフトウェアはランタイム中に常駐し、および大容量記憶装置（６０６）を含む。大容量記憶装置（６０６）は、ソフトウェアまたはデータのコピーを保存可能な１つ以上のハードドライブおよび／またはリムーバブルストレージドライブ、フロッピーディスケットドライブ、磁気テープドライブ、コンパクトディスクドライブ、またはフラッシュ不揮発性メモリ等を含み得る。アプリケーションと資源は大容量記憶装置（６０６）に保存され、およびランタイム中にメインメモリ（６０４）に転送されてもよい。大容量記憶装置（６０６）はさらに、ＲＯＭ（読み取り専用メモリ）、ＥＰＲＯＭ（消去可能なプログラマブルＲＯＭ）、ＥＥＰＲＯＭ（電気的に消去可能なプログラマブルＲＯＭ）を含み得る。バス（６０５）は、コンピュータシステムのコンポーネント経由でデータを通信するために示される。
【００７０】
ネットワークインターフェース（６１６）は、ネットワーク経由でアセットおよび他のデバイスと通信するために提供され得る。さらに、センサーインターフェース（６０８）は、図１に示されるアセット位置システム（１２０）に接続するために提供される。図６に描かれるコンピュータシステムは、プラットフォームの単純化された例である。他のコンポーネントを加えてもよいこと、または必要であればコンポーネントを取り除いてもよいことが、当業者には明白であろう。例えば、１つ以上のインターフェースは、１つ以上のＩ／Ｏ装置を接続するために提供され得る。
【００７１】
本明細書に記載される方法の１つ以上の工程、および本明細書に記載されるソフトウェアは、メインメモリ（６０４）または大容量記憶装置（６０６）などのコンピュータ可読媒体に埋め込まれ、または保存され、かつプロセッサ（６０２）によって実行されるソフトウェアとして実装されてもよい。該工程は、コンピュータプログラムによって具体化されてもよく、それは稼働中と休止中の両方の様々な形態で存在してもよい。例えば、実行時に工程のいくつかを行なうための、ソースコード、オブジェクトコード、実行可能コード、または他のフォーマットのプログラム命令で構成されたソフトウェアプログラムとして存在してもよい。上記のいずれもが、圧縮または非圧縮形態で、コンピュータ可読媒体に保存されてもよく、コンピュータ可読媒体には記憶デバイスとシグナルが含まれる。適切なコンピュータ可読記憶デバイスの例として、従来のコンピュータシステムＲＡＭ（ランダム・アクセス・メモリー）、ＲＯＭ（読み取り専用メモリ）、ＥＰＲＯＭ（消去可能なプログラマブルＲＯＭ）、ＥＥＰＲＯＭ（電気的に消去可能なプログラマブルＲＯＭ）、および磁気ディスクまたは光学ディスク、またはテープがあげられる。コンピュータ可読シグナルの例は、キャリアを使用して変調されているか否かに関わらず、コンピュータプログラムをホストしている、または動作させているコンピュータシステムにアクセスし得るように構成されたシグナルであり、インターネットまたは他のネットワークを通じてダウンロードされたシグナルが含まれる。前述のものの具体的な例として、ＣＤ−ＲＯＭにあるプログラム、またはインターネットダウンロードを介したプログラムの分散があげられる。ある意味では、抽象的実体としてのインターネット自体が、コンピュータ可読媒体である。コンピュータネットワーク一般も同様である。したがって、本明細書に列挙されるそれらの機能は、上記の機能を実行することができる任意の電子機器によって実行されてもよいことが理解される。
【００７２】
オブジェクト指向プログラミング内のオブジェクトをデータと機能の抽象化として解釈し得る同様の方法で、本発明の主題のいくつかの態様は、分散型ハードウェアコンポーネントの異なる組み合わせのための共通するインターフェースを提供し、それらは異なる手段で実装されてもよいが、全体として同じ機能を達成する。
【００７３】
本発明の主題のいくつかの態様に従って、図７のブロック図に描かれるように、オブジェクト指向型モデルは、分散コンピューティングシステム内のハードウェアコンポーネント間のインターフェースとして使用されてもよい。例えばラックマウント機器ユニット（７１１）、（７２１）、（７３１）、（７４１）、（７５１）、および（７６１）の各々は、別個のラック（それぞれラック（７１０）、（７２０）、（７３０）、（７４０）、（７５０）、および（７６０）等）にあってもよく、それらのラック（７１０）、（７２０）、（７３０）、（７４０）、（７５０）、および（７６０）は異なる区域、部屋、フロア、ビル、および／または別のデータセンターにあってもよい。各ラックマウントユニット（７１１）、（７２１）、（７３１）、（７４１）、（７５１）、および（７６１）にある少なくとも１つのハードウェアコンポーネント（ＣＰＵ、メモリ、ネットワークインターフェース等）は、バーチャルマシンの一部に割り当てられてもよい。この態様では、バーチャルマシンは、単一のマシンとして一緒に機能するように構成された、異なるマシンにあるハードウェアコンポーネントのセット（例えばラックマウントユニット）を含む。この実装の抽象化は、ユーザーまたはソフトウェアプログラム等の視点から、単一のマシンを表す仮想表現を提供する。
【００７４】
抽象化は、現在の視点に関連するオブジェクトについての詳細だけを捕らえる。例えば、仮想サーバーは、ネットワークを介して通信可能に一緒に接続された、実際には多数のマシンに分散しているマシンコンポーネント（例えばプロセッサ、メモリ、周辺機器、ネットワークインターフェース等）のセットである単一のマシンの表現を含み得る。サーバーのコンポーネントがどこにあるかに関わらず、マシンはユーザーの観点から同じ方法で動作する。
【００７５】
チップ、カード、または単一のマシン内のコンポーネント間の接続を介する代わりに、ネットワークを通じて様々なコンポーネントを通信可能に接続することに関係するレイテンシまたは他のアーティファクトがある場合もあり、およびそのようなアーティファクトは、バーチャルマシンの特性として、そのような特性がどのように生じるかを伝えることなく、ユーザーまたはソフトウェアアプリケーションに送られる場合もある。
【００７６】
本発明の主題のいくつかの態様に従って、仮想ハードウェアシステムは、いくつかの抽象化レイヤーを有することができ、それによって意味と量の異なる詳細がユーザーに暴露される。例えば、長距離ネットワークを介して接続している多数のマシンにわたって分散したハードウェアコンポーネントは、単一のマシンによって行なわれる場合に生じるよりも、特定の動作で顕著により多くのレイテンシを示し得る。そのような例では、このレイテンシ（および／またはそのようなレイテンシの効果）は、ユーザーに、または仮想ハードウェアシステムを使用しているソフトウェアアプリケーションに伝達される場合もある。
【００７７】
本発明の主題のいくつかの態様では、例えばソフトウェアアプリケーションの動作条件に応じて、異なるマシンコンポーネントが動的に選択可能であり得るという意味で、バーチャルマシンが適応可能であり得ることが予想される。そのような態様では、互いに近接しているコンポーネントは、レイテンシに敏感な動作を行っている最中、または行う直前に、選択されてもよい。同様に、処理とメモリのコンポーネントは、ソフトウェアアプリケーションの処理と記憶の必要性に従って自動的にスケールするために、ソフトウェアアプリケーションの動作中に動的に割り当てられてもよく、もはや必要ではない時には、そのような資源が放出されてもよい。
【００７８】
本発明の主題のいくつかの態様に従って、制御抽象化は、分散型ハードウェアのシステムによって行なわれる抽象化動作を提供する。例えば、ユーザーリクエストに応じたメディアファイルの送達は、単純なクライアントサーバー動作としてネットワークオペレーターに表示され得る。しかしながら、分散サーバーシステムでは、単純なクライアントサーバー動作は、複雑なプロセスの抽象化である場合もあり、それによってメディアファイルは、多数のネットワークノードを介する協同サブスペースコーディングを使用してコード化され、およびクライアントは、ファイルを複合するのに十分なランクを達成するまで、追加のサービングノード（ｓｅｒｖｉｎｇ  ｎｏｄｅ）を選択することによって、ノードからコード化された部分を取得する。他の例では、制御抽象化は、分散処理とメモリリソースの協調などの、分散コンピューティング環境の実装の詳細を隠す場合もある。
【００７９】
ハードウェア抽象化は、マシンタイプの抽象的特性と、その実装の具体的な詳細との明確な区別を強いる。抽象的特性は、ユーザーまたはソフトウェアに見えるものであり、マシンタイプを利用する一方で、具体的な実装は完全に秘密にし、例えば有効性改善を組み込み、および／またはプログラミングおよび／またはネットワークの状態に動的に適合させるために実際に変化し得る。
【００８０】
本発明の主題の一態様では、仮想ハードウェアマシンのオブジェクトモデルは、予め決められた機能を行い、それらの状態を変化させ、およびシステム内の他のコンポートと通信する抽象化「行為者」としてマシンコンポーネントを規定するための設備を含む。カプセル化は、各マシンコンポーネントの状態の詳細を隠しながら、同じ機能を行なう異なるコンポーネントタイプがシステムとインタラクトする手段を標準化する。本発明の主題のいくつかの態様は、同じ機能を行なう異なるタイプのハードウェアコンポーネントが互いに置き換え可能なようにすることで、ポリモーフィズムを提供し得る。本発明の主題のいくつかの態様では、ハードウェアコンポーネントの表現は、他のオブジェクト（例えば親オブジェクト）からその挙動を受け継ぐ場合もあり、他方で、その機能実装の詳細（異なるマシンアーキテクチャーとインタラクトするための実装の詳細を含む）は、ユーザーまたはソフトウェアアプリケーションには隠される。
【００８１】
本発明の主題の１つの態様に従って、機能ｆ＿ｃｒｅａｔｅ（７００）によって生成されたバーチャルマシンオブジェクト（Ｃ＿ｖｍａｃｈｉｎｅ）は、ユーザーおよび／またはソフトウェアアプリケーションに抽象化を提供するデータ構造および機能を含む。例えば、バーチャルマシンオブジェクトは、ｃ＿ｆｉｌｔｅｒなどの予め決められたおよび／または動的なパラメータに基づいて生成され得る。機能ｆ＿ｆｅｔｃｈ（７０１）は、ｃ＿ｆｉｌｔｅｒパラメータを使用し、およびそのコンポーネントがバーチャルマシンを含むラックマウントユニットのＲＦＩＤを判定するために、管理データベースとインターフェースで接続する。例えば、特定の物理アセット内の特定のマシンおよび／または特定のコンポーネントは、特定の顧客、特定の用途に割り当て可能であり、そうでなければ様々な入力パラメータ（ｃ＿ｆｉｌｔｅｒ）および／または動作条件の組み合わせに基づいて割り当て可能であり得る。
【００８２】
位置機能ｆ＿ｌｏｃａｔｅ（７０２）は、ＲＦＩＤリーダーハードウェア（７０５）とインターフェースで接続し、後者は、ＲＦＩＤアーギュメント、ｉ＿ｒｆｉｄに基づいて、ラックマウントユニット（７１１）、（７２１）、（７３１）、（７４１）、（７５１）および（７６１）の存在を検出して位置づける。具体的には、ＲＦＩＤリーダーハードウェアは、ラックマウントユニット（７１１）、（７２１）、（７３１）、（７４１）、（７５１）および（７６１）の各々と関係する少なくとも１つのＲＦＩＤタグ（タグ（７１２）、（７２２）、（７３２）、（７４２）、（７５２）および（７６２）等）を検出する。本発明の主題の一態様では、機能（７０２）は、割り当て可能なコンポーネントの各々が存在することを判定し、次に各コンポーネントの地理的および／またはネットワークのトポロジカルな位置を判定し得る。割り当て可能なコンポーネントを含むラックマウントユニット（７１１）、（７２１）、（７３１）、（７４１）、（７５１）および（７６１）の位置を判定する際に、コンポーネントのサブセットは、予想される用途に適切なように、および／または特定のフィルタパラメータｃ＿ｆｉｌｔｅｒに応じて、選択され得る。
【００８３】
図７に描かれた態様では、割り当て可能なプロセッサ（７１３）、（７２３）および（７３３）のセットは、ラックマウントユニット（７１１）、（７２１）および（７３１）で有効である。プロセッサ（７１３）、（７２３）および（７３３）の１つ以上は、メモリ、ネットワークインターフェース、周辺機器コンポーネント等の他の割り当て可能な資源に対して適切であり得るようになどで、バーチャルマシンのために選択される場合もある。例えば、ラックマウントユニット（７３１）のプロセッサ（７３２）は、低レイテンシの動作のために選択される場合もあり、なぜならメモリ（７３４）もまたユニット（７３１）にあるからである。ユニット（７３１）、（７４１）および（７５１）の１つ以上は、その有効なメモリコンポーネント（７３４）、（７４３）および（７５３）のために、それぞれ選択される場合もある。ユニット（７５１）および（７６１）は、その有効なネットワークインターフェース（７５４）および（７６３）のために、それぞれ選択される場合もある。
【００８４】
各割り当て可能なコンポーネントに関するデータは、データ構造（７９１）によって表わされてもよく、後者は、ＲＦＩＤインディケータ、シリアルナンバー、そのラックマウントユニットに対応する関連する物理アドレスを含む。追加のデータ（図示せず）は、コンポーネントタイプ、コンポーネントの性能、および／またはそのラックマウントユニット内部のコンポーネントの物理的位置を含み得る。いくつかの例では、コンポーネントは、複数ユーザー、ソフトウェアアプリケーション、プロセス等の間で共有されてもよく、およびコンポーネントの有効な部分（例えば処理サイクル、メモリ容量、インターフェースバンド幅等）は、データ構造（７９１）において規定され得る。
【００８５】
ｆ＿ｆｅｔｃｈ機能（７０２）によって取り出されたデータは、ｆ＿ｂｕｉｌｄ機能（７０３）へと入力され、それは割り当て可能なコンポーネントからバーチャルマシンを構築する。本発明の主題のいくつかの態様では、ｆ＿ｂｕｉｌｄ（７０３）は、ユーザーのニーズ、および／またはバーチャルマシン上で動作しているソフトウェアアプリケーションの動作条件等に基づいて、割り当て可能なコンポーネントを動的に選択し得る。いくつかの態様に従って、割り当て可能なコンポーネントは、ラックマウントユニット（７１１）、（７２１）、（７３１）、（７４１）、（７５１）、および（７６１）をまとめて通信可能に接続するネットワークの、リアルタイム判定された、および／または統計的に判定されたネットワーク状態に基づいて、選択され得る。バーチャルマシンはデータ構造（７９２）を含んでもよく、データ構造（７９２）は、各ラックマウントユニット（７１１）、（７２１）、（７３１）、（７４１）、（７５１）および（７６１）のシリアルナンバーと物理アドレス、および各ラックマウントのユニット（７１１）、（７２１）、（７３１）、（７４１）、（７５１）および（７６１）内の割り当て可能なコンポーネントに関する情報（図示せず）を示す。
【００８６】
本発明の主題の一態様では、バーチャルマシンオブジェクト（Ｃ＿ｖｍａｃｈｉｎｅ）は、分散型の物理的コンポーネントを含むシステムのハードウェア仮想化を提供する。例えば、Ｃ＿ｖｍａｃｈｉｎｅは、分散コンピューティングプラットフォームの物理的特性をユーザーおよびソフトウェアアプリケーションから隠し、代わりに単一のコンピュータに似ている一般的なインターフェースを提供する。物理的コンポーネント（例えばＣＰＵ、メモリ、ネットワークインターフェース、周辺機器、および他のコンポーネント）が、多数のラックにある多数のラックマウントユニットに存在し、および多数の地理的位置にわたって分散している可能性がある一方で、バーチャルマシンは、単一のラックマウントユニットなどの単一ピースのハードウェアとして現れる。物理的コンポーネントが、異なるコンピューターアーキテクチャーを有するマシンに存在し得る一方で、Ｃ＿ｖｍａｃｈｉｎｅは、コンポーネント間のインターオペラビリティを保証するのに必要な変換ハードウェアとソフトウェアの全て隠し得る。同様に、通信可能にコンポーネントを接続する通信系ハードウェアとソフトウェアもまた隠される。したがって、Ｃ＿ｖｍａｃｈｉｎｅの態様は、仮想化を制御し、コンポーネント間の物理的な接続性を保証し、必要であれば資源（例えばコンポーネント）を継続してモニタリングして再割り当てし、および異なるタイプのプラットフォーム上のコンポーネント間のインターオペラビリティを保証するために、制御プログラム（例えばハイパーバイザープログラム）を含んでもよい。
【００８７】
図８は、バーチャルマシン（８９０）抽象化を提供するために、ラックマウントユニット（７１１）、（７２１）、（７３１）、（７４１）、（７５１）および（７６１）とインタラクトするアセット管理システム（８００）のブロック図である。アセット管理システム（８００）は、プロセッサ管理モジュール（８０１）、メモリ管理モジュール（８０２）、およびネットワークインターフェース管理モジュール（８０３）を含む。プロセッサ管理モジュール（８０１）は、プロセッサ（７１３）、（７２３）および（７３３）によって分散処理を調整する。メモリ管理モジュール（８０２）は、多数のメモリリソース（７３４）、（７４３）および（７５３）にわたるデータ記憶を調整する。ネットワークインターフェース管理モジュール（８０３）は、ネットワークインターフェース（７５４）および（７６３）の制御と実装を調整する。
【００８８】
バーチャルマシン（８９０）は、ＣＰＵ（８９１）によって表されたプロセッサ抽象化、メモリ（８９２）によって表されたメモリ抽象化、およびネットワークインターフェース（８９３）によって表されたネットワークインターフェース抽象化を含む。バーチャルマシンは、ホストソフトウェアがオペレーティングシステム抽象化（８９５）等のシミュレートされたコンピュータ環境を生成するプラットフォーム仮想化を提供することができる。本発明の主題のいくつかの態様では、オペレーティングシステム抽象化（８９５）はＧＵＩ（８９６）を提供することができる。本発明の主題のいくつかの態様では、オペレーティングシステム抽象化（８９５）は、動作中のアプリケーションソフトウェア（８９７）のために環境を提供することができる。
【００８９】
図９は、本発明の主題のいくつかの態様に係る方法を表すフローダイアグラムである。第１の工程（９０１）では、アセットフィルタが選択され、およびアセット管理システムに提供され、後者は、１つ以上のフィルタパラメータに対応する物理アセットのセットの検索を行なうためにアセット位置システムに命令する。本発明の主題のいくつかの態様では、アセットは、少なくとも１つのデータセンターにあるラックマウント機器を含む。一態様に従って、フィルタは、物理アセットが、バーチャルマシン内の複数の割り当て可能なコンポーネントのサブセットとして割り当て可能な、少なくとも１つの予め決められたハードウェアコンポーネントを有することを示し、および工程（９０１）は、フィルタパラメータを満たす物理アセットから選択されたハードウェアコンポーネントからバーチャルマシンを組み立てるために構成された方法の一部である。
【００９０】
本発明の主題の１つの態様に従って、工程（９０１）でアセットフィルタによって明記される基準を満たす各物理アセットの位置は、アセット位置システムから工程（９０２）において収集される。物理アセットのセットおよびそれぞれの位置を指示するリストまたは代替的なデータ構造は、工程（９０２）で生成される場合もある。アセット位置は、レイテンシを減らし、および／またはバーチャルマシンの他の操作上の目的を達成する等のために、さらにリスト（または代替的なデータ構造）をフィルタリングするために使用されてもよい。本発明の主題のいくつかの態様では、位置データは、物理アセットの少なくとも１つの割り当て可能なコンポーネントの位置を含み得る。
【００９１】
リスト（または代替的なデータ構造）は、工程（９０３）に提供され、それはバーチャルマシンを組み立てるために異なる物理アセットにある割り当て可能なコンポーネントを通信可能に接続する。工程（９０３）は、コンポーネント間の通信をルーティングし、コンポーネントの動作を協調させるために制御機能を提供し、および異なるプラットフォームと通信プロトコルとの間のインターオペラビリティを可能にするための工程を含み得る。工程（９０３）は、コンポーネントが複数ユーザーおよび／またはソフトウェアアプリケーションによって共有されている場合等に、１つ以上のコンポーネントの資源管理を含み得る。
【００９２】
工程（９０４）では、バーチャルマシン抽象化は、工程（９０３）で行なわれた機能の少なくともいくつかを隠すインターフェースによって提供される。例えば、インターフェースは、ユーザーまたはソフトウェアアプリケーションがそれによってインタラクトするオペレーティングシステムまたはコンピューティングプラットフォームを与えることによって、マシンの動作の分散性を隠してもよい。本発明の主題の特定の態様に従って、工程（９０４）は、工程（９０１）への直接制御をなし得る。例えば、ソフトウェアアプリケーションのユーザー入力および／または操作に応じて、工程（９０４）は、新たなバーチャルマシンを組み立てるために、そうでなければ現在のバーチャルマシンのハードウェア構成を適応させるために、新たなフィルタを選択し、そうでなければ工程（９０１）でフィルタ基準を適応させてもよい。
【００９３】
本発明の主題のいくつかの態様では、工程（９０１）は１つ以上のフィルタ基準の選択を提供する。例えば、特定の顧客に割り当てられたアセットがアセット位置システムによって位置づけられるように、アセットフィルタは顧客ＩＤを含んでもよい。他の態様では、コンポーネントはレイテンシを最小化するために選択されてもよい。他の態様では、コンポーネントは、ネットワーク負荷の均衡を達成するために選択されてもよい。さらに他の態様では、ネットワークインターフェースと記憶コンポーネントは、人気のある内容およびトランスコーディング性能がコンテンツ配信ネットワークの端部に分散している、メディア分散アプリケーション用に選択されてもよい。
【００９４】
いくつかの態様では、工程（９０１）のフィルタは、フィードバックメカニズム（図示せず）を介して、工程（９０２−９０４）のいずれかのプロセスによって改良され、適応され、拡張され、そうでなければ変更され得る。本発明の主題の態様に従って、工程（９０１）の選択基準は、アセットのタイプ（例えばメーカー、型番、アセットの一般的機能、その機能性能等）、アセットの状態（例えば、その現在のオペレーティングモード、そのメンテナンススケジュール、負荷、有効性、電力消費、健全さ、初期またはバックアップとしてのその使用等）、および／またはその位置（例えば地理的位置、ネットワークトポロジーに関する位置、他のアセットに対する相対的位置、相対的遅延等）を含み得る。
【００９５】
工程（９０２）では、各アセットの位置データはさらに、アセットが存在することを確証する役目を担うことができる。例えば、バーチャルマシンを借りる顧客は、顧客のサブスクリプションレベルに対応する資源が存在し、かつ使用可能であることを、単に確認してもよい。位置データは、顧客がバーチャルマシン資源の有効性を判定するのを助けることができる。例えば、位置データは、物理アセットが潜在的に機能しているか（例えば、アセットがデータセンターに位置する場合）、または機能していないか（例えば、アセットは記憶装置にある、または輸送中である）どうかを示すことができる。本発明の主題のいくつかの態様では、工程（９０２）からの位置データは、工程（９０３）でアセットを分類するために使用されてもよい。いくつかの用途では、近接している物理アセットのコンポーネントは一まとめにされてもよい。他の用途では、地理的に分散しているアセットを分類することは有利であり得る。
【００９６】
図１０は、本発明の主題の態様に係るシステムのブロック図である。いくつかの態様では、システムは、１つ以上のデータセンターにある多数の装置ラック（１０１０）にある、ラックマウント機器（サーバー（１０１１−１０１９）など）にある多数のハードウェアコンポーネント（コンピュータサーバーコンポーネント（１０５１）および（１０５９）など）を管理するように構成される。ラックマウント機器（１０１１−１０１９）の例として、コンピュータ、サーバー、スイッチ、ルーター、電源、および記憶機器があげられる。本発明の主題のいくつかの態様では、各コンポーネント（１０５１−１０５９）は、コンピュータ処理ユニット、メモリ、ネットワークインターフェース、または専用プロセッサの１つを含み得る。コンポーネント（１０５１−１０５９）は複数サーバ（１０１１−１０１９）にあるが、複数のコンポーネント（１０５１−１０５９）はサーバー（１０１１−１０１９）の少なくとも１つにある場合もある。本発明の主題の態様では、コンポーネント（１０５１−１０５９）は、分散コンピューティングシステムで使用される割り当て可能なハードウェアコンポーネントである。複数のコンポーネント（１０５１−１０５９）を含むセットは、完全なコンピュータシステムを提供するのに必要なすべてのコンポーネントを該セットが構成するように、十分な数の異なるコンポーネントタイプを含む。
【００９７】
本発明の主題の１つの態様に従って、分散コンピュータシステムは、複数の分散型マシン（１０１１−１０１９）にある割り当て可能な複数のハードウェアコンポーネント（１０５１−１０５９）を含む。通信ネットワーク（図示せず）は、複数のハードウェアコンポーネント（１０５１−１０５９）を通信可能に一緒に接続する。コントローラ（コンポーネント管理システム（１０３０）の一部として構成されたコントローラモジュール（１０３１））は、割り当て可能なハードウェアコンポーネント（１０５１−１０５９）のセットを選択するように構成される。コントローラ（１０３１）はまず、セットを選択するための前提条件として、各割り当て可能なハードウェアコンポーネント（１０５１−１０５９）の有効性を判定してもよい。例えば、コントローラ（１０３１）は、１つ以上のＲＦＩＤリーダー（１０２２）、およびラックマウント機器（１０１１−１０１９）に付けられたＲＦＩＤタグ（１０２１）を含むＲＦＩＤ位置システム（１０２０）とインターフェースで接続してもよい。ハードウェア抽象化レイヤーは、インターフェースモジュール（１０３２）によって実施される場合もあり、後者は、割り当て可能なハードウェアコンポーネント（１０５１−１０５９）のセットを単一のマシンとして表すインターフェースを生成する。
【００９８】
本発明の主題のいくつかの態様に従って、コンポーネント管理システム（１０３０）は、管理データベース（１０４０）とインターフェースで接続する。管理データベース（１０４０）は、割り当て可能なハードウェアコンポーネント（１０５１−１０５９）のリストを含んでもよい。コンポーネント管理システム（１０３０）および管理データベース（１０４０）の少なくとも１つは、予め決められたフィルタ基準、および／または動的に判定されたフィルタ基準を含み得るもの等の、１つ以上のフィルタ基準に基づいてリストをフィルタリングしてもよい。コントローラ（１０３１）は、顧客識別子、コンポーネントタイプ、マシンタイプ、メーカー識別子、型番、および／またはシリアルナンバー等を含む、１つ以上のフィルタパラメータを使用してもよい。一態様では、フィルタ基準は、ユーザー（１０６１）および／またはソフトウェアプログラム（１０６２）によって入力され、および処理能力、メモリ、容認可能なレイテンシ、サーバーバンド幅、および／または分散型マシンを実装するに先立って必要とされる他の資源またはシステム性質を示す場合もある。他の態様では、フィルタ基準は動的に、例えば、ソフトウェアプログラムが実行している間に、またはネットワーク状態、ロードバランシングおよび／またはコンポーネントの有効性の変化に応じて、判定される。例えば、メモリおよび／または処理資源は、ソフトウェアプログラムの変化する動作要求に関連して割り当てられ、および／または解放され得る。
【００９９】
本発明の主題の一態様では、コントローラ（１０３１）は、分散型マシンを集める前に、管理データベース（１０４０）に示される割り当て可能なハードウェアコンポーネント（１０５１−１０５９）が存在することを確証するために、ＲＦＩＤ位置システムを使用してもよい。ＲＦＩＤ位置システムからのデータは、割り当て可能なハードウェアコンポーネント（１０５１−１０５９）の各々の有効性を判定するために使用されてもよい。例えば、位置データは、機器が休止状態である、保管されている、輸送中である、または電力などのサービスが妨げられている施設にあるかどうかを示し得る。いくつかの態様では、位置データは、近接している割り当て可能なハードウェアコンポーネント（１０５１−１０５９）を選択するために使用されてもよい。他の態様では、位置データは、地理的に分散した割り当て可能なハードウェアコンポーネント（１０５１−１０５９）に使用されてもよい。本発明の主題のいくつかの態様では、位置情報はネットワークトポロジー位置を含む場合もある。したがって、相対的なネットワークトポロジー位置は、ハードウェアコンポーネント（１０５１−１０５９）を選択するために、コントローラ（１０３１）によって使用されてもよい。
【０１００】
本発明の主題のいくつかの態様に従って、コントローラ（１０３１）は、異なるプロトコルに従って動作するマシン（１０１１−１０１９）のコンポーネント（１０５１−１０５９）間のインターオペラビリティを提供するように構成される。例えば、コントローラ（１０３１）は、メッセージおよび／またはデータをコンポーネント（１０５９）に通信可能に接続する前に、サーバー（１０１１）に対応する第１のマシンプロトコルに関して構成されたコンポーネント（１０５１）からのメッセージおよび／またはデータを、サーバー（１０１９）に対応する第２のマシンプロトコルへと変換してもよい。そのようなインターオペラビリティプロセスは、インターフェースモジュール（１０３２）によって生成された抽象化を介してユーザー（１０６１）および／またはソフトウェアプログラム（１０６２）から隠される場合もある。コントローラ（１０３１）は、複数の通信プロトコルを使用する多数のネットワークを含む、様々な通信ネットワークを使用してもよい。本発明の主題のいくつかの態様では、そのようなコンポーネント間通信はユーザー（１０６１）および／またはソフトウェアプログラム（１０６２）から隠される一方で、通信の特定の効果、レイテンシおよび／または（１０５１−１０５９）間のバンド幅限界は、ユーザー（１０６１）および／またはソフトウェアプログラム（１０６２）に明らかにされてもよい。同様に、コントローラ（１０３１）の動作に関係する他の機能の態様の効果が明らかにされてもよい。
【０１０１】
本発明の主題の一態様に従って、インターフェースモジュール（１０３２）と、分散サーバコンポーネント（１０５１−１０５９）を含むシステムの抽象化を含む仮想サーバー（１０００）がある。ユーザー（１０６１）インターフェースおよび／またはプログラム（１０６２）インターフェース用に、仮想サーバー（１０００）は、分散コンポーネント（１０５１−１０５９）に対応する仮想ハードウェアコンポーネント（１００１−１００９）を含む単一のマシンである。仮想サーバー（１０００）上のオペレーティングシステム（１０６０）は、ユーザー（１０６１）および／またはプログラム（１０６２）とインターフェースで接続するために、インターフェースモジュール（１０３１）を介して実施されてもよい。
【０１０２】
本発明の主題のいくつかの態様では、仮想サーバー（１０００）抽象化は、分散サーバーの異なる実装に対して静的なままであり得る。いくつかの態様に従って、コンポーネント（１００１−１００９）の表現は、異なる分散サーバーごとに変化することはないであろうが、コンポーネントの特性（例えばハードドライブ空間、ＲＡＭ、処理能力等）は、インターフェースモジュール（１０３２）によって適応され得る。
【０１０３】
本発明の主題のいくつかの態様に従って、インターフェースモジュールによって提供されるハードウェア抽象化レイヤーは、ユーザー（１０６１）タイプおよびソフトウェアプログラム（１０６２）タイプの少なくとも１つに基づいた抽象化の複数のレイヤーを含む。上記したように、ハードウェア抽象化レイヤーは、分散型コンピュータとしてのコンポーネント（１０５１−１０５９）の実装に関する機能上のパラメータを明らかにし得る。
【０１０４】
既に記載されたものに加えてさらに多くの修正が、本明細書の発明概念から逸脱することなく可能であることは、当業者にとって明白に違いない。したがって本発明の主題は、添付された特許請求の範囲の精神を除き、限定されはしない。さらに、本明細書と特許請求の範囲の両方を解釈する際に、全ての用語は、文脈と矛盾しない可能な限り広い方法で解釈されるべきである。特に、用語「含む」および「含んでいる」は、非独占的な方法で、要素、コンポーネント、または工程を指すと解釈されるべきであり、言及された要素、コンポーネント、または工程が存在し、使用され、または明確に言及されない他の要素、コンポーネントまたは工程と組み合わされ得ることが示される。本明細書または特許請求の範囲が、Ａ、Ｂ、Ｃ…およびＮから成る群から選択されるものの少なくとも１つに言及する場合、テキストは、ＡとＮ、またはＢとＮ等ではなく、群からのたった１つの要素を必要とすると解釈されるべきである。
【図１】
0006764996.tif 000002
【図２】
0006764996.tif 000003
【図３】
0006764996.tif 000004
【図４】
0006764996.tif 000005
【図５】
0006764996.tif 000006
【図６】
0006764996.tif 000007
【図７】
0006764996.tif 000008
【図８】
0006764996.tif 000009
【図９】
0006764996.tif 000010
【図１０】
0006764996.tif 000011