IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ Repro株式会社の特許一覧

特開2024-77242プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置
<>
  • 特開-プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置 図1
  • 特開-プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置 図2
  • 特開-プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置 図3
  • 特開-プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置 図4
  • 特開-プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置 図5
  • 特開-プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置 図6
  • 特開-プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置 図7
  • 特開-プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置 図8
  • 特開-プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置 図9
  • 特開-プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置 図10
  • 特開-プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置 図11
  • 特開-プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置 図12
  • 特開-プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置 図13
  • 特開-プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置 図14
  • 特開-プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024077242
(43)【公開日】2024-06-07
(54)【発明の名称】プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置
(51)【国際特許分類】
   H04L 67/06 20220101AFI20240531BHJP
   G06F 16/172 20190101ALI20240531BHJP
【FI】
H04L67/06
G06F16/172
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2022189205
(22)【出願日】2022-11-28
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】518016982
【氏名又は名称】Repro株式会社
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】新堂 凌麻
(72)【発明者】
【氏名】杉浦 達樹
(57)【要約】
【課題】通信を効率化することを目的とする。
【解決手段】本発明の一態様に係るプログラムは、コンピュータを、表示内容に関する情報を含むファイルに含まれる特定の要素に関連付けられた設定情報510を取得する取得手段208と、設定情報に基づいて、第1装置(オリジンサーバ装置4に相当)に対する第1リクエスト500を、第1装置が記憶する情報の少なくとも一部を複製して記憶する第2装置(キャッシュサーバ装置5に相当)に対する第2リクエスト520に変更する変更手段210と、として機能させる。
【選択図】図4
【特許請求の範囲】
【請求項1】
コンピュータを、
表示内容に関する情報を含むファイルに含まれる特定の要素に関連付けられた設定情報を取得する取得手段と、
前記設定情報に基づいて、第1装置に対する第1リクエストを、前記第1装置が記憶する情報の少なくとも一部を複製して記憶する第2装置に対する第2リクエストに変更する変更手段と、
として機能させる、プログラム。
【請求項2】
前記設定情報は、前記第1リクエストに含まれるとともに前記第1装置に関連付けられた第1宛先と、前記第2リクエストに含まれるとともに前記第2装置に関連付けられた第2宛先とが関連付けられた情報を含む、請求項1に記載のプログラム。
【請求項3】
前記コンピュータを、
前記第2リクエストを送信する送信手段と、
前記第2リクエストに応じたコンテンツを含むレスポンスを前記第2装置から受信する受信手段と、としてさらに機能させる、請求項1に記載のプログラム。
【請求項4】
前記レスポンスは、前記第2リクエストに応じて前記第2装置が前記第1装置から取得したコンテンツを含む、請求項3に記載のプログラム。
【請求項5】
前記第2装置は、前記第2リクエストを受信した場合であって前記コンテンツを記憶していないときは、前記第1装置から前記コンテンツを取得する、請求項4に記載のプログラム。
【請求項6】
前記第2装置は、前記コンテンツを所定期間記憶するとともに前記所定期間経過後に当該コンテンツを削除する、請求項5に記載のプログラム。
【請求項7】
前記第2リクエストは、前記設定情報に基づいて設定されるとともに前記第2装置の動作に関する情報を含む、請求項6に記載のプログラム。
【請求項8】
前記第2装置の動作に関する情報は、前記所定期間の長さと、記憶するコンテンツの種類と、コンテンツを記憶するための圧縮方式との少なくともいずれか一つに関する情報を含む、請求項7に記載のプログラム。
【請求項9】
前記ファイルは、前記第1装置から取得される、請求項1から請求項8のいずれか一項に記載のプログラム。
【請求項10】
前記ファイルは、HTMLファイルであり、
前記特定の要素は、特定のタグである、請求項1から請求項8のいずれか一項に記載のプログラム。
【請求項11】
請求項1から請求項8のいずれか一項に記載のプログラムを記憶する記憶媒体。
【請求項12】
請求項1から請求項8のいずれか一項に記載のプログラムを記憶する記憶部と、
前記プログラムを実行する制御部と、
を備える、端末装置。
【請求項13】
コンピュータに、
第1装置に対する第1リクエストを、前記第1装置が記憶する情報の少なくとも一部を複製して記憶する第2装置に対する第2リクエストに変更するための設定情報に関する第3リクエストを端末装置から受信するステップと、
前記第3リクエストに応じて、前記設定情報を送信するステップと、
を実行させる、サーバ処理方法。
【請求項14】
第1装置に対する第1リクエストを、前記第1装置が記憶する情報の少なくとも一部を複製して記憶する第2装置に対する第2リクエストに変更するための設定情報を記憶する記憶部と、
端末装置から第3リクエストを受信する受信部と、
前記第3リクエストに応じて、前記設定情報を送信する送信部と、
を備える、サーバ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、記憶媒体、端末装置、サーバ処理方法及びサーバ装置に関する。
【背景技術】
【0002】
従来、ネットワーク上の装置にコンテンツをキャッシュすることで通信を効率化する発明が知られている。特許文献1には、ノード装置を、ネットワークトポロジ上で隣接する他のノード装置とは異なるグループに優先的に割り当てることにより、オリジナルファイルへのアクセスの集中を避け、且つ全体の通信量を抑制すると共に、キャッシュ領域を効率的に活用する技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2019-20994号
【発明の概要】
【発明が解決しようとする課題】
【0004】
端末装置がコンテンツにアクセスする効率を高めるためには、キャッシュサーバ装置を利用することが有効である。しかしながら、特許文献1に記載された技術では、通信を効率化するためには端末装置が接続されているネットワークの構成を変更する必要がある。ネットワークの構成を変更するためには、一般的に、サーバ装置、ルータ及びスイッチ等の設定を変更する必要があり、容易ではない場合がある。
【0005】
そこで、本発明は、上記課題に鑑み、通信を効率化することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様に係るプログラムは、コンピュータを、表示内容に関する情報を含むファイルに含まれる特定の要素に関連付けられた設定情報を取得する取得手段と、設定情報に基づいて、第1装置に対する第1リクエストを、第1装置が記憶する情報の少なくとも一部を複製して記憶する第2装置に対する第2リクエストに変更する変更手段と、として機能させる。
【0007】
本発明の他の一態様に係る記憶媒体は、上記プログラムを記憶する。
【0008】
本発明の他の一態様に係る端末装置は、上記プログラムを記憶する記憶部と、当該プログラムを実行する制御部と、を備える。
【0009】
本発明の他の一態様に係るサーバ処理方法は、コンピュータに、第1装置に対する第1リクエストを、第1装置が記憶する情報の少なくとも一部を複製して記憶する第2装置に対する第2リクエストに変更するための設定情報に関する第3リクエストを端末装置から受信するステップと、第3リクエストに応じて、設定情報を送信するステップと、を実行させる。
【0010】
本発明の他の一態様に係るサーバ装置は、第1装置に対する第1リクエストを、第1装置が記憶する情報の少なくとも一部を複製して記憶する第2装置に対する第2リクエストに変更するための設定情報を記憶する記憶部と、端末装置から第3リクエストを受信する受信部と、第3リクエストに応じて、設定情報を送信する送信部と、を備える。
【発明の効果】
【0011】
本発明によれば、通信を効率化することができる。
【図面の簡単な説明】
【0012】
図1】本実施形態に係るシステムの機能ブロック図である。
図2】本実施形態に係るシステムの動作の一例を説明するための図である。
図3】本実施形態に係る端末装置の動作の一例を説明するための図である。
図4】本実施形態に係る端末装置の動作の一例を説明するための図である。
図5】本実施形態に係る端末装置の動作の一例を説明するための図である。
図6】本実施形態に係る端末装置の動作の一例を説明するための図である。
図7】本実施形態に係る端末装置の動作の一例を説明するための図である。
図8】本実施形態に係る端末装置の動作の一例を説明するための図である。
図9】本実施形態に係るキャッシュサーバ装置の動作の一例を説明するための図である。
図10】本実施形態に係るキャッシュサーバ装置の動作の一例を説明するための図である。
図11】本実施形態に係るキャッシュサーバ装置の動作の一例を説明するための図である。
図12】本実施形態に係るシステムの効果を説明するための図である。
図13】本実施形態に係るシステムの効果を説明するための図である。
図14】本実施形態に係るシステムの効果を説明するための図である。
図15】本実施形態に係るハードウェア構成の一例を説明するための図である。
【発明を実施するための形態】
【0013】
添付図面を参照して、本発明の好適な実施形態(以下では、本実施形態という)について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
【0014】
本発明において、「部」や「手段」、「装置」、「システム」とは、単に物理的手段を意味するものではなく、その「部」や「手段」、「装置」、「システム」が有する機能をソフトウェアによって実現する場合も含む。また、1つの「部」や「手段」、「装置」、「システム」が有する機能が2つ以上の物理的手段や装置、ソフトウェアにより実現されても、2つ以上の「部」や「手段」、「装置」、「システム」の機能が1つの物理的手段や装置、ソフトウェアにより実現されてもよい。
【0015】
<1.システム1の概要>
図1を参照して、本実施形態に係るシステム1の概要について説明する。図1は、本実施形態に係るシステム1(以下では、単にシステム1という)の機能ブロック図である。システム1は、端末装置2、配布サーバ装置3、オリジンサーバ装置4、キャッシュサーバ装置5及び通信ネットワーク6を含む。
【0016】
システム1に含まれる各装置には、宛先が関連付けられている。宛先とは、例えば、URL(Uniform Resource Locator)、ホスト名、ドメイン、IP(Internet Protocol)アドレス及びMAC(Media Access Control)アドレス等である。各装置は、他の装置の宛先を指定することで当該他の装置との通信を行うことができる。
【0017】
端末装置2は、通信ネットワーク6を介して他の装置と通信することができる電子機器である。端末装置2は、例えば、スマートフォン、パーソナルコンピュータ、タブレット端末及びゲーム機等である。
【0018】
オリジンサーバ装置4は、コンテンツを記憶し、他の装置からのリクエスト(例えば、HTTP(Hypertext Transfer Protocol)リクエスト)の受信に応じてコンテンツを含むレスポンス(例えば、HTTPレスポンス)を送信する装置である。オリジンサーバ装置4は、第1装置、webサーバ装置又はコンテンツサーバ装置ということもできる。レスポンスは、典型的には、ボディ部分(例えば、HTTPレスポンスボディ)にコンテンツを含む。本実施形態において、オリジンサーバ装置4は、webサーバであるとする。すなわち、端末装置2は、オリジンサーバ装置4にアクセスすることでwebサービスの提供を受けることができる。以下では、リクエスト及びレスポンスはそれぞれHTTPリクエスト及びHTTPレスポンスであるものとして説明する。
【0019】
オリジンサーバ装置4は、他にも、リクエストに含まれる情報を変更するプログラムを端末装置2に対して配布してもよい。リクエストに含まれる情報を変更するプログラムは、例えば、Service worker等である。リクエストに含まれる情報を変更するプログラムは、後述する設定情報510に基づいて本実施形態に係るリクエストの変更を実行するものであってもよい。
【0020】
キャッシュサーバ装置5は、オリジンサーバ装置4が記憶するコンテンツの少なくとも一部を複製して記憶する装置である。キャッシュサーバ装置5は、第2装置又はエッジサーバ装置ということもできる。キャッシュサーバ装置5も、オリジンサーバ装置4と同様に、他の装置からのリクエストの受信に応じてコンテンツを含むレスポンスを送信する。なお、キャッシュサーバ装置5は、リクエストに対応するコンテンツを自身が記憶していない場合には、当該コンテンツをオリジンサーバ装置4から取得した上でレスポンスを送信する。
【0021】
配布サーバ装置3は、端末装置2のリクエストに応じて、変更手段210が参照する設定情報510に関する情報を配布する装置である。配布は、配信ということもできる。
【0022】
なお、キャッシュサーバ装置5及び配布サーバ装置3は、典型的には、オリジンサーバ装置4とは異なる主体により設置されたサーバ装置である。例えば、オリジンサーバ装置4はwebサービス提供者が設置したものである一方で、キャッシュサーバ装置5及び配布サーバ装置3は、webサービスの提供を支援する者等が設置したものである。
【0023】
本実施形態において、端末装置2は、オリジンサーバ装置4に対するリクエストをキャッシュサーバ装置5に対するリクエストに変更するための設定情報510を、配布サーバ装置3から受信する。これにより、端末装置2はオリジンサーバ装置4に代わってキャッシュサーバ装置5にアクセスするようになるため、オリジンサーバ装置4の処理負荷が軽減され、通信が効率化される。
【0024】
<2.端末装置2及び配布サーバ装置3の構成>
図1を参照して、システム1に含まれる各装置の機能の詳細について説明する。
【0025】
[端末装置2]
端末装置2は、制御部20、記憶部22及びネットワークインタフェース部24を含み、それぞれはバス26を介して電気的に接続されている。
【0026】
記憶部22は、制御部20が実行する各種プログラムの他、コンテンツ情報DB220及び設定情報DB222を含む。
【0027】
コンテンツ情報DB220は、受信手段204が受信したレスポンスに含まれるコンテンツに関する情報を記憶する。コンテンツは、例えば、テキスト情報(HTML(Hyper Text Markup Language)ファイル、CSS(Cascading Style Sheet)ファイル及びjavascriptファイル等を含む)、映像情報(動画情報及び画像情報を含む)、音声情報等である。
【0028】
設定情報DB222は、変更手段210が参照する設定情報510を記憶する。設定情報510は、オリジンサーバ装置4の宛先と、キャッシュサーバ装置5の宛先との対応関係に関する情報を含む。
【0029】
制御部20は、記憶部22に記憶された各種プログラムを実行することにより、生成手段200、送信手段202、受信手段204、表示手段206、取得手段208、変更手段210、入出力手段212及び通信手段214として機能する。
【0030】
生成手段200は、リクエストを生成する。リクエストは、開始行(HTTPメソッド、宛先、HTTPバージョンを含む)、リクエストヘッダ及びリクエストボディを含む。リクエストの生成は、例えば、端末装置2がwebブラウザソフトウェアで所定のwebサイトにアクセスしようとするときに行われる。
【0031】
送信手段202は、生成手段200によって生成したリクエストを他の装置に対して送信する。
【0032】
受信手段204は、送信手段202が送信したリクエストに応じたコンテンツを含むレスポンスを他の装置から受信する。レスポンスは、ステータス行、レスポンスヘッダ及びレスポンスボディを含む。レスポンスボディは、典型的には、HTMLファイルを含む。
【0033】
表示手段206は、受信手段204が受信したレスポンスに基づいて画像情報を生成し、表示装置710(図15参照)に情報を表示する。表示手段206は、レンダラー又はレンダリングエンジンということもできる。
【0034】
取得手段208は、受信手段204が受信したレスポンスに含まれる情報から設定情報510を取得する。レスポンスに含まれる情報は、例えば、HTMLファイルのタグに関連付けられた情報である。取得手段208は、例えば、HTMLファイルに含まれるタグを展開することにより、当該タグに関連付けられた配布サーバ装置3から設定情報510を取得する。
【0035】
変更手段210は、取得手段208が取得した設定情報510に基づいて、リクエストに含まれる情報の少なくとも一部を変更する。変更手段210は、例えば、リクエストに含まれる宛先を変更する。変更手段210の動作の具体例については、図4等を用いて後述する。
【0036】
入出力手段212は、端末装置2が備える入力装置及び出力装置を機能させる。入力装置は、ユーザから与えられた物理的な刺激を電気信号に変換することができる装置又は素子である。入力装置は、例えば、タッチパネル、ボタン、キーボード、マウス、マイク及びカメラ、センサ(例えば、加速度センサ、ジャイロセンサ及び振動センサ等)等である。出力装置は、電気信号を人間が知覚できる物理的な現象に変換することができる装置又は素子である。出力装置は、例えば、ディスプレイ、スピーカー及びアクチュエータ(振動ユニットを含む)等である。
【0037】
通信手段214は、ネットワークインタフェース部24を介して他の装置と通信する。
【0038】
ネットワークインタフェース部24は、通信ネットワーク6を介して他の装置と通信する。
【0039】
[オリジンサーバ装置4]
オリジンサーバ装置4は、制御部、記憶部及びネットワークインタフェース部を含み、それぞれはバスを介して電気的に接続されている(いずれも図示しない)。
【0040】
オリジンサーバ装置4の記憶部は、webサービスを提供するための各種情報(実行ファイル、画像情報、動画情報、HTMLファイル、CSSファイル、javascriptファイル等)を記憶する。
【0041】
オリジンサーバ装置4の制御部は、記憶部に記憶された各種プログラムを実行することにより、受信手段及び送信手段として機能する。オリジンサーバ装置4の受信手段は、端末装置2又はキャッシュサーバ装置5からリクエストを受信し、送信手段は、当該リクエストに応じてレスポンスを送信する。
【0042】
[キャッシュサーバ装置5]
キャッシュサーバ装置5は、制御部、記憶部及びネットワークインタフェース部を含み、それぞれはバスを介して電気的に接続されている(いずれも図示しない)。
【0043】
キャッシュサーバ装置5の記憶部は、オリジンサーバ装置4の記憶部に記憶された情報の少なくとも一部を複製して記憶する。
【0044】
キャッシュサーバ装置5の制御部は、記憶部に記憶された各種プログラムを実行することにより、受信手段、制御手段及び送信手段として機能する。キャッシュサーバ装置5の受信手段は、端末装置2からリクエストを受信し、送信手段は、当該リクエストに応じてレスポンスを送信する。また、キャッシュサーバ装置5の送信手段は、自装置が記憶していないコンテンツに係るリクエストがあった場合、当該コンテンツを受信するためのリクエストをオリジンサーバ装置4に対して送信する。また、キャッシュサーバ装置5の制御手段は、端末装置2から受信したキャッシュサーバ制御情報524に基づいて、情報の記憶に係る処理を制御する。
【0045】
[配布サーバ装置3]
配布サーバ装置3は、制御部30、記憶部32及びネットワークインタフェース部34を含み、それぞれはバス36を介して電気的に接続されている。
【0046】
記憶部32は、制御部30が実行する各種プログラムの他、設定情報DB320を含む。
【0047】
設定情報DB320は、端末装置2に対して送信する設定情報510を記憶する。システム1に複数のオリジンサーバ装置4が存在する場合、設定情報DB320は、典型的には、複数のオリジンサーバ装置4のそれぞれに対応する設定情報510を記憶する。設定情報DB320は、例えば、webサイト運営者Aが管理するオリジンサーバ装置4に対応する設定情報510と、webサイト運営者Bが管理するオリジンサーバ装置4に対応する設定情報510と、の両方を個別に記憶する。
【0048】
制御部30は、記憶部32に記憶された各種プログラムを実行することにより、受信手段300、送信手段302及び通信手段304として機能する。
【0049】
受信手段300は、端末装置2から設定情報510の送信に係るリクエストを受信する。
【0050】
送信手段302は、受信手段300が受信したリクエストに応じて、設定情報510に関する情報を端末装置2に送信する。送信手段302は、設定情報DB320から読み出した設定情報510に関する情報を送信する。
【0051】
設定情報510に関する情報は、設定情報510のほか、設定情報510を取得するための所定のプログラムであってもよい。当該所定のプログラムは、実行することにより設定情報510を取得するためのリクエストを生成することができるプログラムである。
【0052】
通信手段304は、ネットワークインタフェース部34を介して他の装置と通信する。
【0053】
ネットワークインタフェース部34は、通信ネットワーク6を介して他の装置と通信する。
【0054】
<3.システム1の動作>
図2-11を参照して、システム1に含まれる各種装置の動作の一例について説明する。図2は、端末装置2、配布サーバ装置3、オリジンサーバ装置4及びキャッシュサーバ装置5の動作を説明するためのシーケンス図である。図3は、HTMLファイル400のタグに基づいて設定情報510を取得する動作を説明するための図である。図4-8は、変更手段210の動作を説明するための図である。図9-11は、リクエストを受信したキャッシュサーバ装置5の動作を説明するための図である。
【0055】
[端末装置2が設定情報510を取得する動作(S1-10)]
図2は、システム1に含まれる各種装置の動作の一例を説明するための図である。
【0056】
まず、端末装置2は、生成手段200により、オリジンサーバ装置4に対するリクエストを生成する(S1)。この例では、生成手段200は、「https://origin_example.com/toppage」という宛先を含むリクエストを生成するものとする。
【0057】
S1の後、端末装置2は、送信手段202により当該リクエストを送信する(S2)。この例では、端末装置2は、「https://origin_example.com/toppage」という宛先を含むリクエストを送信する。すなわち、当該リクエストは、「origin_example.com」というドメインが関連付けられたオリジンサーバ装置4から、webサイトのトップページ(toppageに対応)に関する情報を取得するためのものである。S2において、オリジンサーバ装置4は、受信手段300によりリクエストを受信する。
【0058】
S2の後、オリジンサーバ装置4は、当該リクエストに対応するコンテンツを含むレスポンスを送信する(S4)。この例では、コンテンツはHTMLファイル400である。HTMLファイル400は、S2で送信されたリクエストに対応するもの(すなわち、webサイトのトップページを表示するためのもの)である。S4において、端末装置2は、受信手段204によりレスポンスを受信する。
【0059】
図3は、端末装置2が受信したHTMLファイル400の一例を示す図である。HTMLファイル400は、htmlタグ402、headタグ404、titleタグ406、scriptタグ408及びbodyタグ410を含む。HTMLファイル400の様式は、web標準に従うものであってもよい。
【0060】
S4の後、端末装置2は、表示手段206により当該レスポンスに含まれるHTMLファイル400の内容を表示装置710に表示する(S6)。
【0061】
S6の後、端末装置2は、以下に示すS8-10のように、取得手段208により設定情報510を取得する。この例では、取得手段208は、HTMLファイル400に含まれるscriptタグ408に記載された宛先に関連付けられた配布サーバ装置3から、設定情報510を取得する。このように、設定情報510は、典型的には、表示内容に関する情報を含むファイル(例えば、HTMLファイル400等)に含まれる特定の要素(例えば、scriptタグ408、headタグ、bodyタグ、titileタグ、brタッグ、pタグ、divタグ、その他HTMLタグ等)に関連付けられた情報である。
【0062】
なお、特定の要素に関連付けられた情報とは、当該特定の要素から一意に決定される情報を含む。具体的には、設定情報510が特定の要素に関連付けられていることとは、端末装置2が当該特定の要素に基づいて、当該特定の要素に対応する設定情報510を取得することができることをいう。端末装置2が特定の要素に基づいて、例えば、一以上のサーバ装置(webサーバ装置を含む)のそれぞれに対して連続的に問い合わせを行い、その結果として設定情報510を取得するような態様であっても、設定情報510は当該特定の要素に関連付けられているという。他にも、端末装置2が特定の要素に基づいて、例えば、所定のプログラムをダウンロードし、当該プログラムを実行することにより設定情報510を取得するような態様であっても、設定情報510は当該特定の要素に関連付けられているという。他にも、端末装置2が特定の要素に基づいて、表示内容に関する情報を含むファイルに含まれる(例えば、HTMLファイル400の任意のタグに記載された)設定情報510を取得するような態様であっても、設定情報510は当該特定の要素に関連付けられているという。すなわち、設定情報510は表示内容に関する情報を含むファイルに含まれるものであってもよい。
【0063】
端末装置2は、scriptタグ408に記載された「https://distribution_example.com」という宛先を含むリクエストを生成及び送信する(S8)。S8において、配布サーバ装置3は、受信手段300により当該リクエストを受信する。
【0064】
S8の後、配布サーバ装置3は、送信手段302により当該リクエストに対応するコンテンツを含むレスポンスを送信する(S10)。この例では、コンテンツは設定情報510である。S10において、端末装置2は、設定情報510を含むレスポンスを受信する。
【0065】
なお、本実施形態では、端末装置2はS1-10の処理によって設定情報510を取得するものとして説明したが、これに限られない。設定情報510は、例えば、端末装置2の工場出荷時から設定情報DB222に記憶されているものであってもよい。他にも、設定情報510は、例えば、端末装置2のリクエスト(S8参照)によらず、配布サーバ装置3から複数の端末装置2に対してブロードキャストされるものであってもよい。
【0066】
また、本実施形態では、端末装置2は、S10において設定情報510を含むレスポンスを受信するものとして説明したが、これに限られない。端末装置2は、S10において受信したレスポンスに含まれる、例えば、所定のプログラムを実行することにより設定情報510を取得してもよい。所定のプログラムは、サーバ装置(例えば、配布サーバ装置3、キャッシュサーバ装置5、オリジンサーバ装置4、設定情報510を配布するサーバ装置等)から設定情報510を取得するためのリクエストを生成するプログラムであってもよい。他にも、配布サーバ装置3に代わってオリジンサーバ装置4が設定情報510を送信する場合には、設定情報510は、S4において端末装置2が受信したHTMLファイル400に含まれるものであってもよい。この場合、S8-S10の設定情報510を取得する処理は実行されなくてもよい。
【0067】
[端末装置2が設定情報に基づいてリクエストを変更する動作(S12-16)]
S10の後、端末装置2は、生成手段200により第1リクエスト500を生成する(S12)。この例では、生成手段200は、「https://origin_example.com/product」という宛先を含むリクエストを生成するものとする。
【0068】
S12の後、端末装置2は、変更手段210により第1リクエスト500を第2リクエスト520に変更する(S14)。この例では、端末装置2はS14までにリクエストを変更するプログラムを記憶部22に記憶しているものとする。
【0069】
図4-8は、S14の詳細を説明するための図である。図4は、S14における第1リクエスト500、設定情報510及び第2リクエスト520の関係の概念図である。図5は、S14の詳細を説明するためのフローチャートである。図6-7は、変更手段210がリクエストの宛先を変更する際に参照する情報の一例を説明するための図である。図8は、変更手段210がリクエストに付加する情報の一例を説明するための図である。
【0070】
図4は、S14における変更手段210の動作の概要を説明するための図である。
【0071】
第1リクエスト500は、「https://origin_example.com/product」という第1宛先502を含むものであるとする。すなわち、第1リクエスト500は、「origin_example.com」というドメインが関連付けられたオリジンサーバ装置4から、製品情報(productに対応)の一覧を取得するためのものである。
【0072】
設定情報510は、宛先の変更規則512(変更対象宛先リスト512a、変更後宛先リスト512b及び変更除外宛先リスト512cを含む)及び第1リクエスト500に対して付加する情報514を含む。
【0073】
変更手段210は、設定情報510に基づいて、第1リクエスト500を第2リクエスト520に変更する。具体的には、変更手段210は、宛先の変更規則512に基づいて第1リクエスト500の第1宛先502を、第2リクエスト520の第2宛先522(「https://cache_example.com/prоduct」に相当)に変更する。すなわち、第2リクエスト520は、「cache_example.com」というドメインが関連付けられたキャッシュサーバ装置5から、製品情報(productに対応)の一覧を取得するためのものである。
【0074】
さらに、変更手段210は、第1リクエスト500に対して付加する情報514に基づいて、キャッシュサーバ制御情報524を付加する。キャッシュサーバ制御情報524は、キャッシュサーバ装置5の動作に関する情報である。キャッシュサーバ制御情報524の具体例については図8を参照して後述する。
【0075】
図5は、S14における変更手段210の動作を実現する具体的な手法を説明するためのフローチャートである。すなわち、図5のS140-146は、図2のS14に含まれる。
【0076】
まず、端末装置2は、第1宛先502が変更対象宛先リスト512aに含まれるか否かを判定する(S140)。
【0077】
図6は、変更対象宛先リスト512a及び変更後宛先リスト512bの一例を示す図である。このように、設定情報510は、第1宛先502と、第2宛先522とが関連付けられた情報を含む。この例では、第1宛先502の少なくとも一部が変更対象宛先リスト512aに列挙された宛先のいずれかと一致する場合、第1宛先502は変更対象宛先リスト512aに含まれると判定するものとする。なお、変更後宛先リスト512bについてはS144で後述する。
【0078】
図6によると、変更対象宛先リスト512aは、「origin_example.com」及び「origin2_example.com」を含む。これに対して、「https://origin_example.com/product」は、少なくとも一部が「origin_example.com」と一致する。したがって、第1宛先502は、変更対象宛先リスト512aに含まれると判定される(S140 YES)。なお、第1宛先502が変更対象宛先リストに含まれないと判定された場合には、変更手段210は第1リクエストを変更しない(S140 NO)。
【0079】
第1宛先502が変更対象宛先リスト512aに含まれると判定された場合(S140 YES)、端末装置2は、第1宛先502が変更除外宛先リスト512cに含まれるか否かを判定する(S142)。
【0080】
図7は、変更除外宛先リスト512cの一例を示す図である。この例では、第1宛先502の少なくとも一部が変更除外宛先リスト512cに列挙されたいずれかの宛先と一致する場合、第1宛先502は変更除外宛先リスト512cに含まれると判定するものとする。
【0081】
図7によると、変更除外宛先リスト512cは「origin_example.com/mypage」及び「origin_example.com/payment」を含む。これに対して、「https://origin_example.com/product」は「origin_example.com/mypage」又は「origin_example.com/payment」と一致する部分を有しない。したがって、第1宛先502は、変更除外宛先リスト512cに含まれないと判定される(S142 NO)。なお、第1宛先502が変更除外宛先リストに含まれると判定された場合には、変更手段210は第1リクエストを変更しない(S142 YES)。
【0082】
会員情報等及び決済情報等のユーザの個人情報は正当なユーザ以外に対しては秘匿するべき情報であり、このような情報は、典型的にはキャッシュサーバ装置5には記憶されない。そのため、変更手段210は、所定の規則を満たすリクエストについては、キャッシュサーバ装置5に対するものに変更せずにオリジンサーバ装置4に対するもののままにしておくことが望ましい。これにより、端末装置2は、必要とする情報の性質や属性に応じて柔軟にキャッシュサーバ装置5及びオリジンサーバ装置4を使い分けることができる。
【0083】
第1リクエスト500の第1宛先502が変更除外宛先リスト512cに含まれないと判定された場合(S142 NO)、端末装置2は、第1リクエスト500の第1宛先502を変更後宛先リスト512bに基づいて変更する(S144)。
【0084】
図6は、変更対象宛先リスト512aと変更後宛先リスト512bとの対応関係を表す。具体的には、変更対象宛先リスト512aは変更前の宛先を表し、変更後宛先リスト512bはそれぞれの行に対応する変更後の宛先を表す。この例では、第1宛先502は「origin_example.com」の行と一致する(S140参照)ため、「cache_example.com」が変更後の宛先となる。すなわち、端末装置2は、「https://origin_example.com/product」を「https://cache_example.com/product」に変更する。
【0085】
S144の後、端末装置2は、第1リクエスト500に対して付加する情報514に基づいて、第1リクエスト500に対してキャッシュサーバ制御情報524を付加する(S146)。キャッシュサーバ制御情報524は、例えば、第1リクエスト500のHTTPリクエストボディに対して付加される。
【0086】
なお、キャッシュサーバ制御情報524は、リクエスト毎に異なってもよく、端末装置2のユーザ毎に異なってもよい。すなわち、変更手段210は、リクエストの種類に応じて異なるキャッシュサーバ制御情報524を付加してもよい。
【0087】
図8は、キャッシュサーバ制御情報524の一例を説明するための図である。この例において、キャッシュサーバ制御情報524は、「コンテンツ削除タイマーの秒数」、「キャッシュするコンテンツの種類」及び「コンテンツをキャッシュする場合の圧縮形式」という項目を含み、それぞれ「120秒」、「動画、画像」及び「動画ならば低画質モード、画像ならば中画質モード」という設定値が関連付けられている。すなわち、第2リクエスト520は、設定情報510に基づいて設定されるとともにキャッシュサーバ装置5の動作に関する情報(キャッシュサーバ制御情報524に相当)を含む。また、キャッシュサーバ装置5の動作に関する情報は、コンテンツを記憶部に保持する期間の長さと、記憶するコンテンツの種類と、コンテンツを記憶するための圧縮方式との少なくともいずれか一つに関する情報を含んでもよい。この例におけるキャッシュサーバ制御情報524を受信したキャッシュサーバ装置5の動作の一例については、図9-10を用いて後述する。
【0088】
S146の後(すなわち、S14の後)、端末装置2は、送信手段202により第2リクエスト520を送信する(S16)。この例では、第2リクエスト520は、「https://cache_example.com/product」という宛先を含む。すなわち、当該リクエストは、「cache_example.com」というドメインが関連付けられたキャッシュサーバ装置5から製品情報(productに対応)に関する情報を取得するためのものである。S16において、キャッシュサーバ装置5は、第2リクエスト520を受信する。
【0089】
設定情報510は、ユーザ毎に異なってもよい。具体的には、配布サーバ装置3は、ユーザ毎に異なる変更後宛先リスト512bを含む設定情報510を送信することで、通信をより効率化することができる。例えば、ユーザAの端末装置2には「origin_example.com」に対して「cache_example.com」が関連付けられた設定情報510が送信され、ユーザBの端末装置2には「origin_example.com」に対して「cache_example.net」が関連付けられた設定情報510が送信された場合、ユーザAの端末装置2は第2リクエスト520を「cache_example.com」に対応するキャッシュサーバ装置5に対して送信し、ユーザBの端末装置2は第2リクエスト520を「cache_example.net」に対応する別のキャッシュサーバ装置5に対して送信する。すなわち、配布サーバ装置3がユーザ毎に異なる変更後宛先リスト512bを含む設定情報510を送信することで、複数の端末装置2をそれぞれ異なるキャッシュサーバ装置5にアクセスさせることができる。これにより、ロードバランサー等のネットワーク機器を導入することなく、キャッシュサーバ装置5の処理負荷を分散することができる。
【0090】
[キャッシュサーバ装置5がレスポンスを送信する動作(S18-22)]
S16の後、キャッシュサーバ装置5は、レスポンスに関する処理を実行する(S18)。レスポンスに関する処理は、レスポンスを送信することを含む(後述するS186及びS192参照)。
【0091】
図9は、レスポンスに関する処理(S18)を実行するキャッシュサーバ装置5の動作の一例を説明するための図である。すなわち、図9のS182-194は、図2のS18に含まれる。
【0092】
まず、キャッシュサーバ装置5は、第2リクエスト520からキャッシュサーバ制御情報524を読み取る(S182)。キャッシュサーバ装置5は、キャッシュサーバ制御情報524に含まれる情報に基づいて、コンテンツのキャッシュに関する処理を行う。コンテンツのキャッシュに関する処理の具体例については、S194で後述する。なお、キャッシュは記憶の一態様である。
【0093】
S182の後、キャッシュサーバ装置5は、第2リクエスト520に応じたコンテンツが記憶部に存在するか否かを判定する(S184)。
【0094】
第2リクエスト520に応じたコンテンツが記憶部に存在しない場合(S184 NO)、キャッシュサーバ装置5は、オリジンサーバ装置4から当該コンテンツを取得する(S190)。具体的には、キャッシュサーバ装置5は、第2リクエスト520に応じたコンテンツに係るリクエストをオリジンサーバ装置4に対して送信し、オリジンサーバ装置4から当該リクエストに応じたレスポンスを受信する。このように、キャッシュサーバ装置5は、第2リクエスト520を受信した場合であって当該リクエストに応じたコンテンツを記憶していないときは、オリジンサーバ装置4から当該コンテンツを取得してもよい。
【0095】
S190の後、キャッシュサーバ装置5は、当該コンテンツを含むレスポンスを端末装置2に対して送信する(S192)。この例では、レスポンスはHTMLファイル及び画像情報を含むものとする。S192において、端末装置2は、レスポンスを受信する。このように、端末装置2が受信するレスポンスは、第2リクエスト520に応じてキャッシュサーバ装置5がオリジンサーバ装置4から取得したコンテンツを含んでもよい。
【0096】
一般的に、記憶部は、記憶容量が大きいものほど読み書きが低速であり(例えば、ハードディスクドライブ)、記憶容量が小さいものほど読み書きが高速である(例えば、メモリ、キャッシュメモリ等)。すなわち、キャッシュサーバ装置5がコンテンツを高速で読み出し及び書き込みするためには、記憶部は、比較的記憶容量が小さいもののほうが望ましい。一方で、記憶容量が小さい場合には、オリジンサーバ装置4が記憶するコンテンツの一部のコンテンツしか記憶することができない。そのため、キャッシュサーバ装置5を適宜オリジンサーバ装置4からコンテンツを取得するように構成することで、キャッシュサーバ装置5が端末装置2に対して高速で応答することと、様々な種類のコンテンツに係るリクエストに対応することとを両立することができる。
【0097】
S192の後、キャッシュサーバ装置5は、コンテンツのキャッシュに関する処理を実行する(S194)。コンテンツのキャッシュに関する処理は、S190で取得したコンテンツをキャッシュするか否か及びキャッシュする場合にはどのように記憶するかを決定する処理である。また、コンテンツのキャッシュに関する処理は、キャッシュサーバ制御情報524に基づいて制御される。
【0098】
図10は、コンテンツのキャッシュに関する処理(S194)におけるキャッシュサーバ装置5の動作の一例を説明するための図である。すなわち、図10のS196-204は、図9のS194に含まれる。
【0099】
まず、キャッシュサーバ装置5は、コンテンツの種類を判定する(S196)。キャッシュサーバ制御情報524の「キャッシュするコンテンツの種類」という項目に対しては、「動画、画像」という値が設定されている。したがって、キャッシュサーバ装置5は、動画情報及び画像情報はキャッシュし(S196 動画、S196 画像)、その他(例えば、テキスト情報)はキャッシュしないと判定する(S196 その他)。この例では、S192において受信したレスポンスはHTMLファイル及び画像情報を含むものだったため、画像情報についてはキャッシュし、HTMLファイルについてはキャッシュしないと判定する。
【0100】
キャッシュサーバ制御情報524がキャッシュするコンテンツの種類に関する情報を含むことにより、キャッシュサーバ装置5は、自装置の記憶容量を有効に活用することができるようになる。例えば、webサービスのコンテンツにテキスト情報と画像情報が含まれる場合において、画像情報の内容が主であり、テキスト情報は補助的な役割にとどまるのであれば、キャッシュするコンテンツの種類を画像情報のみにすることで、webサービスにとって重要なコンテンツを優先的にキャッシュすることができる。
【0101】
S196の後、キャッシュサーバ装置5は、コンテンツを圧縮する(S198又はS200)。キャッシュサーバ制御情報524の「コンテンツをキャッシュする場合の圧縮形式」という項目に対しては、「動画ならば低画質モード、画像ならば中画質モード」という値が設定されている。したがって、キャッシュサーバ装置5は、コンテンツが動画情報である場合(S196 動画)、当該コンテンツを低画質モードで圧縮する(S198)。また、キャッシュサーバ装置5は、コンテンツが画像情報である場合(S196 画像)、当該コンテンツを中画質モードで圧縮する(S200)。なお、低画質モード及び中画質モードは、圧縮後に維持される画質に関する設定値である。圧縮形式が低画質モードである場合は、圧縮後のコンテンツのデータファイルの容量が大幅に小さくなる。圧縮形式が中画質モードである場合は、圧縮形式が低画質モードである場合と比較して、圧縮後のコンテンツのデータファイルの容量が大きい。例えば、1GBの動画に係るデータファイルを低画質モードで圧縮した場合、0.1GB程度になるところ、中画質モードで圧縮した場合、0.5GB程度になる。圧縮形式は、Q値を含むパラメータにより表現されてもよい。
【0102】
キャッシュサーバ制御情報524がコンテンツをキャッシュする場合の圧縮形式に関する情報を含むことにより、キャッシュサーバ装置5は、効率よく端末装置2に対してレスポンスを送信することができるようになる。例えば、「キャッシュするコンテンツの種類」の項目の値が「画像」である場合において、キャッシュする画像情報に係る画像が低画質である場合には、圧縮後のデータファイルのサイズが大きくても多くの画像情報をキャッシュすることができ、さらに、圧縮後のデータファイルのサイズが比較的大きい圧縮形式のほうが解凍に要する演算が少ないため、圧縮後のデータファイルのサイズが比較的大きい圧縮形式でも効率よく端末装置2に対してレスポンスを送信することができる。一方で、キャッシュする画像情報に係る画像が高画質である場合には、圧縮後のデータファイルのサイズが小さい圧縮形式のほうがより多くの画像情報をキャッシュすることができ、オリジンサーバ装置4からコンテンツを取得する必要がなくなるため、圧縮後のデータファイルのサイズが小さい圧縮形式のほうが効率よく端末装置2に対してレスポンスを送信することができるようになる。このように、変更手段210は、コンテンツの性質や属性に応じてコンテンツをキャッシュする場合の圧縮形式を設定することで、効率よく端末装置2に対してレスポンスを送信することができるようになる。
【0103】
S198又はS200の後、キャッシュサーバ装置5は、圧縮されたコンテンツをキャッシュする(S202)。
【0104】
S202の後、キャッシュサーバ装置5は、コンテンツ削除タイマーを設定する(S204)。キャッシュサーバ制御情報524の「コンテンツ削除タイマーの秒数」という項目に対しては、「120秒」という値が設定されている。したがって、キャッシュサーバ装置5は、コンテンツ削除タイマーを120秒に設定する。
【0105】
図11は、コンテンツ削除タイマーの動作の一例を説明するための図である。キャッシュサーバ装置5は、記憶部に記憶された複数のコンテンツのそれぞれに対して、周期的(例えば、1秒毎)に図11のS206-208の処理を実行することによりコンテンツを削除するか否かを決定する。
【0106】
まず、キャッシュサーバ装置5は、コンテンツに設定されたコンテンツ削除タイマーがゼロに達しているか否かを判定する(S206)。コンテンツ削除タイマーがその時点でゼロに達している場合(S206 YES)、キャッシュサーバ装置5は当該コンテンツを削除する(S208)。一方で、コンテンツ削除タイマーがゼロに達していない場合(S206 NO)は、キャッシュサーバ装置5はコンテンツを削除せずに次の周期まで待機する。
【0107】
キャッシュサーバ装置5は、S204において、コンテンツ削除タイマーを120秒に設定している。このため、当該コンテンツは原則としてキャッシュした時点から120秒経過時に削除される。
【0108】
以上がコンテンツのキャッシュに関する処理(S194)におけるキャッシュサーバ装置5の動作の一例である。
【0109】
S194のように、キャッシュサーバ装置5がコンテンツのキャッシュに関する処理をキャッシュサーバ制御情報524に基づいて行うことで、webサービスを提供する者(又はその提供を支援する者)は、webサービスの要件に応じて動作を制御することができる。例えば、オリジンサーバ装置4が提供するwebサービスが動画情報及び画像情報よりもテキスト情報をできるだけ早く表示することを重視するものであれば、webサービスを提供する者(又はその提供を支援する者)は、キャッシュサーバ制御情報524の「キャッシュするコンテンツの種類」の項目が「テキスト」となるような設定情報510を送信するように配布サーバ装置3を設定することができる。
【0110】
キャッシュサーバ制御情報524は、例えば、配布サーバ装置3からキャッシュサーバ装置5に対して送信されてもよい。しかしながら、本実施形態のように、配布サーバ装置3から設定情報510を受信した端末装置2がキャッシュサーバ装置5に対してキャッシュサーバ制御情報524を送信するように構成することで、より詳細にキャッシュサーバ装置5を制御することができる。具体的には、キャッシュサーバ制御情報524は、端末装置2のユーザ毎に異なるものであってもよく、同一のユーザでもリクエスト毎に異なるものであってもよいため、ユーザ及びリクエストに係るコンテンツの属性に応じて細やかにキャッシュサーバ装置5を制御することができる。
【0111】
キャッシュサーバ制御情報524がコンテンツ削除タイマーの秒数に関する情報を含むことにより、キャッシュサーバ装置5は、自装置の記憶容量を有効に活用することができるようになる。例えば、ある製品を販売するwebサイトに製品の一覧のページと、各製品の詳細のページとがある場合において、キャッシュサーバ制御情報524を参照する変更手段210は、製品の一覧のページを表示するためのリクエストに対してはコンテンツ削除タイマーを120秒に設定し、各製品の詳細のページを表示するためのリクエストに対してはコンテンツ削除タイマーを10秒に設定してもよい。一般的に、ある製品についてのwebサイトを端末装置2のユーザが回遊する場合、製品の一覧のようなページはどのユーザも複数回アクセスするため、比較的長いコンテンツ削除タイマーを設定することが望ましい。一方で、各製品の詳細のページに対しては、各ユーザはアクセスしないか、1回のみアクセスする傾向にあるため、比較的短いコンテンツ削除タイマーを設定することが望ましい。このように、変更手段210は、ユーザが各コンテンツに対してアクセスする傾向に基づいてコンテンツ削除タイマーを設定することにより、キャッシュサーバ装置5の記憶容量を有効に活用することができる。なお、キャッシュサーバ制御情報524は、このようなコンテンツ削除タイマーの設定規則に関する情報を含んでもよい。
【0112】
ここまで、第2リクエスト520に応じたコンテンツが記憶部に存在しない場合(S184 NO)について説明した。一方で、第2リクエスト520に応じたコンテンツが記憶部に存在する場合(S184 YES)、キャッシュサーバ装置5は、当該コンテンツを含むレスポンスを送信する(S186)。この例では、レスポンスはHTMLファイル及び画像情報を含むものとする。
【0113】
このように、キャッシュサーバ装置5がコンテンツを記憶している場合には、オリジンサーバ装置4はレスポンスを送信せずに済む。これにより、オリジンサーバ装置4の処理負荷が減少し、通信が効率化される。すなわち、変更手段210が第1リクエスト500を第2リクエスト520に変更することにより(図4参照)、オリジンサーバ装置4に対するアクセスが減少し、通信が効率化される。
【0114】
設定情報510を記憶する端末装置2がシステム1内に複数ある場合、キャッシュサーバ装置5は、一方の端末装置2のリクエストによってキャッシュしたコンテンツを(S190-194参照)、当該コンテンツに係るリクエストを送信したもう一方の端末装置2に対して送信してもよい。このようにキャッシュされたコンテンツを複数の端末装置2が共有するように利用することで、キャッシュサーバ装置5が同一のコンテンツに係る複数のリクエストを受信した場合にもオリジンサーバ装置4には1度のアクセスだけが行われるため、オリジンサーバ装置4の処理負荷をさらに軽減することができる。
【0115】
S186の後、キャッシュサーバ装置5は、当該レスポンスに含まれていたコンテンツに係るコンテンツ削除タイマーを初期化する(S188)。この例では、コンテンツ削除タイマーの初期値は120秒であるため、キャッシュサーバ装置5は、コンテンツ削除タイマーを120秒に設定する。すなわち、キャッシュサーバ装置5は、コンテンツに関するリクエストが継続して120秒以上無かった場合に、当該コンテンツを削除する。このように、キャッシュサーバ装置5は、コンテンツを所定期間記憶するとともに所定期間経過後に当該コンテンツを削除してもよい。
【0116】
上述したとおり、キャッシュサーバ装置5は、比較的記憶容量が小さく、かつ、読み書きの速度が高い記憶部にコンテンツを記憶することが望ましい。そこで、キャッシュサーバ装置5は、記憶してから所定期間リクエストのなかったコンテンツについては、記憶部に保持しておく優先度が低いと判断し、このようなコンテンツを適宜削除する。キャッシュサーバ装置5をこのように構成することで、保持する優先度が高い(すなわち、リクエストを頻繁に受信する)コンテンツを多く記憶することができるようになる。これにより、端末装置2に対してより効率的にレスポンスを送信することができるようになる。
【0117】
S188又はS194の後(すなわち、S18の後)、端末装置2は、当該レスポンスに含まれるコンテンツに基づいて、表示手段206により画面上に情報を表示する(S22)。
【0118】
以上をまとめると、本発明の一態様に係るプログラムは、コンピュータを、表示内容に関する情報を含むファイルに含まれる特定の要素に関連付けられた設定情報510を取得する取得手段208と(特に、S6-10参照)、設定情報に基づいて、第1装置(オリジンサーバ装置4に相当)に対する第1リクエスト500を、第1装置が記憶する情報の少なくとも一部を複製して記憶する第2装置(キャッシュサーバ装置5に相当)に対する第2リクエスト520に変更する変更手段210と(特に、S12-14参照)、として機能させる。
【0119】
また、本発明の他の一態様に係る配布サーバ装置3は、第1装置(オリジンサーバ装置4に相当)に対する第1リクエスト500を、第1装置が記憶する情報の少なくとも一部を複製して記憶する第2装置(キャッシュサーバ装置5に相当)に対する第2リクエスト520に変更するための設定情報510を記憶する記憶部32と、端末装置2から第3リクエストを受信する受信部300と、第3リクエストに応じて、設定情報510を送信する送信部302と、を備える(特に、S8-10参照)。
【0120】
<4.発明の効果>
本発明の一実施形態によれば、端末装置2に対するwebサービスの提供を容易に効率化することができる。具体的には、本発明の一実施形態によれば、webサービス提供者側のサーバ装置及びネットワークの構成をほとんど変更することなく、端末装置2をオリジンサーバ装置4に代わってキャッシュサーバ装置5にアクセスさせることが可能になる。これにより端末装置2に対するレスポンスに係る処理負荷をオリジンサーバ装置4とキャッシュサーバ装置5との間で分散させることができ、複数のリクエストに効率よく応答することができるようになる。以下では、図12-14を参照して、本発明の一実施形態による典型的な効果について説明する。
【0121】
図12は、端末装置2及びオリジンサーバ装置4を含むシステム1aを示す図である。システム1aでは、端末装置2は、オリジンサーバ装置4に対してリクエストを送信し、当該リクエストに対するレスポンスを受信する。システム1aでは、オリジンサーバ装置4は端末装置2からの全てのリクエストに対してレスポンスを送信する必要がある。すなわち、システム1aではオリジンサーバ装置4の処理負荷が大きく、効率的な通信ができない。
【0122】
図13は、端末装置2、オリジンサーバ装置4及びリバースプロキシサーバ装置7を含むシステム1bを示す図である。典型的には、オリジンサーバ装置4及びリバースプロキシサーバ装置7はwebサービス提供者によって管理される。オリジンサーバ装置4の処理負荷を軽減するためには、図13のように、通信ネットワーク6とオリジンサーバ装置4との間にリバースプロキシサーバ装置7を新たに設置し、当該リバースプロキシサーバ装置7が備えるキャッシュ機能を利用する方法が有効である。
【0123】
しかしながら、システム1aをシステム1bに変更するためには、webサービス提供者は自身の管理するサーバ装置及びネットワークの構成を大幅に変更する必要がある。サーバ装置及びネットワークの構成の変更は、例えば、キャッシュサーバ装置5と通信ネットワーク6とを切断する作業や、リバースプロキシサーバ装置7を通信ネットワーク6及びキャッシュサーバ装置5と接続する作業等である。このような構成の変更を加えることは、webサービス提供者の管理対象であるネットワークの構成等が複雑である場合には特に困難である。
【0124】
一方で、本発明の一実施形態は、システム1bのように端末装置2のアクセス先のネットワーク構成等(すなわち、webサービス提供者の管理対象)を変更するのではなく、アクセス元である端末装置2の設定を制御することにより通信の効率化を図るものである。
【0125】
図14は、図1を参照して説明した本発明の一実施形態に係るシステム1の概略図である。この例において、オリジンサーバ装置4はwebサービス提供者によって管理され、配布サーバ装置3及びキャッシュサーバ装置5はwebサービスの提供を支援する者によって管理されているものとする。本発明の一実施形態によれば、webサービス提供者は、自身の管理対象であるネットワークの構成等にほとんど変更を加えることなく、端末装置2をキャッシュサーバ装置5にアクセスさせることができる。
【0126】
具体的には、本実施形態において、端末装置2は、オリジンサーバ装置4への初回アクセス時(S1-4参照)において受信したHTMLファイル400により配布サーバ装置3から設定情報510を取得し(S6-10参照)、これに基づいて第1リクエスト500を第2リクエスト520に変更している(図4参照)。したがって、この方法によれば、webサービス提供者は、自身のwebサイト等のHTMLファイルをわずかに編集する(例えば、配布サーバ装置3のURLを含むscriptタグを1行追加する)だけで端末装置2をキャッシュサーバ装置5にアクセスさせ、効率的にwebサービスを提供することができるようになる。
【0127】
なお、本発明の適用対象はwebサービスに限られず、端末装置2が送信する何らかの要求情報(HTTPリクエストを含む)に応じてサーバ装置が応答情報(HTTPレスポンスを含む)を送信するサービスであれば、同様の効果を得ることができる。
【0128】
上記では、オリジンサーバ装置4はwebサービス提供者によって管理され、配布サーバ装置3及びキャッシュサーバ装置5はwebサービスの提供を支援する者によって管理されているものとして説明したが、配布サーバ装置3及びキャッシュサーバ装置5の少なくとも一方はwebサービス提供者によって管理されるものであってもよい。すなわち、本発明は、各装置の管理主体によらず効果を奏する。
【0129】
このように、本発明の一実施形態によれば、システム1の各装置がwebサービス提供者によって管理される場合であっても容易に通信を効率化することができる。例えば、webサービス提供者がシステム1bのようにリバースプロキシサーバ装置7をシステムに導入する場合(図13参照)には、オリジンサーバ装置4を通信ネットワーク6から一時的に切り離す必要があり、オリジンサーバ装置4の機能を一時的に停止させる必要がある。webサービス提供者の管理対象であるネットワークの構成等が複雑である場合には、オリジンサーバ装置4の停止によりシステム1bに大きな影響が生じる場合がある。一方で、配布サーバ装置3及びキャッシュサーバ装置5は、オリジンサーバ装置4が含まれる環境とは独立した環境において管理することができ、オリジンサーバ装置4の動作に影響を与えることなくシステムに導入することができる。そのため、本発明の一実施形態によれば、容易に通信を効率化することができる。
【0130】
<5.ハードウェア構成>
図15を参照して、上述してきた端末装置2及び配布サーバ装置3をコンピュータ70により実現する場合のハードウェア構成の一例を説明する。なお、それぞれの装置の機能は、複数台の装置に分けて実現することもできる。
【0131】
図15に示すように、コンピュータ70は、プロセッサ700と、記憶装置702と、入力I/F704と、データI/F706と、通信I/F708、及び表示装置710を含む。
【0132】
プロセッサ700は、記憶装置702に記憶されているプログラムを実行することによりコンピュータ70における様々な処理を制御する。例えば、端末装置2の制御部20が備える各機能部等は、記憶装置702に記憶されたプログラムを、プロセッサ700が実行することにより実現可能である。
【0133】
記憶装置702は、例えばRAM(Random Access Memory)などの記憶媒体である。RAMは、プロセッサ700によって実行されるプログラムのプログラムコードや、プログラムの実行時に必要となるデータを一時的に記憶する。
【0134】
記憶装置702は、他にも、例えばハードディスクドライブ(HDD)やフラッシュメモリなどの不揮発性の記憶媒体である。記憶装置702は、オペレーティングシステムや、上記各構成を実現するための各種プログラムを記憶する。当該各種プログラムを格納した記憶媒体は、コンピュータ読み取り可能な非一時的な記憶媒体(Non-transitory computer readable medium)であってもよい。この他、記憶装置702は、事業者情報等の各種情報を登録するテーブルと、当該テーブルを管理するDBを記憶することも可能である。このようなプログラムやデータは、必要に応じて記憶装置702にロードされることにより、プロセッサ700から参照される。
【0135】
入力I/F704は、ユーザからの入力を受け付けるためのデバイスである。入力I/F704の具体例としては、カメラ、ボタン、マイク、キーボード、マウス、タッチパネル、各種センサ、ウェアラブル・デバイスなどが挙げられる。入力I/F704は、例えばUSB(Universal Serial Bus)などのインタフェースを介してコンピュータ70に接続されてもよい。
【0136】
データI/F706は、コンピュータ70の外部からデータを入力するためのデバイスである。データI/F706の具体例としては、各種記憶媒体に記憶されているデータを読み取るためのドライブ装置などがある。データI/F706は、コンピュータ70の外部に設けられることも考えられる。その場合、データI/F706は、例えばUSBなどのインタフェースを介してコンピュータ70へと接続される。
【0137】
通信I/F708は、コンピュータ70の外部の装置と有線または無線により、通信ネットワーク6を介したデータ通信を行うためのデバイスである。通信I/F708は、コンピュータ70の外部に設けられることも考えられる。その場合、通信I/F708は、例えばUSBなどのインタフェースを介してコンピュータ70に接続される。
【0138】
表示装置710は、各種情報を表示するためのデバイスである。表示装置710の具体例としては、例えば液晶ディスプレイや有機EL(Electro-Luminescence)ディスプレイ、ウェアラブル・デバイスのディスプレイなどが挙げられる。表示装置710は、コンピュータ70の外部に設けられてもよい。その場合、表示装置710は、例えばディスプレイケーブルなどを介してコンピュータ70に接続される。また、入力I/F704としてタッチパネルが採用される場合には、表示装置710は、入力I/F704と一体化して構成することが可能である。
【0139】
また、上記実施の形態で記載された端末装置2及び配布サーバ装置3が備える構成要素は、記憶装置702に格納されたプログラムがプロセッサ700によって実行されることで、定められた処理が他のハードウェアと協働して実現されるものとする。また、言い換えれば、これらの構成要素は、ソフトウェアまたはファームウェアとしても、それと対応するハードウェアとしても想定され、その双方の概念において、「機能」、「手段」、「部」、「処理回路」、「ユニット」、または「モジュール」などとも記載され、またそれぞれに読み替えることができる。
【0140】
<6.発明の実施の態様>
上記実施形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。また、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。さらに、当業者であれば、以下に述べる各要素を均等なものに置換した実施の形態を採用することが可能であり、かかる実施の形態も本発明の範囲に含まれる。例えば、上記実施形態の他にも、以下の実施形態も本発明の範囲に含まれる。
【0141】
[付記1]
本発明の一態様に係るプログラムは、コンピュータを、表示内容に関する情報を含むファイルに含まれる特定の要素に関連付けられた設定情報510を取得する取得手段208と、設定情報に基づいて、第1装置(オリジンサーバ装置4に相当)に対する第1リクエスト500を、第1装置が記憶する情報の少なくとも一部を複製して記憶する第2装置(キャッシュサーバ装置5に相当)に対する第2リクエスト520に変更する変更手段210と、として機能させる。
【0142】
[付記2]
上記付記1において、設定情報510は、第1リクエスト500に含まれるとともに第1装置に関連付けられた第1宛先502と、第2リクエスト520に含まれるとともに第2装置に関連付けられた第2宛先522とが関連付けられた情報を含んでもよい。
【0143】
[付記3]
上記付記1又は2の記載のプログラムは、コンピュータを、第2リクエスト520を送信する送信手段202と、第2リクエスト520に応じたコンテンツを含むレスポンスを第2装置から受信する受信手段204と、としてさらに機能させてもよい。
【0144】
[付記4]
上記付記3において、レスポンスは、第2リクエスト520に応じて第2装置が第1装置から取得したコンテンツを含んでもよい。
【0145】
[付記5]
上記付記3又は4において、第2装置は、第2リクエスト520を受信した場合であってコンテンツを記憶していないときは、第1装置からコンテンツを取得してもよい。
【0146】
[付記6]
上記付記3から5のいずれかにおいて、第2装置は、コンテンツを所定期間記憶するとともに所定期間経過後に当該コンテンツを削除してもよい。
【0147】
[付記7]
上記付記1から6のいずれかにおいて、第2リクエスト520は、設定情報510に基づいて設定されるとともに第2装置の動作に関する情報(キャッシュサーバ制御情報524に相当)を含んでもよい。
【0148】
[付記8]
上記付記6を前提とする上記付記7において、第2装置の動作に関する情報(キャッシュサーバ制御情報524に相当)は、コンテンツを記憶する所定期間の長さと、記憶するコンテンツの種類と、コンテンツを記憶するための圧縮方式との少なくともいずれか一つに関する情報を含んでもよい。
【0149】
[付記9]
上記付記1から8のいずれかにおいて、ファイルは、第1装置から取得されてもよい。
【0150】
[付記10]
上記付記1から付記8のいずれかにおいて、ファイルは、HTMLファイル400であり、特定の要素は、特定のタグであってもよい。
【0151】
[付記11]
本発明の他の一態様に係る記憶媒体は、上記付記1から10のいずれかに記載のプログラムを記憶する。
【0152】
[付記12]
本発明の他の一態様に係る端末装置2は、上記付記1から10のいずれかに記載のプログラムを記憶する記憶部22と、当該プログラムを実行する制御部20と、を備える。
【0153】
[付記13]
本発明の他の一態様に係るサーバ処理方法は、コンピュータに、第1装置(オリジンサーバ装置4に相当)に対する第1リクエスト500を、第1装置が記憶する情報の少なくとも一部を複製して記憶する第2装置(キャッシュサーバ装置5に相当)に対する第2リクエスト520に変更するための設定情報510に関する第3リクエストを端末装置から受信するステップ(S8)と、第3リクエストに応じて、設定情報510を送信するステップ(S10)と、を実行させる。
【0154】
[付記14]
本発明の他の一態様に係るサーバ装置は、第1装置(オリジンサーバ装置4に相当)に対する第1リクエスト500を、第1装置が記憶する情報の少なくとも一部を複製して記憶する第2装置(キャッシュサーバ装置5に相当)に対する第2リクエスト520に変更するための設定情報510を記憶する記憶部と、端末装置から第3リクエストを受信する受信部300と、第3リクエストに応じて、設定情報510を送信する送信部302と、を備える。
【0155】
また、システム1の構成は一例であり、他の態様であってもよい。具体的には、複数の装置の機能は1つの装置によって実現されてもよく、1つの装置の機能は複数の装置の組み合わせによって実現されてもよい。例えば、配布サーバ装置3の機能はオリジンサーバ装置4によって実現されてもよい。他にも、例えば、配布サーバ装置3の機能はキャッシュサーバ装置5によって実現されてもよい。他にも、例えば、配布サーバ装置3の機能は複数の装置の組み合わせ(例えば、記憶部32に相当するデータベース装置及び制御部30に相当する制御装置の組み合わせ)によって実現されてもよい。
【符号の説明】
【0156】
1…システム、2…端末装置、3…配布サーバ装置、4…オリジンサーバ装置、5…キャッシュサーバ装置、20、30…制御部、22、32…記憶部、200…生成手段、202、302…送信手段、204、300…受信手段、206…表示手段、208…取得手段、210…変更手段、400…HTMLファイル、500…第1リクエスト、510…設定情報、520…第2リクエスト、524…キャッシュサーバ制御情報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15