(57)【要約】【課題】自動システムセットアップを提供すること。【解決手段】自動システムセットアップは、コンピューティングデバイス上でのオペレーティングシステムの自動構成、コンピューティングデバイス上でのカスタム・ソフトウェアの自動構成、および／またはネットワークスイッチの自動構成を含む。自動構成に使用される様々な情報を、資産追跡のために任意選択で維持することができる。【選択図】　　　　図２
2004038964.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスの１または複数のプロセッサによって実行されたとき、前記１または複数のプロセッサに、
前記コンピューティングデバイス上で事前実行環境を起動させ、
前記コンピューティングデバイスの識別子に基づいて、前記コンピューティングデバイスのオペレーティングシステムの構成情報を取り出させ、
前記構成情報を使用して前記オペレーティングシステムを前記コンピューティングデバイスにインストールさせる
複数の命令を記憶していることを特徴とする１または複数のコンピュータ読取り可能媒体。
【請求項２】
前記１または複数のプロセッサに前記事前実行環境を起動させる命令を記憶している前記１または複数のコンピュータ読取り可能媒体は、光ディスクを含むことを特徴とする請求項１に記載の１または複数のコンピュータ読取り可能媒体。
【請求項３】
前記１または複数のプロセッサに前記事前実行環境を起動させる命令を記憶している前記１または複数のコンピュータ読取り可能媒体は、ネットワークインターフェースカード（ＮＩＣ）のメモリデバイスを含むことを特徴とする請求項１に記載の１または複数のコンピュータ読取り可能媒体。
【請求項４】
前記コンピューティングデバイスの前記識別子は、前記コンピューティングデバイスのネットワークインターフェースカード（ＮＩＣ）のメディアアクセスコントロール（ＭＡＣ）アドレスを含むことを特徴とする請求項１に記載の１または複数のコンピュータ読取り可能媒体。
【請求項５】
前記１または複数のプロセッサに前記オペレーティングシステムの構成情報を取り出させる命令は、前記１または複数のプロセッサに、
前記識別子に基づいて、前記コンピューティングデバイスに対応するデバイス種別を取得させ、
前記デバイス種別に基づいて、前記コンピューティングデバイスに対応するプロファイル識別子を取得させ、
前記プロファイル識別子に基づいて、前記構成情報を取得させる
命令を備えたことを特徴とする請求項１に記載の１または複数のコンピュータ読取り可能媒体。
【請求項６】
前記構成情報は、ソフトウェアおよびハードウェア構成情報を備えたことを特徴とする請求項１に記載の１または複数のコンピュータ読取り可能媒体。
【請求項７】
前記構成情報は、無人インストールの回答ファイルに含まれるデータを含むことを特徴とする請求項１に記載の１または複数のコンピュータ読取り可能媒体。
【請求項８】
前記１または複数のプロセッサに前記オペレーティングシステムの構成情報を取り出させる命令は、前記１または複数のプロセッサに、前記コンピューティングデバイスが位置する同じデータセンタ内のサーバデバイスから前記構成情報を取り出させる命令を備えたことを特徴とする請求項１に記載の１または複数のコンピュータ読取り可能媒体。
【請求項９】
前記命令は、前記１または複数のプロセッサに、
前記識別子に基づいて、前記コンピューティングデバイスのカスタム・ソフトウェア構成情報を取り出させ、
前記カスタム・ソフトウェア構成情報を使用して、前記コンピューティングデバイスにカスタム・ソフトウェアをインストールさせる
ことを特徴とする請求項１に記載の１または複数のコンピュータ読取り可能媒体。
【請求項１０】
前記命令は、前記１または複数のプロセッサに、前記事前実行環境を起動させ、前記構成情報を取り出させ、前記デバイスが新しいデバイスであり、オペレーティングシステムを前記コンピューティングデバイスに事前にインストールしていない場合にのみ、前記オペレーティングシステムをインストールさせることを特徴とする請求項１に記載の１または複数のコンピュータ読取り可能媒体。
【請求項１１】
前記命令は、前記１または複数のプロセッサに、前記事前実行環境を起動させ、前記構成情報を取り出させ、前記デバイスが前記オペレーティングシステムと共に再構築されるべきである場合にのみ、前記オペレーティングシステムをインストールさせることを特徴とする請求項１に記載の１または複数のコンピュータ読取り可能媒体。
【請求項１２】
前記命令は、前記１または複数のプロセッサに、前記事前実行環境を起動させ、前記構成情報を取り出させ、前記デバイスが新しいデバイスであり、オペレーティングシステムを前記コンピューティングデバイスに事前にインストールしていないこと、または、前記デバイスが前記オペレーティングシステムと共に再構築されるべきであることの１または複数に当てはまる場合にのみ、前記オペレーティングシステムをインストールさせることを特徴とする請求項１に記載の１または複数のコンピュータ読取り可能媒体。
【請求項１３】
オペレーティングシステムをコンピューティングデバイスにインストールするべきか否かを判定することと、
前記オペレーティングシステムをインストールするべきでない場合には、事前にインストールされているオペレーティングシステムを実行することと、
前記オペレーティングシステムをインストールするべきである場合には、
前記コンピューティングデバイスの識別子を取得することと、
前記識別子を使用して、遠隔デバイスから前記オペレーティングシステムの構成情報を取得することと、
前記構成情報を使用して前記オペレーティングシステムを前記コンピューティングデバイスにインストールすること
とを備えたことを特徴とする方法。
【請求項１４】
前記識別子は、前記コンピューティングデバイスを一意に識別する複数の識別子の１つであることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記コンピューティングデバイスの前記識別子は、前記コンピューティングデバイスのネットワークインターフェースカード（ＮＩＣ）のメディアアクセスコントロール（ＭＡＣ）アドレスを含むことを特徴とする請求項１３に記載の方法。
【請求項１６】
前記識別子を使用して構成情報を取得することは、
前記識別子を使用して、前記コンピューティングデバイスに対応するデバイス種別を取得することであって、前記デバイス種別は、前記コンピューティングデバイスに対応するプロファイル識別子にマップされ、前記プロファイル識別子は、前記構成情報を識別することを特徴とする請求項１３に記載の方法。
【請求項１７】
前記構成情報は、ソフトウェアおよびハードウェア構成情報を含むことを特徴とする請求項１３に記載の方法。
【請求項１８】
前記識別子に基づいて、前記コンピューティングデバイスのカスタム・ソフトウェア構成情報を取り出すことと、
前記カスタム・ソフトウェア構成情報を使用して、前記コンピューティングデバイスにカスタム・ソフトウェアをインストールすること
とをさらに備えたことを特徴とする請求項１３に記載の方法。
【請求項１９】
コンピューティングデバイスの１または複数のプロセッサによって実行されたとき、前記１または複数のプロセッサに、
前記コンピューティングデバイス上でインストールされているオペレーティングシステムの実行を開始させ、
前記コンピューティングデバイスの固有の識別子に基づいて、前記コンピューティングデバイスのカスタム・ソフトウェア構成情報を取り出させ、
前記カスタム・ソフトウェア構成情報を使用して、前記コンピューティングデバイスにカスタム・ソフトウェアをインストールさせる
複数の命令を記憶していることを特徴とする１または複数のコンピュータ読取り可能媒体。
【請求項２０】
前記カスタム・ソフトウェア構成情報は、前記コンピューティングデバイスがデバイスの複数の種別のうちどの種別であるべきかを識別する情報を備え、前記コンピューティングデバイスが前記種別に関連付けられた機能を提供するために、前記コンピューティングデバイスにインストールするべき１または複数のアプリケーションプログラムを識別する情報をさらに備えたことを特徴とする請求項１９に記載の１または複数のコンピュータ読取り可能媒体。
【請求項２１】
前記識別子は、前記コンピューティングデバイスの複数のネットワークインターフェースカード（ＮＩＣ）のうち１つのメディアアクセスコントロール（ＭＡＣ）アドレスであることを特徴とする請求項１９に記載の１または複数のコンピュータ読取り可能媒体。
【請求項２２】
前記命令は、前記インストールされているオペレーティングシステムの実行を開始する前に、１または複数のプロセッサに、
前記コンピューティングデバイス上で事前実行環境を起動させ、
前記コンピューティングデバイスの固有の識別子に基づいて、前記オペレーティングシステムの構成情報を取り出させ、
前記オペレーティングシステムの構成情報を使用して前記オペレーティングシステムを前記コンピューティングデバイスにインストールさせる
ことを特徴とする請求項１９に記載の１または複数のコンピュータ読取り可能媒体。
【請求項２３】
前記１または複数のプロセッサに前記事前実行環境を起動させる命令を記憶している前記１または複数のコンピュータ読取り可能媒体は、光ディスクを含むことを特徴とする請求項２２に記載の１または複数のコンピュータ読取り可能媒体。
【請求項２４】
前記１または複数のプロセッサに前記事前実行環境を起動させる命令を記憶している前記１または複数のコンピュータ読取り可能媒体は、ネットワークインターフェースカード（ＮＩＣ）のメモリデバイスを含むことを特徴とする請求項２２に記載の１または複数のコンピュータ読取り可能媒体。
【請求項２５】
アプリケーションソフトウェアをコンピューティングデバイスにインストールするべきか否かを判定することと、
前記アプリケーションソフトウェアをインストールするべきである場合には、前記コンピューティングデバイスを一意に識別する識別子を取得することと、
前記識別子を使用して、遠隔デバイスから前記コンピューティングデバイスのアプリケーションソフトウェア構成情報を取得することと、
前記アプリケーションソフトウェア構成情報を使用して前記アプリケーションソフトウェアを前記コンピューティングデバイスにインストールすること
とを備えたことを特徴とする方法。
【請求項２６】
前記アプリケーションソフトウェア構成情報は、前記コンピューティングデバイスがデバイスの複数の種別のうちどの種別であるべきかを識別する情報を備え、前記コンピューティングデバイスが前記種別に関連付けられた機能を提供するために、前記コンピューティングデバイスにインストールするべき１または複数のアプリケーションプログラムを識別する情報をさらに備えたことを特徴とする請求項２５に記載の方法。
【請求項２７】
前記識別子は、前記コンピューティングデバイスの複数のネットワークインターフェースカード（ＮＩＣ）のうち１つのメディアアクセスコントロール（ＭＡＣ）アドレスであることを特徴とする請求項２５に記載の方法。
【請求項２８】
コンピューティングデバイス上の事前実行環境からコンピューティングデバイス識別子を受け取ることと、
前記コンピューティングデバイス識別子に基づいて、前記コンピューティングデバイスのオペレーティングシステムの構成情報を識別することと、
前記オペレーティングシステムを前記コンピューティングデバイスにインストールするための前記構成情報を前記コンピューティングデバイスに送ること
とを備えたことを特徴とする方法。
【請求項２９】
前記識別することは、
前記コンピューティングデバイス識別子に基づいて、前記コンピューティングデバイスに対応するデバイス種別を取得することと、
前記デバイス種別に基づいて、前記コンピューティングデバイスに対応するプロファイル識別子を取得することと、
前記プロファイル識別子に基づいて、前記構成情報を取得すること
とを備えたことを特徴とする請求項２８に記載の方法。
【請求項３０】
前記構成情報は、前記オペレーティングシステムのコンポーネントを含むことを特徴とする請求項２８に記載の方法。
【請求項３１】
前記コンピューティングデバイスを一意に識別するコンピューティングデバイス識別子をコンピューティングデバイスから受け取ることと、
前記コンピューティングデバイス識別子に基づいて、前記コンピューティングデバイスのカスタム・ソフトウェア構成情報を識別することと、
前記カスタム・ソフトウェアを前記コンピューティングデバイスにインストールするための前記カスタム・ソフトウェア構成情報を前記コンピューティングデバイスに送ること
とを備えたことを特徴とする方法。
【請求項３２】
前記識別子は、前記コンピューティングデバイスの複数のネットワークインターフェースカード（ＮＩＣ）のうち１つのメディアアクセスコントロール（ＭＡＣ）アドレスであることを特徴とする請求項３１に記載の方法。
【請求項３３】
前記識別することは、
前記コンピューティングデバイス識別子に基づいて、前記コンピューティングデバイスに対応するデバイス種別を取得することと、
前記デバイス種別に基づいて、前記コンピューティングデバイスに対応するプロファイル識別子を取得することと、
前記プロファイル識別子に基づいて、前記カスタム・ソフトウェア構成情報を取得すること
とを備えたことを特徴とする請求項３１に記載の方法。
【請求項３４】
コンピューティングデバイスの１または複数のプロセッサによって実行されたとき、前記１または複数のプロセッサに、
ネットワークスイッチから、前記ネットワークスイッチのポートに対するネットワークインターフェースカード（ＮＩＣ）識別子のマッピングを取り出させ、前記ネットワークインターフェースカード（ＮＩＣ）識別子の１または複数について、対応するネットワークインターフェースカード（ＮＩＣ）が属するべきであるネットワークの種別を識別させ、
前記マッピングと前記識別されたネットワークの種別とに基づいてスイッチ構成情報を生成させ、
前記スイッチ構成情報を前記ネットワークスイッチに書き込ませる
複数の命令を記憶していることを特徴とする１または複数のコンピュータ読取り可能媒体。
【請求項３５】
前記コンピューティングデバイスは、前記ネットワークスイッチがある同じデータセンタ内のサーバデバイスを含むことを特徴とする請求項３４に記載の１または複数のコンピュータ読取り可能媒体。
【請求項３６】
前記命令は、前記１または複数のプロセッサに、対応するネットワークインターフェースカード（ＮＩＣ）が属するべきであるネットワークの種別を識別させる命令は、前記１または複数のプロセッサに、ネットワークインターフェースカード（ＮＩＣ）識別子をネットワーク種別にマッピングするテーブルにアクセスさせる命令を備えたことを特徴とする請求項３４に記載の１または複数のコンピュータ読取り可能媒体。
【請求項３７】
前記命令は、１または複数のプロセッサに、
前記ネットワークスイッチを介して、コンピューティングデバイス上の事前実行環境からコンピューティングデバイス識別子を受け取らせ、
前記コンピューティングデバイス識別子に基づいて、前記コンピューティングデバイスのオペレーティングシステムの構成情報を識別させ、
前記オペレーティングシステムを前記コンピューティングデバイスにインストールするために、前記ネットワークスイッチを介して前記コンピューティングデバイスに前記構成情報を送らせる
ことを特徴とする請求項３４に記載の１または複数のコンピュータ読取り可能媒体。
【請求項３８】
前記命令は、１または複数のプロセッサに、
前記ネットワークスイッチを介して、前記コンピューティングデバイスを一意に識別するコンピューティングデバイス識別子をコンピューティングデバイスから受け取らせ、
前記コンピューティングデバイス識別子に基づいて、前記コンピューティングデバイスのカスタム・ソフトウェア構成情報を識別させ、
前記カスタム・ソフトウェアを前記コンピューティングデバイスにインストールするために、前記ネットワークスイッチを介して前記コンピューティングデバイスに前記カスタム・ソフトウェア構成情報を送らせる
ことを特徴とする請求項３４に記載の１または複数のコンピュータ読取り可能媒体。
【請求項３９】
ネットワークスイッチングデバイスから、ネットワークインターフェースカード（ＮＩＣ）識別子に対する前記デバイスのポートのマッピングを受け取ることと、
前記ネットワークインターフェースカード（ＮＩＣ）識別子の各々について、ネットワークインターフェースカード（ＮＩＣ）識別子に関連付けられたネットワーク種別を決定することと、
決定されたネットワーク種別に少なくとも部分的に基づいて前記ネットワークスイッチングデバイスの構成情報を生成することと、
前記構成情報を前記ネットワークスイッチングデバイスに保存すること
とを備えたことを特徴とする方法。
【請求項４０】
前記ネットワーク種別を決定することは、ネットワークインターフェースカード（ＮＩＣ）識別子をネットワーク種別にマッピングするテーブルにアクセスすることを備えたことを特徴とする請求項３９に記載の方法。
【請求項４１】
コンピューティングデバイスの１または複数のプロセッサによって実行されたとき、前記１または複数のプロセッサに、
新しいサーバに対する要求を受け取らせ、
売り主へ前記新しいサーバの購入要求を送らせ、
前記新しいサーバが前記売り主から受け取られ、前記コンピューティングデバイスが結合されているネットワークに結合されたことを示す指示を受け取らせ、前記新しいサーバへ、前記新しいサーバのオペレーティングシステムの構成情報を送信させ、前記新しいサーバに、前記構成情報に基づいてそのオペレーティングシステムをインストールさせ、
前記新しいサーバへ、カスタム・ソフトウェア構成情報を送信させ、前記新しいサーバに、前記カスタム・ソフトウェア構成情報に基づいてソフトウェアをインストールさせる
複数の命令を記憶していることを特徴とする１または複数のコンピュータ読取り可能媒体。
【請求項４２】
前記命令は、前記１または複数のプロセッサに、権限のある情報源から前記新しいサーバを購入するための承認を取得させることを特徴とする請求項４１に記載の１または複数のコンピュータ読取り可能媒体。
【請求項４３】
前記命令は、前記１または複数のプロセッサに、前記新しいサーバの購入を可能にするために注文番号を取得させることを特徴とする請求項４１に記載の１または複数のコンピュータ読取り可能媒体。
【請求項４４】
前記売り主は、前記新しいサーバの製造者を含むことを特徴とする請求項４１に記載の１または複数のコンピュータ読取り可能媒体。
【請求項４５】
前記命令は、前記１または複数のプロセッサに、
売り主から前記新しいサーバを説明する情報を受け取らせ、
前記受け取った情報を使用させ、前記新しいサーバの前記オペレーティングシステムの構成情報を識別させ、前記新しいサーバの前記カスタム・ソフトウェア構成情報を識別させる
ことを特徴とする請求項４１に記載の１または複数のコンピュータ読取り可能媒体。
【請求項４６】
前記命令は、前記１または複数のプロセッサに、前記売り主から受け取った前記情報を維持させ、資産追跡のために前記売り主から受け取った前記情報を使用させることを特徴とする請求項４５に記載の１または複数のコンピュータ読取り可能媒体。
【請求項４７】
新しいコンピューティングデバイスが取得されるべきであることを示す指示を受け取ることと、
コンピューティングデバイス供給者に前記新しいコンピューティングデバイスの購入要求を送ることと、
前記新しいコンピューティングデバイスが前記供給者から受け取られたこと、および前記新しいコンピューティングデバイスがネットワークと通信状態にあることを示す指示を受け取ることと、
前記新しいコンピューティングデバイスに、前記新しいコンピューティングデバイスのオペレーティングシステムの構成情報を送信することであって、前記構成情報は、前記オペレーティングシステムを前記新しいコンピューティングデバイスにインストールするときに、前記新しいコンピューティングデバイスによって使用されるべきであることと、
前記新しいコンピューティングデバイスにカスタム・ソフトウェア構成情報を送信することであって、前記カスタム・ソフトウェア構成情報は、ソフトウェアを前記新しいコンピューティングデバイスにインストールするときに、前記新しいコンピューティングデバイスによって使用されるべきであること
とを備えたことを特徴とする方法。
【請求項４８】
権限のある情報源から、前記新しいコンピューティングデバイスを購入するための承認を得ることをさらに備えたことを特徴とする請求項４７に記載の方法。
【請求項４９】
前記新しいコンピューティングデバイスの購入を可能にするために注文番号を得ることをさらに備えたことを特徴とする請求項４７に記載の方法。
【請求項５０】
前記供給者から前記新しいコンピューティングデバイスを説明する情報を受け取ることと、
前記受け取った情報を使用して、前記新しいコンピューティングデバイスの前記オペレーティングシステムの構成情報を識別し、前記新しいコンピューティングデバイスの前記カスタム・ソフトウェア構成情報を識別すること
とをさらに備えたことを特徴とする請求項４７に記載の方法。
【請求項５１】
前記供給者から受け取った前記情報を維持することと、前記供給者から受け取った前記情報を資産追跡のために使用することとをさらに備えたことを特徴とする請求項５０に記載の方法。
【請求項５２】
システム内のコンピューティングデバイスの識別子をプロファイルにマッピングすることを維持する１または複数のステージングサーバであって、各プロファイルは、対応するコンピューティングデバイスが提供するべきである機能の種別を示し、さらに、ソフトウェア構成情報を維持する前記１または複数のステージングサーバと、
事前実行環境を起動するコンピューティングデバイスであって、前記１または複数のステージングサーバの少なくとも１つから、前記コンピューティングデバイスのオペレーティングシステムの構成情報を取り出し、前記構成情報を使用して前記オペレーティングシステムをインストールし、さらに、前記コンピューティングデバイスのカスタム・ソフトウェア構成情報を取り出し、該カスタム・ソフトウェア構成情報を使用して、前記カスタム・ソフトウェアを前記コンピューティングデバイスにインストールする前記コンピューティングデバイスと
を備えたことを特徴とするシステム。
【請求項５３】
前記１または複数のステージングサーバは、
ネットワークスイッチから、前記ネットワークスイッチのポートに対するネットワークインターフェースカード（ＮＩＣ）識別子のマッピングを取り出し、
前記ネットワークインターフェースカード（ＮＩＣ）識別子の１または複数について、対応するネットワークインターフェースカード（ＮＩＣ）が属するべきであるネットワークの種別を識別し、
前記マッピングと前記識別されたネットワークの種別とに基づいてスイッチ構成情報を生成し、
前記スイッチ構成情報を前記ネットワークスイッチに書き込む
ように構成されたことを特徴とする請求項５２に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、システムのセットアップに関し、より詳細には、自動システムセットアップに関する。
【０００２】
【従来の技術】
典型的には、コンピュータは、一般にオペレーティングシステムと呼ばれる、コンピュータの全体的な動作を制御する１または複数のプログラムを実行する。オペレーティングシステムをインストールすると、一般にアプリケーションプログラムと呼ばれる追加のアプリケーションソフトウェアをインストールすることができ、コンピュータは、その意図する機能を実行することができる。しかしながら、コンピュータハードウェア／ソフトウェアのパワーと機能が増大するにつれて、オペレーティングシステムおよびアプリケーションプログラムをインストールする際に必要とされる時間もまた増大している。現在、オペレーティングシステム、ならびにアプリケーションプログラムのインストールには、かなりの時間がかかる。このようなインストール処理に、１〜２時間程度かかることは珍しくない。
【０００３】
コンピューティングデバイスにオペレーティングシステムおよびアプリケーションプログラムをインストールすることは、典型的には、ユーザによって行われる仕事である。インストール処理の間に、インストールプログラムが動作して、オペレーティングシステムまたはアプリケーションプログラムをインストールする。インストールプログラムは、コンピュータ、オペレーティングシステムおよび／またはアプリケーションプログラムの構成に関して、ユーザが回答しなければならない多数の質問を頻繁に問いかける。これらの質問は、典型的には、ユーザが回答し、従って、インストール処理中、ユーザが居合わせることを必要とする。これは、ユーザとしては退屈となりがちであり、また、インストール処理中にユーザによって間違いが犯される（例えば、インストールプログラムに正しくない回答を与える）可能性を導く。
【０００４】
場合によっては、クローニング法を使用して、オペレーティングシステムおよびアプリケーションプログラムがすでにインストールされているコンピュータディスクドライブを複製することができる。次に、この複製を、追加のコンピュータのディスクドライブにコピーし、それによって、元のコンピュータと同一に追加のコンピュータをセットアップすることができる。しかしながら、クローニング法は、コンピュータ間でのハードウェアのわずかな変更に対して容易に対応できず、複製がコピーされた後では、（例えば、ネットワークアドレスまたは他のセキュリティ情報を変更するための）コンピュータのあらゆるカスタマイズを、そのコンピュータに手動で行わなければならないため、クローニング法も問題がある。
【０００５】
他の場合には、無人のインストール法を使用して、ユーザが回答ファイルを生成することを可能にし、回答ファイルをインストールプログラムに対して使用可能にすることができる。従って、インストールの質問に「予め回答する」ことにより、ユーザは、インストールプログラムによって質問が提出されたとき、居合わせて質問の全部に回答する必要はない。しかしながら、ユーザは、依然として全ての質問が何であるか知っている必要があり、無人のインストールが実行される各コンピュータについて回答ファイルに回答を加えなければならない。コンピュータ間でのハードウェアのわずかな変更が、インストールプログラムによる異なる質問を引き起こし、従って、回答ファイル内の回答が異なると、ユーザは、しばしば回答ファイルを手動で変更し、無人のインストールが実行される特定のコンピュータの各々に対処しなければならない。
【０００６】
【発明が解決しようとする課題】
本明細書に述べられている自動システムセットアップは、上述した問題を解決する。本発明の目的は、自動システムセットアップを提供することである。
【０００７】
【課題を解決するための手段】
一態様によれば、コンピューティングデバイス上で事前実行環境が起動され、コンピューティングデバイスのオペレーティングシステムの構成情報が、コンピューティングデバイスの識別子に基づいて取り出される。オペレーティングシステムは、構成情報を使用してコンピューティングデバイスにインストールされる。
【０００８】
他の一態様によれば、コンピューティングデバイス上でインストールされたオペレーティングシステムの実行が開始され、コンピューティングデバイスのカスタム・ソフトウェア構成情報が、コンピューティングデバイスの固有の識別子に基づいて取り出される。カスタム・ソフトウェア構成情報を使用して、カスタム・ソフトウェアがコンピューティングデバイスにインストールされる。
【０００９】
他の一態様によれば、ネットワークスイッチのポートに対するネットワークインターフェースカード（以下、ＮＩＣという）識別子のマッピングが、ネットワークスイッチから取り出される。ＮＩＣ識別子の１または複数について、ＮＩＣに対応するネットワークの種別が識別される。マッピングおよび識別されたネットワーク種別に基づいたスイッチ構成情報が生成され、スイッチ構成情報がネットワークスイッチに書き込まれる。
【００１０】
他の一態様によれば、コンピューティングデバイス、ならびにインストールされたオペレーティングシステムおよびアプリケーションソフトウェアに関する様々な情報が、資産追跡のために維持される。
【００１１】
【発明の実施の形態】
本文書全体を通して、同じ番号を使用し類似の構成要素および／または特徴を参照する。
【００１２】
本明細書では、自動システムセットアップについて述べる。自動システムセットアップは、コンピューティングデバイス上のオペレーティングシステム、コンピューティングデバイス上のカスタム・ソフトウェア、およびネットワークスイッチの構成情報のうち１または複数の自動構成を含む。デバイス情報を、資産追跡のために任意選択で維持することもできる。
【００１３】
図１は、自動コンピューティングシステムセットアップを使用することができる例示的なネットワーク環境１００を示す。環境１００内では、複数の（ｘ）個のコンピューティングデバイス１０２（１）、１０２（２）、・・・、１０２（ｘ）が結合され、ネットワーク１０４および／またはネットワーク１０８を介して互いに通信する。ネットワーク１０４およびネットワーク１０８は、様々な従来のネットワークトポロジおよびネットワーク種別（有線および／または無線ネットワークを含む）のいずれかを表すものとし、様々な従来のネットワークプロトコル（公開プロトコルおよび／または所有権のあるプロトコルを含む）を使用する。ネットワーク１０４およびネットワーク１０８は、例えば、インターネット、ならびに、１または複数のローカルエリアネットワーク（ＬＡＮ）および／または広域ネットワーク（ＷＡＮ）の少なくとも一部分を含むことができる。
【００１４】
グループ１０６は、家庭用コンピュータＬＡＮ、企業ＬＡＮまたはＷＡＮ、データセンタ、サーバクラスタなど、様々な異なるコンピューティングデバイス群のいずれかを表す。ネットワーク１０８は、１または複数のコンピューティングデバイス１０２を介して、または様々なネットワーク用デバイス（例えば、ルータ、ブリッジなど）を介して、様々な異なる方法でネットワーク１０４に結合することができる。
【００１５】
コンピューティングデバイス１０２の各々は、デスクトップＰＣ、ノートブックまたは可搬型コンピュータ、ワークステーション、メインフレームコンピュータ、インターネット電気器具、ゲーム用コンソール、ハンドヘルドＰＣ、携帯電話、携帯情報端末（ＰＤＡ）、それらの組合せなどを含む、様々な従来型コンピューティングデバイスのいずれかとすることができる。
【００１６】
図２は、自動システムセットアップの一例を示すブロック図である。図２の例では、新しいコンピューティングデバイス１３は、が顧客の所在地１３４に追加される。顧客の所在地１３４は、例えば、図１のグループ１０６とすることができる。顧客の所在地１３４は、地理的に近接した設備（例えば、特定の建築物）とすることができ、あるいは（例えば、市、州、国、世界などの全体にわたる）広範囲に及ぶものであってもよい。
【００１７】
新しいコンピューティングデバイスの注文は、コンピューティングデバイス製造者１３６に受け取られ、製造者１３６は、所望のデバイスを構築し（あるいは予め構築されたデバイスを選択し）、そのデバイスを顧客の所在地１３４に送る。製造者１３６と顧客の所在地１３４との間の転送には、デバイスの再販者または販売者、１社または複数の輸送会社など、１または複数の追加の当事者が関係することができることに留意されたい。
【００１８】
製造者１３６は、顧客の所在地１３４において、新しいコンピューティングデバイスを説明する情報１３８を、ステージングサーバ１４０に送る（これは、顧客の所在地１３４にいる人が情報を受け取り、ステージングサーバ１４０に手動で入力する手動処理とすることができ、あるいは人間が関係しない自動的なものであってもよい）。新しいコンピューティングデバイスの説明情報１３８は、少なくとも新しいコンピューティングデバイスの識別子を含む。この識別子は、全世界でコンピューティングデバイスを一意に識別することも、あるいは局地的に（例えば、顧客の所在地１３４内で）コンピューティングデバイスを一意に識別することもできる。この識別子は、ＮＩＣのメディアアクセスコントロール（以下、ＭＡＣという）アドレス、ネットワークカードの全世界固有ＩＤ（ＧＵＩＤ）、シリアル番号、資産タグ番号、ＣＰＵのＩＤ、それらの組合せなど、様々な異なる形態をとることができる。説明情報１３８の一部として、追加情報、例えば、コンピューティングデバイスのハードウェアおよび／またはソフトウェア特性（例えば、ハードウェアおよび／またはソフトウェアのバージョン、デバイス内のメモリ（例えば、ランダムアクセスメモリ（ＲＡＭ））の量および／または種別、デバイス内のプロセッサの種別および／または速度、デバイス内のハードディスクドライブの量および／またはサイズなど）、資産追跡情報、デバイスが構築された日付および／または時間、デバイスが出荷された日付および／または時間、シリアル番号、サービスタグ番号、注文番号、約束の出荷日、モデル名および／またはモデル番号、ＮＩＣのＭＡＣアドレス、保証の種別および／または期間、デバイスの意図されている役割または機能、デバイスが出荷および／または使用される場所などを含むことができる。
【００１９】
一部のコンピューティングデバイスは、複数のＮＩＣを有することができることに留意されたい。このような場合には、コンピューティングデバイス識別子がネットワークインターフェースカードに基づく場合（例えば、そのＭＡＣアドレス）、コンピューティングデバイスについて複数の識別子が存在することができる。あるいは、これら複数のカードの１または複数を選択して識別子を決定することができる。例えば、複数のカードのＭＡＣアドレスを組み合わせる（例えば、互いに連結する）ことができ、あるいは、ＮＩＣの１つを、識別子の根拠として使用することになるＮＩＣとして選択してもよい（例えば、１つをランダムに選択してもよく、一方が１次カード、他方が２次またはバックアップカードと指定されていてもよく、１つだけが事前実行命令の埋め込まれたメモリデバイスを有することができ、それが識別子の根拠として選択されるＮＩＣである）。他の一例として、複数のＮＩＣの各々が、異なるネットワークに結合され、１つだけステージングサーバ１４０と同じネットワーク（例えば、図２のネットワーク１４２または図１のネットワーク１０８）に結合されるように定めることができ、そのカードの識別子は、コンピューティングデバイス識別子として使用される識別子である。
【００２０】
例示的な実施においては、コンピューティングデバイス１３２を顧客の所在地１３４に送達する前に、コンピューティングデバイスの説明情報１３８は、ステージングサーバ１４０に伝達される。別法では、コンピューティングデバイス１３２を顧客の所在地１３４に送達すると同時に、あるいはその後で、コンピューティングデバイスの説明情報１３８を、ステージングサーバ１４０に伝達することができる。
【００２１】
受け取られたコンピューティングデバイスの説明情報１３８は、ステージングサーバ１４０内でデバイスの特定の種別に関連付けられている。顧客の所在地１３４にある各コンピューティングデバイスは、特定の機能を提供するように割り当てられ、従って、デバイスの特定の種別に割り当てられている。この機能の厳密な性質は、買い主の願望と顧客の所在地１３４の性質に応じて変わることがある。１つの例示的な実施においては、顧客の所在地１３４は、ゲーム用コンソールにオンラインゲームサービスを提供するように指定されたデータセンタが含まれる。データセンタのコンピューティングデバイス、例えば、データセンタ内の残りのコンピューティングデバイスをインターネットから遮断するように機能するセキュリティゲートウェイデバイス、互いにシステムにログオンしたとき友人に通知することを可能にするように機能する存在確認および通知デバイス、リーダボードおよび／またはオンラインゲームの他の統計を維持するように機能する統計デバイス、ユーザが共にゲームをする他のユーザを見つけることを可能にするように機能するマッチングデバイスなどによって、様々な種類の機能を提供することができる。
【００２２】
新しいコンピューティングデバイス１３２を、デバイスの特定の種別となるように手動で割り当てることができる。例えば、顧客の所在地１３４にいるシステム管理者は、ステージングサーバ１４０に、特定のコンピューティングデバイスをデバイスの特定の種別に割り当て、入力することができる（例えば、新しいコンピューティングデバイス１３２に対応するデータベースエントリに、その種別の名前または識別子を入力することによって）。別法として、以下でより詳しく述べるように、最初にデバイスの種別をステージングサーバ１４０に入力し、後に新しいコンピューティングデバイス１３２をその種別に割り当てることができる。さらに別法では、この割当てを、自動的に実行することができる。例えば、顧客の所在地１３４にいるシステム管理者は、ステージングサーバ１４０に、ある種別のデバイス３つが必要であり、別の種別のデバイス４つが必要であることを示す指示を入力することができ、ステージングサーバ１４０は、これら２つの種別に新しいデバイスを自動的に割り当てることができる（例えば、ランダムに、代わりの種別、所与のまたは管理者によって識別された基準に従って）。他の一例として、顧客の所在地１３４にいるシステム管理者は、ステージングサーバ１４０に、顧客の所在地１３４に新しいデバイスを追加する際に使用される１または複数の規則のセットを入力することができ、ステージングサーバ１４０は、新しいコンピューティングデバイス１３２が受け取られたとき、これらの規則に従うことができる（例えば、この規則は、ある種別のデバイスと別の種別のデバイスの比率３：１を保つことを示すことができ、新しいデバイスが受け取られたとき、ステージングサーバ１４０は、新しいデバイスを割り当て、２つのデバイスのどちらも、この比率をできる限り３：１に保つことができる）。
【００２３】
コンピューティングデバイス１３２は、顧客の所在地１３４に追加されたとき、顧客の所在地１３４で動作するように自動的にセットアップされる。この自動セットアップは、コンピューティングデバイス１３２がその意図する機能を実行するのを可能にするコンピューティングデバイス１３２のオペレーティングシステムの自動インストール、および／またはコンピューティングデバイス１３２のアプリケーションプログラムの自動インストールを含むことができる。
【００２４】
コンピューティングデバイス１３２は、典型的には、オペレーティングシステムがインストールされていない状態で製造者１３６から受け取られる。従って、コンピューティングデバイス１３２は、最初に事前実行環境に起動またはブートされる。この事前実行環境は、コンピューティングデバイス１３２がネットワーク１４２を介してステージングサーバ１４０にアクセスし、サーバ１４０からオペレーティングシステム構成情報を得ることを可能にするのに十分な命令を含む。コンピューティングデバイス１３２がステージングサーバ１４０にアクセスできるようにするために含まれている命令を、オペレーティングシステム構成情報がサーバ１４０内でどのように記憶されているかに応じて変えることもできる。１つの実施においては、ステージングサーバ１４０は、オペレーティングシステム構成情報を含む情報をＳＱＬデータベース内に記憶し、従って、事前実行環境内の命令は、コンピューティングデバイス１３２がＳＱＬデータベースにアクセスすることを可能にする。事前実行環境内の命令はさらに、コンピューティングデバイス１３２がインストールプログラムを取り出して実行し、受け取られたオペレーティングシステム構成情報に基づいて、オペレーティングシステムをインストールすることを可能にするのに十分な命令を含む。１つの例示的な実施においては、事前実行環境は、Ｗｉｎｄｏｗｓ（登録商標）ＸＰオペレーティングシステムのＯＥＭプレインストールキットの一部であるＷｉｎｄｏｗｓ（登録商標）ＰＥオペレーティングシステムである（Ｗｉｎｄｏｗｓ（登録商標）ＰＥオペレーティングシステム、およびＷｉｎｄｏｗｓ（登録商標）ＸＰオペレーティングシステムのＯＥＭプレインストールキットに関する追加情報は、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ（登録商標）Ｃｏｒｐｏｒａｔｉｏｎから入手可能である）。あるいは、事前実行環境を、他の公開システムまたは所有権のあるシステム、例えば、Ｉｎｔｅｌ　ＰＸＥとすることができる。
【００２５】
事前実行環境は、コンピューティングデバイス１３２のディスクドライブ内に挿入されたディスク（例えば、磁気または光）からコンピューティングデバイスによって得られた、あるいは製造者１３６によってデバイス１３２のハードディスクドライブ上にプレインストールされた命令を実行することによって起動される。別法として、事前実行環境は、他の構成要素または所在地から得られた命令を実行することによって起動することができる。例えば、コンピューティングデバイス１３２のＮＩＣは、命令が埋め込まれたメモリデバイス（例えば、フラッシュメモリ）を有することができる。他の一例として、どのオペレーティングシステムも動作させることなしにデバイス１３２の電源が投入されたとき、ＮＩＣ自体が、ネットワーク１４２上でアドレスが必要であると公示することができる。ステージングサーバ１４０は、ネットワーク１４２上でこの公示を検出し、コンピューティングデバイス識別子のリストを有しているかどうか検査する。ステージングサーバ１４０が、コンピューティングデバイス識別子のリストを有している場合には、ステージングサーバ１４０は、事前実行環境の命令をコンピューティングデバイス１３２に送信する。この例では、ＮＩＣは、ステージングサーバ１４０と通信し、事前実行環境の命令を受け取ることができるように十分な命令を含む。
【００２６】
事前実行環境の命令は、ソフトウェア命令またはファームウェア命令、あるいはそれらの組合せとすることができる。１つの実施においては、命令は、ＶｉｓｕａｌＢａｓｉｃ（登録商標）開発システム、ＰＥＲＬ（Ｐｒａｃｔｉｃａｌ　Ｅｘｔｒａｃｔｉｏｎ　Ｒｅｐｏｒｔ　Ｌａｎｇｕａｇｅ）、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ（ＪＳｃｒｉｐｔ）など、スクリプティング言語である。さらに、事前実行環境は、別法として、ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ　Ｌｏｇｉｃ　Ｄｅｖｉｃｅ）またはＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ　Ｓｐｅｃｉｆｉｃ　Ｉｎｔｅｇｒａｔｅｄ　Ｃｉｒｃｕｉｔ）など、ハードウェア内で実施することができる。
【００２７】
図３は、適切な構成情報をコンピューティングデバイス１３２に供給する際にステージングサーバ１４０によって使用される例示的な１組のテーブルを示す。ステージングサーバ１４０は、ＮＩＣテーブル１７２、サーバテーブル１７４およびプロファイルテーブル１７６を維持する。これらのテーブル１７２、１７４および１７６は、デバイス（例えば、図２の顧客の所在地１３４にあるデバイス）に関する様々な情報を維持するため、集合的にデバイスデータベースとも称する。ステージングサーバ１４０は、構成情報記憶装置１７８をさらに含む。デバイスデータベースは、リレーショナルデータベースおよび非リレーショナル（例えば、フラットファイル）データベースを含む様々な従来型データベースのいずれかを使用して実施することができる。そのようなデータベースの例には、ＳＱＬデータベース、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ａｃｃｅｓｓデータベース、Ｏｒａｃｌｅ（登録商標）Ｃｏｒｐｏｒａｔｉｏｎから入手可能な様々なデータベースのいずれか、ＩＢＭ（登録商標）Ｃｏｒｐｏｒａｔｉｏｎから入手可能な様々なＩｎｆｏｒｍｉｘ（登録商標）製品ファミリのいずれか、Ｓｙｂａｓｅ（登録商標）Ｉｎｃ．から入手可能な様々なデータベースのいずれかなどが含まれる。別法として、デバイスデータベースは他の方法で、例えば、従来型スプレッドシートプログラム（例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｅｘｃｅｌ）、ワードプロセッシングまたはプレーンテキストファイル（例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｏｒｄワードプロセッシングプログラムまたは任意の他の従来型ワードプロセッシングもしくはテキスト編集もしくはテキスト入力プログラム）などを使用して実施することができる。
【００２８】
テーブル１７２、１７４および１７６は、ＮＩＣ、サーバ、プロファイルを説明するデータの論理的なグループを表すこと、特定の実施においては、これら論理グループ内の情報を図３に示されているより多くの（または少ない）テーブルに分配するように選択することができることに留意されたい。例えば、データは、単一のテーブルに記憶することも、あるいは数百のテーブルに記憶することもできる。
【００２９】
ＮＩＣテーブル１７２は、デバイス名に対するコンピューティングデバイス識別子のマッピングである。コンピューティングデバイス識別子、ならびに製造者から受け取られた任意の他のコンピューティングデバイス説明情報（図２の説明１３８）は、ステージングサーバ１４０で受け取られたとき、ＮＩＣテーブル１７２に追加される。次に、コンピューティングデバイスに割り当てられる名前が、ＮＩＣテーブル１７２に追加され、コンピューティングデバイス識別子と、コンピューティングデバイスに割り当てられた名前との間の対応を生成する。コンピューティングデバイス名は、（例えば、ステージングサーバ１４０のシステム管理者によって）手動で入力することも、あるいは（例えば、ステージングサーバ１４０、あるいは図２の顧客の所在地１３４にある別のデバイスによって）自動的に入力することもできる。例えば、デバイスをどのように名前付けするかを説明する１または複数の規則のセット（例えば、固定された１組の文字で始まり、ステージングサーバ１４０によって順番に割り当てられた数字がそれに続く）を用いて、ステージングサーバ１４０を構成することができる。
【００３０】
他の実施においては、ＮＩＣテーブル１７２の各エントリは、コンピューティングデバイスの特定のＮＩＣのエントリであり、コンピューティングデバイスが複数のＮＩＣを有する場合には、各ＮＩＣ識別子について複数のエントリがテーブル１７２内にある。コンピューティングデバイスの複数のエントリの各々は、同じ情報のいくつか（例えば、コンピューティングデバイスに割り当てられた名前）、およびいくつかの異なる情報（例えば、識別されたＮＩＣのネットワーク（例えば、図１のネットワーク１０４またはネットワーク１０８））を含む。
【００３１】
サーバテーブル１７４は、プロファイル識別子に対するコンピューティングデバイス名のマッピングである。ＮＩＣテーブル１７２に入力された各コンピューティングデバイス名は、サーバテーブル１７４に入力され、複数のプロファイルの１つに関連付けられる。異なるプロファイルは、図２の顧客の所在地１３４で使用するために自動セットアップすることができるデバイスの各種別について使用される。複数の異なるサーバ名を、同じプロファイルに関連付けることができる。プロファイル識別子は、プロファイルテーブル１７６内のレコードを識別し、このレコードは、そのデバイスの種別の構成情報を識別する。
【００３２】
ある種別のデバイスに関する構成情報は、オペレーティングシステムのためにコンピューティングデバイスにインストールされる記憶装置１７８からの様々なソフトウェアコンポーネントおよび／またはモジュール、ならびにオペレーティングシステムを構成するためのある種の情報（例えば、ハードディスクドライブを区分する方法、ディスプレイアダプタを構成する方法、ネットワーク接続を構成する方法など）を含む。これらコンポーネントおよび／またはモジュールは、例えば、オペレーティングシステムのコアコンポーネント、オペレーティングシステムに追加される非コアコンポーネント、オペレーティングシステムのパッチまたは修復などを含む。構成情報は、ＮＩＣテーブル１７２からの何らかのコンピューティングデバイス特有の情報（割り当てられるネットワークアドレス、コンピュータ名、割り当てられるドメイン名など）を含むことができる。このようなコンピューティングデバイス特有の情報を、図２の製造者１３６により、システム管理者の手動入力により（例えば、ステージングサーバ１４０から）、何らかの他のデバイス（例えば、ステージングサーバ、または顧客の所在地１３４にある何らかの他のデバイス）からの自動入力などにより、テーブル１７２に含めることができる。
【００３３】
テーブル１７２、１７４および１７６のルックアップは、ステージングサーバ１４０、あるいはセットアップされるコンピューティングデバイス（例えば、新しいコンピューティングデバイス１３２）の制御を受けて実行することができる。例えば、ステージングサーバ１４０は、デバイス１３２からコンピューティングデバイス識別子を受け取り、コンピューティングデバイス識別子に基づいてテーブル１７２上でルックアップを実行し、次に、テーブル１７２から得られた名前に基づいてテーブル１７４上でルックアップを行い、次に、テーブル１７４から得られたプロファイル識別子に基づいてテーブル１７６上でルックアップを行うことができる。別法として、デバイス１３２は、（例えば、ステージングサーバ１４０を介して）テーブル１７２上でルックアップを行い、名前を得ることができる。デバイス１３２は、プロファイル識別子を得るために、得られた名前を使用して（例えば、ステージングサーバ１４０を介して）テーブル１７４上でルックアップを行うことができる。デバイス１３２は、構成情報を得るために、得られたプロファイル識別子を使用して、（例えば、ステージングサーバ１４０を介して）テーブル１７６上でルックアップを行うことができる。
【００３４】
別法として、アプリケーションプログラムを、新しいコンピューティングデバイス１３２上で自動的にセットアップすることができる。このようなアプリケーションプログラムを自動セットアップする（自動カスタム・ソフトウェア構成とも称する）場合には、あるタ種別のデバイスの構成情報は、デバイスが意図する機能を実行するためにコンピューティングデバイスにインストールされる様々なソフトウェアコンポーネントおよび／またはモジュールを含む。これらは、デバイスにインストールされる１または複数のアプリケーションプログラムまたはソフトウェアを含む。例えば、デバイスがオンラインゲームの統計サービスを提供するべきであるとき、デバイスのプロファイルは、デバイスが統計サービスを実施するために、デバイスにインストールされる必須のソフトウェアコンポーネントおよび構成情報を識別することになる。
【００３５】
実施形態によっては、オペレーティングシステムは、コンピューティングデバイスに自動的にインストールされ、ソフトウェアがデバイス上で自動的に構成される。別法として、オペレーティングシステムだけをコンピューティングデバイスに自動インストールする（カスタム・ソフトウェア構成は自動でない）ことも、ソフトウェアだけをデバイス上で自動構成する（オペレーティングシステムのインストールは自動でない）こともできる。１つの実施においては、カスタム・ソフトウェア構成を自動化しない場合には、コンピューティングデバイス自体が、オペレーティングシステムがインストールされた後で、カスタム・ソフトウェア構成の用意があることを公示する。この公示は、ステージングサーバ１４０またはどこかのログファイルに、用意できていることを示す指示を書き込むことなど、様々な異なる方法で公示することができる（例えば、指示は単にデバイス識別子とすることができる）。
【００３６】
１つの実施においては、テーブル１７２、１７４および１７６、ならびに構成情報記憶装置１７８はすべて、同じサーバ（例えば、図２のステージングサーバ１４０）に含まれる。別法として、テーブルおよび／または構成情報を複数のサーバにわたって散在させることができる。例えば、構成情報の異なる部分を、異なるサーバデバイス上で記憶することができ、異なる種別のデバイスの構成情報を、異なるサーバデバイス上で記憶することができ、または、テーブルを、複数のサーバデバイスを跨いで分割することができる、などである。
【００３７】
構成情報の全てが、ステージングサーバ１４０から受け取られると、コンピューティングデバイス１３２上で動作する事前実行環境は、ステージングサーバからの構成情報内で識別されているように、適切なソフトウェアコンポーネントをインストールする。これは自動化されたオペレーティングシステムのインストール処理であり、１つの実施においては、事前実行環境は、インストール処理中に回答ファイルを使用することを可能にする無人のインストール処理を含む。事前実行環境は、ステージングサーバ１４０から受け取られた構成情報に基づいて回答ファイルを自動生成する。事前実行環境は、回答ファイルの書式を理解し（例えば、プログラムされており）、従って、回答ファイルを生成する方法（例えば、どのデータを回答ファイルに含むか、それをどのようにフォーマットするか、など）を理解している。別法として、ステージングサーバ１４０は、回答ファイルを生成することができる。１つの実施においては、無人のインストール処理は、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムの無人インストール処理である。この無人インストール処理に関する追加情報は、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ（登録商標）Ｃｏｒｐｏｒａｔｉｏｎから入手可能である。
【００３８】
セットアップ処理中に、コンピューティングデバイスは、インストール処理によって１または複数回再起動またはリブートされる可能性があることに留意されたい。これは、オペレーティングシステムのインストール中、オペレーティングシステムのインストールと１または複数のアプリケーションプログラムのインストールとの間、１または複数のアプリケーションプログラムのインストール中、１または複数のアプリケーションプログラムのインストール後、またはそれらの組合せで発生する可能性がある。このような再起動またはリブートが発生したとき、インストール処理は、デバイスを再起動またはリブートする前に残したところから続行する（事前実行環境、別のオペレーティングシステムセットアッププログラム、オペレーティングシステム自体（おそらくは「スタートアップ」モードで）が起動する可能性がある）。インストール処理が完了すると、事前実行環境ではなくオペレーティングシステムが実行する（任意選択で、インストール処理によって行われる最後の動作を、コンピュータを再起動またはリブートしてオペレーティングシステムに入ることにすることができる）。
【００３９】
従って、顧客の所在地１３４内に含まれ、自動セットアップされるデバイスの異なる種別について、異なるプロファイルを確立することができることがわかる。複数の異なるコンピューティングデバイスを、構成情報のほとんどを構成情報記憶装置１７８から使用可能にして、同じプロファイルに関連付けることができる。同じ種別のコンピューティングデバイス間の差違（例えば、そのネットワークアドレス）は、ＮＩＣテーブル１７２内で識別されており、セットアップ処理中にそこから適切な情報（例えば、そのネットワークアドレス）が取り出される。特定のデバイスについて構成情報に変更を加える必要があるとき（例えば、オペレーティングシステム内のコンポーネントのアップグレード）、記憶装置１７８内の適切な１または複数のコンポーネントに変更を加えることが必要とされるだけで、後続のインストールすべてに伝達させる。同様に、新しいコンピューティングデバイスが、新しいハードウェア（例えば、異なるビデオカード、異なるハードウェアバージョンのビデオカード、異なるバージョンまたはサイズのハードディスクドライブなど）を含むことがある場合には、この新しいハードウェア用の適切なドライバを、記憶装置１７８に追加し、プロファイルテーブル１７６で生成された新しいプロファイル（または、アップデートされた以前のプロファイルを）、および全ての後続のインストールは、この新しいドライバを利用することができる。
【００４０】
代替の実施においては、図２の製造者１３６によってステージングサーバ１４０のＮＩＣテーブル１７２に、コンピューティングデバイス識別子が追加されるようにするのではなく、ステージングサーバ１４０がコンピューティングデバイス１３２によって最初にアクセスされたとき（事前実行環境を動作）、コンピューティングデバイス識別子を追加することができる。コンピューティングデバイス１３２は、自分自身について理解している情報（特にその固有の識別子）を、ステージングサーバ１４０に供給することができる。ステージングサーバ１４０は、この情報をテーブル１７２の新しいエントリに入力し、上述と同じ方法で（例えば、システム管理者によって手動で、サーバ１４０または別のデバイスによって自動で）エントリ内の残りの情報を挿入することができる。
【００４１】
他の代替の実施においては、ステージングサーバ１４０においてユーザ（例えば、システム管理者）により、コンピューティングデバイス識別子を、ステージングサーバ１４０のＮＩＣテーブル１７２に追加することができる。ユーザインターフェースが、ステージングサーバ１４０のユーザに提供され、ユーザがコンピューティングデバイスについての情報（例えば、識別子、種別、ネットワーク情報（例えば、ネットワークアドレス、ゲートウェイなど））を入力することを可能にする。この情報は、テーブル１７２内の新しいエントリに入力され、エントリ内の残りの情報は、上述と同じ方法で（例えば、システム管理者によって手動で、サーバ１４０または別のデバイスによって自動で）挿入することができる。
【００４２】
オペレーティングシステムをコンピューティングデバイス１３２に最初にインストールするのに加えて、自動セットアップ処理は、先にオペレーティングシステムがインストールされているデバイスにオペレーティングシステムをインストールするために使用することができる。この状況は、例えば、オペレーティングシステムに変更が加えられ（例えば、新機能またはバグ修復）、これらの変更をデバイスに組み込む場合（デバイスの再構築と称することもある）、または、図２の製造者１３６が、デバイスにオペレーティングシステムをプレインストールしており、顧客がオペレーティングシステムを変更したいと望んでいる場合に生じることがある。
【００４３】
すでにオペレーティングシステムがインストールされているデバイスにオペレーティングシステムをインストールするとき、自動インストール処理が開始される。自動インストール処理を、様々な形で、例えば、特定のコマンドを使用すること、適切なキーシーケンスを選択すること、事前実行環境命令を含むブート可能なディスクを挿入することなどによって開始することができる。開始すると、自動インストール処理は、上述のように実行し、適切な構成情報をステージングサーバ１４０からロードし、その構成情報に基づいてオペレーティングシステムをインストールする。先のオペレーティングシステムはいずれも、インストール処理によって無視され、必要な場合には上書きされる。１つの実施においては、自動インストール処理の前に（またはその一部として）、コンピューティングデバイスのハードディスクドライブをフォーマットし、かつ／または区分することができる。
【００４４】
図４は、コンピューティングデバイスの自動オペレーティングシステムをインストールするための例示的な処理２００を示す流れ図である。処理２００は、図２のデバイス１３２など、クライアントデバイスによって実施され、ソフトウェア、ファームウェア、ハードウェアまたはそれらの組合せで実行することができる。
【００４５】
最初に、コンピューティングデバイスの事前実行環境が起動される（動作２０２）。次に、オペレーティングシステムの構成情報が、コンピューティングデバイス識別子に基づいて取り出される（動作２０４）。次に、オペレーティングシステムは、取り出されたオペレーティングシステムの構成情報に基づいて、コンピューティングデバイスにインストールされる（動作２０６）。
【００４６】
図５は、コンピューティングデバイスの自動オペレーティングシステムをインストールするためのより詳細な例示的処理２４０を示す流れ図である。処理２４０は、図２のデバイス１３２など、コンピューティングデバイスによって実施され、ソフトウェア、ファームウェア、ハードウェアまたはそれらの組合せで実行することができる。
【００４７】
最初に、コンピューティングデバイスの電源が投入され（動作２４４）、デバイスにオペレーティングシステムをインストールするか否か判定される（動作２４６）。すでにデバイスにインストールされているオペレーティングシステムがない場合には、動作２４６でオペレーティングシステムをデバイスにインストールすることが決定される。オペレーティングシステムがデバイスにすでにインストールされている場合には、新しいオペレーティングシステムをインストールするための要求またはコマンドを受け取った場合に、オペレーティングシステムをデバイスにインストールすることが決定される。このような要求またはコマンドは、ある時間で（数日または数週程度、あるいはそれより長くすることができる）デバイスが電源投入された後に受け取ることができ、その時点で処理２４０は動作２４６に戻り、オペレーティングシステムをデバイスにインストールすることを決定する。
【００４８】
オペレーティングシステムをデバイスにインストールしない場合には、デバイスは、そのインストールされたオペレーティングシステムを実行する（動作２４８）。しかしながら、オペレーティングシステムをデバイスにインストールする場合には、デバイスは、事前実行環境を起動する（動作２５０）。コンピューティングデバイスの固有の識別子が取得され（動作２５２）、それを使用してＮＩＣテーブルからデバイスの種別を得る（動作２５４）。次に、デバイス種別を使用して、サーバテーブルからプロファイル識別子を取得し（動作２５６）、プロファイル識別子を使用して、コンピューティングデバイスにインストールするオペレーティングシステムの構成情報を得る（動作２５８）。次に、オペレーティングシステムは、得られた構成情報を使用して、コンピューティングデバイスにインストールされる（動作２６０）。
【００４９】
図２に戻ると、アプリケーションプログラム構成情報を、ステージングサーバ１４０によって維持することができる。このアプリケーションプログラム構成情報は、コンピューティングデバイスが、意図する機能を実行するために、特定のソフトウェアで自動的にカスタマイズされることを可能にする。特定のコンピューティングデバイス種別の構成情報を、図３のプロファイルテーブル１７６の対応するプロファイル識別子、および図３の記憶装置１７８内に記憶されている構成情報自体において識別することができる。
【００５０】
コンピューティングデバイスの自動カスタム・ソフトウェア構成は、オペレーティングシステムがコンピューティングデバイスに自動的にインストールされた直後に行うことができる。別法として、コンピューティングデバイスの自動カスタム・ソフトウェア構成を後で行うことができる。また、コンピューティングデバイスの自動カスタム・ソフトウェア構成は、オペレーティングシステムがコンピューティングデバイスにどのようにインストールされるかに関わらず行うことができることをも理解されたい（例えば、オペレーティングシステムは、上述のように自動的にインストールすることも、あるいは何らかの他の方法でインストールすることもできる）。
【００５１】
図６は、コンピューティングデバイスの自動アプリケーションソフトウェアをインストールするための例示的な処理３００を示す流れ図である。処理３００は、図２のデバイス１３２など、コンピューティングデバイスによって実施され、ソフトウェア、ファームウェア、ハードウェアまたはそれらの組合せで実行することができる。
【００５２】
最初に、コンピューティングデバイスのオペレーティングシステムが起動される（動作３０２）。次に、コンピューティングデバイスのカスタム・ソフトウェア構成情報は、コンピューティングデバイス識別子に基づいて取り出される（動作３０４）。次に、カスタム・ソフトウェアは、取り出されたカスタム・ソフトウェア構成情報に基づいて、コンピューティングデバイスにインストールされる（動作３０６）。
【００５３】
図７は、コンピューティングデバイスの自動アプリケーションソフトウェアをインストールするためのより詳細な例示的処理３４０を示す流れ図である。処理３４０は、図２のデバイス１３２など、コンピューティングデバイスによって実施され、ソフトウェア、ファームウェア、ハードウェアまたはそれらの組合せで実行することができる。
【００５４】
最初に、コンピューティングデバイスの電源が投入され、そのインストールされたオペレーティングシステムを使用して起動またはブートされる（動作３４２）。次に、デバイスにカスタム・ソフトウェアをインストールするか否かについて判定される（動作３４４）。動作３４４で、カスタム・ソフトウェアをインストールするための要求またはコマンドを受け取った場合に、カスタム・ソフトウェアをデバイスにインストールすることが決定される。このような要求またはコマンドは、オペレーティングシステムがコンピューティングデバイスにインストールされた直後に受け取ることも（例えば、要求は、コンピューティングデバイスの全体的な自動セットアップ処理の一部として発行される）、または、ある時間で（数日または数週程度、あるいはそれより長くすることができる）デバイスが電源投入された後に受け取ることもでき、その時点で処理３４０は動作３４４に戻り、カスタム・ソフトウェアをデバイスにインストールすることを決定する。
【００５５】
カスタム・ソフトウェアをデバイスにインストールしない場合には、デバイスは、そのインストールされたソフトウェアを実行する（動作３４６）。しかしながら、カスタム・ソフトウェアをデバイスにインストールする場合には、コンピューティングデバイスの固有の識別子が取得され（動作３４８）、それを使用してＮＩＣテーブルからデバイスの種別を得る（動作３５０）。次に、デバイス種別を使用して、サーバテーブルからプロファイル識別子を取得し（動作３５２）、プロファイル識別子を使用して、コンピューティングデバイスにインストールするカスタム・ソフトウェアの構成情報を得る（動作３５４）。次に、カスタム・ソフトウェアは、得られた構成情報を使用して、コンピューティングデバイスにインストールされる（動作３５６）。
【００５６】
さらに、インストール後に、コンピューティングデバイスにインストールされたオペレーティングシステムおよび／またはカスタム・ソフトウェアに様々な修正を加えることができる。このような修正は、例えば、オペレーティングシステムおよび／またはカスタム・ソフトウェアに機能を追加するサービスパック、バグまたは誤りの修復、セキュリティの修復などとすることができる。ステージングサーバ１４０は、様々なコンピューティングデバイスの構成情報を維持し、どのコンピューティングデバイスにどの修正を加えるか（例えば、どのコンピューティングデバイスが、セキュリティの欠陥を修復するために新しいソフトウェアモジュールを必要としているか）を容易に判定することを可能にする。構成情報は、修正の任意のカスタマイズの決定を（例えば、プロセッサ種別、オペレーティングシステムのバージョンなどに基づいて）容易に決定することを可能にする。次に、この構成情報を使用して、オペレーティングシステムおよび／またはカスタム・ソフトウェアに正しい修正を加える（例えば、正しい修正ファイルを選択しインストールする）ことができる。
【００５７】
１つの実施においては、デバイスデータベースは、上述の図３に示されたテーブル、ならびに他のテーブルを含む複数のデータ構造で構成されている。これらの構造について本明細書では、フィールドを有するテーブルで表して述べるが、様々な方法でその構造を実装することができる。以下の表Ｉ−ＸＸＶＩＩＩに示すように、様々なデータがこれらの構造に含まれている。
【００５８】
表Ｉは、データセンタ（例えば、図１の複数のグループ１０６、または図２の顧客の所在地１３４）を識別するエントリを含むデータセンタのテーブルである。
【００５９】
【表１】
2004038964.tif 000003
【００６０】
表ＩＩは、データセンタ内の特定のネットワークを説明するエントリを含み、各データセンタについて複数のエントリを含むことができるネットワークテーブルである。
【００６１】
【表２】
2004038964.tif 000004
【００６２】
表ＩＩＩは、データセンタ内のネットワーク上の仮想ＬＡＮ（ＶＬＡＮ）について説明するＶＬＡＮテーブルである。
【００６３】
【表３】
2004038964.tif 000005
【００６４】
表ＩＶは、特定のコンピューティングデバイス、およびサーバ名を有する関連コンピューティングデバイスに関するエントリを含むＮＩＣテーブル（例えば、図３のテーブル１７２）である。
【００６５】
【表４】
2004038964.tif 000006
【００６６】
表Ｖは、ＮＩＣ識別子（例えば、ＭＡＣアドレス）を共通の名前に関連付けるエントリを含むＮＩＣカードテーブルである。
【００６７】
【表５】
2004038964.tif 000007
【００６８】
表ＶＩは、ＮＩＣを様々な設定に関連付けるエントリを含むＮＩＣ種別テーブルである。
【００６９】
【表６】
2004038964.tif 000008
【００７０】
表ＶＩＩは、ＮＩＣによって使用されるサブネットＩＰ（インターネットプロトコル）アドレスを識別するエントリを含むサブネットＩＰテーブルである。
【００７１】
【表７】
2004038964.tif 000009
【００７２】
表ＶＩＩＩは、ＮＩＣによって使用されるゲートウェイＩＰアドレスを識別するエントリを含むゲートウェイＩＰテーブルである。
【００７３】
【表８】
2004038964.tif 000010
【００７４】
表ＩＸは、ＮＩＣによって使用されるＤＮＳサーバのアドレスを識別するエントリを含むＤＮＳサーバテーブルである。
【００７５】
【表９】
2004038964.tif 000011
【００７６】
表Ｘは、デバイス名をプロファイルにマッピングするエントリを含むサーバテーブル（例えば、図３のテーブル１７４）である。
【００７７】
【表１０】
2004038964.tif 000012
【００７８】
表ＸＩは、デバイスの機能（例えば、デバイスがどのように使用されるか）のためのフレンドリ名を識別するエントリを含むサーバ使用法テーブルである。
【００７９】
【表１１】
2004038964.tif 000013
【００８０】
表ＸＩＩは、ログオン情報を識別するエントリを含むフォージログオン（Ｆｏｒｇｅ　Ｌｏｇｏｎ）テーブルである。１つの実施においては、自動インストール処理は（オペレーティングシステムのインストールまたはカスタム・ソフトウェアのインストールに関わらず）、識別子およびパスワードを使用してステージングサーバにログオンする。有効な識別子およびパスワードの組合せは、フォージログオンテーブル内で維持される。
【００８１】
【表１２】
2004038964.tif 000014
【００８２】
表ＸＩＩＩは、インストール処理中に使用される製品キー（例えば、入力されて、インストールされるコンポーネントについて有効なライセンスが購入されていることを認証するセキュリティキーまたはコード）を識別するエントリを含む製品キーテーブルである。
【００８３】
【表１３】
2004038964.tif 000015
【００８４】
表ＸＩＶは、プロファイルを構成情報にマッピングするエントリを含むサーバプロファイルテーブル（例えば、図３のテーブル１７６）である。
【００８５】
【表１４】
2004038964.tif 000016
【００８６】
表ＸＶは、インストール処理の一部として実行されるスクリプトを識別するエントリを含むコンポーネントスクリプトテーブルである。
【００８７】
【表１５】
2004038964.tif 000017
【００８８】
表ＸＶＩは、インストール処理の終わりに実行されるスクリプトの名前およびその説明（ポストインストールスクリプトのリスト）を識別するエントリを含むポストインストールリストテーブルである。
【００８９】
【表１６】
2004038964.tif 000018
【００９０】
表ＸＶＩＩは、インストール処理の終わりに実行されるスクリプトと、それが実行される順番とを識別するエントリを含むポストインストールリストテーブルである。
【００９１】
【表１７】
2004038964.tif 000019
【００９２】
表ＸＶＩＩＩは、インストール処理の終わりにインストールされるスクリプトを識別するエントリを含むポストインストールスクリプトリストである。
【００９３】
【表１８】
2004038964.tif 000020
【００９４】
表ＸＩＸは、インストール処理の一部として実行されるディスクドライブ構成スクリプトを識別するエントリを含むディスクプロファイルスクリプトテーブルである。
【００９５】
【表１９】
2004038964.tif 000021
【００９６】
表ＸＸは、インストール処理の一部として実行されるハードウェア構成スクリプトを識別するエントリを含むハードウェアプロファイルテーブルである。
【００９７】
【表２０】
2004038964.tif 000022
【００９８】
表ＸＸＩは、データセンタ内のデバイス（例えば、サーバおよび／またはネットワークスイッチ）のラックを指定するエントリを含むラックテーブルである。
【００９９】
【表２１】
2004038964.tif 000023
【０１００】
表ＸＸＩＩは、ラック内のコンピューティングデバイスを識別するエントリを含むデバイステーブルである。
【０１０１】
【表２２】
2004038964.tif 000024
【０１０２】
表ＸＸＩＩＩは、ラック内のデバイスのＩＰアドレスを識別するエントリを含むデバイスＩＰテーブルである。
【０１０３】
【表２３】
2004038964.tif 000025
【０１０４】
表ＸＸＩＶは、ラック内の特定デバイスの種別を識別するエントリを含むデバイス種別テーブルである。
【０１０５】
【表２４】
2004038964.tif 000026
【０１０６】
表ＸＸＶは、ラック内のネットワークスイッチを識別するエントリを含むスイッチテーブルである。
【０１０７】
【表２５】
2004038964.tif 000027
【０１０８】
表ＸＸＶＩは、ラック内のネットワークスイッチのモジュールを識別するエントリを含むモジュールテーブルである。
【０１０９】
【表２６】
2004038964.tif 000028
【０１１０】
表ＸＸＶＩＩは、ネットワークスイッチのモジュールのポートを識別するエントリを含むポートテーブルである。
【０１１１】
【表２７】
2004038964.tif 000029
【０１１２】
表ＸＸＶＩＩＩは、スイッチのモジュールのＩＰアドレスを識別するエントリを含むモジュールＩＰテーブルである。
【０１１３】
【表２８】
2004038964.tif 000030
【０１１４】
図１に戻ると、ネットワークスイッチ、ハブ、ルータ、負荷分散装置など、様々な従来型ネットワークデバイスは、典型的には、内部ネットワーク１０８内に含まれている。ネットワークスイッチは、ケーブルを接続することができる複数のポートまたはジャックを有し、ケーブルは、コンピューティングデバイスのＮＩＣにも結合される。ネットワークスイッチは、そのポートに結合された各コンピューティングデバイスから、そのポートに現在結合されているＮＩＣの識別子（例えば、ＭＡＣアドレス）を得ることができる。ネットワークスイッチの各ポートに結合されている各ＮＩＣの識別子を得ることにより、ネットワークスイッチ、またはネットワークスイッチを構成するように設計された一部のプロセスもしくはプログラムは、（データベース内でＮＩＣの識別子をルックアップすることによって）各ポートに接続されているコンピューティングデバイスの種別および役割を識別し、データを適切なコンピューティングデバイスに経路指定することができる。
【０１１５】
場合によっては、コンピューティングデバイス１０２のいくつかは、複数のＮＩＣを有することができ、一方は、デバイスをネットワーク１０４に結合し、他方は、デバイスをネットワーク１０８に結合する。コンピューティングデバイスをネットワークスイッチのポートに結合する際には、ＮＩＣがネットワークスイッチの正しいポートに確実に結合されるように注意するべきである（例えば、その結果、ネットワーク１０４と通信中であると思われるＮＩＣが、実際にネットワーク１０４に関連付けられているネットワークスイッチのポートに結合され、ネットワーク１０８と通信中であると思われるＮＩＣが、実際にネットワーク１０８に関連付けられているネットワークスイッチのポートに結合される）。
【０１１６】
１つの実施においては、内部ネットワーク１０８内のネットワークスイッチを、自動構成することができ、それによって、コンピューティングデバイスの様々なＮＩＣが正しいポートに確実に結合される。ネットワークスイッチが自動構成されるのを可能にすることにより、コンピューティングデバイスをネットワークスイッチに結合しているグループ１０６の個人は、自分がデバイスをどのポートに結合中であるか気にかける必要がなく、デバイスが結合されるどのようなポートでも、必要に応じて自動構成される。
【０１１７】
図８は、ネットワークスイッチの自動構成のための例示的な処理４００を示す流れ図である。処理４００は、図２のステージングサーバ１４０などのデバイスによって実施され、ソフトウェア、ファームウェア、ハードウェアまたはそれらの組合せで実行することができる。
【０１１８】
最初に、スイッチポートに対するＮＩＣ識別子のマッピングは、ネットワークスイッチから取り出される（動作４０２）。各ＮＩＣ識別子について、対応するＮＩＣが属するべきであるネットワークの種別に関して検査される（動作４０４）。図３のＮＩＣテーブル１７２が、コンピューティングデバイス識別子としてＮＩＣ識別子（例えば、ＮＩＣのＭＡＣアドレス）を使用する場合には、ネットワーク種別に対するＮＩＣ識別子のマッピングを含む、図３のＮＩＣテーブル１７２のエントリにアクセスすることによって、この検査を行うことができる。次に、スイッチ構成情報は、ＮＩＣと、対応するネットワーク種別情報とに基づいて生成され（動作４０６）、この生成された構成情報は、ネットワークスイッチに書き込まれる（動作４０８）。
【０１１９】
ネットワークスイッチの自動構成と同様に、他のネットワークデバイスを自動構成することができることに留意されたい。様々なテーブル内のデータを使用して他のネットワークデバイスを自動構成する厳密な方法は、ネットワークデバイスに応じて変わる可能性がある。このようなネットワークデバイスは、例えば、ＬＡＮの一部、ストレージエリアネットワーク（ＳＡＮ）（例えば、新しいコンピューティングデバイスのために記憶装置を自動作成することを可能にする）などとすることができる。
【０１２０】
図２に戻ると、完全な自動システムを実施して、コンピューティングデバイスを顧客の所在地１３４に追加することができる。この完全な自動システムは、冗長モードまたは非冗長モードのステージングサーバ１４０、または顧客の所在地１３４（あるいは他のところ）にある別のデバイスによって管理することができる。動作中には、所在地１３４にいるシステム管理者は、単に管理デバイスに、新しいデバイスの種別（例えば、新しい統計サーバ）が望まれることの指示を入力することになる。このような要求は、図３のＮＩＣテーブル１７２に新しいデバイスの名前および種別を手動入力し、新しいデバイスの名前および種別を含む電子メールメッセージを管理デバイスに送信することによって（管理デバイスは、メッセージを受け取り、メッセージから新しいデバイスの名前および種別を取り出し、新しいデバイスの名前および種別をＮＩＣテーブル１７２に追加する）、または他の形で入力することが可能であろう。次に、完全な自動処理が新しいデバイスを注文し、上述のように自動オペレーティングシステム／カスタム・ソフトウェアのインストールが行われる。
【０１２１】
図９は、顧客の所在地にデバイスを自動追加するための例示的な処理４５０を示す流れ図である。処理４５０は、図２のステージングサーバ１４０または別のコンピューティングデバイスなどのデバイスによって実施され、ソフトウェア、ファームウェア、ハードウェアまたはそれらの組合せで実行することができる。
【０１２２】
最初に、新しいコンピューティングデバイスを求める要求が受け取られる（動作４５２）。次に、適切な承認および／または購入情報が、新しいコンピューティングデバイスについて権限のある情報源から得られる（動作４５４）。購入を承認する権限のある１または複数の個人に電子メールメッセージまたは他の指示を送信すること、デバイスを購入するために注文番号を求めて電子メールメッセージまたは他の指示を送信することなど様々な動作が、動作４５４で必要とされる可能性がある。別法として、追加承認が必要とされない場合があり、動作４５４を行う必要はない。
【０１２３】
必要な承認および／または購入情報が得られると、新しいコンピューティングデバイスを購入するための要求は、デバイスの売り主に送られる（動作４５６）。この売り主は、例えば、図１の製造者１３６、あるいは製造者１３６によって製造されたデバイスの再販者とすることができる。結局は、コンピューティングデバイスが顧客の所在地で受け取られ、ネットワークに結合される。この結合は、例えば、ユーザが顧客の所在地で、ネットワークケーブルをデバイスの各ＮＩＣに、ネットワークスイッチまたは他のネットワークデバイスに挿入することによって手動で行われる。ネットワークに結合されると、コンピューティングデバイスがネットワークに結合されたことの指示が受け取られる（動作４５８）。これは、システム管理者が図３のＮＩＣテーブル１７２に指示を手動入力するなど、手動指示とすることも、デバイスが電源投入されたら直ちにネットワーク上にデバイスが存在することを知らせるなど、自動指示とすることもできる。
【０１２４】
次に、適切なオペレーティングシステムのインストール構成情報は、コンピューティングデバイスに送られ（動作４６０）、自動オペレーティングシステムインストールに関する上述の考察と同様に、コンピューティングデバイスは、送られた構成情報に基づいてそのオペレーティングシステムをインストールする（動作４６２）。適切なカスタム・ソフトウェア構成情報は、コンピューティングデバイスに送られ（動作４６４）、自動カスタム・ソフトウェアインストールに関する上述の考察と同様に、コンピューティングデバイスは、送られた情報に基づいてそのカスタム・ソフトウェアをインストールする（動作４６６）。
【０１２５】
従って、図９でわかるように、デバイスの追加処理は自動化され、システム管理者からの入力をほとんど必要とせず、システム管理者が望むように新しいコンピューティングデバイスを顧客の所在地に追加してセットアップする。
【０１２６】
再び図２に戻ると、本明細書に述べられているように自動セットアップを実現するのに加えて、ステージングサーバ１４０は、資産追跡のために維持している様々な情報を使用することができる。顧客の所在地１３４に多数のデバイスが存在する場合には、このような資産追跡は、システム管理者に多くの所望の情報を提供することができる。
【０１２７】
図１０は、自動インストールおよび自動資産追跡のための例示的な処理４８０を示す流れ図である。処理４８０は、図２のステージングサーバ１４０または他のコンピューティングデバイスなどのデバイスによって実施され、ソフトウェア、ファームウェア、ハードウェアまたはそれらの組合せで実行することができる。
【０１２８】
最初に、顧客の所在地１３４で追加される新しいコンピューティングデバイスに関する情報は、デバイスデータベースに追加される（動作４８２）。このデバイスデータベースは、例えば、図３のテーブル１７２、１７４および１７６で構成されている。典型的には、資産追跡情報は、ＮＩＣテーブル１７２内に含まれている。
【０１２９】
次に、適切なオペレーティングシステムインストール構成情報は、新しいコンピューティングデバイスに送られ（動作４８４）、自動オペレーティングシステムインストールに関する上述の考察と同様に、新しいコンピューティングデバイスは、送られた構成情報に基づいてそのオペレーティングシステムをインストールする（動作４８６）。適切なカスタム・ソフトウェア構成情報は、新しいコンピューティングデバイスに送られ（動作４８８）、自動カスタム・ソフトウェアインストールに関する上述の考察と同様に、コンピューティングデバイスは、送られた情報に基づいてそのカスタム・ソフトウェアをインストールする（動作４９０）。必要とされる場合には、顧客の所在地にあるネットワークスイッチは、再構成され、自動ネットワークスイッチ構成に関する上述の考察と同様に、新しいコンピューティングデバイスに対処する（動作４９２）。
【０１３０】
次に、コンピューティングデバイスに関する追加情報は、コンピューティングデバイスから取り出される（動作４９４）。この追加情報は、例えば、デバイスのハードウェア／ソフトウェア特性（例えば、インストールされているコンポーネント、これらのコンポーネントのバージョン、基本入出力システム（ＢＩＯＳ）の設定およびバージョンなど）を含む。コンピューティングデバイスにインストールされたオペレーティングシステムは、典型的には、様々なハードウェア／ソフトウェア特性を識別することを可能にする機能を含む。例えば、多数のＭｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムは、この情報を取り出すためにスクリプティング言語を使用して問い合わせることができるＷｉｎｄｏｗｓ（登録商標）　Ｍａｎａｇｅｍｅｎｔ（ＷＭＩ）サービスを含む。動作４９４から取り出されたこの情報、ならびに、先にデバイスデータベースに追加された情報（例えば、図３のＮＩＣテーブル１７２に追加された情報）は、資産追跡のために維持される（動作４９６）。
【０１３１】
図１１は、本明細書に述べられている技法を実施するために使用することができる例示的な一般コンピュータ環境５００を示す図である。コンピュータ環境５００は、コンピューティング環境の一例にすぎず、コンピュータおよびネットワークアーキテクチャの使用範囲または機能について限定を暗示するものではない。コンピュータ環境５００は、例示的なコンピュータ環境５００内に示されている任意の１つの構成要素または構成要素の組合せに関してどのような依存または要件も有していると解釈するべきではない。
【０１３２】
コンピュータ環境５００は、コンピュータ５０２の形態の汎用コンピューティングデバイスを含む。コンピュータ５０２は、例えば、図１のコンピューティングデバイス１０２、または図２のコンピューティングデバイス（例えば、デバイス１３２）もしくはステージングサーバ１４０とすることができる。コンピュータ５０２の構成要素は、これに限らないが、１または複数のプロセッサまたは処理装置５０４、システムメモリ５０６、プロセッサ５０４を含む様々なシステム構成要素をシステムメモリ５０６に結合するシステムバス５０８を含むことができる。
【０１３３】
システムバス５０８は、いくつかの種類のバス構造のいずれかの１または複数を表し、メモリバスまたはメモリ制御装置、周辺バス、ＡＧＰ（ａｃｃｅｌｅｒａｔｅｄ　ｇｒａｐｈｉｃｓ　ｐｏｒｔ）、ならびに様々なバスアーキテクチャのいずれかを使用するプロセッサまたはローカルバスを含む。例として、そのようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ　Ｓｔａｎｄａｒｄ　Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ　Ｃｈａｎｎｅｌ　Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ　ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ　Ｅｌｅｃｔｒｏｎｉｃｓ　Ｓｔａｎｄａｒｄｓ　Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、メザニンバスとしても知られるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔｓ）バスを含むことができる。
【０１３４】
コンピュータ５０２は、典型的には、様々なコンピュータ読取り可能媒体を含む。このような媒体は、コンピュータ５０２によってアクセス可能であり、揮発性媒体と不揮発性媒体、取外し式媒体と非取外し式媒体とを共に含むあらゆる使用可能な媒体とすることもできる。
【０１３５】
システムメモリ５０６は、ランダムアクセスメモリ（ＲＡＭ）５１０など揮発性メモリ、および／または読出し専用メモリ（ＲＯＭ）５１２など不揮発性メモリの形態でコンピュータ読取り可能媒体を含む。基本入出力システム（ＢＩＯＳ）５１４は、起動中などにコンピュータ５０２内の構成要素間で情報を転送するのを助ける基本ルーチンを含み、ＲＯＭ５１２内に記憶されている。ＲＡＭ５１０は、典型的には、処理装置５０４によって直ちにアクセス可能な、および／または処理装置５０４上で現在動作しているデータおよび／またはプログラムを含む。
【０１３６】
コンピュータ５０２は、取外し式／非取外し式媒体、揮発性／不揮発性コンピュータ記憶媒体を含むことができる。例として、図１１は、非取外し式、不揮発性の磁気媒体（図示せず）との間で読出しおよび書込みを行うためのハードディスクドライブ５１６、取外し式、不揮発性の磁気ディスク５２０（例えば、フロッピー（登録商標）ディスク）との間で読出しおよび書込みを行うための磁気ディスクドライブ５１８、ならびにＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭまたは他の光媒体など、取外し式、不揮発性光ディスク５２４との間で読出しおよび書込みを行うための光ディスクドライブ５２２を示す。ハードディスクドライブ５１６、磁気ディスクドライブ５１８、および光ディスクドライブ５２２はそれぞれ、１または複数のデータ媒体インターフェース５６０によってシステムバス５０８に接続されている。別法として、ハードディスクドライブ５１６、磁気ディスクドライブ５１８、および光ディスクドライブ５２２は、１または複数のインターフェース（図示せず）によってシステムバス５０８に接続することができる。
【０１３７】
ディスクドライブとその関連ｒ．コンピュータ読取り可能媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、コンピュータ５０２の他のデータの不揮発性記憶を実現する。例には、ハードディスク５１６、取外し式磁気ディスク５２０、取外し式光ディスク５２４が示されているが、コンピュータによってアクセス可能な、データを記憶することができる他の種類のコンピュータ読取り可能媒体、例えば、磁気カセットまたは他の磁気記憶デバイス、フラッシュメモリカード、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ　ｖｅｒｓａｔｉｌｅ　ｄｉｓｋ）または他の光記憶装置、ランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、電気的消去可能なプログラム可能な読出し専用メモリ（ＥＥＰＲＯＭ）などを使用して、例示的なコンピューティングシステムおよび環境を実施することもできることを理解されたい。
【０１３８】
ハードディスク５１６、磁気ディスク５２０、光ディスク５２４、ＲＯＭ５１２および／またはＲＡＭ５１０上には、いくつのプログラムモジュールを記憶することもでき、例として、オペレーティングシステム５２６、１または複数のアプリケーションプログラム５２８、他のプログラムモジュール５３０、プログラムデータ５３２が含まれる。このようなオペレーティングシステム５２６、１または複数のアプリケーションプログラム５２８、他のプログラムモジュール５３０、プログラムデータ５３２（またはそれらの何らかの組合せ）は、分散ファイルシステムをサポートする常駐コンポーネントのすべてまたは一部を実施することができる。
【０１３９】
ユーザは、キーボード５３４およびポインティングデバイス５３６（例えば、マウス）などの入力デバイスを介してコンピュータ５０２にコマンドや情報を入力することができる。他の入力デバイス５３８（特に図示せず）は、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、シリアルポート、スキャナ、などを含むことができる。これらおよび他の入力デバイスは、システムバス５０８に結合されている入力／出力インターフェース５４０を介して処理装置５０４に接続されているが、パラレルポート、ゲームポート、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）など、他のインターフェースおよびバス構造によって接続することもできる。
【０１４０】
モニタ５４２または他の種類のディスプレイデバイスは、ビデオアダプタ５４４などのインターフェースを介して、システムバス５０８に接続することができる。モニタ５４２に加えて、他の出力周辺デバイスは、入力／出力インターフェース５４０を介してコンピュータ５０２に接続することができるスピーカ（図示せず）およびプリンタ５４６などの構成要素を含むことができる。
【０１４１】
コンピュータ５０２は、遠隔コンピューティングデバイス５４８など、１または複数の遠隔コンピュータへの論理接続を使用してネットワーク環境で動作することができる。例として、遠隔コンピューティングデバイス５４８は、パーソナルコンピュータ、可搬型コンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイスまたは他の共通ネットワークノードなどとすることができる。遠隔コンピューティングデバイス５４８は、コンピュータ５０２に関係して本明細書に述べられている要素および特徴の多数またはすべてを含むことができる可搬型コンピュータとして示されている。
【０１４２】
コンピュータ５０２と遠隔コンピュータ５４８の間の論理接続は、ローカルエリアネットワーク（ＬＡＮ）５５０および一般的な広域ネットワーク（ＷＡＮ）５５２として示されている。このようなネットワーク環境は、事務所、全社コンピュータネットワーク、イントラネットおよびインターネットである。
【０１４３】
コンピュータ５０２は、ＬＡＮネットワーク環境内で実施されるとき、ネットワークインターフェースまたはアダプタ５５４を介してローカルエリアネットワーク５５０に接続される。ＷＡＮネットワーク環境内で実施されるとき、コンピュータ５０２は、典型的には、モデム５５６、または広域ネットワーク５５２の上で通信を確立するための他の手段を含む。コンピュータ５０２に内蔵または外付けすることができるモデム５５６は、入力／出力インターフェース５４０または他の適切な機構を介して、システムバス５０８に接続することができる。図のネットワーク接続は例示的なものであり、コンピュータ５０２と５４８の間で通信リンクを確立する他の手段を使用することができることを理解されたい。
【０１４４】
コンピューティング環境５００と共に示されているものなど、ネットワーク環境では、コンピュータ５０２に関係して示されているプログラムモジュールまたはその一部分を、遠隔メモリ記憶デバイス内に記憶することができる。例として、遠隔アプリケーションプログラム５５８は、遠隔コンピュータ５４８のメモリデバイス上で常駐している。例示のために、アプリケーションプログラムおよびオペレーティングシステムなど他の実行可能プログラムコンポーネントは、離散的なブロックとして本明細書に示されているが、このようなプログラムおよびコンポーネントは、様々な時にコンピューティングデバイス５０２の様々な記憶構成要素内に常駐し、コンピュータのデータプロセッサによって実行されることを理解されたい。
【０１４５】
本明細書では、様々なモジュールおよび技法について、１または複数のコンピュータまたは他のデバイスによって実行されるプログラムモジュールなどコンピュータ実行可能命令の一般的な文脈で述べることができる。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。典型的には、プログラムモジュールの機能は、様々な実施形態で望まれるように組み合わせる、または分配することができる。
【０１４６】
これらのモジュールの実施は、コンピュータ読取り可能媒体の何らかの形態に記憶する、またはそれを跨いで送信することができる。コンピュータ読取り可能媒体は、コンピュータによってアクセスすることができるあらゆる使用可能な媒体とすることもできる。限定ではなく例として、コンピュータ読取り可能媒体は、「コンピュータ記憶媒体」および「通信媒体」を含むことができる。
【０１４７】
「コンピュータ記憶媒体」には、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技法で実施される揮発性／不揮発性、取外し式／非取外し式媒体が含まれる。コンピュータ記憶媒体には、これに限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤまたは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは、所望の情報を記憶するために使用することができ、コンピュータによってアクセスすることができる任意の他の媒体が含まれる。
【０１４８】
「通信媒体」は、典型的には、コンピュータ読取り可能命令、データ構造、プログラムモジュール、または搬送波もしくは他の移送機構など変調されたデータ信号内の他のデータを表す。通信媒体には、どのような情報送達媒体でも含まれる。「変調されたデータ信号」という用語は、信号内の情報を符号化するような方法で、信号の特性の１または複数が設定または変更されている信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークまたは直接有線接続など有線媒体、ならびに音響、ＲＦ、赤外線および他の無線媒体など無線媒体が含まれる。上述のいずれかの組合せも、コンピュータ記憶媒体の範囲内に含まれる。
【０１４９】
本明細書では、流れ図によって様々な処理が示されている。これらの処理に含まれている動作は、流れ図に示されている順番で、あるいは異なる順番で実行することができることに留意されたい。例えば、図１０では、その動作を図の順番で、あるいは異なる順番で実行することができる（例えば、動作５１２を動作５１０の前に行うことができ、あるいは動作５０８を動作５０６の前に行うことができる）。別の例として、図９では、その動作を図の順番で、あるいは異なる順番で実行することができる（例えば、動作４６４を動作４６２の前に行うことができる）。
【０１５０】
本明細書の考察では、ＮＩＣに言及している。コンピューティングデバイスを様々な形で、例えば、ネットワークコネクタおよびコンピューティングデバイスのマザーボードに一体化された回路と、ネットワークコネクタおよびコンピューティングデバイスの外部にあり、様々な接続（例えば、ＵＳＢ接続）を使用してコンピューティングデバイスに結合された回路とによってネットワークに結合することができる。また、ネットワークコネクタおよび回路のこれらの代替種別は、本明細書で述べているＮＩＣと同様に、またはその代わりに使用することができることを理解されたい。
【０１５１】
上述の考察では、構造上の特徴および／または方法上の動作に特有の言葉を使用しているが、添付の特許請求の範囲で定義されている本発明は、述べられている特有の特徴または動作に限定されないことを理解されたい。反対に、その特有の特徴および動作は、本発明を実施する例示的な形態として開示されている。
【図面の簡単な説明】
【図１】自動コンピューティングシステムセットアップを使用することができる例示的なネットワーク環境を示す図である。
【図２】自動システムセットアップの一例を示すブロック図である。
【図３】適切な構成情報をコンピューティングデバイスに供給する際にステージングサーバによって使用される例示的な１組のテーブルを示す図である。
【図４】コンピューティングデバイスに自動オペレーティングシステムをインストールするための例示的な処理を示す流れ図である。
【図５】コンピューティングデバイスに自動オペレーティングシステムをインストールするためのより詳細な例示的処理を示す流れ図である。
【図６】コンピューティングデバイスに自動アプリケーションソフトウェアをインストールするための例示的な処理を示す流れ図である。
【図７】コンピューティングデバイスに自動アプリケーションソフトウェアをインストールするためのより詳細な例示的処理を示す流れ図である。
【図８】ネットワークスイッチの自動構成のための例示的な処理を示す流れ図である。
【図９】顧客の所在地にデバイスを自動追加するための例示的な処理を示す流れ図である。
【図１０】自動インストールおよび資産追跡のための例示的な処理を示す流れ図である。
【図１１】本明細書に述べられている技法を実施するために使用することができる例示的なコンピュータ環境を示す図である。
【符号の説明】
１００　ネットワーク環境
１０２　コンピューティングデバイス
１０４，１０８　ネットワーク
１０６　グループ
１３２　コンピューティングデバイス
１３４　顧客の所在地
１３６　コンピューティングデバイス製造者
１３８　説明情報
１４０　ステージングサーバ
１４２　ネットワーク
【図１】
2004038964.tif 000031
【図２】
2004038964.tif 000032
【図３】
2004038964.tif 000033
【図４】
2004038964.tif 000034
【図５】
2004038964.tif 000035
【図６】
2004038964.tif 000036
【図７】
2004038964.tif 000037
【図８】
2004038964.tif 000038
【図９】
2004038964.tif 000039
【図１０】
2004038964.tif 000040
【図１１】
2004038964.tif 000041