以下に添付図面を参照して、サーバ、情報処理システムおよびプログラムの実施の形態を詳細に説明する。
(第1の実施の形態)
図1は、第1の実施の形態にかかる遠隔通信システムの構成を例示する模式図である。図1に示すように、遠隔通信システム1(情報処理システムの一例)は、通信ネットワーク2により、情報処理装置11aa〜11ac、11ba〜11bc、11ca〜11cc、11da〜11dc、遠隔通信管理サーバ50、アップデートサーバ60およびルータ70a〜70dが通信可能に接続されている。具体的には、遠隔通信システム1は、ルータ70a〜70dを介してインターネット2iに接続されるLAN(Local Area Network)2a、2b、2c、2d、遠隔通信管理サーバ50およびアップデートサーバ60と、LAN2aに接続する情報処理装置11aa〜11acおよび中継装置30aと、LAN2bに接続する情報処理装置11ba〜11bcおよび中継装置30bと、LAN2cに接続する情報処理装置11ca〜11ccおよび中継装置30cと、LAN2dに接続する情報処理装置11da〜11dcおよび中継装置30dと、を有する。
遠隔通信システム1では、遠隔通信管理サーバ50の管理の下、地域Aの情報処理装置11aa〜11ac、11ba〜11bc、地域Bの情報処理装置11ca〜11cc、11da〜11dcの各々が、中継装置30a、30b、30c、30dを介して、互いに音声および画像を含む通信データを送受信することで通話を行う。
具体的には、遠隔通信管理サーバ50は、情報処理装置11aa〜11ac、11ba〜11bc、11ca〜11cc、11da〜11dc、中継装置30a、30b、30c、30dなどの通信アドレス、中継装置30a、30b、30c、30dの各々が中継を行う情報処理装置、各情報処理装置の通話状態などの情報を記憶する。
例えば、情報処理装置11aaが情報処理装置11caと通話を行う場合は、情報処理装置11aaは、中継装置30aに情報処理装置11caへの通信データの中継を指示する。中継装置30aは、遠隔通信管理サーバ50に情報処理装置11aaの通話の開始を通知するとともに、情報処理装置11caへの通信データを中継する中継装置30cの通信アドレスを遠隔通信管理サーバ50より取得する。次いで、中継装置30aは情報処理装置11caへの通信データの中継を中継装置30cに指示し、中継装置30cは、情報処理装置11caとの通信を開始する。次いで、中継装置30cは、情報処理装置11caとの通信の開始を遠隔通信管理サーバ50へ通知する。
これにより、中継装置30a、30cを介して、情報処理装置11aaと情報処理装置11caとの間の通話が開始される。また、遠隔通信管理サーバ50は、情報処理装置11aaと情報処理装置11caとが通話中であることを記憶する。例えば、遠隔通信管理サーバ50は、情報処理装置11abから情報処理装置11aaや情報処理装置11caなどの通話状態の問い合わせがあった場合は、オンラインであるが互いに通話中であることを返信する。
以下の説明において、同種の装置の中の任意の装置について説明を行う場合は、数字の後の英字を略した符号を用いるものとする。例えば、情報処理装置11aa〜11ac、11ba〜11bc、11ca〜11cc、11da〜11dcは情報処理装置11とする。また、中継装置30a〜30dは中継装置30とする。
アップデートサーバ60は、情報処理装置11のプログラムや各種設定情報のアップデートにかかる情報を記憶し、情報処理装置11からの送信指示に応じてアップデートにかかる情報を送信する。アップデートにかかる情報としては、情報処理装置11のプログラムや各種設定情報の過去のバージョンから最新のバージョンまでの全てのバージョンのデータファイルなどアップデートに用いるアップデートデータと、プログラムや各種設定情報の各バージョンのアップデートの内容などを含むアップデートデータのメタデータなどである。アップデートにかかる情報として全てのバージョンのデータファイルをアップデートサーバ60が記憶しているのは、情報処理装置11毎にアップデートを任意のタイミングで行えるようにするためである。
例えば、頻繁にアップデートを行っている情報処理装置11は、最新のバージョンへのアップデートを行うだけでよいが、アップデートの間隔が長い情報処理装置11は、何回かバージョンアップが繰り返された後にアップデートを行う可能性がある。このような場合は、直ちに最新のバージョンへアップデートせずに、最新のバージョンへアップデートするために必要な古いバージョン(最新のバージョンと依存関係にある古いバージョン)へのアップデートを経ることがある。そのため、アップデートサーバ60は、アップデートにかかる情報として全ての(若しくは、最低限必要とされる)バージョンのデータファイルを記憶している。
ここで、アップデートの種類には、通常アップデートと強制アップデートの2種類がある。通常アップデートは、バグ等の障害対応や機能追加を目的として実施されるアップデートである。
強制アップデートは、情報処理装置11そのものの機能とは異なる装置、機能の変更に伴って、強制的に行うことを目的としたアップデートである。例えば、強制アップデートは、中継装置30側において、通話の際に送受信する通信データのデータフォーマットやビデオコーデックが変更されたり、中継装置30のバージョンアップが実施されたりした場合に実施される。また、強制アップデートは、中継装置30との通信プロトコルが変更される場合に実施されることもある。このような中継装置30における変更が行われると、通信データそのものの構造が変わる。また、中継装置30との通信プロトコルの変更は、中継装置30との通信手順そのものが変わり若しくは中継装置30側の機能が変わる。これにより、アップデート前の情報処理装置11では、情報処理装置11の本来の機能である通話を実現することができなくなる。そのため、このような場合には、中継装置30のアップデート後のバージョンに適合させるために強制アップデートを行う。
また、中継装置30側でセキュリティホールが発見された場合等、セキュリティ面で問題がある等に、これを回避するようなセキュリティホール対応のアップデートを中継装置30側で行う場合がある。このような場合にも、アップデート前の情報処理装置11では通話すら実行できないことになるため、中継装置30側のセキュリティホール対応に適合させるために強制アップデートが実施される。
次に、本実施の形態にかかる情報処理装置11のハードウェア構成を説明する。図2は、第1の実施の形態にかかる情報処理装置のハードウェア構成を示すブロック図である。図2に示すように、情報処理装置11は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、記憶部105、メディアドライブ107、操作部108、ネットワークI/F111、撮像素子I/F112、音声入出力I/F113およびディスプレイI/F114を備え、各部がバス110により互いに接続されている。
CPU101は、ROM102に記憶されたプログラム(図示しない)や記憶部105に記憶されたプログラム104をRAM103に展開して順次実行することで、情報処理装置11の動作を制御する。記憶部105は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などであり、CPU101が実行するプログラム104や各種設定情報を記憶する。CPU101は、アップデートの際、記憶部105に記憶されるプログラム104や各種設定情報をアップデート(更新)する。
メディアドライブ107は、光ディスクなどのメディア106への読み出しまたは書き込みを行う装置である。操作部108は、キーボード、各種操作キー、ディスプレイ13上に積層配置されたタッチパネル等であり、ユーザの操作入力を受け付ける。ネットワークI/F111は、通信ネットワーク2と接続してデータ通信を行うインタフェースである。撮像素子I/F112は、デジタルカメラであるカメラ12と接続し、カメラ12の撮像により得られた撮像画像を取得するためのインタフェースである。音声入出力I/F113は、マイク14、スピーカ15と接続し、マイク14による音声入力や、スピーカ15を介した音声出力を行うインタフェースである。ディスプレイI/F114は、LCD(Liquid Crystal Display)など表示部としてのディスプレイ13と接続し、ディスプレイ13へ表示データを出力するインタフェースである。
本実施の形態では、ディスプレイ13を用いているが、ディスプレイ13に代えて、プロジェクタ等、他の表示装置を接続してもよい。
情報処理装置11は、プログラム104を実行したCPU101の制御の下、例えば他の情報処理装置との通話時には、カメラ12から取得した画像やマイク14から入力された音声をネットワークI/F111を介して中継装置30へ出力する。また、情報処理装置11は、中継装置30より中継され、ネットワークI/F111を介して入力された他の情報処理装置からの音声をスピーカ15より出力し、同様に他の情報処理装置からの画像をディスプレイ13により表示する。これにより、情報処理装置11は、画像および音声による他の情報処理装置との通話、所謂テレビ会議を実現する。
次に、中継装置30、遠隔通信管理サーバ50、アップデートサーバ60のハードウェア構成を説明する。図3は、第1の実施の形態にかかる中継装置、遠隔通信管理サーバ、アップデートサーバのハードウェア構成を示すブロック図である。図3に示すように、中継装置30、遠隔通信管理サーバ50、アップデートサーバ60は、CPU201、ROM202、RAM203、記憶部204、ディスプレイ205、ネットワークI/F206、キーボード207、マウス208、メディアドライブ209およびCD−ROMドライブ211を備え、各部がバス214により互いに接続されている。中継装置30、遠隔通信管理サーバ50、アップデートサーバ60は、いわゆるPC(Personal Computer)やWS(Work Station)などの機器である。
CPU201は、ROM202や記憶部204に記憶されたプログラムをRAM203に展開して順次実行することで、自装置の動作を制御する。記憶部204は、HDDやSSDなどであり、アップデートにかかる情報などを記憶する。
ディスプレイ205は、例えばLCDなどの表示部である。ネットワークI/F206は、通信ネットワーク2と接続してデータ通信を行うインタフェースである。キーボード207、マウス208は、ユーザの操作入力を受け付ける。メディアドライブ209は、光ディスクなどのメディア210の読み出しや書き込みを行う装置である。CD−ROMドライブ211は、CD−ROM213の読み出しを行う装置である。例えば、アップデートサーバ60では、メディア210やCD−ROM213によりアップデートにかかる最新の情報が提供され、記憶部204に記憶される。
次に、情報処理装置11が備えるCPU101やアップデートサーバ60が備えるCPU201がプログラムを実行することで実現される、情報処理装置11およびアップデートサーバ60の機能構成について説明する。図4は、第1の実施の形態にかかる情報処理装置およびアップデートサーバの機能構成を示すブロック図である。図4に示すように、情報処理装置11は、送受信部1101、ユーザインタフェース部1102およびアップデート部1103を有している。アップデートサーバ60は、送受信部601および禁止部602を有する。
まず、情報処理装置11の機能構成について説明する。送受信部1101は、通信ネットワーク2を介してアップデートサーバ60との間でデータの送受信を行う。具体的には、送受信部1101は、記憶部105の設定情報などに予め設定されているアップデートサーバ60の通信アドレスや遠隔通信管理サーバ50から取得したアップデートサーバ60の通信アドレスをもとに、アップデートサーバ60との間で所定の通信プロトコルを用いた通信を開始することで、アップデートサーバ60との間でデータの送受信を行う。このデータの送受信により、送受信部1101は、アップデートサーバ60が記憶しているアップデートにかかる情報を取得する。
ユーザインタフェース部1102は、スピーカ15による音声の出力、ディスプレイ13への各種情報の表示、操作部108によるユーザの操作入力の受け付けなどを制御して、ユーザと情報処理装置11との間での情報のやりとりを制御するインタフェースである。具体的には、ユーザインタフェース部1102は、スピーカ15による音声の出力やディスプレイ13への各種情報の表示でユーザへの各種通知を行うとともに、操作部108によるユーザの操作入力を受け付ける。
アップデート部1103は、送受信部1101によりアップデートサーバ60から取得したアップデートにかかる情報をもとに、記憶部105が記憶するプログラム104や各種設定情報のアップデートを実行する。
次に、アップデートサーバ60の機能構成について説明する。送受信部601は、通信ネットワーク2を介して情報処理装置11との間でデータの送受信を行う。具体的には、送受信部601は、通信ネットワーク2を介した情報処理装置11からの要求に応じて所定の通信プロトコルを用いた通信セッションを開始することで、情報処理装置11との間でデータの送受信を行う。
また、送受信部601は、アップデートサーバ60が記憶しているアップデートにかかる情報が含むアップデートデータを情報処理装置11に送信する。さらに、送受信部601は、アップデートサーバ60が記憶しているアップデートにかかる情報が含むアップデートデータの中に、アップデートが実行可能となる所定日時(日時)が現在日時より後のアップデートデータである事前ダウンロードデータが有るか否かを判定する判定部として機能する。そして、送受信部601は、事前ダウンロードデータが有ると判定された場合、事前ダウンロードデータに対応するメタデータを情報処理装置11に通信ネットワーク2を介して送信する送信部として機能する。ここで、事前ダウンロードデータに対応するメタデータとは、事前ダウンロードデータを用いたアップデートが必要か否かを判断可能なデータであり、本実施の形態では、図7に示すメタデータに記述された“version”を含むメタデータである。
禁止部602は、送受信部601により事前ダウンロードデータをダウンロード(送信)中の情報処理装置11の数(以下、装置数と言う)に基づいて、事前ダウンロードデータのメタデータの送信を禁止する。本実施の形態では、禁止部602は、送受信部601により事前ダウンロードデータをダウンロード中の情報処理装置11の装置数が閾値以上である場合に、事前ダウンロードデータのメタデータの送信を禁止する。
次に、本実施の形態にかかるアップデートサーバ60からメタデータを送信する際の当該アップデートサーバ60の制御方法について説明する。図5は、第1の実施の形態にかかるアップデートサーバにおいてメタデータを送信する処理の流れを示すフローチャートである。
送受信部601は、情報処理装置11からアップデートデータのメタデータの送信を指示する送信指示を受信する(ステップS501)。本実施の形態では、送受信部601が、アップデートを実行する情報処理装置11から、アップデートに用いるアップデートデータのメタデータの送信指示を受信する受信部として機能する。アップデートデータのメタデータの送信指示を受信すると、送受信部601は、記憶部204に記憶されたアップデートデータのメタデータのうち、アップデートを実行可能なアップデートデータのメタデータを取得する(ステップS502)。本実施の形態では、送受信部601は、記憶部204に記憶されたアップデートデータのメタデータのうち、当該メタデータが含むアップデートが実行可能となる所定日時である“valid date”(図7参照)が現在日時より前のメタデータを、アップデートを実行可能なアップデートデータのメタデータとして取得する。また、本実施の形態では、送受信部601は、例えばNTP(Network Time Protocol)サーバ、アップデートサーバ60が備える時計などから、現在日時を取得するものとする。
次に、送受信部601は、記憶部204に記憶されたアップデートデータのメタデータの中に、事前ダウンロードデータのメタデータがあるか否かを判断する(ステップS503)。本実施の形態では、送受信部601は、記憶部204に記憶されたアップデートデータのメタデータのうち、当該メタデータが含むアップデートが実行可能となる所定日時である“valid date”(図7参照)が現在日時(例えば、NTPサーバやアップデートサーバ60が備える時計から取得した現在日時)より後のメタデータを、事前ダウンロードデータのメタデータとして取得する。これにより、送受信部601は、アップデートサーバ60が記憶しているアップデートにかかる情報が含むアップデートデータの中に、アップデートが実行可能となる所定日時が現在日時より後のアップデートデータである事前ダウンロードデータが有るか否かを判定する。
そして、事前ダウンロードデータのメタデータがある場合(ステップS503:Yes)、すなわち、事前ダウンロードデータが有ると判定された場合、禁止部602は、送受信部601により送信された事前ダウンロードデータをダウンロード中の情報処理装置11の数である装置数が閾値より少ないか否かを判断する(ステップS504)。本実施の形態では、禁止部602は、単位時間当り(例えば、10分間当りなど)の装置数が閾値(例えば、100台)より少ないか否かを判断する。より具体的には、禁止部602は、単位時間毎に、事前ダウンロードデータへのアクセス数を装置数として計数する。ここで計数される装置数には、事前ダウンロードデータをダウンロード中の情報処理装置11の数に加え、事前ダウンロードデータのダウンロードは開始していないが事前ダウンロードデータへのアクセスを行った情報処理装置11(すなわち、事前ダウンロードデータをダウンロード前の情報処理装置11)の数が含まれる。そして、禁止部602は、計数した装置数が閾値より少ないか否かを判断する。
事前ダウンロードデータをダウンロード中の情報処理装置11の装置数が閾値より少ない場合(ステップS504:Yes)、送受信部601は、記憶部204に記憶された事前ダウンロードデータのメタデータを取得する(ステップS505)。そして、送受信部601は、ステップS502で取得したメタデータ(アップデートを実行可能なアップデートデータのメタデータ)とともに、ステップS505で取得した事前ダウンロードデータのメタデータを、メタデータの送信指示の送信元の情報処理装置11に送信する(ステップS506)。本実施の形態では、送受信部601は、アップデートを実行可能なアップデートデータのメタデータとともに、事前ダウンロードデータを送信しているが、少なくとも事前ダウンロードデータを送信するものであれば良い。ここで、送信するメタデータは、少なくとも、事前ダウンロードデータを用いたアップデートが必要か否かを判断可能なデータ(本実施の形態では、図7に示すメタデータに記述された“version”)を含む。
一方、事前ダウンロードデータをダウンロード中の情報処理装置11の装置数が閾値以上である場合(ステップS503:No)、禁止部602は、事前ダウンロードデータのメタデータの送信を禁止する(ステップS507)。本実施の形態では、禁止部602は、事前ダウンロードデータをダウンロード中の情報処理装置11の装置数(例えば、110台)が閾値(例えば、100台)以上である場合、記憶部204に記憶された事前ダウンロードデータのメタデータの取得を禁止することにより、事前ダウンロードデータのメタデータの送信を禁止する。そして、送受信部601は、ステップS502で取得したメタデータ(アップデートを実行可能なアップデートデータのメタデータ)のみを、メタデータの送信指示の送信元の情報処理装置11に送信する(ステップS506)。
これにより、計数した装置数が閾値に達した場合(すなわち、事前ダウンロードデータを含むアップデートデータのダウンロードにより通信ネットワーク2やアップデートサーバ60に負荷がかかっている場合)には、事前ダウンロードデータのメタデータが情報処理装置11に送信されず、当該情報処理装置11のユーザから事前ダウンロードデータの送信(ダウンロード)が指示されなくなるので(言い換えると、事前ダウンロードへのアクセスが所定日時前に一斉に行われることを防止できるので)、事前ダウンロードデータのダウンロードにより通信ネットワーク2やアップデートサーバ60に負荷がかかる時期を分散させることができ、かつ当該事前ダウンロードデータを含むアップロードデータのダウンロードに要する時間が長くなるなどによりユーザの利便性が損なわれることを防止できる。
次に、本実施の形態にかかる情報処理装置11におけるアップデートの動作を説明する。図6は、第1の実施の形態にかかる情報処理装置におけるアップデートの動作の流れを示すフローチャートである。
ユーザインタフェース部1102は、操作部108の電源スイッチなどの操作に応じて自装置の電源オンを行うとともに(ステップS610)、起動画面をディスプレイ13に表示させる(ステップS611)。この起動画面は、CPU101の制御の下で遠隔通信管理サーバ50から取得した各情報処理装置11の通話状態を一覧表示した表示画面である。
アップデート部1103は、自装置の電源オンが行われると、アップデートの確認を開始する(ステップS612)。ここで、アップデートの確認とは、自装置のプログラム104や各種設定情報が最新のバージョンにアップデートされているか否かを判定する処理である。以下の説明では、自装置のプログラム104のアップデートを確認する例について説明するが、各種設定情報のアップデートの確認も同様にして行われる。
アップデートの確認が開始されると、アップデート部1103は、送受信部1101によって、最新バージョンのプログラムのメタデータの送信指示をアップデートサーバ60に送信する(ステップS613)。そして、アップデート部1103は、その送信指示に対応してアップデートサーバ60の送受信部601から送信されたメタデータを取得する(ステップS614)。
ここで、メタデータの詳細について説明する。図7は、第1の実施の形態にかかるアップデートサーバから送信されるメタデータの一例を示す図である。図7に示すように、各バージョンのメタデータは、“version”、“dependency”、“description”、“files”、“scriptname”、“require_reboot”、“force_update”、“valid date”、“data size”などのデータ項目を含む。
“version”は、アップロードデータ(事前アップロードデータ)を用いたアップデートが必要か否かを判断可能なデータであり、本実施の形態では、“1.0.1”などのアップロードデータのバージョン番号が記述される。“dependency”には、“1.0.0”などの、互いに依存関係を有する他のバージョンを示すバージョン番号が記述される。したがって、“dependency”のデータ項目に記述されたバージョン番号を確認することで、依存関係にあるバージョンを検出することができる。“description”には、“It is sample data.”などのバージョンの詳細が記述される。“files”には、アップデートサーバ60に記憶されているアップデートに用いるアップデートデータ(データファイル)のリストとその格納先や、それらデータファイルのチェックサムなどが記述される。したがって、アップデート部1103は、“files”のデータ項目に記述された内容を基に、送受信部1101によってデータファイルを取得することで、メタデータに記述されたバージョンにかかるアップデートの実行が可能となる。“scriptname”には、アップデートを実行する際に実行するスクリプト名が記述される。“require_reboot”には、アップデートを実行した後に、装置の再起動を行うか否かを示すフラグ(“true”または“false”)が記述される。“force_update”には、強制のアップデートであるか否かを示すフラグ(“true”または“false”)が記述される。“valid date”には、“201209151200”など、メタデータに記述されたバージョンのデータファイルを用いたアップデートが実行可能となる日時(所定日時)が記述される。“data size”には、メタデータに記述されたバージョンのデータファイルのデータ量が記述される。
プログラム104のアップデートには、ネットワークI/F111、撮像素子I/F112、音声入出力I/F113、ディスプレイI/F114等の制御(以下、デバイス制御という)にかかるものがある。このようなデバイス制御のアップデートでは、アップデート後に再起動が必要となることから、“require_reboot”に“true”が記述される。また、プログラム104のアップデートには、上述したように、通常アップデートと強制アップデートがあり、強制アップデートを行う場合には、“force_update”に“true”が記述される。
次いで、アップデート部1103は、取得したメタデータの“dependency”のデータ項目に記述された内容を基に、依存関係を有する他のバージョンの有無を検出する(ステップS615)。例えば、図7に示すように、“dependency”のデータ項目に“1.0.0”などの他のバージョンを示すバージョン番号が記述されている場合には、依存関係を有する他のバージョンがあることを検出する。また、“dependency”のデータ項目に何も記述がない場合には、依存関係を有する他のバージョンがないと判断する。
次いで、アップデート部1103は、依存関係を有する他のバージョンが有ることを検出した場合(ステップS616:Yes)、送受信部1101によって、依存関係を有する他のバージョンのデータファイルのメタデータの送信指示をアップデートサーバ60に対して送信する(ステップS617)。送受信部1101は、その送信指示に応じてアップデートサーバ60から送信された、依存関係を有する他のバージョンのメタデータを取得する(ステップS618)。したがって、アップデート部1103は、最新バージョンと依存関係を有する他のバージョンへ順次遡って、当該他のバージョンのメタデータを取得する。
次いで、アップデート部1103は、最新バージョンのデータファイルのメタデータののうち“valid date”に記述された日時が現在日時より前のメタデータの“version”に記述されたバージョン番号と、記憶部105に記憶されたプログラム104のバージョン番号とを比較することで、プログラム104がアップデート済みか否か(アップロードデータを用いたプログラム104のアップデートが必要か否か)を判定する(ステップS619)。本実施の形態では、アップデート部1103は、最新バージョンのバージョン番号と、プログラム104のバージョン番号とが一致する場合は、プログラム104が最新バージョンであることから、プログラム104をアップデート済みと判定する。一方、アップデート部1103は、最新バージョンのバージョン番号と、プログラム104のバージョン番号とが一致しない場合は、プログラム104が古いバージョンであることから、アップデート済みでないと判定する。
アップデート済みでないと判定した場合(ステップS619:No)、すなわち、アップデートが必要と判断した場合、アップデート部1103は、そのアップデートに関する情報(以下、アップデート情報という)をユーザインタフェース部1102へ通知する(ステップS620)。本実施の形態では、アップデート部1103は、最新バージョンおよびその最新バージョンと依存関係を有する他のバージョンのデータファイルのメタデータのうち、“files”、“scriptname”などのユーザへの通知に不要なデータ項目以外のデータ項目を、アップデート情報としてユーザインタフェース部1102へ通知する。
ユーザインタフェース部1102は、アップデート部1103より通知されたアップデート情報を基に、アップデートが必要なプログラム104が存在することをディスプレイ13の起動画面に表示して、ユーザへ通知する(ステップS621)。
ここで、起動画面の詳細について説明する。図8は、第1の実施の形態にかかる情報処理装置に表示される起動画面の一例を示す図である。図8に示すように、起動画面G1は、各情報処理装置の通話状態を一覧表示する主画面G11と、自装置のステータスを表示するステータス画面G12と、を含む。ユーザインタフェース部1102は、アップデート情報がアップデート部1103より通知された場合は、ステータス画面G12にアップデートがある旨の表示を行うことで、ユーザへの通知を行う。アップデートがある旨の表示は、予め設定されたアイコン画像を主画面G11に表示してもよく、図示したレイアウトに限定されない。なお、図面で例示している画面例(図8〜11,13,16,17等)において、中抜きまたは黒塗りの四角で表された部分は、メッセージを表示する可能性のある領域を示しており、例えばシステム上で予め予約されたメッセージ表示領域などである。
また、ユーザインタフェース部1102は、アップデート情報として含まれるデータ項目の中で“force_update”の記述が“true”である場合は、自装置に存在するアップデートが強制アップデートであることを起動画面G1に表示してユーザに通知する。例えば、ユーザインタフェース部1102は、アップデートが強制アップデートである旨をステータス画面G12に表示してもよいし、主画面G11に表示されている一覧表示をグレーアウトするなどして、アップデート以外の操作が無効であることを通知してもよい。
次いで、操作部108からアップデートの実行指示や各種設定を行うための操作指示が入力された場合、ユーザインタフェース部1102は、設定画面をディスプレイ13に表示させる(ステップS622)。
図9は、第1の実施の形態にかかる情報処理装置に表示される設定画面の一例を示す図である。図9に示すように、設定画面G2は、ユーザインタフェース部1102によりユーザの操作を受け付けて、アップデートの実行指示および各種設定を行うための設定ボタンG23〜G26を表示する主画面G21を含む。設定ボタンG23〜G26の中で設定ボタンG26がアップデートの実行を指示するためのボタンである。
ユーザインタフェース部1102は、アップデート情報がアップデート部1103より通知されず、アップデートが必要なプログラム(ファームウェア)が存在しない場合には、グレーアウトするなどして、設定ボタンG26を操作できないようにする。一方、ユーザインタフェース部1102は、アップデート情報がアップデート部1103より通知され、アップデートが必要なプログラムが存在する場合には、グレーアウトが解除され、設定ボタンG26の操作を可能とする。設定ボタンG26には、アップデート情報として含まれるデータ項目の“version”の記述を基に、アップデートが行われる最新バージョンのバージョン番号などを含めても良い。図9に示す設定ボタンG26には、バージョン番号が2.0の最新バージョンにアップデート可能であることが記載されている。ユーザインタフェース部1102は、設定画面G2に、自装置のステータスを表示するステータス画面を表示しても良い。
設定ボタンG26の操作が行われた場合、ユーザインタフェース部1102は、アップデートの実行を確認する確認画面をディスプレイ13に表示させる(ステップS623)。
図10は、第1の実施の形態にかかる情報処理装置に表示される確認画面の一例を示す図である。図10に示すように、確認画面G3は、実行するアップデートの内容を表示するアップデート表示G33と、その内容でのアップデートの実行またはキャンセルの指示をユーザより受け付けるための操作ボタンG34,G35とを含む主画面G31と、自装置のステータスを表示するステータス画面G32とを含む。アップデート表示G33には、自装置のプログラム104のバージョン番号である現在のバージョンの他、アップデート情報に含まれるデータ項目の“version”の記述を基にした、アップデートが行われる最新バージョンのバージョン番号などの情報が表示される。ユーザは、アップデート表示G33の表示内容により、どのバージョン番号へのアップデートが行われるかを確認できる。確認画面G3のアップデート表示G33には、再起動が行われるか否かの情報を表示しても良い。
図11は、第1の実施の形態にかかる情報処理装置に表示される確認ウインドウの一例を示す図である。本実施の形態では、ユーザインタフェース部1102は、確認画面G3においてアップデートの実行を指示する操作ボタンG35が操作された場合、アップデートの実行の確認を促す確認ウインドウG36を表示する。確認ウインドウG36には、アップデートが行われる最新バージョンのバージョン番号などの情報の他、予め設定されたアップデート時の注意事項などを表示する。確認画面G3においてアップデートの実行が指示された場合に確認ウインドウG36を表示することで、ユーザへの注意喚起を促すことができる。ユーザインタフェース部1102は、再起動が行われるか否かの情報を確認ウィンドウG36に表示しても良い。
図6に戻り、アップデート部1103では、確認画面G3での操作ボタンG34、G35の操作を基に、アップデートを実行するか否かを判定する(ステップS624)。アップデートの実行を指示する操作ボタンG35が選択された場合(ステップS624:Yes)、アップデート部1103は、取得しているメタデータを基にアップデート処理を実行する(ステップS625)。
アップデートの実行をキャンセルする操作ボタンG34が操作されるなどして、操作ボタンG35の選択が行われなかった場合(ステップS624:No)、アップデート部1103は、取得しているメタデータの“force_update”の記述を基に、実行されなかったアップデートの中に強制アップデートが含まれるか否かを判定する(ステップS626)。強制アップデートが含まれる場合(ステップS626:Yes)、アップデート部1103は、自装置の処理を終了させる終了処理を行い(ステップS627)、情報処理装置11の電源をオフする。このように、強制アップデートが実行されない場合は、通話すら実行できないこととなるため、情報処理装置11の電源をオフして無駄な操作が行われることを未然に防止する。逆に、強制アップデートが含まれない場合(ステップS626:No)、アップデート部1103は、現時点ではアップデートを実行しないことから、通常の動作を継続させる(ステップS628)。これにより、ユーザは、アップデートよりも通話を優先することができる。
すなわち、情報処理装置11では、アップデートが必要なプログラム104が存在する場合には、そのアップデートの存在をユーザインタフェース部1102よりユーザに通知する。そして、情報処理装置11では、ユーザインタフェース部1102によりそのアップデートを実行するか否かの操作を受け付け、アップデートを実行する操作が行われた場合に、アップデート部1103によるアップデート処理が実行される。したがって、情報処理装置11は、アップデートが必要なプログラム104がある場合、そのアップデートの実行をユーザが選択可能となる。
また、ステップS619において、最新バージョンのデータファイルのメタデータのうち“valid date”に記述された日時が現在日時より前のメタデータの“version”に記述されたバージョン番号と、プログラム104のバージョン番号とが一致して、プログラム104が最新バージョンにアップデート済みであると判断された場合(ステップS619:Yes)、すなわち、アップデートが不要と判断した場合、アップデート部1103は、最新バージョンのデータファイルのメタデータの“valid date”に基づいて、事前ダウンロードデータが有るか否かを判断する(ステップS629)。そして、アップデート部1103は、最新バージョンのデータファイルのメタデータの“valid date”に記述された日時が現在日時以降の日時である場合には、事前ダウンロードデータが有ると判断して(ステップS629:Yes)、事前ダウンロードデータをダウンロードする事前ダウンロード処理を実行する(ステップS630)。
一方、最新バージョンのデータファイルのメタデータの“valid date”に記述された日時が現在日時より前の日時である場合には、アップデート部1103は、事前ダウンロードデータが無いと判断して(ステップS629:No)、通常の動作を継続させる(ステップS628)。
次に、図12を用いて、事前ダウンロード処理の詳細について説明する。図12は、第1の実施の形態にかかる情報処理装置における事前ダウンロード処理の流れを示すフローチャートである。
アップデート部1103は、事前ダウンロードデータがあると判断した場合(ステップS629:Yes)、事前ダウンロードデータに関する情報(例えば、“valid date”に記述された日時が現在日時以降の日時のメタデータのうち、“files”、“scriptname”などのユーザへの通知に不要なデータ項目以外のデータ項目を、事前ダウンロードデータに関する情報としてユーザインタフェース部1102へ通知する(ステップS1201)。
事前ダウンロードデータに関する情報が通知されると、ユーザインタフェース部1102は、事前ダウンロードデータに関する情報を用いて、設定画面をディスプレイ13に表示させる(ステップS1202)。図13は、第1の実施の形態にかかる情報処理装置で表示される設定画面の一例を示す図である。図13に示すように、設定画面G4には、ユーザインタフェース部1102によりユーザの操作を受け付けて、事前ダウンロード処理の実行指示および各種設定を行うための設定ボタンG23〜G25,G42を表示する主画面G41を含む。設定ボタンG23〜G25,G42の中で設定ボタンG42が事前ダウンロード処理の実行を指示するためのボタンである。設定ボタンG42には、事前ダウンロードデータに関する情報に含まれるデータ項目の“version”の記述を基に、事前ダウンロード処理を実行する最新バージョンのバージョン番号などを含めても良い。図13に示す設定ボタンG42には、バージョン番号が2.1の最新バージョンの事前ダウンロード処理が実行可能であることが記載されている。
設定ボタンG42の操作が行われた場合、ユーザインタフェース部1102は、事前ダウンロード処理の実行を確認する確認画面をディスプレイ13に表示させる(ステップS1203)。図14は、第1の実施の形態にかかる情報処理装置に表示される確認画面の一例を示す図である。図14に示すように、確認画面G5は、実行する事前ダウンロード処理の内容を表示する事前ダウンロード表示G51と、その内容での事前ダウンロード処理の実行またはキャンセルの指示をユーザより受け付けるための操作ボタンG52,G53と、を含む。事前ダウンロード表示G51には、自装置のプログラム104のバージョン番号である現在のバージョンの他、事前ダウンロードデータに関する情報に含まれるデータ項目の“version”の記述を基にした、事前ダウンロード処理が実行される最新バージョンのバージョン番号などの情報が表示される。ユーザは、事前ダウンロード表示G51の表示内容により、どのバージョン番号の事前ダウンロードデータのダウンロードが行われるかを確認できる。
アップデート部1103は、確認画面G5での操作ボタンG52,G53の操作を基に、事前ダウンロード処理を実行するか否かを判定する(ステップS1204)。事前ダウンロード処理の実行を指示する操作ボタンG53が選択された場合(ステップS1204:Yes)、アップデート部1103は、取得しているメタデータのうち“valid date”に記述された日時が現在日時以降のメタデータ(すなわち、事前ダウンロードデータのメタデータ)を基に、事前ダウンロードデータ(アップデートデータ)のダウンロードを実行する(ステップS1205)。
次に、図15を用いて、アップデート処理(図6に示すステップS625)の詳細について説明する。図15は、第1の実施の形態にかかる情報処理装置によるアップデート処理の流れを示すフローチャートである。
アップデート部1103は、アップデート処理が開始されると、カメラ12、マイク14、スピーカ15などの外部装置と接続するための撮像素子I/F112、音声入出力I/F113等のインタフェース部の機能を停止する。インタフェース部が稼働していると、そのインタフェース部にかかるプログラム104が使用中であるため、アップデートがエラーとなることがある。このエラーを未然に防止するため、アップデート部1103は、アップデート処理の開始に伴い、上述したインタフェース部の機能を停止する。
次いで、アップデート部1103は、取得したメタデータの“files”からアップデートに用いるデータファイル(アップデートデータ)のファイルリストと、それらファイルのチェックサムとを取得する(ステップS1501)。依存関係を有する複数のバージョンのメタデータを取得している場合、アップデート部1103は、バージョン番号が古いものから順にステップS1501〜S1508の処理を行う。
次いで、アップデート部1103は、取得したメタデータの“valid date”に記述されたアップデートが実行可能となる日時に基づいて、取得したメタデータに対応するデータファイル(アップデートデータ)を用いたアップデートが実行可能か否かを判断する(ステップS1502)。本実施の形態では、アップデート部1103は、取得したメタデータの“valid date”に記述された日時が、例えばNTPサーバまたは自装置が備える計時部などから取得した現在日時よりも以前の日時である場合には、取得したメタデータに対応するデータファイル(アップデートデータ)を用いたアップデートが実行可能であると判断する。
取得したメタデータに対応するデータファイルを用いたアップデートが実行可能であると判断した場合(ステップS1502:Yes)、アップデート部1103は、当該取得したメタデータに対応するデータファイルが事前ダウンロード処理によりアップデートサーバ60からダウンロード済みであるか否か、すなわち、当該取得したメタデータに対応するデータファイルが事前ダウンロードデータであるか否かを判断する(ステップS1503)。
事前ダウンロード処理によりアップデートサーバ60からダウンロード済みでないと判断した場合(ステップS1503:No)、アップデート部1103は、ステップS1501で取得したファイルリストのデータファイル(アップデートデータ)をアップデートサーバ60から取得するとともに(ステップS1504)、取得したデータファイルのチェックサムを取得する(ステップS1505)。一方、事前ダウンロード処理によりアップデートサーバ60からダウンロード済みであると判断した場合(ステップS1503:Yes)、アップデート部1103は、事前ダウンロード処理によりダウンロード済みのデータファイル(事前ダウンロードデータ)をダウンロード先(例えば、記憶部105)から取得し、取得したデータファイルのチェックサムを取得する。次いで、アップデート部1103は、取得したデータファイルを用いて、記憶部105に記憶されたプログラム104のアップデートを実行する。
次いで、アップデート部1103は、アップデートの進行状況をユーザインタフェース部1102に通知する(ステップS1506)。この進行状況の通知は、ファイルリストに含まれる複数のデータファイルの中で、どのデータファイルまでステップS1504、S1505の処理を終えたかを通知する。また、依存関係を有する複数のバージョンのアップデートを行う場合には、どのバージョンのアップデートまでを終えたかを通知してもよい。ユーザインタフェース部1102では、通知されたアップデートの進行状況をディスプレイ13に画面表示してユーザに通知する。
図16は、第1の実施の形態にかかる情報処理装置に表示されるアップデート画面の一例を示す図である。図16に示すように、アップデート画面G6は、アップデート部1103によるアップデート処理中にユーザインタフェース部1102がディスプレイ13に表示させる画面である。アップデート画面G6には、アップデート部1103より通知されたアップデートの進行状況を表示するアップデートステータスウインドウG61と、アップデートの中止を指示するための操作ボタンG62と、が表示される。ユーザは、アップデートステータスウインドウG61の表示内容により、アップデートの進行状況を確認できる。
また、ユーザインタフェース部1102は、アップデート画面G6に、アップデートの残り時間や現在の回線速度をリアルタイムで表示するようにしてもよい。この場合には、ユーザにアップデートの状況をより詳細に把握させることができるという利点がある。
次いで、アップデート部1103は、アップデート処理のエラーの発生の有無を判定し(ステップS1507)、アップデート処理にエラーの発生がある場合(ステップS1507:Yes)は、ステップS1509に示す処理に進む。本実施の形態では、アップデート部1103は、アップデート処理の実行中に何らかの要因で発生するエラー(例えば、ステップS1505により取得したチェックサムと、ステップS1501で取得したチェックサムとの相違)の他、アップデート画面G6の操作ボタンG62の操作によるアップデートの中止や、ステップS1504およびステップS1505で行ったアップデートのバージョンが再起動を要する場合にもエラーとして判定される。したがって、バージョン番号が古いものから順にアップデートが行われる場合には、再起動を要するバージョンのアップデートまでが行われた段階で、ステップS1501〜S1508の処理を抜けることとなる。
アップデート処理にエラーの発生がない場合(ステップS1507:No)、アップデート部1103は、取得したメタデータにかかる、全てのバージョンのアップデートが完了したか否かを判定する(ステップS1508)。全てのバージョンのアップデートが完了していない場合(ステップS1508:No)には、ステップS1501へ戻り、アップデート処理を継続する。全てのバージョンのアップデートが完了した場合(ステップS1508:Yes)には、ステップS1509に進む。
アップデート部1103は、アップデートの結果をユーザインタフェース部1102へ通知する(ステップS1509)。ユーザインタフェース部1102では、通知されたアップデートの結果をディスプレイ13に画面表示してユーザに通知する。
図17は、第1の実施の形態にかかる情報処理装置により表示される確認画面の一例を示す図である。アップデートの結果を受けたユーザインタフェース部1102は、図17に示すように、アップデート結果G71や、アップデート後のシャットダウンや再起動の操作を受け付けるための操作ボタンG72、G73を確認画面G7に表示する。アップデート結果G71には、アップデート前のバージョンにかかる情報の他、アップデートによる現在のバージョンにかかる情報などが表示される。このアップデート結果G71の表示内容により、ユーザは、アップデートの結果を確認できる。
次いで、アップデート部1103は、アップデートに用いたアップデートデータのメタデータに含まれる、“require_reboot”の記述を基に、情報処理装置11の再起動が必要であるか否かを判定する(ステップS1510)。情報処理装置11の再起動が必要でない場合(ステップS1510:No)、アップデート部1103は、情報処理装置11を再起動することなくアップデート処理を終了する。情報処理装置11の再起動が必要である場合(ステップS1510:Yes)、アップデート部1103は、情報処理装置11を再起動させる(ステップS1511)。このように、再起動が必要なアップデートが実行された場合は、ユーザが操作することなく、アップデート後に再起動されることとなる。
このように本実施の形態にかかるアップデートサーバ60によれば、アップデートに用いるアップデータのうちアップデートが実行可能となる所定日時よりも前にダウンロードが実行可能な事前ダウンロードデータへのアクセスが当該所定日時前に一斉に行われることを防止できるので、事前ダウンロードデータのダウンロードにより通信ネットワーク2やアップデートサーバ60に負荷がかかる時期を分散させることができ、かつ当該事前ダウンロードデータを含むアップロードデータのダウンロードに要する時間が長くなる等によりユーザの利便性が損なわれることを防止できる。
(第2の実施の形態)
本実施の形態は、事前ダウンロード処理の実行中に他の情報処理装置との通話(例えば、テレビ会議など)が開始された場合に、事前ダウンロード処理を停止させる例である。以下の説明では、第1の実施の形態と異なる箇所について説明を行う。
図18は、第2の実施の形態にかかる情報処理装置およびアップデートサーバの機能構成を示すブロック図である。本実施の形態にかかる情報処理装置1800は、送受信部1101、ユーザインタフェース部1102、アップデート部1103およびアプリケーション状態監視部1801を有している。また、アップデートサーバ60は、送受信部601および禁止部602を有している。
アプリケーション状態監視部1801は、情報処理装置1800で実行されるアプリケーションの実行状態を監視する。そして、アプリケーション状態監視部1801は、アップデート部1103による事前ダウンロード処理(図6に示すステップS630)の実行中に、情報処理装置1800で実行されるアプリケーションのうち他の情報処理装置との通信(通話)が開始された場合、アップデート部1103による事前ダウンロード処理を停止させる。
次に、本実施の形態にかかる情報処理装置1800における事前ダウンロード処理を停止する動作の詳細を説明する。図19は、第2の実施の形態にかかる情報処理装置の事前ダウンロード処理を停止する処理の流れを示すフローチャートである。
アプリケーション状態監視部1801は、アップデート部1103による事前ダウンロード処理が開始されると(ステップS1901)。他の情報処理装置の通信状態(例えば、テレビ会議などによる通話)を監視する。そして、アプリケーション状態監視部1801は、他の情報処理装置との通信が開始された場合、当該他の情報処理装置との通信が開始されたことをアップデート部1103に通知して(ステップS1902)、当該アップデート部1103による事前ダウンロード処理の実行を停止させる(ステップS1903)。
その後、アプリケーション状態監視部1801は、他の情報処理装置との通信が終了した場合、当該他の情報処理装置との通信が終了したことをアップデート部1103に通知して(ステップS1904)、当該アップデート部1103による事前ダウンロード処理の実行を再開させる(ステップS1905)。
このように本実施の形態にかかる情報処理装置1800によれば、通信ネットワーク2を介して接続された外部機器(異なる地域に設置された情報処理装置)と通信可能な情報処理装置1800であって、通信ネットワーク2を介して接続されたアップデートサーバ60から、アップデートに用いるアップデートデータのうち、アップデートが実行可能となる所定日時が現在日時より後のアップデートデータである事前ダウンロードデータを取得し、事前ダウンロードデータの取得中に外部機器との通信が開始された場合、事前ダウンロードデータの取得を停止させることにより、ビデオ会議などにより異なる地域に設置された情報処理装置1800間において音声や画像の通信データを送受信する場合に、事前ダウンロードデータのダウンロードにより通信ネットワーク2のネットワーク帯域が消費されてしまい、事前ダウンロードデータのダウンロードが情報処理装置1800間における通信品質に影響を及ぼすことを防止できる。
本実施形態のアップデートサーバ60および情報処理装置11(1800)で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施形態のアップデートサーバ60および情報処理装置11(1800)で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態のアップデートサーバ60および情報処理装置11(1800)で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
なお、本実施の形態は、本発明の範囲を限定するものではなく、アップデートサーバ60が、アップデートを実行する情報処理装置11から、アップデートに用いるアップデートデータのメタデータの送信指示を受信する受信機能と、アップデートデータの中に事前ダウンロードデータが有るか否かを判定する判定機能と、事前ダウンロードデータのメタデータを送信する送信機能と、事前ダウンロードデータのメタデータの送信を禁止する禁止機能とを備えていても良いし、アップデートサーバ60以外のサーバ若しくは遠隔通信システム1が備える情報処理装置11のいずれかが、受信機能と判定機能と送信機能と禁止機能とを備えていても良い。また、アップデートサーバ60を構成するサーバは複数台でも良く、当該複数台のサーバのうちどのサーバに受信機能と判定機能と送信機能と禁止機能とを備えさせても良い。さらに、本実施の形態で説明する情報処理装置11と、遠隔通信管理サーバ50と、アップデートサーバ60と、が接続されたシステム構成は一例であり、用途や目的に応じて様々なシステム構成例があることは言うまでもない。