コンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びコンテンツデータの提供方法
【課題】 ネットワークを構成する1つの回線にルータ等の中継装置を通じて多くのノード装置が接続している場合であっても、ネットワーク及びルータ等の中継装置の負荷を低減させることが可能なコンテンツ分散保存システムを提供する。
【解決手段】 ネットワークを介して互いに通信可能な複数のノード装置に複数のコンテンツデータが分散保存されたコンテンツ分散保存システムに含まれるノード装置であって、コンテンツデータの保存要求を示す保存要求情報を受け付ける保存要求受付手段と、保存要求情報に応じて、ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、基準を満たす場合には、保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータをネットワークを介して取得して保存するコンテンツデータ取得手段と、を備える。
【解決手段】 ネットワークを介して互いに通信可能な複数のノード装置に複数のコンテンツデータが分散保存されたコンテンツ分散保存システムに含まれるノード装置であって、コンテンツデータの保存要求を示す保存要求情報を受け付ける保存要求受付手段と、保存要求情報に応じて、ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、基準を満たす場合には、保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータをネットワークを介して取得して保存するコンテンツデータ取得手段と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))型の通信システムの技術分野に関する。
【背景技術】
【0002】
この種のピアツーピア型の通信システムにおいて、コンテンツデータのレプリカ(複製データ)を複数のノード装置に分散配置(分散保存)させておくコンテンツ分散保存システムが知られており、これにより、対故障性やアクセスの分散性が高められている。このように分散保存されたコンテンツデータのレプリカの所在は、例えば特許文献1に開示されるような分散ハッシュテーブル(以下、DHT(Distributed Hash Table)という)を利用して効率良く検索可能になっている。当該DHTは、各ノード装置に記憶されており、当該DHTには、各種メッセージの転送先となるべき複数のノード装置を示すノード情報(例えば、IPアドレス及びポート番号を含む)が登録されている。
【0003】
そして、コンテンツ分散保存システムに参加しているノード装置は、所望のコンテンツデータの取得を望む場合、当該コンテンツデータのレプリカの所在を検索(発見)するためのメッセージ(クエリ)を他のノード装置に送出することにより、当該メッセージは、上記DHTにしたがって、中継のノード装置により当該コンテンツデータのレプリカの所在の管理元のノード装置に向かって転送され、最終的に当該メッセージが辿り着く上記管理元のノード装置から上記所在を示す情報を取得することになる。これにより、当該メッセージを送出したノード装置は、上記検索に係るコンテンツデータのレプリカを保存しているノード装置に対して、当該コンテンツデータのレプリカを要求し、当該コンテンツデータのレプリカの提供を受けることができる。
【特許文献1】特開2006−197400号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、このようなコンテンツ分散保存システムにおけるネットワークを構成する1つの回線に、ルータ等の中継装置を通じて多くのノード装置が接続している環境も存在する。このため、例えば時間帯によっては、多くのノード装置が1つの回線を共用する場合が生じ、かかる場合、ネットワーク及びルータ等の中継装置の負荷が増大し、好ましくない。
【0005】
本発明は、以上の問題等に鑑みてなされたものであり、ネットワークを構成する1つの回線にルータ等の中継装置を通じて多くのノード装置が接続している場合であっても、ネットワーク及びルータ等の中継装置の負荷を低減させることが可能なコンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びコンテンツデータの提供方法を提供することを課題とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、請求項1に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムに含まれる前記ノード装置であって、前記コンテンツデータの保存要求を示す保存要求情報を受け付ける保存要求受付手段と、前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存するコンテンツデータ取得手段と、を備えることを特徴とする。
【0007】
この発明によれば、当該ノード装置が前記コンテンツデータの保存要求を示す保存要求情報を受け付けた場合に、当該保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別し、前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存するように構成したので、ネットワークを構成する1つの回線にルータ等の中継装置を通じて多くのノード装置が接続している場合であっても、ネットワーク及び中継装置の負荷を低減させることができる。
【0008】
請求項2に記載の発明は、請求項1に記載のノード装置において、前記基準判別手段は、現在時刻が、前記コンテンツ分散保存システムにおける、予め設定された利用禁止時間帯にあるか否かを判別し、前記コンテンツデータ取得手段は、現在時刻が前記利用禁止時間帯にない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【0009】
この発明によれば、現在時刻が前記利用禁止時間帯にない場合に、当該ノード装置が、前記保存要求情報に係るコンテンツデータを取得して保存するように構成したので、多くのユーザが当該システムを利用する時間帯に当該コンテンツデータの取得を禁止でき、ネットワーク及び中継装置の負荷を低減させることができる。
【0010】
請求項3に記載の発明は、請求項1に記載のノード装置において、自ノード装置を含む複数のノード装置及び前記ネットワークの夫々に接続されデータを中継する中継装置の負荷量を示す負荷情報を取得する負荷情報取得手段を更に備え、前記基準判別手段は、前記取得された負荷情報に示された負荷量が、予め設定された基準量を超えているか否かを判別し、前記コンテンツデータ取得手段は、前記負荷量が前記基準量を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【0011】
この発明によれば、中継装置の負荷量が予め設定された基準量を超えていない場合に、当該ノード装置が、前記保存要求情報に係るコンテンツデータを取得して保存するように構成したので、ネットワーク及び中継装置の負荷を低減させることができる。
【0012】
請求項4に記載の発明は、請求項1に記載のノード装置において、自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置に接続されている前記ノード装置の数を示すノード数情報を取得するノード数情報取得手段を更に備え、前記基準判別手段は、前記取得されたノード数情報に示されたノード装置の数が、予め設定された基準数を超えているか否かを判別し、前記コンテンツデータ取得手段は、前記ノード装置の数が前記基準数を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【0013】
この発明によれば、中継装置に接続されているノード装置の数が、予め設定された基準数を超えている場合に、当該ノード装置が、前記保存要求情報に係るコンテンツデータを取得して保存するように構成したので、ネットワーク及び中継装置の負荷を低減させることができる。
【0014】
請求項5に記載の発明は、請求項1に記載のノード装置において、前記ネットワークを介して他の装置からの応答時間を計測する計測手段を更に備え、前記基準判別手段は、前記計測された応答時間が、予め設定された基準時間を超えているか否かを判別し、前記コンテンツデータ取得手段は、前記応答時間が前記基準時間を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【0015】
この発明によれば、他の装置からの応答時間が、予め設定された基準時間を超えている場合に、当該ノード装置が、前記保存要求情報に係るコンテンツデータを取得して保存するように構成したので、ネットワーク及び中継装置の負荷を低減させることができる。
【0016】
請求項6に記載の発明は、請求項1に記載のノード装置において、前記ネットワークの消費帯域を示す消費帯域情報を取得する消費帯域情報取得手段を更に備え、前記基準判別手段は、前記取得された消費帯域が、予め設定された基準値を超えているか否かを判別し、前記コンテンツデータ取得手段は、前記消費帯域が前記基準値を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【0017】
この発明によれば、前記ネットワークの消費帯域が、予め設定された基準値を超えていない場合に、当該ノード装置が、前記保存要求情報に係るコンテンツデータを取得して保存するように構成したので、ネットワーク及び中継装置の負荷を低減させることができる。
【0018】
請求項7に記載の発明は、請求項1乃至6の何れか一項に記載のノード装置において、前記基準を満たさない場合、前記コンテンツデータ取得手段は、当該基準を満たすようになるまで待機し、当該基準を満たすようになったときに、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【0019】
この発明によれば、上記基準を満たすようになったときに、当該ノード装置が、迅速に他のノード装置から当該コンテンツデータを取得して保存することができる。
【0020】
請求項8に記載の発明は、請求項1乃至6の何れか一項に記載のノード装置において、前記基準を満たさない場合、前記コンテンツデータ取得手段は、単位時間当たりの前記コンテンツデータの取得速度を低下させて、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【0021】
この発明によれば、単位時間当たりの前記コンテンツデータの取得速度を低下させてコンテンツデータを取得するので、ネットワーク及び中継装置の負荷を低減させることができる。
【0022】
請求項9に記載の発明は、請求項1乃至6の何れか一項に記載のノード装置において、前記基準を満たさない場合には、他のノード装置に対して前記保存要求情報を転送する保存要求情報転送手段を更に備えることを特徴とする。
【0023】
請求項9に記載の発明によれば、当該ノード装置が、他のノード装置にコンテンツデータを保存させることができる。
【0024】
請求項10に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムに含まれる前記ノード装置であって、他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する提供要求受信手段と、前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信するコンテンツデータ提供手段と、を備えることを特徴とする。
【0025】
この発明によれば、当該ノード装置が、他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信した場合に、前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別し、前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信するように構成したので、ネットワークを構成する1つの回線にルータ等の中継装置を通じて多くのノード装置が接続している場合であっても、ネットワーク及び中継装置の負荷を低減させることができる。
【0026】
請求項11に記載の発明は、請求項10に記載のノード装置において、前記基準判別手段は、現在時刻が、前記コンテンツ分散保存システムにおける、予め設定された利用禁止時間帯にあるか否かを判別し、前記コンテンツデータ提供手段は、現在時刻が前記利用禁止時間帯にない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とする。
【0027】
請求項12に記載の発明は、請求項10に記載のノード装置において、自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置の負荷量を示す負荷情報を取得する負荷情報取得手段を更に備え、前記基準判別手段は、前記取得された負荷情報に示された負荷量が、予め設定された基準量を超えているか否かを判別し、前記コンテンツデータ提供手段は、前記負荷量が前記基準量を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とする。
【0028】
請求項13に記載の発明は、請求項10に記載のノード装置において、自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置に接続されている前記ノード装置の数を示すノード数情報を取得するノード数情報取得手段を更に備え、前記基準判別手段は、前記取得されたノード数情報に示されたノード装置の数が、予め設定された基準数を超えているか否かを判別し、前記コンテンツデータ提供手段は、前記ノード装置の数が前記基準数を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とする。
【0029】
請求項14に記載の発明は、請求項10に記載のノード装置において、前記ネットワークを介して他の装置からの応答時間を計測する計測手段を更に備え、前記基準判別手段は、前記計測された応答時間が、予め設定された基準時間を超えているか否かを判別し、前記コンテンツデータ提供手段は、前記応答時間が前記基準時間を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とする。
【0030】
請求項15に記載の発明は、請求項10に記載のノード装置において、前記ネットワークの消費帯域を示す消費帯域情報を取得する消費帯域情報取得手段を更に備え、前記基準判別手段は、前記取得された消費帯域が、予め設定された基準値を超えているか否かを判別し、前記コンテンツデータ提供手段は、前記消費帯域が前記基準値を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とする。
【0031】
請求項16に記載のノード処理プログラムの発明は、コンピュータを、請求項1乃至15の何れか一項に記載のノード装置として機能させることを特徴とする。
【0032】
請求項17に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムであって、前記ノード装置は、前記コンテンツデータの保存要求を示す保存要求情報を受け付ける保存要求受付手段と、前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存するコンテンツデータ取得手段と、を備えることを特徴とする。
【0033】
請求項18に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムにおけるコンテンツデータ取得方法であって、前記ノード装置が、前記コンテンツデータの保存要求を示す保存要求情報を受け付ける工程と、前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する工程と、前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存する工程と、を備えることを特徴とする。
【0034】
請求項19に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムであって、前記ノード装置は、他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する提供要求受信手段と、前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信するコンテンツデータ提供手段と、を備えることを特徴とする。
【0035】
請求項20に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムにおけるコンテンツデータの提供方法であって、前記ノード装置が、他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する工程と、前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する工程と、前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信する工程と、を備えることを特徴とする。
【発明の効果】
【0036】
本発明によれば、ノード装置が、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別し、前記基準を満たす場合に、コンテンツデータを前記ネットワークを介して取得又は前記他のノード装置に対して送信するように構成したので、ネットワークを構成する1つの回線にルータ等の中継装置を通じて多くのノード装置が接続している場合であっても、ネットワーク及び中継装置の負荷を低減させることができる。
【発明を実施するための最良の形態】
【0037】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ分散保存システムに本発明を適用した場合の実施形態である。
【0038】
[1.コンテンツ分散保存システムの構成等]
始めに、図1等を参照して、本実施形態に係るコンテンツ分散保存システムの概要構成等について説明する。
【0039】
図1は、本実施形態に係るコンテンツ分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
【0040】
図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4a,4b、DSL(Digital Subscriber Line)回線事業者(の装置)5a,5b、FTTH(Fiber To The Home)回線事業者(の装置)6、及び通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワーク(現実世界の通信ネットワークであり、通信手段の一例)8が構築されている。なお、図1の例におけるネットワーク(通信ネットワーク)8には、データ(パケット)を転送するためのルータが適宜挿入されている。
【0041】
このようなネットワーク8には、複数のノード装置(以下、「ノード」という)Nn(n=1,2,3・・・の何れか)が接続されている。また、図1に示すDSL回線事業者5aに示されるように、ネットワーク8を構成する1つの回線(通信回線)71には、ルータ51を通じて複数のノードN2〜N5、及びN8等が接続される(1つの回線71を共用する)ようになっている。なお、ルータ51に接続されている、符号Nnが付されていないマーク(丸)は、ここでは、コンテンツ分散保存システムSとは関係の無い一般端末(例えば、PC)を示している。
【0042】
また、各ノードNnには、固有の製造番号およびIP(Internet Protocol)アドレスが割り当てられている。このような製造番号およびIPアドレスは、複数のノードNn間で重複しないものである。
【0043】
そして、本実施形態に係るコンテンツ分散保存システムSは、これらのノードNnのうち、図1の上部枠100内に示すように、何れか複数のノードNnの参加により形成されるピアツーピア方式のネットワークシステムとなっている。なお、図1の上部枠100内に示すネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク9(論理的なネットワーク)である。かかるオーバーレイネットワーク9は、特定のアルゴリズム、例えば、DHT(Distributed Hash Table)を利用したアルゴリズムにより実現される。
【0044】
そして、コンテンツ分散保存システムS(言い換えれば、オーバーレイネットワーク9)に参加している各ノードNnには、所定桁数からなる固有の識別情報であるノードIDが割り当てられており、当該ノードIDは、例えば、各ノードNnに個別に割り当てられたIPアドレス或いは製造番号を共通のハッシュ関数(例えば、SHA−1等)によりハッシュ化した値(例えば、bit長が160bit)であり、図3に示すような一つのID空間に偏りなく分散して配置されることになる。
【0045】
なお、コンテンツ分散保存システムSへの参加は、参加していないノードNn(例えば、ノードN8)が、参加している任意のノードNn(例えば、当該システムSに常時参加しているコンタクトノード)に対して参加要求を示す参加メッセージを送信することによって行われる。
【0046】
上記のように共通のハッシュ関数により求められた(ハッシュ化された)ノードIDは、当該IPアドレス或いは製造番号が異なれば、同じ値になる確率が極めて低いものである。また、このノードIDは、ノードの最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、2^128=340×10^36台のノードを運用できる。なお、ハッシュ関数については公知であるので詳しい説明を省略する。
【0047】
また、各ノードNnは、夫々、DHTを用いたルーティングテーブルを保持している。このルーティングテーブルは、コンテンツ分散保存システムS上における各種メッセージの転送先を規定しており、具体的には、ID空間内で適度に離れたノードNnのノードID、IPアドレス及びポート番号を含むノード情報が複数登録されている。
【0048】
コンテンツ分散保存システムSに参加している1台のノードNnは、該システムSに参加している全てのノードNnのうち、必要最低限のノードNnのノード情報をルーティングテーブルに登録しておき、ノード情報を知らない(記憶していない)ノードNnについては、各ノードNn間で互いに各種メッセージを転送し合って届けてもらうようになっている。
【0049】
ここで、図2及び図3を参照して、DHTを用いたルーティングテーブルについて詳しく説明する。
【0050】
図2は、ノードN2が保持するDHTを用いたルーティングテーブルの一例を示す図であり、図3は、DHTのID空間の一例を示す概念図である。
【0051】
なお、図2及び図3の例においては、説明の便宜上、ノードIDのbit長を2bit×3桁=6bitとし、各桁を4進数(0〜3の整数)で表している(実際には、もっと長いbit長を用い、各桁も例えば4bitに区切って0〜fの16進数で表現する)。
【0052】
図2の例において、DHTを用いたルーティングテーブルは、レベル1〜レベル3のテーブルからなり(複数のレベルに区分されており)、各レベルのテーブルエントリーには、エリア毎に、ノード情報として、ノードIDとこれに対応するノードNnのIPアドレス及びポート番号が対応付けられて登録されている。各レベルのテーブルにおける各エリアは、DHTのノードID空間を分割することにより得られるエリアである。例えば、図3に示すように、レベル1では、DHTのID空間全体が4分割され、“000”〜“033”のノードIDが存在するエリアを0XXのエリア、“100”〜“133” のノードIDが存在するエリアを1XXのエリア、“200”〜“233” のノードIDが存在するエリアを2XXのエリア、“300”〜“333” のノードIDが存在するエリアを3XXのエリアとする。また、レベル2では、レベル1のエリア(つまり、0XX〜3XXのエリア)が更に4分割、例えば1XXのエリアが4分割され、“100”〜“103” のノードIDが存在するエリアを10Xのエリア、“110”〜“113” のノードIDが存在するエリアを11Xのエリア、“120”〜“123” のノードIDが存在するエリアを12Xのエリア、“130”〜“133” のノードIDが存在するエリアを13Xのエリアとする。
【0053】
そして、例えば、ノードN2のノードIDが“122”とすると、図2に示すように、かかるノードN2のレベル1における1XXのエリア(自己(つまり、自ノード)が存在するエリア)のテーブルには、自己のノードID及びIPアドレス(IPアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い)等が登録され、自己が存在しないエリア(つまり、0XXのエリア、2XXのエリア、及び3XXのエリア)には、夫々、他の任意のノードNnのノードID及びIPアドレス等が登録されている。
【0054】
また、かかるノードN2のレベル2における12Xのエリア(自己が存在するエリア)のテーブルには、図2に示すように、自己のノードID及びIPアドレス(IPアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い)等が登録され、自己が存在しないエリア(つまり、10Xのエリア、11Xのエリア、及び13Xのエリア)等には、夫々、他の任意のノードNnのノードID及びIPアドレス等が登録されている。
【0055】
更に、かかるノードN2のレベル3には、図2に示すように、ノードIDが“120”〜“122”のノードID及びIPアドレス(IPアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い)等が登録されている。
【0056】
なお、図2及び図3の例では、ノードIDのbit長を3桁×2bitとしたので、レベル1〜3の3レベル分のテーブルで網羅できるが、ノードIDのbit長が増せば、その分のテーブルが必要となる(例えば、ノードIDのbit長を16桁×4bitとした場合、16レベル分のテーブルが必要となる)。
【0057】
このように、本実施形態におけるDHTを用いたルーティングテーブルでは、レベルが上がるほど、エリアが狭まっていくようになっている。
【0058】
また、このようなDHTは、例えば、未参加のノードがコンテンツ分散保存システムSに参加する際に与えられることになる。
【0059】
ところで、コンテンツ分散保存システムSにおいては、内容の異なる様々なコンテンツ(例えば、映画や音楽等)データの夫々の複製データ(以下、「レプリカ」という)が複数のノードNnに分散して保存(格納)されている。
【0060】
例えば、ノードN1及びノードN5には、タイトルがXXXの映画のコンテンツデータのレプリカが保存されており、一方、ノードN3には、タイトルがYYYの映画のコンテンツデータのレプリカが保存されるというように、複数のノードNn(以下、「コンテンツ保持ノード」という)に分散されて保存される。
【0061】
また、これらのコンテンツデータのレプリカには、夫々、コンテンツ名(タイトル)及びコンテンツID(コンテンツ毎に固有の識別情報)等の情報が付加されている。このコンテンツIDは、例えば、コンテンツ名+任意の数値(或いは、当該コンテンツデータの先頭数バイトでも良い)が、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化されて生成される(ノードIDと同一のID空間に配置)。或いは、システム管理者が、コンテンツ毎に一意のID値(ノードIDと同一ビット長)を付与しても良い。この場合は、コンテンツ名とそのコンテンツIDの対応が書かれたコンテンツカタログ情報が、全ノードNnに配布される。
【0062】
また、このように分散保存されているコンテンツデータのレプリカの所在、つまり、当該コンテンツデータのレプリカを保存したノードNnのIPアドレス等と当該コンテンツデータに対応するコンテンツID等の組が含まれるインデックス情報が、当該コンテンツデータのレプリカの所在の管理元であるノードNn(以下、「ルートノード」、又は「コンテンツ(コンテンツID)のルートノード」という)等により記憶(インデックスキャッシュに記憶)、管理されるようになっている。
【0063】
例えば、タイトルがXXXの映画のコンテンツデータのレプリカについてのインデックス情報は、そのコンテンツ(コンテンツID)のルートノードであるノードN4により管理され、タイトルがYYYの映画のコンテンツデータのレプリカについてのインデックス情報は、そのコンテンツ(コンテンツID)のルートノードであるノードN6により管理される(つまり、レプリカの所在が夫々のコンテンツデータ毎に管理される)。
【0064】
すなわち、コンテンツ毎にルートノードが分けられるので負荷分散が図らており、しかも、同一(内容が同一)のコンテンツデータ(コンテンツIDが同一)のレプリカが、夫々、複数のコンテンツ保持ノードに保存されている場合であっても、かかるコンテンツデータのインデックス情報は、一つのルートノードで管理することができる。このため、各ルートノードは、コンテンツ分散保存システムSにおいて自己がその所在を管理するコンテンツデータのレプリカの数(言い換えれば、当該レプリカを保存しているコンテンツ保持ノードの数)を認識している。
【0065】
また、このようなルートノードは、例えば、コンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノードNnであるように定められる。
【0066】
そして、あるノードNnのユーザが、所望するコンテンツデータを取得したい場合、当該コンテンツデータの取得を望むノードNn(以下、「ユーザノード」という)は、当該ユーザにより選択(例えば、全てのノードNnに配信されているコンテンツカタログ情報(コンテンツ名とコンテンツID等が記述されており、例えばコンテンツカタログ管理サーバ(図示せず)にて管理される)から選択)されたコンテンツデータ(例えば、コンテンツ名が選択される)のコンテンツID及び自己のIPアドレス等を含むコンテンツ所在問合せ(検索)メッセージ(クエリ)を生成し、これを自己のDHTを用いたルーティングテーブルにしたがって他のノードNnに対して送出する。つまり、ユーザノードは、コンテンツ所在問合せ(検索)メッセージを、ルートノードに向けて(ルートノード宛てに)送出する。これにより、コンテンツ所在問合せ(検索)メッセージは、コンテンツIDをキーとするDHTルーティングによって最終的にルートノードに到着することになる。
【0067】
ここで、ユーザノードは、当該ユーザによりコンテンツカタログ情報からコンテンツ名等が選択された場合だけでなく、例えばシステム管理者等のコンテンツ管理サーバからコンテンツ投入要求(保存要求)メッセージ(特定の新規コンテンツデータのコンテンツ名及びコンテンツID等を含む)を受信した場合にも、コンテンツ所在問合せ(検索)メッセージ(クエリ)をルートノードに向けて送出する。このコンテンツ投入要求(保存要求)メッセージ(事前プッシュメッセージともいう)は、例えば新規コンテンツデータ(コンテンツカタログ情報により公開される前のコンテンツデータ)のレプリカを、コンテンツ分散保存システムSにおいて所定数確保(保存)させるために、任意の複数のノードNnに配信されるものである。そして、所定数以上のレプリカがコンテンツ分散保存システムSにおいて保存されると、当該新規コンテンツデータのコンテンツ名とコンテンツID等が記述されたコンテンツカタログ情報が各ノードNnに配信(これにより公開)されることになる。或いは、新規に投入するべき新規コンテンツデータの属性情報が記述されたコンテンツカタログ情報を全ノードNnに予め配布しておくが、当該コンテンツカタログ情報には、新規コンテンツデータの公開日が設定されており、公開日までは各ノードNnのユーザに公開されない(利用できない)ようにしておき、公開日が過ぎると、上記投入要求により事前に新規コンテンツデータを保存した各ノードNn以外のノードNnにおいても、当該新規コンテンツデータをリクエストできるようになる。
【0068】
また、上記コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDは、ユーザノードによって、コンテンツ名が上記共通のハッシュ関数によりハッシュ化されて生成されるようにしても良い。
【0069】
図4は、ユーザノードから送出されたコンテンツ所在問合せ(検索)メッセージの流れの一例を、DHTのID空間にて示した概念図である。
【0070】
図4の例において、例えば、ユーザノードであるノードN2は、自己のDHTのレベル1のテーブルを参照して、コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有する例えばノードN3のIPアドレス及びポート番号を取得し、そのIPアドレス及びポート番号宛てに、上記コンテンツ所在問合せ(検索)メッセージ(クエリ)を送信する。
【0071】
これに対して、ノードN3は、当該コンテンツ所在問合せ(検索)メッセージを受信し、自己のDHTのレベル2のテーブルを参照して、当該コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有する例えばノードN4のIPアドレス及びポート番号を取得し、そのIPアドレス及びポート番号宛てに、上記コンテンツ所在問合せ(検索)メッセージを転送する。
【0072】
これに対して、ノードN4は、当該コンテンツ所在問合せ(検索)メッセージを受信し、自己のDHTのレベル3のテーブルを参照して、当該コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDが自分である、つまり、自分がそのコンテンツIDのルートノードであることを認識すると、当該コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDに対応するインデックス情報をインデックスキャッシュから取得して、当該インデックス情報を、該コンテンツ所在問合せメッセージの送信元であるユーザノードに対して返信する。これにより、ユーザノードは、所望のコンテンツデータのレプリカを保存している上記コンテンツ保持ノードである例えばノードN1に対して、コンテンツ送信要求メッセージを送信し、そこから当該コンテンツデータのレプリカの提供を受けることが可能になる。
【0073】
或いは、ルートノードであるノードN4は、当該インデックス情報に含まれるIPアドレス等に示されたコンテンツ保持ノードに対してコンテンツ送信要求メッセージ(ユーザノードのIPアドレス等を含み、当該ユーザノードに対してコンテンツデータのレプリカの送信要求を示す要求情報)を送信する。これにより、ユーザノードは、上記コンテンツ保持ノードである例えばノードN1から当該コンテンツデータのレプリカの提供を受けることが可能になる。
【0074】
なお、コンテンツ分散保存システムSにおいて分散保存されているレプリカの数が少ない(当該レプリカを保存しているコンテンツ保持ノードの数が少ない)コンテンツデータについては、ユーザノードが上述したコンテンツ所在問合せ(検索)メッセージ(クエリ)を、そのルートノードに向けて送出しても、ノードNnやネットワーク8の負荷増大等により、当該ルートノードから迅速に返答(インデックス情報の送信)が得られない(例えば、返答に時間がかかったり、返答が帰ってこない等)場合や、当該コンテンツデータのレプリカを保存しているコンテンツ保持ノードから迅速にコンテンツデータの提供を受けることができない(例えば、ダウンロードに時間がかかる)場合がある。このような場合、各ノードNnは、例えば全コンテンツデータを保存、管理しているコンテンツ管理サーバにアクセスして当該レプリカを取得することも可能になっているが、極力、コンテンツ管理サーバに負荷をかけずノードNn間でコンテンツデータのレプリカの授受できることが望ましい。
【0075】
なお、上記ユーザノードは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、当該ルートノードと同じインデックス情報をキャッシュしている中継ノード(例えば、ノードN3のキャッシュノード)から当該インデックス情報を取得(受信)することもできる。
【0076】
このようにしてコンテンツデータのレプリカを取得、保存したユーザノードは、当該レプリカを保存したことをそのルートノードに知らせるために(言い換えれば、自己が当該コンテンツデータのレプリカを保持していることを、該システムSに参加している他のノードNnに対して公開するために)、そのコンテンツデータのコンテンツID及び自己のIPアドレス等が含まれるパブリッシュ(登録通知)メッセージ(コンテンツデータのレプリカを保存したので、IPアドレス等の登録の要求を示す登録メッセージ)を生成し、該パブリッシュメッセージを、そのルートノードに向けて送出する。これにより、パブリッシュメッセージは、コンテンツ所在問合せ(検索)メッセージと同じように、コンテンツIDをキーとするDHTルーティングによってルートノードに到着することになり、該ルートノードは、受信したパブリッシュメッセージに含まれるIPアドレス等及びコンテンツIDの組を含むインデックス情報を登録(インデックスキャッシュ領域に記憶)することになる。こうして、上記ユーザノードは、新たに、上記コンテンツデータのレプリカを保持するコンテンツ保持ノードとなる。
【0077】
なお、上記パブリッシュメッセージに含まれるIPアドレス等及びコンテンツIDの組を含むインデックス情報は、ルートノードに至るまでの転送経路における中継ノードにおいても登録(キャッシュ)される。
【0078】
[2.ノードNnの構成及び機能等]
次に、図5を参照して、ノードNnの構成及び機能について説明する。
【0079】
図5は、ノードNnの概要構成例を示す図である。
【0080】
各ノードNnは、図5に示すように、演算機能を有するCPU,作業用RAM,各種データおよびプログラムを記憶するROM等から構成されたコンピュータとしての制御部11と、各種データ(例えば、コンテンツデータのレプリカ、インデックス情報、DHT等)及び各種プログラム等を記憶保存(格納)するためのHD等から構成された記憶部12と、受信されたコンテンツデータのレプリカ等を一時蓄積するバッファメモリ13と、コンテンツデータのレプリカに含まれるエンコードされたビデオデータ(映像情報)およびオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)するデコーダ部14と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部15と、当該映像処理部15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等の表示部16と、上記デコードされたオーディオデータをアナログオーディオ信号にD (Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音声処理部17と、当該音声処理部17から出力されたオーディオ信号を音波として出力するスピーカ18と、ネットワーク8を通じて他のノードNnや各種サーバ等との間の情報の通信制御を行うための通信部20と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部11に対して与える入力部(例えば、キーボード、マウス、或いは、操作パネル等)21と、を備えて構成され、制御部11、記憶部12、バッファメモリ13、デコーダ部14、通信部20、及び入力部21はバス22を介して相互に接続されている。なお、ノードNnとしては、パーソナルコンピュータ、STB(Set Top Box)、或いは、TV受信機等を適用可能である。また、記憶部12には、コンテンツ分散保存システムSに参加する際のアクセス先となるコンタクトノードのIPアドレス及びポート番号等が記憶されている。
【0081】
このような構成において、制御部11は、CPUが記憶部12等に記憶されたプログラムを読み出して実行することにより、全体を統括制御し、コンテンツ分散保存システムSへの参加により上述したユーザノード、中継ノード、ルートノード、キャッシュノード、及びコンテンツ保持ノードの少なくとも何れか一つのノードとしての処理を行うようになっており、ユーザノードとしての処理を実行する場合には、本発明における保存要求受付手段、基準判別手段、コンテンツデータ取得手段、負荷情報取得手段、ノード数情報取得手段、計測手段、消費帯域情報取得手段、及び保存要求情報転送手段等として機能するようになっている。また、制御部11は、コンテンツ保持ノードとしての処理を実行する場合には、本発明における提供要求受信手段、基準判別手段、コンテンツデータ提供手段、負荷情報取得手段、ノード数情報取得手段、計測手段、及び消費帯域情報取得手段等として機能するようになっている。
【0082】
具体的には、ユーザノードの制御部11がコンテンツデータの保存要求(保存要求情報)を受け付けた場合(例えば、コンテンツカタログ情報に基づきユーザにより入力部21を介して選択されたコンテンツデータのコンテンツ検索指示を受けた場合、又はコンテンツ管理サーバからのコンテンツ投入要求(保存要求)メッセージを受信した場合)、当該保存要求情報に応じて、当該システムSの利用制限有無を判定するために、ネットワーク8の負荷度合いを決定する基準を満たすか否かを判別するようになっている。
【0083】
ここで、ネットワーク8等の負荷度合いを決定する基準としては、例えば、コンテンツ分散保存システムSの利用禁止時間帯(例えば、多くのユーザがコンテンツ分散保存システムSを利用する21時〜3時位までの間)、自ノードNnが接続されたルータ(自ノードNnを含む複数のノードNn及びネットワーク8の夫々に接続されデータを中継する中継装置の一例であり、この他にも、ブリッジ、リピータ、又はスイッチ等でも良い)の負荷量、自ノードNnが接続されたルータに接続されているノードNnの総数、他のノードNn(又はサーバ)からの応答時間、及び自ノードNnが接続されているネットワーク8における回線の消費帯域等が挙げられる。
【0084】
そして、当該制御部11は、上記基準を満たす場合(例えば、現在時刻がコンテンツ分散保存システムSの利用禁止時間帯にない場合、上記ルータの負荷量が予め設定された基準量を超えていない場合、上記ルータに接続されているノードNnの総数が予め設定された基準数を超えていない場合、他のノードNnからの応答時間が予め設定された基準時間を超えていない場合、及び自ノードNnが接続されている回線の消費帯域が予め設定された基準値を超えていない場合、の何れか一つの場合、或いはこれらの2つ以上の場合を満たす場合)に(当該システムSの利用制限有と判定)、上述したように、当該保存要求情報に係るコンテンツデータのコンテンツID及び自己のIPアドレス等を含むコンテンツ所在問合せ(検索)メッセージ(クエリ)をルートノードに向けて送出し、そのレプリカを保存しているコンテンツ保持ノードである他のノードNnから当該コンテンツデータのレプリカをネットワーク8を介して取得して保存するようになっている(言い換えれば、上記基準を満たさない場合は、当該コンテンツデータのレプリカを取得しない)。これにより、ネットワーク8及びルータの負荷を低減させることができる。
【0085】
また、コンテンツ保持ノードの制御部11が、ユーザノードである他のノードNnからコンテンツデータの提供要求を示す提供要求情報を受信した場合(例えば、上述したコンテンツ送信要求メッセージを受信した場合)、当該提供要求情報に応じて、ネットワーク8の負荷度合いを決定する基準を満たすか否かを判別し(上記ユーザノードの場合と同様)、上記基準を満たす場合に(当該システムSの利用制限有と判定)、上述したように、当該提供要求情報に係るコンテンツデータのレプリカを、上記ユーザノードに対してネットワーク8を介して送信するようになっている(言い換えれば、上記基準を満たさない場合は、当該コンテンツデータのレプリカを送信しない)。
【0086】
なお、上記ノード処理プログラムは、例えば、ネットワーク8上の所定のサーバからダウンロードされるようにしてもよいし、例えば、CD−ROM等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
【0087】
[3.コンテンツ分散保存システムSの動作]
次に、図6乃至図10等を参照して、コンテンツ分散保存システムSの動作について説明する。
【0088】
図6は、ノードNnの制御部11におけるメイン処理を示すフローチャートである。図7(A)〜(E)は、図6及び図10におけるシステム利用制限有無判定処理の詳細を示すフローチャートである。図8は、図6及び図10におけるコンテンツデータ取得処理の詳細を示すフローチャートである。図9(A)及び(B)は、図6及び図10におけるシステム利用制限有り時の詳細を示すフローチャートである。図10は、図6におけるメッセージ受信処理の詳細を示すフローチャートである。
【0089】
図6に示す処理は、任意のノードNnにおいて例えば電源ONになった場合に開始され、コンテンツ分散保存システムSへの参加処理が実行される。この参加処理においては、当該ノードNnの制御部11は、記憶部12からコンタクトノードのIPアドレス及びポート番号を取得し、これに基づきコンタクトノードにネットワーク8を介して接続し、参加要求を示す参加メッセージ(自己のノードID及びノード情報等を含む)を送信する。これにより、当該ノードNnには、当該システムSに参加している他のノードNnからルーティングテーブルが送信されることになり、受信したルーティングテーブルに基づき自己のルーティングテーブルを生成し、コンテンツ分散保存システムSに参加が完了することになる。なお、ルーティングテーブルの生成方法は、本発明の直接の関係がないので、詳しい説明を省略する。また、コンタクトノードのIPアドレス等の情報は、例えばノードNnの出荷時、或いはソフトウェア初回インストール時の初期状態で記憶部12に記憶される。
【0090】
こうしてコンテンツ分散保存システムSへの参加処理が完了すると、制御部11は、電源OFFの指示(例えば、ユーザから入力部21を介した電源OFF操作指示)があった場合には(ステップS1:YES)、当該処理を終了する。一方、電源OFFの指示がない場合には(ステップS1:NO)、制御部11は、ユーザから入力部21を介してコンテンツ検索指示があったか否かを判別する(ステップS2)。ユーザからコンテンツ検索指示があった(例えば表示部12上に表示されたコンテンツカタログ情報から、当該ユーザが所望のコンテンツデータのコンテンツ名等を入力部21により選択してコンテンツ検索指示を行った)場合には(ステップS2:YES)、ステップS3に進み、コンテンツ検索指示がない場合には(ステップS2:NO)、ステップS7に進む。
【0091】
ステップS3では、ユーザノードとしてシステム利用制限有無判定処理が行われるが、この例としては、図7(A)〜(E)に示す処理が挙げられ、何れの処理を採用するかは、例えば、各ノードNnで任意、或いはシステム管理者によりコンテンツ分散保存システムSで統一的に決定される。
【0092】
例えば、図7(A)のシステム利用制限有無判定処理(例1)では、制御部11は、現在時刻を示す現在時刻情報を取得し(ステップS31A)、当該現在時刻が、コンテンツ分散保存システムSにおける、予め設定された(記憶部12における設定領域に記憶された)利用禁止時間帯(例えば、21時から3時までの時間帯)にあるか否かを判別し(ステップS32A)、当該現在時刻が利用禁止時間帯にある場合には(ステップS32A:YES)、ネットワーク8等の負荷度合いが高くなるため、返り値を“F”(システム利用制限有)として図6の処理に戻り、当該現在時刻が利用禁止時間帯にない場合には(ステップS32A:NO)、返り値を“T”(システム利用制限無)として図6の処理に戻る。
【0093】
また、図7(B)のシステム利用制限有無判定処理(例2)では、制御部11は、自ノードNnが接続されたルータの負荷量(例えば、当該ルータにおけるCPU使用率の単位時間(例えば、1分)当たりの平均値)を示す負荷情報を当該ルータ(ログを送出するルータ)から取得し(ステップS31B)、当該負荷量が、予め設定された(記憶部12における設定領域に記憶された)基準量(例えば、70%)を超えているか否かを判別し(ステップS32B)、当該負荷量が基準量を超えている場合には(ステップS32B:YES)、ネットワーク8等の負荷度合いが高くなるため、返り値を“F”として図6の処理に戻り、当該負荷量が基準量を超えていない場合には(ステップS32B:NO)、返り値を“T”として図6の処理に戻る。
【0094】
また、図7(C)のシステム利用制限有無判定処理(例3)では、制御部11は、自ノードNnが接続されたルータに接続されているノードNnを含む全ての端末(コンテンツ分散保存システムSに参加しているか否か及び参加可能か否かに拘わらずルータに接続されている全ての端末)の数を示すノード数情報を当該ルータから取得(同じセグメント上にある全てのノードNnにブロードキャストして各ノードNnからの応答に基づき当該ノードNnの数を算出しても良い)し(ステップS31C)、当該ノードNnの数(総数)が、予め設定された(記憶部12における設定領域に記憶された)基準数を超えているか否かを判別し(ステップS32C)、当該ノードNnの総数が基準数を超えている場合には(ステップS32C:YES)、ネットワーク8等の負荷度合いが高くなるため、返り値を“F”として図6の処理に戻り、当該ノードNnの総数が基準数を超えていない場合には(ステップS32C:NO)、返り値を“T”として図6の処理に戻る。
【0095】
また、図7(D)のシステム利用制限有無判定処理(例4)では、制御部11は、予め設定されたサーバからの応答時間(レスポンス時間)を計測(例えば、ピング(Ping))を送信し、返信されてきた時間を計測)し(ステップS31D)、計測した応答時間が、予め設定された(記憶部12における設定領域に記憶された)基準時間を超えているか否かを判別し(ステップS32D)、当該応答時間が基準時間を超えている場合には(ステップS32D:YES)、ネットワーク8等の負荷度合いが高くなるため、返り値を“F”として図6の処理に戻り、当該応答時間が基準時間を超えていない場合には(ステップS32D:NO)、返り値を“T”として図6の処理に戻る。
【0096】
また、図7(E)のシステム利用制限有無判定処理(例5)では、制御部11は、自ノードNn(例えば、ノードN2)が接続されているネットワーク8における回線(例えば、図1に示す回線71)の消費帯域(bps)を示す消費帯域情報を取得(例えば、予め設定された他のノードNnに対して所定量のデータを伝送するように要求し、単位時間当たりのデータ伝送量等に基づき計測)し(ステップS31E)、当該消費帯域が、予め設定された(記憶部12における設定領域に記憶された)基準値(例えば、最大消費帯域の60%)を超えているか否かを判別し(ステップS32E)、当該消費帯域が基準値を超えている場合には(ステップS32E:YES)、ネットワーク8等の負荷度合いが高くなるため、返り値を“F”として図6の処理に戻り、当該消費帯域が基準値を超えていない場合には(ステップS32E:NO)、返り値を“T”として図6の処理に戻る。
【0097】
なお、図7(A)〜(E)に示す処理の組合せを採用しても良く、例えば、現在時刻がコンテンツ分散保存システムSの利用禁止時間帯にあっても、上記ルータの負荷量が予め設定された基準量を超えていない場合(或いは、上記ルータに接続されているノードNnの総数が予め設定された基準数を超えていない場合)には、返り値を“T”として図6の処理に戻るように構成しても良い。
【0098】
次に、制御部11は、図6に示すステップS4では、システム利用制限有無判定処理からの返り値が“T”であるか否かを判別し、返り値が“T”である場合には(ステップS4:YES)、ステップS5に進み、返り値が“T”でない(返り値が“F”である)場合には(ステップS4:NO)、ステップS6に進む。
【0099】
ステップS5では、制御部11は、コンテンツデータ取得処理を実行し、その後、ステップS7に進む。
【0100】
当該コンテンツデータ取得処理において、制御部11は、図8に示すように、コンテンツ所在問合せ(検索)処理を行う(ステップS51)。かかるコンテンツ所在問合せ(検索)処理においては、制御部11は、上記ステップS2におけるコンテンツ検索指示に係るコンテンツデータのコンテンツIDを含むコンテンツ所在問合せ(検索)メッセージを、自己のDHTを用いたルーティングテーブルにしたがって他のノードNn(つまり、当該コンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノードNn)に対して送信(当該コンテンツIDのルートノードに向けて送出)し、当該コンテンツIDのルートノードからインデックス情報を取得する。
【0101】
次いで、制御部11は、レプリカの送信(ダウンロード)間隔、及び1回のダウンロードにおけるデータ量を設定し(ステップS52)、当該設定した送信間隔及びデータ量を指定する情報を含むコンテンツ送信要求メッセージを、上記取得したインデックス情報に含まれるIPアドレス等に基づき、コンテンツ保持ノードに対して送信する(ステップS53)。これに応じて、コンテンツ保持ノードは、上記コンテンツ送信要求メッセージにより指定されたコンテンツデータのレプリカを上記ユーザノードへ送信することになるが、このとき、当該レプリカを上記指定されたデータ量(ブロック)毎に分割し、コンテンツ送信要求メッセージにより指定された送信間隔で順次送信することになる。
【0102】
図11(A)は、システム利用制限無時において、レプリカの各ブロックが送信間隔T1でコンテンツ保持ノードから送信される様子を示す図である。なお、当該コンテンツデータのレプリカを構成する各ブロックは、夫々別々のコンテンツ保持ノードに保存されるように構成し、ユーザノードは、上記設定したデータ量を指定する情報を含むコンテンツ送信要求メッセージを、夫々のコンテンツ保持ノードに対して上記設定した送信間隔で送信するように構成しても良い。
【0103】
そして、コンテンツ保持ノードから送信された各ブロックは、通信部20を通じて受信されバッファメモリ13に蓄積される。そして、制御部11は、バッファメモリ13に所定量の上記ブロックのデータが蓄積されたとき、当該ブロックのデータをバッファメモリ13から記憶部12に記憶保存(例えば、HDの所定領域に書き込む)させる(ステップS54)。こうして、順次当該ブロックのデータがバッファメモリ13から記憶部12に送られ記憶保存されていく。
【0104】
次いで、制御部11は、レプリカを構成するブロックが全て揃い、記憶保存された否かを判断し(ステップS55)、全て記憶保存されていない場合には(ステップS55:NO)、ステップ54に戻り当該処理を継続し、全て記憶保存された場合には(ステップS55:YES)、ステップS56に進む。なお、当該レプリカのデータ量が少ない場合、バッファメモリ13に全てのブロックが揃ってから記憶部12に記憶保存されるように構成しても良い。
【0105】
次いで、制御部11は、当該保存されたレプリカに係るコンテンツデータのコンテンツIDを含む、上述したパブリッシュメッセージを、自己のDHTを用いたルーティングテーブルにしたがって他のノードNnに対して送信(当該コンテンツIDのルートノードに向けて送出)し(ステップS56)、図6の処理に戻る。これにより、当該パブリッシュメッセージは、コンテンツIDをキーとするDHTルーティングによってルートノードに到着することになり、該ルートノードは、受信したパブリッシュメッセージに含まれるIPアドレス等及びコンテンツIDの組を含むインデックス情報を登録する。
【0106】
ステップS6では、ユーザノードとしてシステム利用制限有時の処理が行われるが、この例としては、図9(A)及び(B)に示す処理が挙げられ、何れの処理を採用するかは、例えば、各ノードNnで任意、或いはシステム管理者によりコンテンツ分散保存システムSで統一的に決定される。
【0107】
例えば、図9(A)のシステム利用制限有時の処理(例1)では、制御部11は、システム利用制限無になったときに(基準を満たすようになるまで待機)取得するべきコンテンツデータの例えばコンテンツID等を登録するためのコンテンツ取得リストに、上記ステップS2におけるコンテンツ検索指示に係るコンテンツデータのコンテンツID等を登録し(ステップS61A)、図6の処理に戻る。
【0108】
また、図9(B)のシステム利用制限有時の処理(例2)では、制御部11は、ランダムなノードIDを生成し(ステップS61B)、自己のDHTを用いたルーティンングテーブルに登録されたノードIDのうち、自ノードNnのノードIDが、当該生成したノードIDに最も近い(例えば、上位桁がより多く一致する)か否かを判別し(ステップS62B)、自ノードNnのノードIDが、当該生成したノードIDに最も近い場合には(ステップS62B:YES)、ステップS61Bに戻り、同様の処理を行う。一方、自ノードNnのノードIDが当該生成したノードIDに最も近くない場合には(ステップS62B:NO)、制御部11は、当該生成したノードIDに最も近いノードIDを有する他のノードNnを、自己のDHTを用いたルーティンングテーブルから特定し、当該ノードNnに対して、コンテンツ投入要求メッセージを転送する(ステップS63B)。
【0109】
なお、制御部11は、ランダムなノードIDを生成せずに、自己のDHTを用いたルーティングテーブルからランダムに他のノードNnを特定して、そのノードNnに対して、コンテンツ投入要求メッセージを転送するように構成しても良い。
【0110】
また、システム利用制限有時の処理の別の例として、制御部11は、単位時間当たりのコンテンツデータのレプリカの取得(ダウンロード)速度を低下させて、上記コンテンツ保持ノードから当該コンテンツデータのレプリカを取得して保存するように構成しても良い。この場合、上記ステップS6では、システム利用制限有時の処理として図8に示すコンテンツデータ取得処理が行われ、制御部11は、ステップS52において、レプリカの1回のダウンロードにおけるデータ量を、システム利用制限無時よりも減らす(図11(B))ように設定(レプリカの送信(ダウンロード)間隔は同じ)する。これにより、コンテンツデータのレプリカ全体としての取得(ダウンロード)速度が低下し、ネットワーク8及びルータの負荷を抑えることができる。なお、ステップS52において、レプリカの送信(ダウンロード)間隔が、システム利用制限無時よりも長く設定(図11に示す送信間隔T1より長く設定)されるように構成しても良い。
【0111】
以上のシステム利用制限有時の処理が行われた後、ステップS7に進む。
【0112】
次に、ステップS7では、制御部11は、他のノードNnから送信されたメッセージを受信したか否かを判別し、当該メッセージを受信していない場合には(ステップS7:NO)、ステップS9に進み、当該メッセージを受信した場合には(ステップS7:YES)、ステップS8に進み、メッセージ受信処理を行う。
【0113】
当該メッセージ受信処理では、図10に示すように、制御部11は、受信されたメッセージがコンテンツ所在問合せメッセージであるか否かを判別し(ステップS81)、コンテンツ所在問合せメッセージでない場合には(ステップS81:NO)、ステップS86に進む。一方、コンテンツ所在問合せメッセージである場合には(ステップS81:YES)、制御部11は、所在問合せ対象のインデックス情報(コンテンツ所在問合せメッセージに含まれるコンテンツIDに対応するインデックス情報)がインデックスキャッシュに記憶されているか否かを判別し(ステップS82)、記憶されている場合には(ステップS82:YES)、当該インデックス情報を該コンテンツ所在問合せメッセージの送信元であるユーザノードに対して送信し(ステップS83)、図6の処理に戻る。一方、当該インデックス情報が記憶されていない場合には(ステップS82:NO)、制御部11は、自己(自ノードNn)がルートノードであるか否かを判別(つまり、自己のルーティングテーブルを参照して、当該コンテンツ所在問合せメッセージに含まれるコンテンツIDと最も近いノードIDが自分であるか否かを判別)し(ステップS84)、自己がルートノードでない(つまり、中継ノードである)場合には(ステップS84:NO)、ステップS85に進み、自己がルートノードである場合には(ステップS84:YES)、図6の処理に戻る。
【0114】
ステップS85では、制御部11は、受信されたコンテンツ所在問合せメッセージを、自己のDHTを用いたルーティングテーブルにしたがって他のノードNn(つまり、コンテンツ所在問合せメッセージに含まれるコンテンツIDと最も近いノードIDを有するノードNn)に対して転送(当該コンテンツIDのルートノードに向けて送出)し、図6の処理に戻る。
【0115】
ステップS86では、制御部11は、受信されたメッセージがコンテンツ投入要求メッセージであるか否かを判別し、コンテンツ投入要求メッセージでない場合には(ステップS86:NO)、ステップS91に進む。一方、コンテンツ投入要求メッセージである場合には(ステップS86:YES)、上述したステップS3と同様、ユーザノードとしてシステム利用制限有無判定処理(図7(A)〜(E)に示す処理の何れか、又はその組み合わせ)が行われる(ステップS87)。
【0116】
次いで、制御部11は、システム利用制限有無判定処理からの返り値が“T”であるか否かを判別し(ステップS88)、返り値が“T”である場合には(ステップS88:YES)、上述したステップS5と同様、コンテンツ取得処理を行い(ステップS89)、返り値が“T”でない(返り値が“F”である)場合には(ステップS88:NO)、上述したステップS6と同様、システム利用制限有時の処理を行い(ステップS90)、図6の処理に戻る。
【0117】
ステップS91では、制御部11は、受信されたメッセージがコンテンツ送信要求メッセージであるか否かを判別し、コンテンツ送信要求メッセージでない場合には(ステップS91:NO)、ステップS96に進む。一方、コンテンツ送信要求メッセージである場合には(ステップS91:YES)、コンテンツ保持ノードとしてシステム利用制限有無判定処理(図7(A)〜(E)に示す処理の何れか、又はその組み合わせ)が行われる(ステップS92)。
【0118】
なお、コンテンツ保持ノードとしてシステム利用制限有無判定処理が行われる場合、ユーザノードとしてシステム利用制限有無判定処理が行われる場合よりも、図7(B)〜(E)における基準(基準量、基準数、基準時間、基準値)を緩く設定するように構成しても良い。例えば、ユーザノードとして図7(E)の処理が行われる場合、基準値を例えば最大消費帯域の60%とするのに対し、コンテンツ保持ノードとして図7(E)の処理が行われる場合、基準値を例えば最大消費帯域の80%とする。コンテンツ保持ノードとして動作している(アップロードしている)間は、制限を緩めることにより、ユーザノードのダウンロードがスムーズに行えるためである。
【0119】
次いで、制御部11は、システム利用制限有無判定処理からの返り値が“T”であるか否かを判別し(ステップS93)、返り値が“T”である場合には(ステップS93:YES)、コンテンツデータ提供(アップロード)処理を行い(ステップS94)、図6の処理に戻る。当該コンテンツ提供処理においては、上述したように、受信されたコンテンツ送信要求メッセージにより指定されたコンテンツデータのレプリカが、ブロック毎に、当該コンテンツ送信要求メッセージの送信元のユーザノードに対して順次送信されることになる。
【0120】
一方、返り値が“T”でない場合には(ステップS93:NO)、制御部11は、当該コンテンツ送信要求メッセージの送信元のユーザノードに対して、コンテンツデータのレプリカを送信(提供)できないことを示す提供不可メッセージを通信部20等を介して送信し(ステップS95)、図6の処理に戻る。
【0121】
ステップS96では、制御部11は、受信されたメッセージがパブリッシュメッセージであるか否かを判別し、パブリッシュメッセージでない場合には(ステップS96:NO)、ステップS100に進む。一方、パブリッシュメッセージである場合には(ステップS96:YES)、受信されたパブリッシュメッセージに含まれるIPアドレス等及びコンテンツIDの組を含むインデックス情報を登録(インデックスキャッシュ領域に記憶)する(ステップS97)。
【0122】
次いで、制御部11は、上記ステップS84と同様、自己がルートノードであるか否かを判別し(ステップS98)、自己がルートノードでない(つまり、中継ノードである)場合には(ステップS98:NO)、ステップS99に進み、自己がルートノードである場合には(ステップS98:YES)、図6の処理に戻る。
【0123】
ステップS99では、制御部11は、受信されたパブリッシュメッセージを、自己のルーティングテーブルにしたがって他のノードNn(つまり、パブリッシュメッセージに含まれるコンテンツIDと最も近いノードIDを有するノードNn)に対して転送(当該コンテンツIDのルートノードに向けて送出)し、図6の処理に戻る。
【0124】
なお、ステップS100における、その他のメッセージ受信処理においては、その他のメッセージ(例えば、参加メッセージ)が受信された場合の処理が行われる。
【0125】
次に、図6に示すステップS9では、上述したステップS3と同様、システム利用制限有無判定処理が行われる。
【0126】
そして、制御部11は、システム利用制限有無判定処理からの返り値が“T”であるか否かを判別し(ステップS10)、返り値が“T”である場合(つまり、基準が満たされシステム利用制限無になったとき)には(ステップS10:YES)、ステップS11に進み、返り値が“T”でない場合には(ステップS10:NO)、ステップS13に進む。
【0127】
ステップS11では、制御部11は、コンテンツ登録リストにコンテンツデータのコンテンツ名及びコンテンツIDが登録(上記ステップS6又はS90にて登録)されているか否かを判別し、登録されていない場合には(ステップS11:NO)、ステップS13に進み、登録されている場合には(ステップS11:YES)、上述したステップS5と同様、コンテンツデータ取得処理を行う(ステップS12)。つまり、システム利用制限有無判定処理(ステップS3又はステップS87)により基準を満たさない(返り値が“F”)場合、制御部11は、コンテンツ取得リストに登録して基準を満たすようになるまで待機し、ステップS9のシステム利用制限有無判定処理で基準を満たすようになったときに、コンテンツ保持ノードから当該コンテンツデータのレプリカを取得(ダウンロード)して保存することになる。
【0128】
なお、ステップS13におけるその他の処理では、例えば、ユーザからの入力部21を介した指示に応じた処理等が行われ、ステップS1に戻る。
【0129】
以上説明したように、上記実施形態によれば、ユーザノードがコンテンツデータの保存要求(保存要求情報)を受け付けた場合、当該保存要求情報に応じて、当該システムSの利用制限有無を判定するために、ネットワーク8の負荷度合いを決定する上記基準を満たすか否かを判別し、当該基準を満たす場合(例えば、現在時刻がコンテンツ分散保存システムSの利用禁止時間帯にない場合、上記ルータの負荷量が予め設定された基準量を超えていない場合、上記ルータに接続されているノードNnの総数が予め設定された基準数を超えていない場合、他のノードNnからの応答時間が予め設定された基準時間を超えていない場合、及び自ノードNnが接続されている回線の消費帯域が予め設定された基準値を超えていない場合、の何れか一つの場合、或いはこれらの2つ以上の場合を満たす場合)に(当該システムSの利用制限有と判定)、当該保存要求情報に係るコンテンツデータのコンテンツID及び自己のIPアドレス等を含むコンテンツ所在問合せ(検索)メッセージ(クエリ)をルートノードに向けて送出し、そのレプリカを保存しているコンテンツ保持ノードである他のノードNnから当該コンテンツデータのレプリカをネットワーク8を介して取得して保存するように構成したので、ネットワーク8を構成する1つの回線にルータ等の中継装置を通じて多くのノードNnが接続している(1つの回線を共用している)場合であっても、ネットワーク及びルータ等の中継装置の負荷を低減させることができる。また、ネットワークが混み合っているときに、他のノードNnのユーザに迷惑をかけることを回避することができる。
【0130】
また、コンテンツ保持ノードが、ユーザノードである他のノードNnからコンテンツデータの提供要求を示す提供要求情報を受信した場合も、当該提供要求情報に応じて、ネットワーク8の負荷度合いを決定する基準を満たすか否かを判別し、上記基準を満たす場合に(当該システムSの利用制限有と判定)、当該提供要求情報に係るコンテンツデータのレプリカを、上記ユーザノードに対してネットワーク8を介して送信するように構成したので、ネットワーク8を構成する1つの回線にルータ等の中継装置を通じて多くのノードNnが接続している(1つの回線を共用している)場合であっても、ネットワーク及びルータ等の中継装置の負荷を低減させることができる。
【0131】
また、各ノードNnは、コンテンツ管理サーバからコンテンツ投入要求(保存要求)メッセージを受信した場合に、ネットワーク8の負荷度合いを決定する基準を満たさないときも、当該コンテンツデータのレプリカの投入を極力妨げないようにすることができる。
【0132】
なお、上記実施形態におけるコンテンツ分散保存システムSは、DHTを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。
【図面の簡単な説明】
【0133】
【図1】本実施形態に係るコンテンツ分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
【図2】ノードN2が保持するDHTを用いたルーティングテーブルの一例を示す図である。
【図3】DHTのID空間の一例を示す概念図である。
【図4】ユーザノードから送出されたコンテンツ所在問合せ(検索)メッセージの流れの一例を、DHTのID空間にて示した概念図である。
【図5】ノードNnの概要構成例を示す図である。
【図6】ノードNnの制御部11におけるメイン処理を示すフローチャートである。
【図7】図6及び図10におけるシステム利用制限有無判定処理の詳細を示すフローチャートである。
【図8】図6及び図10におけるコンテンツデータ取得処理の詳細を示すフローチャートである。
【図9】図6及び図10におけるシステム利用制限有り時の詳細を示すフローチャートである。
【図10】図6におけるメッセージ受信処理の詳細を示すフローチャートである。
【図11】コンテンツデータのレプリカの各ブロックが送信間隔T1でコンテンツ保持ノードから送信される様子を示す図である。
【符号の説明】
【0134】
8 ネットワーク
9 オーバーレイネットワーク
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
Nn ノード
S コンテンツ分散保存システム
【技術分野】
【0001】
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))型の通信システムの技術分野に関する。
【背景技術】
【0002】
この種のピアツーピア型の通信システムにおいて、コンテンツデータのレプリカ(複製データ)を複数のノード装置に分散配置(分散保存)させておくコンテンツ分散保存システムが知られており、これにより、対故障性やアクセスの分散性が高められている。このように分散保存されたコンテンツデータのレプリカの所在は、例えば特許文献1に開示されるような分散ハッシュテーブル(以下、DHT(Distributed Hash Table)という)を利用して効率良く検索可能になっている。当該DHTは、各ノード装置に記憶されており、当該DHTには、各種メッセージの転送先となるべき複数のノード装置を示すノード情報(例えば、IPアドレス及びポート番号を含む)が登録されている。
【0003】
そして、コンテンツ分散保存システムに参加しているノード装置は、所望のコンテンツデータの取得を望む場合、当該コンテンツデータのレプリカの所在を検索(発見)するためのメッセージ(クエリ)を他のノード装置に送出することにより、当該メッセージは、上記DHTにしたがって、中継のノード装置により当該コンテンツデータのレプリカの所在の管理元のノード装置に向かって転送され、最終的に当該メッセージが辿り着く上記管理元のノード装置から上記所在を示す情報を取得することになる。これにより、当該メッセージを送出したノード装置は、上記検索に係るコンテンツデータのレプリカを保存しているノード装置に対して、当該コンテンツデータのレプリカを要求し、当該コンテンツデータのレプリカの提供を受けることができる。
【特許文献1】特開2006−197400号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、このようなコンテンツ分散保存システムにおけるネットワークを構成する1つの回線に、ルータ等の中継装置を通じて多くのノード装置が接続している環境も存在する。このため、例えば時間帯によっては、多くのノード装置が1つの回線を共用する場合が生じ、かかる場合、ネットワーク及びルータ等の中継装置の負荷が増大し、好ましくない。
【0005】
本発明は、以上の問題等に鑑みてなされたものであり、ネットワークを構成する1つの回線にルータ等の中継装置を通じて多くのノード装置が接続している場合であっても、ネットワーク及びルータ等の中継装置の負荷を低減させることが可能なコンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びコンテンツデータの提供方法を提供することを課題とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、請求項1に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムに含まれる前記ノード装置であって、前記コンテンツデータの保存要求を示す保存要求情報を受け付ける保存要求受付手段と、前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存するコンテンツデータ取得手段と、を備えることを特徴とする。
【0007】
この発明によれば、当該ノード装置が前記コンテンツデータの保存要求を示す保存要求情報を受け付けた場合に、当該保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別し、前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存するように構成したので、ネットワークを構成する1つの回線にルータ等の中継装置を通じて多くのノード装置が接続している場合であっても、ネットワーク及び中継装置の負荷を低減させることができる。
【0008】
請求項2に記載の発明は、請求項1に記載のノード装置において、前記基準判別手段は、現在時刻が、前記コンテンツ分散保存システムにおける、予め設定された利用禁止時間帯にあるか否かを判別し、前記コンテンツデータ取得手段は、現在時刻が前記利用禁止時間帯にない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【0009】
この発明によれば、現在時刻が前記利用禁止時間帯にない場合に、当該ノード装置が、前記保存要求情報に係るコンテンツデータを取得して保存するように構成したので、多くのユーザが当該システムを利用する時間帯に当該コンテンツデータの取得を禁止でき、ネットワーク及び中継装置の負荷を低減させることができる。
【0010】
請求項3に記載の発明は、請求項1に記載のノード装置において、自ノード装置を含む複数のノード装置及び前記ネットワークの夫々に接続されデータを中継する中継装置の負荷量を示す負荷情報を取得する負荷情報取得手段を更に備え、前記基準判別手段は、前記取得された負荷情報に示された負荷量が、予め設定された基準量を超えているか否かを判別し、前記コンテンツデータ取得手段は、前記負荷量が前記基準量を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【0011】
この発明によれば、中継装置の負荷量が予め設定された基準量を超えていない場合に、当該ノード装置が、前記保存要求情報に係るコンテンツデータを取得して保存するように構成したので、ネットワーク及び中継装置の負荷を低減させることができる。
【0012】
請求項4に記載の発明は、請求項1に記載のノード装置において、自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置に接続されている前記ノード装置の数を示すノード数情報を取得するノード数情報取得手段を更に備え、前記基準判別手段は、前記取得されたノード数情報に示されたノード装置の数が、予め設定された基準数を超えているか否かを判別し、前記コンテンツデータ取得手段は、前記ノード装置の数が前記基準数を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【0013】
この発明によれば、中継装置に接続されているノード装置の数が、予め設定された基準数を超えている場合に、当該ノード装置が、前記保存要求情報に係るコンテンツデータを取得して保存するように構成したので、ネットワーク及び中継装置の負荷を低減させることができる。
【0014】
請求項5に記載の発明は、請求項1に記載のノード装置において、前記ネットワークを介して他の装置からの応答時間を計測する計測手段を更に備え、前記基準判別手段は、前記計測された応答時間が、予め設定された基準時間を超えているか否かを判別し、前記コンテンツデータ取得手段は、前記応答時間が前記基準時間を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【0015】
この発明によれば、他の装置からの応答時間が、予め設定された基準時間を超えている場合に、当該ノード装置が、前記保存要求情報に係るコンテンツデータを取得して保存するように構成したので、ネットワーク及び中継装置の負荷を低減させることができる。
【0016】
請求項6に記載の発明は、請求項1に記載のノード装置において、前記ネットワークの消費帯域を示す消費帯域情報を取得する消費帯域情報取得手段を更に備え、前記基準判別手段は、前記取得された消費帯域が、予め設定された基準値を超えているか否かを判別し、前記コンテンツデータ取得手段は、前記消費帯域が前記基準値を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【0017】
この発明によれば、前記ネットワークの消費帯域が、予め設定された基準値を超えていない場合に、当該ノード装置が、前記保存要求情報に係るコンテンツデータを取得して保存するように構成したので、ネットワーク及び中継装置の負荷を低減させることができる。
【0018】
請求項7に記載の発明は、請求項1乃至6の何れか一項に記載のノード装置において、前記基準を満たさない場合、前記コンテンツデータ取得手段は、当該基準を満たすようになるまで待機し、当該基準を満たすようになったときに、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【0019】
この発明によれば、上記基準を満たすようになったときに、当該ノード装置が、迅速に他のノード装置から当該コンテンツデータを取得して保存することができる。
【0020】
請求項8に記載の発明は、請求項1乃至6の何れか一項に記載のノード装置において、前記基準を満たさない場合、前記コンテンツデータ取得手段は、単位時間当たりの前記コンテンツデータの取得速度を低下させて、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とする。
【0021】
この発明によれば、単位時間当たりの前記コンテンツデータの取得速度を低下させてコンテンツデータを取得するので、ネットワーク及び中継装置の負荷を低減させることができる。
【0022】
請求項9に記載の発明は、請求項1乃至6の何れか一項に記載のノード装置において、前記基準を満たさない場合には、他のノード装置に対して前記保存要求情報を転送する保存要求情報転送手段を更に備えることを特徴とする。
【0023】
請求項9に記載の発明によれば、当該ノード装置が、他のノード装置にコンテンツデータを保存させることができる。
【0024】
請求項10に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムに含まれる前記ノード装置であって、他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する提供要求受信手段と、前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信するコンテンツデータ提供手段と、を備えることを特徴とする。
【0025】
この発明によれば、当該ノード装置が、他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信した場合に、前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別し、前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信するように構成したので、ネットワークを構成する1つの回線にルータ等の中継装置を通じて多くのノード装置が接続している場合であっても、ネットワーク及び中継装置の負荷を低減させることができる。
【0026】
請求項11に記載の発明は、請求項10に記載のノード装置において、前記基準判別手段は、現在時刻が、前記コンテンツ分散保存システムにおける、予め設定された利用禁止時間帯にあるか否かを判別し、前記コンテンツデータ提供手段は、現在時刻が前記利用禁止時間帯にない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とする。
【0027】
請求項12に記載の発明は、請求項10に記載のノード装置において、自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置の負荷量を示す負荷情報を取得する負荷情報取得手段を更に備え、前記基準判別手段は、前記取得された負荷情報に示された負荷量が、予め設定された基準量を超えているか否かを判別し、前記コンテンツデータ提供手段は、前記負荷量が前記基準量を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とする。
【0028】
請求項13に記載の発明は、請求項10に記載のノード装置において、自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置に接続されている前記ノード装置の数を示すノード数情報を取得するノード数情報取得手段を更に備え、前記基準判別手段は、前記取得されたノード数情報に示されたノード装置の数が、予め設定された基準数を超えているか否かを判別し、前記コンテンツデータ提供手段は、前記ノード装置の数が前記基準数を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とする。
【0029】
請求項14に記載の発明は、請求項10に記載のノード装置において、前記ネットワークを介して他の装置からの応答時間を計測する計測手段を更に備え、前記基準判別手段は、前記計測された応答時間が、予め設定された基準時間を超えているか否かを判別し、前記コンテンツデータ提供手段は、前記応答時間が前記基準時間を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とする。
【0030】
請求項15に記載の発明は、請求項10に記載のノード装置において、前記ネットワークの消費帯域を示す消費帯域情報を取得する消費帯域情報取得手段を更に備え、前記基準判別手段は、前記取得された消費帯域が、予め設定された基準値を超えているか否かを判別し、前記コンテンツデータ提供手段は、前記消費帯域が前記基準値を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とする。
【0031】
請求項16に記載のノード処理プログラムの発明は、コンピュータを、請求項1乃至15の何れか一項に記載のノード装置として機能させることを特徴とする。
【0032】
請求項17に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムであって、前記ノード装置は、前記コンテンツデータの保存要求を示す保存要求情報を受け付ける保存要求受付手段と、前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存するコンテンツデータ取得手段と、を備えることを特徴とする。
【0033】
請求項18に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムにおけるコンテンツデータ取得方法であって、前記ノード装置が、前記コンテンツデータの保存要求を示す保存要求情報を受け付ける工程と、前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する工程と、前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存する工程と、を備えることを特徴とする。
【0034】
請求項19に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムであって、前記ノード装置は、他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する提供要求受信手段と、前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信するコンテンツデータ提供手段と、を備えることを特徴とする。
【0035】
請求項20に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムにおけるコンテンツデータの提供方法であって、前記ノード装置が、他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する工程と、前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する工程と、前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信する工程と、を備えることを特徴とする。
【発明の効果】
【0036】
本発明によれば、ノード装置が、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別し、前記基準を満たす場合に、コンテンツデータを前記ネットワークを介して取得又は前記他のノード装置に対して送信するように構成したので、ネットワークを構成する1つの回線にルータ等の中継装置を通じて多くのノード装置が接続している場合であっても、ネットワーク及び中継装置の負荷を低減させることができる。
【発明を実施するための最良の形態】
【0037】
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ分散保存システムに本発明を適用した場合の実施形態である。
【0038】
[1.コンテンツ分散保存システムの構成等]
始めに、図1等を参照して、本実施形態に係るコンテンツ分散保存システムの概要構成等について説明する。
【0039】
図1は、本実施形態に係るコンテンツ分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
【0040】
図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4a,4b、DSL(Digital Subscriber Line)回線事業者(の装置)5a,5b、FTTH(Fiber To The Home)回線事業者(の装置)6、及び通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワーク(現実世界の通信ネットワークであり、通信手段の一例)8が構築されている。なお、図1の例におけるネットワーク(通信ネットワーク)8には、データ(パケット)を転送するためのルータが適宜挿入されている。
【0041】
このようなネットワーク8には、複数のノード装置(以下、「ノード」という)Nn(n=1,2,3・・・の何れか)が接続されている。また、図1に示すDSL回線事業者5aに示されるように、ネットワーク8を構成する1つの回線(通信回線)71には、ルータ51を通じて複数のノードN2〜N5、及びN8等が接続される(1つの回線71を共用する)ようになっている。なお、ルータ51に接続されている、符号Nnが付されていないマーク(丸)は、ここでは、コンテンツ分散保存システムSとは関係の無い一般端末(例えば、PC)を示している。
【0042】
また、各ノードNnには、固有の製造番号およびIP(Internet Protocol)アドレスが割り当てられている。このような製造番号およびIPアドレスは、複数のノードNn間で重複しないものである。
【0043】
そして、本実施形態に係るコンテンツ分散保存システムSは、これらのノードNnのうち、図1の上部枠100内に示すように、何れか複数のノードNnの参加により形成されるピアツーピア方式のネットワークシステムとなっている。なお、図1の上部枠100内に示すネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク9(論理的なネットワーク)である。かかるオーバーレイネットワーク9は、特定のアルゴリズム、例えば、DHT(Distributed Hash Table)を利用したアルゴリズムにより実現される。
【0044】
そして、コンテンツ分散保存システムS(言い換えれば、オーバーレイネットワーク9)に参加している各ノードNnには、所定桁数からなる固有の識別情報であるノードIDが割り当てられており、当該ノードIDは、例えば、各ノードNnに個別に割り当てられたIPアドレス或いは製造番号を共通のハッシュ関数(例えば、SHA−1等)によりハッシュ化した値(例えば、bit長が160bit)であり、図3に示すような一つのID空間に偏りなく分散して配置されることになる。
【0045】
なお、コンテンツ分散保存システムSへの参加は、参加していないノードNn(例えば、ノードN8)が、参加している任意のノードNn(例えば、当該システムSに常時参加しているコンタクトノード)に対して参加要求を示す参加メッセージを送信することによって行われる。
【0046】
上記のように共通のハッシュ関数により求められた(ハッシュ化された)ノードIDは、当該IPアドレス或いは製造番号が異なれば、同じ値になる確率が極めて低いものである。また、このノードIDは、ノードの最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、2^128=340×10^36台のノードを運用できる。なお、ハッシュ関数については公知であるので詳しい説明を省略する。
【0047】
また、各ノードNnは、夫々、DHTを用いたルーティングテーブルを保持している。このルーティングテーブルは、コンテンツ分散保存システムS上における各種メッセージの転送先を規定しており、具体的には、ID空間内で適度に離れたノードNnのノードID、IPアドレス及びポート番号を含むノード情報が複数登録されている。
【0048】
コンテンツ分散保存システムSに参加している1台のノードNnは、該システムSに参加している全てのノードNnのうち、必要最低限のノードNnのノード情報をルーティングテーブルに登録しておき、ノード情報を知らない(記憶していない)ノードNnについては、各ノードNn間で互いに各種メッセージを転送し合って届けてもらうようになっている。
【0049】
ここで、図2及び図3を参照して、DHTを用いたルーティングテーブルについて詳しく説明する。
【0050】
図2は、ノードN2が保持するDHTを用いたルーティングテーブルの一例を示す図であり、図3は、DHTのID空間の一例を示す概念図である。
【0051】
なお、図2及び図3の例においては、説明の便宜上、ノードIDのbit長を2bit×3桁=6bitとし、各桁を4進数(0〜3の整数)で表している(実際には、もっと長いbit長を用い、各桁も例えば4bitに区切って0〜fの16進数で表現する)。
【0052】
図2の例において、DHTを用いたルーティングテーブルは、レベル1〜レベル3のテーブルからなり(複数のレベルに区分されており)、各レベルのテーブルエントリーには、エリア毎に、ノード情報として、ノードIDとこれに対応するノードNnのIPアドレス及びポート番号が対応付けられて登録されている。各レベルのテーブルにおける各エリアは、DHTのノードID空間を分割することにより得られるエリアである。例えば、図3に示すように、レベル1では、DHTのID空間全体が4分割され、“000”〜“033”のノードIDが存在するエリアを0XXのエリア、“100”〜“133” のノードIDが存在するエリアを1XXのエリア、“200”〜“233” のノードIDが存在するエリアを2XXのエリア、“300”〜“333” のノードIDが存在するエリアを3XXのエリアとする。また、レベル2では、レベル1のエリア(つまり、0XX〜3XXのエリア)が更に4分割、例えば1XXのエリアが4分割され、“100”〜“103” のノードIDが存在するエリアを10Xのエリア、“110”〜“113” のノードIDが存在するエリアを11Xのエリア、“120”〜“123” のノードIDが存在するエリアを12Xのエリア、“130”〜“133” のノードIDが存在するエリアを13Xのエリアとする。
【0053】
そして、例えば、ノードN2のノードIDが“122”とすると、図2に示すように、かかるノードN2のレベル1における1XXのエリア(自己(つまり、自ノード)が存在するエリア)のテーブルには、自己のノードID及びIPアドレス(IPアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い)等が登録され、自己が存在しないエリア(つまり、0XXのエリア、2XXのエリア、及び3XXのエリア)には、夫々、他の任意のノードNnのノードID及びIPアドレス等が登録されている。
【0054】
また、かかるノードN2のレベル2における12Xのエリア(自己が存在するエリア)のテーブルには、図2に示すように、自己のノードID及びIPアドレス(IPアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い)等が登録され、自己が存在しないエリア(つまり、10Xのエリア、11Xのエリア、及び13Xのエリア)等には、夫々、他の任意のノードNnのノードID及びIPアドレス等が登録されている。
【0055】
更に、かかるノードN2のレベル3には、図2に示すように、ノードIDが“120”〜“122”のノードID及びIPアドレス(IPアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い)等が登録されている。
【0056】
なお、図2及び図3の例では、ノードIDのbit長を3桁×2bitとしたので、レベル1〜3の3レベル分のテーブルで網羅できるが、ノードIDのbit長が増せば、その分のテーブルが必要となる(例えば、ノードIDのbit長を16桁×4bitとした場合、16レベル分のテーブルが必要となる)。
【0057】
このように、本実施形態におけるDHTを用いたルーティングテーブルでは、レベルが上がるほど、エリアが狭まっていくようになっている。
【0058】
また、このようなDHTは、例えば、未参加のノードがコンテンツ分散保存システムSに参加する際に与えられることになる。
【0059】
ところで、コンテンツ分散保存システムSにおいては、内容の異なる様々なコンテンツ(例えば、映画や音楽等)データの夫々の複製データ(以下、「レプリカ」という)が複数のノードNnに分散して保存(格納)されている。
【0060】
例えば、ノードN1及びノードN5には、タイトルがXXXの映画のコンテンツデータのレプリカが保存されており、一方、ノードN3には、タイトルがYYYの映画のコンテンツデータのレプリカが保存されるというように、複数のノードNn(以下、「コンテンツ保持ノード」という)に分散されて保存される。
【0061】
また、これらのコンテンツデータのレプリカには、夫々、コンテンツ名(タイトル)及びコンテンツID(コンテンツ毎に固有の識別情報)等の情報が付加されている。このコンテンツIDは、例えば、コンテンツ名+任意の数値(或いは、当該コンテンツデータの先頭数バイトでも良い)が、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化されて生成される(ノードIDと同一のID空間に配置)。或いは、システム管理者が、コンテンツ毎に一意のID値(ノードIDと同一ビット長)を付与しても良い。この場合は、コンテンツ名とそのコンテンツIDの対応が書かれたコンテンツカタログ情報が、全ノードNnに配布される。
【0062】
また、このように分散保存されているコンテンツデータのレプリカの所在、つまり、当該コンテンツデータのレプリカを保存したノードNnのIPアドレス等と当該コンテンツデータに対応するコンテンツID等の組が含まれるインデックス情報が、当該コンテンツデータのレプリカの所在の管理元であるノードNn(以下、「ルートノード」、又は「コンテンツ(コンテンツID)のルートノード」という)等により記憶(インデックスキャッシュに記憶)、管理されるようになっている。
【0063】
例えば、タイトルがXXXの映画のコンテンツデータのレプリカについてのインデックス情報は、そのコンテンツ(コンテンツID)のルートノードであるノードN4により管理され、タイトルがYYYの映画のコンテンツデータのレプリカについてのインデックス情報は、そのコンテンツ(コンテンツID)のルートノードであるノードN6により管理される(つまり、レプリカの所在が夫々のコンテンツデータ毎に管理される)。
【0064】
すなわち、コンテンツ毎にルートノードが分けられるので負荷分散が図らており、しかも、同一(内容が同一)のコンテンツデータ(コンテンツIDが同一)のレプリカが、夫々、複数のコンテンツ保持ノードに保存されている場合であっても、かかるコンテンツデータのインデックス情報は、一つのルートノードで管理することができる。このため、各ルートノードは、コンテンツ分散保存システムSにおいて自己がその所在を管理するコンテンツデータのレプリカの数(言い換えれば、当該レプリカを保存しているコンテンツ保持ノードの数)を認識している。
【0065】
また、このようなルートノードは、例えば、コンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノードNnであるように定められる。
【0066】
そして、あるノードNnのユーザが、所望するコンテンツデータを取得したい場合、当該コンテンツデータの取得を望むノードNn(以下、「ユーザノード」という)は、当該ユーザにより選択(例えば、全てのノードNnに配信されているコンテンツカタログ情報(コンテンツ名とコンテンツID等が記述されており、例えばコンテンツカタログ管理サーバ(図示せず)にて管理される)から選択)されたコンテンツデータ(例えば、コンテンツ名が選択される)のコンテンツID及び自己のIPアドレス等を含むコンテンツ所在問合せ(検索)メッセージ(クエリ)を生成し、これを自己のDHTを用いたルーティングテーブルにしたがって他のノードNnに対して送出する。つまり、ユーザノードは、コンテンツ所在問合せ(検索)メッセージを、ルートノードに向けて(ルートノード宛てに)送出する。これにより、コンテンツ所在問合せ(検索)メッセージは、コンテンツIDをキーとするDHTルーティングによって最終的にルートノードに到着することになる。
【0067】
ここで、ユーザノードは、当該ユーザによりコンテンツカタログ情報からコンテンツ名等が選択された場合だけでなく、例えばシステム管理者等のコンテンツ管理サーバからコンテンツ投入要求(保存要求)メッセージ(特定の新規コンテンツデータのコンテンツ名及びコンテンツID等を含む)を受信した場合にも、コンテンツ所在問合せ(検索)メッセージ(クエリ)をルートノードに向けて送出する。このコンテンツ投入要求(保存要求)メッセージ(事前プッシュメッセージともいう)は、例えば新規コンテンツデータ(コンテンツカタログ情報により公開される前のコンテンツデータ)のレプリカを、コンテンツ分散保存システムSにおいて所定数確保(保存)させるために、任意の複数のノードNnに配信されるものである。そして、所定数以上のレプリカがコンテンツ分散保存システムSにおいて保存されると、当該新規コンテンツデータのコンテンツ名とコンテンツID等が記述されたコンテンツカタログ情報が各ノードNnに配信(これにより公開)されることになる。或いは、新規に投入するべき新規コンテンツデータの属性情報が記述されたコンテンツカタログ情報を全ノードNnに予め配布しておくが、当該コンテンツカタログ情報には、新規コンテンツデータの公開日が設定されており、公開日までは各ノードNnのユーザに公開されない(利用できない)ようにしておき、公開日が過ぎると、上記投入要求により事前に新規コンテンツデータを保存した各ノードNn以外のノードNnにおいても、当該新規コンテンツデータをリクエストできるようになる。
【0068】
また、上記コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDは、ユーザノードによって、コンテンツ名が上記共通のハッシュ関数によりハッシュ化されて生成されるようにしても良い。
【0069】
図4は、ユーザノードから送出されたコンテンツ所在問合せ(検索)メッセージの流れの一例を、DHTのID空間にて示した概念図である。
【0070】
図4の例において、例えば、ユーザノードであるノードN2は、自己のDHTのレベル1のテーブルを参照して、コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有する例えばノードN3のIPアドレス及びポート番号を取得し、そのIPアドレス及びポート番号宛てに、上記コンテンツ所在問合せ(検索)メッセージ(クエリ)を送信する。
【0071】
これに対して、ノードN3は、当該コンテンツ所在問合せ(検索)メッセージを受信し、自己のDHTのレベル2のテーブルを参照して、当該コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有する例えばノードN4のIPアドレス及びポート番号を取得し、そのIPアドレス及びポート番号宛てに、上記コンテンツ所在問合せ(検索)メッセージを転送する。
【0072】
これに対して、ノードN4は、当該コンテンツ所在問合せ(検索)メッセージを受信し、自己のDHTのレベル3のテーブルを参照して、当該コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDが自分である、つまり、自分がそのコンテンツIDのルートノードであることを認識すると、当該コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDに対応するインデックス情報をインデックスキャッシュから取得して、当該インデックス情報を、該コンテンツ所在問合せメッセージの送信元であるユーザノードに対して返信する。これにより、ユーザノードは、所望のコンテンツデータのレプリカを保存している上記コンテンツ保持ノードである例えばノードN1に対して、コンテンツ送信要求メッセージを送信し、そこから当該コンテンツデータのレプリカの提供を受けることが可能になる。
【0073】
或いは、ルートノードであるノードN4は、当該インデックス情報に含まれるIPアドレス等に示されたコンテンツ保持ノードに対してコンテンツ送信要求メッセージ(ユーザノードのIPアドレス等を含み、当該ユーザノードに対してコンテンツデータのレプリカの送信要求を示す要求情報)を送信する。これにより、ユーザノードは、上記コンテンツ保持ノードである例えばノードN1から当該コンテンツデータのレプリカの提供を受けることが可能になる。
【0074】
なお、コンテンツ分散保存システムSにおいて分散保存されているレプリカの数が少ない(当該レプリカを保存しているコンテンツ保持ノードの数が少ない)コンテンツデータについては、ユーザノードが上述したコンテンツ所在問合せ(検索)メッセージ(クエリ)を、そのルートノードに向けて送出しても、ノードNnやネットワーク8の負荷増大等により、当該ルートノードから迅速に返答(インデックス情報の送信)が得られない(例えば、返答に時間がかかったり、返答が帰ってこない等)場合や、当該コンテンツデータのレプリカを保存しているコンテンツ保持ノードから迅速にコンテンツデータの提供を受けることができない(例えば、ダウンロードに時間がかかる)場合がある。このような場合、各ノードNnは、例えば全コンテンツデータを保存、管理しているコンテンツ管理サーバにアクセスして当該レプリカを取得することも可能になっているが、極力、コンテンツ管理サーバに負荷をかけずノードNn間でコンテンツデータのレプリカの授受できることが望ましい。
【0075】
なお、上記ユーザノードは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、当該ルートノードと同じインデックス情報をキャッシュしている中継ノード(例えば、ノードN3のキャッシュノード)から当該インデックス情報を取得(受信)することもできる。
【0076】
このようにしてコンテンツデータのレプリカを取得、保存したユーザノードは、当該レプリカを保存したことをそのルートノードに知らせるために(言い換えれば、自己が当該コンテンツデータのレプリカを保持していることを、該システムSに参加している他のノードNnに対して公開するために)、そのコンテンツデータのコンテンツID及び自己のIPアドレス等が含まれるパブリッシュ(登録通知)メッセージ(コンテンツデータのレプリカを保存したので、IPアドレス等の登録の要求を示す登録メッセージ)を生成し、該パブリッシュメッセージを、そのルートノードに向けて送出する。これにより、パブリッシュメッセージは、コンテンツ所在問合せ(検索)メッセージと同じように、コンテンツIDをキーとするDHTルーティングによってルートノードに到着することになり、該ルートノードは、受信したパブリッシュメッセージに含まれるIPアドレス等及びコンテンツIDの組を含むインデックス情報を登録(インデックスキャッシュ領域に記憶)することになる。こうして、上記ユーザノードは、新たに、上記コンテンツデータのレプリカを保持するコンテンツ保持ノードとなる。
【0077】
なお、上記パブリッシュメッセージに含まれるIPアドレス等及びコンテンツIDの組を含むインデックス情報は、ルートノードに至るまでの転送経路における中継ノードにおいても登録(キャッシュ)される。
【0078】
[2.ノードNnの構成及び機能等]
次に、図5を参照して、ノードNnの構成及び機能について説明する。
【0079】
図5は、ノードNnの概要構成例を示す図である。
【0080】
各ノードNnは、図5に示すように、演算機能を有するCPU,作業用RAM,各種データおよびプログラムを記憶するROM等から構成されたコンピュータとしての制御部11と、各種データ(例えば、コンテンツデータのレプリカ、インデックス情報、DHT等)及び各種プログラム等を記憶保存(格納)するためのHD等から構成された記憶部12と、受信されたコンテンツデータのレプリカ等を一時蓄積するバッファメモリ13と、コンテンツデータのレプリカに含まれるエンコードされたビデオデータ(映像情報)およびオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)するデコーダ部14と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部15と、当該映像処理部15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等の表示部16と、上記デコードされたオーディオデータをアナログオーディオ信号にD (Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音声処理部17と、当該音声処理部17から出力されたオーディオ信号を音波として出力するスピーカ18と、ネットワーク8を通じて他のノードNnや各種サーバ等との間の情報の通信制御を行うための通信部20と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部11に対して与える入力部(例えば、キーボード、マウス、或いは、操作パネル等)21と、を備えて構成され、制御部11、記憶部12、バッファメモリ13、デコーダ部14、通信部20、及び入力部21はバス22を介して相互に接続されている。なお、ノードNnとしては、パーソナルコンピュータ、STB(Set Top Box)、或いは、TV受信機等を適用可能である。また、記憶部12には、コンテンツ分散保存システムSに参加する際のアクセス先となるコンタクトノードのIPアドレス及びポート番号等が記憶されている。
【0081】
このような構成において、制御部11は、CPUが記憶部12等に記憶されたプログラムを読み出して実行することにより、全体を統括制御し、コンテンツ分散保存システムSへの参加により上述したユーザノード、中継ノード、ルートノード、キャッシュノード、及びコンテンツ保持ノードの少なくとも何れか一つのノードとしての処理を行うようになっており、ユーザノードとしての処理を実行する場合には、本発明における保存要求受付手段、基準判別手段、コンテンツデータ取得手段、負荷情報取得手段、ノード数情報取得手段、計測手段、消費帯域情報取得手段、及び保存要求情報転送手段等として機能するようになっている。また、制御部11は、コンテンツ保持ノードとしての処理を実行する場合には、本発明における提供要求受信手段、基準判別手段、コンテンツデータ提供手段、負荷情報取得手段、ノード数情報取得手段、計測手段、及び消費帯域情報取得手段等として機能するようになっている。
【0082】
具体的には、ユーザノードの制御部11がコンテンツデータの保存要求(保存要求情報)を受け付けた場合(例えば、コンテンツカタログ情報に基づきユーザにより入力部21を介して選択されたコンテンツデータのコンテンツ検索指示を受けた場合、又はコンテンツ管理サーバからのコンテンツ投入要求(保存要求)メッセージを受信した場合)、当該保存要求情報に応じて、当該システムSの利用制限有無を判定するために、ネットワーク8の負荷度合いを決定する基準を満たすか否かを判別するようになっている。
【0083】
ここで、ネットワーク8等の負荷度合いを決定する基準としては、例えば、コンテンツ分散保存システムSの利用禁止時間帯(例えば、多くのユーザがコンテンツ分散保存システムSを利用する21時〜3時位までの間)、自ノードNnが接続されたルータ(自ノードNnを含む複数のノードNn及びネットワーク8の夫々に接続されデータを中継する中継装置の一例であり、この他にも、ブリッジ、リピータ、又はスイッチ等でも良い)の負荷量、自ノードNnが接続されたルータに接続されているノードNnの総数、他のノードNn(又はサーバ)からの応答時間、及び自ノードNnが接続されているネットワーク8における回線の消費帯域等が挙げられる。
【0084】
そして、当該制御部11は、上記基準を満たす場合(例えば、現在時刻がコンテンツ分散保存システムSの利用禁止時間帯にない場合、上記ルータの負荷量が予め設定された基準量を超えていない場合、上記ルータに接続されているノードNnの総数が予め設定された基準数を超えていない場合、他のノードNnからの応答時間が予め設定された基準時間を超えていない場合、及び自ノードNnが接続されている回線の消費帯域が予め設定された基準値を超えていない場合、の何れか一つの場合、或いはこれらの2つ以上の場合を満たす場合)に(当該システムSの利用制限有と判定)、上述したように、当該保存要求情報に係るコンテンツデータのコンテンツID及び自己のIPアドレス等を含むコンテンツ所在問合せ(検索)メッセージ(クエリ)をルートノードに向けて送出し、そのレプリカを保存しているコンテンツ保持ノードである他のノードNnから当該コンテンツデータのレプリカをネットワーク8を介して取得して保存するようになっている(言い換えれば、上記基準を満たさない場合は、当該コンテンツデータのレプリカを取得しない)。これにより、ネットワーク8及びルータの負荷を低減させることができる。
【0085】
また、コンテンツ保持ノードの制御部11が、ユーザノードである他のノードNnからコンテンツデータの提供要求を示す提供要求情報を受信した場合(例えば、上述したコンテンツ送信要求メッセージを受信した場合)、当該提供要求情報に応じて、ネットワーク8の負荷度合いを決定する基準を満たすか否かを判別し(上記ユーザノードの場合と同様)、上記基準を満たす場合に(当該システムSの利用制限有と判定)、上述したように、当該提供要求情報に係るコンテンツデータのレプリカを、上記ユーザノードに対してネットワーク8を介して送信するようになっている(言い換えれば、上記基準を満たさない場合は、当該コンテンツデータのレプリカを送信しない)。
【0086】
なお、上記ノード処理プログラムは、例えば、ネットワーク8上の所定のサーバからダウンロードされるようにしてもよいし、例えば、CD−ROM等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
【0087】
[3.コンテンツ分散保存システムSの動作]
次に、図6乃至図10等を参照して、コンテンツ分散保存システムSの動作について説明する。
【0088】
図6は、ノードNnの制御部11におけるメイン処理を示すフローチャートである。図7(A)〜(E)は、図6及び図10におけるシステム利用制限有無判定処理の詳細を示すフローチャートである。図8は、図6及び図10におけるコンテンツデータ取得処理の詳細を示すフローチャートである。図9(A)及び(B)は、図6及び図10におけるシステム利用制限有り時の詳細を示すフローチャートである。図10は、図6におけるメッセージ受信処理の詳細を示すフローチャートである。
【0089】
図6に示す処理は、任意のノードNnにおいて例えば電源ONになった場合に開始され、コンテンツ分散保存システムSへの参加処理が実行される。この参加処理においては、当該ノードNnの制御部11は、記憶部12からコンタクトノードのIPアドレス及びポート番号を取得し、これに基づきコンタクトノードにネットワーク8を介して接続し、参加要求を示す参加メッセージ(自己のノードID及びノード情報等を含む)を送信する。これにより、当該ノードNnには、当該システムSに参加している他のノードNnからルーティングテーブルが送信されることになり、受信したルーティングテーブルに基づき自己のルーティングテーブルを生成し、コンテンツ分散保存システムSに参加が完了することになる。なお、ルーティングテーブルの生成方法は、本発明の直接の関係がないので、詳しい説明を省略する。また、コンタクトノードのIPアドレス等の情報は、例えばノードNnの出荷時、或いはソフトウェア初回インストール時の初期状態で記憶部12に記憶される。
【0090】
こうしてコンテンツ分散保存システムSへの参加処理が完了すると、制御部11は、電源OFFの指示(例えば、ユーザから入力部21を介した電源OFF操作指示)があった場合には(ステップS1:YES)、当該処理を終了する。一方、電源OFFの指示がない場合には(ステップS1:NO)、制御部11は、ユーザから入力部21を介してコンテンツ検索指示があったか否かを判別する(ステップS2)。ユーザからコンテンツ検索指示があった(例えば表示部12上に表示されたコンテンツカタログ情報から、当該ユーザが所望のコンテンツデータのコンテンツ名等を入力部21により選択してコンテンツ検索指示を行った)場合には(ステップS2:YES)、ステップS3に進み、コンテンツ検索指示がない場合には(ステップS2:NO)、ステップS7に進む。
【0091】
ステップS3では、ユーザノードとしてシステム利用制限有無判定処理が行われるが、この例としては、図7(A)〜(E)に示す処理が挙げられ、何れの処理を採用するかは、例えば、各ノードNnで任意、或いはシステム管理者によりコンテンツ分散保存システムSで統一的に決定される。
【0092】
例えば、図7(A)のシステム利用制限有無判定処理(例1)では、制御部11は、現在時刻を示す現在時刻情報を取得し(ステップS31A)、当該現在時刻が、コンテンツ分散保存システムSにおける、予め設定された(記憶部12における設定領域に記憶された)利用禁止時間帯(例えば、21時から3時までの時間帯)にあるか否かを判別し(ステップS32A)、当該現在時刻が利用禁止時間帯にある場合には(ステップS32A:YES)、ネットワーク8等の負荷度合いが高くなるため、返り値を“F”(システム利用制限有)として図6の処理に戻り、当該現在時刻が利用禁止時間帯にない場合には(ステップS32A:NO)、返り値を“T”(システム利用制限無)として図6の処理に戻る。
【0093】
また、図7(B)のシステム利用制限有無判定処理(例2)では、制御部11は、自ノードNnが接続されたルータの負荷量(例えば、当該ルータにおけるCPU使用率の単位時間(例えば、1分)当たりの平均値)を示す負荷情報を当該ルータ(ログを送出するルータ)から取得し(ステップS31B)、当該負荷量が、予め設定された(記憶部12における設定領域に記憶された)基準量(例えば、70%)を超えているか否かを判別し(ステップS32B)、当該負荷量が基準量を超えている場合には(ステップS32B:YES)、ネットワーク8等の負荷度合いが高くなるため、返り値を“F”として図6の処理に戻り、当該負荷量が基準量を超えていない場合には(ステップS32B:NO)、返り値を“T”として図6の処理に戻る。
【0094】
また、図7(C)のシステム利用制限有無判定処理(例3)では、制御部11は、自ノードNnが接続されたルータに接続されているノードNnを含む全ての端末(コンテンツ分散保存システムSに参加しているか否か及び参加可能か否かに拘わらずルータに接続されている全ての端末)の数を示すノード数情報を当該ルータから取得(同じセグメント上にある全てのノードNnにブロードキャストして各ノードNnからの応答に基づき当該ノードNnの数を算出しても良い)し(ステップS31C)、当該ノードNnの数(総数)が、予め設定された(記憶部12における設定領域に記憶された)基準数を超えているか否かを判別し(ステップS32C)、当該ノードNnの総数が基準数を超えている場合には(ステップS32C:YES)、ネットワーク8等の負荷度合いが高くなるため、返り値を“F”として図6の処理に戻り、当該ノードNnの総数が基準数を超えていない場合には(ステップS32C:NO)、返り値を“T”として図6の処理に戻る。
【0095】
また、図7(D)のシステム利用制限有無判定処理(例4)では、制御部11は、予め設定されたサーバからの応答時間(レスポンス時間)を計測(例えば、ピング(Ping))を送信し、返信されてきた時間を計測)し(ステップS31D)、計測した応答時間が、予め設定された(記憶部12における設定領域に記憶された)基準時間を超えているか否かを判別し(ステップS32D)、当該応答時間が基準時間を超えている場合には(ステップS32D:YES)、ネットワーク8等の負荷度合いが高くなるため、返り値を“F”として図6の処理に戻り、当該応答時間が基準時間を超えていない場合には(ステップS32D:NO)、返り値を“T”として図6の処理に戻る。
【0096】
また、図7(E)のシステム利用制限有無判定処理(例5)では、制御部11は、自ノードNn(例えば、ノードN2)が接続されているネットワーク8における回線(例えば、図1に示す回線71)の消費帯域(bps)を示す消費帯域情報を取得(例えば、予め設定された他のノードNnに対して所定量のデータを伝送するように要求し、単位時間当たりのデータ伝送量等に基づき計測)し(ステップS31E)、当該消費帯域が、予め設定された(記憶部12における設定領域に記憶された)基準値(例えば、最大消費帯域の60%)を超えているか否かを判別し(ステップS32E)、当該消費帯域が基準値を超えている場合には(ステップS32E:YES)、ネットワーク8等の負荷度合いが高くなるため、返り値を“F”として図6の処理に戻り、当該消費帯域が基準値を超えていない場合には(ステップS32E:NO)、返り値を“T”として図6の処理に戻る。
【0097】
なお、図7(A)〜(E)に示す処理の組合せを採用しても良く、例えば、現在時刻がコンテンツ分散保存システムSの利用禁止時間帯にあっても、上記ルータの負荷量が予め設定された基準量を超えていない場合(或いは、上記ルータに接続されているノードNnの総数が予め設定された基準数を超えていない場合)には、返り値を“T”として図6の処理に戻るように構成しても良い。
【0098】
次に、制御部11は、図6に示すステップS4では、システム利用制限有無判定処理からの返り値が“T”であるか否かを判別し、返り値が“T”である場合には(ステップS4:YES)、ステップS5に進み、返り値が“T”でない(返り値が“F”である)場合には(ステップS4:NO)、ステップS6に進む。
【0099】
ステップS5では、制御部11は、コンテンツデータ取得処理を実行し、その後、ステップS7に進む。
【0100】
当該コンテンツデータ取得処理において、制御部11は、図8に示すように、コンテンツ所在問合せ(検索)処理を行う(ステップS51)。かかるコンテンツ所在問合せ(検索)処理においては、制御部11は、上記ステップS2におけるコンテンツ検索指示に係るコンテンツデータのコンテンツIDを含むコンテンツ所在問合せ(検索)メッセージを、自己のDHTを用いたルーティングテーブルにしたがって他のノードNn(つまり、当該コンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノードNn)に対して送信(当該コンテンツIDのルートノードに向けて送出)し、当該コンテンツIDのルートノードからインデックス情報を取得する。
【0101】
次いで、制御部11は、レプリカの送信(ダウンロード)間隔、及び1回のダウンロードにおけるデータ量を設定し(ステップS52)、当該設定した送信間隔及びデータ量を指定する情報を含むコンテンツ送信要求メッセージを、上記取得したインデックス情報に含まれるIPアドレス等に基づき、コンテンツ保持ノードに対して送信する(ステップS53)。これに応じて、コンテンツ保持ノードは、上記コンテンツ送信要求メッセージにより指定されたコンテンツデータのレプリカを上記ユーザノードへ送信することになるが、このとき、当該レプリカを上記指定されたデータ量(ブロック)毎に分割し、コンテンツ送信要求メッセージにより指定された送信間隔で順次送信することになる。
【0102】
図11(A)は、システム利用制限無時において、レプリカの各ブロックが送信間隔T1でコンテンツ保持ノードから送信される様子を示す図である。なお、当該コンテンツデータのレプリカを構成する各ブロックは、夫々別々のコンテンツ保持ノードに保存されるように構成し、ユーザノードは、上記設定したデータ量を指定する情報を含むコンテンツ送信要求メッセージを、夫々のコンテンツ保持ノードに対して上記設定した送信間隔で送信するように構成しても良い。
【0103】
そして、コンテンツ保持ノードから送信された各ブロックは、通信部20を通じて受信されバッファメモリ13に蓄積される。そして、制御部11は、バッファメモリ13に所定量の上記ブロックのデータが蓄積されたとき、当該ブロックのデータをバッファメモリ13から記憶部12に記憶保存(例えば、HDの所定領域に書き込む)させる(ステップS54)。こうして、順次当該ブロックのデータがバッファメモリ13から記憶部12に送られ記憶保存されていく。
【0104】
次いで、制御部11は、レプリカを構成するブロックが全て揃い、記憶保存された否かを判断し(ステップS55)、全て記憶保存されていない場合には(ステップS55:NO)、ステップ54に戻り当該処理を継続し、全て記憶保存された場合には(ステップS55:YES)、ステップS56に進む。なお、当該レプリカのデータ量が少ない場合、バッファメモリ13に全てのブロックが揃ってから記憶部12に記憶保存されるように構成しても良い。
【0105】
次いで、制御部11は、当該保存されたレプリカに係るコンテンツデータのコンテンツIDを含む、上述したパブリッシュメッセージを、自己のDHTを用いたルーティングテーブルにしたがって他のノードNnに対して送信(当該コンテンツIDのルートノードに向けて送出)し(ステップS56)、図6の処理に戻る。これにより、当該パブリッシュメッセージは、コンテンツIDをキーとするDHTルーティングによってルートノードに到着することになり、該ルートノードは、受信したパブリッシュメッセージに含まれるIPアドレス等及びコンテンツIDの組を含むインデックス情報を登録する。
【0106】
ステップS6では、ユーザノードとしてシステム利用制限有時の処理が行われるが、この例としては、図9(A)及び(B)に示す処理が挙げられ、何れの処理を採用するかは、例えば、各ノードNnで任意、或いはシステム管理者によりコンテンツ分散保存システムSで統一的に決定される。
【0107】
例えば、図9(A)のシステム利用制限有時の処理(例1)では、制御部11は、システム利用制限無になったときに(基準を満たすようになるまで待機)取得するべきコンテンツデータの例えばコンテンツID等を登録するためのコンテンツ取得リストに、上記ステップS2におけるコンテンツ検索指示に係るコンテンツデータのコンテンツID等を登録し(ステップS61A)、図6の処理に戻る。
【0108】
また、図9(B)のシステム利用制限有時の処理(例2)では、制御部11は、ランダムなノードIDを生成し(ステップS61B)、自己のDHTを用いたルーティンングテーブルに登録されたノードIDのうち、自ノードNnのノードIDが、当該生成したノードIDに最も近い(例えば、上位桁がより多く一致する)か否かを判別し(ステップS62B)、自ノードNnのノードIDが、当該生成したノードIDに最も近い場合には(ステップS62B:YES)、ステップS61Bに戻り、同様の処理を行う。一方、自ノードNnのノードIDが当該生成したノードIDに最も近くない場合には(ステップS62B:NO)、制御部11は、当該生成したノードIDに最も近いノードIDを有する他のノードNnを、自己のDHTを用いたルーティンングテーブルから特定し、当該ノードNnに対して、コンテンツ投入要求メッセージを転送する(ステップS63B)。
【0109】
なお、制御部11は、ランダムなノードIDを生成せずに、自己のDHTを用いたルーティングテーブルからランダムに他のノードNnを特定して、そのノードNnに対して、コンテンツ投入要求メッセージを転送するように構成しても良い。
【0110】
また、システム利用制限有時の処理の別の例として、制御部11は、単位時間当たりのコンテンツデータのレプリカの取得(ダウンロード)速度を低下させて、上記コンテンツ保持ノードから当該コンテンツデータのレプリカを取得して保存するように構成しても良い。この場合、上記ステップS6では、システム利用制限有時の処理として図8に示すコンテンツデータ取得処理が行われ、制御部11は、ステップS52において、レプリカの1回のダウンロードにおけるデータ量を、システム利用制限無時よりも減らす(図11(B))ように設定(レプリカの送信(ダウンロード)間隔は同じ)する。これにより、コンテンツデータのレプリカ全体としての取得(ダウンロード)速度が低下し、ネットワーク8及びルータの負荷を抑えることができる。なお、ステップS52において、レプリカの送信(ダウンロード)間隔が、システム利用制限無時よりも長く設定(図11に示す送信間隔T1より長く設定)されるように構成しても良い。
【0111】
以上のシステム利用制限有時の処理が行われた後、ステップS7に進む。
【0112】
次に、ステップS7では、制御部11は、他のノードNnから送信されたメッセージを受信したか否かを判別し、当該メッセージを受信していない場合には(ステップS7:NO)、ステップS9に進み、当該メッセージを受信した場合には(ステップS7:YES)、ステップS8に進み、メッセージ受信処理を行う。
【0113】
当該メッセージ受信処理では、図10に示すように、制御部11は、受信されたメッセージがコンテンツ所在問合せメッセージであるか否かを判別し(ステップS81)、コンテンツ所在問合せメッセージでない場合には(ステップS81:NO)、ステップS86に進む。一方、コンテンツ所在問合せメッセージである場合には(ステップS81:YES)、制御部11は、所在問合せ対象のインデックス情報(コンテンツ所在問合せメッセージに含まれるコンテンツIDに対応するインデックス情報)がインデックスキャッシュに記憶されているか否かを判別し(ステップS82)、記憶されている場合には(ステップS82:YES)、当該インデックス情報を該コンテンツ所在問合せメッセージの送信元であるユーザノードに対して送信し(ステップS83)、図6の処理に戻る。一方、当該インデックス情報が記憶されていない場合には(ステップS82:NO)、制御部11は、自己(自ノードNn)がルートノードであるか否かを判別(つまり、自己のルーティングテーブルを参照して、当該コンテンツ所在問合せメッセージに含まれるコンテンツIDと最も近いノードIDが自分であるか否かを判別)し(ステップS84)、自己がルートノードでない(つまり、中継ノードである)場合には(ステップS84:NO)、ステップS85に進み、自己がルートノードである場合には(ステップS84:YES)、図6の処理に戻る。
【0114】
ステップS85では、制御部11は、受信されたコンテンツ所在問合せメッセージを、自己のDHTを用いたルーティングテーブルにしたがって他のノードNn(つまり、コンテンツ所在問合せメッセージに含まれるコンテンツIDと最も近いノードIDを有するノードNn)に対して転送(当該コンテンツIDのルートノードに向けて送出)し、図6の処理に戻る。
【0115】
ステップS86では、制御部11は、受信されたメッセージがコンテンツ投入要求メッセージであるか否かを判別し、コンテンツ投入要求メッセージでない場合には(ステップS86:NO)、ステップS91に進む。一方、コンテンツ投入要求メッセージである場合には(ステップS86:YES)、上述したステップS3と同様、ユーザノードとしてシステム利用制限有無判定処理(図7(A)〜(E)に示す処理の何れか、又はその組み合わせ)が行われる(ステップS87)。
【0116】
次いで、制御部11は、システム利用制限有無判定処理からの返り値が“T”であるか否かを判別し(ステップS88)、返り値が“T”である場合には(ステップS88:YES)、上述したステップS5と同様、コンテンツ取得処理を行い(ステップS89)、返り値が“T”でない(返り値が“F”である)場合には(ステップS88:NO)、上述したステップS6と同様、システム利用制限有時の処理を行い(ステップS90)、図6の処理に戻る。
【0117】
ステップS91では、制御部11は、受信されたメッセージがコンテンツ送信要求メッセージであるか否かを判別し、コンテンツ送信要求メッセージでない場合には(ステップS91:NO)、ステップS96に進む。一方、コンテンツ送信要求メッセージである場合には(ステップS91:YES)、コンテンツ保持ノードとしてシステム利用制限有無判定処理(図7(A)〜(E)に示す処理の何れか、又はその組み合わせ)が行われる(ステップS92)。
【0118】
なお、コンテンツ保持ノードとしてシステム利用制限有無判定処理が行われる場合、ユーザノードとしてシステム利用制限有無判定処理が行われる場合よりも、図7(B)〜(E)における基準(基準量、基準数、基準時間、基準値)を緩く設定するように構成しても良い。例えば、ユーザノードとして図7(E)の処理が行われる場合、基準値を例えば最大消費帯域の60%とするのに対し、コンテンツ保持ノードとして図7(E)の処理が行われる場合、基準値を例えば最大消費帯域の80%とする。コンテンツ保持ノードとして動作している(アップロードしている)間は、制限を緩めることにより、ユーザノードのダウンロードがスムーズに行えるためである。
【0119】
次いで、制御部11は、システム利用制限有無判定処理からの返り値が“T”であるか否かを判別し(ステップS93)、返り値が“T”である場合には(ステップS93:YES)、コンテンツデータ提供(アップロード)処理を行い(ステップS94)、図6の処理に戻る。当該コンテンツ提供処理においては、上述したように、受信されたコンテンツ送信要求メッセージにより指定されたコンテンツデータのレプリカが、ブロック毎に、当該コンテンツ送信要求メッセージの送信元のユーザノードに対して順次送信されることになる。
【0120】
一方、返り値が“T”でない場合には(ステップS93:NO)、制御部11は、当該コンテンツ送信要求メッセージの送信元のユーザノードに対して、コンテンツデータのレプリカを送信(提供)できないことを示す提供不可メッセージを通信部20等を介して送信し(ステップS95)、図6の処理に戻る。
【0121】
ステップS96では、制御部11は、受信されたメッセージがパブリッシュメッセージであるか否かを判別し、パブリッシュメッセージでない場合には(ステップS96:NO)、ステップS100に進む。一方、パブリッシュメッセージである場合には(ステップS96:YES)、受信されたパブリッシュメッセージに含まれるIPアドレス等及びコンテンツIDの組を含むインデックス情報を登録(インデックスキャッシュ領域に記憶)する(ステップS97)。
【0122】
次いで、制御部11は、上記ステップS84と同様、自己がルートノードであるか否かを判別し(ステップS98)、自己がルートノードでない(つまり、中継ノードである)場合には(ステップS98:NO)、ステップS99に進み、自己がルートノードである場合には(ステップS98:YES)、図6の処理に戻る。
【0123】
ステップS99では、制御部11は、受信されたパブリッシュメッセージを、自己のルーティングテーブルにしたがって他のノードNn(つまり、パブリッシュメッセージに含まれるコンテンツIDと最も近いノードIDを有するノードNn)に対して転送(当該コンテンツIDのルートノードに向けて送出)し、図6の処理に戻る。
【0124】
なお、ステップS100における、その他のメッセージ受信処理においては、その他のメッセージ(例えば、参加メッセージ)が受信された場合の処理が行われる。
【0125】
次に、図6に示すステップS9では、上述したステップS3と同様、システム利用制限有無判定処理が行われる。
【0126】
そして、制御部11は、システム利用制限有無判定処理からの返り値が“T”であるか否かを判別し(ステップS10)、返り値が“T”である場合(つまり、基準が満たされシステム利用制限無になったとき)には(ステップS10:YES)、ステップS11に進み、返り値が“T”でない場合には(ステップS10:NO)、ステップS13に進む。
【0127】
ステップS11では、制御部11は、コンテンツ登録リストにコンテンツデータのコンテンツ名及びコンテンツIDが登録(上記ステップS6又はS90にて登録)されているか否かを判別し、登録されていない場合には(ステップS11:NO)、ステップS13に進み、登録されている場合には(ステップS11:YES)、上述したステップS5と同様、コンテンツデータ取得処理を行う(ステップS12)。つまり、システム利用制限有無判定処理(ステップS3又はステップS87)により基準を満たさない(返り値が“F”)場合、制御部11は、コンテンツ取得リストに登録して基準を満たすようになるまで待機し、ステップS9のシステム利用制限有無判定処理で基準を満たすようになったときに、コンテンツ保持ノードから当該コンテンツデータのレプリカを取得(ダウンロード)して保存することになる。
【0128】
なお、ステップS13におけるその他の処理では、例えば、ユーザからの入力部21を介した指示に応じた処理等が行われ、ステップS1に戻る。
【0129】
以上説明したように、上記実施形態によれば、ユーザノードがコンテンツデータの保存要求(保存要求情報)を受け付けた場合、当該保存要求情報に応じて、当該システムSの利用制限有無を判定するために、ネットワーク8の負荷度合いを決定する上記基準を満たすか否かを判別し、当該基準を満たす場合(例えば、現在時刻がコンテンツ分散保存システムSの利用禁止時間帯にない場合、上記ルータの負荷量が予め設定された基準量を超えていない場合、上記ルータに接続されているノードNnの総数が予め設定された基準数を超えていない場合、他のノードNnからの応答時間が予め設定された基準時間を超えていない場合、及び自ノードNnが接続されている回線の消費帯域が予め設定された基準値を超えていない場合、の何れか一つの場合、或いはこれらの2つ以上の場合を満たす場合)に(当該システムSの利用制限有と判定)、当該保存要求情報に係るコンテンツデータのコンテンツID及び自己のIPアドレス等を含むコンテンツ所在問合せ(検索)メッセージ(クエリ)をルートノードに向けて送出し、そのレプリカを保存しているコンテンツ保持ノードである他のノードNnから当該コンテンツデータのレプリカをネットワーク8を介して取得して保存するように構成したので、ネットワーク8を構成する1つの回線にルータ等の中継装置を通じて多くのノードNnが接続している(1つの回線を共用している)場合であっても、ネットワーク及びルータ等の中継装置の負荷を低減させることができる。また、ネットワークが混み合っているときに、他のノードNnのユーザに迷惑をかけることを回避することができる。
【0130】
また、コンテンツ保持ノードが、ユーザノードである他のノードNnからコンテンツデータの提供要求を示す提供要求情報を受信した場合も、当該提供要求情報に応じて、ネットワーク8の負荷度合いを決定する基準を満たすか否かを判別し、上記基準を満たす場合に(当該システムSの利用制限有と判定)、当該提供要求情報に係るコンテンツデータのレプリカを、上記ユーザノードに対してネットワーク8を介して送信するように構成したので、ネットワーク8を構成する1つの回線にルータ等の中継装置を通じて多くのノードNnが接続している(1つの回線を共用している)場合であっても、ネットワーク及びルータ等の中継装置の負荷を低減させることができる。
【0131】
また、各ノードNnは、コンテンツ管理サーバからコンテンツ投入要求(保存要求)メッセージを受信した場合に、ネットワーク8の負荷度合いを決定する基準を満たさないときも、当該コンテンツデータのレプリカの投入を極力妨げないようにすることができる。
【0132】
なお、上記実施形態におけるコンテンツ分散保存システムSは、DHTを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。
【図面の簡単な説明】
【0133】
【図1】本実施形態に係るコンテンツ分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
【図2】ノードN2が保持するDHTを用いたルーティングテーブルの一例を示す図である。
【図3】DHTのID空間の一例を示す概念図である。
【図4】ユーザノードから送出されたコンテンツ所在問合せ(検索)メッセージの流れの一例を、DHTのID空間にて示した概念図である。
【図5】ノードNnの概要構成例を示す図である。
【図6】ノードNnの制御部11におけるメイン処理を示すフローチャートである。
【図7】図6及び図10におけるシステム利用制限有無判定処理の詳細を示すフローチャートである。
【図8】図6及び図10におけるコンテンツデータ取得処理の詳細を示すフローチャートである。
【図9】図6及び図10におけるシステム利用制限有り時の詳細を示すフローチャートである。
【図10】図6におけるメッセージ受信処理の詳細を示すフローチャートである。
【図11】コンテンツデータのレプリカの各ブロックが送信間隔T1でコンテンツ保持ノードから送信される様子を示す図である。
【符号の説明】
【0134】
8 ネットワーク
9 オーバーレイネットワーク
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
Nn ノード
S コンテンツ分散保存システム
【特許請求の範囲】
【請求項1】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムに含まれる前記ノード装置であって、
前記コンテンツデータの保存要求を示す保存要求情報を受け付ける保存要求受付手段と、
前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、
前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存するコンテンツデータ取得手段と、
を備えることを特徴とするノード装置。
【請求項2】
請求項1に記載のノード装置において、
前記基準判別手段は、現在時刻が、前記コンテンツ分散保存システムにおける、予め設定された利用禁止時間帯にあるか否かを判別し、
前記コンテンツデータ取得手段は、現在時刻が前記利用禁止時間帯にない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項3】
請求項1に記載のノード装置において、
自ノード装置を含む複数のノード装置及び前記ネットワークの夫々に接続されデータを中継する中継装置の負荷量を示す負荷情報を取得する負荷情報取得手段を更に備え、
前記基準判別手段は、前記取得された負荷情報に示された負荷量が、予め設定された基準量を超えているか否かを判別し、
前記コンテンツデータ取得手段は、前記負荷量が前記基準量を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項4】
請求項1に記載のノード装置において、
自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置に接続されている前記ノード装置の数を示すノード数情報を取得するノード数情報取得手段を更に備え、
前記基準判別手段は、前記取得されたノード数情報に示されたノード装置の数が、予め設定された基準数を超えているか否かを判別し、
前記コンテンツデータ取得手段は、前記ノード装置の数が前記基準数を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項5】
請求項1に記載のノード装置において、
前記ネットワークを介して他の装置からの応答時間を計測する計測手段を更に備え、
前記基準判別手段は、前記計測された応答時間が、予め設定された基準時間を超えているか否かを判別し、
前記コンテンツデータ取得手段は、前記応答時間が前記基準時間を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項6】
請求項1に記載のノード装置において、
前記ネットワークの消費帯域を示す消費帯域情報を取得する消費帯域情報取得手段を更に備え、
前記基準判別手段は、前記取得された消費帯域が、予め設定された基準値を超えているか否かを判別し、
前記コンテンツデータ取得手段は、前記消費帯域が前記基準値を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項7】
請求項1乃至6の何れか一項に記載のノード装置において、
前記基準を満たさない場合、前記コンテンツデータ取得手段は、当該基準を満たすようになるまで待機し、当該基準を満たすようになったときに、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項8】
請求項1乃至6の何れか一項に記載のノード装置において、
前記基準を満たさない場合、前記コンテンツデータ取得手段は、単位時間当たりの前記コンテンツデータの取得速度を低下させて、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項9】
請求項1乃至6の何れか一項に記載のノード装置において、
前記基準を満たさない場合には、他のノード装置に対して前記保存要求情報を転送する保存要求情報転送手段を更に備えることを特徴とするノード装置。
【請求項10】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムに含まれる前記ノード装置であって、
他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する提供要求受信手段と、
前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、
前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信するコンテンツデータ提供手段と、
を備えることを特徴とするノード装置。
【請求項11】
請求項10に記載のノード装置において、
前記基準判別手段は、現在時刻が、前記コンテンツ分散保存システムにおける、予め設定された利用禁止時間帯にあるか否かを判別し、
前記コンテンツデータ提供手段は、現在時刻が前記利用禁止時間帯にない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とするノード装置。
【請求項12】
請求項10に記載のノード装置において、
自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置の負荷量を示す負荷情報を取得する負荷情報取得手段を更に備え、
前記基準判別手段は、前記取得された負荷情報に示された負荷量が、予め設定された基準量を超えているか否かを判別し、
前記コンテンツデータ提供手段は、前記負荷量が前記基準量を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とするノード装置。
【請求項13】
請求項10に記載のノード装置において、
自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置に接続されている前記ノード装置の数を示すノード数情報を取得するノード数情報取得手段を更に備え、
前記基準判別手段は、前記取得されたノード数情報に示されたノード装置の数が、予め設定された基準数を超えているか否かを判別し、
前記コンテンツデータ提供手段は、前記ノード装置の数が前記基準数を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とするノード装置。
【請求項14】
請求項10に記載のノード装置において、
前記ネットワークを介して他の装置からの応答時間を計測する計測手段を更に備え、
前記基準判別手段は、前記計測された応答時間が、予め設定された基準時間を超えているか否かを判別し、
前記コンテンツデータ提供手段は、前記応答時間が前記基準時間を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とするノード装置。
【請求項15】
請求項10に記載のノード装置において、
前記ネットワークの消費帯域を示す消費帯域情報を取得する消費帯域情報取得手段を更に備え、
前記基準判別手段は、前記取得された消費帯域が、予め設定された基準値を超えているか否かを判別し、
前記コンテンツデータ提供手段は、前記消費帯域が前記基準値を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とするノード装置。
【請求項16】
コンピュータを、請求項1乃至15の何れか一項に記載のノード装置として機能させることを特徴とするノード処理プログラム。
【請求項17】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムであって、
前記ノード装置は、
前記コンテンツデータの保存要求を示す保存要求情報を受け付ける保存要求受付手段と、
前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、
前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存するコンテンツデータ取得手段と、
を備えることを特徴とするコンテンツ分散保存システム。
【請求項18】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムにおけるコンテンツデータ取得方法であって、
前記ノード装置が、
前記コンテンツデータの保存要求を示す保存要求情報を受け付ける工程と、
前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する工程と、
前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存する工程と、
を備えることを特徴とするコンテンツデータ取得方法。
【請求項19】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムであって、
前記ノード装置は、
他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する提供要求受信手段と、
前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、
前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信するコンテンツデータ提供手段と、
を備えることを特徴とするコンテンツ分散保存システム。
【請求項20】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムにおけるコンテンツデータの提供方法であって、
前記ノード装置が、
他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する工程と、
前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する工程と、
前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信する工程と、
を備えることを特徴とするコンテンツデータの提供方法。
【請求項1】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムに含まれる前記ノード装置であって、
前記コンテンツデータの保存要求を示す保存要求情報を受け付ける保存要求受付手段と、
前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、
前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存するコンテンツデータ取得手段と、
を備えることを特徴とするノード装置。
【請求項2】
請求項1に記載のノード装置において、
前記基準判別手段は、現在時刻が、前記コンテンツ分散保存システムにおける、予め設定された利用禁止時間帯にあるか否かを判別し、
前記コンテンツデータ取得手段は、現在時刻が前記利用禁止時間帯にない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項3】
請求項1に記載のノード装置において、
自ノード装置を含む複数のノード装置及び前記ネットワークの夫々に接続されデータを中継する中継装置の負荷量を示す負荷情報を取得する負荷情報取得手段を更に備え、
前記基準判別手段は、前記取得された負荷情報に示された負荷量が、予め設定された基準量を超えているか否かを判別し、
前記コンテンツデータ取得手段は、前記負荷量が前記基準量を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項4】
請求項1に記載のノード装置において、
自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置に接続されている前記ノード装置の数を示すノード数情報を取得するノード数情報取得手段を更に備え、
前記基準判別手段は、前記取得されたノード数情報に示されたノード装置の数が、予め設定された基準数を超えているか否かを判別し、
前記コンテンツデータ取得手段は、前記ノード装置の数が前記基準数を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項5】
請求項1に記載のノード装置において、
前記ネットワークを介して他の装置からの応答時間を計測する計測手段を更に備え、
前記基準判別手段は、前記計測された応答時間が、予め設定された基準時間を超えているか否かを判別し、
前記コンテンツデータ取得手段は、前記応答時間が前記基準時間を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項6】
請求項1に記載のノード装置において、
前記ネットワークの消費帯域を示す消費帯域情報を取得する消費帯域情報取得手段を更に備え、
前記基準判別手段は、前記取得された消費帯域が、予め設定された基準値を超えているか否かを判別し、
前記コンテンツデータ取得手段は、前記消費帯域が前記基準値を超えていない場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項7】
請求項1乃至6の何れか一項に記載のノード装置において、
前記基準を満たさない場合、前記コンテンツデータ取得手段は、当該基準を満たすようになるまで待機し、当該基準を満たすようになったときに、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項8】
請求項1乃至6の何れか一項に記載のノード装置において、
前記基準を満たさない場合、前記コンテンツデータ取得手段は、単位時間当たりの前記コンテンツデータの取得速度を低下させて、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを取得して保存することを特徴とするノード装置。
【請求項9】
請求項1乃至6の何れか一項に記載のノード装置において、
前記基準を満たさない場合には、他のノード装置に対して前記保存要求情報を転送する保存要求情報転送手段を更に備えることを特徴とするノード装置。
【請求項10】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムに含まれる前記ノード装置であって、
他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する提供要求受信手段と、
前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、
前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信するコンテンツデータ提供手段と、
を備えることを特徴とするノード装置。
【請求項11】
請求項10に記載のノード装置において、
前記基準判別手段は、現在時刻が、前記コンテンツ分散保存システムにおける、予め設定された利用禁止時間帯にあるか否かを判別し、
前記コンテンツデータ提供手段は、現在時刻が前記利用禁止時間帯にない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とするノード装置。
【請求項12】
請求項10に記載のノード装置において、
自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置の負荷量を示す負荷情報を取得する負荷情報取得手段を更に備え、
前記基準判別手段は、前記取得された負荷情報に示された負荷量が、予め設定された基準量を超えているか否かを判別し、
前記コンテンツデータ提供手段は、前記負荷量が前記基準量を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とするノード装置。
【請求項13】
請求項10に記載のノード装置において、
自ノード装置を含む複数のノード装置及び前記ネットワークに接続されデータを中継する中継装置に接続されている前記ノード装置の数を示すノード数情報を取得するノード数情報取得手段を更に備え、
前記基準判別手段は、前記取得されたノード数情報に示されたノード装置の数が、予め設定された基準数を超えているか否かを判別し、
前記コンテンツデータ提供手段は、前記ノード装置の数が前記基準数を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とするノード装置。
【請求項14】
請求項10に記載のノード装置において、
前記ネットワークを介して他の装置からの応答時間を計測する計測手段を更に備え、
前記基準判別手段は、前記計測された応答時間が、予め設定された基準時間を超えているか否かを判別し、
前記コンテンツデータ提供手段は、前記応答時間が前記基準時間を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とするノード装置。
【請求項15】
請求項10に記載のノード装置において、
前記ネットワークの消費帯域を示す消費帯域情報を取得する消費帯域情報取得手段を更に備え、
前記基準判別手段は、前記取得された消費帯域が、予め設定された基準値を超えているか否かを判別し、
前記コンテンツデータ提供手段は、前記消費帯域が前記基準値を超えていない場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して送信することを特徴とするノード装置。
【請求項16】
コンピュータを、請求項1乃至15の何れか一項に記載のノード装置として機能させることを特徴とするノード処理プログラム。
【請求項17】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムであって、
前記ノード装置は、
前記コンテンツデータの保存要求を示す保存要求情報を受け付ける保存要求受付手段と、
前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、
前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存するコンテンツデータ取得手段と、
を備えることを特徴とするコンテンツ分散保存システム。
【請求項18】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムにおけるコンテンツデータ取得方法であって、
前記ノード装置が、
前記コンテンツデータの保存要求を示す保存要求情報を受け付ける工程と、
前記保存要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する工程と、
前記基準を満たす場合には、前記保存要求情報に係るコンテンツデータを保存している他のノード装置から当該コンテンツデータを前記ネットワークを介して取得して保存する工程と、
を備えることを特徴とするコンテンツデータ取得方法。
【請求項19】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムであって、
前記ノード装置は、
他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する提供要求受信手段と、
前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する基準判別手段と、
前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信するコンテンツデータ提供手段と、
を備えることを特徴とするコンテンツ分散保存システム。
【請求項20】
ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータが複数のノード装置に分散保存されたコンテンツ分散保存システムにおけるコンテンツデータの提供方法であって、
前記ノード装置が、
他のノード装置からの前記コンテンツデータの提供要求を示す提供要求情報を受信する工程と、
前記提供要求情報に応じて、前記ネットワークの負荷度合いを決定する基準を満たすか否かを判別する工程と、
前記基準を満たす場合には、前記提供要求情報に係るコンテンツデータを、前記他のノード装置に対して前記ネットワークを介して送信する工程と、
を備えることを特徴とするコンテンツデータの提供方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2008−236591(P2008−236591A)
【公開日】平成20年10月2日(2008.10.2)
【国際特許分類】
【出願番号】特願2007−76015(P2007−76015)
【出願日】平成19年3月23日(2007.3.23)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
【公開日】平成20年10月2日(2008.10.2)
【国際特許分類】
【出願日】平成19年3月23日(2007.3.23)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
[ Back to top ]