JP2022077175A - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP2022077175A
JP2022077175A JP2020187884A JP2020187884A JP2022077175A JP 2022077175 A JP2022077175 A JP 2022077175A JP 2020187884 A JP2020187884 A JP 2020187884A JP 2020187884 A JP2020187884 A JP 2020187884A JP 2022077175 A JP2022077175 A JP 2022077175A
Authority
JP
Japan
Prior art keywords
web page
received
cache
url
storage
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
JP2020187884A
Other languages
English (en)
Inventor
睦 池田
Mutsumi Ikeda
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2020187884A priority Critical patent/JP2022077175A/ja
Priority to US17/517,454 priority patent/US11622027B2/en
Publication of JP2022077175A publication Critical patent/JP2022077175A/ja
Pending legal-status Critical Current

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/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • H04L67/5683Storage of data provided by user terminals, i.e. reverse 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】複数のユーザがキャッシュデータを共有できるようにする。【解決手段】情報処理装置は、通信端末からWebページのURLを、複数の仮想マシンのうちのいずれかの仮想マシンにより受信し、URLを受信した仮想マシンにより、受信されたURLのWebページのキャッシュデータが存在しない場合には、受信されたURLからWebページを受信し、受信されたWebページのキャッシュデータを複数の仮想マシンが利用可能になるように保存し、受信されたWebページを描画し、Webページの描画結果を通信端末に送信し、受信されたURLのWebページのキャッシュデータが存在する場合には、Webページを描画し、Webページの描画結果を通信端末に送信する。【選択図】図4

Description

