(57)【要約】      （修正有）【課題】コンピュータシステムのファームウェアコンポーネントのアップデートを簡素化して、管理者にとっての作業関与とコンピュータシステム自体のシステム負荷との双方を低減する。【解決手段】少なくとも１つのアップデートパケットが、コンピュータシステム１のメインプロセッサ及びメインオペレーティングシステムから独立して動作することができるサービスプロセッサによってダウンロードされ、ブート可能第１データ記憶媒体４５を形成するようにアップデートパケットからのデータ５０と補助的オペレーティングシステム４６とを編集することと、編集された第１データ記憶媒体４５からコンピュータシステム１をブートすることとをさらに備える。メインプロセッサは、補助的オペレーティングシステム４６を起動し、補助的オペレーティングシステム４６の制御下で、ファームウェアコンポーネントをアップデートする。【選択図】図３
2016207184.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムのファームウェアコンポーネントをアップデートする方法であって、
‐  １又は複数のアップデートパケットを前記コンピュータシステムのサービスプロセッサによってダウンロードするステップであって、前記サービスプロセッサは前記コンピュータシステムのメインプロセッサ及びメインオペレーティングシステムから独立して動作することができる、ステップと、
‐  前記サービスプロセッサによってブート可能第１データ記憶媒体を形成するように前記１又は複数のダウンロードされたアップデートパケットからのデータと補助的オペレーティングシステムとを編集するステップと、
‐  前記の編集された第１データ記憶媒体から前記コンピュータシステムをブートするステップであって、前記メインプロセッサは前記補助的オペレーティングシステムを起動する、ステップと、
‐  前記補助的オペレーティングシステムの制御下で、前記の編集された第１データ記憶媒体の前記１又は複数のアップデートパケットからの前記データに基づいて、ファームウェアコンポーネントをアップデートするステップと、
を備える方法。
【請求項２】
当該方法は、下記の、
‐  前記コンピュータシステムのブートドライブを、前記ブート可能第１データ記憶媒体に設定するステップと、
‐  前記編集するステップが終了した後、前記コンピュータシステムのための第１の再起動を実行するステップと、
‐  前記コンピュータシステムの前記ブートドライブを、前記メインオペレーティングシステムを記憶するブート可能第２データ記憶媒体に設定するステップと、
‐  前記ファームウェアコンポーネントをアップデートするステップが終了したとき、前記コンピュータシステムのための第２の再起動を実行するステップと、
をさらに備える、請求項１に記載の方法。
【請求項３】
前記ブート可能第１データ記憶媒体を編集するステップは、下記の、
‐  前記サービスプロセッサに接続されたメモリに仮想記憶媒体のイメージを作成するステップと、
‐  前記の作成されたイメージを仮想記憶ドライブとして前記ブート可能第１データ記憶媒体に組み入れるステップと、
を備える、請求項１又は２に記載の方法。
【請求項４】
‐  前記ダウンロードするステップ及び編集するステップは、前記コンピュータシステムのタイプが前記コンピュータシステムのすべてのとり得るコンポーネントのためのアップデートパケットを取得するための基礎として見なされることを伴い、
‐  前記アップデートするステップは、アップデートプログラムが前記コンピュータシステムに存在し、かつ／あるいは最新でないファームウェアコンポーネントだけアップデートすることを伴う、
請求項１に記載の方法。
【請求項５】
前記ダウンロードするステップは、利用可能アップデートのリストがまず第一にダウンロードされ、前記サービスプロセッサがさらなるアップデートパケットを後にダウンロードするための基礎として前記リストの評価を行うことを伴う、請求項１に記載の方法。
【請求項６】
コンピュータシステムであって、
‐  メインオペレーティングシステムを実行するメインプロセッサと
‐  前記メインプロセッサ及び前記メインオペレーティングシステムから独立して動作することができるサービスプロセッサと、
を備え、
‐  前記サービスプロセッサは、当該コンピュータシステムのための少なくとも１つのアップデートパケットをロードし、前記少なくとも１つのロードされたアップデートパケットを補助的オペレーティングシステムと共に編集して、ブート可能第１データ記憶媒体を形成するようにセットアップされ、
‐  前記メインプロセッサは、前記補助的オペレーティングシステムを用いて前記の編集された第１データ記憶媒体から当該コンピュータシステムをブートし、前記補助的オペレーティングシステムの制御下で、前記の編集された第１データ記憶媒体の前記少なくとも１つのアップデートパケットからのデータに基づいて、ファームウェアコンポーネントをアップデートするようにセットアップされる、
コンピュータシステム。
【請求項７】
‐  前記メインオペレーティングシステムを記憶する少なくとも１つの第１メモリ装置と、
‐  前記第１メモリ装置から独立して動作することができ、前記サービスプロセッサに結合され、前記ブート可能第１データ記憶媒体を記憶する少なくとも１つの第２メモリ装置と、
をさらに備える請求項６に記載のコンピュータシステム。
【請求項８】
前記サービスプロセッサは、前記第２メモリ装置に仮想記憶媒体のイメージを記憶し、前記の記憶されたイメージを当該コンピュータシステムにブート可能第１データ記憶媒体として組み入れるようにセットアップされる、請求項７に記載のコンピュータシステム。
【請求項９】
前記サービスプロセッサは、前記の記憶されたイメージを当該コンピュータシステムに読み取り専用動作モードにおいて、具体的に仮想ＣＤ又はＤＶＤドライブのための記憶媒体として組み入れるようにセットアップされる、請求項８に記載のコンピュータシステム。
【請求項１０】
‐  選択可能なメモリ装置から当該コンピュータシステムを起動する第１のファームウェアコンポーネント、
をさらに備え、
前記サービスプロセッサは、前記ブート可能第１データ記憶媒体の編集の後に当該コンピュータシステムを起動するために前記第２メモリ装置を選択し、前記ファームウェアコンポーネントのアップデートの後に当該コンピュータシステムを起動するために前記第１メモリ装置を選択するようにさらにセットアップされる、
請求項７に記載のコンピュータシステム。
【請求項１１】
前記サービスプロセッサは、前記ブート可能第１データ記憶媒体にアクセスする標準インターフェースをエミュレートするようにセットアップされ、したがって、前記補助的オペレーティングシステムは、製造業者固有ドライバソフトウェアなしに前記第１データ記憶媒体にアクセスすることができる、請求項６に記載のコンピュータシステム。
【請求項１２】
前記サービスプロセッサは、第１の所定スケジュールに従って当該コンピュータシステムのための前記少なくとも１つのアップデートパケットをロードするようにセットアップされるスケジューリングコンポーネントを備える、請求項６に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムのファームウェアコンポーネントをアップデートする方法に関し、該方法において、少なくとも１つのアップデートパケットが、少なくとも１つの所定ネットワークソースからダウンロードされ、コンピュータシステムのファームウェアコンポーネントをアップデートすることに使用される。さらに、本発明は、上記の方法を実行するためのコンピュータシステムと上記の方法を実行するための実行可能プログラムコードを記憶させたメモリ装置とに関する。
【背景技術】
【０００２】
用語のファームウェアは、１又は複数のハードウェアコンポーネントを動作させるために必要であり、かつオペレーティングシステムから通常独立しているソフトウェアコンポーネントを表す。ファームウェアコンポーネントは、ハードウェアコンポーネント自体の不揮発性メモリに、あるいはシステムコンポーネントの不揮発性メモリに通常記憶される。ファームウェアコンポーネントの一例が、コンピュータシステムを起動するために使用される基本入出力システム（ＢＩＯＳ）である。
【０００３】
コンピュータシステムのファームウェアコンポーネントをアップデートする方法は、広く知られている。コンピュータシステムとそこにインストールされるハードウェアコンポーネントとについての絶えず増大する複雑性は、ファームウェアコンポーネントがアップデートされる必要性が大きいことを意味する。ファームウェアコンポーネントのアップデートは、例えば、直近に分かったセキュリティの穴を閉じ、あるいはハードウェアコンポーネントの機能性を拡張する。
【０００４】
実際、ハードウェアコンポーネントのあらゆる製造業者は、自身が提供するファームウェアコンポーネントをアップデートする手段を提供している。例として、ハードウェアコンポーネントの製造業者は、プログラマブルフラッシュメモリをアップデートされたファームウェアでアップデートするためのフラッシュプログラムとして知られるものを大抵提供する。
【０００５】
一方の、コンピュータシステムが包含するファームウェアコンポーネントの多様性と、他方の、そのアップデート頻度の増大とは、コンピュータシステムをメンテナンスするため、具体的に、コンピュータシステム上にインストールされたファームウェアコンポーネントを走らせ続けるための経費が絶えず増大することを意味する。このことは、具体的に、通常連続的に動作しており、ゆえにメンテナンス作業に対して限られた可用性しか有さないサーバコンピュータの場合に、妨害的である。さらに、コンピュータシステムの管理者又はユーザによるアップデートパケットの手動インストールは、長時間の関与を生じさせる。さらに、製造業者は、種々のオペレーティングシステム環境におけるファームウェアコンポーネントが更新されることを可能にするために、複数の種々のソフトウェアツールを開発し、メンテナンスする必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
したがって、本発明の目的は、コンピュータシステムのファームウェアコンポーネントのアップデートを簡素化する方法及び装置を説明することである。好ましくは、説明される解決策は、管理者にとっての作業関与とコンピュータシステム自体のシステム負荷との双方を低減し、コンピュータシステムのオペレーティングシステムから大いに独立することが意図される。
【課題を解決するための手段】
【０００７】
本発明の第１の態様に従い、コンピュータシステムのファームウェアコンポーネントをアップデートする方法が説明される。上記方法は、下記の、
‐  少なくとも１つのアップデートパケットをコンピュータシステムのサービスプロセッサによってダウンロードするステップであり、サービスプロセッサは、コンピュータシステムのメインプロセッサ及びメインオペレーティングシステムから独立して動作することができる、ステップと、
‐  サービスプロセッサによってブート可能第１データ記憶媒体を形成するように少なくとも１つのダウンロードされたアップデートパケットからのデータと補助的オペレーティングシステムとを編集するステップと、
‐  編集された第１データ記憶媒体からコンピュータシステムをブートするステップであり、メインプロセッサは補助的オペレーティングシステムを起動する、ステップと、
‐  補助的オペレーティングシステムの制御下で、編集された第１データ記憶媒体の少なくとも１つのアップデートパケットからのデータに基づいてファームウェアコンポーネントをアップデートするステップと、
を備える。
【０００８】
前述の方法に従い、コンピュータシステムを更新するための経費は、互いから独立して動作することができるサービスプロセッサとメインプロセッサとの間で分けられる。具体的に、サービスプロセッサは、しばしば時間のかかる１又は複数のアップデートパケットのダウンロードを達成し、該パケットのデータからブート可能第１データ記憶媒体を編集する。この時間の間、コンピュータシステムのメインオペレーティングシステムは、ダウンロードがメインプロセッサに追加的な負荷をもたらさず、乱れなく走り続けることができる。（１又は複数の）アップデートパケットからのデータと補助的オペレーティングシステムとがブート可能第１データ記憶媒体を形成するように編集された後、コンピュータシステムは、メインプロセッサがブート可能第１データ記憶媒体の補助的オペレーティングシステムを実行して、上記第１データ記憶媒体からブートされる。補助的オペレーティングシステムの制御下で、それから、ファームウェアコンポーネントは、コンピュータシステムにインストールされたメインオペレーティングシステムから独立して、少なくとも１つのアップデートパケットからのデータに基づいてアップデートすることができる。このように、アップデートは、オペレーティングシステムから独立して、必要とされる場合は自動的に、実行することができる。
【０００９】
少なくとも１つの実施形態において、ダウンロードするステップ及び／又は編集するステップは、メインオペレーティングシステムの動作の間に実行される。
【００１０】
少なくとも１つの実施形態において、上記方法は、コンピュータシステムのブートドライブを、ブート可能第１データ記憶媒体に設定することと、編集するステップが終了した後、コンピュータシステムのための第１の再起動を実行することと、コンピュータシステムのブートドライブを、メインオペレーティングシステムを記憶するブート可能第２データ記憶媒体に設定することと、ファームウェアコンポーネントをアップデートするステップが終了したとき、コンピュータシステムのための第２の再起動を実行することと、をさらに備える。前述のステップは、メインオペレーティングシステムの制御下にある正常動作モード（mode  of  operation）と補助的オペレーティングシステムの制御下にあるアップデート動作モードとの間の変更の実行を可能にする。
【００１１】
少なくとも１つの実施形態において、第１の再起動は、サービスプロセッサからメインオペレーティングシステム又はメインプロセッサへのメッセージによって開始される。このことは、具体的に、ファームウェアコンポーネントの自動的な又はリモート制御されたアップデートを可能にする。
【００１２】
例として、ブート可能第１データ記憶媒体を編集するステップは、サービスプロセッサに接続されたメモリに仮想記憶媒体のイメージを作成することと、作成されたイメージを仮想記憶ドライブとしてブート可能第１データ記憶媒体に組み入れることとを備える。言及されるメカニズムは、ダウンロードされたアップデートパケットが特に柔軟に、標準に準拠してコンピュータシステムに組み入れられることを可能にする。
【００１３】
ダウンロード及び編集するステップは、例として、コンピュータシステムのタイプがコンピュータシステムのすべてのとり得るコンポーネントのためのアップデートパケットを取得するための基礎として見なされることを伴ってよい。この場合、アップデートするステップは、アップデートプログラムがコンピュータシステムに存在し、かつ／あるいは最新でないファームウェアコンポーネントだけをアップデートすることを伴う。こうしたアプローチは、コンピュータシステムに実際にインストールされているハードウェアコンポーネントに対しての、サービスプロセッサによる事前チェックを免除することを可能にする。
【００１４】
少なくとも１つの実施形態において、ダウンロードし及び／又はアップデートするステップは、サービスプロセッサのスケジューリングコンポーネントによって開始される。このことは、ファームウェアコンポーネントの規則的なアップデートを可能にする。
【００１５】
少なくとも１つの実施形態において、ダウンロードするステップ、編集するステップ及びアップデートするステップは、各々、複数のアップデートパケットからのデータが処理されることを伴う。複数のアップデートの連帯的な処理は、コンピュータシステムの動作において関連する中断を低減する。
【００１６】
本発明の第２の態様に従い、コンピュータシステムが説明される。このコンピュータシステムは、メインオペレーティングシステムを実行するメインプロセッサと、メインプロセッサ及びメインオペレーティングシステムから独立して動作することができるサービスプロセッサとを備える。サービスプロセッサは、コンピュータシステムのための少なくとも１つのアップデートパケットをロードし、そのデータを補助的オペレーティングシステムと共に編集して、ブート可能第１データ記憶媒体を形成するようにセットアップされる。メインプロセッサは、補助的オペレーティングシステムを用いて、編集された第１データ記憶媒体からコンピュータシステムをブートし、補助的オペレーティングシステムの制御下で、編集された第１データ記憶媒体の少なくとも１つのアップデートパケットからのデータに基づいてファームウェアコンポーネントをアップデートするようにセットアップされる。
【００１７】
第２の態様に従うコンピュータシステムは、第１の態様に従う方法の実行を原則的に可能にする。
【００１８】
少なくとも１つの実施形態において、コンピュータシステムは、メインオペレーティングシステムを記憶する少なくとも１つの第１メモリ装置と、第１メモリ装置から独立して動作することができ、サービスプロセッサに結合され、ブート可能第１データ記憶媒体を記憶する少なくとも１つの第２メモリ装置とを備える。一方の、メインオペレーティングシステムを記憶する別個のメモリ装置と、他方の、ブート可能第１データ記憶媒体との供給は、アップデートパケットがサービスプロセッサによりダウンロードされる間、メインオペレーティングシステムに利用可能なメモリ空間を減じることを回避することを可能にする。
【００１９】
少なくとも１つの実施形態において、サービスプロセッサは、第２メモリ装置に仮想記憶媒体のイメージを記憶し、記憶されたイメージをブート可能第１データ記憶媒体としてコンピュータシステムに組み入れるようにセットアップされる。例として、記憶されたイメージは、読み取り専用動作モードにおいてコンピュータシステムに、具体的に仮想ＣＤ又はＤＶＤドライブのための記憶媒体として組み入れることができる。こうした組み入れは、コンピュータシステムへの大規模データの、単純な、標準に準拠した組み入れを可能にする。具体的に、読み取り専用動作モードが使用されるとき、サービスプロセッサの外部で走るプロセスによって第２メモリ装置に記憶されたデータを改変されることに対する効果的な保護が、さらに確保される。
【００２０】
例として、第２メモリ装置は、不揮発性大容量記憶装置であり、具体的に、コンピュータシステムに永続的に接続されるフラッシュメモリチップ又は互換的なフラッシュメモリカードである。こうした記憶媒体は、大規模データについての高価でない、永続的な記憶を可能にする。
【００２１】
少なくとも１つの実施形態において、サービスプロセッサは、ブート可能第１データ記憶媒体にアクセスする標準インターフェースをエミュレートするようにセットアップされ、したがって、補助的オペレーティングシステムは、製造業者固有ドライバソフトウェア（a  piece  of  manufacturer-specific  driver  software）なしに上記第１データ記憶媒体にアクセスすることができる。このことは、本発明に従う方法を多様な種々のシステムアーキテクチャ上で多様な種々の補助的オペレーティングシステムを用いて使用することができるという利点を有する。
【００２２】
本発明の第３の態様に従い、実行可能プログラムコードを記憶させたメモリ装置が開示される。コンピュータシステムのサービスプロセッサによるプログラムコードの実行は、サービスプロセッサが、コンピュータシステムのメインプロセッサ及びメインオペレーティングシステムから独立して少なくとも１つのアップデートパケットをダウンロードすることと、ブート可能第１データ記憶媒体を形成するように少なくとも１つのダウンロードされたアップデートパケットからのデータと補助的オペレーティングシステムとを編集することとを伴う。
【００２３】
第３の態様に従うメモリ装置の実行可能プログラムコードは、具体的に、第１の態様に従う方法を実行するサービスプロセッサをプログラムするため、あるいは第２の態様に従うコンピュータをセットアップするために使用される。
【００２４】
本発明のさらなる有利な実施形態が、以下に続く例示的な実施形態の説明と別記の特許請求の範囲とに開示される。
【図面の簡単な説明】
【００２５】
本発明は、添付図面を参照して例示的な実施形態を用いて以下に詳細に説明される。
【図１】本発明の一実施形態に従うコンピュータシステムの略図を示す。
【図２】サービスプロセッサのコンポーネントの略図を示す。
【図３】管理されるコンピュータシステムとリポジトリサーバと管理ステーションとにおける相互作用の略図を示す。
【図４】ファームウェアコンポーネントをアップデートする方法のフローチャートを示す。
【発明を実施するための形態】
【００２６】
図１は、本発明の一実施形態に従うコンピュータシステム１を示す。具体的に、図１に示されるコンピュータシステム１は、サーバコンピュータとして知られるものであり、例えば、コンピュータセンターにおいて使用されるなどする。コンピュータシステム１は、複数のコンポーネントをインストールさせたシステムコンポーネント２を備える。例として、システムコンポーネント２は、コンピュータシステム１のマザーボードである。
【００２７】
例示的な実施形態において、システムコンポーネント２は、該コンポーネント上に配置されたメインプロセッサ３とサービスプロセッサ４とを有する。例として、メインプロセッサ３は、Ｉｎｔｅｌ社が提供する強力なマイクロプロセッサ、例えば、Ｉｎｔｅｌ（登録商標）  Ｘｅｏｎ（登録商標）プロセッサである。例として、サービスプロセッサ４は、インテリジェントリモート管理コントローラ（ｉＲＭＣ）として知られるものである。上記のサービスプロセッサは、用語「ベースボード管理コントローラ」（ＢＭＣ）又は用語「システム管理チップ」（ＳＭＣ）によって知られていることもある。サービスプロセッサ４は、とりわけ、コンピュータシステム１の正常動作を監視するため、及び、メインプロセッサ３から独立してリモートメンテナンスタスクを実行するために使用される。例として、コンピュータシステム１は、管理ネットワークを介してサービスプロセッサ４を用いてオン又はオフに切り替えることができる。
【００２８】
メインプロセッサ３及びサービスプロセッサ４は、１又は複数のバスシステム又は結合要素を介して、コンピュータシステム１のさらなるコンポーネントに接続される。例示的な実施形態において、チップセット５が、メインプロセッサ３及びサービスプロセッサ４を、基本入出力システムＢＩＯＳ６のためのメモリチップに、入力／出力コントローラ７に、及びネットワークコントローラ８に接続するために使用される。
【００２９】
さらに、例示的な実施形態におけるサービスプロセッサ４は、専用接続９を介してメモリカード１０に接続される。例示的な実施形態において、これは、ＳＤカードアソシエーション（ｈｔｔｐ：／／ｗｗｗ.ｓｄｃａｒｄ.ｏｒｇ）からの工業規格ＳＤＨＣに基づいたマイクロＳＤフラッシュメモリカードとして知られるものである。別法として、システムコンポーネント２に永続的に接続されるフラッシュメモリなどの、ｅＭＭＣカード又は別の不揮発性記憶媒体として知られるものを使用することも可能である。メモリカード１０は、サービスプロセッサ４から、例えば合計１６ＧＢに達する大規模データの不揮発性記憶のために使用される。
【００３０】
コンピュータシステム１のネットワークコントローラ８は、データネットワーク１１、例えば、ローカルのイーサネット（登録商標）の会社のネットワークに接続される。さらに、サービスプロセッサ４は、さらなる付加的なネットワークコントローラ１２を介した別個の管理ネットワーク１３か、あるいはチップセット５及びネットワークコントローラ８を介した同一のデータネットワーク１１かのいずれかに接続される。管理ネットワーク１３は、データネットワーク１１と同一の物理ネットワークに基づいた仮想ネットワークであってもよい。
【００３１】
コンピュータシステム１は、入力／出力コントローラ７に接続された大容量記憶ドライブ１４をさらに備える。例示的な実施形態において、大容量記憶ドライブ１４は、具体的に、コンピュータシステム１のためのオペレーティングシステム１５を記憶する。例として、オペレーティングシステム１５は、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）サーバ２０１２オペレーティングシステムであり、該オペレーティングシステムは、コンピュータシステム１のための実質的なアプリケーションを走らせる。したがって、オペレーティングシステム１５は、以降、ホスト又はメインオペレーティングシステムとも呼ばれる。
【００３２】
最後、コンピュータシステム１は、メインメモリ１６を備え、プログラムコードと関連データとが、メインプロセッサ３による実行のためにメインメモリ１６にロードされる。コンピュータシステム１のさらなるコンポーネント、例えば、パワーサプライなどは、明りょうさの理由で図１に示されていない。
【００３３】
本発明の理解への助けとして、サービスプロセッサ４のハードウェア及びソフトウェアアーキテクチャの必須コンポーネントが、図２を参照して以下に説明される。
【００３４】
サービスプロセッサ４は、種々のフェーズの間、例えば、コンピュータシステム１が最初セットアップされ、アップデートされるときに、コンピュータシステム１をメンテナンスするために使用される。サービスプロセッサ４のファームウェアの中央コンポーネントは、アプリケーションフレームワークライブラリ２０として知られるものである。アプリケーションフレームワークライブラリ２０は、サービスオペレーティングシステム  ‐図２には示されていない‐  を使用して、サービスプロセッサ４上で走るソフトウェアコンポーネントに様々なランタイムサービスを提供する。例示的な実施形態において、サービスプロセッサ４は、フリーのオペレーティングシステムのＬｉｎｕｘ（登録商標）のディストリビューション  ‐組み込みシステム向けにカスタマイズされたもの‐  を走らせ、上記は、メインプロセッサ３のメインオペレーティングシステム１５から独立して走る。アプリケーションフレームワークライブラリ２０は、サービスプロセッサ４の種々のリソースに対する中央アクセスのための個々のソフトウェアモジュールによって使用することができる。この目的のために、複数のライブラリ２１乃至２４が利用可能である。とりわけ、アプリケーションフレームワークライブラリ２０は、システム管理のためにＸＭＬライブラリ２１、データベースライブラリ２２、仮想記憶媒体ライブラリ２３及びＩＰＭＩライブラリ２４に対するアクセスを可能にする。ＩＰＭＩライブラリ２４は、例えば、ＢＩＯＳ６の設定を読み出し、あるいは改変するために使用することができる。
【００３５】
アプリケーションフレームワークライブラリ２０は、ネットワークインターフェース２５を介した管理ネットワーク１３へのアクセスをさらに可能にする。ネットワークインターフェース２５を介したアクセスは、例えば、既知のｈｔｔｐ又はｆｔｐプロトコルを用いて行うことができる。ネットワークインターフェース２５は、例えば、後に説明されるとおり、アップデートサーバから大規模データをダウンロードするために使用される。さらに、アプリケーションフレームワークライブラリ２０は、ＰＣＩｅインターフェース２７を介して、サービスプロセッサ４とメインプロセッサ３との間の、あるいはこれらの上で走るソフトウェアコンポーネント間の通信インターフェース２６を提供する。例として、通信インターフェース２６は、サーバビュー共通コマンドインターフェース（ServerView  Common  Command  Interface）（ＳＣＣＩ）として知られるものであってよく、上記インターフェースを介して、プラットフォーム管理のための製造業者固有コマンドがやりとりされる。物理的なＰＣＩｅインターフェース２７は、具体的に、サービスプロセッサ４及びこれに接続されたメモリカード１０並びにメインプロセッサ３上で走るプログラムの間で大規模データをやりとりすることに使用することができる。さらに、サービスプロセッサ４はＢＩＯＳ６のために、ＵＳＢ接続によって接続され、かつ、とりわけメモリカード１０からコンピュータシステム１を起動することに使用することができるブート装置をエミュレートする。通信インターフェース２６とＵＳＢ接続との双方が、論理的な「メモリマップドＩＯ」インターフェースとして実施される。物理的に、これらに必要とされるデータは、上記の場合、ＰＣＩｅインターフェース２７を介してやりとりされる。
【００３６】
図２に示される例示的な実施形態において、サービスプロセッサ４の種々のソフトウェアコンポーネントが、アプリケーションフレームワークライブラリ２０にアクセスする。第１のコンポーネント２９は、具体的に、システム監視を実行するために使用される。第１のコンポーネント２９は、とりわけ、ＲＡＩＤマネージャ３０を備え、ＲＡＩＤマネージャ３０は、記憶媒体を管理し、監視する。アップデートサービス４４の形態の第２のコンポーネントは、アップデートパケット（アップデート）を提供し、編集する（compiling）ことの責任を負う。アップデートサービス４４は、図３及び図４を参照して後から詳細に説明される。
【００３７】
サービスプロセッサ４のコンポーネント２９、３０及び４４とさらなる他のソフトウェアコンポーネントとは、アプリケーションフレームワークライブラリ２０を介して、メモリカード１０のファイルシステム３３にアクセスすることができる。メモリカード１０は、例示的な実施形態において、種々のデータボリューム３４、３５及び３６を記憶する。この文脈において、データボリュームは、論理的に整合のとれた（coherent）様態において記憶されるデータ又はファイルを意味すると理解される。例として、データボリュームは、メモリカード１０のデータ記憶媒体ボリューム、仮想データ記憶媒体のイメージを有するファイル、又は関連ファイルを有するアーカイブである。データボリューム３４及び３５は、アップデートカタログを有する第１の仮想データ記憶媒体の、あるいはアップデートパケットを記憶させた第２の仮想データ記憶媒体のイメージである。データボリューム３６は、ブート可能ＣＤ又はＤＶＤのイメージなどの、種々のブート可能仮想データ記憶媒体のイメージである。さらに、メモリカード１０は、コンピュータシステム１からのインベントリリスト３７、又はインベントリ情報を有するデータベースをさらに記憶する。インベントリリスト３７は、コンピュータシステム１にインストールされた各コンポーネントに属する情報と、追加的に、上記コンポーネントのうちのインストールされたソフトウェア又はファームウェアに属する情報とを包含する。
【００３８】
ソフトウェアコンポーネント２９及び４４は、ウェブベースのグラフィカルユーザインターフェース３８を用いてシステム管理者によって管理される。この目的のために、システム管理者は、例えば、管理ネットワーク１３を介してユーザインターフェース３８にアクセスすることができる。
【００３９】
図３及び図４を参照して、下記文は、コンピュータシステム１のファームウェアコンポーネントをアップデートする方法を説明する。このケースにおいて、図３は、コンピュータシステム１とアップデートサーバ４１と管理ステーション４３とにおける相互作用を示す。図４は、上記方法のステップを示す。
【００４０】
コンピュータシステム１、アップデートサーバ４１及び管理ステーション４３は、示される例示的な実施形態において、管理ネットワーク１３を介して互いに接続される。通常、サーバコンピュータ１、管理ステーション４３及び管理ネットワーク１３は、コンピュータセンター又は個々の会社の領域に置かれる。例示的な実施形態において、アップデートサーバ４１は、会社のネットワークの外部に置かれ、ファイアウォール４２として知られるものによって会社のネットワークから切り離される。例として、アップデートサーバ４１は、コンピュータシステム１の製造業者に置かれる。アップデートサーバ４１は、インターネットを介してアップデートパケット４０を提供するよう製造業者により使用される。
【００４１】
管理ステーション４３は、会社のネットワークの管理者によるサービスプロセッサ４のグラフィカルユーザインターフェース３８へのアクセスのために原則的に使用される。管理ステーション４３は、サーバコンピュータ１のためのアップデートを手動で開始することに使用することができる。別法として、管理ステーション４３を、サービスプロセッサ４のスケジューリングコンポーネントのための規則的なスケジュールを構成することに使用することも可能であり、したがって、コンピュータシステム１は、ファームウェアコンポーネントのためのアップデートを規則的に所定時間に実行する。さらに、管理ステーション４３は、この目的のために使用する必要があるアップデートサーバ４１のアドレスを設定することに使用することもできる。例として、図３に示されるアップデートサーバ４１のほかに、ローカルの管理ネットワーク１３に配置されたアップデートサーバのためのＵＲＬを指定することも可能である。グラフィカルユーザインターフェース３８を用いた手動のオペレータ制御に代わって、ネットワークコンポーネント２５を介して、サービスプロセッサ４により提供されるウェブサービスに、適切な設定を有する構成スクリプトを送信することも可能である。
【００４２】
下記文は、コンピュータシステム１のオペレーティングシステム１５から独立して動作するコンピュータシステム１のファームウェアコンポーネントをアップデートする方法を説明する。メインオペレーティングシステム１５に対する依存のないことにより、上記方法は、「オフラインアップデート」と呼ばれる。
【００４３】
コンピュータシステム１のメインオペレーティングシステム１５に対する依存のないことを達成し、追加的に、上記方法の効率的な実行を確保するために、アップデートサービス４４は、ファームウェアコンポーネントをアップデートするために必要とされるすべての情報を包含するブート可能データ記憶媒体４５を編集する。例示的な実施形態において、この目的のために必要とされるプログラム及びデータは、サービスプロセッサ４の制御下で、アップデートパケット４０の形態において、アップデートサービス４４によってアップデートサーバ４１から読み出される。例示的な実施形態において、アップデートパケット４０は、各々、自己解凍アーカイブからの実行可能プログラムコードであり、上記アーカイブの内容は、アップデートサービス４４によってメモリカード１０に解凍される。上記データに基づいて、バイナリファイルが、説明される例示的な実施形態において仮想ＣＤ−ＲＯＭ又はＤＶＤ−ＲＯＭのデータフォーマットにおいて作成される。これは、データボリューム３６のうちの１つなどの、ブート可能データ記憶媒体の  ‐メモリカード１０に記憶される‐  イメージである。具体的に、上記イメージは、ＣＤ又はＤＶＤのＩＳＯ９６６０準拠イメージであってよい。
【００４４】
ブート可能データ記憶媒体４５は、とりわけ、コンピュータシステム１のメインプロセッサ３のための補助的オペレーティングシステム４６のための実行可能プログラムコードを備える。補助的オペレーティングシステム４６は、第１のアップデートパケット４０ａを介してアップデートサーバ４１により提供され、コンピュータシステム１のファームウェアコンポーネントをアップデートすることに主に使用される。例示的な実施形態において、補助的オペレーティングシステム４６は、ＬｉｎｕｘディストリビューションＣｅｎｔＯＳ（ｈｔｔｐ：／／ｗｗｗ.ｃｅｎｔｏｓ.ｏｒｇ）のカスタマイズされたバージョンである。
【００４５】
ブート可能データ記憶媒体４５は、補助的オペレーティングシステム４６の制御下で実行することができるアップデートプログラム４７を実行するプログラムコード、アップデートマネージャエクスプレスとして知られるものをさらに備える。例示的な実施形態において、上記プログラムコードは、第２のアップデートパケット４０ｂを介して、実行可能Ｊａｖａ（登録商標）アーカイブ４８の形式において提供される。アップデートプログラム４７が、アップデートサーバ４１を介して同様に提供される補助的オペレーティングシステム４６下でだけ実行可能であるべきであるため、コンピュータシステム１の製造業者は、種々のホストオペレーティングシステムのためのアップデートプログラム４７の種々のバージョンについての複雑な開発及びメンテナンスから解放される。アップデートプログラム４７自体は、アップデートされたアップデートパケット４０ｂをダウンロードすることにより、サービスプロセッサ４のアップデートサービス４４によって、関連するバージョン情報に基づいてアップデートすることができる。
【００４６】
種々の実施形態において、アップデートすべきであるファームウェアコンポーネントの選択は、サービスプロセッサ４のアップデートサービス４４によってか、あるいは補助的オペレーティングシステム４６の制御下で実行されるアップデートプログラム４７によってかのいずれかで、行われる。上記選択が、例えばインベントリリスト３７に基づいて、アップデートサービス４４によってすでに行われている場合、サーバコンピュータ１をアップデートすることに実際に必要とされるファームウェアアップデートだけをアップデートパケット４０ｄの形式でダウンロードすることが必要である。識別が、アップデートプログラム４７により最初行われる場合、始めに、コンピュータシステム１に関連する可能性のあるアップデートパケット４０ｄのすべてがアップデートサーバ４１からダウンロードされ、データ記憶媒体４５に記憶される。実際に使用する必要があるアップデートは、補助的オペレーティングシステム４６が走っている間、アップデートプログラム４７の実行の間に、後からのみ選択される。
【００４７】
説明される例示的な実施形態において、アップデートプログラム４７のランタイムになってから、すなわち、ブート可能データ記憶媒体４５が編集された後、既に存在するファームウェアコンポーネントと利用可能アップデートとの間で一貫性チェックが実行される。したがって、サービスプロセッサ４のアップデートサービス４４は、第３のアップデートパケット４０ｃを介して提供される、利用可能アップデートパケット４０ｄのリスト４９をまず第一にロードする。例示的な実施形態において、リスト４９は、所与のコンピュータモデルに必要とされる可能性があるすべてのファームウェアアップデートに属する情報を包含する。リスト４９は、同様にして、メモリカード１０に記憶される。
【００４８】
動作の間、アップデートプログラム４７は、インストールすべきであるアップデートからのデータ５０に対してローカルアクセスを必要とする。したがって、アップデートサービス４４は、リスト４９に従って新しい又は更新されたアップデートパケット４０ｄのすべてをまず第一にダウンロードし、これらをメモリカード１０に記憶する。例示的な実施形態において、ダウンロードされたアップデートパケット４０ｄは解凍され、その中に包含されたデータ５０がブート可能データ記憶媒体に記憶される。
【００４９】
場合により、ブート可能データ記憶媒体は、アップデートの実行の間に評価され又は発生するさらなる情報を包含してもよい。例として、ブート可能データ記憶媒体４５は、アップデートすべきであるコンポーネントに属する情報を有する構成ファイル５１と、さらに、現在のアップデートステータスに属するステータス情報５２とを包含することができる。
【００５０】
説明される例示的な実施形態において、ファームウェアコンポーネントをアップデートすることに必要とされるプログラム及びデータ、具体的に、補助的オペレーティングシステム４６、アップデートプログラム４７、利用可能アップデートパケットのリスト４９、及び新しい又は更新されたファームウェアコンポーネント又はファームウェアパッチからのデータ５０は、アップデートサーバ４１のディレクトリ階層の所定分岐から、アップデートパケット４０の形式においてダウンロードされる。詳細に、補助的オペレーティングシステム４６を有する第１のアップデートパケット４０ａとアップデートプログラム４７を有する第２のアップデートパケット４０ｂとは、アップデートサーバ４１のディレクトリツリーの中、例えば“ｔｏｏｌｓ”ディレクトリの中の所定場所に利用可能に保持される。例として、さらなるアップデートパケットが、コンピュータシステム１に固有であるアップデートサーバ４１のディレクトリに置かれる。他の実施形態において、補助的オペレーティングシステム４６又はアップデートプログラム４７などの個々のコンポーネントは、すでにサービスプロセッサ４のメモリに、例えばメモリカード１０に記憶されていてもよく、必要とされるときに限りアップデートすることができる。さらに、様々なデータ、プログラム及び／又はアップデートパケット４０が、種々のソースから、例えば種々の製造業者のアップデートサーバから読み出されることも可能である。
【００５１】
ブート可能データ記憶媒体４５を、ＢＩＯＳ６と、後者により起動されるオペレーティングシステム１５又は４６とに利用可能にするために、サービスプロセッサ４は、コンピュータシステム１に接続される仮想ＤＶＤドライブを、同様にしてエミュレートされるＵＳＢインターフェース５３を介してエミュレートする。仮想ＤＶＤドライブを用いて、アップデートプログラム４７は、中にブート可能データ記憶媒体４５を挿入させ、かつＵＳＢインターフェースを介して接続された物理ＤＶＤドライブにアクセスすることができるように、ブート可能データ記憶媒体４５に記憶されたデータにアクセスすることができる。したがって、メインプロセッサ４と、該プロセッサ上で走るオペレーティングシステム、具体的に、メインオペレーティングシステム１５又は補助的オペレーティングシステム４６などは、独自ドライバのインストールを必要としない。
【００５２】
図４は、コンピュータシステム１のＢＩＯＳ６又はネットワークコントローラ８若しくは１２のファームウェアなどのファームウェアコンポーネントのオフラインアップデートのための例示的方法のステップを示す。
【００５３】
最初のステップＳ１において、サービスプロセッサ４は、補助的オペレーティングシステム４６とアップデートプログラム４７とアップデートすべきであるファームウェアコンポーネントからのデータ５０とを有するブート可能データ記憶媒体４５を編集する。この目的のために必要とされるプログラム及びデータは、管理ネットワーク１３を介してアップデートパケット４０の形式においてロードされ、メモリカード１０に記憶される。サービスプロセッサ４の使用は、メインプロセッサ３と該プロセッサ３上で走るメインオペレーティングシステム１５とに悪影響を与えることを回避する。管理ネットワーク１３の使用は、データネットワーク１１に悪影響を与えることを回避する。記憶先としてのメモリカード１０の使用は、大容量記憶ドライブ１４に悪影響を与えることをさらに回避する。
【００５４】
特定の実施形態において、データ記憶媒体４５は、５又は６のサブステップにおいて作成される。第１のサブステップＳ１．１において、アップデートパケット４０ｃがダウンロードされる。第２のサブステップＳ１．２において、アップデートパケット４０ｃが包含する利用可能アップデートのリスト４９が、メモリカード１０に解凍される。第３のサブステップＳ１．３において、リスト４９は、現在必要とされるアップデートパケットをダウンロードのために選択するために、該リスト４９が包含する情報をバージョン情報と対照してチェックされる。第４のサブステップＳ１．４において、選択されたアップデートパケット４０ａ、４０ｂ及び４０ｄがダウンロードされ、メモリカード１０に記憶される。第５のサブステップＳ１．５において、ダウンロードされたアップデートパケット４０ａ、４０ｂ及び４０ｄが解凍され、これらパケットが補助的オペレーティングシステム４６のため、アップデートプログラム４７のため及びデータ５０のために包含するプログラムコードが、メモリカード１０の対応一時ディレクトリ構造に記憶される。付加的な第６のサブステップＳ１．６において、サービスプロセッサ４は、アップデートプログラム４７のための大域的設定及び／又は個々のアップデートのための固有の設定、例えば、多段階アップデートにおいて個々のアップデートステップ間に必要とされる再起動などを有する構成ファイル５１を作成する。
【００５５】
説明される実施形態において、ダウンロードは、サービスプロセッサ４とアップデートサーバ４１との間の  ‐ＳＳＬによって暗号化された‐  接続を介してもたらされる。追加的に、あるいは別法として、他のセキュリティ方法、例えば、証明書の使用、非対称暗号方法などが使用されることも可能であることは言うまでもない。セキュリティ適合性のないシステムの場合、全体としてセキュリティを免除することも可能である。
【００５６】
第２のステップＳ２において、ブート可能データ記憶媒体４５が、仮想ＤＶＤドライブに挿入されるデータ記憶媒体として提供される。この目的のために、第１のサブステップＳ２．１において、一時ディレクトリ構造からのデータは、ブート可能データ記憶媒体４５のイメージデータを作成するための基礎と見なされる。第２のサブステップＳ２．２において、作成されたイメージファイルは、サービスプロセッサ４のファイルシステム３３に組み入れられ、ライブラリ２３を介して仮想ＤＶＤドライブの媒体として提供される。
【００５７】
その後、ステップＳ３において、サービスプロセッサ４は、コンピュータシステム１のための再起動を開始する。この目的のために、第１のサブステップＳ３．１において、ＢＩＯＳ６は、再起動の後にブート可能データ記憶媒体４５からブートするように構成される。第２のサブステップＳ３．２において、サービスプロセッサ４からメインオペレーティングシステム１５へのＡＣＰＩ要求が、例えば、メインオペレーティングシステム１５の制御下でコンピュータシステム１の再起動を開始するために使用される。再起動は、必要であれば、再起動に好適である時間まで、メインオペレーティングシステム１５によって延期することができる。このように、コンピュータシステム１により提供されるサービスの動作についての、制御されていない中断を回避することが可能である。後のサブステップＳ３．３において、メインプロセッサ３は、ゆえに、ブート可能データ記憶媒体４５から補助的オペレーティングシステム４６をロードし、その制御下でコンピュータシステム１をブートする。
【００５８】
ステップＳ４において、補助的オペレーティングシステム４６は、その起動に続いて即座にファームウェアコンポーネントをアップデートするためのアップデートプログラムを呼び出すように構成される。説明される実施形態において、アップデートプログラム４７は、実行すべきであるアップデートをまず第一に選択する。例示的な実施形態において、アップデートプログラム４７は、第１のサブステップＳ４．１において、コンピュータシステム１に存在するアップデート可能ファームウェアコンポーネントと関連するバージョン情報とのリストを作成することによって、上記を行う。第２のサブステップＳ４．２において、このようにして存在するファームウェアコンポーネントから捉えられたバージョン情報が、利用可能アップデートのリスト４９からのバージョン情報と比較される。コンピュータシステムに実際に存在し、かつ、より最新のバージョンのファームウェアコンポーネントが利用可能であるファームウェアコンポーネントだけが、後のアップデートのために選択される。
【００５９】
場合により、サブステップＳ４．２において、ファームウェアコンポーネントと関連するオペレーティングシステム固有ドライバとの連帯的アップデートを必要とするアップデートは、上記選択から除外することができる。メインオペレーティングシステム１５に対する依存性の理由で、こうしたコンポーネントは、好ましくは、前述の「オフラインアップデート」を用いて実行されるべきである。別法として、インベントリリスト３７から、メインオペレーティングシステム１５により現在使用されている対応コンポーネントのドライババージョンに関する情報を読み出すことも可能である。インストールすべきであるファームウェアコンポーネントと互換性のあるドライバがすでにインストールされている場合、その対応アップデートは、リスクなしにアップデートプログラム４７によって実行することができる。
【００６０】
サブステップＳ４．２において選択されたコンポーネントは、後のステップＳ４．３ａ乃至Ｓ４．３ｎにおいて、アップデートプログラム４７によってアップデートされる。この場合、具体的に、コンピュータシステム１の個々のハードウェアコンポーネントのためのファームウェアを記憶する、フラッシュメモリとして知られるものが、アップデートプログラム４７によってアップデートされる。例として、アップデートは、アップデートパケット４０ｄからのデータ５０に基づいて、事前に記憶されたファームウェアコンポーネントを新しいファームウェアコンポーネントで上書きすることによって、あるいはすでに記憶されているファームウェアコンポーネントに適切なファームウェアパッチを用いてパッチをあてることによってもたらされる。
【００６１】
具体的に、存在するファームウェアコンポーネントにパッチをあてるとき、多段階アップデートを実行することが必要なことがある。この場合、１つのアップデートパケット４０ｄが、アップデートステップごとにサービスプロセッサ４によってダウンロードされ、上記アップデートパケットの中のデータ５０がアップデートプログラム４７によって処理される。コンピュータシステム１が個々のサブステップ間に再起動される必要がある場合、アップデートプログラム４７は、以下に説明されるとおり再起動を要求する。
【００６２】
サブステップＳ４．３ａ乃至Ｓ４．３ｎのアップデートすべてが終了すると、アップデートプログラム４７は、サブステップＳ４．４において、データベース５２をアップデートする。別法として、サブステップＳ４．４は、個々のファームウェアコンポーネントのためのアップデートの直後、かつ／あるいは個々のアップデートステップＳ４．３の後、もたらすことができる。
【００６３】
その後、コンピュータシステム１は、ステップＳ５において、再び再起動される。すべてのアップデートが実行されると、アップデートプログラム４７又はサービスプロセッサ４は、サブステップＳ５．１において、後の再起動がメインオペレーティングシステム１５を記憶した大容量記憶ドライブ１４よってもたらされるようにＢＩＯＳ６を再構成する。さらなるサブステップＳ５．２において、アップデートプログラム４７は、コンピュータシステム１のためのコールド又はウォームスタートを開始するために、例示的な実施形態において、製造業者固有ＳＣＣＩコマンドをサービスプロセッサ４に通信インターフェース２６を介して送信する。したがって、コンピュータシステム１は、サブステップＳ５．３において、メインオペレーティングシステム１５をブートし、こうして、実質的なアプリケーション、具体的に、サーバコンピュータによって提供されるサーバサービスを実行することに再び利用可能になる。
【符号の説明】
【００６４】
１  コンピュータシステム
２  システムコンポーネント
３  メインプロセッサ
４  サービスプロセッサ
５  チップセット
６  基本入出力システム（ＢＩＯＳ）
７  入力／出力コントローラ
８  （第１の）ネットワークコントローラ
９  接続
１０  メモリカード
１１  データネットワーク
１２  （第２の）ネットワークコントローラ
１３  管理ネットワーク
１４  大容量記憶ドライブ
１５  （メイン）オペレーティングシステム
１６  メインメモリ
２０  アプリケーションフレームワークライブラリ
２１  ＸＭＬライブラリ
２２  データベースライブラリ
２３  仮想記憶媒体ライブラリ
２４  ＩＰＭＩライブラリ
２５  ネットワークインターフェース
２６  通信インターフェース
２７  ＰＣＩｅインターフェース
２９  システム監視コンポーネント
３０  ＲＡＩＤマネージャ
３３  ファイルシステム
３４  データボリューム（第１データ記憶媒体のイメージ）
３５  データボリューム（第２データ記憶媒体のイメージ）
３６  データボリューム（ブート可能データ記憶媒体のイメージ）
３７  インベントリリスト
３８  グラフィカルユーザインターフェース
４０  アップデートパケット
４１  アップデートサーバ
４２  ファイアウォール
４３  管理ステーション
４４  アップデートサービス
４５  ブート可能データ記憶媒体
４６  補助的オペレーティングシステム
４７  アップデートプログラム
４８  Ｊａｖａアーカイブ
４９  利用可能アップデートのリスト
５０  データ（ファームウェアコンポーネントをアップデートするための）
５１  構成ファイル
５２  ステータス情報
５３  ＵＳＢインターフェース
【図１】
2016207184.tif 000003
【図２】
2016207184.tif 000004
【図３】
2016207184.tif 000005
【図４】
2016207184.tif 000006
【外国語明細書】
2016207184000001.pdf