JP2016018552A - スクリプトのキャッシュ方法及びそれを適用した情報処理装置 - Google Patents

スクリプトのキャッシュ方法及びそれを適用した情報処理装置 Download PDF

Info

Publication number
JP2016018552A
JP2016018552A JP2014168917A JP2014168917A JP2016018552A JP 2016018552 A JP2016018552 A JP 2016018552A JP 2014168917 A JP2014168917 A JP 2014168917A JP 2014168917 A JP2014168917 A JP 2014168917A JP 2016018552 A JP2016018552 A JP 2016018552A
Authority
JP
Japan
Prior art keywords
script
internal code
web application
processing unit
unit
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.)
Pending
Application number
JP2014168917A
Other languages
English (en)
Inventor
坊野 博典
Hirofumi Bono
博典 坊野
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 JP2014168917A priority Critical patent/JP2016018552A/ja
Publication of JP2016018552A publication Critical patent/JP2016018552A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】スクリプトにより記述されたウェブアプリケーションを処理する際の負担を軽減する。【解決手段】ウェブアプリケーションにおける所定の処理単位毎に処理されるオブジェクトを記述するスクリプトの1つを着目スクリプトとして、着目スクリプトを内部コードに変換した場合に含まれる関数名と、残りのオブジェクトを記述するスクリプトを内部コードに変換した場合に含まれる関数名と、が共通でない場合には着目スクリプトの内部コードをキャッシュする。【選択図】図4

Description