本発明は、情報処理装置、情報処理方法およびプログラムに関する。
現在、Webブラウザ(以下、ブラウザ)を搭載し、そのブラウザ上でWebページを閲覧できる機能を有する通信端末が普及している。ブラウザを通して外部サービスのWebページを表示することにより、通信端末が外部サービスと連携できるようになる。
ところで、ブラウザの形態として、クラウドサーバ上でWebページの描画結果を生成し、その結果を通信端末に送信し、通信端末側でその描画結果を表示するクラウドブラウザと呼ばれる形態がある。Webページの解析処理や実行処理といった計算負荷の高い処理をクラウドサーバ上で実行することにより、通信端末に計算負荷がかからなくなる。
クラウドブラウザでは、ブラウザは、クラウドサーバ上で稼働する仮想マシン上で稼働する。仮想マシンには、コンピュータに必要とされる様々な機器リソースが仮想的に割り当てられる。このため、仮想マシン上で稼働するブラウザは、コンピュータ上で稼働する場合と同じように動作することができる。クラウドブラウザの中には、描画結果を表示する際に、複数のディスプレイを組合せて大型ディスプレイとして表示する方法が知られている(特許文献1参照)。
特許第6354195号公報
特許文献1では、複数の通信端末に対して、単一の仮想マシン上で稼働するブラウザを利用している。しかしながら、複数のユーザがクラウドブラウザを同時に利用できるようにする場合、外部サイトへのネットワークアクセスが増加してしまう問題がある。
例えば、複数のユーザがクラウドブラウザを同時に利用できるようにする場合、クラウドサーバ上に仮想マシンを複数用意して、ロードバランサにより利用する仮想マシンを振り分ける。具体的には、第1の仮想マシンと第2の仮想マシンが用意されているとする。このとき、第1の仮想マシンと第2の仮想マシンでは、同じブラウザが稼働している。
このとき、ブラウザが第1の外部サイトにアクセスしたとする。ブラウザは、第1の外部サイトに対するキャッシュを生成し、次回以降、第1の外部サイトにアクセスする際は、ネットワーク通信せずに、キャッシュから第1の外部サイトのデータを取得する。
ここで、JohnとTerryの2人のクラウドブラウザのユーザがいるとする。Johnが最初にクラウドブラウザを利用したとき、ロードバランサは、第1の仮想マシンに処理を依頼する。このとき、ブラウザは、第1の仮想マシン上に第1の外部サイトのキャッシュを生成し、その中にWebページのデータを保持する。
次に、Terryがクラウドブラウザを利用したとき、ロードバランサは、第2の仮想マシンに処理を依頼する。このとき、ブラウザは、第2の仮想マシン上で第1の外部サイトのキャッシュを参照するが、第2の仮想マシン上に該当するキャッシュは存在しないため、ネットワーク通信が発生してしまう。このため、複数のユーザがクラウドブラウザを利用する際に、異なるユーザが既存のキャッシュを共有できる方法が望まれている。
本発明の目的は、複数のユーザがクラウドブラウザを利用した場合であっても、複数のユーザがキャッシュデータを共有し、ネットワーク負荷を低減させることができるようにすることである。
本発明の情報処理装置は、複数の仮想マシンを有し、前記複数の仮想マシンのいずれかにおいて描画を要求されたWebページのキャッシュデータを前記複数の仮想マシンが利用可能になるように保存する保存手段と、前記複数の仮想マシンのうちの第1の仮想マシンにおいて第1のWebページの描画を要求された場合において、前記複数の仮想マシンのうちの第2の仮想マシンにおいて描画された前記第1のWebページのキャッシュデータが前記保存手段により保存されている場合、当該キャッシュデータに基づいて前記第1のWebページを描画する第1の描画手段と、前記第1の仮想マシンにおいて前記第1のWebページの描画を要求された場合において、前記第1のWebページのキャッシュデータが前記保存手段により保存されていない場合、Webサーバから取得されるリソースに基づいて前記第1のWebページを描画する第2の描画手段と、前記第1の描画手段または前記第2の描画手段による描画結果を、描画を要求した通信端末に送信する送信手段と、を有する。
本発明の他の態様の情報処理装置は、ブラウザがそれぞれ稼働する複数の仮想マシンを有する情報処理装置であって、通信端末からWebページのURLを、前記複数の仮想マシンのうちのいずれかの仮想マシンにより受信する第1の受信手段と、前記URLを受信した仮想マシンにより、前記第1の受信手段により受信されたURLのWebページのキャッシュデータが存在しない場合には、前記第1の受信手段により受信されたURLからWebページを受信する第2の受信手段と、前記URLを受信した仮想マシンにより、前記第2の受信手段により受信されたWebページのキャッシュデータを前記複数の仮想マシンが利用可能になるように保存する保存手段と、前記URLを受信した仮想マシンにより、前記第2の受信手段により受信されたWebページを描画し、前記Webページの描画結果を前記通信端末に送信する第1の送信手段と、前記URLを受信した仮想マシンにより、前記第1の受信手段により受信されたURLのWebページのキャッシュデータが存在する場合には、前記Webページを描画し、前記Webページの描画結果を前記通信端末に送信する第2の送信手段と、を有する。
本発明によれば、複数のユーザがクラウドブラウザを利用した場合であっても、複数のユーザがキャッシュデータを共有し、ネットワーク負荷を低減させることができる。
仮想マシンのハードウェア構成例を示す図である。 情報処理システムの構成例を示す図である。 情報処理システムの構成例を示す図である。 情報処理システムの構成例を示す図である。 Webページをリクエストする際のフローチャートである。 管理テーブルとキャッシュデータセットの例を示す図である。 Webページのデータを受信する際のフローチャートである。 SG_01用キャッシュストレージを更新する前後の例を示す図である。 情報処理システムの構成例を示す図である。 Webページをリクエストする際のフローチャートである。 管理テーブルとキャッシュデータセットの例を示す図である。 情報処理システムの構成例を示す図である。 Webページのデータを受信する際のフローチャートである。 情報処理システムの構成例を示す図である。 Webページのデータを受信する際のフローチャートである。 キャッシュデータを統合する際のフローチャートである。 John用キャッシュストレージを更新する前後の例を示す図である。 SG_01用キャッシュストレージを更新する前後の例を示す図である。
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関る本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一な構成については、同じ符号を付して説明する。
(第1の実施形態)
第1の実施形態では、キャッシュデータが複数のユーザ間で共有できるか否かに応じてストレージを切り替える例を説明する。キャッシュを複数のユーザ間で共有できるか否かの基準として、RFC7234で規定されているCache-Controlヘッダがある。Cache-Controlヘッダの値にpublicとprivateがある。publicは、複数のユーザ間で共有できるキャッシュであり、privateは、特定ユーザのみアクセスできるキャッシュである。
図1は、第1の実施形態による仮想マシン100のハードウェア構成例を示す図である。仮想マシン100は、CPU101と、ROM102と、RAM103と、インタフェース104と、バス105を有する。
CPU101は、Central Processing Unitであり、仮想マシン100を制御する。ROM102は、Read Only Memoryであり、変更を必要としないプログラムやパラメータを格納する。RAM103は、Random Access Memoryであり、外部装置などから供給されるプログラムやデータを一時記憶する。インタフェース104は、保持するデータや供給されたデータを表示するためのインタフェースである。バス105は、CPU101とROM102とRAM103とインタフェース104を通信可能に接続するシステムバスである。なお、仮想マシン100は、いわゆる仮想化技術により構成され得るもので、コンピュータシステムを構成する様々な資源を、物理的な構成とは独立に論理的な単位に編成することが可能である。即ち、複数の資源を統合して仮想マシン100を構成したり、一つの資源を分割してその一つを仮想マシン100として構成したりすることが可能である。即ち、クラウドシステムを構成する情報処理システムの複数の資源(複数の装置により構成され得る)の少なくとも一部を用いて仮想マシン100を構成することができる。
なお、仮想マシン100は、ユーザからの操作を受けてデータを入力するマウスなどのポインティングデバイスやキーボードなどの入力デバイスとのインタフェース等を有してもよい。また、仮想マシン100は、仮想マシン100に固定して設置されたハードディスクやメモリカード等を有してもよい。また、仮想マシン100は、仮想マシン100から着脱可能なフレキシブルディスク(FD)やコンパクトディスク(CD)等の光ディスク、磁気や光カード、ICカード、メモリカードなどを含む外部記憶装置等を有してもよい。また、仮想マシン100は、インターネットなどのネットワーク回線に接続するためのネットワークインターフェイス等を有してもよい。
図2は、従来の情報処理システムの構成例を示す図である。情報処理システムは、通信端末201と、画像生成システム203と、Webサーバ207を有する。画像生成システム203は、ゲートウェイ204と、仮想マシン205を有する。
ユーザは、通信端末201の画面を閲覧しており、通信端末201からアクセスしたいWebページ202のURLを画像生成システム203に送信する。画像生成システム203は、クラウドブラウザである。次に、画像生成システム203は、Webサーバ207のWebページ202にアクセスし、Webページ202の描画結果を生成する。その後、画像生成システム203は、生成したWebページ202の描画結果を通信端末201に返送し、通信端末201は、ユーザにWebページ202の描画結果を提示する。
画像生成システム203は、ゲートウェイ204と仮想マシン205を有する。ブラウザ206は、仮想マシン205上で稼働し、Webページ202の描画結果を生成する。通信端末201と仮想マシン205の通信、および、Webサーバ207と仮想マシン205の通信は、ゲートウェイ204を通して行われる。
図3は、クラウドブラウザの可用性を向上させる情報処理システムの構成例を示す図である。図3の情報処理システムは、図2の情報処理システムに対して、ロードバランサ301と、仮想マシン302を追加したものである。画像生成システム203は、ゲートウェイ204と、仮想マシン205と、ロードバランサ301と、仮想マシン302を有する。
ロードバランサ301は、ゲートウェイ204を通過する通信量や通信の特性に応じて、仮想マシン205と仮想マシン302のどちらを起動するかを判断する。仮想マシン302では、ブラウザ303が稼働する。図3を見て分かる通り、ブラウザ206とブラウザ303は、ローカルファイルの共有ができない。
図4は、第1の実施形態による情報処理システムの構成例を示す図である。情報処理システムは、通信端末201と、画像生成システム203と、Webサーバ207を有する。画像生成システム203は、クラウドブラウザの機能を提供可能なクラウドシステムである。画像生成システム203は、ゲートウェイ204と、ロードバランサ301と、仮想マシン205と、仮想マシン302を有する。なお、画像生成システム203の構成要素であるゲートウェイ20やロードバランサ301が複数であってもよい。また、画像生成システム203が仮想マシンを3つ以上構成する形態であってもよい。さらに、画像生成システム203は、管理テーブル403と、John用キャッシュストレージ404と、SG_01用キャッシュストレージ405と、SG_02用キャッシュストレージ406を有する。John用キャッシュストレージ404は、個人用のストレージであり、ここでユーザであるJohn用のキャッシュストレージである。SG_01用キャッシュストレージ405は、所属グループ用のストレージであり、ここで所属グループであるSG_01用のキャッシュストレージである。SG_02用キャッシュストレージ406は、所属グループ用のストレージであり、ここで所属グループであるSG_02用のキャッシュストレージである。画像生成システム203は、情報処理装置の一例である。なお、画像生成システム203は、複数の装置により構成され得る。仮想マシン205は、ブラウザ206と、キャッシュ入出力部401を有する。仮想マシン302は、ブラウザ303と、キャッシュ入出力部402を有する。なお、本実施形態に係る情報処理システムを、通信端末201と、Webサーバ207とを備える構成として説明するが、画像生成システム203のみにより構成してもよい。
ここで、Amazon Web Services(登録商標)を例として、キャッシュストレージの具体例を説明する。Amazon Web Servicesでは、ストレージが多数用意されている。Amazon Aurora(登録商標)は、クラウド向けリレーショナルデータベース管理システムである。そのため、Amazon Auroraは、相互に関連があるデータセットを記憶するJohn用キャッシュストレージ404とSG_01用キャッシュストレージ405とSG_02用キャッシュストレージ406の管理に適している。
図5は、本実施形態におけるWebページ202をリクエストする際のフローチャートである。以下、画像生成システム203の情報処理方法を説明する。
ステップS501では、仮想マシン205のブラウザ206は、ゲートウェイ204とロードバランサ301を介して、通信端末201からWebページ202のURLを受信する。Webページ202のURLは、ゲートウェイ204を通り、ロードバランサ301を通って、ブラウザ206に到達する。ここで、ロードバランサ301は、仮想マシン205を指定したとする。
ここで、クラウドブラウザを利用しているユーザは、Johnとする。また、Johnが通信端末201上で表示したいWebページ202のURLは、“http://example.com/a.png”とする。さらに、Johnがクラウドブラウザを利用した日時は、“Wed, 1 Apr 2020 10:00:00 GMT”とする。
次に、ステップS502では、仮想マシン205のキャッシュ入出力部401は、通信端末201のユーザJohnの所属グループを検索する。管理テーブル403には、ユーザと所属グループとの対応関係が記録されている。
図6(A)は、管理テーブル403の例を示す図である。管理テーブル403には、ユーザ名とストレージ名(所属グループ)との対応関係が記録されている。User Nameは、JohnやTerryといったユーザ名を列挙したものである。また、Storage Nameは、SG_01やSG_02のようにキャッシュストレージの名前を示したものである。図6(A)を見ると、ユーザJohnは、StorageNameがSG_01のグループに所属していると分かる。この場合、ユーザJohnが利用するキャッシュは、SG_01用キャッシュストレージ405に格納される。
次に、ステップS503では、キャッシュ入出力部401は、ステップS502で取得した所属グループ用のキャッシュストレージが存在するか否かを判定する。ユーザJohnの所属グループ用のキャッシュストレージは、SG_01用キャッシュストレージ405である。キャッシュ入出力部401は、所属グループ用のキャッシュストレージが存在する場合には、ステップS504に進み、所属グループ用のキャッシュストレージが存在しない場合には、ステップS510に進む。
画像生成システム203では、ユーザJohnの所属グループSG_01用のキャッシュストレージ405が存在するが、ユーザがJoeだった場合、図6(A)の管理テーブル403には、Joeの所属グループがないため、処理がS510に進む。
ステップS504では、キャッシュ入出力部401は、ステップS503で取得した所属グループのキャッシュストレージに、受信したURLのWebページのキャッシュデータがあるか否かを判定する。
図6(B)および(C)は、キャッシュストレージに保存されたキャッシュデータセットの例を示す図である。図6(B)は、SG_01用キャッシュストレージ405に格納されたキャッシュデータセットを示す。図6(C)は、SG_02用キャッシュストレージ406に格納されたキャッシュデータセットを示す。図6(B)と図6(C)において、URLは、キャッシュしたWebページのURLである。Date/Timeは、キャッシュされた日時である。Header Informationは、前回リクエスト時にレスポンスとして返却されたレスポンスヘッダの情報である。Cached Dataは、キャッシュデータである。
ここで、Header Informationには、キャッシュに関わるヘッダの情報のみ格納しても良いし、リクエスト時のリクエストヘッダの情報を加えても良い。ここでは、このURLとHeader InformationとCached Dataのセットをキャッシュデータセットと呼ぶ。また、Cached Dataには、Webページを構成するHTML文書、JavaScript(登録商標)、CSSファイル、外部フォント、および画像などが記憶される。
Johnがクラウドブラウザを利用して表示したいURLは“http://example.com/a.png”であるので、図6(B)を見ると、そのURLのキャッシュデータが存在することが分かる。
キャッシュ入出力部401は、所属グループのキャッシュストレージに受信したURLのWebページのキャッシュデータがある場合には、ステップS505に進む。また、キャッシュ入出力部401は、所属グループのキャッシュストレージに受信したURLのWebページのキャッシュデータがない場合には、ステップS510に進む。
ステップS505では、キャッシュ入出力部401は、所属グループのキャッシュストレージにあるURLのヘッダ情報内のキャッシュの有効期限を取得する。図6(B)の“http://example.com/a.png”のHeader Informationを見ると、このキャッシュは取得してから24時間の間は有効であると分かる。
次に、ステップS506では、キャッシュ入出力部401は、ステップS505で取得した有効期限が切れているか否かを判定する。図6(B)の“http://example.com/a.png”のDate/Timeは、“Wed, 1 Apr 2020 00:00:00 GMT”である。また、Johnがクラウドブラウザを利用した日時は、“Wed, 1 Apr 2020 10:00:00 GMT”である。そのため、キャッシュされてから24時間以内にJohnがクラウドブラウザを利用したことが分かる。よって、このキャッシュは、有効期限内であると判定される。
キャッシュ入出力部401は、ステップS505で取得した有効期限が切れていない場合には、ステップS507に進み、ステップS505で取得した有効期限が切れている場合には、ステップS508に進む。
ステップS507では、キャッシュ入出力部401は、所属グループのキャッシュストレージからキャッシュデータ(Cached Data)を取得し、図7のフローチャートに進む。
ステップS508では、キャッシュ入出力部401は、所属グループのキャッシュストレージからキャッシュデータセットを破棄し、ステップS509に進む。
ステップS509では、仮想マシン205は、ゲートウェイ204とロードバランサ301を介して、受信したURLを基に、受信したURLのWebページのリクエストをWebサーバ207に送信する。そして、仮想マシン205は、ゲートウェイ204とロードバランサ301を介して、リクエストに対するレスポンスデータとして、Webサーバ207からWebページ202を受信し、図7のフローチャートに進む。
ステップS510では、キャッシュ入出力部401は、通信端末201のユーザの個人用キャッシュストレージがあるか否かを判定する。ユーザの個人用キャッシュストレージは、例えば、John用キャッシュストレージ404である。キャッシュ入出力部401は、通信端末201のユーザの個人用キャッシュストレージがある場合には、ステップS511に進み、通信端末201のユーザの個人用キャッシュストレージがない場合には、ステップS509に進む。ステップS509の処理は、上記と同様である。
ステップS511では、キャッシュ入出力部401は、ユーザの個人用キャッシュストレージに、受信したURLのWebページのキャッシュデータが存在するか否かを判定する。ここで、キャッシュ入出力部401は、ステップS504と同様に、キャッシュデータセットを参照して判定する。キャッシュ入出力部401は、ユーザの個人用キャッシュストレージに、受信したURLのWebページのキャッシュデータが存在する場合には、ステップS505に進む。ステップS505以降では、キャッシュ入出力部401は、ユーザの個人用キャッシュストレージを用いて、上記と同様の処理を行う。キャッシュ入出力部401は、ユーザの個人用キャッシュストレージに、受信したURLのWebページのキャッシュデータが存在しない場合には、ステップS509に進む。ステップS509の処理は、上記と同様である。
図7は、図5のフローチャートの後の処理を示すフローチャートである。ステップS701では、キャッシュ入出力部401は、前のステップがステップS507である場合には、ステップS708に進む。また、キャッシュ入出力部401は、前のステップがステップS509である場合には、ステップS509のレスポンスデータ(Webページ202)をキャッシュすべきであるか否かを判定する。
ここで、クラウドブラウザを利用しているユーザは、Johnとする。また、Johnが通信端末201上で表示したいWebページのURLは、“http://example.com/a.png”とする。さらに、Johnがクラウドブラウザを利用した日時は、“Wed, 1 Apr 2020 10:00:00 GMT”とする。また、レスポンスヘッダは“Cache-Control: public,max-age=86400”とする。
ステップS701では、キャッシュ入出力部401は、レスポンスヘッダのCache-Controlヘッダの値や、Expiresヘッダの値を参照する。例えば、Cache-Controlヘッダの値がno-storeとなっていた場合、キャッシュ入出力部401は、レスポンスデータ(Webページ202)をキャッシュしてはならない。キャッシュすべきか否かの判断の詳細は、RFC 7234の記述に従う。
キャッシュ入出力部401は、レスポンスデータ(Webページ202)をキャッシュすべきであると判定した場合には、ステップS702に進む。また、キャッシュ入出力部401は、レスポンスデータ(Webページ202)をキャッシュすべきでないと判定した場合には、ステップS708に進む。
ステップS702では、キャッシュ入出力部401は、レスポンスデータ(Webページ202)を他のユーザと共有可能であるか否かを判定する。キャッシュ入出力部401は、Cache-Controlヘッダにpublicと記載されているか否かを基に、レスポンスデータ(Webページ202)を他のユーザと共有可能であるか否かを判定する。上記のCache-Controlヘッダには、publicと記載されているため、共有可能となる。キャッシュ入出力部401は、レスポンスデータ(Webページ202)を他のユーザと共有可能である場合には、ステップS703に進み、レスポンスデータ(Webページ202)を他のユーザと共有可能でない場合には、ステップS711に進む。
ステップS703では、キャッシュ入出力部401は、ステップS502と同様に、通信端末201のユーザの所属グループを検索し、ステップS704に進む。例えば、ユーザJohnの所属グループとしてSG_01が検索される。
ステップS704では、キャッシュ入出力部401は、ステップS503と同様に、ステップS703で取得した所属グループ用のキャッシュストレージが存在するか否かを判定する。例えば、ユーザJohnの所属グループ用のキャッシュストレージは、SG_01用キャッシュストレージ405である。キャッシュ入出力部401は、所属グループ用のキャッシュストレージが存在する場合には、ステップS706に進み、所属グループ用のキャッシュストレージが存在しない場合には、ステップS705に進む。
ステップS705では、キャッシュ入出力部401は、ステップS703で取得した所属グループ用のキャッシュストレージを作成し、ステップS706に進む。
ステップS711では、キャッシュ入出力部401は、通信端末201のユーザの個人用キャッシュストレージが存在するか否かを判定する。ユーザの個人用キャッシュストレージは、例えば、John用キャッシュストレージ404である。キャッシュ入出力部401は、通信端末201のユーザの個人用キャッシュストレージが存在する場合には、ステップS706に進み、通信端末201のユーザの個人用キャッシュストレージが存在しない場合には、ステップS712に進む。
ステップS712では、キャッシュ入出力部401は、通信端末201のユーザの個人用キャッシュストレージを作成し、ステップS706に進む。
ステップS706では、キャッシュ入出力部401は、レスポンスデータ(Webページ202)を基に、キャッシュデータセットを生成し、ステップS707に進む。
ステップS707では、キャッシュ入出力部401は、ステップS706で生成したキャッシュデータセットを利用して、John用キャッシュストレージ404またはSG_01用キャッシュストレージ405を更新し、ステップS708に進む。キャッシュ入出力部401は、レスポンスデータ(Webページ202)を他のユーザと共有可能でない場合には、ステップS706で生成したキャッシュデータセットをJohn用キャッシュストレージ404に保存する。また、キャッシュ入出力部401は、レスポンスデータ(Webページ202)を他のユーザと共有可能である場合には、ステップS706で生成したキャッシュデータセットをSG_01用キャッシュストレージ405に保存する。
図8(A)および(B)は、ステップS706およびS707の処理を説明するための図である。図8(A)は、ステップS707を処理する前のSG_01用キャッシュストレージ405の状態である。ここで、Johnが“http://example.com/a.png”にアクセスする時刻は、“Wed, 1 Apr 2020 10:00:00 GMT”である。そのため、ステップS706で生成されるキャッシュデータセットのDate/Timeは、“Wed, 1 Apr 2020 10:00:00 GMT”となる。よって、ステップS707の処理の結果、SG_01用キャッシュストレージ405の状態は、図8(B)となる。
ステップS708では、ブラウザ206は、Webページ202のデータを基に、Webページ202を解析し、ステップS709に進む。ステップS709では、ブラウザ206は、Webページ202の解析の結果を基に、Webページ202を描画し、ステップS710に進む。ステップS710では、ブラウザ206は、ゲートウェイ204とロードバランサ301を介して、Webページ202の描画結果を通信端末201に送信する。通信端末201は、受信したWebページ202の描画結果を表示する。
以上、仮想マシン205について説明したが、仮想マシン302も仮想マシン205と同様の処理を行う。仮想マシン302は、仮想マシン205と同様に、管理テーブル403とJohn用キャッシュストレージ404とSG_01用キャッシュストレージ405とSG_02用キャッシュストレージ406にアクセスすることができる。
画像生成システム203は、ブラウザ206および303がそれぞれ稼働する複数の仮想マシン205および302を有する。ステップS501では、画像生成システム203は、受信部として機能し、通信端末201からWebページ202のURLを、複数の仮想マシン205または302のうちのいずれかの仮想マシン205により受信する。
ステップS501で受信されたURLのWebページのキャッシュデータが存在しない場合には、処理は、ステップS511からステップS509に進む。ステップS509では、画像生成システム203は、受信部として機能し、ステップS501で受信したURLからWebページ202を受信する。ステップS707では、画像生成システム203は、SG_01用キャッシュストレージ405またはSG_02用キャッシュストレージ406に、Webページ202のキャッシュデータを複数の仮想マシン205および302が利用可能になるように保存する。ステップS709では、ブラウザ206は、受信したWebページ202を描画する。ステップS710では、ブラウザ206は、送信部として機能し、Webページ202の描画結果を通信端末201に送信する。
ステップS501で受信されたURLのWebページ202のキャッシュデータが存在する場合には、処理は、ステップS504またはS511からステップS505に進む。ステップS709では、ブラウザ206は、Webページ202を描画する。ステップS710では、ブラウザ206は、送信部として機能し、Webページ202の描画結果を通信端末201に送信する。
ステップS707では、キャッシュ入出力部401は、受信したWebページ202を他のユーザと共有可能でない場合には、受信したWebページ202のキャッシュデータを通信端末201のユーザのためのJohn用キャッシュストレージ404に保存する。また、キャッシュ入出力部401は、受信したWebページ202を他のユーザと共有可能である場合には、受信したWebページ202のキャッシュデータをSG_01用キャッシュストレージ405に保存する。この場合、キャッシュ入出力部401は、保存部として機能する。
ステップS501で受信されたURLのWebページ202のキャッシュデータが通信端末201のユーザのためのJohn用キャッシュストレージ404またはSG_01用キャッシュストレージ405に存在する場合には、処理は、ステップS505に進む。
SG_01用キャッシュストレージ405とSG_02用キャッシュストレージ406は、ユーザの所属グループごとのストレージである。ステップS707では、キャッシュ入出力部401は、Webページ202を他のユーザと共有可能である場合には、通信端末201のユーザの所属グループのSG_01用キャッシュストレージ405に受信したWebページ202のキャッシュデータを保存する。
ステップS501で受信されたURLのWebページ202のキャッシュデータがJohn用キャッシュストレージ404またはSG_01用キャッシュストレージ405に存在する場合には、処理は、ステップS505に進む。
また、ステップS707では、画像生成システム203は、保存部として機能し、複数の仮想マシン205および302のいずれかにおいて描画を要求されたWebページのキャッシュデータを複数の仮想マシン205および302が利用可能になるように保存する。
ステップS501では、画像生成システム203は、例えば、仮想マシン205においてWebページ202の描画を要求される。ステップS504またはS511では、画像生成システム203は、仮想マシン302において描画されたWebページ202のキャッシュデータがステップS707で保存されている場合、ステップS505に進む。その後、ステップS709では、画像生成システム203は、描画部として機能し、仮想マシン205において、当該キャッシュデータに基づいてWebページ202を描画する。
ステップS504またはS511では、画像生成システム203は、Webページ202のキャッシュデータがステップS707で保存されていない場合、ステップS509に進む。その後、ステップS709では、画像生成システム203は、Webサーバ207から取得されるリソースに基づいてWebページ202を描画する。
ステップS710では、画像生成システム203は、送信部として機能し、ステップS709の描画結果を、描画を要求した通信端末201に送信する。
以上、本実施形態によれば、キャッシュストレージ404~406を設けることにより、複数のユーザが画像生成システム203を利用した場合であっても、複数のユーザがキャッシュデータを共有し、ネットワーク負荷を低減させることができる。
(第1の変形例)
第1の変形例では、キャッシュデータセットの保存先のキャッシュストレージを切り替える判断基準として、ドメインを利用する例を示す。ここで、URLが“http://example.com/a.png”である場合、ドメインは“example.com”であり、パスは“a.png”である。
図9は、第1の変形例による情報処理システムの構成例を示す図である。図9は、図4に対して、John用キャッシュストレージ404を削除したものである。また、図9は、図4に対して、SG_01用キャッシュストレージ405とSG_02用キャッシュストレージ406の代わりに、SD_01用キャッシュストレージ901とSD_02用キャッシュストレージ902を設けたものである。
図10は、第1の変形例におけるWebページをリクエストする際のフローチャートである。ステップS501では、図5と同様に、ブラウザ206は、ゲートウェイ204とロードバランサ301を介して、通信端末201からWebページ202のURLを受信する。
ここで、クラウドブラウザを利用しているユーザは、Johnとする。また、Johnが通信端末201上で表示したいWebページのURLは、“http://example.com/a.png”とする。さらに、Johnがクラウドブラウザを利用した日時は、“Wed, 1 Apr 2020 10:00:00 GMT”とする。
次に、ステップS1001では、キャッシュ入出力部401は、ステップS501で受信したURLからドメインとパスを取得する。URLが“http://example.com/a.png”とすると、ドメインは“example.com”であり、パスは“a.png”である。
第1の実施形態では、ユーザ名とキャッシュストレージの対応関係を管理テーブル403に記録したが、第1の変形例では、ドメインとキャッシュストレージの対応関係を管理テーブル403に記録する。
図11(A)は、第1の変形例における管理テーブル403の例を示す図である。図11(A)において、Domainはドメインを表す。また、Storage NameはSD_01やSD_02のようにキャッシュストレージの名前を示したものである。図11(A)を見ると、ドメイン“example.com”には、StorageNameとして、SD_01用キャッシュストレージ901が割り当てられていると分かる。この場合、ドメイン“example.com”のキャッシュは、SD_01用キャッシュストレージ901に格納されることが分かる。
次に、ステップS1002では、キャッシュ入出力部401は、ステップS1001で取得したドメインのキャッシュストレージが存在するか否かを判定する。キャッシュ入出力部401は、ステップS1001で取得したドメインのキャッシュストレージが存在する場合には、ステップS504に進み、ステップS1001で取得したドメインのキャッシュストレージが存在しない場合には、ステップS509に進む。
ステップS504では、キャッシュ入出力部401は、ステップS1001で取得したドメインのキャッシュストレージに、ステップS1001で取得したパスのキャッシュデータが存在するか否かを判定する。キャッシュ入出力部401は、ステップS1001で取得したドメインのキャッシュストレージに、ステップS1001で取得したパスのキャッシュデータが存在する場合には、ステップS505に進む。また、キャッシュ入出力部401は、ステップS1001で取得したドメインのキャッシュストレージに、ステップS1001で取得したパスのキャッシュデータが存在しない場合には、ステップS509に進む。ステップS506~S509の処理は、図5と同様である。
図11(B)は、SD_01用キャッシュストレージ901に保存されたキャッシュデータセットの例を示す図である。図11(C)は、SD_02用キャッシュストレージ902に保存されたキャッシュデータセットの例を示す図である。図11(B)と図11(C)において、Pathは、キャッシュしたデータへのパスである。Date/TimeとHeader InformationとCached Dataの属性は、図6(B)と図6(C)と同じである。
第1の変形例では、Johnがクラウドブラウザを利用して表示したいURLは“http://example.com/a.png”であるので、図11(B)を見ると、そのURLのキャッシュデータが存在することが分かる。
SD_01用キャッシュストレージ901とSD_02用キャッシュストレージ902は、ステップS501で受信されたURLのドメインごとのストレージである。ステップS707では、キャッシュ入出力部401は、ステップS501で受信されたURLのドメインのストレージ901または902に、受信したWebページ202のキャッシュデータを保存する。ステップS501で受信されたURLのWebページ202のキャッシュデータが、ステップS501で受信されたURLのドメインのストレージ901または902に存在する場合には、処理は、ステップS505に進む。
以上、第1の変形例によれば、URLのドメイン毎のストレージ901および902を設けることにより、複数のユーザが画像生成システム203を利用した場合であっても、複数のユーザがキャッシュデータを共有し、ネットワーク負荷を低減させることができる。
(第2の実施形態)
第2の実施形態では、キャッシュデータを仮想マシン205および302間で直接共有する例を示す。多数の仮想マシンが配置されたクラウドブラウザ上でローカルファイルを共有すると、ネットワーク負荷やデータ管理コストが高くなってしまう。そのため、第1の実施形態のように、仮想マシンとは異なるサーバ上のキャッシュストレージでローカルファイルを管理する方がよい。一方で、仮想マシンが数個しかなく、それらの仮想マシンが常時起動しているクラウドブラウザ上であれば、直接ローカルファイルを共有した方が、管理コストが低い場合がある。
RFC7234に従ってキャッシュを処理するためには、キャッシュデータだけでなく、URLと取得日時とヘッダ情報も必要となる。そのため、画像生成システム203は、キャッシュデータセットを生成して、仮想マシン間でキャッシュデータセットを共有する必要がある。
図12は、第2の実施形態による情報処理システムの構成例を示す図である。図12は、図3に対して、仮想マシン205の内部にキャッシュデータセット送受信部1201が追加され、仮想マシン302の内部にキャッシュデータセット送受信部1202が追加されている。
図13は、第2の実施形態による図5のフローチャートの後の処理を示すフローチャートである。ステップS701では、図7と同様に、キャッシュ入出力部401は、前のステップがステップS507である場合には、ステップS708に進む。また、キャッシュ入出力部401は、前のステップがステップS509である場合には、ステップS509のレスポンスデータ(Webページ202)をキャッシュすべきであるか否かを判定する。キャッシュ入出力部401は、レスポンスデータ(Webページ202)をキャッシュすべきであると判定した場合には、ステップS702に進む。また、キャッシュ入出力部401は、レスポンスデータ(Webページ202)をキャッシュすべきでないと判定した場合には、ステップS708に進む。
ステップS702では、キャッシュ入出力部401は、レスポンスデータ(Webページ202)を他のユーザと共有可能であるか否かを判定する。キャッシュ入出力部401は、レスポンスデータ(Webページ202)を他のユーザと共有可能である場合には、ステップS706に進み、レスポンスデータ(Webページ202)を他のユーザと共有可能でない場合には、ステップS708に進む。
ステップS706では、キャッシュデータセット送受信部1201は、レスポンスデータ(Webページ202)を基に、キャッシュデータセットを生成し、ステップS1301に進む。
ステップS1301では、キャッシュデータセット送受信部1201は、そのキャッシュデータセットをキャッシュデータセット送受信部1202に対して送信し、ステップS708に進む。ステップS708~S710の処理は、図7と同様である。
なお、ステップS702では、仮想マシン205は、受信したWebページを他のユーザと共有可能であるか否かを判定する。受信したWebページを他のユーザと共有可能でない場合には、仮想マシン205は、受信したWebページのキャッシュデータを仮想マシン502に保存する。また、受信したWebページを他のユーザと共有可能でない場合には、ステップS1301で、仮想マシン205は、受信したWebページのキャッシュデータを複数の仮想マシン205および302に保存する。
また、図5では、仮想マシン205は、ステップS501で受信されたURLのWebページのキャッシュデータが、仮想マシン205に存在する場合には、ステップS505に進む。
以上、第2の実形態によれば、キャッシュデータセット送受信部1201および1202を設けることで、複数のユーザが画像生成システム203を利用した場合であっても、複数のユーザがキャッシュデータを共有し、ネットワーク負荷を低減させることができる。
(第3の実施形態)
第3の実施形態では、画像生成システム203は、ユーザがクラウドブラウザの利用中は、キャッシュデータを仮想マシン上に保持しておき、ユーザがクラウドブラウザの利用を終了する直前に、そのキャッシュデータをキャッシュストレージに移す。
ここで、クラウドブラウザを利用しているユーザは、Johnとする。また、Johnが通信端末201上で表示したいWebページのURLは、“http://example.com/a.png”と、“http://canon.global/a.png”とする。さらに、Johnがクラウドブラウザを利用した日時は、“Wed, 1 Apr 2020 10:00:00 GMT”とする。このとき、“http://example.com/a.png”のリクエストに対するレスポンスヘッダは、“Cache-Control: public,max-age=86400”とする。また、“http://canon.global/a.png”のリクエストに対するレスポンスヘッダは、“Cache-Control: private”と“Expires: Wed, 10 Jun 2020 00:00:00 GMT”とする。
第3の実施形態は、第1の実施形態と比較すると、複数の仮想マシンがそれぞれ重複するキャッシュデータを保持するため、画像生成システムが保持するキャッシュデータのデータ量が増大する。一方で、第3の実施形態は、第1の実施形態と比較すると、仮想マシンに保持されたキャッシュデータを利用するため、ユーザが利用している間の画像生成システムの応答速度が速くなる。
図14は、第3の実施形態による情報処理システムの構成例を示す図である。図14は、図4に対して、仮想マシン205と仮想マシン302の内部に、内部記憶領域1401と内部記憶領域1402が追加されている。
図15は、第3の実施形態による図5のフローチャートの後の処理を示すフローチャートである。ステップS701では、図7と同様に、キャッシュ入出力部401は、前のステップがステップS507である場合には、ステップS708に進む。また、キャッシュ入出力部401は、前のステップがステップS509である場合には、ステップS509のレスポンスデータ(Webページ202)をキャッシュすべきであるか否かを判定する。キャッシュ入出力部401は、レスポンスデータ(Webページ202)をキャッシュすべきであると判定した場合には、ステップS706に進む。また、キャッシュ入出力部401は、レスポンスデータ(Webページ202)をキャッシュすべきでないと判定した場合には、ステップS708に進む。
ステップS706では、キャッシュ入出力部401は、レスポンスデータ(Webページ202)を基に、キャッシュデータセットを生成し、ステップS1501に進む。ステップS1501では、ブラウザ206は、そのキャッシュデータセットを内部記憶領域1401に保存し、ステップS708に進む。ステップS708~S710の処理は、図7と同様である。
図17(A)は、内部記憶領域1401に保存されるキャッシュデータセットの例を示す図である。図17(A)は、図6(B)に対して、publicの項目が追加されている。このpublicの項目は、公開可能か否かを判定するために利用される。publicの項目は、公開可能である場合には1が保存され、公開可能でない場合には0が保存される。例えば、“http://example.com/a.png”のリクエストに対するレスポンスヘッダには、“Cache-Control: public”が含まれるため、publicの項目には1が保存される。本実施形態では、キャッシュデータセットを仮想マシンの内部に記録するため、仮想マシンは、図7と図13のステップS702のように、他のユーザと共有可能であるか否かを判定しない。
図16は、第3の実施形態におけるキャッシュデータを統合する処理を示すフローチャートである。キャッシュデータの統合とは、仮想マシンの内部記憶領域に保存してあるキャッシュデータセットを、キャッシュストレージに格納する処理を指す。
ステップS1601では、画像生成システム203は、通信端末201のユーザが仮想マシン205または302の利用を終了したか否かを判定する。画像生成システム203は、通信端末201のユーザが仮想マシン205または302の利用を終了していない場合には、その利用の終了まで待つ。また、画像生成システム203は、通信端末201のユーザが仮想マシン205または302の利用を終了した場合には、ステップS510に進む。
ステップS510では、キャッシュ入出力部401は、通信端末201のユーザの個人用キャッシュストレージがあるか否かを判定する。ユーザの個人用キャッシュストレージは、例えば、John用キャッシュストレージ404である。キャッシュ入出力部401は、通信端末201のユーザの個人用キャッシュストレージがある場合には、ステップS1602に進み、通信端末201のユーザの個人用キャッシュストレージがない場合には、ステップS502に進む。
ステップS1602では、キャッシュ入出力部401は、図17(A)の内部記憶領域1401のJohn以外のユーザと共有可能でないキャッシュデータセットを、John用キャッシュストレージ404に統合し、ステップS502に進む。
図17(B)は、統合前のJohn用キャッシュストレージ404の状態を示す図である。図17(C)は、統合後のJohn用キャッシュストレージ404の状態を示す図である。
ステップS1602の図17(A)の内部記憶領域1401のJohn以外のユーザと共有可能でないキャッシュデータセットは、図17(A)の中でpublicが0のキャッシュデータセットである。図17(A)の中でpublicが0のキャッシュデータセットは、“http://canon.global/a.png”のキャッシュデータセットである。“http://canon.global/a.png”のキャッシュデータセットがJohn用キャッシュストレージ404に含まれる場合、John用キャッシュストレージ404のキャッシュデータセットのDate/Timeが新しい方で上書きされる。
図17(A)と図17(B)の“http://canon.global/a.png”のキャッシュデータセットを比較すると、図17(B)に“http://canon.global/a.png”のキャッシュデータセットは存在しない。よって、図17(B)に、図17(A)の“http://canon.global/a.png”のキャッシュデータセットを追加する。この際、図17(A)のpublicの項目は図17(B)には不要であるため、統合しない。結果として、統合後のJohn用キャッシュストレージ404の状態は、図17(C)のようになる。
ステップS502では、キャッシュ入出力部401は、通信端末201のユーザJohnの所属グループを検索し、ステップS503に進む。ステップS503では、キャッシュ入出力部401は、ステップS502で検索した所属グループのキャッシュストレージが存在するか否かを判定する。Johnの所属グループのキャッシュストレージは、SG_01用キャッシュストレージ405である。キャッシュ入出力部401は、所属グループのキャッシュストレージが存在する場合には、ステップS1603に進み、所属グループのキャッシュストレージが存在しない場合には、図16のフローチャートの処理を終了する。
ステップS1603では、キャッシュ入出力部401は、図17(A)の内部記憶領域1401のJohn以外のユーザと共有可能であるキャッシュデータセットを、所属グループのキャッシュストレージに統合する。
図18(A)は、内部記憶領域1401に保存されるキャッシュデータセットの例を示す図であり、図17(A)と同じである。図18(B)は、統合前のSG_01用キャッシュストレージ405の状態を示す図である。図18(C)は、統合後のSG_01用キャッシュストレージ405の状態を示す図である。
ステップS1603の図17(A)の内部記憶領域1401のJohn以外のユーザと共有可能であるキャッシュデータセットは、図18(A)の中でpublicが1のキャッシュデータセットである。図18(A)の中でpublicが1のキャッシュデータセットは、“http://example.com/a.png”のキャッシュデータセットである。“http://example.com/a.png”のキャッシュデータセットがSG_01用キャッシュストレージ405に含まれる場合、SG_01用キャッシュストレージ405のキャッシュデータセットのDate/Timeが新しい方で上書きされる。
図18(A)と図18(B)の“http://example.com/a.png”のキャッシュデータセットを比較すると、図18(A)のDate/Timeの方が新しい。よって、図18(B)の“http://example.com/a.png”のキャッシュデータセットを、図18(A)の“http://example.com/a.png”のキャッシュデータセットで上書きする。この際、図18(A)のpublicの項目は、図18(B)には不要であるため、統合しない。結果として、統合後のSG_01用キャッシュストレージ405の状態は、図18(C)のようになる。
以上のように、キャッシュ入出力部401は、仮想マシン205の利用を終了した後に、内部記憶領域1401の受信したWebページのキャッシュデータをキャッシュストレージ404~406に保存する。
以上、第3の実形態によれば、仮想マシン205の利用を終了した後に、キャッシュデータをキャッシュストレージ404~406に保存するので、仮想マシン205の利用中の負荷を軽減することができる。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
203 画像生成システム、204 ゲートウェイ、205 仮想マシン、206 ブラウザ、301 ロードバランサ、302 仮想マシン、303 ブラウザ、401,402 キャッシュ入出力部、403 管理テーブル、404 John用キャッシュストレージ、405 SG_01用キャッシュストレージ、406 SG_02用キャッシュストレージ

