(57)【特許請求の範囲】
【請求項１】
予測サーバと、モバイルコンピューティングデバイスとの間に存在するプロキシサーバによって少なくとも部分的に実行される方法であって、
前記モバイルコンピューティングデバイスから、イメージコレクションの所定のレイアウトの第１のイメージから、該所定のレイアウト内で第１のイメージに直接隣接する第２のイメージへのナビゲーションを指示するデータを受信するステップと、
前記データを受信したことに少なくとも部分的に応答して、
前記モバイルコンピューティングデバイスに、前記所定のレイアウト内で前記第２のイメージに直接隣接する第１のセットのイメージを送信するステップと、
前記予測サーバに、前記第１のセットのイメージに直接隣接する第２のセットのイメージを要求するステップと、
前記第２のセットのイメージを受信するステップと、
前記プロキシサーバに、前記予測サーバから受信した前記第２のセットのイメージを格納するステップと
を含む、方法。
【請求項２】
ナビゲーションを指示する前記データを受信することは、前記所定のレイアウト内で前記第２のイメージに直接隣接する前記第１のセットのイメージを求める要求を受信することを含む、
請求項１に記載の方法。
【請求項３】
前記所定のレイアウト内で前記第２のイメージに直接隣接する前記第１のセットのイメージを送信するステップは、
前記プロキシサーバに格納されている、前記所定のレイアウト内の前記第２のイメージに直接隣接する各イメージを識別することと、
前記プロキシサーバに格納されている、前記所定のレイアウト内の前記第２のイメージに直接隣接するイメージのサブセットであって、前記モバイルコンピューティングデバイスに以前に送信されたイメージのサブセットを決定することと、
前記プロキシサーバに格納されている、前記所定のレイアウト内の前記第２のイメージに直接隣接する各イメージのうち、前記モバイルコンピューティングデバイスに以前に送信されたイメージのサブセットを除くイメージを送信することと
を含む、請求項１に記載の方法。
【請求項４】
プロセッサに、請求項１乃至３のいずれか１項に記載の方法を実行させるプログラム。
【請求項５】
１つ又は複数のコンピューティングデバイスであって、
１つ又は複数のプロセッサと；
メモリと；
前記メモリに格納され、前記１つ又は複数のプロセッサ上で実行可能なプログラムであって、前記１つ又は複数のプロセッサによって実行されると、該プロセッサに、
クライアントコンピューティングデバイスが、所定のレイアウトに集合的に関連付けられる複数の異なるイメージのうち特定のイメージをレンダリングしている、との指示を受信することと、
前記指示を受信したことに少なくとも部分的に応答して、
前記クライアントコンピューティングデバイスに、前記所定のレイアウトにおいて前記特定のイメージに直接隣接する第１のセットのイメージを送信することと、
予測サーバに、前記第１のセットのイメージに直接隣接する第２のセットのイメージを要求することと、
前記第２のセットのイメージを受信することと、
前記メモリ内に、前記予測サーバから受信した前記第２のセットのイメージを格納することと、
を含む動作を実行させる、プログラムと；
を備える、１つ又は複数のコンピューティングデバイス。
【請求項６】
前記所定のレイアウトに集合的に関連付けられる前記複数の異なるイメージは、
前記クライアントコンピューティングデバイスによってレンダリングされる地図、又は
前記複数の異なるイメージによって表されるシーンの３次元モデルであって、前記クライアントコンピューティングデバイスがレンダリングする前記シーンの３次元モデル
を定義する、
請求項５に記載の１つ又は複数のコンピューティングデバイス。
【請求項７】
前記特定のイメージに直接隣接する前記第１のセットのイメージを送信することは、前記所定のレイアウトにおいて前記特定のイメージに隣接する各イメージであって、前記クライアントコンピューティングデバイスに以前に送信された前記第１のセットのイメージのサブセットを除くイメージを送信することを含む、
請求項５に記載の１つ又は複数のコンピューティングデバイス。
【請求項８】
前記予測サーバから受信した前記第２のセットのイメージは、前記複数の異なるイメージのうちの１つ又は複数の隣接するイメージを備え、該１つ又は複数の隣接するイメージは、前記所定のレイアウト内で前記特定のイメージに直接隣接するイメージに隣接しており、前記予測サーバから以前に受信した１つ又は複数の隣接するイメージのサブセットを除く、
請求項５に記載の１つ又は複数のコンピューティングデバイス。
【請求項９】
予測サーバのプロセッサによって実行されると、該プロセッサに、
前記予測サーバ及びクライアントコンピューティングデバイスに通信可能に結合されるプロキシサーバからのイメージ要求を受信するステップであって、前記イメージ要求は、あるシーンの地図又は３次元（３Ｄ）モデルを表すイメージコレクションであって、前記クライアントコンピューティングデバイスのユーザが地図又は３次元（３Ｄ）モデルへとナビゲートしたイメージコレクションのうちの特定のイメージを識別する、ステップと、
前記予測サーバにおいて、前記イメージ要求から、前記クライアントコンピューティングデバイスのキャッシュに格納するための前記イメージコレクションのうちの第１のイメージのセットと、前記プロキシサーバのキャッシュに格納するための前記イメージコレクションのうちの第２のイメージのセットとを識別するステップであって、前記第１のイメージのセットは、前記のコレクションのうちの前記特定のイメージに直接隣接するイメージを含み、前記第２のイメージのセットは、前記のコレクションのうちの前記第１のイメージのセットに直接隣接するイメージを含む、ステップと、
前記第１のイメージのセット及び前記第２のイメージのセットを前記予測サーバから前記プロキシサーバへ送信するステップであって、前記プロキシサーバは、前記第２のイメージのセットをキャッシュし、更に前記第１のイメージのセットを前記クライアントコンピューティングデバイスに送信する、ステップと、
を含む、動作を実行させる、プログラム。
【請求項１０】
予測サーバのプロセッサによって実行される方法であって、
前記予測サーバ及びクライアントコンピューティングデバイスに通信可能に結合されるプロキシサーバからのイメージ要求を受信するステップであって、前記イメージ要求は、あるシーンの地図又は３次元（３Ｄ）モデルを表すイメージコレクションであって、前記クライアントコンピューティングデバイスのユーザが前記地図又は前記３Ｄモデルへとナビゲートしたイメージコレクションのうちの特定のイメージを識別する、ステップと、
前記予測サーバにおいて、前記イメージ要求から、前記クライアントコンピューティングデバイスのキャッシュに格納するための前記イメージコレクションのうちの第１のイメージのセットと、前記プロキシサーバのキャッシュに格納するための前記イメージコレクションのうちの第２のイメージのセットとを識別するステップであって、前記第１のイメージのセットは、前記のコレクションのうちの前記特定のイメージに直接隣接するイメージを含み、前記第２のイメージのセットは、前記のコレクションのうちの前記第１のイメージのセットに直接隣接するイメージを含む、ステップと、
前記第１のイメージのセット及び前記第２のイメージのセットを前記予測サーバから前記プロキシサーバへ送信するステップであって、前記プロキシサーバは、前記第２のイメージのセットをキャッシュし、更に前記第１のイメージのセットを前記クライアントコンピューティングデバイスに送信する、ステップと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、予測マルチレイヤキャッシュアーキテクチャに関する。
【背景技術】
【０００２】
ある特定のソフトウェアアプリケーションは、デジタル写真を特定のシーンから分析して、そのシーンの３次元（３Ｄ）の復元又はモデルを生成する。そのようなアプリケーションのユーザは、したがって、そのソフトウェアを使用してモデルを生成し、次いで、後にユーザが見るため又はウェブサイトの他のユーザが見るために、そのモデルをウェブサイトにアップロードすることができる。例えば、ユーザは、パリのエッフェル塔に関する一連の写真を、カメラを使用してキャプチャし、後にこれらの写真をユーザのパーソナルコンピュータに送ることがある。写真がパーソナルコンピュータ上に置かれると、ユーザは、写真の３Ｄモデルを生成し、次いでこの３Ｄモデルを指定のウェブサイトにアップロードすることができる。その後、このユーザ又は他のユーザは、指定のウェブサイトを介してこのエッフェル塔の３Ｄモデルを見ることができる。
【０００３】
クライアントコンピューティングデバイス上で例示の３Ｄモデルを見るために、クライアントデバイスはまず、集合的に３Ｄモデルを定義する、複数のイメージに関連付けられるレイアウトを指定するファイルを要求する。クライアントデバイスは、３Ｄモデルの開始点として、当該デバイスのディスプレイ上でレンダリングするための１つ又は複数のイメージも要求する。その後、ユーザが３Ｄモデルの異なる部分内へとナビゲートすると、クライアントデバイスは、ユーザがナビゲートする位置に関連付けられるイメージを要求する。しかしながら、クライアントデバイスは、ユーザが所望のイメージを見ることを要求した後に、これらのイメージを要求するので、クライアントデバイスがこれらのイメージを要求して受信するのを待つ間、ユーザはしばしば、望ましくない待ち時間を経験する。さらに、ユーザが、待機性の高いネットワークを介してコレクションを見るとき、又は限られたメモリ若しくは処理能力しか有さないデバイス（例えばモバイルフォン）上でコレクションを見るとき、ユーザが経験することとなる待ち時間は顕著なものとなり得る。
【発明の概要】
【０００４】
本明細書は、一部分では、所定のレイアウトに関連付けられたイメージのコレクション内においてユーザがナビゲートする可能性が最も高いイメージを予測し、これに応じて、ユーザのクライアントデバイスに対するこれらのイメージのアクセス性を高めるための技術を説明する。例えば、これらの技術は、予測されるイメージを格納する、予測マルチレイヤキャッシュアーキテクチャを用いて、予測した手法でユーザがコレクション内をナビゲートする場合に、これらのイメージをレンダリングする待ち時間を低減する。
【０００５】
一部の例において、以下で説明される技術は、イメージコレクションのイメージを、予測サーバと接続するストレージサーバに格納する。予測サーバはプロキシサーバに接続し、このプロキシサーバは、イメージコレクションの一部をレンダリングするクライアントデバイスと接続する。当該クライアントデバイスのユーザが、クライアントデバイス上でイメージのコレクションのうち特定のイメージを見ていると決定したことに応答して、予測サーバは、（１）現在レンダリングされている特定のイメージに直接隣接する第１のイメージのセットと、（２）その直接隣接するイメージに直接隣接している第２のイメージのセットとを取り出して、プロキシサーバに送信することができる。これらの２つのイメージのセットを受信したことに応答して、プロキシサーバは、第１のセットをクライアントデバイスのキャッシュに格納するためにクライアントデバイスに送信し、一方、第２のセットはプロキシサーバ自身のキャッシュに格納する。ユーザがコレクション内の別のイメージにナビゲートすることに応答して、予測サーバは、予測を再び繰り返して、クライアントデバイスとプロキシサーバが確実に予測イメージを個々のキャッシュ内に格納できるようにする。クライアントデバイスに近接する予測イメージを区別することによって、この技術は、ユーザがイメージのコレクション内をナビゲートすることによって経験する待ち時間を低減することができる。
【０００６】
この発明の概要の項における記載は、ユーザが所定のレイアウトを有するイメージのコレクションをナビゲートするための待ち時間を低減することに関する概念を紹介するのに提供されている。これらの技術は、下記の発明を実施するための形態の項においてさらに説明される。この発明の概要の項の記載は、本件特許請求される主題の本質的特徴を識別するようには意図されておらず、また特許請求される主題の範囲を決定する際に使用されるように意図されていない。
【０００７】
発明を実施するための形態の項は、添付の図面を参照して記載されている。これらの図面において、参照番号の左端の桁は、その参照番号が初めに現れる図面を識別する。同じ番号は、図を通じて同様の特徴及び構成要素を指すのに使用されている。
【図面の簡単な説明】
【０００８】
【図１】所定のレイアウトに関連づけられたイメージのコレクションの一部をレンダリングする、ユーザが操作するクライアントデバイスを含む例示のコンピューティングアーキテクチャを示す図である。図１においてコレクションは、ネットワークを介して及びイメージサービスからクライアントデバイスに利用可能になっている。このアーキテクチャにおいて、予測サーバは、コレクション内のどのイメージが、ユーザが次に見る可能性が最も高いかを予測し、これに応じて、これらの予測されたイメージをクライアントのより近く（例えば、クライアントデバイスのキャッシュ及び／又はプロキシサーバのキャッシュ）に配信する。
【図２Ａ】図１のアーキテクチャにおける動作の例示的なフローを示す図である。ユーザは、レンダリングされたイメージのコレクション内の新たなイメージにナビゲートし、これに応じて、予測サーバが、ユーザが次にナビゲートする可能性が最も高いのはコレクション内のどのイメージかを予測する。さらに、予測サーバは、これらの予測されたイメージを、プロキシサーバのキャッシュ及び／又はクライアントデバイスのキャッシュに格納するために送信する。
【図２Ｂ】図１のアーキテクチャにおける動作の例示的なフローを示す図である。ユーザは、レンダリングされたイメージのコレクション内の新たなイメージにナビゲートし、これに応じて、予測サーバが、ユーザが次にナビゲートする可能性が最も高いのはコレクション内のどのイメージかを予測する。さらに、予測サーバは、これらの予測されたイメージを、プロキシサーバのキャッシュ及び／又はクライアントデバイスのキャッシュに格納するために送信する。
【図２Ｃ】図１のアーキテクチャにおける動作の例示的なフローを示す図である。ユーザは、レンダリングされたイメージのコレクション内の新たなイメージにナビゲートし、これに応じて、予測サーバが、ユーザが次にナビゲートする可能性が最も高いのはコレクション内のどのイメージかを予測する。さらに、予測サーバは、これらの予測されたイメージを、プロキシサーバのキャッシュ及び／又はクライアントデバイスのキャッシュに格納するために送信する。
【図２Ｄ】図１のアーキテクチャにおける動作の例示的なフローを示す図である。ユーザは、レンダリングされたイメージのコレクション内の新たなイメージにナビゲートし、これに応じて、予測サーバが、ユーザが次にナビゲートする可能性が最も高いのはコレクション内のどのイメージかを予測する。さらに、予測サーバは、これらの予測されたイメージを、プロキシサーバのキャッシュ及び／又はクライアントデバイスのキャッシュに格納するために送信する。
【図２Ｅ】図１のアーキテクチャにおける動作の例示的なフローを示す図である。ユーザは、レンダリングされたイメージのコレクション内の新たなイメージにナビゲートし、これに応じて、予測サーバが、ユーザが次にナビゲートする可能性が最も高いのはコレクション内のどのイメージかを予測する。さらに、予測サーバは、これらの予測されたイメージを、プロキシサーバのキャッシュ及び／又はクライアントデバイスのキャッシュに格納するために送信する。
【図３Ａ】予測サーバによる予測の例示的なプロセスを示すフロー図である。予測サーバは、クライアントデバイスのユーザがナビゲートする可能性が最も高いイメージを予測し、これに応じて、これらのイメージを、クライアントデバイスのキャッシュとクライアントデバイスと予測サーバとの間にあるプロキシサーバのキャッシュとにわたって格納する。
【図３Ｂ】予測サーバによる予測の例示的なプロセスを示すフロー図である。予測サーバは、クライアントデバイスのユーザがナビゲートする可能性が最も高いイメージを予測し、これに応じて、これらのイメージを、クライアントデバイスのキャッシュとクライアントデバイスと予測サーバとの間にあるプロキシサーバのキャッシュとにわたって格納する。
【図３Ｃ】予測サーバによる予測の例示的なプロセスを示すフロー図である。予測サーバは、クライアントデバイスのユーザがナビゲートする可能性が最も高いイメージを予測し、これに応じて、これらのイメージを、クライアントデバイスのキャッシュとクライアントデバイスと予測サーバとの間にあるプロキシサーバのキャッシュとにわたって格納する。
【図４】図１のプロキシサーバに存在するキャッシュロジックの例を示す図である。
【図５】図１の予測サーバに存在するキャッシュロジックの例を示す図である。
【図６】図１のクライアントデバイス、サイトサーバ、ストレージサーバ、予測サーバ及び／又はプロキシサーバに存在するいくつかの例示的な構成要素を示す図である。
【発明を実施するための形態】
【０００９】
本明細書は、一部分において、所定のレイアウトに関連付けられた要素のコレクション内においてユーザがナビゲートする可能性が最も高い要素を予測し、これに応じて、ユーザのクライアントデバイスに対するこれらの要素のアクセス性を高めるための技術を説明する。例えば、これらの技術は、予測される要素を格納するための予測マルチレイヤキャッシュアーキテクチャを用いて、予測した手法で、ユーザがコレクション内をナビゲートする場合にこれらの要素をレンダリングする待ち時間を低減する。以下の実施例では、これらの技術をイメージコレクションとの関連で説明するが、これらの技術を同様に他の要素のコレクションに用いることができる。この点において、要素のコレクションは、イメージ（例えば３次元（３Ｄ）モデル、オンライン地図、ビデオゲーム等）、ビデオファイル、オーディオファイル、テキストファイル及びクライアントデバイス上で使用可能で所定のレイアウトを有する任意の他のタイプのファイルを含む。
【００１０】
例えば、ユーザはクライアントデバイスを操作して、地図（例えばオンライン地図）、シーンの３Ｄモデル又は所定のレイアウトに関連付けられる任意の他のイメージのコレクションをレンダリングすることができる。これらの例ではそれぞれ、クライアントデバイスはネットワークを介して、そのコレクションを格納するイメージサービスからのイメージにアクセスすることができる。一部の例において、既存の技術は、クライアントデバイスのユーザが初めにイメージコレクションを見ることを要求したときに、ユーザイメージコレクションの全体をクライアントデバイスに提供する。しかしながら、ネットワーク制約、イメージコレクションのサイズ、及び一部の例ではクライアントデバイスの限られた能力のために、他の既存の技術は、クライアントデバイスに、イメージをオンデマンドで提供する。すなわち、クライアントデバイスは、クライアントデバイスのユーザがコレクション内のイメージにナビゲートした後に、対応するイメージを要求する（したがってこれらのイメージを受信してレンダリングする）ことができる。しかしながら、上述のようにこの手法では、イメージを取り出すのに、クライアントデバイスがイメージをイメージサービスからネットワークを介して受信するのを待つ間、ユーザに対して望ましくない待ち時間が発生することとなる。
【００１１】
これらの従来のアプローチとは対照的に、本明細書では、クライアントデバイスのより近くにイメージコレクションのイメージをキャッシュし、イメージコレクション内をナビゲートすることに関連する待ち時間を低減することができるアーキテクチャを説明する。例えば、例示的なアーキテクチャは、イメージコレクションをその全体に格納するストレージサーバと、ユーザがナビゲートする可能性が最も高いイメージはどのイメージか、現在閲覧されているイメージに基づいて予測する予測サーバと、これらの予測されたイメージの一部を格納するプロキシサーバとを含むことができる。イメージサービスに加えて、このアーキテクチャは、コレクションの一部をレンダリングすることと、これらの予測されたイメージの異なる部分を格納することとの双方を行うクライアントデバイスも含むことができる。一部の例において、プロキシサーバは、クライアントデバイスと、予測サーバ及びストレージサーバとの間に存在するので、プロキシサーバに格納されるイメージは、ストレージサーバに格納されるイメージよりもクライアントデバイスの近くにあることとなる。
【００１２】
例示のために、モバイルフォンのユーザが、ウェブサイトにナビゲートして、３Ｄモデル、地図又は所定のレイアウトを有する別のイメージのコレクションを見ることを要求すると想定する。この要求に応答して、ウェブサイトは、レイアウトファイル（例えばＪａｖａＳｃｒｉｐｔ（登録商標）Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）ファイル）をストレージサーバから取り出して、このファイルをクライアントデバイスに供給する。このレイアウトファイルは、コレクションのイメージの互いに対する位置を記述し、ストレージサーバ上でコレクションの各イメージが置かれる場所を指定する。一部の例において、クライアントデバイスとのこの通信及び後続の通信は、予測サーバとプロキシサーバとの双方を通じて渡されるが、他の例では、これらの通信は、ストレージサーバとクライアントデバイスとの間で直接又は任意の他の方法で行われる。
【００１３】
レイアウトファイルを受信することに加えて、イメージサービスは、クライアントデバイス上でレンダリングする、コレクションの１つ又は複数の初期イメージも提供することができる。さらに、イメージサービスは、レンダリングされたイメージに直接隣接する１つ又は複数のイメージを提供することができる。クライアントデバイスは、この直接隣接するイメージをクライアントのキャッシュに格納することができるので、ユーザがイメージコレクション内でこれらの隣接イメージにナビゲートする場合には、これらのイメージはクライアントデバイスによって容易に取り出し可能であり、レンダリング可能である。
【００１４】
さらに、ユーザが、イメージコレクションを受信及びレンダリングする初期要求を行うと、イメージサービスは、１つ又は複数のイメージをプロキシサーバにも提供することができる。例えば、イメージサービスの予測サーバは、ストレージサーバから、クライアントデバイスのキャッシュに格納された上記の直接隣接イメージに直接隣接する１つ又は複数のイメージを、取り出すことができる。プロキシサーバは、ストレージサーバとクライアントデバイスとの間にあるので、クライアントデバイスは、ストレージサーバに格納されたイメージよりも早く、プロキシサーバに格納されたイメージにアクセスすることができる。
【００１５】
クライアントデバイスが、所定のレイアウトを有するイメージコレクションのレンダリングを開始した後、クライアントデバイスのユーザが、コレクション内をナビゲートすることがある。例えば、イメージコレクションが３Ｄモデルを備える場合、ユーザはこのモデルの異なる部分にナビゲートすることができる。あるいは、イメージコレクションが地図を備える場合、ユーザは地図の異なる部分にナビゲートすることができる。これらの例それぞれにおいて、ユーザはしばしば、イメージコレクション内においてユーザの現在の位置に直接隣接する方向にナビゲートすることがある。例えば、３Ｄモデルの例と地図の例の双方において、ユーザは、左右上下に移動することがある。
【００１６】
これらの例において、クライアントデバイスは、適切な直接隣接イメージをキャッシュから取り出して、この取り出したイメージをレンダリングすることができる。クライアントは以前にこのイメージをキャッシュ内に格納しているので、クライアントはこのイメージを、クライアントがイメージサービスからネットワークを介してイメージを要求していた場合よりもかなり早く、レンダリングすることができる。したがって、ユーザの経験する待ち時間は少なくなる。
【００１７】
さらに、ユーザがイメージコレクション内をこの手法でナビゲートするとき、クライアントデバイスはナビゲーションの指示をプロキシサーバに送信することができる。クライアントデバイスが新たなイメージをレンダリングしているとの指示を受信したことに応答して、プロキシサーバは、プロキシサーバのキャッシュ内に格納されたイメージの一部又は全てを取り出して、クライアントデバイスに送信することができる。この点において、ユーザは新たなイメージにナビゲートしているため、プロキシサーバのキャッシュからクライアントに送信されているこれらのイメージは、これらのイメージが、所定のレイアウト内で指定されたように現在レンダリングされているイメージに直接隣接しているので、「直接隣接するイメージ」である。
【００１８】
クライアントデバイスのキャッシュに格納するために、これらのイメージをクライアントデバイスに送信することに加えて、プロキシサーバは、受信した指示を予測サーバに伝える。これに応じて、予測サーバは、所定のレイアウト内において、現在レンダリングされているイメージの位置を識別することができる。この情報を用いて、予測サーバは、以下の２つのイメージのセットを識別することができる。すなわち、（１）現在レンダリングされているイメージに直接隣接するイメージと、（２）１つ目のセットのイメージに直接近接するイメージのセットとを識別することができる。予測サーバは次いで、予測サーバがこれらの２つのイメージのセットのうち、（もしあれば）いずれのイメージを以前にプロキシサーバ及び／又はクライアントデバイスに提供したかを識別し、次いで、第１及び第２のセットのうち予測サーバがさらに送信する必要があるイメージを、プロキシサーバに送信することができる。
【００１９】
この例において、予測サーバは、以前に第１のセットのイメージをプロキシサーバに送信したかどうかを判断するだけでなく、第２のセットの各イメージについても判断することとなる。したがって、予測サーバは、これらのイメージを予測サーバから取り出して、取り出したイメージをプロキシサーバに送信することとなる。これらのイメージを受信したことに応答して、プロキシサーバは、これらのイメージをプロキシサーバ自身のキャッシュ内に格納することとなる。
【００２０】
（クライアントデバイスとプロキシサーバによる）２つのレイヤ式のキャッシュアーキテクチャを用いることによって、上述の例示的なアーキテクチャは、ユーザがイメージコレクションをナビゲートするときに、イメージコレクションのより早いレンダリングをサポートすることができる。すなわち、ユーザが次にナビゲートする可能性が最も高いイメージ（すなわち、直接隣接するイメージ）は、クライアントデバイスのキャッシュに格納されているので、クライアントデバイスは、予測した手法でユーザがナビゲートした場合に、素早くこれらのイメージをレンダリングすることができる。
【００２１】
さらに、初めの予測ナビゲーションの後にユーザがナビゲートする可能性が最も高いイメージ（すなわち、上記の直接隣接するイメージに直接隣接しているイメージ）は、プロキシサーバのキャッシュに格納されているので、クライアントデバイスは、当該クライアントデバイスのキャッシュからの「直接隣接イメージ」をレンダリングした後、クライアントのキャッシュを素早く補充することができる。最終的に、予測サーバは、ユーザの過去のナビゲーションに基づいてユーザのナビゲーションを予測し続けるので、予測サーバは、プロキシサーバのキャッシュとクライアントデバイスのキャッシュの双方が、確実に、予測されるイメージを受信し、格納し続けるようにすることができる。全体として、このアーキテクチャは、ユーザがイメージコレクション内のビューを高い頻度で変更するとしても、ユーザがイメージコレクション内をナビゲートすることによって経験する待ち時間を低減する。さらに、このアーキテクチャは、ユーザがイメージコレクション内をどのようにナビゲートするか追跡するので、イメージコレクションを提供するエンティティは、ユーザが概してこれらのコレクションとどのように対話するのかを学習することができる。すなわち、これらのエンティティは、この情報を使用して、イメージコレクションの提案を提供し、特定の態様を強化することなどによって、ユーザ経験を向上させることができる。
【００２２】
詳細な検討を、下記の「例示的なコンピューティングアーキテクチャ」と題したセクションで開始する。このセクションでは、本明細書で説明される技術を実装するための例示的な予測マルチレイヤキャッシュアーキテクチャを詳細に説明する。このセクションは、ユーザが、所定のレイアウトを有する例示的なイメージコレクション内をナビゲートするときの、アーキテクチャ内における動作の例示的なフローも説明する。「例示的なイメージ予測プロセス」と題した第２のセクションが続き、その後に「例示的なキャッシュロジック」と題したセクションの検討に進む。後者の「例示的なキャッシュロジック」セクションでは、図１のプロキシサーバが用いる例示的なキャッシュロジック、並びに図１の予測サーバが用いる例示的なキャッシュロジックを詳細に説明する。次に「例示的なコンピューティングデバイスの構成要素」と題したセクションが続き、その後、簡単な結論により議論を終了する。
【００２３】
セクションのタイトル及び対応する要約を含め、この簡単な紹介は読者の利便性のために提供されるものであり、特許請求の範囲を限定するようには意図されておらず、また後続のセクションを限定するようにも意図されていない。
【００２４】
＜例示的なコンピューティングアーキテクチャ＞
図１は、例示的なコンピューティングアーキテクチャ１００を図示している。例示的コンピューティングアーキテクチャ１００は、（１）所定のレイアウトに関連付けられたイメージのコレクション内において、ユーザがどのイメージにナビゲートする可能性が最も高いかを予測し、及び（２）これに応じて、ユーザのクライアントデバイスに対するこれらのイメージのアクセス性を向上させるために、説明される技術を実装する。
【００２５】
この例において、アーキテクチャ１００は、クライアントコンピューティングデバイス（又は「クライアントデバイス」）１０４を操作して、イメージコレクション１０６をデバイス１０４のディスプレイ１０８にレンダリングするユーザ１０２を含む。例えば、イメージコレクション１０６は、地図、一連のデジタル写真から作成されたシーンの３次元（３Ｄ）モデル、又は所定のレイアウトを有するイメージのコレクションを備える任意の他のタイプのビジュアルファイルを備える。この例において、イメージコレクション１０６は、フランスのパリにあるエッフェル塔を含むシーンの３Ｄモデルを含むことができ、この３Ｄモデルは、おそらくは、マイクロソフト（登録商標）社のＰｈｏｔｏｓｙｎｔｈ（登録商標）ソフトウェアを使用して作成される。モバイルフォンとして図示されているが、クライアントコンピューティングデバイス１０４は、デスクトップコンピュータ、ラップトップコンピュータ、ポータブル音楽プレイヤ、ゲームコンソール、タブレットコンピューティングデバイス又は任意の他のタイプのモバイル若しくはモバイル以外のコンピューティングデバイスなど、任意の他の種類のコンピューティングデバイスを備えることもできる。
【００２６】
図示されるように、クライアントデバイス１０４は現在、イメージのコレクションのうち特定のイメージ１１０（１）をレンダリングしている。この例において、クライアントデバイス１０４は、イメージ１１０（２）、１１０（３）、１１０（４）及び１１０（５）もキャッシュ１１４内に、又はデバイス１０４の他の記憶装置に格納する。図示されるように、イメージ１１０（２）〜（５）はそれぞれ、以前に取得してデバイス１０４に格納したレイアウトファイル１１２によって指定される通りのイメージコレクション１０６の所定のレイアウトに従って、現在レンダリングされているイメージに直接隣接している。さらに、以下で詳細に検討するが、直接隣接するイメージ１１０（２）〜（５）をデバイス１０４のキャッシュ１１４に格納することによって、デバイス１０４は、ディスプレイ１０８が現在レンダリングしている３Ｄモデル内においてユーザが左右上下にナビゲートした場合に、これらのイメージのいずれか１つを素早くレンダリングすることができる。
【００２７】
上記簡単に述べたように、レイアウトファイル１１２は、イメージコレクション１０６の各イメージの互いに対する相対的な位置を指示するので、クライアントデバイスは、コレクション１０６のイメージを正しく要求してレンダリングすることができる。さらに、レイアウトファイル１１２は、（例えばユニフォームリソースロケータ（ＵＲＬ）により）イメージコレクション１０６の各イメージがストレージサーバ１２６上で存在する位置を指示することができる。クライアントデバイス１０４、プロキシサーバ１３０及び／又は予測サーバ１２８は、この情報を用いて、イメージコレクション１０６内におけるユーザ１０２のナビゲーションに応じたイメージを要求することができる。
【００２８】
３Ｄモデル（すなわち、例示的なイメージコレクション１０６）をレンダリングするために、クライアントデバイス１０４はビューアーアプリケーション１１６を格納することができる。このビューアーアプリケーション１１６は、キャッシュロジック１１８を当該ビューアーアプリケーション自身に格納するか、そうでなければ参照することができる。ビューアーアプリケーション（又はビューアーＡｐｐ）１１６は、ブラウザ、コレクション１０６を見るのにデバイス１０４に以前にダウンロードされた指定のアプリケーション、又はデバイス１０４に対してネイティブ若しくは非ネイティブの任意の他のアプリケーションを備えることができる。一方、キャッシュロジック１１８は、現在レンダリングされているイメージ１１０（１）、並びに現在レンダリングされているイメージに直接隣接するイメージ１１０（２）〜（５）を識別する。さらに、ユーザ１０２がイメージコレクション１０６内をナビゲートすると、キャッシュロジック１１８は、以下で詳細に議論するように、どのイメージが現在レンダリングされているか、及びどのイメージが、現在レンダリングされているイメージに直接隣接するかを更新する。さらに、キャッシュロジック１１８は、直接隣接するイメージとして新たにラベル付けされるイメージが、デバイス１０４の異なる記憶装置に格納される場合、これらのイメージが「直接隣接するイメージ」として設定されるとき、これらの新たにラベル付けされた直接隣接するイメージをクライアントデバイス１０４のキャッシュ１１４に置く。
【００２９】
初めにイメージコレクション１０６をレンダリングするために、ユーザ１０２は、ビューアーアプリケーション１１６、ブラウザ又は別のアプリケーションを用いて、イメージサービス１２０上のイメージコレクション１０６を要求するか、そうではければアクセスする。図示されるように、イメージサービス１２０は、イメージサービス１２０のサイト（例えばウェブサイト）をホストするサイトサーバ１２４と、イメージコレクション１０６などの様々なイメージコレクションを格納するストレージサーバ１２６と、ある時において、コレクションのうちのどのイメージにユーザがナビゲートする可能性が最も高いかを予測する、予測サーバ１２８と、予測されたイメージの少なくとも一部を格納するプロキシサーバ１３０とを備えることができる。上記のサーバはそれぞれ、単数（例えば「予測サーバ１２８（単数）」）で列挙されているが、これらのサーバの一部又は各々に格納される機能を、複数の別個のサーバにわたって分散させてもよいことを理解されたい。さらに、一部の例において、アーキテクチャ１００は、イメージサービス１２０の予測サーバ１２８とそれぞれ対話する、複数の異なるプロキシサーバを含むことができる。これらのプロキシサーバは、地理及び／又は待ち時間に基づいて、異なるクライアントデバイスに特有のものとすることができる。例えば、特定のクライアントデバイスに最も近いプロキシサーバは、その特定のクライアントデバイスのプロキシサーバとして機能することができる。
【００３０】
上記の例に戻ると、ユーザ１０２は、イメージコレクション１０６にアクセスしてレンダリングするために、まずブラウザアプリケーションを用いて、サイトサーバ１２４によってホストされるイメージサービス１２０のウェブサイトにアクセスする。例えば、サイトサーバ１２４によってホストされるウェブサイトにナビゲートすると、ユーザは、特定のイメージコレクション１０６に関連付けられたＵＲＬを選択することができる。これに応じて、ＵＲＬは、サイトサーバに、イメージコレクション１０６に関連付けられたレイアウトファイル１１２を、クライアントコンピューティングデバイス１０４に提供するように指示する。さらに、この選択により、一部の例では、イメージコレクション１０６を見るためのビューアーアプリケーション１１６が起動される。図１は、イメージコレクションに関連付けられたレイアウトファイルが、サイトサーバの記憶装置１３２に格納される様子を図示しているが、他の例では、これらのレイアウトファイルを、ストレージサーバの記憶装置１３４若しくは他のエンティティ上に格納することができ、又はストレージサーバの記憶装置１３４若しくは他のエンティティによるアクセスを可能にすることができる。
【００３１】
いずれかの例において、レイアウトファイル１１２及びイメージコレクション１０６に関連付けられたＵＲＬが選択されると、イメージサービス１２０は、レイアウトファイル１１２をクライアントデバイス１０４に供給する。さらに、イメージサービス１２０は、初めの位置でイメージコレクション１０６をレンダリングするための１つ又は複数の初期イメージ、すなわち開始イメージを提供することができる。図示される例では、例えばイメージサービス１２０は、イメージ１１０（１）〜（５）をレイアウトファイル１１２とともに提供する。イメージ１１０（１）は、レンダリングするための初期イメージであり、イメージサービス１２０は、（イメージ１１０（１）に直接隣接する）イメージ１１０（２）〜（５）を、クライアントデバイス１０４のキャッシュ１１４に格納するために提供する。示されるように、最初にレンダリングするイメージ１１０（１）は、図示される例において、フランスのパリのエッフェル塔が中央に置かれたビューを備える。
【００３２】
レイアウトファイル１１２及びイメージ１１０（１）〜（５）を受信すると、クライアントデバイス１０４は、レイアウトファイル１１２を解析して、受信したイメージ１１０（１）〜（５）の位置を識別する。例えばクライアントデバイス１０４のキャッシュロジック１１８は、レイアウトファイル１１２を解析して、イメージ１１０（１）を最初にレンダリングすべきであり、イメージ１１０（２）〜（５）は、ユーザ１０２がイメージコレクション１０６内でこれらの直接隣接イメージ１１０（２）〜（５）のいずれか１つのイメージにナビゲートする場合のためにキャッシュ１１４に格納すべきである、と識別することができる。
【００３３】
一部の例において、イメージサービス１２０（例えば予測サーバ１２８）は、イメージコレクション１０６をレンダリングすることを求めるユーザ１０２の初期要求において、プロキシサーバ１３０に、レイアウトファイル１１２並びに１つ又は複数のイメージを提供することもできる。例えばイメージサービスは、イメージコレクション１０６に関連付けられたレイアウトファイル１１２の使用により、イメージ１１０（２）〜（５）に直接隣接するイメージを識別し、これらの識別したイメージ及びイメージ１１０（１）〜（５）を、プロキシサーバ１３０のキャッシュ１３６又は他の記憶装置に格納するために提供することができる。すなわち、イメージサービス１２０は、クライアントデバイス１０４によって最初にレンダリングされるイメージ１１０（１）に直接隣接するイメージに直接隣接しているイメージを提供することができる。
【００３４】
図示されるように、プロキシサーバ１３０は、（地理的に、待ち時間の観点で、又はその双方において）ストレージサーバ１２６よりもクライアントデバイスの近くに存在しているので、これらのイメージをプロキシサーバ１３０に提供することは、クライアントデバイス１０４に対するこれらのイメージのアクセス性を向上させる。図示される例において、イメージサービス１２０は、プロキシサーバ１３０のキャッシュ１３６に格納するためのイメージ１３８（１）〜（Ｎ）を提供しており、これらのイメージ１３８（１）〜（Ｎ）は、イメージ１１０（２）〜（５）に直接隣接している（及び潜在的にイメージ１１０（２）〜（５）を含んでいる）。これらのイメージ１３８（１）〜（Ｎ）を受信したことに応答して、プロキシサーバ１３０はこれらのイメージ１３８（１）〜（Ｎ）を、キーと値との辞書データ構造を使用してキャッシュ１３６内に格納するので、プロキシサーバ１３０は、ユーザがイメージコレクション１０６内の新たなイメージにナビゲートしたとの指示の受信に応答して、これらのイメージを素早く取り出して供給することができる。
【００３５】
クライアントデバイス１０４がレイアウトファイル１１２を解析して、開始イメージ１１０（１）をレンダリングした後、ユーザ１０２はイメージコレクション１０６の他の部分へのナビゲーションを開始することができる。例えば、ユーザ１０２が「左へ」のナビゲートを要求すると想定する。これに応じて、クライアントデバイス１０４は、イメージ１１０（５）を、クライアントデバイス１０４のキャッシュ１１４から取り出して、このイメージ１１０（５）をディスプレイ１０８上にレンダリングすることができる。このイメージ１１０（５）はキャッシュ１１４に格納されていたので、クライアントデバイス１０４は、ユーザ１０２に過度の待ち時間を経験させることなく、このイメージ１１０（５）を素早く取り出してレンダリングすることができる。
【００３６】
このナビゲーションの後、キャッシュロジック１１８はその後、イメージ１１０（５）が現在レンダリングされているイメージであることを指示し、イメージ１１０（５）に直接隣接するイメージを識別して指示することができる。さらに、キャッシュロジック１１８は、これらの新たな直接隣接イメージをキャッシュ１１４に格納することができる。一部の例において、キャッシュロジックは、キャッシュ１１４から、イメージ１１０（５）に直接隣接しない任意の他のイメージを除去することもできる。例えば、キャッシュロジック１１８はこれらの他のイメージを、クライアントデバイス１０４の異なる記憶装置に格納してもよく、又はこれらの他のイメージをクライアントデバイス１０４のメモリから除去してもよい。
【００３７】
さらに、このナビゲーションの後、キャッシュロジック１１８は、ナビゲーションの指示を、ネットワーク１２２を介してプロキシサーバ１３０に送信することができる。この指示は、クライアントデバイス１０４のキャッシュ１１４内に格納するための追加のイメージを求める要求の形式をとることができる。さらに、この指示は、クライアントデバイス１０４だけでなく、クライアントデバイス１０４が現在レンダリングしている特定のイメージコレクション１０６も識別することができる。この指示を受信すると、プロキシサーバ上に格納されているか、又はプロキシサーバによってアクセス可能なキャッシュロジック１４０は、クライアントデバイス１０４上で現在レンダリングされているイメージ（ここではイメージ１１０（５））を識別することができ、そして、レイアウトファイル１１２を使用により、イメージ１１０（５）に現在直接隣接する１つ又は複数のイメージを識別することができる。この例において、プロキシサーバ１３０のキャッシュ１３６に以前に格納されたイメージ１３８（１）〜（Ｎ）の一部が、イメージ１１０（５）に直接隣接するイメージとなる。したがって、プロキシサーバ１３０は、イメージ１３８（１）〜（Ｎ）のこの部分を、クライアントデバイス１０４のキャッシュ１１４に格納するために、クライアントデバイス１０４に送信することができる。
【００３８】
一部の例において、プロキシサーバ１３０は、プロキシサーバ１３０（及び／又はイメージサービス１２０の別のエンティティ）が以前にどのイメージをクライアントデバイス１０４に送信したかを示す、テーブル１４２を保持することができる。そのようにすることによって、プロキシサーバ１３０は、イメージを複数回クライアントデバイスに送信することを避けることができる。この例において、例えばプロキシサーバは、以前に送信したイメージを除いて、イメージ１１０（５）に直接隣接するイメージを送信する。例えば、テーブル１４２は、クライアントデバイス１０４が、イメージコレクション１０６のレンダリングを最初に要求したときにイメージ１１０（１）を既に受け取っていることを示しているので、プロキシサーバ１３０はイメージ１１０（１）を送信することを回避することができる。クライアントデバイス１０４が既に格納しているイメージの送信を回避することによって、キャッシュロジック１４０は、ネットワーク１２２を介してクライアントデバイス１０４に送信されるパッケージのサイズを減少させることができ、ユーザが経験する待ち時間もさらに減少させることができる。
【００３９】
プロキシサーバ１３０からイメージを受信すると、キャッシュロジック１１８は、これらのイメージが、現在レンダリングされているイメージ（イメージ１１０（５））に直接隣接している、と識別することができ、したがって、これらのイメージをキャッシュ１１４に格納することができる。このようにすることによって、クライアントデバイス１０４は、ユーザ１０２が、イメージコレクションによりイメージ１１０（５）に直接隣接するイメージにナビゲートする場合において適切なイメージを素早く取り出してレンダリングするための準備を整える。
【００４０】
プロキシサーバ１３０に戻ると、直接隣接イメージを識別してクライアントデバイス１０４に送信することに加えて、プロキシサーバ１３０のキャッシュロジック１４０は、先程クライアントデバイス１０４に送信したイメージに直接隣接しているイメージを、プロキシサーバ１３０のキャッシュ１３６に補充しようと試みることができる。したがって、キャッシュロジック１４０は、ナビゲーションの指示を予測サーバ１２８に送信することができる。イメージサービス１２０の各サーバ及び／又は構成要素は、１つ又は複数のネットワークを介して相互に通信することができ、これらの１つ又は複数のネットワークは、クライアントデバイス１０４がプロキシサーバ１３０と通信するネットワーク１２２と同じものであっても、異なるものであってもよい。各例において、これらのネットワークは、インターネット、ケーブルネットワーク、セルラネットワーク、無線ネットワーク及び有線ネットワークなどの複数の異なるタイプのネットワークのいずれか１つ又は組み合わせを備えることができる。クライアントデバイス１０４がモバイルフォン又は他のモバイルコンピューティングデバイスである例において、ネットワーク１２２はセルラネットワーク又は他の無線ネットワークを備えることができる。
【００４１】
プロキシサーバ１３０からナビゲーションの指示を受信した後、予測サーバ１２８上に格納されているか、予測サーバ１２８によってアクセス可能なキャッシュロジック１４４は、クライアントデバイス１０４と、クライアントデバイス１０４が現在レンダリングしているイメージコレクション１０６とを識別することができる。さらに、キャッシュロジック１４４は、クライアントデバイス１０４が現在レンダリングしている特定のイメージ（ここではイメージ１１０（５））を、受信した指示に基づいて識別することができる。加えて、キャッシュロジック１４４は、レイアウトファイル１１２を参照して、予測サーバ１２８がプロキシサーバ及び／又はクライアントデバイス１０４に送信したイメージの１つ又は複数のセットを識別することができる。
【００４２】
例えば、キャッシュロジック１４４は、クライアントデバイス１０４のキャッシュ１１４に格納するための第１のイメージのセットと、プロキシサーバ１３０のキャッシュ１３６に格納するための第２のイメージのセットとを識別する。一例において、第１のイメージのセットは、イメージコレクション１０６内において、現在レンダリングされているイメージ１１０（５）に直接隣接するイメージを備え、一方、第２のイメージのセットは、イメージコレクション１０６内の第１のイメージのセットに直接隣接するイメージである。
【００４３】
これらのイメージのセットの一方又は双方を識別した後、キャッシュロジック１４４は、テーブル１４６を参照することができる。テーブル１４６は、予測サーバ１２８及び／又はイメージサービス１２０の任意の他のエンティティによってプロキシサーバ１３０及び／又はクライアントデバイス１０４に以前に送信されたイメージの指示を格納している。テーブル１４６を参照した後、キャッシュロジック１４４は、ストレージサーバ１２６の記憶装置１３４から、上記の第１及び第２のセットのうち、プロキシサーバ１３０及び／又はクライアントデバイス１０４に以前に送信されていなかったイメージを取り出し、これらの取り出したイメージを（一時的又は持続的に）予測サーバ１２８の記憶装置１４８に格納することができる。キャッシュロジック１４４は次いで、これらのイメージをプロキシサーバ１３０及び／又はクライアントデバイス１０４に送信する。
【００４４】
この例では、例えばキャッシュロジック１４４は、クライアントデバイス１０４が現在イメージ１１０（５）をレンダリングしていると識別する。加えて、キャッシュロジック１４４は、テーブル１４６から、プロキシサーバ１３０がイメージコレクション１０６のうち、イメージ１１０（５）に直接隣接するイメージを以前に受信している、と識別する。したがって、キャッシュロジック１４４は、これらの直接隣接するイメージをプロキシサーバ１３０に提供することを回避することができる。しかしながら、次にキャッシュロジック１４４は、これらの直接隣接するイメージに直接隣接しているイメージの一部が、まだプロキシサーバ１３０に送信されていないと識別することがある。したがって、キャッシュロジック１４４は、これらのイメージ（イメージ１１０（５）に直接隣接するイメージに直接隣接しているイメージ）をストレージサーバ１２６から取り出して、これらの取り出したイメージをプロキシサーバ１３０に送信する。さらに、予測サーバ１２８は、これらのイメージが今プロキシサーバ１３０に送信されたことを示すように、テーブル１４６を更新することができる。
【００４５】
これらのイメージを予測サーバ１２８から受信すると、プロキシサーバ１３０は、受信したイメージをキャッシュ１３６に格納することができ、一方で、ユーザがイメージコレクション内で再びまたナビゲートをしているとの別の指示を受信しない限り、これらのイメージをクライアントデバイス１０４に送信することを回避することができる。このようにすることによって、プロキシサーバ１３０は、よりアクセス性の高いキャッシュに、クライアントデバイス１０４によって現在レンダリングされているイメージ１１０（５）に直接隣接するイメージに直接隣接しているイメージを、格納することができる。したがって、ユーザがイメージコレクション１０６内をナビゲートしていた場合、プロキシサーバ１３０に格納されるイメージは、ユーザ１０２がナビゲートする新たなイメージに直接隣接するものとなり、このためプロキシサーバ１３０は、これらのイメージを、クライアントデバイス１０４のキャッシュ１１４内に記憶するために提供することができる。
【００４６】
全体として、このアーキテクチャ１００は、マルチレベルキャッシュシステムを提供し、このマルチレベルキャッシュシステムにより、イメージコレクションのどのイメージに、ユーザがナビゲートする可能性が最も高いかを予測することが可能になり、これらのイメージをインテリジェントな手法により、アーキテクチャにわたって配信することが可能になる。例えば、アーキテクチャ１００は、予測されるイメージの第１のセットを、イメージコレクションをレンダリングしているクライアントデバイス１０４のキャッシュ内に格納し、一方、予測されるイメージの第２のセットを、ストレージサーバ１２６よりもクライアントデバイス１０４に近いプロキシサーバ１３０のキャッシュに格納する。イメージをこのような手法で格納することは、したがって、ユーザ１０２がクライアントデバイス１０４上でイメージコレクション１０６内をナビゲートするときに、ユーザ１０２が経験する待ち時間を低減することができる。
【００４７】
当然、１つの例示的なアーキテクチャ１００を図示して説明したが、複数の他のアーキテクチャが本明細書で説明される技術を実装することができることを認識されたい。
【００４８】
図２Ａ〜２Ｅは、ユーザ１０２がイメージコレクション１０６を見ることを要求した後の図１のアーキテクチャにおける動作２００の例示的なフローを図示している。したがって、動作のフローは、クライアントデバイス１０４がレイアウトファイル１１２を受信して解析し、初期イメージ１１０（１）をクライアントデバイス１０４のディスプレイ１０８上にレンダリングし、キャッシュ１１４内にイメージ１１０（１）に直接隣接するイメージ１１０（２）〜（５）を格納した後に起こる。加えて、予測サーバ１２８は、プロキシサーバ１３０に、イメージ１１０（２）〜（５）に直接隣接するイメージをキャッシュ１３６に格納するために提供することができる。
【００４９】
図２Ａは、まず、ユーザ１０２がクライアントデバイスを操作して、矢印２０２によって示されるように、初期イメージ１１０（１）から、イメージ１１０（１）に直接隣接する後続イメージ１１０（５）にナビゲートする様子を図示している。これに応じて、クライアントデバイス１０４は、要求されたイメージ１１０（５）をキャッシュ１１４から取り出して、イメージ１１０（５）をディスプレイ上にレンダリングする。加えて、クライアントデバイス１０４は、このナビゲーションの指示２０４をプロキシサーバ１３０に送信する。
【００５０】
図２Ｂは、プロキシサーバ１３０が指示２０４をクライアントデバイス１０４から受信した後の動作２００を図示している。これに応じて、プロキシサーバ１３０はまず、クライアントデバイス１０４と、イメージコレクション１０６と、ユーザ１０２がイメージコレクション１０６内でナビゲートしたイメージ１１０（５）とを識別する。さらに、プロキシサーバ１３０は、レイアウト内においてイメージ１１０（５）に直接隣接するイメージのセットを識別し、さらにこのセットのうち、クライアントデバイス１０４に以前に送信されたイメージを識別する。この例では、プロキシサーバ１３０は、識別されたセットの４つのイメージのうち、３つのイメージがまだクライアントデバイス１０４に送信されていないと決定する。したがって、プロキシサーバ１３０はこれら３つのイメージを備えるパッケージ２０６を、キャッシュ１１４への格納のためにクライアントデバイス１０４に送信する。加えて、プロキシサーバ１３０は、指示２０４を予測サーバ１２８に向けて送信する。
【００５１】
図２Ｃは、クライアントデバイス１０４がプロキシサーバ１３０からのイメージを受信した後であって、予測サーバ１２８がプロキシサーバ１３０からの指示を受信した後の動作２００のフローを図示している。図示されるように、パッケージ２０６をプロキシサーバ１３０から受信したことに応答して、クライアントデバイス１０４は、このパッケージ２０６の３つのイメージをキャッシュ１１４内に格納する。これらの３つのイメージを、以前にレンダリングされた初期イメージ１１０（１）と結合すると、クライアントデバイス１０４のキャッシュ１１４は、現在レンダリングされているイメージ１１０（５）に直接隣接する各イメージを格納する。したがって、ユーザ１０２がさらに別の直接隣接するイメージにナビゲートすると、クライアントデバイス１０４は、このイメージをキャッシュ１１４から素早く取り出して、このイメージをディスプレイ１０８上にレンダリングすることが可能になる。
【００５２】
指示２０４をプロキシサーバ１３０から受信したことに応答して、予測サーバ１２８は、クライアントデバイス１０４と、クライアントデバイス１０４によってレンダリングされているイメージコレクション１０６と、さらに、ユーザ１０２がナビゲートしたイメージ１１０（５）とを識別している。この情報を用いて、予測サーバ１２８は、イメージ１１０（５）に直接隣接しているイメージを備える第１のイメージのセット、並びに当該第１のセットのイメージに直接隣接しているイメージの第２のイメージのセットを識別することができる。加えて、予測サーバ１２８は、第１及び第２のセットのうちのどのイメージが、プロキシサーバ１３０及び／又はクライアントデバイス１０４によって以前に受信されたかを識別している。予測サーバ１２８は次いで、第１及び第２のセットのうち、以前に送信されたイメージを除くイメージを求める要求２０８を生成する。図示した要求２０８は、予測サーバ１２８が、イメージを求める要求をストレージサーバ１２６に対して送信すること、又は単に予測サーバ１２８が所望のイメージをストレージサーバ１２６から取り出すことを表している。
【００５３】
この例において、予測サーバ１２８は、クライアントデバイス１０４が第１のイメージのセットの各イメージ（すなわち、直接隣接するイメージ）を既に受信しており、プロキシサーバ１３０が第２のイメージのセットのイメージのうちの一部（すなわち、第１のセットのイメージに直接隣接するイメージ）を受信している、と決定することとなる。したがって、予測サーバ１２８は、第２のセットのうちの残りのイメージを求める要求をストレージサーバ１２６に送信することとなる。
【００５４】
図２Ｄは、要求２０８を送信したことに応答して、予測サーバ１２８が第２のセットのイメージ（プロキシサーバ１３０が既に手元に有しているイメージを除く）を備えるパッケージ２１０を受信する様子を図示している。図２Ｄはまた、予測サーバ１２８が、このパッケージ２１０をプロキシサーバ１３０に送信することも図示している。上述のように、このパッケージ２１０のイメージは、ストレージサーバ１２６よりもクライアントデバイス１０４の（地理的に及び／又は待ち時間の観点から）近くに存在するプロキシサーバ１３０のキャッシュ１３６に格納するためのものである。
【００５５】
図２Ｅは、プロキシサーバ１３０がパッケージ２１０を受信した後の動作２００のフローを図示している。図示されるように、プロキシサーバ１３０は、このパッケージ２１０内のイメージをキャッシュ１３６に格納する。さらに、キャッシュ１３６内に以前に格納されたイメージと結合すると、プロキシサーバ１３０はここで、（１）現在レンダリングされているイメージ１１０（５）に直接隣接する各イメージ、又は（２）これらの直接隣接するイメージに直接隣接している各イメージを格納する。したがって、ユーザ１０２がイメージコレクション１０６内を、イメージ１１０（５）に直接隣接しているイメージへとナビゲートする場合、及びこのようにナビゲートしたとき、プロキシサーバ１３０は、この（ナビゲートされる）直接隣接しているイメージのパッケージを、クライアント１０４のキャッシュ１１４に格納するために、クライアント１０４に送信することができる。
【００５６】
＜例示的なイメージ予測プロセス＞
図３Ａ〜３Ｃは、所定のレイアウトに関連付けられたイメージのコレクション内において、ユーザがどのイメージにナビゲートする可能性が最も高いかを予測し、これに応じて、ユーザのクライアントデバイスに対するこれらのイメージのアクセス性を向上させるための例示的なプロセス３００のフロー図である。このプロセス３００は、クライアントデバイス１０４のユーザ１０２が、一連の写真や地図等の３次元（３Ｄ）モデルなど、所定のレイアウトを有するイメージのコレクションを要求してレンダリングを開始した後に行われる。
【００５７】
プロセス３００は、論理フローグラフで動作のコレクションとして示されており、これは、ハードウェア、ソフトウェア又はこれらの組み合わせで実装される一連の動作を表す。ソフトウェアのコンテキストでは、ブロックは、１つ又は複数のプロセッサによって実行されると記載された動作を実行する、１つ又は複数のコンピュータ読取可能な媒体に格納されるコンピュータ命令を表す。プロセスが記載される順序は、限定として解釈されることは意図されておらず、また、説明される動作のうちの任意の数の動作を、任意の順序で組み合わせてこのプロセス又は代替的なプロセスを実装することができる。さらに、説明される主題の精神及び範囲から逸脱することなく、個々のブロックを相互に並行して実装してもよく、あるいはプロセスから完全に削除してもよい。さらに、クライアントコンピューティングデバイス１０４、プロキシサーバ１３０及び予測サーバ１２８の下で実行される動作は、実装に応じて、これらの個々の主体によって実行されても、又は他の主体によって実行されてもよい。
【００５８】
図３Ａは、まず３０２において、クライアントデバイス１０４が、所定のレイアウトを有するイメージのコレクションのうち特定のイメージをレンダリングするよう求める要求を受信する。例えば、クライアントデバイス１０４を操作するユーザ１０２は、第１のイメージから、レイアウト内において当該第１のイメージに直接隣接する第２のイメージにナビゲートすることができる。レンダリングされている「イメージ」は、単一のイメージ（例えば３Ｄモデルの単一のデジタル写真）であってよいが、他の例では、「イメージ」又は「特定のイメージ」は複数のイメージをともに備えることができることを認識されたい。例えば３Ｄモデルの例において、特定のイメージは、ディスプレイ上にまとめてレンダリングされる複数の異なるデジタル写真の結合を備えることができる。これらの例において、この結合をまとめて、上記の「イメージ」又は「特定のイメージ」として扱うことができる。
【００５９】
３０４において、クライアントデバイス１０４は、当該クライアントデバイス１０４のキャッシュ１１４から、要求に関連付けられた特定のイメージを取り出す。上述のように、特定のイメージは、当該特定のイメージがユーザによってナビゲートされたイメージに直接隣接しているために、クライアントのキャッシュ１１４に格納されている。
【００６０】
一方、３０６において、クライアントデバイス１０４は、特定のイメージをクライアントデバイス１０４のディスプレイ上にレンダリングする。クライアントデバイス１０４はイメージを当該クライアントのキャッシュ１１４から取り出したので、このレンダリングは、従来技術によって実施されるようにクライアントデバイス１０４が特定のイメージを求める要求を、ネットワークを介してイメージサービス１２０に送信する場合よりも、かなり早く行われる。
【００６１】
３０８において、クライアントデバイス１０４は、特定のイメージをレンダリングするよう求める要求の指示をプロキシサーバ１３０にも送信する。上述のように、この指示は、無線ネットワーク、有線ネットワーク又はこれらの組み合わせの任意の種類のネットワークを介して送信される。
【００６２】
３１０において、プロキシサーバ１３０は指示を受信する。プロキシサーバ１３０はまた、この指示を解析して、クライアントデバイス１０４と、レンダリングされているイメージコレクションと、ユーザ１０２がナビゲートしているコレクション内の特定のイメージとを識別する。
【００６３】
３１２において、プロキシサーバ１３０は、この情報及びレイアウトファイル１１２を使用して、ユーザ１０２がナビゲートした特定のイメージに直接隣接するイメージを識別する。例えば、プロキシサーバ１３０は、イメージコレクションに関連付けられたレイアウトファイル１１２を参照して、ユーザが特定のイメージから単一のユーザ入力でナビゲートすることができるこれらのイメージ（すなわち、レイアウト内において特定のイメージからの単一のホップ（ｈｏｐ）内にあるイメージ）を識別する。
【００６４】
３１４において、プロキシサーバ１３０は、直接隣接するイメージのうち、クライアントデバイスに以前に送信されたイメージを識別する。例えば、プロキシサーバ１３０は、クライアントデバイス１０４に関連付けられたテーブル１４２を参照して、クライアントデバイス１０４が、クライアントデバイス１０４のキャッシュ１１４又は該クライアントデバイスの異なる記憶装置に既に格納しているのはどのイメージか決定することができる。
【００６５】
図３Ｂは、プロセス３００の図の続きであり、３１６において、プロキシサーバ１３０が、以前に送信されたイメージを除く、直接隣接するイメージをクライアントコンピューティングデバイス１０４に送信する。さらに、プロキシサーバ１３０は、送信されたイメージを示すようにテーブル１４２を更新することもでき、これによりこれらの同じイメージが後で再送されることを回避することができる。
【００６６】
３１８において、クライアントデバイス１０４は、追加のイメージをプロキシサーバから受信する。デバイス１０４はこれらのイメージを、ネットワークを介して単一のパッケージ又は複数のパッケージとして受信することができる。
【００６７】
３２０において、クライアントデバイス１０４は、受信したイメージを当該クライアントデバイス１０４のキャッシュ１１４に格納することができる。このようにすることによって、クライアントデバイス１０４は、その手元に、該クライアントデバイスが現在レンダリングしているイメージに直接隣接する各イメージを有する。したがって、ユーザ１０２がこれらの直接隣接するイメージのうちの１つにナビゲートすると、デバイス１０４は、ユーザに多くの待ち時間を経験させることなく、このイメージを素早く取り出してレンダリングすることができる。
【００６８】
一方、３２２において、プロキシサーバ１３０は、最初に受信した指示を予測サーバ１２８に渡す。プロキシサーバ１３０はこの指示を、クライアントデバイス１０４とプロキシサーバ１３０との間の通信に使用されるものと同じネットワーク又は異なるネットワークを介して送信することができる。一部の例において、イメージサービス１２０の諸サーバは、クライアントデバイス１０４がプロキシサーバ１３０と通信する際のネットワークよりも高帯域幅で待ち時間の少ないネットワークを介して通信する。
【００６９】
３２４において、予測サーバ１２８は、イメージ要求の指示を受信する。上記のプロキシサーバ１３０と同様に、予測サーバ１２８は、この指示を解析してクライアントデバイス１０４と、レンダリングされているイメージコレクションと、レンダリングされているコレクションの特定のイメージとを識別することができる。
【００７０】
３２６において、予測サーバ１２８は、特定のイメージに隣接する複数のイメージを識別する。上述のように、この第１のイメージのセットは、クライアントデバイス１０４のキャッシュ１１４に格納するイメージとすることができる。予測サーバ１２８は、レイアウトファイル１１２を用いてこの識別を行うことができる。
【００７１】
３２８において、予測サーバ１２８は上記の直接隣接するイメージに直接隣接しているイメージも識別することができる。上述のように、この第２のイメージのセットは、プロキシサーバ１３０のキャッシュ１３６に格納するためのイメージとすることができる。この場合も、予測サーバ１２８はレイアウトファイル１１２を用いてこの識別を行うことができる。
【００７２】
３３０において、予測サーバ１２８は、第１及び第２のセットのうち、プロキシサーバ１３０及びクライアント１０４に以前に提供されたイメージをそれぞれ識別する。この例において、予測サーバ１２８は、クライアントデバイス１０４が、第１のセットの各イメージを受信している（又は受信しているはずである）が、プロキシサーバ１３０が、第２のセットのイメージの一部をさらに受信する必要があると決定する。予測サーバ１２８は、一部の例において、クライアントデバイス１０４に関連付けられたテーブル１４６を参照して、この決定を行うことができる。
【００７３】
図３Ｃによりプロセス３００の例が完結する。３３２において、予測サーバ１２８は、プロキシサーバ１３０に、プロキシサーバ１３０がさらに受信する必要がある第２のセットのイメージを送信する。
【００７４】
３３４において、プロキシサーバ１３０は、これらの追加のイメージを予測サーバ１２８から受信する。この場合、これらのイメージは、クライアントデバイス１０４においてレンダリングされている特定のイメージに直接隣接するイメージに直接隣接しているイメージの一部又は全てを備える。
【００７５】
３３６において、プロキシサーバ１３０は、これらの追加のイメージを当該プロキシサーバ１３０のキャッシュ１３６に格納する。このようにすることによって、イメージサービス１２０は（プロキシサーバ１３０を介して）、ユーザが現在レンダリングされているイメージに直接隣接しているイメージへのナビゲーションを継続する場合に、これらのイメージを素早くクライアントデバイス１０４に提供することができる。
【００７６】
図示されていないが、一部の例において、予測サーバ１２８は第１のイメージのセットのイメージを、クライアントデバイス１０４に送信すべきと決定することがある。例えばユーザ１０２が、イメージコレクション内の第１のイメージから、イメージコレクション内において、当該イメージコレクションの所定のレイアウト内で第１のイメージから１ホップ（ｈｏｐ）より遠く離れた第２のイメージに、ナビゲートすることを想定する。この例において、予測サーバ１２８は、クライアントデバイス１０４及びプロキシサーバ１３０のいずれも、第２のイメージに直接隣接するイメージを格納していないと決定する。したがって、予測サーバ１２８は、クライアントデバイスのキャッシュ１１４に格納するため、第１のセットのイメージ（すなわち、直接隣接するイメージ）を送信する。このようにするために、予測サーバ１２８は、これらのイメージを、直接クライアントデバイス１０４に、クライアントデバイス１０４への配信のためにプロキシサーバ１３０に、又は任意の他の方法で送信することができる。加えて、予測サーバ１２８は、プロキシサーバ１３０が第２のセットのいずれのイメージ（すなわち、第１のセットのイメージに直接隣接するイメージ）も格納していないと判断することがある。この場合、予測サーバ１２８はまた、第２のセットのイメージをプロキシサーバ１３０に送信する。
【００７７】
＜例示的なキャッシュロジック＞
図４は、プロキシサーバ１３０上に存在するキャッシュロジック１４０の例４００である。一方、図５は、予測サーバ１２８上に存在するキャッシュロジック１４４の例５００である。上記のプロセス３００とともに、この例示のロジックは、１つ又はコンピュータ読取可能媒体に格納され、実行されると１つ又は複数のプロセッサに、記載される動作の一部又はそれぞれを実行させる、コンピュータ実行可能命令を備える。さらに、キャッシュロジック１４０及び１４４それぞれの一例を以下に提供するが、キャッシュロジック１４０及び１４４は複数の他の形式をとることができることを認識されたい。
【００７８】
４０２において、プロキシサーバ１３０の例示的なキャッシュロジック４００は、１つ又は複数のイメージに対するクライアント要求を受信する。４０４において、ロジック４００は、要求されたイメージが、プロキシサーバ１３０のキャッシュ１３６内に格納されているかどうかを問い合わせる。格納されている場合、４０６において、キャッシュロジック４００は、要求されたイメージをクライアントデバイスに送信する。しかしながら、格納されていない場合、キャッシュロジック４００は、４０８において、イメージが、予測サーバ１２８から要求されているイメージのキューに既に格納されているかどうかを問い合わせる。キューに格納されていない場合、４１０において、ロジック４００はイメージをキューに追加する。そのようにした後（又はイメージが既にキュー内にあった場合）、プロキシサーバ１３０は、４１２において予測サーバからイメージを取得し、４１４においてプロキシサーバ１３０はこれらのイメージをプロキシサーバ１３０のキャッシュ１３６に格納する。次いで４０６において、プロキシサーバ１３０は、これらの写真をクライアントデバイスに送信する。
【００７９】
４１６において、例示的なロジック４００は、要求された１つ又は複数のイメージが「Ｔ＋２」セット内であるかどうかを問い合わせる。ここで、「Ｔ」は、クライアントデバイスが現在レンダリングしているイメージを示し、「Ｔ＋１」は、「Ｔ」に直接隣接するイメージを示し、「Ｔ＋２」は、「Ｔ＋１」のイメージに直接近接しているイメージを示す。要求された１つ又は複数のイメージが「Ｔ＋２」セット内でない場合、次いで４１８において、ロジック４００は、プロキシサーバ１３０のキャッシュ１３６がいっぱいであるかどうか（すなわち、記憶空間の残り部分が閾値量よりも少ないかどうか）を問い合わせる。キャッシュ１３６がいっぱいでなければ、次いで４２０において、例示的なキャッシュロジック４００は、追加のクライアント要求を継続して待つ。しかしながら、キャッシュ１３６がいっぱいである場合、次いで４２２において、キャッシュロジック４００は、４２０においてクライアント要求を継続して待つ前に、所定のイメージ置換ポリシーに従ってキャッシュ１３６内のある特定のイメージを除去する。
【００８０】
決定ブロック４１６に戻ると、例示のロジック４００が、要求されたイメージは「Ｔ＋２」セット内であると判断した場合、次いでロジック４００は、４２４において通知メッセージを予測サーバ１２８に送信する。これに応じて、４２６において、例示的なキャッシュロジック４００は、予測サーバ１２８からのイメージを受信し、４２８においてこれらのイメージをキャッシュ１３６に格納する。この場合も、例示のキャッシュロジック４００は次いで、キャッシュ１３６がいっぱいであるかどうかを判断し、その結果に従って動作して、最終的に４２０において追加のクライアント要求を継続して待つ。
【００８１】
図５は、予測サーバ１２８の例示的なキャッシュロジック５００を図示している。５０２において、予測サーバ１２８は、クライアント要求を、潜在的にプロキシサーバ１３０から受信する。５０４において、ロジック５００は、この要求がレイアウトファイル（例えばレイアウトファイル１１２）を求めるものであるかどうかを問い合わせる。レイアウトファイルを求める要求であるとき、ロジック５００は、５０６において、要求されたレイアウトファイルが、予測サーバ１２８のキャッシュに格納されているかどうかを問い合わせる。予測サーバ１２８のキャッシュ内に格納されている場合、次いで５０８において、予測サーバ１２８はレイアウトファイルをプロキシサーバ１３０に送信する。しかしながら、予測サーバ１２８のキャッシュ内に格納されていない場合、次いで例示的なキャッシュロジック５００は、５１０においてレイアウトファイルを取得して、このファイルを予測サーバのキャッシュに格納し、その後５０８においてファイルをプロキシサーバ１３０に送信する。
【００８２】
判断プロック５０４に戻ると、例示的なキャッシュロジック５００が、クライアント要求はレイアウトファイルを求めるものではない（したがって、イメージコレクションの１つ又は複数のイメージを求めるものである）と決定した場合、次いで５１２において、例示ロジック５００は、ユーザがナビゲートし得る１つ又は複数の可能性のあるイメージを予測する。例えば、例示的なキャッシュロジック５００は、クライアントデバイスが現在レンダリングしているイメージに直接隣接するイメージの第１のセット、及び／又は第１のセットのイメージに直接隣接するイメージの第２のセットを識別することができる。５１４において、例示的なキャッシュロジック５００は、予測したイメージの一部又は各々をプロキシサーバ１３０に送信することができる。これらのイメージの一部はプロキシサーバ１３０のキャッシュ１３６に格納するためのものであり、また一部は、クライアントデバイス１０４のキャッシュ１１４に格納するためのものであり、及び／又は一部は、双方のキャッシュに格納するためのものであってもよい。さらに、上述のように、一部の例において予測サーバ１２８は、第１のイメージのセット内のイメージを、プロキシサーバ１３０を介するのではなく、クライアントデバイスに直接送信しても、又は他の手法で送信してもよい。
【００８３】
＜例示的なコンピューティングデバイスの構成要素＞
図６は、図１のクライアントデバイス１０４、サイトサーバ１２４、ストレージサーバ１２６、予測サーバ１２８及び／又はプロキシサーバ１３０上に存在し得る幾つかの例示的な構成要素を図示している。この例では数個の例示的な構成要素を示しているが、当業者には認識されるように、これらのコンピューティングデバイスは、上記に説明及び図示された構成要素を含め、複数の他の構成要素を含んでもよいことを認識されたい。
【００８４】
図示されているように、図示されたコンピューティングデバイスの各々は、１つ又は複数のプロセッサ６０２とメモリ６０４を含む。メモリ６０４（及び本明細書で説明された他のメモリ）はコンピュータ読取可能媒体を備えることができる。このコンピュータ読取可能媒体は、少なくとも２つのタイプのコンピュータ読取可能媒体、すなわち、コンピュータ記憶媒体と通信媒体とを含む。
【００８５】
コンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール又は他のデータなどの情報を記憶するための任意の方法又は技術において実装される、揮発性及び非揮発性、取外し可能及び取外し不可能な媒体を含む。コンピュータ記憶媒体は、限定ではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリ技術、ＣＲ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）若しくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置若しくは他の磁気記憶デバイス、又はコンピューティングデバイスによるアクセスのために情報を格納するのに使用することができる任意の他の非伝送媒体を含む。
【００８６】
対照的に、通信媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール又は他のデータを、搬送波又は他の伝送機構などの変調データ信号に具現化する。本明細書で定義されるとき、コンピュータ記憶媒体は通信媒体を含まない。
【００８７】
さらに、メモリ６０４は、オペレーティングシステム（ＯＳ）６０６、並びにＯＳ６０６の上で実行する様々なアプリケーション及びデータ６０８を格納することができる。デバイスはそれぞれ、他のデバイスとネットワークを介して通信するための１つ又は複数のネットワークインタフェース６１０を含むこともできる。最後に、各デバイスは、個々のデバイスを操作するための１つ又は複数の入出力（Ｉ／Ｏ）構成要素６１２を含むことができる。例えば、クライアントコンピューティングデバイス１０４は、キーボード若しくはキーパッド、タッチスクリーン及び／又は任意の他のタイプの入力デバイスを含むことができる。さらに、クライアントコンピューティングデバイスは、ディスプレイ、スピーカ及び／又は任意の他のタイプの出力構成要素を含むことができる。図６に図示されるサーバは同様に、当業者には認識されるように、これらのデバイスを操作するのに適切な他のＩ／Ｏ構成要素６１２を含む。
【００８８】
＜結論＞
本件主題を、構造的特徴及び／又は方法的動作に特有の言葉で説明してきたが、特許請求の範囲において定義される主題は、必ずしも説明された特有の特徴又は動作に限定されないことを理解されたい。むしろ、これらの特有の特徴及び動作は、特許請求の範囲を実装する例示の形式として開示されている。
【図１】
0006007246.tif 000002
【図２Ａ】
0006007246.tif 000003
【図２Ｂ】
0006007246.tif 000004
【図２Ｃ】
0006007246.tif 000005
【図２Ｄ】
0006007246.tif 000006
【図２Ｅ】
0006007246.tif 000007
【図３Ａ】
0006007246.tif 000008
【図３Ｂ】
0006007246.tif 000009
【図３Ｃ】
0006007246.tif 000010
【図４】
0006007246.tif 000011
【図５】
0006007246.tif 000012
【図６】
0006007246.tif 000013