(57)【要約】【課題】オフライン機能を提供するに際し、Webアプリケーションの再作成を不要としたWebアプリケーション高可用化装置を得る。【解決手段】ブラウザとサーバ間における利用者操作による送受信内容を保存するキャッシュ１５を備えたWebアプリケーション装置において、前記ブラウザ１０とサーバ間の要求・応答を管理してオンライン状態とオフライン状態を判断しオフライン状態中にはサーバに代わり前記キャッシュから応答する要求応答管理部１６と、オフライン状態中の前記ブラウザで取得した利用者操作ログと前記ブラウザからサーバに対する要求内容とその要求に対する前記要求応答管理部によるキャッシュからの応答内容とを保存管理する利用者操作ログ管理DB１７と、前記要求応答管理部がオフライン状態からオンライン状態となったことを検知し前記利用者操作ログから利用者操作を再現しサーバに反映するオフライン中操作反映部１８とを備える。【選択図】図１
2011164749.tif 000002
【特許請求の範囲】
【請求項１】
ブラウザとサーバ間における利用者操作による送受信内容が中継された際に、前記送受信内容をローカルに保存するキャッシュを備えたWebアプリケーション装置において、
前記ブラウザとサーバ間における全ての要求・応答を管理してオンライン状態とオフライン状態を判断し、オフライン状態中にはサーバに代わり前記キャッシュから応答する要求応答管理部と、
オフライン状態中の前記ブラウザで取得した利用者操作ログと、前記ブラウザからサーバに対する要求内容と、その要求に対する前記要求応答管理部によるキャッシュからの応答内容とを保存管理する利用者操作ログ管理データベースと、
前記要求応答管理部がオフライン状態からオンライン状態となったことを検知し前記利用者操作ログ管理データベースで管理されたオフライン状態中の利用者操作ログから利用者操作を再現しサーバに反映するオフライン中操作反映部と
を具備するWebアプリケーション高可用化装置。
【請求項２】
前記オフライン中操作反映部は、オフライン中の利用者操作をサーバに反映する際に、オフライン中に前記要求応答管理部がサーバに代わりキャッシュから応答した内容と、サーバが実際に応答したサーバ応答内容とを比較し、異なる場合に前記ブラウザ側に前記サーバ応答内容を表示する処理を含む請求項１に記載のWebアプリケーション高可用化装置。
【請求項３】
オフライン中にCookie等の一時情報が期限切れとなったために、オフライン中に前記要求応答管理部がサーバに代わり応答した内容と、サーバが実際に応答したサーバ応答内容とが異なり、前記ブラウザ側に表示した前記サーバ応答内容に対し、利用者等が操作することで一時情報がサーバにより更新された場合、前記利用者操作ログ管理データベース内の、前記ブラウザからサーバに対する要求内容に含まれる一時情報を、更新後の新たな一時情報に変更する処理を含む請求項２に記載のWebアプリケーション高可用化装置。
【請求項４】
前記キャッシュは、キャッシュする情報に有効期限の指定がある場合、前記有効期限を解除する解除部を設けた請求項１に記載のWebアプリケーション高可用化装置。
【請求項５】
ブラウザとサーバ間における利用者操作による送受信内容を中継した際に、前記送受信内容をローカルに保存するキャッシュを備えたWebアプリケーション装置において、
前記ブラウザとサーバ間における全ての要求・応答を要求応答管理部で管理してオンライン状態とオフライン状態を判断するとともに、オフライン中にはサーバに代わりキャッシュより応答し、オフライン中の前記ブラウザでの利用者操作ログをブラウザからの要求内容とキャッシュからの応答内容とともに利用者操作ログ管理データベースで保存管理する利用者操作ログ管理手順と、
前記要求応答管理部がオフライン状態からオンライン状態を検知した場合に、前記利用者操作ログ管理データベースで管理されたオフライン状態中の利用者操作ログからオンライン状態となった際に利用者操作を再現しサーバに反映させるオフライン中操作反映手順を含むことを特徴とするWebアプリケーション高可用化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Webアプリケーションの利用環境において、ネットワーク接続が異常となった場合であっても、Webアプリケーションの利用を可能とするWebアプリケーション高可用化装置及びWebアプリケーション高可用化方法に関する。
【背景技術】
【０００２】
近年、その利便性からブラウザのみで利用者にメール機能や表計算機能、文書作成機能などを提供するWebアプリケーションが急速に普及しつつある。このWebアプリケーションは、パーソナルコンピュータ（PC）や携帯電話（以下、利用者端末と呼ぶ）にインストールされたブラウザのみで、利用者端末にプログラムをインストールすることなく、メールや表計算、文書作成などのアプリケーションを利用者に提供する実行環境を備えている。そして、Webアプリケーションの多くは、その動作にネットワーク接続を要求するため、一度ネットワーク接続が異常となるとその利用に影響があるという課題がある。
【０００３】
Webアプリケーションは、図５に示すように、利用者端末（クライアント）にインストールされたブラウザ１０に対してネットワーク２０を介してサーバ３０が接続されることで構築されている。Webアプリケーションの動作について、Ajaxと呼ばれるWebアプリケーションを実現するための典型的な手段を用いた場合を例に説明する。
【０００４】
利用者がブラウザ１０にURLを入力する等をした場合、ブラウザ１０はサーバ３０に、HTTP(Hypertext Transfer Protocol)またはHTTPS(Hypertext Transfer Protocol over Secure Socket Layer)を使用し（以下、HTTPとHTTPSを区別せずに、単にHTTPと呼ぶ）、HTML(Hypertext Markup Language)で記述されたデータや静止画(jpgなどのイメージファイル)、Java(登録商標)Script(ブラウザ上で実行可能なプログラム)などを要求する。サーバ側処理プログラム３１は、ブラウザ１０からの要求に従い応答する（処理Ｏ）。ブラウザ１０は、サーバ側処理プログラム３１から取得したサーバ応答に従い、HTML等データ１１を、表示領域１２に表示する。例えば、メール機能を提供する場合、メーラの起動画面が表示された状態となる。
【０００５】
利用者は、ブラウザ１０のHTML等データ１１により表示領域１２に表示された画面において、例えば新規メール作成ボタンの押下や、受信したメールを選択する操作を行う。利用者操作は、Java(登録商標)Script(プログラム)により処理取得される（処理Ｐ）。
【０００６】
Java(登録商標)Script(プログラム)は、利用者操作に基づき、サーバ３０のサーバ側プログラム３１にデータ取得を要求する（処理Ｑ）。例えば、ある受信メールがブラウザ上で選択された場合、受信メールの本文データをJava(登録商標)Script(プログラム)が要求し、サーバ側プロラム３１が受信メールのデータを応答する。
【０００７】
Java(登録商標)Script(プログラム)は、サーバ３０側より受信したデータを基に、表示データを組立て、Dynamic HTML等により、表示領域１２の表示内容を動的に変更する（処理Ｒ）。例えば、(非Webアプリケーションの)メーラで受信メールを選択し、選択されたメール本文を読んでいる画面を表示データとして組立て、表示領域１２に書き出す。ここでは表示領域１２のみの変更を行い、Java(登録商標)Scriptを含むHTML全体の再読み込みはしない(従来のHTMLとAjax等を用いたWebアプリケーションの違い)。
【０００８】
上述のWebアプリケーションにおいて、ブラウザ１０とサーバ３０との間のネットワーク２０の遮断等、ネットワーク接続に異常が生じた場合、図５の処理Ｏ及び処理Ｑにおけるサーバ側処理プログラム３１との通信断が発生するため、Webアプリケーションの利用に影響がある。
【０００９】
このような課題に対処するため、Webアプリケーションのクライアント側実行環境であるブラウザを機能拡張し、ネットワーク接続が異常な場合にもサービス提供する技術が特許文献１、非特許文献１及び非特許文献２に提案されている（以降、ネットワーク接続が異常となり、クライアントからサーバに接続できない状態をオフライン状態と呼び、オフライン状態でもサービス提供する技術や機能をオフライン技術又はオフライン機能と呼ぶ。さらに、ネットワーク接続に異常がない(正常な)状態をオンライン状態と呼ぶ）。なお、ブラウザの機能拡張には、プラグインと呼ばれるブラウザ拡張のためのプログラムモジュールが用いられる場合が多い。
【００１０】
例えば、特許文献１では、クライアント端末にローカルプロキシとアプリケーションファイル保存データDBを新たに追加する技術が提案されている。ローカルプロキシの自動巡回プログラムは、サーバのアプリケーション管理DBに登録されたアプリケーションを自動的にダウンロードし、アプリケーションファイル保存DBに保存する（特許文献１の図２参照）。この処理は、図５におけるJava(登録商標)ScriptやHTMLファイル等のサーバへの要求を、オンライン中に自動巡回プログラムが実行し、サーバ応答をクライアントローカルに事前に保存することに相当する。
【００１１】
そして、オフライン状態において、利用者がブラウザを介してWebアプリケーションの実行を要求する場合、アプリケーションファイル保存DBより応答することで、オフライン機能を実現することができる。オフライン中の利用者による文字入力などの利用者操作は、アプリケーション自身によりクライアントローカルに保存する。クライアントローカルの保存先には、サーバがWebブラウザを通じてクライアントに一時的にデータを書き込み保存するCookieファイルなどがある。Cookieの典型的な利用方法としては、クライアントが最後にサーバに接続した日時や、サーバへの接続回数の保存、利用者の識別情報の書込みがある。
【００１２】
また、非特許文献１及び非特許文献２では、クライアントのブラウザにローカルサーバ機能と、ローカルデータベース機能、更にこれらをJava(登録商標)Scriptから操作するためのAPI（Application Program Interface）を追加する技術が提案されている。ローカルサーバ機能は、ネットワークが正常な際(オンライン状態)の利用者のサーバに対する要求とその応答を保存するキャッシュと、オフライン状態においてキャッシュに保存された以前の応答を使用し利用者の要求に応答する機能を有する。ローカルデータベース機能は、オフライン中の利用者操作を保存し、オンライン状態となった場合には、サーバにオフライン中の利用者操作を反映する機能を有する。上述の追加したAPIを使用したWebアプリケーションは、ローカルサーバ機能とローカルデータベース機能の利用が可能となり、オフライン中であっても利用者にWebアプリケーションサービスの提供が可能となる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００１−５１８３９号公報
【非特許文献】
【００１４】
【非特許文献１】Google Gears http://gears.google.com/
【非特許文献２】Google Gears スタートガイド, 白石俊平著，技術評論社，
【発明の概要】
【発明が解決しようとする課題】
【００１５】
上述した特許文献１、非特許文献１及び非特許文献２に記載の技術においては、オフライン機能を利用者に提供するため、Webアプリケーション(Java(登録商標)Script)を再作成する必要がある。
例えば、特許文献１の場合、オフライン中の利用者操作をWebアプリケーションが判断し(又はオンライン中の全ての処理を含め)クライアントローカルに保存するように変更（再作成）する必要がある。
【００１６】
また、非特許文献１及び非特許文献２の場合、新たに追加されるAPIを使用するプログラムコードにWebアプリケーションを作り変える（再作成する）必要がある。
【００１７】
すなわち、これらの技術では、Webアプリケーションがオフライン状態であることを判断し、オフライン中の利用者操作をWebアプリケーションが利用者端末内(クライアントローカル)に書き込んでおき、オンライン状態に回復した場合にWebアプリケーションが書き込んでおいた利用者操作をサーバに反映させる。
一方、既存のWebアプリケーションにおいては、オフライン状態であることを判断し、オフライン中の利用者操作をクライアントローカルに保存する機能（保存機能）と、オンライン状態に回復した場合に利用者操作をサーバに反映する機能(反映機能)は有していないので、上述した技術によりオフライン技術を実現するためには、上述した保存機能と反映機能を有するWebアプリケーションに、既存のWebアプリケーションを再作成する必要がある。しかしながら、既に多くのWebアプリケーションが普及している状況から、全てのWebアプリケーションの全てを再作成することは経済的な観点から難しいという課題がある。
【００１８】
本発明は上記事情に鑑みて提案されたもので、Webアプリケーションの再作成を要求することなく、Webアプリケーションにオフライン機能を提供することができるWebアプリケーション高可用化装置、及び、Webアプリケーション高可用化方法を提供することを目的としている。
【課題を解決するための手段】
【００１９】
上記目的を達成するため本発明は、Webアプリケーションの再作成を要求することなく、ブラウザのキャッシュと利用者操作ログを用いて、Webアプリケーションにオフライン機能を有するようにした装置及び方法である。
具体的には、ブラウザの全通信をキャッシュする機能と、キーボード操作などの利用者操作ログを取得する機能をクライアントに新たに追加する。追加する機能は、オフライン状態中、キャッシュによる応答と、メール編集などの利用者操作ログを取得し、オンライ状態となった際、オフライン中の操作を利用者操作ログから再現し、サーバに反映させるようにする。
【００２０】
すなわち、請求項１は、ブラウザとサーバ間における利用者操作による送受信内容が中継された際に、前記送受信内容をローカルに保存するキャッシュを備えたWebアプリケーション装置において、
前記ブラウザとサーバ間における全ての要求・応答を管理してオンライン状態とオフライン状態を判断し、オフライン状態中にはサーバに代わり前記キャッシュから応答する要求応答管理部と、
オフライン状態中の前記ブラウザで取得した利用者操作ログと、前記ブラウザからサーバに対する要求内容と、その要求に対する前記要求応答管理部によるキャッシュからの応答内容とを保存管理する利用者操作ログ管理データベースと、
前記要求応答管理部がオフライン状態からオンライン状態となったことを検知し前記利用者操作ログ管理データベースで管理されたオフライン状態中の利用者操作ログから利用者操作を再現しサーバに反映するオフライン中操作反映部とを具備することを特徴としている。
【００２１】
請求項２は、請求項１のWebアプリケーション高可用化装置において、前記オフライン中操作反映部は、オフライン中の利用者操作をサーバに反映する際に、オフライン中に前記要求応答管理部がサーバに代わりキャッシュから応答した内容と、サーバが実際に応答したサーバ応答内容とを比較し、異なる場合に前記ブラウザ側に前記サーバ応答内容を表示する処理を含むことを特徴としている。
【００２２】
請求項３は、請求項２のWebアプリケーション高可用化装置において、オフライン中にCookie等の一時情報が期限切れとなったために、オフライン中に前記要求応答管理部がサーバに代わり応答した内容と、サーバが実際に応答したサーバ応答内容とが異なり、前記ブラウザ側に表示した前記サーバ応答内容に対し、利用者等が操作することで一時情報がサーバにより更新された場合、前記利用者操作ログ管理データベース内の、前記ブラウザからサーバに対する要求内容に含まれる一時情報を、更新後の新たな一時情報に変更する処理を含むことを特徴としている。
【００２３】
請求項４は、請求項１のWebアプリケーション高可用化装置において、前記キャッシュは、キャッシュする情報に有効期限の指定がある場合、前記有効期限を解除する解除部を設けたことを特徴としている。
【００２４】
請求項５のWebアプリケーション高可用化方法は、ブラウザとサーバ間における利用者操作による送受信内容を中継した際に、前記送受信内容をローカルに保存するキャッシュを備えたWebアプリケーション装置において、
前記ブラウザとサーバ間における全ての要求・応答を要求応答管理部で管理してオンライン状態とオフライン状態を判断するとともに、オフライン中にはサーバに代わりキャッシュより応答し、オフライン中の前記ブラウザでの利用者操作ログをブラウザからの要求内容とキャッシュからの応答内容とともに利用者操作ログ管理データベースで保存管理する利用者操作ログ管理手順と、
前記要求応答管理部がオフライン状態からオンライン状態を検知した場合に、前記利用者操作ログ管理データベースで管理されたオフライン状態中の利用者操作ログからオンライン状態となった際に利用者操作を再現しサーバに反映させるオフライン中操作反映手順を含むことを特徴としている。
【発明の効果】
【００２５】
本発明によれば、ブラウザの全通信をキャッシュする機能と、キーボード操作などの利用者操作ログを取得する機能を設け、オンライン状態となった際、オフライン中の操作を利用者操作ログから再現しサーバに反映するので、Web アプリケーションの再作成を要求することなく、ブラウザのキャッシュと利用者操作ログを用いてオフライン中の利用者操作をサーバに反映するオフライン機能をWeb アプリケーションに提供することが可能となる。
【００２６】
また、オフライン中の利用者操作をサーバに反映する際に、オフライン中に前記キャッシュがサーバに代わり応答したキャッシュ応答内容と、サーバが実際に応答したサーバ応答内容とを比較し、異なる場合に前記ブラウザ側に前記サーバ応答内容を表示する処理を含むことで、応答内容の相違を利用者に知らせることができる。
【００２７】
応答内容の相違が、Cookie等の一時情報の期限切れに起因する場合、サーバ応答内容が表示された画面において、新たな利用者操作によりサーバより新たな一時情報を取得し、取得した一時情報で、前記利用者操作ログのブラウザからの要求に含まれる一時情報エントリを変更することで、キャッシュ応答内容とサーバ応答内容が異なる状態となった以降についても、前記利用者操作ログを用いてサーバにオフライン中操作の反映を行うことができる。
【００２８】
また、キャッシュされた情報に有効期限がある場合、前記有効期限を解除する解除部を設けることで、オフライン中にはキャッシュされた情報に対して有効期限を過ぎた場合でも応答内容として使用することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明のWebアプリケーション高可用化装置の実施の形態一例を示すブロック図である。
【図２】本発明のWebアプリケーション高可用化装置の要求応答管理部における処理手順を示すフローチャート図である。
【図３】本発明のWebアプリケーション高可用化装置のオフライン中操作反映部における処理手順を示すフローチャート図である。
【図４】本発明のWebアプリケーション高可用化装置のオフライン中操作反映部における処理例を示すもので、（ａ）は利用者操作ログ管理DBに保存されたHTML表示例の説明図あり、（ｂ）は処理の流れを示すシーケンス図である。
【図５】従来のWebアプリケーションを提供する装置のブロック図である。
【発明を実施するための形態】
【００３０】
本発明のWebアプリケーション高可用化装置の実施形態の一例について、図面を参照しながら説明する。
本発明のWebアプリケーション高可用化装置１は、ネットワークにアクセスするための送受信部と、利用者がキーボード操作を行って入力する入力部と、処理データ等を記憶する主記憶部と、プログラムを格納する記録部と、プログラムに基づいて各種処理を制御する中央演算部と、利用者操作に基づく処理結果を表示する表示領域とを備えたパーソナルコンピュータ（PC）にWebアプリケーションの高可用化を図る高可用化プログラムをインストールすることで構成されている。
【００３１】
すなわち、本発明のWebアプリケーション高可用化装置１は、Webアプリケーションの再作成を要求することなく、ブラウザのキャッシュと利用者操作ログを用いてWebアプリケーションにオフライン機能を有するようにした装置であり、図１に示すように、利用者の操作によりネットワーク２０を介してサーバ３０に接続することでPC（利用者端末）内に構築されるブラウザ１０と、ブラウザ１０の全通信の記録を行うキャッシュ１５と、ブラウザ１０とサーバ３０間の応答を管理する要求応答管理部１６と、利用者によるキーボード操作などの利用者操作ログを取得して管理する利用者操作ログ管理DB １７と、オフライン中の利用者操作をブラウザに反映させるオフライン中操作反映部１８と、を備えて構成される。
【００３２】
ブラウザ１０は、利用者操作により利用者端末にインストールされるもので、ネットワーク２０を介してサーバ３０のサーバ側処理プログラム３１からブラウザ上で実行可能なプログラム（Java(登録商標)Script）等を取得することで構築されている。ブラウザ１０の構成内容は、図５のブラウザ１０と同じである。
【００３３】
キャッシュ１５は、ブラウザ１０とサーバ３０との間の全通信の記録を行うものである。キャッシュ１５には、キャッシュされた情報に有効期限がある場合でも、この有効期限をキャンセルする解除部が設けられている。
要求応答管理部１６は、ブラウザ１０，キャッシュ１５，サーバ側プログラム３１に接続され、ブラウザ１０とサーバ３０間での全ての応答を管理することでオンライン状態かオフライン状態であるかを監視するものである。
【００３４】
利用者操作ログ管理DB１７は、ブラウザ１０に接続されることで、利用者端末の入力部における利用者のキーボード操作などの利用者操作ログを取得し、これに関する要求内容及び応答内容について時系列に順次管理するものである。すなわち、利用者操作ログ管理DB１７は、オフライン状態中の前記ブラウザ１０で取得した利用者操作ログと、ブラウザ１０からサーバ側処理プログラム３１（サーバ３０）に対する要求内容と、その要求に対する要求応答管理部１６によるキャッシュ１５からの応答内容とを保存管理する。
オフライン中操作反映部１８は、ブラウザ１０，利用者操作ログ管理DB１７，サーバ側プログラム３１に接続され、オフライン中に利用者操作ログ管理DB１７に記録された利用者操作について、オンライン回復後にブラウザ１０に反映させるものである。すなわち、オフライン状態中にキャッシュ１５に記録された応答に対して、メール編集などの利用者操作ログを取得し、オンライン状態となった際、オフライン中の操作を利用者操作ログから再現し、サーバ３０に反映させる。
【００３５】
次に、本発明のWebアプリケーション高可用化装置の動作について説明する。
利用者がブラウザ１０にURLを入力するなど要求があった場合、ブラウザ１０はHTTPを使用し、サーバ３０よりHTMLで記述されたデータや静止画、Java(登録商標)Script(ブラウザ上で実行可能なプログラム)などを取得する（処理Ａ）
全てのブラウザ１０からの要求とサーバ３０からの応答は要求応答管理部１６を経由する。要求応答管理部１６は、自身を介してやり取りされる全ての要求と応答（HTMLファイルに加え、静止画、Java(登録商標)Scriptなども含む）をローカルにキャッシュ１５に記録する（処理Ｂ）。
【００３６】
オフライン状態において、利用者からの要求があった場合、サーバ３０への接続がタイムアウトとなるなど、サーバ応答がブラウザ１０に返らない。要求応答管理部１６は、タイムアウトの検知などオフライン状態を検知した場合、サーバ３０に代わり、ローカルにキャッシュ（キャッシュ１５に記録）された以前の応答情報を用いて、ブラウザ１０に応答する（処理Ｃ）。
【００３７】
従来、キャッシュされた情報には有効期限があり、サーバがHTTPのExpiresヘッダを使用して、この有効期限を指定することが行われている。すなわち、Expiresヘッダで指定された有効期限内であれば、クライアントはローカルにあるキャッシュデータを使用することができるが、有効期限が過ぎた場合にはキャッシュデータの使用ができなくなる。
本装置で用いるキャッシュ１５は、オフライン状態におけるサービスの継続利用を利用者に提供することを目的としているので、Expiresヘッダによる指定があった場合でもこれを解除する解除部を設けることで、キャッシュされた情報に対して有効期限を過ぎた場合でも使用できるように設定されている。
【００３８】
また、ブラウザの中には、オフライン状態（Windows(登録商標)などのOSがネットワークインタフェースのリンクアップを検知していない）の場合、利用者からの要求を送信しない仕様となっているものがある。本装置では、要求応答管理部１６をブラウザのアドオン(ブラウザの拡張プログラム)として提供し、OSがネットワークインタフェースのリンクアップを認識しないようなオフライン状態の場合であっても、要求応答管理部１６にはあたかもオンライン状態であるかのように要求を送信するように実装する。
【００３９】
ブラウザ１０は、キャッシュ１５から応答された内容に従い、画面表示する。例えば、メール機能を提供するWebアプリケーションが要求された場合、メーラの起動画面が表示された状態となる。
【００４０】
利用者は、ブラウザ１０にHTML等データ１１により表示領域１２に表示されたHTML画面において、例えば新規メール作成ボタンの押下や、受信したメールを選択する操作を行う（処理Ｄ）。利用者操作は、Java(登録商標)Scriptにより処理取得される。また、オフライン状態において取得された利用者操作は、現在画面に表示されている情報（要求と応答）とともに、呼び出された（実行された）順に、利用者操作ログ管理DB１７に保存される。利用者操作ログ管理DB１７に保存される利用者操作は、どのような画面で利用者がどのような操作を行ったかの関連付けがなされている。
【００４１】
Java(登録商標)Scriptは、利用者操作に基づき、サーバ３０にデータ取得を要求する。オフライン中、サーバへのデータ取得要求は要求応答管理部１６により取得され、要求に対する応答はキャッシュ１５から返される（処理Ｅ）。例えば、ある受信メールがブラウザ上で選択された場合、受信メールの本文データを過去に閲覧しキャッシュ（キャッシュ１５に記録）された情報から応答する。
【００４２】
Java(登録商標)Scriptは、キャッシュ１５より受信したデータを基に、画面の表示を動的に変更する（処理Ｆ）。例えば、受信メールが上記処理Ｄで選択され、処理Ｅでキャッシュ１５より受信メールのデータが応答された場合、選択されたメール本文を読むための画面を表示データとして生成し、表示領域１２に書き出す。
【００４３】
オフライン中、要求応答管理部１６が定期的にサーバに接続確認を行う等により、オフライン状態からオンライン状態となったことを確認した場合、その旨の信号が、要求応答管理部１６よりオフライン中操作反映部１８に伝達され（処理Ｇ）、オフライン中操作反映部１８が利用者操作ログ管理DB１７から記憶された利用者操作を読み出す（処理Ｈ）。
オフライン中操作反映部１８は、利用者操作ログ管理DB１７に保存されたオフライン中に実行された利用者からの要求をサーバ３０に送信し、サーバ３０からの応答（処理Ｉ）をオフライン中にキャッシュ１５から応答した内容と比較する。キャッシュ１５から応答した内容とサーバ３０からの応答の内容が同じであれば、サーバ３０からの応答に対し利用者操作ログ管理DB１７に保存された利用者操作を実行する。
【００４４】
サーバ３０からの応答とキャッシュ１５から応答した内容が異なる場合、利用者に入力を求める（処理Ｊ）。この時に行われる処理の詳細については後述する。
【００４５】
次に、要求応答管理部１６における処理手順について、図２のフローチャート図を参照しながら説明する。
要求応答管理部１６はブラウザ１０からの要求送信を待つ（ステップ１０１）。
ブラウザ１０からの要求を受信した場合、要求をサーバ３０に送信し、さらに、受信した要求をキャッシュ１５に保存する（ステップ１０２）。
ブラウザ１０からの要求には、URLに加えCookieなどの一時情報が含まれる場合がある。すなわち、HTTPは状態管理ができないステートレスなプロトコルであるため、例えば、あるページにログインし、一旦ブラウザ１０を閉じた後で再度同じページに接続した場合、ログイン処理がもう一度必要となる。これを回避するため、一時情報を保存する技術としてCookie等を利用する場合がある。Cookieを利用した場合、利用者の識別情報をサーバが応答し、ブラウザがサーバ応答に含まれる一時情報を利用者端末内に保存、ブラウザが要求を送信する際に、要求に一時情報を加えて送信することで、二度目の接続の際、ログイン後の画面を表示するなどの処理が可能となる。
【００４６】
サーバ３０から応答があった場合（オンライン状態の場合）はステップ１０８に遷移し、サーバ３０からの受信が無い場合（オフライン状態の場合）はステップ１０４に遷移する（ステップ１０３）。
オフライン状態の場合、キャッシュ１５に要求に対する過去の応答情報がある場合はステップ１０５に遷移し（ステップ１０４）、キャッシュ１５より応答を返す（ステップ１０５）。また、キャッシュ１５に過去の応答情報が無い場合は、ブラウザ１０にエラーを返す（ステップ１０７）。
【００４７】
キャッシュ１５からの応答内容は、利用者操作ログ管理DB１７に要求とともに保存する（ステップ１０６）。
【００４８】
ステップ１０３においてサーバ３０より応答があった場合、利用者操作ログ管理DB１７にデータがあるか（オフライン状態となり、キャッシュ１５からの応答と利用者操作を保存することがあったか）を確認し、データがある場合はステップ１０９に遷移し、データがない場合はステップ１１０に進む（ステップ１０８）。
【００４９】
オフライン状態からの復旧確認(オンライン状態となったことの確認)と、オフライン中の利用者操作をサーバ３０に反映する処理を呼び出す動作は、上述のように、利用者から要求がある度に呼び出しても良いし、下記の手順で実現することもできる。
(1)プログラムが利用者からの要求とは別にネットワークの状態を定期的に確認する。
(2)オフライン状態からオンライン状態となり、オフライン中の利用者操作がある場合、プログラムがオフライン中の利用者操作の反映処理を自動実行する。
(2)´オフライン状態からオンライン状態となり、オフライン中の利用者操作がある場合、利用者にオフライン中の操作をサーバに反映するかを確認するメッセージボックスなどを提示する。
(3)利用者からメッセージボックスなどを通じて、オフライン中の利用者操作のサーバへの反映が指示された場合、プログラムはこれを実行する。
【００５０】
オフライン中の利用者操作を反映するためのオフライン中操作反映部１８を呼び出す（ステップ１０９）。オフライン中操作反映部１８における処理の詳細は後述する。
サーバ３０から受信した応答をブラウザ１０に返すとともに、キャッシュ１５に保存する（ステップ１１０）。
【００５１】
続いて、オフライン中操作反映部１８における処理手順について、図３を参照しながら説明する。
利用者操作ログ管理DB１７に保存された全ての要求・応答（オフライン中に実行された利用者操作）が反映されたかを確認し（ステップ２０１）、反映されていない場合にはステップ２０２に遷移し、全て反映した場合には処理を終了する。
【００５２】
利用者操作ログ管理DB１７では、利用者操作ログを取得することで、表１に示すように、「呼び出し順」、サーバ３０に対する要求内容に対応する「要求」、キャッシュ１５からの応答内容に対応する「応答」、「利用者操作内容」が時系列に記憶されたテーブルで構成されている。「要求」は利用者の操作により接続したURLやCookieのデータ、「応答」はそこで取得した画像やファイルのデータ、「利用者操作内容」はページ中で行ったクリックや文字列の入力等のデータが記憶されている。
利用者操作ログ管理DB１７に保存された中から、古い順にエントリ（表１の１行〜)を読み出す（ステップ２０２）。また、読み出されたエントリは利用者管理DB１７から削除される。
【００５３】
【表１】
2011164749.tif 000003
【００５４】
読み出したエントリに含まれる要求をサーバ３０に送信する（ステップ２０３）。
サーバ３０からの応答と、読み出したエントリに含まれる応答内容（オフライン中にシステムが判断し、利用者に応答した内容）を比較し、同じ内容か否かを判断する。サーバ応答と読み出したエントリ中の応答内容が異なる場合はステップ２０５に遷移する。内容が同じ場合はステップ２０６に遷移する（ステップ２０４）。
【００５５】
ステップ２０４において、サーバ応答と読み出したエントリ中の応答内容が異なる場合、サーバ３０からの実際の応答をブラウザ１０に渡し、利用者に提示する（ステップ２０５）。利用者は、提示された画面を操作する。
【００５６】
ステップ２０４において、サーバ応答と読み出したエントリ中の応答内容が同じ場合、読み出したエントリ有の利用者操作をオンライン中操作反映部１８が実行する（ステップ２０６）。実行後、ステップ２０１に遷移する。このような利用者操作の実行により、新たなサーバへの要求が送信される場合には、次のステップ２０３の処理は（一つ前のステップ２０６の実行の結果要求がサーバに送信されるため）スキップされる。
【００５７】
オフライン中操作反映部１８における利用者による操作、利用者端末（クライアント）、サーバ間での処理例について、図４（ａ）の利用者操作ログ管理DBに保存されたHTML表示例、及び、図４（ｂ）のシーケンス図を用いて詳説する。
利用者操作ログ管理DB１７に保存されたHTML表示例が図４（ａ）に示されるように、利用者操作により画面Ａ、Ｂ、Ｃのように推移したものとする。
【００５８】
利用者が利用者端末に対して利用者操作の反映要求(T1)行うと、利用者端末はサーバ３０に対して利用者操作ログ管理DB１７に基づくHttp要求(T2)を送信する。サーバ３０では、受信した要求に対してHttp応答(T3)する。
利用者端末では、サーバ３０より受信した応答内容と利用者操作ログ管理DB１７の内容（オフライン中の応答）を比較する(T4)。
応答内容と利用者操作ログ管理DB１７の内容が同じである場合、応答内容（画面Ａ）において、利用者操作ログ管理DB１７に基づいてオフライン中に実行された利用者操作をオフライン操作反映部１８が実行する（例えば、画面Ａにおける文字入力やボタン押下）。
【００５９】
応答内容（画面Ａ）における文字入力やボタン押下が、例えばログインボタンの押下であった場合、Http要求(T5)により、サーバに対してCookie等の一時情報（以前にサーバにログインした際にサーバより取得したCookie）を含む要求が送信される。この時、例えばオフライン中にCookieの期限切れとなっていた場合、(Cookieが有効期限内であればログイン済みの画面を応答するが、Cookieが期限切れとなっていたために)ログインIDとパスワードの入力を求める画面Ａ´をHttp応答(T6)する(この際、例えば図４（ａ）の利用者操作ログ管理DBに保存された画面Ｂは、ログイン済みの画面であったとする)。
【００６０】
利用者端末では、応答内容（画面Ａ´）と利用者操作ログ管理DB１７の内容（ログイン済みの画面Ｂ）を比較する(T7)。
この場合、応答内容と利用者操作ログ管理DB１７の内容が異なるので、利用者に対して画面が異なる旨をプレビュー表示(T8)し、利用者は画面Ａ´において、ログインID及びパスワードを入力する操作(T9)することで、操作を反映して次のステップへ進む(T10)。
【００６１】
利用者端末はサーバ３０に対して利用者のプレビューに対する操作(T9)に基づくHttp要求(T11)を送信する。Http要求(T11)以降のHttp要求では、(T6)でサーバより取得した新しいCookieが含まれる場合がある。サーバは要求に対するHttp応答を返す(T12)((T9)により利用者が入力したログインIDとパスワードがサーバに登録されたログインIDとパスワードの場合、ログイン済みの画面Ｂを応答する)。
【００６２】
利用者端末では、応答内容（画面Ｂ）と利用者操作ログ管理DBの内容を比較する（T13）。
応答内容と利用者操作ログ管理DBの内容が同じであるので、応答内容（画面Ｂ）において、利用者操作ログ管理DBに基づいてオフライン中に実行された利用者操作（例えば、「画面Ｂにおける文字入力」「画面Ｃにおける文字入力」）をオンライン操作反映部が順次実行する。
【００６３】
上述したWebアプリケーション高可用化装置において、非特許文献１など、Webアプリケーションの再作成を要求する従来技術と排他制御を行うことができる。具体的には、要求応答管理部が、サーバからの応答内容の中身を確認し、サーバからの応答が非特許文献１で規定されたAPIを用いたHttpファイルやJava(登録商標)Scriptであり、かつ非特許文献１が提供するAPIが利用者端末にインストール済みである場合に、これらの応答を返すサーバに対しては、上述したWebアプリケーション高可用化装置の各機能を無効化する。
【００６４】
上述した例では、利用者端末としてPCを使用したが、携帯型の端末であってもよい。
【符号の説明】
【００６５】
１…Webアプリケーション高可用化装置、  １０…ブラウザ、  １１…HTML等データ、  １２…表示領域、  １５…キャッシュ、  １６…要求応答管理部、  １７…利用者操作ログ管理DB、  １８…オフライン中操作反映部、２０…ネットワーク、  ３０…サーバ、  ３１…サーバ側処理プログラム。
【図１】
2011164749.tif 000004
【図２】
2011164749.tif 000005
【図３】
2011164749.tif 000006
【図４】
2011164749.tif 000007
【図５】
2011164749.tif 000008