Claims (12)

  1. 複数の仮想マシンを有する情報処理装置であって、
    前記複数の仮想マシンのいずれかにおいて描画を要求されたWebページのキャッシュデータを前記複数の仮想マシンが利用可能になるように保存する保存手段と、
    前記複数の仮想マシンのうちの第1の仮想マシンにおいて第1のWebページの描画を要求された場合において、前記複数の仮想マシンのうちの第2の仮想マシンにおいて描画された前記第1のWebページのキャッシュデータが前記保存手段により保存されている場合、当該キャッシュデータに基づいて前記第1のWebページを描画する第1の描画手段と、
    前記第1の仮想マシンにおいて前記第1のWebページの描画を要求された場合において、前記第1のWebページのキャッシュデータが前記保存手段により保存されていない場合、Webサーバから取得されるリソースに基づいて前記第1のWebページを描画する第2の描画手段と、
    前記第1の描画手段または前記第2の描画手段による描画結果を、描画を要求した通信端末に送信する送信手段と、
    を有することを特徴とする情報処理装置。
  2. ブラウザがそれぞれ稼働する複数の仮想マシンを有する情報処理装置であって、
    通信端末からWebページのURLを、前記複数の仮想マシンのうちのいずれかの仮想マシンにより受信する第1の受信手段と、
    前記URLを受信した仮想マシンにより、前記第1の受信手段により受信されたURLのWebページのキャッシュデータが存在しない場合には、前記第1の受信手段により受信されたURLからWebページを受信する第2の受信手段と、
    前記URLを受信した仮想マシンにより、前記第2の受信手段により受信されたWebページのキャッシュデータを前記複数の仮想マシンが利用可能になるように保存する保存手段と、
    前記URLを受信した仮想マシンにより、前記第2の受信手段により受信されたWebページを描画し、前記Webページの描画結果を前記通信端末に送信する第1の送信手段と、
    前記URLを受信した仮想マシンにより、前記第1の受信手段により受信されたURLのWebページのキャッシュデータが存在する場合には、前記Webページを描画し、前記Webページの描画結果を前記通信端末に送信する第2の送信手段と、
    を有することを特徴とする情報処理装置。
  3. 前記保存手段は、前記複数の仮想マシンが利用可能なストレージに、前記第2の受信手段により受信されたWebページのキャッシュデータを保存することを特徴とする請求項2に記載の情報処理装置。
  4. 前記保存手段は、前記第2の受信手段により受信されたWebページを他のユーザと共有可能でない場合には、前記第2の受信手段により受信されたWebページのキャッシュデータを前記通信端末のユーザのための第1のストレージに保存し、前記第2の受信手段により受信されたWebページを他のユーザと共有可能である場合には、前記第2の受信手段により受信されたWebページのキャッシュデータを第2のストレージに保存し、
    前記第2の送信手段は、前記第1の受信手段により受信されたURLのWebページのキャッシュデータが前記通信端末のユーザのための第1のストレージまたは前記第2のストレージに存在する場合には、前記Webページを描画し、前記Webページの描画結果を前記通信端末に送信することを特徴とする請求項3に記載の情報処理装置。
  5. 前記第2のストレージは、ユーザの所属グループごとの第2のストレージであり、
    前記保存手段は、前記第2の受信手段により受信されたWebページを他のユーザと共有可能である場合には、前記通信端末のユーザの所属グループの前記第2のストレージに、前記第2の受信手段により受信されたWebページのキャッシュデータを保存し、
    前記第2の送信手段は、前記第1の受信手段により受信されたURLのWebページのキャッシュデータが前記通信端末のユーザのための第1のストレージまたは前記通信端末のユーザの所属グループの前記第2のストレージに存在する場合には、前記Webページを描画し、前記Webページの描画結果を前記通信端末に送信することを特徴とする請求項4に記載の情報処理装置。
  6. 前記ストレージは、前記第1の受信手段により受信されたURLのドメインごとのストレージであり、
    前記保存手段は、前記第1の受信手段により受信されたURLのドメインのストレージに、前記第2の受信手段により受信されたWebページのキャッシュデータを保存し、
    前記第2の送信手段は、前記第1の受信手段により受信されたURLのWebページのキャッシュデータが、前記第1の受信手段により受信されたURLのドメインのストレージに存在する場合には、前記Webページを描画し、前記Webページの描画結果を前記通信端末に送信することを特徴とする請求項3に記載の情報処理装置。
  7. 前記保存手段は、前記第2の受信手段により受信されたWebページのキャッシュデータを前記複数の仮想マシンに保存し、
    前記第2の送信手段は、前記第1の受信手段により受信されたURLのWebページのキャッシュデータが、前記URLを受信した仮想マシンに存在する場合には、前記Webページを描画し、前記Webページの描画結果を前記通信端末に送信することを特徴とする請求項3に記載の情報処理装置。
  8. 前記保存手段は、前記第2の受信手段により受信されたWebページを他のユーザと共有可能でない場合には、前記第2の受信手段により受信されたWebページのキャッシュデータを、前記URLを受信した仮想マシンに保存し、前記第2の受信手段により受信されたWebページを他のユーザと共有可能でない場合には、前記第2の受信手段により受信されたWebページのキャッシュデータを前記複数の仮想マシンに保存し、
    前記第2の送信手段は、前記第1の受信手段により受信されたURLのWebページのキャッシュデータが、前記URLを受信した仮想マシンに存在する場合には、前記Webページを描画し、前記Webページの描画結果を前記通信端末に送信することを特徴とする請求項7に記載の情報処理装置。
  9. 前記保存手段は、前記URLを受信した仮想マシンの利用を終了した後に、前記第2の受信手段により受信されたWebページのキャッシュデータを前記ストレージに保存することを特徴とする請求項3~6のいずれか1項に記載の情報処理装置。
  10. ブラウザがそれぞれ稼働する複数の仮想マシンを有する情報処理装置による情報処理方法であって、
    通信端末からWebページのURLを、前記複数の仮想マシンのうちのいずれかの仮想マシンにより受信する第1の受信ステップと、
    前記URLを受信した仮想マシンにより、前記第1の受信ステップで受信されたURLのWebページのキャッシュデータが存在しない場合には、前記前記第1の受信ステップで受信されたURLからWebページを受信する第2の受信ステップと、
    前記URLを受信した仮想マシンにより、前記第2の受信ステップで受信されたWebページのキャッシュデータを前記複数の仮想マシンが利用可能になるように保存する保存ステップと、
    前記URLを受信した仮想マシンにより、前記第2の受信ステップで受信されたWebページを描画し、前記Webページの描画結果を前記通信端末に送信する第1の送信ステップと、
    前記URLを受信した仮想マシンにより、前記第1の受信ステップで受信されたURLのWebページのキャッシュデータが存在する場合には、前記Webページを描画し、前記Webページの描画結果を前記通信端末に送信する第2の送信ステップと、
    を有することを特徴とする情報処理方法。
  11. 複数の仮想マシンを有する情報処理装置による情報処理方法であって、
    前記複数の仮想マシンのいずれかにおいて描画を要求されたWebページのキャッシュデータを前記複数の仮想マシンが利用可能になるように保存し、
    前記複数の仮想マシンのうちの第1の仮想マシンにおいてWebページの描画を要求された場合において、前記複数の仮想マシンのうちの第2の仮想マシンにおいて描画された前記第1のWebページのキャッシュデータが前記複数の仮想マシンが利用可能に保存されている場合、当該キャッシュデータに基づいて前記第1のWebページを描画し、
    前記第1の仮想マシンにおいて前記第1のWebページの描画を要求された場合において、前記第1のWebページのキャッシュデータが前記複数の仮想マシンが利用可能に保存されていない場合、Webサーバから取得されるリソースに基づいて前記第1のWebページを描画し、
    描画された前記第1のWebページを、描画を要求した通信端末に送信する
    ことを特徴とする情報処理方法。
  12. コンピュータを、請求項1~9のいずれか1項に記載された情報処理装置の各手段として機能させるためのプログラム。
