(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022017063
(43)【公開日】2022-01-25
(54)【発明の名称】情報処理システムおよびリカバリプログラム
(51)【国際特許分類】
G06F 13/00 20060101AFI20220118BHJP
G06F 8/65 20180101ALI20220118BHJP
【FI】
G06F13/00 530B
G06F8/65
【審査請求】有
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2020120135
(22)【出願日】2020-07-13
(71)【出願人】
【識別番号】518133201
【氏名又は名称】富士通クライアントコンピューティング株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】池田 勇一朗
(72)【発明者】
【氏名】中山 雄二
(72)【発明者】
【氏名】鍛治屋 毅
【テーマコード(参考)】
5B084
5B376
【Fターム(参考)】
5B084AA01
5B084AA12
5B084AA29
5B084AB16
5B084BA09
5B084BB17
5B084CD10
5B084DC02
5B084DC03
5B376CA15
5B376CA53
(57)【要約】
【課題】クライアント装置のハードウェアのバージョンによってリカバリが正常に実行されない事態を抑制する。
【解決手段】情報処理システムは、第1のクライアントプログラムが搭載されたクライアント装置と、リカバリプログラムが搭載されたホスト装置と、を備え、第1のクライアントプログラムは、クライアント装置のハードウェアのバージョンを示す第1のバージョンデータを含み、リカバリプログラムは、第2のクライアントプログラムと、第2のバージョンデータと、を含み、リカバリプログラムは、リカバリの実行にあたり、クライアント装置から第1のバージョンデータを取得し、第1のバージョンデータが示すバージョンが第2のバージョンデータが示すバージョンよりも古い場合、第2のクライアントプログラムをクライアント装置に送信し、第1のクライアントプログラムの第2のクライアントプログラムへの置き換えをクライアント装置に実行させる。
【選択図】
図3
【特許請求の範囲】
【請求項1】
書き換え可能な第1のクライアントプログラムが搭載されたクライアント装置と、
前記クライアント装置に通信可能に接続され、前記第1のクライアントプログラムのリカバリを実行するリカバリプログラムが搭載されたホスト装置と、
を備え、
前記第1のクライアントプログラムは、前記クライアント装置のハードウェアのバージョンを示す第1のバージョンデータを含み、
前記リカバリプログラムは、前記第1のクライアントプログラムと置き換えられうる第2のクライアントプログラムと、当該第2のクライアントプログラムがサポートするハードウェアのバージョンを示す第2のバージョンデータと、を含み、
前記リカバリプログラムは、前記リカバリの実行にあたり、前記クライアント装置から前記第1のバージョンデータを取得し、前記第1のバージョンデータが示す前記バージョンが前記第2のバージョンデータが示す前記バージョンよりも古い場合、前記第2のクライアントプログラムを前記クライアント装置に送信し、前記第1のクライアントプログラムの前記第2のクライアントプログラムへの置き換えを前記クライアント装置に実行させるように構成されている、
情報処理システム。
【請求項2】
前記クライアント装置には、書き換え可能な第3のクライアントプログラムがさらに搭載されており、
前記ホスト装置は、前記第3のクライアントプログラムを記憶可能なバックアップ領域を含み、
前記リカバリプログラムは、前記第3のクライアントプログラムの前記バックアップ領域へのバックアップも実行可能に構成されている、
請求項1に記載の情報処理システム。
【請求項3】
前記リカバリプログラムは、前記バックアップの実行にあたり、前記クライアント装置から前記第1のバージョンデータを取得し、前記第1のバージョンデータが示す前記バージョンが前記第2のバージョンデータが示す前記バージョンよりも古い場合、前記第2のクライアントプログラムを前記クライアント装置に送信し、前記第2のクライアントプログラムにより前記第3のクライアントプログラムを前記ホスト装置に送信することを前記クライアント装置に実行させるように構成されている、
請求項2に記載の情報処理システム。
【請求項4】
前記クライアント装置は、前記バックアップの実行にあたり前記第2のクライアントプログラムを前記ホスト装置から受信した場合、前記第2のクライアントプログラムを前記第1のクライアントプログラムと置き換えることなく実行することで、前記第3のクライアントプログラムを前記ホスト装置に送信する、
請求項3に記載の情報処理システム。
【請求項5】
前記リカバリプログラムは、前記リカバリの実行にあたり前記第1のクライアントプログラムの前記第2のクライアントプログラムへの置き換えを前記クライアント装置に実行させた後、前記バックアップ領域に記憶された前記第3のクライアントプログラムを前記クライアント装置に送信し、前記クライアント装置に搭載された前記第3のクライアントプログラムの前記バックアップ領域に記憶された前記第3のクライアントプログラムへの置き換えを前記クライアント装置に実行させるように構成されている、
請求項2~4のうちいずれか1項に記載の情報処理システム。
【請求項6】
前記リカバリプログラムは、前記第1のバージョンデータが示す前記バージョンが前記第2のバージョンデータが示す前記バージョンよりも新しい場合、前記リカバリプログラムの最新版の確認を促す通知を出力するように構成されている、
請求項1~5のうちいずれか1項に記載の情報処理システム。
【請求項7】
前記第1のクライアントプログラムは、前記クライアント装置の起動時に、前記第1のバージョンデータを、前記クライアント装置に搭載される他のプログラムから参照可能なデータとして組み込むように構成されている、
請求項1~6のうちいずれか1項に記載の情報処理システム。
【請求項8】
書き換え可能な第1のクライアントプログラムが搭載されたクライアント装置に通信可能に接続されたホスト装置としてのコンピュータに搭載される、前記第1のクライアントプログラムのリカバリを実行するリカバリプログラムであって、
前記第1のクライアントプログラムと置き換えられうる第2のクライアントプログラムと、当該第2のクライアントプログラムがサポートするハードウェアのバージョンを示す第2のバージョンデータと、を含み、
前記リカバリの実行にあたり、前記クライアント装置のハードウェアのバージョンを示すデータとして前記第1のクライアントプログラムに含まれる第1のバージョンデータを前記クライアント装置から取得し、前記第1のバージョンデータが示す前記バージョンが、前記第2のバージョンデータが示す前記バージョンよりも古い場合、前記第2のクライアントプログラムを前記クライアント装置に送信し、前記第1のクライアントプログラムの前記第2のクライアントプログラムへの置き換えを前記クライアント装置に実行させること、
を前記ホスト装置としての前記コンピュータに実行させるための、リカバリプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理システムおよびリカバリプログラムに関する。
【背景技術】
【0002】
互いに通信可能に接続されたホスト装置とクライアント装置とを備えた情報処理システムが知られている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のような情報処理システムでは、クライアント装置に搭載されたクライアントプログラムのリカバリを実行するリカバリプログラムがホスト装置に搭載されることがある。この場合、リカバリは、ホスト装置からクライアント装置に置き換え用のクライアントプログラムを送信し、当該置き換え用のクライアントプログラムをクライアント装置に実行させることで実現されうる。
【0005】
しかしながら、たとえば、クライアント装置のハードウェアの更新などが実行された場合、ホスト装置に保持された置き換え用のクライアントプログラムがサポートしているハードウェアのバージョンがクライアント装置のハードウェアのバージョンよりも古くなる場合が発生しうる。この場合、クライアント装置に送信された置き換え用のクライアントプログラムがクライアント装置側で正常に動作せず、リカバリが正常に実行されないことがある。
【0006】
そこで、本開示の課題の一つは、クライアント装置のハードウェアのバージョンによってリカバリが正常に実行されない事態を抑制することが可能な情報処理システムおよびリカバリプログラムを提供することである。
【課題を解決するための手段】
【0007】
本開示の一例としての情報処理システムは、書き換え可能な第1のクライアントプログラムが搭載されたクライアント装置と、クライアント装置に通信可能に接続され、第1のクライアントプログラムのリカバリを実行するリカバリプログラムが搭載されたホスト装置と、を備え、第1のクライアントプログラムは、クライアント装置のハードウェアのバージョンを示す第1のバージョンデータを含み、リカバリプログラムは、第1のクライアントプログラムと置き換えられうる第2のクライアントプログラムと、当該第2のクライアントプログラムがサポートするハードウェアのバージョンを示す第2のバージョンデータと、を含み、リカバリプログラムは、リカバリの実行にあたり、クライアント装置から第1のバージョンデータを取得し、第1のバージョンデータが示すバージョンが第2のバージョンデータが示すバージョンよりも古い場合、第2のクライアントプログラムをクライアント装置に送信し、第1のクライアントプログラムの第2のクライアントプログラムへの置き換えをクライアント装置に実行させるように構成されている。
【発明の効果】
【0008】
本開示の一例としての情報処理システムによれば、クライアント装置のハードウェアのバージョンによってリカバリが正常に実行されない事態を抑制することができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施形態にかかる情報処理システムの全体構成を示した例示的かつ模式的なブロック図である。
【
図2】
図2は、実施形態にかかるサブボードおよびメインボードのハードウェア構成の例を例示的かつ模式的なブロック図である。
【
図3】
図3は、実施形態にかかるサブボードおよびメインボードのソフトウェア構成の例を示した例示的かつ模式的なブロック図である。
【
図4】
図4は、実施形態にかかるサブボードおよびメインボードがリカバリまたはバックアップにあたり実行する処理の流れを示した例示的かつ模式的なシーケンス図である。
【
図5】
図5は、実施形態にかかるサブボードおよびメインボードがバックアップのために実行する処理の流れを示した例示的かつ模式的なシーケンス図である。
【
図6】
図6は、実施形態にかかるサブボードおよびメインボードがリカバリのために実行する処理の流れを示した例示的かつ模式的なシーケンス図である。
【発明を実施するための形態】
【0010】
以下、本開示の実施形態を図面に基づいて説明する。以下に記載する実施形態の構成、ならびに当該構成によってもたらされる作用および効果は、あくまで一例であって、以下の記載内容に限られるものではない。
【0011】
図1は、実施形態にかかる情報処理システム100の全体構成を示した例示的かつ模式的なブロック図である。
【0012】
図1に示されるように、実施形態にかかる情報処理システム100は、クライアント装置110と、ホスト装置120と、中継装置130と、を備えている。
【0013】
クライアント装置110は、たとえばAI(Artificial Intelligence)処理などのような個別具体的な処理を担う装置である。また、ホスト装置120は、クライアント装置110を管理する装置である。
図1に示される例では、クライアント装置110とホスト装置120とが1対1で設けられているが、実施形態では、クライアント装置110とホスト装置120とが必ずしも1対1で対応している必要はない。たとえば、実施形態では、クライアント装置110とホスト装置120とが多対1で設けられていてもよい。
【0014】
中継装置130は、クライアント装置110とホスト装置120との通信を中継する装置である。詳細は後述するが、実施形態において、中継装置130は、クライアント装置110とホスト装置120との接続の形態を、PCIe(Peripheral Component Interconnect-Express)接続とUSB(Universal Serial Bus)接続とで適宜切り替えることが可能に構成されている。
【0015】
クライアント装置110、ホスト装置120、および中継装置130は、それぞれ、各種の処理を実行するハードウェアとしてのサブボード111、メインボード121、およびブリッジボード131を備えている。
【0016】
ここで、クライアント装置110およびホスト装置120は、通常のコンピュータと同様のハードウェア構成を有している。したがって、サブボード111およびメインボード121の各々には、たとえば次の
図2に示されるようなハードウェアが搭載されている。
【0017】
図2は、実施形態にかかるサブボード111およびメインボード121のハードウェア構成の例を例示的かつ模式的なブロック図である。
【0018】
図2に示されるように、サブボード111およびメインボード121の各々には、プロセッサ210と、メモリ220と、ストレージ230と、入出力インターフェース(I/F)240と、通信インターフェース(I/F)250と、が搭載されている。これらのハードウェアは、バス260を介して互いに通信可能に接続されている。
【0019】
プロセッサ210は、たとえばCPU(Central Processing Unit)として構成され、サブボード111およびメインボード121の各々の動作を統括的に制御する。
【0020】
メモリ220は、たとえばROM(Read Only Memory)およびRAM(Random Access Memory)を含み、プロセッサ210により実行されるプログラムなどの各種のデータ(後述する
図3に示される各種のデータを含む)の揮発的または不揮発的な記憶、およびプロセッサ210がプログラムを実行するための作業領域の提供などを実現する。
【0021】
ストレージ230は、たとえばHDD(Hard Disk Drive)またはSSD(Solid State Drive)を含み、各種のデータを不揮発的に記憶する。
【0022】
入出力インターフェース240は、たとえばキーボードおよびマウスなどのような入力装置(不図示)を介したデータの入力と、たとえばディスプレイおよびスピーカなどのような出力装置(不図示)を介したデータの出力と、を制御する。
【0023】
通信インターフェース550は、サブボード111およびメインボード121の各々が他の装置と通信を実行することを可能にする。
【0024】
なお、
図2に示されるハードウェア構成は、あくまで一例である。このため、実施形態において、サブボード111およびメインボード121の各々には、たとえば電源管理ユニット(電源管理回路)などのような他のハードウェアも搭載されうる。
【0025】
ここで、上記のような情報処理システム100では、クライアント装置110に搭載されたクライアントプログラムのリカバリを実行することが望まれることがある。この場合、リカバリは、ホスト装置120からクライアント装置110に置き換え用のクライアントプログラムを送信し、当該置き換え用のクライアントプログラムをクライアント装置110に実行させることで実現されうる。
【0026】
しかしながら、たとえばクライアント装置110のハードウェアの更新などが実行された場合、ホスト装置120に保持された置き換え用のクライアントプログラムがサポートしているハードウェアのバージョンがクライアント装置110のハードウェアのバージョンよりも古くなる場合が発生しうる。この場合、クライアント装置110に送信された置き換え用のクライアントプログラムがクライアント装置110側で正常に動作せず、リカバリが正常に実行されないことがある。
【0027】
そこで、実施形態は、以下に説明するようなソフトウェア構成に基づき、クライアント装置110のハードウェアのバージョンによってリカバリが正常に実行されない事態を抑制することを実現する。
【0028】
図3は、実施形態にかかるサブボード111およびメインボード121のソフトウェア構成の例を示した例示的かつ模式的なブロック図である。なお、
図3(後述する
図4~
図6も同様)では、簡単化のため、中継装置130(
図1参照)の図示が省略されている。
【0029】
図3に示されるように、サブボード111には、処理プログラム311と、基礎プログラム312と、が搭載されている。処理プログラム311は、サブボード111のプロセッサ210(
図2参照)により実行されるプログラムである。また、基礎プログラム312は、サブボード111の電源管理ユニット(
図2には不図示)により実行される、処理プログラム311よりも下位のプログラムである。
【0030】
処理プログラム311は、上位処理プログラム311Aと、下位処理プログラム311Bと、を含んでいる。OS(Operating System)およびOSよりも上位のアプリケーションを含んでいる。上位処理プログラム311Aは、メインボード121へのバックアップの対象となる下位処理プログラム311Bは、書き換え(置き換え)が可能に設定された、OSよりも下位のプログラムである。
【0031】
基礎プログラム312は、メインボード121からの書き換えが不可能に設定された書換不可基礎プログラム312Aと、メインボード121からの書き換えが可能に設定された書換可能基礎プログラム312Bと、を含んでいる。
【0032】
なお、上位処理プログラム311A、下位処理プログラム311B、書換不可基礎プログラム312A、および書換可能基礎プログラム312Bの組み合わせは、総称してブートローダ310と表現することができる。
【0033】
また、上位処理プログラム311A、下位処理プログラム311B、および書換可能基礎プログラム312Bの組み合わせは、リカバリ時に置き換えの対象となるクライアントプログラム310Aと表現することができる。クライアントプログラム310Aは、本開示の「第1のクライアントプログラム」の一例である。
【0034】
ここで、実施形態において、下位処理プログラム311Bは、サブボード111のハードウェア(たとえば
図2参照)のバージョンを示すバージョンデータ311Cを含んでいる。バージョンデータ311Cは、サブボード111の起動時、より具体的には上位処理プログラム311Aに含まれるOSの起動時に、バージョンデータ311Cを、他のプログラムから参照可能なデータとして下位処理プログラム311Bに組み込まれる。バージョンデータ311Cは、本開示の「第1のバージョンデータ」の一例である。
【0035】
実施形態では、上記のバージョンデータ311Cを用いて、クライアント装置110のハードウェアのバージョンによってリカバリが正常に実行されない事態を抑制する。
【0036】
すなわち、実施形態において、メインボード121には、上記のバージョンデータ311Cを参照してクライアントプログラム310Aのリカバリを実行するリカバリプログラム321が搭載されている。
【0037】
リカバリプログラム321は、リカバリ時にクライアントプログラム310Aと置き換えられうるクライアントプログラム321Aを含んでいる。クライアントプログラム321Aは、リカバリにあたりバージョンデータ311Cと比較されるバージョンデータ321Bを含んでいる。クライアントプログラム321Aは、本開示の「第2のクライアントプログラム」の一例であり、バージョンデータ321Bは、本開示の「第2のバージョンデータ」の一例である。
【0038】
バージョンデータ321Bは、クライアントプログラム321Aがサポートしているハードウェア、すなわちクライアントプログラム321Aを正常に実行することが可能なハードウェアのバージョンを示すデータである。したがって、リカバリプログラム321は、リカバリの実行にあたり、サブボード111からバージョンデータ311Cを取得し、取得したバージョンデータ311Cと、自身が保持しているバージョンデータ321Bと、を比較する。
【0039】
バージョンデータ311Cが示すバージョンが、バージョンデータ321Bが示すバージョンよりも古い場合、サブボード111がクライアントプログラム321Aを正常に実行することが可能、すなわちリカバリを正常に実行することが可能と判定することができる。したがって、この場合、リカバリプログラム321は、クライアントプログラム321Aをサブボード111に送信し、クライアントプログラム310Aのクライアントプログラム321Aへの置き換えをサブボード111に実行させる。
【0040】
一方、バージョンデータ311Cが示すバージョンが、バージョンデータ321Bが示すバージョンよりも新しい場合、サブボード111がクライアントプログラム321Aを正常に実行することが不可能と判定することができる。この場合、より新しいバージョンに対応したリカバリプログラム321の最新版が存在することが推定できる。したがって、この場合、リカバリプログラム321は、リカバリプログラム321の最新版の確認を促す通知を出力する。
【0041】
なお、前述した通り、実施形態では、サブボード111とメインボード121との接続の形態が、PCIe接続とUSB接続とで適宜切り替えられる。PCIe接続は、クライアント装置110およびホスト装置120の通常稼働時に用いられ、USB接続は、リカバリ時(または後述するバックアップ時)のような特殊な稼働時に用いられる。
【0042】
ここで、USB接続においてメインボード121が通常認識することが可能なデータは、USB接続の相手先のデバイスとしてのサブボード111に設定された名前のみであり、サブボード111のハードウェアのバージョンは含まない。また、通常は、置き換えの対象となるクライアントプログラム310Aにバージョンデータ311Cは組み込まれていない。したがって、通常は、サブボード111のハードウェアのバージョンを踏まえた上記のような適切なリカバリを実行することができない。
【0043】
これに対して、実施形態では、上記のように、置き換えの対象となるクライアントプログラム310Aにバージョンデータ311Cが組み込まれており、リカバリの実行にあたりバージョンデータ311Cが参照される。したがって、実施形態によれば、バージョンデータ311Cを踏まえて、クライアント装置110のハードウェアのバージョンによってリカバリが正常に実行されない事態を抑制することが可能になる。
【0044】
なお、実施形態において、リカバリプログラム321は、サブボード111に搭載された上位処理プログラム311Aのバックアップも実行可能に構成されている。このため、実施形態において、メインボード121は、上位処理プログラム311Aを記憶可能なバックアップ領域322を含んでいる。上位処理プログラム311Aは、本開示の「第3のクライアントプログラム」の一例である。
【0045】
サブボード111のハードウェアのバージョンの確認は、バックアップにおいても実行される。より具体的に、リカバリプログラム321は、バックアップの実行にあたり、サブボード111からバージョンデータ311Cを取得する。そして、リカバリプログラム321は、取得されたバージョンデータ311Cが示すバージョンが、自身が保持しているバージョンデータ321Bが示すバージョンよりも古い場合、クライアントプログラム321Aをクライアント装置に送信する。そして、リカバリプログラム321は、クライアントプログラム321Aにより上位処理プログラム311Aをメインボード121に送信することをサブボード111に実行させるように構成されている。
【0046】
なお、バックアップにおいては、サブボード111のクライアントプログラム310Aの置き換えまでは不要である。したがって、実施形態において、サブボード111は、クライアントプログラム321Aをメインボード121から受信した場合、クライアントプログラム310Aをクライアントプログラム321Aに置き換えることなく、クライアントプログラム321Aをオンメモリで実行することで、上位処理プログラム311Aをメインボード121に送信する。
【0047】
以上の構成に基づき、実施形態にかかるサブボード111およびメインボード121は、リカバリまたはバックアップの実行にあたり、以下に説明するような流れで動作する。
【0048】
図4は、実施形態にかかるサブボード111およびメインボード121がリカバリまたはバックアップにあたり実行する処理の流れを示した例示的かつ模式的なシーケンス図である。
【0049】
図4に示されるように、リカバリまたはバックアップが実行される前の、サブボード111およびメインボード121が通常稼働している段階においては、サブボード111とメインボード121とがPCIe接続で通信可能な状態となっている。このとき、S401において、メインボード121に搭載されたリカバリプログラム321がオペレータの操作などに応じて起動した場合、以下のような流れで各種の処理が実行される。
【0050】
リカバリプログラム321が起動すると、まず、S402において、メインボード121のリカバリプログラム321は、サブボード111に対して、上位処理プログラム311Aを再起動させるための再起動指示と、書換不可基礎プログラム312Aにリカバリ(またはバックアップ)のためのリカバリモードを起動させるためのリカバリモード起動指示と、を送信する。なお、リカバリモードとは、リカバリ(またはバックアップ)に必要な各種の処理を実行するための専用のモードである。
【0051】
そして、S403において、サブボード111の上位処理プログラム311Aは、再起動指示に応じて再起動し、S404において、サブボード111の書換不可基礎プログラム312Aは、リカバリモード起動指示に応じてリカバリモードを起動する。
【0052】
一方、S405において、メインボード121のリカバリプログラム321は、メインボード121に搭載されるUSBドライバ(不図示)に、サブボード111とメインボード121との接続の形態をUSB接続に切り替えさせる。これにより、S405以降、サブボード111とメインボード121とがUSB接続で通信可能な状態となる。
【0053】
そして、S406において、メインボード121のリカバリプログラム321は、USB接続の相手先のデバイスを認識する。前述した通り、S406において認識可能なデータは、相手先のデバイスとしてのサブボード111に設定された名前である。
【0054】
そして、S407において、メインボード121のリカバリプログラム321は、S406において認識されたデバイスが、リカバリまたはバックアップの対象となるデバイスであるか否かを判定する。
【0055】
S407において、S406において認識されたデバイスがリカバリまたはバックアップの対象となるデバイスでないと判定された場合、処理が終了する。一方、S407において、S406において認識されたデバイスがリカバリまたはバックアップの対象となるデバイスであると判定された場合、次のS408に処理が進む。
【0056】
S408において、メインボード121のリカバリプログラム321は、バージョンデータ311Cの送信をサブボード111に要求するバージョンデータ送信要求をサブボード111に送信する。このとき、メインボード121のリカバリプログラム321は、必要に応じて、バージョンデータ311Cの送信に必要なデータ(クライアントプログラム321Aの一部)をバージョンデータ送信要求とともにサブボード111に送信してもよい。
【0057】
そして、S409において、サブボード111のクライアントプログラム310Aは、バージョンデータ送信要求に応じて、バージョンデータ311Cをメインボード121に送信する。
【0058】
そして、S410において、メインボード121のリカバリプログラム321は、自身が保持しているバージョンデータ321Bを読み込む。
【0059】
そして、S411において、メインボード121のリカバリプログラム321は、サブボード111のバージョンデータ311Cが示すバージョンが、自身が保持しているバージョンデータ321Bが示すバージョンよりも古いか否かを判定する。
【0060】
S411において、サブボード111のバージョンデータ311Cの方が新しいと判定された場合、リカバリまたはバックアップを正常に実行することが不可能である。したがって、この場合、S412に処理が進み、当該S412において、メインボード121のリカバリプログラム321は、リカバリプログラム321の最新版の確認を促す通知を出力する。
【0061】
一方、S411において、サブボード111のバージョンデータ311Cの方が古いと判定された場合、リカバリまたはバックアップを正常に実行することが可能である。したがって、この場合、S413に処理が進み、当該S413において、サブボード111およびメインボード121は、互いに協働し、リカバリまたはバックアップを実行する。
【0062】
ここで、S413においてバックアップが実行される場合、サブボード111およびメインボード121は、次の
図5に示されるような流れで動作する。
【0063】
図5は、実施形態にかかるサブボード111およびメインボード121がバックアップのために実行する処理の流れを示した例示的かつ模式的なシーケンス図である。
【0064】
図5に示されるように、バックアップにおいては、まず、S501において、メインボード121のリカバリプログラム321は、自身が保持しているクライアントプログラム321Aをサブボード111に送信する。
【0065】
そして、S502において、サブボード111は、メインボード121から取得されたクライアントプログラム321Aをオンメモリで実行する。このとき、サブボード111は、自身のクライアントプログラム310Aをメインボード121から取得されたクライアントプログラム321Aで置き換えることはしない点に留意すべきである。
【0066】
そして、S503において、サブボード111においてオンメモリで実行されているクライアントプログラム321Aは、バックアップの対象である上位処理プログラム311Aをメインボード121に送信する。
【0067】
そして、S504において、メインボード121のリカバリプログラム321は、サブボード111から取得された上位処理プログラム311Aをバックアップ領域322に保存する。これにより、実施形態にかかるバックアップが実現される。
【0068】
一方、
図4に示されるS413においてリカバリが実行される場合、サブボード111およびメインボード121は、次の
図6に示されるような流れで動作する。
【0069】
図6は、実施形態にかかるサブボード111およびメインボード121がリカバリのために実行する処理の流れを示した例示的かつ模式的なシーケンス図である。
【0070】
図6に示されるように、リカバリにおいては、まず、S601において、メインボード121のリカバリプログラム321は、自身が保持しているクライアントプログラム321Aをサブボード111に送信する。
【0071】
そして、S602において、サブボード111は、メインボード121から取得されたクライアントプログラム321Aをオンメモリで実行するとともに、自身のクライアントプログラム310Aをメインボード121から取得されたクライアントプログラム321Aで置き換える。
【0072】
一方、S603において、メインボード121のリカバリプログラム321は、過去のバックアップによりバックアップ領域322に記憶された上位処理プログラム311Aを読み込む。
【0073】
そして、S604において、メインボード121のリカバリプログラム321は、S603で読み込まれた上位処理プログラム311Aをサブボード111に送信する。
【0074】
そして、S605において、サブボード111のクライアントプログラム321Aは、自身の上位処理プログラム311Aを、メインボード121から取得された上位処理プログラム311Aに置き換える。これにより、実施形態にかかるリカバリが実現される。
【0075】
以上説明したように、実施形態にかかる情報処理システムは、書き換え可能なクライアントプログラム310Aが搭載されたクライアント装置110と、当該クライアント装置110に通信可能に接続され、クライアントプログラム310Aのリカバリを実行するリカバリプログラム321が搭載されたホスト装置120と、を備えている。クライアントプログラム310Aは、クライアント装置110のハードウェアのバージョンを示すバージョンデータ311Cを含んでいる。また、リカバリプログラム321は、クライアントプログラム310Aと置き換えられうるクライアントプログラム321Aと、当該クライアントプログラム321Aがサポートするハードウェアのバージョンを示すバージョンデータ321Bと、を含んでいる。
【0076】
実施形態において、リカバリプログラム321は、リカバリの実行にあたり、クライアント装置110からバージョンデータ311Cを取得するように構成されている。そして、リカバリプログラム321は、バージョンデータ311Cが示すバージョンが、バージョンデータ321Bが示すバージョンよりも古い場合、クライアントプログラム321Aをクライアント装置110に送信し、クライアントプログラム310Aのクライアントプログラム321Aへの置き換えをクライアント装置110に実行させるように構成されている。
【0077】
上記のような構成によれば、バージョンデータ311Cおよび321Bの比較の結果に応じて、クライアント装置110のハードウェアがクライアントプログラム310Aのクライアントプログラム321Aへの置き換えに対応しているか否かを判定した上で、リカバリを実行することができる。したがって、クライアント装置110のハードウェアのバージョンによってリカバリが正常に実行されない事態を抑制することができる。
【0078】
ここで、実施形態において、クライアント装置110には、書き換え可能な上位処理プログラム311Aがさらに搭載されている。また、ホスト装置120は、上位処理プログラム311Aを記憶可能なバックアップ領域322を含んでいる。そして、リカバリプログラム321は、上位処理プログラム311Aのバックアップ領域322へのバックアップも実行可能に構成されている。このような構成によれば、リカバリに加えてバックアップも実行することができる。
【0079】
より具体的に、実施形態において、リカバリプログラム321は、バックアップの実行にあたり、クライアント装置110からバージョンデータ311Cを取得するように構成されている。そして、リカバリプログラム321は、バージョンデータ311Cが示すバージョンが、バージョンデータ321Bが示すバージョンよりも古い場合、クライアントプログラム321Aをクライアント装置110に送信し、クライアントプログラム321Aにより上位処理プログラム311Aをホスト装置120に送信することをクライアント装置110に実行させるように構成されている。このような構成によれば、クライアント装置110のハードウェアのバージョンを踏まえて、より確実にバックアップを実行することができる。
【0080】
また、実施形態において、クライアント装置110は、バックアップの実行にあたりクライアントプログラム321Aをホスト装置から受信した場合、クライアントプログラム321Aをクライアントプログラム310Aと置き換えることなく実行することで、上位処理プログラム311Aをホスト装置120に送信する。このような構成によれば、クライアント装置110におけるクライアントプログラム310Aからクライアントプログラム321Aへの不要な置き換えを回避することができる。
【0081】
なお、実施形態において、リカバリプログラム321は、リカバリの実行にあたりクライアントプログラム310Aのクライアントプログラム321Aへの置き換えをクライアント装置110に実行させた後、バックアップ領域322に記憶された上位処理プログラム311Aをクライアント装置110に送信するように構成されている。そして、リカバリプログラム321は、クライアント装置110に搭載された上位処理プログラム311Aのバックアップ領域322に記憶された上位処理プログラム311Aへの置き換えをクライアント装置110に実行させるように構成されている、このような構成によれば、クライアントプログラム310Aの置き換えに続いて上位処理プログラム311Aの置き換えを実行することで、適切なリカバリを実行することができる。
【0082】
ここで、実施形態において、リカバリプログラム321は、バージョンデータ311Cが示すバージョンが、バージョンデータ321Bが示すバージョンよりも新しい場合、リカバリプログラム321の最新版の確認を促す通知を出力するように構成されている。このような構成によれば、正常なリカバリが実行できない場合に、正常なリカバリを実行できる可能性があるリカバリプログラム321の最新版の確認を促すことができる。
【0083】
また、実施形態において、クライアントプログラム310Aは、クライアント装置110の起動時に、バージョンデータ311Cを、クライアント装置110に搭載される他のプログラムから参照可能なデータとして組み込むように構成されている。このような構成によれば、バージョンデータ311Cをクライアントプログラム310Aに適切に組み込むことができる。
【0084】
なお、上述した実施形態にかかるリカバリプログラム321は、必ずしもメモリ220またはストレージ230に予め記憶されている必要はない。たとえば、上述した実施形態にかかるリカバリプログラム321は、フレキシブルディスク(FD)のような各種の磁気ディスク、またはDVD(Digital Versatile Disk)のような各種の光ディスクなどといった、コンピュータで読み取り可能な記録媒体にインストール可能な形式または実行可能な形式で記録されたコンピュータプログラムプロダクトとして提供されてもよい。
【0085】
また、上述した実施形態にかかるリカバリプログラム321は、インターネットなどのネットワーク経由で提供または配布されてもよい。すなわち、上述した実施形態にかかるリカバリプログラム321は、は、インターネットなどのネットワークに接続されたコンピュータ上に格納された状態で、当該コンピュータからネットワーク経由でダウンロードする、といった形で提供されてもよい。
【0086】
以上、本開示の実施形態を説明したが、上述した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。上述した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。上述した実施形態およびその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0087】
100 情報処理システム
110 クライアント装置
120 ホスト装置
310A クライアントプログラム(第1のクライアントプログラム)
311A 上位処理プログラム(第3のクライアントプログラム)
311C バージョンデータ(第1のバージョンデータ)
321 リカバリプログラム
321A クライアントプログラム(第2のクライアントプログラム)
321B バージョンデータ(第2のバージョンデータ)
322 バックアップ領域