本発明は、ウェブアプリケーションにおけるスクリプトのキャッシュ方法及びそれを適用した情報処理装置に関する。
サーバからスクリプトにより記述されたウェブアプリケーションをダウンロードし、クライアントがスクリプトを解析及び実行するシステムが用いられている。このようなシステムでは、クライアントをインターネット等のネットワークに接続してアプリケーションを記述するスクリプトをダウンロードする必要があり、ネットワークの通信負荷が増加するおそれがある。また、クライアントではダウンロードされたスクリプトをその都度解析する必要があり、クライアントでの処理負担が増加するおそれがある。
そこで、ウェブページのhtmlファイルに管理スクリプトを埋め込み、ウェブページの読み込みの際にクライアントの記憶領域に実行対象となるスクリプトが存在する場合には当該記憶領域から読み出して実行し、そうでない場合にはサーバからスクリプトを取得して実行するスクリプトのキャッシュ技術が開示されている(特許文献1)。
特許第5231500号公報
ところで、スクリプトをキャッシュする技術によって、ダウンロードに伴うネットワークの通信負荷及びクライアントにおける処理負荷を低減することができるが、クライアントにおけるスクリプトの解析処理の負荷を低減することができない。
本発明は、スクリプトにより記述されたウェブアプリケーションを処理する際の負担を軽減することを可能とするスクリプトのキャッシュ方法及びそれを適用した情報処理装置を提供することを目的とする。
本発明の1つの態様は、少なくとも一部の機能がスクリプトにより記述されたウェブアプリケーションを対象として、前記ウェブアプリケーションにおける所定の処理単位毎に、当該処理単位において処理されるオブジェクトを記述するスクリプトの1つを着目スクリプトとして、前記着目スクリプトを内部コードに変換した場合に当該内部コードに含まれる関数名と、当該処理単位において処理される残りのオブジェクトを記述するスクリプトを内部コードに変換した場合に当該内部コードに含まれる関数名と、が共通でない場合には前記着目スクリプトの内部コードをキャッシュすることを特徴とするスクリプトのキャッシュ方法である。
本発明の別の態様は、少なくとも一部の機能がスクリプトにより記述されたウェブアプリケーションを対象として、前記ウェブアプリケーションにおける所定の処理単位毎に、当該処理単位において処理されるオブジェクトを記述するスクリプトの1つを着目スクリプトとして、前記着目スクリプトを内部コードに変換した場合に当該内部コードに含まれる関数名と、当該処理単位において処理される残りのオブジェクトを記述するスクリプトを内部コードに変換した場合に当該内部コードに含まれる関数名と、が共通でない場合には前記着目スクリプトの内部コードをキャッシュすることを特徴とする情報処理装置である。
ここで、前記処理単位は、ブラウザに表示されるウェブページ単位であることが好適である。
また、前記処理単位毎に、当該単位に含まれるオブジェクトのリストを生成し、前記リストを参照して、当該処理単位において処理されるオブジェクトを記述するスクリプトの1つを着目スクリプトとして、前記着目スクリプトを内部コードに変換した場合に当該内部コードに含まれる関数名と、当該処理単位において処理される残りのオブジェクトを記述するスクリプトを内部コードに変換した場合に当該内部コードに含まれる関数名と、が共通でない場合には前記着目スクリプトの内部コードをキャッシュすることが好適である。
本発明によれば、スクリプトにより記述されたウェブアプリケーションを処理する際の負担を軽減することができる。
本発明の実施の形態における情報処理システムの構成を示す図である。 本発明の実施の形態における情報端末の構成を示す図である。 本発明の実施の形態におけるサーバの構成を示す図である。 本発明の実施の形態におけるスクリプトのキャッシュ方法を説明するフローチャートである。 本発明の実施の形態におけるオブジェクトのリストを作成するためのプログラムの例を示す図である。 本発明の実施の形態におけるオブジェクトのリストの例を示す図である。 本発明の実施の形態におけるスクリプトにより記述されたオブジェクト(リスト)の例を示す図である。 本発明の実施の形態におけるオブジェクト(リスト)を内部コードに変換した例を示す図である。
<情報処理システムの構成>
本発明の実施の形態における情報処理システムは、図1に示すように、情報端末100及びサーバ102を含んで構成される。サーバ102は、インターネット等の情報通信網104を介して、情報端末100と通信可能に接続される。サーバ102は、情報端末100からのアクセスを受けて、ウェブアプリケーションを情報端末100に送信する。情報端末100は、サーバ102からウェブアプリケーションを受信し、当該ウェブアプリケーションを解析及び実行する。
情報端末100は、図2に示すように、処理部10、記憶部12、入力部14、出力部16及び通信部18を含んで構成される。情報端末100は、携帯電話、スマートフォン、タブレット端末等の通信可能な携帯端末の基本構成を備えている。
処理部10は、CPU等の演算処理を行う手段を含む。処理部10は、ウェブアプリケーションプログラムを実行する。ウェブアプリケーションは、サーバ102からダウンロードされる。記憶部12は、半導体メモリやメモリカード等の記憶手段を含む。記憶部12は、処理部10とアクセス可能に接続され、ウェブアプリケーション、その処理に必要なデータ等の情報を記憶する。入力部14は、情報端末100に情報を入力する手段を含む。入力部14は、例えば、ユーザからの入力を受けるタッチパネルやボタン等を備える。出力部16は、ユーザから入力情報を受け付けるためのユーザインターフェース画面(UI)等や情報端末100での処理結果を出力する手段を含む。出力部16は、例えば、ユーザに対して画像を呈示するディスプレイを備える。通信部18は、情報通信網104を介して、他の情報通信機器と情報をやり取りするためのインターフェースを含んで構成される。通信部18による通信は有線及び無線を問わない。
サーバ102は、図3に示すように、処理部20、記憶部22、入力部24、出力部26及び通信部28を含んで構成される。サーバ102は、通信機能を備えたコンピュータの基本構成を備えている。
処理部20は、CPU等の演算処理を行う手段を含む。処理部20は、情報端末100からのアクセスを受けて、記憶部22に記憶されているウェブアプリケーションを情報端末100へ提供する処理を行う。記憶部22は、半導体メモリ、ハードディスク等の記憶手段を含む。記憶部22は、処理部20とアクセス可能に接続され、ウェブアプリケーション、その処理に必要なデータ等の情報を記憶する。入力部24は、サーバ102に情報を入力する手段を含む。入力部24は、例えば、ユーザからの入力を受けるキーボード等を備える。出力部26は、ユーザから入力情報を受け付けるためのユーザインターフェース画面(UI)等やサーバ102での処理結果を出力する手段を含む。出力部26は、例えば、ユーザに対して画像を呈示するディスプレイを備える。通信部28は、情報通信網104を介して、情報端末100と情報をやり取りするためのインターフェースを含んで構成される。通信部28による通信は有線及び無線を問わない。
本実施の形態の情報処理システムで扱われるウェブアプリケーションは、その少なくても一部がスクリプトによって記述されている。スクリプトは、コンピュータプログラムの記述言語の1つであり、機械語への変換や実行可能ファイルの作成などの過程を省略または自動化し、ソースコードを解釈することによって実行できるようなプログラム記述言語を意味する。スクリプトとしては、例えば、Java Script(登録商標)等が挙げられる。
例えば、HTML等のマークアップ言語で記述されたアプリケーション内に内部コードとしてスクリプトで記述されたプログラムを直接記述することができる。また、type属性及びscr属性を用いることによって、外部ファイルからスクリプトで記述されたプログラムを読み込んで実行させることもできる。
スクリプトには、様々な命令が記述できる。記述できる命令は、例えば、情報端末100の記憶部12に保持されているデータやスクリプトに記述されているデータを保存する命令、情報端末100の記憶部12に記憶されているデータを消去する命令、情報端末100の記憶部12に記憶されているデータを表示する命令、データをサーバ102等に送信する命令、データに対して四則演算や文字列操作などを実行する命令、実行すべきスクリプトの取得先を指定してそのスクリプトの実行を要求する命令、等が挙げられる。
情報端末100は、次に実行すべきスクリプトがアプリケーションに記述されていると、そのスクリプトを取得してその中に書いてある命令を解釈して内部コードに変換して実行する。このように、ウェブアプリケーションでは、順に次のスクリプトを取得して、その中に記述されている命令を順次解釈及び実行することによって動作する。サービスの提供者は、スクリプトによって記述されているウェブアプリケーションをサーバ102に保持させ、ユーザに対してそのウェブアプリケーションを提供するアドレス(URL)を知らせることによってユーザにサービスを提供する。
<スクリプトのキャッシュ方法>
本実施の形態では、情報端末100からサーバ102にアクセスし、サーバ102からウェブアプリケーションをダウンロードして情報端末100において実行する処理を例に説明を行う。以下、情報端末100でのスクリプトのキャッシュ処理について、図4のフローチャートを参照して説明する。
ステップS10では、ウェブアプリケーションのダウンロードが行われる。このステップでの処理によって、情報端末100はアプリケーション取得手段として機能し、サーバ102はアプリケーション提供手段として機能する。ユーザは、情報端末100においてウェブブラウザを用いてウェブアプリケーションを取得するためのアドレス(URL)に基づいてウェブアプリケーションを提供するサーバ102にアクセスする。これにより、サーバ102から情報端末100へウェブアプリケーションが送信される。情報端末100は、ウェブアプリケーションを受信し、受信したアプリケーションを記憶部12に記憶させる。
なお、ブラウザ上において実行される電子ゲーム等のウェブアプリケーションではウェブのページを処理単位として処理が行われることが多い。このような場合、ウェブページ単位でアプリケーションを送信して、以下の処理を適用するようにしてもよい。
ステップS12では、ウェブアプリケーションに含まれるオブジェクトのリストを作成する。このステップでの処理によって、情報端末100はリスト作成手段として機能する。情報端末100は、ステップS10において取得したウェブアプリケーションに含まれるオブジェクトのリストを生成する処理を行う。
通常、Java Script(登録商標)等のスクリプトではクラスはオブジェクトの1つして扱われ、すべてのグローバルオブジェクトをツリー構造(木構造)として管理している。そして、図5に示すようなプログラムを実行することによって、図6に示すように、既知のシステムオブジェクトを除くすべてのオブジェクトをリストとして出力することができる。リストには、オブジェクトのキー(Key)及び各オブジェクトを情報端末100において実行される内部コードに変換したときの値(Value)が含まれる。
処理部10は、処理対象となっているウェブアプリケーションから各オブジェクトのスクリプトを読み出し、スクリプトエンジンによって解析し、情報端末100において実行する内部コードに変換する。例えば、図6に示したリストにおける”n.MyClass1”及び”n.MyClass2”というクラスが図7に示すスクリプトで記述されているとすると、情報端末100において実行される際にはスクリプトエンジンによって解析されて図8に示すような内部コードに変換される。この内部コードからクラス名がキー(Key)として抽出され、関数が値(Value)として抽出される。”n.MyClass1”及び”n.MyClass2”では、キー(Key)は”n.MyClass1”及び”n.MyClass2”となり、値(Value)はいずれも”function Klass”となる。
ステップS14では、ウェブアプリケーションに内部コードの関数名が共通するスクリプトが存在するか否かが判定される。このステップでの処理によって、情報端末100は共通関数調査手段として機能する。処理部10は、ステップS12においてリストアップされたオブジェクトの1つを着目スクリプトとする。そして、着目スクリプトの値(Value)が関数であるか否かを判定する。さらに、着目スクリプトの値(Value)が関数であった場合、リスト内の他のオブジェクトの値(Value)に着目スクリプトの値(Value)と同じ関数が存在するか否かを判定する。
ステップS16では、リスト内のすべてのオブジェクトについて着目スクリプトとして処理されたか否かが判定される。すべてのオブジェクトについて着目スクリプトとして処理されていなければステップS14に処理を戻し、既にすべてのオブジェクトについて着目スクリプトとして処理されていればステップS18に処理を移行させる。
ステップS18では、ウェブアプリケーションのキャッシュ処理が行われる。このステップの処理によって、情報端末100はキャッシュ処理手段として機能する。処理部10は、記憶部12においてウェブのキャッシュ領域として確保された記憶領域に処理対象となったウェブアプリケーションをキャッシュする。このとき、ステップS14において内部コードの関数名が共通するとされたオブジェクト(クラス)は内部コードに変換せず、関数名が共通しないとされたオブジェクト(クラス)は内部コードに変換してキャッシュする。
このように、ウェブアプリケーションをキャッシュすることによって、再度同じウェブアプリケーションを使用する際にキャッシュ領域から読み出して使用することができる。したがって、ダウンロードに伴うネットワークの通信負荷及び情報端末100(クライアント)における処理負荷を低減することができる。
また、情報端末100(クライアント)におけるスクリプトの解析処理の負荷を低減することができる。ここで、内部コードにおける関数名が複数のオブジェクト(クラス)において共通する場合には当該関数名で表わされる関数が呼び出されたときにいずれのオブジェクト(クラス)の関数が呼び出されたかを文脈を解釈して実行する必要があるが、本実施の形態では、関数名が共通するオブジェクトについては内部コードに変換されずにキャッシュされるのでこのような不具合を避けることができる。
なお、情報端末100における処理の一部をサーバ102において行うようにしてもよい。例えば、ステップS12〜S16の処理の一部をサーバ102において行ってもよい。
10 処理部、12 記憶部、14 入力部、16 出力部、18 通信部、20 処理部、22 記憶部、24 入力部、26 出力部、28 通信部、100 情報端末、102 サーバ、104 情報通信網。