JP2020187884A 2020-11-11 2020-11-11 情報処理装置、情報処理方法およびプログラム Pending JP2022077175A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020187884A JP2022077175A (ja) 2020-11-11 2020-11-11 情報処理装置、情報処理方法およびプログラム
US17/517,454 US11622027B2 (en) 2020-11-11 2021-11-02 Information processing apparatus, information processing method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020187884A JP2022077175A (ja) 2020-11-11 2020-11-11 情報処理装置、情報処理方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2022077175A true JP2022077175A (ja) 2022-05-23

Family

ID=81453755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020187884A Pending JP2022077175A (ja) 2020-11-11 2020-11-11 情報処理装置、情報処理方法およびプログラム

Country Status (2)

Country Link
US (1) US11622027B2 (ja)
JP (1) JP2022077175A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024047779A1 (ja) * 2022-08-31 2024-03-07 楽天モバイル株式会社 仮想環境のための大容量ファイルのダウンロードの効率化
JP7551700B2 (ja) 2022-07-07 2024-09-17 キヤノン株式会社 Webブラウジングシステム、サーバおよびその制御方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6354195B2 (ja) 2013-03-15 2018-07-11 株式会社リコー 配信システム、配信方法、及びプログラム
US10333975B2 (en) * 2016-12-06 2019-06-25 Vmware, Inc. Enhanced computing system security using a secure browser

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7551700B2 (ja) 2022-07-07 2024-09-17 キヤノン株式会社 Webブラウジングシステム、サーバおよびその制御方法
WO2024047779A1 (ja) * 2022-08-31 2024-03-07 楽天モバイル株式会社 仮想環境のための大容量ファイルのダウンロードの効率化

