説明

情報通信システム、ノード装置、情報処理方法及び情報処理プログラム

【課題】ノード装置が複数のオーバーレイネットワークの中から何れかのオーバーレイネットワークに参加するとき、参加するために必要な情報を取得するためのアクセス先となるノード装置の負荷を軽減する。
【解決手段】情報処理装置またはノード装置は、ノード装置が接続可能な第2のオーバーレイネットワークを識別する第1識別情報に基づいて、複数の定常ノード装置の中から、第2のオーバーレイネットワークへの参加要求を示す第1要求情報の送信先であるコンタクトノード装置を決定する。ノード装置は、ノード装置が参加する第2のオーバーレイネットワークを識別する第1識別情報を取得し、情報処理装置により決定された定常ノード装置に、第2のオーバーレイネットワークへの第1要求情報を送信し、第1送信手段により送信された第1要求情報を受信した定常ノード装置から、第2のオーバーレイネットワークに参加しているノード装置の所在を示す第1所在情報を受信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))方式の通信システムの技術分野に関する。
【背景技術】
【0002】
近年、ピアツーピア方式の通信システムが注目されている。このピアツーピア方式の通信システムにおいては、オーバーレイネットワークに参加しているノード装置が他のノード装置と通信するためには、他のノード装置のIPアドレス等の情報が必要となる。そこで、各ノード装置は、オーバーレイネットワークに参加するとき、予め決められたノード装置またはサーバ装置にアクセスすることにより、他のノード装置の情報を取得する。例えば、特許文献1に記載された技術においては、管理者の作業によって、接続先となるノード装置のノードデータを格納した接続テーブルを、ノード装置に予め記憶させておく。そして、ノード装置は、接続テーブルに格納されたノードデータに対応するノード装置に対して参加申請を行うことにより、最新の接続テーブルを取得する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−310460号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、オーバーレイネットワークに参加しようとする各ノード装置が、予め決められたノード装置に対してアクセスすると、予め決められたノード装置にアクセスが集中する。そのため、予め決められたノード装置の処理が遅延することになるので、オーバーレイネットワークを効率的に形成することができない。
【0005】
そこで、本発明は、以上の点に鑑みてなされたものである。本発明は、ノード装置が複数のオーバーレイネットワークの中から何れかのオーバーレイネットワークに参加するとき、参加するために必要な情報を取得するためのアクセス先となるノード装置の負荷を軽減することができる情報通信システム、ノード装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、請求項1に記載の発明は、ネットワークに接続される複数のノード装置を備え、前記複数のノード装置のうち前記ネットワークに定常的に接続される複数の定常ノード装置により第1のオーバーレイネットワークが構成される情報通信システムであって、前記情報通信システムは、前記ノード装置が接続可能な第2のオーバーレイネットワークを識別する第1識別情報に基づいて、前記複数の定常ノード装置の中から、前記第2のオーバーレイネットワークへの参加要求を示す第1要求情報の送信先であるコンタクトノード装置を決定する決定手段を備える情報処理装置、または、前記決定手段を備える前記ノード装置を備え、前記ノード装置は、前記ノード装置が参加する前記第2のオーバーレイネットワークを識別する前記第1識別情報を取得する第1取得手段と、前記決定手段により決定された前記定常ノード装置に、前記第2のオーバーレイネットワークへの前記第1要求情報を送信する第1送信手段と、前記第1送信手段により送信された前記第1要求情報を受信した前記定常ノード装置から、前記第2のオーバーレイネットワークに参加している前記ノード装置の所在を示す第1所在情報を受信する第1受信手段と、を備えることを特徴とする。
【0007】
この発明によれば、複数の定常ノード装置の中から、第1識別情報に基づいて、アクセス先となる定常ノード装置が決定される。そのため、ノード装置が第2のオーバーレイネットワークに参加するときのアクセスの負荷を、複数の定常ノード装置に分散することができる。
【0008】
請求項2に記載の発明は、前記第1受信手段は、前記第1送信手段により送信された前記第1要求情報を受信した前記定常ノード装置から、前記第2のオーバーレイネットワークに参加している前記ノード装置の所在を示す第1所在情報が少なくとも1つ登録されたルーティングテーブルを受信することを特徴とする。
【0009】
この発明によれば、ノード装置は、第2のオーバーレイネットワークに参加するために必要な情報が登録されたルーティングテーブルを取得することができる。
【0010】
請求項3に記載の発明は、前記ノード装置の前記第1取得手段は、前記第1識別情報として、前記ノード装置の属性を示す属性情報を取得し、前記第1受信手段は、前記第1取得手段により取得された属性情報が示す属性の前記ノード装置の前記第1所在情報が登録された前記ルーティングテーブルを受信することを特徴とする。
【0011】
この発明によれば、同じ属性を有する複数のノード装置により第2のオーバーレイネットワークが形成される。そのため、ノード装置が必要とする情報を、参加している第2のオーバーレイネットワークに参加している他のノード装置が保存している可能性の方が、他の第2のオーバーレイネットワークに参加しているノード装置が保存している可能性よりも高い。従って、ノード装置が参加している第2のオーバーレイネットワーク内でコンテンツを検索することで、検索効率が高くなる。
【0012】
請求項4に記載の発明は、各前記ノード装置は、前記ネットワークを構成する複数のネットワークの何れかに接続され、前記第1取得手段は、前記第1識別情報として、前記ノード装置が接続するネットワークを識別する情報を取得し、前記決定手段は、前記第1取得手段により取得された前記第1識別情報により識別されるネットワークに接続する前記定常ノード装置を、前記コンタクトノード装置として決定することを特徴とする。
【0013】
この発明によれば、同一のネットワークに接続する複数のノード装置により第2のオーバーレイネットワークが形成される。そのため、同一のネットワーク内で情報が送受信されるので、ノード装置間で効率良く通信を行うことができる。また、ノード装置が第2のオーバーレイネットワークに参加するためのアクセス先の定常ノード装置が、同じネットワークに接続する定常ノード装置となる。そのため、ノード装置は、効率良く第2のオーバーレイネットワークに参加することができる。
【0014】
請求項5に記載の発明は、前記第1取得手段は、前記第1識別情報として、前記ノード装置が接続するネットワークを有するインターネットサービスプロバイダを識別する情報を取得し、前記決定手段は、前記第1取得手段により取得された前記第1識別情報により識別されるインターネットサービスプロバイダが有するネットワークに接続する前記定常ノード装置を、前記コンタクトノード装置として決定することを特徴とする。
【0015】
この発明によれば、同一のインターネットサービスプロバイダが有するネットワークに接続する複数のノード装置により第2のオーバーレイネットワークが形成される。そのため、ノード装置間で効率良く通信を行うことができる。また、ノード装置が第2のオーバーレイネットワークに参加するためのアクセス先の定常ノード装置が、同じインターネットサービスプロバイダが有するネットワークに接続する定常ノード装置となる。そのため、ノード装置は、効率良く第2のオーバーレイネットワークに参加することができる。
【0016】
請求項6に記載の発明は、前記決定手段は、前記第1取得手段により取得された前記第1識別情報により識別される前記第2のオーバーレイネットワークに対応する前記コンタクトノード装置を、前記第1のオーバーレイネットワークから検索することを特徴とする。
【0017】
この発明によれば、コンタクトノード装置が第1のオーバーレイネットワークから検索される。そのため、コンタクトノード装置を検索するための負荷を、複数の定常ノード装置に分散させることができる。
【0018】
請求項7に記載の発明は、前記情報通信システムは、前記複数のノード装置によりコンテンツが分散保存され、前記定常ノード装置は、前記コンタクトノード装置として対応する前記第2のオーバーレイネットワークに参加し、前記ノード装置は、取得するコンテンツを保存する前記ノード装置であるコンテンツ保存ノード装置を、参加している前記第2のオーバーレイネットワークから検索する検索手段と、前記検索手段により前記コンテンツ保存ノード装置が検索されなかった場合には、コンテンツの要求を示す第2要求情報を、参加している前記第2のオーバーレイネットワークに対応する前記コンタクトノード装置である前記定常ノード装置により、前記第1のオーバーレイネットワークを介して他の前記定常ノード装置へ送信させる制御手段と、前記定常ノード装置により検索された前記コンテンツ保存ノード装置からコンテンツを取得する第2取得手段と、を更に備え、前記定常ノード装置は、他の前記定常ノード装置から前記第2要求情報を受信する第2受信手段を備え、前記定常ノード装置の前記検索手段は、前記第2受信手段により受信された前記第2要求情報が示すコンテンツを保存する前記コンテンツ保存ノード装置を、参加している前記第2のオーバーレイネットワークから検索することを特徴とする。
【0019】
この発明によれば、ノード装置は、複数の第2のオーバーレイネットワークのうち、参加している第2のオーバーレイネットワークから優先して、取得するコンテンツを検索する。そして、ノード装置は、参加している第2のオーバーレイネットワークからコンテンツを検索することができなかった場合には、他の第2のオーバーレイネットワークからコンテンツを取得する。そのため、異なる第2のオーバーレイネットワーク間で送受信される情報を減らすことができるとともに、ノード装置がコンテンツを確実に取得することができる。
【0020】
請求項8に記載の発明は、ネットワークに接続される複数のノード装置を備え、前記複数のノード装置のうち前記ネットワークに定常的に接続される複数の定常ノード装置により第1のオーバーレイネットワークが構成される情報通信システムにおける前記ノード装置であって、前記ノード装置が接続可能な第2のオーバーレイネットワークを識別する第1識別情報を取得する第1取得手段と、前記第1取得手段により取得された前記第1識別情報に基づいて、前記複数の定常ノード装置の中から、前記第2のオーバーレイネットワークへの参加要求を示す第1要求情報の送信先であるコンタクトノード装置を決定する決定手段と、前記決定手段により決定された前記定常ノード装置に、前記第2のオーバーレイネットワークへの前記第1要求情報を送信する第1送信手段と、前記第1送信手段により送信された前記第1要求情報を受信した前記定常ノード装置から、前記第2のオーバーレイネットワークに参加している前記ノード装置の所在を示す第1所在情報を受信する第1受信手段と、を備えることを特徴とする。
【0021】
請求項9に記載の発明は、ネットワークに接続される複数のノード装置を備え、前記複数のノード装置のうち前記ネットワークに定常的に接続される複数の定常ノード装置により第1のオーバーレイネットワークが構成される情報通信システムにおける情報処理方法であって、情報処理装置または前記ノード装置が、前記ノード装置が接続可能な第2のオーバーレイネットワークを識別する第1識別情報に基づいて、前記複数の定常ノード装置の中から、前記第2のオーバーレイネットワークへの参加要求を示す第1要求情報の送信先であるコンタクトノード装置を決定する決定ステップと、前記ノード装置が、前記ノード装置が参加する前記第2のオーバーレイネットワークを識別する前記第1識別情報を取得する第1取得ステップと、前記ノード装置が、前記決定ステップにおいて決定された前記定常ノード装置に、前記第2のオーバーレイネットワークへの前記第1要求情報を送信する第1送信ステップと、前記ノード装置が、前記第1送信ステップにおいて送信された前記第1要求情報を受信した前記定常ノード装置から、前記第2のオーバーレイネットワークに参加している前記ノード装置の所在を示す第1所在情報を受信する第1受信ステップと、を含むことを特徴とする。
【0022】
請求項10に記載の発明は、ネットワークに接続される複数のノード装置を備え、前記複数のノード装置のうち前記ネットワークに定常的に接続される複数の定常ノード装置により第1のオーバーレイネットワークが構成される情報通信システムに含まれるコンピュータに、前記ノード装置が接続可能な第2のオーバーレイネットワークを識別する第1識別情報に基づいて、前記複数の定常ノード装置の中から、前記第2のオーバーレイネットワークへの参加要求を示す第1要求情報の送信先であるコンタクトノード装置を決定する決定ステップと、前記ノード装置が参加する前記第2のオーバーレイネットワークを識別する前記第1識別情報を取得する第1取得ステップと、前記決定ステップにおいて決定された前記定常ノード装置に、前記第2のオーバーレイネットワークへの前記第1要求情報を送信する第1送信ステップと、前記第1送信ステップにおいて送信された前記第1要求情報を受信した前記定常ノード装置から、前記第2のオーバーレイネットワークに参加している前記ノード装置の所在を示す第1所在情報を受信する第1受信ステップと、を実行させることを特徴とする。
【発明の効果】
【0023】
本発明によれば、複数の定常ノード装置の中から、第1識別情報に基づいて、アクセス先となる定常ノード装置が決定される。そのため、ノード装置が第2のオーバーレイネットワークに参加するときのアクセスの負荷を、複数の定常ノード装置に分散することができる。
【図面の簡単な説明】
【0024】
【図1】一実施形態に係るコンテンツ配信システムSの概要構成例を示す図である。
【図2】一実施形態に係るコンテンツ配信システムSにおける動作概要の一例を示す図である。
【図3】センターサーバSAの概要構成例を示す図である。
【図4】ルータRmの概要構成例を示す図である。
【図5】ユーザ端末Tnの概要構成例を示す図である。
【図6】一実施形態におけるユーザ端末Tnの制御部31のコミュニティP2Pネットワーク参加処理における処理例を示すフローチャートである。
【図7】一実施形態におけるルータRmの制御部21の処理例を示すフローチャートである。
【発明を実施するための形態】
【0025】
以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに本発明を適用した場合の実施形態である。
【0026】
[1.コンテンツ配信システムの概要構成]
始めに、図1を参照して、本実施形態に係るコンテンツ配信システムの概要構成について説明する。図1は、本実施形態に係るコンテンツ配信システムSの概要構成例を示す図である。図1に示すように、コンテンツ配信システムSは、ネットワークNWに、複数のISPネットワークNIk(k=1,2,3・・・の何れか)が接続されている。このネットワークNW及び各ISPネットワークNIkは、現実世界の通信ネットワークである。
【0027】
ネットワークNWは、各ISPネットワークNIkを相互接続し、ISPネットワークNIk間でピアリングを行うためのネットワークである。このネットワークNWは、例えば、IX(Internet eXchange)等によって構成されている。なお、例えば、一部のISPネットワークNIk同士については、直接相互接続されていても良い。ISPネットワークNIkは、ISP(Internet Service Provider)がインターネット接続サービス等を提供するために構築したネットワークである。このISPネットワークNIkは、例えば、ISPのバックボーンネットワーク、アクセスネットワーク等により構成されている。
【0028】
ネットワークNWには、センターサーバSAが接続されている。このセンターサーバSAは、後述するコアP2PネットワークPWに関する処理を実行するサーバ装置である。各ISPネットワークNIkには、それぞれ1台以上のルータRm(m=1,2,3・・・の何れか)が定常的に接続されている。このルータRmは、ISPネットワークNIkと、例えばLAN(Local Area Network)等のネットワークとを相互接続する。ルータRmは、例えば、ルータ機能を有するファイアーウォール、ブロードバンドルータ等である。また、ルータRmは、コアP2PネットワークPWへの接続機能を有する。なお、ルータRmは、本発明における定常ノード装置及び情報処理装置の一例である。
【0029】
また、各ISPネットワークNIkには、それぞれ1台以上のユーザ端末Tn(n=1,2,3・・・の何れか)が接続されている。ユーザ端末Tnは、例えば、パーソナルコンピュータ等である。あるユーザ端末Tnは、ルータRmを介してISPネットワークNIkに接続される。また、あるユーザ端末Tnは、例えば、P2PネットワークPWへの接続機能を有さないルータやモデム等を介してISPネットワークNIkに接続される。なお、図1において、P2PネットワークPWへの接続機能を有さないルータ及びモデムの図示を省略している。ユーザ端末Tnは、本発明におけるノード装置の一例である。
【0030】
[2.ピアツーピアネットワークの概要]
コンテンツ配信システムSにおいては、コンテンツをユーザ端末Tnへ配信するためのピアツーピアネットワークが構築される。コンテンツ配信システムSにおけるピアツーピアネットワークは2種類存在する。第1のピアツーピアネットワークは、コアP2PネットワークPWである。第2のピアツーピアネットワークは、コミュニティP2PネットワークPLl(l=1,2,3・・・の何れか)である。コアP2PネットワークPW及びコミュニティP2PネットワークPLlは、それぞれネットワークNWやISPネットワークNIk上に構築される論理的なオーバーレイネットワークである。
【0031】
コアP2PネットワークPWは、複数のルータRmの接続により形成されている。このコアP2PネットワークPWは、例えば、コミュニティP2PネットワークPLl間のコンテンツの送受信に用いられる。また、コアP2PネットワークPWは、例えば、コンテンツ配信システムSにおいて利用されるコンテンツの送受信に用いられても良い。また、コアP2PネットワークPWは、例えば、ルータRmが利用するコンテンツの送受信に用いられても良い。また、コアP2PネットワークPWは、例えば、コミュニティP2PネットワークPLl内で送受信されるコンテンツの送受信に用いられても良い。なお、コアP2PネットワークPWは、本発明における第1のオーバーレイネットワークの一例である。
【0032】
コミュニティP2PネットワークPLlは、必要に応じて生成される。コミュニティP2PネットワークPLlは、例えば、ユーザ端末Tnに設定される属性毎に生成される。また、コミュニティP2PネットワークPLlは、例えば、コンテンツ配信システムSの管理者により設定された属性毎に生成されても良いし、ユーザにより設定された属性毎に生成されても良い。この属性を、「ノード属性」という。ノード属性としては、例えば、ユーザ端末Tnが接続するISPネットワークNIk、すなわち、ユーザ端末Tnのユーザが加入しているISPがある。また、ノード属性としては、例えば、ユーザ端末Tnのユーザが属するインターネットコミュニティがある。インターネットコミュニティは、例えば、関心がある分野、価値観、目的、居住地域等が同じユーザによって形成される。また、各コミュニティP2PネットワークPLlには、1台以上のルータRmが、後述するコンタクトノードとして接続される。なお、コミュニティP2PネットワークPLlは、本発明における第2のオーバーレイネットワークの一例である。
【0033】
以下、本実施形態のピアツーピアネットワークの基本的な仕組み及び動作概要を、コアP2PネットワークPW及びコミュニティP2PネットワークPLlに共通する事項として説明する。ここで、ピアツーピアネットワークに接続する装置を、「ノード」と称する。コアP2PネットワークPWにおいてノードに相当する装置は、ルータRmである。また、コミュニティP2PネットワークPLlにおいてノードに相当する装置は、ユーザ端末Tn及びコンタクトノードとしてのルータRmである。
【0034】
本実施形態のピアツーピアネットワークは、特定のアルゴリズム、例えば、DHT(Distributed Hash Table)を利用したアルゴリズムにより実現される。そして、ピアツーピアネットワークに接続する各ノードには、所定桁数からなる固有の識別情報であるノードIDが割り当てられている。図1に示す各ピアツーピアネットワークは、ノードIDのID空間をリング状のものとして示されている。そして、図1のリング状のID空間において示されている各ノードの位置は、それぞれのノードIDに対応している。
【0035】
各ノードは、それぞれ、DHTを用いたルーティングテーブルを保持している。このルーティングテーブルを、「DHTルーティングテーブル」という。DHTルーティングテーブルは、ピアツーピアネットワーク上における各種メッセージの転送先を規定している。具体的に、DHTルーティングテーブルには、ID空間内で適度に離れたノードのノードID、IPアドレス及びポート番号を含むノード情報が複数登録されている。ピアツーピアネットワークに接続している1台のノードは、必要最低限のノードのノード情報をDHTルーティングテーブルとして記憶している。各ノード間で互いに各種メッセージが転送されることで、ノード情報を記憶していないノードについてのノード情報が取得される。なお、DHTルーティングテーブルは、本発明におけるルーティングテーブルの一例である。また、DHTルーティングテーブルに登録されているノード情報に含まれるIPアドレスは、本発明における第1所在情報の一例である。
【0036】
ピアツーピアネットワークにおいては、内容の異なる様々なコンテンツが複数のノードに分散して保存される。以下、コンテンツを保存するノードを、「コンテンツ保持ノード」という。各コンテンツのオリジナルは、例えば、センターサーバSAに保存されている。例えば、センターサーバSAから1台以上のルータRmにコンテンツが配信されて、ルータRmが受信したコンテンツを保存する。これにより、各ルータRmは、そのコンテンツをコアP2PネットワークPWから取得することができるようになる。また、コンテンツを保存したルータRmが参加するコミュニティP2PネットワークPLlの各ユーザ端末Tnは、そのコンテンツをコミュニティP2PネットワークPLlから取得することができるようになる。各コンテンツには、それぞれコンテンツ毎に固有の識別情報であるコンテンツIDが付与されている。なお、DHTルーティングについては、特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
【0037】
分散保存されているコンテンツの所在は、インデックス情報として、コンテンツの所在を管理(記憶)しているノードにより記憶される。コンテンツの所在を管理しているノードを、「ルートノード」という。インデックス情報は、コンテンツを保存したノードのノード情報と、コンテンツのコンテンツIDと等の組を含む。このようなルートノードは、例えば、コンテンツIDと最も近いノードIDを有するノードであるように定められる。コンテンツIDと最も近いノードIDとは、例えば、IDの上位桁が最も多く一致するノードIDである。
【0038】
そして、或るノードが、或るコンテンツを取得しようとする場合、そのノードは、検索メッセージを生成する。以下、コンテンツを取得しようとするノードを、「ユーザノード」という。検索メッセージは、取得対象のコンテンツのコンテンツID及びユーザノードのIPアドレス等を含む。検索メッセージは、コンテンツ保持ノードを検索するためのメッセージである。検索メッセージが、ユーザノードが記憶するDHTルーティングテーブルに従って、他のノードに対して送出される。つまり、ユーザノードは、検索メッセージを、ルートノードに向けて送出する。これにより、検索メッセージは、コンテンツIDをキーとするDHTルーティングによって最終的にルートノードに到着することになる。
【0039】
検索メッセージを受信したルートノードは、これに含まれるコンテンツIDに対応するインデックス情報をインデックス情報キャッシュから取得する。ルートノードは、取得したインデックス情報を、検索メッセージの送信元であるユーザノードに対して返信する。こうしてインデックス情報を取得したユーザノードは、インデックス情報に基づいてコンテンツをダウンロード(取得)することができる。ユーザノードは、インデックス情報に含まれるコンテンツ保持ノードのIPアドレス及びポート番号等に基づいて、コンテンツ要求メッセージをコンテンツ保持ノードに送信する。コンテンツ要求メッセージには、取得対象のコンテンツのコンテンツIDが含まれている。コンテンツ要求メッセージを受信したコンテンツ保持ノードは、コンテンツ要求メッセージに含まれるコンテンツIDに対応するコンテンツをユーザノードに送信(アップロード)する。このようにして、ユーザノードは、コンテンツをダウンロードする。
【0040】
ユーザノードは、コンテンツ保持ノードからコンテンツを取得して保存したとき、パブリッシュメッセージを生成する。パブリッシュメッセージは、コンテンツを保存したことをルートノードへ知らせるためのメッセージである。パブリッシュメッセージは、コンテンツのコンテンツID及びコンテンツを保存したノード装置のノード情報を含む。パブリッシュメッセージは、ルートノードに向けて送出される。これにより、パブリッシュメッセージは、検索メッセージと同じように、コンテンツIDをキーとするDHTルーティングによってルートノードに到着することになる。ルートノードは、パブリッシュメッセージに含まれるノード情報及びコンテンツIDの組を含むインデックス情報をインデックス情報キャッシュ領域に記憶する。こうして、上記ユーザノードは、新たに、上記コンテンツを保持するコンテンツ保持ノードとなる。
【0041】
各ユーザ端末Tnは、上述した方法により、ユーザ端末Tn自身が参加しているコミュニティP2PネットワークPLlからコンテンツを取得する。しかしながら、そのコミュニティP2PネットワークPLlからコンテンツを取得することができない場合がある。その場合、ユーザ端末Tnは、コアP2PネットワークPWを介して、他のコミュニティP2PネットワークPLlから、コンテンツを取得する。
【0042】
他のコミュニティP2PネットワークPLlからのコンテンツの取得の詳細を説明する。ユーザ端末Tnは、ユーザ端末Tn自身が参加しているコミュニティP2PネットワークPLlに対して、コンテンツの検索メッセージを送信する。そして、ユーザ端末Tnは、コンテンツのルートノードからの応答結果に基づいて、コンテンツ保持ノードが存在しないと判定したとする。その場合、ユーザ端末Tnは、ユーザ端末Tn自身が参加しているコミュニティP2PネットワークPLlのコンタクトノードであるルータRmに、他のコンテンツの取得を要求させる。具体的に、ユーザ端末Tnは、取得するコンテンツのコンテンツIDを含むコンテンツ取得要求メッセージを、コンタクトノードに送信する。
【0043】
コンテンツ取得要求メッセージを受信したルータRmは、コアP2PネットワークPWを介して、コンテンツ取得要求メッセージを他のルータRmに転送する。なお、この場合におけるコンテンツ取得要求メッセージは、本発明における第2要求情報の一例である。ユーザ端末Tnからのコンテンツ取得要求メッセージを転送するルータRmを、「要求元ノード」という。また、コンテンツ取得要求メッセージの転送先のルータRmを、「要求先ノード」という。要求先ノードは、例えば、要求元ノードが保持するコアP2PネットワークPWのDHTルーティングテーブルにノード情報が登録されているルータRmである。要求先ノードは、コンテンツ取得要求メッセージに含まれるコンテンツIDに基づいて、要求先ノード自身がコンタクトノードとして参加しているコミュニティP2PネットワークPLlからコンテンツを検索して取得する。そして、要求先ノードは、取得したコンテンツを要求元ノードに送信する。一方、要求先ノードは、検索の結果、コンテンツ保持ノードが存在しなかった場合、または、要求先ノードがコミュニティP2PネットワークPLlに参加していない場合には、コンテンツを取得することができなかったことを示すコンテンツ未取得メッセージを、要求元ノードに送信する。要求元ノードは、要求先ノードからコンテンツ未取得メッセージを受信した場合には、要求先ノードを別のルータRmに変えて、コンテンツ取得要求メッセージを送信する。そして、要求元ノードは、要求先ノードからコンテンツを受信した場合には、受信したコンテンツを、ユーザノードであるユーザ端末Tnに送信する。
【0044】
[3.コミュニティP2Pネットワークへの参加]
次に、図2を参照して、ユーザ端末TnがコミュニティP2PネットワークPLlに参加する方法、及び、その際のコンタクトノードの決定方法について説明する。図2は、本実施形態に係るコンテンツ配信システムSにおける動作概要の一例を示す図である。
【0045】
各ユーザ端末Tnは、例えばユーザ操作等に基づいて、コミュニティP2PネットワークPLlに参加する。コミュニティP2PネットワークPLlへの参加とは、ユーザ端末TnがコミュニティP2PネットワークPLlに接続されることにより、そのコミュニティP2PネットワークPLlに接続されている他のユーザ端末Tnとピアツーピア方式で通信可能となることをいう。そのためには、ユーザ端末Tnは、参加するコミュニティP2PネットワークPLlのDHTルーティングテーブルを取得する必要がある。そこで、ユーザ端末Tnは、参加するコミュニティP2PネットワークPLlのコンタクトノードから、そのコミュニティP2PネットワークPLlのDHTルーティングテーブルを取得する。コンタクトノードとは、ユーザ端末Tnが、DHTルーティングテーブルを取得するためにアクセスするルータRmである。
【0046】
各ユーザ端末Tnが、それぞれのコミュニティP2PネットワークPLlに参加する際に、予め定められたルータRmにアクセスすると、特定のルータRmに負荷が集中する。そこで、コンテンツ配信システムSにおいては、コミュニティP2PネットワークPLl毎に、複数のルータRmの中から、コンタクトノードが決定される。
【0047】
各ルータRmには、そのルータRmがコンタクトノードとなるコミュニティP2PネットワークPLlに対応するノード属性が割り当てられる。各ルータRmは、割り当てられたノード属性を示す情報として、ノード属性情報を記憶する。ノード属性情報は、コミュニティP2PネットワークPLlを識別するための情報でもある。例えば、各ルータRmには、ノード属性情報として、そのルータRmが接続するISPネットワークNIkのISP名が設定される。また、例えば、各ルータRmには、ノード属性情報として、任意のコミュニティ名が設定される。各ノード属性には、それぞれ固有の識別情報である属性IDが割り当てられる。属性IDは、例えば、ノード属性情報が共通のハッシュ関数によりハッシュ化されて生成される。なお、ノード属性としてのコミュニティは、1台のルータRmに複数割り当て可能である。また、同一のノード属性が複数のルータRmに割り当てられても良い。また、一部のルータRmについて、ノード属性が割り当てられなくても良い。なお、ノード属性情報は、本発明における第1識別情報及び属性情報の一例である。
【0048】
各ルータRmに割り当てられたノード属性に関する情報は、属性インデックス情報として、ノード属性を管理するルータRmにより記憶される。ノード属性を管理するルータRmを、「属性ルートノード」という。属性インデックス情報には、ノード属性が割り当てられたルータRmのノード情報と、ノード属性の属性IDとの組を含む。属性ルートノードは、コンテンツのルートノードの場合と同様に、属性IDと最も近いノードIDを有するルータRmであるように定められる。
【0049】
各ルータRmは、ノード属性が割り当てられると、そのノード属性を公開する。具体的に、ルータRmは、そのルータRmのノード情報と、割り当てられたノード属性の属性IDとを含む属性パブリッシュメッセージを送信する。属性パブリッシュメッセージは、コンテンツのパブリッシュメッセージと同様に、属性IDをキーとするDHTルーティングによって属性ルートノードに到着する。属性ルートノードは、属性パブリッシュメッセージに含まれるノード情報及び属性IDの組を含む属性インデックス情報を記憶する。これにより、各ルータRmは、ノード属性が割り当てられたルータRmを、コアP2PネットワークPWから検索することができる。
【0050】
図2においては、例えば、ユーザ端末T1が、これからコミュニティP2PネットワークPLlに参加する。先ず、ユーザ端末T1は、ユーザ端末T1のノード属性を示すノード属性情報を取得する(図2(1))。例えば、ユーザ端末T1は、ユーザ端末T1が接続するISPネットワークNI1を示す「ISP1」、及び、インターネットコミュニティとして音楽の興味の分野を示す「ポップス」を取得したとする。すると、ユーザ端末T1は、ノード属性情報としての「ISP1」及び「ポップス」を含むコンタクトノード問い合わせメッセージを、任意のルータRm、例えば、ルータR6に送信する(図2(2))。なお、コンタクトノード問い合わせメッセージは、本発明における問い合わせ情報の一例である。
【0051】
ルータR6は、受信したコンタクトノード問い合わせメッセージに含まれる「ISP1」及び「ポップス」に基づいて、それぞれの属性IDを生成する。そして、ルータR6は、ルータR6自身のノード情報及び生成した属性IDを含むコンタクトノード検索メッセージを送信する(図2(3))。コンタクトノード検索メッセージは、コンテンツの検索メッセージと同様に、DHTルーティングによって属性ルートノードに到達する。例えば、「ISP1」の属性IDを含むコンタクトノード検索メッセージは、ルータR3に到着する。ルータR3は、受信したコンタクトノード検索メッセージに含まれる属性IDに対応する属性インデックス情報を、ルータR6に送信する(図2(4))。「ポップス」についても、図2(3)及び図2(4)と同様の処理が行われる。
【0052】
ルータR6は、受信した各属性インデックス情報に基づいて、コンタクトノードを決定する(図2(5))。例えば、ルータR6は、ノード属性として、「ISP1」及び「ポップス」の両方が割り当てられたルータRm、例えば、ルータR2を、コンタクトノードとして決定する。そして、ルータR6は、コンタクトノードとして決定したルータR2のノード情報と、「ISP1」及び「ポップス」それぞれの属性IDを含む回答メッセージを、ユーザ端末T1に送信する(図2(6))。また、ルータR6は、「ISP1」及び「ポップス」の両方が割り当てられたルータRmが存在しない場合には、「ISP1」が割り当てられたルータRmを、コンタクトノードとして決定する。また、ルータR6は、「ISP1」が割り当てられたルータRmも存在しない場合には、「ポップス」が割り当てられたルータRmを、コンタクトノードとして決定する。なお、回答メッセージに含まれるコンタクトノードのノード情報に含まれるIPアドレスは、本発明における第2所在情報の一例である。
【0053】
ユーザ端末T1は、受信した回答メッセージに含まれるノード情報のIPアドレス及びポート番号に基づいて、ルータR2に参加要求メッセージを送信する(図2(7))。参加要求メッセージには、回答メッセージに含まれていた「ISP1」及び「ポップス」の属性IDが設定される。なお、参加要求メッセージは、本発明のおける第1要求情報の一例である。
【0054】
ルータR2は、受信した回答メッセージに含まれる「ISP1」及び「ポップス」の属性IDに対応する、例えば、コミュニティP2PネットワークPL1のDHTルーティングテーブルを、ユーザ端末T1に返信する(図2(8))。このとき、ルータR2は、コミュニティP2PネットワークPL1が生成されていない場合には、コミュニティP2PネットワークPL1を生成する。ユーザ端末T1は、受信したDHTルーティングテーブルに基づいて、コミュニティP2PネットワークPL1に参加している他のユーザ端末Tnとピアツーピア通信を行う。
【0055】
コンテンツ配信システムSにおいては、ノード属性として、ISPとインターネットコミュニティが用いられている。以下に、ISP毎にコミュニティP2PネットワークPLlを分けた場合の効果、及び、インターネットコミュニティ毎にコミュニティP2PネットワークPLlを分けた場合の効果について説明する。
【0056】
ISPネットワークNIk間では、例えば、ピアリングやトランジット等により情報が送受信される。この場合、ISPネットワークNIk内で情報が送受信されるよりも、情報の送受信に時間を要する。これに対し、同一のISPネットワークNIkに接続する複数のユーザ端末Tnにより形成されるコミュニティP2PネットワークPLl内で情報が送受信される限りは、ISPネットワークNIk間の情報の送受が発生しない。これにより、効率よく情報を送受信することができる。
【0057】
また、ユーザ端末Tnは、ユーザ端末Tn自身が参加しているISPネットワークNIkからコンテンツを検索してコンテンツを取得する。ここで、ユーザ端末Tnは、コンテンツを検索することができなかった場合、ユーザ端末Tn自身と同じISPネットワークNIkに参加しているルータRmを介して、他のISPネットワークNIkからコンテンツを取得する。そのため、最初の検索でコンテンツが発見されないと、コンテンツの取得に時間を要する。ここで、ユーザが欲するコンテンツは、そのユーザと同じインターネットコミュニティに属するユーザが利用するユーザ端末Tnが保存している可能性の方が、その他のユーザ端末Tnが保存している可能性よりも高い。そこで、同一のインターネットコミュニティに属する複数のユーザがそれぞれ利用するユーザ端末TnでコミュニティP2PネットワークPLlを形成することで、最初の検索でコンテンツが発見される可能性が高くなる。このように、検索効率が高くなり、ユーザ端末Tnが、コンテンツを効率的に取得することができる。
【0058】
[4.各装置の構成及び機能]
次に、図3乃至図5を参照して、各装置の構成及び機能について説明する。図3は、センターサーバSAの概要構成例を示す図である。図4は、ルータRmの概要構成例を示す図である。また、図5は、ユーザ端末Tnの概要構成例を示す図である。
【0059】
[4.1 センターサーバの構成]
センターサーバSAは、図3に示すように、演算機能を有するCPU,作業用RAM,各種データ及びプログラムを記憶するROM等から構成された制御部11を備えている。また、センターサーバSAは、各種データ及び各種プログラム等を記憶保存するためのHD(ハードディスク)等から構成された記憶部12を備えている。更に、センターサーバSAは、ネットワークNWを通じてルータRm等との間の情報の通信制御を行うための通信部13を備えている。また更に、センターサーバSAは、各種情報を表示するCRT,液晶ディスプレイ等の表示部14を備えている。更にまた、センターサーバSAは、オペレータからの指示を受け付けこの指示に応じた指示信号を制御部11に対して与える入力部15(例えば、キーボード、マウス等)を備えている。制御部11、記憶部12、通信部13、表示部14、及び入力部15はバス16を介して相互に接続されている。
【0060】
記憶部12には、各ルータRmのノード情報が記憶されている。制御部11は、CPUが記憶部12等に記憶されたプログラムを読み出して実行することにより、センターサーバSA全体を統括制御する。
【0061】
[4.2 ルータの構成]
ルータRmは、図4に示すように、演算機能を有するCPU,作業用RAM,各種データ及びプログラムを記憶するROM等から構成された制御部21を備えている。また、ルータRmは、各種データ及び各種プログラム等を記憶保存するためのHD等から構成された記憶部22を備えている。更に、ルータRmは、ISPネットワークNIk等を通じて、他のルータRm、センターサーバSA、ユーザ端末Tn等との間の情報の通信制御を行うための通信部23を備えている。制御部21、記憶部22及び通信部23はバス24を介して相互に接続されている。
【0062】
記憶部22は、ルータRm自身のノード情報、コアP2PネットワークPWのDHTルーティングテーブル、ネットワーク層レベルでのルーティングに用いられるルーティングテーブル、コアP2PネットワークPWで用いられるコンテンツのインデックス情報及び属性インデックス情報が記憶されている。また、記憶部22には、ダウンロードされたコンテンツが、コンテンツIDに対応付けて記憶されている。また、記憶部22には、ルータRmに割り当てられたノード属性のノード属性情報及びそのノード属性の属性IDが記憶されている。また、記憶部22には、コミュニティP2PネットワークPLlが存在するか否かを示すP2P有無情報が、ルータRmに割り当てられたノード属性の属性IDに対応付けて記憶されている。コミュニティP2PネットワークPLlが存在する場合、P2P有無情報には「有り」が設定され、コミュニティP2PネットワークPLlが存在しない場合、P2P有無情報には「無し」が設定される。また、記憶部22には、P2P有無情報に「有り」が設定されている属性IDに対応付けて、ルータRmが生成したコミュニティP2PネットワークPLlのDHTルーティングテーブル及びコンテンツのインデックス情報が記憶されている。
【0063】
更に、記憶部22には、オペレーティングシステム、及び各種プログラム(本発明の情報処理プログラムを含む)が記憶されている。なお、各種プログラムは、例えば、所定のサーバ装置等からダウンロードされるようにしても良い。また、各種プログラムは、例えば、DVD(Digital Versatile Disc)等の記録媒体に記録されて当該記録媒体からドライブを介して読み込まれるようにしても良い。
【0064】
制御部21は、CPUが記憶部22等に記憶されたプログラムを読み出して実行することにより、決定手段、第2受信手及び検索手段として機能する。
【0065】
[4.3 ユーザ端末の構成]
各ユーザ端末Tnは、図5に示すように、演算機能を有するCPU,作業用RAM,各種データ及びプログラムを記憶するROM等から構成されたコンピュータとしての制御部31を備えている。また、各ユーザ端末Tnは、各種データ及び各種プログラム等を記憶保存するためのHD等から構成された記憶部32と、受信されたコンテンツ等を一時蓄積するバッファメモリ33とを備えている。更に、各ユーザ端末Tnは、コンテンツに含まれるエンコードされたビデオデータ(映像情報)及びオーディオデータ(音声情報)等をデコードするデコーダ部34を備えている。また更に、各ユーザ端末Tnは、このデコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部35と、この映像処理部35から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等の表示部36と、を備えている。更にまた、各ユーザ端末Tnは、上記デコードされたオーディオデータをアナログオーディオ信号にD (Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音声処理部37と、この音声処理部37から出力されたオーディオ信号を音波として出力するスピーカ38と、を備えている。また更に、各ユーザ端末Tnは、ISPネットワークNIk等を通じてルータRm、コンテンツ配信サーバSD等との間の情報の通信制御を行うための通信部39を備えている。更にまた、各ユーザ端末Tnは、ユーザからの指示を受け付けこの指示に応じた指示信号を制御部31に対して与える入力部40(例えば、キーボード、マウス、或いは、リモコンや操作パネル等)を備えている。そして、制御部31、記憶部32、バッファメモリ33、デコーダ部34、通信部39、及び入力部40はバス41を介して相互に接続されている。
【0066】
記憶部32には、ユーザ端末Tn自身のノード情報が記憶されている。また、記憶部32には、ユーザ端末Tnが参加しているコミュニティP2PネットワークPLlのDHTルーティングテーブル及びコンテンツのインデックス情報が記憶されている。また、記憶部32には、ダウンロードされたコンテンツが記憶されている。また、記憶部32には、ユーザ端末Tnの属性として設定されたノード属性情報が記憶されている。ISP名を示すノード属性情報は、例えば、ユーザやコンテンツ配信システムSの管理者によって設定される。コミュニティ名を示すノード属性情報は、例えば、ユーザによって設定される。また、記憶部32には、コンタクトノード問い合わせメッセージの送信先となるルータRmのリストを示す問い合わせ先リスト情報が記憶されている。具体的に、問い合わせ先リスト情報には、ルータRmのIPアドレス及びポート番号が一組以上設定されている。
【0067】
更に、記憶部32には、オペレーティングシステム、ブラウザ、その他各種アプリケーションプログラムが記憶されている。なお、各種アプリケーションプログラムは、例えば、所定のサーバ装置等からダウンロードされるようにしても良い。また、各種アプリケーションプログラムは、例えば、DVD(Digital Versatile Disc)等の記録媒体に記録されて当該記録媒体からドライブを介して読み込まれるようにしても良い。
【0068】
制御部31は、CPUが記憶部32等に記憶されたプログラムを読み出して実行することにより、第1取得手段、第1送信手段、第1受信手段、検索手段、制御手段及び第2取得手段として機能する。
【0069】
[5.コンテンツ配信システムの動作]
次に、図6及び図7を参照して、本実施形態におけるコンテンツ配信システムSの動作について説明する。図6は、本実施形態におけるユーザ端末Tnの制御部31のコミュニティP2Pネットワーク参加処理における処理例を示すフローチャートである。
【0070】
先ず、制御部31は、ユーザ端末Tn自身のノード属性を示すノード属性情報を取得する(ステップS1)。例えば、制御部31は、記憶部22に記憶されているノード情報を取得する。また、例えば、ユーザが入力部40を介してノード情報を入力することにより、制御部31が入力されたノード情報を取得しても良い。
【0071】
次いで、制御部31は、コンタクトノード問い合わせメッセージの送信先となるルータRmを決定する(ステップS2)。例えば、制御部31は、記憶部32に記憶されている問い合わせ先リスト情報の各ルータRmのIPアドレス及びポート番号に基づいて、ICMP(Internet Control Message Protocol)のエコーメッセージを複数のルータRmに送信する。その後、制御部31は、エコーメッセージの送信先のルータRmからエコー応答メッセージを受信する。そして、制御部31は、エコーメッセージの送信先のルータRmのうち、最も早くエコー応答メッセージを送信してきたルータRmを、コンタクトノード問い合わせメッセージの送信先として決定する。応答が早いルータRmであるほど、処理能力が高かったり、現在の処理負荷が低い可能性があったりする。そのようなルータRmにコンタクトノードを決定させることにより、ユーザ端末Tnは、コンタクトノードの情報をより早く取得することができる。
【0072】
コンタクトノード問い合わせメッセージの送信先となるルータRmの決定方法としては、他の方法を適用しても良い。例えば、制御部31は、ユーザ端末Tn自身と同じISPネットワークNIkに接続されているルータRmを送信先としても良い。同一のISPネットワークNIk内でコンタクトノード問い合わせメッセージ及び回答メッセージが送受信されるので、メッセージが効率よく送受信される。また、ユーザ端末Tnと同じISPネットワークNIkに接続されているルータRmの方が、他のルータRmよりも、そのユーザ端末Tnが参加するコミュニティP2PネットワークPLlのコンタクトノードである可能性が高い。コンタクトノード問い合わせメッセージを受信したルータRmがコンタクトノードである場合、ルータRmは、コンタクトノードを検索することなく、DHTルーティングテーブルをユーザ端末Tnに送信することができる。この場合、ユーザ端末Tnは、参加要求メッセージを送信する必要がない。そのため、ユーザ端末Tnは、効率よくコミュニティP2PネットワークPLに参加することができる。具体的に、問い合わせ先リスト情報には、各ルータRmのIPアドレス及びポート番号に加えて、各ルータRmにノード属性として割り当てられたISPのISP名が含まれるようにする。制御部31は、ユーザ端末Tnのノード属性として記憶部32に記憶されているISP名と同一のISP名が問い合わせ先リスト情報中に設定されているルータRmを、送信先として決定する。また、制御部21は、コンタクトノード問い合わせメッセージの送信先となるルータRmをランダムに選択しても良い。
【0073】
次いで、制御部31は、ステップS2において決定したルータRmに、コンタクトノード問い合わせメッセージを送信する(ステップS3)。このとき、制御部31は、取得したノード属性情報をコンタクトノード問い合わせメッセージに設定する。その後、制御部31は、コンタクトノード問い合わせメッセージの送信先のルータRmから送信されてきた回答メッセージを受信する(ステップS4)。
【0074】
次いで、制御部31は、受信した回答メッセージに基づいて、コンタクトノードとして決定されたルータRmに、参加要求メッセージを送信する(ステップS5)。具体的に、制御部31は、回答メッセージに含まれるコンタクトノードのIPアドレス及びポート番号に基づいて、参加要求メッセージを送信する。このとき、制御部31は、回答メッセージに含まれている属性IDと、ユーザ端末Tn自身のノード情報とを、参加要求メッセージに設定する。
【0075】
その後、制御部31は、コンタクトノードから送信されてきたルーティングテーブルを受信する(ステップS6)。そして、制御部31は、受信したルーティングテーブルを、記憶部32に記憶させる。制御部31は、ステップS6の処理を終えると、コミュニティP2Pネットワーク参加処理を終了させる。
【0076】
図7は、本実施形態におけるルータRmの制御部21の処理例を示すフローチャートである。図7に示す処理は、例えば、ルータRmの電源がONとされた場合に開始される。
【0077】
先ず、制御部21は、コンテンツ配信システムSの管理者からノード属性情報が登録されたか否かを判定する(ステップS11)。なお、ルータRmに対するノード属性情報の登録方法は任意である。例えば、管理者がルータRmに直接登録しても良い。また例えば、管理者がセンターサーバSAに対して、ノード属性情報と、登録先のルータRmのノードID等とを設定し、センターサーバSAが、設定されたノード属性情報を、ルータRmに送信しても良い。
【0078】
制御部21は、ノード属性情報が登録されたと判定した場合には(ステップS11:YES)、登録されたノード属性情報を、ルータRm自身に割り当てられたノード属性を示すノード属性情報として、記憶部22に記憶させる。次いで、制御部21は、登録されたノード属性情報に基づいて、属性IDを生成する(ステップS12)。
【0079】
次いで、制御部21は、今回割り当てられたノード属性を公開するか否かを判定する(ステップS13)。具体的に、制御部21は、ノード属性情報がISP名である場合には、公開すると判定する。一方、制御部21は、ノード属性情報がコミュニティ名である場合には、そのコミュニティ名が既に公開されているか否かを判定する。より詳細に、制御部21は、ステップS12において生成した属性IDを含むコンタクトノード検索メッセージを送信する。そして、制御部21は、属性ルートノードから送信されてきた属性インデックス情報を受信する。また、制御部21は、ノード属性として既に割り当てられているISPの属性IDを記憶部22から取得する。次いで、制御部21は、取得した属性IDを含むコンタクトノード検索メッセージを送信する。そして、制御部31は、属性ルートノードから送信されてきた属性インデックス情報を受信する。次いで、制御部21は、受信した各属性インデックス情報に基づいて、ルータRm自身に割り当てられているISPをノード属性として公開している他のルータRmのうち、今回割り当てられたインターネットコミュニティをノード属性として公開しているルータRmが存在するか否かを判定する。このとき、制御部21は、今回割り当てられたインターネットコミュニティを公開しているルータRmが存在しないと判定した場合には、公開すると判定する。一方、制御部21は、今回割り当てられたインターネットコミュニティを公開しているルータRmが存在すると判定した場合には、公開しないと判定する。つまり、制御部21は、ノード属性として、同一のISPとインターネットコミュニティとの組が、複数のルータRmにより公開されないように制御する。
【0080】
この制御により、各ルータRmが、ノード属性として割り当てられた全てのインターネットコミュニティを公開しなくても、コンタクトノードを、ISPとインターネットコミュニティ毎に1台ずつ割り当てることができる。そのため、同一のISPとインターネットコミュニティの組が割り当てられた各ルータRmにより、同一の組に対応するコミュニティP2PネットワークPLlがそれぞれ別個に生成されることが防止される。従って、同一のISPネットワークNIkに接続し、且つ、同一のインターネットコミュニティに属する複数のノード装置が、コミュニティP2PネットワークPLlに確実に参加することができる。なお、制御部21は、ノード属性として割り当てられたインターネットコミュニティを全て公開しても良い。
【0081】
制御部21は、割り当てられたノード属性を公開すると判定した場合には(ステップS13:YES)、生成した属性IDとルータRm自身のノード情報とを含む属性パブリッシュメッセージを送信する(ステップS14)。制御部21は、割り当てられたノード属性を公開しないと判定した場合(ステップS13:NO)、または、ステップS14の処理を終えた場合には、ステップS11に移行する。
【0082】
ステップS11において、制御部21は、ノード属性情報が登録されなかったと判定した場合には(ステップS15:NO)、属性ルートノードとして、他のルータRmから属性パブリッシュメッセージを受信したか否かを判定する(ステップS15)。このとき、制御部21は、属性パブリッシュメッセージを受信したと判定した場合には(ステップS15:YES)、属性パブリッシュメッセージに含まれる属性IDとノード情報とを対応付けて、属性インデックス情報として記憶部22に記憶させる(ステップS16)。制御部21は、ステップS16の処理を終えると、ステップS11に移行する。
【0083】
ステップS15において、制御部21は、属性パブリッシュメッセージを受信しなかったと判定した場合には(ステップS15:NO)、ユーザ端末Tnからコンタクトノード問い合わせメッセージを受信したか否かを判定する(ステップS17)。このとき、制御部21は、コンタクトノード問い合わせメッセージを受信したと判定した場合には(ステップS17:YES)、コンタクトノード問い合わせメッセージに含まれるノード属性情報に基づいて、属性IDを生成する(ステップS18)。次いで、制御部21は、生成した属性IDとルータRm自身のノード情報を含むコンタクトノード検索メッセージを送信する(ステップS19)。その後、制御部21は、属性ルートノードから送信されてきた属性インデックス情報を受信する(ステップS20)。なお、コンタクトノード問い合わせメッセージに属性IDが複数含まれている場合、制御部21は、属性ID毎に、ステップS18乃至S20の処理を実行する。
【0084】
次いで、制御部21は、受信した属性インデックス情報に基づいて、コンタクトノードを決定する(ステップS21)。具体的に、制御部21は、受信した全ての属性インデックス情報中にノード情報が含まれているルータRmを、コンタクトノードとして決定する。つまり、コンタクトノードの問い合わせ元のユーザ端末Tnのノード属性と同じノード属性を全て公開しているルータRmが、コンタクトノードとされる。このようなルータRmが存在しない場合、制御部21は、ISPの属性インデックス情報中にノード情報が含まれているルータRmのうち、各インターネットコミュニティの属性インデックス情報中にノード情報が含まれている数が最も多いルータRmを、コンタクトノードとして決定する。つまり、コンタクトノード問い合わせメッセージの送信元のユーザ端末Tnと同一のISPネットワークNIkに接続し、且つ、そのユーザ端末Tnのユーザが属するインターネットコミュニティと同じインターネットコミュニティを最も多く公開しているルータRmが、コンタクトノードとされる。制御部21は、インターネットコミュニティの属性インデックス情報中にノード情報が含まれているルータRmが存在しない場合には、ISPの属性インデックス情報中にノード情報が含まれているルータRmの中から、コンタクトノードを任意に決定する。また、制御部21は、ISPの属性インデックス情報を受信することができなかった場合には、各インターネットコミュニティの属性インデックス情報中にノード情報が含まれている数が最も多いルータRmを、コンタクトノードとして決定する。つまり、ユーザ端末Tnと同一のISPネットワークNIkに接続されているルータRmが存在しなかった場合には、そのユーザ端末Tnのユーザが属するインターネットコミュニティと同じインターネットコミュニティを最も多く公開しているルータRmが、コンタクトノードとされる。
【0085】
次いで、制御部21は、コンタクトノードとして決定したルータRmのノード情報を含む回答メッセージを、コンタクトノード問い合わせメッセージの送信元のユーザ端末Tnに送信する(ステップS22)。このとき、制御部21は、コンタクトノード問い合わせメッセージに含まれていた属性IDのうち、コンタクトノードとして決定したルータRmが公開しているノード属性の属性IDを、回答メッセージに設定する。この設定処理は、ルータRmに割り当てられていないノード属性に対応するコミュニティP2PネットワークPLlが生成されないようにするために存在する。制御部21は、ステップS22の処理を終えると、ステップS11に移行する。
【0086】
ステップS17において、制御部21は、コンタクトノード問い合わせメッセージを受信しなかったと判定した場合には(ステップS17:NO)、属性ルートノードとして、他のルータRmからコンタクトノード検索メッセージを受信したか否かを判定する(ステップS23)。このとき、制御部21は、コンタクトノード検索メッセージを受信したと判定した場合には(ステップS23:YES)、属性インデックス情報を、コンタクトノード検索メッセージの送信元のルータRmに送信する(ステップS24)。具体的に、制御部21は、コンタクトノード検索メッセージに含まれる属性IDに対応する属性インデックス情報を記憶部22から取得し、取得した属性インデックス情報を送信する。制御部21は、ステップS24の処理を終えると、ステップS11に移行する。
【0087】
ステップS23において、制御部21は、コンタクトノード検索メッセージを受信しなかったと判定した場合には(ステップS23:NO)、コンタクトノードとして、ユーザ端末Tnから参加要求メッセージを受信したか否かを判定する(ステップS25)。このとき、制御部21は、参加要求メッセージを受信した場合には(ステップS25:YES)、参加要求メッセージに含まれる属性IDに対応するコミュニティP2PネットワークPLlが存在するか否かを判定する(ステップS26)。なお、制御部21は、参加要求メッセージに属性IDが複数含まれている場合には、この複数の属性IDを組として、この組に対応するコミュニティP2PネットワークPLlが存在するか否かを判定する。
【0088】
制御部21は、参加要求メッセージに含まれる属性IDに対応付けて記憶部22に記憶されているP2P有無情報が「無し」に設定されている場合には、属性IDに対応するコミュニティP2PネットワークPLlが存在しないと判定する(ステップS26:NO)。この場合、制御部21は、属性IDに対応するコミュニティP2PネットワークPLlを生成する(ステップS27)。具体的に、制御部21は、コミュニティP2PネットワークPLlのDHTルーティングテーブルを生成する。このとき、制御部21は、参加要求メッセージに含まれるユーザ端末Tnのノード情報をDHTルーティングテーブル中に登録する。そして、制御部21は、生成したDHTルーティングテーブルを、参加要求メッセージに含まれる属性IDに対応付けて記憶部22に記憶させる。また、制御部21は、参加要求メッセージに含まれる属性IDに対応するP2P有無情報を「有り」に設定する。
【0089】
次いで、制御部21は、参加要求メッセージの送信元のユーザ端末Tnに、DHTルーティングテーブルを送信する(ステップS28)。このとき、制御部21は、コンタクトノードとしてのルータRm自身のノード情報が登録されたDHTルーティングテーブルを送信する。
【0090】
一方、制御部21は、参加要求メッセージに含まれる属性IDに対応付けて記憶部22に記憶されているP2P有無情報が「有り」に設定されている場合には、属性IDに対応するコミュニティP2PネットワークPLlが存在すると判定する(ステップS26:YES)。この場合、制御部21は、参加要求メッセージに含まれる属性IDに対応付けて記憶部22に記憶されているDHTルーティングテーブルを、参加要求メッセージの送信元のユーザ端末Tnに送信する(ステップS28)。制御部21は、ステップS28の処理を終えると、ステップS11に移行する。
【0091】
ステップS25において、制御部21は、参加要求メッセージを受信しなかったと判定した場合には(ステップS25:YES)、管理者から電源OFFの要求がされたか否かを判定する(ステップS29)。このとき、制御部21は、管理者から電源OFFの要求がされなかったと判定した場合には(ステップS29:NO)、ステップS11に移行する。一方、制御部21は、管理者から電源OFFの要求がされたと判定した場合には(ステップS29:YES)、図7に示す処理を終了させる。
【0092】
なお、制御部21は、コンタクトノード問い合わせメッセージを受信して、属性IDを生成した後(ステップS17及びS18)、ルータRm自身が、生成した属性IDに対応するコミュニティP2PネットワークPLlのコンタクトノードである場合には、直接DHTルーティングテーブルをユーザ端末Tnに送信しても良い。つまり、制御部21は、生成した属性IDと同一の属性IDが、ルータRm自身に割り当てられた属性IDとして記憶部22に記憶されている場合には、ステップS19乃至S22の処理を実行せずに、ステップS26乃至S28の処理を実行する。この場合、ユーザ端末Tnは、参加要求メッセージを送信する必要がない。また、ルータRmが実行すべき処理が減るため、ルータRmの負荷を軽減することができる。
【0093】
また、上記実施形態においては、オーバーレイネットワークに、DHTを利用したピアツーピアネットワークが適用されていたが、これに限られるものではない。例えば、他のピアツーピアシステム、または、オーバーレイネットワークを用いたシステムが適用されても良い。DHTを利用しないピアツーピアシステムとしては、例えば、ハイブリッド型のピアツーピアシステムがある。
【0094】
また、上記実施形態においては、本発明の情報処理装置として、ルータRmがコンタクトノードを決定するようになっていた。しかしながら、ルータRm以外の装置に本発明の情報処理装置を適用しても良い。例えば、ルートノードに代えて、センターサーバSAが、全てのノード属性を管理するようにする。この場合、各ルータRmは、センターサーバSAに対して属性パブリッシュメッセージを送信する。そして、センターサーバSAは、受信した属性パブリッシュメッセージに含まれる属性IDとノード情報とを対応付けて、属性インデックス情報として記憶部12に記憶させる。各ユーザ端末Tnは、コンタクトノード問い合わせメッセージを、センターサーバSAに送信する。センターサーバSAは、受信したコンタクトノード問い合わせメッセージに含まれる属性IDに対応する属性インデックス情報を記憶部12から取得する。そして、センターサーバSAは、取得した属性インデックス情報に基づいて、コンタクトノードを決定して、回答メッセージをユーザ端末Tnに送信する。或いは、センターサーバSAは、取得した属性インデックス情報をそのままユーザ端末Tnに送信しても良い。この場合、属性インデックス情報を受信したユーザ端末Tnが、コンタクトノードを決定する。何れの場合においても、コンタクトノードの決定方法は、図7に示すステップS21の場合と同様で良い。
【0095】
また、上記実施形態においては、本発明の定常ノード装置を、ルータに適用していた。しかしながら、例えば、ISPネットワークNIk等のネットワークに定常的に接続するネットワーク機器やサーバ装置等に本発明の定常ノード装置を適用しても良い。
【符号の説明】
【0096】
11 制御部
12 記憶部
13 通信部
SA センターサーバ
21 制御部
22 記憶部
23 通信部
Rm ルータ
31 制御部
32 記憶部
33 バッファメモリ
39 通信部
Tn ユーザ端末
NW ネットワーク
NIk ISPネットワーク
PW コアP2Pネットワーク
PLl コミュニティP2Pネットワーク
S コンテンツ配信システム

【特許請求の範囲】
【請求項1】
ネットワークに接続される複数のノード装置を備え、前記複数のノード装置のうち前記ネットワークに定常的に接続される複数の定常ノード装置により第1のオーバーレイネットワークが構成される情報通信システムであって、
前記情報通信システムは、
前記ノード装置が接続可能な第2のオーバーレイネットワークを識別する第1識別情報に基づいて、前記複数の定常ノード装置の中から、前記第2のオーバーレイネットワークへの参加要求を示す第1要求情報の送信先であるコンタクトノード装置を決定する決定手段を備える情報処理装置、または、前記決定手段を備える前記ノード装置を備え、
前記ノード装置は、
前記ノード装置が参加する前記第2のオーバーレイネットワークを識別する前記第1識別情報を取得する第1取得手段と、
前記決定手段により決定された前記定常ノード装置に、前記第2のオーバーレイネットワークへの前記第1要求情報を送信する第1送信手段と、
前記第1送信手段により送信された前記第1要求情報を受信した前記定常ノード装置から、前記第2のオーバーレイネットワークに参加している前記ノード装置の所在を示す第1所在情報を受信する第1受信手段と、
を備えることを特徴とする情報通信システム。
【請求項2】
前記第1受信手段は、前記第1送信手段により送信された前記第1要求情報を受信した前記定常ノード装置から、前記第2のオーバーレイネットワークに参加している前記ノード装置の所在を示す第1所在情報が少なくとも1つ登録されたルーティングテーブルを受信することを特徴とする請求項1に記載の情報通信システム。
【請求項3】
前記ノード装置の前記第1取得手段は、前記第1識別情報として、前記ノード装置の属性を示す属性情報を取得し、
前記決定手段は、前記第1取得手段により取得された前記属性情報に基づいて、前記コンタクトノードを決定することを特徴とする請求項1または請求項2に記載の情報通信システム。
【請求項4】
各前記ノード装置は、前記ネットワークを構成する複数のネットワークの何れかに接続され、
前記第1取得手段は、前記第1識別情報として、前記ノード装置が接続するネットワークを識別する情報を取得し、
前記決定手段は、前記第1取得手段により取得された前記第1識別情報により識別されるネットワークに接続する前記定常ノード装置を、前記コンタクトノード装置として決定することを特徴とする請求項1乃至3の何れか1項に記載の情報通信システム。
【請求項5】
前記第1取得手段は、前記第1識別情報として、前記ノード装置が接続するネットワークを有するインターネットサービスプロバイダを識別する情報を取得し、
前記決定手段は、前記第1取得手段により取得された前記第1識別情報により識別されるインターネットサービスプロバイダが有するネットワークに接続する前記定常ノード装置を、前記コンタクトノード装置として決定することを特徴とする請求項4に記載の情報通信システム。
【請求項6】
前記決定手段は、前記第1取得手段により取得された前記第1識別情報により識別される前記第2のオーバーレイネットワークに対応する前記コンタクトノード装置を、前記第1のオーバーレイネットワークから検索することを特徴とする請求項1乃至5の何れか1項に記載の情報通信システム。
【請求項7】
前記情報通信システムは、前記複数のノード装置によりコンテンツが分散保存され、
前記定常ノード装置は、前記コンタクトノード装置として対応する前記第2のオーバーレイネットワークに参加し、
前記ノード装置は、
取得するコンテンツを保存する前記ノード装置であるコンテンツ保存ノード装置を、参加している前記第2のオーバーレイネットワークから検索する検索手段と、
前記検索手段により前記コンテンツ保存ノード装置が検索されなかった場合には、コンテンツの要求を示す第2要求情報を、参加している前記第2のオーバーレイネットワークに対応する前記コンタクトノード装置である前記定常ノード装置により、前記第1のオーバーレイネットワークを介して他の前記定常ノード装置へ送信させる制御手段と、
前記定常ノード装置により検索された前記コンテンツ保存ノード装置からコンテンツを取得する第2取得手段と、
を更に備え、
前記定常ノード装置は、
他の前記定常ノード装置から前記第2要求情報を受信する第2受信手段を備え、
前記定常ノード装置の前記検索手段は、前記第2受信手段により受信された前記第2要求情報が示すコンテンツを保存する前記コンテンツ保存ノード装置を、参加している前記第2のオーバーレイネットワークから検索することを特徴とする請求項1乃至6の何れか1項に記載の情報通信システム。
【請求項8】
ネットワークに接続される複数のノード装置を備え、前記複数のノード装置のうち前記ネットワークに定常的に接続される複数の定常ノード装置により第1のオーバーレイネットワークが構成される情報通信システムにおける前記ノード装置であって、
前記ノード装置が接続可能な第2のオーバーレイネットワークを識別する第1識別情報を取得する第1取得手段と、
前記第1取得手段により取得された前記第1識別情報に基づいて、前記複数の定常ノード装置の中から、前記第2のオーバーレイネットワークへの参加要求を示す第1要求情報の送信先であるコンタクトノード装置を決定する決定手段と、
前記決定手段により決定された前記定常ノード装置に、前記第2のオーバーレイネットワークへの前記第1要求情報を送信する第1送信手段と、
前記第1送信手段により送信された前記第1要求情報を受信した前記定常ノード装置から、前記第2のオーバーレイネットワークに参加している前記ノード装置の所在を示す第1所在情報を受信する第1受信手段と、
を備えることを特徴とするノード装置。
【請求項9】
ネットワークに接続される複数のノード装置を備え、前記複数のノード装置のうち前記ネットワークに定常的に接続される複数の定常ノード装置により第1のオーバーレイネットワークが構成される情報通信システムにおける情報処理方法であって、
情報処理装置または前記ノード装置が、前記ノード装置が接続可能な第2のオーバーレイネットワークを識別する第1識別情報に基づいて、前記複数の定常ノード装置の中から、前記第2のオーバーレイネットワークへの参加要求を示す第1要求情報の送信先であるコンタクトノード装置を決定する決定ステップと、
前記ノード装置が、前記ノード装置が参加する前記第2のオーバーレイネットワークを識別する前記第1識別情報を取得する第1取得ステップと、
前記ノード装置が、前記決定ステップにおいて決定された前記定常ノード装置に、前記第2のオーバーレイネットワークへの前記第1要求情報を送信する第1送信ステップと、
前記ノード装置が、前記第1送信ステップにおいて送信された前記第1要求情報を受信した前記定常ノード装置から、前記第2のオーバーレイネットワークに参加している前記ノード装置の所在を示す第1所在情報を受信する第1受信ステップと、
を含むことを特徴とする情報処理方法。
【請求項10】
ネットワークに接続される複数のノード装置を備え、前記複数のノード装置のうち前記ネットワークに定常的に接続される複数の定常ノード装置により第1のオーバーレイネットワークが構成される情報通信システムに含まれるコンピュータに、
前記ノード装置が接続可能な第2のオーバーレイネットワークを識別する第1識別情報に基づいて、前記複数の定常ノード装置の中から、前記第2のオーバーレイネットワークへの参加要求を示す第1要求情報の送信先であるコンタクトノード装置を決定する決定ステップと、
前記ノード装置が参加する前記第2のオーバーレイネットワークを識別する前記第1識別情報を取得する第1取得ステップと、
前記決定ステップにおいて決定された前記定常ノード装置に、前記第2のオーバーレイネットワークへの前記第1要求情報を送信する第1送信ステップと、
前記第1送信ステップにおいて送信された前記第1要求情報を受信した前記定常ノード装置から、前記第2のオーバーレイネットワークに参加している前記ノード装置の所在を示す第1所在情報を受信する第1受信ステップと、
を実行させることを特徴とする情報処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−48664(P2012−48664A)
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願番号】特願2010−192756(P2010−192756)
【出願日】平成22年8月30日(2010.8.30)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】