(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-10
(45)【発行日】2024-05-20
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
G06F 8/65 20180101AFI20240513BHJP
H04L 67/06 20220101ALI20240513BHJP
【FI】
G06F8/65
H04L67/06
(21)【出願番号】P 2020186010
(22)【出願日】2020-11-06
【審査請求日】2022-07-28
【前置審査】
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【氏名又は名称】森下 賢樹
(74)【代理人】
【識別番号】100109047
【氏名又は名称】村田 雄祐
(74)【代理人】
【識別番号】100109081
【氏名又は名称】三木 友由
(74)【代理人】
【識別番号】100134256
【氏名又は名称】青木 武司
(72)【発明者】
【氏名】畠山 明之
【審査官】田中 啓介
(56)【参考文献】
【文献】特開2018-195046(JP,A)
【文献】特開2015-207145(JP,A)
【文献】特表2020-508098(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F9/24、13/00-13/98
G06F8/00-8/38
G06F8/60-8/77
G06F9/44-9/445、9/451
H04L51/00-51/58
H04L67/00-67/75
H04N7/10、7/14-7/173
H04N7/20-7/56
H04N21/00-21/858
(57)【特許請求の範囲】
【請求項1】
複数のデータブロックを含む第1ソフトウェアを記録している記録装置に、第1ソフトウェアよりも新しいバージョンの第2ソフトウェアを実行できるようにするためのパッチファイルを提供する情報処理装置であって、
第2ソフトウェアに含まれる複数のデータブロックのブロック番号と、第1ソフトウェアと第2ソフトウェアの両方に含まれる共通のデータブロックの第1ソフトウェアにおけるブロック番号とを対応付けた再利用ブロック配置情報を生成するブロック情報生成部と、
第2ソフトウェアに含まれ且つ第1ソフトウェアに含まれないデータブロックを含む差分データ
であって、第2ソフトウェアにおけるブロック番号の小さい順に第1ソフトウェアに含まれないデータブロックを配置した差分データを生成する差分データ生成部と、
差分データおよび再利用ブロック配置情報を含むパッチファイルを生成するパッチファイル生成部と、
前記記録装置にパッチファイルを提供する提供部と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記ブロック情報生成部は、第2ソフトウェアに含まれる複数のデータブロックのブロック番号と、パッチファイルにおけるデータブロックのブロック番号とを対応付けた追加ブロック配置情報を生成し、
前記パッチファイル生成部は、追加ブロック配置情報を含むパッチファイルを生成する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
再利用ブロック配置情報と、追加ブロック配置情報とにより、第2ソフトウェアに含まれる複数のデータブロックのブロック番号に、第1ソフトウェアにおけるデータブロックのブロック番号またはパッチファイルにおけるデータブロックのブロック番号のいずれか一方が対応付けられる、
ことを特徴とする請求項2に記載の情報処理装置。
【請求項4】
記録装置に記録されている第1ソフトウェアに含まれる複数のデータブロックを利用して、第1ソフトウェアよりも新しいバージョンの第2ソフトウェアを処理する情報処理装置であって、
差分データおよび再利用ブロック配置情報を含むパッチファイルを取得して、記録装置に記録する記録制御部と、
第1ソフトウェアと、パッチファイルとを用いて、第2ソフトウェアを処理する処理部と、を備え、
差分データは、第2ソフトウェアに含まれ且つ第1ソフトウェアに含まれないデータブロックを含み、
第2ソフトウェアにおけるブロック番号の小さい順に第1ソフトウェアに含まれないデータブロックを配置したものであり、
再利用ブロック配置情報は、第2ソフトウェアに含まれる複数のデータブロックのブロック番号と、第1ソフトウェアと第2ソフトウェアの両方に含まれる共通のデータブロックの第1ソフトウェアにおけるブロック番号とを対応付けた情報であり、
前記処理部は、再利用ブロック配置情報、第1ソフトウェアおよび差分データを利用して、第2ソフトウェアを処理する、
ことを特徴とする情報処理装置。
【請求項5】
前記処理部は、第2ソフトウェアに含まれる複数のデータブロックのブロック番号と、パッチファイルにおけるデータブロックのブロック番号とを対応付けた追加ブロック配置情報を取得し、再利用ブロック配置情報、追加ブロック配置情報、第1ソフトウェアおよび差分データを利用して、第2ソフトウェアを処理する、
ことを特徴とする請求項4に記載の情報処理装置。
【請求項6】
再利用ブロック配置情報と、追加ブロック配置情報とにより、第2ソフトウェアに含まれる複数のデータブロックのブロック番号に、第1ソフトウェアにおけるデータブロックのブロック番号またはパッチファイルにおけるデータブロックのブロック番号のいずれか一方が対応付けられる、
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
複数のデータブロックを含む第1ソフトウェアを記録している記録装置にアクセス可能な情報処理装置であって、ソフトウェアを配信する配信装置に接続し、
配信装置から、第2ソフトウェアに含まれる複数のデータブロックのブロック番号と、第1ソフトウェアと第2ソフトウェアの両方に含まれる共通のデータブロックの第1ソフトウェアにおけるブロック番号とを対応付けた再利用ブロック配置情報を取得するブロック情報取得部と、
再利用ブロック配置情報において、第1ソフトウェアにおけるブロック番号が対応付けられていない、第2ソフトウェアにおけるブロック番号を特定する差分データ特定部と、
前記差分データ特定部により特定されたブロック番号を、ブロック番号の小さい順に配信装置に通知し、配信装置から、
通知したブロック番号のデータブロックを
、ブロック番号の小さい順にダウンロードするダウンロード実行部と、
を備えることを特徴とする情報処理装置。
【請求項8】
第1ソフトウェアのバージョン情報を配信装置に送信するダウンロード要求送信部と、をさらに備える、
ことを特徴とする請求項7に記載の情報処理装置。
【請求項9】
ソフトウェアを配信する配信装置に接続する情報処理装置であって、
第1ソフトウェアのダウンロード要求であって、第1ソフトウェアに含まれるコンテンツのうち、ダウンロードしないコンテンツに関する情報を含むダウンロード要求を配信装置に送信するダウンロード要求送信部と、
配信装置から、第1ソフトウェアに含まれる複数のデータブロックのブロック番号に、必要なデータブロックについては当該データブロックのブロック番号を対応付け、必要のないデータブロックについてはダウンロードしないことを示す情報を対応付けた第1ダウンロードブロック情報を取得するブロック情報取得部と、
配信装置から、第1ダウンロードブロック情報に含まれる、ブロック番号を対応付けられたデータブロックをダウンロードするダウンロード部と、
第1ダウンロードブロック情報およびダウンロードしたデータブロックを含む第1ソフトウェアを記録する記録装置と、
を備えることを特徴とする情報処理装置。
【請求項10】
前記情報処理装置が、第1ソフトウェアよりも新しいバージョンの第2ソフトウェアをダウンロードする際、
前記ダウンロード要求送信部は、第2ソフトウェアのダウンロード要求であって、第2ソフトウェアに含まれるコンテンツのうち、ダウンロードしないコンテンツに関する情報と、第1ソフトウェアのバージョン情報を含むダウンロード要求を配信装置に送信し、
前記ブロック情報取得部は、配信装置から、第2ソフトウェアに含まれる複数のデータブロックのブロック番号に、必要なデータブロックについては当該データブロックのブロック番号を対応付け、必要のないデータブロックについてはダウンロードしないことを示す情報を対応付けた第2ダウンロードブロック情報と、第2ソフトウェアに含まれる複数のデータブロックのブロック番号と、第1ソフトウェアと第2ソフトウェアの両方に含まれる共通のデータブロックの第1ソフトウェアにおけるブロック番号とを対応付けた再利用ブロック配置情報とを取得し、
前記情報処理装置は、第1ダウンロードブロック情報、第2ダウンロードブロック情報および再利用ブロック配置情報にもとづいて、ダウンロードする第2ソフトウェアのデータブロックのブロック番号を特定する差分データ特定部を、さらに備え、
前記ダウンロード部は、前記差分データ特定部が特定した第2ソフトウェアにおけるブロック番号のデータブロックをダウンロードする、
ことを特徴とする請求項9に記載の情報処理装置。
【請求項11】
複数のデータブロックを含む第1ソフトウェアを記録している記録装置に、第1ソフトウェアよりも新しいバージョンの第2ソフトウェアを実行できるようにするためのパッチファイルを提供するコンピュータに、
第2ソフトウェアに含まれる複数のデータブロックのブロック番号と、第1ソフトウェアと第2ソフトウェアの両方に含まれる共通のデータブロックの第1ソフトウェアにおけるブロック番号とを対応付けた再利用ブロック配置情報を生成する機能と、
第2ソフトウェアに含まれ且つ第1ソフトウェアに含まれないデータブロックを含む差分データ
であって、第2ソフトウェアにおけるブロック番号の小さい順に第1ソフトウェアに含まれないデータブロックを配置した差分データを生成する機能と、
差分データおよび再利用ブロック配置情報を含むパッチファイルを生成する機能と、
前記記録装置にパッチファイルを提供する機能と、
を実現させるためのプログラム。
【請求項12】
記録装置に記録されている第1ソフトウェアに含まれる複数のデータブロックを利用して、第1ソフトウェアよりも新しいバージョンの第2ソフトウェアを処理するコンピュータに、
差分データおよび再利用ブロック配置情報を含むパッチファイルを取得して、記録装置に記録する機能と、
第1ソフトウェアと、パッチファイルとを用いて、第2ソフトウェアを処理する機能と、を実現させるためのプログラムであって、
差分データは、第2ソフトウェアに含まれ且つ第1ソフトウェアに含まれないデータブロックを含み、
第2ソフトウェアにおけるブロック番号の小さい順に第1ソフトウェアに含まれないデータブロックを配置したものであり、
再利用ブロック配置情報は、第2ソフトウェアに含まれる複数のデータブロックのブロック番号と、第1ソフトウェアと第2ソフトウェアの両方に含まれる共通のデータブロックの第1ソフトウェアにおけるブロック番号とを対応付けた情報であり、
第2ソフトウェアを処理する機能は、再利用ブロック配置情報、第1ソフトウェアおよび差分データを利用して、第2ソフトウェアを処理する機能を含む、
ことを特徴とするプログラム。
【請求項13】
ソフトウェアを配信する配信装置に接続し、且つ、複数のデータブロックを含む第1ソフトウェアを記録している記録装置にアクセス可能なコンピュータに、
配信装置から、第2ソフトウェアに含まれる複数のデータブロックのブロック番号と、第1ソフトウェアと第2ソフトウェアの両方に含まれる共通のデータブロックの第1ソフトウェアにおけるブロック番号とを対応付けた再利用ブロック配置情報を取得する機能と、
再利用ブロック配置情報において、第1ソフトウェアにおけるブロック番号が対応付けられていない、第2ソフトウェアにおけるブロック番号を特定する機能と、
配信装置に、特定したブロック番号をブロック番号の小さい順に通知する機能と、
配信装置から、
通知したブロック番号のデータブロックを
、ブロック番号の小さい順にダウンロードする機能と、
を実現させるためのプログラム。
【請求項14】
ソフトウェアを配信する配信装置に接続するコンピュータに、
第1ソフトウェアのダウンロード要求であって、第1ソフトウェアに含まれるコンテンツのうち、ダウンロードしないコンテンツに関する情報を含むダウンロード要求を配信装置に送信する機能と、
配信装置から、第1ソフトウェアに含まれる複数のデータブロックのブロック番号に、必要なデータブロックについては当該データブロックのブロック番号を対応付け、必要のないデータブロックについてはダウンロードしないことを示す情報を対応付けた第1ダウンロードブロック情報を取得する機能と、
配信装置から、第1ダウンロードブロック情報に含まれる、ブロック番号を対応付けられたデータブロックをダウンロードする機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアをアップデートないしはアップグレードするための技術に関する。
【背景技術】
【0002】
特許文献1は、異なるバージョンのパッチファイルにおける各データブロックのハッシュ値を比較して、両者の間に同一のデータブロックが存在するか判定する差分情報生成ソフトウェアを開示する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ゲームソフトウェアは、起動ファイル、ゲームプログラムなどのゲームを実行するためのファイル群、画像および音声を生成するためのファイル群、ゲーム装置のオペレーティングシステム(OS:Operating System)が使用するファイル群などを含む。ゲームソフトウェアのデータサイズが大規模化すると、ゲームソフトウェアのアップデートないしはアップグレードにかかる時間は長くなる。
【0005】
コンソールゲーム機用のゲームソフトウェアの開発は、ターゲットハードウェアをもつ開発機ないしはテスト機と呼ばれる専用機(開発用ゲーム機)と、パーソナルコンピュータ(PC)を使用して行われる。動作確認の目的で、PCで作成した更新ソフトウェアを開発用ゲーム機上で実行するとき、PCから開発用ゲーム機にゲームデータをコピーする必要がある。動作確認は頻繁に行われるため、動作確認のたびにデータ転送に時間をかけることは効率が悪い。
【0006】
開発環境において更新ソフトウェアの動作確認が終了すると、当該更新ソフトウェアはサーバシステム側の診断装置に転送されて、さらなる動作確認を実施される。このとき、全てのゲームデータを診断装置にデータ転送すると長い時間がかかるため、転送するデータ量を低減できることが好ましい。
【0007】
サーバシステム側の診断装置における動作確認が終了すると、オーサリングされたゲームソフトウェアが配信装置にアップロードされ、エンドユーザのゲーム機は、配信装置からゲームソフトウェアをダウンロードできる。このとき、全てのゲームデータをダウンロードすると長い時間がかかるため、ダウンロードするデータ量を低減できることが好ましい。
【0008】
そこで本発明は、ソフトウェアのアップデートないしはアップグレードを効率よく実施するための技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明のある態様は、複数のデータブロックを含む第1ソフトウェアを記録している記録装置に、第1ソフトウェアよりも新しいバージョンの第2ソフトウェアを実行できるようにするためのパッチファイルを提供する情報処理装置であって、第2ソフトウェアに含まれる複数のデータブロックのブロック番号と、第1ソフトウェアと第2ソフトウェアの両方に含まれる共通のデータブロックの第1ソフトウェアにおけるブロック番号とを対応付けた再利用ブロック配置情報を生成するブロック情報生成部と、第2ソフトウェアに含まれ且つ第1ソフトウェアに含まれないデータブロックを含む差分データを生成する差分データ生成部と、差分データおよび再利用ブロック配置情報を含むパッチファイルを生成するパッチファイル生成部と、記録装置にパッチファイルを提供する提供部と、を備える。
【0010】
本発明の別の態様は、記録装置に記録されている第1ソフトウェアに含まれる複数のデータブロックを利用して、第1ソフトウェアよりも新しいバージョンの第2ソフトウェアを処理する情報処理装置であって、差分データおよび再利用ブロック配置情報を含むパッチファイルを取得して、記録装置に記録する記録制御部と、第1ソフトウェアと、パッチファイルとを用いて、第2ソフトウェアを処理する処理部と、を備える。差分データは、第2ソフトウェアに含まれ且つ第1ソフトウェアに含まれないデータブロックを含む。再利用ブロック配置情報は、第2ソフトウェアに含まれる複数のデータブロックのブロック番号と、第1ソフトウェアと第2ソフトウェアの両方に含まれる共通のデータブロックの第1ソフトウェアにおけるブロック番号とを対応付けた情報である。処理部は、再利用ブロック配置情報、第1ソフトウェアおよび差分データを利用して、第2ソフトウェアを処理する。
【0011】
本発明のさらに別の態様は、複数のデータブロックを含む第1ソフトウェアを記録している記録装置にアクセス可能な情報処理装置であって、ソフトウェアを配信する配信装置に接続し、配信装置から、第2ソフトウェアに含まれる複数のデータブロックのブロック番号と、第1ソフトウェアと第2ソフトウェアの両方に含まれる共通のデータブロックの第1ソフトウェアにおけるブロック番号とを対応付けた再利用ブロック配置情報を取得するブロック情報取得部と、再利用ブロック配置情報において、第1ソフトウェアにおけるブロック番号が対応付けられていない、第2ソフトウェアにおけるブロック番号を特定する差分データ特定部と、配信装置から、特定したブロック番号のデータブロックをダウンロードするダウンロード実行部と、を備える。
【0012】
本発明のさらに別の態様は、ソフトウェアを配信する配信装置に接続する情報処理装置であって、第1ソフトウェアのダウンロード要求であって、第1ソフトウェアに含まれるコンテンツのうち、ダウンロードしないコンテンツに関する情報を含むダウンロード要求を配信装置に送信するダウンロード要求送信部と、配信装置から、第1ソフトウェアに含まれる複数のデータブロックのブロック番号に、必要なデータブロックについては当該データブロックのブロック番号を対応付け、必要のないデータブロックについてはダウンロードしないことを示す情報を対応付けた第1ダウンロードブロック情報を取得するブロック情報取得部と、配信装置から、第1ダウンロードブロック情報に含まれる、ブロック番号を対応付けられたデータブロックをダウンロードするダウンロード部と、第1ダウンロードブロック情報およびダウンロードしたデータブロックを含む第1ソフトウェアを記録する記録装置と、を備える。
【0013】
本発明のさらに別の態様は、第1記録装置に、第2記録装置に記録されたソフトウェアをコピーする情報処理装置であって、記録制御部を備え、第2記録装置は、完全版のソフトウェアから一部のコンテンツを除外したソフトウェアと、完全版のソフトウェアの複数のデータブロックのブロック番号と、第2記録装置に記録されたソフトウェアのデータブロックのブロック番号とを対応付けた選択ブロック配置情報とを記録しており、記録制御部は、第2記録装置に記録されたソフトウェアを、第1記録装置にコピーする際に、選択ブロック配置情報にもとづいて、完全版のソフトウェアの複数のデータブロックのブロック番号に、存在するデータブロックについては当該データブロックのブロック番号を対応付け、存在しないデータブロックについては存在しないことを示す情報を対応付けた存在ブロック配置情報を生成して、第1記録装置に記録する。
【0014】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0015】
本発明の情報処理技術によると、送信するデータ量を効率的に削減するための技術を提供することが可能となる。
【図面の簡単な説明】
【0016】
【
図1】本発明の実施例にかかる情報処理システムを示す図である。
【
図2】PCおよび開発用ゲーム機の機能ブロックを示す図である。
【
図3】(a)は第1ソフトウェアの例を示し、(b)は第2ソフトウェアの例を示し、(c)はパッチファイルの例を示す図である。
【
図4】(a)は、第1ソフトウェアの例を示し、(b)は、パッチファイルの例を示し、(c)は第2ソフトウェアの例を示す図である。
【
図5】配信装置およびゲーム機の機能ブロックを示す図である。
【
図6】(a)は第1ソフトウェアの例を示し、(b)は第2ソフトウェアの例を示し、(c)は再利用ブロック配置情報126の例を示す図である。
【
図7】ダウンロードの手順を示すシーケンス図である。
【
図8】配信装置およびゲーム機の機能ブロックを示す図である。
【
図9】(a)は第1ソフトウェアの例を示し、(b)は第1ダウンロードブロック情報を示し、(c)は第1ソフトウェア168の例を示す図である。
【
図10】ダウンロードの手順を示すシーケンス図である。
【
図11】ゲーム機の記録装置の状態を示す図である。
【
図12】第2ソフトウェアがダウンロード可能な状態を示す図である。
【
図13】(a)は第2ソフトウェアの例を示し、(b)は再利用ブロック配置情報の例を示し、(c)は第2ダウンロードブロック情報の例を示し、(d)は第1ダウンロードブロック情報166の例を示す図である。
【
図14】ダウンロードの手順を示すシーケンス図である。
【
図15】2つの記録装置を備えたゲーム機を示す図である。
【発明を実施するための形態】
【0017】
図1は、本発明の実施例にかかる情報処理システム1を示す。情報処理システム1は、ソフトウェアを効率的にアップデートないしはアップグレード(以下、単に「アップデート」または「更新」と呼ぶ)するための仕組みを構築する。実施例においてソフトウェアはゲームソフトウェアであるが、他の種類のソフトウェアであってもよい。
【0018】
情報処理システム1は、開発環境におけるパーソナルコンピュータ(以下「PC」と呼ぶ)2および開発用ゲーム機4と、サーバシステムにおける診断装置6および配信装置8と、複数のゲーム機10を備える。複数のゲーム機10は、インターネットなどのネットワーク3を介して配信装置8に接続する。情報処理システム1において、PC2、開発用ゲーム機4、診断装置6、ゲーム機10は、それぞれ情報処理装置として存在し、PC2を第1情報処理装置、開発用ゲーム機4を第2情報処理装置、診断装置6を第3情報処理装置、ゲーム機10を第4情報処理装置と呼んでもよい。
【0019】
開発環境において、開発用ゲーム機4は、コンソールゲーム機であるゲーム機10のターゲットハードウェアを備える。ゲーム開発者はPC2を使用して、ゲームソフトウェアをアップデートし、成果物であるゲームデータを開発用ゲーム機4にインストールする。このとき開発用ゲーム機4に既にインストールされているゲームデータを再利用できれば、開発用ゲーム機4に新たにインストールするゲームデータのサイズを小さくできる。そこで第1情報処理装置であるPC2は、第2情報処理装置である開発用ゲーム機4においてインストール済みのゲームデータを再利用できるように、更新したゲームデータを開発用ゲーム機4に提供する機能を備える。
【0020】
図2は、開発環境におけるPC2および開発用ゲーム機4の機能ブロックを示す。PC2は、処理装置20および記録装置40を備え、処理装置20は、差分データ生成部22、ブロック情報生成部24、パッチファイル生成部26および提供部28を有する。開発用ゲーム機4は、処理装置60および記録装置80を備え、処理装置60は、記録制御部62および処理部64を有する。開発用ゲーム機4の記録装置80には、第1ソフトウェア82が記録されている。
【0021】
これらの構成は、ハードウェアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラム、ストレージなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0022】
図3(a)は、記録装置80に記録されている第1ソフトウェア82の例を示す。第1ソフトウェア82のフォーマットは、ヘッダ(FIH)領域、ゲームデータ領域、サブコンテナ領域および補足情報領域を含む。
【0023】
ゲームデータ領域は、ゲームプログラムおよび各種データ(以下、まとめて「ゲームデータ」と呼ぶ)を含み、複数のデータブロックにより構成される。データブロックは所定のブロックサイズをもち、たとえば64キロバイトに設定されてよい。
図3(a)において、第1ソフトウェア82のゲームデータは、n個のデータブロックにより構成されている。
【0024】
ヘッダ(FIH)領域は、ゲームデータのヘッダ情報を含み、単一のデータブロックにより構成される。ヘッダ(FIH)情報は、ゲームデータのスーパーブロックのオフセット情報およびサブコンテナのオフセット情報を含む。
【0025】
サブコンテナ領域は、ライセンスに関連する情報や、補足情報のオフセット情報を含む。実施例のサブコンテナ領域は、データブロックのアラインメントを有しないが、複数のデータブロックにより構成されてもよい。補足情報領域は、エンドユーザに配信されない情報を含み、したがってソフトウェアが配信装置8からエンドユーザに配信される際、補足情報は配信データに含まれない。そのため補足情報領域は、PC2で作成されたゲームデータが、開発用ゲーム機4にインストールされるとき、およびPC2で作成されたゲームデータが、診断装置6にアップロードされるときにのみ、パッケージフォーマットに含まれる。実施例において補足情報領域は、ゲームデータを再利用するためのデータブロック配置情報を含む。
【0026】
第1ソフトウェア82が開発用ゲーム機4の記録装置80に記録されている状態で、ゲーム開発者がPC2を使用して、成果物であるゲームデータを開発用ゲーム機4にインストールする方法について説明する。
【0027】
図3(b)は、アップデートされた第2ソフトウェア84の例を示す。第2ソフトウェア84のバージョンは、第1ソフトウェア82のバージョンよりも新しい。なお
図3(b)に示すフォーマットで整列された第2ソフトウェア84は、理解を容易にする目的で示したものであり、PC2において、
図3(b)に示す第2ソフトウェア84が生成されるわけではない。開発環境では、後述するように、PC2が、
図3(c)に示すパッチファイル86を生成し、パッチファイル86を開発用ゲーム機4に提供することで、開発用ゲーム機4が第1ソフトウェア82とパッチファイル86とから、第2ソフトウェア84を処理できるようになる。
【0028】
第2ソフトウェア84では、第1ソフトウェア82におけるデータブロックのいくつかが更新されている。
図3(a)に示す第1ソフトウェア82と比較すると、第2ソフトウェア84においては、ブロック番号“0”のヘッダ(FIH’)、ブロック番号3のデータブロックC’、ブロック番号4のデータブロックD’、ブロック番号7のデータブロックG’が更新され、ブロック番号(n+1)のデータブロックY’が追加されている。
【0029】
ブロック情報生成部24は、第2ソフトウェア84に含まれる複数のデータブロックのブロック番号と、第1ソフトウェア82と第2ソフトウェア84の両方に含まれる共通のデータブロックの第1ソフトウェア82におけるブロック番号とを対応付けた再利用ブロック配置情報44を生成する。なお共通のデータブロックとは、同一のデータを記録したデータブロックであり、別の視点から見れば、再利用可能なデータブロックであることを意味する。
【0030】
再利用ブロック配置情報44は、上段に示す第2ソフトウェア84のデータブロックのブロック番号と、下段に示す共通データブロックの第1ソフトウェア82のブロック番号とを対応付けた情報である。つまり下段には、第2ソフトウェア84のデータブロックと同一のデータを記録した第1ソフトウェア82のデータブロックのブロック番号が指定されている。
【0031】
この例で、第2ソフトウェア84のブロック番号1のデータブロックは、第1ソフトウェア82のブロック番号1のデータブロックと同一であり、第2ソフトウェア84のブロック番号2のデータブロックは、第1ソフトウェア82のブロック番号2のデータブロックと同一であることを示している。
【0032】
再利用ブロック配置情報44において、下段に示される「-」は、第2ソフトウェア84のデータブロックと同一のデータを記録したデータブロックが第1ソフトウェア82に含まれていないことを意味する。この例では、第2ソフトウェア84のブロック番号0,3,4,7,・・・,(n+1)のデータブロックが第1ソフトウェア82に含まれていない。このように再利用ブロック配置情報44は、第1ソフトウェア82において再利用可能なデータブロックを特定するとともに、第1ソフトウェア82には含まれない第2ソフトウェア84のデータブロックを特定する情報を含んでいる。
【0033】
差分データ生成部22は、第2ソフトウェア84に含まれ且つ第1ソフトウェア82に含まれないデータブロックを含む差分データ42を生成する。上記したように第2ソフトウェア84においては、ブロック番号“0”のヘッダ(FIH’)、ブロック番号3のデータブロックC’、ブロック番号4のデータブロックD’、ブロック番号7のデータブロックG’が更新され、ブロック番号(n+1)のデータブロックY’が追加されている。そこで差分データ生成部22は、第2ソフトウェア84におけるブロック番号の小さい順にデータブロックを配置した差分データ42を生成する。
【0034】
図3(c)は、パッチファイル86の例を示す。パッチファイル生成部26は、差分データ42を少なくとも含むパッチファイル86を生成する。パッチファイル生成部26は、差分データ42のヘッダ(LIH)をブロック番号0のデータブロックに配置し、ブロック番号1以降のデータブロックに差分データ42を配置する。
【0035】
ブロック情報生成部24は、第2ソフトウェア84に含まれる複数のデータブロックのブロック番号と、パッチファイル86におけるデータブロックのブロック番号とを対応付けた追加ブロック配置情報46を生成する。
【0036】
追加ブロック配置情報46は、上段に示す第2ソフトウェア84のデータブロックのブロック番号と、下段に示すパッチファイル86のデータブロックのブロック番号とを対応付けた情報である。この例で、第2ソフトウェア84のブロック番号0のデータブロックは、パッチファイル86のブロック番号1のデータブロックと同一であり、第2ソフトウェア84のブロック番号3のデータブロックは、パッチファイル86のブロック番号2のデータブロックと同一であることを示している。
【0037】
追加ブロック配置情報46において、下段に示される「-」は、第2ソフトウェア84のデータブロックと同一のデータを記録したデータブロックがパッチファイル86に含まれていないことを意味する。この例では、第2ソフトウェア84のブロック番号1,2,5,6,8,・・・,nのデータブロックがパッチファイル86に含まれていない。このように追加ブロック配置情報46は、第2ソフトウェア84を構成する際に、パッチファイル86から利用するデータブロックを特定する情報を含んでいる。
【0038】
再利用ブロック配置情報44と、追加ブロック配置情報46とにより、第2ソフトウェア84に含まれる複数のデータブロックのブロック番号に、第1ソフトウェア82におけるデータブロックのブロック番号またはパッチファイル86におけるデータブロックのブロック番号のいずれか一方が対応付けられる。これにより第2ソフトウェア84のヘッダおよびゲームデータを構成する全てのデータブロックが、第1ソフトウェア82またはパッチファイル86のいずれかに含まれることになる。
【0039】
パッチファイル生成部26は、差分データ42、再利用ブロック配置情報44および追加ブロック配置情報46を含むパッチファイル86を生成する。再利用ブロック配置情報44および追加ブロック配置情報46は、開発用ゲーム機4において利用される情報であるため、補足情報領域に配置されてよい。たとえば第2ソフトウェア84の動作確認を行う際に、パッチファイル生成部26はパッチファイル86を生成し、提供部28がパッチファイル86を開発用ゲーム機4に提供する。
【0040】
開発用ゲーム機4は、記録装置80に記録されている第1ソフトウェア82に含まれる複数のデータブロックを利用して、第1ソフトウェア82よりも新しいバージョンの第2ソフトウェア84を処理する機能を有する。
【0041】
パッチファイル86がPC2から提供されると、記録制御部62は、パッチファイル86を取得して、記録装置80に記録する。これにより記録装置80には、第1ソフトウェア82とパッチファイル86とが記録される。
図4(a)は、第1ソフトウェア82の例を示し、
図4(b)は、パッチファイル86の例を示す。パッチファイル86の補足情報領域には、再利用ブロック配置情報44および追加ブロック配置情報46が含まれている。
【0042】
処理部64は、第1ソフトウェア82とパッチファイル86とを用いて、第2ソフトウェア84を処理する機能をもつ。具体的に処理部64は、再利用ブロック配置情報44、追加ブロック配置情報46、第1ソフトウェア82および差分データ42を利用して、第2ソフトウェア84を処理する。ここで処理とは、第2ソフトウェア84を実行して動作確認することを意味するが、たとえば第2ソフトウェア84を
図4(c)に示すフォーマットに整列して再構成することを意味してもよい。
【0043】
このように開発環境では、アップデートした第2ソフトウェア84の動作確認に際し、PC2が、更新されたデータブロックのみを差分データ42として含むパッチファイル86を生成して、開発用ゲーム機4に提供する。これによりPC2と開発用ゲーム機4の間の転送データ量を低減できる利点がある。
【0044】
なお
図4(b)に示すように、再利用ブロック配置情報44と追加ブロック配置情報46は補完的な関係にあり、また差分データ42においては、第2ソフトウェア84において更新されたデータブロックが、ブロック番号の小さい順に配置されている。そのため再利用ブロック配置情報44が存在すれば、追加ブロック配置情報46は再利用ブロック配置情報44から生成されることが可能である。
【0045】
そこでPC2において、ブロック情報生成部24は、追加ブロック配置情報46を生成しなくてよく、したがってパッチファイル生成部26は、パッチファイルに追加ブロック配置情報46を含めなくてよい。この場合は、開発用ゲーム機4において、処理部64が第2ソフトウェア84を処理する際に、再利用ブロック配置情報44から追加ブロック配置情報46を一時的に生成して取得すればよい。
【0046】
以上は、開発環境においてパッチファイル86を開発用ゲーム機4の記録装置80に提供することで、開発用ゲーム機4が第2ソフトウェア84を処理できるようにし、PC2と開発用ゲーム機4の間の転送データ量を低減する手法を説明した。この手法は、第1情報処理装置であるPC2と第3情報処理装置である診断装置6の間のデータ転送においても適用でき、診断装置6に第1ソフトウェア82がインストールされている状態で、PC2がパッチファイル86を提供することで、診断装置6は、第2ソフトウェア84を実行できるようになる。
【0047】
診断装置6は、第2ソフトウェア84の動作確認を終了すると、第1ソフトウェア82とパッチファイル86を統合して、
図4(c)で示したようなフォーマットで最新バージョンの第2ソフトウェア84を構成する。なお上記したように、配信用の第2ソフトウェア84は補足情報を含まない。診断装置6は、構成した第2ソフトウェア84を配信装置8にアップロードする。これによりユーザは、配信装置8から最新の第2ソフトウェア84をゲーム機10にダウンロードして、実行できるようになる。
【0048】
このときゲーム機10が既にインストールされているゲームデータを再利用できれば、配信装置8からダウンロードするゲームデータのサイズを小さくできる。そこで第4情報処理装置であるゲーム機10は、インストール済みのゲームデータを再利用するための再利用ブロック配置情報を配信装置8から取得し、更新されたゲームデータを効率よくダウンロードする。
【0049】
図5は、配信装置8およびゲーム機10の機能ブロックを示す。配信装置8は、処理装置100および記録装置120を備え、処理装置100は、ダウンロード要求取得部102、ブロック情報提供部104およびゲームデータ配信部106を有する。ゲーム機10は、処理装置140および記録装置160を備え、処理装置140は、ダウンロード要求送信部142、ブロック情報取得部144、差分データ特定部146およびダウンロード実行部148を有する。ゲーム機10の処理装置140は記録装置160にアクセス可能であり、記録装置160には、第1ソフトウェア122が記録されている。
【0050】
これらの構成は、ハードウェアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラム、ストレージなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0051】
図6(a)は、記録装置160に記録されている第1ソフトウェア122の例を示す。第1ソフトウェア122のフォーマットは、ヘッダ(FIH)領域、ゲームデータ領域およびサブコンテナ領域を含むが、以下においてサブコンテナ領域についての説明は省略する。
【0052】
ゲームデータ領域はゲームデータを含み、複数のデータブロックにより構成される。データブロックは所定のブロックサイズを有し、ゲームデータは署名および暗号化されていてよい。ヘッダ(FIH)領域は、ゲームデータのヘッダ情報を含み、単一のデータブロックにより構成される。ヘッダ(FIH)情報は、ゲームデータのスーパーブロックのオフセット情報およびサブコンテナのオフセット情報を含む。
【0053】
第1ソフトウェア122が記録装置160に記録されている状態で、ユーザがゲーム機10を操作して、最新バージョンの第2ソフトウェア124をゲーム機10にインストールする方法について説明する。
【0054】
図6(b)は、第2ソフトウェア124の例を示す。配信装置8において、記録装置120は、最新バージョンの第2ソフトウェア124と、複数の再利用ブロック配置情報126とを記録している。再利用ブロック配置情報126は、第2ソフトウェア124よりも古い第1ソフトウェア122のバージョンごとに用意され、したがって最新バージョン以前のバージョンの数がN個であれば、N個の再利用ブロック配置情報126が用意される。診断装置6は、最新バージョンの第2ソフトウェア124を配信装置8にアップロードする際、第2ソフトウェア124の各データブロックのハッシュ値と、それ以前のバージョンの第1ソフトウェア122の各データブロックのハッシュ値とを比較して、同一のデータブロックを特定し、バージョンごとに再利用ブロック配置情報126を生成して、配信装置8に提供してよい。
【0055】
再利用ブロック配置情報126は、最新バージョンの第2ソフトウェア124に含まれる複数のデータブロックのブロック番号と、第1ソフトウェア122と第2ソフトウェア124の両方に含まれる共通のデータブロックの第1ソフトウェアにおけるブロック番号とを対応付けた情報である。なお共通のデータブロックとは、同一のデータを記録したデータブロックであり、別の視点から見れば、再利用可能なデータブロックであることを意味する。
【0056】
図6(c)は、再利用ブロック配置情報126の例を示す。再利用ブロック配置情報126は、上段に示す第2ソフトウェア124のデータブロックのブロック番号と、下段に示す共通データブロックの第1ソフトウェア122のブロック番号とを対応付けた情報である。つまり下段には、第2ソフトウェア124のデータブロックと同一のデータを記録した第1ソフトウェア122のデータブロックのブロック番号が指定されている。
【0057】
この例で、第2ソフトウェア124のブロック番号1のデータブロックは、第1ソフトウェア122のブロック番号1のデータブロックと同一であり、第2ソフトウェア124のブロック番号2のデータブロックは、第1ソフトウェア122のブロック番号2のデータブロックと同一である。また第2ソフトウェア124のブロック番号5,6,7のデータブロックは、それぞれ第1ソフトウェア122のブロック番号4,5,6のデータブロックと同一であり、第2ソフトウェア124のブロック番号9のデータブロックは、第1ソフトウェア122のブロック番号8のデータブロックと同一である。
【0058】
再利用ブロック配置情報126において、下段に示される「-」は、第2ソフトウェア124のデータブロックと同一のデータを記録したデータブロックが第1ソフトウェア122に含まれていないことを意味する。この例では、第2ソフトウェア124のブロック番号0,3,4,8,・・・のデータブロックが第1ソフトウェア122に含まれていない。このように再利用ブロック配置情報126は、第1ソフトウェア122において再利用可能なデータブロックを特定するとともに、第1ソフトウェア122には含まれない第2ソフトウェア124のデータブロックを特定する情報を含んでいる。
【0059】
図7は、ゲーム機10によるダウンロードの手順を示すシーケンス図である。ゲーム機10において、ダウンロード要求送信部142が、最新バージョンの第2ソフトウェア124のダウンロード要求を配信装置8に送信する(S10)。このダウンロード要求には、インストール済みの第1ソフトウェア122のバージョン情報が含まれる。
【0060】
配信装置8において、ダウンロード要求取得部102が、ゲーム機10から送信されたダウンロード要求を取得し、ブロック情報提供部104に渡す。ブロック情報提供部104は、ダウンロード要求に含まれるバージョン情報を抽出すると、当該バージョン情報に対応する再利用ブロック配置情報126を記録装置120から読み出し、ゲーム機10に送信する(S12)。
【0061】
ゲーム機10において、ブロック情報取得部144が、配信装置8から送信された再利用ブロック配置情報126を取得し、記録装置160に記録する。差分データ特定部146は、再利用ブロック配置情報126において、第1ソフトウェア122におけるブロック番号が対応付けられていない、第2ソフトウェア124におけるブロック番号を特定する(S14)。
【0062】
図6(c)を参照して、差分データ特定部146は、第2ソフトウェア124のブロック番号0,3,4,8に、第1ソフトウェア122におけるブロック番号が対応付けられていないことを特定する。これらのブロック番号に対応するデータブロックは、第1ソフトウェア122に含まれていないため、配信装置8から新たにダウンロードする必要がある。ダウンロード実行部148は、差分データ特定部146により特定されたブロック番号を、ブロック番号の小さい順に配信装置8に通知する(S16)。
【0063】
配信装置8において、ゲームデータ配信部106は、通知された第2ソフトウェア124のブロック番号のデータブロックを、ゲーム機10に配信する(S18)。この例では、ゲームデータ配信部106は、ゲーム機10から配信対象となるブロック番号を“0”,“3”,“4”,“8”の順に受け取るため、この順に第2ソフトウェア124のデータブロックをゲーム機10に配信する。
【0064】
ゲーム機10において、ダウンロード実行部148は、差分データ特定部146が特定した第2ソフトウェア124におけるブロック番号のデータブロックをダウンロードして、記録装置160に記録する。このようにゲーム機10は、既に記録装置160に記録している第1ソフトウェア122に含まれていない第2ソフトウェア124のデータブロックのみをダウンロードすることで、ダウンロードするデータ量を削減できる。
【0065】
近年のゲームは、言語が異なる複数の国で実行可能に作成されているものが多い。音声データおよび画像データは、複数の言語に対応して作成され、複数言語の音声ファイルおよび画像ファイルが、完全版のパッケージソフトウェアに収められている。このようなファイルを「言語依存」ファイルと呼ぶと、言語依存ファイルのデータサイズは大きく、完全版のゲームソフトウェア全体のデータサイズに対して、かなりの割合を占める。そこで実施例のゲームソフトウェアは、言語ごとに音声ファイルおよび画像ファイルを集合させた言語用のリソースファイルのグループを含んで構成され、ユーザは必要な言語依存ファイルのみを取得できるようになっている。
【0066】
またゲームには様々なプレイモードが存在する。たとえば1人でプレイするためのシングルプレイモードや、複数人でプレイするためのマルチプレイモードが存在し、ゲームソフトウェアは、各プレイモードに専用のファイルを含んで構成される。実施例の情報処理システム1では、ユーザが、プレイを希望するプレイモードのファイルをダウンロードし、プレイを希望しないプレイモードのファイルをダウンロードしないようにできる。これによりゲーム機10の記録装置160に、使用しないプレイモードのゲームデータが保存される状況を回避できる。
【0067】
以上の理由から、実施例のゲーム機10は、完全版のゲームソフトウェアに含まれる全てのゲームデータの一部のみをダウンロードして、ゲームソフトウェアを実行できる。ここで完全版のゲームソフトウェアは、全ての言語の言語依存ファイル、全てのプレイモードのゲームデータを含むソフトウェアを意味する。たとえばユーザが日本語の言語依存ファイルのダウンロードのみを選択すれば、ゲーム機10は、他の言語の言語依存ファイルをダウンロードしない。またユーザがシングルプレイモードのゲームファイルのダウンロードを選択し、マルチプレイモードのゲームファイルのダウンロードを選択しなければ、ゲーム機10は、マルチプレイモードのゲームファイルをダウンロードしない。
【0068】
図8は、配信装置8およびゲーム機10の機能ブロックを示す。配信装置8は、処理装置100および記録装置120を備え、処理装置100は、ダウンロード要求取得部102、ブロック情報提供部104およびゲームデータ配信部106を有する。ゲーム機10は、処理装置140および記録装置160を備え、処理装置140は、ダウンロード要求送信部142、ブロック情報取得部144、差分データ特定部146およびダウンロード実行部148を有する。
【0069】
以下、ユーザが配信装置8から第1ソフトウェア162をダウンロードするに際し、言語依存ファイルを選択し、またはプレイモードを選択することで、一部のゲームデータのダウンロードを省略する場合について説明する。言語依存ファイルや、プレイモードを実行するためのファイルを、まとめて「コンテンツ」と表現する。
【0070】
図9(a)は、記録装置120に記録されている第1ソフトウェア162の例を示す。第1ソフトウェア162のフォーマットは、ヘッダ(FIH)領域、ゲームデータ領域およびサブコンテナ領域を含むが、以下においてサブコンテナ領域についての説明は省略する。ゲームデータ領域はゲームデータを含み、複数のデータブロックにより構成される。データブロックは所定のブロックサイズを有し、ゲームデータは署名および暗号化されていてよい。配信装置8に保持される第1ソフトウェア162は、完全版のゲームソフトウェアであって、ゲームデータ領域に、全ての言語依存ファイルおよび全てのプレイモードのゲームファイルを含んで構成される。
【0071】
以下に示す例では、ユーザは第1ソフトウェア162をダウンロードする際、第1ソフトウェア162に含まれるコンテンツのうち、ダウンロードしないコンテンツに関する情報を指定する。ここでダウンロードしないコンテンツとは、ダウンロードしない言語依存ファイルや、ダウンロードしないプレイモードを実行するためのゲームデータを含む。
【0072】
ユーザは、第1ソフトウェア162に含まれるコンテンツのうち、ダウンロードするコンテンツに関する情報を特定することで、ダウンロードしないコンテンツに関する情報を指定してもよい。たとえばユーザは、日本語の言語依存ファイルのダウンロードを選択し、他の言語の言語依存ファイルのダウンロードを選択しないことで、ダウンロードしない言語依存ファイルを指定してよい。またユーザは、シングルプレイモードのゲームデータのダウンロードを選択し、マルチプレイモードのゲームデータのダウンロードを選択しないことで、ダウンロードしないマルチプレイモードのゲームデータを指定してよい。
【0073】
図10は、ゲーム機10によるダウンロードの手順を示すシーケンス図である。ゲーム機10において、ダウンロード要求送信部142が、第1ソフトウェア162のダウンロード要求を配信装置8に送信する(S30)。このダウンロード要求には、第1ソフトウェア162に含まれるコンテンツのうち、ダウンロードしないコンテンツに関する情報が含まれる。
【0074】
配信装置8において、ダウンロード要求取得部102が、ゲーム機10から送信されたダウンロード要求を取得し、ブロック情報提供部104に渡す。記録装置120に記録されているコンテンツブロック情報164は、コンテンツに対応するデータブロックのブロック番号を示す情報を含んでいる。ブロック情報提供部104は、ダウンロード要求に含まれる、ダウンロードしないコンテンツに関する情報を抽出すると、当該情報に対応するコンテンツブロック情報164を参照して、第1ダウンロードブロック情報166を生成する。
【0075】
具体的にブロック情報提供部104は、コンテンツブロック情報164を参照して、ダウンロードする必要のないコンテンツのデータブロックを特定し、第1ダウンロードブロック情報166を生成する。第1ダウンロードブロック情報166は、第1ソフトウェア162に含まれる複数のデータブロックのブロック番号に、必要なデータブロックについては当該データブロックのブロック番号を対応付け、必要のないデータブロックについてはダウンロードしないことを示す情報を対応付けた情報である。
【0076】
図9(b)は、第1ダウンロードブロック情報166の一例を示す。第1ダウンロードブロック情報166は、上段に示す第1ソフトウェア162のデータブロックのブロック番号と、下段に示す第1ソフトウェア162のブロック番号とを対応付けた情報である。つまり下段にブロック番号が対応付けられていれば、当該データブロックがダウンロード対象であることを意味する。この例で、ブロック番号0,1,2,3,4,8,9,・・・のデータブロックは、ダウンロード対象として設定されている。
【0077】
第1ダウンロードブロック情報166において、下段に示される「-」は、当該データブロックがダウンロード対象ではないことを意味する。上記したように、ダウンロード対象ではないデータブロックは、ダウンロードを不要とするコンテンツのデータブロックである。この例で、ブロック番号5,6,7・・・のデータブロックは、ダウロード対象ではないものとして設定されている。
【0078】
ブロック情報提供部104は、ダウンロード要求に含まれるダウンロードしないコンテンツに関する情報と、コンテンツブロック情報164とにもとづいて第1ダウンロードブロック情報166を生成し、ゲーム機10に送信する(S32)。
【0079】
ゲーム機10において、ブロック情報取得部144が、配信装置8から送信された第1ダウンロードブロック情報166を取得し、記録装置160に記録する。ダウンロード実行部148は、第1ダウンロードブロック情報166に含まれる、ブロック番号を対応付けられたデータブロックを特定する(S34)。この例でダウンロード実行部148は、ダウンロードするデータブロックとして、ブロック番号0,1,2,3,4,8,9,・・・を特定する。ダウンロード実行部148は、特定したブロック番号を、ブロック番号の小さい順に配信装置8に通知する(S36)。
【0080】
配信装置8において、ゲームデータ配信部106は、通知された第1ソフトウェア162のブロック番号のデータブロックを、ゲーム機10に配信する。この例では、ゲームデータ配信部106は、ゲーム機10から配信対象となるブロック番号を“0”,“1”,“2”,“3”,“4”,“8”,“9”の順に受け取るため、この順に第1ソフトウェア162のデータブロックをゲーム機10に配信する。
【0081】
ゲーム機10において、ダウンロード実行部148は、第1ソフトウェア162のデータブロックの必要な部分をダウンロードして、記録装置160に記録する(S38)。
図9(c)は、記録装置160に記録した第1ソフトウェア168の例を示す。完全版の第1ソフトウェア162と比較すると、第1ソフトウェア168には、一部のデータブロックが含まれていない。このようにゲーム機10は、必要なゲームデータのみをダウンロードすることで、ダウンロードするデータ量を削減できる。
【0082】
図11は、ゲーム機10の記録装置160に、第1ソフトウェア168および第1ダウンロードブロック情報166が記録された状態を示す。ユーザは、処理装置140に第1ソフトウェア168を実行させることで、選択した言語および/または選択したプレイモードで、ゲームをプレイできる。
【0083】
次に、第1ソフトウェア168が記録装置160に記録されている状態で、ユーザがゲーム機10を操作して、最新バージョンの第2ソフトウェア170をゲーム機10にインストールする方法について説明する。
【0084】
図12は、最新バージョンの第2ソフトウェア170がダウンロード可能な状態を示す。配信装置8において、記録装置120には、コンテンツブロック情報164と、最新バージョンの完全版の第2ソフトウェア170と、複数の再利用ブロック配置情報172とが記録されている。コンテンツブロック情報164は、第2ソフトウェア170に含まれるコンテンツに対応するデータブロックのブロック番号を示す情報を含んでいる。
【0085】
図13(a)は、完全版の第2ソフトウェア170の例を示す。第2ソフトウェア170において、ブロック番号0,3,4,8のデータブロックは、第1ソフトウェア162に含まれていないデータブロックである。
【0086】
再利用ブロック配置情報172は、第2ソフトウェア170よりも古い第1ソフトウェア162のバージョンごとに用意され、したがって最新バージョン以前のバージョンの数がN個であれば、N個の再利用ブロック配置情報172が用意される。
【0087】
再利用ブロック配置情報172は、最新バージョンの第2ソフトウェア170に含まれる複数のデータブロックのブロック番号と、第1ソフトウェア162と第2ソフトウェア170の両方に含まれる共通のデータブロックの第1ソフトウェアにおけるブロック番号とを対応付けた情報である。なお共通のデータブロックとは、同一のデータを記録したデータブロックであり、別の視点から見れば、再利用可能なデータブロックであることを意味する。
【0088】
図13(b)は、再利用ブロック配置情報172の例を示す。再利用ブロック配置情報172は、上段に示す第2ソフトウェア170のデータブロックのブロック番号と、下段に示す共通データブロックの第1ソフトウェア162のブロック番号とを対応付けた情報である。つまり下段には、第2ソフトウェア170のデータブロックと同一のデータを記録した第1ソフトウェア162のデータブロックのブロック番号が指定されている。
【0089】
この例で、第2ソフトウェア170のブロック番号1のデータブロックは、第1ソフトウェア162のブロック番号1のデータブロックと同一であり、第2ソフトウェア170のブロック番号2のデータブロックは、第1ソフトウェア162のブロック番号2のデータブロックと同一である。また第2ソフトウェア170のブロック番号5,6,7のデータブロックは、それぞれ第1ソフトウェア162のブロック番号4,5,6のデータブロックと同一であり、第2ソフトウェア170のブロック番号9のデータブロックは、第1ソフトウェア162のブロック番号8のデータブロックと同一である。
【0090】
再利用ブロック配置情報126において、下段に示される「-」は、第2ソフトウェア170のデータブロックと同一のデータを記録したデータブロックが第1ソフトウェア162に含まれていないことを意味する。この例では、第2ソフトウェア170のブロック番号0,3,4,8,・・・のデータブロックが第1ソフトウェア162に含まれていない。このように再利用ブロック配置情報172は、第1ソフトウェア162において再利用可能なデータブロックを特定するとともに、第1ソフトウェア162には含まれない第2ソフトウェア170のデータブロックを特定する情報を含んでいる。
【0091】
図14は、ゲーム機10によるダウンロードの手順を示すシーケンス図である。ゲーム機10において、ダウンロード要求送信部142が、最新バージョンの第2ソフトウェア170のダウンロード要求を配信装置8に送信する(S50)。このダウンロード要求には、第2ソフトウェア170に含まれるコンテンツのうち、ダウンロードしないコンテンツに関する情報と、インストール済みの第1ソフトウェア162(第1ソフトウェア168)のバージョン情報とが含まれる。
【0092】
配信装置8において、ダウンロード要求取得部102が、ゲーム機10から送信されたダウンロード要求を取得し、ブロック情報提供部104に渡す。記録装置120に記録されているコンテンツブロック情報164は、コンテンツに対応するデータブロックのブロック番号を示す情報を含んでいる。ブロック情報提供部104は、ダウンロード要求に含まれる、ダウンロードしないコンテンツに関する情報を抽出すると、当該情報に対応するコンテンツブロック情報164を参照して、第2ダウンロードブロック情報174を生成する。
【0093】
具体的にブロック情報提供部104は、コンテンツブロック情報164を参照して、ダウンロードする必要のないコンテンツのデータブロックを特定し、第2ダウンロードブロック情報174を生成する。第2ダウンロードブロック情報174は、第2ソフトウェア170に含まれる複数のデータブロックのブロック番号に、必要なデータブロックについては当該データブロックのブロック番号を対応付け、必要のないデータブロックについてはダウンロードしないことを示す情報を対応付けた情報である。
【0094】
図13(c)は、第2ダウンロードブロック情報174の一例を示す。第2ダウンロードブロック情報174は、上段に示す第2ソフトウェア170のデータブロックのブロック番号と、下段に示す第2ソフトウェア170のブロック番号とを対応付けた情報である。つまり下段にブロック番号が対応付けられていれば、当該データブロックが必要なデータブロックであることを意味する。この例で、ブロック番号0,1,2,3,4,5,6,9,・・・のデータブロックは、必要なデータブロックとして設定されている。
【0095】
第2ダウンロードブロック情報174において、下段に示される「-」は、当該データブロックが必要なデータブロックではないことを意味する。この例で、ブロック番号7,8・・・のデータブロックは、不要なデータブロックとして設定されている。
【0096】
ブロック情報提供部104は、ダウンロード要求に含まれるダウンロードしないコンテンツに関する情報と、コンテンツブロック情報164とにもとづいて第2ダウンロードブロック情報174を生成する。
【0097】
またブロック情報提供部104は、ダウンロード要求に含まれるバージョン情報を抽出すると、当該バージョン情報に対応する再利用ブロック配置情報172を記録装置120から読み出す。ブロック情報提供部104は、第2ダウンロードブロック情報174および再利用ブロック配置情報172を、ゲーム機10に送信する(S52)。
【0098】
ゲーム機10において、ブロック情報取得部144が、配信装置8から送信された第2ダウンロードブロック情報174および再利用ブロック配置情報172を取得し、記録装置160に記録する。
【0099】
図13(d)は、第1ダウンロードブロック情報166の例を示す。差分データ特定部146は、第1ダウンロードブロック情報166、第2ダウンロードブロック情報174、再利用ブロック配置情報172にもとづいて、ダウンロードする第2ソフトウェア170のデータブロックのブロック番号を特定する。
【0100】
まず差分データ特定部146は、第2ダウンロードブロック情報174を参照して、第2ソフトウェア170の必要なデータブロックが、ブロック番号0,1,2,3,4,5,6,9のデータブロックであることを特定する。
【0101】
次に差分データ特定部146は、再利用ブロック配置情報172を参照して、第2ソフトウェア170のブロック番号0,1,2,3,4,5,6,9のデータブロックが、第1ソフトウェア162に含まれているか判定する。この例では、第2ソフトウェア170のブロック番号0,3,4のデータブロックが、第1ソフトウェア162に含まれていないため、差分データ特定部146は、第2ソフトウェア170のブロック番号0,3,4のデータブロックをダウンロード対象として設定する。
【0102】
また差分データ特定部146は、第2ソフトウェア170のブロック番号1のデータブロックが第1ソフトウェア162のブロック番号1のデータブロックに同一であること、第2ソフトウェア170のブロック番号2のデータブロックが第1ソフトウェア162のブロック番号2のデータブロックに同一であること、第2ソフトウェア170のブロック番号5のデータブロックが第1ソフトウェア162のブロック番号4のデータブロックに同一であること、第2ソフトウェア170のブロック番号6のデータブロックが第1ソフトウェア162のブロック番号5のデータブロックに同一であること、第2ソフトウェア170のブロック番号9のデータブロックが第1ソフトウェア162のブロック番号8のデータブロックに同一であること、を特定する。
【0103】
次に差分データ特定部146は、第1ダウンロードブロック情報166を参照して、特定された第1ソフトウェア162のブロック番号1,2,4,5,8のデータブロックが、インストール済みの第1ソフトウェア168に含まれているか判定する。このとき
図13(d)に示す第1ダウンロードブロック情報166には、第1ソフトウェア162のブロック番号5のデータブロックが存在しないことが示されている。したがって、差分データ特定部146は、第1ソフトウェア162のブロック番号5のデータブロック、すなわち第2ソフトウェア170のブロック番号6のデータブロックもダウンロード対象として設定する。
【0104】
以上により、差分データ特定部146は、第2ソフトウェア170のブロック番号0,3,4,6のデータブロックをダウンロードすることを特定する(S54)。ダウンロード実行部148は、差分データ特定部146が特定したブロック番号を、ブロック番号の小さい順に配信装置8に通知する(S56)。
【0105】
配信装置8において、ゲームデータ配信部106は、通知された第2ソフトウェア170のブロック番号のデータブロックを、ゲーム機10に配信する。この例では、ゲームデータ配信部106は、ゲーム機10から配信対象となるブロック番号を“0”,“3”,“4”,“6”の順に受け取るため、この順に第2ソフトウェア170のデータブロックをゲーム機10に配信する。
【0106】
ゲーム機10において、ダウンロード実行部148は、第2ソフトウェア170のデータブロックの必要な部分をダウンロードして、記録装置160に記録する(S58)。このようにゲーム機10は、ソフトウェアアップデートに際して、必要なゲームデータのみをダウンロードすることで、ダウンロードするデータ量を削減できる。
【0107】
なおゲーム機10は、内蔵型の記録装置160を標準搭載しているが、記録容量を拡張するためにケーブルや無線により外部記録装置が接続されることがある。以下、内蔵型の記録装置160を「第1記録装置160a」と呼び、外付けの記録装置を「第2記録装置160b」と呼ぶ。第1記録装置160aに記録されたゲームソフトウェアは動作保証されており、第2記録装置160bに記録されたゲームソフトウェアは動作保証されていないため、ゲームソフトウェアが第2記録装置160bに記録されていると、ゲーム機10は、当該ゲームソフトウェアを第1記録装置160aにコピーしてから、実行する必要がある。
【0108】
図15は、2つの記録装置を備えたゲーム機10を示す。処理装置140は、記録制御部150および処理部152を備える。たとえば処理部152がゲームソフトウェアを実行する際、ゲームソフトウェアが第2記録装置160bに記録されている場合に、記録制御部150は、当該ゲームソフトウェアを第1記録装置160aにコピーする処理を実行する。第1記録装置160aのコピーが終了すると、記録制御部150は、第2記録装置160bからゲームソフトウェアを削除してよい。
【0109】
実施例において記録制御部150は、第1記録装置160aに、第2記録装置160bに記録されたソフトウェア180をコピーする。ソフトウェア180は、完全版のソフトウェアから一部のコンテンツを除外したものである。上記したようにソフトウェア180は、ユーザの選択により、完全版のソフトウェアから、言語依存ファイルやプレイモードなどのコンテンツが除外されていてよい。
【0110】
第2記録装置160bは、完全版のソフトウェアの複数のデータブロックのブロック番号と、第2記録装置160bに記録されたソフトウェア180のデータブロックのブロック番号とを対応付けた選択ブロック配置情報182とを記録している。記録制御部150は、ソフトウェア180を第1記録装置160aにコピーする際に、選択ブロック配置情報182を利用する。
【0111】
具体的に記録制御部150は、選択ブロック配置情報182にもとづいて、完全版のソフトウェアの複数のデータブロックのブロック番号に、存在するデータブロックについては当該データブロックのブロック番号を対応付け、存在しないデータブロックについては存在しないことを示す情報を対応付けた存在ブロック配置情報186を生成して、第1記録装置160aに記録する。記録制御部150は、ソフトウェア184を第1記録装置160aにコピーすると、第2記録装置160bにおけるソフトウェア180および選択ブロック配置情報182を削除してよい。処理部152は、第1記録装置160aにコピーされたソフトウェア184と、存在ブロック配置情報186により、各データブロックの位置を特定できるため、ソフトウェア184を実行できる。
【0112】
なお第1記録装置160aには、実行するソフトウェア184が書き込まれるため、実行しなくなったソフトウェア184は、第2記録装置160bに移動されることが好ましい。記録制御部150は、第1記録装置160aに記録されたソフトウェア184を、第2記録装置160bにコピーする際に、存在ブロック配置情報186にもとづいて選択ブロック配置情報182を生成して、第2記録装置160bに記録する。記録制御部150は、ソフトウェア184を第2記録装置160bにコピーすると、第1記録装置160aにおけるソフトウェア184および存在ブロック配置情報186を削除してよい。
【0113】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。実施例では、アプリケーションの例としてゲームを示したが、それ以外のアプリケーションであってもよい。
【0114】
たとえば第2記録装置160bにおいてソフトウェア180が記録されている状態で、新しいバージョンのソフトウェアのゲームデータをダウンロードしたとき、記録制御部150は、ソフトウェア180において不要になったデータブロックを、新しいソフトウェアのデータブロックで上書きしてもよい。これにより第2記録装置160bにソフトウェアを効率的に記録できるようになる。
【符号の説明】
【0115】
1・・・情報処理システム、2・・・PC、3・・・ネットワーク、4・・・開発用ゲーム機、6・・・診断装置、8・・・配信装置、10・・・ゲーム機、20・・・処理装置、22・・・差分データ生成部、24・・・ブロック情報生成部、26・・・パッチファイル生成部、28・・・提供部、40・・・記録装置、42・・・差分データ、44・・・再利用ブロック配置情報、46・・・追加ブロック配置情報、60・・・処理装置、62・・・記録制御部、64・・・処理部、80・・・記録装置、82・・・第1ソフトウェア、84・・・第2ソフトウェア、86・・・パッチファイル、100・・・処理装置、102・・・ダウンロード要求取得部、104・・・ブロック情報提供部、106・・・ゲームデータ配信部、120・・・記録装置、122・・・第1ソフトウェア、124・・・第2ソフトウェア、126・・・再利用ブロック配置情報、140・・・処理装置、142・・・ダウンロード要求送信部、144・・・ブロック情報取得部、146・・・差分データ特定部、148・・・ダウンロード実行部、150・・・記録制御部、152・・・処理部、160・・・記録装置、160a・・・第1記録装置、160b・・・第2記録装置、162・・・第1ソフトウェア、164・・・コンテンツブロック情報、166・・・第1ダウンロードブロック情報、168・・・第1ソフトウェア、170・・・第2ソフトウェア、172・・・再利用ブロック配置情報、174・・・第2ダウンロードブロック情報、180・・・ソフトウェア、182・・・選択ブロック配置情報、184・・・ソフトウェア、186・・・存在ブロック配置情報。