(57)【要約】  本発明は、ピア・コンピュータが写真共有システム・サーバに接続されたネットワーク写真共有システムにおいて、リクエストを出すコンピュータに、ピア・コンピュータに記憶された画像を与えるための方法およびシステムを提供する。本発明の態様は、写真共有サーバの中に画像のコピーをキャッシュすること、写真共有サーバに応答して、ピア・コンピュータに記憶された画像を閲覧するためにリクエストを出すコンピュータからのリクエストを受信すること、キャッシュされた画像を写真共有サーバからリクエストを出すコンピュータに送信することを含み、それによって、画像を閲覧するための各々のリクエストに対して、画像をピア・コンピュータから写真共有サーバに転送する必要性を回避する。【特許請求の範囲】
【請求項１】
写真共有システム・サーバに接続された少なくとも１つのピア・コンピュータを有するネットワーク写真共有システムにおいて、リクエストを出すコンピュータに、該ピア・コンピュータに記憶された画像を与えるための方法であって、
（ａ）該写真共有サーバに該画像のコピーをキャッシュすること、
（ｂ）該写真共有サーバに応答して、該ピア・コンピュータに記憶された該画像を閲覧するために、該リクエストを出すコンピュータからリクエストを受信し、該写真共有サーバから該ピア・コンピュータにリクエストを送信して、該ピア・コンピュータに記憶された該画像が変更されているかどうかを判定すること、
（ｃ）該ピア・コンピュータからの応答が該画像が変更されていないことを示す場合、キャッシュされた画像を該写真共有サーバから該リクエストを出すコンピュータに送信すること、
（ｄ）該画像が変更されている場合、変更された画像のコピーを該写真共有サーバにキャッシュし、該変更された画像を該写真共有サーバから該リクエストを出すコンピュータに送信すること、を備える方法。
【請求項２】
工程（ｂ）は、前記リクエストをＨＴＴＰリクエストとして前記ピア・コンピュータに送信することをさらに含む請求項１に記載の方法。
【請求項３】
工程（ｂ）は、前記リクエストとして、ＨＴＴＰ  Ｉｆ−Ｍｏｄｉｆｉｅｄ−Ｓｉｎｃｅヘッダと、前記キャッシュされた画像のタイムスタンプとを送信することをさらに含む請求項２に記載の方法。
【請求項４】
工程（ｂ）は、前記ＨＴＴＰリクエストを受信する前記ピア・コンピュータに応答して、
（ｉ）前記キャッシュされた画像の前記タイムスタンプを前記ピア・コンピュータに記憶された前記画像のタイムスタンプと比較すること、
（ｉｉ）前記タイムスタンプが異なる場合、前記変更された画像を前記写真共有サーバに転送することによって応答すること、
（ｉｉｉ）前記タイムスタンプが異なっていない場合、前記画像が変更されていないことを示す応答を送信することをさらに含む請求項３に記載の方法。
【請求項５】
工程（ａ）は、
（ｉ）前記ピア・コンピュータに記憶された前記画像が前記写真共有サーバにも記憶されているかどうかを判定すること、
（ｉｉ）前記写真共有サーバに前記画像が記憶されていない場合、記憶のために前記画像のコピーを前記写真共有サーバに転送することをさらに含む請求項１に記載の方法。
【請求項６】
工程（ａ）は、前記画像が最初にリクエストされるときに実行される請求項５に記載の方法。
【請求項７】
工程（ａ）は、前記写真共有サーバと前記ピア・サーバとの間の同期化工程の間に実行される請求項６に記載の方法。
【請求項８】
前記同期化工程が一旦起動されると、前記ピア・サーバに記憶された前記画像のタイムスタンプを前記写真共有サーバにアップロードし、アップロードされたタイムスタンプと前記キャッシュ中の前記画像の前記タイムスタンプとを比較して、前記キャッシュされた画像が最新のものであるのかどうかと、前記キャッシュの中で失われた画像があるのかどうかとを判定することをさらに含む請求項７に記載の方法。
【請求項９】
変更されている、または失われていると識別された任意の画像のために、前記写真共有サーバから前記ピア・サーバにリクエストを送信し、それによって前記写真共有サーバにキャッシュされた前記画像を前記ピア・サーバに記憶された前記画像と同期化することをさらに含む請求項８に記載の方法。
【請求項１０】
バックグラウンド同期化を実行することをさらに含む請求項９に記載の方法。
【請求項１１】
前記写真共有サーバは前記タイムスタンプの比較を実行するための前記同期化サーバを含む請求項９に記載の方法。
【請求項１２】
前記写真共有サーバは、ファイヤウォールの背後に配置される場合、前記リクエストを出すコンピュータの前記ピア・サーバへのＨＴＴＰアクセスを提供するプロキシ・サーバを備える請求項１に記載の方法。
【請求項１３】
写真共有システム・サーバに接続された少なくとも１つのピア・コンピュータを有するネットワーク写真共有システムであって、
（ａ）該写真共有サーバに画像のコピーをキャッシュするための手段と、
（ｂ）該写真共有サーバに応答して、該ピア・コンピュータに記憶された該画像を閲覧するために、リクエストを出すコンピュータからリクエストを受信し、該写真共有サーバから該ピア・コンピュータにリクエストを送信して、該ピア・コンピュータに記憶された該画像が変更されているかどうかを判定するための手段と、
（ｃ）該ピア・コンピュータからの応答が、該画像が変更されていないことを示す場合、キャッシュされた画像を該写真共有サーバから該リクエストを出すコンピュータに送信するための手段と、
（ｄ）該画像が変更されている場合、変更された画像のコピーを該写真共有サーバにキャッシュし、該変更された画像を該写真共有サーバから該リクエストを出すコンピュータに送信するための手段と、を備えるシステム。
【請求項１４】
前記リクエストを受信するための手段は、ＨＴＴＰリクエストとして前記リクエストを前記ピア・コンピュータに送信する請求項１３に記載のシステム。
【請求項１５】
前記リクエストを受信するための手段は、前記リクエストとして、ＨＴＴＰ  Ｉｆ−Ｍｏｄｉｆｉｅｄ−Ｓｉｎｃｅヘッダと前記キャッシュされた画像のタイムスタンプとを送信する請求項１４に記載のシステム。
【請求項１６】
前記リクエストを受信するために手段は、前記ＨＴＴＰリクエストを受信する前記ピア・コンピュータに応答して、
（ｉ）前記キャッシュされた画像の前記タイムスタンプ、前記ピア・コンピュータに記憶された前記画像のタイムスタンプと比較し、
（ｉｉ）前記タイムスタンプが異なっている場合、前記変更された画像を前記写真共有サーバに転送することによって応答し、
（ｉｉｉ）前記タイムスタンプが異なっていない場合、前記画像が変更されていないことを示す応答を送信する請求項１５に記載のシステム。
【請求項１７】
前記キャッシュするための手段は、
（ｉ）前記ピア・コンピュータに記憶された前記画像が前記写真共有サーバにも記憶されているかどうかを判定するための手段と、
（ｉｉ）前記画像が前記写真共有サーバに記憶されていない場合、記憶のために、前記画像のコピーを前記写真共有サーバに転送するための手段とをさらに含む請求項１３に記載のシステム。
【請求項１８】
前記画像は、前記画像が最初にリクエストされるときにキャッシュされる請求項１７に記載のシステム。
【請求項１９】
前記画像は、前記写真共有サーバと前記ピア・サーバとの間の同期化工程の間にキャッシュされる請求項１７に記載のシステム。
【請求項２０】
前記同期化工程が一旦起動されると、前記ピア・サーバに記憶された前記画像のタイムスタンプは前記写真共有サーバにアップロードされ、アップロードされたタイムスタンプと前記キャッシュの中の前記画像の前記タイムスタンプとが比較されて、前記キャッシュされた画像が最新のものであるかどうかと、前記キャッシュの中で失われた画像があるかどうかとを判定する請求項１９に記載のシステム。
【請求項２１】
リクエストは、変更されている、または失われていると識別された任意の画像のために前記写真共有サーバから前記ピア・サーバに送信され、それによって前記写真共有サーバにキャッシュされた前記画像を前記ピア・サーバに記憶された前記画像と同期化する請求項２０に記載のシステム。
【請求項２２】
同期化はバックグラウンドで実行される請求項２１に記載のシステム。
【請求項２３】
前記写真共有サーバは、前記タイムスタンプの比較を実行するための前記同期化サーバを含む請求項２１に記載のシステム。
【請求項２４】
前記写真共有サーバは、ファイヤウォールの背後に配置される場合、前記リクエストを出すコンピュータの前記ピア・サーバへのＨＴＴＰアクセスを提供するプロキシ・サーバを備える請求項１３に記載のシステム。
【請求項２５】
ピア・コンピュータが写真共有システム・サーバに接続されたネットワーク写真共有システムにおいて、該ピア・コンピュータに記憶された画像を、リクエストを出すコンピュータに与えるためのプログラム命令を含むコンピュータ可読媒体であって、前記命令が、
（ａ）該写真共有サーバに該画像のコピーをキャッシュし、
（ｂ）該写真共有サーバに応答して、該ピア・コンピュータに記憶された該画像を閲覧するために、該リクエストを出すコンピュータからリクエストを受信し、該写真共有サーバから該ピア・コンピュータにリクエストを送信して、該ピア・コンピュータに記憶された該画像が変更されているかどうかを判定し、
（ｃ）該ピア・コンピュータからの応答が、該画像が変更されていないことを示す場合、キャッシュされた画像を該写真共有サーバから該リクエストを出すコンピュータに送信し、
（ｄ）該画像が変更されている場合、変更された画像のコピーを該写真共有サーバにキャッシュし、該変更された画像を該写真共有サーバから該リクエストを出すコンピュータに送信するための命令であるコンピュータ可読媒体。
【請求項２６】
命令（ｂ）は、前記リクエストをＨＴＴＰリクエストとして前記ピア・コンピュータに送信することをさらに含む請求項２５に記載のコンピュータ可読媒体。
【請求項２７】
命令（ｂ）は、前記リクエストとして、ＨＴＴＰ  Ｉｆ−Ｍｏｄｉｆｉｅｄ−Ｓｉｎｃｅヘッダと、前記キャッシュされた画像のタイムスタンプとを送信することをさらに含む請求項２６に記載のコンピュータ可読媒体。
【請求項２８】
命令（ｂ）は、前記ＨＴＴＰリクエストを受信する前記ピア・コンピュータに応答して、
（ｉ）前記キャッシュされた画像の前記タイムスタンプを、前記ピア・コンピュータに記憶された前記画像のタイムスタンプと比較すること、
（ｉｉ）前記タイムスタンプが異なる場合、前記変更された画像を前記写真共有サーバに転送することによって応答すること、
（ｉｉｉ）前記タイムスタンプが異なっていない場合、前記画像が変更されていないことを示す応答を送信することをさらに含む請求項２８に記載のコンピュータ可読媒体。
【請求項２９】
命令（ａ）は、
（ｉ）前記ピア・コンピュータに記憶された前記画像が前記写真共有サーバにも記憶されているかどうかを判定すること、
（ｉｉ）前記写真共有サーバに前記画像が記憶されていない場合、記憶のために前記画像のコピーを前記写真共有サーバに転送することをさらに含む請求項２５に記載のコンピュータ可読媒体。
【請求項３０】
命令（ａ）は、前記画像が最初にリクエストされるときに実行される請求項２９に記載のコンピュータ可読媒体。
【請求項３１】
命令（ａ）は、前記写真共有サーバと前記ピア・サーバとの間の同期化工程の間に実行される請求項３０に記載のコンピュータ可読媒体。
【請求項３２】
前記同期化工程が一旦起動されると、前記ピア・サーバに記憶された前記画像のタイムスタンプを前記写真共有サーバにアップロードし、アップロードされたタイムスタンプと前記キャッシュ中の前記画像の前記タイムスタンプとを比較して、前記キャッシュされた画像が最新のものであるのかどうかと、前記キャッシュの中で失われた画像があるのかどうかとを判定することをさらに含む請求項３１に記載のコンピュータ可読媒体。
【請求項３３】
変更されている、または失われていると識別された任意の画像のために、前記写真共有サーバから前記ピア・サーバにリクエストを送信し、それによって前記写真共有サーバにキャッシュされた前記画像を、前記ピア・サーバに記憶された前記画像と同期化することをさらに含む請求項３２に記載のコンピュータ可読媒体。
【請求項３４】
バックグラウンド同期化を実行することをさらに含む請求項３３に記載のコンピュータ可読媒体。
【請求項３５】
前記写真共有サーバは、前記タイムスタンプの比較を実行するための前記同期化サーバを含む請求項３３に記載のコンピュータ可読媒体。
【請求項３６】
前記写真共有サーバは、ファイヤウォールの背後に配置される場合、前記リクエストを出すコンピュータの前記ピア・サーバへのＨＴＴＰアクセスを提供するプロキシ・サーバを含む請求項２５に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワークを介したデジタル画像の共有に関し、より詳細には、写真共有ピア・ツー・ピア・ネットワークにおいて、ピア・コンピュータに記憶された画像のゲスト閲覧性能を向上するための方法およびシステムに関する。
【背景技術】
【０００２】
ここ数年来、写真共有は写真愛好家によって広く受け入れられるようになってきた。現在、サーバへの記憶のために、およびインターネットを介した他者による閲覧のために、ユーザがデジタル画像をサイトにアップロードすることができる多くのウェブサイトが存在している。しばしば画像はグループ化されてアルバム・ウェブ・ページを形成するので、各々の個別の画像に対して、アルバム・ウェブ・ページを閲覧するために、ユーザは他者を招くことができる。
【０００３】
しかしながら、写真共有のこの方法はいくつかの欠点を示している。特に、ユーザは画像をサイトにアップロードすることが求められ、このことは時間の浪費になる可能性があり、サイトはすべてのユーザの画像を記憶するために膨大な記憶容量を必要とし、このことは不経済なものになる可能性がある。
【０００４】
これらの懸念事に対処するために、本発明の譲受人は、ネットワーク中のすべてのワークステーションおよびコンピュータ（ピア）が局所的に画像を記憶し、ネットワーク上で他のユーザに対してサーバとしての機能を果たす、ウェブ基盤のピア・ツー・ピア写真共有システムを開発した。すべてのピアによるアクセスが可能な中央サイトは、ピアの調整、ピアのための検索能力の提供、購入注文の履行等のさらなる機能を提供する。
【０００５】
図１Ａは、ウェブ基盤のピア・ツー・ピア写真共有システムを示すブロック図である。ピア・ツー・ピア写真共有システム２０は、ピア・ノード・ソフトウェア２６とウェブ・サーバ・ソフトウェア２８とを実行する複数のピア・サーバ２４を備える写真共有Ｐ２Ｐネットワーク２２を含む。ピア・ノードならびに、ソフトウェア２４および２６によってコンピュータのユーザは、自らの写真をウェブサイトにアップロードすることを必要とせずに、ウェブ・ブラウザ３０を通じて、ネットワーク２２の中で他の人と画像を共有することができる。写真共有Ｐ２Ｐネットワーク２２の新しい特徴は、ファイヤウォールの背後でピアのためのネットワーキング・トラフィックを調整するための中央プロキシ・サーバ３６を組み込んだ、一般的なＨＴＴＰ／ウェブ・ブラウザ構成のための複合型ピア・ツー・ピア構造を提供することであり、したがってファイヤウォールの背後での、その他のピアによるピアへのアクセス、およびネットワーク２２の中にはない訪問コンピュータ３２によるピアへのアクセスを可能にする。プロキシ・サーバ３６は、訪問コンピュータ３２が標準的なウェブ・ブラウザ３０を介してピア・サーバ２４から画像にアクセスする経路を提供するとともに、ピア２４に対するサービスの支援を提供する。実質的にすべての企業はファイヤウォールを使用しており、ユーザのホーム・システムにインストールされたソフトウェア・ファイヤウォールは至る所で使用されるようになっているので、ファイヤウォールの背後に配置されたピア・サーバ上でホストされる画像への一般的なＨＴＴＰアクセスを可能にすることは、ますます重要になってきている。
【０００６】
図１Ｂは、画像がプロキシ・サーバ３６を通じて、ピア２４のうちの１つから訪問コンピュータ３２に与えられる場合に使用されるデータ経路を示す図である。工程は、画像を閲覧するために、ゲストが訪問コンピュータ３２のウェブ・ブラウザ３０からリクエストを開始するときに始まり、リクエストは経路（Ａ）を介してプロキシ・サーバ３６に発送される。次に、プロキシ・サーバ３６は経路（Ｂ）を介してリクエストをピア・サーバ２４に発送する。ピア・サーバ２４はリクエストに対処し、経路（Ｃ）を介して画像をプロキシ・サーバに返送する。次いで、プロキシ・サーバ３６は経路（Ｄ）を介して、表示のために画像を訪問コンピュータ３２に送信する。
【０００７】
プロキシ・サーバ３６を通じて画像を発送することにともなう１つの問題は、このことが追加の帯域幅を必要とすることである。つまり画像は２回移動されなければならず、すなわち１回目にピア・サーバ２４からプロキシ・サーバ３６に移動され、次に２回目にプロキシ・サーバ３６から訪問コンピュータ３２へ移動されなければならない。さらに、ピア・サーバ２４は典型的に、ダウンリンク速度（経路Ｂ）よりもずっと遅いアップリンク速度（経路Ｃ）を有するケーブル・モデムまたはＤＳＬの備え付けられたユーザの家でホストされることから、一般に経路（Ｃ）は最も長い待ち時間を有する。ゆえに、ピア・サーバ２４とプロキシ・サーバ３６との間の経路（Ｃ）の帯域幅の制限のために、ユーザはプロキシ・サーバ３６を通じて発送される画像を閲覧する場合に、著しい遅延を経験する。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、ゲスト画像閲覧性能を向上するために、ピア・サーバとプロキシ・サーバとの間（経路Ｃ）のネットワーク・トラフィックの量を減少させるための方法およびシステムが必要とされる。本発明はこのような必要に対処するものである。
【課題を解決するための手段】
【０００９】
本発明は、ピア・コンピュータが上述のようなプロキシ・サーバである写真共有サーバに接続されたネットワーク写真共有システムにおいて、ピア・コンピュータに記憶された画像を、リクエストを出すコンピュータに与えるための方法およびシステムを提供する。本発明の態様は、写真共有サーバに画像のコピーをキャッシュすること、写真共有サーバに応答して、ピア・コンピュータに記憶された画像を閲覧するために、リクエストを出すコンピュータからリクエストを受信すること、キャッシュされた画像を写真共有サーバからリクエストを出すコンピュータに送信することを含み、それによって、画像を閲覧するための各リクエストに対して、画像をピア・コンピュータから写真共有サーバに転送する必要性を回避する。本発明の第２の態様において、写真共有サーバは、リクエストを出すコンピュータにキャッシュされた画像を与える前に、キャッシュされた画像のタイムスタンプを備えたＨＴＴＰリクエストをピア・コンピュータに送信することによって、キャッシュされた画像がキャッシュされて以来変更されたかどうかを判定する。次いでピア・コンピュータは、キャッシュされた画像のタイムスタンプをピアに記憶された画像のタイムスタンプと比較し、タイムスタンプが合致するか否かに基づいて、画像が変更されているかどうかを示す応答を写真共有サーバに送信する。画像が変更されている場合、次いで変更されて画像は写真共有サーバにキャッシュされ、リクエストを出すコンピュータに与えられる。本発明の別の態様において、ピア・コンピュータに記憶された画像は写真共有サーバの画像と自動的に同期化されるので、写真共有サーバは常に画像の最新版を、リクエストを出す側に与えることができる。
【００１０】
本明細書で開示される方法およびシステムによって、写真共有サーバに画像をキャッシュすることは、画像を閲覧するための各リクエストに対して、画像をピア・コンピュータから写真共有サーバへ（経路（Ｃ））転送する必要性を回避する。したがって、本発明はピア・コンピュータと写真共有サーバとの間のネットワーク・トラフィックを大きく減少させ、写真共有ネットワークの画像閲覧性能を高める。
【発明を実施するための最良の形態】
【００１１】
本発明はネットワークを介してデジタル画像を共有することに関し、より詳細にはゲスト画像閲覧性能を向上するための方法およびシステムに関する。以下の説明は、当業者が本発明を作成し、使用できるようにするために示され、特許出願およびその要件を背景として提示される。本明細書で説明される好ましい実施形態に対する様々な変更、一般原理および特徴は、当業者には容易に明らかとなろう。例えば、好ましい実施形態はピア・ツー・ピア・ネットワークの状況の中にあるが、同じ原理は、ゲスト・ブラウザがアルバムおよび画像を記憶しているコンピュータ・システムと直接通信するクライアント・サーバ環境に適用されることが可能である。したがって、本発明は示される実施形態に限定されることが意図されているわけではなく、本明細書で説明される原理および特徴と矛盾しない最も広い範囲に一致するものである。
【００１２】
本発明は、ピア・サーバがそれらのユーザの画像を記憶し、プロキシ・サーバなどの少なくとも１つの写真共有システム・サーバに接続されたピア・ツー・ピア写真共有ネットワークの閲覧性能を向上するための方法およびシステムを提供する。
【００１３】
図２は、本発明の好ましい実施形態による改良型写真共有ネットワークの詳細なブロック図である。図１Ａに示される構成要素の他に、各ピア・サーバ４２は本発明にしたがって機能するピア・ノード・アプリケーション４４と、記憶された画像４８のデータベース４６とを含む。当技術分野でよく知られているように、画像４８は典型的にはホスティング・コンピュータ・システムのハード・ドライブに記憶され、ホスト・オペレーティング・システムによって作成日時または変更日時を示すタイムスタンプ５０が与えられる。
【００１４】
プロキシ・サーバ４０は、プロキシ・サーバ４０への事前に確立された接続を有する分散型ピア・サーバ４２のために、プロキシとしての機能を果たす。プロキシ・サーバ４０は、ファイヤウォールに保護されたピア・サーバ４２からのプロキシ・サーバ３６とのアウトバウンド接続を確立することによって、ファイヤウォールに保護されたピア・サーバ４２が一般のＨＴＴＰアクセスを着信できるようにする。ファイヤウォールで保護されたピア・サーバ４２の着信ウェブ・トラフィックは、その後プロキシ・サーバ４０に向けられる。プロキシ・サーバ４０は、専用のプロトコルを使用してウェブ・トラフィックをピア・サーバ４２に多重送信するので、これによって一般のウェブ・トラフィックは、ファイヤウォール（不図示）の存在にもかかわらずピア・サーバ４２の方に流れるようになる。複数のファイヤウォールに保護されたピア・サーバ４２が存在する場合、プロキシ・サーバ４０は着信ＨＴＴＰリクエストを受信して、これを適切なピア・サーバ４２に発信するためのスイッチボードとしての役割を果たす。ピア・ツー・ピア・ネットワークにおいて、ファイヤウォールを通じてウェブ閲覧を提供するための工程は、図４〜図６Ｂに関してさらに詳細に説明される。本明細書で使用される際、ピア・サーバ２４、プロキシ・サーバ３６および訪問コンピュータ３２はＰＣ、ワークステーション、携帯電話およびＰＤＡなどの、適切なソフトウェアを実行するために必要な構成要素を備えた任意のコンピューティング・デバイスを含んでもよい。また、好ましい実施形態の中では物理的通信ネットワークはインターネットであるが、任意の種類のネットワークが使用されることが可能である。
【００１５】
本発明によって、訪問コンピュータ３２による閲覧のためにリクエストされる、ピア・サーバ４２に記憶された画像４０は、最初に画像がリクエストされたときの前か後のいずれかで、プロキシ・サーバ４０のキャッシュ５２に記憶される。その後、続いて起こる画像に対するリクエストは、ホスティング・ピア・サーバ４２から引き出されるのではなく、プロキシ・サーバのキャッシュ５２から与えられるので、閲覧性能は高まる。さらにプロキシ・サーバ４２は、リクエストされた画像４８’がキャッシュされて以来変更されているかどうかを検査するために、リクエストをピア・サーバ４２に送信することによってキャッシュされた画像４８’が新しいものであることを保証する。このことは、キャッシュされた画像４８’のタイムスタンプ５０’をピア・サーバ４２に記憶された画像４０のタイムスタンプ５０と比較することによって達成される。タイムスタンプの比較が、ピア・サーバ４２の画像４８が変更されていることを示す場合、次いでピア・サーバ４２は、プロキシ・サーバ４２が画像をリクエストを出す側に与える前に、変更された画像をプロキシ・サーバ４２に転送する。
【００１６】
画像４８’をプロキシ・サーバ４０にキャッシュすることによって、本発明は各画像リクエストを満たすために、経路（Ｃ）に沿って画像をピア・サーバ４２からプロキシ・サーバ４０に転送する必要を大きく減少させ、それによってネットワークの閲覧性能を向上する。プロキシのキャッシュ５２が依然として新しいものであるかどうかを判定するために、プロキシ・サーバ４０とピア・サーバ４２との間で少量のデータが転送されるが、各画像リクエストのためにピア・サーバ４２からプロキシ・サーバ４０に画像を転送するのに必要とされるキロバイトまたはメガバイトとは対照的に、このトラフィックは一般にほんの数バイトである。
【００１７】
図３は、写真共有ピア・ツー・ピア・ネットワークにおいて、ピア・サーバに記憶された画像のゲスト閲覧性能を向上するための工程を示す流れ図である。図２および３の両方を参照すると、工程は、ピア・サーバ４２に記憶された画像４８を閲覧するために、訪問コンピュータ３２がリクエストを出す工程６０で始まる。リクエストは、経路（Ａ）を介してプロキシ・サーバ４０に発送される。工程６２で、プロキシ・サーバ４０は経路（Ｅ）を介して画像のコピー４８’がキャッシュ５２に記憶されたかどうかを検査する。画像が最初にリクエストされるときに起こるかもしれないことであるが、画像のコピー４８’がキャッシュに記憶されない場合（キャッシュ・ミス）、次に工程６４で、プロキシ・サーバ４０は経路（Ｂ）を介して、リクエストされた画像４８をホストするピア・サーバ４２に、画像に対するリクエストを送信する。
【００１８】
工程６８で、ピア・サーバ４２は画像４８を取り出し、経路（Ｃ）を介して画像４８のコピーをプロキシ・サーバ４０に送信する。工程７０で、画像のコピー４８’はキャッシュ５２に記憶される。工程７２で、プロキシ・サーバ４０は経路（Ｆ）を介してキャッシュされた画像４８’を取り出し、それを経路（Ｅ）を介してリクエストを出す訪問コンピュータ３２に与える。好ましい実施形態において、リクエストが作られる時間と画像が返送される時間との間の遅延をさらに減少させるために、プロキシ・サーバ４０は画像４８’を訪問コンピュータ３２に流入させる一方で、画像４８’はピア・サーバ４２からダウンロードされる。
【００１９】
再び工程６２を参照すると、画像４８’がキャッシュ５２の中に現れている場合（キャッシュ・ヒット）、プロキシ・サーバ４０は経路（Ｂ）を介して、キャッシュされた画像４８’のタイムスタンプ５０’を備えた標準的なＨＴＴＰ「ＩＦ−Ｍｏｄｉｆｉｅｄ−Ｓｉｎｃｅ」ヘッダの形態で、リクエストをピア・サーバ４２に送信することによって、キャッシュされた画像４８’が依然として新しいものであるかどうかを工程７４で判定する。工程７６で、ピア・サーバ４２上のピア・ノード・アプリケーション４４は、キャッシュされた画像４８’のタイムスタンプ５０’をピア・サーバ４２に記憶された画像４０のタイムスタンプ５０と比較する。ピア・サーバ４２に記憶された画像４８のタイムスタンプ５０がキャッシュされた画像４８’のタイムスタンプ５０’と異なっている場合（すなわち、より新しい場合）、次いでピア・サーバ４２は、ピア・サーバ４２の画像４８が、画像がキャッシュされて以来変更されていることを判定する（古いキャッシュ）。工程６８で、ピア・サーバ４２は経路（Ｃ）を介して、画像４８のコピーを応答として返送する。
【００２０】
ピア・サーバ４２が工程７６で、局所的に記憶された画像４８がプロキシ・サーバ４０によって送信されたタイムスタンプ５０’よりも新しいタイムスタンプ５０を有していないことを判定する場合、次いで工程７８で、ピア・サーバ４２は経路（Ｃ）を介して、画像が変更されていないことを示す応答として、３０４ＨＴＴＰ返送コードをプロキシ・サーバ４０に送信する。次いで、プロキシ・サーバ４０は経路（Ｆ）を介してキャッシュ５２から画像４８’を取り出し、それを経路（Ｄ）を介して、工程７２を介して訪問コンピュータ３２に与える。
【００２１】
時折、特にユーザが使用していないときにＰＣをシャット・ダウンすることがよくある家庭内の環境で、ピア・サーバ４２はプロキシ・サーバ４０から接続を遮断される。この場合プロキシ・サーバ４０は、キャッシュ５２の中の画像４８’が依然として有効かどうかを判定するために、ピア・サーバ４２と通信することができない。したがってプロキシ・サーバ４０は、ピア・サーバ４２がオフラインになる前に、更新された最新の画像のセットと、それらの画像を取り囲むウェブ・ページの構成要素とを必要とする。
【００２２】
本発明のさらなる態様によって、これは同期化サーバ５４（図２）と同期化プロトコルとを介して処理される。図２および３の両方を参照すると、動作中、ピア・サーバ４２の接続を断つ前に、工程８０でユーザはピア・サーバ４２と同期化サーバ５４との間で同期化プロトコルを開始してもよい。好ましい実施形態において、ピア・ノード４４のユーザ・インターフェースはピア同期化アイコン、またはユーザが選択してもよいメニュー項目を表示する。代替として、ユーザは同期化を実行することを促されてもよく、ユーザは同期化を受け入れるのか、それとも退けるのかを選択してもよい。
【００２３】
一旦同期化が起動されると、工程８２でピア・サーバ４２は経路（Ｃ）を介して、すべての画像４８のタイムスタンプ５０を同期化サーバ５４にアップロードする。工程８４で、同期化サーバ５４はアップロードされたタイムスタンプ５０をタイムスタンプ５０’と比較して、キャッシュされた画像４８’が最新のものであるかどうかと、キャッシュ５２の中で何らかの失われた画像があるのかどうかとを判定する。工程８６で、同期化サーバ５４は変更されている、または失われていると識別された任意の画像のために、ピア・サーバ４２にリクエストを送信する。工程６８で、ピア・サーバ４２はリクエストされた画像４８を取り出し、経路（Ｃ）を経由してそれをプロキシ・サーバ４０に送信する。
【００２４】
好ましい実施形態において、同期化は、ユーザによるリクエストに応じて直ちに実行される。しかしながら代替の実施形態において、同期化はバックグラウンドで自動的に実行されてもよい。すなわち、プロキシ・サーバ４０が訪問コンピュータ３２に画像を与えるのと同時に、プロキシ・サーバ４０はピア・サーバ４２と同期化されてもよい。この実施形態において同期化は、ピア・サーバ４２がプロキシ・サーバ４０に最初に接続するときに実行されてもよい。またバックグラウンド同期化は、ピア・サーバの接続がアイドルであることが検出されるときに実行されてもよい。バックグラウンド同期化のいずれの形態でも、ユーザがアクティブ・セッションの後にピア・サーバ４２をシャット・ダウンする時間によって、プロキシ・サーバ４４との同期化は間違いなく完了されてもよい。
【００２５】
好ましい実施形態において、同期化サーバ５４はプロキシ・サーバ４０の構成要素である。しかしながら、同期化サーバ５４はプロキシ・サーバ４０から独立していてもよく、独立のコンピュータ上で動作してもよい。
【００２６】
理解されるように、典型的には画像がリクエストされるまさに１回目の場合であり、キャッシュ５２の中の画像が更新されることを必要とするときである、画像がキャッシュ５２の中に存在しない場合、画像は経路（Ｃ）を介してピア・サーバ４２からプロキシ・サーバ４０に転送されるだけである。しかしながら、画像がリクエストされる第１回目以外に、画像はキャッシュ５２の中に存在し、ピア・サーバ４２とプロキシ・サーバ４０との間で経路（Ｃ）を介して渡される唯一のデータは、画像を転送するためのメガバイトではなくほんの数バイトのＨＴＴＰ返送コードである。ピア・サーバ４２とプロキシ・サーバ４０との間のこのトラフィックの削減によって、ゲストのためのＰ２Ｐネットワークの画像閲覧性能は大きく高められる。
【００２７】
図４は、ピア・サーバ４２がその供給能力をファイヤウォール３４を通じて評価可能なものとするために、写真共有ピア・ツー・ピア・ネットワーク２２に登録を行う工程を示すフロー図である。好ましい実施形態において、Ｐ２Ｐネットワーク２２は、まとめてプロキシ・サーバ配列４０と呼ばれる複数のプロキシ・サーバ４０ａ〜ｎ、ピア・サーバ・テーブル７０、登録サーバ７２およびＤＮＳサーバ７４を含む。
【００２８】
登録工程は工程１００で始まり、そこでピア・ノード４４はその名前を登録サーバ７２に伝え、登録サーバ７２はピア名が固有のものであることを確かめるために検査を行い、割り当てられているプロキシ・サーバ４０の名前とＩＰアドレスとをピア・ノード４４に返送する。工程１０２で、ピア・ノード４４はそのプロキシ・サーバ名とプロキシ・サーバＩＰアドレスとをＤＮＳサーバ７４に登録する。ＤＮＳサーバ７４はすべてのピア名と、それらの対応しているプロキシのＩＰアドレスとのテーブルを維持する。工程１０４でピア・ノード４４は、ピア・サーバ名と、割り当てられているプロキシ・サーバ４０へのソケットとを登録する。
【００２９】
工程１０６で、訪問コンピュータ３２のユーザは、閲覧のためにコンテント（例えば写真）がピア・サーバ４２に存在することを通知される。通知は複数の方法を使用して実施されることが可能であるが、好ましい実施形態においては、ピア・サーバ４２中のコンテントのＵＲＬを含む電子メールを用いて、ユーザは電子メールを介して通知される。工程１０８で、訪問コンピュータ３２のユーザは電子メールを受信し、ＵＲＬをクリックする。訪問コンピュータ３２はリクエストを送信するために、ＵＲＬの中のピア名を使用してＤＮＳサーバ７４と接触し、その中のプロキシ・サーバ４０のアイデンティティを判定する。ＤＮＳサーバ７４は、ピア・サーバ４２に割り当てられているプロキシ・サーバ４０のＩＰアドレスで応答する。工程１１０で、プロキシのＩＰアドレスが与えられると、訪問コンピュータ３２のウェブ・ブラウザ３０は、ＨＴＴＰリクエストをプロキシ・サーバ４０に送信する。
【００３０】
図５はプロキシ・サーバ４０の構成要素、およびプロキシ・サーバ４０を通じてウェブ・ブラウザ３０がピア・サーバ４２へのＨＴＴＰアクセスを有することを可能にするための、リクエストを出すウェブ・サーバ３０とプロキシ・サーバ４０とピア・サーバ４２との間のフローを示す図である。好ましい実施形態において、プロキシ・サーバ４０は多重サーブレット（ｍｕｌｔｉｐｌｅｓｅｒｖｌｅｔ）・スレッド１５０、登録マネージャ１５２、ピア・マネージャ１５４、ピア・メッセージ・ボックス１５６およびピア・パケット・マネージャ・スレッド１５８を含む。
【００３１】
工程は、プロキシ・サーバ４０のサーブレット・スレッド１５０が、ウェブ・ブラウザ３０からＵＲＬの形態でＨＴＴＰリクエストを受信する工程２００で始まる。工程２０２で、登録マネージャ１５２は、リクエストを出すＵＲＬの中で識別されたピア・サーバがピア・サーバ４２に登録されているかどうかを判定するためにサーバ・テーブル７０（図４参照）を検査し、もし登録されていれば、対応するピアのソケットを返送する。工程２０４で、サーブレット・スレッド１５０はＨＴＴＰリクエストからピア・リクエスト・パケット１６０を作り出し、次いでそのパケットをピア・マネージャ１５４に伝える。
【００３２】
図６Ａは、ピア・リクエスト・パケット１６０のコンテントを示す図である。好ましい実施形態において、ピア・リクエスト・パケット１６０はメッセージ・ボックスＩＤ１６２、ＨＴＴＰ  ＵＲＬ１６４、複数のＨＴＴＰヘッダ１６６、およびＨＴＴＰポスト・データ・フィールド１６８を含む。メッセージ・ボックスＩＤ１６２は関連するピア・リクエスト・パケット１６２、ピア応答パケット１７０およびピア・メッセージ・ボックス１５６のための固有の識別子である。ＨＴＴＰ  ＵＲＬ１６４は、訪問ウェブ・ブラウザ３０からリクエストされたＵＲＬである。ＨＴＴＰヘッダ１６６は、訪問ウェブ・ブラウザ３０からの元々のリクエストに由来するＨＴＴＰヘッダである。ＨＴＴＰポスト・データ・フィールド１６８は、リクエストがＰＯＳＴコマンドであってＧＥＴコマンドではない場合のデータを含む。
【００３３】
工程２０６で再び図５を参照すると、ピア・マネージャ１５４はピア・サーバ４２へのソケット接続を見つけ出し、ピア・リクエスト・パケット１６０をピア・サーバ４２に伝える。工程２１０で、サーブレット・スレッド１５０はピア・マネージャ１５４およびブロックからピア・メッセージ・ボックス１５６を取得し、ピア・メッセージ・ボックス１５６で応答パケットが到着するのを待つ。
【００３４】
工程２１２で、ピア・ノード４４はリクエスト・パケット１６０を受信して、パケット１６０をＨＴＴＰリクエストに変換し直し、ＨＴＴＰリクエストをウェブ・サーバ２８に送信する。工程２１４で、ＨＴＴＰ応答はウェブ・サーバ２８からピア・ノード４４に送信され、次いでピア・ノード４４は応答からＨＴＴＰヘッダを取り出してピア応答パケット１７０を作り出し、それをプロキシ・サーバ４０に返信する。ＨＴＴＰ応答の残りの部分は、工程２１６で２Ｋのチャンクに分割され、続きのピア応答パケット１７０の中でプロキシ・サーバ４０に送信される。好ましい実施形態において、ピア・ノード４４は各ピア応答パケット１７０にルーティング・アドレスを挿入する。プロキシ・サーバ４０からのリクエストを処理する複数のスレッドが存在しうることに留意されたい。したがって、ピア・ノード４４は同じ応答ソケットを介してそれらの応答をプロキシ・サーバ４０に多重送信し返す。
【００３５】
図６Ｂはピア応答パケット１７０のコンテントを示す図である。好ましい実施形態において、ピア応答パケット１７０はメッセージ・ボックスＩＤ１７２、パケット・サイズ１７４、パケット・タイプ１７６およびペイロード・フィールド１７８を含む。メッセージ・ボックスＩＤ１７２は関連するピア・リクエスト・パケット１６２、ピア応答パケット１７０およびピア・メッセージ・ボックス１５６のための固有の識別子である。パケット・サイズ１７４は、ピア・リクエスト・パケット１６０への応答がプロキシ・サーバ４０にチャンクで送信し返されるという事実に関係する。好ましい実施形態の中では２Ｋのパケット・サイズが使用される。個々のパケットは完全なＨＴＴＰ応答を形成するためにプロキシ・サーバ４０上で再び組み立てられ、次いでそれらは訪問ウェブ・ブラウザ３０に返送される。パケット・タイプ１７６はペイロード・フィールド１７８で返送されたデータのタイプを示す。可能な値は「データ、ヘッダ、最終パケット」を含む。ペイロード・フィールド１７８はピア応答パケット１７０のデータ部分である。
【００３６】
再び図５を参照すると、工程２１８でプロキシ・サーバ４０は応答ソケットを介して生バイトを受信し、スレッド・プールから選択されたピア・パケット・マネージャ１５８のスレッドにそれらを伝える。好ましい実施形態において、プロキシ・サーバ４０、１７０の中でリクエスト１５８を能動的に受信するのは、ピアに対して１つのパケット・マネージャ・スレッドしかない。工程２２０で、ピア・パケット・マネージャ・スレッド１５８は、そのバッファの中に完全なパケットがあるまで待機し、次いで完全なピア応答パケット１７０を対応のピア・メッセージ・ボックス１５６に発送する。ピア・メッセージ・ボックス１５６にパケット１７０が到着すると、対応のサーブレット・スレッド１５０は起動して、完全なピア応答パケット１７０を取り出す。工程２４２で、サーブレット・スレッド１５０はピア応答パケット１７０をＨＴＴＰ応答に変換し直し、次いでＨＴＴＰ応答を、リクエストを出すウェブ・ブラウザ３０に送信し返す。本明細書で開示されるように、プロキシ・サーバ４０とピア・ノード４４との組合せによって、訪問ウェブ・ブラウザ３０による、ファイヤウォール３４の背後に配置されたピア・サーバ４２へのＨＴＴＰアクセスが可能になる。
【００３７】
本発明は示された実施形態にしたがって説明されており、当業者であれば、本実施形態に対する変更形態が存在しうるということが容易に認識されよう。例えば、好ましい実施形態はウェブ基盤のピア・ツー・ピア・ネットワークに関連して説明されてきたが、同一の原理は、クライアント・コンピュータがプロキシ・サーバを利用せずにピア・サーバと直接通信する従来のクライアント・サーバ環境に適用されることが可能であることが、当業者であれば容易に理解されよう。いかなる変形形態も本発明の技術思想および範囲の中に含まれる。したがって多くの変更形態は、添付の特許請求項の技術思想および範囲から逸脱することなく、当業者によって作成されてもよい。
【図面の簡単な説明】
【００３８】
【図１Ａ】例示的なウェブ基盤のピア・ツー・ピア環境を示すブロック図。
【図１Ｂ】例示的なウェブ基盤のピア・ツー・ピア環境を示すブロック図。
【図２】本発明の好ましい実施形態による改良型写真共有ネットワークの詳細なブロック図。
【図３】写真共有ピア・ツー・ピア・ネットワークにおいてピア・サーバに記憶された画像のゲスト閲覧性能を向上するための工程を示すフロー図。
【図４】ピア・サーバがその供給能力をファイヤウォールを通じて評価可能なものにするために、写真共有ピア・ツー・ピア・ネットワークに登録を行う工程を示すフロー図。
【図５】プロキシ・サーバの構成要素、およびウェブ・ブラウザがプロキシ・サーバを通じてピア・サーバへのＨＴＴＰアクセスを有することを可能にするための、リクエストを出すウェブ・サーバとプロキシ・サーバとピア・サーバとの間のフローを示す図。
【図６Ａ】ピア・リクエスト・パケットのコンテントを示す図。
【図６Ｂ】ピア応答パケットのコンテントを示す図。
【図１Ａ】
2008511078.tif 000002
【図１Ｂ】
2008511078.tif 000003
【図２】
2008511078.tif 000004
【図３】
2008511078.tif 000005
【図４】
2008511078.tif 000006
【図５】
2008511078.tif 000007
【図６Ａ】
2008511078.tif 000008
【図６Ｂ】
2008511078.tif 000009
【手続補正書】
【提出日】平成18年12月18日(2006.12.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
写真共有システム・サーバに接続された少なくとも１つのピア・コンピュータを有するネットワーク写真共有システムにおいて、リクエストを出すコンピュータに、該ピア・コンピュータに記憶された画像を与えるための方法であって、
（ａ）該写真共有サーバに該画像のコピーをキャッシュすること、
（ｂ）該写真共有サーバに応答して、該ピア・コンピュータに記憶された該画像を閲覧するために、該リクエストを出すコンピュータからリクエストを受信し、該写真共有サーバから該ピア・コンピュータにリクエストを送信して、該ピア・コンピュータに記憶された該画像が変更されているかどうかを判定すること、
（ｃ）該ピア・コンピュータからの応答が該画像が変更されていないことを示す場合、キャッシュされた画像を該写真共有サーバから該リクエストを出すコンピュータに送信すること、
（ｄ）該画像が変更されている場合、変更された画像のコピーを該写真共有サーバにキャッシュし、該変更された画像を該写真共有サーバから該リクエストを出すコンピュータに送信すること、を備える方法。
【請求項２】
工程（ｂ）は、前記リクエストをＨＴＴＰリクエストとして前記ピア・コンピュータに送信することをさらに含む請求項１に記載の方法。
【請求項３】
工程（ｂ）は、前記リクエストとして、ＨＴＴＰ  Ｉｆ−Ｍｏｄｉｆｉｅｄ−Ｓｉｎｃｅヘッダと、前記キャッシュされた画像のタイムスタンプとを送信することをさらに含む請求項２に記載の方法。
【請求項４】
工程（ｂ）は、前記ＨＴＴＰリクエストを受信する前記ピア・コンピュータに応答して、
（ｉ）前記キャッシュされた画像の前記タイムスタンプを前記ピア・コンピュータに記憶された前記画像のタイムスタンプと比較すること、
（ｉｉ）前記タイムスタンプが異なる場合、前記変更された画像を前記写真共有サーバに転送することによって応答すること、
（ｉｉｉ）前記タイムスタンプが異なっていない場合、前記画像が変更されていないことを示す応答を送信することをさらに含む請求項３に記載の方法。
【請求項５】
工程（ａ）は、
（ｉ）前記ピア・コンピュータに記憶された前記画像が前記写真共有サーバにも記憶されているかどうかを判定すること、
（ｉｉ）前記写真共有サーバに前記画像が記憶されていない場合、記憶のために前記画像のコピーを前記写真共有サーバに転送することをさらに含む請求項１に記載の方法。
【請求項６】
工程（ａ）は、前記画像が最初にリクエストされるときに実行される請求項５に記載の方法。
【請求項７】
工程（ａ）は、前記写真共有サーバと前記ピア・コンピュータとの間の同期化工程の間に実行される請求項６に記載の方法。
【請求項８】
前記同期化工程が一旦起動されると、前記ピア・コンピュータに記憶された前記画像のタイムスタンプを前記写真共有サーバにアップロードし、アップロードされたタイムスタンプと前記キャッシュ中の前記画像の前記タイムスタンプとを比較して、前記キャッシュされた画像が最新のものであるのかどうかを判定し、かつ前記キャッシュから任意の画像が失われたかどうかを判定することをさらに含む請求項７に記載の方法。
【請求項９】
変更されている、または失われていると識別された任意の画像のために、前記写真共有サーバから前記ピア・コンピュータにリクエストを送信し、それによって前記写真共有サーバにキャッシュされた前記画像を前記ピア・コンピュータに記憶された前記画像と同期化することをさらに含む請求項８に記載の方法。
【請求項１０】
バックグラウンド同期化を実行することをさらに含む請求項９に記載の方法。
【請求項１１】
前記写真共有サーバは前記タイムスタンプの比較を実行するための同期化サーバを含む請求項９に記載の方法。
【請求項１２】
前記写真共有サーバは、ファイヤウォールの背後に配置される場合、前記リクエストを出すコンピュータの前記ピア・コンピュータへのＨＴＴＰアクセスを提供するプロキシ・サーバを備える請求項１に記載の方法。
【請求項１３】
写真共有システム・サーバに接続された少なくとも１つのピア・コンピュータを有するネットワーク写真共有システムであって、
（ａ）該写真共有サーバに画像のコピーをキャッシュするための手段と、
（ｂ）該写真共有サーバに応答して、該ピア・コンピュータに記憶された該画像を閲覧するために、リクエストを出すコンピュータからリクエストを受信し、該写真共有サーバから該ピア・コンピュータにリクエストを送信して、該ピア・コンピュータに記憶された該画像が変更されているかどうかを判定するための手段と、
（ｃ）該ピア・コンピュータからの応答が、該画像が変更されていないことを示す場合、キャッシュされた画像を該写真共有サーバから該リクエストを出すコンピュータに送信するための手段と、
（ｄ）該画像が変更されている場合、変更された画像のコピーを該写真共有サーバにキャッシュし、該変更された画像を該写真共有サーバから該リクエストを出すコンピュータに送信するための手段と、を備えるシステム。
【請求項１４】
前記リクエストを受信するための手段は、ＨＴＴＰリクエストとして前記リクエストを前記ピア・コンピュータに送信する請求項１３に記載のシステム。
【請求項１５】
前記リクエストを受信するための手段は、前記リクエストとして、ＨＴＴＰ  Ｉｆ−Ｍｏｄｉｆｉｅｄ−Ｓｉｎｃｅヘッダと前記キャッシュされた画像のタイムスタンプとを送信する請求項１４に記載のシステム。
【請求項１６】
前記リクエストを受信するために手段は、前記ＨＴＴＰリクエストを受信する前記ピア・コンピュータに応答して、
（ｉ）前記キャッシュされた画像の前記タイムスタンプ、前記ピア・コンピュータに記憶された前記画像のタイムスタンプと比較し、
（ｉｉ）前記タイムスタンプが異なっている場合、前記変更された画像を前記写真共有サーバに転送することによって応答し、
（ｉｉｉ）前記タイムスタンプが異なっていない場合、前記画像が変更されていないことを示す応答を送信する請求項１５に記載のシステム。
【請求項１７】
前記キャッシュするための手段は、
（ｉ）前記ピア・コンピュータに記憶された前記画像が前記写真共有サーバにも記憶されているかどうかを判定するための手段と、
（ｉｉ）前記画像が前記写真共有サーバに記憶されていない場合、記憶のために、前記画像のコピーを前記写真共有サーバに転送するための手段とをさらに含む請求項１３に記載のシステム。
【請求項１８】
前記画像は、前記画像が最初にリクエストされるときにキャッシュされる請求項１７に記載のシステム。
【請求項１９】
前記画像は、前記写真共有サーバと前記ピア・コンピュータとの間の同期化工程の間にキャッシュされる請求項１７に記載のシステム。
【請求項２０】
前記同期化工程が一旦起動されると、前記ピア・コンピュータに記憶された前記画像のタイムスタンプは前記写真共有サーバにアップロードされ、アップロードされたタイムスタンプと前記キャッシュの中の前記画像の前記タイムスタンプとが比較されて、前記キャッシュされた画像が最新のものであるかどうかと、前記キャッシュの中で失われた画像があるかどうかとを判定する請求項１９に記載のシステム。
【請求項２１】
リクエストは、変更されている、または失われていると識別された任意の画像のために前記写真共有サーバから前記ピア・コンピュータに送信され、それによって前記写真共有サーバにキャッシュされた前記画像を前記ピア・コンピュータに記憶された前記画像と同期化する請求項２０に記載のシステム。
【請求項２２】
同期化はバックグラウンドで実行される請求項２１に記載のシステム。
【請求項２３】
前記写真共有サーバは、前記タイムスタンプの比較を実行するための同期化サーバを含む請求項２１に記載のシステム。
【請求項２４】
前記写真共有サーバは、ファイヤウォールの背後に配置される場合、前記リクエストを出すコンピュータの前記ピア・コンピュータへのＨＴＴＰアクセスを提供するプロキシ・サーバを備える請求項１３に記載のシステム。
【請求項２５】
ピア・コンピュータが写真共有システム・サーバに接続されたネットワーク写真共有システムにおいて、該ピア・コンピュータに記憶された画像を、リクエストを出すコンピュータに与えるためのプログラム命令を含むコンピュータ可読媒体であって、前記命令が、
（ａ）該写真共有サーバに該画像のコピーをキャッシュし、
（ｂ）該写真共有サーバに応答して、該ピア・コンピュータに記憶された該画像を閲覧するために、該リクエストを出すコンピュータからリクエストを受信し、該写真共有サーバから該ピア・コンピュータにリクエストを送信して、該ピア・コンピュータに記憶された該画像が変更されているかどうかを判定し、
（ｃ）該ピア・コンピュータからの応答が、該画像が変更されていないことを示す場合、キャッシュされた画像を該写真共有サーバから該リクエストを出すコンピュータに送信し、
（ｄ）該画像が変更されている場合、変更された画像のコピーを該写真共有サーバにキャッシュし、該変更された画像を該写真共有サーバから該リクエストを出すコンピュータに送信するための命令であるコンピュータ可読媒体。
【請求項２６】
命令（ｂ）は、前記リクエストをＨＴＴＰリクエストとして前記ピア・コンピュータに送信することをさらに含む請求項２５に記載のコンピュータ可読媒体。
【請求項２７】
命令（ｂ）は、前記リクエストとして、ＨＴＴＰ  Ｉｆ−Ｍｏｄｉｆｉｅｄ−Ｓｉｎｃｅヘッダと、前記キャッシュされた画像のタイムスタンプとを送信することをさらに含む請求項２６に記載のコンピュータ可読媒体。
【請求項２８】
命令（ｂ）は、前記ＨＴＴＰリクエストを受信する前記ピア・コンピュータに応答して、
（ｉ）前記キャッシュされた画像の前記タイムスタンプを、前記ピア・コンピュータに記憶された前記画像のタイムスタンプと比較すること、
（ｉｉ）前記タイムスタンプが異なる場合、前記変更された画像を前記写真共有サーバに転送することによって応答すること、
（ｉｉｉ）前記タイムスタンプが異なっていない場合、前記画像が変更されていないことを示す応答を送信することをさらに含む請求項２８に記載のコンピュータ可読媒体。
【請求項２９】
命令（ａ）は、
（ｉ）前記ピア・コンピュータに記憶された前記画像が前記写真共有サーバにも記憶されているかどうかを判定すること、
（ｉｉ）前記写真共有サーバに前記画像が記憶されていない場合、記憶のために前記画像のコピーを前記写真共有サーバに転送することをさらに含む請求項２５に記載のコンピュータ可読媒体。
【請求項３０】
命令（ａ）は、前記画像が最初にリクエストされるときに実行される請求項２９に記載のコンピュータ可読媒体。
【請求項３１】
命令（ａ）は、前記写真共有サーバと前記ピア・コンピュータとの間の同期化工程の間に実行される請求項３０に記載のコンピュータ可読媒体。
【請求項３２】
前記同期化工程が一旦起動されると、前記ピア・コンピュータに記憶された前記画像のタイムスタンプを前記写真共有サーバにアップロードし、アップロードされたタイムスタンプと前記キャッシュ中の前記画像の前記タイムスタンプとを比較して、前記キャッシュされた画像が最新のものであるのかどうかと、前記キャッシュの中で失われた画像があるのかどうかとを判定することをさらに含む請求項３１に記載のコンピュータ可読媒体。
【請求項３３】
変更されている、または失われていると識別された任意の画像のために、前記写真共有サーバから前記ピア・コンピュータにリクエストを送信し、それによって前記写真共有サーバにキャッシュされた前記画像を、前記ピア・コンピュータに記憶された前記画像と同期化することをさらに含む請求項３２に記載のコンピュータ可読媒体。
【請求項３４】
バックグラウンド同期化を実行することをさらに含む請求項３３に記載のコンピュータ可読媒体。
【請求項３５】
前記写真共有サーバは、前記タイムスタンプの比較を実行するための同期化サーバを含む請求項３３に記載のコンピュータ可読媒体。
【請求項３６】
前記写真共有サーバは、ファイヤウォールの背後に配置される場合、前記リクエストを出すコンピュータの前記ピア・コンピュータへのＨＴＴＰアクセスを提供するプロキシ・サーバを含む請求項２５に記載のコンピュータ可読媒体。
【国際調査報告】
2008511078.tif 000010