Claims (4)

  1. 少なくとも一部の機能がスクリプトにより記述されたウェブアプリケーションを対象として、前記ウェブアプリケーションにおける所定の処理単位毎に、当該処理単位において処理されるオブジェクトを記述するスクリプトの1つを着目スクリプトとして、前記着目スクリプトを内部コードに変換した場合に当該内部コードに含まれる関数名と、当該処理単位において処理される残りのオブジェクトを記述するスクリプトを内部コードに変換した場合に当該内部コードに含まれる関数名と、が共通でない場合には前記着目スクリプトの内部コードをキャッシュすることを特徴とするスクリプトのキャッシュ方法。
  2. 請求項1に記載のスクリプトのキャッシュ方法であって、
    前記処理単位は、ブラウザに表示されるウェブページ単位であることを特徴とするスクリプトのキャッシュ方法。
  3. 請求項1又は2に記載のスクリプトのキャッシュ方法であって、
    前記処理単位毎に、当該単位に含まれるオブジェクトのリストを生成し、
    前記リストを参照して、当該処理単位において処理されるオブジェクトを記述するスクリプトの1つを着目スクリプトとして、前記着目スクリプトを内部コードに変換した場合に当該内部コードに含まれる関数名と、当該処理単位において処理される残りのオブジェクトを記述するスクリプトを内部コードに変換した場合に当該内部コードに含まれる関数名と、が共通でない場合には前記着目スクリプトの内部コードをキャッシュすることを特徴とするスクリプトのキャッシュ方法。
  4. 少なくとも一部の機能がスクリプトにより記述されたウェブアプリケーションを対象として、前記ウェブアプリケーションにおける所定の処理単位毎に、当該処理単位において処理されるオブジェクトを記述するスクリプトの1つを着目スクリプトとして、前記着目スクリプトを内部コードに変換した場合に当該内部コードに含まれる関数名と、当該処理単位において処理される残りのオブジェクトを記述するスクリプトを内部コードに変換した場合に当該内部コードに含まれる関数名と、が共通でない場合には前記着目スクリプトの内部コードをキャッシュすることを特徴とする情報処理装置。
