(57)【要約】      （修正有）【課題】データベースを管理するファームウェアのダウングレードを適切に行う。【解決手段】情報処理装置は、第１版のデータ格納部と、第１版のデータ格納部を管理する第１版のファームウェアを、前の版である第２版のファームウェアに戻す第１処理部と、第１版のデータ格納部に格納されているデータのうち、第２版のファームウェアを第１版のファームウェアに更新すると追加される機能についてのデータを削除することにより、第１版のデータ格納部の内容を、第２版のファームウェアが管理していた第２版のデータ格納部の内容に戻す第２処理部とを有する。【選択図】図７
2015176364.tif 000002
【特許請求の範囲】
【請求項１】
第１版のデータ格納部と、
前記第１版のデータ格納部を管理する第１版のファームウェアを、前記第１版の前の版である第２版のファームウェアに戻す第１処理部と、
前記第１版のデータ格納部に格納されているデータのうち、前記第２版のファームウェアを前記第１版のファームウェアに更新すると追加される機能についてのデータを削除することにより、前記第１版のデータ格納部の内容を、前記第２版のファームウェアが管理していたデータ格納部である第２版のデータ格納部の内容に戻す第２処理部と、
を有する情報処理装置。
【請求項２】
前記第１版のデータ格納部に格納されているデータと、前記第２版のデータ格納部に格納されているデータとの差異を示すデータを格納する更新データ格納部
をさらに有し、
前記第２処理部は、
前記更新データ格納部に格納されているデータに基づいて、前記第１版のデータ格納部の内容を前記第２版のデータ格納部の内容に戻す
請求項１記載の情報処理装置。
【請求項３】
データ格納部の内容を変換するためのプログラムを含む変換機構
をさらに有し、
前記第２処理部は、
前記変換機構に含まれるプログラムのうち、前記第２版のファームウェアを前記第１版のファームウェアに更新すると追加される機能についてのデータを削除するためのプログラムである第１のプログラムを呼び出すことにより削除を行う
請求項１記載の情報処理装置。
【請求項４】
前記第１のプログラムは、
前記追加された機能についてのデータの削除によって生じた空き領域に、前記第１版のデータ格納部に格納されている他のデータを移動する処理をさらに実行させるためのプログラムである
請求項３記載の情報処理装置。
【請求項５】
前記第１処理部は、
前記第１版のファームウェアを、前記第２版の前の版である第３版のファームウェアに戻し、
前記第２処理部は、
前記変換機構に含まれる前記第１のプログラムと、前記第２版のデータ格納部に格納されているデータのうち、前記第３版のファームウェアを前記第２版のファームウェアに更新すると追加される機能についてのデータを削除するためのプログラムである第２のプログラムとを呼び出すことにより、前記第１版のデータ格納部の内容を、前記第３版のファームウェアが管理していたデータ格納部である第３版のデータ格納部の内容に戻す
請求項３又は４記載の情報処理装置。
【請求項６】
第１版のデータ格納部を管理する第１版のファームウェアを、前記第１版の前の版である第２版のファームウェアに戻し、
前記第１版のデータ格納部に格納されているデータのうち、前記第２版のファームウェアを前記第１版のファームウェアに更新すると追加される機能についてのデータを削除することにより、前記第１版のデータ格納部を、前記第２版のファームウェアが管理していたデータ格納部である第２版のデータ格納部に戻す、
処理をコンピュータが実行するバージョン変更方法。
【請求項７】
第１版のデータ格納部を管理する第１版のファームウェアを、前記第１版の前の版である第２版のファームウェアに戻し、
前記第１版のデータ格納部に格納されているデータのうち、前記第２版のファームウェアを前記第１版のファームウェアに更新すると追加される機能についてのデータを削除することにより、前記第１版のデータ格納部を、前記第２版のファームウェアが管理していたデータ格納部である第２版のデータ格納部に戻す、
処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファームウェアのバージョン変更技術に関する。
【背景技術】
【０００２】
データセンタ等に設けられた情報処理システムには、電源の制御、情報処理システム内のハードウェアで発生する異常の監視、及び発生した異常の通報等を行うファームウェアが搭載される。ファームウェアは、そのファームウェアが有する機能についての設定情報（例えばパラメータ等）及び情報処理システムのステータス情報（例えばハードウェアの状態に関する情報等）をデータベースにおいて管理する。
【０００３】
ファームウェアのバージョンが変更される場合には、ファームウェアだけでなく、ファームウェアが管理するデータベースの内容も変更される。従来技術においては、ファームウェアのバージョンを変更する場合に、ファームウェアが使用するデータのデータ型を変更することで、バージョンの変更後に不具合が発生することを防止する。特に、ダウングレードを行う際には、データ型の変換に関する変換ルールを使用することで、ファームウェアのアップグレードによって変更されたデータ型を、アップグレード前のデータ型に戻している。
【０００４】
しかし、ファームウェアのアップグレードの際には、ファームウェアが使用するデータのデータ型が変更されるだけではなく、ファームウェアの機能が追加され、それに伴いデータが追加されること等がある。このような点を考慮しつつファームウェアのダウングレードを行う技術は存在しない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２８７０５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、本発明の目的は、１つの側面では、データベースを管理するファームウェアのダウングレードを適切に行うための技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、第１版のデータ格納部と、第１版のデータ格納部を管理する第１版のファームウェアを、第１版の前の版である第２版のファームウェアに戻す第１処理部と、第１版のデータ格納部に格納されているデータのうち、第２版のファームウェアを第１版のファームウェアに更新すると追加される機能についてのデータを削除することにより、第１版のデータ格納部の内容を、第２版のファームウェアが管理していたデータ格納部である第２版のデータ格納部の内容に戻す第２処理部とを有する。
【発明の効果】
【０００８】
１つの側面では、データベースを管理するファームウェアのダウングレードを適切に行えるようになる。
【図面の簡単な説明】
【０００９】
【図１Ａ】図１は、本実施の形態における筐体の構成を示す図である。
【図１Ｂ】図１は、サービスプロセッサの構成を示す図である。
【図２】図２は、ファームウェアの機能ブロック図である。
【図３】図３は、ユーザインタフェースの機能ブロック図である。
【図４】図４は、アップグレードの際に呼び出される変換プログラムの一例を示す図である。
【図５】図５は、ダウングレードの際に呼び出される変換プログラムの一例を示す図である。
【図６】図６は、変換プログラムを実行することによって行われる処理について説明するための図である。
【図７】図７は、データベースのバージョン変更について説明するための図である。
【図８】図８は、メインの処理フローを示す図である。
【図９】図９は、データベース変換処理の処理フローを示す図である。
【図１０】図１０は、本実施の形態におけるバージョン変更の具体例を示す図である。
【図１１】図１１は、本実施の形態の方法を用いない場合におけるダウングレードについて説明するため図である。
【図１２】図１２は、本実施の形態におけるダウングレードについて説明するための図である。
【図１３】図１３は、データベース変換機構のバージョンの管理について説明するための図である。
【図１４】図１４は、運用中にデータベースを同期する処理について説明するための図である。
【図１５】図１５は、バージョン変更の開始時に行われる処理について説明するための図である。
【図１６】図１６は、サブボードの交換時に行われる処理について説明するための図である。
【図１７】図１７は、ファームウェアボードを古いバージョンのファームウェアボードに交換した際に行われる処理について説明するための図である。
【図１８】図１８は、ファームウェアボードを新しいバージョンのファームウェアボードに交換した際に行われる処理について説明するための図である。
【発明を実施するための形態】
【００１０】
図１に、本実施の形態における筐体１００の構成を示す。筐体１００は、複数のシステムボード３と、ファームウェアボード１と、サブボード２とを含む。複数のシステムボード３の各々は、ＣＰＵ（Central Processing Unit）３１と、メモリ３２と、Ｉ／Ｏ（Input/Output）デバイス３３とを含む。複数のシステムボード３は、ＯＳ（Operating System）を実行し、アプリケーションプログラム等をそのＯＳ上で実行する。
【００１１】
ファームウェアボード１は、複数のシステムボード３の電源の制御、及び複数のシステムボード３におけるハードウェアで発生する異常の監視等を行う。ファームウェアボード１は、サービスプロセッサ１１と、記憶装置１２とを含む。記憶装置１２は、例えばＲＡＭ（Random Access Memory）ディスクである。
【００１２】
図１Ｂに、サービスプロセッサ１１の構成を示す。サービスプロセッサ１１は、ＣＰＵ１１１と、メモリ１１２と、Ｉ／Ｏデバイス１１３とを有する。サービスプロセッサ１１は、ＣＰＵ１１１と、メモリ１１２と及びＩ／Ｏデバイス１１３を用いて、ファームウェアの起動の管理及びファームウェアの実行等を行う。
【００１３】
記憶装置１２は、バンク１３の領域と、バンク１５の領域と、データベース１７の領域と、データベース変換機構１８の領域とを含む。バンク１３にはファームウェア１４が展開され、バンク１５にはファームウェア１６が展開される。バンク１３及びバンク１５のうちいずれかが運用系であり、他方は待機系である。待機系のバンクに展開されたファームウェアは、運用系に切り替えられるまで起動されない。運用系及び待機系の切り替えは、サービスプロセッサ１１によって行われる。データベース１７には、ファームウェアが有する機能についての設定情報及びシステムのステータス等が格納される。データベース変換機構１８は、ファームウェアのバージョン変更が行われる場合に、データベース１７のバージョンを変更する。
【００１４】
なお、本実施の形態における「バージョン変更」には、アップグレードとダウングレードとが含まれる。以下では、ファームウェアのバージョンを新しいバージョンに変更することをアップグレードと呼び、ファームウェアのバージョンを古いバージョンに戻すことをダウングレードと呼ぶ。
【００１５】
サブボード２は、ファームウェアボード１又はサブボード２が交換される際にデータが失われないようにするために設けられる。サブボード２は、記憶装置２２を含む。記憶装置２２は、データベース２７の領域と、データベース変換機構２８の領域とを含む。ファームウェア１４及び１６は、データベース２７の内容がデータベース１７の内容と同じになるように、データベース１７に格納されたデータをデータベース２７にコピーする。データベース変換機構２８のバージョンは、データベース変換機構１８のバージョンと同じである。
【００１６】
図２に、ファームウェア１４の機能ブロック図を示す。ファームウェア１４は、起動スクリプト１４１と、デバイスドライバ１４２と、ライブラリ１４３と、機能モジュール１４４と、ユーザインタフェース１４５とを含む。起動スクリプト１４１は、ブートファイル（図示せず）によってファームウェア１４が起動される際に実行されるスクリプトであり、デバイスドライバ１４１、ライブラリ１４３及び機能モジュール１４４等をロードする。また、起動スクリプト１４１は、データベース変換機構１８を呼び出す。デバイスドライバ１４２は、デバイスを制御するためのプログラムである。ライブラリ１４３は、特定の処理を行うためのプログラムの集合である。機能モジュール１４４は、ファームウェア１４の機能を実現するためのモジュールである。ユーザインタフェース１４５は、ファームウェア１４のバージョン変更を管理する。
【００１７】
なお、ファームウェア１６の機能ブロックは、ファームウェア１４の機能ブロックと同様である。
【００１８】
図３に、ユーザインタフェース１４５の機能ブロック図を示す。ユーザインタフェース１４５は、取得部１４５１と、展開部１４５２と、切替部１４５３と、再起動要求部１４５４とを含む。
【００１９】
取得部１４５１は、ファームウェアのバージョン変更を行うためのファームウェアイメージ、及びデータベース変換機構１８のバージョン変更を行うためのイメージを、外部の記憶装置（図示せず）等から取得する。展開部１４５２は、ファームウェアイメージを待機系のバンクに展開し、データベース変換機構のバージョン変更を行うためのイメージを、ファームウェアボード１及びサブボード２に展開する。切替部１４５３は、サービスプロセッサ１１に対し、次回にファームウェアが起動されるバンクを現在の待機バンクにするように設定を行う。再起動要求部１４５４は、サービスプロセッサ１１に対して、ファームウェアを再起動することを要求する。
【００２０】
図４に、データベース変換機構１８に含まれる、アップグレードの際に呼び出される変換プログラムの一例を示す。図４の例においては、アップグレードの際に呼び出される変換プログラムがアップグレードテーブルに格納されている。アップグレードテーブルには、機能Ａについてのデータをバージョン１からバージョン２にアップグレードする際に呼び出される変換プログラムと、機能Ｂについてのデータをバージョン１からバージョン２にアップグレードする際に呼び出される変換プログラムと、機能Ｃについてのデータをバージョン１からバージョン２にアップグレードする際に呼び出される変換プログラムと、機能Ａについてのデータをバージョン２からバージョン３にアップグレードする際に呼び出される変換プログラムとが含まれる。図４に示すように、各機能について、バージョンの番号が昇順になるようにエントリが格納される。
【００２１】
図５に、データベース変換機構１８に含まれる、ダウングレードの際に呼び出される変換プログラムの一例を示す。図５の例においては、ダウングレードの際に呼び出される変換プログラムがダウングレードテーブルに格納されている。ダウングレードテーブルには、機能Ａについてのデータをバージョン３からバージョン２にダウングレードする際に呼び出される変換プログラムと、機能Ｂについてのデータをバージョン３からバージョン２にダウングレードする際に呼び出される変換プログラムと、機能Ｃについてのデータをバージョン３からバージョン２にダウングレードする際に呼び出される変換プログラムと、機能Ａについてのデータをバージョン２からバージョン１にダウングレードする際に呼び出される変換プログラムとが含まれる。図５に示すように、各機能について、バージョンの番号が降順になるようにエントリが格納される。
【００２２】
図６を用いて、変換プログラムを実行することによって行われる処理について説明する。例えば、機能Ａについてのデータをバージョン１からバージョン２にアップグレードする際に「ｐｒｏｇｒａｍ＿ｄａｔａＡ＿ｕｐ２」を呼び出すと、データ「ａ３」及び「ａ４」が追加される。また、機能Ａについてのデータをバージョン２からバージョン１にダウングレードする際に「ｐｒｏｇｒａｍ＿ｄａｔａＡ＿ｄｏｗｎ２」を呼び出すと、データ「ａ３」及び「ａ４」が削除される。また、機能Ｂについてのデータをバージョン１からバージョン２にアップグレードする際に「ｐｒｏｇｒａｍ＿ｄａｔａＢ＿ｕｐ２」を呼び出すと、データ「ｂ１」、「ｂ２」及び「ｂ３」が後方の領域に移動される。また、機能Ｂについてのデータをバージョン２からバージョン１にダウングレードする際に「ｐｒｏｇｒａｍ＿ｄａｔａＢ＿ｄｏｗｎ２」を呼び出すと、データ「ｂ１」、「ｂ２」及び「ｂ３」が前方の領域に移動される。また、機能Ｃについてのデータをバージョン１からバージョン２にアップグレードする際に「ｐｒｏｇｒａｍ＿ｄａｔａＣ＿ｕｐ２」を呼び出すと、データ「ｃ１」及び「ｃ２」が追加される。また、機能Ｃについてのデータをバージョン２からバージョン１にダウングレードする際に「ｐｒｏｇｒａｍ＿ｄａｔａＣ＿ｄｏｗｎ２」を呼び出すと、データ「ｃ１」及び「ｃ２」が削除される。
【００２３】
図７を用いて、データベースのバージョン変更について具体的に説明する。図７の左側には、バージョン１のデータベースが示されており、図７の右側には、バージョン２のデータベースが示されている。バージョン１のデータベースをバージョン２のデータベースにアップグレードする場合には、アップグレードテーブルにおける「ｐｒｏｇｒａｍ＿ｄａｔａＡ＿ｕｐ２」、「ｐｒｏｇｒａｍ＿ｄａｔａＢ＿ｕｐ２」及び「ｐｒｏｇｒａｍ＿ｄａｔａＣ＿ｕｐ２」が呼び出される。これにより、データ「ａ３」及び「ａ４」が追加され、データ「ｂ１」、「ｂ２」及び「ｂ３」が後方の領域に移動され、データ「ｂ１」、「ｂ２」及び「ｂ３」が後方の領域に移動されたことによって空いた領域にはデータ「ｃ１」及び「ｃ２」が追加される。
【００２４】
一方、バージョン２のデータベースをバージョン１のデータベースにダウングレードする場合には、ダウングレードテーブルにおける「ｐｒｏｇｒａｍ＿ｄａｔａＡ＿ｄｏｗｎ２」、「ｐｒｏｇｒａｍ＿ｄａｔａＢ＿ｄｏｗｎ２」及び「ｐｒｏｇｒａｍ＿ｄａｔａＣ＿ｄｏｗｎ２」が呼び出される。これにより、データ「ａ３」及び「ａ４」が削除され、データ「ｃ１」及び「ｃ２」が削除され、データ「ｃ１」及び「ｃ２」が削除されたことによって空いた領域には、データ「ｂ１」、「ｂ２」及び「ｂ３」が格納される。
【００２５】
次に、図８乃至図１８を用いて、筐体１００において行われる処理について説明する。ここでは、運用系のバンクがバンク１３であり、待機系のバンクがバンク１５であるとする。
【００２６】
まず、ユーザインタフェース１４５は、ファームウェアのバージョンを変更する指示を管理者等から受け付ける（図８：ステップＳ１）。これに応じ、取得部１４５１は、外部の記憶装置（図示せず）から、ファームウェアのバージョン変更を行うためのファームウェアイメージ、及びデータベース変換機構１８及び２８のバージョン変更を行うためのイメージを取得し、展開部１４５２に出力する。
【００２７】
展開部１４５２は、現在のデータベース変換機構１８のバージョンが、バージョン変更後のバージョンより新しいか判断する（ステップＳ３）。新しい場合（ステップＳ３：Ｙｅｓルート）、データベース変換機構１８及び２８のバージョンを変更しなくてもよいので、ステップＳ７の処理に移行する。
【００２８】
一方、新しくない場合（ステップＳ３：Ｎｏルート）、展開部１４５２は、データベース変換機構１８のバージョン変更を実行する（ステップＳ５）。具体的には、データベース変換機構１８のバージョン変更を行うためのイメージを、ファームウェアボード１及びサブボード２に展開する。なお、データベース変換機構１８をアップグレードすると、アップグレードテーブル及びダウングレードテーブルに新たにエントリが追加される。例えば、バージョン４からバージョン５にアップグレードする場合には、アップグレードテーブルの末尾に、各機能について、バージョン４のデータをバージョン５のデータにするための変換プログラムを含むエントリが追加される。また、ダウングレードテーブルの先頭に、各機能について、バージョン５のデータをバージョン４のデータにするための変換プログラムを含むエントリが追加される。また、例えば、バージョン４からバージョン６にアップグレードする場合には、アップグレードテーブルの末尾に、各機能について、バージョン４のデータをバージョン５のデータにするための変換プログラムを含むエントリ及びバージョン５のデータをバージョン６のデータにするための変換プログラムを含むエントリが追加される。また、ダウングレードテーブルの先頭に、各機能について、バージョン６のデータをバージョン５のデータにするための変換プログラムを含むエントリ及びバージョン５のデータをバージョン４のデータにするための変換プログラムを含むエントリが追加される。
【００２９】
展開部１４５２は、ファームウェアのバージョン変更を行うためのファームウェアイメージを、待機系のバンクであるバンク１５に展開する（ステップＳ７）。これにより、ファームウェア１６は、バージョン変更後のファームウェアになる。
【００３０】
切替部１４５３は、サービスプロセッサ１１に対し、現在待機系のバンクであるバンク１５が次回に運用系のバンクになるように設定を行う（ステップＳ９）。
【００３１】
再起動要求部１４５４は、サービスプロセッサ１１に対し、ファームウェアの再起動を要求する。これに応じ、サービスプロセッサ１１は、運用系のバンクであるバンク１３におけるファームウェア１４の再起動を開始する（ステップＳ１０）。ここで、サービスプロセッサ１１は、起動するファームウェアを、待機系のバンクであるバンク１５におけるファームウェア１６に切り替える（ステップＳ１１）。これにより、ファームウェア１４は停止する。
【００３２】
バンク１５においては、ブートファイルによってファームウェア１６の起動が開始される。起動が開始されたファームウェア１６の起動スクリプト１４１は、データベース変換処理を実行する（ステップＳ１３）。データベース変換処理については、図９を用いて説明する。
【００３３】
まず、起動スクリプト１４１は、変更前のファームウェア（ここでは、ファームウェア１４）のバージョンと変更後のファームウェア（ここでは、ファームウェア１６のバージョン）とを比較し、バージョン変更がアップグレードに該当するか判定する（ステップＳ２１）。
【００３４】
バージョン変更がアップグレードに該当する場合（ステップＳ２３：Ｙｅｓルート）、起動スクリプト１４１は、アップグレードテーブルの先頭エントリを特定する（ステップＳ２５）。
【００３５】
起動スクリプト１４１は、特定されたエントリにおける変換プログラムが、実行すべき変換プログラムである場合に、その変換プログラムを呼び出す（ステップＳ２７）。これにより、データに対する処理が行われる。例えば、変更前のバージョンが３であり、変更後のバージョンが４である場合には、実行すべき変換プログラムは、バージョン３をバージョン４にアップグレードするための変換プログラムである。また、変更前のバージョンが３であり、変更後のバージョンが５である場合には、実行すべき変換プログラムは、バージョン３をバージョン４にアップグレードするための変換プログラム及びバージョン４をバージョン５にアップグレードするための変換プログラムである。なお、変換プログラムが呼び出された際には、初期化（例えば、変換プログラムの処理によって生じた不要なデータの削除等）のための処理も行われる。
【００３６】
上で述べたように、アップグレードテーブルには、各機能について、バージョンの番号が昇順になるようにエントリが格納されている。よって、先頭エントリから順にエントリを特定していくことで、問題なくアップグレードを行うことができる。
【００３７】
起動スクリプト１４１は、アップグレードテーブルに次のエントリが有るか判断する（ステップＳ２９）。次のエントリが有る場合（ステップＳ２９：Ｙｅｓルート）、起動スクリプト１４１は、次のエントリを特定する（ステップＳ３１）。そしてステップＳ２７の処理に戻る。一方、次のエントリが無い場合（ステップＳ２９：Ｎｏルート）、呼び出し元の処理に戻る。
【００３８】
一方、バージョン変更がダウングレードに該当する場合（ステップＳ２３：Ｎｏルート）、起動スクリプト１４１は、ダウングレードテーブルの先頭エントリを特定する（ステップＳ３３）。
【００３９】
起動スクリプト１４１は、特定されたエントリにおける変換プログラムが、実行すべき変換プログラムである場合に、その変換プログラムを呼び出す（ステップＳ３５）。これにより、データに対する処理が行われる。例えば、変更前のバージョンが４であり、変更後のバージョンが３である場合には、実行すべき変換プログラムは、バージョン４をバージョン３にダウングレードするための変換プログラムである。また、変更前のバージョンが５であり、変更後のバージョンが３である場合には、実行すべき変換プログラムは、バージョン５をバージョン４にダウングレードするための変換プログラム及びバージョン４をバージョン３にダウングレードするための変換プログラムである。なお、変換プログラムが呼び出された際には、初期化（例えば、変換プログラムの処理によって生じた不要なデータの削除等）のための処理も行われる。
【００４０】
上で述べたように、ダウングレードテーブルには、各機能について、バージョンの番号が降順になるようにエントリが格納されている。よって、先頭エントリから順にエントリを特定していくことで、問題なくダウングレードを行うことができる。
【００４１】
起動スクリプト１４１は、ダウングレードテーブルに次のエントリが有るか判断する（ステップＳ３７）。次のエントリが有る場合（ステップＳ３７：Ｙｅｓルート）、起動スクリプト１４１は、次のエントリを特定する（ステップＳ３９）。そしてステップＳ３５の処理に戻る。一方、次のエントリが無い場合（ステップＳ３７：Ｎｏルート）、呼び出し元の処理に戻る。
【００４２】
以上のような処理を実行すれば、ファームウェアのバージョンだけが変更されたことが原因でシステムの状態が不安定になるということが無くなる。また、本来であれば複数回のバージョン変更をすべき場合に、一度にバージョン変更を行えるようになる。例えば図１０に示すように、バージョン１をバージョン３にアップグレードすることを考える。単純にアップグレードする場合には、まずバージョン１をバージョン２にアップグレードし、再起動等を行う。そして、バージョン２をバージョン３にアップグレードし、再び再起動等を行う。しかし、本実施の形態によれば、バージョン１からバージョン３に一度にアップグレードすることができるので、アップグレードに要する時間を短縮することができる。
【００４３】
図８の説明に戻り、筐体１００において、待機系のバンクであるバンク１５においてファームウェア１６の起動が完了する（ステップＳ１５）。なお、ステップＳ１５は処理ではないので、図８におけるステップＳ１５のブロックは点線で示されている。
【００４４】
展開部１４５２は、ファームウェアのバージョン変更を行うためのファームウェアイメージを、待機系のバンクであるバンク１３に展開する（ステップＳ１７）。これにより、ファームウェア１４は、バージョン変更後のファームウェアになる。そして処理を終了する。
【００４５】
例えば図１１に示すように、バージョン１からバージョン２にアップグレードした後、バージョン１にダウングレードすることを考える。本実施の形態の方法を用いない場合には、アップグレードによって追加されたデータ（ここでは、ａ３、ａ４及びｃ１）は削除されない。従って、バージョン変更を繰り返すと、不要なデータがデータベースに蓄積し、データベースのデータ量が増大する。
【００４６】
しかし、本実施の形態によれば、アップグレードによって追加されたデータは、ダウングレードの際に削除される。また、ダウングレードの際にはデータの格納位置が変更される。よって、バージョン変更を繰り返すことによってデータベース１７のデータ量が増大するといった問題等を生じさせることなく、データベース１７を管理するファームウェアのダウングレードを行えるようになる。
【００４７】
また、本実施の形態の方法は、ファームウェアのバックアップ機能を利用してバージョンを元に戻した後に復元をする方法よりも有利である。具体的には、故障でバックアップをすることができない状況に対応が可能であり、また、バックアップした際に動作が不安定になり復元をできない状況になることも無い。
【００４８】
図１２を用いて、本実施の形態におけるダウングレードについて説明する。図１２には、ファームウェアをバージョン２からバージョン１にダウングレードする例が示されている。図１２に示すように、ファームウェア及びデータベースはバージョン２からバージョン１にダウングレードされる。一方、データベース変換機構は、バージョン２からバージョン１にダウングレードせず、バージョン２のままにする。これは、ステップＳ２７及びＳ３５において説明したように、アップグレードテーブル及びダウングレードテーブルから、実行すべき変換プログラムを選択するようにしているからである。また、データベース変換機構は、ファームウェアとは別に設けられるので、ファームウェアのバージョン変更の影響を受けないからである。
【００４９】
例えば図１３に示すように、ファームウェアのバージョンがバージョン１、バージョン２及びバージョン３のいずれにも変更されうるとする。この場合、ファームウェアのバージョンが変更されると、それに伴って、データベースのバージョンも変更され、データベースのバージョンは、ファームウェアのバージョンと同じになる。一方、データベース変換機構のバージョンは、ファームウェアのバージョン変更の影響を受けず、常にバージョン３のままである。このように、データベース変換機構のバージョンを常に最新にすることで、ファームウェアをあらゆるバージョンに変更することが可能になる。
【００５０】
以下では、筐体１００において行われる処理について説明を追加する。
【００５１】
図１４を用いて、運用中にデータベース１７とデータベース２７とを同期する処理について説明する。運用中（すなわち、サービスプロセッサ１１の動作中）、サービスプロセッサ１１はバージョン３のデータベース１７に格納されているデータを更新する。データベース１７が更新されると、運用系のバンク１３におけるファームウェア１４は、データベース１７に格納されているデータを、サブボード２におけるデータベース２７にコピーする。
【００５２】
図１５を用いて、バージョン変更の開始時に行われる処理について説明する。運用系のバンク１３におけるファームウェア１４のユーザインタフェース１４５は、ファームウェアのバージョンを変更する（ここでは、バージョン３からバージョン４にアップグレードする）指示を受け付ける。ユーザインタフェース１４５は、バージョン３のデータベース変換機構１８をアップグレードすると共に、サブボードにおけるバージョン３のデータベース変換機構２８をバージョン４にアップグレードする。そして、ユーザインタフェース１４５は、待機系のバンク１５におけるファームウェア１６をバージョン３からバージョン４にアップグレードする。その後、サービスプロセッサ１１が、運用系のバンク１３と待機系のバンク１５との切り替えを行うと共に、データベース１７のアップグレードが行われる。
【００５３】
図１６を用いて、サブボード２の交換時に行われる処理について説明する。管理者等は、サブボード２を新しいサブボード２に交換する。すると、運用系のバンク１３におけるファームウェア１４は、データベース１７に格納されているデータを、サブボード２におけるデータベース２７にコピーする。また、運用系のバンク１３におけるファームウェア１４は、データベース変換機構１８を、サブボード２にコピーする。
【００５４】
図１７を用いて、ファームウェアボード１を古いバージョンのファームウェアボード１に交換した際に行われる処理について説明する。管理者等は、バージョン３のファームウェアボード１を、バージョン２のファームウェアボード１に交換する。すると、ファームウェア１４及びファームウェア１６は、バージョン２からバージョン３にアップグレードされる。また、運用系のバンク１３におけるファームウェア１４は、サブボード２におけるバージョン３のデータベース２７に格納されているデータをデータベース１７にコピーする。また、運用系のバンク１３におけるファームウェア１４は、サブボード２におけるバージョン３のデータベース変換機構２８をファームウェアボード１にコピーする。これにより、ファームウェアボード１におけるデータベース１７及びデータベース変換機構１８が復旧される。
【００５５】
図１８を用いて、ファームウェアボード１を新しいバージョンのファームウェアボード１に交換した際に行われる処理について説明する。管理者等は、バージョン３のファームウェアボード１を、バージョン４のファームウェアボード１に交換する。すると、ファームウェア１４及びファームウェア１６は、バージョン４からバージョン３にダウングレードされる。また、運用系のバンク１３におけるファームウェア１４は、サブボード２におけるバージョン３のデータベース２７に格納されているデータをデータベース１７にコピーする。一方、運用系のバンク１３におけるファームウェア１４は、ファームウェアボード１におけるバージョン４のデータベース変換機構１８をサブボード２にコピーする。これにより、データベース変換機構１８を、最新のバージョンであるバージョン４のままにすることができる。
【００５６】
以上のように、本実施の形態においては、最新のバージョンのデータベース変換機構を、ファームウェアボードとは異なるボードであるサブボードに保持している。このようにすれば、ファームウェアのバージョン変更、及びファームウェアボード或いはサブボードの交換等に左右されることなく、常に最新のバージョンのデータベース変換機構を維持できる。よって、ファームウェアだけでなくデータベースの更新を含む任意のバージョン変更を行うことが可能になる。
【００５７】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した筐体１００、ファームウェア１４及びユーザインタフェース１４５の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００５８】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００５９】
なお、アップグレードテーブル及びダウングレードテーブルにおけるエントリの順序は一例であり、同様の結果を得られるのであればエントリの順序が異なっていてもよい。
【００６０】
また、上では変換プログラムによってデータのバージョン変更を行っているが、他の方法でデータのバージョン変更を行ってもよい。例えば、変更前のバージョンのデータと変更後のバージョンのデータとの差異を示す情報を保持しておき、その情報に基づいてデータのバージョン変更を行ってもよい。
【００６１】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００６２】
本実施の形態の第１の態様に係る情報処理装置は、（Ａ）第１版のデータ格納部と、（Ｂ）第１版のデータ格納部を管理する第１版のファームウェアを、第１版の前の版である第２版のファームウェアに戻す第１処理部と、（Ｃ）第１版のデータ格納部に格納されているデータのうち、第２版のファームウェアを第１版のファームウェアに更新すると追加される機能についてのデータを削除することにより、第１版のデータ格納部の内容を、第２版のファームウェアが管理していたデータ格納部である第２版のデータ格納部の内容に戻す第２処理部とを有する。
【００６３】
このようにすれば、版の変更を繰り返すことによってデータ格納部の容量が増加するといった問題等を生じさせることなく、データ格納部を管理するファームウェアのダウングレードを行えるようになる。
【００６４】
また、本情報処理装置は、（Ｄ）第１版のデータ格納部に格納されているデータと、第２版のデータ格納部に格納されているデータとの差異を示すデータを格納する更新データ格納部をさらに有してもよい。そして、上で述べた第２処理部は、（ｃ１）更新データ格納部に格納されているデータに基づいて、第１版のデータ格納部の内容を第２版のデータ格納部の内容に戻してもよい。
【００６５】
また、本情報処理装置は、（Ｅ）データ格納部の内容を変換するためのプログラムを含む変換機構をさらに有してもよい。そして、上で述べた第２処理部は、（ｃ２）変換機構に含まれるプログラムのうち、第２版のファームウェアを第１版のファームウェアに更新すると追加される機能についてのデータを削除するためのプログラムである第１のプログラムを呼び出すことにより削除を行ってもよい。
【００６６】
また、上で述べた第１のプログラムは、追加された機能についてのデータの削除によって生じた空き領域に、第１版のデータ格納部に格納されている他のデータを移動する処理をさらに実行させるためのプログラムであってもよい。このようにすれば、版の変更を繰り返すことによってデータ格納部の容量が増加するという問題等の発生を抑制できるようになる。
【００６７】
また、上で述べた第１処理部は、（ｂ１）第１版のファームウェアを、第２版の前の版である第３版のファームウェアに戻してもよい。そして、上で述べた第２処理部は、（ｃ３）変換機構に含まれる第１のプログラムと、第２版のデータ格納部に格納されているデータのうち、第３版のファームウェアを第２版のファームウェアに更新すると追加される機能についてのデータを削除するためのプログラムである第２のプログラムとを呼び出すことにより、第１版のデータ格納部の内容を、第３版のファームウェアが管理していたデータ格納部である第３版のデータ格納部の内容に戻してもよい。このようにすれば、第１版から第３版へ一度に戻すことができるようになる。
【００６８】
また、上で述べた第１処理部は、（ｂ２）第１版のファームウェアを、第１版の後の版である第４版のファームウェアに更新する処理を実行してもよい。そして、上で述べた第２処理部は、（ｃ４）変換機構に含まれるプログラムのうち、第１版のデータ格納部の内容を、第４版のファームウェアが管理するデータ格納部である第４版のデータ格納部の内容に更新する処理を実行するためのプログラムである第３のプログラムを呼び出すことにより、第１版のデータ格納部の内容を、第４版のデータ格納部の内容に更新してもよい。このようにすれば、後の版への更新も行えるようになる。
【００６９】
また、第１版のデータ格納部の内容を第４版のデータ格納部の内容に更新する処理は、（ｃ４１）第１版のファームウェアを第４版のファームウェアに更新する際に追加される機能についてのデータを追加する処理と、第１版のデータ格納部に格納されているデータのうち少なくとも一部のデータの位置を変更する処理との少なくともいずれかを含んでもよい。このようにすれば、ファームウェアを更新した際に不具合が発生するのを防止できるようになる。
【００７０】
また、上で述べた第１処理部は、（ｂ３）第１版のファームウェアを、第４版の後の版である第５版のファームウェアに更新する処理を実行してもよい。そして、上で述べた第２処理部は、（ｂ５）変換機構に含まれる第３のプログラムと、第４版のデータ格納部の内容を、第５版のファームウェアが管理するデータ格納部である第５版のデータ格納部の内容に更新する処理を実行するためのプログラムである第４のプログラムとを呼び出すことにより、第１版のデータ格納部の内容を、第５版のデータ格納部の内容に更新してもよい。このようにすれば、第１版から第５版へ一度に更新することができるようになる。
【００７１】
また、上で述べた変換機構は、（ｄ１）ファームウェアとは別に設けられてもよい。そして、第２版のファームウェアが第１版のファームウェアに更新される場合に、第１及び第２のプログラムが変換機構に追加され、第３版のファームウェアが第２版のファームウェアに更新される場合に、第３及び第４のプログラムが変換機構に追加されてもよい。これにより、ファームウェアが前の版に戻される場合においても、変換機構に含まれるプログラムをそのままの状態に維持できるので、変換機構を用いて任意のバージョンに変換を行えるようになる。
【００７２】
また、上で述べた変換機構に含まれるプログラムは、ファームウェアを含むボードとは別のボードの記憶装置にコピーされてもよい。これにより、ファームウェアを含むボードに障害が発生した場合又はファームウェアを含むボードが交換された場合等にも対処できるようになる。
【００７３】
本実施の形態の第２の態様に係るバージョン変更方法は、（Ｆ）第１版のデータ格納部を管理する第１版のファームウェアを、第１版の前の版である第２版のファームウェアに戻し、（Ｇ）第１版のデータ格納部に格納されているデータのうち、第２版のファームウェアを第１版のファームウェアに更新すると追加される機能についてのデータを削除することにより、第１版のデータ格納部を、第２版のファームウェアが管理していたデータ格納部である第２版のデータ格納部に戻す処理を含む。
【００７４】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００７５】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７６】
（付記１）
第１版のデータ格納部と、
前記第１版のデータ格納部を管理する第１版のファームウェアを、前記第１版の前の版である第２版のファームウェアに戻す第１処理部と、
前記第１版のデータ格納部に格納されているデータのうち、前記第２版のファームウェアを前記第１版のファームウェアに更新すると追加される機能についてのデータを削除することにより、前記第１版のデータ格納部の内容を、前記第２版のファームウェアが管理していたデータ格納部である第２版のデータ格納部の内容に戻す第２処理部と、
を有する情報処理装置。
【００７７】
（付記２）
前記第１版のデータ格納部に格納されているデータと、前記第２版のデータ格納部に格納されているデータとの差異を示すデータを格納する更新データ格納部
をさらに有し、
前記第２処理部は、
前記更新データ格納部に格納されているデータに基づいて、前記第１版のデータ格納部の内容を前記第２版のデータ格納部の内容に戻す
付記１記載の情報処理装置。
【００７８】
（付記３）
データ格納部の内容を変換するためのプログラムを含む変換機構
をさらに有し、
前記第２処理部は、
前記変換機構に含まれるプログラムのうち、前記第２版のファームウェアを前記第１版のファームウェアに更新すると追加される機能についてのデータを削除するためのプログラムである第１のプログラムを呼び出すことにより削除を行う
付記１記載の情報処理装置。
【００７９】
（付記４）
前記第１のプログラムは、
前記追加された機能についてのデータの削除によって生じた空き領域に、前記第１版のデータ格納部に格納されている他のデータを移動する処理をさらに実行させるためのプログラムである
付記３記載の情報処理装置。
【００８０】
（付記５）
前記第１処理部は、
前記第１版のファームウェアを、前記第２版の前の版である第３版のファームウェアに戻し、
前記第２処理部は、
前記変換機構に含まれる前記第１のプログラムと、前記第２版のデータ格納部に格納されているデータのうち、前記第３版のファームウェアを前記第２版のファームウェアに更新すると追加される機能についてのデータを削除するためのプログラムである第２のプログラムとを呼び出すことにより、前記第１版のデータ格納部の内容を、前記第３版のファームウェアが管理していたデータ格納部である第３版のデータ格納部の内容に戻す
付記３又は４記載の情報処理装置。
【００８１】
（付記６）
前記第１処理部は、
前記第１版のファームウェアを、前記第１版の後の版である第４版のファームウェアに更新する処理を実行し、
前記第２処理部は、
前記変換機構に含まれるプログラムのうち、前記第１版のデータ格納部の内容を、前記第４版のファームウェアが管理するデータ格納部である第４版のデータ格納部の内容に更新する処理を実行するためのプログラムである第３のプログラムを呼び出すことにより、前記第１版のデータ格納部の内容を、前記第４版のデータ格納部の内容に更新する
付記３乃至５のいずれか１つ記載の情報処理装置。
【００８２】
（付記７）
前記第１版のデータ格納部の内容を前記第４版のデータ格納部の内容に更新する処理は、前記第１版のファームウェアを前記第４版のファームウェアに更新する際に追加される機能についてのデータを追加する処理と、前記第１版のデータ格納部に格納されているデータのうち少なくとも一部のデータの位置を変更する処理との少なくともいずれかを含む
付記６記載の情報処理装置。
【００８３】
（付記８）
前記第１処理部は、
前記第１版のファームウェアを、前記第４版の後の版である第５版のファームウェアに更新する処理を実行し、
前記第２処理部は、
前記変換機構に含まれる前記第３のプログラムと、前記第４版のデータ格納部の内容を、前記第５版のファームウェアが管理するデータ格納部である第５版のデータ格納部の内容に更新する処理を実行するためのプログラムである第４のプログラムとを呼び出すことにより、前記第１版のデータ格納部の内容を、前記第５版のデータ格納部の内容に更新する
付記６又は７記載の情報処理装置。
【００８４】
（付記９）
前記変換機構は、前記ファームウェアとは別に設けられ、
前記第２版のファームウェアが前記第１版のファームウェアに更新される場合に、前記第１及び第２のプログラムが前記変換機構に追加され、
前記第３版のファームウェアが前記第２版のファームウェアに更新される場合に、前記第３及び第４のプログラムが前記変換機構に追加される
付記３記載の情報処理装置。
【００８５】
（付記１０）
前記変換機構に含まれるプログラムは、前記ファームウェアを含むボードとは別のボードの記憶装置にコピーされる
付記９記載の情報処理装置。
【００８６】
（付記１１）
第１版のデータ格納部を管理する第１版のファームウェアを、前記第１版の前の版である第２版のファームウェアに戻し、
前記第１版のデータ格納部に格納されているデータのうち、前記第２版のファームウェアを前記第１版のファームウェアに更新すると追加される機能についてのデータを削除することにより、前記第１版のデータ格納部を、前記第２版のファームウェアが管理していたデータ格納部である第２版のデータ格納部に戻す、
処理をコンピュータが実行するバージョン変更方法。
【００８７】
（付記１２）
第１版のデータ格納部を管理する第１版のファームウェアを、前記第１版の前の版である第２版のファームウェアに戻し、
前記第１版のデータ格納部に格納されているデータのうち、前記第２版のファームウェアを前記第１版のファームウェアに更新すると追加される機能についてのデータを削除することにより、前記第１版のデータ格納部を、前記第２版のファームウェアが管理していたデータ格納部である第２版のデータ格納部に戻す、
処理をコンピュータに実行させるためのプログラム。
【符号の説明】
【００８８】
１  ファームウェアボード    １１  サービスプロセッサ
１２  記憶装置    １３，１５  バンク
１４，１６  ファームウェア    １７  データベース
１８  データベース変換機構    ２  サブボード
２２  記憶装置    ２７  データベース
２８  データベース変換機構    ３  システムボード
３１  ＣＰＵ    ３２  メモリ
３３  Ｉ／Ｏデバイス    １４１  起動スクリプト
１４２  デバイスドライバ    １４３  ライブラリ
１４４  機能モジュール    １４５  ユーザインタフェース
１４５１  取得部    １４５２  展開部
１４５３  切替部    １４５４  再起動要求部
１１１  ＣＰＵ    １１２  メモリ
１１３  Ｉ／Ｏデバイス
【図１Ａ】
2015176364.tif 000003
【図１Ｂ】
2015176364.tif 000004
【図２】
2015176364.tif 000005
【図３】
2015176364.tif 000006
【図４】
2015176364.tif 000007
【図５】
2015176364.tif 000008
【図６】
2015176364.tif 000009
【図７】
2015176364.tif 000010
【図８】
2015176364.tif 000011
【図９】
2015176364.tif 000012
【図１０】
2015176364.tif 000013
【図１１】
2015176364.tif 000014
【図１２】
2015176364.tif 000015
【図１３】
2015176364.tif 000016
【図１４】
2015176364.tif 000017
【図１５】
2015176364.tif 000018
【図１６】
2015176364.tif 000019
【図１７】
2015176364.tif 000020
【図１８】
2015176364.tif 000021