(57)【特許請求の範囲】
【請求項１】
複数のキャッシュサーバの中から、端末にネットワーク上の距離の近いキャッシュサーバを通知する装置のキャッシュサーバ解決方法であって、
前記装置は、
前記ネットワーク上の複数の中継装置と、複数の前記キャッシュサーバそれぞれとのネットワーク上の距離を測定し、複数の前記中継装置各々に距離の近い前記キャッシュサーバを決定した結果を保持し、
前記端末へのネットワーク上の経路上の前記中継装置を調査し、
保持された前記端末に最も近い前記中継装置に近い前記キャッシュサーバを取得し、前記端末に最も近い前記中継装置に近いキャッシュサーバが保持されていない場合は、前記端末から次に近い前記中継装置に近い前記キャッシュサーバを探索して取得することを繰返す、
ことを特徴とするキャッシュサーバ解決方法。
【請求項２】
請求項1に記載のキャッシュサーバ解決方法であって、
前記装置は、
予め前記端末までのネットワーク上の経路上の前記中継装置を調査し、その結果を前記中継装置の配列のリストとして保持し、
前記端末を識別する識別子が入力されたら、予め保持した前記中継装置の配列のリストから探索する、
ことを特徴とするキャッシュサーバ解決方法。
【請求項３】
請求項２に記載のキャッシュサーバ解決方法であって、
前記装置は、
前記端末にtracerouteすることにより、前記端末近傍の前記中継装置を調査する、
ことを特徴とするキャッシュサーバ解決方法。
【請求項４】
請求項１に記載のキャッシュサーバ解決方法であって、
前記端末は、動画配信システムの視聴用クライアントを備え、
前記キャッシュサーバは、前記動画配信システムの動画データをキャッシュする、
ことを特徴とするキャッシュサーバ解決方法。
【請求項５】
請求項１に記載のキャッシュサーバ解決方法であって、
前記端末は、コンテンツ配信装置にコンテンツ配信要請するためのクライアントプログラムを備え、
前記装置は、
前記端末が前記コンテンツ配信装置に配信要請してきた際、前記端末近傍の前記キャッシュサーバを探索できない場合、前記コンテンツ配信装置からコンテンツを返し、前記端末までのネットワーク上の経路上の前記中継装置を調査して結果を保持する、
ことを特徴とするキャッシュサーバ解決方法。
【請求項６】
処理部と記憶部とを備え、複数のキャッシュサーバの中から、端末にネットワーク上の距離の近いキャッシュサーバを通知する解決装置であって、
前記記憶部に、
前記ネットワーク上の複数の中継装置と、複数の前記キャッシュサーバそれぞれとのネットワーク上の距離を測定し、複数の前記中継装置各々に距離の近い前記キャッシュサーバを決定した結果を保持し、
前記処理部は、
前記端末を識別する識別子を入力し、当該端末へのネットワーク上の経路上の前記中継装置を調査し、
前記記憶部に記憶された前記端末に最も近い中継装置に近い前記キャッシュサーバを取得し、前記端末に最も近い中継装置に近い前記キャッシュサーバが前記記憶部に保持されていない場合は、前記端末から次に近い中継装置に近い前記キャッシュサーバを探索して取得することを再帰的に繰返す、
ことを特徴とする解決装置。
【請求項７】
請求項６に記載の解決装置であって、
前記記憶部は、前記結果として、前記中継装置のIPアドレスと、前記キャッシュサーバのIPアドレスと、前記中継装置と前記キャッシュサーバのネットワーク上の距離を保持するテーブルを記憶する、
ことを特徴とする解決装置。
【請求項８】
請求項６に記載の解決装置であって、
前記処理部は、
前記端末にtracerouteすることにより、前記端末近傍の前記中継装置を調査する、
ことを特徴とする解決装置。
【請求項９】
請求項６に記載の解決装置であって、
前記端末は、ビデオオンデマンド(以下、VOD)システムの視聴用クライアントを備え、
前記キャッシュサーバは、前記VODシステムのVODデータをキャッシュする、
ことを特徴とする解決装置。
【請求項１０】
請求項９に記載の解決装置であって、
前記処理部は、
再帰的な探索によって前記VODデータをキャッシュする前記キャッシュサーバが見つからない場合、前記VODデータのオリジナルのURLを返す、
ことを特徴とする解決装置。
【請求項１１】
端末と、複数のキャッシュサーバと、前記端末にネットワーク上の距離の近い前記キャッシュサーバを通知する解決装置とを備えるキャッシュサーバシステムであって、
前記解決装置は、
前記ネットワーク上の複数の中継装置と、複数の前記キャッシュサーバそれぞれとのネットワーク上の距離を測定し、複数の前記中継装置各々に距離の近い前記キャッシュサーバを決定した結果を保持し、
前記端末を識別する識別子を入力し、ネットワーク上の経路上の前記中継装置を調査し、
保持した前記端末に最も近い中継装置に近い前記キャッシュサーバを取得し、前記端末に最も近い中継装置に近い前記キャッシュサーバが保持されていない場合は、前記端末から次に近い中継装置に近い前記キャッシュサーバを探索して取得することを順次繰返し、取得した前記キャッシュサーバを出力する、
ことを特徴とするキャッシュサーバシステム。
【請求項１２】
請求項１１に記載のキャッシュサーバシステムであって、
前記解決装置は、前記結果として、前記中継装置のIPアドレスと、前記キャッシュサーバのIPアドレスと、前記中継装置と前記キャッシュサーバのネットワーク上の距離を保持する、
ことを特徴とするキャッシュサーバシステム。
【請求項１３】
請求項１１に記載のキャッシュサーバシステムであって、
前記解決装置は、
前記端末にtracerouteすることにより、前記端末近傍の前記中継装置を調査する、
ことを特徴とするキャッシュサーバシステム。
【請求項１４】
請求項１１に記載のキャッシュサーバシステムであって、
動画配信システムの番組表を配信可能なポータル配信装置を更に備え、
前記端末は、前記動画配信システムの視聴用クライアントを備え、
前記キャッシュサーバは、前記動画配信システムの動画データをキャッシュ可能であり、
前記解決装置は、取得した前記キャッシュサーバを、前記ポータル配信装置に出力し、
前記ポータル配信装置は、前記端末から動画配信要請を受信した場合、前記当該キャッシュサーバを前記端末に返し、
前記端末は当該キャッシュサーバから動画を受信する、
ことを特徴とするキャッシュサーバシステム。
【請求項１５】
請求項１１に記載のキャッシュサーバシステムであって、
コンテンツを配信するためのコンテンツ配信装置を更に備え、
前記端末は、前記コンテンツ配信装置にコンテンツ配信要請するためのクライアントプログラムを備え、
前記解決装置は、
前記端末が前記コンテンツ配信装置に配信要請してきた際、前記端末近傍の前記キャッシュサーバを解決できない場合、前記コンテンツ配信装置からコンテンツを返し、前記端末までのネットワーク上の経路上の前記中継装置を調査し、その結果を保持する、
ことを特徴とするキャッシュサーバシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワーク上のキャッシュサーバに関する。
【背景技術】
【０００２】
ネットワークを介して遠方のコンテンツサーバから大量のデータを返すと、ネットワーク使用量とエンドユーザが感じる遅延の両面に問題が生じる。そのため、エンドユーザ近傍にキャッシュサーバを置きそこからデータを返すキャッシュシステムが用いられる。このようなシステムでは1） エンドユーザ近傍のキャッシュサーバを発見する技術と2） エンドユーザをキャッシュサーバに誘導する技術が用いられる。
【０００３】
このようなシステムの一つに特許文献１がある。該システムではキャッシュシステムからエンドユーザにキャッシュサーバのリストを渡す。その後、エンドユーザの近傍キャッシュサーバ探索プログラムがリスト内のキャッシュサーバにpingを打って距離 （ここではネットワーク遅延を距離とする） を測り、最も近いものを選ぶことで上記1）、2）を解決する。該システムでは、エンドユーザが、専用の距離測定プログラムを持つこと必要になる。
【０００４】
既存のエンドユーザがそのまま流用可能な従来システムの代表は特許文献２及びそのファミリである。特許文献２はインターネットにつながる全エンドユーザを対象に、契約コンテンツプロバイダのデータを、エンドユーザ近傍の自社キャッシュサーバから返す超大規模システムである。そのため、近傍の自社キャッシュサーバの探索を実時間で処理できるように準最近傍キャッシュサーバを返す手法を用いている。具体的には特許文献２に書かれているように、1） についてインターネットプロバイダの主要DNSサーバごとに最近傍キャッシュサーバを割り当てたマップと、BGP （Border Gateway Protocol、ルータ間の経路制御メッセージ） を用いてインターネットをIP（Internet Protocol）アドレスゾーンに分割したマップを作り、これらを組み合わせてIPアドレスゾーンごとの準最近傍キャッシュサーバ割当マップを作る。また、2） についてDNS（Domain Name System）書き換え技術を用い、エンドユーザが用いる インターネットプロバイダのDNSサーバＸの再帰問い合わせ先を該システムのDNSサーバとし、該システムのDNSサーバはDNSサーバＸのアドレスを用いて1） のマップから最適なキャッシュサーバを返す。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許公報番号６６０６６４３，“Method of automatically selecting a mirror server for web−based client−host interaction”
【特許文献２】米国特許公報番号２００２／０１２９１３４，“Global load balancing across mirrored data centers”
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載のシステムではエンドユーザが専用の距離測定プログラムを動かす必要があり、不特定多数のエンドユーザを扱うようなB2C（Business to Consumer）サービスには適用できない。
【０００７】
特許文献２に記載の仕組みではDNSサーバごとにしか最適化できないため、エンドユーザが使うDNSサーバがエンドユーザの近くにある必要がある。しかし、エンドユーザが使うDNSサーバは必ずしも近くにある保証はないという問題がある。また、今日のDNSサーバは1台あたり毎秒数十万クエリの性能を有するため、少なくとも1台あたり数万ユーザを受け持っていると見積もれる。一方でVOD （Video On−Demand） など要求性能の高いサービスはサーバ1台あたり数千ユーザを受け持つため、DNSサーバごとにキャッシュサーバの割当てを決めると粒度が粗い。結果としてロードバランサを置き複数のキャッシュサーバを束ねるなど、余計なコストが発生するという問題がある。
【０００８】
上記問題のため、従来手法では不特定多数のエンドユーザを扱うようなB2Cサービスにおいてエンドユーザ近傍のキャッシュサーバを解決する技術に課題がある。
【０００９】
本発明の目的は、上記の課題を解決し、エンドユーザ近傍のキャッシュサーバを解決し、エンドユーザを近傍キャッシュサーバに誘導することが可能なキャッシュサーバ解決方法、装置、及びシステムを提供することにある。
【課題を解決するための手段】
【００１０】
上記の目的を達成するため、本発明においては、複数のキャッシュサーバの中から、端末にネットワーク上の距離の近いキャッシュサーバを通知する装置のキャッシュサーバ解決方法であって、装置は、ネットワーク上の複数の中継装置と、複数のキャッシュサーバそれぞれとのネットワーク上の距離を測定し、複数の中継装置各々に距離の近いキャッシュサーバを決定した結果を保持し、端末へのネットワーク上の経路上の中継装置を調査し、保持された端末に最も近い中継装置に近いキャッシュサーバを取得し、端末に最も近い中継装置に近いキャッシュサーバが保持されていない場合は、端末から次に近い中継装置に近い前記キャッシュサーバを探索して取得することを繰返すキャッシュサーバ解決方法を提供する。
【００１１】
また、上記の目的を達成するため、本発明においては、処理部と記憶部とを備え、複数のキャッシュサーバの中から、端末にネットワーク上の距離の近いキャッシュサーバを通知する解決装置であって、記憶部に、ネットワーク上の複数の中継装置と、複数のキャッシュサーバそれぞれとのネットワーク上の距離を測定し、複数の中継装置各々に距離の近いキャッシュサーバを決定した結果を保持し、処理部は、端末を識別する識別子を入力し、端末へのネットワーク上の経路上の中継装置を調査し、記憶部に記憶された端末に最も近い中継装置に近いキャッシュサーバを取得し、端末に最も近い中継装置に近いキャッシュサーバが記憶部に保持されていない場合は、端末から次に近い中継装置に近いキャッシュサーバを探索して取得することを再帰的に繰返す解決装置を提供する。
【００１２】
更に、上記の目的を達成するため、本発明においては、端末と、複数のキャッシュサーバと、端末にネットワーク上の距離の近いキャッシュサーバを通知する解決装置とを備えるキャッシュサーバシステムであって、解決装置は、ネットワーク上の複数の中継装置と、複数のキャッシュサーバそれぞれとのネットワーク上の距離を測定し、複数の中継装置各々に距離の近いキャッシュサーバを決定した結果を保持し、端末を識別する識別子を入力し、ネットワーク上の経路上の中継装置を調査し、保持した端末に最も近い中継装置に近いキャッシュサーバを取得し、端末に最も近い中継装置に近いキャッシュサーバが保持されていない場合は、端末から次に近い中継装置に近いキャッシュサーバを探索して取得することを順次繰返し、取得した前記キャッシュサーバを出力するキャッシュサーバシステムを提供する。
【発明の効果】
【００１３】
不特定多数のエンドユーザに対して、エンドユーザ近傍のキャッシュサーバを解決できるようになる。
【図面の簡単な説明】
【００１４】
【図１】実施例1のキャッシュサーバ解決システムの全体図である。
【図２】実施例１に係る、traceroute結果からルータ配列を作る例を示す図である。
【図３】実施例１に係る、ping結果から距離を求める例を示す図である。
【図４】実施例１に係る、リゾルブ マネージャ（Resolve Manager）とリゾルブ エージェント（Resolve Agent）の一構成を示す図である。
【図５】実施例１に係る、初期近傍キャッシュ表構築処理のシーケンス図である。
【図６】実施例１に係る、Resolve Managerの初期近傍キャッシュ表構築処理フローの一例を示す図である。
【図７】実施例１に係る、Resolve Agentの経路調査処理フローを示す図である。
【図８】実施例１に係る、Resolve Agentの距離測定処理フローの一例を示す図である。
【図９】実施例１に係る、リゾルブ処理のシーケンスの一例を示す図である。
【図１０】実施例１に係る、リゾルブ処理で最近傍キャッシュが見つからなかった場合のシーケンスの一例を示す図である。
【図１１】実施例１に係る、Resolve Managerの近傍キャッシュ探索処理フローの一例を示す図である。
【図１２】実施例１に係る、キャッシュ追加処理のシーケンスの一例を示す図である。
【図１３】実施例１に係る、キャッシュ削除処理のシーケンスを示す図である。
【図１４】実施例１に係る、Resolve Managerのキャッシュ追加処理フローを示す図である。
【図１５】実施例１に係る、Resolve Managerのキャッシュ削除処理フローを示す図である。
【図１６】実施例１に係る、Resolve Managerの全体フローの一例を示す図である。
【図１７】実施例１に係る、Resolve Agentの全体フローの一例を示す図である。
【図１８】実施例２に係る、キャッシュサーバ解決システムの全体図である。
【図１９】実施例２に係る、Resolve ManagerとHTTP Data （Origin） の構成を示す図である。
【図２０】実施例２に係る、リゾルブ処理のシーケンスの一例を示す図である。
【図２１】実施例２に係る、Resolve Managerのリゾルブ処理フローを示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の種々の実施例を図面に従い説明する。
【実施例１】
【００１６】
第一の実施例として、エンドユーザ近傍キャッシュサーバ解決システムを用いたVODシステムについて説明する。
【００１７】
図１に本実施例のVODシステムの全体構成の一例を示す。
データセンタ（Data Center：DC）１０１１にはResolve Manager１０１２とVOD Portal１０１３、VOD DRM（Digital Rights Management）１０１４、VOD Data（Origin）１０１５がある。Resolve Manager１０１２は本実施例のエンドユーザ近傍キャッシュサーバ解決システムのメインコンポーネントである。VOD Portal １０１３、VOD DRM１０１４、VOD Data（Origin）１０１５はそれぞれ、VODシステムのコンポーネントである。VOD Portal １０１３は番組表の表示などコンテンツ視聴の前にユーザが利用するポータルサイトを表示するコンポーネントである。VOD DRM１０１４は暗号化されたコンテンツを復号するための鍵を配信するコンポーネントである。VOD Data（Origin）１０１５は実際にコンテンツを配信するコンポーネントである。
【００１８】
DC１０１１からネットワーク上の距離が離れた所にキャッシュサーバ１０２１、１０３１、１０４１を置く。キャッシュサーバ１０２１、１０３１、１０４１にはResolve Agent１０２２、１０３２、１０４２とVOD Data（Cache）１０２３、１０３３、１０４３がある。Resolve Agent１０２２、１０３２、１０４２は本実施例のエンドユーザ近傍キャッシュサーバ解決システムのコンポーネントであり、Resolve Manager１０１２と連携して動作する。VOD Data（Cache）１０２３、１０３３、１０４３はVOD Data（Origin）１０１５と同等の機能およびコンテンツを持ち、実際にコンテンツを配信するコンポーネントである。
【００１９】
なお、本実施例ではネットワーク上の距離を測る指針としてRTT（Round Trip Time、往復遅延時間）を用いる。インターネットプロトコルの下では、RTTはICMP（Internet Control Message Protocol）で計測できる。また、他のプロトコルであってもRTTを計測する手段があれば本実施例を適用可能である。
【００２０】
DC１０１１とキャッシュサーバ１０２１、１０３１、１０４１はネットワークで結ばれる。本実施例ではインターネットを想定している。インターネットプロトコル（IP）の下では、ネットワークは複数の中継装置であるルータ１０５１〜１０５８によって構成される。なお、イントラネットやその他閉域網（Closed IP Network）であってもインターネットプロトコル（IP）のネットワークであれば本実施例と同様のキャッシュシステムを構成できる。また、他のプロトコルのネットワークであっても、ルータに準ずる中継装置を用いるネットワークであれば本実施例と同様のキャッシュシステムを構成できる。
【００２１】
DC１０１１およびキャッシュサーバ１０２１、１０３１、１０４１とネットワークで結ばれた先に例えばテレビ（ＴＶ）、パーソナルコンピュータ（ＰＣ）などの情報処理端末１０６１、１０６２、１０６３がある。この情報処理端末１０６１，１０６２，１０６３は、本VODシステムの視聴用クライアントが入っている。なお、VODシステムに関する本実施例においては、視聴用クライアントが動作すれば、情報処理端末１０６１、１０６２、１０６３は、ＴＶ、ＰＣやスマートフォンなどハードウエアは問わない。便宜上、図面上では”ＴＶ”表示とする場合があるが、限定されるものではない。
【００２２】
図４に図１のResolve Manager１０１２とResolve Agent１０２２、１０３２、１０４２の詳細構成の一例を示す。
【００２３】
図４上段に示されたResolve Manager１０１２は、コンピュータ構成を備え、処理部である中央処理部（Central Processing Unit：CPU）４０１１、記憶部である主記憶４０１２と二次記憶４０１３を含む。主記憶４０１２の上にはマネージャモジュール４０２１と近傍キャッシュ表４０２２とキャッシュサーバ一覧表４０２３がある。マネージャモジュール４０２１は、Resolve Managerをコントロールするプログラムの実行時イメージである。マネージャモジュール４０１２の動作の詳細は図１６等を用いて後述する。近傍キャッシュ表４０２２はネットワーク上のルータごとの最近傍キャッシュサーバと2番目に近いキャッシュサーバを保持する表である。
【００２４】
図４の中段に示した近傍キャッシュ表４０２２はネットワーク上のルータを識別するルータＩＰアドレス列４０４１、アクセス頻度を表すCounter列４０４２、最近傍キャッシュを保持するキャッシュサーバ１列４０４３とそのルータからの距離を表す距離１列４０４４、さらに最近傍キャッシュサーバがメンテナンスなどで一次停止中である場合を表す停止フラグ４０４５、同じく２番目に近いキャッシュサーバに関する３列４０４６、４０４７、４０４８がある。なお、近傍キャッシュ表４０２２の主キーはルータIPアドレス列４０４１であり、ルータIPアドレス列を用いて特定の１行を限定する事ができる。
【００２５】
また、図４中段のキャッシュサーバ一覧表４０２３はネットワーク上の使用可能なキャッシュサーバの一覧である。キャッシュサーバ一覧表４０２３には通し番号であるID列４０５１と、キャッシュサーバを識別するキャッシュサーバＩＰアドレス列４０５２と、Resolve Agentを識別するResolve Agent IPアドレス列４０５３がある。なお、キャッシュサーバ一覧表４０２３にはID＝０番にオリジナルサーバであるVOD Data（Origin）１０１５のエントリも含む。VOD Data（Origin）には対応するResolve Agentがないため、Resolve Agent IPアドレス列４０５３は空欄とする。また、キャッシュサーバ一覧表４０２３の主キーはID列４０５１であり、ID列を用いて特定の１行を限定する事ができる。また、キャッシュサーバIPアドレス列４０５２とResolve Agent IPアドレス列４０５３もユニーク列であり、それぞれの値を用いて特定の１行を限定する事ができる。二次記憶４０１３にはマネージャモジュールプログラム４０３１が含まれる。Resolve Manager動作時にはマネージャモジュールプログラム４０３１を主記憶４０１２上に展開し、マネージャモジュール４０２１として実行する。
【００２６】
図４下段のResolve Agent１０２２は、コンピュータ構成を備え、処理部であるCPU４０６１、記憶部である主記憶４０６２と二次記憶４０６３を含む。主記憶４０６２にはエージェントモジュール４０７１がある。エージェントモジュール４０７１はResolve Agentをコントロールするプログラムの実行時イメージである。エージェントモジュールの動作の詳細は図１７等を用いて後述する。二次記憶４０６３にはエージェントモジュールプログラム４０８１が含まれる。Resolve Agent動作時にはエージェントモジュールプログラム４０８１を主記憶４０６２上に展開し、エージェントモジュール４０７１として実行する。
【００２７】
続いて、エンドユーザ近傍キャッシュサーバ解決システムを用いた本実施例のVODシステムの動作詳細を示す。具体的にはシステム開始時の初期近傍キャッシュ表構築処理と、定常状態時の動作である情報処理端末がコンテンツを視聴する際の処理、システムに新たなキャッシュサーバを追加する際の処理と削除する際の処理である。
【００２８】
図５にシステム開始時の初期近傍キャッシュ表構築処理のシーケンスを示す。本処理はResolve Manager１０１２とResolve Agent１０２２、１０３２、１０４２の間で執り行われる。
まずResolve Manager１０１２が全Resolve Agent１０２２、１０３２、１０４２に対し、Resolve Manager１０１２および全Resolve Agent１０２２、１０３２、１０４２との間の経路調査指示５００１を出す。この結果、Resolve Manager１０１２−Resolve Agent１０２２間、Resolve Manager１０１２−Resolve Agent１０３２間、Resolve Manager１０１２−Resolve Agent１０４２間、Resolve Agent１０２２−Resolve Agent１０３２間、Resolve Agent１０２２−Resolve Agent１０４２間、Resolve Agent１０３２−Resolve Agent１０４２間の計６本の経路上のルータが明らかになる。
【００２９】
続いてこれらのルータを重複排除などして１つのリストにする（５００２）。続いてリストの先頭のルータを取りだしルータＡとし（５００３）、全Resolve Agent１０２２、１０３２、１０４２にルータＡとの距離測定指示５００４を出す。その結果を集計し、距離の近い上位２件のルータを近傍キャッシュ表４０２２に追加する。なお、ここではカウンター列４０４２の値は０、停止フラグ１（４０４５）および２（４０４８）はオフとする。以後、リストの終端まで処理を繰り返し（５００６、５００７、．．．）、初期近傍キャッシュ表を構築する。以下、本処理に関わる各モジュールの処理フローを説明する。
【００３０】
図６にシステム開始時の初期近傍キャッシュ表構築処理のうち、Resolve Manager１０１２の処理部分のフローチャートを示す。Resolve Manager１０１２は初期近傍キャッシュ表構築処理開始（６００１）後、全Resolve Agent１０２２、１０３２、１０４２に経路調査指示を出す。詳細には、以下の疑似コードで示す手順で、全Resolve Agent１０２２、１０３２、１０４２に指示を出す。
【００３１】
n = rows_of（キャッシュサーバ一覧表）
for a in {1, 2, …, n - 1}
for b in {0, 1, …, n - 1}
if b ＜ a
router_array．add（ResolveAgent${a}．経路調査
（ResolveAgent${b}））
fi
done
done
続いて全Resolve Agent１０２２、１０３２、１０４２からの経路調査の結果をルータの配列として受け取り、重複排除したルータの配列を作る（６００３）。続いてルータ配列の先頭を変数ルータＡにコピー（６００４）し、ルータ配列の先頭要素を削除（６００５）し、全Resolve Agent１０２２、１０３２、１０４２にルータＡとの間の距離測定指示を出す（６００６）。続いて全Resolve Agent１０２２、１０３２、１０４２からの距離調査の結果を受け取り、距離の近い上位２件を選び、近傍キャッシュ表にレコード登録（６００７）する。ここではCount列４０４２の値は０、二つの停止フラグ４０４５、４０４８の値はオフとする。続いてルータ配列に続きがあるか否か判断（６００８）し、続きがあれば手順６００４に戻る。続きがなければ処理を終える（６００９）。
【００３２】
図７にシステム開始時の初期近傍キャッシュ表構築処理のうち、Resolve Agent１０２２、１０３２、１０４２の経路調査処理部分のフローチャートを示す。Resolve Agent１０２２、１０３２、１０４２はルータＸとの経路調査処理開始（７００１）後、ルータＸにtracerouteを発行（７００２）して経路を測定し、その結果をResolve Manager１０１２に返し（７００３）、処理を終了（７００４）する。
【００３３】
図２に、手順７００３の具体例を示す。図２ではaaa．example．com [a1．a2．a3．a4]からzzz．example．com [z1．z2．z3．z4]にtracerouteを発行した例である。tracerouteの結果、４つのルータを経由してzzz．example．comに到着する事が判る。この結果から、ルータ配列として、[b1．b2．b3．b4][c1．c2．c3．c4][d1．d2．d3．d4][e1．e2．e3．e4]が得られる。
【００３４】
なお、ここでは経路を取得する手段として広く用いられているtracerouteプログラムを用いたが、同様の機能を持った別のプログラムを用いてもいい。
【００３５】
図８にシステム開始時の初期近傍キャッシュ表構築処理のうち、Resolve Agent１０２２、１０３２、１０４２の距離測定処理部分のフローチャートを示す。Resolve Agent１０２２、１０３２、１０４２はルータＸとの距離測定処理開始（８００１）後、ルータＸにpingを発行（８００２）して経路を測定し、その結果をResolve Manager１０１２に返し（８００３）、処理を終了（８００４）する。
【００３６】
図３に、手順８００３の具体例を示す。図３ではaaa．example．com [a1．a2．a3．a4]からzzz．example．com [z1．z2．z3．z4]にpingを発行した例である。pingの結果、RTTの４回平均が１１ｍｓであることが判る。この結果から、距離として１１msが得られる。なお、ここでは距離を測定する手段として広く用いられているpingプログラムを用いたが、同様の機能を持った別のプログラムを用いてもいい。
【００３７】
なお、ここではキャッシュサーバ間の経路上のルータを発見し登録したが、他にも既知のルータを手動登録することが考えられる。特にIＸ（Internet Exchange）など複数のコネクションを集約する個所にあるルータを登録しておく事が考えられる。ここまでの処理で、システム開始時に初期近傍キャッシュ表が構築できる。
【００３８】
続いて図９に定常状態時の動作である情報処理端末がコンテンツを視聴する際の処理シーケンスを示す。本処理では、まず情報処理端末１０６１がVOD Portal１０１３に接続し番組表などを閲覧（９００１）する。その裏で、VOD Portal１０１３はResolve Manager１０１２から近傍キャッシュアドレスを取得する。ここではResolve Manager１０１２が情報処理端末１０６）にtracerouteし、情報処理端末１０６１の近傍ルータを調査（９００３）し、近傍キャッシュ表を用いて近傍キャッシュサーバのアドレスを返す。その後、情報処理端末１０６１が視聴する番組を決めた際に番組のメタデータ要求（９００４）がある。VOD Portal１０１３は番組のメタデータとして、コンテンツのURL（Uniform Resource Locator）とコンテンツに対するDRMキーのURLを返す。このとき、コンテンツのURLとして手順９００２で取得した近傍キャッシュサーバ内のURLを返す。その後、番組のメタデータを受けた情報処理端末１０６１が適当なキャッシュにコンテンツを要求（９００５）し、またVOD DRM１０１４にDRMキーを要求する。
【００３９】
なお、手順９００２において、常に情報処理端末１０６１近傍のキャッシュサーバを返す事ができるわけではない。そのため、手順９００２において情報処理端末１０６１近傍のキャッシュサーバを返す事が出来なかった場合は、図１０に示す処理シーケンスに基づき代替キャッシュサーバを返し、さらに情報処理端末１０６１の近傍キャッシュを探索しておく。本処理では、まず情報処理端末１０６１がVOD Portal１０１３に接続し番組表などを閲覧（９００１）する。その裏で、VOD Portal１０１３はResolve Manager１０１２から近傍キャッシュアドレスを取得する。ここではResolve Manager１０１２が情報処理端末１０６１にtracerouteし、情報処理端末１０６１の近傍ルータを調査（９００３）し、近傍キャッシュ表を用いて近傍キャッシュサーバを探索するが見つからず、２番目に近いルータの最近傍キャッシュサーバを返す（１０００１）。その後、情報処理端末１０６１が番組のメタデータ要求（９００４）し、適当なキャッシュにコンテンツを要求（９００５）し、またVOD DRM１０１４にDRMキーを要求するのだが、その裏でResolve Manager１０１２は全Resolve Agent１０２２、１０３２、１０４２に情報処理端末１０６１最近傍のルータとの距離測定指示（１０００２）を出し、近傍キャッシュサーバを決定してレコードを作成（１０００３）する。この処理の結果、情報処理端末１０６１が再び番組を見る時や、他の近くにある情報処理端末１０６２、１０６３が番組を見るときに、最近傍のキャッシュサーバを使えるようになる。
【００４０】
以下、本処理に関わる各モジュールの処理フローを説明する。
図１１に定常状態時の動作である情報処理端末がコンテンツを視聴する際の処理のうち、Resolve Manager１０１２の処理部分のフローチャートを示す。Resolve Manager１０１２は情報処理端末の近傍キャッシュ探索処理開始（１１００１）後、情報処理端末１０６１にtracerouteしルータ配列を取得（１１００２）する。続いて変数ルータＡにルータ配列の末尾をコピー（１１００３）する。ルータ配列の末尾とは、すなわち情報処理端末１０６１に最も近いルータである。
【００４１】
続いて近傍キャッシュ表からルータＡのレコードを探索（１１００４）し、見つかったか否か判断（１１００５）する。見つかった場合は同レコード内の停止フラグ１がオフか否か判断（１１００６）する。オフであった場合、すなわちキャッシュサーバ１が稼働中である場合はキャッシュサーバ１のURLを返す（１１００７）。停止フラグ１がオンであった場合は、続いて停止フラグ２の判断（１１００８）を行う。停止フラグ２がオフであればキャッシュサーバ２のURLを返す（１１００９）。停止フラグ２もオンであれば、判断１１００５で見つからなかった場合と同じく、ルータ配列に続きがあるか否か判断（１１０１０）し、続きがあればルータＡを本処理内で用いる一時領域である探索配列に追加（１１０１２）し、ルータ配列の末尾を削除（１１０１３）し、手順１１００３に戻る。判断１１０１０でルータ配列に続きがない場合はVOD Data（Origin）１０１５のURLを返す（１１０１０）。ここまでの処理で、現時点で最善のキャッシュサーバ（オリジンサーバを含む）をVOD Portal１０１３に返す事ができる。続いて図１０で説明した最近傍ルータの近傍キャッシュサーバ探索処理を行う。まず一時領域である探索配列に要素があるか否か判断（１１０１４）し、要素がない場合はそのまま処理を終了（１１０１９）する。要素があった場合は変数ルータＡに探索配列の先頭をコピー（１１０１５）し、探索配列の先頭を削除（１１０１６）し、全Resolve Agent１０２２、１０３２、１０４２にルータＡとの距離測定指示（１１０１７）を出す。続いて全Resolve Agent１０２２、１０３２、１０４２からの距離調査の結果を受け取り、距離の近い上位２件を選び、近傍キャッシュ表にレコード登録（１１０１８）し、手順１１０１４に戻る。
【００４２】
なお、ルータによってはICMPメッセージを返さず、どの経路を通ったか特定できない場合がある。その場合には、そのようなルータはルータ配列から除いて上記処理を実行する。また、経路上のすべてのルータがＩＣＭＰメッセージを返さなかった場合は、情報処理端末に最も近いキャッシュサーバを探索し、返す。
【００４３】
ここまでの処理で、定常状態時の動作である情報処理端末がコンテンツを視聴する際の近傍キャッシュサーバを解決できる。
【００４４】
続いて図１２にシステムに新たなキャッシュサーバを追加する際の処理、同じく図１３システムからキャッシュサーバを削除する際の処理シーケンスを示す。
【００４５】
システムに新たなキャッシュサーバを追加する際の処理はResolve Manager１０１２と新たに追加されるキャッシュサーバ１２００１のResolve Agent１２００２の間で執り行われる。まずResolve Agent１２００２がResolve Manager１０１２に対しキャッシュ追加処理指示（１２００４）を出す。続いてResolve Manager１０１２はキャッシュサーバ一覧表４０２３にキャッシュサーバ１２００１に関するレコードを追加（１２００５）する。続いて近傍キャッシュ表４０２２の１行目のルータを取りだしルータＡとし（１２００６）、Resolve Agent１２００２にルータＡとの距離測定指示（１２００７）を出し、ここではその結果が近傍キャッシュ表４０２２のレコード中の距離よりも近いためレコードを更新する（１２００８）。続いて近傍キャッシュ表４０２２の２行目のルータを取りだしルータＡとし（１２００９）、Resolve Agent１２００２にルータＡとの距離測定指示（１２０１０）を出し、ここではその結果が近傍キャッシュ表４０２２のレコード中の距離よりも遠いためレコードを更新しない。以後、近傍キャッシュ表４０２２の３行目（１２０１１）から近傍キャッシュ表の最後まで同じ処理を続ける。
【００４６】
一方でシステムからキャッシュサーバを削除する際の処理はResolve Manager１０１２と全てのResolve Agent１０２２、１０３２、１０４２、１２００２の間で執り行われる。まずこれから削除されるキャッシュサーバ１２００１のResolve Agent１２００２がResolve Manager１０１２に対しキャッシュ削除処理指示（１３００１）を出す。続いてResolve Manager１０１２はキャッシュサーバ一覧表４０２３からこれから削除されるキャッシュサーバ１２００１に関するレコードを削除（１３００２）する。続いて近傍キャッシュ表４０２２のうちこれから削除されるキャッシュサーバ１２００１に関する複数の行のうちの１行目のルータを取りだしルータＡとし（１３００３）、これから削除されるキャッシュサーバ１２００１のResolve Agent１０２２、１０３２、１０４２にルータＡとの距離測定指示（１３００４）を出し、その結果を用いてレコードを更新する（１２００８）。以後、同じ処理をこれから削除されるキャッシュサーバ１２００１に関する複数の行のうちの２行目（１３００６〜１３００８）、３行目（１３００９）から近傍キャッシュ表の最後まで同じ処理を続ける。
【００４７】
図１４にシステムに新たなキャッシュサーバを追加する際の処理のうち、Resolve Manager１０１２の処理部分のフローチャートを示す。Resolve Manager１０１２はキャッシュサーバＣの追加処理開始（１４００１）後、まずキャッシュサーバ一覧表４０２３にキャッシュサーバＣに関するレコードを追加（１４００２）する。続いて近傍キャッシュ表４０２２から全レコードのルータＩＰアドレス列４０４１を取りだしルータ配列を作る（１４００３）。続いて変数ルータＡにルータ配列の先頭をコピー（１４００４）し、ルータ配列の先頭を削除（１４００５）し、キャッシュサーバＣのResolve AgentにルータＡとの距離測定指示（１４００６）を出し、結果を受け取る。その距離と近傍キャッシュ表４０２２のルータＡに関する行のうちキャッシュサーバ１よりも近いか否か判断（１４００７）し、近い場合は近傍キャッシュ表４０２２のルータＡに関する行のキャッシュサーバ２および距離２を現在のキャッシュサーバ１および距離１の値で更新（１４００８）し、続いて近傍キャッシュ表４０２２のルータＡに関する行のキャッシュサーバ１および距離１をキャッシュサーバＣのIPアドレスと距離で更新する（１４００９）。判断１４００７において遠い場合は続いてキャッシュサーバＣとルータＡの距離と近傍キャッシュ表４０２２のルータＡに関する行のうちキャッシュサーバ２よりも近いか否か判断（１４０１０）し、近い場合は近傍キャッシュ表４０２２のルータＡに関する行のキャッシュサーバ２および距離２をキャッシュサーバ１および距離１をキャッシュサーバＣのIPアドレスと距離で更新する（１４０１１）。続いてルータ配列に続きがあるか否か判断（１４０１２）し、あれば手順１４００４に戻り、なければ処理を終える（１４０１３）。
【００４８】
図１５にシステムからキャッシュサーバを削除する際の処理のうち、Resolve Manager１０１２の処理部分のフローチャートを示す。Resolve Manager１０１２はキャッシュサーバＣの削除処理開始（１５００１）後、まずキャッシュサーバ一覧表４０２３からキャッシュサーバＣに関するレコードを削除（１５００２）する。続いて近傍キャッシュ表４０２２からキャッシュＣを含む全レコードのルータＩＰアドレス列４０４１を取りだしルータ配列を作る（１５００３）。続いて変数ルータＡにルータ配列の先頭をコピー（１５００４）し、ルータ配列の先頭を削除（１５００５）し、キャッシュサーバＣ以外の全Resolve Agent１０２２、１０３２、１０４２にルータＡとの距離測定指示（１５００６）を出し、結果を受け取る。その結果から距離の近い上位２件を選び、近傍キャッシュ表４０２２のルータＡに関するレコードを更新（１５００７）する。続いてルータ配列に続きがあるか判断（１５００８）し、あれば手順１５００４に戻り、なければ処理を終了（１５００９）する。
ここまでの処理で、システムに新たなキャッシュサーバを追加および削除できる。
【００４９】
最後に、これまでに説明した個々の処理手順を統合して、Resolve Managerの動作を図１６に、またResolve Agentの動作を図１７に示す。
Resolve Managerは起動（１６００１）後、キャッシュサーバ一覧表にキャッシュサーバを登録（１６００２）する。これは初期値として与えるキャッシュサーバの一覧であり、ここでは人手で入力する。他にも設定ファイルに書いたりResolve Agentのキャッシュ追加処理指示を受けたりといった方法が考えられる。続いてマネージャモジュールを起動（１６００３）し、図６の初期近傍キャッシュ表構築処理を実行（１６００４）する。これ以降は処理依頼を待ちうける。近傍キャッシュの問い合わせがあった場合は（１６００５）、図１１の情報処理端末の近傍キャッシュ探索処理を実行（１６００６）する。また、キャッシュサーバ追加処理依頼があった場合は（１６００７）、図１４のキャッシュＣの追加処理を実行（１６００８）する。また、キャッシュサーバ削除処理依頼があった場合は（１６００９）、図１５のキャッシュＣの削除処理を実行（１６０１０）する。またキャッシュサーバのメンテナンス報告があった場合は（１６０１１）、それがメンテナンス中報告であれば近傍キャッシュ表（４０２２）のうち、報告のあったキャッシュサーバのＩＰアドレスをキャッシュサーバ１列（４０４３）に含む行は停止フラグ１（４０４５）を、キャッシュサーバ２列（４０４６）に含む行は停止フラグ２（４０４８）をオンに操作（１６０１２）する。同じくメンテナンス終了報告であればオフにする。
【００５０】
Resolve Agentは起動（１７００１）後、エージェントモジュールを起動（１７００２）し、Resolve Managerにキャッシュ追加処理を指示（１７００３）する。これ以降は処理の依頼を待ちうける。経路調査依頼があった場合は（１７００４）図７のルータＸとの経路調査処理を実行（１７００５）し、距離調査依頼があった場合は（１７００６）図８のルータＸとの距離測定処理を実行（１７００７）する。この待ち受け中に管理者から明示的に終了指示があった場合（１７００８）はResolve Managerにキャッシュ削除処理を指示（１７００９）し、Resolve Agentを終了（１７０１０）する。
【実施例２】
【００５１】
ここでは本実施例のエンドユーザ近傍キャッシュ解決システムを用いたWEBコンテンツ配信システムについて説明する。WEBコンテンツ配信システムではVODの場合と異なり、エンドユーザからのコンテンツ要求に対して即座にコンテンツを返す必要がある。そのためtracerouteなど時間がかかる処理を行う事ができないと言う特徴がある。そこで本実施例ではこの特徴に合わせてResolve Managerの構成や動作に変更を加えている。
【００５２】
図１８に本実施例の全体構成を示す。
DC１０１１には変更されたResolve Manager１８００１とWEBコンテンツ配信コンポーネントであるコンテンツ配信装置としてのHTTP Data（Origin）１８００２がある。
【００５３】
キャッシュサーバ１０２１、１０３１、１０４１にはResolve Agent１０２２、１０３２、１０４２とHTTP Data（Cache）１８００３、１８００４、１８００５がある。Resolve Agent１０２２、１０３２、１０４２は実施例１と同じものを用いる。またHTTP Data（Cache）１８００３、１８００４、１８００５はＨTTP Data（Origin）１８００２と同等の機能およびコンテンツを持ち、実際にコンテンツを配信するコンポーネントである。ただし、コンテンツのうち、ＡタグやIMGタグなどリンクを持つタグのURLが絶対パスを持っている場合は、各HTTP Data（Cache）のURLに置き換えられている。
また、本実施例でＰＣ１８００６、１８００７、１８００８がクライアントであり、クライアントプログラムには一般的なWEBブラウザを想定している。なおWEBブラウザが動作すれば、ＰＣやスマートフォンなど情報処理端末のハードウェアは問わない。
【００５４】
図１９に変更されたResolve Manager１８００１とHTTP Data（Origin）１８００２の詳細構成を示す。
Resolve Manager１８００１はCPU１９０１１、主記憶１９０１２、二次記憶１９０１３を含む。主記憶１９０１２の上にはマネージャモジュール１９０２１と近傍キャッシュ表１９０２２とキャッシュサーバ一覧表１９０２３とtraceroute表１９０２４を含む。このうち、マネージャモジュール１９０２１は実施例１のマネージャモジュール４０２１を変更したものである。また近傍キャッシュ表１９０２２とキャッシュサーバ一覧表１９０２３はそれぞれ実施例１の近傍キャッシュ表４０２２とキャッシュサーバ一覧表４０２３と同じものである。traceroute表１９０２４はＰＣアドレス列１９０４１とルータ配列列１９０４２を持ち、あるＰＣまでの経路上のルータを保存しておく。
【００５５】
なお、traceroute表１９０２４の主キーはＰＣアドレス列１９０４１であり、ＰＣアドレス列を用いて特定の１行を限定する事ができる。また二次記憶１９０１３にはマネージャモジュールプログラム１９０３１が含まれる。Resolve Manager１８００１動作時にはマネージャモジュールプログラム１９０３１を主記憶１９０１２上に展開し、マネージャモジュール１９０２１として実行する。
【００５６】
HTTP Data（Origin）１８００２はCPU１９０５、主記憶１９０５、二次記憶１９０５３を含む。主記憶１９０５２の上にはHTTPサーバ１９０６１とリライトモジュール１９０６２を含む。このうち、HTTPサーバ１９０６１は汎用のHTTPサーバ１９０６１を用いる。またリライトモジュールはHTTPサーバ１９０６１とＰＣ１８００６、１８００７、１８００８の間に入り、コンテンツ中のＡタグやIMGタグなどリンクを持つタグのURLを書き換える機能を持つ。二次記憶１９０５３にはHTTPサーバプログラム１９０７１とリライトモジュールプログラム１９０７２が含まれる。HTTP Data（Origin）１８００２動作時にはHTTPサーバプログラム１９０７１とリライトモジュールプログラム１９０７２を主記憶１９０５２上に展開し、HTTPサーバ１９０６１とリライトモジュール１９０６２として実行する。
【００５７】
続いて、エンドユーザ近傍キャッシュ解決システムを用いたWEBコンテンツ配信システムの動作詳細を示す。ただし、システム開始時の初期近傍キャッシュ表構築処理と、システムに新たなキャッシュサーバを追加する際の処理と削除する際の処理は実施例１と同様であるため、ここでは定常状態時の動作であるＰＣがコンテンツを取得する際の処理を示す。
【００５８】
図２０に定常状態時の動作であるＰＣがコンテンツを取得する際の処理シーケンスを示す。本処理では、まずＰＣ１８００６がHTTP Data（Origin）１８００２に接続しトップページを要求（２０００１）する。続いてHTTP Data（Origin）１８００２はResolve Manager１８００１から近傍キャッシュアドレスを取得（２０００２）するが、ここではResolve Manager１８００１はtraceroute表１９０２４を探索してもＰＣ１８００６のレコードが見つからなかった（２０００３）ためHTTP Data（Origin）１８００２のアドレスを返す（２０００４）このため、HTTP Data（Origin）１８００２はＰＣ１８００６にコンテンツ中のアドレスの書き換えをしないでコンテンツを返す（２０００５）。その裏で、Resolve Manager１８００１はＰＣ１８００６にtracerouteし、結果をtraceroute表１９０２４に登録（２０００６）しておく。続いてＰＣ１８００６が続きのページを要求（２０００７）すると、再びHTTP Data（Origin）１８００２はResolve Manager１８００１から近傍キャッシュアドレスを取得（２０００８）するが、この時は手順２０００６でtraceroute結果をtraceroute表１９０２４に登録してあるため、traceroute表を探索するとレコードが見つかる（２０００９）。そのためそのレコードを用いて近傍キャッシュサーバを解決し、近傍キャッシュサーバのアドレスを返す（２００１０）。続いてHTTP Data（Origin）１８００２は近傍キャッシュサーバのアドレスを用いてコンテンツ中のアドレスを書き換えてコンテンツを返す（２００１１）。これ以降のＰＣ１８００６からのコンテンツ要求は、ここではキャッシュサーバ１（１０２１）上のHTTP Data（Cache）１（１８００３）に向かう（２００１２）。
【００５９】
図２１に定常状態時の動作であるＰＣがコンテンツを取得する際の処理シーケンスのうち、Resolve Manager１８００１の処理部分であるＰＣの近傍キャッシュ探索処理のフローチャートを示す。本実施例では、本処理で図１６のResolve Manager全体処理のうち情報処理端末の近傍キャッシュ探索処理（１６００６）を置き変える。Resolve Manager１８００１はＰＣの近傍キャッシュ探索処理開始（２１００１）後、まずtraceroute表にＰＣのエントリがあるか否か判断（２１００２）する。判断の結果エントリがなかった場合はHTTP Data（Origin）１８００２のURLを返し（２１００３）、その後ＰＣ１８００６にtracerouteして得られたルータ配列からレコードを作成してtraceroute表（１９０２４）に追加（２１００４）し、処理を終える（２１００５）。一方判断２１００２の結果エントリがあった場合はtraceroute表のエントリからルータ配列を取得する（２１００６）。これ以降の処理は図１１の処理１１００３〜１１０１８と等しいため説明を省く。
ここまでの処理で、定常状態時の動作であるＰＣがコンテンツを取得する際の近傍キャッシュサーバを解決できる。
【００６０】
なお、Resolve Manager１８００１が用いる近傍キャッシュ表４０２２、キャッシュサーバ一覧表１８０２２、traceroute表１９０２４のうち、近傍キャッシュ表４０２２とtraceroute表１９０２４はレコード数が際限なく大きくなる可能性がある。これに対して、レコード数に上限を持たせて、重要度の低いレコードを削除する方法が有効である。重要度の低いレコードは、近傍キャッシュ表４０２２の場合はアクセス回数を表すcounter列４０４２の値が小さいものである。そこで、この場合はLRU（Least Recently Used）アルゴリズムに基づきcouter列４０４２の値が小さい順に削除する。また、traceroute表１９０２４のようにアクセス回数が判らない表であれば、FIFO（First In First Out）アルゴリズムに基づき、古い行すなわち表の上の方にある行は重要度が低いと判断する。
【００６１】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したのであり、必ずしも説明の全ての構成を備えるものに限定されものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００６２】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウエアで実現してもよい。また、上記の各構成、機能等は、それぞれの機能を実現するプログラムを実行することによりソフトウェアで実現する場合を例示して説明したが、各機能を実現するプログラム、テーブル、ファイル等の情報はメモリのみならず、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体におくことができるし、必要に応じてネットワーク等を介してダウンロード、インストールすることも可能である。
【００６３】
以上説明した本発明の開示の内容には、特許請求の範囲の各項に記載の発明以外に種々の発明が含まれている。その一例を示すと下記のとおりである。
例１：ある装置Ａを識別するＩＤを入力し、同じ機能を持った別のいくつかの装置の中から装置Ａにネットワーク上の距離の近い別の装置Ｂを識別するＩＤを返す装置解決方法であって、
予めネットワーク上の幾つかの中継装置と、同じ機能を持った別の幾つかの装置それぞれとの距離を測定し、ネットワーク上の幾つかの中継装置にネットワーク上の距離の近い別の装置を決定してリストとして保持しておき、
装置Ａを識別するＩＤを入力したら装置Ａまでのネットワーク上の経路上の中継装置を調査し、中継装置の配列とし、
装置Ａに最も近い中継装置を前記予め保持したリストから探索し、装置Ａに最も近い中継装置に最も近い別の装置Ｂを取得し、
もし装置Ａに最も近い中継装置が前記予め保持したリストに含まれない場合は、装置Ａから二番目に近い中継装置を用いて前記予め保持したリストから探索し、装置Ａから二番目に近い中継装置に最も近い別の装置Ｂを取得し、
同様に再帰的に装置Ａにｎ番目に近い中継装置前記予め保持したリストに含まれない場合は、装置Ａからｎ＋１番目に近い中継装置を用いて前記予め保持したリストから探索し、装置Ａからｎ＋１番目に近い中継装置に最も近い別の装置Ｂを取得し、装置Ｂを返す、
装置解決方法。
【符号の説明】
【００６４】
１０１１  データセンタ（DC）
１０１２、１８００１  リゾルブマネージャ
１０１３  VOD Portal
１０１４  VOD DRM
１０１５  VOD Data（Origin）
１０２１、１０３１、１０４１  キャッシュ サーバ
１０２２、１０３２、１０４２  リゾルブ エージェント
１０２３、１０３３、１０４３  VOD  Data（Cache）
１０５１、１０５２、１０５３、１０５４、１０５５、１０５６、１０５８、１０５９  ルータ
１０６１、１０６２、１０６３  情報処理端末
４０１１、４０６１、１９０１１、１９０５１  CPU
４０１２、４０６２、１９０１２、１９０５２  主記憶
４０１３、４０６３、１９０１３、１９０５３  二次記憶
４０２１、１９０２１  マネージャモジュール
４０２２、１９０２２  近傍キャッシュ表
４０２３、１９０２３  キャッシュサーバ一覧表
４０３１、１９０３１  マネージャモジュールプログラム
４０４１  ルータIP
４０４２  カウンタ
４０４３、４０４６  キャッシュサーバ
４０４４、４０４７  距離
４０４５、４０４８  停止フラグ
４０５１  ID
４０５２  キャッシュサーバIP
４０５３  リゾルブ  エージェント IP
４０８１  エージェントモジュールプログラム
１８００２、１８００３、１８００４、１８００５  HTTP Data （Cache）
１８００６、１８００７、１８００８  パーソナルコンピュータ（ＰＣ）
１９０４１  ＰＣアドレス
１９０４２  ルータ配列
１９０６１  HTTPサーバ
１９０６２  リライトモジュール
１９０７１  HTTPサーバプログラム
１９０７２  リライトモジュールプログラム
【図１】
0005731353.tif 000002
【図２】
0005731353.tif 000003
【図３】
0005731353.tif 000004
【図４】
0005731353.tif 000005
【図５】
0005731353.tif 000006
【図６】
0005731353.tif 000007
【図７】
0005731353.tif 000008
【図８】
0005731353.tif 000009
【図９】
0005731353.tif 000010
【図１０】
0005731353.tif 000011
【図１１】
0005731353.tif 000012
【図１２】
0005731353.tif 000013
【図１３】
0005731353.tif 000014
【図１４】
0005731353.tif 000015
【図１５】
0005731353.tif 000016
【図１６】
0005731353.tif 000017
【図１７】
0005731353.tif 000018
【図１８】
0005731353.tif 000019
【図１９】
0005731353.tif 000020
【図２０】
0005731353.tif 000021
【図２１】
0005731353.tif 000022