JP2014168917A 2014-08-22 2014-08-22 スクリプトのキャッシュ方法及びそれを適用した情報処理装置 Pending JP2016018552A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014168917A JP2016018552A (ja) 2014-08-22 2014-08-22 スクリプトのキャッシュ方法及びそれを適用した情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014168917A JP2016018552A (ja) 2014-08-22 2014-08-22 スクリプトのキャッシュ方法及びそれを適用した情報処理装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014138438A Division JP5604016B1 (ja) 2014-07-04 2014-07-04 スクリプトのキャッシュ方法及びそれを適用した情報処理装置

Publications (1)

Publication Number Publication Date
JP2016018552A true JP2016018552A (ja) 2016-02-01

Family

ID=55233682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014168917A Pending JP2016018552A (ja) 2014-08-22 2014-08-22 スクリプトのキャッシュ方法及びそれを適用した情報処理装置

Country Status (1)

Country Link
JP (1) JP2016018552A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113608886A (zh) * 2021-06-30 2021-11-05 北京新氧科技有限公司 一种函数接入缓存方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113608886A (zh) * 2021-06-30 2021-11-05 北京新氧科技有限公司 一种函数接入缓存方法、装置、电子设备及存储介质
CN113608886B (zh) * 2021-06-30 2024-04-26 北京新氧科技有限公司 一种函数接入缓存方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US10831858B2 (en) Mobile enablement of existing web sites
EP3465467B1 (en) Web page accelerations for web application hosted in native mobile application
US9448776B1 (en) Method and apparatus for converting a website into a native mobile application
KR102220127B1 (ko) 커스터마이징된 소프트웨어 개발 키트(sdk) 생성을 위한 방법 및 장치
US9544335B2 (en) Method and system for local calling via webpage
TW201800962A (zh) 網頁文件發送方法、網頁渲染方法及裝置、網頁渲染系統
US20140281859A1 (en) Enhanced mobilization of existing web sites
CN103092581A (zh) 一种Web前端本地开发环境的搭建方法和装置
CN104361004B (zh) 浏览器收藏夹数据的处理方法与浏览器
KR101402146B1 (ko) 모바일 디바이스에서의 웹 스크린 스크래핑 방법 및 웹 스크린 스크래핑을 제공하는 모바일 디바이스
JP5604016B1 (ja) スクリプトのキャッシュ方法及びそれを適用した情報処理装置
US20150012608A1 (en) Web content prefetch control device, web content prefetch control program, and web content prefetch control method
US20140281906A1 (en) Mobile enablement of webpages
WO2022048141A1 (zh) 一种图像处理方法及装置、计算机可读存储介质
EP3953802A1 (en) Process for creating a fixed length representation of a variable length input
US20130086138A1 (en) Implementing a java method
CN104361007B (zh) 浏览器及其收藏夹的处理方法
US10594764B2 (en) Request cache to improve web applications performance
CN111291288B (zh) 网页链接抽取方法及系统
JP5393242B2 (ja) データ提供方法および中間サーバ装置
JP5535184B2 (ja) ブラウザ実行スクリプト変換システムおよびブラウザ実行スクリプト変換プログラム
US9680967B2 (en) Method of using application, gateway using the method, terminal using the method, and terminal system using the method
JP2016018552A (ja) スクリプトのキャッシュ方法及びそれを適用した情報処理装置
JP6607805B2 (ja) 情報処理装置及び情報処理プログラム
JP5894320B1 (ja) 情報処理装置及び情報処理プログラム