JP2011164749A - Webアプリケーション高可用化装置及びWebアプリケーション高可用化方法 - Google Patents
Webアプリケーション高可用化装置及びWebアプリケーション高可用化方法 Download PDFInfo
- Publication number
- JP2011164749A JP2011164749A JP2010024120A JP2010024120A JP2011164749A JP 2011164749 A JP2011164749 A JP 2011164749A JP 2010024120 A JP2010024120 A JP 2010024120A JP 2010024120 A JP2010024120 A JP 2010024120A JP 2011164749 A JP2011164749 A JP 2011164749A
- Authority
- JP
- Japan
- Prior art keywords
- server
- offline
- browser
- user operation
- request
- 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
Links
Images
Abstract
【課題】オフライン機能を提供するに際し、Webアプリケーションの再作成を不要としたWebアプリケーション高可用化装置を得る。
【解決手段】ブラウザとサーバ間における利用者操作による送受信内容を保存するキャッシュ15を備えたWebアプリケーション装置において、前記ブラウザ10とサーバ間の要求・応答を管理してオンライン状態とオフライン状態を判断しオフライン状態中にはサーバに代わり前記キャッシュから応答する要求応答管理部16と、オフライン状態中の前記ブラウザで取得した利用者操作ログと前記ブラウザからサーバに対する要求内容とその要求に対する前記要求応答管理部によるキャッシュからの応答内容とを保存管理する利用者操作ログ管理DB17と、前記要求応答管理部がオフライン状態からオンライン状態となったことを検知し前記利用者操作ログから利用者操作を再現しサーバに反映するオフライン中操作反映部18とを備える。
【選択図】図1
【解決手段】ブラウザとサーバ間における利用者操作による送受信内容を保存するキャッシュ15を備えたWebアプリケーション装置において、前記ブラウザ10とサーバ間の要求・応答を管理してオンライン状態とオフライン状態を判断しオフライン状態中にはサーバに代わり前記キャッシュから応答する要求応答管理部16と、オフライン状態中の前記ブラウザで取得した利用者操作ログと前記ブラウザからサーバに対する要求内容とその要求に対する前記要求応答管理部によるキャッシュからの応答内容とを保存管理する利用者操作ログ管理DB17と、前記要求応答管理部がオフライン状態からオンライン状態となったことを検知し前記利用者操作ログから利用者操作を再現しサーバに反映するオフライン中操作反映部18とを備える。
【選択図】図1
Description
本発明は、Webアプリケーションの利用環境において、ネットワーク接続が異常となった場合であっても、Webアプリケーションの利用を可能とするWebアプリケーション高可用化装置及びWebアプリケーション高可用化方法に関する。
近年、その利便性からブラウザのみで利用者にメール機能や表計算機能、文書作成機能などを提供するWebアプリケーションが急速に普及しつつある。このWebアプリケーションは、パーソナルコンピュータ(PC)や携帯電話(以下、利用者端末と呼ぶ)にインストールされたブラウザのみで、利用者端末にプログラムをインストールすることなく、メールや表計算、文書作成などのアプリケーションを利用者に提供する実行環境を備えている。そして、Webアプリケーションの多くは、その動作にネットワーク接続を要求するため、一度ネットワーク接続が異常となるとその利用に影響があるという課題がある。
Webアプリケーションは、図5に示すように、利用者端末(クライアント)にインストールされたブラウザ10に対してネットワーク20を介してサーバ30が接続されることで構築されている。Webアプリケーションの動作について、Ajaxと呼ばれるWebアプリケーションを実現するための典型的な手段を用いた場合を例に説明する。
利用者がブラウザ10にURLを入力する等をした場合、ブラウザ10はサーバ30に、HTTP(Hypertext Transfer Protocol)またはHTTPS(Hypertext Transfer Protocol over Secure Socket Layer)を使用し(以下、HTTPとHTTPSを区別せずに、単にHTTPと呼ぶ)、HTML(Hypertext Markup Language)で記述されたデータや静止画(jpgなどのイメージファイル)、Java(登録商標)Script(ブラウザ上で実行可能なプログラム)などを要求する。サーバ側処理プログラム31は、ブラウザ10からの要求に従い応答する(処理O)。ブラウザ10は、サーバ側処理プログラム31から取得したサーバ応答に従い、HTML等データ11を、表示領域12に表示する。例えば、メール機能を提供する場合、メーラの起動画面が表示された状態となる。
利用者は、ブラウザ10のHTML等データ11により表示領域12に表示された画面において、例えば新規メール作成ボタンの押下や、受信したメールを選択する操作を行う。利用者操作は、Java(登録商標)Script(プログラム)により処理取得される(処理P)。
Java(登録商標)Script(プログラム)は、利用者操作に基づき、サーバ30のサーバ側プログラム31にデータ取得を要求する(処理Q)。例えば、ある受信メールがブラウザ上で選択された場合、受信メールの本文データをJava(登録商標)Script(プログラム)が要求し、サーバ側プロラム31が受信メールのデータを応答する。
Java(登録商標)Script(プログラム)は、サーバ30側より受信したデータを基に、表示データを組立て、Dynamic HTML等により、表示領域12の表示内容を動的に変更する(処理R)。例えば、(非Webアプリケーションの)メーラで受信メールを選択し、選択されたメール本文を読んでいる画面を表示データとして組立て、表示領域12に書き出す。ここでは表示領域12のみの変更を行い、Java(登録商標)Scriptを含むHTML全体の再読み込みはしない(従来のHTMLとAjax等を用いたWebアプリケーションの違い)。
上述のWebアプリケーションにおいて、ブラウザ10とサーバ30との間のネットワーク20の遮断等、ネットワーク接続に異常が生じた場合、図5の処理O及び処理Qにおけるサーバ側処理プログラム31との通信断が発生するため、Webアプリケーションの利用に影響がある。
このような課題に対処するため、Webアプリケーションのクライアント側実行環境であるブラウザを機能拡張し、ネットワーク接続が異常な場合にもサービス提供する技術が特許文献1、非特許文献1及び非特許文献2に提案されている(以降、ネットワーク接続が異常となり、クライアントからサーバに接続できない状態をオフライン状態と呼び、オフライン状態でもサービス提供する技術や機能をオフライン技術又はオフライン機能と呼ぶ。さらに、ネットワーク接続に異常がない(正常な)状態をオンライン状態と呼ぶ)。なお、ブラウザの機能拡張には、プラグインと呼ばれるブラウザ拡張のためのプログラムモジュールが用いられる場合が多い。
例えば、特許文献1では、クライアント端末にローカルプロキシとアプリケーションファイル保存データDBを新たに追加する技術が提案されている。ローカルプロキシの自動巡回プログラムは、サーバのアプリケーション管理DBに登録されたアプリケーションを自動的にダウンロードし、アプリケーションファイル保存DBに保存する(特許文献1の図2参照)。この処理は、図5におけるJava(登録商標)ScriptやHTMLファイル等のサーバへの要求を、オンライン中に自動巡回プログラムが実行し、サーバ応答をクライアントローカルに事前に保存することに相当する。
そして、オフライン状態において、利用者がブラウザを介してWebアプリケーションの実行を要求する場合、アプリケーションファイル保存DBより応答することで、オフライン機能を実現することができる。オフライン中の利用者による文字入力などの利用者操作は、アプリケーション自身によりクライアントローカルに保存する。クライアントローカルの保存先には、サーバがWebブラウザを通じてクライアントに一時的にデータを書き込み保存するCookieファイルなどがある。Cookieの典型的な利用方法としては、クライアントが最後にサーバに接続した日時や、サーバへの接続回数の保存、利用者の識別情報の書込みがある。
また、非特許文献1及び非特許文献2では、クライアントのブラウザにローカルサーバ機能と、ローカルデータベース機能、更にこれらをJava(登録商標)Scriptから操作するためのAPI(Application Program Interface)を追加する技術が提案されている。ローカルサーバ機能は、ネットワークが正常な際(オンライン状態)の利用者のサーバに対する要求とその応答を保存するキャッシュと、オフライン状態においてキャッシュに保存された以前の応答を使用し利用者の要求に応答する機能を有する。ローカルデータベース機能は、オフライン中の利用者操作を保存し、オンライン状態となった場合には、サーバにオフライン中の利用者操作を反映する機能を有する。上述の追加したAPIを使用したWebアプリケーションは、ローカルサーバ機能とローカルデータベース機能の利用が可能となり、オフライン中であっても利用者にWebアプリケーションサービスの提供が可能となる。
Google Gears http://gears.google.com/
Google Gears スタートガイド, 白石俊平著,技術評論社,
上述した特許文献1、非特許文献1及び非特許文献2に記載の技術においては、オフライン機能を利用者に提供するため、Webアプリケーション(Java(登録商標)Script)を再作成する必要がある。
例えば、特許文献1の場合、オフライン中の利用者操作をWebアプリケーションが判断し(又はオンライン中の全ての処理を含め)クライアントローカルに保存するように変更(再作成)する必要がある。
例えば、特許文献1の場合、オフライン中の利用者操作をWebアプリケーションが判断し(又はオンライン中の全ての処理を含め)クライアントローカルに保存するように変更(再作成)する必要がある。
また、非特許文献1及び非特許文献2の場合、新たに追加されるAPIを使用するプログラムコードにWebアプリケーションを作り変える(再作成する)必要がある。
すなわち、これらの技術では、Webアプリケーションがオフライン状態であることを判断し、オフライン中の利用者操作をWebアプリケーションが利用者端末内(クライアントローカル)に書き込んでおき、オンライン状態に回復した場合にWebアプリケーションが書き込んでおいた利用者操作をサーバに反映させる。
一方、既存のWebアプリケーションにおいては、オフライン状態であることを判断し、オフライン中の利用者操作をクライアントローカルに保存する機能(保存機能)と、オンライン状態に回復した場合に利用者操作をサーバに反映する機能(反映機能)は有していないので、上述した技術によりオフライン技術を実現するためには、上述した保存機能と反映機能を有するWebアプリケーションに、既存のWebアプリケーションを再作成する必要がある。しかしながら、既に多くのWebアプリケーションが普及している状況から、全てのWebアプリケーションの全てを再作成することは経済的な観点から難しいという課題がある。
一方、既存のWebアプリケーションにおいては、オフライン状態であることを判断し、オフライン中の利用者操作をクライアントローカルに保存する機能(保存機能)と、オンライン状態に回復した場合に利用者操作をサーバに反映する機能(反映機能)は有していないので、上述した技術によりオフライン技術を実現するためには、上述した保存機能と反映機能を有するWebアプリケーションに、既存のWebアプリケーションを再作成する必要がある。しかしながら、既に多くのWebアプリケーションが普及している状況から、全てのWebアプリケーションの全てを再作成することは経済的な観点から難しいという課題がある。
本発明は上記事情に鑑みて提案されたもので、Webアプリケーションの再作成を要求することなく、Webアプリケーションにオフライン機能を提供することができるWebアプリケーション高可用化装置、及び、Webアプリケーション高可用化方法を提供することを目的としている。
上記目的を達成するため本発明は、Webアプリケーションの再作成を要求することなく、ブラウザのキャッシュと利用者操作ログを用いて、Webアプリケーションにオフライン機能を有するようにした装置及び方法である。
具体的には、ブラウザの全通信をキャッシュする機能と、キーボード操作などの利用者操作ログを取得する機能をクライアントに新たに追加する。追加する機能は、オフライン状態中、キャッシュによる応答と、メール編集などの利用者操作ログを取得し、オンライ状態となった際、オフライン中の操作を利用者操作ログから再現し、サーバに反映させるようにする。
具体的には、ブラウザの全通信をキャッシュする機能と、キーボード操作などの利用者操作ログを取得する機能をクライアントに新たに追加する。追加する機能は、オフライン状態中、キャッシュによる応答と、メール編集などの利用者操作ログを取得し、オンライ状態となった際、オフライン中の操作を利用者操作ログから再現し、サーバに反映させるようにする。
すなわち、請求項1は、ブラウザとサーバ間における利用者操作による送受信内容が中継された際に、前記送受信内容をローカルに保存するキャッシュを備えたWebアプリケーション装置において、
前記ブラウザとサーバ間における全ての要求・応答を管理してオンライン状態とオフライン状態を判断し、オフライン状態中にはサーバに代わり前記キャッシュから応答する要求応答管理部と、
オフライン状態中の前記ブラウザで取得した利用者操作ログと、前記ブラウザからサーバに対する要求内容と、その要求に対する前記要求応答管理部によるキャッシュからの応答内容とを保存管理する利用者操作ログ管理データベースと、
前記要求応答管理部がオフライン状態からオンライン状態となったことを検知し前記利用者操作ログ管理データベースで管理されたオフライン状態中の利用者操作ログから利用者操作を再現しサーバに反映するオフライン中操作反映部とを具備することを特徴としている。
前記ブラウザとサーバ間における全ての要求・応答を管理してオンライン状態とオフライン状態を判断し、オフライン状態中にはサーバに代わり前記キャッシュから応答する要求応答管理部と、
オフライン状態中の前記ブラウザで取得した利用者操作ログと、前記ブラウザからサーバに対する要求内容と、その要求に対する前記要求応答管理部によるキャッシュからの応答内容とを保存管理する利用者操作ログ管理データベースと、
前記要求応答管理部がオフライン状態からオンライン状態となったことを検知し前記利用者操作ログ管理データベースで管理されたオフライン状態中の利用者操作ログから利用者操作を再現しサーバに反映するオフライン中操作反映部とを具備することを特徴としている。
請求項2は、請求項1のWebアプリケーション高可用化装置において、前記オフライン中操作反映部は、オフライン中の利用者操作をサーバに反映する際に、オフライン中に前記要求応答管理部がサーバに代わりキャッシュから応答した内容と、サーバが実際に応答したサーバ応答内容とを比較し、異なる場合に前記ブラウザ側に前記サーバ応答内容を表示する処理を含むことを特徴としている。
請求項3は、請求項2のWebアプリケーション高可用化装置において、オフライン中にCookie等の一時情報が期限切れとなったために、オフライン中に前記要求応答管理部がサーバに代わり応答した内容と、サーバが実際に応答したサーバ応答内容とが異なり、前記ブラウザ側に表示した前記サーバ応答内容に対し、利用者等が操作することで一時情報がサーバにより更新された場合、前記利用者操作ログ管理データベース内の、前記ブラウザからサーバに対する要求内容に含まれる一時情報を、更新後の新たな一時情報に変更する処理を含むことを特徴としている。
請求項4は、請求項1のWebアプリケーション高可用化装置において、前記キャッシュは、キャッシュする情報に有効期限の指定がある場合、前記有効期限を解除する解除部を設けたことを特徴としている。
請求項5のWebアプリケーション高可用化方法は、ブラウザとサーバ間における利用者操作による送受信内容を中継した際に、前記送受信内容をローカルに保存するキャッシュを備えたWebアプリケーション装置において、
前記ブラウザとサーバ間における全ての要求・応答を要求応答管理部で管理してオンライン状態とオフライン状態を判断するとともに、オフライン中にはサーバに代わりキャッシュより応答し、オフライン中の前記ブラウザでの利用者操作ログをブラウザからの要求内容とキャッシュからの応答内容とともに利用者操作ログ管理データベースで保存管理する利用者操作ログ管理手順と、
前記要求応答管理部がオフライン状態からオンライン状態を検知した場合に、前記利用者操作ログ管理データベースで管理されたオフライン状態中の利用者操作ログからオンライン状態となった際に利用者操作を再現しサーバに反映させるオフライン中操作反映手順を含むことを特徴としている。
前記ブラウザとサーバ間における全ての要求・応答を要求応答管理部で管理してオンライン状態とオフライン状態を判断するとともに、オフライン中にはサーバに代わりキャッシュより応答し、オフライン中の前記ブラウザでの利用者操作ログをブラウザからの要求内容とキャッシュからの応答内容とともに利用者操作ログ管理データベースで保存管理する利用者操作ログ管理手順と、
前記要求応答管理部がオフライン状態からオンライン状態を検知した場合に、前記利用者操作ログ管理データベースで管理されたオフライン状態中の利用者操作ログからオンライン状態となった際に利用者操作を再現しサーバに反映させるオフライン中操作反映手順を含むことを特徴としている。
本発明によれば、ブラウザの全通信をキャッシュする機能と、キーボード操作などの利用者操作ログを取得する機能を設け、オンライン状態となった際、オフライン中の操作を利用者操作ログから再現しサーバに反映するので、Web アプリケーションの再作成を要求することなく、ブラウザのキャッシュと利用者操作ログを用いてオフライン中の利用者操作をサーバに反映するオフライン機能をWeb アプリケーションに提供することが可能となる。
また、オフライン中の利用者操作をサーバに反映する際に、オフライン中に前記キャッシュがサーバに代わり応答したキャッシュ応答内容と、サーバが実際に応答したサーバ応答内容とを比較し、異なる場合に前記ブラウザ側に前記サーバ応答内容を表示する処理を含むことで、応答内容の相違を利用者に知らせることができる。
応答内容の相違が、Cookie等の一時情報の期限切れに起因する場合、サーバ応答内容が表示された画面において、新たな利用者操作によりサーバより新たな一時情報を取得し、取得した一時情報で、前記利用者操作ログのブラウザからの要求に含まれる一時情報エントリを変更することで、キャッシュ応答内容とサーバ応答内容が異なる状態となった以降についても、前記利用者操作ログを用いてサーバにオフライン中操作の反映を行うことができる。
また、キャッシュされた情報に有効期限がある場合、前記有効期限を解除する解除部を設けることで、オフライン中にはキャッシュされた情報に対して有効期限を過ぎた場合でも応答内容として使用することができる。
本発明のWebアプリケーション高可用化装置の実施形態の一例について、図面を参照しながら説明する。
本発明のWebアプリケーション高可用化装置1は、ネットワークにアクセスするための送受信部と、利用者がキーボード操作を行って入力する入力部と、処理データ等を記憶する主記憶部と、プログラムを格納する記録部と、プログラムに基づいて各種処理を制御する中央演算部と、利用者操作に基づく処理結果を表示する表示領域とを備えたパーソナルコンピュータ(PC)にWebアプリケーションの高可用化を図る高可用化プログラムをインストールすることで構成されている。
本発明のWebアプリケーション高可用化装置1は、ネットワークにアクセスするための送受信部と、利用者がキーボード操作を行って入力する入力部と、処理データ等を記憶する主記憶部と、プログラムを格納する記録部と、プログラムに基づいて各種処理を制御する中央演算部と、利用者操作に基づく処理結果を表示する表示領域とを備えたパーソナルコンピュータ(PC)にWebアプリケーションの高可用化を図る高可用化プログラムをインストールすることで構成されている。
すなわち、本発明のWebアプリケーション高可用化装置1は、Webアプリケーションの再作成を要求することなく、ブラウザのキャッシュと利用者操作ログを用いてWebアプリケーションにオフライン機能を有するようにした装置であり、図1に示すように、利用者の操作によりネットワーク20を介してサーバ30に接続することでPC(利用者端末)内に構築されるブラウザ10と、ブラウザ10の全通信の記録を行うキャッシュ15と、ブラウザ10とサーバ30間の応答を管理する要求応答管理部16と、利用者によるキーボード操作などの利用者操作ログを取得して管理する利用者操作ログ管理DB 17と、オフライン中の利用者操作をブラウザに反映させるオフライン中操作反映部18と、を備えて構成される。
ブラウザ10は、利用者操作により利用者端末にインストールされるもので、ネットワーク20を介してサーバ30のサーバ側処理プログラム31からブラウザ上で実行可能なプログラム(Java(登録商標)Script)等を取得することで構築されている。ブラウザ10の構成内容は、図5のブラウザ10と同じである。
キャッシュ15は、ブラウザ10とサーバ30との間の全通信の記録を行うものである。キャッシュ15には、キャッシュされた情報に有効期限がある場合でも、この有効期限をキャンセルする解除部が設けられている。
要求応答管理部16は、ブラウザ10,キャッシュ15,サーバ側プログラム31に接続され、ブラウザ10とサーバ30間での全ての応答を管理することでオンライン状態かオフライン状態であるかを監視するものである。
要求応答管理部16は、ブラウザ10,キャッシュ15,サーバ側プログラム31に接続され、ブラウザ10とサーバ30間での全ての応答を管理することでオンライン状態かオフライン状態であるかを監視するものである。
利用者操作ログ管理DB17は、ブラウザ10に接続されることで、利用者端末の入力部における利用者のキーボード操作などの利用者操作ログを取得し、これに関する要求内容及び応答内容について時系列に順次管理するものである。すなわち、利用者操作ログ管理DB17は、オフライン状態中の前記ブラウザ10で取得した利用者操作ログと、ブラウザ10からサーバ側処理プログラム31(サーバ30)に対する要求内容と、その要求に対する要求応答管理部16によるキャッシュ15からの応答内容とを保存管理する。
オフライン中操作反映部18は、ブラウザ10,利用者操作ログ管理DB17,サーバ側プログラム31に接続され、オフライン中に利用者操作ログ管理DB17に記録された利用者操作について、オンライン回復後にブラウザ10に反映させるものである。すなわち、オフライン状態中にキャッシュ15に記録された応答に対して、メール編集などの利用者操作ログを取得し、オンライン状態となった際、オフライン中の操作を利用者操作ログから再現し、サーバ30に反映させる。
オフライン中操作反映部18は、ブラウザ10,利用者操作ログ管理DB17,サーバ側プログラム31に接続され、オフライン中に利用者操作ログ管理DB17に記録された利用者操作について、オンライン回復後にブラウザ10に反映させるものである。すなわち、オフライン状態中にキャッシュ15に記録された応答に対して、メール編集などの利用者操作ログを取得し、オンライン状態となった際、オフライン中の操作を利用者操作ログから再現し、サーバ30に反映させる。
次に、本発明のWebアプリケーション高可用化装置の動作について説明する。
利用者がブラウザ10にURLを入力するなど要求があった場合、ブラウザ10はHTTPを使用し、サーバ30よりHTMLで記述されたデータや静止画、Java(登録商標)Script(ブラウザ上で実行可能なプログラム)などを取得する(処理A)
全てのブラウザ10からの要求とサーバ30からの応答は要求応答管理部16を経由する。要求応答管理部16は、自身を介してやり取りされる全ての要求と応答(HTMLファイルに加え、静止画、Java(登録商標)Scriptなども含む)をローカルにキャッシュ15に記録する(処理B)。
利用者がブラウザ10にURLを入力するなど要求があった場合、ブラウザ10はHTTPを使用し、サーバ30よりHTMLで記述されたデータや静止画、Java(登録商標)Script(ブラウザ上で実行可能なプログラム)などを取得する(処理A)
全てのブラウザ10からの要求とサーバ30からの応答は要求応答管理部16を経由する。要求応答管理部16は、自身を介してやり取りされる全ての要求と応答(HTMLファイルに加え、静止画、Java(登録商標)Scriptなども含む)をローカルにキャッシュ15に記録する(処理B)。
オフライン状態において、利用者からの要求があった場合、サーバ30への接続がタイムアウトとなるなど、サーバ応答がブラウザ10に返らない。要求応答管理部16は、タイムアウトの検知などオフライン状態を検知した場合、サーバ30に代わり、ローカルにキャッシュ(キャッシュ15に記録)された以前の応答情報を用いて、ブラウザ10に応答する(処理C)。
従来、キャッシュされた情報には有効期限があり、サーバがHTTPのExpiresヘッダを使用して、この有効期限を指定することが行われている。すなわち、Expiresヘッダで指定された有効期限内であれば、クライアントはローカルにあるキャッシュデータを使用することができるが、有効期限が過ぎた場合にはキャッシュデータの使用ができなくなる。
本装置で用いるキャッシュ15は、オフライン状態におけるサービスの継続利用を利用者に提供することを目的としているので、Expiresヘッダによる指定があった場合でもこれを解除する解除部を設けることで、キャッシュされた情報に対して有効期限を過ぎた場合でも使用できるように設定されている。
本装置で用いるキャッシュ15は、オフライン状態におけるサービスの継続利用を利用者に提供することを目的としているので、Expiresヘッダによる指定があった場合でもこれを解除する解除部を設けることで、キャッシュされた情報に対して有効期限を過ぎた場合でも使用できるように設定されている。
また、ブラウザの中には、オフライン状態(Windows(登録商標)などのOSがネットワークインタフェースのリンクアップを検知していない)の場合、利用者からの要求を送信しない仕様となっているものがある。本装置では、要求応答管理部16をブラウザのアドオン(ブラウザの拡張プログラム)として提供し、OSがネットワークインタフェースのリンクアップを認識しないようなオフライン状態の場合であっても、要求応答管理部16にはあたかもオンライン状態であるかのように要求を送信するように実装する。
ブラウザ10は、キャッシュ15から応答された内容に従い、画面表示する。例えば、メール機能を提供するWebアプリケーションが要求された場合、メーラの起動画面が表示された状態となる。
利用者は、ブラウザ10にHTML等データ11により表示領域12に表示されたHTML画面において、例えば新規メール作成ボタンの押下や、受信したメールを選択する操作を行う(処理D)。利用者操作は、Java(登録商標)Scriptにより処理取得される。また、オフライン状態において取得された利用者操作は、現在画面に表示されている情報(要求と応答)とともに、呼び出された(実行された)順に、利用者操作ログ管理DB17に保存される。利用者操作ログ管理DB17に保存される利用者操作は、どのような画面で利用者がどのような操作を行ったかの関連付けがなされている。
Java(登録商標)Scriptは、利用者操作に基づき、サーバ30にデータ取得を要求する。オフライン中、サーバへのデータ取得要求は要求応答管理部16により取得され、要求に対する応答はキャッシュ15から返される(処理E)。例えば、ある受信メールがブラウザ上で選択された場合、受信メールの本文データを過去に閲覧しキャッシュ(キャッシュ15に記録)された情報から応答する。
Java(登録商標)Scriptは、キャッシュ15より受信したデータを基に、画面の表示を動的に変更する(処理F)。例えば、受信メールが上記処理Dで選択され、処理Eでキャッシュ15より受信メールのデータが応答された場合、選択されたメール本文を読むための画面を表示データとして生成し、表示領域12に書き出す。
オフライン中、要求応答管理部16が定期的にサーバに接続確認を行う等により、オフライン状態からオンライン状態となったことを確認した場合、その旨の信号が、要求応答管理部16よりオフライン中操作反映部18に伝達され(処理G)、オフライン中操作反映部18が利用者操作ログ管理DB17から記憶された利用者操作を読み出す(処理H)。
オフライン中操作反映部18は、利用者操作ログ管理DB17に保存されたオフライン中に実行された利用者からの要求をサーバ30に送信し、サーバ30からの応答(処理I)をオフライン中にキャッシュ15から応答した内容と比較する。キャッシュ15から応答した内容とサーバ30からの応答の内容が同じであれば、サーバ30からの応答に対し利用者操作ログ管理DB17に保存された利用者操作を実行する。
オフライン中操作反映部18は、利用者操作ログ管理DB17に保存されたオフライン中に実行された利用者からの要求をサーバ30に送信し、サーバ30からの応答(処理I)をオフライン中にキャッシュ15から応答した内容と比較する。キャッシュ15から応答した内容とサーバ30からの応答の内容が同じであれば、サーバ30からの応答に対し利用者操作ログ管理DB17に保存された利用者操作を実行する。
サーバ30からの応答とキャッシュ15から応答した内容が異なる場合、利用者に入力を求める(処理J)。この時に行われる処理の詳細については後述する。
次に、要求応答管理部16における処理手順について、図2のフローチャート図を参照しながら説明する。
要求応答管理部16はブラウザ10からの要求送信を待つ(ステップ101)。
ブラウザ10からの要求を受信した場合、要求をサーバ30に送信し、さらに、受信した要求をキャッシュ15に保存する(ステップ102)。
ブラウザ10からの要求には、URLに加えCookieなどの一時情報が含まれる場合がある。すなわち、HTTPは状態管理ができないステートレスなプロトコルであるため、例えば、あるページにログインし、一旦ブラウザ10を閉じた後で再度同じページに接続した場合、ログイン処理がもう一度必要となる。これを回避するため、一時情報を保存する技術としてCookie等を利用する場合がある。Cookieを利用した場合、利用者の識別情報をサーバが応答し、ブラウザがサーバ応答に含まれる一時情報を利用者端末内に保存、ブラウザが要求を送信する際に、要求に一時情報を加えて送信することで、二度目の接続の際、ログイン後の画面を表示するなどの処理が可能となる。
要求応答管理部16はブラウザ10からの要求送信を待つ(ステップ101)。
ブラウザ10からの要求を受信した場合、要求をサーバ30に送信し、さらに、受信した要求をキャッシュ15に保存する(ステップ102)。
ブラウザ10からの要求には、URLに加えCookieなどの一時情報が含まれる場合がある。すなわち、HTTPは状態管理ができないステートレスなプロトコルであるため、例えば、あるページにログインし、一旦ブラウザ10を閉じた後で再度同じページに接続した場合、ログイン処理がもう一度必要となる。これを回避するため、一時情報を保存する技術としてCookie等を利用する場合がある。Cookieを利用した場合、利用者の識別情報をサーバが応答し、ブラウザがサーバ応答に含まれる一時情報を利用者端末内に保存、ブラウザが要求を送信する際に、要求に一時情報を加えて送信することで、二度目の接続の際、ログイン後の画面を表示するなどの処理が可能となる。
サーバ30から応答があった場合(オンライン状態の場合)はステップ108に遷移し、サーバ30からの受信が無い場合(オフライン状態の場合)はステップ104に遷移する(ステップ103)。
オフライン状態の場合、キャッシュ15に要求に対する過去の応答情報がある場合はステップ105に遷移し(ステップ104)、キャッシュ15より応答を返す(ステップ105)。また、キャッシュ15に過去の応答情報が無い場合は、ブラウザ10にエラーを返す(ステップ107)。
オフライン状態の場合、キャッシュ15に要求に対する過去の応答情報がある場合はステップ105に遷移し(ステップ104)、キャッシュ15より応答を返す(ステップ105)。また、キャッシュ15に過去の応答情報が無い場合は、ブラウザ10にエラーを返す(ステップ107)。
キャッシュ15からの応答内容は、利用者操作ログ管理DB17に要求とともに保存する(ステップ106)。
ステップ103においてサーバ30より応答があった場合、利用者操作ログ管理DB17にデータがあるか(オフライン状態となり、キャッシュ15からの応答と利用者操作を保存することがあったか)を確認し、データがある場合はステップ109に遷移し、データがない場合はステップ110に進む(ステップ108)。
オフライン状態からの復旧確認(オンライン状態となったことの確認)と、オフライン中の利用者操作をサーバ30に反映する処理を呼び出す動作は、上述のように、利用者から要求がある度に呼び出しても良いし、下記の手順で実現することもできる。
(1)プログラムが利用者からの要求とは別にネットワークの状態を定期的に確認する。
(2)オフライン状態からオンライン状態となり、オフライン中の利用者操作がある場合、プログラムがオフライン中の利用者操作の反映処理を自動実行する。
(2)´オフライン状態からオンライン状態となり、オフライン中の利用者操作がある場合、利用者にオフライン中の操作をサーバに反映するかを確認するメッセージボックスなどを提示する。
(3)利用者からメッセージボックスなどを通じて、オフライン中の利用者操作のサーバへの反映が指示された場合、プログラムはこれを実行する。
(1)プログラムが利用者からの要求とは別にネットワークの状態を定期的に確認する。
(2)オフライン状態からオンライン状態となり、オフライン中の利用者操作がある場合、プログラムがオフライン中の利用者操作の反映処理を自動実行する。
(2)´オフライン状態からオンライン状態となり、オフライン中の利用者操作がある場合、利用者にオフライン中の操作をサーバに反映するかを確認するメッセージボックスなどを提示する。
(3)利用者からメッセージボックスなどを通じて、オフライン中の利用者操作のサーバへの反映が指示された場合、プログラムはこれを実行する。
オフライン中の利用者操作を反映するためのオフライン中操作反映部18を呼び出す(ステップ109)。オフライン中操作反映部18における処理の詳細は後述する。
サーバ30から受信した応答をブラウザ10に返すとともに、キャッシュ15に保存する(ステップ110)。
サーバ30から受信した応答をブラウザ10に返すとともに、キャッシュ15に保存する(ステップ110)。
続いて、オフライン中操作反映部18における処理手順について、図3を参照しながら説明する。
利用者操作ログ管理DB17に保存された全ての要求・応答(オフライン中に実行された利用者操作)が反映されたかを確認し(ステップ201)、反映されていない場合にはステップ202に遷移し、全て反映した場合には処理を終了する。
利用者操作ログ管理DB17に保存された全ての要求・応答(オフライン中に実行された利用者操作)が反映されたかを確認し(ステップ201)、反映されていない場合にはステップ202に遷移し、全て反映した場合には処理を終了する。
利用者操作ログ管理DB17では、利用者操作ログを取得することで、表1に示すように、「呼び出し順」、サーバ30に対する要求内容に対応する「要求」、キャッシュ15からの応答内容に対応する「応答」、「利用者操作内容」が時系列に記憶されたテーブルで構成されている。「要求」は利用者の操作により接続したURLやCookieのデータ、「応答」はそこで取得した画像やファイルのデータ、「利用者操作内容」はページ中で行ったクリックや文字列の入力等のデータが記憶されている。
利用者操作ログ管理DB17に保存された中から、古い順にエントリ(表1の1行〜)を読み出す(ステップ202)。また、読み出されたエントリは利用者管理DB17から削除される。
利用者操作ログ管理DB17に保存された中から、古い順にエントリ(表1の1行〜)を読み出す(ステップ202)。また、読み出されたエントリは利用者管理DB17から削除される。
読み出したエントリに含まれる要求をサーバ30に送信する(ステップ203)。
サーバ30からの応答と、読み出したエントリに含まれる応答内容(オフライン中にシステムが判断し、利用者に応答した内容)を比較し、同じ内容か否かを判断する。サーバ応答と読み出したエントリ中の応答内容が異なる場合はステップ205に遷移する。内容が同じ場合はステップ206に遷移する(ステップ204)。
サーバ30からの応答と、読み出したエントリに含まれる応答内容(オフライン中にシステムが判断し、利用者に応答した内容)を比較し、同じ内容か否かを判断する。サーバ応答と読み出したエントリ中の応答内容が異なる場合はステップ205に遷移する。内容が同じ場合はステップ206に遷移する(ステップ204)。
ステップ204において、サーバ応答と読み出したエントリ中の応答内容が異なる場合、サーバ30からの実際の応答をブラウザ10に渡し、利用者に提示する(ステップ205)。利用者は、提示された画面を操作する。
ステップ204において、サーバ応答と読み出したエントリ中の応答内容が同じ場合、読み出したエントリ有の利用者操作をオンライン中操作反映部18が実行する(ステップ206)。実行後、ステップ201に遷移する。このような利用者操作の実行により、新たなサーバへの要求が送信される場合には、次のステップ203の処理は(一つ前のステップ206の実行の結果要求がサーバに送信されるため)スキップされる。
オフライン中操作反映部18における利用者による操作、利用者端末(クライアント)、サーバ間での処理例について、図4(a)の利用者操作ログ管理DBに保存されたHTML表示例、及び、図4(b)のシーケンス図を用いて詳説する。
利用者操作ログ管理DB17に保存されたHTML表示例が図4(a)に示されるように、利用者操作により画面A、B、Cのように推移したものとする。
利用者操作ログ管理DB17に保存されたHTML表示例が図4(a)に示されるように、利用者操作により画面A、B、Cのように推移したものとする。
利用者が利用者端末に対して利用者操作の反映要求(T1)行うと、利用者端末はサーバ30に対して利用者操作ログ管理DB17に基づくHttp要求(T2)を送信する。サーバ30では、受信した要求に対してHttp応答(T3)する。
利用者端末では、サーバ30より受信した応答内容と利用者操作ログ管理DB17の内容(オフライン中の応答)を比較する(T4)。
応答内容と利用者操作ログ管理DB17の内容が同じである場合、応答内容(画面A)において、利用者操作ログ管理DB17に基づいてオフライン中に実行された利用者操作をオフライン操作反映部18が実行する(例えば、画面Aにおける文字入力やボタン押下)。
利用者端末では、サーバ30より受信した応答内容と利用者操作ログ管理DB17の内容(オフライン中の応答)を比較する(T4)。
応答内容と利用者操作ログ管理DB17の内容が同じである場合、応答内容(画面A)において、利用者操作ログ管理DB17に基づいてオフライン中に実行された利用者操作をオフライン操作反映部18が実行する(例えば、画面Aにおける文字入力やボタン押下)。
応答内容(画面A)における文字入力やボタン押下が、例えばログインボタンの押下であった場合、Http要求(T5)により、サーバに対してCookie等の一時情報(以前にサーバにログインした際にサーバより取得したCookie)を含む要求が送信される。この時、例えばオフライン中にCookieの期限切れとなっていた場合、(Cookieが有効期限内であればログイン済みの画面を応答するが、Cookieが期限切れとなっていたために)ログインIDとパスワードの入力を求める画面A´をHttp応答(T6)する(この際、例えば図4(a)の利用者操作ログ管理DBに保存された画面Bは、ログイン済みの画面であったとする)。
利用者端末では、応答内容(画面A´)と利用者操作ログ管理DB17の内容(ログイン済みの画面B)を比較する(T7)。
この場合、応答内容と利用者操作ログ管理DB17の内容が異なるので、利用者に対して画面が異なる旨をプレビュー表示(T8)し、利用者は画面A´において、ログインID及びパスワードを入力する操作(T9)することで、操作を反映して次のステップへ進む(T10)。
この場合、応答内容と利用者操作ログ管理DB17の内容が異なるので、利用者に対して画面が異なる旨をプレビュー表示(T8)し、利用者は画面A´において、ログインID及びパスワードを入力する操作(T9)することで、操作を反映して次のステップへ進む(T10)。
利用者端末はサーバ30に対して利用者のプレビューに対する操作(T9)に基づくHttp要求(T11)を送信する。Http要求(T11)以降のHttp要求では、(T6)でサーバより取得した新しいCookieが含まれる場合がある。サーバは要求に対するHttp応答を返す(T12)((T9)により利用者が入力したログインIDとパスワードがサーバに登録されたログインIDとパスワードの場合、ログイン済みの画面Bを応答する)。
利用者端末では、応答内容(画面B)と利用者操作ログ管理DBの内容を比較する(T13)。
応答内容と利用者操作ログ管理DBの内容が同じであるので、応答内容(画面B)において、利用者操作ログ管理DBに基づいてオフライン中に実行された利用者操作(例えば、「画面Bにおける文字入力」「画面Cにおける文字入力」)をオンライン操作反映部が順次実行する。
応答内容と利用者操作ログ管理DBの内容が同じであるので、応答内容(画面B)において、利用者操作ログ管理DBに基づいてオフライン中に実行された利用者操作(例えば、「画面Bにおける文字入力」「画面Cにおける文字入力」)をオンライン操作反映部が順次実行する。
上述したWebアプリケーション高可用化装置において、非特許文献1など、Webアプリケーションの再作成を要求する従来技術と排他制御を行うことができる。具体的には、要求応答管理部が、サーバからの応答内容の中身を確認し、サーバからの応答が非特許文献1で規定されたAPIを用いたHttpファイルやJava(登録商標)Scriptであり、かつ非特許文献1が提供するAPIが利用者端末にインストール済みである場合に、これらの応答を返すサーバに対しては、上述したWebアプリケーション高可用化装置の各機能を無効化する。
上述した例では、利用者端末としてPCを使用したが、携帯型の端末であってもよい。
1…Webアプリケーション高可用化装置、 10…ブラウザ、 11…HTML等データ、 12…表示領域、 15…キャッシュ、 16…要求応答管理部、 17…利用者操作ログ管理DB、 18…オフライン中操作反映部、20…ネットワーク、 30…サーバ、 31…サーバ側処理プログラム。
Claims (5)
- ブラウザとサーバ間における利用者操作による送受信内容が中継された際に、前記送受信内容をローカルに保存するキャッシュを備えたWebアプリケーション装置において、
前記ブラウザとサーバ間における全ての要求・応答を管理してオンライン状態とオフライン状態を判断し、オフライン状態中にはサーバに代わり前記キャッシュから応答する要求応答管理部と、
オフライン状態中の前記ブラウザで取得した利用者操作ログと、前記ブラウザからサーバに対する要求内容と、その要求に対する前記要求応答管理部によるキャッシュからの応答内容とを保存管理する利用者操作ログ管理データベースと、
前記要求応答管理部がオフライン状態からオンライン状態となったことを検知し前記利用者操作ログ管理データベースで管理されたオフライン状態中の利用者操作ログから利用者操作を再現しサーバに反映するオフライン中操作反映部と
を具備するWebアプリケーション高可用化装置。 - 前記オフライン中操作反映部は、オフライン中の利用者操作をサーバに反映する際に、オフライン中に前記要求応答管理部がサーバに代わりキャッシュから応答した内容と、サーバが実際に応答したサーバ応答内容とを比較し、異なる場合に前記ブラウザ側に前記サーバ応答内容を表示する処理を含む請求項1に記載のWebアプリケーション高可用化装置。
- オフライン中にCookie等の一時情報が期限切れとなったために、オフライン中に前記要求応答管理部がサーバに代わり応答した内容と、サーバが実際に応答したサーバ応答内容とが異なり、前記ブラウザ側に表示した前記サーバ応答内容に対し、利用者等が操作することで一時情報がサーバにより更新された場合、前記利用者操作ログ管理データベース内の、前記ブラウザからサーバに対する要求内容に含まれる一時情報を、更新後の新たな一時情報に変更する処理を含む請求項2に記載のWebアプリケーション高可用化装置。
- 前記キャッシュは、キャッシュする情報に有効期限の指定がある場合、前記有効期限を解除する解除部を設けた請求項1に記載のWebアプリケーション高可用化装置。
- ブラウザとサーバ間における利用者操作による送受信内容を中継した際に、前記送受信内容をローカルに保存するキャッシュを備えたWebアプリケーション装置において、
前記ブラウザとサーバ間における全ての要求・応答を要求応答管理部で管理してオンライン状態とオフライン状態を判断するとともに、オフライン中にはサーバに代わりキャッシュより応答し、オフライン中の前記ブラウザでの利用者操作ログをブラウザからの要求内容とキャッシュからの応答内容とともに利用者操作ログ管理データベースで保存管理する利用者操作ログ管理手順と、
前記要求応答管理部がオフライン状態からオンライン状態を検知した場合に、前記利用者操作ログ管理データベースで管理されたオフライン状態中の利用者操作ログからオンライン状態となった際に利用者操作を再現しサーバに反映させるオフライン中操作反映手順を含むことを特徴とするWebアプリケーション高可用化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010024120A JP2011164749A (ja) | 2010-02-05 | 2010-02-05 | Webアプリケーション高可用化装置及びWebアプリケーション高可用化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010024120A JP2011164749A (ja) | 2010-02-05 | 2010-02-05 | Webアプリケーション高可用化装置及びWebアプリケーション高可用化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011164749A true JP2011164749A (ja) | 2011-08-25 |
Family
ID=44595390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010024120A Pending JP2011164749A (ja) | 2010-02-05 | 2010-02-05 | Webアプリケーション高可用化装置及びWebアプリケーション高可用化方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011164749A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015531952A (ja) * | 2012-09-20 | 2015-11-05 | テンセント テクノロジー (シェンジェン) カンパニー リミテッド | オフラインキャッシングの方法及び装置 |
JP2016537697A (ja) * | 2013-09-21 | 2016-12-01 | オラクル・インターナショナル・コーポレイション | オフライン可能なモデルグラフを定義するための方法およびシステム |
JP2018523179A (ja) * | 2015-08-14 | 2018-08-16 | グーグル エルエルシー | コンテンツを取得する際における、ユーザの興味レベルに基づくコンテンツアイテムの表示 |
EP3910483A1 (en) | 2020-03-25 | 2021-11-17 | Casio Computer Co., Ltd. | Cache management method, cache management system, and information processing apparatus |
-
2010
- 2010-02-05 JP JP2010024120A patent/JP2011164749A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015531952A (ja) * | 2012-09-20 | 2015-11-05 | テンセント テクノロジー (シェンジェン) カンパニー リミテッド | オフラインキャッシングの方法及び装置 |
JP2016537697A (ja) * | 2013-09-21 | 2016-12-01 | オラクル・インターナショナル・コーポレイション | オフライン可能なモデルグラフを定義するための方法およびシステム |
US10911592B2 (en) | 2013-09-21 | 2021-02-02 | Oracle International Corporation | Method and system for defining an offlinable model graph |
JP2018523179A (ja) * | 2015-08-14 | 2018-08-16 | グーグル エルエルシー | コンテンツを取得する際における、ユーザの興味レベルに基づくコンテンツアイテムの表示 |
US10846743B2 (en) | 2015-08-14 | 2020-11-24 | Google Llc | Displaying content items based on user's level of interest in obtaining content |
EP3910483A1 (en) | 2020-03-25 | 2021-11-17 | Casio Computer Co., Ltd. | Cache management method, cache management system, and information processing apparatus |
US11467958B2 (en) | 2020-03-25 | 2022-10-11 | Casio Computer Co., Ltd. | Cache management method, cache management system, and information processing apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI384378B (zh) | 網頁應用程式執行方法 | |
JP4698756B2 (ja) | ウェブベースアプリケーションのオフライン実行 | |
JP5022301B2 (ja) | プロキシサーバおよび通信中継プログラム、並びに通信中継方法 | |
EP2736281B1 (en) | Method and system for information transfer, and browser of mobile terminal | |
JP4286789B2 (ja) | 同期プログラム | |
US20150067031A1 (en) | Business transaction correlation with client request monitoring data | |
US20100082747A1 (en) | Real-time collaborative browsing | |
JP5476326B2 (ja) | ウェブ操作記録・再現方法および装置 | |
WO2014034001A1 (ja) | Webコンテンツ先読み制御装置、Webコンテンツ先読み制御プログラム、及びWebコンテンツ先読み制御方法 | |
JP2002334033A (ja) | 情報配信方法、システム、装置、及びプログラム、並びに記録媒体 | |
JP2011164749A (ja) | Webアプリケーション高可用化装置及びWebアプリケーション高可用化方法 | |
JP4186164B2 (ja) | Web共有システム、Web共有方法、Web共有プログラム、中継サーバ、及びWWWブラウザ表示装置 | |
JP6482204B2 (ja) | 情報処理端末、その制御方法及びプログラム | |
JP2009064115A (ja) | 携帯端末装置とサーバ装置との間のファイル同期 | |
JP2009187466A (ja) | プロキシシステム及び中継方法 | |
US9619577B2 (en) | Reproducing a graphical user interface display | |
JP4847397B2 (ja) | 逐次保存型Webアプリケーションシステム | |
JP4805199B2 (ja) | シナリオ作成プログラム及びシナリオ作成装置 | |
JP2007079988A (ja) | Wwwブラウザ、htmlページ共有システムおよびhtmlページ共有方法 | |
JP5251753B2 (ja) | 端末、リクエスト送信方法、およびプログラム | |
JP2012181622A (ja) | 情報処理サーバ、情報処理方法、情報処理システム、プログラム、記録媒体 | |
KR100706839B1 (ko) | 서버의 애플리케이션 프로그램 정보 전달 방법 및 그 시스템 | |
JP2015031977A (ja) | データ表示システム及びデータ表示方法 | |
JP2011175413A (ja) | ウェブ画面復元装置及びウェブ画面復元方法及びウェブ画面復元プログラム | |
JPWO2009001895A1 (ja) | ブラウザの制御方法、プログラム、コンピュータ使用可能な記録媒体、クライアント装置、およびネットワークシステム |