(57)【特許請求の範囲】
【請求項１】
情報端末と、前記情報端末とネットワークを介して接続するサーバと、を含むデータ処理システムであって、
前記サーバは、
複数のファイルデータを記憶するサーバ記憶部と、
ファイルデータの更新に伴って、更新されたファイルデータに対するバージョン情報を生成する更新部と、
を含み、
前記情報端末は、
前記サーバと前記ネットワークを介して通信し、ファイルデータを受信するブラウザ部と、
ファイルデータ、当該ファイルデータを識別する識別情報、及び当該ファイルデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、ファイルデータを識別する識別情報と当該ファイルデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、所定の条件により、ファイルデータと当該ファイルデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、
を含み、
前記サーバは、
ファイルデータを前記情報端末へ送信する前に、送信対象となるファイルデータを識別する識別情報及び当該ファイルデータに対するバージョン情報とを前記情報端末へ送信し、
前記情報端末は、
受信したバージョン情報が前記端末記憶部に記憶されているかを判別し、
受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求し、
受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求しない、
データ処理システム。
【請求項２】
請求項１に記載のデータ処理システムであって、
前記所定の条件は、ファイルデータの更新頻度が少ない場合である、データ処理システム。
【請求項３】
請求項１または２に記載のデータ処理システムであって、
前記バージョン情報は、前記ファイルデータから算出されたハッシュ値を含むデータ処理システム。
【請求項４】
請求項３に記載のデータ処理システムであって、
前記更新部は、一定周期でハッシュ値の再計算を行うデータ処理システム。
【請求項５】
ネットワークを介してサーバと接続し、前記サーバからファイルデータを受信する情報端末であって、
前記サーバと前記ネットワークを介して通信し、ファイルデータを受信するブラウザ部と、
ファイルデータ、当該ファイルデータを識別する識別情報、及び当該ファイルデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、ファイルデータを識別する識別情報と当該ファイルデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、所定の条件により、ファイルデータと当該ファイルデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、
を含み、
ファイルデータを前記サーバから受信する前に、受信対象となるファイルデータを識別する識別情報及び当該ファイルデータに対するバージョン情報とを前記サーバから受信し、
受信したバージョン情報が前記端末記憶部に記憶されているかを判別し、
受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求し、
受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求しない、
情報端末。
【請求項６】
情報端末と、前記情報端末とネットワークを介して接続するサーバと、を含むデータ処理方法であって、
前記サーバは、
複数のファイルデータを記憶するサーバ記憶部と、
ファイルデータの更新に伴って、更新されたファイルデータに対するバージョン情報を生成する更新部と、
を含み、
前記情報端末は、
前記サーバと前記ネットワークを介して通信し、ファイルデータを受信するブラウザ部と、
ファイルデータ、当該ファイルデータを識別する識別情報、及び当該ファイルデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、ファイルデータを識別する識別情報と当該ファイルデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、所定の条件により、ファイルデータと当該ファイルデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、
を含み、
前記サーバは、
ファイルデータを前記情報端末へ送信する前に、送信対象となるファイルデータを識別する識別情報及び当該ファイルデータに対するバージョン情報とを前記情報端末へ送信し、
前記情報端末は、
受信したバージョン情報が前記端末記憶部に記憶されているかを判別し、
受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求し、
受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求しない、
データ処理方法。
【請求項７】
ネットワークを介してサーバと接続し、前記サーバからファイルデータを受信する情報端末において実行されるデータ処理プログラムであって、
前記情報端末は、
前記サーバと前記ネットワークを介して通信し、ファイルデータを受信するブラウザ部と、
ファイルデータ、当該ファイルデータを識別する識別情報、及び当該ファイルデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、ファイルデータを識別する識別情報と当該ファイルデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、所定の条件により、ファイルデータと当該ファイルデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、
を含み、
前記データ処理プログラムは、前記情報端末に、
ファイルデータを前記サーバから受信する前に、受信対象となるファイルデータを識別する識別情報及び当該ファイルデータに対するバージョン情報とを前記サーバから受信させ、
受信したバージョン情報が前記端末記憶部に記憶されているかを判別させ、
受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求させ、
受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求させない、
データ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報端末と、情報端末とネットワークを介して接続するサーバと、を含むデータ処理システム、情報端末、データ処理方法およびデータ処理プログラムに関する。
【背景技術】
【０００２】
ブラウザのキャッシュ機能を用いて、サーバから一度取得したデータをブラウザキャッシュに記憶しておき、ブラウザキャッシュに記憶されているデータについて再度取得する手間を省く処理が知られている。非特許文献１には、ブラウザキャッシュに記憶するデータの最終更新日とバージョン情報とを関連付けしたハッシュ値等を管理しておくことで、取得しようとするデータがキャッシュに記憶されている場合、そのデータを通信ネットワークを介して取得することなく、キャッシュに記憶されたデータを利用する技術が開示されている。
【０００３】
また、ゲーム分野において、ゲームで利用される画像データ等のアセットデータをゲームの最初の利用時にコンソール側に記憶してゲームを実行し、アセットデータに更新が発生した際に、パッチ処理によって更新データを、通信ネットワークを介してコンソール側にダウンロードさせる処理が知られている。
【０００４】
ここで、ネットワークを介してサーバと接続されている情報端末を利用したゲームにおいて、ゲーム情報を記憶したアプリをサーバから情報端末にダウンロードして、ゲームを実行するタイプのゲーム（いわゆるネイティブアプリ型ゲーム）が普及している。
【０００５】
このような、ネイティブアプリ型ゲームであって、登録された多くのユーザデータを利用して実行されるソーシャルゲームといわれるゲームが普及している。ソーシャルゲームにおいては、サーバにおいてキャラクタデータの更新等が頻繁に行われる。そこで、ゲームを実行している情報端末は、更新データをサーバから頻繁に入手する必要があり、サーバと情報端末との間で多くの通信が発生する。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】"Google Developers"、［ｏｎｌｉｎｅ］、［平成２５年２月２１日検索］、インターネット＜ＵＲＬ：https://developers.google.com/speed/docs/best-practices/caching＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
このような状況において、サーバ側で随時更新されるデータを情報端末でサーバから効率的に入手することを可能とすることが望まれる。
【課題を解決するための手段】
【０００８】
本発明の１つの態様は、情報端末と、前記情報端末とネットワークを介して接続するサーバと、を含むデータ処理システムであって、前記サーバは、複数のファイルデータを記憶するサーバ記憶部と、ファイルデータの更新に伴って、更新されたファイルデータに対するバージョン情報を生成する更新部と、含み、前記情報端末は、前記サーバと前記ネットワークを介して通信し、ファイルデータを受信するブラウザ部と、ファイルデータ、当該ファイルデータを識別する識別情報、及び当該ファイルデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、ファイルデータを識別する識別情報と当該ファイルデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、所定の条件により、ファイルデータと当該ファイルデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、を含み、前記サーバは、ファイルデータを前記情報端末へ送信する前に、送信対象となるファイルデータを識別する識別情報及び当該ファイルデータに対するバージョン情報とを前記情報端末へ送信し、前記情報端末は、受信したバージョン情報が前記端末記憶部に記憶されているかを判別し、受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求し、受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求しない、データ処理システムである。
【０００９】
本発明の別の態様は、ネットワークを介してサーバと接続し、前記サーバからファイルデータを受信する情報端末であって、前記サーバと前記ネットワークを介して通信し、ファイルデータを受信するブラウザ部と、ファイルデータ、当該ファイルデータを識別する識別情報、及び当該ファイルデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、ファイルデータを識別する識別情報と当該ファイルデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、所定の条件により、ファイルデータと当該ファイルデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、を含み、ファイルデータを前記サーバから受信する前に、受信対象となるファイルデータを識別する識別情報及び当該ファイルデータに対するバージョン情報とを前記サーバから受信し、受信したバージョン情報が前記端末記憶部に記憶されているかを判別し、受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求し、受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求しない情報端末である。
【００１０】
本発明の別の態様は、情報端末と、前記情報端末とネットワークを介して接続するサーバと、を含むデータ処理方法であって、前記サーバは、複数のファイルデータを記憶するサーバ記憶部と、ファイルデータの更新に伴って、更新されたファイルデータに対するバージョン情報を生成する更新部と、含み、前記情報端末は、前記サーバと前記ネットワークを介して通信し、ファイルデータを受信するブラウザ部と、ファイルデータ、当該ファイルデータを識別する識別情報、及び当該ファイルデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、ファイルデータを識別する識別情報と当該ファイルデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、所定の条件により、ファイルデータと当該ファイルデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、を含み、前記サーバは、ファイルデータを前記情報端末へ送信する前に、送信対象となるファイルデータを識別する識別情報及び当該ファイルデータに対するバージョン情報とを前記情報端末へ送信し、前記情報端末は、受信したバージョン情報が前記端末記憶部に記憶されているかを判別し、受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求し、受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求しない、データ処理方法である。
【００１１】
本発明の別の態様は、ネットワークを介してサーバと接続し、前記サーバからファイルデータを受信する情報端末において実行されるデータ処理プログラムであって、前記情報端末は、前記サーバと前記ネットワークを介して通信し、ファイルデータを受信するブラウザ部と、ファイルデータ、当該ファイルデータを識別する識別情報、及び当該ファイルデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、ファイルデータを識別する識別情報と当該ファイルデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、所定の条件により、ファイルデータと当該ファイルデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、を含み、前記データ処理プログラムは、前記情報端末に、ファイルデータを前記サーバから受信する前に、受信対象となるファイルデータを識別する識別情報及び当該ファイルデータに対するバージョン情報とを前記サーバから受信させ、受信したバージョン情報が前記端末記憶部に記憶されているかを判別させ、受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求させ、受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するファイルデータの送信を前記サーバに要求させない、データ処理プログラムである。
【００１２】
ここで、所定の条件は、例えば、ファイルデータの更新頻度であることを特徴とし、更新頻度の少ない、ユーザの操作が影響しないデータについてはネイティブキャッシュに記憶し、ネイティブから直接アクセスできるようにし、更新頻度の多いデータについてはブラウザキャッシュに記憶することでブラウザ部からネイティブへの転送速度の軽減を図ることができる。
【００１３】
ここで、前記バージョン情報は、前記ファイルデータから算出されたハッシュ値を含むことが好適である。また、前記更新部は、一定周期でハッシュ値の再計算を行うことが好適である。
【発明の効果】
【００１４】
本発明によれば、サーバと情報端末との間の通信量を低減し、効率良くデータを更新することができる。
【図面の簡単な説明】
【００１５】
【図１】実施形態に係るデータ処理システムの構成を示すブロック図である。
【図２】データのやり取りを説明するチャートである。
【図３】ページの切り替えを説明する図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について、図面に基づいて説明する。
【００１７】
＜システムの全体構成＞
図１は、本実施形態に係るデータ処理システムの概略構成を示すブロック図である。サーバ１０は、ネットワーク２０に接続されており、このネットワーク２０に情報端末３０が接続されている。情報端末３０は、ネットワーク２０を介し、必要なデータをサーバ１０から入手してゲーム等の処理を実行する。
【００１８】
なお、本実施の形態では、情報端末３０においてゲームを実行する例について説明するが、本発明の適用範囲はこれに限定されるものでなく、サーバ１０と情報端末３０との間で随時更新されるデータの通信を行う態様であれば適用範囲となる。
【００１９】
＜サーバの構成及び機能＞
サーバ１０は、コンピュータであり、各種のデータ処理機能、通信機能、記憶機能を備えている。サーバ１０のメモリ１２には、ゲームロジック、およびそのゲームを実行する際に使用されるユーザデータ、およびアセットデータが記憶される。
【００２０】
アセットデータは、たとえば、画像データ、動画（アニメーションデータ）などを含む。アセットデータは、これらのデータに限定されるものではないが、文書データ等よりもデータ容量が大きいデータである場合に本発明の効果がより顕著となる。
【００２１】
一般的に、ソーシャルゲームでは、ゲームを実行するためのゲームロジックは基本的に変更が頻繁でないが、画像データ、動画（アニメーションデータ）などのアセットデータは随時変更される。すなわち、アセットデータは開発者等によって随時変更され、メモリ１２内の既存のアセットデータが新規のアセットデータによって随時書き換えられ、更新される。このように変更を受けたアセットデータを情報端末３０で実行中のゲームにも反映するために、サーバ１０から情報端末３０へアセットデータを送信する必要がある。
【００２２】
なお、開発者のコンピュータは、ネットワーク２０を介しサーバ１０に接続してもよいが、内部ＬＡＮ、無線通信など他の通信回線を介しサーバ１０に接続してもよい。
【００２３】
サーバ１０は、データ更新部１４を有し、このデータ更新部１４がメモリ１２内のデータの更新を管理する。すなわち、データ更新部１４は、更新データを受け取った場合に、メモリ１２内のデータを更新する。ここで、このデータ更新は、基本的にアセットデータの更新を前提としている。ここで、アセットデータは、１つの画像、１つの動画等を１単位として、それぞれ１つのファイルとして保存されており、各ファイルにはファイル名の他、更新時刻、ファイル容量などの属性情報が付与されている。すなわち、既存のアセットデータと新規のアセットデータとは、この属性情報に基づいて対応付けすることが可能である。たとえば、メモリ１２に保存されているアセットデータを更新する際には、古いアセットデータを新しいアセットデータで更新し、新しいアセットデータに更新された古いアセットデータと同一のファイル名を付与することにより対応付けが行われる。
【００２４】
サーバ１０は、データを送信する場合に、その送信データについて、ファイル毎にハッシュ値を計算し、計算結果のハッシュ値をファイルとともに送信する。
【００２５】
データ更新部１４は、ファイルのデータ自体や属性情報からハッシュ値を計算し、これをファイルと関連づけて送信する。なお、ハッシュ値は、そのファイルに含まれるアセットデータ（画像データ、動画データ等）又はそれに関する属性情報から算出されればよいが、アセットデータ自体から算出することが好適である。すなわち、アセットデータが更新されると、アセットデータ自体から算出されたハッシュ値は更新前のアセットデータ自体から算出されたハッシュ値とは異なる値となり、ハッシュ値はアセットデータ自体のバージョンを示すバージョン情報となる。このハッシュ値を比較することにより、アセットデータが更新されたか否かを確実に把握することができる。
【００２６】
ここで、ファイルが更新される度に、当該ファイルのハッシュ値を計算して、ファイルと対応付けてメモリ１２に記憶することも好適である。こうすることによって、ファイルの送信要求が生じた場合に、すでに記憶されているハッシュ値を送信することもできる。また、一定期間毎に、メモリ１２内のファイルのハッシュ値を計算して更新してもよく、さらにファイルを送信したときに再計算したハッシュ値をファイルに対応付けて更新してもよい。
【００２７】
なお、本実施の形態では、１つのファイルを単位データとして処理する例を示すが、複数ファイルを含む単位データとして当該単位データ毎にハッシュ値を算出して処理してもよい。
【００２８】
また、本実施形態では、バージョン情報としてハッシュ値を適用したが、変更されたアセットデータ（ファイル）に応じて変更されるバージョン情報としてもよい。たとえば、バージョン情報として、ファイル更新日時、ファイル更新時に付した一意な番号、チェックサム、チェックディジット、フィンガープリント等としてもよい。
【００２９】
アセットデータの作成者は、自己のコンピュータをサーバ１０に接続し、メモリ１２内のデータを随時書き換える。データ更新部１４は、情報端末３０からデータの提供を要求された際に、送信対象となるファイルを含む単位データに基づきそのハッシュ値を計算して、情報端末３０に送信する。
【００３０】
たとえば、データ更新部１４に下記のようなＡＰＩを用意しておく。
＿ｇｅｔ＿ｂｕｎｄｌｅ？ｐａｔｈｓ＝ａ，ｂ，ｃ，ｄ  −−−＞  ｛ａ：  ｛ｈａｓｈ：  ｍｄ５，  ｂｏｄｙ：  ｂａｓｅ６４｝  ．．．｝
【００３１】
情報端末３０からのアクセスによって、このＡＰＩが呼ばれた時にハッシュ値ｍｄ５を計算してファイルａのバージョン情報とする。このようにすることで、ファイルａが差し替えられた場合には、その後に該当ファイルをユーザに送信すると、その送信データに対応するハッシュ値ｍｄ５値が情報端末３０に送信され、情報端末３０において記憶される。
【００３２】
＜情報端末の構成及び機能＞
情報端末３０は、携帯電話、スマートフォン、タブレット等のコンピュータを含む端末装置であり、ＣＰＵを含む処理部３２が基本的なデータ処理を行う。
【００３３】
情報端末３０には、ブラウザ部３４が設けられており、このブラウザ部３４によってネットワーク（たとえば、インターネット）２０を介して、サーバ１０に接続して画像表示等の各種の処理が行える。また、ブラウザ部３４にはブラウザキャッシュ（ブラウザ記憶部）３６が設けられており、ブラウザ部３４が各種処理を実行する際に有効なデータの記憶に利用する。
【００３４】
情報端末３０には、ネイティブキャッシュ３８が設けられており、処理部３２によって記憶内容が管理される。また情報端末３０には、入力部４０、表示部４２が設けられ、必要なデータ入力、各種表示を行う。たとえば、表示部４２は液晶や有機ＥＬパネルであり、入力部４０は表示部４２に設けられたタッチパネルである。
【００３５】
情報端末３０のユーザがゲームを開始する場合には、ＵＲＬを特定してブラウザ部３４がそのゲームプログラムの提供先であるサーバ１０にアクセスし、ここからゲームプログラムを格納するアプリケーションをダウンロードする。
【００３６】
ゲームプログラムは、ネイティブキャッシュ３８に記憶され、処理部３２がゲームプログラムを実行することで、ブラウザ部３４がサーバ１０と通信して、必要な画像、動画などのアセットデータを取得し、表示部４２に表示しつつゲームを進行させる。この例では、ゲームを実行するためのロジックは、サーバ１０側にあり、ブラウザ部３４によりサーバ１０に接続しているときに、サーバ１０が必要なデータを情報端末３０に順次提供する。また、情報端末３０からのデータもブラウザ部３４を介してサーバ１０に提供される。
【００３７】
ここで、上述したようにサーバ１０は、アセットデータを含むファイルとそのファイルに対して算出されたハッシュ値を対応付けて記憶しており、情報端末３０からアセットデータの要求を受けると、要求されたアセットデータを含むファイルを送る際に対応付けられたハッシュ値をメタデータとして付加して送信する。
【００３８】
情報端末３０の処理部３２は、受信したファイル（アセットデータ）およびハッシュ値をファイル名に関連付けてデータテーブル等としてネイティブキャッシュ３８に記憶させる。また、ブラウザ部３４は、情報端末３０での表示処理の負荷を低減するために、ネイティブキャッシュ３８に記憶されているファイルの一部又は全部のファイル名とハッシュ値をブラウザキャッシュ３６に記憶する。
【００３９】
ここで、情報端末３０において入手するアセットデータには、ユーザにおいて操作可能なデータと、操作不可能なデータ（ゲーム固有データ）が存在する。操作不可能なデータについては、ブラウザ部３４において何度も利用される可能性は高くなく、ブラウザキャッシュ３６ではなく、ネイティブキャッシュ３８に記憶することが好適である。
【００４０】
＜データ取得手順＞
以下、図２のフロー図を参照して、ネットワーク２０を介して情報端末３０がサーバ１０からアセットデータを取得する処理について説明する。本実施形態においては、ゲームで表示されるページ毎にブラウザ部３４がサーバ１０にアクセスし、ページを表示するためのアセットデータを取得するものとして説明を行う。
【００４１】
情報端末３０においてゲームのアプリケーションが実行されると、ネットワーク２０を介して情報端末３０とサーバ１０とが相互に情報の送受信が可能となるように接続される。ここで、図３に示すように、１つのページが情報端末３０おいて表示されている状態から次のページの表示に移る際に、ブラウザ部３４を介して必要なアセットデータがサーバ１０から情報端末３０に提供される。
【００４２】
まず、サーバ１０から次ページの表示に必要なアセットデータを含むファイルのファイル名（file1, file2, ...）と対応するハッシュ値（バージョン情報）とが関連付けられて情報端末３０に送信される。たとえば、ファイル名"file1"とそれに対応付けられたハッシュ値hash1、ファイル名"file2"とそれに対応付けられたハッシュ値hash2、を含む場合、（<html> file1 hash, file2 hash, ...）のようなデータが送信される。
【００４３】
このとき、送信時にファイルのハッシュ値を計算し、算出されたハッシュ値をファイル名と対にして送信することが好適である。これにより、送信時において最新のアセットデータに基づいて算出されたハッシュ値を確実に送信することができる。一方、ある程度のタイムラグが許容される場合、予めハッシュ値を算出し、メモリ１２にファイルとハッシュ値とが関連付けてメモリ１２に記憶しておき、送信時にはファイル名と対応するハッシュ値とを読み出して送信してもよい。この場合、サーバ１０において送信毎にハッシュ値を算出する必要がなくなり、サーバ１０の演算処理の負荷を低減することができる。
【００４４】
このように、次ページの表示に必要なアセットデータのファイルを送信する前に、ファイルの本体（内容）となるアセットデータは送信せず、ファイルに固有の識別情報であるファイル名と、そのバージョン情報であるハッシュ値が送信され、これがブラウザ部３４において取得される。
【００４５】
ブラウザ部３４は、受け取ったハッシュ値と同一のハッシュ値がブラウザキャッシュ３６又はネイティブキャッシュ３８に記憶されているかを判定する。この判定結果において、同一のハッシュ値が記憶されていれば、そのハッシュ値に関連付けられたファイル名を有するファイルについては既に最新のアセットデータがネイティブキャッシュ３８に記憶されていると判断できる。この場合、そのファイルのアセットデータはサーバ１０から改めて取得する必要はない。そこで、ブラウザ部３４は、サーバ１０から該当するファイルを取得することなく、ネイティブキャッシュ３８から該当ファイルのアセットデータを、処理部３２を介し取得して、次ページの表示を行う。
【００４６】
なお、ハッシュ値の同一性を判定する際に、ファイル名の同一性も同時に判定してもよい。すなわち、ブラウザ部３４は、受け取ったファイル名とハッシュ値との組と同一のファイル名とハッシュ値との組がブラウザキャッシュ３６又はネイティブキャッシュ３８に記憶されているかを判定してよい。これにより、ファイル名で特定された同一のファイルのアセットデータについてハッシュ値を用いてデータの同一性を確認することができ、より確実に最新のアセットデータであるか否かを判定することができる。
【００４７】
図２の例は、ファイルfile3については同一のハッシュ値を有するファイルが既に登録されており、ファイルfile1, file2については同一のハッシュ値を有するファイルがなかった場合を示している。この場合、ブラウザ部３４は、２つのファイルfile1, file2のみを取得するリクエストをサーバ１０へ送信する。この例では、ＡＪＡＸ（Asynchronous JavaScript + XML）を用い、_get bundle file1, file2 のようなリクエストをサーバ１０に送っている。
【００４８】
このリクエストに応じて、サーバ１０は、該当するファイルfile1, file2をメモリ１２から読み出し、これらファイルを情報端末３０へ送信する。このときは、読み出したファイルに対してハッシュ値を計算して、ファイルと対応ハッシュ値をセットにして情報端末３０のブラウザ部３４に提供する。すなわち、ファイルfile1, file2について、それぞれのハッシュ値hashと、ファイルの本体（内容）となるアセットデータbodyを含めて、ブラウザ部３４に提供する。
【００４９】
ここで、サーバ１０のデータ更新部１４は、送信する段階でハッシュ値を計算して、その計算で得られたハッシュ値を送信することが好適である。これにより、送信されるハッシュ値はその時点の最新のアセットデータに対するハッシュ値となる。したがって、情報端末３０において、記憶されるハッシュ値が最新のバージョンのアセットデータに対応したものであることが担保される。
【００５０】
一方、ある程度のタイムラグが許容される場合、予めハッシュ値を算出し、メモリ１２にアセットデータとハッシュ値とが関連付けてメモリ１２に記憶しておき、送信時にはアセットデータを含むファイルと対応するハッシュ値とを読み出して送信してもよい。この場合、サーバ１０において送信毎にハッシュ値を算出する必要がなくなり、サーバ１０の演算処理の負荷を低減することができる。
【００５１】
ブラウザ部３４は、提供されたファイルと、バージョン情報であるハッシュ値から、ファイル名とそのハッシュ値のみをブラウザキャッシュ３６に記憶する。一方、ファイル名、ファイル本体、ハッシュ値はネイティブキャッシュ３８に記憶される。なお、ハッシュ値はネイティブキャッシュ３８に必ずしも記憶する必要はない。
【００５２】
このような処理を行い、ブラウザ部３４は、ブラウザキャッシュ３６、ネイティブキャッシュ３８の保存完了を受け、サーバ１０に受け取り通知を送信する。
【００５３】
このように、ユーザが情報端末３０を使用してゲームについての一定の操作を行う都度、情報端末３０で実行されるアプリケーションに応じてブラウザ部３４によりサーバ１０と通信を行う。
【００５４】
そして、サーバ１０からページの表示に必要なファイルのデータがそのまま送られて来るのではなく、ファイル名とそのハッシュ値がまず送られてくる。そこで、そのハッシュ値を利用して、当該ファイル（ファイル本体）がネイティブキャッシュ３８に記憶されているものかを判定し、記憶されている場合にはサーバ１０に、ファイル本体の送信を要求しない。これによって、通信するデータ量を大幅に削減することができる。
【００５５】
また、ファイルの本体であるアセットデータ自体はネイティブキャッシュ３８に記憶することで、ブラウザキャッシュ３６のみを用いる場合に比して、データ容量を気にせずにファイルをキャッシュすることができる。さらに、ブラウザ部３４および処理部３２の両方からネイティブキャッシュ３８のアクセスが許容され、処理部３２において、ネイティブキャッシュ３８に記憶されたデータについて破損がないかどのチェックを処理部３２がブラウザ部３４から独立して実行することなどが可能であり、その他の利用も可能となる。また、ネイティブキャッシュ３８の容量には基本的に制限がなく、大容量とできるのでキャッシュするデータ量が大きくなっても問題がなく、動画データなどについても、容易にキャッシュすることが可能になる。
【００５６】
なお、本実施の形態では、１ページの表示毎にアセットデータを要求する例について説明したが、これに限定されるものでなく、複数のページの表示に必要なアセットデータを一度に纏めて取得してもよい。
【００５７】
＜実施形態の効果＞
このように、本実施形態では、以下のような効果が得られる。
・ネイティブキャッシュ３８においてファイルの本体であるアセットデータを記憶できるため、ブラウザキャッシュ３６の容量が小さくても問題が少ない。
・ブラウザキャッシュ３６は、ブラウザ部３４により利用されるものであり、ブラウザ部３４の外にある処理部３２などによっては制御が難しい。本実施形態では、アプリケーションではネイティブキャッシュ３８に記憶されているアセットデータを用いることができるので、アプリケーションからブラウザキャッシュ３６に記憶されているデータを扱う必要がなくなり、そのような問題は生じない。特に、ネイティブキャッシュ３８をブラウザ部３４と、処理部３２において共有することで、効率的な処理が行え、サーバ１０との間で無駄な通信が発生することを防止できる。
・ゲーム等のアプリケーション起動時は、アプリのダウンロードだけを必要とし、大きな容量のデータのダウンロードなど特別な処理を必要とせず、起動時間を短縮できる。
・アプリケーション起動中でも、アセットデータなどのアップデートが可能であり、ユーザが必要とする時点での最新データを供給できる。
【００５８】
＜変形例＞
・情報端末３０からのアクセス時において、それがそのゲームについての初回のアクセスであることを判定する手段を有すれば、その最初の応答では、送信すべきデータをＪＳＯＮ（JavaScript Object Notation）化してハッシュ値とデータを一度に転送してもよい。
・サーバ１０において、ハッシュ値を算出中にクエリがあると、サーバ１０は、古いハッシュ値を返す場合があることも想定される。
【００５９】
たとえば、ファイルのバージョンについて、ファイルシステムに依存しないフィンガープリントを用いているならば、
（１）準備用ディレクトリーツリーに新規ファイルを置く
（２）追加ファイルのハッシュ値を算出する
（３）ハッシュ値が算出できたところで、リリース用ディレクトリーツリーに置く
こととしてもよい。
【００６０】
また、複数ファイルを不可分に更新する場合への対応として上記のような対応をすることも可能である。
【００６１】
さらに、上記処理の中で、ブラウザキャッシュ３６に記憶するデータと、ネイティブキャッシュ３８に記憶するデータを最適化してもよい。たとえば、更新頻度の少ない、ユーザの操作が影響しないデータについてはネイティブキャッシュ３８に記憶し、ネイティブから直接アクセスできるようにし、更新頻度の多いデータについてはブラウザキャッシュ３６に記憶することでブラウザ部３４からネイティブへの転送速度の軽減を図ることができる。
【符号の説明】
【００６２】
１０  サーバ、１２  メモリ、１４  データ更新部、２０  ネットワーク、３０  情報端末、３２  処理部、３４  ブラウザ部、３６  ブラウザキャッシュ、３８  ネイティブキャッシュ、４０  入力部、４２  表示部。
【要約】
【課題】サーバ１０、情報端末３０間の通信量を低減する。
【解決手段】サーバ１０は、データ更新部１４によってファイルデータが更新された後に、対応する識別情報及びバージョン情報を情報端末に送信する。情報端末３０は、受信したバージョン情報がブラウザキャッシュ３６に記憶されているかを判別する。受信したバージョン情報がブラウザキャッシュ３６に記憶されていないときに、対応するファイルデータの送信をサーバ１０に要求し、受信したバージョン情報がブラウザキャッシュ３６に記憶されているときに、サーバ１０に対応するファイルデータの送信を要求しない。
【選択図】図１【図１】
0005431618.tif 000002
【図２】
0005431618.tif 000003
【図３】
0005431618.tif 000004