Also Published As

Publication number Publication date
US20220150322A1 (en) 2022-05-12
US11622027B2 (en) 2023-04-04

Similar Documents

Publication Publication Date Title
US11647097B2 (en) Providing access to managed content
US9703885B2 (en) Systems and methods for managing content variations in content delivery cache
US10642798B2 (en) Method and system for routing data flows in a cloud storage system
AU2015401229B2 (en) Website access method, apparatus, and website system
US9996464B2 (en) Metadata cache management
US10880390B2 (en) Method and apparatus for reducing network resource transmission size using delta compression
US7509404B2 (en) Methods and systems for partial page caching of dynamically generated content
US9549038B1 (en) Cacheable resource location selection
JP4671332B2 (ja) ユーザ識別情報を変換するファイルサーバ
JP2002540533A (ja) キャッシュの選択
JP2002268937A (ja) データ転送装置、データ転送方法及びプログラム
US7600028B2 (en) Methods and systems for opportunistic cookie caching
JPH1021134A (ja) ゲートウェイ装置、クライアント計算機およびそれらを接続した分散ファイルシステム
JP2009530922A (ja) ピアツーピア・ゲートウェイ
JP2022077175A (ja) 情報処理装置、情報処理方法およびプログラム
US9686372B1 (en) Systems and methods for automatically rewriting network page code
CN112261090B (zh) Web数据处理方法、装置、计算机设备和可读存储介质
JP4634600B2 (ja) プロキシサーバ
JP3485915B1 (ja) ゲートウェイ装置、クライアント計算機およびプロキシサーバ計算機
KR20010070944A (ko) 데이터베이스 구조변화에 대응하는 웹기반 통신망성능감시 방법
JPH11175447A (ja) データ中継装置及びデータ中継プログラムを記録したコンピュータ読み取り可能な記録媒体
CN116233248A (zh) 资源响应方法、设备及可读存储介质
JP2008293281A (ja) キャッシュ装置、サーバ、キャッシュシステム、キャッシュ方法、及びプログラム
Ghosh et al. Performance of dynamic web page generation for e-Business web sites

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241029