以下に本発明の実施の形態を説明する。
図1は、本発明の一実施の形態のコンテンツ提供システムの構成の例を示す図である。図1に示されるコンテンツ提供システムは、コンテンツサーバ11、ネットワーク12−1およびネットワーク12−2、クライアント13−1乃至クライアント13−4、プロキシ14−1乃至プロキシ14−4、ミラーサーバ15−1およびミラーサーバ15−2、鍵サーバ16、並びにコンテンツID管理サーバ17から構成される。
コンテンツサーバ11は、ネットワーク12−1またはネットワーク12−2を介して、コンテンツを提供する。ここで、コンテンツは、動画像データ、静止画像データ、または音声データなどであり、使用者にとって有意なデータである。
ネットワーク12−1およびネットワーク12−2は、有線または無線により、電磁気または光などを媒体として、コンテンツサーバ11、プロキシ14−1乃至プロキシ14−4、ミラーサーバ15−1およびミラーサーバ15−2、鍵サーバ16、並びにコンテンツID管理サーバ17の間で、各種のデータを伝送する。
クライアント13−1乃至クライアント13−4は、提供されたコンテンツを、それぞれの使用者に提示する。例えば、動画像データまたは静止画像データであるコンテンツが提供された場合、クライアント13−1乃至クライアント13−4は、提供されたコンテンツで表示される動画像または静止画像を表示する。例えば、音声データであるコンテンツが提供された場合、クライアント13−1乃至クライアント13−4は、提供されたコンテンツにより音声を出力する。
クライアント13−1乃至クライアント13−4は、それぞれ、プロキシ14−1乃至プロキシ14−4を介してコンテンツサーバ11からコンテンツを取得するか、またはプロキシ14−1乃至プロキシ14−4からコンテンツを取得する。
また、クライアント13−1乃至クライアント13−4は、コンテンツサーバ11から提供されるコンテンツに関する情報を提供するWeb(World-Wide Web)ページのデータを、ネットワーク12−1またはネットワーク12−2およびプロキシ14−1乃至プロキシ14−4のいずれかを介して、コンテンツサーバ11から取得する。
プロキシ14−1乃至プロキシ14−4は、それぞれ、コンテンツサーバ11から提供されるコンテンツに関する情報を提供するWebページのデータを、ネットワーク12−1またはネットワーク12−2を介して、コンテンツサーバ11から取得する。プロキシ14−1は、クライアント13−1に、取得したWebページのデータを供給する。同様に、プロキシ14−2乃至プロキシ14−4は、それぞれ、クライアント13−2乃至クライアント13−4のそれぞれに、取得したWebページのデータを供給する。
プロキシ14−1は、ネットワーク12−1を介して、コンテンツサーバ11からコンテンツを取得する。または、プロキシ14−1は、ネットワーク12−1またはネットワーク12−2を介して、ミラーサーバ15−1若しくはミラーサーバ15−2、またはプロキシ14−2乃至プロキシ14−4のいずれかから、コンテンツを取得する。
プロキシ14−1は、コンテンツを取得した場合、プロキシ14−2乃至プロキシ14−4に、ネットワーク12−1またはネットワーク12−2を介して、コンテンツを提供する。
同様に、プロキシ14−2乃至プロキシ14−4は、それぞれ、ネットワーク12−1を介して、コンテンツサーバ11からコンテンツを取得する。または、プロキシ14−2乃至プロキシ14−4は、それぞれ、ネットワーク12−1またはネットワーク12−2を介して、ミラーサーバ15−1またはミラーサーバ15−2からコンテンツを取得する。さらにまたは、プロキシ14−2乃至プロキシ14−4は、それぞれ、ネットワーク12−1またはネットワーク12−2を介して、プロキシ14−1乃至プロキシ14−4のうちの自分以外のいずれかから、コンテンツを取得する。
プロキシ14−2乃至プロキシ14−4は、コンテンツを取得した場合、プロキシ14−1乃至プロキシ14−4のうちの自分以外のいずれかに、ネットワーク12−1またはネットワーク12−2を介して、コンテンツを提供する。
ミラーサーバ15−1およびミラーサーバ15−2は、それぞれ、ネットワーク12−1またはネットワーク12−2を介して、プロキシ14−1乃至プロキシ14−4に、コンテンツを提供する。
例えば、図2に示されるように、クライアント13−1は、クライアント13−1の使用者31−1による操作に応じて、HTTP(Hyper Text Transfer Protocol)に基づいて、コンテンツサーバ11から提供されるコンテンツに関する情報を提供するWebページのデータのリクエストを、プロキシ14−1に送信する。プロキシ14−1は、HTTPに基づいて、コンテンツサーバ11から提供されるコンテンツに関する情報を提供するWebページのデータのリクエストを、ネットワーク12−1を介してコンテンツサーバ11に転送する。
リクエストを受信したコンテンツサーバ11は、HTTPに基づいて、コンテンツサーバ11から提供されるコンテンツに関する情報を提供するWebページのデータをネットワーク12−1を介して送信してくるので、プロキシ14−1は、そのWebページのデータを受信する。プロキシ14−1は、HTTPに基づいて、受信したWebページのデータをクライアント13−1に供給する。
コンテンツサーバ11から送信されてくる、コンテンツに関する情報を提供するWebページのデータには、例えば、コンテンツサーバ11、ミラーサーバ15−1、またはプロキシ14−2などのコンテンツを提供できる装置のIP(Internet Protocol)アドレスが含まれている。
プロキシ14−1は、コンテンツサーバ11から提供されるコンテンツに関する情報を提供するWebページ(例えば、トップページ)のデータを受信すると、Webページのデータに含まれている、コンテンツを提供できる装置である、例えば、コンテンツサーバ11、ミラーサーバ15−1、またはプロキシ14−2のIPアドレスを用いて、コンテンツサーバ11、ミラーサーバ15−1、またはプロキシ14−2からコンテンツを取得する。
この場合、プロキシ14−1は、Webページのデータを取得するプロトコルであるHTTPと異なるプロトコルで、コンテンツを取得することができる。例えば、プロキシ14−1は、FTP(File Transfer Protocol)に基づいて、コンテンツサーバ11からコンテンツを取得する。また例えば、プロキシ14−1は、バルク転送プロトコルに基づいて、コンテンツサーバ11からコンテンツを取得する。
また、例えば、プロキシ14−1は、コンテンツを取得する相手としてミラーサーバ15−1を選択し、ミラーサーバ15−1からコンテンツを取得する。
さらに、例えば、プロキシ14−1は、BitTorrentプロトコルなどのP2P(Peer to Peer)プロトコルに基づいて、プロキシ14−2などからコンテンツを取得する。
例えば、図3で示されるように、プロキシ14−1は、ネットワーク12−1を介して、Webページのデータをコンテンツサーバ11から取得し、ネットワーク12−2を介して、コンテンツサーバ11、ミラーサーバ15−1、プロキシ14−2、またはプロキシ14−3からコンテンツを取得する。この場合、例えば、ネットワーク12−2は、光バルク転送により、コンテンツを伝送する。
このようにすることで、使用者に、コンテンツを取得するための操作を要求する必要がなく、その結果、使用者は、コンテンツを取得するためのプロトコルを意識することなく、高速にコンテンツを通信することができる。
コンテンツの伝送が何らかの原因で中断された場合には、その中断された部分から再度コンテンツを伝送できるようにすることが好ましい。
例えば、図4で示されるように、コンテンツ51が、最初の部分である部分#0と、部分#0の次の部分である部分#1と、部分#1の次の部分である部分#2と、部分#2の次の部分である部分#3とからなり、コンテンツ51の部分#0が、使用者31−2のプロキシ14−2から提供されていて、コンテンツ51の部分#1が、使用者31−4のプロキシ14−4から提供されていて、コンテンツ51の部分#2が、使用者31−3のプロキシ14−3から提供されていて、コンテンツ51の部分#3が、使用者31−5のプロキシ14−5から提供されている場合、プロキシ14−1は、ネットワーク12−1またはネットワーク12−1を介して、BitTorrentプロトコルに基づいて、コンテンツ51の部分#0をプロキシ14−2から取得し、コンテンツ51の部分#1をプロキシ14−4から取得し、コンテンツ51の部分#2をプロキシ14−3から取得し、コンテンツ51の部分#3をプロキシ14−5から取得する。
図1に戻り、鍵サーバ16は、コンテンツが暗号化されている場合、コンテンツを復号するための鍵を提供する。
なお、暗号化されているコンテンツを提供すると共に、暗号化されているコンテンツを復号するための鍵を提供するサーバ41を設けるようにしてもよい。
この場合、例えば、図5で示されるように、プロキシ14−1から、プロキシ14−1のMAC(Media Access Control)アドレスが通知されると、サーバ41は、暗号化されているコンテンツ61をMACアドレスから特定したIPアドレス宛てに、すなわちプロキシ14−1に送信する。また、プロキシ14−1は、サーバ41から、暗号化されているコンテンツ61を復号するための鍵62を取得する。
さらに、プロキシ14−2から、プロキシ14−2のMACアドレスが通知されると、サーバ41は、暗号化されているコンテンツ61を受信したプロキシ14−1のIPアドレスをプロキシ14−2に送信するので、プロキシ14−2は、プロキシ14−1から、暗号化されているコンテンツ61(の複製)を取得する。プロキシ14−2は、サーバ41から、暗号化されているコンテンツ61を復号するための鍵62を取得する。
なお、例えば、プロキシ14−1から、プロキシ14−1のMACアドレスが通知されると、サーバ41は、MACアドレスおよび暗号鍵でコンテンツ61を暗号化し、このように暗号化されているコンテンツ61をプロキシ14−1に送信するようにしてもよい。この場合、プロキシ14−1は、サーバ41から、暗号化されているコンテンツ61を復号するための鍵62を取得すれば、自分のMACアドレスと鍵62とで、コンテンツを復号することができる。しかし、プロキシ14−2が、このコンテンツ61を取得し、鍵62を取得しても、コンテンツを復号することはできない。
図1に戻り、コンテンツID管理サーバ17は、ミラーサーバ15−1およびミラーサーバ15−2並びにプロキシ14−1乃至プロキシ14−4のうち、コンテンツIDで特定されるコンテンツを提供することができるもののIPアドレスを、プロキシ14−1乃至プロキシ14−4に供給する。
このように、図1に示されるコンテンツ提供システムにおいて、プロキシ14−1乃至プロキシ14−4は、コンテンツサーバ11に限らず、ミラーサーバ15−1若しくはミラーサーバ15−2、またはプロキシ14−1乃至プロキシ14−4のうちの自分以外のいずれかからコンテンツを取得し、取得したコンテンツをクライアント13−1乃至クライアント13−4に提供する。
このようにすることで、プロキシ14−1乃至プロキシ14−4は、コンテンツサーバ11の能力によって制限されることなく、より高速な伝送により、より迅速にコンテンツを取得することができるようになる。
以下、ネットワーク12−1またはネットワーク12−2を個々に区別する必要がないとき、単に、ネットワーク12と称する。
以下、クライアント13−1乃至クライアント13−4のそれぞれを個々に区別する必要がないとき、単に、クライアント13と称する。
以下、プロキシ14−1乃至プロキシ14−4のそれぞれを個々に区別する必要がないとき、単に、プロキシ14と称する。
以下、ミラーサーバ15−1またはミラーサーバ15−2を個々に区別する必要がないとき、単に、ミラーサーバ15と称する。
次に、コンテンツサーバ11、プロキシ14、コンテンツID管理サーバ17の構成について説明する。
図6は、コンテンツサーバ11のハードウェアの構成の例を示すブロック図である。CPU(Central Processing Unit)101は、ROM(Read Only Memory)102、または記憶部108に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)103には、CPU101が実行するプログラムやデータなどが適宜記憶される。これらのCPU101、ROM102、およびRAM103は、バス104により相互に接続されている。
CPU101にはまた、バス104を介して入出力インターフェース105が接続されている。入出力インターフェース105には、キーボード、マウス、マイクロホンなどよりなる入力部106、ディスプレイ、スピーカなどよりなる出力部107が接続されている。CPU101は、入力部106から入力される指令に対応して各種の処理を実行する。そして、CPU101は、処理の結果を出力部107に出力する。
入出力インターフェース105に接続されている記憶部108は、例えばハードディスクからなり、CPU101が実行するプログラムや各種のデータを記憶する。通信部109は、インターネットやローカルエリアネットワークなどのネットワーク12を介して外部の装置と通信する。
また、通信部109を介してプログラムを取得し、記憶部108に記憶してもよい。
入出力インターフェース105に接続されているドライブ110は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア111が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部108に転送され、記憶される。
なお、コンテンツID管理サーバ17は、コンテンツサーバ11と同様の構成とされるので、その説明は省略する。
図7は、プロキシ14のハードウェアの構成の例を示すブロック図である。CPU121は、ROM122、または記憶部128に記憶されているプログラムに従って各種の処理を実行する。RAM123には、CPU121が実行するプログラムやデータなどが適宜記憶される。これらのCPU121、ROM122、およびRAM123は、バス124により相互に接続されている。
CPU121にはまた、バス124を介して入出力インターフェース125が接続されている。入出力インターフェース125には、ボタンスイッチ、ディップスイッチなどよりなる入力部126、ディスプレイ、スピーカ、ランプなどよりなる出力部127が接続されている。CPU121は、入力部126から入力される指令などに対応して各種の処理を実行する。そして、CPU121は、処理の結果を出力部127に出力する。
入出力インターフェース125に接続されている記憶部128は、例えばハードディスクからなり、CPU121が実行するプログラムや各種のデータを記憶する。通信部129は、インターネットやローカルエリアネットワークなどのネットワーク12−1を介して外部の装置と通信する。通信部130は、ローカルエリアネットワークなどのネットワーク12−2を介して外部の装置と通信する。例えば、通信部129を、電気信号を伝送媒体とする通信のためのインターフェースとし、通信部130を、光を伝送媒体とする通信のためのインターフェースとすることができる。
また、通信部129または通信部130を介してプログラムを取得し、記憶部128に記憶してもよい。
なお、通信部129または通信部130のいずれか一方は、設けないようにしてもよい。例えば、プロキシ14−1およびプロキシ14−2においては、通信部129および通信部130の双方が設けられ、プロキシ14−3においては、通信部130のみが設けられ、プロキシ14−4においては、通信部129のみが設けられるようにしてもよい。
この場合、例えば、プロキシ14−1およびプロキシ14−2は、インターネットであるネットワーク12−1を介して、Webページのデータをコンテンツサーバ11から取得し、ローカルな光ネットワークとして構成されているネットワーク12−2を介して、コンテンツサーバ11、ミラーサーバ15−1、プロキシ14−2、またはプロキシ14−3からコンテンツを取得する。
入出力インターフェース125に接続されているドライブ131は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア132が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部128に転送され、記憶される。
次に、コンテンツサーバ11、プロキシ14、またはコンテンツID管理サーバ17のプログラムの実行により実現される機能の構成について説明する。
図8は、プログラムを実行するコンテンツサーバ11のCPU101により実現される機能の構成を示すブロック図である。CPU101のプログラムの実行により、コンテンツサーバ11において、Webサーバ151、コンテンツ情報生成部152、プロキシ情報記録制御部153、コンテンツデータベース154、およびダウンロードデータベース155が実現される。
Webサーバ151は、通信部109を制御して、ネットワーク12を介して、プロキシ14に、Webページのデータを送信する。また、Webサーバ151は、ネットワーク12を介して、プロキシ14に、コンテンツ情報生成部152において生成されたコンテンツ情報を送信する。すなわち、Webサーバ151は、ネットワーク12を介したプロキシ14へのコンテンツ情報の送信を制御する。また、Webサーバ151は、ネットワーク12を介したプロキシ14への、コンテンツ情報生成部152において生成されたデータの送信を制御する。
コンテンツ情報生成部152は、ネットワーク12を介して、プロキシ14に送信するコンテンツ情報を生成する。
すなわち、例えば、コンテンツ情報生成部152は、情報処理装置のうちの第2の情報処理装置の一例であるプロキシ14−1から要求されたページ生成用のデータであって、コンテンツを取得した第1の情報処理装置の一例であるプロキシ14−2のアドレスが配置されたデータを生成する。
コンテンツ情報には、コンテンツサーバ11のIPアドレス、ミラーサーバ15のIPアドレス、またはコンテンツを既に取得したプロキシ14のIPアドレスなどが配置されている。
ここで、図9乃至図11を参照して、XML(eXtensible Mark-up Language)方式で記述されているコンテンツ情報の具体例について説明する。
図9で示されるコンテンツ情報の最初に、<?xml version=“1.0” encoding=“euc-jp” ?>と記述されているタグは、XML宣言であり、コンテンツ情報がXML方式で記述されていることを示す。encoding=“euc-jp”は、文字コードを記述する。
<?xml-stylesheet type="text/xsl" href="index.xsl"?>と記述されているタグは、いわゆるstylesheet要素であり、コンテンツ情報とデータの構造の変換処理の記述であるスタイルシートとを結びつける。"text/xsl"であるtype属性の値は、xslスタイルシートであるスタイルシートが結びつけられることを示し、href属性の値は参照するURI(Universal Resource Identifier)を示す。
<page>と</page>との間に配置された情報は、1つのページを構成する。<contents>と</contents>との間には、1または複数のコンテンツに関係する情報が配置される。
<video>と</video>との間には、1つのコンテンツである1つの動画像のコンテンツに関係する情報が配置される。<name>と</name>との間に配置されている情報は、動画像のコンテンツの名前を示す。
<exp>と</exp>との間には、動画像のコンテンツの説明が記述される。<genru>と</genru>との間に配置されている情報は、動画像のコンテンツのジャンルを示す。
<fname>と</fname>との間には、ページに表示される画像であって、動画像のコンテンツを代表する画像の画像データを格納しているファイルの名前が記述される。<img>と</img>との間には、ページに表示される画像の画像データを格納しているファイルの名前が記述される。
<icon>と</icon>との間には、動画像のコンテンツのダウンロードを指示するためのアイコンの画像データを格納しているファイルの名前が記述される。
<url1>と</url1>との間、<url2>と</url2>との間、<url3>と</url3>との間、および<url4>と</url4>との間には、それぞれ、コンテンツを提供する、コンテンツサーバ11、プロキシ14、またはミラーサーバ15のいずれかのIPアドレスが記述される。
例えば、<url1>と</url1>との間には、ミラーサーバ15−1のIPアドレスが記述され、<url2>と</url2>との間には、ミラーサーバ15−2のIPアドレスが記述され、<url3>と</url3>との間には、既にコンテンツを取得したプロキシ14−2のIPアドレスが記述され、<url4>と</url4>との間には、コンテンツサーバ11のIPアドレスが記述される。
なお、以下、コンテンツを提供する、コンテンツサーバ11、プロキシ14、またはミラーサーバ15のIPアドレスをリンク情報とも称する。
<date>と</date>との間に配置されている情報は、動画像のコンテンツが登録された日付を示す。コンテンツが登録された日付は、具体的には、例えば、コンテンツの提供が開始された日付またはコンテンツの利用(再生など)が許可される日付などである。
図10は、暗号化されているコンテンツのコンテンツ情報の例を示す図である。図10のコンテンツ情報における、XML宣言、stylesheet要素、<page>および</page>、<contents>および</contents>、<video>および</video>、<name>および</name>、<exp>および</ex
p>、<genru>および</genru>、<fname>および</fname>、<img>および</img>、<icon>および</icon>、並びに<url1>および</url1>乃至<url4>および</url4>の記述は、図9のコンテンツ情報における場合と同様なので、その説明は省略する。
図10のコンテンツ情報には、さらに、<key>および</key>並びに<key_con>および</key_con>が配置されている。
<key>と</key>との間には、暗号化されているコンテンツを復号するための鍵をゲット(取得)するためのURL、すなわち、鍵サーバ16のアドレスが記述されている。<key_con>と</key_con>との間には、コンテンツを復号するための鍵の取得を指示するためのアイコンの画像データを格納しているファイルの名前が記述される。
また、コンテンツ情報には、コンテンツの取得のプロトコルの指定を記述することができる。
例えば、図11に示されるように、<url1>と</url1>との間および<url2>と</url2>との間には、それぞれ、さらに、<protocol>および</protocol>並びに<src>および</src>が配置される。
<protocol>と</protocol>との間には、コンテンツを取得する場合に用いられる指定されたプロトコルが記述され、<src>と</src>との間には、コンテンツを提供する、コンテンツサーバ11、プロキシ14、またはミラーサーバ15などのIPアドレスが記述される。
例えば、<url1>と</url1>との間の、<protocol>と</protocol>との間に記述されているhttpは、コンテンツの取得のプロトコルとしてhttpを指定する。また、<url2>と</url2>との間の、<protocol>と</protocol>との間に記述されているftpは、コンテンツの取得のプロトコルとしてftpを指定する。
図8に戻り、また、コンテンツ情報生成部152は、情報処理装置の一例であるプロキシ14から要求されたページ生成用のデータであって、コンテンツを特定するコンテンツIDが配置されたデータを生成する。
プロキシ情報記録制御部153は、コンテンツを取得したプロキシ14から送信されてくる、コンテンツを取得した旨を示すダウンロード情報に含まれているプロキシ情報をダウンロードデータベース155に格納させる。すなわち、プロキシ情報記録制御部153は、ダウンロードデータベース155へのプロキシ情報の記録を制御する。
プロキシ情報は、コンテンツを取得したプロキシ14のIPアドレス、取得したコンテンツを特定するコンテンツID、およびコンテンツを取得したプロキシ14において利用可能なプロトコルを示す情報からなる。ここで、プロキシ14において利用可能なプロトコルとは、コンテンツを取得したプロキシ14がコンテンツを送信するプロトコル、言い換えればコンテンツを取得したプロキシ14からコンテンツを受信するプロトコルをいう。
コンテンツデータベース154は、コンテンツを格納すると共に、コンテンツの名前、コンテンツの説明、またはコンテンツのジャンルなどを示すメタデータを格納する。
ダウンロードデータベース155は、プロキシ情報記録制御部153の制御の基に、プロキシ情報を格納する。
例えば、コンテンツデータベース154およびダウンロードデータベース155は、記憶部108に構築される。
コンテンツ情報生成部152は、メタデータ取得部161、プロキシ情報取得部162、およびプロキシ情報選択部163を含む。
メタデータ取得部161は、コンテンツデータベース154から、コンテンツの名前、コンテンツの説明、コンテンツのジャンルなどを示すメタデータを取得する。プロキシ情報取得部162は、ダウンロードデータベース155から、コンテンツを取得したプロキシ14のIPアドレス、コンテンツを特定するコンテンツID、およびコンテンツを取得したプロキシ14において利用可能なプロトコルを示すプロキシ情報を取得する。
プロキシ情報選択部163は、プロキシ情報取得部162によって取得されたプロキシ情報から、生成するコンテンツ情報に格納するプロキシ情報を選択する。
プロキシ情報記録制御部153は、ダウンロード情報受信制御部164およびプロキシ情報抽出部165を含む。
ダウンロード情報受信制御部164は、通信部109を制御して、コンテンツを取得したプロキシ14からネットワーク12を介して送信されてくる、コンテンツを取得した旨を示すダウンロード情報の受信を制御する。
すなわち、ダウンロード情報受信制御部164は、情報処理装置の一例であるプロキシ14のうちのコンテンツを取得したプロキシ14からネットワーク12を介して送信されてくる、そのプロキシ14のアドレスが格納されている情報であって、コンテンツを取得した旨を示す情報であるダウンロード情報の受信を制御する。
プロキシ情報抽出部165は、受信したダウンロード情報から、プロキシ情報を抽出する。
このように、ダウンロード情報受信制御部164は、コンテンツを取得した第1の情報処理装置の一例であるプロキシ14のアドレスの記録を制御する。
次に、プロキシ14の機能について説明する。図12は、プログラムを実行するプロキシ14のCPU121により実現される機能の構成を示すブロック図である。CPU121のプログラムの実行により、プロキシ14において、プロキシサーバ181、プリフェッチ処理部182、コンテンツ読み書き制御部183、近傍プロキシアドレス読み書き制御部184、ダウンロード情報送信制御部185、閲覧履歴更新部186、嗜好解析部187、コンテンツ送信制御部188、コンテンツ情報取得部189、コミュニティ情報読み書き制御部190、嗜好度判定部191、コミュニティ選択部192、コンテンツデータベース193、近傍プロキシデータベース194、閲覧履歴データベース195、およびコミュニティデータベース196が実現される。
プロキシサーバ181は、通信部129を制御して、クライアント13からの要求に応じて、ネットワーク12を介して、コンテンツサーバ11にWebページのデータを要求する。プロキシサーバ181は、Webページのデータを要求するとコンテンツサーバ11からネットワーク12を介して送信されてくるコンテンツ情報を取得する。
プロキシサーバ181は、取得したコンテンツ情報に含まれているリンク情報をプリフェッチ処理部182に供給する。
プロキシサーバ181は、コンテンツ情報にリンク情報が含まれず、コンテンツIDが含まれている場合、取得したコンテンツ情報に含まれているコンテンツIDをコンテンツ情報取得部189に供給する。
プロキシサーバ181は、取得したコンテンツ情報をそのままクライアント13に供給するか、コンテンツ情報からリンク情報を除去してWebページのデータを生成し、生成したWebページのデータをクライアント13に供給する。
また、プロキシサーバ181は、取得したコンテンツをクライアント13に供給する。
プリフェッチ処理部182は、通信部129または通信部130を制御して、プロキシサーバ181から供給されたコンテンツ情報に含まれているリンク情報を基に、コンテンツサーバ11、プロキシ14、またはミラーサーバ15から、ネットワーク12を介してコンテンツをプリフェッチする。または、プリフェッチ処理部182は、コンテンツID管理サーバ17から供給されたコンテンツ情報に含まれているリンク情報を基に、コンテンツサーバ11、プロキシ14、またはミラーサーバ15から、ネットワーク12を介してコンテンツをプリフェッチする。
すなわち、プリフェッチ処理部182は、プロキシサーバ181またはコンテンツID管理サーバ17から供給されたリンク情報を基に、コンテンツサーバ11、プロキシ14、またはミラーサーバ15から、ネットワーク12を介してコンテンツを取得する。
コンテンツ読み書き制御部183は、プリフェッチ処理部182においてコンテンツをプリフェッチした場合、コンテンツをコンテンツデータベース193に格納させる。また、コンテンツをクライアント13に供給する場合、コンテンツ読み書き制御部183は、コンテンツデータベース193からコンテンツを読み出させる。すなわち、コンテンツ読み書き制御部183は、コンテンツデータベース193へのコンテンツの書き込みを制御すると共に、コンテンツデータベース193からのコンテンツの読み出しを制御する。言い換えれば、コンテンツ読み書き制御部183は、コンテンツの記録を制御し、コンテンツの読み出しを制御する。
近傍プロキシアドレス読み書き制御部184は、プリフェッチ処理部182において他のプロキシ14からコンテンツをプリフェッチした場合、コンテンツを取得した相手であるプロキシ14のIPアドレスを、近傍のプロキシ14である近傍プロキシのアドレスとして、近傍プロキシデータベース194に格納させる。プリフェッチ処理部182が近傍プロキシにコンテンツを記録しているかを問い合わせる場合、近傍プロキシアドレス読み書き制御部184は、近傍プロキシデータベース194から近傍プロキシのアドレスを読み出させ、プリフェッチ処理部182に供給する。このように、近傍プロキシアドレス読み書き制御部184は、近傍プロキシデータベース194への近傍プロキシのアドレスの書き込みを制御すると共に、近傍プロキシデータベース194からの近傍プロキシのアドレスの読み出しを制御する。
また、近傍プロキシアドレス読み書き制御部184は、コンテンツを取得した相手であるプロキシ14のIPアドレスと共に、その相手において利用可能なプロトコルを示す情報を、近傍プロキシデータベース194に格納させる。
ダウンロード情報送信制御部185は、通信部129を制御して、ダウンロード情報の送信を制御する。すなわち、ダウンロード情報送信制御部185は、コンテンツを取得した場合、コンテンツを取得した旨を示すダウンロード情報であって、自分であるプロキシ14のIPアドレス、取得したコンテンツを特定するコンテンツID、および後述するコンテンツ送信制御部188において利用可能なプロトコルを示す情報からなるプロキシ情報を含むダウンロード情報の、ネットワーク12を介した、コンテンツサーバ11またはコンテンツID管理サーバ17への送信を制御する。
換言すれば、ダウンロード情報送信制御部185は、情報処理装置の一例であるプロキシ14のアドレスが格納されている情報であって、コンテンツを取得した旨を示す情報の一例であるダウンロード情報の、ネットワークを介した提供装置の一例であるコンテンツサーバ11への送信を制御する。
閲覧履歴更新部186は、プロキシサーバ181がコンテンツをクライアント13に供給した場合、クライアント13に供給したコンテンツのコンテンツ情報を閲覧履歴データベース195に格納するように、クライアント13におけるコンテンツの閲覧の履歴を更新する。閲覧履歴データベース195に格納されるコンテンツ情報は、例えば、コンテンツIDおよびコンテンツのジャンルを示す。
嗜好解析部187は、閲覧履歴データベース195に格納されている、クライアント13に供給したコンテンツのコンテンツ情報および取得しようとするコンテンツのジャンルを基に、取得しようとするコンテンツが使用者に視聴される可能性を算出する。すなわち、嗜好解析部187は、端末装置の一例であるクライアント13に供給した他のコンテンツを示す履歴と受信したジャンル情報とから、クライアント13の使用者により、受信したコンテンツIDで特定されるコンテンツが視聴される可能性を算出する。
コンテンツ送信制御部188は、通信部129または通信部130を制御して、他のクライアント14からコンテンツが要求された場合、コンテンツデータベース193に格納されているコンテンツの、ネットワーク12を介した、コンテンツを要求した他のクライアント14への送信を制御する。
コンテンツ情報取得部189は、通信部129または通信部130を制御して、プロキシサーバ181から供給されたコンテンツIDを、ネットワーク12を介して、コンテンツID管理サーバ17に送信する。コンテンツIDを送信すると、コンテンツID管理サーバ17は、ネットワーク12を介して、リンク情報を含むコンテンツ情報を送信してくるので、コンテンツ情報取得部189は、コンテンツID管理サーバ17から送信されてくるコンテンツ情報を受信することでコンテンツ情報を取得する。コンテンツ情報取得部189は、コンテンツ情報に含まれているリンク情報をプリフェッチ処理部182に供給する。
コミュニティ情報読み書き制御部190は、コミュニティに関する情報のコミュニティデータベース196への読み書きを制御する。より詳細には、コミュニティ情報読み書き制御部190は、コミュニティに属するプロキシ14のIPアドレスとそのコミュニティのジャンルを示す情報とをコミュニティデータベース196に格納させる。コミュニティ情報読み書き制御部190は、コミュニティデータベース196から、コミュニティに属するプロキシ14のIPアドレスとそのコミュニティのジャンルを示す情報とを読み出させる。コミュニティ情報読み書き制御部190は、読み出した、コミュニティに属するプロキシ14のIPアドレスとそのコミュニティのジャンルを示す情報とをコミュニティ選択部192に供給する。
嗜好度判定部191は、嗜好解析部187において計算された、所定のコンテンツについての、クライアント13の使用者に視聴される可能性を示す値が所定値以上であるか否かを判定する。
コミュニティ選択部192は、嗜好度判定部191において、所定のコンテンツについての、クライアント13の使用者に視聴される可能性を示す値が所定値以上であると判定された場合、コミュニティ情報読み書き制御部190から供給された、コミュニティのジャンルを示す情報と、所定のコンテンツのジャンルとから、コミュニティを選択する。
コミュニティ選択部192は、端末装置の一例であるクライアント13の使用者が、受信したコンテンツIDで特定されるコンテンツを視聴する可能性が所定値以上である場合、ジャンル情報と、複数の情報処理装置の一例であるプロキシ14で構成されるコミュニティのジャンルを示す、予め記録されているデータとから、コミュニティを選択する。
コミュニティ選択部192は、選択したコミュニティに属するプロキシ14のIPアドレスをプリフェッチ処理部182に供給する。
コンテンツデータベース193は、プリフェッチ処理部182においてプリフェッチされたコンテンツまたはプロキシサーバ181においてコンテンツサーバ11から取得されたコンテンツを格納する。
近傍プロキシデータベース194は、近傍プロキシアドレス読み書き制御部184に制御に基づいて、コンテンツを取得した相手であるプロキシ14のIPアドレスを、近傍のプロキシ14である近傍プロキシのアドレスとして格納する。近傍プロキシデータベース194は、近傍プロキシのアドレスと共に、その近傍プロキシにおいて利用可能なプロトコルを示す情報を格納する。
閲覧履歴データベース195は、クライアント13に供給したコンテンツのコンテンツ情報を閲覧履歴として格納する。
コミュニティデータベース196は、コミュニティに属するプロキシ14のIPアドレスとそのコミュニティのジャンルを示す情報とを格納する。
例えば、コンテンツデータベース193乃至コミュニティデータベース196は、記憶部128に構築される。
プロキシサーバ181は、受信制御部201、送信制御部202、リンク情報抽出部203、コンテンツID抽出部204、およびジャンル情報抽出部205を含む。
受信制御部201は、通信部129を制御して、ネットワーク12を介して、コンテンツサーバ11から送信されてくるコンテンツ情報の受信を制御する。すなわち、受信制御部201は、ネットワーク12を介して提供装置の一例であるコンテンツサーバ11から送信されてくるページ生成用のデータであって、コンテンツを取得した他の情報処理装置の一例である他のプロキシ14のアドレスが配置されたデータの一例であるコンテンツ情報の受信を制御する。
または、受信制御部201は、ネットワークを介して第1の提供装置の一例であるコンテンツサーバ11から送信されてくるページ生成用のデータであって、コンテンツを特定するコンテンツIDが配置されたデータの一例であるトップページのデータの受信を制御する。
なお、トップページは、Webページの1つである。
さらに、または、受信制御部201は、提供装置の一例であるコンテンツサーバ11からネットワーク12を介して送信されてくる、コンテンツを特定するコンテンツIDと、コンテンツIDで特定されるコンテンツのジャンルを示すジャンル情報との受信を制御する。
送信制御部202は、受信したコンテンツ情報のクライアント13への送信を制御する。または、送信制御部202は、受信したコンテンツ情報からリンク情報を除去してなるWebページのデータのクライアント13への送信を制御する。さらに、送信制御部202は、受信したコンテンツまたはコンテンツデータベース193に格納されているコンテンツのクライアント13への送信を制御する。
すなわち、送信制御部202は、受信したデータの一例であるコンテンツ情報または記録されたコンテンツの端末装置の一例であるクライアント13への送信を制御する。
リンク情報抽出部203は、受信したコンテンツ情報からリンク情報を抽出する。コンテンツID抽出部204は、受信したコンテンツ情報からコンテンツIDを抽出する。
ジャンル情報抽出部205は、受信したコンテンツ情報から、コンテンツのジャンルを示すジャンル情報を抽出する。
プリフェッチ処理部182は、伝送特性測定部206、ダウンロード先選択部207、コンテンツ受信制御部208、他プロキシ問い合わせ部209を含む。
伝送特性測定部206は、通信部129または通信部130を制御して、プロキシサーバ181またはリンク情報取得部189において抽出されたリンク情報で示される、コンテンツを提供するコンテンツサーバ11のIPアドレス、ミラーサーバ15のIPアドレス、またはコンテンツを既に取得した他のプロキシ14のIPアドレスを基に、ネットワーク12における、自分であるプロキシ14と、コンテンツサーバ11、ミラーサーバ15、またはコンテンツを既に取得した他のプロキシ14のそれぞれとのデータの伝送の特性を測定する。
ダウンロード先選択部207は、伝送特性測定部206において測定された、ネットワーク12における、自分であるプロキシ14と、コンテンツサーバ11、ミラーサーバ15、またはコンテンツを既に取得した他のプロキシ14のそれぞれとのデータの伝送の特性から、コンテンツサーバ11、ミラーサーバ15、またはコンテンツを既に取得した他のプロキシ14の中から、コンテンツをダウンロードする先(相手からコンテンツを取得する場合のその相手)を選択する。
コンテンツ受信制御部208は、通信部129または通信部130を制御して、ネットワーク12を介して、コンテンツサーバ11、ミラーサーバ15、またはコンテンツを既に取得した他のプロキシ14から送信されてくるコンテンツの受信を制御する。すなわち、コンテンツ受信制御部208は、受信したデータの一例であるコンテンツ情報に配置されているアドレスを基に他の情報処理装置の一例である他のプロキシ14に要求することで他のプロキシ14から送信されてくるコンテンツの受信を制御する。
他プロキシ問い合わせ部209は、近傍プロキシデータベース194に格納されている他のプロキシ14のIPアドレスを基に、通信部129または通信部130を制御して、近傍のプロキシ14に、コンテンツを記録しているかを問い合わせる。
また、他プロキシ問い合わせ部209は、コミュニティ選択部192から供給された、選択したコミュニティに属するプロキシ14のIPアドレスを基に、通信部129または通信部130を制御して、選択したコミュニティに属するプロキシ14に、コンテンツを記録しているかを問い合わせる。
なお、プリフェッチ処理部182は、他の情報処理装置の一例である他のプロキシ14から、受信したコンテンツIDで特定されるコンテンツを記録している旨が返答された場合、受信したコンテンツIDで特定されるコンテンツを記録している旨を返答してきた他のプロキシ14から、受信したコンテンツIDで特定されるコンテンツをネットワーク12を介して取得する。
コンテンツ情報取得部189は、送信制御部210、受信制御部211、およびリンク情報抽出部212を含む。送信制御部210は、ネットワーク12を介した、コンテンツID管理サーバ17へのコンテンツIDの送信を制御する。受信制御部211は、コンテンツIDを受信したコンテンツID管理サーバ17からネットワーク12を介して送信されてくるコンテンツ情報の受信を制御する。すなわち、受信制御部211は、ネットワーク12を介して第2の提供装置の一例であるコンテンツID管理サーバ17から送信されてくる、コンテンツIDで特定されるコンテンツを取得した他の情報処理装置の一例である他のプロキシ14のアドレスの受信を制御する。
リンク情報抽出部212は、受信したコンテンツ情報から、リンク情報を抽出する。
次に、コンテンツID管理サーバ17の機能について説明する。図13は、プログラムを実行するコンテンツID管理サーバ17のCPU101により実現される機能の構成を示すブロック図である。CPU101のプログラムの実行により、コンテンツID管理サーバ17において、コンテンツ情報通信制御部231、コンテンツ情報生成部232、プロキシ情記録制御部233、およびダウンロードデータベース234が実現される。
コンテンツ情報通信制御部231は、ネットワーク12を介したコンテンツ情報の通信を制御する。すなわち、コンテンツ情報通信制御部231は、ネットワーク12を介して、プロキシ14から送信されてくるコンテンツIDの受信を制御すると、受信したコンテンツIDで特定されるコンテンツのコンテンツ情報の、ネットワーク12を介した、コンテンツIDを送信してきたプロキシ14への送信を制御する。
コンテンツ情報生成部232は、ネットワーク12を介して、プロキシ14に送信するコンテンツ情報を生成する。
プロキシ情報記録制御部233は、コンテンツを取得したプロキシ14から送信されてくる、コンテンツを取得した旨を示すダウンロード情報に含まれているプロキシ情報のダウンロードデータベース234への記録を制御する。すなわち、プロキシ情報記録制御部233は、第1の情報処理装置の一例であるプロキシ14のアドレスとプロキシ14が取得したコンテンツを特定するコンテンツIDとの記録を制御する。
ダウンロードデータベース234は、プロキシ情報記録制御部233の制御の基に、プロキシ情報を格納する。
コンテンツ情報通信制御部231は、送信制御部251および受信制御部252を含む。送信制御部251は、コンテンツIDで特定されるコンテンツのコンテンツ情報の、ネットワーク12を介した、コンテンツIDを送信してきたプロキシ14への送信を制御する。例えば、送信制御部251は、情報処理装置のうちの第2の情報処理装置の一例であるプロキシ14−1から送信されてきたコンテンツIDで特定されるコンテンツを取得した第1の情報処理装置の一例であるプロキシ14−2のアドレスの、ネットワーク12を介したプロキシ14−1への送信を制御する。
受信制御部252は、ネットワーク12を介して、プロキシ14から送信されてくるコンテンツIDの受信を制御する。
コンテンツ情報生成部232は、プロキシ情報取得部253およびプロキシ情報選択部254を含む。プロキシ情報取得部253は、ダウンロードデータベース234から、コンテンツを取得したプロキシ14のIPアドレス、コンテンツを特定するコンテンツID、およびコンテンツを取得したプロキシ14において利用可能なプロトコルを示すプロキシ情報を取得する。
プロキシ情報選択部254は、プロキシ情報取得部253によって取得されたプロキシ情報から、生成するコンテンツ情報に格納するプロキシ情報を選択する。
プロキシ情報記録制御部233は、ダウンロード情報受信制御部255およびプロキシ情報抽出部256を含む。
ダウンロード情報受信制御部255は、コンテンツを取得したプロキシ14から送信されてくる、コンテンツを取得した旨を示すダウンロード情報の受信を制御する。すなわち、ダウンロード情報受信制御部255は、情報処理装置のうちのコンテンツを取得した第1の情報処理装置の一例であるプロキシ14からネットワーク12を介して送信されてくる、コンテンツを取得した旨を示す情報であって、プロキシ14のアドレスと取得したコンテンツを特定するコンテンツIDとが格納されている情報の一例であるダウンロード情報の受信を制御する。
プロキシ情報抽出部256は、受信したダウンロード情報から、プロキシ情報を抽出する。
次に、図14を参照して、コンテンツ提供システムによるコンテンツの提供の概略を説明する。クライアント13−1は、プロキシ14−1およびネットワーク12を介して、コンテンツサーバ11から提供されるページのうち、コンテンツの提供に関するページであるトップページにアクセスする。すると、コンテンツサーバ11は、ネットワーク12を介して、トップページのデータとしてコンテンツ情報をプロキシ14−1に送信してくる。プロキシ14−1は、コンテンツ情報を受信し、受信したコンテンツ情報をクライアント13−1に供給する。クライアント13−1は、トップページのデータとしてのコンテンツ情報を基に、トップページを表示するので、使用者31−1は、トップページを閲覧することができる。クライアント13−1に表示されるトップページは、リンク情報を含まないトップページのデータを受信した場合と何等変わらない。
プロキシ14−1は、コンテンツ情報を受信すると、コンテンツ情報に含まれているメタデータを基に、先読みするコンテンツを選択する。ここにいう先読みとは、いわゆるプリフェッチをいい、クライアント13からコンテンツが要求される前に、コンテンツを読み出すことをいう。
例えば、プロキシ14−1は、先読みするコンテンツとして、使用者31−1のコンテンツの閲覧履歴を基に、使用者31−1に閲覧されると推定されるコンテンツを選択したり、一般的な人気の順(例えば、コンテンツの提供者によってつけられた人気の順)に、今週のトップ10に含まれるコンテンツを選択したりする。
プロキシ14−1は、コンテンツ情報に含まれているリンク情報を基に、選択されたコンテンツを提供できる相手にPingを送信して、Pingを送信してから確認応答(ACK:Acknowledgment)を受信するまでの時間であるRTT(Round Trip Time)を測る。図14に示す例において、コンテンツ情報に、リンク情報として、コンテンツサーバ11のIPアドレスとプロキシ14−2のIPアドレスが含まれているので、プロキシ14−1は、そのIPアドレスを基に、コンテンツを提供できる相手であるコンテンツサーバ11およびプロキシ14−2のそれぞれに、Pingを送信して、Pingを送信してから確認応答を受信するまでの時間であるRTTを測る。
プロキシ14−1は、RTTを比較してその結果を基に、コンテンツを取得する相手を選択する。例えば、プロキシ14−2とのRTTが、コンテンツサーバ11とのRTTより短い場合、コンテンツサーバ11に比較してプロキシ14−2からより迅速にコンテンツを取得できると推測されるので、プロキシ14−1は、コンテンツを取得する相手としてプロキシ14−2を選択する。
プロキシ14−1は、選択した相手、この場合、例えば、プロキシ14−2に、コンテンツの先読みのリクエストを送信し、これに応じてプロキシ14−2からネットワーク12を介して送信されてくるコンテンツを受信することで、コンテンツを先読みする。
この場合、先読みしようとするコンテンツを、P2Pプロトコルにより提供することがコンテンツ情報に記述されているとき、プロキシ14−1は、P2Pプロトコルによりコンテンツを取得する。
さらに、この場合、プロキシ14−1は、光インターフェースである通信部130により、GMPLS(Generalized Multi-Protocol Label Switching)などのプロトコルを用いて、光ネットワークであるネットワーク12−2に、動的に光パスを構築し、コンテンツを高速に受信できるようにしてもよい。なお、コンテンツを提供する側が動的に光パスを構築するようにしてもよい。
コンテンツを先読みすると、プロキシ14−1は、ネットワーク12を介してコンテンツサーバ11に、コンテンツをダウンロードしたことを示すダウンロード情報を送信する。
このように、プロキシ14−1は、コンテンツを先読みするので、クライアント13−1からコンテンツへのアクセスがあると、即座にコンテンツをクライアント13−1に提供することができる。
なお、コンテンツが暗号化されている場合、クライアント13−1は、プロキシ14−1およびネットワーク12を介して、鍵サーバ16からコンテンツを復号するための鍵を取得して、取得した鍵でコンテンツを復号する。すなわち、プロキシ14−1は、コンテンツが暗号化されている場合、ネットワーク12を介して、鍵サーバ16からコンテンツを復号するための鍵を取得し、取得した鍵をクライアント13−1に供給する。
有料のコンテンツを配信する場合には、鍵の提供と引き替えに課金するようにすればよい。
以下、コンテンツを提供する処理の詳細について説明する。
図15は、コンテンツサーバ11によるコンテンツ情報の提供の処理を説明するフローチャートである。ステップS11において、Webサーバ151は、ネットワーク12を介してプロキシ14から送信されてきたトップページのリクエストを受け取る。Webサーバ151は、受け取ったリクエストをコンテンツ情報生成部152に供給する。
ステップS12において、コンテンツ情報生成部152のメタデータ取得部161は、トップページに記述されている、使用者に提供するコンテンツのコンテンツIDおよびコンテンツのメタデータをコンテンツデータベース154から取得する。コンテンツのメタデータは、コンテンツの名前、コンテンツの説明、コンテンツのジャンル、コンテンツが登録された日付などを示す。
ステップS13において、コンテンツ情報生成部152は、図9または図10を参照して説明したように、XML方式で記述するコンテンツ情報に、ステップS12で取得したコンテンツのメタデータを記述する。
ステップS14において、コンテンツ情報生成部152のプロキシ情報取得部162は、コンテンツIDで特定されるコンテンツを既にダウンロードした他のプロキシ14のIPアドレス、およびそのコンテンツを既にダウンロードした他のプロキシ14において利用可能なプロトコルを示すプロキシ情報を、コンテンツ毎に、コンテンツIDを基に、ダウンロードデータベース155から取得する。すなわち、コンテンツ情報生成部152のプロキシ情報取得部162は、トップページにおいて1つのコンテンツについて記述されている場合、その1つのコンテンツに対するプロキシ情報を、ダウンロードデータベース155から取得し、トップページにおいて複数のコンテンツについて記述されている場合、その複数のコンテンツのそれぞれに対するプロキシ情報を、ダウンロードデータベース155から取得する。
ステップS15において、コンテンツ情報生成部152のプロキシ情報選択部163は、ステップS13の処理で取得したプロキシ情報を基に、コンテンツIDで特定されるコンテンツを既にダウンロードしたプロキシ14があるか否かを判定する。
ステップS15において、コンテンツIDで特定されるコンテンツを既にダウンロードしたプロキシ14があると判定された場合、ステップS16に進み、コンテンツ情報生成部152のプロキシ情報選択部163は、プロキシ14に提示するプロキシ情報であって、コンテンツを既にダウンロードしたプロキシ14についてのプロキシ情報を選択する。
例えば、プロキシ情報選択部163は、ステップS13の処理で取得したプロキシ情報であって、コンテンツを既にダウンロードしたプロキシ14についてのプロキシ情報をランダムに選択する。また、例えば、プロキシ情報選択部163は、スライディングウィンドウによって、コンテンツを既にダウンロードしたプロキシ14であって、最近ダウンロードしたプロキシ14についてのプロキシ情報を選択する。
また、例えば、プロキシ情報選択部163は、ドメインまたはアドレスを基に、プロキシ14に提示するプロキシ情報であって、コンテンツを既にダウンロードしたプロキシ14についてのプロキシ情報を選択する。例えば、プロキシ情報選択部163は、同じサブネットなど、コンテンツ情報を送信しようとするプロキシ14により近いドメインまたはアドレスのプロキシ14についてのプロキシ情報を選択する。
さらに、例えば、プロキシ情報選択部163は、プロキシ14に提示するプロキシ情報であって、コンテンツを既にダウンロードしたプロキシ14についてのプロキシ情報をサイクリックに選択する。
また、例えば、プロキシ情報選択部163は、ダウンロードデータベース155から取得したプロキシ情報にハッシュ関数を適用することでハッシュ値を求めて、求められたハッシュ値によって、プロキシ情報を選択する。ハッシュ値を用いることによって、選択するプロキシ情報の偏りをより少なくすることができる。より具体的には、プロキシ情報選択部163は、ハッシュ値が所定の値以上離れているプロキシ情報を選択したり、ハッシュ値の大きい順にプロキシ情報を選択したり、ハッシュ値の小さい順にプロキシ情報を選択したりする。
ステップS17において、コンテンツ情報生成部152は、ステップS16で選択したプロキシ情報をコンテンツ情報に記述し、ステップS18に進む。
一方、ステップS15において、コンテンツIDで特定されるコンテンツを既にダウンロードしたプロキシ14がないと判定された場合、プロキシ14についてのプロキシ情報をコンテンツ情報に記述する必要がないので、ステップS16およびステップS17はスキップされて、手続きは、ステップS18に進む。
ステップS18において、コンテンツ情報生成部152は、コンテンツサーバ11のIPアドレスおよびコンテンツサーバ11において利用可能なプロトコルを示すプロキシ情報をコンテンツ情報に記述する。
このように、ステップS13およびステップS18、またはステップS17が実行されることにより、例えば、図9を参照して説明したコンテンツ情報が生成されることになる。
ステップS19において、Webサーバ151は、生成されたコンテンツ情報を、ネットワーク12を介して、トップページのリクエストを送信してきたプロキシ14に送信し、処理は終了する。
以上のように、リンク情報を含むコンテンツ情報がプロキシ14に送信される。
図16は、コンテンツサーバ11によるプロキシ情報の記録の処理を説明するフローチャートである。ステップS31において、プロキシ情報記録制御部153のダウンロード情報受信制御部164は、ネットワーク12を介して、プロキシ14から送信されてくる情報であって、コンテンツをダウンロードしたことを示す情報であるダウンロード情報の受信を制御する。ステップS32において、プロキシ情報記録制御部153のプロキシ情報抽出部165は、ステップS31において受信したダウンロード情報から、コンテンツID、ダウンロード情報を送信してきたプロキシ14のIPアドレス、および利用可能なプロトコルを示す情報を抽出する。
ステップS33において、プロキシ情報記録制御部153は、抽出した、コンテンツID、ダウンロード情報を送信してきたプロキシ14のIPアドレス、および利用可能なプロトコルを示す情報をプロキシ情報として、ダウンロードデータベース155に書き込ませ、処理は終了する。
このように、ダウンロードデータベース155に、コンテンツを取得したプロキシ14についてのプロキシ情報が格納されることになる。
次に、プロキシ14によるコンテンツの取得の処理を図17のフローチャートを参照して説明する。ステップS51において、プロキシサーバ181は、クライアント13からトップページのリクエストを受け取る。ステップS52において、プロキシサーバ181は、ネットワーク12を介してコンテンツサーバ11にトップページのリクエストを転送する。
コンテンツサーバ11にトップページのリクエストを転送すると、図15を参照して説明したコンテンツ情報の提供の処理を実行するコンテンツサーバ11からコンテンツ情報が送信されてくるので、ステップS53において、プロキシサーバ181は、ネットワーク12を介してコンテンツサーバ11から送信されてくるコンテンツ情報を受信する。
ステップS54において、プロキシサーバ181のリンク情報抽出部203は、受信したコンテンツ情報からリンク情報を抽出する。例えば、ステップS54において抽出されるリンク情報は、図9を参照して説明したコンテンツ情報の、<url1>と</url1>との間、<url2>と</url2>との間、<url3>と</url3>との間、および<url4>と</url4>との間に配置されているIPアドレスである。リンク情報抽出部203は、抽出したリンク情報をプリフェッチ処理部182に供給する。
ステップS55において、プリフェッチ処理部182は、コンテンツを既にダウンロードしているか否かを判定する。ステップS55において、コンテンツをまだダウンロードしていないと判定された場合、ステップS56に進み、プリフェッチ処理部182の伝送特性測定部206は、リンク情報を基に、コンテンツサーバ11、ミラーサーバ15、およびコンテンツを既にダウンロードしている他のプロキシ14のそれぞれとの伝送の特性を測定する。
例えば、伝送特性測定部206は、リンク情報であるIPアドレスを基に、リンク情報としてそのIPアドレスが記述されている、コンテンツサーバ11、ミラーサーバ15、およびコンテンツを既にダウンロードしている他のプロキシ14のそれぞれにPingを送信する。そして、伝送特性測定部206は、コンテンツサーバ11、ミラーサーバ15、およびコンテンツを既にダウンロードしている他のプロキシ14のそれぞれについて、Pingを送信してから確認応答を受信するまでの時間であるRTTを測る。
また、例えば、伝送特性測定部206は、リンク情報であるIPアドレスを基に、リンク情報としてそのIPアドレスが記述されている、コンテンツサーバ11、ミラーサーバ15、およびコンテンツを既にダウンロードしている他のプロキシ14のそれぞれに対して、Netselectによるコストを計測する。すなわち、伝送特性測定部206は、コンテンツサーバ11、ミラーサーバ15、およびコンテンツを既にダウンロードしている他のプロキシ14のそれぞれについて、所定の回数Pingを送信した場合の、RTTの平均値を求める。
なお、伝送特性測定部206は、トレースルートを用いて、リンク情報としてIPアドレスが記述されている、コンテンツサーバ11、ミラーサーバ15、およびコンテンツを既にダウンロードしている他のプロキシ14のそれぞれまでの、ホップ数(ルータの数)を求めるようにしてもよい。
ステップS57において、ダウンロード先選択部207は、ステップS56において測定された伝送の特性から、コンテンツサーバ11、ミラーサーバ15、およびコンテンツを既にダウンロードしている他のプロキシ14の中の最適なものを選択する。ここにいう最適なものとは、例えば、最も迅速にコンテンツを取得できると推測されるものをいう。
より詳細には、例えば、ステップS57において、ダウンロード先選択部207は、コンテンツサーバ11、ミラーサーバ15、およびコンテンツを既にダウンロードしている他のプロキシ14の中から、RTTが最も小さいものを選択する。
また、例えば、ステップS57において、ダウンロード先選択部207は、コンテンツサーバ11、ミラーサーバ15、およびコンテンツを既にダウンロードしている他のプロキシ14の中から、RTTの平均値が最も小さいものを選択する。
さらに例えば、ダウンロード先選択部207は、コンテンツサーバ11、ミラーサーバ15、およびコンテンツを既にダウンロードしている他のプロキシ14の中から、ホップ数が最も小さいものを選択する。
なお、伝送特性測定部206は、リンク情報としてIPアドレスが記述されている、コンテンツサーバ11、ミラーサーバ15、およびコンテンツを既にダウンロードしている他のプロキシ14のそれぞれについて、所定のデータ量の送受信に必要なターンアラウンドタイムまたは遅延時間などその他の伝送の特性を測定して、ダウンロード先選択部207は、これから、コンテンツサーバ11、ミラーサーバ15、およびコンテンツを既にダウンロードしている他のプロキシ14の中の最適なものを選択するようにしてもよい。
また、複数の伝送の特性が測定され、複数の伝送の特性から最適なものが選択されるようにしてもよい。
ステップS58において、プリフェッチ処理部58は、ステップS57において選択した相手からコンテンツをプリフェッチする。このとき、プリフェッチ処理部58のコンテンツ受信制御部208は、リンク情報に記述されている、利用可能なプロトコルを基に、ネットワーク12を介して、選択した相手にコンテンツを要求し、その相手からコンテンツがネットワーク12を介して送信されてくると、プリフェッチ処理部58のコンテンツ受信制御部208は、送信されてきたコンテンツの受信を制御する。プリフェッチ処理部58は、プリフェッチしたコンテンツ、すなわち受信したコンテンツをコンテンツ読み書き制御部183に供給する。
ステップS59において、コンテンツ読み書き制御部183は、コンテンツデータベース193にコンテンツを記録させる。
ステップS60において、近傍プロキシアドレス読み書き制御部184は、ステップS58でコンテンツをプリフェッチした相手のIPアドレスをプリフェッチ処理部182から取得して、そのIPアドレスが他のプロキシ14のIPアドレスである場合、そのIPアドレスを近傍プロキシデータベース194に追加する。近傍プロキシアドレス読み書き制御部184は、そのIPアドレスがコンテンツサーバ11またはミラーサーバ15のIPアドレスである場合、そのIPアドレスを近傍プロキシデータベース194に追加しない。
ステップS57において、測定された伝送の特性から、コンテンツサーバ11、ミラーサーバ15、およびコンテンツを既にダウンロードしている他のプロキシ14の中の最適なものが選択されているので、ステップS60において、近傍プロキシデータベース194には、より迅速にコンテンツを取得できると推測される近傍のプロキシ14のIPアドレスが格納されることになる。
ステップS61において、ダウンロード情報送信制御部185は、ネットワーク12を介して、コンテンツサーバ11に、コンテンツを取得した旨を示すダウンロード情報であって、自分であるプロキシ14のIPアドレス、取得したコンテンツを特定するコンテンツID、およびコンテンツ送信制御部188において利用可能なプロトコルを示す情報からなるプロキシ情報を含むダウンロード情報を送信し、ステップS62に進む。すなわち、ダウンロード情報送信制御部185は、ネットワーク12を介した、ダウンロード情報のコンテンツサーバ11への送信を制御する。
一方、ステップS55において、コンテンツを既にダウンロードしていると判定された場合、コンテンツをさらにダウンロードする必要はないので、ステップS56乃至ステップS61はスキップされて、手続きは、ステップS62に進む。
ステップS62において、プロキシサーバ202の送信制御部202は、クライアント13への、受信したコンテンツ情報からリンク情報を除去してなるトップページのデータの送信を制御して、処理は終了する。
ステップS62において、送信制御部202は、トップページのデータとして、コンテンツ情報をそのままクライアント13に送信するように送信を制御するようにしてもよい。
このように、プロキシ14は、トップページをコンテンツサーバ11にリクエストしたとき、コンテンツサーバ11から送信されてくるコンテンツ情報に含まれるリンク情報を基に、コンテンツを取得する。
また、プロキシ14は、コンテンツサーバ11、ミラーサーバ15、およびコンテンツを既にダウンロードしている他のプロキシ14のうち、より迅速にコンテンツを取得できると推測される相手からコンテンツを取得する。
なお、プロキシ14は、コンテンツをプリフェッチする前に、クライアント13に、トップページのデータを送信するようにしてもよい。
次に、図18のフローチャートを参照して、プロキシ14による、クライアント13へのコンテンツの提供の処理を説明する。ステップS81において、プロキシサーバ181は、クライアント13からのコンテンツのリクエストを受け取る。
ステップS82において、プロキシサーバ181は、コンテンツデータベース193に格納されているコンテンツのコンテンツIDとリクエストされたコンテンツのコンテンツIDとを比較して、リクエストされたコンテンツを既にダウンロードしているか否かを判定する。ステップS82において、リクエストされたコンテンツを既にダウンロードしていると判定された場合、ステップS83に進み、プロキシサーバ181は、コンテンツ読み書き制御部183に、コンテンツデータベース193からコンテンツを読み出させ、ステップS86に進む。コンテンツデータベース193は、読み出したコンテンツをプロキシサーバ181に供給する。
ステップS82において、リクエストされたコンテンツをまだダウンロードしていないと判定された場合、ステップS84に進み、プロキシサーバ181は、コンテンツサーバ11からコンテンツを取得する。すなわち、プロキシサーバ181は、ネットワーク12を介してコンテンツサーバ11にコンテンツの送信を要求し、その要求に応じてネットワーク12を介してコンテンツサーバ11から送信されてくるコンテンツを受信する。
ステップS85において、プロキシサーバ181は、コンテンツ読み書き制御部183に、受信したコンテンツをコンテンツデータベース193に記録させて、ステップS86に進む。
ステップS86において、プロキシサーバ181の送信制御部202は、ステップS84においてコンテンツサーバ11から受信したコンテンツ、またはステップS83においてコンテンツデータベース193から読み出したコンテンツのクライアント13への送信を制御する。
通常、図17を参照した処理でコンテンツはプリフェッチされているので、プロキシ14は、即座に、コンテンツをクライアントに提供することができる。
ステップS87において、閲覧履歴更新部186は、クライアント13に送信したコンテンツのコンテンツ情報を閲覧履歴データベース195に格納する。ステップS88において、嗜好解析部187は、閲覧履歴データベース195に格納されている、クライアント13の使用者によって閲覧されたコンテンツのコンテンツ情報から、クライアント13の使用者の嗜好を解析し、使用者の嗜好を示す嗜好情報を更新し、処理は終了する。例えば、嗜好情報は、閲覧されたコンテンツのジャンル毎に、コンテンツの閲覧の頻度を示す値である。
以上のように、コンテンツは迅速にクライアント13に提供される。
コンテンツがクライアント13に提供されると、そのコンテンツのコンテンツ情報が閲覧履歴として、閲覧履歴データベース195に格納される。閲覧履歴データベース195に格納されている閲覧履歴から、使用者の好むコンテンツのジャンルなど、使用者の嗜好を知ることができる。
図19は、プロキシ14による、他のプロキシ14へのコンテンツの提供の処理を説明するフローチャートである。ステップS101において、コンテンツ送信制御部188は、利用可能なプロトコルを基に、ネットワーク12を介して送信されてくる、他のプロキシ14からのコンテンツのリクエストを受け取る。なお、コンテンツのリクエストには、要求するコンテンツを特定するコンテンツIDが含まれている。
ステップS102において、コンテンツ読み書き制御部183は、コンテンツデータベース193から、リクエストされたコンテンツを読み出させる。すなわち、コンテンツ送信制御部188は、コンテンツ読み書き制御部183に、コンテンツIDで特定されるコンテンツの読み出しを要求する。すると、コンテンツ読み書き制御部183は、コンテンツデータベース193に、コンテンツIDで特定されるコンテンツを読み出させ、読み出したコンテンツをコンテンツ送信制御部188に供給させる。
ステップS103において、コンテンツ送信制御部188は、利用可能なプロトコルを基に、リクエストを送信してきた他のプロキシ14に、ネットワーク12を介してコンテンツIDで特定されるコンテンツを送信させて、処理は終了する。
このように、コンテンツを取得したプロキシ14は、他のプロキシ14からの要求に応じて、他のプロキシ14にコンテンツを提供する。
なお、図20で示されるように、例えば、使用者31−2のプロキシ14−2とネットワーク12とをつなぐ伝送路の伝送速度が遅く、その伝送路が、プロキシ14−2からコンテンツを伝送する際の、いわゆるボトルネックとなっている場合、プロキシ14−2とは別に、ネットワーク12にプロキシ14−2に対応してキャッシュサーバ281を設けることが好ましい。この場合、キャッシュサーバ281にコンテンツ51を記録し、使用者31−1のプロキシ14−1からコンテンツ51が要求された場合、プロキシ14−2に代えて、キャッシュサーバ281がネットワーク12を介してコンテンツ51をプロキシ14−1に送信する。このようにすることで、ボトルネックの影響を受けることなく、より迅速にプロキシ14−1にコンテンツ51を提供することができる。
次に、コンテンツサーバ11が、リンク情報を提供しないで、コンテンツIDを提供する場合について説明する。
この場合、図21で示されるように、使用者31−1のプロキシ14−1からのトップページのリクエストに応じて、コンテンツサーバ11は、ネットワーク12を介して、コンテンツを特定するコンテンツIDを、プロキシ14−1に供給する。プロキシ14−1は、コンテンツIDを取得すると、ネットワーク12を介して、コンテンツID管理サーバ17にコンテンツIDを送信する。
コンテンツIDを受信したコンテンツID管理サーバ17は、受信したコンテンツIDで特定されるコンテンツのコンテンツ情報を、ネットワーク12を介して、コンテンツIDを送信してきたプロキシ14−1に送信する。コンテンツID管理サーバ17から送信されてくるコンテンツ情報には、リンク情報が含まれているので、プロキシ14−1は、そのリンク情報を基に、コンテンツサーバ11、ミラーサーバ15、またはコンテンツを既にダウンロードしたプロキシ14−2のうち、例えば、プロキシ14−2からコンテンツをダウンロードする。
また、プロキシ14−1は、コンテンツIDを取得すると、近傍プロキシデータベース194に格納されているIPアドレスを基に、近傍のプロキシ14を検索することができる。
すなわち、プロキシ14−1は、コンテンツIDを取得すると、近傍プロキシデータベース194に格納されているIPアドレスを基に、近傍のプロキシ14に、コンテンツIDで特定されるコンテンツを記録しているかを問い合わせる。例えば、近傍プロキシデータベース194に、使用者31−3のプロキシ14−3のIPアドレス、使用者31−4のプロキシ14−4のIPアドレス、および使用者31−5のプロキシ14−5のIPアドレスが格納されている場合、プロキシ14−1は、近傍プロキシデータベース194に格納されているIPアドレスを基に、プロキシ14−3、プロキシ14−4、およびプロキシ14−5のそれぞれに、コンテンツIDで特定されるコンテンツ51を記録しているかを問い合わせる。
例えば、プロキシ14−3およびプロキシ14−5が、コンテンツIDで特定されるコンテンツ51を記録している場合、プロキシ14−3およびプロキシ14−5から、プロキシ14−1に、コンテンツIDで特定されるコンテンツ51を記録している旨の返答が送信されるので、プロキシ14−1は、プロキシ14−3およびプロキシ14−5のいずれかから、コンテンツIDで特定されるコンテンツ51を取得する。
図22および図23は、コンテンツサーバ11が、リンク情報を提供しないで、コンテンツIDを提供する場合の、コンテンツサーバ11によるトップページのデータの提供の処理、プロキシ14によるコンテンツの取得の処理、およびコンテンツID管理サーバ17によるコンテンツ情報の提供の処理を説明するフローチャートである。
ステップS1001およびステップS1002は、それぞれ、図17のステップS51およびステップS52のそれぞれと同様なので、その説明は省略する。
ステップS2001およびステップS2002は、それぞれ、図15のステップS11およびステップS12のそれぞれと同様なので、その説明は省略する。
ステップS2003において、コンテンツ情報生成部152は、XML方式で記述するトップページのデータに、ステップS2002で取得したコンテンツのコンテンツIDおよびメタデータを記述する。ステップS2004において、Webサーバ151は、トップページのデータを、ネットワーク12を介して、トップページのリクエストを送信してきたプロキシ14に送信し、コンテンツサーバ11によるトップページのデータの提供の処理は終了する。
図24および図25は、コンテンツIDの具体例を示す図である。
図24で示されるように、コンテンツIDは、ホストアドレス、コンテンツ番号、およびバージョン番号から構成される。ホストアドレスは、コンテンツサーバ11のアドレス、例えば、コンテンツサーバ11のIPアドレスを示す。コンテンツ番号は、コンテンツに割り付けられる、コンテンツサーバ11上でユニークな値である。バージョン番号は、コンテンツのバージョンを示す。
また、コンテンツの製作者を特定する値およびコンテンツの製作日時をコンテンツIDに含めるようにしてもよい。
図25に例示されるコンテンツIDは、製作者ID、コンテンツ番号、および製作日時から構成される。製作者IDは、コンテンツの製作者を特定する値である。製作日時は、コンテンツが製作された日付および時刻を示す。
このようにすることで、例えば、コンテンツのバージョンのアップなど、コンテンツの内容そのものに改変があったときであっても、改変に応じたコンテンツをコンテンツIDで特定できるようになる。
図22に戻り、ステップS1003において、プロキシサーバ181は、ネットワーク12を介してコンテンツサーバ11から送信されてくるトップページのデータを受信する。
ステップS1004において、プロキシサーバ181のコンテンツID抽出部204は、受信したトップページのデータからコンテンツIDを抽出する。コンテンツID抽出部204は、抽出したコンテンツIDをコンテンツ情報取得部189に供給する。
ステップS1005において、コンテンツ情報取得部189は、コンテンツIDを基に、コンテンツID管理サーバ17に問い合わせる。すなわち、送信制御部210は、ネットワーク12を介した、コンテンツID管理サーバ17へのコンテンツIDの送信を制御する。
ステップS3001において、コンテンツID管理サーバ17のコンテンツ情報通信制御部231は、プロキシ14からのコンテンツIDを基にした問い合わせを受信する。すなわち、コンテンツ情報通信制御部231の受信制御部252は、ネットワーク12を介して、プロキシ14から送信されてくるコンテンツIDの受信を制御する。
ステップS3002において、コンテンツ情報生成部232のプロキシ情報取得部253は、コンテンツIDで特定されるコンテンツを既にダウンロードした他のプロキシ14のIPアドレス、およびそのコンテンツを既にダウンロードした他のプロキシ14において利用可能なプロトコルを示すプロキシ情報を、コンテンツ毎に、コンテンツIDを基に、ダウンロードデータベース234から取得する。
ステップS303において、コンテンツ情報生成部232のプロキシ情報選択部254は、ステップS3002の処理で取得したプロキシ情報を基に、コンテンツIDで特定されるコンテンツを既にダウンロードしたプロキシ14があるか否かを判定する。
ステップS3003において、コンテンツIDで特定されるコンテンツを既にダウンロードしたプロキシ14があると判定された場合、ステップS3004に進み、コンテンツ情報生成部232のプロキシ情報選択部254は、ステップS16と同様の処理で、プロキシ14に提示するプロキシ情報であって、コンテンツを既にダウンロードしたプロキシ14についてのプロキシ情報を選択する。
ステップS3005において、コンテンツ情報生成部232は、ステップS3004で選択したプロキシ情報をコンテンツ情報に記述し、ステップS3006に進む。
一方、ステップS3003において、コンテンツIDで特定されるコンテンツをダウンロードしたプロキシ14がまだないと判定された場合、プロキシ14についてのプロキシ情報をコンテンツ情報に記述する必要がないので、ステップS3004およびステップS3005はスキップされて、手続きは、ステップS3006に進む。
ステップS3006において、コンテンツ情報生成部232は、コンテンツサーバ11のIPアドレスおよびコンテンツサーバ11において利用可能なプロトコルを示すプロキシ情報をコンテンツ情報に記述する。コンテンツ情報生成部232は、このように生成されたコンテンツ情報をコンテンツ情報通信制御部231に供給する。
ステップS3007において、コンテンツ情報通信制御部231は、生成されたコンテンツ情報を、ネットワーク12を介して、トップページのリクエストを送信してきたプロキシ14に送信する。すなわち、コンテンツ情報通信制御部231の送信制御部251は、コンテンツIDで特定されるコンテンツのコンテンツ情報の、ネットワーク12を介した、コンテンツIDを送信してきたプロキシ14への送信を制御する。
ステップS1006において、プロキシ14のコンテンツ情報取得部189は、ネットワーク12を介してコンテンツID管理サーバ17から送信されてくるコンテンツ情報を受信する。すなわち、コンテンツ情報取得部189の受信制御部211は、コンテンツIDを受信したコンテンツID管理サーバ17からネットワーク12を介して送信されてくるコンテンツ情報の受信を制御する。
ステップS1007において、コンテンツ情報取得部189のリンク情報抽出部212は、ステップS1006で受信したコンテンツ情報からリンク情報を抽出する。リンク情報抽出部212は、リンク情報をプリフェッチ処理部182に供給する。
ステップS1008乃至ステップS1013は、それぞれ、図17のステップS55乃至ステップS60のそれぞれと同様なので、その説明は省略する。
ステップS1004において、ダウンロード情報送信制御部185は、ネットワーク12を介して、コンテンツID管理サーバ17に、コンテンツを取得した旨を示すダウンロード情報であって、自分であるプロキシ14のIPアドレス、取得したコンテンツを特定するコンテンツID、およびコンテンツ送信制御部188において利用可能なプロトコルを示す情報からなるプロキシ情報を含むダウンロード情報を送信し、ステップS1015に進む。すなわち、ダウンロード情報送信制御部185は、ネットワーク12を介した、ダウンロード情報のコンテンツID管理サーバ17への送信を制御する。
ステップS1015において、プロキシサーバ202の送信制御部202は、クライアント13への、トップページのデータの送信を制御して、プロキシ14によるコンテンツの取得の処理は終了する。
ステップS3008において、コンテンツID管理サーバ17のプロキシ情報記録制御部233のダウンロード情報受信制御部255は、ネットワーク12を介して、プロキシ14から送信されてくる情報であって、コンテンツをダウンロードしたことを示す情報であるダウンロード情報の受信を制御する。ステップS3009において、プロキシ情報記録制御部233のプロキシ情報抽出部256は、ステップS3008において受信したダウンロード情報から、コンテンツID、ダウンロード情報を送信してきたプロキシ14のIPアドレス、および利用可能なプロトコルを示す情報を抽出する。
ステップS3010において、プロキシ情報記録制御部233は、抽出した、コンテンツID、ダウンロード情報を送信してきたプロキシ14のIPアドレス、および利用可能なプロトコルを示す情報をプロキシ情報として、ダウンロードデータベース234に書き込ませ、コンテンツID管理サーバ17によるコンテンツ情報の提供の処理は終了する。
以上のように、コンテンツサーバ11が、リンク情報を提供しないで、コンテンツIDを提供する場合、コンテンツID管理サーバ17からプロキシ14に、リンク情報を含むコンテンツ情報が送信され、コンテンツ情報に含まれるリンク情報を基に、コンテンツを取得する。すなわち、コンテンツID管理サーバ17が、コンテンツの分散状況、コンテンツを提供可能なネットワーク12上の場所(アドレス)などを把握、管理することになる。
また、コンテンツID管理サーバ17のダウンロードデータベース234に、コンテンツを取得したプロキシ14についてのプロキシ情報が格納されることになる。
なお、コンテンツID管理サーバ17が、所定の範囲のアドレスのプロキシ14に、記録しているコンテンツを問い合わせることで、プロキシ情報を取得するようにしてもよい。
また、コンテンツサーバ11が、リンク情報を提供しないで、コンテンツIDを提供する場合、コンテンツサーバ11がコンテンツを提供しないようにしてもよい。
さらに、プロキシ14は、近傍プロキシデータベース194に格納されているIPアドレスを基に、近傍の他のプロキシ14からコンテンツを取得することができる。
図26および図27は、プロキシ14が、近傍プロキシデータベース194に格納されているIPアドレスを基に、近傍の他のプロキシ14からコンテンツを取得する場合の、コンテンツサーバ11によるトップページのデータの提供の処理、およびプロキシ14によるコンテンツの取得の処理を説明するフローチャートである。
ステップS1101乃至ステップS1104は、それぞれ、図22のステップS1001乃至ステップS1004のそれぞれと同様なので、その説明は省略する。
ステップS2101乃至ステップS2104は、それぞれ、図22のステップS2001乃至ステップS2004と同様、すなわち、コンテンツサーバ11によるトップページのデータの提供の処理は、図22に示す場合と同様なので、その説明は省略する。
ステップS1105において、プリフェッチ処理部182は、コンテンツIDを基に、コンテンツを既にダウンロードしているか否かを判定する。ステップS1105において、コンテンツをまだダウンロードしていないと判定された場合、ステップS1106に進み、プリフェッチ処理部182の他プロキシ問い合わせ部209は、近傍プロキシアドレス読み書き制御部184に、近傍プロキシデータベース194から、近傍のプロキシ14の、1つのIPアドレスを読み出させる。読み出されたIPアドレスは、他プロキシ問い合わせ部209に供給される。
ステップS1107において、他プロキシ問い合わせ部209は、ネットワーク12を介して、コンテンツIDを基に、読み出したIPアドレスのプロキシ14に、コンテンツIDで特定されるコンテンツを記録しているかを問い合わせる。問い合わせを受けた近傍のプロキシ14は、コンテンツIDで特定されるコンテンツを記録しているか否かを示す返答をネットワーク12を介して送信してくるので、ステップS1108において、他プロキシ問い合わせ部209は、問い合わせたプロキシ14からの返答を受信する。
ステップS1109において、他プロキシ問い合わせ部209は、受信した返答から、問い合わせたプロキシ14が、コンテンツIDで特定されるコンテンツを記録しているか否かを判定する。ステップS1109において、問い合わせたプロキシ14が、コンテンツIDで特定されるコンテンツを記録していないと判定された場合、ステップS1110に進み、他プロキシ問い合わせ部209は、近傍プロキシデータベース194に次のIPアドレスが格納されているか否かを判定する。例えば、ステップS1110において、他プロキシ問い合わせ部209は、近傍プロキシアドレス読み書き制御部184に、近傍プロキシデータベース194から次のIPアドレスが格納されているか否かの情報を読み出させるか、または、近傍プロキシデータベース194から格納されているIPアドレスの数を読み出させて、その結果から、近傍プロキシデータベース194に次のIPアドレスが格納されているか否かを判定する。
ステップS1110において、近傍プロキシデータベース194に次のIPアドレスが格納されていると判定された場合、ステップS1111に進み、他プロキシ問い合わせ部209は、近傍プロキシアドレス読み書き制御部184に、近傍プロキシデータベース194から、近傍のプロキシ14の、1つのIPアドレスを読み出させる。ステップS1106の場合と同様に、読み出されたIPアドレスは、他プロキシ問い合わせ部209に供給される。手続きは、ステップS1111の後、ステップS1107に戻り、次のIPアドレスを基に、上述した処理を繰り返す。すなわち、コンテンツを記録しているプロキシ14が見つかるまで、近傍プロキシデータベース194に格納されているIPアドレスを基にした、近傍のプロキシ14へのコンテンツを記録しているかの問い合わせが繰り返される。
ステップS1109において、問い合わせたプロキシ14が、コンテンツIDで特定されるコンテンツを記録していると判定された場合、ステップS1112に進み、プリフェッチ処理部182のコンテンツ受信制御部208は、コンテンツIDで特定されるコンテンツを記録していると判定されたプロキシ14から、コンテンツをプリフェッチする。なお、近傍プロキシデータベース194に、近傍プロキシのアドレスとしてのIPアドレスと共に、その近傍プロキシにおいて利用可能なプロトコルを示す情報が格納されている場合、コンテンツ受信制御部208は、利用可能なプロトコルを基に、ネットワーク12を介して、コンテンツを記録していると判定されたプロキシ14にコンテンツを要求し、その相手からコンテンツがネットワーク12を介して送信されてくると、送信されてきたコンテンツの受信を制御する。プリフェッチ処理部58は、プリフェッチしたコンテンツ、すなわち受信したコンテンツをコンテンツ読み書き制御部183に供給する。
ステップS1113において、コンテンツ読み書き制御部183は、コンテンツデータベース193にコンテンツを記録させ、ステップS1114に進む。
ステップS1110において、近傍プロキシデータベース194に次のIPアドレスが格納されていないと判定された場合、問い合わせる相手がなくなり、コンテンツを記録している近傍プロキシがなかったので、コンテンツをプリフェッチすることなく、手続きは、ステップS1114に進む。
ステップS1105において、コンテンツを既にダウンロードしたと判定された場合、コンテンツをプリエッチする必要はないので、ステップS1106乃至ステップS1113はスキップされて、手続きは、ステップS1114に進む。
ステップS1114において、プロキシサーバ202の送信制御部202は、クライアント13へのトップページのデータの送信を制御して、プロキシ14によるコンテンツの取得の処理は終了する。
このように、近傍プロキシデータベース194に格納されているIPアドレスを基に、近傍の他のプロキシ14からコンテンツを取得することができる。
また、共通のジャンルのコンテンツを好む使用者に使用されている1または複数のプロキシ14から構成されているコミュニティに属するそのプロキシ14からコンテンツを取得するようにしてもよい。
図28は、コミュニティの例を示す図である。コミュニティ301−1は、サッカーのコンテンツを好む使用者に使用されている1または複数のプロキシ14から構成されている。また、コミュニティ301−2は、アイドルのコンテンツを好む使用者に使用されている1または複数のプロキシ14から構成され、コミュニティ301−3は、映画であるコンテンツを好む使用者に使用されている1または複数のプロキシ14から構成されている。
プロキシ14は、メタデータに含まれているジャンル情報で示される、取得しようとするコンテンツのジャンルがサッカーである場合、コミュニティ301−1に属する他のプロキシ14に、そのコンテンツを記録しているか否かを問い合わせて、記録していると返答してきたプロキシ14からそのコンテンツを取得する。
同様に、プロキシ14は、メタデータに含まれているジャンル情報で示される、取得しようとするコンテンツのジャンルがアイドルである場合、コミュニティ301−2に属する他のプロキシ14に、そのコンテンツを記録しているか否かを問い合わせて、記録していると返答してきたプロキシ14からそのコンテンツを取得する。
また、プロキシ14は、メタデータに含まれているジャンル情報で示される、取得しようとするコンテンツのジャンルが映画である場合、コミュニティ301−3に属する他のプロキシ14に、そのコンテンツを記録しているか否かを問い合わせて、記録していると返答してきたプロキシ14からそのコンテンツを取得する。
なお、1つのコミュニティが、共通の複数のジャンルをコンテンツを好む使用者に使用されている1または複数のプロキシ14から構成されるようにしてもよい。
次に、図29および図30を参照して、コミュニティに属する他のプロキシ14からコンテンツを取得する場合の、コンテンツサーバ11によるトップページのデータの提供の処理、およびプロキシ14によるコンテンツの取得の処理を説明する。
ステップS1201およびステップS1202は、それぞれ、図17のステップS51およびステップS52のそれぞれと同様なので、その説明は省略する。
ステップS2201は、図15のステップS11と同様なので、その説明は省略する。
ステップS2202は、コンテンツ情報生成部152のメタデータ取得部161は、トップページに記述されている、クライアント13の使用者に提供するコンテンツについて、コンテンツのジャンルを示すジャンル情報を含むメタデータおよびコンテンツのコンテンツIDをコンテンツデータベース154から取得する。
ステップS2203において、コンテンツ情報生成部152は、XML方式で記述するトップページのデータに、ステップS2202で取得したジャンル情報を含むメタデータおよびコンテンツのコンテンツIDを記述する。ステップS2204において、Webサーバ151は、トップページのデータを、ネットワーク12を介して、トップページのリクエストを送信してきたプロキシ14に送信し、コンテンツサーバ11によるトップページのデータの提供の処理は終了する。
ステップS1203において、プロキシサーバ181は、ネットワーク12を介してコンテンツサーバ11から送信されてくるトップページのデータを受信する。
ステップS1204において、プロキシサーバ181のコンテンツID抽出部204は、受信したトップページのデータからコンテンツIDを抽出し、プロキシサーバ181のジャンル情報抽出部205は、受信したトップページのデータからジャンル情報を抽出する。コンテンツIDは、プリフェッチ処理部182に供給され、ジャンル情報は、コミュニティ選択部192に供給される。
ステップS1205において、プリフェッチ処理部182は、コンテンツを既にダウンロードしているか否かを判定する。ステップS1205において、コンテンツをまだダウンロードしていないと判定された場合、ステップS1206に進み、コミュニティ情報読み書き制御部190は、コミュニティデータベース196から、コミュニティのそれぞれのジャンルを示す情報を読み出す。コミュニティのそれぞれのジャンルを示す情報は、コミュニティ選択部192に供給される。
なお、コミュニティのそれぞれのジャンルを示す情報と、コミュニティに属するプロキシ14のIPアドレスとは、コミュニティデータベース196に予め記録されている。
ステップS1207において、コミュニティ選択部192は、コミュニティのそれぞれのジャンルを示す情報およびジャンル情報を基に、プリフェッチしようとするコンテンツのジャンルとコミュニティのジャンルとから、コミュニティを選択する。この場合、コミュニティ選択部192は、プリフェッチしようとするコンテンツのジャンルに一致するジャンルのコミュニティを選択する。また、コミュニティ選択部192は、プリフェッチしようとするコンテンツのジャンルに類似するか関連するジャンルのコミュニティを選択するようにしてもよい。コミュニティ選択部192は、選択したコミュニティを特定する情報をコミュニティ情報読み書き制御部190に供給する。
ステップS1208において、コミュニティ情報読み書き制御部190は、選択されたコミュニティを特定する情報を基に、コミュニティデータベース196から、選択されたコミュニティに属するプロキシ14のIPアドレスを読み出す。選択されたコミュニティに属するプロキシ14のIPアドレスは、プリフェッチ処理部182に供給される。
ステップS1209において、プリフェッチ処理部182の他プロキシ問い合わせ部209は、読み出したIPアドレスのうち、1つのIPアドレスを選択する。
ステップS1210において、他プロキシ問い合わせ部209は、ネットワーク12を介して、コンテンツIDを基に、読み出したIPアドレスのプロキシ14に、コンテンツIDで特定されるコンテンツを記録しているかを問い合わせる。選択されたコミュニティに属するプロキシ14は、問い合わせを受けると、コンテンツIDで特定されるコンテンツを記録しているか否かを示す返答をネットワーク12を介して送信してくるので、ステップS1211において、他プロキシ問い合わせ部209は、問い合わせたプロキシ14からの返答を受信する。
ステップS1212において、他プロキシ問い合わせ部209は、受信した返答から、問い合わせたプロキシ14が、コンテンツIDで特定されるコンテンツを記録しているか否かを判定する。ステップS1212において、問い合わせたプロキシ14が、コンテンツIDで特定されるコンテンツを記録していないと判定された場合、ステップS1213に進み、他プロキシ問い合わせ部209は、読み出したIPアドレスに次のIPアドレスがあるか否かを判定する。
ステップS1213において、読み出したIPアドレスに次のIPアドレスがあると判定された場合、ステップS1214に進み、他プロキシ問い合わせ部209は、読み出したIPアドレスのうち、次のIPアドレスを選択して、ステップS1210に戻り、次のIPアドレスを基に、上述した処理を繰り返す。すなわち、コンテンツを記録しているプロキシ14が見つかるまで、選択したコミュニティに属するプロキシ14へのコンテンツを記録しているかの問い合わせが繰り返される。
ステップS1212において、問い合わせたプロキシ14が、コンテンツIDで特定されるコンテンツを記録していると判定された場合、ステップS1215に進み、プリフェッチ処理部182のコンテンツ受信制御部208は、コンテンツIDで特定されるコンテンツを記録していると判定されたプロキシ14から、コンテンツをプリフェッチする。
なお、コミュニティデータベース196に、それぞれのコミュニティに属するそれぞれのプロキシ14のIPアドレスと共に、それぞれのプロキシにおいて利用可能なプロトコルを示す情報が格納されている場合、コンテンツ受信制御部208は、利用可能なプロトコルを基に、ネットワーク12を介して、コンテンツを記録していると判定されたプロキシ14にコンテンツを要求し、その相手からコンテンツがネットワーク12を介して送信されてくると、送信されてきたコンテンツの受信を制御する。
プリフェッチ処理部58は、プリフェッチしたコンテンツ、すなわち受信したコンテンツをコンテンツ読み書き制御部183に供給する。
ステップS1216において、コンテンツ読み書き制御部183は、コンテンツデータベース193にコンテンツを記録させ、ステップS1217に進む。
ステップS1213において、読み出したIPアドレスに次のIPアドレスがないと判定された場合、選択されたコミュニティに属するプロキシ14に、コンテンツを記録しているものがなかったので、コンテンツをプリフェッチしないで、手続きは、ステップS1217に進む。
ステップS1205において、コンテンツを既にダウンロードしたと判定された場合、コンテンツをプリエッチする必要はないので、ステップS1206乃至ステップS1216はスキップされて、手続きは、ステップS1217に進む。
ステップS1217において、プロキシサーバ202の送信制御部202は、クライアント13へのトップページのデータの送信を制御して、プロキシ14によるコンテンツの取得の処理は終了する。
このように、ジャンルからコミュニティを選択し、選択されたコミュニティに属する他のプロキシ14からコンテンツを取得することができる。ジャンルからコミュニティを選択するので、コンテンツを記録している可能性が高いプロキシ14から構成されるコミュニティが選択されることになり、コンテンツを取得できる可能性がより高くなる。
なお、使用者の嗜好に基づいて予めピアを作成しておいて、相手に問い合わせるようにしてもよい。例えば、映画好きの使用者のプロキシ14同士が予めつながっているようにしてもよい。
さらにまた、使用者の操作をトリガとすることなく、プロキシ14が、使用者に視聴される可能性が所定の値より高いコンテンツを取得することもできる。
図31で示されるように、プロキシ14−1の使用者31−1が就寝している間に、コンテンツサーバ11からコンテンツ51−1およびコンテンツ51−1の提供が開始され、プロキシ14−2がコンテンツ51−1を取得した場合、コンテンツ51−1が使用者31−1に視聴される可能性が所定の値より高いとき、プロキシ14−1は、プロキシ14−2からコンテンツ51−1を取得する。
さらに、プロキシ14−4の使用者にコンテンツ51−1が視聴される可能性が所定の値より高い場合、プロキシ14−4は、プロキシ14−1からコンテンツ51−1を取得する。さらにまた、プロキシ14−5の使用者にコンテンツ51−1が視聴される可能性が所定の値より高い場合、プロキシ14−5は、プロキシ14−4からコンテンツ51−1を取得する。
図32で示されるように、コンテンツサーバ11として、コンテンツサーバ11−1乃至コンテンツサーバ11−4が設けられ、コンテンツサーバ11−1乃至コンテンツサーバ11−4がそれぞれ、コンテンツ51−1乃至コンテンツ51−4のそれぞれを提供する場合、使用者31−1の嗜好を学習したプロキシ14−1は、例えば、30分に1度、コンテンツサーバ11−1乃至コンテンツサーバ11−4のそれぞれにアクセスして、コンテンツサーバ11−1乃至コンテンツサーバ11−4のそれぞれが提供するコンテンツ51−1乃至コンテンツ51−4が使用者31−1に視聴される可能性を算出して、算出された可能性が所定値より高い場合、コンテンツ51−1乃至コンテンツ51−4のうち、使用者31−1に視聴される可能性が所定値より高いものを取得する。
同様に、使用者31−2の嗜好を学習したプロキシ14−2は、例えば、30分に1度、コンテンツサーバ11−1乃至コンテンツサーバ11−4のそれぞれにアクセスして、コンテンツサーバ11−1乃至コンテンツサーバ11−4のそれぞれが提供するコンテンツ51−1乃至コンテンツ51−4が使用者31−2に視聴される可能性を算出して、算出された可能性が所定値より高い場合、コンテンツ51−1乃至コンテンツ51−4のうち、使用者31−2に視聴される可能性が所定値より高いものを取得する。
次に、図33および図34を参照して、使用者の操作をトリガとすることなく、プロキシ14が、使用者に視聴される可能性が所定の値より高いコンテンツを取得する場合の、コンテンツサーバ11によるトップページのデータの提供の処理、およびプロキシ14によるコンテンツの取得の処理を説明する。
ステップS1301において、プロキシサーバ181は、コンテンツサーバ11に、巡回によるトップページのリクエストを送信する。この場合、例えば、プロキシサーバ181は、いわゆるRSS(Rich Site Summary)(RDF Site Summary)リーダとして構成され、指定したサイトのRSS情報を一定時間ごとに自動的にダウンロードする。
ステップS2301およびステップS2302は、それぞれ、図29のステップS2201およびステップS2202のそれぞれと同様なので、その説明は省略する。
ステップS2303において、コンテンツ情報生成部152は、XML方式で記述するトップページのデータに、ステップS2202で取得したジャンル情報を含むメタデータおよびコンテンツのコンテンツIDを記述する。
ステップS2303において、コンテンツ情報生成部152は、RSSの規格に準拠したトップページのデータに、ジャンル情報を含むメタデータおよびコンテンツのコンテンツIDを記述する。
図35は、RSSの規格に準拠したトップページのデータの例を示す図である。図35のトップページのデータにおける、XML宣言は、図9のコンテンツ情報における場合と同様なので、その説明は省略する。
XML宣言の次に配置されている<rdf:RDF xmlns・・・/mvcb/">および</rdf:RDF>は、いわゆる<rdf:RDF>タグであり、RSSの規格に準拠していることを示す。<rdf:RDF>タグの間には、<channel rdf:about=・・・>および</channel >で括られるchannel要素が配置される。
<channel rdf:about=・・・>タグのabout=に続いて、トップページのアドレスが記述される。
channel要素は、<title>と</title>とで括られるtitle要素、<link>と</link>とで括られるlink要素、<description>と</description>とで括られるdescription要素、<image>と</image>とで括られるimage要素、<items>と</items>とで括られるitems要素、<GENRU>と</GENRU>とで括られるGENRU要素、および<DATE>と</DATE>とで括られるDATE要素により記述される。
title要素は、サマリーの対象であるチャンネルのタイトルを示し、link要素は、RSSにおいてサマリーの対象とするサイトのURIを示す。description要素は、サマリーの対象の内容、機能などの概要を説明し、この場合、コンテンツを説明する。
image要素は、コンテンツの画像を記述する。image要素における、<title>と</title>との間には、画像のタイトルを示す情報が配置され、<url>と</url>との間には、コンテンツを代表する画像の画像データを格納しているファイルの名前が記述される。
items要素は、リソースの目次に相当し、リソースのURIをrdf:li要素のrdf:resource属性で示す。
例えば、1つ目のrdf:li要素のrdf:resource属性は、コンテンツサーバ11のIPアドレスを示し、2つ目のrdf:li要素のrdf:resource属性は、ミラーサーバ15のIPアドレスを示し、3つ目のrdf:li要素のrdf:resource属性は、既にコンテンツを取得したプロキシ14のIPアドレスを示す。
GENRU要素は、コンテンツのジャンルを示すジャンル情報であり、DATE要素は、コンテンツが登録された日付を示す。
このように、ステップS2303において、例えば、図35に示される、RSSの規格に準拠したトップページのデータが生成される。
ステップS2304において、Webサーバ151は、トップページのデータを、ネットワーク12を介して、トップページのリクエストを送信してきたプロキシ14に送信し、コンテンツサーバ11によるトップページのデータの提供の処理は終了する。
ステップS1302において、プロキシサーバ181は、ネットワーク12を介してコンテンツサーバ11から送信されてくるトップページのデータを受信する。ステップS1303において、プロキシサーバ181のコンテンツID抽出部204は、受信したトップページのデータからコンテンツIDを抽出し、プロキシサーバ181のジャンル情報抽出部205は、受信したトップページのデータからジャンル情報を抽出する。コンテンツIDは、プリフェッチ処理部182に供給され、ジャンル情報は、嗜好解析部187に供給される。
ステップS1304において、嗜好解析部187は、嗜好情報とコンテンツのジャンルとから、使用者がコンテンツを嗜好する度合いを示す嗜好度数を計算する。なお、上述したように、嗜好情報は、嗜好解析部187によって、閲覧履歴データベース195に格納されているコンテンツの閲覧履歴(クライアント13の使用者によって閲覧されたコンテンツのコンテンツ情報)を解析することによって得られ、使用者の嗜好を示す。嗜好情報は、クライアント13の使用者がコンテンツを閲覧することによって動的に変化するので、コンテンツのジャンルが同じでも、ステップS1304において、計算される嗜好度数が動的に変化することになる。
換言すれば、ステップS1304において、嗜好解析部187は、クライアント13に供給した他のコンテンツを示す履歴と、コンテンツIDで特定されるコンテンツのジャンルを示すジャンル情報とから、クライアント13の使用者により、コンテンツIDで特定されるコンテンツが視聴される可能性を計算する。嗜好解析部187は、嗜好度数を嗜好度判定部191に供給する。
ステップS1305において、嗜好度判定部191は、ステップS1304で計算された嗜好度数が予め定めた閾値より大きいか否かを判定する。ステップS1305において、嗜好度数が予め定めた閾値より大きいと判定された場合、すなわち、クライアント13の使用者が、コンテンツIDで特定されるコンテンツを視聴する可能性が所定値以上である場合、手続きは、ステップS1306に進み、コンテンツIDで特定されるコンテンツが取得される。
ステップS1306乃至ステップS1317は、それぞれ、図30のステップS1205乃至ステップS1216のそれぞれと同様なので、その説明は省略する。
ステップS1305において、嗜好度数が予め定めた閾値より大きくないと判定された場合、すなわち、クライアント13の使用者が、コンテンツIDで特定されるコンテンツを視聴する可能性が所定値未満である場合、コンテンツを取得する必要はないので、コンテンツを取得しないで、コンテンツの取得の処理は終了する。
このように、使用者の操作をトリガとすることなく、使用者に視聴される可能性が所定の値より高いコンテンツが取得される。
なお、コンテンツを視聴する可能性が高い順に、予め定めた数のコンテンツを取得するようにしてもよい。
また、人気のランキングを示すメタデータを基に、人気のある順に予め定めた数のコンテンツ、例えば、人気トップ10のコンテンツ(人気のある順の10このコンテンツ)を予め取得するようにしてもよい。
以上のように、使用者に面倒な操作を要求することなく、データ量の大きなコンテンツを迅速に取得できるようになる。コンテンツを取得したプロキシ14が、自動的にミラーサーバとしての動作を行うので、ミラーサーバが自動的に増加していくことになる。コンテンツを取得したプロキシ14が、増えれば増えるほど、より迅速にコンテンツを取得できるようになる。すなわち、人気のあるコンテンツほどより迅速に取得できるようになると言える。
また、プロキシ14とネットワーク12との接続が帯域の小さな回線を介する場合であっても、常時接続することで、データ量の大きいコンテンツを閲覧することができる。例えば、暗号化されているコンテンツを復号するための鍵が、コンテンツの公開日に提供される場合、その公開日の前、例えば数日前から、コンテンツの取得を開始することで、公開日の当日に、データ量の大きいコンテンツを即座に閲覧できるようになる。
従って、使用者は、大容量のコンテンツを快適にダウンロードできるようになる。また、使用者に感じられるコンテンツの伝送速度が向上するように飛躍的に改善される。
また、インターネットを介したコンテンツの配信網を実現できる。
ミラーサーバ15が最適に選択されるので、コンテンツの提供の付加が分散されることになる。
コンテンツ情報をXML方式とすれば、クライアント13に表示されるページを変更することなく、本発明を適用できる。
このように、コンテンツを要求し、コンテンツを受信するようにした場合には、コンテンツを取得することができる。また、情報処理装置のうちのコンテンツを取得した第1の情報処理装置からネットワークを介して送信されてくる、第1の情報処理装置のアドレスが格納されている情報であって、コンテンツを取得した旨を示す情報の受信を制御し、コンテンツを取得した第1の情報処理装置のアドレスの記録を制御し、情報処理装置のうちの第2の情報処理装置から要求されたページ生成用のデータであって、コンテンツを取得した第1の情報処理装置のアドレスが配置されたデータを生成し、ネットワークを介した第2の情報処理装置への、生成されたデータの送信を制御し、ネットワークを介して提供装置から送信されてくるページ生成用のデータであって、コンテンツを取得した他の情報処理装置のアドレスが配置されたデータの受信を制御し、受信したデータに配置されているアドレスを基に他の情報処理装置に要求することで他の情報処理装置から送信されてくるコンテンツの受信を制御し、受信したコンテンツの記録を制御し、情報処理装置のアドレスが格納されている情報であって、コンテンツを取得した旨を示す情報の、ネットワークを介した提供装置への送信を制御し、受信したデータまたは記録されたコンテンツの端末装置への送信を制御するようにした場合には、使用者に面倒な操作を要求することなく、データ量の大きなコンテンツを迅速に取得することができる。
情報処理装置のうちのコンテンツを取得した第1の情報処理装置からネットワークを介して送信されてくる、第1の情報処理装置のアドレスが格納されている情報であって、コンテンツを取得した旨を示す情報の受信を制御し、コンテンツを取得した第1の情報処理装置のアドレスの記録を制御し、情報処理装置のうちの第2の情報処理装置から要求されたページ生成用のデータであって、コンテンツを取得した第1の情報処理装置のアドレスが配置されたデータを生成し、ネットワークを介した第2の情報処理装置への、生成されたデータの送信を制御するようにした場合には、使用者に面倒な操作を要求することなく、データ量の大きなコンテンツを迅速に取得させることができる。
ネットワークを介して提供装置から送信されてくるページ生成用のデータであって、コンテンツを取得した他の情報処理装置のアドレスが配置されたデータの受信を制御し、受信したデータに配置されているアドレスを基に他の情報処理装置に要求することで他の情報処理装置から送信されてくるコンテンツの受信を制御し、受信したコンテンツの記録を制御し、情報処理装置のアドレスが格納されている情報であって、コンテンツを取得した旨を示す情報の、ネットワークを介した提供装置への送信を制御し、受信したデータまたは記録されたコンテンツの端末装置への送信を制御するようにした場合には、使用者に面倒な操作を要求することなく、データ量の大きなコンテンツを迅速に取得することができる。
なお、プロキシ14を独立した装置であると説明したが、これに限らず、クライアント13の機能として設けたり、ハードディスクレコーダ、セットトップボックス、またはルータなどネットワーク12に接続できる機器の機能として設けるようにしてもよい。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図6または図7に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスクを含む)、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア111若しくはリムーバブルメディア132、または、プログラムが一時的もしくは永続的に格納されるROM102若しくはROM122や、記憶部108若しくは記憶部128を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインターフェースである通信部109、通信部129、若しくは通信部130を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。