JP2010238160A - ノード装置、ノード処理プログラム及びコンテンツデータ保存方法 - Google Patents
ノード装置、ノード処理プログラム及びコンテンツデータ保存方法 Download PDFInfo
- Publication number
- JP2010238160A JP2010238160A JP2009088130A JP2009088130A JP2010238160A JP 2010238160 A JP2010238160 A JP 2010238160A JP 2009088130 A JP2009088130 A JP 2009088130A JP 2009088130 A JP2009088130 A JP 2009088130A JP 2010238160 A JP2010238160 A JP 2010238160A
- Authority
- JP
- Japan
- Prior art keywords
- node
- content
- content data
- node device
- storage system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】システムへの参加当初から、コンテンツのレプリカをノード装置に自動的に保存させ、システムに対する貢献度を短時間で向上させることが可能なノード装置、ノード処理プログラム、及びコンテンツデータ保存方法を提供する。
【解決手段】コンテンツ分散保存システムへの参加処理が実行されたとき、コンテンツ分散保存システムに参加する何れかのノード装置のノード情報を取得するノード情報取得手段と、ノード情報取得手段により取得されたノード情報に基づいて、コンテンツ分散保存システムに参加する他のノード装置に対して、所定のコンテンツデータ取得条件に基づいてコンテンツデータの送信を要求するコンテンツデータ送信要求手段と、コンテンツデータ要求手段により要求されたコンテンツデータを取得するコンテンツデータ取得手段と、コンテンツデータ取得手段により他のノード装置から取得された前記コンテンツデータを記憶する記憶手段。
【選択図】図2
【解決手段】コンテンツ分散保存システムへの参加処理が実行されたとき、コンテンツ分散保存システムに参加する何れかのノード装置のノード情報を取得するノード情報取得手段と、ノード情報取得手段により取得されたノード情報に基づいて、コンテンツ分散保存システムに参加する他のノード装置に対して、所定のコンテンツデータ取得条件に基づいてコンテンツデータの送信を要求するコンテンツデータ送信要求手段と、コンテンツデータ要求手段により要求されたコンテンツデータを取得するコンテンツデータ取得手段と、コンテンツデータ取得手段により他のノード装置から取得された前記コンテンツデータを記憶する記憶手段。
【選択図】図2
Description
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))型の通信システムの技術分野に関する。
この種のピアツーピア型の通信システム(P2Pネットワーク)は、複数のノード装置により構成される。各種コンテンツのデータファイルは、複数のデータファイルの複製データ(以下、「レプリカ」という)として複数のノード装置に分散して保存(配置)させる。データファイルは、映画及び音楽などのデータファイルである。一般的には、各ノード装置間でレプリカを利用可能とした分散保存システムが知られている。これにより、対故障性やアクセスの分散性が高められている。このように分散保存されたレプリカの所在は、例えば特許文献1に開示されるような分散ハッシュテーブル(以下、DHT(Distributed Hash Table)という)を利用して効率良く検索可能になっている。
そして、上述のノード装置は、所望のコンテンツを取得するとき、当該コンテンツのレプリカの所在を検索(発見)するためのメッセージ(クエリ)が他のノード装置へ送出される。これにより、当該メッセージは、上記DHTにしたがって、当該コンテンツのレプリカの所在の管理元のノード装置に向かって転送される。そして、上記メッセージを送出したノード装置は、上記管理元のノード装置から上記レプリカの所在を示す情報を取得することになる。これにより、上記メッセージを送出したノード装置は、上記検索に係るコンテンツのレプリカを保存しているノード装置にアクセスすることができる。そして、当該レプリカを取得(ダウンロード)することができる。
一般的なピアツーピア型の通信システムでは、コンテンツのレプリカを取得したノード装置は、当該レプリカをキャッシュとして各種記憶手段(例えば、ハードディスク)に保存する。その場合、当該システムへの参加初期のノード装置は、コンテンツのレプリカを上述の記憶手段にキャッシュしていないため、システムに参加している他のノード装置の側から見ると、上述した新規参入ノード装置は、参入後にキャッシュが溜まるまでは、他のノード装置からのコンテンツのリクエストに応じることもできず、システムに対する貢献度が低いノード装置となっていた。
本発明は、以上の点等に鑑みてなされたものであり、システムへの参加当初から、コンテンツのレプリカをノード装置に自動的に保存させ、システムに対する貢献度を短時間で向上させることが可能なノード装置、ノード処理プログラム、及びコンテンツデータ保存方法を提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータを複数のノード装置に分散して保存させ、各前記ノード装置間で前記コンテンツデータを利用可能としたコンテンツ分散保存システムにおける前記ノード装置であって、前記コンテンツ分散保存システムに参加するための参加処理を実行する参加処理手段と、前記参加処理手段によりコンテンツ分散保存システムへの参加処理が実行されたとき、前記コンテンツ分散保存システムに参加する何れかのノード装置のノード情報を取得するノード情報取得手段と、前記ノード情報取得手段により取得されたノード情報に基づいて、前記コンテンツ分散保存システムに参加する他のノード装置に対して、所定のコンテンツデータ取得条件に基づいて前記コンテンツデータの送信を要求するコンテンツデータ送信要求手段と、前記コンテンツデータ要求手段により要求された前記コンテンツデータを取得するコンテンツデータ取得手段と、前記コンテンツデータ取得手段により前記他のノード装置から取得された前記コンテンツデータを記憶する記憶手段と、を有することを特徴とするノード装置である。
この発明によれば、コンテンツ分散保存システムへの参加当初から、記憶手段にコンテンツデータを自動的に記憶させることで、ノード装置のシステムに対する貢献度を短時間で向上させることが可能になる。
上記課題を解決するために、請求項2に記載の発明は、請求項1に記載のノード装置であって、前記コンテンツデータ送信要求手段は、前記他のノード装置に対して、コンテンツの評価値が所定値以上であるコンテンツデータの送信を要求することを特徴とするノード装置である。
この発明によれば、コンテンツの評価値の高いコンテンツデータを優先して取得し保存することができる。従って、評価値の高いコンテンツが記憶されることで、従って、利用頻度の高いコンテンツが記憶されることで、ノード装置のシステムに対する貢献度を短時間で向上させることが可能になる。
上記課題を解決するために、請求項3に記載の発明は、請求項2に記載のノード装置であって、前記コンテンツの評価値は、当該コンテンツの利用頻度に基づいて定められることを特徴とするノード装置である。
この発明によれば、利用頻度の高いコンテンツデータを優先して取得し保存することができる。従って、利用頻度の高いコンテンツが記憶されることで、ノード装置のシステムに対する貢献度を短時間で向上させることが可能になる。
上記課題を解決するために、請求項4に記載の発明は、請求項1乃至請求項3のいずれか一項に記載のノード装置であって、前記コンテンツデータ送信要求手段は、前記他のノード装置に対して、所定個数のコンテンツデータの送信を要求することを特徴とするノード装置である。
この発明によれば、ノード装置が希望する数のコンテンツデータを他のノード装置から取得できる。
上記課題を解決するために、請求項5に記載の発明は、請求項1乃至請求項4のいずれか一項に記載のノード装置であって、前記記憶手段に所定容量以上の空き容量があるか否かを判別する空き容量判別手段を有し、前記コンテンツデータ送信要求手段は、前記空き容量判別手段によって所定容量以上の空き容量があると判別された場合に、前記他のノード装置に対して前記コンテンツデータの送信を要求することを特徴とするノード装置である。
この発明によれば、新規参入時に貢献度が低く、記憶手段にコンテンツデータを記憶する余裕がある場合、ノード装置はコンテンツデータを取得することができる。新規参入ノードであっても、記憶手段に空き容量がないノード装置は、コンテンツを取得することがない。従って、空き容量に余裕のないノード装置の記憶手段が圧迫されず、ノード装置のシステムに対する貢献度を短時間で向上させることが可能になる。
上記課題を解決するために、請求項6に記載の発明は、請求項5に記載のノード装置であって、前記空き容量判別手段は、前記記憶手段の空き容量を計測する空き容量計測手段を有し、前記コンテンツデータ送信要求手段は、計測された空き容量に基づいて、前記他のノード装置に要求すべきコンテンツデータの前記所定個数を決定し、当該所定個数のコンテンツデータの送信を前記他のノード装置に要求することを特徴とするノード装置である。
この発明によれば、空き容量に適応した数のコンテンツデータを他のノード装置から取得することができる。
上記課題を解決するために、請求項7に記載の発明は、コンピュータを、請求項1乃至6の何れか一項に記載のノード装置として機能させることを特徴とするノード処理プログラムである。
上記課題を解決するために、請求項8に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータを複数のノード装置に分散して保存させ、各前記ノード装置間で前記コンテンツデータを利用可能としたコンテンツ分散保存システムにおける前記ノード装置が、前記コンテンツ分散保存システムに参加するための参加処理を実行する参加処理工程と、前記コンテンツ分散保存システムへの参加処理が実行されたときに、前記コンテンツ分散保存システムに参加する何れかのノード装置のノード情報を取得するノード情報取得工程と、取得されたノード情報に基づいて、前記コンテンツ分散保存システムに参加する他のノード装置に対して、所定のコンテンツデータ取得条件に基づいて前記コンテンツデータの送信を要求するコンテンツデータ送信要求工程と、要求された前記コンテンツデータを取得するコンテンツ取得工程と、取得された前記コンテンツデータを記憶手段に記憶させる記憶制御工程と、を有することを特徴とするコンテンツデータ保存方法である。
本発明によれば、コンテンツ分散保存システムへの参加当初から、コンテンツデータを記憶手段に自動的に記憶させることで、ノード装置のシステムに対する貢献度を短時間で手間なく向上させることが可能になる。
以下、本発明の実施形態を図面に基づいて説明する。
1.コンテンツ分散保存システムの構成及び動作概要
始めに、図1等を参照して、本実施形態に係るコンテンツ分散保存システムSの構成及び動作概要について説明する。
始めに、図1等を参照して、本実施形態に係るコンテンツ分散保存システムSの構成及び動作概要について説明する。
図1は、本実施形態に係るコンテンツ分散保存システムSにおける各ノード装置の接続態様の一例を示す図である。
図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には、データ(パケット)を転送するためのルータが、適宜挿入されているが図示を省略している。
このようなネットワーク8には、複数のノード装置(以下、「ノード」という)Nn(n=1,2,3・・・の何れか)が接続されている。また、各ノードNnには、固有の製造番号およびIP(Internet Protocol)アドレスが割り当てられている。そして、本実施形態に係るコンテンツ分散保存システムSは、これらのノードNnのうち、図1の上部枠100内に示すように、何れか複数のノードNnの参加により形成されるピアツーピア方式のネットワークシステムとなっている。
なお、図1の上部枠100内に示すネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク9である。オーバーレイネットワーク9は、論理的なネットワークであり、特定のアルゴリズム、例えば、DHTを利用したアルゴリズムにより実現される。そして、コンテンツ分散保存システムS(言い換えれば、オーバーレイネットワーク9)に参加している各ノードNnには、ノードID(ノード装置識別情報の一例)が割り当てられている。ノードIDは、所定桁数からなる固有の識別情報である。
また、ノードIDは、例えば、各ノードNnに個別に割り当てられたIPアドレス或いは製造番号を共通のハッシュ関数によりハッシュ化した値である。ノードIDは、ID空間に偏りなく分散して配置されることになる。ハッシュ関数としては、例えば、SHA−1等が用いられる。また、ハッシュ化した値は、例えば、bit長が160bitとなる。
また、各ノードNnは、夫々、DHTを用いたルーティングテーブルを保持している。このルーティングテーブルは、コンテンツ分散保存システムS上における各種メッセージの転送先を規定している。具体的には、ルーティングテーブルは、ID空間内で適度に離れたノードNnのノードID、アドレス情報を含むノード情報を複数登録している。アドレス情報は、IPアドレス及びポート番号等である。
ところで、コンテンツ分散保存システムSにおいては、データファイルの一例として、内容の異なる様々なコンテンツのレプリカが所定のファイル形式で複数のノードNnに分散して保存(格納)されている。レプリカは、各ノードNn間で利用可能になっている。例えば、ノードN5には、タイトルがXXXの映画のコンテンツのレプリカが保存されている。一方、ノードN3には、タイトルがYYYの映画のコンテンツのレプリカが保存されている。上述したように、各コンテンツのレプリカが、複数のノードNn(以下、「コンテンツ保持ノード」という)に分散されて保存されている。
また、これらのコンテンツのレプリカには、夫々、コンテンツ名(タイトル)及びコンテンツID等の情報が付加されている。このコンテンツIDは、コンテンツ毎に固有の識別情報(コンテンツ識別情報の一例)である。コンテンツIDは、例えば、コンテンツ名+任意の数値(或いは、コンテンツの先頭数バイトでも良い)が、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化されて生成される。或いは、システム管理者が、コンテンツ毎に一意のID値を付与しても良い。なお、コンテンツIDはノードIDと同一のID空間に配置されるよう、ノードIDと同一ビット長とする。
コンテンツ分散保存システムSに分散保存されているコンテンツのレプリカの所在を示すインデックス情報は、ルートノードに記憶される。ルートノードは、コンテンツのレプリカの所在を管理しているノードNnである。インデックス情報は、レプリカを保存したノードNnのノード情報とコンテンツのコンテンツID等の組を含む情報である。
このようなコンテンツ分散保存システムSにおいて、コンテンツデータがダウンロード(取得)される際には、コンテンツをリクエストするユーザノードが、コンテンツ分散保存システムSを運営する管理者の管理サーバ等から各ノードNnに配布されたカタログ情報を参照して、取得したいコンテンツのコンテンツIDを取得する。なお、カタログ情報には、コンテンツの属性情報が記載されており、この属性情報としては、例えば、コンテンツID、コンテンツの評価値(後に詳述する)コンテンツの公開期間(公開期限)、コンテンツ名(コンテンツが映画の場合、映画タイトル、コンテンツが楽曲の場合、楽曲タイトル、コンテンツが放送番組の場合、番組タイトル)、ジャンル(コンテンツが映画の場合、アクション、ホラー、コメディ、ラブストーリー等、コンテンツが音楽の場合、ロック、ジャズ、ポップス、クラシック等、コンテンツが放送番組の場合、ドラマ、スポーツ、ニュース、映画、音楽、アニメ、バラエティ等)、アーティスト名(コンテンツが音楽の場合の歌手、グループ等)、出演者(コンテンツが映画や放送番組の場合のキャスト)、監督名(コンテンツが映画の場合)等が挙げられる。
そして、ユーザノードは、取得を所望するコンテンツのコンテンツIDを含むクエリを生成する。ユーザノードは、クエリをルーティングテーブルに従ってルートノードに向けて送出する。ユーザノードは、ルートノードからコンテンツのレプリカを保持するコンテンツ保持ノードのアドレス情報を受信する。ユーザノードは、受信したノード情報に基づいて、コンテンツ保持ノードにアクセスする。ユーザノードはコンテンツ送信要求メッセージを送信し、コンテンツのレプリカをダウンロードする。或いは、クエリを受信したルートノードがコンテンツ保持ノードへコンテンツ送信要求メッセージを送信し、コンテンツ保持ノードがユーザノードへレプリカを送信することもできる。
なお、このようなDHTを用いたルーティングテーブルや、当該ルーティングテーブルを利用した各ノードNn間におけるメッセージの転送については、特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
図2及び図3は、ノードNnが、コンテンツ分散保存システムSへ参加する様子及びコンテンツデータ取得の様子を示す模式図である。
図2及び図3は、リング状のID空間にコンテンツ分散保存システムSに参加しているノードNnが各ノードIDに基づいて配される様子を示す。図中「○」はノードID(及び当該ノードIDを有するノードNn)を示す。ノードIDは、リング状に反時計回りで増加するものとする。ID空間の説明も特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
コンテンツ分散保存システムSへの参加は、先ず、参加していないノードNnが、参加している任意のノードNn(例えば、当該コンテンツ分散保存システムSに常時参加しているコンタクトノード)へ参加メッセージを送信することによって行われる。参加メッセージは参加要求を示すメッセージである。以下、新規参入ノードN25を例に図2及び図3を参照して説明する。
図2は、コンテンツ分散保存システムSへの参加処理を示す概念図である。
新規参入ノードNnは、コンテンツ分散保存システムSへの参加処理を行なう際に、他のノードNnのノード情報(アドレス情報又はIPアドレス)を取得する。そして、取得したノード情報に基づいて、当該他のノードNnからコンテンツデータを取得する。
なお、当該他のノードNnが知っているノードNnからコンテンツデータを取得する場合もある。ここで、「他のノードNnが知っているノードNn」とは、例えば、当該他のノードNnのルーティングテーブルに登録されているノードNnである。以下、詳細に説明する。
図2に示す例は、ノード情報の一例として、他のノードNnのアドレス情報が登録されているルーティングテーブルを取得する場合の例である。
<1>新規参入ノードN25がコンタクトノードであるノードN10へ参加メッセージを送信する。<2>新規参入ノードN25は、ノードN10からコンテンツ分散保存システムSに参加しているノードNnのルーティングテーブルを取得する。新規参入ノードN25は、当該ルーティングテーブルを記憶部(後述する)に記憶する。なお、新規参入ノードN25は、ルーティングテーブルだけでなく、カタログ情報やインデックスキャッシュ等の他の情報をノードN10から取得してもよい。カタログ情報やインデックスキャッシュ等の他の情報はコンタクトノード以外の他のノードNn(例えば、ルーティングテーブルにアドレス情報が登録されたノードNn)から取得されてもよい。
続いて、図3は、新規参入ノードNnによるキャッシュ充填処理を示す概念図である。
図3(A)に示すように、<3>新規参入ノードN25は、コンテンツ分散保存システムSへの参加処理後、コンテンツ分散保存システムSに参加しているノードNnに対してコンテンツデータの送信要求を行なう。具体的には、新規参入ノードN25は、コンタクトノードから取得したルーティングテーブルに登録されているアドレス情報に従って、各ノードNnに対して後述する「コンテンツデータ取得条件」を満たすコンテンツデータの送信要求を行なう。
その後、図3(B)に示すように、<4>各ノードNnからコンテンツデータを取得する。
なお、図3に示す例では、図示の簡単のため、新規参入ノードN25は、3つのノードNnに対してコンテンツデータ送信要求を行なっている。新規参入ノードN25は、3つのノードNnからコンテンツデータを取得して記憶部(後述する)にキャッシュ(記憶)する。また、図3に示すように、他のノードNnにはコンタクトノードが含まれる場合もある。
ここで、上記「コンテンツデータ取得条件」について説明する。
「コンテンツデータ取得条件」とは、例えば、“「コンテンツの評価値」が所定値以上のコンテンツ”とするものである。
上記「コンテンツの評価値」とは、例えば、コンテンツの利用頻度に基づく値である。「コンテンツの評価値」は、コンテンツが複製された回数(ダウンロードされた回数)や視聴された回数等に基づいて決定されたり、或いはユーザーによる採点により決定される。これら複製回数や視聴回数は、コンテンツ分散保存システムSを運営する管理者によって定期的に統計調査が行なわれる。各コンテンツの評価値に基づいて上記所定値が決定される。新規参入ノードNnが参加処理を実行する際に(言い換えれば、他のノードNnに対してコンテンツデータの送信を要求する前に)、決定された所定値に基づく「コンテンツデータ取得条件」が管理者の管理サーバから通知される。
そして、例えば、「コンテンツデータ取得条件」が、“コンテンツの評価値が「70」以上であるコンテンツ”とするものであれば、新規参入ノードNnは他のノードNnへ、評価値が「70」以上であるコンテンツのコンテンツデータの送信を要求する。
そして、送信要求を受けたノードNnは、自己が保持するコンテンツデータのうち、コンテンツ評価値が「70」以上であるコンテンツデータを新規参入ノードNnに対して送信する。
なお、「コンテンツの評価値」は、コンテンツの利用頻度のみならず、コンテンツの予測利用頻度に基づく値であってもよい。例えば、コンテンツが映画である場合には、映画の原作となった書籍の売り上げやテレビドラマの視聴率が高い場合には、当該映画のコンテンツも利用される確率(予測利用頻度)が高いものと予測できる。
また、「コンテンツデータ取得条件」は、カタログ情報に含まれてもよい。この場合も、新規参入ノードNnはカタログ情報を受信することにより「コンテンツデータ取得条件」を知ることができる。或いは、新規参入ノードNnが、他のノードNnに対して、「コンテンツデータ取得条件」を満たすコンテンツのコンテンツデータを送信するよう要求しても良い。この場合、送信要求を受けたノードNnは、カタログ情報を参照する。送信要求を受けたノードNnは、新規参入ノードNnに「コンテンツデータ取得条件」を満たすコンテンツのコンテンツデータを送信するよう構成することもできる。
以上により、新規参入ノードNnは、コンテンツ分散保存システムSへの参加当初から、コンテンツデータを自動的にキャッシュ(記憶)することができるので、コンテンツ分散保存システムSに対する貢献度を短時間で手間なく向上させることができる。
2.ノードNnの構成及び機能
次に、図4を参照して、ノードNnの構成及び機能について説明する。
次に、図4を参照して、ノードNnの構成及び機能について説明する。
図4は、ノードNnの概要構成例を示すブロック図である。
各ノードNnは、制御部11と、記憶部12と、バッファメモリ13と、デコーダ部14と、映像処理部15と、表示部16と、音声処理部17と、スピーカ18と、通信部20と、入力部21とから構成される。制御部11、記憶部12、バッファメモリ13、デコーダ部14、通信部20、及び入力部21はバス22を介して相互に接続されている。
制御部11は、演算機能を有するCPU,作業用RAM,各種データおよびプログラムを記憶するROM等から構成される。制御部11は、本実施形態のコンピュータとして機能する。記憶部12は、各種データ及び各種プログラム等を記憶保存(格納)するためを記憶するハードディスク等から構成される。例えば、記憶部12は、コンテンツデータ、ルーティングテーブルを記憶する。バッファメモリ13は、受信されたコンテンツデータ等を一時蓄積する。デコーダ部14は、エンコードされたビデオデータ(映像情報)およびオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)する。コンテンツが映像や音声を含む場合に、デコーダ部14は、コンテンツのレプリカに含まれるエンコードされたビデオデータおよびオーディオデータ等をデコードする。映像処理部15は、デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する。表示部16は、映像処理部15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等である。音声処理部17は、上記デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する。スピーカ18は、音声処理部17から出力されたオーディオ信号を音波として出力する通信部20は、ネットワーク8を通じて他のノードNn等間の情報の通信制御を行なう。入力部21は、ユーザーからの指示を受け付け、指示に応じた指示信号を制御部11へ通信する。入力部21は、例えば、キーボード、マウス、或いは、操作パネル等である。
なお、ノードNnとしては、パーソナルコンピュータ、STB(Set Top Box)、通信カラオケ装置、或いは、TV受信機等が適用可能である。
記憶部12には、当該ノードNn自身のアドレス情報が記憶されており、当該ノードNnが、コンテンツ分散保存システムSに参加した後は、ノードIDも記憶される。
また、コンテンツ分散保存システムSへ参加後は、記憶部12には、「キャッシュ充填処理」(後述する)により他のノードNnから取得したコンテンツデータがキャッシュ(記憶)される。
更に、記憶部12は、保存コンテンツ管理テーブルを記憶する。保存コンテンツ管理テーブルは、記憶部12に保存(記録)しているコンテンツのレプリカに関する情報(タイトル、コンテンツID等)を登録するための情報である。また記憶部12は、インデックス情報をインデックスキャッシュとして記憶する。インデックス情報は、自ノードNnが所在を管理するコンテンツの保持ノードであるノードNnのノード情報と当該コンテンツのコンテンツIDの組が含まれる情報である。
このような構成において、制御部11は、CPUが記憶部12等に記憶されたプログラムを読み出して実行することにより、全体を統括制御する。ノードNnがシステムS1又はS2へ参加して、プログラムが実行されることで、上述したユーザノード、中継ノード、ルートノード、コンテンツ保持ノードの少なくとも何れか一つのノードとしての処理を行なうようになっている。
また、制御部11は、本発明のノード処理プログラムを実行することにより、本発明における参加処理手段、ノード情報取得手段、コンテンツデータ送信要求手段、コンテンツデータ取得手段、記憶手段、空き容量判別手段、空き容量計測手段等として機能する。なお、上記ノード処理プログラムは、例えば、ネットワーク8上の所定のサーバからダウンロードされるようにしてもよいし、例えば、CD−ROM等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしても良い。
3.ノードNnの処理
ノードNnにおける処理を、図を参照して、詳しく説明する。ここでは、新規参入ノードNnが、ノード情報の一例であるアドレス情報を(ルートノードとして)取得する。新規参入ノードNnが、当該アドレス情報にかかるノードNnへコンテンツデータの送信要求を直接行なう場合について説明する。
ノードNnにおける処理を、図を参照して、詳しく説明する。ここでは、新規参入ノードNnが、ノード情報の一例であるアドレス情報を(ルートノードとして)取得する。新規参入ノードNnが、当該アドレス情報にかかるノードNnへコンテンツデータの送信要求を直接行なう場合について説明する。
3−1.キャッシュ充填処理
図5は、ノードNnにおける制御部11のキャッシュ充填処理を示すフローチャートである。コンテンツ分散保存システムSへの参加処理(図2参照)が実行された後に制御部11による制御に基づいて開始される処理である。なお、当該キャッシュ充填処理は、本発明のノード処理プログラムの一部である。
図5は、ノードNnにおける制御部11のキャッシュ充填処理を示すフローチャートである。コンテンツ分散保存システムSへの参加処理(図2参照)が実行された後に制御部11による制御に基づいて開始される処理である。なお、当該キャッシュ充填処理は、本発明のノード処理プログラムの一部である。
先ず、制御部11は、記憶部12に所定容量以上の空き容量が有るか否かを判別する(ステップS10)。所定容量は、記憶部12の記憶容量等に基づいて定められる。例えば、記憶部12の記憶容量の50%等を所定容量とする。
判別の結果、空き容量がない場合(ステップS10:No)には、制御部11は処理を終了する。空き容量がある場合(ステップS10:Yes)には、制御部11は記憶部12に記憶されているルーティングテーブルに基づいてコンテンツデータを取得する処理を行なう(ステップS11〜ステップS22)。この処理は、ルーティングテーブルに登録されたアドレス情報に従い、当該アドレス情報に係る他のノードNnに対して順にコンテンツデータ取得要求を行ない、コンテンツデータを取得する処理である。
ステップS11〜ステップS22の処理は、ステップS22で終了条件を満たすまで繰り返し行なわれる。そして、後述するステップS18で所定容量以上のコンテンツデータを取得したときに、コンテンツデータの取得処理を終了する。
先ず、ステップS12にて、制御部11は、ルーティングテーブルに登録されたアドレス情報を1つづつ取得し、各アドレス情報に係るノードNn(以下、「取得要求先ノードNn」と言う。)にアクセスしてコンテンツデータを取得する。
具体的には、先ず、制御部11は、最初のアドレス情報をルーティングテーブルから取得する。例えば、最初のアドレス情報は、図2に示すルーティングテーブルのレベル1の一番左に登録されたアドレス情報である。そして、制御部11は、取得されたアドレス情報に係るノードNn(取得要求先ノードNn)から、「コンテンツデータ取得条件」を満たすコンテンツのコンテンツデータの数(以下、「コンテンツ取得数」と言う。)を取得する(ステップS12)。そして、制御部11は、取得要求先ノードNnへ「コンテンツデータ取得条件」の情報を送信する。このとき、「コンテンツデータ取得条件」と共に、当該取得条件を満たすコンテンツのコンテンツデータをいくつ保存しているかを取得要求先ノードNnへ問い合わせる。そして、制御部11は、取得要求先ノードNnから当該取得条件を満たすコンテンツ取得数を取得する。
なお、カタログ情報に「コンテンツデータ取得条件」を含む場合には、取得要求先ノードNnに対して「コンテンツデータ取得条件」の情報は送信しなくともよい。
次に、制御部11は、取得要求先ノードNnからコンテンツデータを取得する「コンテンツデータ取得処理」を行なう(ステップS13〜ステップS19)。「コンテンツデータ取得処理」は、ステップS12で取得したコンテンツ取得数回行なわれる。例えば、コンテンツ取得数が「1」であれば、ステップS13〜ステップS19の処理が1回行なわれ、コンテンツ取得数が「10」であれば、ステップS13〜ステップS19の処理が10回行なわれる。なお、後述するステップS18で所定容量以上のコンテンツデータを取得した場合には、取得要求先ノードNnに対する「コンテンツデータ取得処理」は終了する。なお、コンテンツ取得数が「0」であれば、制御部11は、取得要求先ノードNnに対する「コンテンツデータ取得処理」は終了し、ステップS21に移行する。
続いて、制御部11は、取得要求先ノードNnへ次の取得候補となる候補コンテンツIDを要求する。そして、制御部11は、取得要求先ノードNnから候補コンテンツIDを取得する(ステップS14)。なお、最初の(1回目の)「コンテンツデータ取得処理」である場合には、制御部11は、取得要求先ノードNnへ最初の取得候補となる候補コンテンツIDを通知するよう要求する。そして、制御部11は、取得要求先ノードNnから最初の取得候補となる候補コンテンツIDを取得する。例えば、ステップS12で取得したコンテンツ取得数が「M」(M≧1)であって、当該取得要求先ノードNnに対する最初の(1回目の)「コンテンツデータ取得処理」であれば、取得要求先ノードNnに対して「1番評価値が高いコンテンツのコンテンツID」を通知するよう要求する。
2回目のコンテンツデータ取得処理であれば、取得要求先ノードNnに対して2番目に評価値が高いコンテンツのコンテンツIDを候補コンテンツIDとして送信する。
このように、N(N≦M)回目の「コンテンツデータ取得処理」であれば、「N番目に評価値が高いコンテンツのコンテンツID」を候補コンテンツIDとして送信する。
次に、制御部11は、取得した候補コンテンツIDのコンテンツデータを記憶部12に既に記憶済みか否かを判定する(ステップS15)。
判定の結果、既に記憶済みであると判定された場合(ステップS15:Yes)には、制御部11はステップS19へ移行する。記憶済みでないと判定された場合(ステップS15:No)には、制御部11は、当該候補コンテンツIDにかかるコンテンツデータの送信を要求する。具体的には、制御部11は、取得要求先ノードNnへコンテンツデータ送信要求を送信する(ステップS16)。
そして、制御部11は、取得要求先ノードNnからコンテンツデータを取得し、記憶部12に記憶する(ステップS17)。
次に、制御部11は、記憶部12に所定容量以上のコンテンツデータを記憶したか否かを判定する(ステップS18)。所定容量は、例えば、ステップS10にて判断に利用した空き容量、または記憶部12の記憶容量等に基づいて定められる。例えば、記憶部12の記憶容量の50%以上のコンテンツデータを記憶したか否かを判定する。
判定の結果、所定容量以上のコンテンツデータを記憶していないと判定された場合(ステップS18:No)には、制御部11は、ステップS19に移行する。所定容量以上のコンテンツデータを記憶していると判定された場合(ステップS18:Yes)には、制御部11は、取得要求先ノードNnに初期取得完了通知を送信(ステップS20)して処理を終了する。
続いて、制御部11は、ステップS12で取得した「コンテンツ取得数」が表す回数分の「コンテンツデータ取得処理」を行なうまでステップS13〜ステップS19の処理を繰り返し行なう。制御部11は、「コンテンツ取得数」が表す回数分の「コンテンツデータ取得処理」を行なうと、取得要求先ノードNnに初期取得完了通知を送信(ステップS21)する。
取得要求先ノードNnに対する「コンテンツデータ取得処理」終了した後に、制御部11は、ステップS22に移行してルーティングテーブルに登録された全てのアドレス情報にかかる全てのノードNnに対して取得処理が終了したかを判定する(ステップS22)。判定の結果、終了していなければ、ステップS11に戻り、ステップS12にて次のノードNnのアドレス情報を取得する。この次のノードNnとは、例えば、図2に示すルーティングテーブルのレベル1の一番左から2番目に登録されたアドレス情報に係るノードNnである。そして、制御部11は、取得されたアドレス情報に係るノードNnを取得要求先ノードNnとし、取得要求先ノードNnからコンテンツ取得数を取得し、コンテンツデータ取得処理を行なう。
このように、ルーティングテーブルに登録されたアドレス情報に従い、当該アドレス情報に係るノードNnに対して順にコンテンツデータの取得処理を行なう。ルーティングテーブルのどのレベルのどの箇所に登録されているアドレスから行なってもよく、その順番は問わない。
そして、ステップS22にて、ルーティングテーブルに登録された全てのアドレス情報にかかる全てのノードNnに対してステップS11〜ステップS22の処理が行われたと判断されたときに、制御部11は処理を終了する。
3−2.コンテンツ分散保存システムSに参加後の処理
図6は、ノードNnにおける制御部11の処理を示すフローチャートである。ノードNnがコンテンツ分散保存システムSへ参加した後、上述した図5のフローチャートが実行される。図5に示すフローチャートの処理が終了した後に、制御部11は図6のフローチャートを実行する。
図6は、ノードNnにおける制御部11の処理を示すフローチャートである。ノードNnがコンテンツ分散保存システムSへ参加した後、上述した図5のフローチャートが実行される。図5に示すフローチャートの処理が終了した後に、制御部11は図6のフローチャートを実行する。
先ず、制御部11は、電源がオフとされたか否かを判定する(ステップS30)。電源がオフとされた場合(ステップS30:Yes)には、制御部11は処理を終了する。電源がオフとされていない場合(ステップS30:No)には、制御部11は、新規参入ノードNnから「コンテンツデータ取得条件」の情報と共に、当該取得条件を満たすコンテンツのコンテンツデータの数(コンテンツ取得数)の問い合わせがあるか否かを判定する(ステップS31)。問い合わせがあると判定された場合(ステップS31:Yes)には、制御部11は、問い合わせ元のノードNn(新規参入ノードNn)にコンテンツ取得数を通知する(ステップS32)。例えば、「コンテンツデータ取得条件」が、“コンテンツの評価値が「70」以上のコンテンツ”である場合には、制御部11は、記憶部12に記憶されているコンテンツデータのうち、評価値が「70」以上であるコンテンツの数を決定する。そして、制御部11は、コンテンツ取得数として、決定されたコンテンツの数を問い合わせ元のノードNnに通知する。
次いで、制御部11は、「コンテンツデータ送信処理」を行なう(ステップS33〜ステップS39)。当該「コンテンツデータ送信処理」は、当該ノードNnが上述した取得要求先ノードNnとして、新規参入ノードNnに対して行なう処理である。
先ず、制御部11は、電源がオフとされたか否かを判定する(ステップS34)。制御部11が電源がオフとされたと判定した場合(ステップS34:Yes)には、制御部11は処理を終了する。制御部11が電源がオフとされていないと判定した場合(ステップS34:No)には、制御部11は新規参入ノードNnから候補コンテンツIDの通知要求があるか否かを判定する(ステップS35)。制御部11が候補コンテンツIDの通知要求が無いと判定した場合(ステップS35:No)には、ステップS34へ移行する。
そして、制御部11が候補コンテンツIDの通知要求があると判定した場合(ステップS35:Yes)には、制御部11は次に評価値が高いコンテンツのコンテンツIDを新規参入ノードNnに送信する(ステップS36)。
例えば、コンテンツ取得数が「M」であって、最初の「コンテンツデータ送信処理」である場合、制御部11は、新規参入ノードNnノードへ「コンテンツデータ取得条件」を満たすコンテンツのうち、「1番評価値が高いコンテンツのコンテンツID」を候補コンテンツIDとして送信する。N(N≦M)回目の「コンテンツデータ送信処理」であれば、制御部11は、「N番目に評価値が高いコンテンツのコンテンツID」を候補コンテンツIDとして送信する。
続いて、制御部11は、コンテンツデータ送信要求を受信したか否かを判定する(ステップS37)。制御部11がコンテンツデータ送信要求を受信した場合(ステップS37:Yes)には、制御部11はコンテンツデータを新規参入ノードNnに送信する。(ステップS38)制御部11がコンテンツデータ送信要求を受信していないと判定した場合(ステップS37:No)には、制御部11はステップS39に移行する。
そして、新規参入ノードNnから、初期取得完了通知を受信するまで、制御部11はステップS33〜ステップS39の「コンテンツデータ送信処理」を繰り返し行なう。そして、し制御部11は初期取得完了通知を受信すると処理を終了する。
なお、ステップS31にて、コンテンツ取得数の問い合わせがない場合(ステップS31:No)には、制御部11はステップS40へ移行する。そして、制御部11はコンテンツ分散保存システムSに参加するノードNnとしてのその他の処理(例えば、ユーザノード、中継ノード、ルートノード、コンテンツ保持ノードとしての処理)を行なう(ステップS40)。
次いで、制御部11はステップS30へ移行する。
以上説明したように、新規参入ノードNnが、ルーティングテーブル内のアドレス情報を取得し、当該アドレス情報に基づいて他のノードNnに対してコンテンツデータの送信を要求する。新規参入ノードNnは、当該コンテンツデータを取得するので、新規参入ノードNnは、コンテンツ分散保存システムSへの参加当初から、コンテンツのコンテンツデータを自動的にキャッシュ(記憶)することができる。この結果、コンテンツ分散保存システムSに対する貢献度を短時間で手間なく向上させることができる。
さらに、本実施形態では「コンテンツデータ取得条件」を“コンテンツの評価値が所定値以上のコンテンツ”とした。本実施形態では「コンテンツデータ取得条件」満たすコンテンツデータを要求し、取得するよう構成した。そのため、例えば、利用頻度や予測利用頻度等に基づく評価値の高いコンテンツデータを優先して取得し保存することができる。
また、本実施形態では、上記ステップS10で、記憶部12に所定容量以上の空き容量が有るか否かを判定し、所定容量以上の空き容量がある場合にのみコンテンツデータの送信要求を行なうよう構成した。そのため、記憶部12に所定容量以上の空き容量があり、貢献度が低く、コンテンツデータを記憶する余裕がある場合にのみコンテンツデータの送信要求を行なうことができる。
これにより、参加当初であっても、記憶部12にコンテンツデータを既に記憶している場合等、コンテンツ分散保存システムSに対する貢献度が相当程度ある場合や、コンテンツデータは記憶されていないが、その他の情報やデータが記憶されているために、コンテンツデータを記憶する空き容量が無い場合にまでコンテンツデータの送信要求を行なうことを防ぐことができる。
なお、「参加当初であっても、コンテンツ分散保存システムSに対する貢献度が相当程度ある場合」とは、例えば、過去にコンテンツ分散保存システムSに参加していたときに取得したコンテンツデータが記憶部12に残存している場合である。
4.変型例1
上述した実施形態では、「コンテンツデータ取得条件」を“「コンテンツの評価値」が所定値以上であるコンテンツ”とした。変型例1は、「コンテンツデータ取得条件」を“所定個数のコンテンツ”とする。「所定個数」は、例えば、10個、100個等であり、新規参入ノードNnが、例えば、記憶部12の空き容量に基づいて決定したり、管理サーバがコンテンツ分散保存システムSに参加しているノードNnの数やコンテンツの数を鑑みて決定し「コンテンツデータ取得条件」として新規参入ノードNnに通知するものである。なお、カタログ情報に「コンテンツデータ取得条件」を含んでもよい。
上述した実施形態では、「コンテンツデータ取得条件」を“「コンテンツの評価値」が所定値以上であるコンテンツ”とした。変型例1は、「コンテンツデータ取得条件」を“所定個数のコンテンツ”とする。「所定個数」は、例えば、10個、100個等であり、新規参入ノードNnが、例えば、記憶部12の空き容量に基づいて決定したり、管理サーバがコンテンツ分散保存システムSに参加しているノードNnの数やコンテンツの数を鑑みて決定し「コンテンツデータ取得条件」として新規参入ノードNnに通知するものである。なお、カタログ情報に「コンテンツデータ取得条件」を含んでもよい。
ここでは、新規参入ノードNnが、記憶部12の空き容量を計測して「コンテンツデータ取得条件」に係る「所定個数」を決定する場合の実施例について説明する。なお、以下の説明において、上述した実施形態と同様の処理については説明を省略している。
4−1.ノードNnの処理
変型例1におけるノードNnの処理を、図を参照して、詳しく説明する。
変型例1におけるノードNnの処理を、図を参照して、詳しく説明する。
4−1−1.キャッシュ充填処理
図7は、ノードNnにおける制御部11のキャッシュ充填処理を示すフローチャートである。コンテンツ分散保存システムSへの参加処理(図2参照)が実行されたときに制御部11による制御に基づいて開始される処理である。
図7は、ノードNnにおける制御部11のキャッシュ充填処理を示すフローチャートである。コンテンツ分散保存システムSへの参加処理(図2参照)が実行されたときに制御部11による制御に基づいて開始される処理である。
先ず、制御部11は、記憶部12に所定容量以上の空き容量が有るか否かを判別する(ステップS50)。空き容量がない場合(ステップS50:No)には制御部11は処理を終了する。空き容量がある場合(ステップS50:Yes)には、制御部11は、記憶部12の空き容量を計測する。そして、制御部11は。計測された空き容量に基づいて取得すべきコンテンツ取得数(所定個数)を決定する(ステップS51)。
続いて、制御部11は、記憶部12に記憶されているルーティングテーブルに基づいてコンテンツデータを取得する処理を行なう(ステップS52〜ステップS63)。
先ず、制御部11は、取得要求先ノードNnに対して、コンテンツ初期取得を開始する旨を知らせる「コンテンツ初期取得開始通知」を送信する(ステップS53)。そして、制御部11は、取得要求先ノードNnからコンテンツデータを取得する「コンテンツデータ取得処理」を行なう(ステップS54〜ステップS61)。
以下、ステップS54乃至ステップS63の処理は、上述した実施形態におけるステップS13乃至ステップS22の処理と同様であるため、説明を省略する。
4−1−2.コンテンツ分散保存システムSに参加後の処理
図8は、ノードNnにおける制御部11の処理を示すフローチャートであり、コンテンツ分散保存システムSへ参加した後、上述した図7のフローチャートが実行される。図7の処理が終了した後に。制御部11は、図8のフローチャートの処理を開始する。
図8は、ノードNnにおける制御部11の処理を示すフローチャートであり、コンテンツ分散保存システムSへ参加した後、上述した図7のフローチャートが実行される。図7の処理が終了した後に。制御部11は、図8のフローチャートの処理を開始する。
先ず、制御部11は、電源がオフとされたか否かを判定する(ステップS70)。電源がオフとされた場合(ステップS70:Yes)には、制御部11は処理を終了する。電源がオフとされていない場合(ステップS70:No)には、制御部11は、新規参入ノードNnから「コンテンツ初期取得開始通知」を受信したか否かを判定する(ステップS71)。受信していない場合には(ステップS71:No)には、制御部11はステップS79へ移行する。
一方、「コンテンツ初期取得開始通知」を受信した場合(ステップS71:Yes)には、制御部11は「コンテンツデータ送信処理」を行なう(ステップS72〜ステップS78)。
なお、ステップS72乃至ステップS79の処理は、上述した実施形態におけるステップS33乃至ステップS40の処理と同様であるため、説明を省略する。
このように、「コンテンツデータ取得条件」を“所定個数のコンテンツ”としたので、新規参入ノードNnが希望する数のコンテンツを各取得要求先ノードNnから取得することができる。
また、計測した空き容量に基づいて所定個数を決定するので、空き容量に適応した数のコンテンツデータを各取得要求先ノードNnから取得することができる。
なお、上述した実施形態における「コンテンツデータ取得条件」と組み合わせてもよい。例えば、“コンテンツの評価値が所定値以上である所定個数のコンテンツ”をコンテンツデータ取得条件としてもよい。この場合、取得要求先ノードNnは、コンテンツの評価値が所定値以上であるコンテンツをK個保持しており、“所定個数”がK個よりも多い場合には、K個だけ送信してもよいし、或いは、コンテンツの評価値が所定値未満のコンテンツであっても“所定個数”を満たすまでコンテンツデータを送信しつづけるよう構成してもよい。
5.変型例2
上述した実施形態及びその変型例1では、新規参入ノードNnが、ルーティングテーブルに登録されているアドレス情報に係るノードNnに対してコンテンツデータの送信要求を行なった。
上述した実施形態及びその変型例1では、新規参入ノードNnが、ルーティングテーブルに登録されているアドレス情報に係るノードNnに対してコンテンツデータの送信要求を行なった。
他の変型例として、自己のノードID又は他のノード装置のノードIDをノード情報の一例として取得し、新規参入ノードNnが、取得したノードIDに向けてメッセージを送信し、メッセージが辿り着いた先のノードNn(取得要求先ノードNn)から、コンテンツデータを取得するよう構成することもできる。
変型例2では、ノードIDをランダムに(或いは規定のルールに従い)生成して取得し、当該ノードIDに向けてメッセージを送信するよう構成した。
「コンテンツデータ取得条件」は、“コンテンツの評価値が所定値以上のコンテンツ”でも、“所定個数のコンテンツ”でもよいが、ここでは前者とした場合の実施例について説明する。なお、以下の説明において、上述した実施形態と同様の処理については説明を省略している。
5−1.ノードNnの処理
変型例2におけるノードNnの処理を、図を参照して、詳しく説明する。
変型例2におけるノードNnの処理を、図を参照して、詳しく説明する。
5−1−1.キャッシュ充填処理
図9は、ノードNnにおける制御部11のキャッシュ充填処理を示すフローチャートである。コンテンツ分散保存システムSへの参加処理(図2参照)が実行されたときに、制御部11は図9のフローチャートの処理を開始する。
図9は、ノードNnにおける制御部11のキャッシュ充填処理を示すフローチャートである。コンテンツ分散保存システムSへの参加処理(図2参照)が実行されたときに、制御部11は図9のフローチャートの処理を開始する。
先ず、制御部11は、記憶部12に所定容量以上の空き容量が有るか否かを判別する(ステップS90)。空き容量がない場合(ステップS90:No)には、制御部11は処理を終了する。空き容量がある場合(ステップS90:Yes)には、制御部11は、ノードIDを生成して取得(ステップS91)する。
続いて、制御部11は、「コンテンツデータ取得条件」を満たすコンテンツのコンテンツデータをいくつ保存しているかを問い合わせる問い合わせメッセージを、ステップS91にて取得したノードIDに向けて、「コンテンツデータ取得条件」の情報と共に送信する。送信された問い合わせメッセージは、DHTによるルーティングによりノードNn間を転送されることとなる。
そして、制御部11は、問い合わせメッセージが辿り着いた先のノードNnから、「コンテンツデータ取得条件」を満たすコンテンツのコンテンツデータの数(コンテンツ取得数)を取得する(ステップS92)。以下、“問い合わせメッセージが辿り着いた先のノードNn”を、“取得要求先ノードNn”と言う。
なお、制御部11は、問い合わせメッセージを生成する際、自己のノードID及びIPアドレスを含む問い合わせメッセージを生成し、取得要求先ノードNnは、当該問い合わせメッセージに含まれるアドレス情報に従って、問い合わせメッセージの送信元のノードNnに対してコンテンツ取得数を送信する。
続いて、制御部11は、取得要求先ノードNnからコンテンツデータを取得する「コンテンツデータ取得処理」を行なう(ステップS93〜ステップS99)。
以下、ステップS93乃至ステップS101の処理は、上述した実施形態におけるステップS13乃至ステップS21の処理と同様であるため、説明を省略する。
ステップS101にて初期取得完了通知を送信後、制御部11は、記憶部12に所定容量以上のコンテンツデータを記憶したか否かを判定する(ステップS102)。所定容量以上のコンテンツデータを記憶している場合(ステップS102:Yes)には、制御部11は処理を終了する。
一方、所定容量以上のコンテンツデータを記憶していない場合(ステップS102:No)には、制御部11はステップS91に移行する。制御部11は再びノードIDを生成して所定容量以上のコンテンツデータを記憶するまで、ステップS91乃至ステップS102の処理を繰り返す。
なお、「コンテンツ分散保存システムSに参加後の処理」は、上述した実施形態における「3−2.コンテンツ分散保存システムSに参加後の処理」と略同様である。異なる構成としては、「コンテンツデータ取得条件」を満たすコンテンツのコンテンツデータをいくつ保存しているかについての問い合わせが、上述した実施形態における「3−2.コンテンツ分散保存システムSに参加後の処理」では、アドレス情報に従い直接送信される構成であり、一方、変型例2における「コンテンツ分散保存システムSに参加後の処理」では、DHTルーティングによるメッセージとしてノードNn間を転送されて送信される構成である。
その他の処理は上述した実施形態と同様であるため、説明は省略する。
上記変型例2では、ノードIDを生成して取得したが、ルーティングテーブルに登録されているノードIDを取得してもよい。
ルーティングテーブルに登録されているノードIDを取得する場合には、ルーティングテーブルには通常複数のノードIDが登録されている。従って、ルーティングテーブルの端から順にノードIDを取得して、各ノードIDを含む問い合わせメッセージが辿り着く先の各ノードNnを順に取得要求先ノードNnとすればよい。
なお、問い合わせメッセージを転送する中継ノードを取得要求先ノードNnとしてもよい。
図10は、新規参入ノードN25が、問い合わせメッセージの中継ノードからコンテンツデータを取得する様子を示す説明図である。
新規ノードNnは、DHTを用いたルーティングによりノードIDをキーとする問い合わせメッセージをノードN1に送信する。送信されたメッセージは、ノードN2を中継ノードとしてノードN3に辿り着く(図10実線参照)。
そして、当該メッセージが送信(転送)されたノードN1〜N3は、当該メッセージに含まれる新規参入ノードN25のアドレス情報に基づいて新規参入ノードN25にコンテンツデータを送信する(図10点線参照)。
この構成をとる場合、自己のノードIDを記憶部12から取得して、自己のノードIDをキーとする問い合わせメッセージを送信し、問い合わせメッセージを転送する中継ノードのみを取得要求先ノードNnとすることも可能である。
更に、メッセージが辿り着いた先のノードNn(及び中継ノード)が知っているノードNn(例えば、メッセージが辿り着いた先のノードNn(及び中継ノード)が保持するルーティングテーブルに登録されたアドレス情報に係るノードNn)を取得要求先ノードNnとしてもよい。
更に、ルーティングテーブルには通常複数のアドレス情報が登録されていることから、当該辿り着いた先のノードNn(及び中継ノード)のルーティングテーブルに基づいて複数のノードNnを取得要求先ノードNnとしてもよい。
ところで、ルーティングテーブルには、ノードID及びアドレス情報のみならず、コンテンツ分散保存システムSへ参加した日時の情報(参加日時情報)が登録されている場合がある。この場合には、参加日時情報が示すコンテンツ分散保存システムSへ参加した日時に基づいて、取得要求先ノードNnが決定されるよう構成してもよい。
例えば、コンテンツ分散保存システムSへ参加した日時が最近ノードNnよりも、昔から(参加した日時が古い)ノードNnのほうが、コンテンツデータを多数保持していると推定される。そのため、参加した日時が古いノードNnから順に取得要求先ノードNnとして決定することができる。
また、記憶部12に記憶するコンテンツデータのデータ量が多量となり、コンテンツデータを削除する必要がある場合がある。例えば、ノードNnの制御部11が、記憶部12に記憶するコンテンツデータが規定量以上となったか否かを判定し、規定量以上となったときに、評価値がより低いコンテンツのコンテンツデータから順に削除する削除機能を有する場合がある。
各ノードNnの制御部11が上記削除機能を有する場合には、参加した日時が新しいノードNnよりも、参加した日時が古いノードNnのほうが、記憶部12に評価値が高いコンテンツデータを記憶している可能性が高いと推定される。
従って、参加した日時が古いノードNnから順に取得要求先ノードNnとして決定すれば、新規参入ノードNnは参加当初からより一層評価値の高いコンテンツデータを保持することができる。
また、ルーティングテーブルに、他のノードNnや管理サーバとの間で最後に情報(データ)の送受信を行なった時間(最終アクセス時間)の情報(アクセス時間情報)が登録されている場合には、当該アクセス時間情報が示す最終アクセス時間に基づいて、取得要求先ノードNnを順に決定してもよい。最終アクセス時間から現在まで経過時間が長いノードNnは、既にコンテンツ分散保存システムSから離脱している可能性がある。従って、最終アクセス時間が最近のノードNnから順に取得要求先ノードNnとして決定すれば、コンテンツ分散保存システムSに参加している可能性が高いノードNnを取得要求先ノードNnとするとすることができる。
なお、上記コンテンツ分散保存システムSは、DHTを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。
3 IX
4a、4b ISP
5a、5b DSL回線業者
6 FTTH回線業者
7 通信回線
8 ネットワーク
9 オーバーレイネットワーク(P2Pネットワーク)
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
Nn ノード
4a、4b ISP
5a、5b DSL回線業者
6 FTTH回線業者
7 通信回線
8 ネットワーク
9 オーバーレイネットワーク(P2Pネットワーク)
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
Nn ノード
Claims (8)
- ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータを複数のノード装置に分散して保存させ、各前記ノード装置間で前記コンテンツデータを利用可能としたコンテンツ分散保存システムにおける前記ノード装置であって、
前記コンテンツ分散保存システムに参加するための参加処理を実行する参加処理手段と、
前記参加処理手段によりコンテンツ分散保存システムへの参加処理が実行されたとき、前記コンテンツ分散保存システムに参加する何れかのノード装置のノード情報を取得するノード情報取得手段と、
前記ノード情報取得手段により取得されたノード情報に基づいて、前記コンテンツ分散保存システムに参加する他のノード装置に対して、所定のコンテンツデータ取得条件に基づいて前記コンテンツデータの送信を要求するコンテンツデータ送信要求手段と、
前記コンテンツデータ要求手段により要求された前記コンテンツデータを取得するコンテンツデータ取得手段と、
前記コンテンツデータ取得手段により前記他のノード装置から取得された前記コンテンツデータを記憶する記憶手段と、
を有することを特徴とするノード装置。 - 請求項1に記載のノード装置であって、
前記コンテンツデータ送信要求手段は、前記他のノード装置に対して、コンテンツの評価値が所定値以上であるコンテンツデータの送信を要求することを特徴とするノード装置。 - 請求項2に記載のノード装置であって、
前記コンテンツの評価値は、当該コンテンツの利用頻度に基づいて定められることを特徴とするノード装置。 - 請求項1乃至請求項3のいずれか一項に記載のノード装置であって、
前記コンテンツデータ送信要求手段は、前記他のノード装置に対して、所定個数のコンテンツデータの送信を要求することを特徴とするノード装置。 - 請求項1乃至請求項4のいずれか一項に記載のノード装置であって、
前記記憶手段に所定容量以上の空き容量があるか否かを判別する空き容量判別手段を有し、
前記コンテンツデータ送信要求手段は、前記空き容量判別手段によって所定容量以上の空き容量があると判別された場合に、前記他のノード装置に対して前記コンテンツデータの送信を要求することを特徴とするノード装置。 - 請求項5に記載のノード装置であって、
前記空き容量判別手段は、前記記憶手段の空き容量を計測する空き容量計測手段を有し、
前記コンテンツデータ送信要求手段は、計測された空き容量に基づいて、前記他のノード装置に要求すべきコンテンツデータの前記所定個数を決定し、当該所定個数のコンテンツデータの送信を前記他のノード装置に要求することを特徴とするノード装置。 - コンピュータを、請求項1乃至6の何れか一項に記載のノード装置として機能させることを特徴とするノード処理プログラム。
- ネットワークを介して互いに通信可能な複数のノード装置を備えたコンテンツ分散保存システムであり、複数のコンテンツデータを複数のノード装置に分散して保存させ、各前記ノード装置間で前記コンテンツデータを利用可能としたコンテンツ分散保存システムにおける前記ノード装置が、
前記コンテンツ分散保存システムに参加するための参加処理を実行する参加処理工程と、
前記コンテンツ分散保存システムへの参加処理が実行されたときに、前記コンテンツ分散保存システムに参加する何れかのノード装置のノード情報を取得するノード情報取得工程と、
取得されたノード情報に基づいて、前記コンテンツ分散保存システムに参加する他のノード装置に対して、所定のコンテンツデータ取得条件に基づいて前記コンテンツデータの送信を要求する工程と、
要求された前記コンテンツデータを取得するコンテンツ取得工程と、
取得された前記コンテンツデータを記憶手段に記憶させる記憶制御工程と、
を有することを特徴とするコンテンツデータ保存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009088130A JP2010238160A (ja) | 2009-03-31 | 2009-03-31 | ノード装置、ノード処理プログラム及びコンテンツデータ保存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009088130A JP2010238160A (ja) | 2009-03-31 | 2009-03-31 | ノード装置、ノード処理プログラム及びコンテンツデータ保存方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010238160A true JP2010238160A (ja) | 2010-10-21 |
Family
ID=43092389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009088130A Withdrawn JP2010238160A (ja) | 2009-03-31 | 2009-03-31 | ノード装置、ノード処理プログラム及びコンテンツデータ保存方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010238160A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016098944A1 (ko) * | 2014-12-17 | 2016-06-23 | 경희대학교 산학협력단 | 컨텐츠 기반 네트워크에서 요청 컨텐츠의 해쉬값에 따라 컨텐츠를 송신하는 방법 |
-
2009
- 2009-03-31 JP JP2009088130A patent/JP2010238160A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016098944A1 (ko) * | 2014-12-17 | 2016-06-23 | 경희대학교 산학협력단 | 컨텐츠 기반 네트워크에서 요청 컨텐츠의 해쉬값에 따라 컨텐츠를 송신하는 방법 |
US10740291B2 (en) | 2014-12-17 | 2020-08-11 | University-Industry Cooperation Group Of Kyung Hee University | Method for transmitting requested content according to hash value of content in a content-based network |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7882168B2 (en) | Contents distribution system, node apparatus and information processing method thereof, as well as recording medium on which program thereof is recorded | |
JP2008234445A (ja) | コンテンツ分散保存システム、複製データ取得方法、ノード装置、及びノード処理プログラム | |
WO2007119413A1 (ja) | 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等 | |
JP5532649B2 (ja) | ノード装置、ノード処理プログラム及びコンテンツ保存方法 | |
JP2007213322A (ja) | 情報配信システム、情報配信方法、ノード装置、及びノード処理プログラム | |
JP2007233488A (ja) | 登録装置、登録方法及び登録処理プログラム | |
JP2010113573A (ja) | コンテンツ分散保存システム、コンテンツ保存方法、サーバ装置、ノード装置、サーバ処理プログラム、及びノード処理プログラム | |
JP5375272B2 (ja) | ノード装置、ノード処理プログラム、情報通信システム及びコンテンツデータ管理方法 | |
JP2010267028A (ja) | 管理装置、管理処理プログラム、ノード装置、ノード処理プログラム、及び有効期限切れレコード判定方法 | |
JP2009284325A (ja) | コンテンツ分散保存システム、コンテンツ保存方法、ノード装置、及びノード処理プログラム | |
JP2010238160A (ja) | ノード装置、ノード処理プログラム及びコンテンツデータ保存方法 | |
JP5458629B2 (ja) | ノード装置、ノード処理プログラム及び検索方法 | |
JP2009232272A (ja) | コンテンツ分散保存システム、コンテンツ再生方法、ノード装置、管理装置、ノード処理プログラム、及び管理処理プログラム | |
JP2010108082A (ja) | コンテンツ分散保存システム、コンテンツ保存方法、ノード装置、及びノード処理プログラム | |
JP2010066930A (ja) | コンテンツ分散保存システム、コンテンツ保存方法、ノード装置、及びノード処理プログラム | |
JP5412924B2 (ja) | ノード装置、ノード処理プログラム及びコンテンツデータ削除方法 | |
JP5012712B2 (ja) | コンテンツ分散保存システム、総評価値管理装置、管理処理プログラム、ノード装置、及び総評価値管理方法 | |
JP2009187101A (ja) | コンテンツ分散保存システム、評価値加算方法、サーバ装置、ノード装置、及びノード処理プログラム | |
JP5287059B2 (ja) | ノード装置、ノード処理プログラム及び保存指示方法 | |
JP5157770B2 (ja) | ノード装置、プログラム及び保存指示方法 | |
JP2011008657A (ja) | コンテンツ配信システム、ノード装置、コンテンツ配信方法及びノードプログラム | |
JP2008135952A (ja) | ツリー型コンテンツ放送システム、コンテンツカタログ情報作成方法、ノード装置等 | |
JP5347876B2 (ja) | 情報通信システム、ノード装置、コンテンツ取得方法及びプログラム | |
JP2009187056A (ja) | コンテンツ分散保存システム、評価値加算方法、サーバ装置、ノード装置、及びノード処理プログラム | |
JP2009129161A (ja) | コンテンツ分散保存システム、コンテンツ評価値決定方法、配信装置、及び配信処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20120605 |