(57)【要約】【課題】ソフトウェアの機能を効率的にアップデートする技術を提供する。【解決手段】情報処理装置１０は、複数の機能を実現するソフトウェアを記録する第１領域１１０と、ソフトウェアの機能の更新ファイルを記録する第２領域１２０とにアクセスする。機能実行部１０２は、実行するソフトウェアの機能の更新ファイルが第２領域１２０に記録されていれば、当該更新ファイルを実行する。【選択図】図３
2020166712.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能を実現するソフトウェアを記録する第１領域と、前記ソフトウェアの機能の更新ファイルを記録する第２領域とにアクセスする情報処理装置であって、
前記ソフトウェアの機能を実行する機能実行部を備え、
前記機能実行部は、実行する機能の更新ファイルが前記第２領域に記録されていれば、当該更新ファイルを実行する、
ことを特徴とする情報処理装置。
【請求項２】
前記第１領域および前記第２領域は、補助記憶装置における異なるパーティションである、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１領域は、ユーザが操作不能な領域であり、前記第２領域は、ユーザが操作可能な領域であって、
前記第１領域は、前記ソフトウェアのアップデートパッケージによって更新される、
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
配信サーバから、前記ソフトウェアの機能の更新ファイルをダウンロードするダウンロード実行部をさらに備え、
前記ダウンロード実行部は、前記第１領域に記録されたソフトウェアのバージョン情報に対応付けられた更新ファイルが前記配信サーバにダウンロード可能に存在していれば、当該更新ファイルをダウンロードする、
ことを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
前記ダウンロード実行部は、前記配信サーバに存在する更新ファイルが、前記第２領域に記録された更新ファイルと異なっていれば、前記配信サーバから更新ファイルをダウンロードする、
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
ダウンロードした更新ファイルを前記第２領域にインストールするインストール実行部をさらに備える、
ことを特徴とする請求項４または５に記載の情報処理装置。
【請求項７】
前記ダウンロード実行部は、前記ソフトウェアのアップデートパッケージをダウンロードし、
前記インストール実行部は、前記アップデートパッケージを前記第１領域にインストールすると、前記第２領域に記録した更新ファイルをアンインストールする、
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記ソフトウェアは、システムソフトウェアであって、システムソフトウェアが提供する機能は、アプリケーションにより実現される、
ことを特徴とする請求項１から７のいずれかに記載の情報処理装置。
【請求項９】
ソフトウェアのファイルを情報処理装置に配信する配信サーバであって、
複数の機能を実現するソフトウェアのアップデートパッケージを配信する第１配信部と、
前記情報処理装置から、インストールしている前記ソフトウェアのバージョン情報を取得する管理部と、
取得されたバージョン情報に応じて、前記ソフトウェアの機能の更新ファイルを配信する第２配信部と、
を備えることを特徴とする配信サーバ。
【請求項１０】
複数の機能を実現するソフトウェアを記録する第１領域と、前記ソフトウェアの機能の更新ファイルを記録する第２領域とにアクセスする情報処理装置において、ソフトウェアの機能を実行する方法であって、
実行する機能の更新ファイルが前記第２領域に記録されていれば、当該更新ファイルを実行する、
ことを特徴とする機能実行方法。
【請求項１１】
複数の機能を実現するソフトウェアを記録する第１領域と、前記ソフトウェアの機能の更新ファイルを記録する第２領域とにアクセスするコンピュータに、
ソフトウェアの機能を実行させるためのプログラムであって、
実行する機能の更新ファイルが前記第２領域に記録されていれば、当該更新ファイルを実行させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの機能をアップデートする技術に関する。
【背景技術】
【０００２】
特許文献１は、据置型で自宅に置かれる第１情報処理装置と、携帯電話などの第２情報処理装置を備える情報処理システムを開示する。第１情報処理装置が新たなシステムソフトウェアをソフトウェアサーバから自動ダウンロードすると、通知サーバは、第１情報処理装置がシステムアップデート可能な状態にあることを、ユーザの第２情報処理装置に通知する。ユーザは第２情報処理装置を操作して、アップデートの実行指示を第１情報処理装置に送信し、第１情報処理装置は、アップデートの実行指示を取得して、システムソフトウェアをアップデートする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１３９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
オペレーティングシステムは、情報処理装置の基本的な管理や制御のための機能や、多くのアプリケーションが共通して利用する機能を実装したソフトウェアである。近年のシステムソフトウェアは、オペレーティングシステムに加えて、ユーザに有用な様々な機能を実現するアプリケーションを含んでいることが多い。たとえばゲーム装置のシステムソフトウェアは、フレンドの現在の状況を提示するフレンドアプリケーションや、ゲームをオンライン購入するためのＧＵＩを提供するストアアプリケーションなどを含む。これらのアプリケーションは、全てのユーザによる利用を推奨するためにシステムソフトウェアに組み込まれるものであり、以下では、システムソフトウェアに含まれるアプリケーションを「システムアプリケーション」とも呼ぶ。
【０００５】
従来、システムソフトウェアのアップデートは、インストール済みの古いシステムソフトウェアを、新しいシステムソフトウェアに完全に置き換えることで実施されることが多い。システムソフトウェアのデータサイズは大規模であり、そのアップデートには長時間を要するため、システムアップデートは頻繁に行われない。そのため現状、１年に数回の頻度でしかシステムアップデートが実施できず、システムアプリケーションも、その頻度でしかアップデートされない。
【０００６】
そこで本発明は、ソフトウェアの機能を効率的にアップデートする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様は、複数の機能を実現するソフトウェアを記録する第１領域と、ソフトウェアの機能の更新ファイルを記録する第２領域とにアクセスする情報処理装置である。情報処理装置は、ソフトウェアの機能を実行する機能実行部を備え、機能実行部は、実行する機能の更新ファイルが第２領域に記録されていれば、当該更新ファイルを実行する。
【０００８】
本発明の別の態様は、ソフトウェアのファイルを情報処理装置に配信する配信サーバである。配信サーバは、複数の機能を実現するソフトウェアのアップデートパッケージを配信する第１配信部と、情報処理装置から、インストールしているソフトウェアのバージョン情報を取得する管理部と、取得されたバージョン情報に応じて、ソフトウェアの機能の更新ファイルを配信する第２配信部とを備える。
【０００９】
本発明のさらに別の態様は、複数の機能を実現するソフトウェアを記録する第１領域と、ソフトウェアの機能の更新ファイルを記録する第２領域とにアクセスする情報処理装置において、ソフトウェアの機能を実行する方法である。この方法は、実行する機能の更新ファイルが第２領域に記録されていれば、当該更新ファイルを実行する。
【００１０】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によると、ソフトウェアの機能を効率的にアップデートする技術を提供することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】実施例にかかる情報処理システムを示す図である。
【図２】情報処理装置のハードウェア構成を示す図である。
【図３】情報処理装置における機能ブロックを示す図である。
【図４】記憶装置に第１更新ファイルが保持された状態を示す図である。
【図５】第２領域に第１更新ファイルがインストールされた状態を示す図である。
【図６】記憶装置に第２更新ファイルが保持された状態を示す図である。
【図７】第２領域に第２更新ファイルがインストールされた状態を示す図である。
【図８】記憶装置にシステムソフトウェアのアップデートパッケージが保持された状態を示す図である。
【図９】第１領域にシステムソフトウェアがインストールされた状態を示す図である。
【発明を実施するための形態】
【００１３】
図１は、本発明の実施例にかかる情報処理システム１を示す。情報処理システム１は、情報処理装置１０と、ネットワークサーバ５と、ソフトウェアのアップデート用のファイルを配信する配信サーバ１２とを備え、これらはインターネットやＬＡＮ（Local Area Network）などのネットワーク３を介して接続する。アクセスポイント（以下「ＡＰ」とよぶ）８は、無線アクセスポイントおよびルータの機能を有し、情報処理装置１０は無線または有線経由でＡＰ８に接続して、ネットワーク３上のネットワークサーバ５、配信サーバ１２と通信可能に接続する。
【００１４】
情報処理装置１０は、ユーザが操作する入力装置６と無線または有線で接続し、入力装置６はユーザの操作情報を情報処理装置１０に出力する。情報処理装置１０は入力装置６からの操作情報をオペレーティングシステムやアプリケーションの処理に反映し、出力装置４から処理結果を出力させる。情報処理装置１０はゲームアプリケーションを実行するゲーム装置やパーソナルコンピュータなどの端末装置であり、入力装置６はゲームコントローラなど情報処理装置１０に対してユーザの操作情報を供給する機器であってよい。
【００１５】
入力装置６は複数のプッシュ式の操作ボタンや、アナログ量を入力できるアナログスティック、回動式ボタンなどの複数の入力部を有して構成される。撮像装置であるカメラ７は出力装置４の近傍に設けられ、出力装置４周辺の空間を撮像する。図１ではカメラ７が出力装置４の上部に取り付けられている例を示しているが、出力装置４の側方に配置されてもよく、いずれにしても出力装置４の前方でゲームをプレイするユーザを撮像できる位置に配置される。カメラ７は、ステレオカメラであってよい。
【００１６】
補助記憶装置２はＨＤＤ（ハードディスクドライブ）やＳＳＤ（ソリッドステートドライブ）などの大容量記憶装置であり、内蔵型記憶装置であってよく、またＵＳＢ（Universal Serial Bus）などによって情報処理装置１０と接続する外部記憶装置であってもよい。出力装置４は画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよく、またヘッドマウントディスプレイであってもよい。出力装置４は、情報処理装置１０に有線ケーブルで接続されてよく、無線接続されてもよい。
【００１７】
ネットワークサーバ５は情報処理システム１の運営主体により保守、管理され、情報処理システム１のユーザに対してネットワークサービスを提供する。ネットワークサーバ５はユーザを識別するネットワークアカウントを管理しており、ユーザは、ネットワークアカウントを用いて、ネットワークサーバ５が提供するネットワークサービスにサインインする。ユーザは情報処理装置１０からネットワークサービスにサインインすることで、配信サーバ１２からシステムソフトウェアのファイル配信を受けることができる。
【００１８】
配信サーバ１２は、システムソフトウェアのアップデートパッケージや、システムソフトウェアが提供する機能を実現するシステムアプリケーションの更新ファイルなどを保持し、情報処理装置１０からのダウンロードリクエストに応じて情報処理装置１０に配信する。たとえば情報処理装置１０は、定期的に配信サーバ１２に対してダウンロードするべきファイルが存在するか問い合わせ、存在した場合にダウンロードリクエストを配信サーバ１２に送信し、対象となるファイルを自動ダウンロードしてよい。また配信サーバ１２が、新たなアップデートパッケージや更新ファイルが配信可能な状態になったときに、情報処理装置１０に対してその旨を通知し、情報処理装置１０がダウンロードリクエストを配信サーバ１２に送信して、対象となるファイルを自動ダウンロードしてもよい。
【００１９】
アップデートパッケージは、情報処理装置１０にインストール済みの古いシステムソフトウェアを完全に置き換えるための新しいシステムソフトウェアである。アップデートパッケージは、システムソフトウェアそのものであり、更新されたオペレーティングシステムと、更新されたオペレーティングシステムの環境下で動作する複数のシステムアプリケーションを含む。システムソフトウェアにはバージョン情報が付与されており、システムソフトウェアはバージョン情報で管理される。配信サーバ１２は、たとえば１年に数回の頻度でアップデートパッケージを情報処理装置１０に配信する。
【００２０】
システムアプリケーションの更新ファイルは、情報処理装置１０にインストール済みのシステムアプリケーションをアップデートするためのプログラムファイルであり、修正プログラムやパッチファイルを含む。実施例のシステムソフトウェアは、フレンドアプリケーションやストアアプリケーションなど複数のシステムアプリケーションを含んでいるが、システムアプリケーションは、それぞれ異なる開発主体によって互いに独立に開発される。各開発主体は、システムアプリケーションの更新ファイルを作成すると、配信サーバ１２に配信可能な状態でアップロードする。配信サーバ１２は、未配信の更新ファイルを情報処理装置１０に配信する。
【００２１】
図２は、情報処理装置１０のハードウェア構成を示す。情報処理装置１０は、メイン電源ボタン２０、電源ＯＮ用ＬＥＤ２１、スタンバイ用ＬＥＤ２２、システムコントローラ２４、クロック２６、デバイスコントローラ３０、メディアドライブ３２、ＵＳＢモジュール３４、フラッシュメモリ３６、無線通信モジュール３８、有線通信モジュール４０、サブシステム５０およびメインシステム６０を有して構成される。
【００２２】
メインシステム６０は、メインＣＰＵ（Central Processing Unit）、主記憶装置であるメモリおよびメモリコントローラ、ＧＰＵ（Graphics Processing Unit）などを備える。ＧＰＵはゲームアプリケーションの演算処理に主として利用される。これらの機能はシステムオンチップとして構成されて、１つのチップ上に形成されてよい。メインＣＰＵは、補助記憶装置２に記録されたシステムソフトウェアを実行し、補助記憶装置２やＲＯＭ媒体４４に記録されたゲームアプリケーションを実行する機能をもつ。
【００２３】
サブシステム５０は、サブＣＰＵ、主記憶装置であるメモリおよびメモリコントローラなどを備え、ＧＰＵを備えず、ゲームアプリケーションを実行する機能をもたない。サブＣＰＵの回路ゲート数は、メインＣＰＵの回路ゲート数よりも少なく、サブＣＰＵの動作消費電力は、メインＣＰＵの動作消費電力よりも少ない。サブＣＰＵは、メインＣＰＵがスタンバイ状態にある間においても動作し、消費電力を低く抑えるべく、その処理機能を制限されている。
【００２４】
メイン電源ボタン２０は、ユーザからの操作入力が行われるボタンであって、情報処理装置１０の筐体の前面に設けられ、情報処理装置１０のメインシステム６０への電源供給をオンまたはオフするために操作される。電源ＯＮ用ＬＥＤ２１は、メイン電源ボタン２０がオンされたときに点灯し、スタンバイ用ＬＥＤ２２は、メイン電源ボタン２０がオフされたときに点灯する。
【００２５】
システムコントローラ２４は、ユーザによるメイン電源ボタン２０の押下を検出する。メイン電源がオフ状態にあるときにメイン電源ボタン２０が押下されると、システムコントローラ２４は、その押下操作を「オン指示」として取得し、一方で、メイン電源がオン状態にあるときにメイン電源ボタン２０が押下されると、システムコントローラ２４は、その押下操作を「オフ指示」として取得する。
【００２６】
クロック２６はリアルタイムクロックであって、現在の日時情報を生成し、システムコントローラ２４やサブシステム５０およびメインシステム６０に供給する。
【００２７】
デバイスコントローラ３０は、サウスブリッジのようにデバイス間の情報の受け渡しを実行するＬＳＩ（Large-Scale Integrated Circuit）として構成される。図示のように、デバイスコントローラ３０には、システムコントローラ２４、メディアドライブ３２、ＵＳＢモジュール３４、フラッシュメモリ３６、無線通信モジュール３８、有線通信モジュール４０、サブシステム５０およびメインシステム６０などのデバイスが接続される。デバイスコントローラ３０は、それぞれのデバイスの電気特性の違いやデータ転送速度の差を吸収し、データ転送のタイミングを制御する。
【００２８】
メディアドライブ３２は、ゲームなどのアプリケーションを記録したＲＯＭ媒体４４を装着して駆動し、ＲＯＭ媒体４４からプログラムやデータなどを読み出すドライブ装置である。ＲＯＭ媒体４４は、光ディスクや光磁気ディスク、ブルーレイディスクなどの読出専用の記録メディアである。
【００２９】
ＵＳＢモジュール３４は、外部機器とＵＳＢケーブルで接続するモジュールである。ＵＳＢモジュール３４は補助記憶装置２およびカメラ７とＵＳＢケーブルで接続してもよい。フラッシュメモリ３６は、内部ストレージを構成する補助記憶装置である。無線通信モジュール３８は、Bluetooth（登録商標）プロトコルやIEEE802.11プロトコルなどの通信プロトコルで、たとえば入力装置６と無線通信する。なお無線通信モジュール３８は、デジタル携帯電話方式に対応してもよい。有線通信モジュール４０は、外部機器と有線通信し、ＡＰ８を介してネットワーク３に接続する。
【００３０】
図３は、情報処理装置１０における機能ブロックを示す。情報処理装置１０は、受付部１００、機能実行部１０２、ダウンロード実行部１０４およびインストール実行部１０６を備える。これらの機能は、メインシステム６０において実行される。補助記憶装置２は、システムソフトウェアを記録する第１領域１１０と、システムソフトウェアの機能の更新ファイルを記録する第２領域１２０を有する。第１領域１１０および第２領域１２０は、補助記憶装置２における異なるパーティションであり、互いに論理的に区分けされた記憶領域である。情報処理装置１０は、第１領域１１０と第２領域１２０にアクセスして、システムソフトウェアの機能を実行する。
【００３１】
受付部１００は、ユーザが入力装置６を操作した操作情報を受け付ける。機能実行部１０２は、システムソフトウェアの機能を実行する。ダウンロード実行部１０４は、配信サーバ１２からシステムソフトウェアの機能更新用のファイルをダウンロードし、インストール実行部１０６は、ダウンロードされたファイルを補助記憶装置２にインストールする。
【００３２】
配信サーバ１２は、管理部７０、第１配信部７２、第２配信部７４および記憶装置７６を備え、システムソフトウェアのファイルを情報処理装置１０に配信する。管理部７０は、情報処理装置１０から、ファイルのダウンロードリクエストを取得する。第１配信部７２は、システムソフトウェアのアップデートパッケージを配信する。第２配信部７４は、システムソフトウェアの個々の機能の更新ファイルを配信する。記憶装置７６は、システムソフトウェアのアップデートパッケージ、およびシステムアプリケーションの更新ファイルを保持する。なお記憶装置７６は、システムアプリケーションの更新ファイルを、システムソフトウェアのバージョンごとに保持してよい。
【００３３】
これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされたプログラム、ストレージなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００３４】
実施例の補助記憶装置２において、第１領域１１０には、システムソフトウェアが記録される。第１領域１１０は、ユーザが操作不能な記憶領域としてパーティショニングされる。そのためユーザは、第１領域１１０に記録されたシステムソフトウェアをアンインストールできない。第１領域１１０は、システムソフトウェアのアップデートパッケージによってのみ更新可能であり、他の手段による書き込みが禁止されることで、システムの堅牢性を実現する。
【００３５】
一方で第２領域１２０には、システムソフトウェアに含まれるアプリケーションの更新ファイルが記録される。第２領域１２０は、第１領域１１０と異なり、ユーザが操作可能な記憶領域としてパーティショニングされる。そのためユーザは、第２領域１２０にインストールされた更新ファイルを、手動でアンインストールできる。また新しい更新ファイルがダウンロードされる度に、古い更新ファイルは自動アンインストールされてよい。
【００３６】
このように補助記憶装置２では、ユーザが操作不能な第１領域１１０にシステムソフトウェアを記録して、システムの堅牢性を実現しつつ、書込自由な第２領域１２０にアプリケーションの更新ファイルを記録して、アプリケーションを最新の状態で実行できるようにする。
【００３７】
以下、システムソフトウェアのファイルをアップデートする手順について説明する。図３には、配信サーバ１２の記憶装置７６に、最新のバージョン１．１のシステムソフトウェアのパッケージが配信可能に保持されており、補助記憶装置２の第１領域１１０に同じバージョン１．１のシステムソフトウェアがインストールされている。したがって情報処理装置１０は、最新のシステムソフトウェアをインストールした状態にある。
【００３８】
図４は、配信サーバ１２の記憶装置７６に、システムアプリケーションの第１更新ファイルが保持された状態を示す。このとき補助記憶装置２の第２領域１２０に更新ファイルは記録されていない。
【００３９】
記憶装置７６は、システムアプリケーションの最新の更新ファイルを保持する。なおシステムアプリケーションが更新されていなければ、当該アプリケーションの更新ファイルは記憶装置７６に存在しない。システムソフトウェアは、複数のシステムアプリケーションを含んでいるが、以下では、特定のシステムアプリケーション（「システムアプリＡ」と呼ぶ）のアップデートについて説明する。
【００４０】
システムアプリＡの開発主体は、システムアプリＡの第１更新ファイルを作成すると、記憶装置７６に配信可能にアップロードする。なお記憶装置７６には、最新の更新ファイルのみが保持される。そのため第１更新ファイルを記憶装置７６に配信可能にアップロードした後に、開発主体が第２更新ファイルを作成すると、記憶装置７６から第１更新ファイルを削除した上で、第２更新ファイルを配信可能にアップロードする。これにより記憶装置７６には、システムアプリＡの最新の更新ファイルのみが保持される。
【００４１】
なお記憶装置７６は、システムソフトウェアのバージョンごとに、システムアプリケーションの最新の更新ファイルを保持する。たとえば、バージョン１．１よりも古いバージョン１．０のシステムソフトウェアが存在している場合を想定すると、このとき記憶装置７６には、バージョン１．０のオペレーティングシステム（ＯＳ）で動作するシステムアプリＡの最新の更新ファイルと、バージョン１．１のＯＳで動作するシステムアプリＡの最新の更新ファイルとが保持される。
【００４２】
ダウンロード実行部１０４は、定期的に配信サーバ１２に対してダウンロードするべきファイルが存在するか問い合わせる。ダウンロード実行部１０４は１日の所定の時刻（たとえば午前２時）に問い合わせを行ってよい。問い合わせの際、ダウンロード実行部１０４は、インストールしているシステムソフトウェアのバージョン情報（Ｖｅｒ１．１）を配信サーバ１２に通知する。
【００４３】
管理部７０は、バージョン情報（Ｖｅｒ１．１）を含む問い合わせを取得すると、バージョン１．１のＯＳで動作するシステムアプリケーションの最新の更新ファイルを記憶装置７６から探索する。管理部７０は、システムアプリＡの第１更新ファイルが存在することを特定すると、当該第１更新ファイルのハッシュ値を、システムアプリＡの識別情報とともに情報処理装置１０に通知する。
【００４４】
情報処理装置１０においてダウンロード実行部１０４は、通知された情報を取得し、第２領域１２０に、通知されたハッシュ値をもつシステムアプリＡの更新ファイルが存在するか調べる。図４に示す状態では第２領域１２０に更新ファイルは記録されていないため、システムアプリＡの更新ファイルは存在しない。ダウンロード実行部１０４は、配信サーバ１２から通知されたハッシュ値をもつ更新ファイルが第２領域１２０に存在しないことを確認すると、当該更新ファイルのダウンロードリクエストを配信サーバ１２に送信する。
【００４５】
管理部７０は、ダウンロードリクエストを取得し、第２配信部７４は、システムアプリＡの第１更新ファイルを情報処理装置１０に配信する。これによりダウンロード実行部１０４は、システムアプリＡの第１更新ファイルをダウンロードし、インストール実行部１０６は、ダウンロードした第１更新ファイルを第２領域１２０にインストールする。このようにダウンロード実行部１０４は、第１領域１１０に記録されたシステムソフトウェアのバージョン情報に対応付けられた更新ファイルが配信サーバ１２にダウンロード可能に存在している場合に、当該更新ファイルをダウンロードする。
【００４６】
図５は、第２領域１２０にシステムアプリＡの第１更新ファイルがインストールされた状態を示す。この状態で、受付部１００が、ユーザからシステムアプリＡの実行要求を受け付けると、機能実行部１０２が、第２領域１２０に記録された第１更新ファイルを用いて、システムアプリＡを実行する。
【００４７】
受付部１００がシステムアプリケーションの実行要求を受け付けたとき、機能実行部１０２は、ファイルシステムを利用して、実行するシステムアプリケーションの更新ファイルが第２領域１２０に記録されているか判定する。更新ファイルが第２領域１２０に記録されていれば、機能実行部１０２は、当該更新ファイルを実行する。第２領域１２０に記録された更新ファイルは、第１領域１１０に記録されているシステムアプリケーションをアップデートしたものであるため、ユーザは、新しいシステムアプリケーションを利用することが可能となる。
【００４８】
なお図５に示す例で、機能実行部１０２が第１更新ファイルを実行しようとしたとき、第１更新ファイルは、書込自由な第２領域１２０に記録されているため、破損している可能性がある。第１更新ファイルが破損等の理由により起動できない場合、機能実行部１０２は、第１領域１１０に記録されたシステムソフトウェアに組み込まれているシステムアプリＡを実行する。システムソフトウェアは堅牢な第１領域１１０に記録されているため、組み込まれたシステムアプリケーションは、安定して実行可能な状態を維持される。
【００４９】
第１更新ファイルが第２領域１２０に記録された後も、ダウンロード実行部１０４は定期的に、配信サーバ１２に対してダウンロードするべきファイルが存在するか問い合わせる。管理部７０は、バージョン情報（Ｖｅｒ１．１）を含む問い合わせを取得すると、バージョン１．１のＯＳで動作するシステムアプリケーションの最新の更新ファイルを記憶装置７６から探索する。図５に示す例で管理部７０は、システムアプリＡの第１更新ファイルが存在することを特定し、当該第１更新ファイルのハッシュ値を、システムアプリＡの識別情報とともに情報処理装置１０に通知する。
【００５０】
情報処理装置１０においてダウンロード実行部１０４は、通知された情報を取得し、第２領域１２０に、通知されたハッシュ値をもつシステムアプリＡの更新ファイルが存在するか調べる。図５に示す状態では第２領域１２０にシステムアプリＡの第１更新ファイルが存在している。そこでダウンロード実行部１０４は、第１更新ファイルのハッシュ値を算出し、配信サーバ１２から通知されたハッシュ値と比較する。このときハッシュ値は一致するため、ダウンロード実行部１０４はダウンロードが不要であることを確認し、第１更新ファイルのダウンロードリクエストを配信サーバ１２に送信しない。
【００５１】
図６は、配信サーバ１２の記憶装置７６に、システムアプリケーションの第２更新ファイルが保持された状態を示す。システムアプリＡの開発主体により第２更新ファイルが配信可能に記憶装置７６にアップロードされる際、古い第１更新ファイルは、記憶装置７６から削除される。このとき補助記憶装置２の第２領域１２０には、システムアプリＡの第１更新ファイルが記録されている。
【００５２】
ダウンロード実行部１０４は、配信サーバ１２に対してダウンロードするべきファイルが存在するか問い合わせる。管理部７０は、バージョン情報（Ｖｅｒ１．１）を含む問い合わせを取得すると、バージョン１．１のＯＳで動作するシステムアプリケーションの最新の更新ファイルを記憶装置７６から探索する。管理部７０は、システムアプリＡの第２更新ファイルが存在することを特定すると、当該第２更新ファイルのハッシュ値を、システムアプリＡの識別情報とともに情報処理装置１０に通知する。
【００５３】
情報処理装置１０においてダウンロード実行部１０４は、通知された情報を取得し、第２領域１２０に、通知されたハッシュ値をもつシステムアプリＡの更新ファイルが存在するか調べる。図６に示す状態では第２領域１２０にシステムアプリＡの第１更新ファイルが存在している。そこでダウンロード実行部１０４は、第１更新ファイルのハッシュ値を算出し、配信サーバ１２から通知されたハッシュ値と比較する。この場合、ハッシュ値は一致しないため、ダウンロード実行部１０４は、配信サーバ１２から通知されたハッシュ値をもつ更新ファイルが第２領域１２０に存在しないことを確認し、当該第２更新ファイルのダウンロードリクエストを配信サーバ１２に送信する。
【００５４】
管理部７０は、ダウンロードリクエストを取得し、第２配信部７４は、システムアプリＡの第２更新ファイルを情報処理装置１０に配信する。これによりダウンロード実行部１０４は、システムアプリＡの第２更新ファイルをダウンロードし、インストール実行部１０６は、ダウンロードした第２更新ファイルを第２領域１２０にインストールする。このようにダウンロード実行部１０４は、配信サーバ１２に存在する更新ファイルが第２領域１２０に記録された更新ファイルと異なっていれば、配信サーバ１２から更新ファイルをダウンロードする。
【００５５】
実施例のシステムソフトウェアは、異なる開発主体により作成された複数のシステムアプリケーションを含んで構成されている。各システムアプリケーションは、開発主体のルールにしたがってバージョン管理されており、複数のシステムアプリケーションでバージョン情報の付け方は統一されていない。そこでダウンロード実行部１０４は、ダウンロードするか否かの決定に際し、更新ファイルのバージョン情報は参照せず、ハッシュ値の一致、不一致のみで決定するようにしている。
【００５６】
図７は、第２領域１２０にシステムアプリＡの第２更新ファイルがインストールされた状態を示す。インストール実行部１０６は、第２更新ファイルを第２領域１２０に上書きインストールしてよい。この状態で、受付部１００が、ユーザからシステムアプリＡの実行要求を受け付けると、機能実行部１０２が、第２領域１２０に記録された第２更新ファイルを用いて、システムアプリＡを実行する。
【００５７】
図８は、配信サーバ１２の記憶装置７６に、バージョン１．２のシステムソフトウェアのアップデートパッケージが保持された状態を示す。このとき補助記憶装置２の第１領域１１０には、バージョン１．１のシステムソフトウェアが記録されている。
【００５８】
ダウンロード実行部１０４は、配信サーバ１２に対してダウンロードするべきファイルが存在するか問い合わせる際、併せて最新のシステムソフトウェアのバージョンを問い合わせる。管理部７０は、システムソフトウェアのバージョンに関する問い合わせを受けて、最新のシステムソフトウェアのバージョン情報（Ｖｅｒ１．２）を情報処理装置１０に通知する。
【００５９】
情報処理装置１０においてダウンロード実行部１０４は、通知されたシステムソフトウェアのバージョン情報を取得すると、第１領域１１０に記録されたシステムソフトウェアのバージョン情報と比較する。システムソフトウェアのバージョンの付け方には所定のルールが存在し、ダウンロード実行部１０４は、このルールにしたがって、第１領域１１０に記録されたシステムソフトウェアよりも新しいアップデートパッケージがダウンロード可能であるか否かを判断する。ダウンロード実行部１０４は、バージョン情報が一致している場合、ダウンロード不要であることを判断する。ダウンロード実行部１０４は、通知されたバージョン情報の方が新しい場合、システムソフトウェアのダウンロードリクエストを配信サーバ１２に送信する。
【００６０】
管理部７０は、システムソフトウェアのダウンロードリクエストを取得し、第１配信部７２は、システムソフトウェアのアップデートパッケージを情報処理装置１０に配信する。これによりダウンロード実行部１０４は、バージョン１．２のアップデートパッケージをダウンロードし、インストール実行部１０６は、ダウンロードしたバージョン１．２のシステムソフトウェアを第１領域１１０にインストールする。
【００６１】
図９は、第１領域１１０に、バージョン１．２のシステムソフトウェアがインストールされた状態を示す。第１領域１１０は、システムソフトウェアのアップデートパッケージによってのみ書き換えられる。インストール実行部１０６は、バージョン１．２のシステムソフトウェアを第１領域１１０に上書きインストールしてよい。インストール実行部１０６は、アップデートパッケージを第１領域１１０にインストールすると、第２領域１２０に記録した更新ファイルをアンインストールする。以後は、バージョン１．２のＯＳで動作するシステムアプリケーションの更新ファイルが、第２領域１２０にインストールされるようになる。
【００６２】
以上、この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。実施例では、１つのシステムアプリＡの更新について説明したが、実際には複数のシステムアプリケーションの更新が行われる。また実施例では、第１領域１１０に記録するソフトウェアとしてシステムソフトウェアを示したが、ゲームアプリケーションなどの他の種類のソフトウェアであってもよい。
【符号の説明】
【００６３】
１・・・情報処理システム、２・・・補助記憶装置、１０・・・情報処理装置、１２・・・配信サーバ、７０・・・管理部、７２・・・第１配信部、７４・・・第２配信部、７６・・・記憶装置、１００・・・受付部、１０２・・・機能実行部、１０４・・・ダウンロード実行部、１０６・・・インストール実行部、１１０・・・第１領域、１２０・・・第２領域。
【図１】
2020166712.tif 000003
【図２】
2020166712.tif 000004
【図３】
2020166712.tif 000005
【図４】
2020166712.tif 000006
【図５】
2020166712.tif 000007
【図６】
2020166712.tif 000008
【図７】
2020166712.tif 000009
【図８】
2020166712.tif 000010
【図９】
2020166712.tif 000011