(57)【特許請求の範囲】
【請求項１】
コンテンツを保存するコンテンツ保存手段と、
コンテンツを要求する要求元を示す情報と、要求の対象であるコンテンツを判定するための条件であるリクエスト条件と、前記要求元が保存しているコンテンツの情報を含む要求元保存済コンテンツとを含むリクエストメッセージを受信及び送信する通信手段と、
前記コンテンツ保存手段に保存されているコンテンツにおいて、前記リクエスト条件を満足し、かつ、前記要求元保存済コンテンツに含まれないコンテンツを判定するリクエスト判定手段と、
前記要求元保存済コンテンツに含まれないコンテンツがあると判定された場合、前記判定されたコンテンツに関する情報を前記要求元保存済コンテンツに追加して前記リクエストメッセージを更新し、前記判定されたコンテンツを前記要求元に送信し、前記更新したリクエストメッセージを他の装置に送信し、
コンテンツがないと判定された場合、前記リクエストメッセージを更新しないで他の装置に送信するリクエストメッセージ処理手段と
を含む情報処理装置。
【請求項２】
前記リクエスト判定手段が、
前記通信手段を介して、前記判定したコンテンツを前記要求元に送信する
請求項１に記載の情報処理装置。
【請求項３】
前記リクエスト判定手段が、
前記リクエスト条件の所定の一部を用いて判定する
請求項１又は２に記載の情報処理装置。
【請求項４】
前記リクエストメッセージ処理手段が、
前記通信手段を介して、前記更新したリクエストメッセージを送信する
請求項１ないし３のいずれか１項に記載の情報処理装置。
【請求項５】
前記通信手段が
前記コンテンツを受信する
請求項１ないし４のいずれか１項に記載の情報処理装置。
【請求項６】
前記リクエストメッセージが、
前記リクエストメッセージが転送された装置を示す情報を含み、
前記リクエストメッセージ処理手段が、
前記転送された装置を示す情報に、自装置に関する情報を追加し、
前記通信手段が、
前記転送された装置を示す情報を基に、前記リクエストメッセージを転送する装置を決定する
請求項１ないし５のいずれか１項に記載の情報処理装置。
【請求項７】
自装置が担当装置であるか否かを判定する担当装置判断手段をさらに含み、
前記リクエストメッセージが、
コンテンツを必ず保存する担当装置に関する情報を含み、
前記リクエストメッセージ処理手段が、
前記担当装置判断手段の判断の結果、自装置が前記担当装置の場合に、前記リクエストメッセージを転送しない
請求項１ないし６のいずれか１項に記載の情報処理装置。
【請求項８】
コンテンツを要求する要求元を示す情報と、要求の対象であるコンテンツを判定するための条件であるリクエスト条件と、前記要求元が保存しているコンテンツの情報を含む要求元保存済コンテンツとを含むリクエストメッセージを受信し、
前記保存されているコンテンツにおいて、前記リクエスト条件を満足し、かつ、前記要求元保存済コンテンツに含まれないコンテンツを判定し、
前記要求元保存済コンテンツに含まれないコンテンツがあると判定された場合、前記判定されたコンテンツに関する情報を前記要求元保存済コンテンツに追加して前記リクエストメッセージを更新し、前記判定されたコンテンツを前記要求元に送信し、前記更新したリクエストメッセージを他の装置に送信し、
コンテンツがないと判定された場合、前記リクエストメッセージを更新しないで他の装置に送信する
情報処理方法。
【請求項９】
コンテンツを要求する要求元を示す情報と、要求の対象であるコンテンツを判定するための条件であるリクエスト条件と、前記要求元が保存しているコンテンツの情報を含む要求元保存済コンテンツとを含むリクエストメッセージを受信する処理と、
前記保存されているコンテンツにおいて、前記リクエスト条件を満足し、かつ、前記要求元保存済コンテンツに含まれないコンテンツを判定する処理と、
前記要求元保存済コンテンツに含まれないコンテンツがあると判定された場合、前記判定されたコンテンツに関する情報を前記要求元保存済コンテンツに追加して前記リクエストメッセージを更新し、前記判定されたコンテンツを前記要求元に送信し、前記更新したリクエストメッセージを他の装置に送信する処理と、
コンテンツがないと判定された場合、前記リクエストメッセージを更新しないで他の装置に送信する処理と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報の通信に関し、特に複数の装置を経由して情報を通信する情報処理装置、情報処理方法、及び、プログラムに関する。
【背景技術】
【０００２】
近年、ネットワークの規模が、拡大している。そのため、ネットワークに接続しているユーザの装置（以下、単に「ユーザ」と呼ぶ場合もある）において、コンテンツ等のデータを取得するための時間が、増大している。【０００３】
そこで、ユーザの装置がコンテンツを取得するまでの時間を短縮するための技術が、提案されている。このような技術として、コンテンツを複数のサーバに配置して、局所的なトラフィック集中を緩和するＣＤＮ（Contents Delivery Network）がある（例えば、特許文献１を参照）。あるいは、このような技術として、キャッシュを利用したコンテンツ取得が可能なＣＣＮ（Content-Centric Networking）の技術が、提案されている（例えば、非特許文献１を参照）。【０００４】
ＣＤＮは、地理的に離れた場所に、複数のサーバを配置する。そして、それらサーバが、コンテンツを、複数、かつ、分散配置するように、保存（ミラーリング）する。そして、所定の管理サーバは、ユーザの装置から、コンテンツの要求を受信した場合、コンテンツを保持するサーバの中で、ユーザの装置に、地理的又はネットワーク的に最も近いサーバを、コンテンツの取得先として、指定する。ＣＤＮは、このような動作を基に、ユーザの装置における高速なコンテンツの取得を可能とする。このように、ＣＤＮでは、管理サーバが、コンテンツの配置場所を把握している。【０００５】
一般的に、コンテンツの取得の動作は、コンテンツを保存するサーバを検索し、そのサーバに対してコンテンツの要求を送信する動作となる。また、ＩＰ（Internet Protocol）ネットワークにおいて、一般的に、ルータが、ＩＰアドレスに対応する出力ポートを示すルーティングテーブルを保持し、経路制御を実行している。【０００６】
これに対し、ＣＣＮにおけるコンテンツの取得は、コンテンツ名を用いて実現されている。ＣＣＮにおけるルータは、コンテンツ名に対応する出力ポートを示すＦＩＢ（Forwarding Information Base）テーブルを保持する。例えば、ＣＣＮのルータは、コンテンツ名の冒頭の文字がＡならば出力ポート１、コンテンツ名の冒頭の文字がＢならば出力ポート２という対応情報を含むＦＩＢテーブルを保持し、経路制御を実行している。【０００７】
ＣＣＮは、ルータ及びサーバなどで構成されたネットワークである。ＣＣＮでは、コンテンツを要求する装置が、ＣＣＮに、コンテンツに対応するコンテンツ名を通知する。そして、ＣＣＮが、コンテンツ名を基にアドレスを解決し、コンテンツを要求した装置にアドレス情報を送信する。【０００８】
また、ＣＣＮにおいて、コンテンツのキャッシング機能を持つルータは、コンテンツを中継した場合に、中継したコンテンツをキャッシングする。そして、そのルータは、キャッシングしたコンテンツの取得の要求を受信した場合、コンテンツを要求した装置に対して、キャッシュしているコンテンツを送信する。この動作を基に、ＣＣＮにおいて、一度キャッシュされたコンテンツは、そのコンテンツが、存在していた場所（サーバ）より、ユーザに近い場所（中継ルータ）から送信される。そのため、コンテンツを供給した装置は、コンテンツが本来存在する場所からの送信より、早期にコンテンツを取得できる。つまり、ＣＣＮは、コンテンツ取得時間を短縮できる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９−０５４１８２号公報
【非特許文献】
【００１０】
【非特許文献１】Van Jacobson, Mark Mosko, Diana Smetters, and JJ Garcia-Luna, "Content-centric networking", Palo Alto Research Center, Whitepaper, January 30, 2007.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１に記載の技術（ＣＤＮ）のように、所定の管理サーバがコンテンツを保存している装置を管理する技術では、管理サーバにコンテンツを保持する装置の配置場所を登録しておくことが、必要である。【００１２】
管理サーバに新しくコンテンツを保存した装置を登録するためには、新たにコンテンツを保存した装置が、管理サーバに、コンテンツを保存したことを通知する必要がある。あるいは、コンテンツを登録する装置が、管理サーバに、コンテンツを保存した装置の配置場所を通知する必要がある。そのため、コンテンツを保存する装置及び保存されるコンテンツの増加に伴い、コンテンツに関する情報の通知及びコンテンツの管理において、複雑の度合いが、増加する。さらに、管理サーバが、機能しなくなった場合（例えば、装置のダウン）、コンテンツを利用する装置は、コンテンツを取得ができなくなる。【００１３】
このように、特許文献１に記載の技術（ＣＤＮ）は、コンテンツを保存する装置に加え、管理用のサーバなど他の装置が必要であるという問題点があった。さらに、特許文献１に記載の技術は、コンテンツの管理が複雑となり、コンテンツを保持する装置に加え、その他の装置（管理用のサーバ）の故障時にも、コンテンツを取得できなくなるという問題点があった。【００１４】
また、非特許文献１に記載の技術（ＣＣＮ）には、次に詳細に説明するように、非効率的になるという問題点があった。【００１５】
図１７に示されているネットワーク構成を参照して、ＣＣＮにおける問題点を説明する。【００１６】
図１７に示されているネットワークは、複数の端末（Ｎ１ないしＮ５）と、要求端末（Ｓ１）と、端末を接続する通信リンクとで構成されている。また、説明に用いるコンテンツ（Ｃ１ないしＣ５）は、位置情報が付与されている。要求端末Ｓ１は、コンテンツの要求として、コンテンツを指定する条件（例えば、位置情報としてのエリア（範囲又は領域））を指定する。そして、要求端末Ｓ１は、そのような条件を含む要求を用いて、指定したエリア内の位置情報が付与されたコンテンツを取得する。【００１７】
例えば、要求端末Ｓ１は、「中心座標の位置（ｘ１，ｙ１）から半径ｒ１の略円となるエリアＡ１内のコンテンツ」との条件を用いて、コンテンツを要求する。【００１８】
ここで、指定したエリアＡ１内に位置情報が付与されたコンテンツは、コンテンツＣ１、Ｃ２、Ｃ３、Ｃ４、及びＣ５とする。そして、コンテンツ（Ｃ１ないしＣ５）は、図１７に示されているように、通信端末Ｎ１、Ｎ３及びＮ４に、分散配置されているとする。ここで、通信端末Ｎ３が、オリジナルのコンテンツ（Ｃ１ないしＣ５）を保持する端末とする。つまり、分散配置に基づくキャッシュ機能が働かない場合、要求端末Ｓ１は、全てのコンテンツを通信端末Ｎ３から取得する必要がある。【００１９】
また、要求端末Ｓ１は、どの端末がどのコンテンツを保存しているか、コンテンツとして何があるのか、及び、コンテンツが幾つ存在しているかなどが、分からない。そのため、要求端末Ｓ１にとって、コンテンツの要求は、不特定多数のコンテンツを対象とする要求となる。【００２０】
ＣＣＮでは、コンテンツ自体が、コンテンツの配置場所(アドレス)に関する情報を含む。例えば、コンテンツ（Ｃ１ないしＣ５）を、コンテンツの種類（一例として「data」とする）と、エリア（一例として「Ａ１」とする）と、コンテンツ名とを用いた構造化として表すと、コンテンツは、それぞれ、次のように表される。コンテンツＣ１は、「/data/Ａ１/Ｃ１」である。コンテンツＣ２は、「/data/Ａ１/Ｃ２」である。コンテンツＣ３は、「/data/Ａ１/Ｃ３」である。コンテンツＣ４は、「/data/Ａ１/Ｃ４」である。コンテンツＣ５は、「/data/Ａ１/Ｃ５」である。【００２１】
そして、要求端末Ｓ１は、コンテンツの要求として、コンテンツの範囲として「/data/Ａ１」に含まれるコンテンツを要求するＩｎｔｅｒｅｓｔメッセージを用いる。つまり、要求端末Ｓ１は、リクエストメッセージを送信して、コンテンツを取得する。【００２２】
ここで、Ｉｎｔｅｒｅｓｔメッセージの通信経路（転送経路）は、通信端末Ｎ１、Ｎ２、及びＮ３の順とする。【００２３】
キャッシュ機能を用いない場合、要求端末Ｓ１が送信するリクエストメッセージ（Ｉｎｔｅｒｅｓｔメッセージ）は、「Ｓ１→Ｎ１→Ｎ２→Ｎ３」と送信される。そして、リクエストメッセージに対応するコンテンツは、「Ｎ３→Ｎ２→Ｎ１→Ｓ１」と送信される。つまり、通信経路は、「Ｓ１→Ｎ１→Ｎ２→Ｎ３→Ｎ２→Ｎ１→Ｓ１」となる。【００２４】
これに対し、例えば、端末Ｎ１が、対象となる全てのコンテンツ（例えば、コンテンツＣ３）を保存している場合、端末Ｎ１は、要求端末Ｓ１に、リクエストメッセージに対応したコンテンツを返送する。この場合、通信経路は、「Ｓ１→Ｎ１→Ｓ１」となる。このように、ＣＣＮは、本来、「Ｓ１→Ｎ１→Ｎ２→Ｎ３→Ｎ２→Ｎ１→Ｓ１」となる通信経路を、「Ｓ１→Ｎ１→Ｓ１」と短縮し、要求端末Ｓ１におけるコンテンツ取得時間を短縮する。【００２５】
しかし、通信経路の途中の端末（例えば、Ｎ１）は、要求の対象となる全てのコンテンツではなく、一部のコンテンツを保存（キャッシュ）している場合がある。この場合でも、その端末は、保存しているコンテンツを要求端末Ｓ１に送信する。例えば、図１７に示されているように、端末Ｎ１が、コンテンツＣ３及びＣ５を保存している場合、端末Ｎ１は、コンテンツＣ３及び／又はＣ５を含むコンテンツの要求に対し、コンテンツＣ３及び／又はＣ５を、要求端末Ｓ１に送信する。そして、コンテンツを送信した場合、その端末（例えば、Ｎ１）は、リクエストメッセージを、通信経路における次の端末（例えば、Ｎ２）に転送しない。【００２６】
端末がリクエストメッセージを転送しない理由は、次のとおりである。コンテンツの一部を転送した端末Ｎ３が、コンテンツを送信し、かつ、リクエストメッセージを転送した場合、転送済みのコンテンツを保存する端末Ｎ５が、リクエストメッセージを受信する可能性がある。その場合、転送済みコンテンツを保持する端末Ｎ５は、リクエストメッセージに対応して、転送済みのコンテンツを送信する。例えば、端末Ｎ３がリクエストメッセージを受信した場合、端末Ｎ５は、コンテンツＣ１ないしＣ５を、要求端末Ｓ１に送信する。その結果、要求端末Ｓ１は、コンテンツＣ３及びＣ５を重複受信する。このように、コンテンツを送信した端末が、リクエストメッセージを転送する場合、要求端末Ｓ１は、経路上にあるコンテンツを保存する全ての端末からコンテンツを重複受信することになる。このような重複受信を防ぐため、端末は、コンテンツを送信した場合、リクエストメッセージを転送しない。【００２７】
つまり、コンテンツの一部がキャッシュされた場合、要求端末Ｓ１は、キャッシュされた一部のコンテンツしか取得できない。【００２８】
このように、コンテンツが、複数の装置に、不均一に分散配置されている場合、ＣＣＮには、適切に機能しないという問題点があった。【００２９】
また、ＣＣＮは、例えば、「/data/Ａ１/＊（＊は、ワイルドカードを示す）」のような、複数のコンテンツをリクエストする手段を備えていない。【００３０】
なお、ＣＣＮは、Ｉｎｔｅｒｅｓｔメッセージにｅｘｃｌｕｄｅフィールドを備えている。ｅｘｃｌｕｄｅフィールドに含まれるコンテンツは、取得の対象外となる。そこで、要求端末Ｓ１は、Ｉｎｔｅｒｅｓｔメッセージのｅｘｃｌｕｄｅフィールドを用いて、複数のコンテンツを取得することができる。【００３１】
すなわち、要求端末Ｓ１は、コンテンツを取得後、既に取得済みのコンテンツの情報をｅｘｃｌｕｄｅフィールドに追加する。そして、要求端末Ｓ１は、再度、Ｉｎｔｅｒｅｓｔメッセージ（リクエストメッセージ）を送信する。その結果、要求端末Ｓ１は、ｅｘｃｌｕｄｅフィールドに記載がないコンテンツを取得できる。要求端末Ｓ１は、コンテンツを取得できなくなるまでこの動作を繰り返して、リクエストメッセージの対象であるネットワーク内の全てのコンテンツを取得できる。【００３２】
しかし、この動作は、要求端末Ｓ１が、リクエストメッセージを複数回送信する必要である。そのため、この動作は、非常に、非効率な動作である。【００３３】
このように、非特許文献１に記載の技術（ＣＣＮ）には、動作が非効率的になるという問題点があった。【００３４】
本発明の目的は、上記問題点を解決し、管理サーバなどを必要とせずに、複数のコンテンツを効率的に取得する情報処理装置、情報処理方法、及び、プログラムを提供することにある。
【課題を解決するための手段】
【００３５】
本発明の一形態における情報処理装置は、コンテンツを保存するコンテンツ保存手段と、コンテンツを要求する要求元を示す情報と、要求の対象であるコンテンツを判定するための条件であるリクエスト条件と、要求元が保存しているコンテンツの情報を含む要求元保存済コンテンツとを含むリクエストメッセージを受信及び送信する通信手段と、コンテンツ保存手段に保存されているコンテンツにおいて、リクエスト条件を満足し、かつ、要求元保存済コンテンツに含まれないコンテンツを判定するリクエスト判定手段と、判定されたコンテンツに関する情報を要求元保存済コンテンツに追加してリクエストメッセージを更新するリクエストメッセージ処理手段とを含む。
【００３６】
本発明の一形態におけるデータ処理方法は、コンテンツを保存し、コンテンツを要求する要求元を示す情報と、要求の対象であるコンテンツを判定するための条件であるリクエスト条件と、要求元が保存しているコンテンツの情報を含む要求元保存済コンテンツとを含むリクエストメッセージを受信し、保存されているコンテンツにおいて、リクエスト条件を満足し、かつ、要求元保存済コンテンツに含まれないコンテンツを判定し、判定されたコンテンツに関する情報を要求元保存済コンテンツに追加してリクエストメッセージを更新する。
【００３７】
本発明の一形態における記録媒体は、コンテンツを保存する処理と、コンテンツを要求する要求元を示す情報と、要求の対象であるコンテンツを判定するための条件であるリクエスト条件と、要求元が保存しているコンテンツの情報を含む要求元保存済コンテンツとを含むリクエストメッセージを受信する処理と、保存されているコンテンツにおいて、リクエスト条件を満足し、かつ、要求元保存済コンテンツに含まれないコンテンツを判定する処理と、判定されたコンテンツに関する情報を要求元保存済コンテンツに追加してリクエストメッセージを更新する処理とをコンピュータに実行させるプログラムをコンピュータ読み取り可能に記録する。
【発明の効果】
【００３８】
本発明に基づけば、管理サーバなどを必要とせずに、複数のコンテンツを効率的に取得するとの効果を奏することができる。
【図面の簡単な説明】
【００３９】
【図１】図１は、本発明における第１の実施形態に係る情報処理装置を含むネットワークの一例を示すブロック図である。
【図２】図２は、第１の実施形態に係る情報処理装置の構成の一例を示すブロック図である。
【図３】図３は、第１の実施形態に係るリクエストメッセージのフォーマットの一例を示す図である。
【図４】図４は、第１の実施形態に係るリクエストメッセージの一例を示す図である。
【図５】図５は、第１の実施形態に係るリクエストメッセージの一例を示す図である。
【図６】図６は、第１の実施形態に係るリクエストメッセージの一例を示す図である。
【図７】図７は、第１の実施形態に係るリクエストメッセージの一例を示す図である。
【図８】図８は、第１の実施形態に係る情報処理装置の動作の一例を示すフローチャートである。
【図９】図９は、第１の実施形態に係る情報処理装置の動作の一例を示すフローチャートである。
【図１０】図１０は、第１の実施形態の変形例に係る情報処理装置の構成の一例を示すブロック図である。
【図１１】図１１は、第２の実施形態に係る情報処理装置の構成の一例を示すブロック図である。
【図１２】図１２は、第２の実施形態に係るリクエストメッセージのフォーマットの一例を示す図である。
【図１３】図１３は、第３の実施形態に係る情報処理装置の構成の一例を示すブロック図である。
【図１４】図１４は、第３の実施形態に係るリクエストメッセージのフォーマットの一例を示す図である。
【図１５】図１５は、第３の実施形態に係る情報処理装置の動作の一例を示すフローチャートである。
【図１６】図１６は、第３の実施形態に係る情報処理装置の動作の別の一例を示すフローチャートである。
【図１７】図１７は、背景技術の説明に用いるネットワーク構成を示す図である。
【発明を実施するための形態】
【００４０】
次に、本発明の実施形態について図面を参照して説明する。
【００４１】
なお、各図面は、本発明の実施形態を説明するものである。ただし、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。
【００４２】
また、以下の説明に用いる図面において、本発明の実施形態に関係しない周知の部分の構成については、記載を省略し、図示しない場合もある。
【００４３】
＜第１の実施形態＞
本発明における第１の実施形態について、図面を参照して説明する。
【００４４】
［説明の前提］
まず、以下の説明における前提について説明する。
【００４５】
図１は、本発明における第１の実施形態に係る情報処理装置２００を含むネットワーク２５０の構成の一例を示すブロック図である。
【００４６】
ネットワーク２５０は、所定の通信手段（リンク）で接続された複数の情報処理装置２００を含む。ここで、いずれかの情報処理装置２００が、他の情報処理装置２００が保存するデータ（以下、「コンテンツ」と呼ぶ）を要求（リクエスト）するためのメッセージ（以下、「リクエストメッセージ」と呼ぶ）を送信する。以下、最初にリクエストメッセージを送信する情報処理装置２００を「要求元」と呼ぶ。なお、リクエストメッセージは、クエリーとも呼ばれる。
【００４７】
また、情報処理装置２００は、所定の経路に沿って、他の情報処理装置２００（以下、「前の装置」と呼ぶ）からリクエストメッセージを受信した場合、リクエストメッセージの対応した処理を実行する。そして、情報処理装置２００は、必要に応じて、その経路における次の情報処理装置２００（以下、「次の装置」と呼ぶ）にリクエストメッセージを転送する。
【００４８】
また、以下の説明において、ネットワーク２５０におけるリクエストメッセージの転送経路は、特に制限されない。情報処理装置２００は、いずれの情報処理装置２００から、リクエストメッセージを受信してもよい。また、情報処理装置２００は、いずれの情報処理装置２００にリクエストメッセージを送信してよい。
【００４９】
なお、図１においてネットワーク２５０が含む情報処理装置２００の数は、一例であり、本実施形態は、これに限られない。例えば、ネットワーク２５０は、６台未満の情報処理装置２００を含んでもよく、６台を超える情報処理装置２００を含んでもよい。
【００５０】
また、ネットワーク２５０の通信手段（リンク）は、特に制限されない。ネットワーク２５０の通信手段（リンク）は、無線、又は、有線でもよい。さらに、ネットワーク２５０は、複数の種類の通信手段を含んでもよい。また、ネットワーク２５０は、１対１の通信ではなく、１対多通信、又は、多対多通信を用いてもよい。
【００５１】
また、ネットワーク２５０における転送の経路は、固定でもよく、動的に変化してもよい。さらに、ネットワーク２５０における転送の経路は、情報処理装置２００が、リクエストメッセージを重複して受信するように設定されてもよい。つまり、情報処理装置２００がリクエストメッセージを受信する回数は、特に制限されない。情報処理装置２００は、リクエストメッセージを、複数回受信してもよい。また、ネットワーク２５０は、リクエストメッセージを受信しない情報処理装置２００を、含んでもよい。
【００５２】
また、ネットワーク２５０における転送経路の選択の方法は、特に制限されない。例えば、選択方法は、ネットワーク２５０内からランダムに転送先の装置を選択する処理を繰り返す方法でもよい。このような経路選択方法の一例として、ルーティングプロトコルが、ある。あるいは、選択方法は、ネットワーク２５０が有線ネットワークの場合、ＲＩＰ（Routing Information Protocol）又はＯＳＰＦ（Open Shortest Path First）でもよい。また、選択方法は、ネットワーク２５０が無線ネットワークの場合、ＯＬＳＲ（Optimized Link State Routing）又はＡＯＤＶ（Ad-hoc On Demand distance Vector）でもよい。また、選択された経路は、１本に限らず、複数本の経路のパスを含んでもよい。
【００５３】
本実施形態の説明では、一例として、経路は、図１に示されているように、左側下の情報処理装置２００から、時計回りに、左側中央、左側上、右側上、右側中央、及び、右側下の情報処理装置２００の順とする。ただし、この経路は、説明に用いるための一例である。情報処理装置２００は、上記のとおり、各種の手法を用いて、リクエストメッセージの送信先を決めてもよい。
【００５４】
また、情報処理装置２００は、自装置以外の情報処理装置２００（以下、「他の装置」と呼ぶ）が保存するコンテンツを知らない。
【００５５】
なお、ネットワーク２５０に含まれる情報処理装置２００は、いずれも、同様の動作が可能であり、特に区別はない。ただし、以下の説明の便宜のため、次のような前提を用いる。
【００５６】
要求元は、図１における左側下の情報処理装置２００（二重丸の情報処理装置２００）とする。そして、要求元である情報処理装置２００は、例えば、自装置で動作するアプリケーション又は図示しない装置から、コンテンツＣ１ないしＣ５の５つのコンテンツに対する取得の要求を受信する。その結果、要求元である情報処理装置２００は、コンテンツＣ１ないしＣ５を取得する。ただし、要求元の情報処理装置２００は、コンテンツＣ１を保存している。したがって、要求元の情報処理装置２００は、実際の取得動作として、コンテンツＣ２ないしＣ５を取得すればよい。
【００５７】
また、左側中央の情報処理装置２００（灰色の円の情報処理装置２００）は、コンテンツＣ３及びＣ５を保存している。また、右側中央の情報処理装置２００は、コンテンツＣ３及びＣ４を保存している。また、右側上の情報処理装置２００（黒塗り円の情報処理装置２００）は、コンテンツＣ１ないしＣ５を保存している。つまり、この情報処理装置２００が、コンテンツの保存元の装置である。
【００５８】
また、以下の説明において、コンテンツの送信及び受信の手法は、特に制限されない。そこで、以下では、一例として、本実施形態は、ＣＣＮに用いられているようなコンテンツ名を用いるとする。この場合、例えば、コンテンツ名が、ネットワーク２５０内の装置間で既知のコンテンツの場合、コンテンツの要求元である情報処理装置２００は、コンテンツ名を含むリクエストメッセージを用いて、コンテンツを保存する装置にコンテンツを要求する。
【００５９】
さらに、情報処理装置２００は、リクエストメッセージの送信及び転送に加え、コンテンツのネットワーク２５０内での冗長度を大きくするために、他の装置にコンテンツを送信する場合もある。つまり、ネットワーク２５０内の少なくとも一部の情報処理装置２００は、少なくとも一部のコンテンツを共有する。さらに、コンテンツには、全装置で共有されるコンテンツが、あってもよい。つまり、図１に示されているように、少なくとも一部のコンテント又はコンテンツは、ネットワーク２５０内の情報処理装置２００に分散配置されている。
【００６０】
このように、本実施形態のネットワーク２５０は、コンテンツの配置場所を管理する管理サーバを含まない。
【００６１】
なお、本実施形態は、既に説明した通り、ＣＣＮにおけるコンテンツ名を用いる必要はない。しかし、本実施形態がＣＣＮのおけるコンテンツ名を用いる場合、本実施形態は、例えば、次のように動作してもよい。
【００６２】
コンテンツは、それぞれ、位置情報を含む。そして、コンテンツは、位置情報を用いて、識別される。コンテンツの要求元の装置は、要求の対象となるコンテンツの位置に関する情報を含むリクエストメッセージを送信する。例えば、リクエストメッセージは、「所定の位置を中心とした所定の範囲（例えば、エリアＡ１）内の位置情報を持つコンテンツ」との情報を含む。なお、上記の「エリアＡ１の位置情報を持つコンテンツ」とのリクエストメッセージは、配置が特定されてない複数のコンテンツ（不特定多数のコンテンツ）を対象とするリクエストメッセージとなる。
【００６３】
不特定多数のコンテンツを対象とするリクエストメッセージは、コンテンツを識別する識別子を構成する要素の数に対応して、指定方法が、異なる。
【００６４】
コンテンツの識別子が、複数の要素に基づいて構成される場合、リクエストメッセージは、少なくとも一部の要素を用いてコンテンツを指定する。
【００６５】
例えば、コンテンツを識別する要素が「［コンテンツ名］＋［生成者］」の場合を想定する。その場合、リクエストメッセージに含まれるコンテンツを指定する条件は、「コンテンツの生成者（又は生成装置名）が「ｍｍ」のコンテンツ」、「コンテンツ名が「ｎｎ」のコンテンツ」となる。さらに、コンテンツを指定する条件は、「コンテンツの生成者が「ｍｍ」、かつ、コンテンツ名が「ｎｎ」のコンテンツ」でもよい。なお、「ｍｍ」及び「ｎｎ」が、任意の名称である。
【００６６】
一方、コンテンツの識別子が、１つの要素で構成される場合、その要素の値は、所定の値（閾値）との大小比較が可能である。そこで、情報処理装置２００は、所定の閾値を含むリクエストメッセージを用いて、コンテンツを指定してもよい。あるいは、情報処理装置２０は、コンテンツの値（上記の１つの要素に対応する値）を含むリクエストメッセージを用いて、コンテンツを指定してもよい。
【００６７】
例えば、コンテンツを識別する要素が、「生成時間」の場合、リクエストは、「時刻ｔ０以降に生成されたコンテンツ」となる。あるいは、リクエストは、「時刻ｔ０から時刻ｔ１までに生成されたコンテンツ」となる。
【００６８】
また、コンテンツを識別する要素は、例えば、コンテンツ名若しくは種類などのコンテンツに関する情報、生成時間若しくは更新時間などの時間に関する情報、又は、生成装置若しくは更新装置などの装置に関する情報などでもよい。このように、コンテンツを識別する要素は、コンテンツを識別できるものであれば、特に制限されない。例えば、コンテンツを識別する要素は、利用者などが独自に定義した要素でもよい。
【００６９】
なお、以下の説明において、上記のような要求対象のコンテンツを指定する条件を、「リクエスト条件」と呼ぶ。
【００７０】
［構成の説明］
次に、本発明における第１の実施形態に係る情報処理装置２００の構成について、図面を参照して説明する。
【００７１】
図２は、第１の実施形態に係る情報処理装置２００の構成の一例を示すブロック図である。ただし、図面中の矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
【００７２】
図２に示されているように、情報処理装置２００は、通信部２０１と、コンテンツ保存部２０２と、リクエスト判定部２０３と、リクエストメッセージ処理部２０４とを含む。
【００７３】
通信部２０１は、ネットワーク２５０を介した情報（例えば、コンテンツ及びリクエストメッセージ）の送信及び受信を行なう。より詳細には、通信部２０１は、次のような動作（機能）を実行する。
【００７４】
通信部２０１は、他の装置との間で、情報を通信する。例えば、通信部２０１は、テキスト、画像又は映像を含むコンテンツを送信又は受信する。
【００７５】
また、通信部２０１は、他の装置から受信したコンテンツをコンテンツ保存部２０２に保存する。
【００７６】
また、通信部２０１は、リクエスト判定部２０３から、コンテンツと、コンテンツの要求元の情報（以下、「識別子」とする）とを受け取り、コンテンツを要求元に送信する。
【００７７】
また、通信部２０１は、他の装置との間で、コンテンツの要求（リクエストメッセージ）を送信及び受信する。
【００７８】
また、通信部２０１は、受信したリクエストメッセージを、リクエストメッセージ処理部２０４に渡す。
【００７９】
ここで、リクエストメッセージは、１つ又は複数のフィールドを含む。各フィールドは、フィールド情報として、フィールド番号１２１と、パラメータ名１２２と、その値（パラメータ値１２３）とを含む。なお、リクエストメッセージは、以下で説明するフィールド以外のフィールドを含んでもよい。
【００８０】
図３は、以下の説明に用いるリクエストメッセージの作成に用いられるリクエストメッセージのフォーマット１１０の一例を示す図である。
【００８１】
図３に示されているように、リクエストメッセージのフォーマット１１０は、リクエストメッセージのフィールドを示すフィールド番号１２１と、そのフィールドの名称であるパラメータ名１２２とを含む。図３に示されているリクエストメッセージのフォーマット１１０は、フィールドとして、リクエストメッセージを要求（送信）した装置（以下、「要求元」と呼ぶ）を識別する情報（識別子）と、リクエスト条件と、要求元保存済コンテンツとを含む。
【００８２】
フィールド番号１２１がＦ１のフィールド（以下、「フィールドＦ１」と呼ぶ。他のフィールドも同様とする。）は、リクエストメッセージを要求（送信）した装置（要求元）を識別する情報（識別子）である。要求元の識別子は、要求元に対するコンテンツの送信を実行できる情報であれば、特に制限されない。例えば、要求元の識別子は、要求元の装置のポート番号、ＩＰアドレス、ＭＡＣ（Media Access Control）アドレス、又は、独自に設定したアドレス若しくは名称でもよい。
【００８３】
フィールドＦ２及びＦ３は、リクエストの対象となるコンテンツの範囲を示す情報（リクエスト条件）である。図３は、一例として、コンテンツを範囲（例えば、関心の対象となるリクエストが存在する範囲（エリア）の中心位置と有効範囲）を示す。ただし、リクエスト条件は、これに限られる必要はない。例えば、リクエスト条件は、コンテンツ名とコンテンツの生成装置との組合せでもよい。さらに、リクエスト条件は、２つのフィールドに限られる必要はない。リクエスト条件のフィールドは、１つでもよく、２つを超えてもよい。
【００８４】
フィールドＦ４は、要求元が既に所有（保存）しているコンテンツの情報を示す情報（要求元保存済コンテンツ）である。要求元保存済コンテンツは、一般的に複数となる場合が多いため、フィールドＦ４は、複数の情報を保存できる形式を備えることが望ましい。例えば、フィールドＦ４は、表（リスト）形式又はデータベース形式のデータである。以下では、このフィールドＦ４のリストは、コンテンツの識別子のリストとする。また、要求元保存済コンテンツに含まれるコンテンツの情報は、コンテンツを一意に識別できればよい。例えば、コンテンツの情報は、コンテンツの識別子でもよい。つまり、要求元保存済コンテンツは、コンテンツ識別子のリストでもよい。
【００８５】
図２を参照した説明に戻る。
【００８６】
通信部２０１は、リクエストメッセージ処理部２０４が生成又は更新したリクエストメッセージを、転送経路における次の装置に送信する。
【００８７】
なお、既に説明したが、本実施形態における転送経路は、特に制限されない。そのため、通信部２０１は、例えば、リクエストメッセージを転送する装置を、ネットワーク２５０内からランダムに選択してもよい。あるいは、通信部２０１は、所定の範囲内の装置からランダムに、リクエストメッセージを転送する装置を選択してもよい。
【００８８】
コンテンツ保存部２０２は、コンテンツを保存する。より詳細には、コンテンツ保存部２０２は、次のように、コンテンツを保存する。
【００８９】
コンテンツ保存部２０２は、通信部２０１が受信したコンテンツ（コンテンツの実体）を、保存する。コンテンツ保存部２０２は、コンテンツ（コンテンツの実体）とコンテンツの識別子とを関連付けて保存することが望ましい。
【００９０】
また、コンテンツ保存部２０２は、リクエスト判定部２０３からの依頼に対し、保存しているコンテンツ又はコンテンツの識別子を渡す。コンテンツ保存部２０２は、複数のコンテンツ又はコンテンツ識別子を渡す場合、リスト形式を用いてもよい。
【００９１】
リクエスト判定部２０３は、コンテンツ保存部２０２が保持するコンテンツにおいて、リクエストメッセージに含まれるリクエスト条件を満足するコンテンツがあるか否かを判定する。より詳細には、リクエスト判定部２０３は、次のような動作（機能）を実行する。
【００９２】
リクエスト判定部２０３は、リクエストメッセージ処理部２０４から、リクエストメッセージに含まれる要求元の識別子と、リクエスト条件と、要求元保存済コンテンツとを受け取る。
【００９３】
そして、リクエスト判定部２０３は、コンテンツ保存部２０２が保存するコンテンツに、リクエスト条件を満たし、かつ、要求元保存済コンテンツに含まれないコンテンツがあるか否かを判定する。
【００９４】
コンテンツがある場合、リクエスト判定部２０３は、そのコンテンツと、要求元の識別子とを通信部２０１に渡す。さらに、リクエスト判定部２０３は、そのコンテンツを示す情報（例えば、識別子）をリクエストメッセージ処理部２０４に返す。
【００９５】
ただし、リクエスト判定部２０３は、そのコンテンツの情報を、要求元保存済コンテンツに追加（更新）して、要求元保存済コンテンツをリクエストメッセージ処理部２０４に返してもよい。この場合、リクエストメッセージ処理部２０４は、後ほど説明する要求元保存済コンテンツを更新する処理を省略できる。
【００９６】
コンテンツがない場合、リクエスト判定部２０３は、リクエストメッセージ処理部２０４に、コンテンツがないことを通知する。なお、リクエスト判定部２０３が、要求元保存済コンテンツを更新する場合、リクエスト判定部２０３は、受信した要求元保存済コンテンツを更新しないでリクエストメッセージ処理部２０４に返却する。
【００９７】
リクエスト判定部２０３の動作について、より具体的な動作の例を用いて説明する。
【００９８】
なお、以下の説明の前提として、リクエスト判定部２０３は、要求元の識別子として「Ｓ１」、リクエスト条件の一例として「中心位置＝（ｘ１，ｙ１）、有効範囲＝ｒ１」、要求元保存済コンテンツとして「Ｃ１」を受信したとする。また、コンテンツ保存部２０２は、条件を満足するコンテンツとして、コンテンツＣ３及びＣ５を保存しているとする。
【００９９】
リクエスト判定部２０３は、リクエストメッセージ処理部２０４から、上記の情報を受けると、コンテンツ保存部２０２からリクエスト条件を満たすコンテンツを取り出す。
【０１００】
ここで、まず、リクエスト条件の判定について説明する。
【０１０１】
一例として、リクエスト判定部２０３におけるリクエスト条件「中心位置＝（ｘ１，ｙ１）、有効範囲＝ｒ１」を満たすか否かの判定の処理を説明する。
【０１０２】
ここで、ｉ番目のコンテンツＣｉの位置を（ｘｉ，ｙｉ）とする。すると、コンテンツＣｉがリクエスト条件を満足する場合、次に示す数式１が成立する。つまり、リクエスト判定部２０３は、数式１を用いて、コンテンツＣｉがリクエスト条件を満足するか否かを判定できる。
【０１０３】
［数式１］
（ｘｉ−ｘ１）２＋（ｙｉ−ｙ１）２≦ｒ１２
ただし、リクエスト条件は、上記の例に限る必要はない。リクエスト条件は、例えば、コンテンツ名若しくは種類などコンテンツに関する情報、生成時間若しくは更新時間などの時間に関する情報、又は、生成装置若しくは更新装置などの装置に関する情報などでもよい。
【０１０４】
例えば、リクエスト条件が、コンテンツの生成時間の場合について説明する。リクエスト条件が、時刻ｔ０からｔ１までに生成されたコンテンツとする。そして、コンテンツＣｉの生成時間がｔｉとする。この場合、リクエスト判定部２０３は、ｔｉが、次に示す数式２を満足するか否かを基に、コンテンツＣｉがリクエスト条件を満足するか否かを判定できる。
【０１０５】
［数式２］
ｔ０≦ｔｉ≦ｔ１
また、リクエスト条件は、複数の条件を含んでもよい。リクエスト条件が複数の条件を含む場合、リクエスト判定部２０３は、リクエスト条件に含まれる全ての条件を満足（完全マッチング）するコンテンツを、リクエスト条件を満足するコンテンツと判定してもよい。あるいは、リクエスト判定部２０３は、一つ又は一部の条件を満足するコンテンツを、条件を満足するコンテンツと判定してもよい。
【０１０６】
そして、リクエスト判定部２０３は、上記のような動作を基に、リクエスト条件を満たすコンテンツを、コンテンツＣ３及びＣ５と判定する（図１を参照）。そこで、リクエスト判定部２０３は、コンテンツ保存部２０２から、コンテンツＣ３及びＣ５を取り出す。
【０１０７】
そして、リクエスト判定部２０３は、取り出したコンテンツＣ３及びＣ５が、要求元保存済コンテンツに含まれるか否かを判定する。
【０１０８】
今の場合、コンテンツＣ３及びＣ５は、どちらも要求元保存済コンテンツ（Ｃ１）と一致しない。
【０１０９】
そこで、リクエスト判定部２０３は、コンテンツＣ３及びＣ５と、要求元の識別子とを、通信部２０１に渡す。通信部２０１は、コンテンツＣ３及びＣ５を、要求元に送信する。
【０１１０】
また、リクエスト判定部２０３は、コンテンツＣ３及びＣ５に関する情報（例えば、コンテンツの識別子）をリクエストメッセージ処理部２０４に戻す。なお、リクエスト判定部２０３は、要求元保存済コンテンツにコンテンツＣ３及びＣ５に関する情報を更新（追加）して、更新後の要求元保存済コンテンツをリクエストメッセージ処理部２０４に戻してもよい。
【０１１１】
リクエストメッセージ処理部２０４は、リクエストメッセージを生成又は更新する。より詳細には、リクエストメッセージ処理部２０４は、次のような動作（機能）を実行する。
【０１１２】
要求元の装置の場合、リクエストメッセージ処理部２０４は、自装置の識別子と、リクエスト条件と、コンテンツ保存部２０２内に保存済のコンテンツとを基に、リクエストメッセージを作成（生成）する。リクエストメッセージ処理部２０４は、コンテンツ保存部２０２内に保存済みのコンテンツに関する情報の取得を、リクエスト判定部２０３に依頼してもよい。つまり、本実施形態に係るリクエストメッセージ処理部２０４は、保存済みのコンテンツに関する情報を含むリクエストメッセージを作成（生成）する。そして、リクエストメッセージ処理部２０４は、作成したリクエストメッセージを通信部２０１に渡す。通信部２０１は、作成されたリクエストメッセージを転送経路の次の装置に送信する。
【０１１３】
要求元の装置でない場合、つまり、中継装置の場合、リクエストメッセージ処理部２０４は、次に説明するように、受信したリクエストメッセージを更新する。
【０１１４】
すなわち、リクエストメッセージ処理部２０４は、リクエスト判定部２０３に、受信したリクエストメッセージに含まれる要求元の識別子と、リクエスト条件と、要求元保存済コンテンツとを渡す。
【０１１５】
そして、リクエストメッセージ処理部２０４は、リクエスト判定部２０３からの応答を待つ。
【０１１６】
リクエスト判定部２０３から、コンテンツがないとの応答を受信した場合、リクエストメッセージ処理部２０４は、受信したリクエストメッセージを更新しないで、通信部２０１に送る。この場合、通信部２０１は、受信したリクエストメッセージを、更新しないで、次の装置に送信する。つまり、要求元に送信するコンテンツ（リクエストメッセージに含まれるリクエスト条件を満足し、かつ、要求元に保存されていないコンテンツ）を保存していない場合、情報処理装置２００は、リクエストメッセージを転送経路の次の装置に転送する。
【０１１７】
リクエスト判定部２０３から、コンテンツに関する情報（例えば、識別子）を受信した場合、リクエストメッセージ処理部２０４は、リクエスト判定部２０３から受信したコンテンツに関する情報（例えば、識別子）を、要求元保存済コンテンツに加える。つまり、リクエストメッセージ処理部２０４は、リクエストメッセージを更新する。
【０１１８】
そして、リクエストメッセージ処理部２０４は、更新後のリクエストメッセージを通信部２０１に送る。通信部２０１は、リクエストメッセージを次の装置に送信する。
【０１１９】
つまり、自装置が保存するコンテンツを要求元に送信しても、リクエストメッセージ処理部２０４は、次の装置に、更新後のリクエストメッセージを転送する。
【０１２０】
次に、図面を参照して、リクエストメッセージ処理部２０４の具体的な動作の一例を説明する。
【０１２１】
まず、要求元（図１に示されている二重丸の情報処理装置２００）の場合について説明する。
【０１２２】
リクエストメッセージ処理部２０４は、自装置上で動作するアプリケーション、又は、図示しない外部の装置から、コンテンツの要求を受信する。リクエストメッセージ処理部２０４は、要求を基にリクエストメッセージを作成（生成）する。ここでは、一例として、リクエストメッセージ処理部２０４は、既に説明した図３に示されているリクエストメッセージのフォーマット１１０を基に、リクエストメッセージを作成する。また、リクエストメッセージの各フィールドの値として、要求元の識別子を「Ｓ１」、リクエスト条件を「（ｘ１，ｙ１）」及び「ｒ１」とする。また、コンテンツ保存部２０２が、リクエスト条件を満足するコンテンツとして、コンテンツＣ１を含むとする。
【０１２３】
図４は、今の場合に、情報処理装置２００が、最初に作成するリクエストメッセージ１１１の一例を示す図である。リクエストメッセージ１１１は、既に説明した通り、フィールド番号１２１と、パラメータ名１２２と、パラメータ値１２３とを含む。
【０１２４】
次に、リクエストメッセージ処理部２０４は、リクエスト判定部２０３に、要求元の識別子と、リクエスト条件と、要求元保存済コンテンツ（今の場合、空リスト）とを渡す。
【０１２５】
そして、リクエストメッセージ処理部２０４は、リクエスト判定部２０３から、要求元保存済コンテンツに追加するコンテンツＣ１を受信する。そして、リクエストメッセージ処理部２０４は、要求元保存済コンテンツにＣ１を追加して、リクエストメッセージを更新する。
【０１２６】
図５は、このときのリクエストメッセージ１１２の一例を示す図である。
【０１２７】
リクエストメッセージ処理部２０４は、図５に示されているリクエストメッセージ１１２を通信部２０１に渡す。通信部２０１は、リクエストメッセージ１１２を、次の装置に送信する。
【０１２８】
次に、リクエストメッセージを受信した情報処理装置２００（図１の灰色の円の情報処理装置２００）の場合について説明する。
【０１２９】
今の場合、コンテンツ保存部２０２は、リクエスト条件を満足するコンテンツとして、コンテンツＣ３及びＣ５とを含む。
【０１３０】
リクエストメッセージ処理部２０４は、通信部２０１を介して、図５に示されているリクエストメッセージ１１２を受信する。そして、リクエストメッセージ処理部２０４は、リクエスト判定部２０３に、図５に示されている要求元の識別子と、リクエスト条件と、要求元保存済コンテンツとを渡す。そして、リクエストメッセージ処理部２０４は、リクエスト判定部２０３から、コンテンツＣ３及びＣ５の情報を受信する。リクエストメッセージ処理部２０４は、リクエストメッセージの要求元保存済コンテンツにコンテンツＣ３及びＣ５の情報を追加して、リクエストメッセージを更新する。
【０１３１】
図６は、このときのリクエストメッセージ１１３の一例を示す図である。
【０１３２】
リクエストメッセージ処理部２０４は、図６に示されているリクエストメッセージ１１３を、通信部２０１に渡す。通信部２０１は、リクエストメッセージ１１３を次の装置に送信する。
【０１３３】
また、通信部２０１は、コンテンツを要求元に送信する。
【０１３４】
つまり、情報処理装置２００は、要求元が保持していないコンテンツを保持する場合、そのコンテンツを要求元に送信する。そして、情報処理装置２００は、送信したコンテンツをリクエストメッセージの保存済コンテンツに追加して、リクエストメッセージを更新する。そして、情報処理装置２００は、更新したリクエストメッセージを次の装置に転送する。
【０１３５】
例えば、図１の黒塗り円の情報処理装置２００は、残りのコンテンツＣ２及びＣ４を含む。そのため、この情報処理装置２００（図１の黒塗り円の情報処理装置２００）が、リクエストメッセージを受信すると、コンテンツＣ２及びＣ４に関する情報をリクエストメッセージの要求元保存済コンテンツリストに追加する。
【０１３６】
図７は、このときのリクエストメッセージ１１４の一例を示す図である。リクエストメッセージ１１４は、要求元保存済コンテンツに、全てのコンテンツ（Ｃ１ないしＣ５）の識別子を含む。
【０１３７】
一方、要求元が保持していないコンテンツを保持していない場合、情報処理装置２００は、リクエストメッセージを更新せず、受信したリクエストメッセージを次の装置に転送する。
【０１３８】
例えば、図１の左側上の情報処理装置２００は、受信したリクエストメッセージをそのまま転送する。
【０１３９】
あるいは、コンテンツＣ３及びＣ５を送信後にリクエストメッセージを受信した場合、左側中央の情報処理装置２００は、要求元に送信すべきコンテンツがなくなっているため、受信したリクエストメッセージをそのまま転送する。
【０１４０】
［動作の説明］
次に、図面を参照して、情報処理装置２００の動作について説明する。
【０１４１】
まず、情報処理装置２００が、要求元の場合について説明する。
【０１４２】
図８は、第１の実施形態に係る情報処理装置２００が要求元の場合の動作の一例を示すフローチャートである。
【０１４３】
情報処理装置２００の通信部２０１は、図示しない外部の装置、又は、自装置上で動作するアプリケーションなどから、コンテンツの要求を受信する。この要求は、少なくとも要求元の識別子（今の場合、自装置）とリクエスト条件とを含む。通信部２０１は、リクエストをリクエストメッセージ処理部２０４に送信する。
【０１４４】
リクエストメッセージ処理部２０４は、リクエストを基に、リクエストメッセージを作成（生成）する（ステップＳ３０１）。
【０１４５】
リクエストメッセージ処理部２０４は、リクエストメッセージに含まれる要求元の識別子と、リクエスト条件と、要求元保存済リクエストとを、リクエスト判定部２０３に送信する。リクエスト判定部２０３は、リクエスト条件を満足するコンテンツの情報を、リクエストメッセージ処理部２０４に戻す。つまり、リクエストメッセージ処理部２０４は、リクエスト判定部２０３から、要求元が要求したコンテンツの情報を取得する（ステップＳ３０２）。
【０１４６】
リクエストメッセージ処理部２０４は、受信したコンテンツの情報を基に、ステップＳ３０１で作成したリクエストメッセージを更新する（ステップＳ３０３）。なお、リクエスト条件を満足するコンテンツがない場合、リクエストメッセージ処理部２０４は、リクエストメッセージを更新しない。つまり、リクエストメッセージ処理部２０４は、要求元保存済コンテンツを、空のままとする。
【０１４７】
そして、リクエストメッセージ処理部２０４は、通信部２０１に更新したリクエストメッセージを渡す。通信部２０１は、次の通信端末にリクエストメッセージを送信する（ステップＳ３０４）。
【０１４８】
なお、情報処理装置２００は、ステップＳ３０１とステップＳ３０２の順番を入れ替えてもよい。あるいは、情報処理装置２００は、ステップＳ３０１とステップＳ３０２と動作を並列に実行してもよい。
【０１４９】
次に、情報処理装置２００が、リクエストメッセージを中継する場合について説明する。
【０１５０】
図９は、第１の実施形態に係る情報処理装置２００がリクエストメッセージを中継する場合の動作の一例を示すフローチャートである。
【０１５１】
情報処理装置２００のリクエストメッセージ処理部２０４は、通信部２０１を介してリクエストメッセージを受信する（ステップＳ３０５）。
【０１５２】
リクエストメッセージ処理部２０４は、リクエスト判定部２０３に、要求元の識別子と、リクエスト条件と、要求元保存済コンテンツとを送る。リクエスト判定部２０３は、リクエスト条件を満足し、要求元が保存していないコンテンツがあるか否かを判定する（ステップＳ３０６）。
【０１５３】
コンテンツがない場合（ステップＳ３０６でＮｏ）、情報処理装置２００は、ステップＳ３０９に進む。
【０１５４】
コンテンツがある場合（ステップＳ３０６でＹｅｓ）、リクエスト判定部２０３は、通信部２０１を介して、コンテンツを要求元に送信する（ステップＳ３０７）。
【０１５５】
次に、リクエストメッセージ処理部２０４が、リクエストメッセージを更新する（ステップＳ３０８）。
【０１５６】
そして、リクエストメッセージ処理部２０４は、通信部２０１を介して、リクエストメッセージを次の端末に送信（転送）する（ステップＳ３０９）。
【０１５７】
次に、図１に示されているネットワーク２５０の全体の動作を説明する。
【０１５８】
要求元は、図１の左側下の二重丸の情報処理装置２００（以下、「第１の装置」と呼ぶ）とする。第１の装置（要求元）は、コンテンツをリクエストするため、リクエストメッセージを作成（生成）する（図４）。さらに、第１の装置は、自装置が保持するコンテンツを基にリクエストメッセージを更新する（図５）。そして、第１の装置は、更新されたリクエストメッセージを、次の装置に送信する。今の場合、次の装置は、左側中央の灰色の円の情報処理装置２００（以下、「第２の装置」と呼ぶ）とする。なお、今の場合、第１の装置は、コンテンツＣ１を保存している。そのため、ここで送信されるコンテンツリクエストは、図５に示されているように、要求元保存済コンテンツにコンテンツＣ１を含む。
【０１５９】
第２の装置は、受信したリクエストメッセージに対応したコンテンツを保存しているか否かを判定する。今の場合、第２の装置は、コンテンツＣ３及びＣ５を保存している。そこで、第２の装置は、コンテンツＣ３及びＣ５を要求元（第１の装置）に送信する。さらに、第２の装置は、送信したコンテンツＣ３及びＣ５を基に、リクエストメッセージを更新する（図６）。そして、第２の装置は、更新されたリクエストメッセージを次の装置に転送する。今の場合、次の装置は、左側上の情報処理装置２００（以下、「第３の装置」と呼ぶ）とする。
【０１６０】
第３の装置は、受信したリクエストメッセージに対応したコンテンツを保存しているか否かを判定する。今の場合、第３の装置は、コンテンツを保存していない。そこで、第３の装置は、リクエストメッセージを次の装置に転送する。今の場合、次の装置は、右側上の黒塗り円の情報処理装置２００（以下、「第４の装置」と呼ぶ）とする。
【０１６１】
第４の装置は、受信したリクエストメッセージに対応したコンテンツを保存しているか否かを判定する。今の場合、コンテンツＣ１ないしＣ５が対応する。ただし、Ｃ１、Ｃ３及びＣ５は、要求元保存済コンテンツに含まれる。そこで、第４の装置は、保存しているコンテンツＣ１ないしＣ５において、コンテンツＣ２及びＣ４を要求元（第１の装置）に送信する。そして、第４の装置は、リクエストメッセージを更新する（図７）。そして、第４の装置は、更新したリクエストメッセージを次の装置に転送する。今の場合、次の装置は、右側中央の情報処理装置２００（以下、「第５の装置」と呼ぶ）とする。
【０１６２】
第５の装置は、コンテンツＣ３及びＣ４を保存する。しかし、コンテンツＣ３及びＣ４は、要求元保存済コンテンツに含まれる。つまり、第５の装置は、要求元（第１の装置）に送信するコンテンツを保存していないため、リクエストメッセージを次の装置に転送する。今の場合、次の装置は、右側下の情報処理装置２００（以下、「第６の装置」と呼ぶ）とする。
【０１６３】
第６の装置は、要求元（第１の装置）に送信するコンテンツを保存していない。そのため、第６の装置は、リクエストメッセージを次の装置に転送する。今の場合、次の装置は、例えば、左側下の情報処理装置２００（要求元）である。
【０１６４】
なお、後ほど説明するように、本実施形態において、リクエストメッセージは、所定の時点で廃棄される。それまでは、リクエストメッセージは、要求元を含め、ネットワーク２５０に含まれる情報処理装置２００において転送される。そのため、要求元が、リクエストメッセージを受信した場合、要求元は、リクエストメッセージを次の装置に転送する。このように、情報処理装置２００は、要求元となった場合でも、リクエストメッセージの受信、及び、中継を実行する。
【０１６５】
このように、本実施形態の情報処理装置２００を基に構成されているネットワーク２５０に含まれる要求元は、コンテンツを受信できる。さらに、要求元は、各コンテンツに関して、最大でも各１回の受信動作を基に受信できる。ここで最大でも各１回となるのは、１回の受信動作で複数のコンテンツを受信する場合もあるためである。つまり、要求元の受信動作の回数は、コンテンツの数より少ない場合もあるからである。
【０１６６】
なお、第２の装置及び第４の装置が、要求元にコンテンツを送信する経路は、リクエストメッセージの転送経路と同じでもよく、異なっていてもよい。
【０１６７】
リクエストメッセージは、所定の時点で廃棄される必要がある。さもないと、不必要なリクエストメッセージが、長期に、ネットワーク上を行き来することとなる。ただし、本実施形態の情報処理装置２００が、リクエストメッセージを廃棄する必要はない。例えば、図示しない装置が、リクエストメッセージの寿命（例えば、インターネットプロトコルにおけるホップ数）を判定して、リクエストメッセージを廃棄してもよい。あるいは、図示しない装置が、要求元がリクエストメッセージを送信してからの時間を基に、リクエストメッセージを廃棄してもよい。あるいは、図示しない装置が、リクエストメッセージに含まれるコンテンツ条件と要求元保存済コンテンツとを基に、必要がなくなったリクエストメッセージを廃棄してもよい。
【０１６８】
ただし、本実施形態に係る情報処理装置２００が、上記の判定を基に、リクエストメッセージを廃棄してよい。
【０１６９】
［効果の説明］
第１の実施形態の効果について説明する。
【０１７０】
上記の説明のように、第１の実施形態に係る情報処理装置２００は、複数のコンテンツを効率的に取得するとの効果を奏する。あるいは、情報処理装置２００は、効率的に、複数のコンテンツを要求元に送信できるとの効果を奏する。
【０１７１】
その理由は、次のとおりである。
【０１７２】
情報処理装置２００のリクエスト判定部２０３は、コンテンツ保存部２０２に保存されているコンテンツから、通信部２０１を介して受信したリクエストメッセージに含まれるリクエスト条件を満足するコンテンツを抽出する。さらに、リクエスト判定部２０３は、抽出したコンテンツの中で、リクエストメッセージに含まれる要求元保存済コンテンツに含まれないコンテンツを判定し、抽出する。ここで、要求元保存済コンテンツは、その時点で要求元が保存しているコンテンツを示す。つまり、リクエスト判定部２０３は、要求元が保存済みのコンテンツを送信しないようにコンテンツを判定する。そして、リクエスト判定部２０３は、リクエストメッセージに含まれる要求元の識別子を基に、通信部２０１を介して、判定結果である抽出したコンテンツを要求元に送信する。
【０１７３】
さらに、リクエストメッセージ処理部２０４が、リクエスト判定部２０３が判定したコンテンツを、要求元保存済コンテンツに加えてリクエストメッセージを更新する。そして、リクエストメッセージ処理部２０４が、更新したリクエストメッセージを、次の装置に転送する。つまり、情報処理装置２００は、自装置が対象となるコンテンツを要求元に送信した場合でも、リクエストメッセージを次の装置に転送できる。
【０１７４】
そのため、要求元は、リクエストメッセージを１回送信すれば、各コンテンツを１回ずつ受信できる。このように、要求元は、効率的にコンテンツを取得できる。
【０１７５】
また、本実施形態の情報処理装置２００を含むネットワーク２５０は、コンテンツの配置場所を管理するサーバを必要としない効果を奏する。
【０１７６】
その理由は、情報処理装置２００は、自装置のコンテンツ保存部２０２が保存するコンテンツを基に動作できるためである。
【０１７７】
［変形例］
以上で説明した情報処理装置２００は、次のように構成される。
【０１７８】
例えば、情報処理装置２００の各構成部は、ハードウェア回路で構成されてもよい。
【０１７９】
また、情報処理装置２００において、各構成部は、ネットワークを介して接続した複数の装置を用いて、構成されてもよい。
【０１８０】
また、情報処理装置２００において、複数の構成部は、１つのハードウェアで構成されてもよい。
【０１８１】
また、情報処理装置２００は、ＣＰＵ（Central Processing Unit）と、ＲＯＭ（Read Only Memory）と、ＲＡＭ（Random Access Memory）とを含むコンピュータ装置として実現されてもよい。情報処理装置２００は、上記構成に加え、さらに、入出力接続回路（ＩＯＣ：Input / Output Circuit）と、ネットワークインターフェース回路（ＮＩＣ：Network Interface Circuit）とを含むコンピュータ装置として実現されてもよい。
【０１８２】
図１０は、本変形例に係る情報処理装置６００の構成の一例を示すブロック図である。
【０１８３】
情報処理装置６００は、ＣＰＵ６１０と、ＲＯＭ６２０と、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを含み、コンピュータ装置を構成している。
【０１８４】
ＣＰＵ６１０は、ＲＯＭ６２０からプログラムを読み込む。そして、ＣＰＵ６１０は、読み込んだプログラムに基づいて、ＲＡＭ６３０と、内部記憶装置６４０と、ＩＯＣ６５０と、ＮＩＣ６８０とを制御する。そして、ＣＰＵ６１０を含むコンピュータは、これらの構成を制御し、図２に示されている、通信部２０１と、コンテンツ保存部２０２と、リクエスト判定部２０３と、リクエストメッセージ処理部２０４としての各機能を実現する。
【０１８５】
ＣＰＵ６１０は、各機能を実現する際に、ＲＡＭ６３０又は内部記憶装置６４０を、プログラムの一時記憶として使用してもよい。
【０１８６】
また、ＣＰＵ６１０は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体７００が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでもよい。あるいは、ＣＰＵ６１０は、ＮＩＣ６８０を介して、図示しない外部の装置からプログラムを受け取り、ＲＡＭ６３０に保存して、保存したプログラムを基に動作してもよい。
【０１８７】
ＲＯＭ６２０は、ＣＰＵ６１０が実行するプログラム及び固定的なデータを記憶する。ＲＯＭ６２０は、例えば、Ｐ−ＲＯＭ（Programmable-ROM）又はフラッシュＲＯＭである。
【０１８８】
ＲＡＭ６３０は、ＣＰＵ６１０が実行するプログラム及びデータを一時的に記憶する。ＲＡＭ６３０は、例えば、Ｄ−ＲＡＭ（Dynamic-RAM）である。
【０１８９】
内部記憶装置６４０は、情報処理装置６００が長期的に保存するデータ及びプログラムを記憶する。また、内部記憶装置６４０は、ＣＰＵ６１０の一時記憶装置として動作してもよい。内部記憶装置６４０は、例えば、ハードディスク装置、光磁気ディスク装置、ＳＳＤ（Solid State Drive）又はディスクアレイ装置である。内部記憶装置６４０は、コンテンツ保存部２０２として動作する。
【０１９０】
ここで、ＲＯＭ６２０と内部記憶装置６４０は、不揮発性（non-transitory）の記憶媒体である。一方、ＲＡＭ６３０は、揮発性（transitory）の記憶媒体である。そして、ＣＰＵ６１０は、ＲＯＭ６２０、内部記憶装置６４０、又は、ＲＡＭ６３０に記憶されているプログラムを基に動作可能である。つまり、ＣＰＵ６１０は、不揮発性記憶媒体又は揮発性記憶媒体を用いて動作可能である。
【０１９１】
ＩＯＣ６５０は、ＣＰＵ６１０と、入力機器６６０及び表示機器６７０とのデータを仲介する。ＩＯＣ６５０は、例えば、ＩＯインターフェースカード又はＵＳＢ（Universal Serial Bus）カードである。
【０１９２】
入力機器６６０は、情報処理装置６００の操作者からの入力指示を受け取る機器である。入力機器６６０は、例えば、キーボード、マウス又はタッチパネルである。
【０１９３】
表示機器６７０は、情報処理装置６００の操作者に情報を表示する機器である。表示機器６７０は、例えば、液晶ディスプレイである。
【０１９４】
ＮＩＣ６８０は、ネットワークを介した図示しない外部の装置とのデータのやり取りを中継する。ＮＩＣ６８０は、例えば、ＬＡＮ（Local Area Network）カードである。ＮＩＣ６８０は、通信部２０１として動作する。
【０１９５】
このように構成された情報処理装置６００は、情報処理装置２００と同様の効果を得ることができる。
【０１９６】
その理由は、情報処理装置６００のＣＰＵ６１０が、プログラムに基づいて情報処理装置２００と同様の機能を実現できるためである。
【０１９７】
＜第２の実施形態＞
第１の実施形態において、情報処理装置２００は、他の装置が保存するコンテンツを知らない。そして、情報処理装置２００は、リクエストメッセージを、重複して受信してもよい。つまり、情報処理装置２００は、要求元がコンテンツを取得するまで、複数回、リクエストメッセージを受信する場合がある。
【０１９８】
しかし、既にリクエストメッセージを受け取った情報処理装置２００は、コンテンツ保存部２０２が保存するコンテンツに変更がない場合、再度リクエストメッセージを受信する必要がない。そこで、本実施形態に係る情報処理装置４００は、次の装置（転送先の装置）として、既にリクエストメッセージを受け取った情報処理装置４００を選択しない仕組みを備えている。
【０１９９】
なお、本実施形態の情報処理装置４００は、リクエストメッセージを複数回受信してもよい。つまり、情報処理装置２００と情報処理装置４００とは、ネットワーク２５０において、共存可能である。
【０２００】
［構成の説明］
まず、本実施形態に係る情報処理装置４００の構成を説明する。
【０２０１】
図１１は、本実施形態に係る情報処理装置４００の構成の一例を示すブロック図である。ただし、図面中の矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
【０２０２】
図１１に示されているように、情報処理装置４００は、情報処理装置２００と比較して、通信部２０１及びリクエストメッセージ処理部２０４に換えて、通信部４０１及びリクエストメッセージ処理部４０４を含む点で異なる。なお、情報処理装置４００は、図１０に示されているコンピュータを用いて構成されてもよい。
【０２０３】
図１２は、第２の実施形態に係る情報処理装置４００が用いるリクエストメッセージのフォーマット１１５の一例を示す図である。
【０２０４】
つまり、情報処理装置４００は、リクエストメッセージのフォーマットとして、図３に示されるフォーマット１１０に換えて、図１２に示されているフォーマット１１５を用いる。
【０２０５】
以下、第１の実施形態の同様の構成及び動作の説明を省略し、本実施形態に特有の構成及び動作を説明する。
【０２０６】
図１２に示されているように、本実施形態に係るリクエストメッセージのフォーマット１１５は、フォーマット１１０のフィールドに加え、転送済装置に関するフィールド（以下、「フィールドＦ５」と呼ぶ）を含む。
【０２０７】
通信部４０１は、第１の実施形態に係る通信部２０１と同様に動作する。ただし、通信部４０１は、次の装置を選択する場合に、選択範囲にリクエストメッセージのフィールドＦ５に含まれる転送済装置に含まれる情報処理装置４００を含めない。つまり、通信部４０１は、転送済装置以外の装置に、リクエストメッセージを転送する。
【０２０８】
リクエストメッセージ処理部４０４は、第１の実施形態のリクエストメッセージ処理部２０４と同様に動作する。さらに、リクエストメッセージ処理部４０４は、リクエストメッセージの転送済装置（フィールドＦ５）に自装置を示す情報（例えば、自装置の識別子）を追加する。
【０２０９】
つまり、情報処理装置４００は、転送するリクエストメッセージに自装置を示す情報を追加する。そして、情報処理装置４００は、リクエストメッセージに含まれている装置を除いて、リクエストメッセージを転送する装置を選択し、リクエストメッセージを転送する。
【０２１０】
なお、リクエストメッセージ処理部４０４は、転送済装置のフィールドを含まないリクエストメッセージを受信した場合、転送済装置のフィールドを追加して、リクエストメッセージを更新してもよい。あるいは、リクエストメッセージ処理部４０４は、フィールドを追加しないで、第１の実施形態と同様に動作してもよい。
【０２１１】
また、情報処理装置４００は、次の装置として選択できる全ての装置が、転送済装置に含まれる場合、リクエストメッセージを転送しなくてもよい。つまり、その場合、情報処理装置４００は、リクエストメッセージを廃棄してもよい。
【０２１２】
あるいは、情報処理装置４００は、転送済装置の中から所定の手順（例えば、ランダム又はラウンドロビン）を用いて、転送先となる次の装置を選択してもよい。この処理を用いると、情報処理装置４００は、コンテンツ条件に含まれるコンテンツが変化する可能性がある場合にも対応可能となる。
【０２１３】
［効果の説明］
第２の実施形態の効果について説明する。
【０２１４】
以上のとおり、第２の実施形態に係る情報処理装置４００は、第１の実施形態の情報処理装置２００の効果に加え、より効率的な動作を実現する効果を奏する。
【０２１５】
その理由は、次のとおりである。情報処理装置４００は、リクエストメッセージの処理を実行した際に、自装置の情報をリクエストメッセージに含めて転送する。そして、情報処理装置４００は、リクエストメッセージを転送する際に、処理済みの装置を避けて、リクエストメッセージを転送する。そのため、リクエストメッセージを処理した情報処理装置４００は、それ以降は、リクエストメッセージの受信をしないためである。つまり、情報処理装置４００は、まだ要求元に送信されていないコンテンツを保存する可能性がある情報処理装置４００に、リクエストメッセージを転送するためである。言い換えると、情報処理装置４００は、不必要なリクエストメッセージの転送を削減するためである。
【０２１６】
＜第３の実施形態＞
第１の実施形態の情報処理装置２００及び第２の実施形態の情報処理装置４００は、コンテンツを保存する他の装置を知らなかった。これに対し、図１３に示す第３の実施形態では、要求元となる情報処理装置５００は、コンテンツリクエストのリクエスト条件を満たすコンテンツの保存を担当する装置を知っている。つまり、情報処理装置５００は、予め、コンテンツの配置方法又は次に説明する担当装置を知っている。ただし、本実施形態においても、コンテンツは、キャッシュ機能を実現するために、担当装置以外の装置に保存されてもよい。
【０２１７】
本実施形態において、コンテンツ配置方法は、予め、以下に示すルールに基づいて決められている。
【０２１８】
［コンテンツの配置ルール］
（１）所定の条件を満たすコンテンツは、そのコンテンツを担当する情報処理装置５００（以下、「担当装置」と呼ぶ）が決まっている。
【０２１９】
（２）担当装置は、上記の所定の条件を満たすコンテンツを、必ず保存している。
【０２２０】
要求元は、このルールを基に、コンテンツリクエストのリクエスト条件を満たすコンテンツを保存する担当装置を識別できる。
【０２２１】
次に、上記のルールを満たすルールの一例を示す。
【０２２２】
［ルール１］
コンテンツは、コンテンツの生成位置に最も近い位置の情報処理装置５００に配置されている。ただし、コンテンツは、コンテンツの生成位置の情報を含む。なお、位置情報は、ある程度の範囲の誤差を含む。そのため、最も近い位置の情報処理装置５００が、複数となる場合もある。その場合、最も近い位置となる全ての情報処理装置５００が、コンテンツを保持してもよい。あるいは、いずれか１台又は一部の情報処理装置５００が、コンテンツを保持してもよい。
【０２２３】
つまり、このルールに従うと、全ての位置に対して、少なくとも１台の担当装置が決定される。そして、生成されたコンテンツは、必ず、少なくとも生成された位置の最も近い担当装置に保存されている。
【０２２４】
なお、以下の説明において、全ての情報処理装置５００において、予め、担当装置の位置情報が、共有されているとする。さらに、リクエストメッセージの転送経路は、要求元から、担当装置までの経路となる。そして、情報処理装置５００は、少なくとも、転送元がリクエストメッセージを送信する前に、転送経路を共有している。
【０２２５】
なお、本実施形態のルールは、上記ルール１に限る必要はない。例えば、コンテンツは、位置情報として、生成位置情報ではなく、ランダムに選択された位置情報を含んでもよい。
【０２２６】
また、ルールは、位置情報に限らず、コンテンツの名若しくは種類などコンテンツに関する情報、生成時間若しくは更新時間などの時間に関する情報、又は、生成装置若しくは更新装置などの装置に関する情報などを用いてもよい。
【０２２７】
例えば、ルールは、「コンテンツの生成装置が担当装置」というルールでもよい。このルールにおいても、各コンテンツに対して、必ず１台の担当装置（コンテンツ生成装置）が、決まり、少なくともその担当装置が、コンテンツを保存している。また、ルールは、「所定の時間帯に生成されたコンテンツは、所定の担当装置が保存する」というルールでもよい。このルールの場合、時刻帯を指定すると、担当端末が、特定される。
【０２２８】
なお、本実施形態の情報処理装置５００は、情報処理装置２００及び情報処理装置４００と、ネットワーク２５０に共存可能である。
【０２２９】
［構成の説明］
次に、第３の実施形態に係る情報処理装置５００の構成について説明する。
【０２３０】
図１３は、第３の実施形態に係る情報処理装置５００の構成の一例を示すブロック図である。ただし、図面中の矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
【０２３１】
図１３に示されているように、情報処理装置５００は、情報処理装置２００と比較して、通信部２０１及びリクエストメッセージ処理部２０４に換えて、通信部５０１及びリクエストメッセージ処理部５０４を含む点で異なる。さらに、情報処理装置５００は、担当装置判断部５０５を含む。なお、情報処理装置５００は、図１０に示されているコンピュータを用いて構成されてもよい。また、情報処理装置５００は、第２の実施形態におけるリクエストメッセージの転送済装置に対応する機能を含んでもよい。
【０２３２】
図１４は、第３の実施形態に係る情報処理装置５００が用いるリクエストメッセージのフォーマット１１６の一例を示す図である。
【０２３３】
情報処理装置５００は、リクエストメッセージのフォーマットとして、図３に示されるフォーマット１１０に換えて、図１４に示されているフォーマット１１６を用いる。
【０２３４】
図１４に示されているように、本実施形態に係るリクエストメッセージのフォーマット１１６は、フォーマット１１０のフィールドに加え、担当装置に関するフィールド（以下、「フィールドＦ６」と呼ぶ）を含む。
【０２３５】
以下、第１及び第２の実施形態と同様の構成及び動作の説明を省略し、本実施形態に特有の構成及び動作を説明する。
【０２３６】
通信部５０１は、第１の実施形態の通信部２０１と同様に動作する。ただし、通信部５０１は、リクエストメッセージを次の装置に送信する際に、既に説明した担当装置までの転送経路に沿って、次の装置を選択する。なお、次の装置を決める方法の一例として、担当装置を宛先としたルーティングテーブルにおける予め決められた次の装置（「Ｎｅｘｔ  ｈｏｐ」）を選択する方法がある。
【０２３７】
リクエストメッセージ処理部５０４は、第１の実施形態のリクエストメッセージ処理部２０４の動作に加え、担当装置（フィールドＦ６）に対応した動作を実行する。
【０２３８】
要求元としてリクエストメッセージを作成する場合、リクエストメッセージ処理部５０４は、リクエストメッセージの中に、第１の実施形態のフィールドに加え、担当装置の情報（例えば、識別子）を保存するフィールド（フィールドＦ６）を作成する。そして、リクエストメッセージ処理部５０４は、作成したフィールドＦ６に担当装置の情報を設定する。
【０２３９】
情報処理装置５００が、リクエストメッセージを受信した場合、リクエストメッセージ処理部５０４は、担当装置の情報を担当装置判断部５０５に送信し、自装置が、担当装置であるか否かの判定を依頼する。
【０２４０】
自装置が担当装置でない場合、リクエストメッセージ処理部５０４は、第１の実施形態のリクエストメッセージ処理部２０４と同様に動作する。
【０２４１】
一方、自装置が担当装置の場合、リクエストメッセージ処理部５０４は、リクエストメッセージを転送しない。これは、自装置が、担当装置の場合、対象となるコンテンツを保存しているためである。
【０２４２】
担当装置判断部５０５は、リクエストメッセージ処理部５０４の依頼を基に、自装置が、担当装置であるか否かを判断する。担当装置判断部５０５は、この判断に、既に説明したルールを用いればよい。
【０２４３】
なお、リクエストメッセージ処理部５０４は、担当装置のフィールドを含まないリクエストメッセージを受信した場合、第１の実施形態と同様に動作すればよい。
【０２４４】
［動作の説明］
次に、第３の実施形態に動作について、図面を参照して説明する。
【０２４５】
なお、第１の実施形態と同様の動作については、説明を省略する。
【０２４６】
図８を参照して説明した要求元としての動作は、フィールドが追加されていることを除いて、第１の実施形態と同様のため、詳細な動作の説明を省略する。
【０２４７】
図１５は、情報処理装置５００がリクエストメッセージを中継する場合の動作の一例を示すフローチャートである。図１５において、図９と同じ動作には同じ符号を付し、その詳細な説明を省略する。また、図１５のステップＳ７０８及びＳ７０９と、図９のステップＳ３０８及びＳ３０９との差は、取り扱うリクエストメッセージが含むフィールドが異なる点である。そして、これらのステップは、そのフィールドの情報を操作しない。つまり、図１５のステップＳ７０８及びＳ７０９は、図９のステップＳ３０８及びＳ３０９と同様に動作する。そのため、ステップＳ７０８及びＳ７０９の詳細な説明を省略する。
【０２４８】
リクエストメッセージ処理部５０４は、リクエストメッセージを受信（ステップＳ３０５）すると、担当装置判断部５０５を用いて、自装置が、リクエストメッセージに含まれる担当装置であるか否かを判断する（ステップＳ７１０）。
【０２４９】
自装置が担当装置でない場合（ステップＳ７１０でＮｏ）、リクエストメッセージ処理部５０４は、既に説明したように、第１の実施形態の同様の動作を実行する。
【０２５０】
自装置が担当装置の場合（ステップＳ７１０でＹｅｓ）、情報処理装置５００は、図９のステップＳ３０６と同様に、通信部５０１から送信する対象となるコンテンツを保存しているか否かを判定する。
【０２５１】
コンテンツがない場合（ステップＳ３０６でＮｏ）、情報処理装置５００は、動作を終了する。
【０２５２】
コンテンツがある場合（ステップＳ３０６でＹｅｓ）、情報処理装置５００は、図９のステップＳ３０７と同様にコンテンツを送信する。そして、情報処理装置５００は、処理を終了する。
【０２５３】
なお、情報処理装置５００は、ステップＳ７１０における担当装置の判断を、コンテンツの判定の後に、実行してもよい。
【０２５４】
図１６は、第３の実施形態の情報処理装置５００の動作の別の一例を示すフローチャートとである。
【０２５５】
図１６において、情報処理装置５００は、コンテンツの処理の後に、担当装置の判断を実行する。
【０２５６】
［効果の説明］
第３の実施形態の効果について説明する。
【０２５７】
以上の説明のように、第３の実施形態に係る情報処理装置５００は、第１の実施形態の効果に加え、より効率的な動作を実現する効果を奏する。
【０２５８】
その理由は、次のとおりである。情報処理装置５００は、対象となるコンテンツの担当装置を基に決定された転送経路に沿って、リクエストメッセージを転送する。つまり、情報処理装置５００は、コンテンツの所得に適した転送経路を用いる。そのため、情報処理装置５００は、コンテンツの取得までの時間を短縮する。
【０２５９】
また、情報処理装置５００は、担当装置の場合に、リクエストメッセージの転送を行わないためである。つまり、情報処理装置５００は、不必要なリクエストメッセージの転送を削減するためである。
【０２６０】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０２６１】
この出願は、２０１４年１２月９日に出願された日本出願特願２０１４−２４９０５８を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０２６２】
１１０  フォーマット
１１１  リクエストメッセージ
１１２  リクエストメッセージ
１１３  リクエストメッセージ
１１４  リクエストメッセージ
１１５  フォーマット
１１６  フォーマット
１２１  フィールド番号
１２２  パラメータ名
１２３  パラメータ値
２００  情報処理装置
２０１  通信部
２０２  コンテンツ保存部
２０３  リクエスト判定部
２０４  リクエストメッセージ処理部
２５０  ネットワーク
４００  情報処理装置
４０１  通信部
４０４  リクエストメッセージ処理部
５００  情報処理装置
５０１  通信部
５０４  リクエストメッセージ処理部
５０５  担当装置判断部
６００  情報処理装置
６１０  ＣＰＵ
６２０  ＲＯＭ
６３０  ＲＡＭ
６４０  内部記憶装置
６５０  ＩＯＣ
６６０  入力機器
６７０  表示機器
６８０  ＮＩＣ
７００  記憶媒体
【図１】
0006620761.tif 000002
【図２】
0006620761.tif 000003
【図３】
0006620761.tif 000004
【図４】
0006620761.tif 000005
【図５】
0006620761.tif 000006
【図６】
0006620761.tif 000007
【図７】
0006620761.tif 000008
【図８】
0006620761.tif 000009
【図９】
0006620761.tif 000010
【図１０】
0006620761.tif 000011
【図１１】
0006620761.tif 000012
【図１２】
0006620761.tif 000013
【図１３】
0006620761.tif 000014
【図１４】
0006620761.tif 000015
【図１５】
0006620761.tif 000016
【図１６】
0006620761.tif 000017
【図１７】
0006620761.tif 000018