分散されたコンピューティングシステムの一部である、ネットワークスイッチを介して前記分散されたコンピューティングシステムに接続される、コンピュータに常駐するドライバと、少なくとも1つの仮想ローカルエリアネットワークVLANを前記ネットワークスイッチに割り当て、物理ネットワークインターフェースの上に、少なくとも1の前記VLANに関連づけられ、ユニークなVLAN識別で識別される複数の仮想ネットワークインターフェースVNICを作成するように、前記ドライバに遠隔で指示し、前記コンピュータから遠隔なリソースマネージャとを備え、前記リソースマネージャは、オペレーティングシステムのアプリケーションプログラムインターフェースによって前記コンピュータに前記ドライバをダウンロードしてインストールするように構成され、前記アプリケーションプログラムインターフェースは、さらに少なくとも1つの前記VLANおよび前記複数のVNICを確立するために使用され、前記ドライバは、ネットワークインターフェースドライバとインターネットプロトコルドライバとの間のプロトコルスタックにインストールされ、前記ネットワークスイッチの少なくとも1つのスイッチポートは、2またはそれ以上のVLANに割り当てられることを特徴とするシステム。分散されたコンピューティングシステムの一部である、ネットワークスイッチを介して前記分散されたコンピューティングシステムに接続される、コンピュータに常駐するドライバと、少なくとも1つの仮想ローカルエリアネットワークVLANを前記ネットワークスイッチに割り当て、物理ネットワークインターフェースの上に、少なくとも1の前記VLANに関連づけられ、ユニークなVLAN識別で識別される複数の仮想ネットワークインターフェースVNICを作成するように、前記ドライバに遠隔で指示し、前記コンピュータから遠隔なリソースマネージャとを備えたシステムにより実行される方法であって、前記リソースマネージャが、オペレーティングシステムのアプリケーションプログラムインターフェースによって前記コンピュータに前記ドライバをダウンロードしてインストールし、前記アプリケーションプログラムインターフェースは、さらに少なくとも1つの前記VLANおよび前記複数のVNICを確立するために使用されるステップと、前記ドライバは、ネットワークインターフェースドライバとインターネットプロトコルドライバとの間のプロトコルスタックにインストールされるステップと、前記ネットワークスイッチの少なくとも1つのスイッチポートは、2またはそれ以上のVLANに割り当てられるステップとを備えたことを特徴とする方法。分散されたコンピューティングシステムの一部である、ネットワークスイッチを介して前記分散されたコンピューティングシステムに接続される、コンピュータに常駐するドライバと、少なくとも1つの仮想ローカルエリアネットワークVLANを前記ネットワークスイッチに割り当て、物理ネットワークインターフェースの上に、少なくとも1の前記VLANに関連づけられ、ユニークなVLAN識別で識別される複数の仮想ネットワークインターフェースVNICを作成するように、前記ドライバに遠隔で指示し、前記コンピュータから遠隔なリソースマネージャとを備えた装置であって、前記リソースマネージャが、オペレーティングシステムのアプリケーションプログラムインターフェースによって前記コンピュータに前記ドライバをダウンロードしてインストールし、前記アプリケーションプログラムインターフェースは、さらに少なくとも1つの前記VLANおよび前記複数のVNICを確立するために使用される手段と、前記ドライバは、ネットワークインターフェースドライバとインターネットプロトコルドライバとの間のプロトコルスタックにインストールされる手段と、前記ネットワークスイッチの少なくとも1つのスイッチポートは、2またはそれ以上のVLANに割り当てられる手段とを備えたことを特徴とする装置。今日、大型IDCは複雑であり、しばしば複数のアプリケーションをホストすることが必要とされている。たとえば、数千台のコンピュータを稼働させ、多くの分散アプリケーションをホストするウェブサイトもある。こうした分散アプリケーションはしばしば複雑なネットワーク要件、すなわち、複雑なアプリケーションをサポートするようにIDC内に配線構成を手作業で配置することはもちろん、コンピュータをある特定のネットワークスイッチに物理接続することをオペレータに要求する複雑なネットワーク要件を有している。その結果、アプリケーションの要件を満たすように物理ネットワークトポロジを構築するというこうした作業は、煩わしく時間のかかる、人為的ミスを引き起こしがちな処理となる可能性がある。したがって、分散アプリケーションを物理計算機システム上で設計して展開する、改良された技術を求めるニーズが存在する。物理計算機システムから任意の仮想ネットワークトポロジを自動的に作成するアーキテクチャおよび方法を説明する。このアーキテクチャおよび方法は、システム内でコンピュータを物理接続して配線を構成する必要なく、同一の物理計算機システムに複数の分散アプリケーションを自動的に遠隔インストールすることを可能とする。一実装形態では、分散コンピューティングシステムは、スイッチたとえば、イーサネット登録商標スイッチを含むネットワークを介して相互接続された多くのコンピュータから構成される。こうしたコンピュータは、アプリケーションたとえば、ウェブサーバ、データベース、負荷平衡化loadbalancing、ファイアウォール、大容量データ記憶などによって必要とされる様々な専用タスクを実施するようにプログラミングすることができる。本方法は、分散コンピューティングシステムdistributedcomputingsystem上でホストされる各分散アプリケーションごとに、物理ネットワークの上に1つまたは複数の仮想ローカルエリアネットワークVLANを作成する。分散アプリケーションをホストするのに使われるコンピュータは、そのアプリケーションに関連づけられたそれぞれのVLANに自動的に接続される。このVLANは、各アプリケーションが互いに分離して動作することを確実にする。コンピュータのこうした自動接続は、2つの動作を含む。第1の動作は、コンピュータが接続されるスイッチポートへのVLANメンバシップVLANmembershipの割当てである。この割当ては、関連づけられたVLAN識別でタグづけされたパケットを受け取るスイッチポートを指定する。第2の動作は、各コンピュータにおける、単一の物理ネットワークインターフェースNIC;NetworkInterfaceCardを介した仮想ネットワークインターフェースVNICの作成である。各VNICは、関連づけられたVLANを一義的に表す。こうすることにより、単一の物理NICを有するコンピュータがいくつかのVLANに関与することが可能になる。ある特定のVLANに関連づけられたパケットは、そのコンピュータに経路指定され、そのVLANに対応するVNICを介して処理される。仮想ネットワークトポロジを作成する能力により、アプリケーション設計者は、本質的にどのタイプのネットワーク構成も速く自動的に作成することができるようになる。たとえば、設計者は、分離ゾーンすなわち、DMZ非武装地帯を定義することができる。このゾーンは、所与のゾーン内でファイアウォールコンピュータをVLANに遠隔割振りし、スイッチを割り当て、サーバをVLANに追加することによって定義される。次いで、個々のサーバが異なる複数のアプリケーションをそこでホストする同一の計算機システム全体にアプリケーションを展開することができる。以下の開示では、物理コンピューティングリソースphysicalcomputingresourcesにおける分散型ソフトウェアアプリケーションの自動展開automateddeploymentのための仮想ネットワークトポロジの生成を説明する。物理計算機システムから任意の仮想ネットワークトポロジを生成する能力は、同一の分散コンピューティングシステム上でホストされるすべての分散アプリケーション用のカスタムネットワークトポロジの作成を可能とする。これは、複雑であるとともに複数のアプリケーションをホストするように、しばしば要求される大型データセンタには特に有用である。このようなデータセンタでインストールされる分散アプリケーションはしばしば複雑なネットワーク要件をもち、こうした要件を満たす物理ネットワークトポロジを構築することは煩わしく時間のかかる、人為的ミスを引き起こしがちな処理となる可能性がある。展開された各アプリケーションごとに計算機システムを物理的に再構成することたとえば、配線を経路指定し直すこと、様々なスイッチなどにコンピュータを物理接続することなどを必要としない仮想ネットワークトポロジの生成を可能にすることは、人間中心の操作への依存を減少させ、そうすることによってコストおよび人為的ミスを減少させる。分散コンピューティングシステム図2は、1つまたは複数の分散アプリケーションをサポートする必要に応じて自動的に展開することができる分散コンピューティングシステム200を示す。分散コンピューティングシステム200は、スイッチを含むネットワーク204を介して相互接続される多くのサーバ2021、2022、...、202Nのモノリシックな完全に統制された集合を含む。一実装形態では、ネットワークスイッチ204は、他のタイプのスイッチを使うこともできるが、ノンブロッキングnonblockingなイーサネット登録商標スイッチである。ネットワーク204は、サーバ2021~202Nがそれぞれ接続される複数の物理ポートP1、P2、...、PNを有して示してある。この分散コンピューティングシステム200は、1つまたは複数の負荷平衡化loadbalancingコンピュータ206および1つまたは複数のファイアウォールコンピュータ208をさらに含む。こうしたコンピュータのタイプはそれぞれ、ネットワークスイッチ204の物理ポートPN1およびPN2に接続して示してある。分散コンピューティングシステムは、負荷平衡化装置およびファイアウォールに加えて、他のタイプの専用装置、たとえばウェブキャッシュ、SSLセキュアソケットレイヤアクセラレータ、NASネットワーク付加記憶;networkattachedstorage装置などをさらに含むことができる。分散コンピューティングシステム200は、インターネットベースのサービスをホストするインターネットデータセンタIDC、より一般的にはデータセンタなど大規模計算機システムに展開される物理リソースを表す。例示的なデータセンタは、ローカルエリアネットワークLANによって相互接続される数十万台のコンピュータから構成される場合もある。分散コンピューティングシステム200は、1つまたは複数の仮想ネットワークトポロジ生成サーバ210をさらに含み、このサーバは、物理ポートPN3を介してネットワークスイッチ204に結合されるものとして示してある。このサーバ210は、アプリケーション設計者が分散コンピューティングシステム200から、複数の分散アプリケーションを同一のシステム200でホストすることができるように、仮想ネットワークトポロジを作成することを可能にする。分散アプリケーションとは、ネットワーク接続された複数のコンピュータに実装され、それによって実行されるソフトウェアプログラムである。このようなアプリケーションの例として、eメールサービス、ウェブサイト、コンテンツデータベース、オンラインコマース、ストレージ、ニュースおよび情報サービス、娯楽サービスなどがある。仮想ネットワークトポロジを生成するために、サーバ210は、各分散アプリケーションごとに少なくとも1つの仮想ローカルエリアネットワークVLANを作成する。サーバ210は次いで、選択されたサーバおよび関連づけられたスイッチポートに、それ自体をある特定のVLANに関連づけるように、指図する。仮想ネットワークトポロジ生成サーバ210は、分散アプリケーションをサポートすることにおいて、それぞれのVLANへの物理リソースの展開を促すfacilitate1つまたは複数のリソースマネージャ212を、実行させる。リソースマネージャ群212は、関連するアプリケーションが互いに分離して安全に動作できるように、サーバ202、ネットワークスイッチ204、負荷平衡化コンピュータ群206、およびファイアウォールコンピュータ群208と通信して様々なVLANを確立する。リソースマネージャ群212は、VLANの作成および割振り、ならびにどのコンピュータ群がそのVLANに接続されるか、を追跡する。このような情報は、仮想ネットワークトポロジ生成サーバ210においてリソースマネージャ群212によって保持されるデータベースに保存することができる。サーバ210はまた、アプリケーションのトポロジのカスタマイズを可能にする。たとえば、サーバは、重要な構成要素を分離させるためにアプリケーション内で分離ゾーン、すなわちDMZを作成することができる。仮想ネットワークトポロジを役立たせることができるいくつかの方法がある。たとえば、仮想トポロジ生成は、自動化を促すfacilitateために、使うことができる。ネットワークトポロジは、以下でより詳細に説明するように、要求に応じて人間の介入なしで生成することができる。仮想トポロジ生成は、同一の物理ネットワークが、安全なやり方でアプリケーションが互いに干渉することなく複数のアプリケーションをホストすることも可能にする。仮想トポロジ生成は、アプリケーション設計者がアプリケーションのある部分を他の部分から分離させる別個の分離ゾーンを定義し施行すること、を可能とする。このような分離ゾーンは、非常に短い時間で素早く構築することができる。仮想トポロジ生成のさらに別の可能な使用法は、複数の分散アプリケーションの間で専用ハードウェアリソースをプールすることを可能にすることである。図2では、たとえば、負荷平衡化コンピュータのプールは、物理ネットワークのどの地点でも定義し接続することができる。負荷平衡化装置は、次いで、このプールから割り振って、アプリケーションの仮想ネットワーク内に置くことができる。どのようにして仮想ネットワークトポロジが生成され、アプリケーションが物理コンピューティングリソースに自動的に展開されるかを説明する前に、以下のセクションで、物理計算機システムの上に構築されるプラットフォームアーキテクチャを扱う。このアーキテクチャは、自動展開automateddeploymentおよび管理機能managementfunctionsの様々な部分を開発することができる枠組みframeworkを提供する。プラットフォームアーキテクチャ図3は、分散コンピューティングシステム200における分散アプリケーションの設計、展開、および管理を自動化するプラットフォームアーキテクチャ300を示す。アーキテクチャ300は、分散コンピューティングシステム200の物理コンピュータリソースを表す基底層302の上にある複数の層を示している。自動展開サービス層automateddeploymentserviceslayer304は、マシンを分散コンピューティングシステム200で使われるサーバに変換するツールを提供する。このようなツールは、OSオペレーティングシステムイメージの作成、編集、および展開を可能にする。こうしたマシンの遠隔プログラミングは、システムおよびネットワーク装置が構成され管理されることを可能にする、マイクロソフトのWindows登録商標オペレーティングシステムにおけるプログラミングインターフェースAPIであるWMIWindows登録商標ManagementInstrumentationなどの、完全にプログラムに従ったインターフェースfullyprogrammaticinterfacesを使って実現される。ネットワーク管理層306は、自動展開サービス層304の上にある。ネットワーク管理層306は、ネットワーク管理および仮想トポロジ生成を考慮に入れている。1つには、ネットワーク管理層はネットワークコンピュータ用のドライバモデルをサポートし、このモデルは、ネットワークスイッチ204の関連づけられたポートに接続される、単一の物理ネットワークインターフェースを介した1つまたは複数のVLANへの個々のコンピュータの接続を促すfacilitate。このドライバモデルに従って、VLANドライバは、サーバでインストールされて、単一の物理ネットワークインターフェース上の仮想ネットワークインターフェースVNICを作成するのに使われる。VLANドライバは、各VLANごとに1つの仮想ネットワークインターフェースVNICを作成する。VNICは、サーバのIPスタック内のネットワークインターフェースNICのすぐ上に常駐し、そうすることによってサーバは、すべてのパケットが同一の物理NICを介して物理的に移動するけれども、複数のVLANを介して渡されるパケットを処理することができるようになる。このことは、図6に関連して以下でより詳細に説明する。このドライバモデルは、スイッチポートへのVLANのタグづけの構成を可能にして、分散コンピューティングシステムを介して渡されるデータパケットが、スイッチポートが属すVLANについての識別でタグづけされるようにする。ネットワークスイッチ204は、こうしたタグづけを施行し、スイッチが属すVLANを識別するタグを有するパケットのみを受け取る。一実装形態では、ネットワークスイッチ204は、タグつきのポートおよびタグなしのポートの両方を有する。あるスイッチのタグつきのポートは、VLAN識別子でタグづけされ、他のスイッチのタグつきのポートへの接続に使われる。こうすることにより、スイッチを含むネットワークを介したパケットの高速転送が可能になる。スイッチのタグなしのポートは、サーバ202またはコンピュータ206、208への接続に使われる。パケットがその宛先サーバのスイッチポートに到達すると、サーバがタグづけに関して何も知らなくてよいように、サーバに向けてパケットを伝達する前にVLANタグがパケットからはぎ取られる。物理リソース管理層308は、ネットワーク管理層306の上にある。物理リソース管理層308は、分散コンピューティングシステム200の物理モデルを維持して、所有権ownershipを追跡し、すべての物理コンピューティングリソースの割振りを調整する。物理管理層308は、バッチされたリソース割振りをさらにサポートし、そうすることによって物理コンピューティングリソースの動的な構成および管理を可能にする。論理リソース管理層310は、物理リソース管理層308の上にある。論理リソース管理層310は、分散アプリケーションによって要求される論理リソースの割振りを促す。たとえば、こうしたアプリケーションは、データベース、負荷バランシングサービス、ファイアウォール、ウェブサービスなどとしての、このようなリソースを必要とする場合がある。論理リソース管理層310は、このような論理リソースを露出公開する。次の層はサービス定義モデルおよびランタイム層312であり、この層は、分散アプリケーションの記述およびその動作の追跡を可能にする。サービス定義モデルSDMは、アプリケーションの内観introspectionおよびアプリケーションリソースの制御のための動作処理およびAPIを記述する名前空間およびコンテクストを提供する。サービス定義モデルはさらに、オペレータおよび開発者が共通のアプリケーションビューを共有することを可能にする。コンピューティングリソース層302の上の第6番目の層は、構成要素層314である。この層は、分散アプリケーションの再利用可能な構築ブロックの定義を許可し、このブロックは、コンテクスト、名前づけ、およびバインディングbindingのためにSDMAPIを使う。こうした構築ブロックは、構成要素componentsと呼ばれる。最上位層は動作論理operationslogic層316であり、分散アプリケーションの動作態様を調整する。この動作論理は、サービスの開始、サービスの拡大および縮小growingandshrinking、アップグレードおよびダウングレード、障害検出および回復、ならびに状態区分化に責任がある。この動作論理により、展開およびアプリケーションに渡って検証済みの動作実行の再利用が可能になる。SDM層を使うことにより、動作論理は、起こり得る問題をよりよく理解するためのコンテクストを有する。たとえば、故障が起こると、動作論理は、その部屋の中間にある何らかのサーバではなく、eメールサービスのフロントエンドでその故障が起きたと判定することができる。仮想ネットワークトポロジプラットフォームアーキテクチャは、同一の計算機システムが複数のアプリケーションをサポートすることができるように、物理リソース上に仮想ネットワークトポロジを生成するフレームワーク枠組みを提供する。仮想LANVLANは、アプリケーションが分散コンピューティングシステムで実行される他のアプリケーションと分離して実行することができるように、各アプリケーションごとに作成することができる。仮想ネットワークトポロジが作成されると、システムは、物理リソースの自動展開および適切なVLANへの接続を促して、分散アプリケーションの実行を可能にする。図4は、ネットワークスイッチ404を介して相互接続される5つのサーバ4021~4025からなる例示的な配置を有する物理ネットワークトポロジ400を示す。各サーバ402は、ネットワークスイッチ404の、関連づけられたポートP1~P5に物理的に結合される。説明のために、このネットワークスイッチは、1つまたは複数のイーサネット登録商標スイッチとして実装される。仮想ネットワークトポロジは、物理コンピューティングリソース400上で実行される分散アプリケーションを表すように作成することができる。例示的な本実装形態では、仮想ネットワークトポロジは、イーサネット登録商標スイッチ、VLAN、および仮想ネットワークインターフェースVNICを使って作成される。イーサネット登録商標のネットワークにより、ネットワークの分離isolationのために複数のVLANへの隔離segregationが可能になる。VLAN内のノードは、同一のVLAN内の他のノードと自由に通信することができるが、VLANの外のノードと直接話すことはできない。VLANは、ポートベースのVLANとしても、プロトコルベースのVLANとしても実装することができる。ポートベースのVLANは、単一のスイッチ中に生じるが、プロトコルベースのVLANは、複数のスイッチに及ぶことができる。プロトコルベースのVLANは、IEEE802.1Qに従って標準化されている。非特許文献1IEEE802.1Q標準は、どのようにしてパケットに印がつけられ、どのようにしてVLANがサポートされるか記述している。各パケットフレームは、そのフレームにタグヘッダを追加することによって、802.1Q情報で印がつけられるタグづけされるので、この標準は、タグヘッダのような802.1Qパケットの拡張を記述している。2つ以上のコンピュータをVLANに置くことは、それらのコンピュータを同一の物理ネットワークに接続することと物理的に等価である。この特性は、物理ネットワークの上位に任意の仮想トポロジを作成するように拡張される。たとえば、サーバ4021、4023、および4025上の3つのウェブサーバと、サーバ4022上の1つのデータベースとをアプリケーションが必要とする、と仮定する。さらに、アプリケーション設計者はセキュリティに関心があり、ある分離ゾーンにウェブサーバ4021、4023、4025を、および別個の分離ゾーンにデータベースサーバ4022を置き、その2つの分離ゾーンを、ファイアウォールを介して接続したいと望んでいる。図5は、図4の物理リソース400から形成することができるとともに、このアプリケーション設計者の目標を達成する仮想ネットワークトポロジ500を示す。この仮想ネットワークトポロジ500は、2つのVLAN、すなわちウェブVLAN502およびデータベースDBVLAN504を有する。ウェブサーバ4021、4023、および4025はウェブVLAN502に置かれ、データベースサーバ4022はDBVLAN504に置かれる。ファイアウォールはサーバ4024に展開され、次いでウェブVLAN502およびデータベースVLAN504の両方に接続される。このファイアウォール4024は、DMZWeb506およびDMZDB508で表されるように、アプリケーションについて2つの分離ゾーンを作成する。この例では、ファイアウォールサーバ4024は2つのVLANのメンバーである。ただし、このサーバは、ネットワークスイッチ404のポートP4への接続用のただ1つの物理インターフェースしかもたない。1つの物理インターフェースが2つのVLANをサポートすることを可能にするには、サーバ4024上にVLANドライバが、2つの仮想ネットワークインターフェースVNICを作成するようにインストールされ、そうすることによって物理ネットワークインターフェースNICは、両方のVLANに接続されるように見えるようになる。サーバ側から見ると、各仮想ネットワークインターフェースは、別個のネットワークに物理接続されているように見える。図6は、ファイアウォールサーバ4024をより詳細に示す。このファイアウォールはVLANドライバ602を実装し、このドライバは、ネットワークインターフェースNICドライバ604とIPドライバ606の間のプロトコルスタック内に実装される。一実装形態では、VLANドライバ602は、リソースマネージャ212によってダウンロードされてインストールされる。NICドライバ604は、スイッチ404のポートP4への物理接続を介するすべてのパケットトラフィックを処理する。VLANドライバ602は、物理ネットワークインターフェースにバインドし、各物理ネットワークインターフェースを介する1つまたは複数の仮想ネットワークインターフェースVNICを作成する。各仮想ネットワークインターフェースは、一義的なVLAN識別を表す。この例では、VLANドライバ602は、2つの仮想ネットワークインターフェース、すなわちウェブVLAN502用のVNICVLANWEB608およびDBVLAN504用のVNICVLANDB610を作成する。ある特定のVLANに向けられた発信パケットは、関連づけられたVNICにおいて、対応するVLAN識別でタグづけされる。アプリケーションは、特定のVNICインターフェースに直接バインドすることによって、適切なVLANを選ぶ。パケットは次いで、物理インターフェースを介してネットワークスイッチに送られる。このスイッチは、VLANタグを調べ、どのVLANにそのパケットがバインドされているか確かめることができる。着信パケットも同様に、VLAN識別でタグづけされる。関連づけられたVNICは、パケットを受け取ってタグをはぎ取り、適切なアプリケーションで使うためにそのパケットをアップストリームでIPドライバに渡す。こうすることにより、単一の物理NICを有するサーバがいくつかのVLANに関与することが可能になる。仮想ネットワークトポロジ生成サーバ210は、スイッチ404に結合されて示してある。遠隔プログラム制御技術を使って、このサーバ210は、ファイアウォールサーバでまだない場合はVLANドライバをダウンロードさせてインストールし、次いで、仮想ネットワークトポロジ用のVNICを作成する命令を提供することができる。サーバがただ1つのVLANのメンバーたとえば、ウェブサーバ4021、4023、4025およびデータベースサーバ4022である場合、VLANドライバ602をインストールする必要もVNICを作成する必要もないことに留意されたい。ネットワークインターフェースは、スイッチポートへの適切な物理接続を指定することができ、スイッチポートは、適切なVLAN帰属関係membershipを有して構成することができ、VLANを介してすべてのトラフィックをサーバにまたはそこから転送する。一方、サーバがただ1つのVLAN用に使われるとしても、VLANドライバをインストールし1つのVNICを作成することに不都合はない。特殊な装置の場合、リソースマネージャは、こうした装置にVNICをインストールすることができない。しかし、こうした装置でも、ある特定のVLANに対応するようにプログラミングすることができる。いくつかの装置は、複数の物理ポートを備える。こうした物理ポートはそれぞれ、こうした装置が接続されるスイッチポートをプログラミングすることによって、異なるVLANのメンバーにすることができる。他の特殊な装置の場合、リソースマネージャは、特定のVLAN上に適切なポートを位置決めするために、装置専用のドライバを用いてそうした装置をプログラミングする。これは、スイッチポートに特定のVLANのメンバーであると命じることに似ている。仮想ネットワークトポロジの生成図7は、分散アプリケーションをサポートする仮想ネットワークトポロジを生成し、そのアプリケーション用のリソースを展開する処理700を示す。処理700は一連のブロックとして示してあり、このブロックは、コンピューティングシステム200内の様々なコンピュータによって実施される動作を表している。この動作は、様々なコンピュータで実行することができるソフトウェアで実装することができる。したがって、ブロックは、関連する動作を実施するプロセッサによって実行することができる、コンピュータ可読媒体に格納された命令を表している。ブロック702で、アプリケーション設計者は、分散コンピューティングシステム200上で展開されることになる分散アプリケーションの仮想レイアウトを設計する。仮想レイアウトは、どのような構成要素が使用され、どのようにしてその構成要素が相互接続されるか指定する。たとえば、図5に示すアプリケーションを設計するために、設計者は、ウェブサーバ、データベースサーバ、ファイアウォール用の構成要素、およびこうした構成要素の間の接続を指定することができる。ブロック704で、このシステムは、分散アプリケーションの様々な構成要素を具体化するように割り振られる物理リソースを決定する。システムは、たとえば、どれだけのサーバが、アプリケーションをサポートするために展開されるべきかを決定する。こうした決定は、サービスのサイズなどのようなパラメータ、どれだけの数のユーザが予想されるか、などを示す、設計者から受け取った入力に部分的に基づく。アプリケーションが設計され、構成要素の具体化instantiationsが決定されると、仮想ネットワークトポロジ生成サーバ210に実装されたリソースマネージャ212は、仮想LANVLANおよび仮想ネットワークインターフェースVNICを使って、仮想ネットワークトポロジから物理ネットワークへのマッピングを実現する。ブロック706で、仮想ネットワークトポロジ生成サーバ210は、各アプリケーションごとに少なくとも1つの仮想LANVLANを作成する。1つのアプリケーション用の仮想ネットワークトポロジは、図5に示す仮想ネットワークトポロジ500の場合のように、複数のVLANを使用して、複数の分離ゾーンを確立することができる。この例では、仮想ネットワークトポロジ生成サーバ210は、2つのVLAN、すなわちウェブVLAN502およびDBVLAN504を作成する。この2つのVLANは、ウェブサーバ4021、4023、および4025をデータベースサーバ4022から分離し、そうすることによって2つの分離ゾーンDMZWeb506およびDMZDB508を作成する。ブロック708で、仮想ネットワークトポロジ生成サーバ210にあるリソースマネージャ212は、物理コンピューティングリソースをそれぞれのVLANに展開する。言い換えると、リソースマネージャ212は、アプリケーションの仮想ネットワークトポロジをサポートするために、物理ネットワーク400図4からの物理リソースを割り当てる。こうした展開は、図7のブロック7081および7082で示す2つの下位動作を含む。ブロック7081で、リソースマネージャ212は、ネットワークスイッチ404の外部スイッチポートすなわち、サーバに接続されるポートを、そのサーバが属す指定されたVLANに割り当てる。外部スイッチポートは、1つまたは複数のVLAN帰属関係を有して構成することができる。ブロック7082で、リソースマネージャ212は、指定されたVLANを介した通信を可能にするために仮想ネットワークインターフェースVNICをサーバで作成し、そうすることによってサーバは、そのVLANのメンバーになることができる。サーバがただ1つのVLANのメンバーたとえば、ウェブサーバ4021、4023、4025およびデータベースサーバ4022である場合は、この動作は任意選択であることに留意されたい。この場合、サーバはただ1つのVLANを介して通信することになるので、そうしたVLAN帰属関係を有するスイッチポートを構成することが適切である。スイッチは、サーバからのすべてのトラフィックがただ1つの構成されたVLANに向けられたものであると想定している。サーバが2つ以上のVLANのメンバーたとえば、ファイアウォールサーバ4024である場合は、VLANドライバがサーバにインストールされる。VLANドライバは、物理ネットワークインターフェースにバインドされ、その上に2つ以上の仮想ネットワークインターフェースVNICを作成する。各仮想ネットワークインターフェースは、一義的なVLAN識別を表す。VNIC上で送り出されるパケットは、そのVLAN識別でタグづけされる。スイッチはそのVLANタグを調べ、どのVLANにそのパケットがバインドされるか確かめることができる。物理コンピューティングリソースは、判断ブロック710で表すようにアプリケーションが完全にインストールされるまで、この2段階動作方式で展開され続ける。物理リソースの展開を例示するために、どのようにしてリソースマネージャ212が図5の仮想ネットワークトポロジ500に向けてコンピュータを展開するか検討する。図5および6の両方を参照してこの処理を説明する。最初に、2つのVLAN、すなわちウェブVLAN502およびDBVLAN504が動作706で作成される。次に、分離ゾーンDMZWeb506を定義するために、リソースマネージャ212がファイアウォールサーバ4024をウェブVLAN502に追加することを決定すると仮定する。リソースマネージャ212は、スイッチ404に、ポート4がウェブVLAN502を参照するように設定するように、通知する。これは、図6で、VLANWeb識別をポート4に追加することによって示してある。このことは、処理700の動作7081を表す。スイッチ404は、ここで、分離ゾーンDMZWeb506の一部であることを理解する。リソースマネージャ212は次いで、ファイアウォールサーバ4024にあるVLANドライバ602に、図6にVNICVLANWeb608で示すウェブVLAN用のVNICを作成するように指示する。このことは、処理700の動作7082を表す。VNICVLANWeb608を介して渡されるパケットは、VLANWeb識別でタグづけされ、スイッチ404によってウェブVLAN502上に正しく経路指定される。ここで、リソースマネージャ212が、他方の分離ゾーンDMZDB508を定義するために同じファイアウォールサーバ4024をDBVLAN504に追加すると仮定する。リソースマネージャ212は、スイッチ404に、ポート4がさらにDBVLAN504を参照するように設定するように通知する。これは図6で、VLANDB識別をポート4に追加することによって示してある。これもやはり、処理700の動作7081を表す。ここで、スイッチ404は分離ゾーンDMZDB508の一部でもあり、VLANDB識別を有するパケットを受け取ることになる。リソースマネージャ212は次いで、ファイアウォールサーバ4024にあるVLANドライバ602に、今度は図6にVNICVLANDB610で示すDBVLAN用の第2のVNICを作成するように、指示する。これもやはり、処理700の動作7082を表す。VNICVLANDB610を介して渡されるパケットは、VLANDB識別でタグづけされ、スイッチ404によってDBVLAN504上に正しく経路指定される。この処理は、各ウェブサーバ4021、4023、4025をウェブVLAN502に、およびデータベースサーバをDBVLAN504に接続するために繰り返すことができる。上述したように、こうしたサーバの追加は、対応するスイッチポートP1、P2、P3、およびP5を適切なVLAN帰属関係を有して構成するだけで実現することができる。こうしたサーバは現時点ではただ1つのVLANの一部なので、仮想ネットワークインターフェースをサーバで作成する必要はない。例示的なリソースマネージャAPI以下のセクションでは、スイッチおよびサーバを遠隔に構成するリソースマネージャRM212によって提供されるアプリケーションプログラムインターフェースAPIの例示的な組setを提供する。このAPIは、VLANを確立すること、スイッチを適切なVLANに接続すること、関連づけられたVLAN上への通信を促すためにサーバでVNICを作成すること、に使われ、そうすることによって仮想ネットワークトポロジから物理ネットワークリソースへのマッピングを実現する。こうしたトポロジマッピングは、専用の帯域外ネットワークdedicatedoutofbandnetworkではなく、既存のネットワークを介した帯域内技術inbandtechniquesを使って完成されることに留意されたい。したがって、そこには、開始するためのデフォルトの接続性が存在し、それによって、必要に応じて新しいVLANを構成する基礎を提供する。仮想トポロジの構築および割振り解除は、RMによって公開される、以下の中心となるウェブ方法corewebmethodsによって促される。AllocateVlanConstructVlanAttachComputerToVlanDetachComputerFromVlanReleaseVlan以下は、RMによって提供される例示的なインターフェースの一覧を示し、上記の5つのウェブ方法の説明を含む。以下において部分的な和訳をに追加している。RegisterRegistersthisresourcemanagerwiththeruntimeonthemachineruntimeAddressマシンruntimeAddress上のランタイムを使用してこのリソースマネージャを登録するlPaddressoftheruntimetoregisterwith登録するランタイムのlPアドレスComponentinstanceofthisresourcemanagerこのリソースマネージャのコンポーネントインスタンスJustreturnsthecomponentinstanceofthisresourcemanagerofduplicatecalls二重のコールでこのリソースマネージャのコンポーネントインスタンスに戻るWebMethodpubliclongRegisterUnregisterUnregistersthisresourcemanagerfromtheruntimeonthemachineruntimeAddressマシンruntimeAddress上のランタイムからこのリソースマネージャを登録解除するIPaddressoftheruntimetounregisterfrom登録解除するランタイムのIPアドレスDoesnothingonaduplicatecall二重のコールで何もしないWebMethodpublicvoidUnregisterRegisterComputerRegisteracomputeranditsrelationshipwithnetworkdeviceswiththeNetworkResourceManagerネットワークリソースマネージャで、コンピュータと、そのネットワークデバイスとの関係を登録するInformationonthecomputertoregister登録するコンピュータについての情報Acomputermustberegisteredbeforeanyoperationisperformedonthatcomputerコンピュータ上で何らかの操作が行われる前に、コンピュータは登録されなければならないAmanagedcomputerisacomputerthatcontainstheVLANtagdriverandthenetworkresourcemanagerhaspermissiontoupdatethecomputersvirtualinterfaceandIPaddressingsettingIfunmanagedthecomputerismovedtothespecifiedVLANandisnotaccessedmanagedコンピュータは、VLANタグドライバを含んでいるコンピュータであり、ネットワークリソースマネージャの仮想インターフェースとIPアドレス指定セッティングをアップデートするアクセス権を持っている。管理されないならば、コンピュータは指定されたVLANに移動されて、アクセスされないWebMethodpublicvoidRegisterComputerRegisterDeviceRegisteranetworkdevicewiththeNetworkResourceManagerネットワークリソースマネージャでネットワークデバイスを登録するInformationonthedevicetoregister登録するデバイスについての情報AdevicemustberegisteredbeforeanyoperationisperformedonthatdeviceOnregistrationthedevicewillbeconnectedtoandsoftconfigurationinformationretrieved何らかの操作がそのデバイス上で行われる前に、デバイスは登録されなければなりない。登録に関して、デバイスがそれに接続され、ソフト構成情報が取り出される。WebMethodpublicvoidRegisterDeviceUnregisterComputerUnregisteracomputerfromtheNetworkResourceManagerネットワークリソースマネージャでコンピュータを登録解除するIdentifierofcomputertounregister登録解除するコンピュータの識別子Forceautomaticcleanupofheldresources保持しているリソースについて自動的クリーンアップを強制執行するAcomputermustbeenpreviouslyregisteredandallheldnetworkresourcesreleasedbeforeunregistrationコンピュータは以前に登録されていなければならず、全ての保持されているネットワークリソースは登録解除するまえにリリースされるTheforceflagwillscrubthedatabaseofanyreferencestothedevicewithoutattemptingtocommunicatewiththedevice‘強制執行’フラグは、デバイスと通信せずにそのデバイスへの全てのリファレンスのデータベースを消し込むことになるWebMethodpublicvoidUnregisterComputerUnregisterDeviceUnregisteradevicefromtheNetworkResourceManagerネットワークリソースマネージャからデバイスを登録解除するIdentifierofdevicetounregister登録解除するデバイスの識別子Forceautomaticcleanupofheldresources保持しているリソースの自動的なクリーンアップを強制執行するAdevicemustbeenpreviouslyregisteredandallheldnetworkresourcesreleasedbeforeunregistrationデバイスは登録されていなければならず、すべての保持しているネットワークリソースは登録解除する前にリリースされるTheforceflagwillscrubthedatabaseofanyreferencestothedevicewithoutattemptingtocommunicatewiththedevice‘強制執行’フラグは、デバイスと通信せずにそのデバイスへの全てのリファレンスのデータベースを消し込むことになるWebMethodpublicvoidUnregisterDeviceAllocateVlanAllocatesanewVLANfromthenetworkresourcedatabaseifavailableandissupportedbythisnetworkenvironmentIfsuccessfultheallocatedvlanisrecordedwiththeowneridentification新しいVLANを、それが使用可能で、このネットワーク環境によってサポートされているならば、ネットワークリソースデータベースから割り当てる。成功したならば、割り当てられたvlanはオーナ識別子を使用して記録される。Owneridentificationoftheallocatedresource割り当てられたリソースのオーナ識別AVLANtagidentifierofthenewlyallocatedVLANTheallocationisonlyperformedinthenetworkresourcedatabaseandthenetworkisnotaffectedAcalltoConstructVlanisrequiredtocreatetheactualvlaninthenetworkenvironmentこの割当てはネットワークリソースデータベース中で実行されるだけで、このネットワークは影響を受けない。‘ConstructVlan’へのコールは、ネットワーク環境において実際のvlanを作成するために必要とされる。WebMethodPriorState事前の状態ThenumberofVLANsavailablewithinanetworkfabricisdeterminedbythreefactorsthetypeandconfigurationofphysicalswitchthenumberofVLANsreservedforinternaluseandpreviousallocationsofVLANsWhilethecurrenttheoreticalrangeofVLANsis1to4095theactualnumbermaybelimitedbytheimplementationofVLANsonaswitchForexampleaswitchmayonlysupportarangeof1to1001withamaximumallocatedVLANsof256KnowledgeoftheswitcharchitecturereservedforinternaluseVLANsandpreviouslyallocatedVLANsistrackedinapersistentdatabaseネットワーク構造内で使用可能なVLANsの数は3つの要因によって決定される:物理的なスイッチのタイプと構成、内部使用のために確保されたVLANsの数、VLANsの前の割当て数。VLANsの現在の理論的な範囲が1から4095まであるのに対して、実際の数はスイッチ上のVLANsの実装によって制限されることになる。例えば、スイッチは256の最大の割り当てられたVLANsによって1から1001の範囲をサポートするだけの場合もある。内部的なVLANsの使用に確保されたスイッチアーキテクチャに関する知識、および以前に割り当てられたVLANsは、持続的なデータベースで追跡される。Description記述1ValidateparameterisvalidOwnerIdmustbenonzerovalue有効化パラメータは有効である。Owneridは非0の値でなければならない。2Transactionlockdatabaseトランザクションはデータベースをロックする3ExaminedatabasetodetermineifanewVLANcanbeallocatedwithoutexceedingthemaximumpermittedbythecurrentnetworkfabric新しいVLANが、現在のネットワーク構造によって許された最大を越えずに割り当てられることができるかどうかを決定するために、データベースを調査する4IfnomoreVLANsarepermittedthrowexceptionandreleasedatabaselockもはやVLANsが許されないならば、例外報告をスローして、データベースロックを解除する5CreatenewrowindatabasetorepresenttheallocatedVLANentryTheVLANidentifierisdeterminedbyalinearscanofexistingVLANentriestofindthefirstavailableidentifierデータベースの中で新しい列rowを作成し、割り当てられたVLANエントリを提示する。VLAN識別子は、最初の使用可能な識別子を見つけるために、既存のVLANエントリを線型走査して、決定される。6Committransactionトランザクションを確定する7ReturntheallocatedVLANidentifiertocaller呼びだし側に割り当てられたVLAN識別子を戻すpublicintAllocateVlanAllocateVlanWithIdAllocatesthespecificVLANrequestedfromthenetworkresourcedatabaseifavailableandissupportedbythisnetworkenvironmentIfsuccessfultheallocatedvlanisrecordedwiththeowneridentification要求された特定のVLANを、それが使用可能でこのネットワーク環境によってサポートされるならば、このネットワークリソースデータベースから割り当てる。成功したならば、割り当てられたvlanはオーナ識別子を使用して記録される。Owneridentificationoftheallocatedresource割り当てられたリソースのオーナ識別TheidentifieroftheVIantoallocate割り当てるVlan識別子TheallocationisonlyperformedinthenetworkresourcedatabaseandthenetworkisnotaffectedAcalltoConstructVlanisrequiretocreatetheactualvlaninthenetworkenvironmentThedefaultVLANcannotbeallocated割当てはネットワークリソースデータベース中で実行されるだけで、ネットワークは影響されない。‘ConstructVlan’へのコールは、ネットワーク環境において実際のvlanを作成するために必要とされる。デフォルトVLANは割り当てられることができない。WebMethodpublicvoidAllocateVlanWithIdConstructVlanConstructsapreviouslyallocatedVLANbycreatinganewvlanentryinthenetworkhardwareandupdatingthestateoftheNetworkVLANentryinthedatabaseネットワークハードウェア中で新しいvlanエントリを作成し、データベースの中でネットワークVLANエントリの状態をアップデートすることによって、以前に割り当てられたVLANを構成するIdentifierofVLANtoconstruct構成するVLANの識別子TheVLANmusthavebeensuccessfullycreatedviatheAllocateVlanmethodVLANは‘AllocateVlan’メソッドを介して成功裏に作成される必要があるWebMethodPriorState事前の状態TheVLANidentifiertobeconstructedwasallocatedinapriormethodcalltoAllocateVlanwhichreservestheVLANidentifierinthepersistentdatabaseAllnetworkswitchesaredefinedinthedatabaseandareavailableforconfiguration構成されるVLAN識別子は、持続的なデータベース中にVLAN識別子を確保するAllocateVlanへの事前の方法コールの中で割り当てられていた。すべてのネットワークスイッチはデータベースの中で定義されていて、構成のために使用可能であるDescription記述1Transactionlockdatabaseトランザクションはデータベースをロックする2ThevlanIdmustexistinthedatabaseintheallocatedstatevlanIdは、‘割り当てられた’状態で、データベースの中に存在しなければならない3ForeachswitchinthedatabaseallocatetheVLANidentifieronthatswitchusingthetypespecificdevicedriverforthatswitchデータベース中の各スイッチに対して、そのスイッチ用のタイプの特定のデバイスドライバを使って、そのスイッチ上にVLAN識別子を割り当てる4UpdatestateoftheVLANtoconstructedinthedatabaseデータベース内で‘構成されている’LANの状態をアップデートする5Committransactionトランザクションを確定するpublicvoidConstructVlanAttachComputerToVlanAttachacomputertotheVLANandupdateitsvirtualinterfaceandaddressingifmanagedコンピュータをVLANに付加し、それが管理されているならば、その仮想インターフェースとアドレス指定をアップデートするIdentifierofcomputertoattachto付加するコンピュータの識別子VLANidentifiertoattachportto付加ポートのVLAN識別子TheVLANistaggedandrequiredtheVLANdriverこのVLANはタグ付けされ、VLANドライバを必要とするThetargetcomputerismanagedターゲットコンピュータは管理されるTheIPaddressandsubnetmaskusedtoaccessthecomputeronthespecifiedVLANIPアドレスとサブネットマスクは、指定されたVLAN上のコンピュータをアクセスするのに使用されるAttachingtothedefaultVLANisnotpossibleDetachingacomputerfromallVLANswillplaceitonthedefaultVLANデフォルトVLANに付加することは不可能である。すべてのVLANsからコンピュータを取り外すことはそれをデフォルトVLANに置くことになる。IfthetaggedargumentistruethenthecomputerwillbeattachedtotheVLANspecifiedintaggedmodeThisrequiresthecomputertousetheVirtualVLANdrivertocreateavirtualinterfaceforthatVLANtoaccessthenetworkAcomputercanexistinmultipletaggedVLANbutonlyasingleuntaggedVLANNotpossibletomixtaggedanduntaggedVLANs‘tagged’引数が真であるならば、そのコンピュータはタグ付けされたモードで指定されたVLANに付加されることになる。このことは、そのコンピュータが、そのVLANがネットワークにアクセスするための仮想インターフェースを作成するために、仮想のVLANドライバを使うことを必要とする。コンピュータは、複数のタグを付けられたVLANにおいて存在することができ、1つのタグ付けされないVLANに存在することができる。タグ付けされたVLANsと、タグ付けされないVLANsを混在させることは不可能である。AmanagedcomputerisacomputerthatcontainstheVLANtagdriverandthenetworkresourcemanagerhaspermissiontoupdatethecomputersvirtualinterfaceandIPaddressingsettingIfunmanagedthecomputerismovedtothespecifiedVLANandisnotaccessedIfmanagedistruethenthetaggedargumentmustbetrueIfmanagedisfalseandtaggedistruethecallerisresponsibleforcreatingavirtualinterfaceonthecomputermanagedコンピュータは、VLANタグドライバを含んでいるコンピュータであり、ネットワークリソースマネージャは、コンピュータの仮想インターフェースとIPアドレス指定セッティングをアップデートするアクセス権を持っている。管理されていないならば、そのコンピュータは指定されたVLANに移動されて、アクセスされない。‘managed’が真であるならば、‘tagged’引数は真であることになる。‘managed’が偽で、‘tagged’が真であるならば、呼びだし側は、コンピュータの上の仮想インターフェースを作成する責任がある。WebMethodPriorState事前の状態ThecomputertobeattachedhasbeenregisteredwiththeNRMtoprovidedetailsonthewirepathbetweenthephysicalNICsonthecomputerandtheportontheswitchconnectedtoTheVLANidentifierhasbeensuccessfulconstructed付加されるコンピュータは、コンピュータの上の物理的なNICsと接続されたスイッチの上のポートの間でワイヤパスの上の詳細を提供するNRMによって登録されている。VLAN識別子は成功裏に構築されている。Description記述1Transactionlockdatabaseトランザクションはデータベースをロックする2ThecomputerIdmustexistinthedatabasewithtopologydetailscomputerIdはトポロジ詳細を有してデータベースの中に存在しなければならない3ThevlanIdmustexistinthedatabaseintheconstructedstatevlanIdは、‘constructed’状態でデータベース中に存在しなければならない4UsingaremotecalladdanewVirtualNIConthespecifiedcomputerfortheVLANidentifierprovidedリモートのコールを使って、提供されたVLAN識別子のために新しい仮想NICを指定されたコンピュータの上に追加する3ForeachswitchinthedatabaseattachtheswitchportphysicallyattachedtothecomputertotheVLANidentifierusingthetypespecificdevicedriverforthatswitchデータベース中の各スイッチに対して、そのスイッチ用のタイプ特定デバイスドライバを使って、VLAN識別子に物理的にコンピュータに接続されスイッチポートを付加する4AddanewattachedrecordtothedatabasetoindicatethecomputersrelationshipwiththeVLANVLANとコンピュータの関係を示すために、新しい、‘attached’の記録をデータベースに追加する5Committransactionトランザクションを確定するpublicstringAttachComputerToVlanDetachComputerFromVlanDetachacomputerfromaVLANVLANからコンピュータを切り離すVlanidentifiertodetachfrom切り離すVlan識別子Computeridentifiertodetachfrom切り離すコンピュータ識別子Thetargetcomputerismanagedターゲットコンピュータは管理されているDetachingfromthedefaultVLANisnotpossibleIfthemanagedflagissetthentheNetworkResourceManagerrequiresremoteaccesstotheVLANtagdriverandthevirtualVLANinterfacewillberemovedfromthespecifiedcomputerIftheremotecomputerhasfailedsetthemanagedparametertofalseデフォルトVLANからの分離は不可能である。管理されたフラグが設定されているならば、ネットワークリソースマネージャはVLANタグドライバへの遠隔アクセスを必要とし、仮想のVLANインターフェースは指定されたコンピュータから削除される。リモートコンピュータがfailになると、‘managed’パラメータを‘偽’に設定する。WebMethodPriorState事前の状態ThecomputertobeattachedhasbeenregisteredwiththeNRMtoprovidedetailsonthewirepathbetweenthephysicalNICsonthecomputerandtheportontheswitchconnectedtoTheVLANidentifierhasbeensuccessfulconstructedThecomputerwasattachedtotheVLANinapriormethodcalltoAttachComputerToVlan付加されたコンピュータは、コンピュータ上の物理的なNICsと接続されたスイッチの上のポートの間でワイヤパスの上の詳細を提供するNRMによって登録されている。VLAN識別子は、成功裏に構成されている。コンピュータはAttachComputerToVlanへの以前のメソッドコールでVLANに付加されている。Description記述1Transactionlockdatabaseトランザクションはデータベースをロックする2ThecomputerIdmustexistinthedatabasewithtopologydetailscomputerIdはトポロジ詳細を有してデータベースの中に存在しなければならない3ThevlanIdmustexistinthedatabaseintheconstructedstatevlanIdは、‘構成された’状態で、データベースの中に存在しなければならない4Anattachedrecordmustexistinthedatabase‘attached’記録がデータベース中に存在しなければならない5ForeachswitchinthedatabasedetachtheswitchportphysicallyattachedtothecomputertotheVLANidentifierusingthetypespecificdevicedriverforthatswitchデータベース中の各スイッチのために、そのスイッチ用タイプ特定デバイスドライバを使って、VLAN識別子に物理的にコンピュータに付加したスイッチポートを切り離す6UsingaremotecallremovetheVirtualNIConthespecifiedcomputerfortheVLANidentifierprovidedリモートのコールを使って、提供されたVLAN識別子に対する指定されたコンピュータ上の仮想NICを削除する7RemovetheattachedrecordfromthedatabasetoindicatethecomputersrelationshipwiththeVLANnolongerexistVLANとのコンピュータの関係がもはや存在していないのを示すために、‘attached’記録をデータベースから削除する8Committransactionトランザクションを確定するpublicvoidDetachComputerFromVlanAttachComputerToExternalAttachacomputertotheexternalVLANandupdateitsvirtualinterfaceandaddressingifmanagedコンピュータを外部のVLANに付加し、それが管理されているならば、その仮想インターフェースとアドレス指定をアップデートするIdentifierofcomputertoattachto付加するコンピュータの識別子Thetargetcomputerismanagedターゲットコンピュータは管理されるTheIPaddressandsubnetmaskusedtoaccessthecomputeronthespecifiedVLANIPアドレスとサブネットマスクは、指定されたVLAN上のコンピュータへのアクセスに使用されるIfthetaggedargumentistruethenthecomputerwillbeattachedtotheVLANspecifiedintaggedmodeThisrequiresthecomputertousetheVirtualVLANdrivertocreateavirtualinterfaceforthatVLANtoaccessthenetworkAcomputercanexistinmultipletaggedVLANbutonlyasingleuntaggedVLANNotpossibletomixtaggedanduntaggedVLANs‘タグ付けされた’引数が時真であるならば、そのコンピュータはタグ付けされたモードで指定されたVLANに付加されることになる。このことは、そのコンピュータが、そのVLANがネットワークにアクセスするための仮想インターフェースを作成するために、仮想のVLANドライバを使うことを必要とする。コンピュータは、複数のタグを付けられたVLANにおいて存在することができ、1つのタグ付けされないVLANに存在することができる。タグ付けされたVLANsと、タグ付けされないVLANsを混在させることは不可能である。AmanagedcomputerisacomputerthatcontainstheVLANtagdriverandthenetworkresourcemanagerhaspermissiontoupdatethecomputersvirtualinterfaceandIPaddressingsettingIfunmanagedthecomputerismovedtothespecifiedVLANandisnotaccessedIfmanagedistruethenthetaggedargumentmustbetrueIfmanagedisfalseandtaggedistruethecallerisresponsibleforcreatingavirtualinterfaceonthecomputermanagedコンピュータは、VLANタグドライバを含んでいるコンピュータであり、ネットワークリソースマネージャは、コンピュータの仮想インターフェースとIPアドレス指定セッティングをアップデートするアクセス権を持っている。管理されていないならば、コンピュータは指定されたVLANに移動されて、アクセスされない。‘managed’が真であるならば、‘tagged’引数は真であることになる。‘managed’が偽で、‘tagged’が真であるならば、呼びだし側は、コンピュータ上に仮想インターフェースを作成することに責任がある。WebMethodpublicstringAttachComputerToExternalDetachComputerFromExternalDetachacomputerfromtheexternalVLAN外部のVLANからコンピュータを切り離すComputeridentifiertodetachfrom切り離すコンピュータ識別子Thetargetcomputerismanagedターゲットコンピュータは管理されているIfthemanagedflagissetthentheNetworkResourceManagerrequiresremoteaccesstotheVLANtagdriverandthevirtualVLANinterfacewillberemovedfromthespecifiedcomputerIftheremotecomputerhasfailedsetthemanagedparametertofalse管理されたフラグが設定されているならば、ネットワークリソースマネージャはVLANタグドライバへの遠隔アクセスを必要とし、その仮想のVLANインターフェースは指定されたコンピュータから削除されることになる。そのリモートコンピュータがfailになったら、‘managed’パラメータを‘偽’に設定する。WebMethodpublicvoidDetachComputerFromExternalReleaseVlanReleasesapreviouslyallocatedconstructedIfconstructedtheVLANresourceisdeletedfromthenetworkfabric以前に割り当てられた構成されたものをリリースする。構成されているならば、VLANリソースはネットワーク構成から削除される。IdentifieroftheVLANtoreleaseリリースするVLANの識別子TheVLANmusthavebeensuccessfullycreatedviatheAllocateVlanmethodVLANは‘AllocateVlan’メソッドで成功裏に作成されていなければならないWebMethodPriorState事前の状態TheVLANidentifierhasbeensuccessfulconstructedNocomputerattachedrecordsreferencethisVLANidentifierVLAN識別子は、成功裏に構成されている。どのコンピュータの付加記録もこのVLAN識別子を参照しない。Description記述1Transactionlockdatabaseトランザクションはデータベースをロックする2ThevlanIdmustexistinthedatabaseintheconstructedstatevlanIdは、‘constructed’状態で、データベース中に存在しなければならない3ForeachswitchinthedatabasedeletetheVLANidentifierusingthetypespecificdevicedriverforthatswitchデータベース中の各スイッチに対して、そのスイッチ用のタイプ特定デバイスドライバを使って、VLAN識別子を削除する4RemovetheVLANrecordfromthedatabasetoindicatetheVLANidentifierisnolongerallocatedVLAN識別子がもはや割り当てられないことを示すために、VLAN記録をデータベースから削除する5Committransactionトランザクションを確定するpublicvoidReleaseVlanReleaseComputerToDiscoveryReleasesallheIdnetworkresourcesofacomputerandreturnsthecomputerbacktotheDiscoveryVLANTheIPaddressofthecomputerisreturnedコンピュータのすべての保持しているネットワークリソースをリリースし、コンピュータを‘discocery’VLANに返す。コンピュータのIPアドレスは返される。IdentifierofthecomputerintheHRMtoreleaseリリースするHRMにおけるコンピュータの識別子Thetargetcomputerismanagedターゲットコンピュータは管理されているIPaddressofthecomputerwithintheDiscoveryVLAN‘Discocery’VLAN中のコンピュータのIPアドレスIfthecomputerhadatleastoneVLANcreateditwillreturnastaticIPaddresssetbytheNetworkResourceManagerelseitwillreturntheoriginalIPprovidedbytheHardwarreResoruceManagerコンピュータが作成された少なくとも1つのVLANを持っていたならば、それはネットワークソースマネージャによってセットされた静的IPアドレスを返し、そうでなければ、それはHardwarreResoruceマネージャによって提供されたオリジナルのIPを返すことになるThiscodewaswrittentosupportthePcFactoryrequirementtoreturnacomputerbacktotheDiscoveryVLANtopermitittoremotelyrebootthecomputertoforceaPXEbootsequenceこのコードは、コンピュータを遠隔にリブートすることをコンピュータに許し、PXEブートシーケンスを強制するDiscoceryVLANにコンピュータを返すというPcFactory必要条件をサポートするために書き込まれるWebMethodpublicstringReleaseComputerToDiscoveryReleaseResourcesByOwnerReleasesallnetworkresourcesthatareassociatedwithaspecificowner特定のオーナに関連づけられるすべてのネットワークリソースをリリースするTheobjectrepresentingtheowneroftheresourcesリソースのオーナを表しているオブジェクトWebMethodpublicvoidReleaseResourcesByOwnerReleaseResourcesByComputerReleasesallnetworkresourcesthatareassociatedwithaspecificcomputerコンピュータと関連づけられるすべてのネットワークリソースをリリースするTheidentifierrepresentingthecomputerコンピューを表している識別子Thetargetcomputerismanagedターゲットコンピュータは管理されているReleasesallattachedVLANstothiscomputerTypicallyusedbycleanuplogicremoveacomputerfromthenetworkIfthemanagedflagissetthentheNetworkResourceManagerrequiresremoteaccesstotheVLANtagdriverandanycreatedvirtualVLANinterfacewillberemovedfromthespecifiedcomputerIftheremotecomputerhasfailedsetthemanagedparametertofalseこのコンピュータに付加されている全てのVLANsをリリースする。一般に、クリーンアップロジックを使用して、コンピュータをネットワークから削除する。管理されたフラグが設定されているならば、ネットワークリソースマネージャはVLANタグドライバに遠隔アクセスを必要とし、全ての作成された仮想のVLANインターフェースは指定されたコンピュータから削除される。リモートコンピュータがfailになると、‘managed’パラメータを‘偽’に設定する。WebMethodpublicvoidReleaseResourcesByComputerpublicNrmConfigurationQueryConfigurationQueryComputerReturnsinformationofaspecificregisterednetworkcomputer特定の登録されたネットワークコンピュータのリターン情報NrmComputervalueWebMethodpublicNrmComputerQueryComputerQueryComputerlpAddressQuerytheIPaddressofacomputeronaspecificVLAN特定のVLAN上のコンピュータのIPアドレスをクエリするIdentifierofcomputertoqueryクエリするコンピュータの識別子VLANidentifiertoqueryIPaddressofそれのIPアドレスをクエリするVLAN識別子TheIPaddresstoaccessthecomputeronthespecifiedVLAN指定されたVLAN上のコンピュータにアクセスするためのIPアドレスForeachVLANacomputerisattachedtoitwillhaveafixedIPaddressthatisusedtoaccessthecomputerremotelyoverthespecificVLAN各VLANに対して、それに付加された各コンピュータは、特定のVLANを介して遠隔にコンピュータにアクセスするために使われる固定された静的IPアドレスを持つことになるWebMethodpublicstringQueryComputerlpAddressQueryComputersReturnsallregisterednetworkcomputerswithintheNetworkResourceManagersdatabaseネットワークリソースマネージャのデータベース内に登録された全てのネットワークコンピュータを返すAnarrayofNrmComputervaluesWebMethodpublicNrmComputer□QueryComputersQueryDeviceReturnsinformationofaspecificregisterednetworkdevice特定の登録されたデバイスの情報を返すNrmDevicevalueWebMethodpublicNrmDeviceQueryDeviceQueryDevicesReturnsallregisterednetworkdeviceswithintheNetworkResourceManagersdatabaseすべてネットワークリソースマネージャのデータベース中の全ての登録されたネットワークデバイスを返すAnarrayofNrmDevicevaluesTypicaluseisfordiagnosticsandoradministratortools典型的な使用は、ダイアグノスティックス、および/またはマネージャツール向けであるWebMethodpublicNrmDevice□QueryDevicesQueryExternalVlanIdRetrievestheVLANidentifieroftheexternalVLAN外部VLANのVLAN識別子を取り出すIdentifieroftheexternalVLAN外部VLANの識別子WebMethodpublicintQueryExternalVlanIdQueryVlansRetrievesthestatusofallallocatedVLANsすべての割り当てられたVLANsのステータスを取り出すAdatasetofNetworkVlanrowsNetworkVlanのrowのdatasetTypicaluseisfordiagnosticsandoradministratortools典型的な使用は、ダイアグノスティックス、および/またはマネージャツール向けであるWebMethodpublicDataSetQueryVlansUpdateComputerToStaticUpdatetheVLAN0virtualinterfacefromitsdefaultDHCPstatetousingastatusIPaddressThiscommandisveryspecifictothesequenceofconfiguringthenetworkingofanewlyimagedmanagedcomputerrunningtheVirtualVLANMUXdriverVLAN-O仮想インターフェースを、そのデフォルトDHCP状態から、ステータスIPアドレスを使うようにアップデートする。このコマンドは、仮想のVLAN/MUXドライバを実行している新しくイメージされた、managedコンピュータのネットワーキングを設定するシーケンスに非常に特有であるIdentifierofcomputertoupdateアップデートするコンピュータの識別子TosupportthePXEADSimagingenvironmentnewcomputernodesPXEbootandareimagedonanuntaggedVLANusingDHCPtoobtaintheirIPaddressToprovidetheNRMwithamethodtoaccessthecomputernodeatalatertimetheDHCPaddressisupdatedwithastaticIPaddressonanonconflictingaddressrangePXE/ADSイメージング環境をサポートするために、新しいコンピュータノードはPXEブートされ、それらのIPアドレスを得るためにDHCPを使って、タグ付けされなかったVLAN上でイメージ化される。その後すべてのVLANsを削除した後に、コンピュータノードにアクセスする方法をNRMに提供するために、そのDHCPアドレスは矛盾していないアドレス範囲上の静的なIPアドレスを使用してアップデートされる。TheVLANnumberusedtogeneratetheIPaddressistheStaticVLANanddefinedintheglobalnetworkconfigurationentryinthedatabaseDuetotheStaticVLANspanningmultipleaddressrangesasmallersubnetmaskisusedandisalsodefinedintheglobalnetworkconfigurationentryinthedatabaseIPアドレスを生成するために使われたVLAN番号は、StaticVLANであり、データベース中のグローバルなネットワーク構成エントリで定義される。複数のアドレス範囲に及ぶStaticVLANに起因して、より小さいサブネットマスクが、データベース中のグローバルなネットワーク構成エントリで、使用され、また定義される。ThiscallcannotusetheDHCPaddresstoaccessthecomputerandapreviouscreatedVirtualNICinterfacemustbeusedforaccessこのコールは、コンピュータにアクセスするためにDHCPアドレスを使うことができず、前に作成された仮想のNICインターフェースがアクセスのために使われなければならないWebMethodpublicvoidUpdateComputerToStaticStatusUsedbyexternalservicestoobtainthecurrentstatusofthiswebserviceこのウェブサービスのカレントステータスを得るために外部のサービスによって使われるOfornormal1ifnotregistered通常は0、登録されていない場合1Usedbythemonitorservicetocheckforavailability可用性をチェックするためにモニタサービスによって使用されるWebMethodpublicintStatus結論以上、本発明を構造上の特徴および/または方法論的な動作に特有な言語で説明したが、添付の特許請求の範囲で定義される本発明は、説明したこうした特有の特徴にも動作にも必ずしも限定されないことを理解されたい。そうではなく、こうした特有の特徴および動作は、特許請求の範囲に記載されている本発明を実装する例示的な形体として開示するものである。さらに、こうした特許請求の範囲は可能な範囲および対象の例示に過ぎず、本明細書で説明した特徴の多くの組合せおよび下位組合せが、特許請求の範囲の対象となるものと期待される。