JP5395967B1 - データ処理システム、情報端末、データ処理方法およびデータ処理プログラム - Google Patents

データ処理システム、情報端末、データ処理方法およびデータ処理プログラム Download PDF

Info

Publication number
JP5395967B1
JP5395967B1 JP2013030440A JP2013030440A JP5395967B1 JP 5395967 B1 JP5395967 B1 JP 5395967B1 JP 2013030440 A JP2013030440 A JP 2013030440A JP 2013030440 A JP2013030440 A JP 2013030440A JP 5395967 B1 JP5395967 B1 JP 5395967B1
Authority
JP
Japan
Prior art keywords
asset data
server
information
version information
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013030440A
Other languages
English (en)
Other versions
JP2014160354A (ja
Inventor
信隆 多久島
Original Assignee
株式会社 ディー・エヌ・エー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社 ディー・エヌ・エー filed Critical 株式会社 ディー・エヌ・エー
Priority to JP2013030440A priority Critical patent/JP5395967B1/ja
Priority to US14/141,187 priority patent/US8903948B2/en
Application granted granted Critical
Publication of JP5395967B1 publication Critical patent/JP5395967B1/ja
Publication of JP2014160354A publication Critical patent/JP2014160354A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/77Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/402Communication between platforms, i.e. physical link to protocol
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/40Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
    • A63F2300/407Data transfer via internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/534Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for network load management, e.g. bandwidth optimization, latency reduction
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/552Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】サーバ10、情報端末30間の通信量を低減する。
【解決手段】サーバ10は、データ更新部14によってアセットデータが更新された後に、対応する識別情報及びバージョン情報を情報端末に送信する。情報端末30は、受信したバージョン情報がブラウザキャッシュ36に記憶されているかを判別する。受信したバージョン情報がブラウザキャッシュ36に記憶されていないときに、対応するアセットデータの送信をサーバ10に要求し、受信したバージョン情報がブラウザキャッシュ36に記憶されているときに、サーバ10に対応するアセットデータの送信を要求しない。
【選択図】図1

Description

本発明は、情報端末と、情報端末とネットワークを介して接続するサーバと、を含むデータ処理システム、情報端末、データ処理方法およびデータ処理プログラムに関する。
ブラウザのキャッシュ機能を用いて、サーバから一度取得したデータをブラウザキャッシュに記憶しておき、ブラウザキャッシュに記憶されているデータについて再度取得する手間を省く処理が知られている。非特許文献1には、ブラウザキャッシュに記憶するデータの最終更新日とバージョン情報とを関連付けしたハッシュ値等を管理しておくことで、取得しようとするデータがキャッシュに記憶されている場合、そのデータを通信ネットワークを介して取得することなく、キャッシュに記憶されたデータを利用する技術が開示されている。
また、ゲーム分野において、ゲームで利用される画像データ等のアセットデータをゲームの最初の利用時にコンソール側に記憶してゲームを実行し、アセットデータに更新が発生した際に、パッチ処理によって更新データを、通信ネットワークを介してコンソール側にダウンロードさせる処理が知られている。
ここで、ネットワークを介してサーバと接続されている情報端末を利用したゲームにおいて、ゲーム情報を記憶したアプリをサーバから情報端末にダウンロードして、ゲームを実行するタイプのゲーム(いわゆるネイティブアプリ型ゲーム)が普及している。
このような、ネイティブアプリ型ゲームであって、登録された多くのユーザデータを利用して実行されるソーシャルゲームといわれるゲームが普及している。ソーシャルゲームにおいては、サーバにおいてキャラクタデータの更新等が頻繁に行われる。そこで、ゲームを実行している情報端末は、更新データをサーバから頻繁に入手する必要があり、サーバと情報端末との間で多くの通信が発生する。
"Google Developers"、[online]、[平成25年2月21日検索]、インターネット<URL:https://developers.google.com/speed/docs/best-practices/caching>
このような状況において、サーバ側で随時更新されるデータを情報端末でサーバから効率的に入手することを可能とすることが望まれる。
本発明の1つの態様は、情報端末と、前記情報端末とネットワークを介して接続するサーバと、を含むデータ処理システムであって、前記サーバは、複数のアセットデータを記憶するサーバ記憶部と、アセットデータの更新に伴って、更新されたアセットデータに対するバージョン情報を生成する更新部と、を含み、前記情報端末は、前記サーバと前記ネットワークを介して通信し、アセットデータを受信するブラウザ部と、アセットデータ、当該アセットデータを識別する識別情報、及び当該アセットデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、アセットデータを識別する識別情報と当該アセットデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、アセットデータと当該アセットデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、を含み、前記サーバは、アセットデータを前記情報端末へ送信する前に、送信対象となるアセットデータを識別する識別情報及び当該アセットデータに対するバージョン情報とを前記情報端末へ送信し、前記情報端末は、受信したバージョン情報が前記端末記憶部に記憶されているかを判別し、受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求し、受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求しない、データ処理システムである。
本発明の別の態様は、ネットワークを介してサーバと接続し、前記サーバからアセットデータを受信する情報端末であって、前記サーバと前記ネットワークを介して通信し、アセットデータを受信するブラウザ部と、アセットデータ、当該アセットデータを識別する識別情報、及び当該アセットデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、アセットデータを識別する識別情報と当該アセットデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、アセットデータと当該アセットデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、を含み、アセットデータを前記サーバから受信する前に、受信対象となるアセットデータを識別する識別情報及び当該アセットデータに対するバージョン情報とを前記サーバから受信し、受信したバージョン情報が前記端末記憶部に記憶されているかを判別し、受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求し、受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求しない、情報端末である。
本発明の別の態様は、情報端末と、前記情報端末とネットワークを介して接続するサーバと、を含むデータ処理方法であって、前記サーバは、複数のアセットデータを記憶するサーバ記憶部と、アセットデータの更新に伴って、更新されたアセットデータに対するバージョン情報を生成する更新部と、を含み、前記情報端末は、前記サーバと前記ネットワークを介して通信し、アセットデータを受信するブラウザ部と、アセットデータ、当該アセットデータを識別する識別情報、及び当該アセットデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、アセットデータを識別する識別情報と当該アセットデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、アセットデータと当該アセットデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、を含み、前記サーバは、アセットデータを前記情報端末へ送信する前に、送信対象となるアセットデータを識別する識別情報及び当該アセットデータに対するバージョン情報とを前記情報端末へ送信し、前記情報端末は、受信したバージョン情報が前記端末記憶部に記憶されているかを判別し、受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求し、受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求しない、データ処理方法である。
本発明の別の態様は、ネットワークを介してサーバと接続し、前記サーバからアセットデータを受信する情報端末において実行されるデータ処理プログラムであって、前記情報端末は、前記サーバと前記ネットワークを介して通信し、アセットデータを受信するブラウザ部と、アセットデータ、当該アセットデータを識別する識別情報、及び当該アセットデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、アセットデータを識別する識別情報と当該アセットデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、アセットデータと当該アセットデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、を含み、前記データ処理プログラムは、前記情報端末に、アセットデータを前記サーバから受信する前に、受信対象となるアセットデータを識別する識別情報及び当該アセットデータに対するバージョン情報とを前記サーバから受信させ、受信したバージョン情報が前記端末記憶部に記憶されているかを判別させ、受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求させ、受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求させない、データ処理プログラムである。
ここで、前記バージョン情報は、前記アセットデータから算出されたハッシュ値を含むことが好適である。また、前記更新部は、一定周期でハッシュ値の再計算を行うことが好適である。
本発明によれば、サーバと情報端末との間の通信量を低減し、効率良くデータを更新することができる。
実施形態に係るデータ処理システムの構成を示すブロック図である。 データのやり取りを説明するチャートである。 ページの切り替えを説明する図である。
以下、本発明の実施形態について、図面に基づいて説明する。
<システムの全体構成>
図1は、本実施形態に係るデータ処理システムの概略構成を示すブロック図である。サーバ10は、ネットワーク20に接続されており、このネットワーク20に情報端末30が接続されている。情報端末30は、ネットワーク20を介し、必要なデータをサーバ10から入手してゲーム等の処理を実行する。
なお、本実施の形態では、情報端末30においてゲームを実行する例について説明するが、本発明の適用範囲はこれに限定されるものでなく、サーバ10と情報端末30との間で随時更新されるデータの通信を行う態様であれば適用範囲となる。
<サーバの構成及び機能>
サーバ10は、コンピュータであり、各種のデータ処理機能、通信機能、記憶機能を備えている。サーバ10のメモリ12には、ゲームロジック、およびそのゲームを実行する際に使用されるユーザデータ、およびアセットデータが記憶される。
アセットデータは、たとえば、画像データ、動画(アニメーションデータ)などを含む。アセットデータは、これらのデータに限定されるものではないが、文書データ等よりもデータ容量が大きいデータである場合に本発明の効果がより顕著となる。
一般的に、ソーシャルゲームでは、ゲームを実行するためのゲームロジックは基本的に変更が頻繁でないが、画像データ、動画(アニメーションデータ)などのアセットデータは随時変更される。すなわち、アセットデータは開発者等によって随時変更され、メモリ12内の既存のアセットデータが新規のアセットデータによって随時書き換えられ、更新される。このように変更を受けたアセットデータを情報端末30で実行中のゲームにも反映するために、サーバ10から情報端末30へアセットデータを送信する必要がある。
なお、開発者のコンピュータは、ネットワーク20を介しサーバ10に接続してもよいが、内部LAN、無線通信など他の通信回線を介しサーバ10に接続してもよい。
サーバ10は、データ更新部14を有し、このデータ更新部14がメモリ12内のデータの更新を管理する。すなわち、データ更新部14は、更新データを受け取った場合に、メモリ12内のデータを更新する。ここで、このデータ更新は、基本的にアセットデータの更新を前提としている。ここで、アセットデータは、1つの画像、1つの動画等を1単位として、それぞれ1つのファイルとして保存されており、各ファイルにはファイル名の他、更新時刻、ファイル容量などの属性情報が付与されている。すなわち、既存のアセットデータと新規のアセットデータとは、この属性情報に基づいて対応付けすることが可能である。たとえば、メモリ12に保存されているアセットデータを更新する際には、古いアセットデータを新しいアセットデータで更新し、新しいアセットデータに更新された古いアセットデータと同一のファイル名を付与することにより対応付けが行われる。
サーバ10は、データを送信する場合に、その送信データについて、ファイル毎にハッシュ値を計算し、計算結果のハッシュ値をファイルとともに送信する。
データ更新部14は、ファイルのデータ自体や属性情報からハッシュ値を計算し、これをファイルと関連づけて送信する。なお、ハッシュ値は、そのファイルに含まれるアセットデータ(画像データ、動画データ等)又はそれに関する属性情報から算出されればよいが、アセットデータ自体から算出することが好適である。すなわち、アセットデータが更新されると、アセットデータ自体から算出されたハッシュ値は更新前のアセットデータ自体から算出されたハッシュ値とは異なる値となり、ハッシュ値はアセットデータ自体のバージョンを示すバージョン情報となる。このハッシュ値を比較することにより、アセットデータが更新されたか否かを確実に把握することができる。
ここで、ファイルが更新される度に、当該ファイルのハッシュ値を計算して、ファイルと対応付けてメモリ12に記憶することも好適である。こうすることによって、ファイルの送信要求が生じた場合に、すでに記憶されているハッシュ値を送信することもできる。また、一定期間毎に、メモリ12内のファイルのハッシュ値を計算して更新してもよく、さらにファイルを送信したときに再計算したハッシュ値をファイルに対応付けて更新してもよい。
なお、本実施の形態では、1つのファイルを単位データとして処理する例を示すが、複数ファイルを含む単位データとして当該単位データ毎にハッシュ値を算出して処理してもよい。
また、本実施形態では、バージョン情報としてハッシュ値を適用したが、変更されたアセットデータ(ファイル)に応じて変更されるバージョン情報としてもよい。たとえば、バージョン情報として、ファイル更新日時、ファイル更新時に付した一意な番号、チェックサム、チェックディジット、フィンガープリント等としてもよい。
アセットデータの作成者は、自己のコンピュータをサーバ10に接続し、メモリ12内のデータを随時書き換える。データ更新部14は、情報端末30からデータの提供を要求された際に、送信対象となるファイルを含む単位データに基づきそのハッシュ値を計算して、情報端末30に送信する。
たとえば、データ更新部14に下記のようなAPIを用意しておく。
_get_bundle?paths=a,b,c,d −−−> {a: {hash: md5, body: base64} ...}
情報端末30からのアクセスによって、このAPIが呼ばれた時にハッシュ値md5を計算してファイルaのバージョン情報とする。このようにすることで、ファイルaが差し替えられた場合には、その後に該当ファイルをユーザに送信すると、その送信データに対応するハッシュ値md5値が情報端末30に送信され、情報端末30において記憶される。
<情報端末の構成及び機能>
情報端末30は、携帯電話、スマートフォン、タブレット等のコンピュータを含む端末装置であり、CPUを含む処理部32が基本的なデータ処理を行う。
情報端末30には、ブラウザ部34が設けられており、このブラウザ部34によってネットワーク(たとえば、インターネット)20を介して、サーバ10に接続して画像表示等の各種の処理が行える。また、ブラウザ部34にはブラウザキャッシュ(ブラウザ記憶部)36が設けられており、ブラウザ部34が各種処理を実行する際に有効なデータの記憶に利用する。
情報端末30には、ネイティブキャッシュ38が設けられており、処理部32によって記憶内容が管理される。また情報端末30には、入力部40、表示部42が設けられ、必要なデータ入力、各種表示を行う。たとえば、表示部42は液晶や有機ELパネルであり、入力部40は表示部42に設けられたタッチパネルである。
情報端末30のユーザがゲームを開始する場合には、URLを特定してブラウザ部34がそのゲームプログラムの提供先であるサーバ10にアクセスし、ここからゲームプログラムを格納するアプリケーションをダウンロードする。
ゲームプログラムは、ネイティブキャッシュ38に記憶され、処理部32がゲームプログラムを実行することで、ブラウザ部34がサーバ10と通信して、必要な画像、動画などのアセットデータを取得し、表示部42に表示しつつゲームを進行させる。この例では、ゲームを実行するためのロジックは、サーバ10側にあり、ブラウザ部34によりサーバ10に接続しているときに、サーバ10が必要なデータを情報端末30に順次提供する。また、情報端末30からのデータもブラウザ部34を介してサーバ10に提供される。
ここで、上述したようにサーバ10は、アセットデータを含むファイルとそのファイルに対して算出されたハッシュ値を対応付けて記憶しており、情報端末30からアセットデータの要求を受けると、要求されたアセットデータを含むファイルを送る際に対応付けられたハッシュ値をメタデータとして付加して送信する。
情報端末30の処理部32は、受信したファイル(アセットデータ)およびハッシュ値をファイル名に関連付けてデータテーブル等としてネイティブキャッシュ38に記憶させる。また、ブラウザ部34は、情報端末30での表示処理の負荷を低減するために、ネイティブキャッシュ38に記憶されているファイルの一部又は全部のファイル名とハッシュ値をブラウザキャッシュ36に記憶する。
ここで、情報端末30において入手するアセットデータには、ユーザにおいて操作可能なデータと、操作不可能なデータ(ゲーム固有データ)が存在する。操作不可能なデータについては、ブラウザ部34において何度も利用される可能性は高くなく、ブラウザキャッシュ36ではなく、ネイティブキャッシュ38に記憶することが好適である。
<データ取得手順>
以下、図2のフロー図を参照して、ネットワーク20を介して情報端末30がサーバ10からアセットデータを取得する処理について説明する。本実施形態においては、ゲームで表示されるページ毎にブラウザ部34がサーバ10にアクセスし、ページを表示するためのアセットデータを取得するものとして説明を行う。
情報端末30においてゲームのアプリケーションが実行されると、ネットワーク20を介して情報端末30とサーバ10とが相互に情報の送受信が可能となるように接続される。ここで、図3に示すように、1つのページが情報端末30おいて表示されている状態から次のページの表示に移る際に、ブラウザ部34を介して必要なアセットデータがサーバ10から情報端末30に提供される。
まず、サーバ10から次ページの表示に必要なアセットデータを含むファイルのファイル名(file1, file2, ...)と対応するハッシュ値(バージョン情報)とが関連付けられて情報端末30に送信される。たとえば、ファイル名"file1"とそれに対応付けられたハッシュ値hash1、ファイル名"file2"とそれに対応付けられたハッシュ値hash2、を含む場合、(<html> file1 hash, file2 hash, ...)のようなデータが送信される。
このとき、送信時にファイルのハッシュ値を計算し、算出されたハッシュ値をファイル名と対にして送信することが好適である。これにより、送信時において最新のアセットデータに基づいて算出されたハッシュ値を確実に送信することができる。一方、ある程度のタイムラグが許容される場合、予めハッシュ値を算出し、メモリ12にファイルとハッシュ値とが関連付けてメモリ12に記憶しておき、送信時にはファイル名と対応するハッシュ値とを読み出して送信してもよい。この場合、サーバ10において送信毎にハッシュ値を算出する必要がなくなり、サーバ10の演算処理の負荷を低減することができる。
このように、次ページの表示に必要なアセットデータのファイルを送信する前に、ファイルの本体(内容)となるアセットデータは送信せず、ファイルに固有の識別情報であるファイル名と、そのバージョン情報であるハッシュ値が送信され、これがブラウザ部34において取得される。
ブラウザ部34は、受け取ったハッシュ値と同一のハッシュ値がブラウザキャッシュ36又はネイティブキャッシュ38に記憶されているかを判定する。この判定結果において、同一のハッシュ値が記憶されていれば、そのハッシュ値に関連付けられたファイル名を有するファイルについては既に最新のアセットデータがネイティブキャッシュ38に記憶されていると判断できる。この場合、そのファイルのアセットデータはサーバ10から改めて取得する必要はない。そこで、ブラウザ部34は、サーバ10から該当するファイルを取得することなく、ネイティブキャッシュ38から該当ファイルのアセットデータを、処理部32を介し取得して、次ページの表示を行う。
なお、ハッシュ値の同一性を判定する際に、ファイル名の同一性も同時に判定してもよい。すなわち、ブラウザ部34は、受け取ったファイル名とハッシュ値との組と同一のファイル名とハッシュ値との組がブラウザキャッシュ36又はネイティブキャッシュ38に記憶されているかを判定してよい。これにより、ファイル名で特定された同一のファイルのアセットデータについてハッシュ値を用いてデータの同一性を確認することができ、より確実に最新のアセットデータであるか否かを判定することができる。
図2の例は、ファイルfile3については同一のハッシュ値を有するファイルが既に登録されており、ファイルfile1, file2については同一のハッシュ値を有するファイルがなかった場合を示している。この場合、ブラウザ部34は、2つのファイルfile1, file2のみを取得するリクエストをサーバ10へ送信する。この例では、AJAX(Asynchronous JavaScript + XML)を用い、_get bundle file1, file2 のようなリクエストをサーバ10に送っている。
このリクエストに応じて、サーバ10は、該当するファイルfile1, file2をメモリ12から読み出し、これらファイルを情報端末30へ送信する。このとは、読み出したファイルに対してハッシュ値を計算して、ファイルと対応ハッシュ値をセットにして情報端末30のブラウザ部34に提供する。すなわち、ファイルfile1, file2について、それぞれのハッシュ値hashと、ファイルの本体(内容)となるアセットデータbodyを含めて、ブラウザ部34に提供する。
ここで、サーバ10のデータ更新部14は、送信する段階でハッシュ値を計算して、その計算で得られたハッシュ値を送信することが好適である。これにより、送信されるハッシュ値はその時点の最新のアセットデータに対するハッシュ値となる。したがって、情報端末30において、記憶されるハッシュ値が最新のバージョンのアセットデータに対応したものであることが担保される。
一方、ある程度のタイムラグが許容される場合、予めハッシュ値を算出し、メモリ12にアセットデータとハッシュ値とが関連付けてメモリ12に記憶しておき、送信時にはアセットデータを含むファイルと対応するハッシュ値とを読み出して送信してもよい。この場合、サーバ10において送信毎にハッシュ値を算出する必要がなくなり、サーバ10の演算処理の負荷を低減することができる。
ブラウザ部34は、提供されたファイルと、バージョン情報であるハッシュ値から、ファイル名とそのハッシュ値のみをブラウザキャッシュ36に記憶する。一方、ファイル名、ファイル本体、ハッシュ値はネイティブキャッシュ38に記憶される。なお、ハッシュ値はネイティブキャッシュ38に必ずしも記憶する必要はない。
このような処理を行い、ブラウザ部34は、ブラウザキャッシュ36、ネイティブキャッシュ38の保存完了を受け、サーバ10に受け取り通知を送信する。
このように、ユーザが情報端末30を使用してゲームについての一定の操作を行う都度、情報端末30で実行されるアプリケーションに応じてブラウザ部34によりサーバ10と通信を行う。
そして、サーバ10からページの表示に必要なファイルのデータがそのまま送られて来るのではなく、ファイル名とそのハッシュ値がまず送られてくる。そこで、そのハッシュ値を利用して、当該ファイル(ファイル本体)がネイティブキャッシュ38に記憶されているものかを判定し、記憶されている場合にはサーバ10に、ファイル本体の送信を要求しない。これによって、通信するデータ量を大幅に削減することができる。
また、ファイルの本体であるアセットデータ自体はネイティブキャッシュ38に記憶することで、ブラウザキャッシュ36のみを用いる場合に比して、データ容量を気にせずにファイルをキャッシュすることができる。さらに、ブラウザ部34および処理部32の両方からネイティブキャッシュ38のアクセスが許容され、処理部32において、ネイティブキャッシュ38に記憶されたデータについて破損がないかどのチェックを処理部32がブラウザ部34から独立して実行することなどが可能であり、その他の利用も可能となる。また、ネイティブキャッシュ38の容量には基本的に制限がなく、大容量とできるのでキャッシュするデータ量が大きくなっても問題がなく、動画データなどについても、容易にキャッシュすることが可能になる。
なお、本実施の形態では、1ページの表示毎にアセットデータを要求する例について説明したが、これに限定されるものでなく、複数のページの表示に必要なアセットデータを一度に纏めて取得してもよい。
<実施形態の効果>
このように、本実施形態では、以下のような効果が得られる。
・ネイティブキャッシュ38においてファイルの本体であるアセットデータを記憶できるため、ブラウザキャッシュ36の容量が小さくても問題が少ない。
・ブラウザキャッシュ36は、ブラウザ部34により利用されるものであり、ブラウザ部34の外にある処理部32などによっては制御が難しい。本実施形態では、アプリケーションではネイティブキャッシュ38に記憶されているアセットデータを用いることができるので、アプリケーションからブラウザキャッシュ36に記憶されているデータを扱う必要がなくなり、そのような問題は生じない。特に、ネイティブキャッシュ38をブラウザ部34と、処理部32において共有することで、効率的な処理が行え、サーバ10との間で無駄な通信が発生することを防止できる。
・ゲーム等のアプリケーション起動時は、アプリのダウンロードだけを必要とし、大きな容量のデータのダウンロードなど特別な処理を必要とせず、起動時間を短縮できる。
・アプリケーション起動中でも、アセットデータなどのアップデートが可能であり、ユーザが必要とする時点での最新データを供給できる。
<変形例>
・情報端末30からのアクセス時において、それがそのゲームについての初回のアクセスであることを判定する手段を有すれば、その最初の応答では、送信すべきデータをJSON(JavaScript Object Notation)化してハッシュ値とデータを一度に転送してもよい。
・サーバ10において、ハッシュ値を算出中にクエリがあると、サーバ10は、古いハッシュ値を返す場合があることも想定される。
たとえば、ファイルのバージョンについて、ファイルシステムに依存しないフィンガープリントを用いているならば、
(1)準備用ディレクトリーツリーに新規ファイルを置く
(2)追加ファイルのハッシュ値を算出する
(3)ハッシュ値が算出できたところで、リリース用ディレクトリーツリーに置く
こととしてもよい。
また、複数ファイルを不可分に更新する場合への対応として上記のような対応をすることも可能である。
さらに、上記処理の中で、ブラウザキャッシュ36に記憶するデータと、ネイティブキャッシュ38に記憶するデータを最適化してもよい。たとえば、更新頻度の少ない、ユーザの操作が影響しないデータについてはネイティブキャッシュ38に記憶し、ネイティブから直接アクセスできるようにし、更新頻度の多いデータについてはブラウザキャッシュ36に記憶することでブラウザ部34からネイティブへの転送速度の軽減を図ることができる。
10 サーバ、12 メモリ、14 データ更新部、20 ネットワーク、30 情報端末、32 処理部、34 ブラウザ部、36 ブラウザキャッシュ、38 ネイティブキャッシュ、40 入力部、42 表示部。

Claims (6)

  1. 情報端末と、前記情報端末とネットワークを介して接続するサーバと、を含むデータ処理システムであって、
    前記サーバは、
    複数のアセットデータを記憶するサーバ記憶部と、
    アセットデータの更新に伴って、更新されたアセットデータに対するバージョン情報を生成する更新部と、
    を含み、
    前記情報端末は、
    前記サーバと前記ネットワークを介して通信し、アセットデータを受信するブラウザ部と、
    アセットデータ、当該アセットデータを識別する識別情報、及び当該アセットデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、アセットデータを識別する識別情報と当該アセットデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、アセットデータと当該アセットデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、
    を含み、
    前記サーバは、
    アセットデータを前記情報端末へ送信する前に、送信対象となるアセットデータを識別する識別情報及び当該アセットデータに対するバージョン情報とを前記情報端末へ送信し、
    前記情報端末は、
    受信したバージョン情報が前記端末記憶部に記憶されているかを判別し、
    受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求し、
    受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求しない、
    データ処理システム。
  2. 請求項1に記載のデータ処理システムであって、
    前記バージョン情報は、前記アセットデータから算出されたハッシュ値を含むデータ処理システム。
  3. 請求項2に記載のデータ処理システムであって、
    前記更新部は、一定周期でハッシュ値の再計算を行うデータ処理システム。
  4. ネットワークを介してサーバと接続し、前記サーバからアセットデータを受信する情報端末であって、
    前記サーバと前記ネットワークを介して通信し、アセットデータを受信するブラウザ部と、
    アセットデータ、当該アセットデータを識別する識別情報、及び当該アセットデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、アセットデータを識別する識別情報と当該アセットデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、アセットデータと当該アセットデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、
    を含み、
    アセットデータを前記サーバから受信する前に、受信対象となるアセットデータを識別する識別情報及び当該アセットデータに対するバージョン情報とを前記サーバから受信し、
    受信したバージョン情報が前記端末記憶部に記憶されているかを判別し、
    受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求し、
    受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求しない、
    情報端末。
  5. 情報端末と、前記情報端末とネットワークを介して接続するサーバと、を含むデータ処理方法であって、
    前記サーバは、
    複数のアセットデータを記憶するサーバ記憶部と、
    アセットデータの更新に伴って、更新されたアセットデータに対するバージョン情報を生成する更新部と、
    を含み、
    前記情報端末は、
    前記サーバと前記ネットワークを介して通信し、アセットデータを受信するブラウザ部と、
    アセットデータ、当該アセットデータを識別する識別情報、及び当該アセットデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、アセットデータを識別する識別情報と当該アセットデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、アセットデータと当該アセットデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、
    を含み、
    前記サーバは、
    アセットデータを前記情報端末へ送信する前に、送信対象となるアセットデータを識別する識別情報及び当該アセットデータに対するバージョン情報とを前記情報端末へ送信し、
    前記情報端末は、
    受信したバージョン情報が前記端末記憶部に記憶されているかを判別し、
    受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求し、
    受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求しない、
    データ処理方法。
  6. ネットワークを介してサーバと接続し、前記サーバからアセットデータを受信する情報端末において実行されるデータ処理プログラムであって、
    前記情報端末は、
    前記サーバと前記ネットワークを介して通信し、アセットデータを受信するブラウザ部と、
    アセットデータ、当該アセットデータを識別する識別情報、及び当該アセットデータに対するバージョン情報を関連付けて記憶する端末記憶部であって、前記ブラウザ部により使用され、アセットデータを識別する識別情報と当該アセットデータに対するバージョン情報とを関連付けて記憶するブラウザキャッシュと、前記ブラウザキャッシュとは別に設けられ、前記ブラウザ部とは独立して管理され、アセットデータと当該アセットデータを識別する識別情報とを関連付けて記憶するネイティブキャッシュと、を含む端末記憶部と、
    を含み、
    前記データ処理プログラムは、前記情報端末に、
    アセットデータを前記サーバから受信する前に、受信対象となるアセットデータを識別する識別情報及び当該アセットデータに対するバージョン情報とを前記サーバから受信させ、
    受信したバージョン情報が前記端末記憶部に記憶されているかを判別させ、
    受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求させ、
    受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求させない、
    データ処理プログラム。
JP2013030440A 2013-02-19 2013-02-19 データ処理システム、情報端末、データ処理方法およびデータ処理プログラム Active JP5395967B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013030440A JP5395967B1 (ja) 2013-02-19 2013-02-19 データ処理システム、情報端末、データ処理方法およびデータ処理プログラム
US14/141,187 US8903948B2 (en) 2013-02-19 2013-12-26 Data processing system, information terminal, data processing method, and non-transitory computer-readable storage medium storing data processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013030440A JP5395967B1 (ja) 2013-02-19 2013-02-19 データ処理システム、情報端末、データ処理方法およびデータ処理プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013217147A Division JP5431618B1 (ja) 2013-10-18 2013-10-18 データ処理システム、情報端末、データ処理方法およびデータ処理プログラム

Publications (2)

Publication Number Publication Date
JP5395967B1 true JP5395967B1 (ja) 2014-01-22
JP2014160354A JP2014160354A (ja) 2014-09-04

Family

ID=50112328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013030440A Active JP5395967B1 (ja) 2013-02-19 2013-02-19 データ処理システム、情報端末、データ処理方法およびデータ処理プログラム

Country Status (2)

Country Link
US (1) US8903948B2 (ja)
JP (1) JP5395967B1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140366002A1 (en) * 2013-06-11 2014-12-11 Sap Ag Searching for an entity most suited to provide knowledge regarding an object
JP5738935B2 (ja) * 2013-07-19 2015-06-24 株式会社 ディー・エヌ・エー 情報端末及びデータ処理プログラム
CA2954294C (en) * 2015-12-28 2022-06-21 Huibin Ma Website access method, apparatus, and website system
US10701174B2 (en) 2016-01-05 2020-06-30 Micro Focus Llc Resource requests
US10970354B2 (en) * 2017-07-17 2021-04-06 Songtradr, Inc. Method for processing code and increasing website and client interaction speed
US11874803B2 (en) * 2020-11-04 2024-01-16 Wetx Inc. System and method for identifying, inventorying, managing, and monetizing water assets
CN113384873B (zh) * 2021-06-23 2024-02-23 网易(杭州)网络有限公司 短连接游戏的通知信息处理方法、电子设备和存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085234A (en) * 1994-11-28 2000-07-04 Inca Technology, Inc. Remote file services network-infrastructure cache
JP4370018B2 (ja) 1999-03-12 2009-11-25 三菱電機株式会社 ソフトウェア転送システム
US6968539B1 (en) * 1999-09-30 2005-11-22 International Business Machines Corporation Methods and apparatus for a web application processing system
JP4437114B2 (ja) 2005-11-10 2010-03-24 Necフィールディング株式会社 ネットワークセキュリティシステム及び通信切断方法
WO2008114491A1 (ja) 2007-03-20 2008-09-25 Access Co., Ltd. アプリケーション更新管理機能を備えた端末、アプリケーション更新管理プログラムおよびシステム
US7941409B2 (en) 2007-09-11 2011-05-10 Hitachi, Ltd. Method and apparatus for managing data compression and integrity in a computer storage system
US8516080B2 (en) * 2008-12-03 2013-08-20 Mobophiles, Inc. System and method for providing virtual web access
KR20110000162A (ko) 2009-06-26 2011-01-03 주식회사 넥슨 저장 미디어를 통한 온라인 게임 제공 시스템 및 그 방법
US8725947B2 (en) * 2010-05-28 2014-05-13 Microsoft Corporation Cache control for adaptive stream player
US9146909B2 (en) * 2011-07-27 2015-09-29 Qualcomm Incorporated Web browsing enhanced by cloud computing
US20140207566A1 (en) * 2013-01-23 2014-07-24 Trademob GmbH Device session identification system

Also Published As

Publication number Publication date
JP2014160354A (ja) 2014-09-04
US20140235351A1 (en) 2014-08-21
US8903948B2 (en) 2014-12-02

Similar Documents

Publication Publication Date Title
JP5395967B1 (ja) データ処理システム、情報端末、データ処理方法およびデータ処理プログラム
US10848556B2 (en) Systems and methods for adding digital content to content management service accounts
JP6410280B2 (ja) ウェブサイト・アクセス方法、装置、およびウェブサイト・システム
US10454996B2 (en) Systems and methods for downloading files
US10694353B2 (en) Updating web resources
US8949947B2 (en) Network system and non-transitory computer-readable storage medium
CN103379115A (zh) 一种本地存储与网络存储的数据同步方法和设备
WO2018120436A1 (zh) 一种flash应用的版本控制方法和系统
TW201312968A (zh) 基於雲端運算的上網監控方法、監控系統以及監控伺服器
JP5431618B1 (ja) データ処理システム、情報端末、データ処理方法およびデータ処理プログラム
JP5738935B2 (ja) 情報端末及びデータ処理プログラム
WO2020044977A1 (ja) アプリケーションプログラムおよびデータ転送システム
JP6318113B2 (ja) 情報端末及びデータ処理プログラム
JP2014160452A (ja) データ処理システム、情報端末、データ処理方法およびデータ処理プログラム
US9798578B2 (en) Enabling native application capabilities based on object capabilities
JP6579898B2 (ja) 情報処理システム、情報処理装置の制御方法、およびプログラム
CN117194827B (zh) Cdn目录刷新的方法及电子设备
CN114327331B (zh) 信息显示方法、装置、电子设备和计算机可读存储介质
CN113806595B (zh) 一种代码搜索系统生成方法、代码搜索方法和搜索服务器
JP6607805B2 (ja) 情報処理装置及び情報処理プログラム
JP5894320B1 (ja) 情報処理装置及び情報処理プログラム
JP2018101298A (ja) アクセス履歴更新プログラム
JP2007188125A (ja) 通信装置、データ共有システム、データ共有装置、及びコンピュータプログラム
JPWO2009066365A1 (ja) ウェブサイトの閲覧を管理するシステム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131018

R150 Certificate of patent or registration of utility model

Ref document number: 5395967

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250