JP5738935B2 - 情報端末及びデータ処理プログラム - Google Patents

情報端末及びデータ処理プログラム Download PDF

Info

Publication number
JP5738935B2
JP5738935B2 JP2013150483A JP2013150483A JP5738935B2 JP 5738935 B2 JP5738935 B2 JP 5738935B2 JP 2013150483 A JP2013150483 A JP 2013150483A JP 2013150483 A JP2013150483 A JP 2013150483A JP 5738935 B2 JP5738935 B2 JP 5738935B2
Authority
JP
Japan
Prior art keywords
information
asset data
server
proxy
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.)
Expired - Fee Related
Application number
JP2013150483A
Other languages
English (en)
Other versions
JP2015022539A (ja
Inventor
信隆 多久島
信隆 多久島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DeNA Co Ltd
Original Assignee
DeNA Co Ltd
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 DeNA Co Ltd filed Critical DeNA Co Ltd
Priority to JP2013150483A priority Critical patent/JP5738935B2/ja
Priority to US14/084,464 priority patent/US9282159B2/en
Publication of JP2015022539A publication Critical patent/JP2015022539A/ja
Application granted granted Critical
Publication of JP5738935B2 publication Critical patent/JP5738935B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Description

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

Claims (6)

  1. 内蔵された処理部が実行するネイティブ部分実行部と、
    ネットワークを介して接続されたサーバから受けた情報の表示処理を行うウェブブラウザと、
    が組み合わされたアプリケーションを実行する情報端末であって、
    前記ネイティブ部分実行部を実行することによって、前記ネットワークを介して前記サーバにアクセスして通信を行うプロキシとして機能し、
    前記ウェブブラウザを実行することによって、前記プロキシを介して前記サーバからダウンロード情報を取得して、前記ダウンロード情報を出力するブラウザとして機能し、
    前記プロキシを介して前記サーバから受信した前記ダウンロード情報を記憶し、前記プロキシからアクセス可能な端末記憶部を備え、
    前記ダウンロード情報は、アセットデータ、アセットデータの識別情報及びアセットデータのバージョン情報を含み、
    前記プロキシは、前記ウェブブラウザからアセットデータの要求を受けると、アセットデータを前記サーバから受信する前に、受信対象となるアセットデータの識別情報及び当該アセットデータに対するバージョン情報とを前記サーバから受信し、
    受信したバージョン情報が前記端末記憶部に記憶されているかを判別し、
    受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求し、
    受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求しない、
    ことを特徴とする情報端末。
  2. 請求項1に記載の情報端末であって、
    前記ブラウザは、前記プロキシを介さず直接アクセス可能なブラウザキャッシュを備え、前記ブラウザキャッシュに必要なアセットデータが記憶されているときに当該アセットデータを用いて処理を行い、前記ブラウザキャッシュに必要なアセットデータが記憶されていないときに前記プロキシに対して当該アセットデータの要求を行うことを特徴とする情報端末。
  3. 請求項1又2に記載の情報端末であって、
    前記端末記憶部に、前記ダウンロード情報をバイナリ情報として記憶することを特徴とする情報端末。
  4. 請求項1〜のいずれか1項に記載の情報端末であって、
    前記ブラウザは、httpにより前記プロキシから前記ダウンロード情報を取得することを特徴とする情報端末。
  5. コンピュータ端末内の処理部が実行するネイティブ部分実行部と、
    前記コンピュータ端末とネットワークを介して接続されたサーバから受けた情報の表示処理を行うウェブブラウザと、
    が組み合わされたアプリケーションを含むデータ処理プログラムであって、
    前記コンピュータ端末を、
    前記ネイティブ部分実行部を実行することによって、前記ネットワークを介して前記サーバにアクセスして通信を行うプロキシとして機能させ、
    前記ウェブブラウザを実行することによって、前記プロキシを介して前記サーバからダウンロード情報を取得して、前記ダウンロード情報を出力するブラウザとして機能し、
    前記プロキシを介して前記サーバから受信した前記ダウンロード情報を記憶し、前記プロキシからアクセス可能な端末記憶部を備え、
    前記ダウンロード情報は、アセットデータ、アセットデータの識別情報及びアセットデータのバージョン情報を含み、
    前記プロキシは、前記ウェブブラウザからアセットデータの要求を受けると、アセットデータを前記サーバから受信する前に、受信対象となるアセットデータの識別情報及び当該アセットデータに対するバージョン情報とを前記サーバから受信し、
    受信したバージョン情報が前記端末記憶部に記憶されているかを判別し、
    受信したバージョン情報が前記端末記憶部に記憶されていないときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求し、
    受信したバージョン情報が前記端末記憶部に記憶されているときに、当該バージョン情報に対応するアセットデータの送信を前記サーバに要求しない、
    ことを特徴とするデータ処理プログラム。
  6. 請求項5に記載のデータ処理プログラムであって、
    前記ブラウザは、前記プロキシを介さず直接アクセス可能なブラウザキャッシュを備え、前記ブラウザキャッシュに必要なアセットデータが記憶されているときに当該アセットデータを用いて処理を行い、前記ブラウザキャッシュに必要なアセットデータが記憶されていないときに前記プロキシに対して当該アセットデータの要求を行うことを特徴とするデータ処理プログラム。
JP2013150483A 2013-07-19 2013-07-19 情報端末及びデータ処理プログラム Expired - Fee Related JP5738935B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013150483A JP5738935B2 (ja) 2013-07-19 2013-07-19 情報端末及びデータ処理プログラム
US14/084,464 US9282159B2 (en) 2013-07-19 2013-11-19 System and method for providing a proxy with a browser cache and a native cache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013150483A JP5738935B2 (ja) 2013-07-19 2013-07-19 情報端末及びデータ処理プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015087362A Division JP6318113B2 (ja) 2015-04-22 2015-04-22 情報端末及びデータ処理プログラム

Publications (2)

Publication Number Publication Date
JP2015022539A JP2015022539A (ja) 2015-02-02
JP5738935B2 true JP5738935B2 (ja) 2015-06-24

Family

ID=52344513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013150483A Expired - Fee Related JP5738935B2 (ja) 2013-07-19 2013-07-19 情報端末及びデータ処理プログラム

Country Status (2)

Country Link
US (1) US9282159B2 (ja)
JP (1) JP5738935B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5894320B1 (ja) * 2015-07-09 2016-03-23 株式会社 ディー・エヌ・エー 情報処理装置及び情報処理プログラム
US10880272B2 (en) * 2017-04-20 2020-12-29 Wyse Technology L.L.C. Secure software client

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6029175A (en) * 1995-10-26 2000-02-22 Teknowledge Corporation Automatic retrieval of changed files by a network software agent
JPH1173361A (ja) * 1997-08-29 1999-03-16 Sharp Corp 分散ファイルシステムならびに当該システムの放送サーバ装置およびクライアント装置
US20020174189A1 (en) * 2001-04-23 2002-11-21 Luosheng Peng Apparatus and methods for intelligently caching applications and data on a mobile device
US20070220000A1 (en) * 2001-05-09 2007-09-20 Walsh Aaron E Universal Cache
JP4245986B2 (ja) * 2003-06-02 2009-04-02 Kddi株式会社 ネットワークシステム、該ネットワークシステムにおける端末切替時のデータ・ダウンロード継続方法及びそのプログラム
JP4025268B2 (ja) * 2003-08-08 2007-12-19 株式会社東芝 クライアント/サーバシステム、クライアントモジュール及び暗号化通信プログラム
US20070033155A1 (en) * 2005-08-02 2007-02-08 Landsman Richard A Client/server web application architectures for offline usage, data structures, and related methods
US20120233199A1 (en) * 2011-03-10 2012-09-13 Jenkins Jeffrey R Intelligent Web Caching
US20130086323A1 (en) * 2011-09-30 2013-04-04 Oracle International Corporation Efficient cache management in a cluster
JP5395967B1 (ja) * 2013-02-19 2014-01-22 株式会社 ディー・エヌ・エー データ処理システム、情報端末、データ処理方法およびデータ処理プログラム

Also Published As

Publication number Publication date
JP2015022539A (ja) 2015-02-02
US9282159B2 (en) 2016-03-08
US20150026305A1 (en) 2015-01-22

Similar Documents

Publication Publication Date Title
JP6410280B2 (ja) ウェブサイト・アクセス方法、装置、およびウェブサイト・システム
JP5395967B1 (ja) データ処理システム、情報端末、データ処理方法およびデータ処理プログラム
WO2015161658A1 (zh) 网页资源加载方法及装置
CN106161523B (zh) 一种数据处理方法和设备
KR20150110532A (ko) 피어-투-피어 소프트웨어 업데이트
BR112014001748B1 (pt) Método e sistema para carregar um arquivo em um jogo de web
US20130138775A1 (en) Mechanism for content download based on hashes
CN108920703B (zh) 一种http缓存优化方法与装置
CN103297447B (zh) 一种资源共享方法及其设备
CN103379115A (zh) 一种本地存储与网络存储的数据同步方法和设备
JP5738935B2 (ja) 情報端末及びデータ処理プログラム
JP2009042944A (ja) ファイル配信システム
JP6318113B2 (ja) 情報端末及びデータ処理プログラム
TWI505100B (zh) 在區域網路中進行資料分享與數據同步的方法
JP2009110041A (ja) ウェブ画面の共有システム、その共有用端末機およびその共有プログラム
US9674220B2 (en) System and method thereof for optimizing delivery of content over a network
JP5431618B1 (ja) データ処理システム、情報端末、データ処理方法およびデータ処理プログラム
JP2014160452A (ja) データ処理システム、情報端末、データ処理方法およびデータ処理プログラム
US20170208108A1 (en) Streaming media with a server identified at runtime
JP6579898B2 (ja) 情報処理システム、情報処理装置の制御方法、およびプログラム
JP6007753B2 (ja) 管理サーバ、ハードウェア管理装置、情報処理装置、ハードウェア管理システム、ハードウェア管理方法、および、コンピュータ・プログラム
JP2009205197A (ja) Cgm配信システムおよびcgm配信方法
JP6607805B2 (ja) 情報処理装置及び情報処理プログラム
JP5894320B1 (ja) 情報処理装置及び情報処理プログラム
JP2015031977A (ja) データ表示システム及びデータ表示方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150105

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: 20150414

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150422

R150 Certificate of patent or registration of utility model

Ref document number: 5738935

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

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

LAPS Cancellation because of no payment of annual fees