(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-04
(45)【発行日】2023-12-12
(54)【発明の名称】情報処理装置、更新制御方法、更新制御プログラム、及び情報処理システム
(51)【国際特許分類】
G06F 8/65 20180101AFI20231205BHJP
【FI】
G06F8/65
(21)【出願番号】P 2019199178
(22)【出願日】2019-10-31
【審査請求日】2022-08-24
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】中村 大樹
(72)【発明者】
【氏名】河崎 佑一
(72)【発明者】
【氏名】神田 倫希
(72)【発明者】
【氏名】小野 龍太郎
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2004-086769(JP,A)
【文献】特開2019-046360(JP,A)
【文献】米国特許第07620948(US,B1)
【文献】特開2016-053839(JP,A)
【文献】特開2005-339070(JP,A)
【文献】特開2011-065541(JP,A)
【文献】特開2017-001567(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/65-8/658
(57)【特許請求の範囲】
【請求項1】
複数のプログラムを実行する情報処理装置であって、
前記
複数のプログラムを更新する複数の更新処理の実行を制御する更新制御部と、
前記複数の更新処理のうち、1つ以上の更新処理によるプログラムの更新に失敗した場合、更新に失敗したプログラム
、及び前記更新に失敗したプログラムと依存関係にある他のプログラムの情報を含む復旧情報を取得する取得部と、
前記復旧情報に基づいて、前記更新に失敗したプログラムが実現する機能を復旧する復旧処理を実行する復旧制御部と、
を有
し、
前記復旧処理は、前記複数のプログラムのうち、前記更新に失敗したプログラムと、前記更新に失敗したプログラムと依存関係にある他のプログラムとを更新前の状態に戻す、
情報処理装置。
【請求項2】
前記更新制御部は、前記複数のプログラムを更新する複数のインストーラの情報と、前記複数のインストーラの依存関係を示す情報とを含む更新情報に基づいて、前記複数の更新処理を実行する、請求項1に記載の情報処理装置。
【請求項3】
前記
復旧制御部は、
前記更新に失敗したプログラムの更新処理をリトライ
し、
前記
リトライによる
、前記更新に失敗したプログラムの更新に失敗した場合に、前記
復旧処理を実行する、
請求項1又は2に記載の情報処理装置。
【請求項4】
前記更新制御部は、前記複数のプログラムのうち、一のプログラムの更新処理を実行するときに、前記一のプログラムと依存関係にある他のプログラムの更新に失敗している場合、前記一のプログラムの更新処理を中止する、請求項2に記載の情報処理装置。
【請求項5】
複数のプログラムを実行する情報処理装置が、
前記
複数のプログラムを更新する複数の更新処理の実行を制御する処理と、
前記複数の更新処理のうち、1つ以上の更新処理によるプログラムの更新に失敗した場合、更新に失敗したプログラム
、及び前記更新に失敗したプログラムと依存関係にある他のプログラムの情報を含む復旧情報を取得する処理と、
前記復旧情報に基づいて、前記更新に失敗したプログラムが実現する機能を復旧する復旧処理と、
を実行
し、
前記復旧処理は、前記複数のプログラムのうち、前記更新に失敗したプログラムと、前記更新に失敗したプログラムと依存関係にある他のプログラムとを更新前の状態に戻す、
更新制御方法。
【請求項6】
複数のプログラムを実行する情報処理装置に、
前記
複数のプログラムを更新する複数の更新処理の実行を制御する処理と、
前記複数の更新処理のうち、1つ以上の更新処理によるプログラムの更新に失敗した場合、更新に失敗したプログラム
、及び前記更新に失敗したプログラムと依存関係にある他のプログラムの情報を含む復旧情報を取得する処理と、
前記復旧情報に基づいて、前記更新に失敗したプログラムが実現する機能を復旧する復旧処理と、
を実行させ
、
前記復旧処理は、前記複数のプログラムのうち、前記更新に失敗したプログラムと、前記更新に失敗したプログラムと依存関係にある他のプログラムとを更新前の状態に戻す、
更新制御プログラム。
【請求項7】
複数のプログラムを実行する情報処理装置に、
前記
複数のプログラムを更新する複数の更新処理の実行を制御する処理、
前記複数の更新処理のうち、1つ以上の更新処理によるプログラムの更新に失敗した場合、更新に失敗したプログラム
、及び前記更新に失敗したプログラムと依存関係にある他のプログラムの情報を含む復旧情報を取得する処理、及び
前記復旧情報に基づいて、前記更新に失敗したプログラムが実現する機能を復旧する復旧処理、
を実行させる、更新制御プログラムと、
通信ネットワークを介して、前記情報処理装置と接続され、前記復旧情報を前記情報処理装置に提供する更新管理システムと、
を含
み、
前記復旧処理は、前記複数のプログラムのうち、前記更新に失敗したプログラムと、前記更新に失敗したプログラムと依存関係にある他のプログラムとを更新前の状態に戻す、
情報処理システム。
【請求項8】
複数のプログラムを実行する情報処理装置に、
前記
複数のプログラムを更新する複数の更新処理の実行を制御する処理、
前記複数の更新処理のうち、1つ以上の更新処理によるプログラムの更新に失敗した場合、更新に失敗したプログラム
、及び前記更新に失敗したプログラムと依存関係にある他のプログラムの情報を含む復旧情報を取得する処理、及び
前記復旧情報に基づいて、前記更新に失敗したプログラムが実現する機能を復旧する復旧処理、
を実行させる、更新制御プログラムと、
前記復旧情報を予め記憶した記憶媒体と、
を含
み、
前記復旧処理は、前記複数のプログラムのうち、前記更新に失敗したプログラムと、前記更新に失敗したプログラムと依存関係にある他のプログラムとを更新前の状態に戻す、
情報処理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、更新制御方法、更新制御プログラム、及び情報処理システムに関する。
【背景技術】
【0002】
情報処理装置が実行する、例えば、OS(Operating System)、アプリケーションプログラム、ドライバ等の複数のプログラムを、まとめて更新する技術が知られている。
【0003】
例えば、複数のプログラムの更新パッケージをダウンロードし、インストーラアプリケションを実行することにより、複数のインストーラを順番に実行して、複数のプログラムを更新するシステムが知られている(例えば、特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に開示された技術では、例えば、1つ以上のプログラムの更新に失敗した場合、ユーザに対して更新に失敗したことを表示するのみで、システムを正常に動作する状態に復旧することができないという問題がある。
【0005】
本発明の一実施形態は、上記の問題点に鑑みてなされたものであって、複数のプログラムを更新する情報処理装置において、複数のプログラムのうち、1つ以上のプログラムの更新に失敗した場合に、情報処理装置を正常に動作する状態に復旧できるようにする。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明の一実施形態に係る情報処理装置は、複数のプログラムを実行する情報処理装置であって、前記複数のプログラムを更新する複数の更新処理の実行を制御する更新制御部と、前記複数の更新処理のうち、1つ以上の更新処理によるプログラムの更新に失敗した場合、更新に失敗したプログラム、及び前記更新に失敗したプログラムと依存関係にある他のプログラムの情報を含む復旧情報を取得する取得部と、前記復旧情報に基づいて、前記更新に失敗したプログラムが実現する機能を復旧する復旧処理を実行する復旧制御部と、を有し、前記復旧処理は、前記複数のプログラムのうち、前記更新に失敗したプログラムと、前記更新に失敗したプログラムと依存関係にある他のプログラムとを更新前の状態に戻す。
【発明の効果】
【0007】
本発明の一実施形態によれば、複数のプログラムを更新する情報処理装置において、複数のプログラムのうち、1つ以上のプログラムの更新に失敗した場合に、情報処理装置を正常に動作する状態に復旧できるようになる。
【図面の簡単な説明】
【0008】
【
図1】一実施形態に係る通信システムにおける通信ルートの例を示す概略図である。
【
図2】一実施形態に係る電子黒板の使用イメージについて説明するための図である。
【
図3】一実施形態に係る電子黒板のハードウェア構成の例を示す図である。
【
図4】一実施形態に係るコンピュータのハードウェア構成の例を示す図である。
【
図5】一実施形態に係るビデオ会議端末のハードウェア構成の例を示す図である。
【
図6】第1の実施形態に係る情報処理システムのシステム構成の例を示す図である。
【
図7】第1の実施形態に係るインストーラの依存関係について説明するための図である。
【
図8】第1の実施形態に係る情報処理システムの機能構成の例を示す図である。
【
図9】第1の実施形態に係る更新ファイルの一例を示す図である。
【
図10】第1の実施形態に係る復旧ファイルの一例を示す図である。
【
図11】第1の実施形態に係るプログラムの状態遷移の例を示す図である。
【
図12】第1の実施形態に係る更新処理の流れについて説明するための図である。
【
図13】第1の実施形態に係る更新制御処理の例を示すフローチャートである。
【
図14】第1の実施形態に係る結果表示画面の例を示す図である。
【
図15】第1の実施形態に係る復旧処理の一例を示すフローチャートである。
【
図16】第1の実施形態に係る復旧処理の別の一例を示すフローチャートである。
【
図17】第2の実施形態に係る情報処理システムのシステム構成の例を示す図である。
【
図18】第2の実施形態に係る記憶媒体に記憶される電子ファイルの例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【0010】
<通信システムの概略>
本実施形態に係る情報処理システムについて説明する前に、本実施形態の利用シーンの一例である通信システムの概略について説明する。
【0011】
(通信ルート)
まず、
図1を用いて、複数の電子黒板1a、1b間で描画しながらビデオ会議を行うための通信システム100について説明する。
図1は、一実施形態に係る通信システムにおける通信ルートの例を示す概略図である。なお、「ビデオ会議」は、「テレビ会議」、「遠隔会議」等と呼ばれる場合がある。また、ここでは、一例として、ビデオ会議について説明するが、ビデオ会議は、打ち合せや単なる会話等であっても良い。
【0012】
通信システム100は、例えば、複数の電子黒板1a、1b、中継装置3、通信管理システム5、及び画像保存装置7等によって構築されている。
【0013】
電子黒板1a、1bは、通話用の映像データ及び音データ、共有用の画像データ、及びストロークデータ等のコンテンツデータの相互通信を行う端末装置であり、IWB(Interactive White Board)とも呼ばれる。
【0014】
なお、通信システム100は、2つの電子黒板1a、1bに限らず、3つ以上の電子黒板を有していても良い。また、以下の説明の中で、通信システム100に含まれる複数の電子黒板のうち、任意の電子黒板を示す場合、「電子黒板1」を用いる。
【0015】
なお、電子黒板1は、通信システム100で用いられる端末装置の一例である。端末装置は、例えば、ビデオ会議に用いられるビデオ会議端末であっても良いし、通信システム100に対応するアプリケーションプログラムがインストールされた、PC(Personal Computer)、タブレット端末、スマートフォン等の情報端末であっても良い。
【0016】
ストロークデータは、ストローク画像を再生(再現)するために必要なデータであり、座標データ、線の幅データ、線の色データ、ベクトルデータ等が含まれる。また、電子黒板1a、1bは、通話用の映像データ及び音データの送受信により、相手側の映像及び音を再生することで、ビデオ通話が可能となる。
【0017】
電子黒板1a、1bは、共有用の資料画像の画像データを送受信することにより、通信システム100を利用する利用者が、同じ資料画像を共有することができる。資料画像は、電子黒板1のディスプレイに表示される画像であり、例えば、会議の資料、ディスプレイに表示される背景画像、ディスプレイ画面をキャプチャされた場合のキャプチャ画面等の画像等が含まれ得る。
【0018】
また、電子黒板1a、1bは、共有用のストローク画像のストロークデータを送受信することにより、通信システムを利用する参加者が、同じストローク画像を共有することができる。ストローク画像は、利用者によって電子ペン等で手書きストロークにより描画された線等を示す画像である。ストローク画像は、ディスプレイ上の座標を特定する点を示すストロークデータによって表示される。
【0019】
図1では、電子黒板1a、1bの一例としてビデオ会議機能が搭載された電子黒板が示されている。なお、映像データの画像は、動画であっても良いし、静止画であっても良い。
【0020】
また、以下の説明において、ビデオ会議の開始を要求する要求元の電子黒板1を「開始端末」と呼び、要求先である宛先(中継先)の電子黒板1を「宛先端末」と呼ぶ。例えば、
図1において、電子黒板1aから電子黒板1bにビデオ会議の開始を要求する場合、電子黒板1aが開始端末となり、電子黒板1bが宛先端末となる。ただし、電子黒板1bからビデオ会議の開始を要求する場合は、電子黒板1bが開始端末となり、電子黒板1aが宛先端末となる。なお、各電子黒板1a、1bは、複数の事業所間での通信や、同じ事業所内の異なる部屋間での通信だけでなく、同じ部屋内での通信や、屋外と屋内、又は屋外と屋外での通信で使われても良い。
【0021】
中継装置3は、コンピュータによって構成され、複数の電子黒板1a、1b間で、通話用のコンテンツデータを中継する処理を行う。
【0022】
通信管理システム5は、コンピュータによって構成され、電子黒板1a、1bからのログインの認証、電子黒板1a、1bの通信状況の管理、宛先リストの管理、及び中継装置3の通信状況等を一元的に管理する。また、通信管理システム5は、複数の電子黒板1a、1b間で、共有用のストロークデータを中継する。
【0023】
画像保存装置7は、コンピュータによって構成され、電子黒板1aからアップロードされた共有用の資料画像の画像データを保存して、電子黒板1bにダウンロードする。また、この逆も実行される。即ち、画像保存装置7は、電子黒板1bからアップロードされた画像データを保存して、電子黒板1aにダウンロードする。
【0024】
なお、中継装置3、通信管理システム5及び画像保存装置7は、単一のコンピュータによって構築されても良いし、各部(機能又は手段)を分割して任意に割り当てられた複数のコンピュータによって構築されていても良い。
【0025】
また、通信システム100において、電子黒板1a、1bとの間では、通信管理システム5を介して、各種の管理情報を送受信するための管理情報用セッションsei(以下、「セッションsei」と呼ぶ)が確立される。また、電子黒板1a、1bとの間では、中継装置3を介して、高解像度の画像データ、中解像度の画像データ、低解像度の画像データ、及び音データの4つの各データを送受信するための4つのセッションが確立される。
図1では、これら4つのセッションをまとめて、画像・音データ用セッションsed(以下、「通信セッション」と呼ぶ)として示している。なお、通信セッションは、必ずしも4つのセッションである必要はなく、4つのセッション数より少ない又は多いセッション数であっても良い。また、開始端末と宛先端末との間で、中継装置3を介さずに、直接、通信セッションを確立しても良い。
【0026】
さらに、通信システム100において、電子黒板1a、1bとの間では、セッションseiを利用して、ストロークデータの送受信を行うことができる。
【0027】
ここで、本実施形態で扱われる映像データの映像の解像度について説明する。低解像度の映像データは、例えば、横が160画素、縦が120画素から成り、ベース画像となる。中解像度の映像データは、横が320画素、縦が240画素から成る。高解像度の映像データは、例えば、横が640画素、縦が480画素から成る。このうち、狭帯域経路を経由する場合には、ベース画像となる低解像度の映像データのみから成る低画質の映像データが中継される。帯域が比較的広い場合には、ベース画像となる低解像度の映像データ、及び中解像度の映像データから成る中画質の映像データが中継される。また、帯域が非常に広い場合には、ベース画像となる低解像度の映像データ、中解像度の映像データ、及び高解像度の映像データから成る高画質の映像データが中継される。音データは、映像データに比べてデータ量が少ないため、狭帯域経路であっても中継される。
【0028】
(電子黒板の使用イメージ)
図2は、一実施形態に係る電子黒板の使用イメージについて説明するための図である。電子黒板1は、
図2に示すように、下部側に複数のキャスタが設けられた脚部151、脚部151の上部側に設けられた支柱152、支柱152上部側に設けられた電子黒板1の本体153、及び本体153の前面に設けられたディスプレイ160等を有している。本体153には、後述するCPU101等が内蔵されている。そして、利用者は、電子ペン140等を用いて、ディスプレイ160に文字等のストローク画像を入力(描画)することができる。
【0029】
<ハードウェア構成>
次に、本実施形態に係る各装置のハードウェア構成について説明する。
【0030】
(電子黒板のハードウェア構成)
図3は、一実施形態に係る電子黒板のハードウェア構成の例を示す図である。なお、電子黒板1は、端末装置の一例である。
【0031】
図3に示されているように、電子黒板1は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、SSD(Solid State Drive)104、ネットワークI/F(Interface)105、及び、外部機器接続I/F106等を備えている。
【0032】
これらのうち、CPU101は、電子黒板1全体の動作を制御する演算装置である。ROM102は、CPU101やIPL(Initial Program Loader)等のCPU101の起動に用いられるプログラムを記憶する不揮発性のメモリである。RAM103は、CPU101のワークエリア等として使用される揮発性のメモリである。SSD104は、電子黒板1用のプログラム等の各種データを記憶する不揮発性の大容量の記憶装置である。
【0033】
ネットワークI/F105は、電子黒板1を通信ネットワークに接続し、通信を行うための通信インタフェースである。外部機器接続I/F106は、各種の外部機器を接続するためのインタフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリ131、外付け機器(マイク132、スピーカ133、カメラ134)等が含まれる。
【0034】
また、電子黒板1は、キャプチャデバイス111、GPU(Graphics Processing Unit)112、ディスプレイコントローラ113、接触センサ114、センサコントローラ115、電子ペンコントローラ116、近距離通信回路119、及び近距離通信回路119のアンテナ119a、電源スイッチ117及び選択スイッチ類118等を備えている。
【0035】
これらのうち、キャプチャデバイス111は、外付けのPC(Personal Computer)150のディスプレイ等に表示されている表示画面等を、静止画、又は動画としてキャプチャ(取得)する。GPU112は、グラフィクスを専門に扱う半導体チップ(プロセッサ)である。ディスプレイコントローラ113は、GPU112からの出力画像をディスプレイ160等へ出力するために画面表示の制御及び管理を行う。接触センサ114は、ディスプレイ160上に電子ペン140やユーザの手H等が接触したことを検知する。センサコントローラ115は、接触センサ114の処理を制御する。
【0036】
接触センサ114は、例えば、赤外線遮断方式等による座標の入力及び座標の検出を行う。この座標の入力及び座標の検出する方法は、ディスプレイ160の上側両端部に設置された2つ受発光装置が、ディスプレイ160に平行して複数の赤外線を放射し、ディスプレイ160の周囲に設けられた反射部材によって反射されて、受光素子が放射した光の光路と同一の光路上を戻って来る光を受光する方法である。接触センサ114は、物体によって遮断された2つの受発光装置が放射した赤外線のIDをセンサコントローラ115に出力し、センサコントローラ115が、物体の接触位置である座標位置を特定する。電子ペンコントローラ116は、電子ペン140と通信することで、ディスプレイ160へのペン先のタッチやペン尻のタッチの有無を判断する。近距離通信回路119は、NFC(Near Field Communication)やBluetooth(登録商標)等の近距離無線通信を行う通信回路である。
【0037】
電源スイッチ117は、電子黒板1の電源のオン/オフを切り換えるためのスイッチである。選択スイッチ類118は、例えば、ディスプレイ160の表示の明暗や色合い等を調整するためのスイッチ群である。
【0038】
さらに、電子黒板1は、バスライン120を備えている。バスライン120は、
図3に示されているCPU101等の各構成要素を電気的に接続するためのアドレスバス、データバス、及び各種の制御信号等を含む。
【0039】
なお、接触センサ114は、赤外線遮断方式に限らず、静電容量の変化を検知することにより接触位置を特定する静電容量方式のタッチパネル、対向する2つの抵抗膜の電圧変化によって接触位置を特定する抵抗膜方式のタッチパネル等を用いても良い。また、接触センサ114は、接触物体が表示部に接触することによって生じる電磁誘導を検知して接触位置を特定する電磁誘導方式のタッチパネル等の種々の検出手段を用いても良い。さらに、電子ペンコントローラ116が、電子ペン140のペン先及びペン尻だけでなく、電子ペン140のユーザが握る部分や、その他の電子ペンの部分におけるタッチの有無を判断するようにしても良い。
【0040】
(管理装置、中継装置、画像保存装置、及びPC等のハードウェア構成>
通信管理システム5、中継装置3、画像保存装置7、及びPC150等は、例えば、
図4に示すようなコンピュータ400のハードウェア構成を有している。或いは、通信管理システム5、中継装置3、及び画像保存装置7は、複数のコンピュータ400によって実現されるものであっても良い。
【0041】
図4は、一実施形態に係るコンピュータのハードウェア構成の例を示す図である。コンピュータ400は、例えば、CPU401、ROM402、RAM403、HD(Hard Disk)404、HDD(Hard Disk Drive)コントローラ405、ディスプレイ406、外部機器接続I/F407、ネットワークI/F408、キーボード409、ポインティングデバイス410、DVD-RW(Digital Versatile Disk ReWritable)ドライブ412、メディアI/F414、及び、バスライン415等を備えている。
【0042】
これらのうち、CPU401は、コンピュータ400の全体の動作を制御する演算装置である。ROM402は、IPL等のCPU401の駆動に用いられるプログラムを記憶する不揮発性のメモリである。RAM403は、CPU401のワークエリア等として使用される揮発性のメモリである。HD404は、OS(Operating System)やアプリケーション等のプログラムや、各種のデータ等を記憶する大容量の記憶装置である。HDDコントローラ405は、CPU401の制御にしたがってHD404に対する各種データの読み出し又は書き込みを制御する。
【0043】
ディスプレイ406は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する表示デバイスである。外部機器接続I/F407は、各種の外部機器を接続するためのインタフェースである。ネットワークI/F408は、通信ネットワークを利用してデータ通信をするための通信インタフェースである。キーボード409は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス410は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。
【0044】
DVD-RWドライブ412は、DVD-RW411に対するデータの読み出し又は書き込み(記憶)を制御する。なお、DVD-RWドライブ412は、DVD-RW411ではなく、BD-RE等のディスクに対するデータの読み出し又は書き込み(記憶)を制御しても良い。メディアI/F414は、フラッシュメモリ等のメディア413に対するデータの読み出し又は書き込み(記憶)を制御する。バスライン415は、
図4に示されているCPU401等の各構成要素を電気的に接続するためのアドレスバス、データバス、及び各種の制御信号等を含む。
【0045】
なお、コンピュータ400が、通信管理システム5である場合、HD504には、例えば、通信管理用プログラム等の各種データが記憶されている。また、コンピュータ400が、中継装置3である場合、HD504には、例えば、中継用プログラム等の各種データが記憶されている。さらに、コンピュータ400が、画像保存装置7である場合、HD504には、例えば、画像保存用プログラム等の各種データが記憶されている。
【0046】
<ビデオ会議端末のハードウェア構成>
図3は、一実施形態に係るビデオ会議端末のハードウェア構成の例を示す図である。ビデオ会議端末10は、コンピュータの構成を備えており、例えば、CPU501、ROM502、RAM503、フラッシュメモリ504、及びSSD505等を有する。また、ビデオ会議端末10は、メディアI/F507、操作ボタン508、電源スイッチ509、ネットワークI/F511、カメラ512、撮像素子I/F513、マイク514、スピーカ515、及び音入出力I/F516等を有する。さらに、ビデオ会議端末10は、ディスプレイI/F517、外部機器接続I/F518、近距離通信回路519、近距離通信回路519用のアンテナ519a、及びバスライン510等を有する。
【0047】
CPU501は、例えば、ROM502や、フラッシュメモリ504等からプログラムやデータを読出し、処理を実行することで、ビデオ会議端末10が備える各機能を実現する演算装置である。ROM502は、例えば、IPL等のCPU501の起動に用いられるプログラム等を予め記憶した不揮発性のメモリである。RAM503は、CPU301のワークエリア等として利用される揮発性のメモリである。
【0048】
フラッシュメモリ504は、例えば、OS、アプリケーションプログラム、及び各種のデータ等を記憶するストレージデバイスである。SSD505は、CPU501の制御に従ってフラッシュメモリ504に対する各種データの読み出し、書き込みを制御する。メディアI/F507は、例えば、メモリカード等のメディア506に対するデータの読み出し又は書き込み(記憶)を制御する。
【0049】
操作ボタン508は、ビデオ会議端末10の利用者の入力操作を受け付ける入力装置である。電源スイッチ509は、ビデオ会議端末10の電源のオン/オフを切り替えるためのスイッチである。ネットワークI/F511は、通信ネットワークを利用して通信するための通信インタフェースである。
【0050】
カメラ512は、CPU501の制御に従って被写体を撮像するための撮像装置である。撮像素子I/F513は、カメラ512による撮像を制御するとともに、撮像したデータを所定の画像データ(映像データ)に変換する。マイク514は、取得した音を電気信号に変換する。スピーカ515は、音信号を音に変換して出力する。音入出力I/F516は、マイク514及びスピーカ515による音の入出力を制御する。
【0051】
ディスプレイI/F517は、CPU501の制御に従って、ディスプレイI/F517に接続されるディスプレイ等の表示装置に画像データを出力する。外部機器接続I/F518は、各種の外部機器を接続するためのインタフェースである。近距離通信回路519は、アンテナ519aを介して、例えば、NFC(Near Field Communication)やBluetooth(登録商標)等の近距離無線通信を行う通信回路である。バスライン510は、上記の各構成に共通に接続され、アドレス信号、データ信号、及び各種の制御信号等を伝達する。
【0052】
なお、メディア506は、例えば、各種のメモリカード等の記憶媒体である。メディア506は、ビデオ会議端末10に対して着脱自在な構成となっている。
【0053】
[第1の実施形態]
<情報処理システムのシステム構成>
続いて、第1の実施形態に係る情報処理システムのシステム構成について説明する。
【0054】
図6は、第1の実施形態に係る情報処理システムのシステム構成の例を示す図である。情報処理システム600は、
図1~5で説明した通信システム100に加えて、例えば、通信ネットワーク601を介して、通信システム100と通信可能に接続される更新管理サーバ611、情報提供サーバ612等を含む。なお、更新管理サーバ611、及び情報提供サーバ612は、1つの更新管理システム610であっても良いし、複数のコンピュータによって実現されるシステムであっても良い。
【0055】
情報処理システム600は、例えば、電子黒板1、ビデオ会議端末10等の複数のユーザによって利用される情報処理装置に組み込まれた複数のプログラムを更新するシステムである。
【0056】
なお、ここでは、情報処理システム600によるプログラムの更新対象となる情報処理装置が、電子黒板1であるものとして以下の説明を行うが、情報処理装置は、複数のプログラムを実行する装置であれば良く、電子黒板1に限られない。例えば、情報処理装置は、
図6に示した、ビデオ会議端末10、通信管理システム5、中継装置3、画像保存装置7等であっても良い。また、情報処理装置は、PJ(Projector:プロジェクタ)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車(Connected Car)等であっても良い。さらに、情報処理装置は、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPC、デスクトップPC等の情報端末であっても良い。
【0057】
また、情報処理システム600には、通信管理システム5、中継装置3、画像保存装置7が含まれていなくても良い。
【0058】
更新管理サーバ611は、例えば、
図4に示すようなコンピュータ400の構成を有する情報処理装置、又は複数の情報処理装置を含むシステムである。更新管理サーバ611は、電子黒板(情報処理装置の一例)1等が実行する複数のプログラムを更新するための更新情報、更新制御プログラム、インストーラ等の電子ファイル(以下、更新ファイルと呼ぶ)を、記憶部等に記憶して管理する。また、更新管理サーバ611は、例えば、電子黒板1等からの要求に応じて、更新ファイルの一部、又は全部を電子黒板1等に提供する。
【0059】
電子黒板1等は、例えば、夜間等の予め定められた時間帯、又は更新管理サーバ611から通知された日時等に、更新管理サーバ611から更新ファイルを取得して、電子黒板1が実行する複数のプログラムを更新する更新処理を実行する。
【0060】
ただし、これだけでは、例えば、特許文献1に開示されるような従来の技術と同様に、1つ以上のプログラムの更新に失敗した場合、プログラム間の依存関係により、電子黒板1等が正常に動作しない状態になってしまう場合がある。
【0061】
図7は、一実施形態に係るインストーラの依存関係について説明するための図である。
図7において、「種類」は、インストーラ(更新プログラム)の種類を示している。「ID」は、インストーラを識別する識別情報である。「依存関係」は、各インストーラと他のインストーラとの依存関係を示す情報である。
【0062】
図7の例では、「アプリケーションのインストーラ」が「ドライバのインストーラ」と依存関係にあり、かつ「ドライバのインストーラ」が「アプリケーションのインストーラ」と依存関係にあることが示されている。
【0063】
ここで、依存関係にあるとは、例えば、「アプリケーションのインストーラ」でインストールされるアプリケーションが正常に動作するためには、「ドライバのインストーラ」によるドライバのインストールに成功していることが前提になることを示している。同様に、「ドライバのインストーラ」でインストールされるドライバが正常に動作するためには、「アプリケーションのインストーラ」によるアプリケーションのインストールに成功していることが前提になることを示している。
【0064】
従って、情報処理システム600が、
図8の3つの種類のインストーラを用いて、電子黒板1の更新処理を実行し、ドライバのインストールに失敗した場合、アプリケーションの更新に成功していたとしても、アプリケーションが正常に動作しない恐れがある。同様に、アプリケーションのインストールに失敗した場合、ドライバの更新に成功していたとしても、ドライバが正常に動作しない恐れがある。
【0065】
しかし、電子黒板1は、複数のユーザが共用する端末装置なので、例えば、更新の翌日に、ユーザが電子黒板1を起動したとき、電子黒板1が正常に動作しないことは望ましくない。
【0066】
そこで、本実施形態に係る情報処理システム600は、例えば、電子黒板1等が、1つ以上のプログラムの更新に失敗した場合に、電子黒板1等が正常に動作する状態に復旧するための情報、電子ファイル等を提供する情報提供サーバ612を有している。
【0067】
情報提供サーバ612は、例えば、
図4に示すようなコンピュータ400の構成を有する情報処理装置、又は複数の情報処理装置を含むシステムである。情報提供サーバ612は、例えば、電子黒板1等が1つ以上のプログラムの更新に失敗した場合に、電子黒板1が正常に機能するように復旧するための復旧情報、電子ファイル等(以下、復旧ファイルと呼ぶ)を、記憶部等に記憶して管理する。また、情報提供サーバ612は、例えば、電子黒板1等からの要求に応じて、電子黒板1が正常に機能するように復旧するための復旧ファイルの一部、又は全部を電子黒板1等に提供する。
【0068】
電子黒板1等は、1つ以上のプログラムの更新に失敗した場合に、電子黒板1等が正常に動作する状態に復旧するための情報、電子ファイル等を情報提供サーバ612から取得して、復旧処理を実行する。なお、復旧処理の具体的な処理内容については後述する。
【0069】
このように、本実施形態に係る情報処理システム800によれば、電子黒板1等が実行する複数のプログラムの更新に失敗した場合でも、電子黒板1が次に起動されたときに、正常に動作する状態に復旧する復旧処理が実行される。
【0070】
<機能構成>
図8は、第1の実施形態に係る情報処理システムの機能構成の例を示す図である。ここでは、プログラムの更新対象となる情報処理装置が、電子黒板1であるものとして以下の説明を行う。ただし、これに限られず、プログラムの更新対象となる情報処理装置は、ビデオ会議端末10、通信管理システム5、中継装置3、画像保存装置7等、複数のプログラムを実行する他の情報処理装置であっても良い。
【0071】
(更新管理サーバの機能構成)
更新管理サーバ611は、例えば、
図4のCPU401で所定のプログラムを実行することにより、通信部801、及び更新ファイル管理部802等を実現している。なお、通信部801、及び更新ファイル管理部802等のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。また、更新管理サーバ611は、例えば、
図4のHD404、HDDコントローラ405、RAM403等によって実現される記憶部803を有している。
【0072】
通信部801は、例えば、
図4のCPU401で実行されるプログラム、及びネットワークI/F408等によって実現され、更新管理サーバ611を通信ネットワーク601に接続して、例えば、電子黒板1等の情報処理装置と通信を行う。
【0073】
更新ファイル管理部802は、例えば、電子黒板1が実行する複数のプログラムを更新するための更新ファイルを、記憶部803等に記憶して管理する。更新ファイルは、例えば、電子黒板1を提供する提供業者等が、予め用意しておくものとする。
【0074】
図9(A)に、更新ファイル管理部802が管理する更新ファイルの一例を示す。
図9(A)の例では、更新ファイル900には、更新情報901、更新制御プログラム902、複数のインストーラ903a、903b、903c等が含まれる。なお、以下の説明において、複数のインストーラ903a、903b、903cのうち、任意のインストーラを示す場合、「インストーラ903」を用いる。
【0075】
更新情報901は、例えば、電子黒板1の複数のプログラムの更新に必要な情報が記憶された電子ファイルであり、
図9(A)の例では、「MetaData.json」というファイル名が付与されている。更新情報901の一例のイメージを、
図9(B)に示す。
【0076】
図9(B)の例では、更新情報901には、電子黒板1の複数のプログラムの更新に用いられる、OSの更新パッチのインストーラ情報911、アプリケーションのインストーラ情報912、及びドライバのインストーラ情報913等が含まれる。
【0077】
図9(B)の例では、OSの更新パッチのインストーラ情報911には、例えば、「type」、「version」、「url」等の情報が含まれている。「type」は、インストーラ903の種別を示す情報である。「version」は、インストーラ903、又はインストーラ903によってインストールされるプログラムのバージョンを示す情報である。「url」は、インストーラ903の取得先、及びインストーラ903のファイル名を示す情報である。
【0078】
また、
図9(B)の例では、アプリケーションのインストーラ情報912、及びドライバのインストーラ情報913には、「type」、「version」、「url」等の情報に加えて、「dependency」の情報が含まれている。「dependency」の情報は、
図7で説明したインストーラ903の間の依存関係を示す情報である。
【0079】
図9(B)の例では、アプリケーションのインストーラ情報912には、アプリケーションのインストーラ903bが、ドライバのインストーラ903cと依存関係にあることが定義されている。同様に、ドライバのインストーラ情報913には、ドライバのインストーラ903cが、アプリケーションのインストーラ903bと依存関係にあることが定義されている。
【0080】
更新制御プログラム902は、例えば、複数のインストーラ903a、903b、903cを順次に実行させて、電子黒板1のプログラムを更新するアプリケーションプログラム等であり、
図9(A)の例では、「Executer.exe」というファイル名が付与されている。
【0081】
OSの更新パッチのインストーラ903aは、OSの更新パッチを電子黒板1にインストールするためのプログラムであり、
図9(A)の例では、「SecurityPatch12345.exe」というファイル名が付与されている。アプリケーションのインストーラ903bは、最新版(又は更新版)のアプリケーションを電子黒板1にインストールするためのプログラムであり、
図9(A)の例では、「AppInstaller1.2.345.exe」というファイル名が付与されている。ドライバのインストーラ903cは、最新版(又は更新版)のドライバを電子黒板1にインストールするためのプログラムであり、
図9(A)の例では、「DriverInstaller12.34.5.exe」というファイル名が付与されている。
【0082】
例えば、電子黒板1が備えるCPU101で、各インストーラ903を実行することにより、インストーラ903に対応するプログラムの更新処理が実行される。また、各インストーラ903は、対応するプログラムをアンインストールする機能、及びインストールに失敗したときに、失敗理由をエラーコードで返す機能等を有している。
【0083】
更新ファイル管理部802は、例えば、電子黒板1からの要求に応じて、更新ファイル900の一部、又は全部を、電子黒板1に提供する。また、更新ファイル管理部802は、新たな更新ファイル900がリリースされた場合、旧バージョンの更新ファイル900に代えて、新たな更新ファイル900を、記憶部803等に記憶して管理する。
【0084】
なお、
図9(A)に示す更新ファイル900に含まれるインストーラ903の種別、及びインストーラ903の数は一例である。更新ファイル900には、1つ以上の任意の種類、及び数のインストーラ903が含まれていて良い。
【0085】
(情報提供サーバの機能構成)
情報提供サーバ612は、例えば、
図4のCPU401で所定のプログラムを実行することにより、
図8の通信部811、及び復旧ファイル管理部812等を実現している。なお、通信部811、及び復旧ファイル管理部822等のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。また、情報提供サーバ612は、例えば、
図4のHD404、HDDコントローラ405、RAM403等によって実現される記憶部813を有している。
【0086】
通信部811は、例えば、
図4のCPU401で実行されるプログラム、及びネットワークI/F408等によって実現され、情報提供サーバ612を通信ネットワーク601に接続して、例えば、電子黒板1等の情報処理装置と通信を行う。
【0087】
復旧ファイル管理部812は、例えば、電子黒板1が1つ以上のプログラムの更新に失敗した場合に、電子黒板1が正常に機能するように復旧するための復旧情報、電子ファイル等の復旧ファイルを、記憶部813等に記憶して管理する。
【0088】
図10(A)に、復旧ファイル管理部812が管理する復旧ファイル1000の一例を示す。
図10(A)の例では、復旧ファイル1000には、複数の復旧情報1001a、1001b、1001c、複数の復旧制御プログラム1002a、1002b、DLL(Dynamic Link Library)ファイル1003、バッチファイル1004等が含まれる。また、復旧ファイル1000には、旧バージョンの復旧情報1005a、1005b等が含まれていても良い。
【0089】
なお、以下の説明において、複数の復旧情報1001a、1001b、1001cのうち、任意の復旧情報を示す場合、「復旧情報1001」を用いる。また、複数の復旧制御プログラム1002a、1002bのうち、任意の復旧制御プログラムを示す場合、「復旧制御プログラム1002」を用いる。さらに、旧バージョンの復旧情報1005a、1005bのうち、任意の旧バージョンの復旧情報を示す場合、「旧バージョンの復旧情報1005」を用いる。
【0090】
復旧情報1001は、例えば、電子黒板1で1つ以上のプログラムの更新に失敗したときに、インストーラから出力されるエラーコードと、エラーコードに対応する対処方法とを予め記憶した情報である。復旧情報1001は、例えば、電子黒板1を提供する提供業者等が、予め用意しておくものとする。
【0091】
図10(B)に、復旧情報1001に含まれる情報の一例のイメージを示す。復旧情報1001には、例えば、
図10(B)に示すように、エラーコードと、エラーコードに対応する対処方法との対応関係が記憶されている。ただし、復旧情報1001は、表形式である必要はなく、例えば、文字列等で、エラーコードと、エラーコードに対応する対処方法との対応関係が定義されていても良い。
【0092】
復旧制御プログラム1002は、インストーラ903によって更新されたプログラムを復旧して、「更新スキップ」状態にするプログラムである。
【0093】
図11は、第1の実施形態に係るプログラムの状態遷移の例を示す図である。「更新前」状態1101から、インストーラ903を実行して、プログラムの更新に成功すると、プログラムは、「更新成功」状態1102に遷移する。また、この状態から、復旧制御プログラム1002を実行することにより、プログラムは、「更新スキップ」状態1104に遷移する。
【0094】
また、「更新前」状態1101から、インストーラ903を実行して、プログラムの更新に失敗すると、プログラムは、「更新失敗」状態1103に遷移する。さらに、「更新前」状態1101から、インストーラ903の実行を中止して、更新をスキップした場合、プログラムは、「更新スキップ」状態1104に遷移する。
【0095】
DLLファイル1003は、例えば、プログラムの更新をするために、電子黒板1が有している必要がある電子ファイルの一例である。例えば、更新に必要なDLLファイル1003が、破損、又は欠落しているために、プログラムの更新に失敗した場合、インストーラ903は、DLLファイル1003がないことを示すエラーコードを出力する。この場合、DLLファイル1003を電子黒板1にダウンロードし、(必要に応じて再起動した後に)インストーラ903を再実行する。これにより、プログラムの更新に成功する可能性がある。
【0096】
バッチファイル1004は、例えば、複数の処理をまとめて順次に実行する処理を記述した電子ファイルである。電子黒板1は、バッチファイル1004を実行することにより、プログラムの復旧に必要な一連の処理を実行しても良い。
【0097】
旧バージョンの復旧情報1005は、旧バージョンのプログラムのインストールに失敗した場合の復旧情報1005である。例えば、復旧制御プログラム1002を実行して、プログラムを更新前の状態に戻すときに、何らかのエラーが発生した場合、旧バージョンの復旧情報1005を参照して、復旧処理をリトライすることができる。
【0098】
(電子黒板の機能構成)
電子黒板1は、例えば、
図3のCPU101で所定のプログラムを実行することにより、
図8の送受信部11、受付部12、映像・音処理部13、表示制御部14、画像処理部15、情報送信部16、近距離通信部17、更新管理部18、及び記憶・読出処理部19等を実現している。また、電子黒板1は、例えば、
図3のCPU101で、前述した更新制御プログラム902を実行することにより、更新制御部21、取得部22、及び復旧制御部23等を実現している。さらに、電子黒板1は、例えば、
図3のRAM103、SSD104等によって実現される記憶部30を有している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
【0099】
送受信部11は、通信ネットワーク601を介して他の端末、装置又はシステムと各種データ(または情報)の送受信を行う。また、送受信部11は、開始部としての役割も果たし、通信管理システム5等へのログイン処理や、他の端末装置と通信を開始する処理を行う。
【0100】
受付部12は、利用者から電子ペン140等による各種入力を受け付ける。例えば、受付部12は、操作の対象となる1つ以上のストロークデータを指定する指定操作、ストロークデータに関する変更操作、ストローク画像の描画操作等を受け付ける。
【0101】
映像・音処理部13は、ビデオ会議機能の主な処理を行う。例えば、映像・音処理部13は、マイク132の出力信号及びカメラ134の出力信号に基づき、映像データ及び音データのエンコード等のデジタル処理を行う。また、映像・音処理部13は、送受信部11で受信された映像データ及び音データに基づき、映像信号の生成、音信号の生成等を行う。さらに、映像・音処理部13は、解像度の異なる映像データを組み合わせる処理等も行う。
【0102】
表示制御部14は、ディスプレイ160に映像信号(画像信号)等を出力して、表示画面を表示させるための制御を行う。
【0103】
画像処理部15は、電子黒板機能の主な処理を行う。例えば、画像処理部15は、受付部12によって受け付けられた電子ペン140等のストロークに基づいてストローク画像及びストロークデータを作成する処理や、送受信部11によって受信されたストロークデータに基づいてストローク画像を作成する処理等を行う。また、画像処理部15は、送受信部11で受信された資料画像の画像データに基づき、画像信号を生成する処理も行う。
【0104】
情報送信部16は、画像処理部15が作成したストロークデータを、通信管理システム5に送信する。また、情報送信部16は、受付部12が受け付けた、操作の対象となる1つ以上のストロークデータを指定する指定操作に応じて、1つ以上のストロークデータを指定するグループ操作情報を、通信管理システム5に送信する。
【0105】
近距離通信部17は、近距離通信部を有する各端末との間で、近距離無線通信により、データの取得及び提供を行う。
【0106】
更新管理部18は、電子黒板(情報処理装置の一例)1が実行する複数のプログラムの更新を管理する。例えば、更新管理サーバ611から通知された日時、又は所定の時間帯等に、更新管理システム610から、更新制御プログラムを含む更新ファイルを取得する。例えば、更新管理部18は、更新管理サーバ611から、
図9(B)に示すような更新情報901、更新制御プログラム902等を取得し、取得した更新情報901に基づいて、複数のインストーラ903a、903b、903c等を取得する。
【0107】
また、更新管理部18は、取得した更新制御プログラム902を実行するとともに、電子黒板1のアプリケーションを終了することにより、アプリケーションを含む複数のプログラムの更新処理を開始させる。
【0108】
更新制御部21は、例えば、
図3のCPU101で実行される更新制御プログラム902によって実現され、電子黒板1が実行するプログラムのうち、更新対象となるプログラムを更新する複数の更新処理の実行を制御する。例えば、更新制御部21は、更新対象となるプログラムを電子黒板1にインストールするための複数のインストーラ903a、903b、903c等を、順次に実行する。
【0109】
好ましくは、更新制御部21は、
図9(B)に示すような、複数のプログラムを更新するインストーラ903の情報と、複数のインストーラ903の依存関係を示す更新情報901等に基づいて、複数の更新処理を順次に実行させる。なお、更新制御部21は、必ずしも、外部の更新情報901を参照する必要はなく、例えば、更新情報901、又は更新情報901に相当する情報を予め有していても良い。
【0110】
取得部22は、例えば、
図3のCPU101で実行される更新制御プログラム902によって実現される。取得部22は、更新制御部21が実行を制御する複数の更新処理のうち、1つ以上の更新処理によるプログラムの更新に失敗した場合、情報提供サーバ612から、更新に失敗したプログラムが実現する機能を復旧するための復旧情報を取得する。
【0111】
例えば、取得部22は、更新制御部21が実行を制御する複数のインストーラ903a、903b、903cのうち、アプリケーションのインストーラ903bによるプログラムの更新に失敗した場合、アプリケーションの復旧情報1001bを取得する。また、取得部22は、ドライバのインストーラ903cによるプログラムの更新に失敗した場合、ドライバの復旧情報1001cを取得する。
【0112】
ただし、これは一例であり、複数の復旧情報100a、100b、100cは、1つの復旧情報1001にまとめて管理されていても良い。この場合、取得部22は、いずれかのインストーラによるプログラムの更新に失敗した場合、1つの復旧情報1001を取得する。また、取得部22は、更新制御部21によるプログラムの更新処理の前、又は更新制御部21によるプログラムの更新処理と並行して、復旧情報(複数の復旧情報100a、100b、100c、又は復旧情報1001)を取得するものであっても良い。
【0113】
復旧制御部23は、取得部22が取得した復旧情報に基づいて、更新に失敗したプログラムが実現する機能を復旧するための復旧処理を実行する。例えば、取得部22が取得した復旧情報には、
図10(B)に示すような、インストーラが出力するエラーコードと、エラーコードに対応する対処方法との対応関係を示す情報が含まれる。取得部22は、この対応関係に基づいて、インストーラから出力されるエラーコードに対応する対処方法を実行する。
【0114】
なお、
図8に示す情報処理システムの機能構成は一例である。例えば、更新管理部18、更新制御部21、取得部22、復旧制御部23等は、電子黒板1とは異なる他の情報処理装置(例えば、ビデオ会議端末10、通信管理システム5、中継装置3、画像保存装置7等)が有していても良い。
【0115】
また、更新管理サーバ611、及び情報提供サーバ612が備える各機能構成は、さらに多くの情報処理装置に分散されて配置されていても良いし、1つの更新管理システム610で実現されるものであっても良い。
【0116】
<処理の流れ>
続いて、第1の実施形態に係る更新制御方法の処理の流れについて説明する。
【0117】
<更新処理の流れ>
図12は、第1の実施形態に係る更新処理の流れについて説明するための図である。この処理は、更新制御部21が、電子黒板1が実行するプログラムのうち、更新対象となる複数のプログラムを更新する更新処理の例を示している。なお、ここでは、電子黒板1の更新制御部21が、
図3のCPU101で実行されるアプリケーション1201によって実現されるものとする。
【0118】
ステップS1において、電子黒板1のアプリケーション1201によって実現される更新制御部21は、更新管理サーバ611から、例えば、
図9(B)に示すような更新情報901を取得する。この処理は、例えば、更新管理サーバ611から予め通知された日時等に行われるものであっても良いし、夜間等の所定の時間帯に行われるもの等であっても良い。
【0119】
ステップS2において、更新制御部21は、取得した更新情報901に基づいて、複数のインストーラ903a~903c、及び更新制御プログラム902等を取得する。なお、更新制御部21は、ステップS1で、更新情報901とともに、更新制御プログラム902を取得するものであっても良い。
【0120】
また、更新制御部21は、ステップS3において、取得した更新制御プログラム902を実行し、ステップS4において、アプリケーション1201を終了する。これにより、更新制御プログラム902により、アプリケーション1201の更新処理を行えるようになる。
【0121】
更新制御プログラム902が実行されると、ステップS5~S7において、更新制御部21は、例えば、インストーラ903a、インストーラ903b、インストーラ903cを順次に実行する更新制御処理を実行する。
図13に、更新制御部21が実行する更新制御処理の具体的な一例を示す。
【0122】
<更新制御処理>
図13は、第1の実施形態に係る更新制御処理の例を示すフローチャートである。なお、
図13に示す処理の開始時点において、電子黒板1の更新管理部18が、更新対象となる複数のプログラムを更新するための複数のインストーラ903a~903cを取得済であるものとする。
【0123】
ステップS1301において、電子黒板1の更新制御部21は、変数iを「1」に初期化し、ステップS1302~S1307に示すプログラムの更新処理を、インストーラ903の数N(Nは1以上の整数)だけ繰返し実行する。
【0124】
ステップS1302において、更新制御部21は、取得したN個のインストーラ903のうち、i番目のインストーラに依存関係があるか否かを判断する。例えば、i番目のインストーラが、OSの更新パッチのインストーラ903aである場合、更新制御部21は、
図9(B)に示すような更新情報901に含まれるOSの更新パッチのインストーラ情報911を参照する。この場合、OSの更新パッチのインストーラ情報911には、「dependency」の項目が含まれていないので、更新制御部21は、i番目のインストーラに依存関係がないと判断することができる。
【0125】
一方、i番目のインストーラが、アプリケーションのインストーラ903bである場合、更新制御部21は、
図9(B)に示すような更新情報901に含まれるアプリケーションのインストーラ情報912を参照する。この場合、アプリケーションのインストーラ情報912には、「dependency」の項目が含まれているので、更新制御部21は、i番目のインストーラに依存関係があると判断することができる。
【0126】
i番目のインストーラに依存関係がある場合、更新制御部21は、処理をステップS1303に移行させる。一方、i番目のインストーラに依存関係がない場合、更新制御部21は、処理をステップS1304に移行させる。
【0127】
ステップS1303に移行すると、更新制御部21は、依存先の状態が、
図11で説明した「更新失敗」状態1103、又は「更新スキップ」状態1104であるか否かを判断する。依存先の状態が「更新失敗」状態1103、又は「更新スキップ」状態1104である場合、更新制御部21は、処理をステップS1308に移行させる。一方、依存先の状態が「更新前」状態1101、又は「更新成功」状態1102である場合、更新制御部21は、処理をステップ1304に移行させる。
【0128】
このように、更新制御部21は、プログラムの更新処理を実行するときに、当該プログラムと依存関係にある他のプログラムの更新に失敗している場合、及び他のプログラムの更新をスキップしている場合、当該プログラムの更新処理を中止することが望ましい。
【0129】
ステップS1304に移行すると、更新制御部21は、i番目のインストーラを実行する。また、ステップS1305において、更新制御部21は、i番目のインストーラによるインストールに成功したか否かを判断する。前述したように、各インストーラ903は、インストールに失敗したときに、失敗理由をエラーコードで返す機能等を有しているので、更新制御部21は、i番目のインストーラから出力されるエラーコードにより、インストールに成功したか否かを判断できる。
【0130】
インストールに成功した場合、更新制御部21は、処理をステップS1308に移行させる。一方、インストールに成功していない場合、更新制御部21は処理をステップS1306に移行させる。
【0131】
ステップS1306に移行すると、電子黒板1の取得部22は、情報提供サーバ612から復旧情報を取得する。例えば、取得部22は、情報提供サーバ612が管理する複数の復旧情報1001a、1001b、1001cのうち、インストールに失敗したi番目のインストーラに対応する復旧情報1001を取得する。
【0132】
ステップS1307において、電子黒板1の復旧制御部23は、取得部22が取得した復旧情報に基づいて復旧処理を実行する。例えば、復旧制御部23は、取得した復旧情報に含まれる、
図10(B)に示されるような、エラーコードと対処方法との対応関係を参照して、エラーコードに対応する対処方法を実行する。なお、復旧処理の具体的な一例については後述する。
【0133】
ステップS1308に移行すると、更新制御部21は、変数iの値が、インストーラ903の数N以上であるか否か、すなわち、全てのインストーラ903に対して、ステップS1302~S1307の処理を実行したか否かを判断する。変数iの値が、インストーラ903の数N未満である場合、更新制御部21は、処理をステップS1309に移行させる。一方、変数iの値が、インストーラ903の数N以上である場合、更新制御部21は、処理をステップS1310に移行させる。
【0134】
ステップS1309に移行すると、更新制御部21は、変数iの値に「1」を加算して、ステップS1302以降の処理を再び実行する。
【0135】
ステップS1310に移行すると、更新制御部21は、予め定められた終了処理を実行する。この終了処理には、例えば、更新結果を示す結果表示画面を表示する処理、
図12のステップS4で終了したアプリケーション1201を再起動する処理、電子黒板1をシャットダウン又は省電力状態にする処理等が含まれ得る。
【0136】
図14は、更新制御部21が、表示制御部14に表示させる結果表示画面の例を示す図である。
図14に示すように、結果表示画面1400には、実行した更新内容と、更新後の状態を示す情報とが含まれている。
【0137】
<復旧処理1>
図15は、第1の実施形態に係る復旧処理の一例を示すフローチャートである。この処理は、例えば、
図13のステップS1307で復旧制御部23が実行する復旧処理の一例を示している。
【0138】
ステップS1501において、電子黒板1の復旧制御部23は、インストールに失敗したi番目のプログラムの復旧処理を実行する。例えば、復旧制御部23は、
図10(B)に示すような、エラーコードと対処方法の対応関係を参照して、インストールに失敗したインストーラから出力されたエラーコードに対応する対処方法を実行する。
【0139】
例えば、インストールに失敗したインストーラから出力されたエラーコードが「1001」である場合、復旧制御部23は、
図10(B)に示す対応関係を参照して、ドライバの復旧制御プログラム1002bを実行する。同様に、インストールに失敗したインストーラから出力されたエラーコードが「1003」である場合、復旧制御部23は、
図10(B)に示す対応関係を参照して、バッチファイル1004を実行した後に、ドライバの復旧制御プログラム1002bを実行する。
【0140】
ステップS1502において、復旧制御部23は、ステップS1501で復旧処理を実行したプログラムに依存関係があるか否かを判断する。なお、依存関係があるか否かを判断する方法は、
図13のステップS1302で説明した方法と同様で良い。当該プログラムに依存関係がない場合、復旧制御部23は、
図15に示す復旧処理を終了させる。一方、当該プログラムに依存関係がある場合、復旧制御部23は、処理をステップS1503に移行させる。
【0141】
ステップS1503に移行すると、復旧制御部23は、依存先の状態が「更新成功」状態1103であるか否かを判断する。依存先の状態が「更新成功」状態1103である場合、復旧制御部23は、処理をステップS1504に移行させる。一方、依存先の状態が、「更新成功」状態1102でない場合、復旧制御部23は、
図15に示す復旧処理を終了させる。
【0142】
ステップS1504に移行すると、復旧制御部23は、情報提供サーバ612から、依存先のプログラムの復旧情報1001を取得する。例えば、
図7に示すように、アプリケーションのインストーラ903bと、ドライバのインストーラ903cとに依存関係があるものとする。また、アプリケーションのインストールに成功した後に、ドライバのインストールに失敗したものとする。この場合、復旧制御部23は、インストールに失敗したドライバと依存関係にあるアプリケーションの復旧情報1001bを取得する。
【0143】
ステップS1505において、復旧制御部23は、取得した復旧情報に基づいて、依存先のプログラムの復旧処理を実行する。例えば、依存先のプログラムがアプリケーションである場合、復旧制御部23は、アプリケーションの復旧制御プログラム1002bを実行する。
【0144】
ステップS1506において、復旧制御部23は、ステップS1505で復旧したプログラムに依存関係があるか否かを判断する。復旧したプログラムに依存関係がない場合、復旧制御部23は、
図15の処理を終了させる。一方、復旧したプログラムに依存関係がある場合、復旧制御部23は、処理をステップS1503に基づいて、同様の処理を再び実行する。
【0145】
上記の処理により、復旧制御部23は、更新対象となる複数のプログラムのうち、1つ以上のプログラムのインストールに失敗した場合、インストールに失敗したプログラムと、当該プログラムと依存関係にある他のプログラムを、更新前の状態に戻すことができる。
【0146】
このように、本実施形態によれば、複数のプログラムを更新する電子黒板(情報処理装置の一例)1において、複数のプログラムのうち、1つ以上のプログラムの更新に失敗した場合に、電子黒板1を正常に動作する状態に復旧できる。
【0147】
<復旧処理2>
図16は、第1の実施形態に係る復旧処理の別の一例を示すフローチャートである。この処理は、例えば、
図13のステップS1307で復旧制御部23が実行する復旧処理の別の一例を示している。
【0148】
ここでは、例えば、
図15に示す復旧処理を実行する前に、インストールに失敗したインストーラ903による更新処理をリトライする場合の処理の例について説明する。なお、
図16のステップS1501~S1506の処理は、
図15のステップS1501~S1506の処理と同様なので、ここでは説明を省略する。
【0149】
ステップS1601において、電子黒板1の復旧制御部23は、インストールに失敗したi番目のプログラムのインストールをリトライ(再実行)する。例えば、復旧制御部23は、
図10(B)に示すような、エラーコードと対処方法の対応関係を参照して、インストールに失敗したインストーラから出力されたエラーコードに対応する対処方法に従ってインストールをリトライする。
【0150】
例えば、インストールに失敗したインストーラから出力されたエラーコードが「1002」である場合、復旧制御部23は、情報提供サーバ612からDLLファイル1003を取得後に、電子黒板1を再起動する。また、復旧制御部23は、再起動後に、ドライバのインストーラ903cを再実行する。なお、ステップS1601の処理は、復旧情報に従って、更新に失敗したプログラムの更新処理をリトライする第1の復旧処理の一例である。
【0151】
ステップS1602において、復旧制御部23は、ステップS1601の処理により、インストールに成功したか否かを判断する。インストールに失敗した場合、復旧制御部23は、ステップS1501以降の復旧処理(第2の復旧処理)を実行する。一方、インストールに成功した場合、復旧制御部23は、ステップS1501以降の復旧処理(第2の復旧処理)の実行を中止し、
図16に示す処理を終了させる。
【0152】
上記の処理により、更新制御プログラム902による、各プログラムの更新が成功する可能性を高めることができる。
【0153】
[第2の実施形態]
第1の実施形態では、電子黒板1は、更新管理サーバ611、及び情報提供サーバ612から、プログラムの更新に必要な電子ファイル、プログラムの復旧に必要な電子ファイル等を取得していた。ただし、これに限られず、情報処理システム600は、プログラムの更新に必要な電子ファイル、及びプログラムの復旧に必要な電子ファイルの一部、又は全部を、USBメモリ131等の記憶媒体31から取得しても良い。
【0154】
<システム構成>
図17は、第2の実施形態に係る情報処理システムのシステム構成の例を示す図である。第2の実施形態に係る情報処理システム600は、電子黒板1と、プログラムの更新に必要な電子ファイル、及びプログラムの復旧に必要な電子ファイルの一部、又は全部を予め記憶したUSBメモリ131等の記憶媒体31とを含む。なお、電子黒板1は、情報処理装置の一例であり、例えば、ビデオ会議端末10、通信管理システム5、中継装置3、画像保存装置7等の他の情報処理装置であっても良い。
【0155】
また、電子黒板1は、通信ネットワーク601を介して、更新管理サーバ611、又は情報提供サーバ612等から、プログラムの更新に必要な電子ファイル、及びプログラムの復旧に必要な電子ファイルの一部を取得しても良い。
【0156】
<記憶媒体に記憶される電子ファイル>
図18は、第2の実施形態に係る記憶媒体に記憶される電子ファイルの例を示す図である。
【0157】
図18(A)の例では、記憶媒体31の一例であるUSBメモリ131には、第1の実施形態に係る更新管理サーバ611が管理していた更新ファイル900が、予め記憶されている。
【0158】
これにより、電子黒板1は、例えば、
図12のステップS1、S2において、更新管理サーバ611から取得していた情報を、USBメモリ131から取得できるようになる。
【0159】
別の一例として、記憶媒体31の一例であるUSBメモリ131には、更新ファイル900に加えて(又は代えて)、第1の実施形態に係る情報提供サーバ612が管理していた復旧ファイル1000が、予め記憶されていても良い。
【0160】
これにより、電子黒板1は、例えば、
図13のステップS1306、S1307等で、情報提供サーバ612から取得していた更新ファイル900の一部、又は全部を、USBメモリ131から取得できるようになる。
【0161】
なお、第2の実施形態では、更新ファイル900、復旧ファイル1000等の取得先が、USBメモリ131等の記憶媒体31に変わるだけで、
図12、13、15、16で説明した各処理を、そのまま適用することができる。
【0162】
本実施形態においても、復旧制御部23は、更新対象となるプログラムのうち、1つ以上のプログラムのインストールに失敗した場合、インストールに失敗したプログラムと、当該プログラムと依存関係にある他のプログラムを、更新前の状態に戻すことができる。
【0163】
以上、本発明の各実施形態によれば、複数のプログラムを更新する電子黒板(情報処理装置の一例)1において、複数のプログラムのうち、1つ以上のプログラムの更新に失敗した場合に、電子黒板1を正常に動作する状態に復旧できるようになる。
【0164】
<補足>
上記で説明した各実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
【符号の説明】
【0165】
1 電子黒板(情報処理装置の一例)
3 中継装置(情報処理装置の別の一例)
5 通信管理システム(情報処理装置の別の一例)
7 画像保存装置(情報処理装置の別の一例)
10 ビデオ会議端末(情報処理装置の別の一例)
21 更新制御部
22 取得部
23 復旧制御部
31 記憶媒体
1001a、1001b、1001c 復旧情報
131 USBメモリ(記憶媒体の一例)
600 情報処理システム
610 更新管理システム
901 更新情報
【先行技術文献】
【特許文献】
【0166】