(57)【要約】【課題】Ｗｅｂページを短時間に正しい状態で端末装置に表示させる。【解決手段】データ群１０ａ，１０ｂ，１０ｃにはそれぞれ、Ｗｅｂページを仮想ブラウザ２０上で表示したときの画面を示す画像データ１１と、そのＷｅｂページのアドレス１２と、画像データ１１が生成されたときの仮想ブラウザ２０の表示に関する設定情報１３とが登録される。演算部１ｂは、データ群１０ａ，１０ｂ，１０ｃの中から、閲覧が要求されたＷｅｂページＰ１のアドレスと一致するアドレス１２を含み、かつ、そのときの仮想ブラウザ２０についての設定情報と一致する設定情報１３を含むデータ群を検索する。このようなデータ群が存在した場合、演算部１ｂは、そのデータ群に含まれる画像データ１１を記憶部１ａから読み出して端末装置２に送信する。【選択図】図１
2018055314.tif 000002
【特許請求の範囲】
【請求項１】
第１のＷｅｂページを仮想ブラウザ上で表示したときの画面を示す第１の画像データと、前記第１のＷｅｂページを特定するための第１のアドレスと、前記第１の画像データが生成されたときの前記仮想ブラウザの表示に関する第１の設定情報とが登録された第１のデータ群を、１組以上記憶する記憶部と、演算部とを有し、
前記演算部は、
前記記憶部に記憶された前記第１のデータ群の中から、端末装置から閲覧が要求された第２のＷｅｂページを特定するための第２のアドレスと一致する前記第１のアドレスを含み、かつ、前記第２のＷｅｂページの閲覧が要求されたときの前記仮想ブラウザについての第２の設定情報と一致する前記第１の設定情報を含む第２のデータ群を検索し、
前記第２のデータ群が存在しなかった場合、前記第２のアドレスが示すサーバ装置から前記第２のＷｅｂページを表示するためのＷｅｂページ情報を受信し、前記第２のＷｅｂページを前記仮想ブラウザ上で表示したときの画面を示す第２の画像データを前記Ｗｅｂページ情報に基づいて生成し、前記第２の画像データを前記端末装置に送信する第１の処理を実行し、
前記第２のデータ群が存在した場合、前記第２のデータ群に含まれる前記第１の画像データを前記記憶部から読み出して前記端末装置に送信する第２の処理を実行する、
画像転送装置。
【請求項２】
前記第１の設定情報は、前記第１の画像データが生成されたときの前記仮想ブラウザの表示に関する第１の設定値を基に算出された第１のハッシュ値であり、
前記第２のデータ群の検索では、前記第１のデータ群の中から、前記第２のアドレスと一致する前記第１のアドレスを含み、かつ、前記第２のＷｅｂページの閲覧が要求されたときの前記仮想ブラウザについての第２の設定値を基に算出された第２のハッシュ値と一致する前記第１のハッシュ値を含む前記第２のデータ群を検索する、
請求項１記載の画像転送装置。
【請求項３】
前記第１の画像データは、前記第１の画像データが生成されたときの前記設定情報に基づいて表示された前記仮想ブラウザの画面の内部に、前記第１のＷｅｂページが表示された状態の画面を示す、
請求項２記載の画像転送装置。
【請求項４】
前記記憶部は、前記仮想ブラウザの処理を実行するために不揮発メモリ上に一時的に確保されるメモリ空間にそれぞれ対応し、それぞれ個別の前記設定情報が登録された複数のメモリ利用情報をさらに記憶し、
前記第１のハッシュ値は、前記第１の画像データを生成するための前記仮想ブラウザの処理を実行する際に、前記複数のメモリ利用情報の中から選択された第１のメモリ利用情報に含まれる前記設定情報に基づいて算出され、
前記演算部は、前記端末装置から前記第２のＷｅｂページの閲覧が要求されたとき、前記複数のメモリ利用情報の中から選択した第２のメモリ利用情報に基づいて前記不揮発メモリ上に前記メモリ空間を確保し、前記第２のメモリ利用情報に含まれる前記設定情報に基づいて前記第２のハッシュ値を算出する、
請求項２または３記載の画像転送装置。
【請求項５】
前記複数のメモリ利用情報は、Ｗｅｂページの閲覧を要求するユーザまたはユーザグループごとに生成される、
請求項４記載の画像転送装置。
【請求項６】
前記複数のメモリ利用情報は、それぞれ異なる内容の前記設定情報と、登録された前記設定情報に基づいて算出された第３のハッシュ値とを含み、
前記演算部は、前記端末装置から前記第２のＷｅｂページの閲覧が要求されたとき、前記記憶部に記憶された前記第１のデータ群の中から、前記第２のアドレスと一致する前記第１のアドレスを含む第３のデータ群を検索し、前記第３のデータ群が存在した場合、前記複数のメモリ利用情報の中から、前記第３のデータ群に含まれる前記第１のハッシュ値と一致する前記第３のハッシュ値を含むメモリ利用情報を、前記第２のメモリ利用情報として選択する、
請求項４記載の画像転送装置。
【請求項７】
前記第１のデータ群の少なくとも１つに含まれる前記第１の画像データは、前記第１のＷｅｂページの画面のうち、前記第１のＷｅｂページを前記仮想ブラウザ上で最初に表示したときの画面を示す第３の画像データと、前記第１のＷｅｂページの画面のうち、スクロール操作に応じて前記仮想ブラウザ上に追加的に表示される画面を示す第４の画像データとを含み、
前記演算部は、前記第２のデータ群が存在し、かつ、前記端末装置から前記第２のＷｅｂページのスクロール操作を受け付けたとき、前記第２のデータ群に前記第４の画像データが含まれる場合には、前記第２のデータ群に含まれる前記第３の画像データおよび前記第４の画像データの中から、受け付けたスクロール操作に応じて前記仮想ブラウザ上に表示される画面を示す画像データを抽出して前記端末装置に送信する、
請求項１乃至６のいずれか１項に記載の画像転送装置。
【請求項８】
前記演算部は、
前記第２のデータ群が存在した場合、前記サーバ装置から前記Ｗｅｂページ情報を受信し、前記第２の画像データを前記Ｗｅｂページ情報に基づいて生成する第３の処理を、前記第２の処理と並行して実行し、
前記第２のデータ群に含まれる前記第１の画像データと前記第２の画像データとの差分を抽出し、
前記差分が抽出された場合には、前記端末装置に送信する画像データを前記第２のデータ群に含まれる前記第１の画像データから前記第２の画像データに変更するとともに、前記第２のデータ群に含まれる前記第１の画像データを前記第２の画像データによって更新する、
請求項１乃至７のいずれか１項に記載の画像転送装置。
【請求項９】
前記設定情報は、前記仮想ブラウザの画面のうちＷｅｂページの表示領域を除く領域に表示可能な複数の画像のそれぞれについて、表示するか否かを示す情報を含む、
請求項１乃至８のいずれか１項に記載の画像転送装置。
【請求項１０】
前記設定情報は、前記仮想ブラウザの処理を実現する仮想ブラウザプログラムのバージョン情報を含む、
請求項１乃至９のいずれか１項に記載の画像転送装置。
【請求項１１】
コンピュータが、
第１のＷｅｂページを仮想ブラウザ上で表示したときの画面を示す第１の画像データと、前記第１のＷｅｂページを特定するための第１のアドレスと、前記第１の画像データが生成されたときの前記仮想ブラウザの表示に関する第１の設定情報とが登録された第１のデータ群を、１組以上記憶する記憶部を参照し、
前記記憶部に記憶された前記第１のデータ群の中から、端末装置から閲覧が要求された第２のＷｅｂページを特定するための第２のアドレスと一致する前記第１のアドレスを含み、かつ、前記第２のＷｅｂページの閲覧が要求されたときの前記仮想ブラウザについての第２の設定情報と一致する前記第１の設定情報を含む第２のデータ群を検索し、
前記第２のデータ群が存在しなかった場合、前記第２のアドレスが示すサーバ装置から前記第２のＷｅｂページを表示するためのＷｅｂページ情報を受信し、前記第２のＷｅｂページを前記仮想ブラウザ上で表示したときの画面を示す第２の画像データを前記Ｗｅｂページ情報に基づいて生成し、前記第２の画像データを前記端末装置に送信する第１の処理を実行し、
前記第２のデータ群が存在した場合、前記第２のデータ群に含まれる前記第１の画像データを前記記憶部から読み出して前記端末装置に送信する第２の処理を実行する、
画像転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像転送装置および画像転送方法に関する。
【背景技術】
【０００２】
クライアント端末で実行する処理を最小限にとどめ、ほとんどの処理をサーバで実行させるようにするシンクライアント技術が知られている。特に、サーバでの処理の実行結果を示す画面を画像データとしてクライアント端末に転送する「画面転送型」と呼ばれるシンクライアント技術が、広く利用されている。例えば、サーバで仮想ブラウザを動作させ、仮想ブラウザの画面を示す画像データをサーバがクライアント端末に送信することで、クライアント端末でＷｅｂページを表示できるようにしたシステムが提案されている。
【０００３】
また、Ｗｅｂページに対応するキャッシュデータとそのＷｅｂページの圧縮画像とをサーバが保持するようにしたシンクライアント型Ｗｅｂページ閲覧システムも提案されている。このシステムでは、サーバは、端末から閲覧要求されたＷｅｂページをＷｅｂサーバから取得し、取得したＷｅｂページに対応するキャッシュデータが存在するか否かを判定する。キャッシュデータが存在する場合、サーバは、保持されている画像と取得したＷｅｂページの画像との差分を抽出し、差分に相当する画像のみ圧縮処理を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−３２０５６号公報
【特許文献２】特開２０１２−２５２３８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、画面転送型のシンクライアント技術を用いてＷｅｂページを表示する上記のシステムでは、サーバにおいてＷｅｂページの画面を示す画像データ（以下、「Ｗｅｂページの画像データ」と記載する）を生成する処理が実行される分だけ、クライアント端末でＷｅｂページが表示されるまでの時間が遅くなる。そこで、Ｗｅｂページの画像データをキャッシュし、このＷｅｂページへのリンクが要求された場合に、キャッシュされた画像データを基にＷｅｂページの画面を表示する方法が考えられる。
【０００６】
しかし、上記システムでは、クライアント端末とサーバとの間ではＵＲＬ（Uniform Resource Locator）のようなＷｅｂページを特定可能にする情報の受け渡しが行われない。このため、表示すべきＷｅｂページをクライアント端末が特定できない。したがって、上記システムでは、クライアント端末でＷｅｂページの画像データをキャッシュする方法を用いることはできない。
【０００７】
一方、サーバがＷｅｂページの画像データをキャッシュする場合でも、次のような問題がある。Ｗｅｂページの画像データがキャッシュされる場合、そのＷｅｂページにおける文字や画像のレイアウト情報は保持されない。このため、同じＷｅｂページであっても、仮想ブラウザの表示環境が異なる場合、仮想ブラウザにおけるＷｅｂページの表示状態が異なる場合がある。
【０００８】
仮想ブラウザの表示環境は、例えば、Ｗｅｂページの閲覧を要求するユーザやユーザグループごとにカスタマイズされたり、あるいは、仮想ブラウザの処理を実現するプログラムの更新によって変更される可能性がある。したがって、キャッシュされている画像データをクライアント端末に送信したときに、クライアント端末ではＷｅｂページの画面が、現状の仮想ブラウザを用いて同じＷｅｂページを表示した場合とは異なる間違った状態で表示される可能性がある。
【０００９】
１つの側面では、本発明は、Ｗｅｂページを短時間に正しい状態で端末装置に表示させることが可能な画像転送装置および画像転送方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、記憶部と演算部とを有する次のような画像転送装置が提供される。記憶部は、第１のＷｅｂページを仮想ブラウザ上で表示したときの画面を示す第１の画像データと、第１のＷｅｂページを特定するための第１のアドレスと、第１の画像データが生成されたときの仮想ブラウザの表示に関する第１の設定情報とが登録された第１のデータ群を、１組以上記憶する。演算部は、記憶部に記憶された第１のデータ群の中から、端末装置から閲覧が要求された第２のＷｅｂページを特定するための第２のアドレスと一致する第１のアドレスを含み、かつ、第２のＷｅｂページの閲覧が要求されたときの仮想ブラウザについての第２の設定情報と一致する第１の設定情報を含む第２のデータ群を検索する。また、演算部は、第２のデータ群が存在しなかった場合、第２のアドレスが示すサーバ装置から第２のＷｅｂページを表示するためのＷｅｂページ情報を受信し、第２のＷｅｂページを仮想ブラウザ上で表示したときの画面を示す第２の画像データをＷｅｂページ情報に基づいて生成し、第２の画像データを端末装置に送信する第１の処理を実行する。一方、演算部は、第２のデータ群が存在した場合、第２のデータ群に含まれる第１の画像データを記憶部から読み出して端末装置に送信する第２の処理を実行する。
【００１１】
また、１つの案では、上記の画像転送装置と同様の処理がコンピュータによって実行される画像転送方法が提供される。
【発明の効果】
【００１２】
１つの側面では、Ｗｅｂページを短時間に正しい状態で端末装置に表示させることができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態に係る画像転送システムの構成例および処理例を示す図である。
【図２】第２の実施の形態に係るＷｅｂ閲覧システムの構成例を示す図である。
【図３】閲覧制御ゲートウェイのハードウェア構成例を示す図である。
【図４】Ｗｅｂページの表示制御について説明するための図である。
【図５】端末装置および閲覧制御ゲートウェイが備える処理機能の構成例を示すブロック図である。
【図６】コンテナ情報記憶部に格納されるデータの例を示す図である。
【図７】キャッシュに格納されるデータの例を示す図である。
【図８】キャッシュミス時のキャッシュデータセットの登録処理について説明するための図である。
【図９】キャッシュデータセットに登録される画面データについて説明するための図である。
【図１０】端末装置から新たなＷｅｂページへのリンクが要求された場合の処理手順の例を示すフローチャートである。
【図１１】外部Ｗｅｂページへのリンクが要求された場合のキャッシュゲートウェイの処理手順の例を示すフローチャートである。
【図１２】起動したコンテナにおいて実行される処理手順の例を示すフローチャートである。
【図１３】キャッシュミスと判定され、かつスクロール操作が行われた場合のキャッシュゲートウェイの処理手順の例を示すフローチャートである。
【図１４】キャッシュヒットと判定され、かつスクロール操作が行われた場合のキャッシュゲートウェイの処理手順の例を示すフローチャートである。
【図１５】外部Ｗｅｂページから外部Ｗｅｂページへリンクする場合の処理手順の例を示すフローチャートである。
【図１６】コンテナ情報記憶部に格納されるデータの例を示す図である。
【図１７】外部Ｗｅｂページへのリンクが要求された場合の処理手順の例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係る画像転送システムの構成例および処理例を示す図である。図１に示す画像転送システムは、画像転送装置１、端末装置２およびサーバ装置３を含む。
【００１５】
サーバ装置３は、Ｗｅｂページを提供するＷｅｂサーバであり、端末装置２は、Ｗｅｂページをユーザが閲覧するための装置である。画像転送装置１は、基本的には、サーバ装置３から提供されるＷｅｂページの画面を示す画像データを生成し、生成された画像データを端末装置２に送信する。端末装置２は、受信した画像データに基づく画面を表示する。このような基本的な処理により、画像転送装置１から端末装置２に対しては、サーバ装置３から送信されるＷｅｂページのデータがそのまま転送されず、Ｗｅｂページの画面を示す画像データが転送される。このため、端末装置２のセキュリティを向上させることができる。例えば、サーバ装置３からマルウェアが送信された場合に、端末装置２がマルウェアに感染することを防止できる。
【００１６】
画像転送装置１は、記憶部１ａと演算部１ｂとを有する。記憶部１ａは、例えば、画像転送装置１が備えるＲＡＭ（Random Access Memory）などの記憶領域として実装される。演算部１ｂは、例えば、画像転送装置１が備えるプロセッサとして実装される。
【００１７】
記憶部１ａは、データ群１０ａ，１０ｂ，１０ｃ，・・・を記憶する。データ群１０ａ，１０ｂ，１０ｃ，・・・にはそれぞれ、画像データ１１、アドレス１２および設定情報１３が登録されている。なお、記憶部１ａは、データ群を少なくとも１組記憶すればよい。
【００１８】
画像データ１１は、あるＷｅｂページを仮想ブラウザ２０上で表示したときの画面を示すデータである。このＷｅｂページとは、端末装置２または他の端末装置から閲覧が要求されたＷｅｂページである。また、仮想ブラウザ２０は、演算部１ｂの処理によって実現される機能である。仮想ブラウザ２０は、端末装置２に代わって、Ｗｅｂページを表示するためのデータをサーバ装置３から受信し、受信したデータを解釈することで仮想ブラウザ２０の画面の内部にＷｅｂページを表示する。
【００１９】
アドレス１２は、画像データ１１に対応するＷｅｂページを特定するための情報である。例えば、アドレス１２はＵＲＬである。設定情報１３は、画像データ１１が生成されたときの仮想ブラウザ２０の表示に関する設定情報である。
【００２０】
演算部１ｂは、端末装置２からあるＷｅｂページ（「ＷｅｂページＰ１とする」）の閲覧が要求されたとき、次のような処理を実行する。演算部１ｂは、記憶部１ａに記憶されたデータ群１０ａ，１０ｂ，１０ｃ，・・・の中から、ＷｅｂページＰ１を特定するためのアドレスと一致するアドレス１２を含み、かつ、閲覧要求時における仮想ブラウザ２０の表示に関する設定情報と一致する設定情報１３を含むデータ群を検索する（ステップＳ１）。
【００２１】
ここで、図示しないが、条件を満たすデータ群が存在しなかった、すなわち、キャッシュミスになった場合、演算部１ｂは、ＷｅｂページＰ１を特定するためのアドレスが示すサーバ装置３から、ＷｅｂページＰ１を表示するためのＷｅｂページ情報を受信する。演算部１ｂは、ＷｅｂページＰ１を仮想ブラウザ２０上で表示したときの画面を示す画像データを、受信したＷｅｂページ情報に基づいて生成し、生成された画像データを端末装置２に送信する。端末装置２は、受信した画像データに基づいてＷｅｂページＰ１の画面を表示する。
【００２２】
一方、ステップＳ１の検索で、条件を満たすデータ群が抽出された、すなわち、キャッシュヒットとなったとする。ここでは例として、データ群１０ａが条件を満たすデータ群として抽出されたとする（ステップＳ２）。この場合、演算部１ｂは、データ群１０ａに含まれる画像データ１１を記憶部１ａから読み出し、この画像データ１１を端末装置２に送信する（ステップＳ３）。端末装置２は、受信した画像データ１１に基づいてＷｅｂページＰ１の画面２１を表示する。
【００２３】
このようにキャッシュヒットになった場合の処理では、端末装置２に送信する画像データをＷｅｂページ情報を基に生成する処理が実行されない。このため、端末装置２にＷｅｂページの画面が表示されるまでの時間が、画像データの生成処理にかかる時間の分だけキャッシュミスになった場合より短縮される。
【００２４】
また、画像データ１１の検索キーとして、アドレス１２だけでなく設定情報１３も使用されることで、端末装置２においてＷｅｂページの画面を乱れのない正しい形式で表示できる。例えば、本実施の形態のように、Ｗｅｂページの画面の画像データがキャッシュされる場合、そのＷｅｂページにおける文字や画像のレイアウト情報は保持されない。このため、同じアドレスで特定されるＷｅｂページであっても、仮想ブラウザ２０の表示設定が異なる場合、仮想ブラウザ２０におけるＷｅｂページの表示状態が異なる場合があり得る。
【００２５】
例えば、仮想ブラウザ２０において表示されるメニュー項目などの画像の数や位置が異なることにより、Ｗｅｂページの表示領域の大きさや縦横比が異なる場合がある。また、そのようなＷｅｂページの表示領域の大きさや縦横比の違いにより、その表示領域における文字や画像の位置が変わる場合もある。さらに、仮想ブラウザ２０の表示設定は、仮想ブラウザ２０の処理を実現するプログラムが更新されることで、変化する場合もある。
【００２６】
演算部１ｂによるステップＳ１〜Ｓ３の処理によれば、アドレス１２によって識別されるＷｅｂページの違いだけでなく、表示設定に応じた仮想ブラウザ２０でのＷｅｂページの表示状態の違いを考慮して、キャッシュヒットしたか否かが判定される。このため、キャッシュヒットした場合に、端末装置２において、現状の仮想ブラウザ２０を用いて表示した場合と同じ正しい状態でＷｅｂページを表示させることができる。
【００２７】
このように、画像転送装置１によれば、Ｗｅｂページの画面を短時間に正しい状態で端末装置２に表示させることができる。
〔第２の実施の形態〕
図２は、第２の実施の形態に係るＷｅｂ閲覧システムの構成例を示す図である。図２に示すＷｅｂ閲覧システムは、端末装置５０ａ，５０ｂ，・・・と、閲覧制御ゲートウェイ（ＧＷ）１００と、内部ネットワーク２０１に接続された内部Ｗｅｂサーバ２１０と、外部ネットワーク２０２に接続された外部Ｗｅｂサーバ２２０ａ，２２０ｂ，・・・とを含む。
【００２８】
このＷｅｂ閲覧システムは、端末装置５０ａ，５０ｂ，・・・を操作するユーザが、内部Ｗｅｂサーバ２１０や外部Ｗｅｂサーバ２２０ａ，２２０ｂ，・・・によって提供されるサービスを閲覧制御ゲートウェイ１００を介して利用できるようにしたシステムである。端末装置５０ａ，５０ｂ，・・・は、閲覧制御ゲートウェイ１００を介してＷｅｂサーバにアクセスし、Ｗｅｂサーバから提供されるＷｅｂページをブラウザ上に表示する。
【００２９】
閲覧制御ゲートウェイ１００は、端末装置からのアクセス先が内部ネットワーク２０１上の内部Ｗｅｂサーバの場合には、内部Ｗｅｂサーバから受信したＨＴＴＰ（HyperText Transfer Protocol）レスポンスをアクセス元の端末装置にそのまま転送する。このＨＴＴＰレスポンスには、ＨＴＭＬ（HyperText Markup Language）文書データやＷｅｂページ内に配置される画像のデータなど、Ｗｅｂページをブラウザに表示するための各種のデータが含まれる。一方、閲覧制御ゲートウェイ１００は、端末装置からのアクセス先が外部ネットワーク２０２上の外部Ｗｅｂサーバの場合には、外部Ｗｅｂサーバから提供されるＷｅｂページをシンクライアント方式でアクセス元の端末装置に表示させる。
【００３０】
なお、例えば、内部ネットワーク２０１は、企業の内部に構築されたネットワークであり、外部ネットワーク２０２は、企業の外部に構築されたネットワークである。端末装置からのアクセス先が内部Ｗｅｂサーバと外部Ｗｅｂサーバのどちらであるかは、例えば、アクセス先として指定されたＵＲＬにホスト名として記載されたドメイン名またはＩＰ（Internet Protocol）アドレスに基づいて判別される。
【００３１】
内部Ｗｅｂサーバ２１０および外部Ｗｅｂサーバ２２０ａ，２２０ｂ，・・・は、端末装置からの入力情報をＷｅｂページを介して受信し、入力情報に応じた処理結果をＷｅｂページを用いて端末装置に出力する。
【００３２】
なお、Ｗｅｂ閲覧システムに含まれる端末装置、内部Ｗｅｂサーバ、外部Ｗｅｂサーバのそれぞれの台数は、特に限定されるものではない。また、以下の説明では、端末装置５０ａ，５０ｂ，・・・を特に区別せずに示す場合には、「端末装置５０」と記載する場合がある。同様に、外部Ｗｅｂサーバ２２０ａ，２２０ｂ，・・・を特に区別せずに示す場合には、「外部Ｗｅｂサーバ２２０」と記載する場合がある。
【００３３】
図３は、閲覧制御ゲートウェイのハードウェア構成例を示す図である。閲覧制御ゲートウェイ１００は、例えば、図３に示すようなコンピュータとして実現される。
閲覧制御ゲートウェイ１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＧＰＵ（Graphics Processing Unit）、またはＰＬＤ（Programmable Logic Device）である。また、プロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＧＰＵ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３４】
プロセッサ１０１には、バス１０８を介して、ＲＡＭ１０２と複数の周辺機器が接続されている。
ＲＡＭ１０２は、閲覧制御ゲートウェイ１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データが格納される。
【００３５】
バス１０８に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、読み取り装置１０６および通信インタフェース１０７がある。
【００３６】
ＨＤＤ１０３は、閲覧制御ゲートウェイ１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置を使用することもできる。
【００３７】
グラフィック処理装置１０４には、表示装置１０４ａが接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令にしたがって、画像を表示装置１０４ａの画面に表示させる。表示装置１０４ａとしては、液晶ディスプレイや有機ＥＬ（ElectroLuminescence）ディスプレイなどがある。
【００３８】
入力インタフェース１０５には、入力装置１０５ａが接続されている。入力インタフェース１０５は、入力装置１０５ａから出力される信号をプロセッサ１０１に送信する。入力装置１０５ａとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３９】
読み取り装置１０６には、可搬型記録媒体１０６ａが脱着される。読み取り装置１０６は、可搬型記録媒体１０６ａに記録されたデータを読み取ってプロセッサ１０１に送信する。可搬型記録媒体１０６ａとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【００４０】
通信インタフェース１０７は、端末装置５０ａ，５０ｂ，・・・、内部Ｗｅｂサーバ２１０、外部Ｗｅｂサーバ２２０ａ，２２０ｂ，・・・などの他の機器との間でデータを送受信する。
【００４１】
以上のようなハードウェア構成によって、閲覧制御ゲートウェイ１００の処理機能を実現することができる。なお、端末装置５０ａ，５０ｂ，・・・、内部Ｗｅｂサーバ２１０、外部Ｗｅｂサーバ２２０ａ，２２０ｂ，・・・も、図３に示すようなコンピュータとして実現可能である。
【００４２】
図４は、Ｗｅｂページの表示制御について説明するための図である。端末装置５０では、ブラウザを用いてＷｅｂページが閲覧される。図４に示すブラウザ領域５１ａはブラウザ全体の表示領域であり、ブラウザ領域５１ａの内部にＷｅｂページが表示されるＷｅｂページ領域５１ｂが配置される。
【００４３】
端末装置５０のブラウザは、ユーザの操作に応じて、アクセス先のＵＲＬを指定したＨＴＴＰリクエストを閲覧制御ゲートウェイ１００に送信する。閲覧制御ゲートウェイ１００は、受信したＵＲＬに基づいて、アクセス先が内部Ｗｅｂサーバ２１０か外部Ｗｅｂサーバ２２０かを判別する。
【００４４】
アクセス先が内部Ｗｅｂサーバ２１０である場合、閲覧制御ゲートウェイ１００は、受信したＨＴＴＰリクエストをアクセス先の内部Ｗｅｂサーバ２１０にそのまま転送する。この場合、図４の上側に示すように、閲覧制御ゲートウェイ１００は、内部Ｗｅｂサーバ２１０から返信されたＨＴＴＰレスポンスを、端末装置５０にそのまま転送する。端末装置５０のブラウザは、受信したＨＴＴＰレスポンスに基づいてＷｅｂページの画像を生成し、Ｗｅｂページ領域５１ｂに表示する。
【００４５】
一方、アクセス先が外部Ｗｅｂサーバ２２０である場合、閲覧制御ゲートウェイ１００は、Ｗｅｂページをシンクライアント方式で端末装置５０に提供する。具体的には、閲覧制御ゲートウェイ１００は、仮想ブラウザを起動する。仮想ブラウザは、アクセス先のＵＲＬを指定したＨＴＴＰリクエストを外部Ｗｅｂサーバ２２０に送信する。この場合、図４の下側に示すように、仮想ブラウザは、外部Ｗｅｂサーバ２２０から返信されたＨＴＴＰレスポンスに基づいてＷｅｂページの画像を生成する。
【００４６】
図４に示す仮想ブラウザ領域１７１ａは仮想ブラウザ全体の表示領域であり、仮想ブラウザ領域１７１ａの内部にＷｅｂページが表示されるＷｅｂページ領域１７１ｂが配置される。閲覧制御ゲートウェイ１００は、生成されたＷｅｂページの画像がＷｅｂページ領域１７１ｂに表示された状態の仮想ブラウザ領域１７１ａの画像を示す画像データを生成し、生成された画像データを端末装置５０に送信する。端末装置５０のブラウザは、受信した画像データに基づく画像をＷｅｂページ領域５１ｂに表示する。この場合、Ｗｅｂページ領域５１ｂには、仮想ブラウザ領域１７１ａのうち、メニュー表示領域など、Ｗｅｂページ領域１７１ｂ以外の領域の画像も表示されることになる。
【００４７】
この後、端末装置５０のブラウザと閲覧制御ゲートウェイ１００との間では、Ｗｅｂページ領域５１ｂ内のＷｅｂページの表示に関する処理がシンクライアント方式で行われる。すなわち、ブラウザから閲覧制御ゲートウェイ１００に対しては、ユーザによる操作の内容を示す操作情報が送信され、閲覧制御ゲートウェイ１００からブラウザに対しては、Ｗｅｂページ領域５１ｂに表示させる画像の画像データが送信される。
【００４８】
例えば、Ｗｅｂページのスクロール操作が行われると、端末装置５０のブラウザは、スクロール操作を示す操作情報を閲覧制御ゲートウェイ１００に送信する。閲覧制御ゲートウェイ１００は、操作情報に基づき、Ｗｅｂページ領域１７１ｂ内の画像として、スクロール操作が行われた状態の画像を生成し直し、この画像が組み込まれた仮想ブラウザ領域１７１ａの画像の画像データを端末装置５０に送信する。端末装置５０のブラウザは、受信した画像データに基づく画像をＷｅｂページ領域５１ｂに表示する。これにより、スクロールされた状態のＷｅｂページがＷｅｂページ領域５１ｂに表示される。
【００４９】
また、例えば、Ｗｅｂページ内のリンクに対する選択操作が行われると、端末装置５０のブラウザは、選択された画面上の位置を示す位置情報を閲覧制御ゲートウェイ１００に送信する。閲覧制御ゲートウェイ１００の仮想ブラウザは、位置情報に基づいて選択されたリンクを判別し、そのリンクに対応するＵＲＬを指定したＨＴＴＰリクエストを外部Ｗｅｂサーバ２２０に送信する。仮想ブラウザは、外部Ｗｅｂサーバ２２０から返信されたＨＴＴＰレスポンスに基づいてＷｅｂページの画像を生成する。閲覧制御ゲートウェイ１００は、生成された画像を組み込んだ仮想ブラウザ領域１７１ａの画像を示す画像データを、端末装置５０に送信する。
【００５０】
以上のように、内部Ｗｅｂサーバ２１０のＷｅｂページがユーザに閲覧される場合には、端末装置５０のブラウザは通常通り、ＨＴＴＰレスポンスに基づいてＷｅｂページを表示する。一方、外部Ｗｅｂサーバ２２０のＷｅｂページがユーザに閲覧される場合には、外部Ｗｅｂサーバ２２０から送信されたデータは閲覧制御ゲートウェイ１００でブロックされ、そのデータが画像データに変換されて端末装置５０に送信される。このように、外部Ｗｅｂサーバ２２０から送信されるデータが直接的に端末装置５０に受信されなくなることで、端末装置５０のセキュリティを向上させることができる。例えば、端末装置５０が、外部Ｗｅｂサーバ２２０から送信されたデータに含まれるマルウェアに感染することを防止できる。
【００５１】
ところで、上記のようにシンクライアント方式でブラウザにＷｅｂページを表示する場合、ブラウザからのＨＴＴＰリクエストの送信からＷｅｂページの表示までの遅延時間が長くなるという問題がある。これは、閲覧制御ゲートウェイ１００においてＷｅｂページの画像データを生成し、この画像データを送信するための処理時間が余計にかかるからである。
【００５２】
一方、Ｗｅｂページの表示までの遅延時間を短縮する技術として、Ｗｅｂページの表示のためのデータをキャッシュする技術が一般的に知られている。しかし、一般的にシンクライアント方式でＷｅｂページを表示する場合、表示側はＵＲＬを認識しないため、キャッシュするべきオブジェクトをＵＲＬによって判別できない。そのため、表示側でＷｅｂページの表示のためのデータをキャッシュできない。
【００５３】
そこで、本実施の形態では、閲覧制御ゲートウェイ１００に、外部Ｗｅｂサーバ２２０のＷｅｂページの画像データをキャッシュする機能を設ける。閲覧制御ゲートウェイ１００は、端末装置５０に送信すべきＷｅｂページの画像データを保持している場合には、その画像データを端末装置５０に送信して表示させる。これにより、このＷｅｂページについてのＨＴＴＰレスポンスを閲覧制御ゲートウェイ１００が受信し、Ｗｅｂページの画像データを生成して端末装置５０に送信する場合より、Ｗｅｂページの表示までの遅延時間を短縮できる。
【００５４】
図５は、端末装置および閲覧制御ゲートウェイが備える処理機能の構成例を示すブロック図である。
端末装置５０は、Ｗｅｂページを表示するブラウザ５１を有する。ブラウザ５１の処理は、端末装置５０のプロセッサがブラウザプログラムを実行することで実現される。また、ブラウザ５１は、外部Ｗｅｂサーバ２２０のＷｅｂページをシンクライアント方式で表示するための画面転送クライアント５２を有する。なお、画面転送クライアント５２の処理を実現するプログラムは、例えば、ブラウザプログラムにアドオンされる。
【００５５】
閲覧制御ゲートウェイ１００は、プロキシサーバ１１０、コンテナ管理部１２０、キャッシュゲートウェイ（ＧＷ）１３０、コンテナ情報記憶部１４０およびキャッシュ１５０を有する。プロキシサーバ１１０、コンテナ管理部１２０およびキャッシュゲートウェイ１３０の処理は、例えば、閲覧制御ゲートウェイ１００が所定のアプリケーションプログラムを実行することで実現される。コンテナ情報記憶部１４０およびキャッシュ１５０は、例えば、ＲＡＭ１０２やＨＤＤ１０３など、閲覧制御ゲートウェイ１００が備える記憶装置の記憶領域によって実現される。
【００５６】
また、閲覧制御ゲートウェイ１００では、コンテナ管理部１２０によってコンテナ１７０ａ，１７０ｂ，・・・が起動される。コンテナ１７０ａ，１７０ｂ，・・・はそれぞれ、閲覧制御ゲートウェイ１００において提供される仮想的なユーザ空間である。これらのユーザ空間は、アプリケーションプログラムを実行するための互いに分離されたリソース群として提供される。本実施の形態では少なくとも、コンテナ１７０ａ，１７０ｂ，・・・にはそれぞれ、閲覧制御ゲートウェイ１００のＲＡＭ１０２における個別のメモリ空間が割り当てられる。
【００５７】
図５に示すように、コンテナ１７０ａ，１７０ｂ，・・・のそれぞれによって、仮想ブラウザ１７１、画面生成部１７２および画面転送制御部１７３が実現される。すなわち、仮想ブラウザ１７１、画面生成部１７２および画面転送制御部１７３は、コンテナに対応付けられたアプリケーションブログラムが、コンテナに割り当てられたメモリ領域を用いてプロセッサ１０１に実行されることで実現される。
【００５８】
なお、本実施の形態において、コンテナ１７０ａ，１７０ｂ，・・・は、例えば、端末装置５０を利用するユーザまたはユーザグループごとに生成される。以下の説明では、コンテナ１７０ａ，１７０ｂ，・・・を特に区別せずに示す場合には、「コンテナ１７０」と記載する場合がある。
【００５９】
プロキシサーバ１１０は、端末装置５０のブラウザ５１からＨＴＴＰリクエストを受信すると、ＨＴＴＰリクエストからアクセス先を示すＵＲＬを抽出する。プロキシサーバ１１０は、ＵＲＬに基づいて、アクセス先が内部Ｗｅｂサーバ２１０と外部Ｗｅｂサーバ２２０のどちらであるかを判別する。
【００６０】
アクセス先が内部Ｗｅｂサーバ２１０の場合、プロキシサーバ１１０は、ＨＴＴＰリクエストをアクセス先の内部Ｗｅｂサーバ２１０に送信する。そして、プロキシサーバ１１０は、内部Ｗｅｂサーバ２１０から返送されたＨＴＴＰレスポンスを端末装置５０のブラウザ５１に転送する。一方、アクセス先が外部Ｗｅｂサーバ２２０の場合、プロキシサーバ１１０は、ＵＲＬをコンテナ管理部１２０に受け渡す。この場合、これ以後のブラウザ５１での画像表示のための通信は、ブラウザ５１の画面転送クライアント５２と、コンテナ１７０の画面転送制御部１７３との間で、キャッシュゲートウェイ１３０を介して行われる。
【００６１】
コンテナ管理部１２０は、コンテナ型仮想化技術を用いて、コンテナ１７０の起動や動作を管理する。コンテナ管理部１２０は、プロキシサーバ１１０からＵＲＬを受け取ると、コンテナ情報記憶部１４０に記憶されたコンテナ情報に基づいてコンテナ１７０を起動させる。このとき、コンテナ管理部１２０は、端末装置５０を利用するユーザあるいはユーザグループの情報に基づいて、起動させるコンテナ１７０を選択する。コンテナ管理部１２０は、起動したコンテナ１７０に対してＵＲＬを受け渡し、仮想ブラウザ１７１を用いたＷｅｂページの画像生成処理をコンテナ１７０に実行させる。これとともに、コンテナ管理部１２０は、起動させたコンテナ１７０の識別子をキャッシュゲートウェイ１３０に通知する。
【００６２】
ここで、図６は、コンテナ情報記憶部に格納されるデータの例を示す図である。コンテナ情報記憶部１４０には、それぞれ個別のコンテナ１７０を起動するためのコンテナ情報１４１ａ，１４１ｂ，・・・が記憶される。コンテナ情報１４１ａ，１４１ｂ，・・・はそれぞれ、ユーザ情報１４２、アプリケーションプログラム１４３，１４４，１４５およびパラメータセット１４３ａ，１４４ａ，１４５ａを含む。
【００６３】
ユーザ情報１４２は、コンテナ１７０に対応付けられたユーザを示す情報を含む。例えば、ユーザまたはユーザグループごとに個別のコンテナ１７０が起動される場合、ユーザ情報１４２には、ユーザまたはユーザグループを示す識別情報や、ユーザまたはユーザグループが利用する端末装置のアドレスなどが登録される。
【００６４】
アプリケーションプログラム１４３，１４４，１４５は、コンテナ１７０に対応するリソース空間で実行されるプログラムの一例である。これらのプログラムの１つは、仮想ブラウザ１７１の処理を実現するプログラム（仮想ブラウザプログラム）である。さらに、これらのプログラムとしては、画面生成部１７２や画面転送制御部１７３の処理を実現するプログラムもある。
【００６５】
パラメータセット１４３ａ，１４４ａ，１４５ａはそれぞれ、アプリケーションプログラム１４３，１４４，１４５の属性情報と、アプリケーションプログラム１４３，１４４，１４５の実行環境を示す設定項目ごとの設定値との集合である。例えば、仮想ブラウザプログラムに対応するパラメータセットには、仮想ブラウザプログラムのバージョン情報などの属性情報と、仮想ブラウザ１７１の画面表示に関する各設定項目の設定値が含まれる。画面表示に関する設定項目としては、例えば、仮想ブラウザ１７１の画面上に表示させることが可能な複数のメニュー項目のそれぞれについて、表示の有無を設定するための設定項目がある。
【００６６】
なお、コンテナ情報に含まれるアプリケーションプログラムおよびパラメータセットの数は、図６のように３組に限定されるものではない。
以下、図５に戻って説明する。
【００６７】
起動されたコンテナ１７０において、仮想ブラウザ１７１は、コンテナ管理部１２０から取得したアクセス先のＵＲＬと、仮想ブラウザ１７１に関するパラメータセットとを、画面転送制御部１７３を介してキャッシュゲートウェイ１３０に通知する。これとともに、仮想ブラウザ１７１は、取得したＵＲＬを指定したＨＴＴＰリクエストを外部Ｗｅｂサーバ２２０に送信し、外部Ｗｅｂサーバ２２０から返信されるＨＴＴＰレスポンスを受信する。仮想ブラウザ１７１は、ＨＴＴＰレスポンスに含まれるデータを解釈して、Ｗｅｂページの画像を画面生成部１７２に生成させる。
【００６８】
画面生成部１７２は、仮想ブラウザ１７１からの指示に基づいてＷｅｂページの画像を示す画像データを生成する。このとき、画面生成部１７２は、仮想ブラウザ１７１の設定情報に基づき、Ｗｅｂページ領域１７１ｂにＷｅｂページの画像を組み込んだ状態の仮想ブラウザ領域１７１ａの画像を示す画像データを生成する。
【００６９】
画面転送制御部１７３は、キャッシュゲートウェイ１３０においてキャッシュミスと判定された場合には、画面生成部１７２によって生成された画像データを、キャッシュゲートウェイ１３０を介して端末装置５０の画面転送クライアント５２に送信する。一方、画面転送制御部１７３は、キャッシュヒットと判定された場合には、キャッシュされていた画像データに基づくＷｅｂページ領域１７１ｂの画像と、画面生成部１７２によって生成された画像データに基づくＷｅｂページ領域１７１ｂの画像とを比較する。画面転送制御部１７３は、各画像の差分を検出して、差分の情報をキャッシュゲートウェイ１３０に受け渡す。
【００７０】
キャッシュゲートウェイ１３０は、画面転送制御部１７３と端末装置５０の画面転送クライアント５２との間に介在して、Ｗｅｂページのキャッシュ制御を実行する。すなわち、キャッシュゲートウェイ１３０は、閲覧が要求されたＷｅｂページの画像データがキャッシュ１５０に格納されているか否かを判定する。この画像データがキャッシュ１５０に格納されている「キャッシュヒット」の場合、キャッシュゲートウェイ１３０は、画面転送制御部１７３から送信される画像データの代わりに、キャッシュ１５０に格納されている画像データを端末装置５０の画面転送クライアント５２に送信する。一方、上記の画像データがキャッシュ１５０に格納されていない「キャッシュミス」の場合、キャッシュゲートウェイ１３０は、画面転送制御部１７３から送信される画像データを端末装置５０の画面転送クライアント５２に送信する。
【００７１】
ここで、閲覧制御ゲートウェイ１００では、起動されたコンテナ１７０は、外部Ｗｅｂサーバ２２０のＷｅｂページの閲覧が通信相手の端末装置５０において終了すると、閲覧制御ゲートウェイ１００から消去される。例えば、コンテナ１７０に対応するメモリ領域がＲＡＭ１０２から消去される。このように、閲覧制御ゲートウェイ１００では、コンテナ１７０上で実行された処理で取り扱われたデータを恒久的に残すことができない構造になっている。この構造によって、閲覧制御ゲートウェイ１００のセキュリティが高められている。例えば、閲覧制御ゲートウェイ１００がアクセス先の外部Ｗｅｂサーバ２２０から送信されたマルウェアに感染する可能性を低減できる。
【００７２】
しかし、このような構造から、コンテナ１７０上で実行される仮想ブラウザ１７１にＷｅｂページのキャッシュ機能を持たせたとしても、コンテナ１７０が消去されるとキャッシュされたデータも消去されてしまう。このため、仮想ブラウザ１７１にＷｅｂページのキャッシュ機能を持たせることができない。
【００７３】
そこで、本実施の形態では、コンテナ１７０の外側にキャッシュゲートウェイ１３０およびキャッシュ１５０が設けられる。これにより、仮想ブラウザ１７１に表示されたＷｅｂページのデータを、その仮想ブラウザ１７１に対応するコンテナ１７０が消去された後にも閲覧制御ゲートウェイ１００が保持しておくことができる。そして、その後に起動された各コンテナ１７０が、保持されたデータを共用できる。
【００７４】
図７は、キャッシュに格納されるデータの例を示す図である。キャッシュ１５０には、キャッシュデータセット１５１ａ，１５１ｂ，１５１ｃ，・・・が記憶される。キャッシュデータセット１５１ａ，１５１ｂ，１５１ｃ，・・・はそれぞれ、画面データ１５２、ＵＲＬ１５３、ハッシュ値１５４、スクロール操作データ１５５およびブラウザレイアウトデータ１５６を含む。なお、以下の説明では、キャッシュデータセット１５１ａ，１５１ｂ，１５１ｃ，・・・を特に区別せずに示す場合には、「キャッシュデータセット１５１」と記載する場合がある。
【００７５】
画面データ１５２は、端末装置５０のブラウザ５１に表示させる画像のデータである。画面データ１５２には、仮想ブラウザ１７１の外枠領域の画像を示す外枠領域データ１５２ａと、Ｗｅｂページ領域１７１ｂに表示させる画像を示すＷｅｂページ領域データ１５２ｂとが含まれる。
【００７６】
ＵＲＬ１５３は、画面データ１５２に対応する画像を生成する際のアクセス先を示すアドレスである。
ハッシュ値１５４は、画面データ１５２に対応する画像が仮想ブラウザ１７１において表示された際に、その仮想ブラウザ１７１が実行されたコンテナ１７０についてのパラメータセットに基づいて算出されたハッシュ値である。このパラメータセットには、少なくとも、仮想ブラウザ１７１の表示状態に関係する設定項目の値が含まれる。本実施の形態では、コンテナ情報に含まれるパラメータセット（例えば、図６のパラメータセット１４３ａ，１４４ａ，１４５ａ）のうち、仮想ブラウザ１７１の処理を実現する仮想ブラウザプログラムに対応するパラメータセットに基づいて、ハッシュ値１５４が算出されるものとする。なお、ハッシュ値１５４は、例えば、ＳＨＡ−１（Secure Hash Algorithm 1）のハッシュ関数を用いて計算される。
【００７７】
これらのＵＲＬ１５３およびハッシュ値１５４は、対応する画面データ１５２が端末装置５０のブラウザ５１に表示させるべき画像のデータか否かを判定するために用いられる情報である。
【００７８】
ここで、図８は、キャッシュミス時のキャッシュデータセットの登録処理について説明するための図である。キャッシュゲートウェイ１３０は、外部Ｗｅｂサーバ２２０のＷｅｂページへのリンクが端末装置５０から要求されたとき、コンテナ１７０の仮想ブラウザ１７１から、リンク先のＵＲＬと、仮想ブラウザ１７１に関するパラメータセットとを、画面転送制御部１７３を介して取得する（ステップＳ１１）。キャッシュゲートウェイ１３０は、取得したパラメータセットに基づいてハッシュ値を計算し、取得したＵＲＬと算出したハッシュ値とが登録されているキャッシュデータセット１５１をキャッシュ１５０から検索する。
【００７９】
該当するキャッシュデータセットがキャッシュ１５０に存在しなかった場合（キャッシュミスの場合）、キャッシュゲートウェイ１３０は、取得したＵＲＬと算出したハッシュ値と含むキャッシュデータセット１５１を作成して、キャッシュ１５０に登録する（ステップＳ１２）。そして、キャッシュゲートウェイ１３０は、仮想ブラウザ１７１によって受信されたＨＴＴＰレスポンスに基づくＷｅｂページ画像のデータを、端末装置５０に送信するとともに、作成したキャッシュデータセット１５１に登録する（ステップＳ１３）。このとき、キャッシュゲートウェイ１３０は、Ｗｅｂページ画像に対応するＷｅｂページ領域データ１５２ｂとともに、仮想ブラウザ１７１の外枠領域の画像を示す外枠領域データ１５２ａとを、キャッシュデータセット１５１に登録する。
【００８０】
一方、図示しないが、該当するキャッシュデータセット１５１がキャッシュ１５０に存在した場合（キャッシュヒットの場合）、キャッシュゲートウェイ１３０は、そのキャッシュデータセット１５１から抽出した画面データ１５２を端末装置５０に送信する。この場合、仮想ブラウザ１７１によるＨＴＴＰレスポンスの受信処理やＷｅｂページ画像の作成処理の完了を待つことなく、端末装置５０のブラウザ５１にＷｅｂページ画像が表示される。したがって、ブラウザ５１における外部Ｗｅｂサーバ２２０のＷｅｂページの表示レスポンスを高速化できる。
【００８１】
以上のように、キャッシュゲートウェイ１３０は、アクセス先を示すＵＲＬ１５３とともに、パラメータセットに基づくハッシュ値１５４をキャッシュ１５０に登録する。ハッシュ化されるパラメータセットには、Ｗｅｂページの表示処理を行った仮想ブラウザ１７１の表示状態に関係する設定項目の値が含まれる。このようなデータが画面データ１５２の検索に用いられることで、キャッシュヒットと判定された場合に、ブラウザ５１のＷｅｂページ領域５１ｂにおいて、仮想ブラウザ領域１７１ａの内部にＷｅｂページを正しい状態で表示できるようになる。
【００８２】
図４で説明したように、外部Ｗｅｂサーバ２２０のＷｅｂページを閲覧する場合、Ｗｅｂページ領域５１ｂには、Ｗｅｂページの画像がＷｅｂページ領域１７１ｂに組み込まれた状態の仮想ブラウザ領域１７１ａの画像が表示される。このため、キャッシュゲートウェイ１３０がキャッシュ１５０を検索した際に、ＵＲＬ１５３が一致するキャッシュデータセット１５１が存在したとしても、保持されている画像の生成時に利用された仮想ブラウザ１７１に関する設定値が異なると、画像の表示内容も異なってしまう。
【００８３】
例えば、仮想ブラウザ領域１７１ａの外枠領域のうち上側の領域には、各種の操作を受け付けるためのメニュー項目が表示できるようになっている。このようなメニュー項目としては、「Ｆｉｌｅ」「Ｏｐｔｉｏｎ」「Ｈｅｌｐ」など、情報設定や情報閲覧を実行させるための項目がある。仮想ブラウザ１７１のパラメータセットには、このようなメニュー項目を外枠領域に表示させるか否かを設定するための設定項目が含まれる。このような設定項目の設定値が異なれば、外枠領域に表示される情報が異なるものになるし、場合によっては外枠領域の大きさ自体も異なる。したがって、キャッシュデータセット１５１において同じＵＲＬ１５３に対応付けられた画面データ１５２であっても、ハッシュ値１５４が異なれば、その画面データ１５２に基づいてブラウザ５１のＷｅｂページ領域５１ｂに表示される画像の内容も異なるものになる。
【００８４】
さらに、ハッシュ化されるパラメータセットの中には、仮想ブラウザプログラムのバージョン番号も含まれる。例えば、コンテナ管理部１２０の処理により、コンテナ情報に含まれる仮想ブラウザプログラムが新しいバージョンに更新される場合がある。その場合、新たなバージョンの仮想ブラウザプログラムに基づく仮想ブラウザ領域１７１ａの表示内容が変更される場合もある。例えば、上記のようなメニュー項目の内容が変更されたり、各メニュー項目の表示の仕方が変更される場合もある。
【００８５】
本実施の形態では、キャッシュ１５０の検索キーとして上記のようなパラメータセットに基づくハッシュ値１５４が用いられる。これにより、キャッシュヒットと判定され、キャッシュ１５０に保持された画面データ１５２に基づいてブラウザ５１のＷｅｂページ領域５１ｂに画像が表示された場合に、仮想ブラウザ１７１を用いた場合と同じ正しい状態でＷｅｂページを表示できるようになる。
【００８６】
なお、ハッシュ化されるパラメータセットに含まれる設定項目としては、上記の他、次のようなものも考えられる。例えば、仮想ブラウザ領域１７１ａの外枠領域に表示可能なステータスバー、お気に入りバー、コマンドバーのそれぞれについて、表示させるか否かを設定するための設定項目が考えられる。また、文字列の色、背景の色、フォントの種類を設定するための設定項目が考えられる。また、画像を表示させるか否か、リンクの下線を表示させるか否か、スムーズスクロールを使用するか否かを設定するための設定項目が考えられる。また、外枠領域のレイアウトを設定するための設定項目が考えられる。
【００８７】
以下、図７に戻って説明する。
スクロール操作データ１５５は、外部Ｗｅｂサーバ２２０のＷｅｂページの表示時に端末装置５０で入力された画面のスクロール操作の内容を示すデータである。次の図９で詳述するように、Ｗｅｂページ領域データ１５２ｂには、Ｗｅｂページが最初に仮想ブラウザ１７１で表示される際の初期画面のデータに加えて、スクロール操作が行われた場合に追加的に表示される画面のデータが含まれる場合がある。この場合、キャッシュゲートウェイ１３０は、Ｗｅｂページ領域データ１５２ｂとスクロール操作データ１５５とを用いて、スクロールされた状態のＷｅｂページの画像データを生成して端末装置５０に送信することができる。
【００８８】
ブラウザレイアウトデータ１５６は、仮想ブラウザ領域１７１ａの外枠領域に関する設定データである。このブラウザレイアウトデータ１５６は、キャッシュゲートウェイ１３０がキャッシュデータセット１５１に基づいて端末装置５０に送信する画像を生成する際に参照される。なお、ブラウザレイアウトデータ１５６は、対応するハッシュ値１５４の算出に用いられるパラメータセットに含まれていることが望ましい。
【００８９】
図９は、キャッシュデータセットに登録される画面データについて説明するための図である。キャッシュゲートウェイ１３０は、仮想ブラウザ１７１に表示され、画面生成部１７２によって生成された画像のデータを、外枠領域データ１５２ａとＷｅｂページ領域データ１５２ｂとに分離してキャッシュデータセット１５１に登録する。
【００９０】
外枠領域データ１５２ａは、仮想ブラウザ領域１７１ａのうち、Ｗｅｂページ領域１７１ｂを除く外枠領域１７１ｃの画像データである。図９では、外枠領域１７１ｃにハッチングを施して示している。外枠領域１７１ｃには、例えば、前述のメニュー項目の表示領域が含まれる。
【００９１】
また、キャッシュデータセット１５１ａに含まれるブラウザレイアウトデータ１５６は、外枠領域１７１ｃのレイアウトに関する設定データである。例えば、ブラウザレイアウトデータ１５６は、画素数Ｐｗ，Ｐｈ，Ｐｔ，Ｐｌ，Ｐｒを含む。画素数Ｐｗは、外枠領域１７１ｃの水平方向の画素数を示す。画素数Ｐｈは、外枠領域１７１ｃの垂直方向の画素数を示す。画素数Ｐｔは、外枠領域１７１ｃのうち上側領域の垂直方向の幅を示す。この上側領域は、例えば、メニュー項目の表示領域を含む場合がある。画素数Ｐｌは、外枠領域１７１ｃのうち左側領域の水平方向の幅を示す。画素数Ｐｒは、外枠領域１７１ｃのうち右側領域の水平方向の幅を示す。
【００９２】
一方、Ｗｅｂページ領域データ１５２ｂは、Ｗｅｂページ領域１７１ｂに表示されるＷｅｂページ画像１５２ｂ１のデータである。このＷｅｂページ画像１５２ｂ１には、少なくとも、Ｗｅｂページの表示開始時にＷｅｂページ領域１７１ｂに表示される初期表示領域１５２ｂ２の画像が含まれる。キャッシュゲートウェイ１３０は、仮想ブラウザ１７１によってＷｅｂページが表示されたとき、最初に、外枠領域１７１ｃの画像データと、Ｗｅｂページ領域１７１ｂに表示されている初期表示領域１５２ｂ２の画像データとを取得する。キャッシュゲートウェイ１３０は、前者の画像データを外枠領域データ１５２ａとして、後者の画像データをＷｅｂページ領域データ１５２ｂとして、キャッシュデータセット１５１に登録する。
【００９３】
また、端末装置５０でスクロール操作が行われると、仮想ブラウザ１７１は、Ｗｅｂページ領域１７１ｂに表示させるＷｅｂページ画像を、操作に応じたスクロール移動量の分だけ下方向にシフトする。これにより、Ｗｅｂページ領域１７１ｂの下側には新たな画像が追加的に表示される。例えば、図９に示すように、移動量Ｄ１のスクロール操作が行われた場合、垂直方向の大きさが移動量Ｄ１と同じになる追加表示領域１５２ｂ３の画像が、Ｗｅｂページ領域１７１ｂに追加的に表示される。
【００９４】
この場合、キャッシュゲートウェイ１３０は、追加表示領域１５２ｂ３の画像データを取得し、取得した画像データをＷｅｂページ領域データ１５２ｂに含めて登録する。これとともに、キャッシュゲートウェイ１３０は、移動量Ｄ１の情報（画素数）をスクロール操作データ１５５としてキャッシュデータセット１５１ａに追加登録する。
【００９５】
これにより、キャッシュゲートウェイ１３０は、キャッシュヒットし、キャッシュ１５０内の画面データ１５２を用いてブラウザ５１に画像を表示させた後、スクロール操作が行われた場合にも、画面データ１５２を用いて表示を継続させることができる可能性が生じる。例えば、キャッシュゲートウェイ１３０は、キャッシュヒットしたと判定したとき、Ｗｅｂページ画像１５２ｂ１のうち、初期表示領域１５２ｂ２の画像を切り出してブラウザ５１に画像を表示させる。
【００９６】
その後、例えば移動量Ｄ２（ただし、Ｄ２≦Ｄ１）のスクロール操作が行われたとする。すると、キャッシュゲートウェイ１３０は、Ｗｅｂページ画像１５２ｂ１のうち、初期表示領域１５２ｂ２を下方向に移動量Ｄ２だけシフトした領域１５２ｂ４の画像を切り出してブラウザ５１に表示させる。このとき、Ｗｅｂページ画像１５２ｂ１のうち水平方向のどの位置を切り出し位置とするかは、ブラウザレイアウトデータ１５６に含まれる画素数Ｐｈ，Ｐｔと、スクロール操作による移動量との関係から求められる。
【００９７】
以上のように、閲覧制御ゲートウェイ１００は、端末装置５０でスクロール操作が行われた場合に、キャッシュ１５０に記憶された画面データ１５２を用いてブラウザ５１におけるＷｅｂページの表示を継続させることができる可能性がある。これにより、キャッシュヒット率を向上させることができ、ユーザが外部Ｗｅｂサーバ２２０のＷｅｂページを閲覧しているときに、スクロール操作に対する応答速度を高めることができる。
【００９８】
次に、閲覧制御ゲートウェイ１００の処理についてフローチャートを用いて説明する。なお、以下の説明では、内部Ｗｅｂサーバ２１０から提供されるＷｅｂページを「内部Ｗｅｂページ」と記載し、外部Ｗｅｂサーバ２２０ａ，２２０ｂ，・・・のいずれかから提供されるＷｅｂページを「外部Ｗｅｂページ」と記載する。
【００９９】
図１０は、端末装置から新たなＷｅｂページへのリンクが要求された場合の処理手順の例を示すフローチャートである。
［ステップＳ２１］プロキシサーバ１１０は、端末装置５０のブラウザ５１からＷｅｂページ閲覧のためのＨＴＴＰリクエストを受信する。
【０１００】
［ステップＳ２２］プロキシサーバ１１０は、受信したＨＴＴＰリクエストからＵＲＬを抽出し、抽出されたＵＲＬに基づいて、閲覧が要求されたＷｅｂページが内部Ｗｅｂサーバと外部Ｗｅｂページのどちらかを判定する。内部Ｗｅｂページの閲覧が要求された場合、プロキシサーバ１１０はステップＳ２３の処理を実行する。一方、外部Ｗｅｂページの閲覧が要求された場合、プロキシサーバ１１０は、受信したＨＴＴＰリクエストをコンテナ管理部１２０に渡す。この場合、ステップＳ２５の処理が実行される。
【０１０１】
［ステップＳ２３］プロキシサーバ１１０は、受信したＨＴＴＰリクエストを内部Ｗｅｂサーバ２１０に転送して、内部Ｗｅｂサーバ２１０にアクセスする。
［ステップＳ２４］プロキシサーバ１１０は、内部Ｗｅｂサーバから返信されたＨＴＴＰレスポンスを受信し、端末装置５０のブラウザ５１に転送する。ブラウザ５１は、受信したＨＴＴＰレスポンスの内容に基づいて、Ｗｅｂページ領域５１ｂに内部Ｗｅｂページの画像を表示する。
【０１０２】
［ステップＳ２５］コンテナ管理部１２０は、コンテナ情報記憶部１４０からコンテナ情報を選択する。この選択は、次のようにして行われる。例えば、端末装置５０が閲覧制御ゲートウェイ１００に接続したときに、閲覧制御ゲートウェイ１００に対するユーザのログイン動作が行われたとする。この場合、コンテナ管理部１２０は、コンテナ情報記憶部１４０に含まれるコンテナ情報の中から、登録されたユーザ情報１４２が、ログイン動作で得られたユーザ情報（例えば、ユーザＩＤ）と一致するコンテナ情報を選択する。あるいは、コンテナ管理部１２０は、ログイン動作で得られたユーザ情報を基にユーザが属するユーザグループを特定する。コンテナ管理部１２０は、コンテナ情報記憶部１４０に含まれるコンテナ情報の中から、登録されたユーザ情報１４２に記載されたユーザグループが特定されたユーザグループと一致するコンテナ情報を選択する。あるいは、コンテナ管理部１２０は、コンテナ情報記憶部１４０に含まれるコンテナ情報の中から、端末装置５０のアドレスが記載されたユーザ情報１４２を含むコンテナ情報を選択する。
【０１０３】
ここでは、コンテナ情報１４１ａが選択されたものとする。コンテナ管理部１２０は、選択されたコンテナ情報１４１ａに基づいて、コンテナ１７０を起動させる。具体的には、コンテナ管理部１２０は、ＲＡＭ１０２上にコンテナ１７０に対応する一時的なユーザ空間を確保する。コンテナ管理部１２０は、確保されたユーザ空間に、コンテナ情報１４１ａに含まれるアプリケーションプログラム１４３，１４４，１４５を展開する。これにより、ユーザ空間を用いてアプリケーションプログラム１４３，１４４，１４５が実行され、仮想ブラウザ１７１、画面生成部１７２および画面転送制御部１７３が起動する。
【０１０４】
［ステップＳ２６］コンテナ管理部１２０は、起動したコンテナ１７０の識別情報をキャッシュゲートウェイ１３０に通知する。これにより、キャッシュゲートウェイ１３０は、コンテナ１７０上の画面転送制御部１７３と情報を受け渡すことが可能になる。
【０１０５】
図１１は、外部Ｗｅｂページへのリンクが要求された場合のキャッシュゲートウェイの処理手順の例を示すフローチャートである。キャッシュゲートウェイ１３０は、図１０のステップ２６での通知に応じて図１１の処理を開始する。
【０１０６】
［ステップＳ３１］キャッシュゲートウェイ１３０は、起動したコンテナ１７０上の画面転送制御部１７３に対して、アクセス先の外部ＷｅｂページのＵＲＬと、仮想ブラウザ１７１についてのパラメータセットとを要求する。キャッシュゲートウェイ１３０は、これらの情報を画面転送制御部１７３から取得する。
【０１０７】
［ステップＳ３２］キャッシュゲートウェイ１３０は、取得したパラメータセットを基にハッシュ値を算出する。
［ステップＳ３３］キャッシュゲートウェイ１３０は、取得したＵＲＬと算出されたハッシュ値とをキーとして、キャッシュ１５０を検索する。ＵＲＬとハッシュ値とが一致するキャッシュデータセットが見つかった場合、すなわちキャッシュヒットの場合には、キャッシュゲートウェイ１３０はステップＳ３８の処理を実行する。一方、ＵＲＬとハッシュ値とが一致するキャッシュデータセットが見つからなかった場合、すなわちキャッシュミスの場合には、キャッシュゲートウェイ１３０はステップＳ３４の処理を実行する。
【０１０８】
［ステップＳ３４］キャッシュゲートウェイ１３０は、画面転送制御部１７３に画面データの出力を指示する。
［ステップＳ３５］キャッシュゲートウェイ１３０は、画面転送制御部１７３からＷｅｂページの画面データを取得する。この画面データとしては、仮想ブラウザ１７１の外枠領域１７１ｃの画像データと、Ｗｅｂページ領域１７１ｂにおける初期表示領域１５２ｂ２の画像データとが取得される。
【０１０９】
［ステップＳ３６］キャッシュゲートウェイ１３０は、取得した画像データを合成して、仮想ブラウザ１７１にＷｅｂページの画像が組み込まれた画面の画像データを生成し、生成された画像データを端末装置５０の画面転送クライアント５２に送信する。これにより、送信された画像データに基づく画面がブラウザ５１に表示される。
【０１１０】
［ステップＳ３７］キャッシュゲートウェイ１３０は、ステップＳ３５で取得した画面データが、ステップＳ３１で取得したＵＲＬとステップＳ３２で算出されたハッシュ値とともに登録された新たなキャッシュデータセットを作成する。キャッシュゲートウェイ１３０は、作成されたキャッシュデータセットをキャッシュ１５０に格納する。
【０１１１】
［ステップＳ３８］ここでは、ステップＳ３３でキャッシュデータセット１５１ａが見つかったとする。キャッシュゲートウェイ１３０は、キャッシュデータセット１５１ａから画面データを取得する。ここでは、仮想ブラウザ１７１の外枠領域１７１ｃの画像データと、Ｗｅｂページ領域１７１ｂにおける初期表示領域１５２ｂ２の画像データとが取得される。
【０１１２】
［ステップＳ３９］キャッシュゲートウェイ１３０は、取得した画像データを合成して、仮想ブラウザ１７１にＷｅｂページの画像が組み込まれた画面の画像データを生成し、生成された画像データを端末装置５０の画面転送クライアント５２に送信する。これにより、送信された画像データに基づく画面がブラウザ５１に表示される。
【０１１３】
［ステップＳ４０］キャッシュゲートウェイ１３０は、ステップＳ３９で送信された画面データを画面転送制御部１７３に渡し、画面転送制御部１７３に画面の差分検出を指示する。
【０１１４】
［ステップＳ４１］キャッシュゲートウェイ１３０は、画面転送制御部１７３によって差分が検出された場合、ステップＳ４２の処理を実行する。一方、キャッシュゲートウェイ１３０は、画面転送制御部１７３によって差分が検出されなかった場合、処理を終了する。
【０１１５】
［ステップＳ４２］キャッシュゲートウェイ１３０は、差分に対応する差分画像のデータを画面転送制御部１７３から取得する。キャッシュゲートウェイ１３０は、ステップＳ３９で送信された画面データのうち、差分画像の領域の画像データを画面転送制御部１７３から取得したデータによって更新し、更新された画面データを端末装置５０の画面転送クライアント５２に送信する。これにより、ブラウザ５１に表示された画像のうち、差分画像の領域があらたな画像に更新される。
【０１１６】
［ステップＳ４３］キャッシュゲートウェイ１３０は、ステップＳ４２で更新された画面データによって、キャッシュデータセット１５１ａに登録された画面データを更新する。
【０１１７】
ステップＳ４０〜Ｓ４３の処理により、例えば、キャッシュヒットの場合でも、Ｗｅｂページの表示内容が以前の状態から変化した場合には、変化後のＷｅｂページ画面を端末装置５０に表示させることができる。これとともに、変化後のＷｅｂページ画面のデータをキャッシュ１５０に保持することができる。
【０１１８】
図１２は、起動したコンテナにおいて実行される処理手順の例を示すフローチャートである。図１０のステップＳ２５でコンテナ１７０が起動すると、起動したコンテナ１７０上で図１２の処理が実行される。また、図１２の処理は、図１１の処理と並行して実行される。
【０１１９】
［ステップＳ６１］仮想ブラウザ１７１は、コンテナ管理部１２０から受け取ったＨＴＴＰリクエストからＵＲＬを抽出する。
［ステップＳ６２］図１１のステップＳ３１の処理により、キャッシュゲートウェイ１３０から画面転送制御部１７３に対して、ＵＲＬとパラメータセットとが要求される。仮想ブラウザ１７１は、抽出されたＵＲＬと、仮想ブラウザ１７１についてのパラメータセットを、画面転送制御部１７３を介してキャッシュゲートウェイ１３０に通知する。
【０１２０】
［ステップＳ６３］仮想ブラウザ１７１は、抽出されたＵＲＬによって特定される外部Ｗｅｂサーバ２２０に対してＨＴＴＰリクエストを送信して、外部Ｗｅｂサーバ２２０にアクセスする。
【０１２１】
［ステップＳ６４］仮想ブラウザ１７１は、アクセス先の外部Ｗｅｂサーバ２２０から返信されたＨＴＴＰレスポンスを受信する。
［ステップＳ６５］仮想ブラウザ１７１は、ＨＴＴＰレスポンスを解析し、外部Ｗｅｂページの画面の描画を画面生成部１７２に指示する。画面生成部１７２は、仮想ブラウザ１７１上にＷｅｂページが表示された画面を描画し、その画面データを生成する。ここでは、仮想ブラウザ１７１の外枠領域１７１ｃの画像データと、Ｗｅｂページ領域１７１ｂにおける初期表示領域１５２ｂ２の画像データとが生成される。
【０１２２】
［ステップＳ６６］画面転送制御部１７３は、キャッシュゲートウェイ１３０から画面データの出力が指示されたか否かを判定する。この出力指示は、キャッシュミスの場合に、図１１のステップＳ３４の実行に応じて発行される。画面データの出力が指示された場合、画面転送制御部１７３はステップＳ６７の処理を実行する。一方、画面データの出力が指示されなかった場合、画面転送制御部１７３はステップＳ６８の処理を実行する。
【０１２３】
［ステップＳ６７］画面転送制御部１７３は、ステップＳ６５で生成された画面データをキャッシュゲートウェイ１３０に出力する。この場合、キャッシュゲートウェイ１３０は、出力された画面データを図１１のステップＳ３５で取得する。
【０１２４】
［ステップＳ６８］画面転送制御部１７３は、キャッシュゲートウェイ１３０から画面データを取得するとともに、差分検出の指示を受ける。この指示は、図１１のステップＳ４０の実行に応じて発行される。
【０１２５】
［ステップＳ６９］画面転送制御部１７３は、ステップＳ６５で生成された画面データに基づく画像と、ステップＳ６８でキャッシュゲートウェイ１３０から取得した画面データに基づく画像との差分領域を検出する。
【０１２６】
［ステップＳ７０］差分領域が検出された場合、画面転送制御部１７３はステップＳ７１の処理を実行する。一方、差分領域が検出されなかった場合、画面転送制御部１７３は、処理を終了する。
【０１２７】
［ステップＳ７１］画面転送制御部１７３は、検出された差分領域を示す画像データを、その位置情報とともにキャッシュゲートウェイ１３０に出力する。この場合、キャッシュゲートウェイ１３０は、出力された画像データを図１１のステップＳ４２で取得する。
【０１２８】
図１３は、キャッシュミスと判定され、かつスクロール操作が行われた場合のキャッシュゲートウェイの処理手順の例を示すフローチャートである。この図１３の処理は、図１１のステップＳ３７の処理が完了した後に実行される。
【０１２９】
［ステップＳ８１］ブラウザ５１のＷｅｂページ領域５１ｂの内部においてスクロール操作が行われると、閲覧制御ゲートウェイ１００は、そのスクロール操作の内容を示す情報を取得する。
【０１３０】
具体的には、画面転送クライアント５２は、スクロール操作に応じて、画面上の操作された位置を示す操作位置情報を送信する。キャッシュゲートウェイ１３０は、操作位置情報を受信して、画面転送制御部１７３を介して仮想ブラウザ１７１に通知する。仮想ブラウザ１７１は、操作位置情報に基づいてスクロール操作の内容を判別する。
【０１３１】
なお、スクロール操作自体は、図１１のステップＳ３１で外部Ｗｅｂページへのリンクが要求されてからステップＳ３７の処理が完了するまでの間に行われてもよい。
［ステップＳ８２］仮想ブラウザ１７１は、スクロール操作による画面の移動量の分だけ、Ｗｅｂページ領域１７１ｂに追加的に表示される追加表示領域の画像を、画面生成部１７２に描画させる。画面生成部１７２は、追加表示領域の画像を示す画像データを生成する。画面転送制御部１７３は、生成された画像データを、スクロール操作による画面の移動量とともにキャッシュゲートウェイ１３０に出力する。キャッシュゲートウェイ１３０は、これらの情報を取得する。
【０１３２】
［ステップＳ８３］キャッシュゲートウェイ１３０は、図１１のステップＳ３５で取得した画面データに、ステップＳ８２で取得した画像データをマージする。このとき、スクロール操作による移動量に相当する画面の上側領域の画像データは削除される。これによって、スクロール操作後のＷｅｂページ領域１７１ｂの画面データが生成される。キャッシュゲートウェイ１３０は、生成された画面データを端末装置５０の画面転送クライアント５２に送信する。これにより、ブラウザ５１のＷｅｂページ領域５１ｂに、スクロール操作後のＷｅｂページの画面が表示される。
【０１３３】
［ステップＳ８４］キャッシュゲートウェイ１３０は、追加表示領域の画像を示す画像データを、図１１のステップＳ３７でキャッシュ１５０に登録した画面データに追加して登録する。また、キャッシュゲートウェイ１３０は、スクロール操作による画面の移動量を、ステップＳ３７で登録したキャッシュデータセットにスクロール操作データ１５５として登録する。
【０１３４】
図１４は、キャッシュヒットと判定され、かつスクロール操作が行われた場合のキャッシュゲートウェイの処理手順の例を示すフローチャートである。この図１４の処理は、図１１のステップＳ４１で「Ｎｏ」と判定された後、またはステップＳ４３の処理が完了した後に実行される。
【０１３５】
［ステップＳ９１］ブラウザ５１のＷｅｂページ領域５１ｂの内部においてスクロール操作が行われると、閲覧制御ゲートウェイ１００は、図１３のステップＳ８１と同様の手順で、スクロール操作の内容を示す情報を取得する。なお、スクロール操作自体は、図１１のステップＳ３１で外部Ｗｅｂページへのリンクが要求されてから、ステップＳ４１で「Ｎｏ」と判定されるまでの間、またはステップＳ３７の処理が完了するまでの間に行われてもよい。
【０１３６】
［ステップＳ９２］画面転送制御部１７３は、仮想ブラウザ１７１によって判別された、スクロール操作による画面の移動量を、キャッシュゲートウェイ１３０に通知する。キャッシュゲートウェイ１３０は、通知された移動量と、図１１のステップＳ３３で見つけられたキャッシュデータセット１５１ａに登録されたスクロール操作データ１５５とを比較する。キャッシュゲートウェイ１３０は、比較結果に基づいて、Ｗｅｂページ領域１７１ｂに移動量の分だけ追加的に表示される追加表示領域の画像データが、キャッシュデータセット１５１ａに登録されているか否かを判定する。
【０１３７】
ここで、スクロール操作データ１５５が登録されていない場合、追加表示領域の画像データもキャッシュデータセット１５１ａに登録されていない。この場合、キャッシュゲートウェイ１３０は、ステップＳ９５の処理を実行する。また、キャッシュゲートウェイ１３０は、通知された移動量が、スクロール操作データ１５５に含まれる移動量以下の場合、追加表示領域の画像データが登録されていると判定して、ステップＳ９３の処理を実行する。一方、キャッシュゲートウェイ１３０は、通知された移動量が、スクロール操作データ１５５に含まれる移動量より大きい場合、追加表示領域の画像データの少なくとも一部が登録されていないと判定して、ステップＳ９５の処理を実行する。
【０１３８】
［ステップＳ９３］キャッシュゲートウェイ１３０は、追加表示領域の画像データを、キャッシュデータセット１５１ａに登録されたＷｅｂページ領域データ１５２ｂから切り出す。
【０１３９】
［ステップＳ９４］キャッシュゲートウェイ１３０は、図１１のステップＳ３８で取得した画面データに、Ｗｅｂページ領域データ１５２ｂから切り出した追加表示領域の画像データをマージする。このとき、スクロール操作による移動量に相当する画面の上側領域の画像データは削除される。これによって、スクロール操作後のＷｅｂページ領域１７１ｂの画面データが生成される。キャッシュゲートウェイ１３０は、生成された画面データを端末装置５０の画面転送クライアント５２に送信する。これにより、ブラウザ５１のＷｅｂページ領域５１ｂに、スクロール操作後のＷｅｂページの画面が表示される。
【０１４０】
以上のステップＳ９３，Ｓ９４によれば、キャッシュ１５０に登録された画面データを用いてスクロール操作後の画面データを生成し、端末装置５０に送信するので、スクロール操作後の画面を短時間で端末装置５０で表示できる。
【０１４１】
［ステップＳ９５］キャッシュゲートウェイ１３０は、追加表示領域の画像データの出力を、画面転送制御部１７３を介して仮想ブラウザ１７１に要求する。仮想ブラウザ１７１は、追加表示領域の画像を画面生成部１７２に描画させる。画面生成部１７２は、追加表示領域の画像を示す画像データを生成する。画面転送制御部１７３は、生成された画像データをキャッシュゲートウェイ１３０に出力する。キャッシュゲートウェイ１３０は、これらの情報を取得する。
【０１４２】
［ステップＳ９６］キャッシュゲートウェイ１３０は、図１１のステップＳ３８で取得した画面データに、ステップＳ９５で取得した画像データをマージする。このとき、スクロール操作による移動量に相当する画面の上側領域の画像データは削除される。これによって、スクロール操作後のＷｅｂページ領域１７１ｂの画面データが生成される。キャッシュゲートウェイ１３０は、生成された画面データを端末装置５０の画面転送クライアント５２に送信する。これにより、ブラウザ５１のＷｅｂページ領域５１ｂに、スクロール操作後のＷｅｂページの画面が表示される。
【０１４３】
［ステップＳ９７］キャッシュゲートウェイ１３０は、追加表示領域の画像を示す画像データを、キャッシュデータセット１５１ａに登録されたＷｅｂページ領域データ１５２ｂに対して追加して登録する。また、キャッシュゲートウェイ１３０は、スクロール操作による画面の移動量を、キャッシュデータセット１５１ａにスクロール操作データ１５５として登録する。
【０１４４】
図１５は、外部Ｗｅｂページから外部Ｗｅｂページへリンクする場合の処理手順の例を示すフローチャートである。
［ステップＳ１１１］例えば、ブラウザ５１のＷｅｂページ領域５１ｂにおいて外部Ｗｅｂページが表示されている状態から、外部Ｗｅｂページ上のリンク画像に対する選択操作が行われたとする。画面転送クライアント５２は、選択操作された位置を示す選択位置情報を閲覧制御ゲートウェイ１００に送信する。閲覧制御ゲートウェイ１００において、キャッシュゲートウェイ１３０は、選択位置情報を受信する。
【０１４５】
［ステップＳ１１２］キャッシュゲートウェイ１３０は、選択位置情報を、画面転送制御部１７３を介して仮想ブラウザ１７１に通知する。仮想ブラウザ１７１は、選択位置情報に基づいて、リンク画像に対する選択操作が行われたことを認識する。
【０１４６】
［ステップＳ１１３］キャッシュゲートウェイ１３０は、図１１の処理を実行する。また、コンテナ１７０においては図１２の処理が実行される。図１２のステップＳ６１では、選択操作が行われたリンク画像に対応するＵＲＬが抽出される。
【０１４７】
〔第２の実施の形態の変形例〕
第２の実施の形態に係るＷｅｂ閲覧システムは、以下のように変形することもできる。以下、変形例について、図５と同様の符号を用いて説明する。
【０１４８】
第２の実施の形態では、外部Ｗｅｂページの閲覧が要求されたとき、ユーザ、ユーザグループ、端末装置５０のアドレスのいずれかに基づいて、起動するコンテナが選択された。これに対して、変形例では、仮想ブラウザプログラムについてのパラメータセットの内容が異なる複数のコンテナ情報を、あらかじめコンテナ情報記憶部１４０に登録しておく。そして、コンテナ情報を選択する際に、登録されたパラメータセットに基づくハッシュ値が、キャッシュ１５０に登録されたハッシュ値と一致するコンテナ情報を選択し、選択したコンテナ情報に基づいてコンテナ１７０を起動する。これにより、キャッシュヒットとなるコンテナ１７０を起動することができる。
【０１４９】
図１６は、コンテナ情報記憶部に格納されるデータの例を示す図である。コンテナ情報記憶部１４０には、それぞれ個別のコンテナ１７０を起動するためのコンテナ情報１４１−１ａ，１４１−１ｂ，・・・が記憶される。コンテナ情報１４１−１ａ，１４１−１ｂ，・・・はそれぞれ、図６と同様に、アプリケーションプログラム１４３，１４４，１４５およびパラメータセット１４３ａ，１４４ａ，１４５ａを含む。ただし、仮想ブラウザプログラムについてのパラメータセットの内容は、コンテナ情報１４１−１ａ，１４１−１ｂ，・・・のそれぞれにおいて異なる。
【０１５０】
また、コンテナ情報１４１−１ａ，１４１−１ｂ，・・・には、ユーザ情報１４２の代わりにハッシュ値１４６が登録される。ハッシュ値１４６は、仮想ブラウザプログラムについてのパラメータセットに基づいて算出されたハッシュ値である。コンテナ情報１４１−１ａ，１４１−１ｂ，・・・のそれぞれにおいては、ハッシュ値１４６もすべて異なる値となる。
【０１５１】
図１７は、外部Ｗｅｂページへのリンクが要求された場合の処理手順の例を示すフローチャートである。図１０のステップＳ２１，Ｓ２２の処理が実行されて、プロキシサーバ１１０が外部Ｗｅｂページの閲覧が要求されたと判定し、ＨＴＴＰリクエストをコンテナ管理部１２０に渡すと、図１７の処理が開始される。
【０１５２】
［ステップＳ１３１］コンテナ管理部１２０は、ＨＴＴＰリクエストからＵＲＬを抽出し、キャッシュゲートウェイ１３０に通知する。
［ステップＳ１３２］キャッシュゲートウェイ１３０は、通知されたＵＲＬをキーとしてキャッシュ１５０を検索する。ＵＲＬが一致するキャッシュデータセットが見つかった場合（ＵＲＬがヒットした場合）、キャッシュゲートウェイ１３０はステップＳ１３３の処理を実行する。一方、ＵＲＬが一致するキャッシュデータセットが見つからなかった場合、キャッシュゲートウェイ１３０は、そのことをコンテナ管理部１２０に通知し、図１１のステップＳ３４以降の処理を開始する。また、コンテナ管理部１２０によってステップＳ１３７の処理が実行される。
【０１５３】
［ステップＳ１３３］キャッシュゲートウェイ１３０は、ステップＳ１３２で見つかったキャッシュデータセットからハッシュ値を読み込み、コンテナ管理部１２０に通知する。コンテナ管理部１２０は、通知されたハッシュ値をキーとしてコンテナ情報記憶部１４０を検索する。通知されたハッシュ値が登録されたコンテナ情報が見つかった場合、コンテナ管理部１２０はステップＳ１３４の処理を実行する。一方、通知されたハッシュ値が登録されたコンテナ情報が見つからなかった場合、コンテナ管理部１２０はステップＳ１３６の処理を実行する。
【０１５４】
［ステップＳ１３４］コンテナ管理部１２０は、通知されたハッシュ値が登録されたコンテナ情報が見つかったことをキャッシュゲートウェイ１３０に通知する。この場合、キャッシュヒットしたことになり、利用すべきキャッシュデータセットが特定される。キャッシュゲートウェイ１３０は、特定されたキャッシュデータセットを用い、図１１のステップＳ３８以降の処理を開始する。
【０１５５】
［ステップＳ１３５］コンテナ管理部１２０は、ステップＳ１３３で見つかったコンテナ情報を選択し、選択されたコンテナ情報に基づいてコンテナ１７０を起動する。これにより、起動したコンテナ１７０を用いて図１２の処理が開始される。ただし、図１２のステップＳ６２の処理はスキップされる。
【０１５６】
［ステップＳ１３６］コンテナ管理部１２０は、通知されたハッシュ値が登録されたコンテナ情報が見つからなかったことをキャッシュゲートウェイ１３０に通知する。この場合、キャッシュミスしたことになり、キャッシュゲートウェイ１３０は、図１１のステップＳ３４以降の処理を開始する。
【０１５７】
［ステップＳ１３７］コンテナ管理部１２０は、コンテナ情報記憶部１４０に登録されたいずれかのコンテナ情報を選択し、選択されたコンテナ情報に基づいてコンテナ１７０を起動する。これにより、起動したコンテナ１７０を用いて図１２の処理が開始される。
【０１５８】
以上の変形例によれば、キャッシュヒットとなるコンテナ（すなわち、Ｗｅｂページ画面を正しいレイアウトで表示可能なコンテナ）を起動可能である場合には、そのコンテナが起動される。これにより、キャッシュ１５０に登録された画面データを用いてＷｅｂページの画面データを端末装置５０に転送することができる。
【０１５９】
なお、上記の各実施の形態に示した装置（例えば、画像転送装置１および閲覧制御ゲートウェイ１００）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１６０】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１６１】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【０１６２】
１  画像転送装置
１ａ  記憶部
１ｂ  演算部
２  端末装置
３  サーバ装置
１０ａ，１０ｂ，１０ｃ  データ群
１１  画像データ
１２  アドレス
１３  設定情報
２０  仮想ブラウザ
２１  画面
【図１】
2018055314.tif 000003
【図２】
2018055314.tif 000004
【図３】
2018055314.tif 000005
【図４】
2018055314.tif 000006
【図５】
2018055314.tif 000007
【図６】
2018055314.tif 000008
【図７】
2018055314.tif 000009
【図８】
2018055314.tif 000010
【図９】
2018055314.tif 000011
【図１０】
2018055314.tif 000012
【図１１】
2018055314.tif 000013
【図１２】
2018055314.tif 000014
【図１３】
2018055314.tif 000015
【図１４】
2018055314.tif 000016
【図１５】
2018055314.tif 000017
【図１６】
2018055314.tif 000018
【図１７】
2018055314.tif 000019