JP2007219984A - コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム - Google Patents

コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム Download PDF

Info

Publication number
JP2007219984A
JP2007219984A JP2006042109A JP2006042109A JP2007219984A JP 2007219984 A JP2007219984 A JP 2007219984A JP 2006042109 A JP2006042109 A JP 2006042109A JP 2006042109 A JP2006042109 A JP 2006042109A JP 2007219984 A JP2007219984 A JP 2007219984A
Authority
JP
Japan
Prior art keywords
content
node device
content data
node
identification information
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.)
Granted
Application number
JP2006042109A
Other languages
English (en)
Other versions
JP4797679B2 (ja
Inventor
Hideki Matsuo
英輝 松尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2006042109A priority Critical patent/JP4797679B2/ja
Publication of JP2007219984A publication Critical patent/JP2007219984A/ja
Application granted granted Critical
Publication of JP4797679B2 publication Critical patent/JP4797679B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ネットワーク上にDHT(Distributed Hash Table)等により分散配置された複数の端末装置を有するP2P型のコンテンツ配信システムにおいて、コンテンツの検索時間を低減することができるコンテンツ配信システム及び方法等を提供すること
【解決手段】コンテンツデータを保持させるコンテンツ保持ノード装置を、コンテンツのコンテンツIDと所定の関係となるノードIDを有するノード装置に決定し、決定したノード装置に対してコンテンツデータの保持要求を行う。例えば、Pastry型のP2Pでは、コンテンツのコンテンツIDに対して、上位一桁目の情報が異なるノードIDを有するノード装置をコンテンツデータ保持ノード装置として決定する。
【選択図】図9

Description

本発明は、コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラムの技術分野に属し、より詳細には、ネットワーク上に分散配置された複数のノード装置から構成され、これらのノード装置間でコンテンツデータの送受信を行うコンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラムの技術分野に属する。
近年、インターネットなどのネットワークを介して、音楽、映画、トーク番組などコンテンツデータ(以下、「コンテンツ」ともいう。)を配信する、いわゆるコンテンツ配信システムの研究が盛んである。
従来の上記コンテンツ配信システムの基本的構成として、サーバークライアント型の配信システムがある。このサーバークライアント型の配信システムは、コンテンツを蓄積するサーバにクライアントである端末装置からアクセスし、コンテンツの配信を受ける構成である。
ところが、この種の配信システムでは、特定の人気コンテンツを有するサーバ装置に端末装置からのアクセスが集中し、コンテンツの配信を希望する複数のユーザの端末装置において、希望のコンテンツをストレスなく高品質に入手して視聴することが困難になるという不都合がある。
そこで、分散ハッシュテーブル(DHT(Distributed Hash Table))を利用して論理的にオーバーレイネットワークを構築することにより、情報を効率的に分散配置して負荷分散を図る技術が提案されている。
このシステムにおいては、端末装置である各ノード装置が、当該オーバーレイネットワークに参加している全てのノード装置へのリンク情報(例えば、IPアドレス)を認識しているわけではなく、参加の際などに得られる一部のノード装置へのリンク情報だけを保持しており、かかるリンク情報に基づき、コンテンツデータの検索等を行うようになっている。
このオーバーレイネットワークにおいては、ノード装置の参加及び脱退(離脱)が頻繁に行われても、負荷分散が適切に行われる必要があり、非特許文献1には、オーバーレイネットワークにおいて、参加及び脱退(離脱)が頻繁に行われる場合であっても、適切に負荷分散を行うための技術が開示されている。
「分散ハッシュテーブルの軽量な負荷分散手法の検討」 社団法人 電子情報通信学会 信学技報 IN2003−189,2004年2月
非特許文献1の技術を、コンテンツ配信システムに用いた、ピアツーピア(P2P)型のコンテンツ配信システムにおいては、各ノード装置がコンテンツデータを保持するコンテンツ配信サーバとなり、また、各ノード装置がコンテンツ配信要求クライアントにもなる。
また、このようなコンテンツ配信システムにおいて、コンテンツ配信サーバであるノード装置がコンテンツデータを保持しているだけでなく、ネットワーク上の他のノード装置もコンテンツデータの複製を保持しているものが知られている。以下、コンテンツデータの複製を保持しているノード装置をレプリカ保持ノード装置ともいう。コンテンツ配信要求クライアントであるノード装置は、要求するコンテンツをこのようなレプリカ保持ノード装置から入手することもできる。したがって、あるコンテンツに対する配信要求が増加した場合に、コンテンツ配信サーバであるノード装置だけでなく、その複製を保持しているレプリカ保持ノード装置からもコンテンツを配信できるため、コンテンツ配信サーバであるノード装置へのアクセスの集中を回避できるものである。以下、コンテンツ配信サーバ及びレプリカ保持ノード装置を含めてコンテンツ保持ノード装置と呼ぶ。
上述のようにピアツーピア型のコンテンツ配信システムにおいては、あるコンテンツに対して、そのコンテンツを保持する複数のコンテンツ保持ノード装置に関する情報を記憶するノード装置(以下、「ルートノード装置」と呼ぶ。)が決められており、前記コンテンツを要求するノード装置(以下、「リクエストノード装置」と呼ぶ。)は、当該要求するコンテンツを保持するコンテンツ保持ノード装置に関する情報を有するルートノード装置に向けてコンテンツ保持ノード要求情報(以下、「コンテンツ検索メッセージ」と呼ぶ。)の送信を行うことによって、コンテンツ保持ノード装置に関する情報を取得し、この情報に基づいてコンテンツ保持ノード装置へコンテンツデータの配信要求を行う構成をとる。
このようなコンテンツ配信システムにおいて、コンテンツを投入する際には、どのノード装置にコンテンツデータを記憶させるかは、コンテンツ投入サーバであるコンテンツデータ管理装置によってランダムに決められている。すなわち、コンテンツデータ管理装置は、ランダムに決定したノード装置に対して、コンテンツデータを送信し、記憶させることによってコンテンツ配信システム上にコンテンツ保持ノード装置を配置する。
コンテンツデータ管理装置からコンテンツデータを受信して記憶したコンテンツ保持ノード装置は、記憶したコンテンツデータに関する情報と自ノード装置に関する情報を含む登録メッセージを、ルーティングテーブルに基づき、ルートノード装置へ向けて送信する。そして、この登録メッセージは、他のノード装置で転送されながら、ルートノード装置で受信される。
ところで、コンテンツ保持ノード装置に関する情報をルートノード装置にのみ記憶させておく場合、リクエストノード装置の位置によっては、リクエストノード装置からのコンテンツ検索メッセージが転送される回数が多くなり、コンテンツ保持ノード装置に関する情報の検索時間が長くかかってしまう。また、ルートノード装置に近いノード装置は、コンテンツ検索メッセージを受信する機会が増える。
そこで、登録メッセージを転送するノード装置に、コンテンツ保持ノード装置に関する情報を保持させる(このようにコンテンツ保持ノード装置に関する情報を保持するノード装置を「キャッシュノード装置」と呼ぶ。)ことにより、リクエストノード装置からのコンテンツ検索メッセージに対してコンテンツ保持ノード装置に関する情報を返信させるようにしている。
ところが、上述のようにコンテンツ保持ノード装置は、コンテンツデータ管理装置によってランダムに決められているため、キャッシュノード装置の配置や数にバラツキが生じる。例えば、コンテンツ保持ノード装置の配置がルートノード装置の近くとなった場合には、登録メッセージの転送回数が少なくなり、キャッシュノード装置の数が少なくなる。その結果、コンテンツ検索メッセージがリクエストノード装置からルートノード装置に到達するまでにキャッシュノード装置に到達する可能性が低くなり、せっかくキャッシュノード装置を配置しても、コンテンツの検索にかかる時間は十分に低減できない。
本発明は、以上の不都合に鑑みてなされたものであり、ネットワーク上に分散配置された複数のノード装置を有するP2P型のコンテンツ配信システムにおいて、コンテンツの検索時間を低減することができるコンテンツ配信システム及び方法等を提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、ネットワークを介して互いに接続された複数のノード装置と、前記複数のノード装置のうちの一部のノード装置を、前記複数のノード装置間で共用されるべきコンテンツデータを記憶するコンテンツ保持ノード装置とするために前記コンテンツデータを前記一部のノード装置に記憶させるコンテンツデータ管理装置とを備え、前記コンテンツ保持ノード装置から、他のノード装置にコンテンツデータが配信されるコンテンツ配信システムであって、前記ノード装置は、前記複数のノード装置のうち一部のノード装置の識別情報を記憶するルーティングテーブル記憶手段と、前記ネットワークを介して受信したメッセージの宛先識別情報と前記ルーティングテーブルとに基づいて、前記受信したメッセージが自ノード装置宛であるか否かを判定するメッセージ宛先判定手段と、前記メッセージ宛先判定手段により前記受信したメッセージが自ノード装置宛ではないと判定されると、前記受信したメッセージの宛先識別情報に基づいて、前記ルーティングテーブルから送信先ノード装置を選択して、前記受信したメッセージを前記送信先ノード装置へ転送するメッセージ転送手段と、受信したメッセージがコンテンツデータの保持要求であるとき、前記コンテンツデータの保持要求に対応するコンテンツデータを記憶するコンテンツデータ記憶手段と、前記コンテンツデータを前記コンテンツデータ記憶手段に記憶したとき、記憶した前記コンテンツデータの識別情報と自ノード装置の識別情報を含む登録メッセージを生成する登録メッセージ生成手段と、前記登録メッセージを、記憶した前記コンテンツデータの識別情報に基づいて、前記ルーティングテーブルから送信先ノード装置を選択して送信する登録メッセージ送信手段と、前記受信したメッセージが前記登録メッセージであるとき、前記登録メッセージに含まれる前記コンテンツ保持ノード装置の識別情報を記憶するコンテンツ保持ノード情報記憶手段と、を有し、前記コンテンツデータ管理装置は、前記コンテンツデータの識別情報を決定するコンテンツデータ識別情報決定手段と、前記コンテンツデータを記憶するコンテンツデータ記憶手段と、前記コンテンツデータ記憶手段に記憶したコンテンツデータを保持させるコンテンツ保持ノード装置を決定するコンテンツ保持ノード装置決定手段と、前記コンテンツ保持ノード装置決定手段によって決定したコンテンツ保持ノード装置にコンテンツデータの保持要求を行うコンテンツ保持要求手段と、を有し、前記コンテンツ保持ノード装置決定手段は、前記コンテンツデータの識別情報と所定の関係となる識別情報を有するノード装置を前記コンテンツデータ保持装置として決定することを特徴とする。
また、請求項2に記載の発明は、請求項1に記載の発明において、前記ノード装置は、要求する前記コンテンツデータの識別情報と自ノード装置の識別情報を含むコンテンツ保持ノード要求情報を生成するコンテンツ保持ノード要求情報生成手段と、前記コンテンツデータの識別情報と所定条件とによって前記ルーティングテーブルに記憶されたノード装置の識別情報から送信先ノード装置を選択して、前記コンテンツ保持ノード要求情報を送信するコンテンツ保持ノード要求情報送信手段と、前記コンテンツ保持ノード要求情報を受信した際に、前記コンテンツ保持ノード情報記憶手段に記憶された前記コンテンツ保持ノード装置の識別情報に、要求された前記コンテンツデータに対する前記コンテンツ保持ノード装置の識別情報があるか否かを判断する判断手段と、要求された前記コンテンツデータに対する前記コンテンツ保持ノード装置の識別情報が記憶されている場合、当該コンテンツ保持ノード装置の識別情報を、前記コンテンツ保持ノード要求情報に含まれる送信元識別情報に基づいて前記コンテンツ保持ノード要求情報の送信元ノード装置に対して送信するノード識別情報送信手段とを備えたことを特徴とする。
また、請求項3に記載の発明は、請求項1又は請求項2に記載の発明において、前記コンテンツ保持ノード装置決定手段は、保持させる前記コンテンツデータの識別情報に対して、上位一桁目の情報が異なる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定することを特徴とする。
また、請求項4に記載の発明は、請求項3に記載の発明において、前記コンテンツ保持ノード装置決定手段は、複数の前記コンテンツ保持ノード装置を決定するとき、前記上位一桁目がそれぞれ異なる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定することを特徴とする。
また、請求項5に記載の発明は、請求項4に記載の発明において、前記コンテンツ保持ノード装置決定手段は、前記決定する前記コンテンツ保持ノード装置の数が前記上位一桁目の数以上であるとき、前記上位一桁目の数以上の前記コンテンツ保持ノード装置をランダムに決定することを特徴とする。
また、請求項6に記載の発明は、請求項1又は請求項2に記載の発明において、前記コンテンツ保持ノード装置決定手段は、保持させる前記コンテンツデータの識別情報に対して、排他的論理和の最も大きくなる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定することを特徴とする。
また、請求項7に記載の発明は、請求項1又は請求項2に記載の発明において、前記コンテンツ保持ノード装置決定手段は、保持させる前記コンテンツデータの識別情報に対して、数値的差異が最も大きくなる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定することを特徴とする。
また、請求項8に記載の発明は、ネットワークを介して互いに接続された複数のノード装置と、前記複数のノード装置のうちの一部のノード装置を、前記複数のノード装置間で共用されるべきコンテンツデータを記憶するコンテンツ保持ノード装置とするために前記コンテンツデータを前記一部のノード装置に記憶させるコンテンツデータ管理装置とを備え、前記コンテンツ保持ノード装置から、他のノード装置にコンテンツデータが配信されるコンテンツ配信システムにおける前記コンテンツデータ管理装置であって、前記コンテンツデータの識別情報を決定するコンテンツデータ識別情報決定手段と、前記コンテンツデータを記憶するコンテンツデータ記憶手段と、前記コンテンツデータ記憶手段に記憶したコンテンツデータを保持させるコンテンツ保持ノード装置を決定するコンテンツ保持ノード装置決定手段と、前記コンテンツ保持ノード装置決定手段によって決定したコンテンツ保持ノード装置にコンテンツデータの保持要求を行うコンテンツ保持要求手段と、を有し、前記コンテンツ保持ノード装置決定手段は、前記コンテンツデータの識別情報と所定の関係となる識別情報を有するノード装置を前記コンテンツデータ保持装置として決定することを特徴とする。
また、請求項9に記載の発明は、請求項8に記載の発明において、前記コンテンツ保持ノード装置決定手段は、保持させる前記コンテンツデータの識別情報に対して、上位一桁目の情報が異なる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定することを特徴とする。
また、請求項10に記載の発明は、請求項9に記載の発明において、前記コンテンツ保持ノード装置決定手段は、複数の前記コンテンツ保持ノード装置を決定するとき、前記上位一桁目がそれぞれ異なる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定することを特徴とする。
また、請求項11に記載の発明は、請求項10に記載の発明において、前記コンテンツ保持ノード装置決定手段は、前記決定する前記コンテンツ保持ノード装置の数が前記上位一桁目の数以上であるとき、前記上位一桁目の数以上の前記コンテンツ保持ノード装置をランダムに決定することを特徴とする。
また、請求項12に記載の発明は、請求項8に記載の発明において、前記コンテンツ保持ノード装置決定手段は、保持させる前記コンテンツデータの識別情報に対して、排他的論理和の最も大きくなる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定することを特徴とする。
また、請求項13に記載の発明は、請求項8に記載の発明において、前記コンテンツ保持ノード装置決定手段は、保持させる前記コンテンツデータの識別情報に対して、数値的差異が最も大きくなる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定することを特徴とする。
また、請求項14に記載の発明は、コンピュータに、請求項8〜13のいずれか1項に記載のノード装置の各手段として機能させるためのプログラムであることを特徴とする。
また、請求項15に記載の発明は、ネットワークを介して互いに接続された複数のノード装置と、前記複数のノード装置のうちの一部のノード装置を、前記複数のノード装置間で共用されるべきコンテンツデータを記憶するコンテンツ保持ノード装置とするために前記コンテンツデータを前記一部のノード装置に記憶させるコンテンツデータ管理装置とを備え、前記コンテンツ保持ノード装置から、他のノード装置にコンテンツデータが配信されるコンテンツ配信システムにおける情報処理方法であって、前記ノード装置は、前記複数のノード装置のうち一部のノード装置の識別情報と位置情報とを関連付けたルーティングテーブルを記憶するルーティングテーブル記憶ステップと、前記ネットワークを介して受信したメッセージの宛先識別情報と前記ルーティングテーブルとに基づいて、前記受信したメッセージが自ノード装置宛であるか否かを判定するメッセージ宛先判定ステップと、前記受信したメッセージが自ノード装置宛ではないと判定すると、前記受信したメッセージの宛先識別情報に基づいて、前記ルーティングテーブルから送信先ノード装置を選択して、前記受信したメッセージを前記送信先ノード装置へ転送するメッセージ転送ステップと、前記転送するメッセージがコンテンツデータの保持要求であるとき、前記コンテンツデータの保持要求に対応するコンテンツデータを記憶するコンテンツデータ記憶ステップと、前記コンテンツデータを前記コンテンツデータ記憶手段に記憶したとき、記憶した前記コンテンツデータの識別情報と自ノード装置の識別情報を含む登録メッセージを生成する登録メッセージ生成ステップと、前記登録メッセージを、記憶した前記コンテンツデータの識別情報に基づいて、前記ルーティングテーブルから送信先ノード装置を選択して送信する登録メッセージ送信ステップと、前記受信したメッセージが前記登録メッセージであるとき、前記登録メッセージに含まれる前記コンテンツ保持ノード装置の識別情報を記憶するコンテンツ保持ノード情報記憶ステップと、を有し、前記コンテンツデータ管理装置は、前記コンテンツデータの識別情報を決定するコンテンツデータ識別情報決定ステップと、前記コンテンツ保持ノード装置と所定の関係となる識別情報を有するノード装置を前記コンテンツデータ保持装置として決定するコンテンツ保持ノード装置決定ステップと、前記コンテンツ保持ノード装置決定手段によって決定したコンテンツ保持ノード装置にコンテンツデータの保持要求を行うコンテンツ保持要求ステップと、を有することを特徴とする。
請求項1,8,14,15に記載の発明によれば、コンテンツデータ管理装置は、コンテンツデータを保持させるコンテンツ保持ノード装置の識別情報を、コンテンツデータの識別情報と所定の関係となる識別情報に決定し、決定した識別情報を宛先識別情報としてコンテンツデータの保持要求を行うので、コンテンツ保持ノード装置から送信される登録メッセージが転送される回数が多くなり、キャッシュノード装置が多く配置されることになる。その結果、コンテンツを検索するリクエストノード装置からのコンテンツ検索メッセージは、ルートノード装置に到達するまでにキャッシュノード装置に到達する可能性が高くなるので、コンテンツの検索にかかる時間は全体的に減少する。また、ルートノード装置に近いノード装置はコンテンツを検索するためのコンテンツ検索メッセージを転送する機会が減少する。したがって、ルートノード装置に近いノード装置の負荷を低減することができる。
また、請求項2に記載の発明によれば、要求するコンテンツデータの識別情報と自ノード装置の識別情報を含むコンテンツ保持ノード要求情報を送信する一方、コンテンツ保持ノード要求情報を受信した際に、要求されたコンテンツデータに対するコンテンツ保持ノード装置の識別情報を保持しているとき、当該コンテンツ保持ノード装置の識別情報を、コンテンツ保持ノード要求情報に含まれる送信元識別情報に基づいて送信するので、ノード装置をリクエストノード装置としてもルートノード装置としても機能させることができる。
また、請求項3,9に記載の発明によれば、保持させるコンテンツデータの識別情報に対して、上位一桁目の情報が異なる識別情報を有するノード装置をコンテンツデータ保持ノード装置として決定するので、例えば、Pastry型やtapestry型のコンテンツ配信システムにおいて、登録メッセージの転送回数を可及的に増加させることができる。したがって、コンテンツ保持ノード装置から送信される登録メッセージが転送される回数が多くなるので、コンテンツの検索にかかる時間を全体的に減少させることができ、また、ルートノード装置に近いノード装置の負荷を低減することができる。
また、請求項4,10に記載の発明によれば、複数のコンテンツ保持ノード装置を決定するとき、上位一桁目がそれぞれ異なる識別情報を有するノード装置をコンテンツデータ保持ノード装置として決定するので、コンテンツデータ管理装置が複数のコンテンツ保持ノード装置を配置する場合であっても、登録メッセージの転送回数を可及的に増加させることができる。したがって、コンテンツ保持ノード装置から送信される登録メッセージが転送される回数が多くなるので、コンテンツの検索にかかる時間を全体的に減少させることができ、また、ルートノード装置に近いノード装置の負荷を低減することができる。
また、請求項5,11に記載の発明によれば、決定する前記コンテンツ保持ノード装置の数が前記一桁目の数以上であるとき、上位一桁目の数以上のコンテンツ保持ノード装置をランダムに決定するので、多数のコンテンツ保持ノード装置をコンテンツ配信システムに配置するときであっても、コンテンツデータ管理装置の演算負荷を軽減することができる。
また、請求項6,12に記載の発明によれば、保持させる前記コンテンツデータの識別情報に対して、排他的論理和の最も大きくなる識別情報を有するノード装置をコンテンツデータ保持ノード装置として決定するので、例えば、kedemulia型のコンテンツ配信システムにおいて、登録メッセージの転送回数を可及的に増加させることができる。したがって、コンテンツ保持ノード装置から送信される登録メッセージが転送される回数が多くなるので、コンテンツの検索にかかる時間を全体的に減少させることができ、また、ルートノード装置に近いノード装置の負荷を低減することができる。
また、請求項7,13に記載の発明によれば、保持させるコンテンツデータの識別情報に対して、数値的差異が最も大きくなる識別情報を有するノード装置をコンテンツデータ保持ノード装置として決定するので、例えばchord型のコンテンツ配信システムにおいて、登録メッセージの転送回数を可及的に増加させることができる。したがって、コンテンツ保持ノード装置から送信される登録メッセージが転送される回数が大きくなるので、コンテンツの検索にかかる時間を全体的に減少させることができ、また、ルートノード装置に近いノード装置の負荷を低減することができる。
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、配信する情報を音楽データや映像データなどのコンテンツデータとし、Pastry型やTapestry型のコンテンツ配信システムに対して本発明を適用した場合の実施形態である。
[1.コンテンツ配信システムの構成等]
まず始めに、図1を参照して、情報配信システムとしてのコンテンツ配信システムの概要構成等について説明する。図1は、本実施形態に係るコンテンツ配信システムにおける端末装置である各ノード装置の接続態様の一例を示す図である。このコンテンツ配信システムは、ネットワーク上に分散配置された複数のノード装置から構成され、ノード装置間でコンテンツデータの送受信を行うものである。
図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4、DSL(Digital Subscriber Line)回線事業者(の装置)5、FTTH(Fiber To The Home)回線事業者(の装置)6、及び通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワーク(現実世界のネットワーク)8が構築されている。
コンテンツ配信システムSは、図1の上部枠100内に示すように、ネットワーク8を介して相互に接続された本発明の端末装置としての複数のノード装置1a,1b,1c・・・1x,1y,1z・・・を備えて構成され、ピアツーピア(P2P)方式のネットワークシステムとなっている。各ノード装置1a,1b,1c・・・1x,1y,1z・・には、ノード装置を示す情報としての固有の製造番号(例えば、MACアドレス)及びIP(Internet Protocol)アドレスが割り当てられている。なお、製造番号及びIPアドレスは、複数のノード装置1間で重複しないものである。また、以下の説明において、ノード装置1a,1b,1c・・・1x,1y,1z・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置1という場合がある。
[1.1.DHTの概要]
以下に、本実施形態に係る分散ハッシュテーブル(以下、「DHT」(Distributed Hash Table)と呼ぶ。)を利用したアルゴリズムについて説明する。
上述したコンテンツ配信システムSにおいて、当該ノード装置1同士が、互いに情報をやり取りする際には、お互いの所在情報としてのIPアドレスを知っていなければならない。
例えば、コンテンツを互いに共有するシステムにおいては、ネットワーク8に参加している各ノード装置1が互いにネットワーク8に参加している全てのノード装置1のIPアドレスを知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全てのノード装置1のIPアドレスを覚えておくのは現実的ではない。また、任意のノード装置の電源が頻繁にON或いはOFFとすると、各ノード装置1において記憶している当該任意のノード装置のIPアドレスの更新が頻繁になり、運用上困難となる。
そこで、1台のノード装置1では、ネットワーク8に参加している全てのノード装置1のうち、必要最低限の一部のノード装置1のIPアドレスだけを記憶しておき、IPアドレスを記憶していないノード装置1については、各ノード装置1間で互いに情報を転送し合うことによりコンテンツを届けるシステムが考案されている。
このようなシステムの一例として、DHTを利用したアルゴリズムによって、図1の上部枠100内に示すような、オーバーレイネットワーク9が構築されることになる。つまり、このオーバーレイネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するネットワークを意味する。
本実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバーレイネットワーク9を前提としており、このオーバーレイネットワーク9上に配置されたノード装置1を、コンテンツ配信システムSに参加(言い換えれば、オーバーレイネットワーク9に参加)しているノード装置1という。なお、コンテンツ配信システムSへの参加は、未だ参加していないノード装置が、既に参加している任意のノード装置1に対して参加要求を送ることによって行われる。
コンテンツ配信システムSに参加している各ノード装置1の識別番号であるノードIDとして、それぞれのノード装置1毎にユニークな番号(固有番号)を付与する。この番号は、ノード装置の最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、2128=340×1036台のノード装置を運用できる。
より具体的には、各ノード装置1のノードIDは、それぞれのノード装置1のIPアドレス或いは製造番号等のノード装置1毎に固有の値を、共通のハッシュ関数(ハッシュアルゴリズム)によりハッシュ化して得たハッシュ値であり、一つのID空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数によりハッシュ化されて求められたノードIDは、当該IPアドレス或いは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。また、本実施形態では、IPアドレス(グローバルIPアドレス)を共通のハッシュ関数によりハッシュ化した値をノードIDとする。
また、コンテンツ配信システムSに参加している複数のノード装置1には、一のノード装置1から他のノード装置1に配信される共用情報としてのコンテンツデータ(例えば、音楽データ、映画データ、文書データ等)が分散して記憶されているが、当該コンテンツデータにも、それぞれのコンテンツデータ毎の固有の識別番号(以下、「コンテンツID」と呼ぶ。)を付与する。
そして、当該コンテンツIDは、ノードIDと同様の長さ(例えば、128bit等)とし、後述で詳解するコンテンツデータ管理装置10が疑似乱数アルゴリズムあるいは乱数生成回路によってランダムな値を算出し、このようにランダムに算出した値を、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化することによって決定される(つまり、ノード装置1のIPアドレスのハッシュ値と同一のID空間に配置)。そして、そのハッシュ値と最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノード装置1が、コンテンツデータを保持するノード装置1(以下、「コンテンツ保持ノード装置」と呼ぶ。)へのリンク情報、すなわちコンテンツ保持ノード装置の識別情報(ノードID或いはIPアドレス)を保持する。
このように、各ノード装置1及び各コンテンツデータに付与されたノードID及びコンテンツIDは、共通のハッシュ関数によって生成したため、図2に示す如く、同一のリング状のID空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は32bitでノードID及びコンテンツIDを付与し、図示したものである。図中丸点はノードIDを、四角形はコンテンツIDを示し、反時計回りでIDが増加するものとする。
次に、どのノード装置1に、どのコンテンツデータが管理されるかを、一定の規則の下に決定する。本実施形態においては、「あるコンテンツIDを有するコンテンツデータを管理するノード装置1は、そのコンテンツIDに近いノードIDを有するノード装置1である」という規則とする。ここで、「近い」ことの定義は、当該コンテンツIDを超えず、コンテンツIDとノードIDとの差が一番少ないものとするが、実際には、各コンテンツデータの管理を各ノード装置1に割り振る際に、一貫していれば他の定義でもよい。図2に示す例では、この定義に基づいて、コンテンツIDaは、当該コンテンツIDaに近いノードID(以下、「ノードIDa」と呼ぶ。)を有するノード装置1に管理され、コンテンツIDbは、当該コンテンツIDbに近いノードID(以下、「ノードIDb」と呼ぶ。)を有するノード装置1に管理され、コンテンツIDcは、当該コンテンツIDcに近いノードID(以下、「ノードIDc」と呼ぶ。)を有するノード装置1に管理される。
なお、ここで「管理」というのは、コンテンツデータを保持していることを意味するのではなく、「コンテンツデータが何れのノード装置1に保持されているかを知っている」ことを意味する。すなわち、図2において、ノードIDaを有するノード装置1は、コンテンツIDaを有するコンテンツデータが何れのノード装置1に保持されているかを知っており、ノードIDbを有するノード装置1及びノードIDcを有するノード装置1も同様にそれぞれコンテンツIDbを有するコンテンツデータ及びコンテンツIDcを有するコンテンツデータが何れのノード装置1に保持されているかを知っている、ということになる。このように、あるコンテンツデータが何れのノード装置1に保持されているかを知っているノード装置1を、そのコンテンツデータのルートノード装置と呼ぶ。つまり、ノードIDaを有するノード装置1は、コンテンツIDaを有するコンテンツデータのルートノード装置であって、ノードIDbを有するノード装置1は、コンテンツIDbを有するコンテンツデータのルートノード装置であって、ノードIDcを有するノード装置1は、コンテンツIDcを有するコンテンツデータのルートノード装置である。
また、コンテンツデータ管理装置10は、コンテンツ配信システムS内のノード装置をコンテンツ保持ノード装置とするためにコンテンツデータを配布する機能と、カタログリストを生成してノード装置へ提供する機能を有している。
[1.2.ルーティングテーブルの作成]
ここで、図3を参照して、DHTで用いるルーティングテーブルの作成手法の一例について説明する。図3は、DHTによってルーティングテーブルが作成される様子の一例を示す図である。
まず、図3(a)に示す如く、ID空間を幾つかのエリアに分割する。実際には、16分割程度が良く用いられるが、説明を簡単にするためここでは4分割とし、IDをビット長8bitの4進数で表すことにする。そして、ノード装置1NのノードIDを「1133」とし、このノード装置1Nのルーティングテーブルを作る例について説明する。
(レベル1のルーティング)
まず、ID空間を4分割とした場合、それぞれのエリアは4進数で表すと最大桁が異なる4つのエリア「0XXX」「1XXX」、「2XXX」、「3XXX」(Xは0から3の自然数、以下同様。)で分けられる。ノード装置1Nは、当該ノード装置1N自身のノードIDが「1133」であるため、図3(a)中左下「1XXX」のエリアに存在することになる。そして、ノード装置1Nは、参加要求を受信したノード装置1から送信された情報等から、自分の存在するエリア(すなわち、「1XXX」のエリア)以外のエリア(すなわち、「0XXX」のエリア、「2XXX」のエリア、「3XXX」のエリア)に存在するノード装置1を選択し、当該ノード装置のノードID及びIPアドレスをレベル1のテーブルに記憶する。
図4がレベル1のテーブルの一例である。このテーブルでは、「0XXX」のエリアのノードIDとして「0100」、「2XXX」のエリアのノードIDとして「2133」、「3XXX」のエリアのノードIDとして「3213」がそれぞれ選択されている状態を示している。なお、当該レベル1の2列目はノード装置1N自身を示しているため、IPアドレスを記憶する必要は無い。
(レベル2のルーティング)
次に、図3(b)に示す如く、上記ルーティングによって4分割したエリアのうち、自分の存在するエリア「11xx」を更に4分割し、更に4つのエリア「10XX」、「11XX」、「12XX」、「13XX」と分ける。そして、上記と同様に自分の存在するエリア「11xx」以外のエリアに存在するノード装置1を適当に選択し、当該ノード装置のノードID及びIPアドレスをレベル2のテーブルに記憶する。図4がレベル2のテーブルの一例である。このテーブルでは、「10XX」のエリアのノードIDとして「1003」、「12XX」のエリアのノードIDとして「1221」が、「13XX」のエリアのノードIDとして「1313」がそれぞれ選択されている状態を示している。なお、レベル2の2列目はノード装置1Nが存在するエリア「11XX」であり、後述するレベル3にてテーブル化されるためIPアドレスを記憶していない。また、上記エリアにノード装置が存在しない場合には、ノードID及びIPアドレスの欄は空白となる。
(レベル3のルーティング)
更に、上記ルーティングによって4分割したエリアのうち、自分の存在するエリア「113X」を更に4分割し、更に4つのエリア「110X」「111X」、「112X」、「113X」と分ける。そして、上記と同様に自分の存在するエリア「113X」以外のエリアに存在するノード装置1を適当に選択し、当該ノード装置のノードID及びIPアドレスをレベル3のテーブルに記憶する。図4がレベル3のテーブルの一例である。レベル3の4列目はノード装置1Nが存在するエリアであり、後述するレベル4にてテーブル化されるためIPアドレスを記憶していない。また、上記エリアにノード装置が存在しない場合には、ノードID及びIPアドレスの欄は空白となる。
このようにして、レベル4まで同様にルーティングテーブルを図4に示す如く作成することにより、8bitのID全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
以上説明した手法に従って作成したルーティングテーブルを、全てのノード装置1が夫々作成して所有することになる。このように、各ノード装置1は、コンテンツ配信システムSにおける複数のノード装置1のうち一部のノード装置1の識別情報であるノードID及びIPアドレスを関連付けたルーティングテーブルを有している。
[1.3.コンテンツデータの検索方法]
次に、図5を参照して、コンテンツデータを保持しているノード装置1の検索方法の一例について説明する。図5は、DHTによりコンテンツデータを保持しているノード装置1が検索される様子の一例を示す図である。
ここでは、ノードID「1133」のノード装置1Nが、コンテンツID「3020」を有するコンテンツデータを探す際の手順について説明する。なお、以下このようにコンテンツデータを探し、コンテンツデータの受信を要求するノード装置を「リクエストノード装置」と呼ぶ。
リクエストノード装置1Nは、自己が保持しているルーティングテーブルを参照して、コンテンツID「3020」と同じエリアのノードIDを持つノード装置のノードIDを宛先識別情報としてコンテンツ保持ノード装置の識別情報の送信要求(以下、「コンテンツ検索メッセージ」と呼ぶ。)を送信する。リクエストノード装置1Nが、図4の例と同じ値のルーティングテーブルを持っていたとすると、コンテンツID「3020」は「3XXX」のエリアであるため、当該「3XXX」のエリアに属すノード装置1のうち、IPアドレスを知っている(すなわち、自己が保持しているルーティングテーブルにIPアドレスが記憶されている)ノード装置1A(ノードID「3213」)に対してコンテンツ検索メッセージを送信する。このように、コンテンツ検索メッセージはコンテンツに対応する固有の識別情報であるコンテンツIDを含むものであり、このコンテンツIDはコンテンツ検索メッセージにおいて宛先識別情報として用いられる。
図5に示す例によれば、ノードIDが「3213」であるノード装置1AのIPアドレスがリクエストノード装置1Nのルーティングテーブル(図4参照。)に記憶されているので、リクエストノード装置1Nは、ノードIDが「3213」であるノード装置1Aに対してコンテンツ検索メッセージを送信する。
次に、コンテンツ検索メッセージを受信したノード装置1Aは、このコンテンツ検索メッセージが自ノード装置1A宛のメッセージであるか否かを判定する。自ノード装置1A宛のメッセージであるか否かは、宛先識別情報とルーティングテーブルとに基づいて行われる。具体的には、宛先識別情報が自ノード装置1Aの識別情報であるノードIDと近いか否かが判定される。即ち、宛先識別情報に対して、ノード装置1A自身が保持しているルーティングテーブル(テーブルの値は図示しない)に記憶されているノード装置のノードIDから、一番近いノード装置のノードIDが、自身であるか他のノード装置であるかを判定する。そして、自ノード装置1AのノードIDよりも他のノード装置のノードIDの方が、宛先識別情報に近いため、ノード装置1Aは、当該ノード装置1A自身が保持しているルーティングテーブルのレベル2のテーブルを参照して、「30XX」のエリアに属すノード装置1のうち、IPアドレスを知っているノード装置1B(ノードID「3031」)に対してコンテンツ検索メッセージを転送する。
このように、コンテンツIDの桁を上から順に適合していく要領でコンテンツ検索メッセージの転送が進み、最終的に当該コンテンツデータを管理するノード装置1C、すなわちルートノード装置に辿り着くと、当該ルートノード装置は、コンテンツ検索メッセージに含まれるコンテンツID「3020」を、自身が管理している後述のインデックス情報の中から検索し、当該コンテンツデータを所有しているコンテンツ保持ノード装置に関する情報(ノードIDやIPアドレス等)をリクエストノード装置1Nに返信するようになっている。なお、コンテンツ検索メッセージなどのメッセージを目的のノード装置へ辿り着くまでに、上述のように転送する仕組みをDHTルーティングと呼ぶ。
こうして、リクエストノード装置1Nは、上記ルートノード装置1Cから、コンテンツID「3020」のコンテンツデータを保持するコンテンツ保持ノード装置に関する情報を受信して知ることになり、当該コンテンツ保持ノード装置から、そのコンテンツデータをダウンロードして取得することになる。
[1.4.インデックステーブルへの登録方法]
このような構成のコンテンツ配信システムSの中で、例えば、あるノード装置1が新しいコンテンツデータを、コンテンツ配信システムS上の他のノード装置1から検索可能となるように公開する際の手法について述べる。このノード装置1がコンテンツデータを記憶し、保持するコンテンツ保持ノード装置となる。
コンテンツデータ管理装置10から配布されたコンテンツデータを記憶するコンテンツ保持ノード装置は、記憶したコンテンツデータのコンテンツIDと同じノードIDを持つノード装置に向けて(このノード装置が実在するか否かはこの時点ではわからない。)登録メッセージを送信する。そして、この登録メッセージも、上記コンテンツ検索メッセージと同様にルーティングテーブルに従って、次々と転送されていき、当該登録メッセージに含まれるコンテンツIDに最も近いノードIDを有するノード装置1まで転送されたところで、そのノード装置1はもはや転送先のノード装置1が他にないと判断すると、当該ノード装置1自身がそのコンテンツのルートノード装置となるべきだと判断し、当該登録メッセージに含まれる当該コンテンツID及びコンテンツ保持ノードのノードIDやIPアドレス(以下、これらを「インデックス情報」と呼ぶ。)をインデックス情報として記憶する。
更にまた、本実施形態では、登録メッセージがルートノード装置へ転送される経路の途中のノード装置1でも、登録メッセージに含まれるインデックス情報をキャッシュとして保持するように構成されており、このようなノード装置をキャッシュノード装置という。これにより、ルートノード装置がコンテンツを検索するためのコンテンツ検索メッセージを受信するより前に、キャッシュノード装置にコンテンツ検索メッセージが転送された時点でキャッシュノード装置がコンテンツ保持ノード装置のIPアドレスやノードIDを、コンテンツの所在を検索したリクエストノード装置に返信することが可能になる。なお、本実施形態においては、コンテンツ検索メッセージに対して少なくともコンテンツ保持ノード装置のIPアドレスを返信することとするが、ノードIDをコンテンツ保持ノード装置のIPアドレスと共に返信するようにしてもよい。
登録メッセージを転送していく際には、通常、上述のようにキャッシュノード装置が登録メッセージに基づいたインデックス情報を保持していく。
ここで、図6(a)に示すように、ノードIDが「1301」であるノード装置1MをコンテンツID「3020」であるコンテンツを保持するコンテンツ保持ノード装置とし、ノードIDが「3011」であるノード装置1CをコンテンツID「3020」であるコンテンツのルートノード装置とした場合におけるインデックス情報の保持について図6(a)、(b)を参照して説明する。
図6(a)、(b)に示すように、コンテンツ保持ノード装置であるノード装置1Mがインデックス情報を含む登録メッセージを送信すると、これを受け取ったノード装置1Aは、当該インデックス情報を保持することによりキャッシュノード装置(1)として機能する。キャッシュノード装置(1)は、当該登録メッセージを転送する。当該登録メッセージを受け取ったノード装置1Bは、当該インデックス情報を保持することによりキャッシュノード装置(2)として機能する。キャッシュノード装置(2)は、当該登録メッセージを転送する。当該登録メッセージを受け取ったノード装置1Cは、当該インデックス情報を保持することによりルートノード装置として機能する。このようにノード装置1A,1B,1Cは登録メッセージに含まれるインデックス情報を保持することになる。
ところで、ルートノード装置やキャッシュノード装置におけるインデックス情報の保持は、図7に示すようなインデックステーブルにより行われる。図7はルートノード装置1Cにおけるインデックステーブルの例を示したものであり、自ノード装置が管理対象であるコンテンツID「3020」のコンテンツに関するコンテンツ保持ノード装置のノードIDやIPアドレスなどを記憶する他、キャッシュノード装置としてコンテンツID「2021」のコンテンツに関するコンテンツ保持ノード装置の識別情報を記憶している。なお、インデックステーブルには、コンテンツID、コンテンツ保持ノード装置のノードIDやIPアドレスの他、著作権情報なども記憶することができる。
[1.5.コンテンツ保持ノード装置の配置方法]
ここで、コンテンツ投入サーバであるコンテンツデータ管理装置におけるコンテンツ保持ノード装置の配置方法について、図面を参照して具体的に説明する。図8はコンテンツ保持ノード装置がランダムにコンテンツ保持ノード装置を配置した場合の例を示す図であり、図9及び図10はコンテンツの検索時間を低減することができるようにコンテンツ保持ノード装置がコンテンツ保持ノード装置を配置した場合の例を示す図である。
従来のコンテンツデータ管理装置では、ランダムにコンテンツ保持ノード装置を配置していたために、コンテンツ保持ノード装置がルートノード装置の近くのID空間に配置されることがある。例えば、図8(a)に示すように、コンテンツデータ管理装置がコンテンツID「1231」のコンテンツを管理するルートノード装置1EのノードIDと最上位桁が同一のID空間のノード装置1F,1Gをコンテンツ保持ノード装置として選択してしまうことがある。このようにコンテンツ保持ノード装置の選択が行われると、コンテンツデータ管理装置は、ノード装置1F,1Gへコンテンツデータが配布される。コンテンツ保持ノード装置となったノード装置1F,1Gは、ルートノード装置1Eに対して、登録メッセージを送信する。図8(a)においては、コンテンツ保持ノード装置1Fは、自ノード装置のルーティングテーブルにルートノード装置1EのノードIDに対応するIPアドレスを有しており、したがって、コンテンツ保持ノード装置1Fからの登録メッセージは、直接ルートノード装置1Eに送信される。一方、コンテンツ保持ノード装置1Gは、自ノード装置のルーティングテーブルに従い、登録メッセージをノード装置1Hへ送信する。ノード装置1Hは登録メッセージを受信すると、当該登録メッセージに含まれるインデックス情報を取得してコンテンツ「1231」のキャッシュノード装置となる。また、ノード装置1Hは、自ノード装置のルーティングテーブルにルートノード装置1EのノードIDに対応するIPアドレスを有しており、コンテンツ保持ノード装置1Gから送信された登録メッセージをルートノード装置1Eへ転送する。
図8(b)は、図8(a)をコンテンツ検索メッセージが転送される経路をツリー構造にて簡易的に表現したものである。この図8(b)に示すように、ルートノード装置1Eの近くにキャッシュノード装置1Hやコンテンツ保持ノード装置1F,1Gが集中して配置されてしまう。したがって、例えば、ノード装置1Jがリクエストノード装置として機能する場合には、キャッシュノード装置1Hに到達するまでに時間がかかってしまい、せっかくキャッシュノード装置1Hを配置しても、コンテンツの検索にかかる時間は十分に低減できない。
そこで、本実施形態におけるコンテンツデータ管理装置10では、コンテンツデータを配布して、保持させるコンテンツ保持ノード装置を決定するときに、コンテンツ保持ノード装置の識別情報であるノードIDとコンテンツデータの識別情報であるコンテンツIDとが所定の関係となるノードIDを有するノード装置をコンテンツデータ保持装置として決定するようにしている。
例えば、図9(a)に示すように、コンテンツデータ管理装置10は、コンテンツID「1231」のコンテンツ(以下、「コンテンツ「1231」」と呼ぶ。)とIDの最上位桁が異なるノードID「2xxx」(xは0〜3までの任意の値)を有するノード装置1Kを選択し、コンテンツ保持ノード装置として決定する。なお、「1xxx」にノード装置が存在しておらず、コンテンツID「1231」のルートノード装置となるべきノード装置が「1xxx」に存在しないことも考えられるため、この図のようにはならず、ノードID「0xxx」がルートノード装置になることもあり得る。本来ならば、ルートノード装置とコンテンツ保持ノード装置は、違うエリアに存在するように選びたいところであるが、確実にそう出来るとは限らないので、コンテンツ保持ノード装置として決定するノード装置は、コンテンツID「1231」のルートノード装置となるノード装置が存在する可能性が低いエリアのノード装置とするのが望ましい。ここでは、ルートノード装置は、コンテンツIDに最も近いノードIDを有するノード装置としているため、コンテンツID「1231」のルートノード装置となるノード装置が存在する可能性が低いエリアは、「2xxx」となる。このようにノード装置1Kをコンテンツ保持ノード装置として決定すると、コンテンツデータ管理装置10は、ノード装置1Kへコンテンツ「1231」のデータを配布する。コンテンツ保持ノード装置となったノード装置1Kは、ルートノード装置1Eに向けて、登録メッセージを送信する。図9(a)においては、コンテンツ保持ノード装置1Kは、自ノード装置のルーティングテーブルに従い、登録メッセージをノード装置1Pへ送信する。ノード装置1Pは登録メッセージを受信すると、当該登録メッセージに含まれるインデックス情報を取得してコンテンツ「1231」のキャッシュノード装置となる。また、ノード装置1Pは、自ノード装置のルーティングテーブルに従い、登録メッセージをノード装置1Rへ送信する。ノード装置1Rは登録メッセージを受信すると、当該登録メッセージに含まれるインデックス情報を取得してコンテンツ「1231」のキャッシュノード装置となる。更に、ノード装置1Pは、自ノード装置のルーティングテーブルに従い、登録メッセージをノード装置1Hへ送信する。ノード装置1Hは登録メッセージを受信すると、当該登録メッセージに含まれるインデックス情報を取得してコンテンツ「1231」のキャッシュノード装置となる。また、ノード装置1Hは、自ノード装置のルーティングテーブルにルートノード装置1Eの識別情報を有しており、コンテンツ保持ノード装置1Rから送信された登録メッセージをルートノード装置1Eへ転送する。
図9(b)は、図9(a)をコンテンツ検索メッセージが転送される経路としてツリー構造にて表現したものである。このように、コンテンツデータ管理装置10がルートノード装置1EのノードIDと最上位桁が異なるノードIDを有するノード装置1Kを選択し、コンテンツ保持ノード装置として決定することによって、登録メッセージが多くのノード装置を経由してルートノード装置へ転送されることになるため、キャッシュノード装置を多く配置することが可能となる。したがって、任意のリクエストノードがコンテンツ検索メッセージを送信したときに、コンテンツ検索メッセージが、ルートノード装置1Eに到達するまでに、キャッシュノード装置において受信される可能性を高くすることができ、コンテンツの検索にかかる時間を低減することができる。例えば、リクエストノード装置1Jが検索メッセージを発した場合、図8(b)の例では、1Hが返答メッセージを返し、図9(b)の例では、1Pがメッセージを返答するので、図9(b)の例のほうが、応答時間が短くなる。
また、コンテンツ保持ノード装置を複数配置する場合には、上位一桁目がそれぞれ異なるノードIDを有するノード装置をコンテンツデータ保持ノード装置として決定する。図10(a)は、コンテンツデータ管理装置10がコンテンツ保持ノード装置として3つのノード装置1K,1U,1Tを決定したときに、これらのコンテンツ保持ノード装置が登録メッセージをルートノード装置に対して送信し、キャッシュノード装置が配置される様子を示している。
図10(a)に示すように、コンテンツデータ管理装置10は、コンテンツ「1231」とIDの最上位桁がそれぞれ異なるノードID「0xxx」,「2xxx」,「3xxx」を有するノード装置1K,1S,1Tをそれぞれ選択し、コンテンツ保持ノード装置として決定する。このようにコンテンツ保持ノード装置の決定を行うと、コンテンツデータ管理装置10は、ノード装置1K,1S,1Tへそれぞれコンテンツ「1231」のデータを配布する。コンテンツデータ管理装置10からコンテンツ「1231」のデータを受信して記憶することによりコンテンツ保持ノード装置となったノード装置1K,1S,1Tは、ルートノード装置1Eに向けて、登録メッセージを送信する。図10(b)においては、コンテンツ保持ノード装置1Kからの登録メッセージはノード装置1P,1R,1Hを経由して、コンテンツ保持ノード装置1Sからの登録メッセージはノード装置1U,1Wを経由して、コンテンツ保持ノード装置1Tからの登録メッセージはノード装置1V,1Hを経由して、ルートノード装置1Eへ到達しており、これにより、ノード装置1P,1R,1H,1U,1W,1Vがキャッシュノード装置として配置されることになる。
図10(b)は、図10(a)をコンテンツ検索メッセージが転送される経路としてツリー構造にて表現したものである。このように、コンテンツデータ管理装置10がコンテンツIDと最上位桁がそれぞれ異なるノードID「0xxx」,「2xxx」,「3xxx」を有するノード装置1K,1S,1Tを選択し、コンテンツ保持ノード装置として決定することによって、それぞれ登録メッセージが多くのノード装置を経由してルートノード装置へ転送され、キャッシュノード装置が多く配置される。したがって、ルートノード装置1Eに到達するまでにキャッシュノード装置においてコンテンツ検索メッセージを受信する可能性を高くすることができ、コンテンツの検索にかかる時間を低減することができる。また、ルートノード装置に近いノード装置はコンテンツ検索メッセージを転送する機会が減少する。したがって、ルートノード装置に近いノード装置の負荷を低減することができる。
尚、コンテンツデータ管理装置10が、上位桁の値の数以上(例えば、本実施形態のように4進数でノード空間を生成する場合には、上位桁の値の数は4となる。)のコンテンツ保持ノード装置を配置する場合には、上位桁の値の数未満のコンテンツ保持ノード装置は上述のように配置し、上位桁の値の数以上のコンテンツ保持ノード装置はランダムに決定する。したがって、多数のコンテンツ保持ノード装置をコンテンツ配信システムに配置するときであっても、既に配置したコンテンツ保持ノード装置のノードIDを上位桁の値の数以上保持しておく必要がなく、したがって、コンテンツデータ管理装置10の演算負荷を軽減することができる。
[2.コンテンツデータ管理装置10の構成等の説明]
次に、図面を参照して、コンテンツデータ管理装置10の構成及び動作について説明する。図11は、本実施形態に係るコンテンツ配信システムSにおけるコンテンツデータ管理装置10の概略構成を示す図である。
コンテンツデータ管理装置10は、専用のコンピュータの他、一般のサーバコンピュータを適用可能であり、図11に示すように、CPU(Central Processing Unit)102と、各種プログラム等を記憶(記憶)する書き換え可能な主記憶装置としての第1記憶部103と、各種データ等を記憶するHDD等から構成された第2記憶部104と、ルータ120を介してネットワーク8に参加している他のノード装置1との間で通信を行うためのネットワークインターフェイス105と、コンテンツ配信システムSの管理者によってコンテンツデータ管理装置10の制御を行うために情報を入力する入力手段であるマウス107aやキーボード107bと、入力手段から入力された情報を処理するための周辺機器制御チップ106と、CPU102の制御によりイメージデータを受け取り、内部のビデオメモリ(図示せず)に書き込み、このビデオメモリに書き込んだデータを後述のディスプレイ109に表示するビデオチップ108等を備えて構成され、これらの各種構成要素はシステムバス101を介して相互に接続されている。なお、本実施形態においては、CPU102と第1記憶部103とで制御手段114を構成している。
(第1記憶部103について)
また、第1記憶部103には、ノード装置1のコンピュータとしての基本的な機能を提供するためのオペレーティングシステム(OS)プログラム110、ディスプレイ109の制御等を行うための画面制御プログラム111、コンテンツ配信システムSにコンテンツを投入する毎にコンテンツの一覧表であるカタログリストを更新するためのカタログ更新プログラム112と、コンテンツ配信システムSにコンテンツを新規に投入するための新規投入コンテンツプログラム113等を記憶しており、これらはCPU102によって読み出され、CPU102によってこれらのプログラムに従った機能が実行される。なお、「コンテンツ配信システムSにコンテンツを投入」とは、コンテンツデータ管理装置10が、あるコンテンツに関してコンテンツ保持ノード装置となるノード装置1を決定し、当該決定したノード装置1にコンテンツデータを配布することを意味する。
ここで、OSプログラム110は、CPU102によって読み出されて実行されることにより、マウス107aやキーボード107bに関する機能や、第1記憶部103や第2記憶部104などのメモリ管理等のコンテンツデータ管理装置10であるコンピュータの基本的な機能を実行可能にするものである。そして、このOSプログラム110がCPU102によって実行された状態で、上述の画面制御プログラム111、カタログ更新プログラム112、新規投入コンテンツプログラム113等が第1記憶部103から読み出されて実行される。
なお、OSプログラム110、画面制御プログラム111、カタログ更新プログラム112、新規投入コンテンツプログラム113等は、例えば、ネットワーク8に接続されたサーバ等から、ネットワークインターフェイス105を介して、第1記憶部103にダウンロードされるようにしてもよく、又CD−ROM等の記録媒体に記録されてから当該記録媒体のドライブを介して、第1記憶部103に読み込まれるようにしてもよい。
(第2記憶部104について)
第2記憶部104には、カタログ更新プログラムによって生成され、コンテンツ配信システムS内にて提供されているコンテンツがリスト化されたカタログリストを記憶するカタログリスト記憶領域115と、コンテンツ配信システムSにおいて提供されているコンテンツのデータを記憶する投入済コンテンツデータ記憶領域116と、コンテンツ配信システムSにおいて新規に提供されるコンテンツのデータを記憶するコンテンツデータ記憶手段としての新規コンテンツデータ記憶領域117とを有している。
(制御手段114について)
制御手段114は、上述のようにCPU102と第1記憶部103とから構成され、CPU102が第1記憶部103に記憶された各種プログラム110〜113を読み出して実行することにより、ノード装置1全体を統括制御し、かつ、後述する表示制御手段、コンテンツデータ識別情報決定手段、コンテンツ保持ノード装置決定手段、コンテンツ保持要求手段等として機能するようになっている。
なお、CPU102が画面制御プログラム111を実行することによって表示制御手段等として、またCPU102がカタログ更新プログラム112を実行することによってカタログ更新手段等として、またCPU102が新規投入コンテンツプログラム113を実行することによって、コンテンツデータ識別情報決定手段、コンテンツ保持ノード装置決定手段、コンテンツ保持要求手段等として、それぞれ機能するようになっている。
(表示制御手段について)
表示制御手段は、ビデオチップ108及びディスプレイ109を制御して、各種の映像情報(画像情報)を表示させる機能を有している。すなわち、表示制御手段は、ディスプレイ109にどのように映像を表示させるかを制御する。
(コンテンツデータ識別情報決定手段について)
コンテンツデータ識別情報決定手段は、新規にコンテンツ配信システムSに投入するコンテンツデータの識別情報であるコンテンツIDを決定する機能を有する。
より具体的には、コンテンツデータ識別情報決定手段は、ランダム演算によってランダムな値を算出し、このようにランダムに算出した値を、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化することによってコンテンツIDを決定する。
(コンテンツ保持ノード装置決定手段について)
コンテンツ保持ノード装置決定手段は、新規コンテンツデータ記憶領域117に記憶したコンテンツデータを保持させるノード装置、すなわちコンテンツ保持ノード装置を決定する機能を有している。
このコンテンツ保持ノード装置決定手段は、コンテンツ保持ノード装置を決定するにあたり、保持させようとするコンテンツデータの識別情報であるコンテンツIDとの所定の関係となるノードID(識別情報)を算出し、このように算出したノードIDを有するノード装置1をコンテンツ保持ノード装置とする。
より具体的には、コンテンツ保持ノード装置決定手段は、保持させようとするコンテンツデータのコンテンツIDに対して、上位一桁目の情報が異なるノードIDを有するノード装置1をコンテンツデータ保持ノード装置として決定する。例えば、コンテンツIDが「1231」であるコンテンツデータを保持させる場合、当該コンテンツIDの一桁目の情報である「1」とは異なる一桁目の情報を有するノードID「0xxx」,「2xxx」,「3xxx」(xは0〜3の任意の値)を有するノード装置1のいずれかを選択し、コンテンツ保持ノード装置として決定する。
また、複数のコンテンツ保持ノード装置を決定するとき、上位一桁目がそれぞれ異なるノードIDを有するノード装置1をコンテンツデータ保持ノード装置として決定する。例えば、コンテンツIDが「1231」であるコンテンツデータを3つのノード装置1に保持させる場合、当該コンテンツIDの一桁目の情報である「1」とはそれぞれ異なる一桁目の情報を有するノードID「0xxx」,「2xxx」,「3xxx」(xは0〜3の任意の値)を有する3つのノード装置1をコンテンツ保持ノード装置として決定する。
また、決定すべきコンテンツ保持ノード装置の数が上位一桁目の値の数以上(例えば、本実施形態のように4進数でノード空間を生成する場合には、上位桁の値の数は4となる。)であるとき、上位一桁目の値の数以上のコンテンツ保持ノード装置の決定に関しては、ランダム演算によってランダムなノードIDを算出し、このようにランダムに算出したノードIDを有するノード装置1をコンテンツ保持ノード装置として決定する。
(コンテンツ保持要求手段について)
コンテンツ保持要求手段は、コンテンツ保持ノード装置決定手段によって決定したコンテンツ保持ノード装置にコンテンツデータの保持要求を行う。このコンテンツデータの保持要求は、本実施形態においては、上記の如く決定したコンテンツ保持ノード装置とすべきノード装置に対してコンテンツデータを保持させるための要求であり、DHTルーティングによって送信される。この要求に対してコンテンツ保持ノード装置となるべきノード装置は、コンテンツデータ管理装置10のIPアドレスをコンテンツデータの保持要求の中から取り出し、当該IPアドレス宛に前記保持要求に対応するコンテンツデータの送信要求を送信する。コンテンツ保持要求手段は、コンテンツデータの送信要求を受信すると、保持させようとするコンテンツデータを送信要求元のノード装置へ送信する。このようにコンテンツデータ管理装置10とノード装置1との通信においては、DHTルーティングによる通信や1対1の通信など複数種類の通信形態が適宜使い分けられる。
[3.ノード装置1の構成等の説明]
次に、図面を参照して、ノード装置1の構成及び動作について説明する。図12は、本実施形態に係るコンテンツ配信システムSにおけるノード装置1の概略構成を示す図である。
ノード装置1は、専用のコンピュータの他、一般のパーソナルコンピュータを適用可能であり、図12に示すように、CPU(Central Processing Unit)202と、各種プログラム等を記憶(記憶)する書き換え可能な主記憶装置としての第1記憶部203と、各種データ等を記憶するHDD等から構成された第2記憶部204と、ルータ224を介してネットワーク8に参加している他のノード装置1との間で通信を行うためのネットワークインターフェイス205と、ユーザによってノード装置1を遠隔操作するために所定の赤外線信号を送信及び受信するリモコン206と、このリモコン206と赤外線により通信を行うための赤外線ポート207と、赤外線ポート207を制御する周辺機器制御チップ208と、CPU202の制御によりイメージデータを受け取り、内部のビデオメモリ(図示せず)に書き込み、このビデオメモリに書き込んだデータを後述のディスプレイ210に表示するビデオチップ209と、FM音源やWave Table音源などの音源を有し、オーディオ信号をスピーカ212に出力することによってスピーカ212から音波を出力させる音源チップ211と、を備えて構成され、これらの各種構成要素はシステムバス201を介して相互に接続されている。なお、本実施形態においては、CPU202と第1記憶部203とで制御手段213を構成している。
(第1記憶部203について)
また、第1記憶部203には、ノード装置1のコンピュータとしての基本的な機能を提供するためのオペレーティングシステム(OS)プログラム214、ディスプレイ210の制御等を行うための画面制御プログラム215、コンテンツ保持ノード装置として機能する他のノード装置から送信されるコンテンツデータをストリーミング受信し、また自ノード装置がコンテンツ保持ノード装置として機能するときには第2記憶部204に記憶したコンテンツデータをストリーミング配信するためのストリーム制御プログラム216、他のノード装置とメッセージの送受信を行うためのメッセージ管理プログラム217、配信されたコンテンツデータの再生等を行うためのプレイヤプログラム218等を記憶しており、これらはCPU202によって読み出され、CPU202によってこれらのプログラムに従った機能が実行される。また、第1記憶部203には、更にインデックステーブル(図7参照)を記憶するためのインデックステーブル記憶手段219やルーティングテーブル(図4参照)を記憶するためのルーティングテーブル記憶手段220が設けられている。
ここで、OSプログラム214は、CPU202によって読み出されて実行されることにより、リモコン206の入出力に関する機能や、第1記憶部203や第2記憶部204などのメモリ管理等のノード装置1であるコンピュータの基本的な機能を実行可能にするものである。そして、このOSプログラム214がCPU202によって実行された状態で、上述の画面制御プログラム215、ストリーム制御プログラム216、メッセージ管理プログラム217、プレイヤプログラム218等が第1記憶部203から読み出されて実行される。
なお、OSプログラム214、画面制御プログラム215、ストリーム制御プログラム216、メッセージ管理プログラム217、プレイヤプログラム218等は、例えば、ネットワーク8に接続されたサーバ等から、ネットワークインターフェイス205を介して、第1記憶部203にダウンロードされるようにしてもよく、又CD−ROM等の記録媒体に記録されてから当該記録媒体のドライブを介して、第1記憶部203に読み込まれるようにしてもよい。
(第2記憶部204について)
第2記憶部204には、コンテンツデータ管理装置10から投入され、コンテンツ配信システムS内にて提供されているコンテンツがリスト化されたカタログリストを記憶するカタログリスト記憶領域222と、コンテンツデータ管理装置10等から配信されたコンテンツデータを記憶するコンテンツデータ記憶手段として機能するコンテンツデータ記憶領域223等を有している。
(制御手段213について)
制御手段213は、上述のようにCPU202と第1記憶部203とから構成され、CPU202が第1記憶部203に記憶された各種プログラム214〜218を読み出して実行することにより、ノード装置1全体を統括制御し、かつ、後述する表示制御手段、ストリーム制御手段、メッセージ宛先判定手段、メッセージ転送手段、コンテンツデータ取得手段、登録メッセージ生成手段、登録メッセージ送信手段、削除メッセージ生成手段、削除メッセージ送信手段、コンテンツ保持ノード情報取得手段、コンテンツ保持ノード要求情報生成手段、コンテンツ保持ノード要求情報送信手段、判断手段、ノード識別情報送信手段、デコード手段、コンテンツ再生手段等として機能するようになっている。
なお、CPU202が画面制御プログラム215を実行することによって、表示制御手段等として、またCPU202がストリーム制御プログラム216を実行することによって、ストリーム制御手段等として、またCPU202がメッセージ管理プログラム217を実行することによって、メッセージ宛先判定手段、メッセージ転送手段、コンテンツデータ取得手段、登録メッセージ生成手段、登録メッセージ送信手段、削除メッセージ生成手段、削除メッセージ送信手段、コンテンツ保持ノード情報取得手段、コンテンツ保持ノード要求情報生成手段、コンテンツ保持ノード要求情報送信手段、判断手段、ノード識別情報送信手段等として、またCPU202がプレイヤプログラム218を実行することによって、デコード手段及びコンテンツ再生制御手段等として、それぞれ機能するようになっている。
(表示制御手段について)
表示制御手段は、ビデオチップ209及びディスプレイ210を制御して、各種の映像情報(画像情報)を表示させる機能を有している。すなわち、表示制御手段は、ディスプレイ210にどのように映像を表示させるかを制御する。
(ストリーム制御手段)
ストリーム制御手段は、他のノード装置1からストリーミング配信されるコンテンツデータを受信するコンテンツデータ受信手段、及び第2記憶部204に記憶したコンテンツデータを他のノード装置1へストリーミング配信するコンテンツデータ配信手段等としての機能を有している。
コンテンツデータ受信手段は、他のノード装置1から配信されるパケットがコンテンツパケットであると判定されたときに、そのコンテンツパケットを1パケットずつ受信し、図示しない第1記憶部203のリングバッファに一時的に記憶し、その後第2記憶部204に記憶する。また、コンテンツ配信手段は、第2記憶部204に記憶したコンテンツデータをコンテンツパケットに変換し、1パケットずつネットワークインターフェイス205を介して他のノード装置1へ送信する。なお、コンテンツデータ受信手段やコンテンツデータ配信手段は、公知のストリーミング配信用プロトコルを用いることができる他、独自の専用プロトコルを用いるようにすることもできる。
(メッセージ宛先判定手段について)
メッセージ宛先判定手段は、ネットワーク8を介して受信したメッセージの宛先識別情報とルーティングテーブルとに基づいて、受信したメッセージが自ノード装置1宛であるか否かを判定する。このメッセージ宛先判定手段が判定するメッセージは、コンテンツ保持ノード装置の識別情報をルートノード装置に要求するためのコンテンツ検索メッセージ、ルートノード装置にコンテンツ保持ノード装置の識別情報を登録するための登録メッセージなどである。
受信したメッセージが自ノード装置1宛であるか否かの判定は、メッセージに含まれる宛先ノードID(宛先識別情報)を取り出し、第1記憶部203に記憶したルーティングテーブルに基づいて後述の制御手段213が判定する。すなわち、各種のメッセージをネットワークインターフェイス205を介して受信したとき、メッセージ宛先判定手段は、受信したメッセージに含まれる宛先識別情報とルーティングテーブルに記憶したノードIDとを比較し、メッセージに含まれる宛先識別情報と一番近いルーティングテーブル上のノードIDが自ノード装置1のノードIDであると判定すると、自ノード装置1宛のメッセージであると判定する。
(メッセージ転送手段について)
メッセージ転送手段は、メッセージ宛先判定手段によりネットワーク8を介して受信したメッセージが自ノード装置宛ではないと判定されると、受信したメッセージの宛先識別情報に基づいて、前記ルーティングテーブルに記憶されたノード装置の識別情報から送信先ノード装置を選択して、受信したメッセージを送信先ノード装置へ転送する。すなわち、メッセージ転送手段は、ルーティングテーブルに記憶されたノード装置のノードIDのうち、宛先識別情報に近いノードIDを選択し、このように選択したノードIDに対応するノード装置のIPアドレスを知り、そのIPアドレスをIPパケットの宛先として、メッセージを転送する。
(コンテンツデータ取得手段について)
コンテンツデータ取得手段は、ネットワークインターフェイス205を介して受信したメッセージがコンテンツデータ管理装置10からのコンテンツデータの保持要求であるときに、このコンテンツデータの保持要求に対応するコンテンツデータをコンテンツデータ管理装置10から取得する。そして、取得したコンテンツデータをコンテンツデータ記憶手段である第2記憶部204に記憶する。なお、上述のように、コンテンツデータの保持要求はDHTルーティングによって送受信され、コンテンツデータの送受信は1対1通信で行われる。
(登録メッセージ生成手段について)
登録メッセージ生成手段は、コンテンツデータ管理装置10から受信したコンテンツデータをコンテンツデータ記憶手段である第2記憶部204に記憶したとき、当該コンテンツデータの識別情報であるコンテンツIDを宛先識別情報とし、自ノード装置1の識別情報であるノードID及びIPアドレスとを含む登録メッセージを生成する。また、他のコンテンツ保持ノード装置からコンテンツデータを受信したときも同様に、受信したコンテンツデータをコンテンツデータ記憶手段である第2記憶部204に記憶し、登録メッセージを生成する。
(登録メッセージ送信手段について)
登録メッセージ送信手段は、登録メッセージ生成手段によって生成した登録メッセージを、第2記憶部204に記憶したコンテンツデータのコンテンツIDに基づいて、ルーティングテーブルに記憶されたノード装置の識別情報から送信先ノード装置を選択して送信する。例えば、図4に示すようなルーティングテーブルを有しており、かつ第2記憶部204に記憶したコンテンツデータのコンテンツIDが「1231」である場合、登録メッセージ送信手段は、ルーティングテーブルからノードID「1221」を送信先ノード装置として選択し、当該ノードID「1221」のノード装置のIPアドレス「21.13.21.13」を取り出す。そして、当該IPアドレス「21.13.21.13」を送信先ノード装置として登録メッセージを送信する。なお、この登録メッセージの宛先識別情報は「1231」となる。
(削除メッセージ生成手段について)
削除メッセージ生成手段は、コンテンツデータ記憶手段である第2記憶部204に記憶したコンテンツデータを削除したとき、当該コンテンツデータの識別情報であるコンテンツIDと、自ノード装置1の識別情報であるノードID及びIPアドレスとを含む削除メッセージを生成する。
(削除メッセージ送信手段について)
削除メッセージ送信手段は、削除メッセージ生成手段によって生成した削除メッセージを、第2記憶部204から削除したコンテンツデータのコンテンツIDに基づいて、ルーティングテーブルに記憶されたノード装置の識別情報から送信先ノード装置を選択して送信する。例えば、図4に示すようなルーティングテーブルを有しており、かつ第2記憶部204から削除したコンテンツデータのコンテンツIDが「1231」である場合、削除メッセージ送信手段は、ルーティングテーブルからノードID「1221」を送信先ノード装置として選択し、当該ノードID「1221」のノード装置のIPアドレス「21.13.21.13」を取り出す。そして、当該IPアドレス「21.13.21.13」を送信先ノード装置として削除メッセージを送信する。なお、この削除メッセージの宛先識別情報は「1231」となる。
(コンテンツ保持ノード情報取得手段について)
コンテンツ保持ノード情報取得手段は、自ノード装置1において、受信したメッセージが登録メッセージであるとき、登録メッセージに含まれるコンテンツ保持ノード装置の識別情報であるノードIDやIPアドレスなどと、同じく登録メッセージに含まれるコンテンツIDの組からなるインデックス情報を取得する。そして、このように取得したインデックス情報をコンテンツ保持ノード情報記憶手段であるインデックステーブル記憶手段219に記憶する。
(コンテンツ保持ノード要求情報生成手段について)
コンテンツ保持ノード要求情報生成手段は、コンテンツ検索メッセージを生成する。例えば、コンテンツデータ管理装置10から受信したカタログリストをディスプレイ210に表示した後、ノード装置1のユーザによるリモコン206の操作によって、カタログリストの中から所望のコンテンツが選択されると、コンテンツ保持ノード要求情報生成手段は、当該選択されたコンテンツを保持するコンテンツ保持ノード装置の所在情報を検索するためのコンテンツ保持ノード要求情報であるコンテンツ検索メッセージを生成する。コンテンツ検索メッセージは、要求するコンテンツデータの識別情報であるコンテンツIDを宛先識別情報とし、自ノード装置1の識別情報であるノードIDを要求元識別情報としたメッセージである。
(コンテンツ保持ノード要求情報送信手段について)
コンテンツ保持ノード要求情報送信手段は、コンテンツ検索メッセージの宛先識別情報であるコンテンツデータの識別情報と所定条件とによってルーティングテーブルに記憶されたノード装置の識別情報であるノードIDから送信先ノード装置を選択して、コンテンツ保持ノード要求情報であるコンテンツ検索メッセージを送信する。ここで、「所定条件」とは、ルーティングテーブルに記憶されたノードIDのうち、コンテンツ検索メッセージの宛先識別情報であるコンテンツIDと上位桁がより多く一致するノードIDを選択するという条件である。例えば、図4に示すようなルーティングテーブルを有しており、かつ宛先識別情報としてのコンテンツIDが「1231」である場合、コンテンツ保持ノード要求情報送信手段は、ルーティングテーブルからノードID「1221」を送信先ノード装置として選択し、当該ノードID「1221」のノード装置のIPアドレス「21.13.21.13」を取り出す。そして、当該IPアドレス「21.13.21.13」を送信先ノード装置としてコンテンツ検索メッセージを送信する。
(判断手段について)
判断手段は、ノード装置1がネットワークインターフェイス205を介して、コンテンツ保持ノード要求情報であるコンテンツ検索メッセージを受信した際に、コンテンツ保持ノード情報記憶手段であるルーティングテーブルに記憶されたインデックス情報、すなわちコンテンツ保持ノード装置のノードIDの中に、要求されたコンテンツに対するコンテンツ保持ノード装置のノードIDと一致する情報があるか否かを判断する。
(ノード識別情報送信手段について)
ノード識別情報送信手段は、コンテンツ検索メッセージによって要求されたコンテンツに対するコンテンツ保持ノード装置のノードIDが記憶されている場合、当該コンテンツ保持ノード装置のノードIDを、当該コンテンツ検索メッセージを送信したリクエストノード装置へ向けて送信する。このときの送信先ノード装置は、コンテンツ検索メッセージに含まれる送信元識別情報、すなわちリクエストノード装置の識別情報に基づいて、他のメッセージと同様にルーティングテーブルから選択したノード装置である。このように送信することによって、コンテンツ保持ノード装置のノードIDを当該コンテンツ検索メッセージの送信元ノード装置へ届ける。
(デコード手段について)
デコード手段は、他のノード装置1から送信されるコンテンツデータ等をディスプレイ210に表示し、スピーカ212から出力するためにデコードする。すなわち、他のノード装置1から送信されるコンテンツデータは、ストリーミング配信用のデータ形式、例えばASF、WMA、WMV等のデータ形式でエンコードされており、このようにエンコードされているコンテンツデータをディスプレイ210やスピーカ212から出力できるようにデコードする。
(コンテンツ再生手段について)
コンテンツ再生手段は、第1記憶部203のリングバッファから成るバッファ領域に順次記憶されたコンテンツデータを、順次コンテンツ再生手段により再生するものであり、このとき制御手段213は、ストリーム制御プログラム216に基づいてビデオチップ209及び音源チップ211を動作させることによりコンテンツデータが再生される。
[4.コンテンツデータ管理装置10の処理の説明]
以下、コンテンツデータ管理装置10の詳細動作について、図13〜図15のフローチャートを用いて更に具体的に説明する。図13はコンテンツデータ管理装置におけるコンテンツ投入時のメイン処理を示すフローチャート、図14は投入するコンテンツの数がX(上位桁の値の数)未満のときのコンテンツ投入処理を示すフローチャート、図15は投入するコンテンツの数がX以上のときのコンテンツ投入処理を示すフローチャートである。
まず、制御手段114は、コンテンツデータ管理装置10の管理者の操作等によって、コンテンツ投入処理が選択されたか否かを判定する(ステップS11)。例えば、コンテンツデータ管理装置10の管理者が、マウス107aやキーボード107bなどの入力手段を操作することによって、新規コンテンツデータ記憶領域117に記憶した新規コンテンツデータをコンテンツ配信システムS内に投入するために、新規コンテンツデータを指定し、当該指定したコンテンツデータを保持させるコンテンツ保持ノード装置の配置数を指定したとき、制御手段114はコンテンツ投入処理を選択したと判定する。
コンテンツ投入処理が選択されたと判定すると(ステップS11:Yes)、制御手段114は、投入する新規コンテンツデータのコンテンツIDをランダムに決定する(ステップS12)。なお、このときのランダム性は、コンテンツID空間上で、偏りが無いことが望ましい。
コンテンツ配信システムSに投入する新規コンテンツのコンテンツIDを決定すると、制御手段114は、コンテンツの投入数、言い換えればコンテンツデータを保持させるコンテンツ保持ノード装置の配置数がX(上位桁の値の数)未満であるか否かを判定する(ステップS13)。本実施形態においては、ノード装置1の識別情報であるノードIDが4進数で表現されているため、上位桁の値の数Xは4となる。
ステップS13において、制御手段114は、コンテンツの投入数がX未満であると判定すると(ステップS13:Yes)、「投入数がX未満の処理」(ステップS14)の処理を行う。一方、コンテンツの投入数がX以上であると判定すると(ステップS13:No)、制御手段114は、「投入数がX以上の処理」(ステップS15)を行う。
また、ステップS11において、コンテンツ投入処理が選択されていないと判定すると(ステップS11:No)、制御手段114は、その他の処理を行う(ステップS16)。なお、ステップS14〜S16の処理が終了すると、制御手段114は、ステップS11からの処理を繰り返す。
(投入数がX未満の処理について)
次に、図14を参照して、コンテンツの投入数がX未満のときの処理(上述のステップS14の処理)について説明する。
まず、制御手段114は、投入数カウンタの値をクリアして0にセットし(ステップS20)、次に、投入する新規コンテンツデータを保持させるコンテンツ保持ノード装置をランダムに選択する(ステップS21)。
そして、制御手段114は、このようにランダムに選択したコンテンツ保持ノード装置のノードIDと投入するコンテンツのコンテンツIDとを比較し、当該ノードIDの上位一桁目と当該コンテンツIDの上位一桁目とが異なるものであるか否かを判定する(ステップS22)。ノードIDとコンテンツIDの上位一桁目が異なると判定すると(ステップS22:Yes)、制御手段114は、投入する新規コンテンツデータを既に投入したコンテンツ保持ノード装置として現に配置したノード装置のノードIDの上位一桁目とステップS21で選択したコンテンツ保持ノード装置のノードIDの上位一桁目とが異なるものであるか否かを判定する(ステップS23)。
ステップS21で選択したコンテンツ保持ノード装置のノードIDの上位一桁目と既に投入したコンテンツ保持ノード装置のノードIDの上位一桁目とが異なるものであると判定すると(ステップS23:Yes)、制御手段114は、ステップS21において選択したコンテンツ保持ノード装置へ新規コンテンツデータの保持要求を行い、新規コンテンツデータをそのコンテンツIDと共に送信する(ステップS24)。その後、制御手段114は、投入数カウンタの値を+1だけインクリメントし(ステップS25)、投入数カウンタの値がコンテンツの投入数よりも小さいか否かを判定する(ステップS26)。
ステップS22においてノードIDとコンテンツIDの上位一桁目が同一であると判定したとき(ステップS22:No)、またはステップS21で選択したコンテンツ保持ノード装置と既に投入したコンテンツ保持ノード装置のノードIDの上位一桁目が同一であると判定したとき(ステップS23:No)、または投入数カウンタの値がコンテンツの投入数よりも小さいとき(ステップS26:Yes)、制御手段114は、ステップS21からの処理を繰り返す。また、投入数カウンタの値がコンテンツの投入数と同等以上となったとき(ステップS26:No)、制御手段114は、コンテンツの投入数がX未満のときの処理を終了する。
(投入数がX以上の処理について)
次に、図15を参照して、コンテンツの投入数がX以上のときの処理(上述のステップS15の処理)について説明する。
まず、制御手段114は、投入数カウンタの値をクリアして0にセットし(ステップS30)、次に、投入数カウンタの値がXよりも小さいか否かを判定する(ステップS31)。
投入数カウンタの値がXよりも小さいとき(ステップS31:Yes)、制御手段114は、1桁目が「カウンタ値」から始まるノードIDを有するノード装置をコンテンツ保持ノード装置として選択し(ステップS32)、投入数カウンタの値がXと同等以上のとき(ステップS31:No)、制御手段114は、ランダムに算出したノードIDを有するノード装置をコンテンツ保持ノード装置として選択する(ステップS33)。
ステップS32,S33において、コンテンツ保持ノード装置の選択を行った後、制御手段114は、ステップS21において選択したコンテンツ保持ノード装置へ新規コンテンツデータの保持要求を行い、当該コンテンツ保持ノード装置に新規コンテンツデータを送信する(ステップS34)。その後、制御手段114は、投入数カウンタの値を+1だけインクリメントし(ステップS35)、投入数カウンタの値がコンテンツの投入数よりも小さいか否かを判定する(ステップS36)。
投入数カウンタの値がコンテンツの投入数よりも小さいとき(ステップS36:Yes)、制御手段114は、ステップS31からの処理を繰り返し、投入数カウンタの値がコンテンツの投入数と同等以上のとき(ステップS36:No)、制御手段114は、コンテンツの投入数がX以上のときの処理を終了する。
このように、本実施形態におけるコンテンツデータ管理装置10は、コンテンツデータを保持させるコンテンツ保持ノード装置の識別情報であるノードIDを、コンテンツデータの識別情報であるコンテンツIDと所定の関係となるノードIDに決定し、決定したノードIDを宛先識別情報としてコンテンツデータの保持要求を行うことによって、コンテンツ保持ノード装置を配置するので、コンテンツ保持ノード装置から送信される登録メッセージが転送される回数が大きくなり、キャッシュノード装置が多く配置されることになる。その結果、コンテンツを検索するリクエストノード装置からのコンテンツ検索メッセージは、ルートノード装置に到達するまでにキャッシュノード装置に到達する可能性が高くなり、コンテンツの検索にかかる時間は全体的に減少することになる。また、ルートノード装置に近いノード装置はコンテンツを検索するためのコンテンツ検索メッセージを転送する機会が減少する。したがって、ルートノード装置に近いノード装置の負荷を低減することができる。
[5.ノード装置1の処理の説明]
以下、ノード装置1の詳細動作について、図16のフローチャートを用いて更に具体的に説明する。図16はノード装置におけるメイン処理を示すフローチャートである。
まず、制御手段213は、ノード装置1の電源がOFF状態へ移行したか否かを判定する(ステップS100)。ノード装置1の電源がOFF状態へ移行していないと判定、すなわちON状態であると判定すると(ステップS100:No)、制御手段213は、次に、登録メッセージ又は削除メッセージを受信したか否かを判定する(ステップS101)。一方、ノード装置1の電源がOFF状態へ移行したと判定すると(ステップS100:Yes)、制御手段213は制御を中止する。
登録メッセージ又は削除メッセージを受信したとき(ステップS101:Yes)、制御手段213は、更にそのメッセージが登録メッセージであるか否かを判定し(ステップS102)、受信したメッセージが登録メッセージである場合には(ステップS102:Yes)、登録メッセージに含まれるインデックス情報(コンテンツID、コンテンツ保持ノード装置の識別情報など)をキャッシュとしてインデックステーブルに登録する(ステップS103)。一方、受信したメッセージが削除メッセージである場合には(ステップS102:No)、制御手段213は、削除メッセージで削除要求されるインデックス情報に対応するキャッシュをルーティングテーブルから削除する(ステップS104)。
登録メッセージ又は削除メッセージに対する処理(ステップS103,S104)が終了すると、制御手段213は、自ノード装置がそのメッセージに対応するルートノード装置であるか否かを判定する(ステップS105)。言い換えれば、そのメッセージが自ノード装置をルートノード装置としたメッセージであるか否かを判定する。そして、そのメッセージがルートノード装置宛ではないと判定すると(ステップS105:No)、制御手段213は、ルーティングテーブルから次の転送先ノード装置のノードID及びIPアドレスを取り出し、当該転送先ノード装置に対して受信した登録メッセージ又は削除メッセージを転送する(ステップS106)。
また、ステップS101において、登録メッセージ又は削除メッセージを受信していないと判定すると(ステップS101:No)、制御手段213は、コンテンツ保持ノード装置に対して要求したコンテンツデータのパケットを受信したか否かを判定する(ステップS107)。コンテンツデータのパケットを受信したと判定すると(ステップS107:Yes)、受信したコンテンツデータを第2記憶部204に記憶する(ステップS108)。次に、制御手段213は、コンテンツデータのパケットを全て受信、すなわち1つのコンテンツのデータを全て受信したか否かを判定する(ステップS109)。コンテンツのデータを全て受信したと判定すると(ステップS109:Yes)、制御手段213は、受信したコンテンツのコンテンツIDを宛先識別情報とした登録メッセージを送信する。すなわち、受信したコンテンツのルートノード装置に対して登録メッセージを送信する(ステップS110)。
ステップS107において、要求したコンテンツデータのパケットを受信していないと判定すると(ステップS107:No)、コンテンツデータ管理装置10が投入したコンテンツデータのパケットを受信したか否かを判定する(ステップS111)。コンテンツデータ管理装置10が投入したコンテンツデータのパケットを受信したと判定すると(ステップS111:Yes)、制御手段213は、ステップS108へ処理を移行する。一方、コンテンツデータ管理装置10が投入したコンテンツデータのパケットを受信していないと判定すると(ステップS111:No)その他の処理を行う(ステップS112)。
ステップS106,S110,S112の処理が終了した場合、またはステップS105において自ノード装置がルートノード装置であると判定した場合(ステップS105:Yes)、またはステップS109においてコンテンツのデータを全て受信していないと判定した場合(ステップS109:No)は、ステップS100の処理に移行する。
このように、本実施形態におけるノード装置1は、コンテンツデータを第2記憶部204に記憶したとき、登録メッセージを生成して送信し、また登録メッセージを受信すると自ノード装置がルートノード装置であるか否かにかかわらず受信した登録メッセージに含まれるインデックス情報をインデックステーブルに登録するようにしてキャッシュノード装置として機能するように構成している。したがって、コンテンツを検索するリクエストノード装置からのコンテンツ検索メッセージに対して、キャッシュノード装置としてコンテンツ保持ノード装置のノードIDやIPアドレスを返信することができ、コンテンツの検索にかかる時間を低減することができる。
[6.他の種類のコンテンツ配信システムへの適用]
上記実施形態においては、Pastry型やTapestry型のコンテンツ配信システムへ本発明を適用したものであるが、メッセージの転送方法が異なるkademlia型、chord型、Viceroy型、CAN型などのコンテンツ配信システムにも本発明を適用可能である。
以下、kademlia型のコンテンツ配信システムとchord型のコンテンツ配信システムに本発明を適用した場合の例を説明する。
kademlia型のコンテンツ配信システムでは、それぞれのノード装置1は、自ノード装置1からの距離に応じて所定数以下のコンタクト先であるノード装置の情報(IPアドレスやノードID)をリストとして記憶手段に記憶している。例えば、図17(a)において、3bitのID空間に配置されたノードID「101」のノード装置1a'は、図17(b)にしめすように距離[2i,2i+1−1](0≦i≦2)のノード装置の情報を最大2個まで有しており、これらはリストとして記憶されている。このリストでは、距離[1]であるノード装置としてノードID「100」の情報、距離[2〜3]であるノード装置としてノードID「110」,「111」の情報、距離[4〜7]であるノード装置としてノードID「000」,「011」の情報(例えば、IPアドレス)がそれぞれノードIDと共に距離に関連付けられて登録されている。尚、図17(a)は説明を容易にするためにID空間をツリー構造として表現している
そして、ノード装置は、上記ルーティングテーブルに代えて、このリストを用いてメッセージの転送を行うようにしている。例えば、登録メッセージの場合、リストに登録したノード装置のノードIDのうち、登録メッセージの宛先識別情報であるコンテンツIDに最も近いノードID、すなわちコンテンツIDとの論理和が最も小さくなるノードIDを有するノード装置へメッセージを転送する。
このように構成されるkademlia型のコンテンツ配信システムに対して、本発明を適用する場合、コンテンツデータ管理装置10の制御手段114は、保持させようとするコンテンツデータのコンテンツIDに対して所定の関係、すなわち排他的論理和が最も大きくなるノードIDを有するノード装置をコンテンツデータ保持ノード装置として決定する。例えば、図17において、コンテンツIDを「010」とした場合、このID「010」からみて数値的差異が最も大きくなるID「101」に最も近いノードIDを有するノード装置をコンテンツ保持ノード装置として決定するのである。このようにコンテンツ保持ノード装置を決定することによって、キャッシュノード装置をより多く配置することができる。
また、chord型のコンテンツ配信システムでは、各ノード装置1は、ID空間において自ノード装置からID空間の大きさの2の階乗分の1だけ離れたノード装置のノードID及びIPアドレスをfinger tableと呼ばれるテーブルに保持している。例えば、図18に示すように、ID空間が64(N1〜N64のIDが存在)であり、ノードID「N8」のノード装置のfinger tableには、ID空間の大きさの1/2だけ離れたノードID「N40」に最も近いノードID「N42」を有するノード装置のIPアドレスを保持しており、同様に、ID空間の大きさの1/4だけ離れたノードID「N24」に最も近いノードID「N28」のノード装置のIPアドレス、ID空間の大きさの1/8だけ離れたノードID「N16」に最も近いノードID「N21」のノード装置のIPアドレス、ID空間の大きさの1/16だけ離れたノードID「N12」に最も近いノードID「N14」のノード装置のIPアドレス、ID空間の大きさの1/32だけ離れたノードID「N10」に最も近いノードID「N14」のノード装置のIPアドレス、ID空間の大きさの1/64だけ離れたノードID「N9」に最も近いノードID「N14」のノード装置のIPアドレスを保持している。
そして、ノード装置は、上記ルーティングテーブルに代えて、このfinger tableを用いてメッセージの転送を行うようにしている。例えば、登録メッセージの場合、finger tableに登録したノード装置のノードIDのうち、登録メッセージの宛先識別情報であるコンテンツIDを超えない最も大きいノードIDを有するノード装置へメッセージを転送する。したがって、コンテンツIDへの残りのID空間を半分にするノード装置へメッセージを転送することができ、このようにして宛先のノード装置へメッセージが転送される。
このように構成されるchord型のコンテンツ配信システムに対して、本発明を適用する場合、コンテンツデータ管理装置10の制御手段114は、保持させようとするコンテンツデータのコンテンツIDに対して所定の関係、すなわち数値的差異が最も大きくなるノードIDを有するノード装置をコンテンツデータ保持ノード装置として決定する。例えば、図18において、コンテンツIDを「N8」とした場合、このID「N8」からみて数値的差異が最も大きくなるID「N40」に最も近いノードID「N42」を有するノード装置をコンテンツ保持ノード装置として決定するのである。このようにコンテンツ保持ノード装置を決定することによって、キャッシュノード装置をより多く配置することができる。
尚、本実施形態においては、コンテンツデータ管理装置10は投入する新規コンテンツデータのコンテンツIDをランダムに決定することにしたが、投入する新規コンテンツデータのコンテンツの名称(コンテンツタイトル)やコンテンツの概要情報(あらすじ)等のキーワードを、ノードIDを得るときと共通のハッシュ関数によりハッシュ化することによって、コンテンツIDを決定するようにしてもよい。このようにすれば、カタログリストにコンテンツIDを掲載する必要がなくなり、カタログリストの情報を減らすことができる。なお、異なるコンテンツデータであっても、同一のキーワード(例えば、コンテンツの名称)になる場合が想定されるが、この場合、同じハッシュ値になってしまうので、これを避けるために、ハッシュ化するキーワードを、例えば、コンテンツの名称と著作権情報(例えば、出演者名、監督名、原作者名、歌手名、作曲者名、または作詞者名等)の組み合わせとすればよい。
また、上述のようにコンテンツデータのコンテンツ名称等のキーワードを、ノードIDを得るときと共通のハッシュ関数によりハッシュ化してコンテンツIDを決定するようにすれば、ノード装置は、このハッシュ関数による演算手段を設けることにより、コンテンツデータ管理装置からコンテンツIDを取得する必要がない。すなわち、コンテンツデータの固有情報をノードIDを算出するハッシュ関数と同一のハッシュ関数によって演算することによってコンテンツデータの識別情報であるコンテンツIDとするコンテンツ識別情報演算手段を設けるのである。
また、本実施形態においては、コンテンツデータ管理装置10がコンテンツ保持ノード装置を決定するようにしたが、コンテンツデータ管理装置10の一部又は全部の機能をルートノード装置に内蔵するようにしてもよい。例えば、コンテンツデータ管理装置10はルートノード装置へコンテンツデータを配布する機能を有し、一方、ルートノード装置はコンテンツデータ管理装置10から受信した自ノード装置の管理対象であるコンテンツデータを記憶し、当該コンテンツデータのコンテンツIDと所定の関係となるノードIDを有するノード装置をコンテンツ保持ノード装置として、コンテンツデータ管理装置10から受信したコンテンツデータを送信する。このように、コンテンツ保持ノード装置を配置するためのコンテンツデータ管理装置としての機能をノード装置に持たせるようにしてもよい。
本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。 ID空間の説明図である。 DHTによってルーティングテーブルが作成される様子の一例を示す図である。 本実施形態に係るノード装置のルーティングテーブルの一例である。 DHTによりコンテンツデータの保持元であるノード装置1が検索される様子の一例を示す図である。 コンテンツ保持ノードの登録メッセージが転送される様子をスパニングツリー状に表した図である。 本実施形態に係るノード装置のインデックステーブルの一例である。 ランダムにコンテンツデータを配布する方法を示す図である。 本実施形態に係るコンテンツデータの配布方法を示す図である。 本実施形態に係るコンテンツデータの配布方法を示す図である。 本実施形態におけるコンテンツデータ管理装置の概略構成例を示す図である。 本実施形態におけるノード装置の概略構成例を示す図である。 コンテンツデータ管理装置におけるメイン処理を示すフローチャート。 コンテンツデータ管理装置における投入数がX未満の処理を示すフローチャート。 コンテンツデータ管理装置における投入数がX以上の処理を示すフローチャート。 ノード装置におけるメイン処理を示すフローチャート。 kademlia型のコンテンツ配信システムを説明するための図である。 chord型のコンテンツ配信システムを説明するための図である。
符号の説明
1 ノード装置
8 ネットワーク
10 コンテンツデータ管理装置
102 ノード装置のCPU
103 ノード装置の第1記憶部
104 ノード装置の第2記憶部
114 ノード装置の制御手段
202 コンテンツデータ管理装置のCPU
103 コンテンツデータ管理装置の第1記憶部
104 コンテンツデータ管理装置の第2記憶部
113 コンテンツデータ管理装置の制御手段
S コンテンツ配信システム

Claims (15)

  1. ネットワークを介して互いに接続された複数のノード装置と、前記複数のノード装置のうちの一部のノード装置を、前記複数のノード装置間で共用されるべきコンテンツデータを記憶するコンテンツ保持ノード装置とするために前記コンテンツデータを前記一部のノード装置に記憶させるコンテンツデータ管理装置とを備え、前記コンテンツ保持ノード装置から、他のノード装置にコンテンツデータが配信されるコンテンツ配信システムであって、
    前記ノード装置は、
    前記複数のノード装置のうち一部のノード装置の識別情報を記憶するルーティングテーブル記憶手段と、
    前記ネットワークを介して受信したメッセージの宛先識別情報と前記ルーティングテーブルとに基づいて、前記受信したメッセージが自ノード装置宛であるか否かを判定するメッセージ宛先判定手段と、
    前記メッセージ宛先判定手段により前記受信したメッセージが自ノード装置宛ではないと判定されると、前記受信したメッセージの宛先識別情報に基づいて、前記ルーティングテーブルから送信先ノード装置を選択して、前記受信したメッセージを前記送信先ノード装置へ転送するメッセージ転送手段と、
    受信したメッセージがコンテンツデータの保持要求であるとき、前記コンテンツデータの保持要求に対応するコンテンツデータを記憶するコンテンツデータ記憶手段と、
    前記コンテンツデータを前記コンテンツデータ記憶手段に記憶したとき、記憶した前記コンテンツデータの識別情報と自ノード装置の識別情報を含む登録メッセージを生成する登録メッセージ生成手段と、
    前記登録メッセージを、記憶した前記コンテンツデータの識別情報に基づいて、前記ルーティングテーブルから送信先ノード装置を選択して送信する登録メッセージ送信手段と、
    前記受信したメッセージが前記登録メッセージであるとき、前記登録メッセージに含まれる前記コンテンツ保持ノード装置の識別情報を記憶するコンテンツ保持ノード情報記憶手段と、
    を有し、
    前記コンテンツデータ管理装置は、
    前記コンテンツデータの識別情報を決定するコンテンツデータ識別情報決定手段と、
    前記コンテンツデータを記憶するコンテンツデータ記憶手段と、
    前記コンテンツデータ記憶手段に記憶したコンテンツデータを保持させるコンテンツ保持ノード装置を決定するコンテンツ保持ノード装置決定手段と、
    前記コンテンツ保持ノード装置決定手段によって決定したコンテンツ保持ノード装置にコンテンツデータの保持要求を行うコンテンツ保持要求手段と、
    を有し、
    前記コンテンツ保持ノード装置決定手段は、
    前記コンテンツデータの識別情報と所定の関係となる識別情報を有するノード装置を前記コンテンツデータ保持装置として決定する
    ことを特徴とするコンテンツ配信システム。
  2. 前記ノード装置は、
    要求する前記コンテンツデータの識別情報と自ノード装置の識別情報を含むコンテンツ保持ノード要求情報を生成するコンテンツ保持ノード要求情報生成手段と、
    前記コンテンツデータの識別情報と所定条件とによって前記ルーティングテーブルに記憶されたノード装置の識別情報から送信先ノード装置を選択して、前記コンテンツ保持ノード要求情報を送信するコンテンツ保持ノード要求情報送信手段と、
    前記コンテンツ保持ノード要求情報を受信した際に、前記コンテンツ保持ノード情報記憶手段に記憶された前記コンテンツ保持ノード装置の識別情報に、要求された前記コンテンツデータに対する前記コンテンツ保持ノード装置の識別情報があるか否かを判断する判断手段と、
    要求された前記コンテンツデータに対する前記コンテンツ保持ノード装置の識別情報が記憶されている場合、当該コンテンツ保持ノード装置の識別情報を、前記コンテンツ保持ノード要求情報に含まれる送信元識別情報に基づいて前記コンテンツ保持ノード要求情報の送信元ノード装置に対して送信するノード識別情報送信手段と
    を備えたことを特徴とする請求項1に記載のコンテンツ配信システム。
  3. 前記コンテンツ保持ノード装置決定手段は、
    保持させる前記コンテンツデータの識別情報に対して、上位一桁目の情報が異なる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定する
    ことを特徴とする請求項1又は請求項2に記載のコンテンツ配信システム。
  4. 前記コンテンツ保持ノード装置決定手段は、
    複数の前記コンテンツ保持ノード装置を決定するとき、前記上位一桁目がそれぞれ異なる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定する
    ことを特徴とする請求項3に記載のコンテンツ配信システム。
  5. 前記コンテンツ保持ノード装置決定手段は、
    前記決定する前記コンテンツ保持ノード装置の数が前記上位一桁目の数以上であるとき、前記上位一桁目の数以上の前記コンテンツ保持ノード装置をランダムに決定する
    ことを特徴とする請求項4に記載のコンテンツ配信システム。
  6. 前記コンテンツ保持ノード装置決定手段は、
    保持させる前記コンテンツデータの識別情報に対して、排他的論理和の最も大きくなる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定する
    ことを特徴とする請求項1又は請求項2に記載のコンテンツ配信システム。
  7. 前記コンテンツ保持ノード装置決定手段は、
    保持させる前記コンテンツデータの識別情報に対して、数値的差異が最も大きくなる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定する
    ことを特徴とする請求項1又は請求項2に記載のコンテンツ配信システム。
  8. ネットワークを介して互いに接続された複数のノード装置と、前記複数のノード装置のうちの一部のノード装置を、前記複数のノード装置間で共用されるべきコンテンツデータを記憶するコンテンツ保持ノード装置とするために前記コンテンツデータを前記一部のノード装置に記憶させるコンテンツデータ管理装置とを備え、前記コンテンツ保持ノード装置から、他のノード装置にコンテンツデータが配信されるコンテンツ配信システムにおける前記コンテンツデータ管理装置であって、
    前記コンテンツデータの識別情報を決定するコンテンツデータ識別情報決定手段と、
    前記コンテンツデータを記憶するコンテンツデータ記憶手段と、
    前記コンテンツデータ記憶手段に記憶したコンテンツデータを保持させるコンテンツ保持ノード装置を決定するコンテンツ保持ノード装置決定手段と、
    前記コンテンツ保持ノード装置決定手段によって決定したコンテンツ保持ノード装置にコンテンツデータの保持要求を行うコンテンツ保持要求手段と、
    を有し、
    前記コンテンツ保持ノード装置決定手段は、
    前記コンテンツデータの識別情報と所定の関係となる識別情報を有するノード装置を前記コンテンツデータ保持装置として決定する
    ことを特徴とするコンテンツデータ管理装置。
  9. 前記コンテンツ保持ノード装置決定手段は、
    保持させる前記コンテンツデータの識別情報に対して、上位一桁目の情報が異なる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定する
    ことを特徴とする請求項8に記載のコンテンツデータ管理装置。
  10. 前記コンテンツ保持ノード装置決定手段は、
    複数の前記コンテンツ保持ノード装置を決定するとき、前記上位一桁目がそれぞれ異なる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定する
    ことを特徴とする請求項9に記載のコンテンツデータ管理装置。
  11. 前記コンテンツ保持ノード装置決定手段は、
    前記決定する前記コンテンツ保持ノード装置の数が前記上位一桁目の数以上であるとき、前記上位一桁目の数以上の前記コンテンツ保持ノード装置をランダムに決定する
    ことを特徴とする請求項10に記載のコンテンツデータ管理装置。
  12. 前記コンテンツ保持ノード装置決定手段は、
    保持させる前記コンテンツデータの識別情報に対して、排他的論理和の最も大きくなる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定する
    ことを特徴とする請求項8に記載のコンテンツデータ管理装置。
  13. 前記コンテンツ保持ノード装置決定手段は、
    保持させる前記コンテンツデータの識別情報に対して、数値的差異が最も大きくなる識別情報を有するノード装置を前記コンテンツデータ保持ノード装置として決定する
    ことを特徴とする請求項8に記載のコンテンツデータ管理装置。
  14. コンピュータに、請求項8〜13のいずれかに記載のコンテンツデータ管理装置の各手段として機能させるためのプログラム。
  15. ネットワークを介して互いに接続された複数のノード装置と、前記複数のノード装置のうちの一部のノード装置を、前記複数のノード装置間で共用されるべきコンテンツデータを記憶するコンテンツ保持ノード装置とするために前記コンテンツデータを前記一部のノード装置に記憶させるコンテンツデータ管理装置とを備え、前記コンテンツ保持ノード装置から、他のノード装置にコンテンツデータが配信されるコンテンツ配信システムにおける情報処理方法であって、
    前記ノード装置は、
    前記複数のノード装置のうち一部のノード装置の識別情報と位置情報とを関連付けたルーティングテーブルを記憶するルーティングテーブル記憶ステップと、
    前記ネットワークを介して受信したメッセージの宛先識別情報と前記ルーティングテーブルとに基づいて、前記受信したメッセージが自ノード装置宛であるか否かを判定するメッセージ宛先判定ステップと、
    前記受信したメッセージが自ノード装置宛ではないと判定すると、前記受信したメッセージの宛先識別情報に基づいて、前記ルーティングテーブルから送信先ノード装置を選択して、前記受信したメッセージを前記送信先ノード装置へ転送するメッセージ転送ステップと、
    前記転送するメッセージがコンテンツデータの保持要求であるとき、前記コンテンツデータの保持要求に対応するコンテンツデータを記憶するコンテンツデータ記憶ステップと、
    前記コンテンツデータを前記コンテンツデータ記憶手段に記憶したとき、記憶した前記コンテンツデータの識別情報と自ノード装置の識別情報を含む登録メッセージを生成する登録メッセージ生成ステップと、
    前記登録メッセージを、記憶した前記コンテンツデータの識別情報に基づいて、前記ルーティングテーブルから送信先ノード装置を選択して送信する登録メッセージ送信ステップと、
    前記受信したメッセージが前記登録メッセージであるとき、前記登録メッセージに含まれる前記コンテンツ保持ノード装置の識別情報を記憶するコンテンツ保持ノード情報記憶ステップと、
    を有し、
    前記コンテンツデータ管理装置は、
    前記コンテンツデータの識別情報を決定するコンテンツデータ識別情報決定ステップと、
    前記コンテンツ保持ノード装置と所定の関係となる識別情報を有するノード装置を前記コンテンツデータ保持装置として決定するコンテンツ保持ノード装置決定ステップと、
    前記コンテンツ保持ノード装置決定手段によって決定したコンテンツ保持ノード装置にコンテンツデータの保持要求を行うコンテンツ保持要求ステップと、
    を有することを特徴とするコンテンツ配信システムの情報処理方法。
JP2006042109A 2006-02-20 2006-02-20 コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム Expired - Fee Related JP4797679B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006042109A JP4797679B2 (ja) 2006-02-20 2006-02-20 コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006042109A JP4797679B2 (ja) 2006-02-20 2006-02-20 コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム

Publications (2)

Publication Number Publication Date
JP2007219984A true JP2007219984A (ja) 2007-08-30
JP4797679B2 JP4797679B2 (ja) 2011-10-19

Family

ID=38497196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006042109A Expired - Fee Related JP4797679B2 (ja) 2006-02-20 2006-02-20 コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム

Country Status (1)

Country Link
JP (1) JP4797679B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187141A (ja) * 2008-02-04 2009-08-20 Brother Ind Ltd 情報配信システム及び同システムにおける重複数調整方法
JP2011008711A (ja) * 2009-06-29 2011-01-13 Brother Industries Ltd ノード装置、処理プログラム及び分散保存方法
WO2018092679A1 (ja) * 2016-11-17 2018-05-24 国立大学法人電気通信大学 ネットワークシステム、キャッシュ方法、キャッシュプログラム、管理装置、管理方法及び管理プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301880A (ja) * 1997-04-10 1998-11-13 At & T Corp スケーラブルネットワークオブジェクトキャッシュ
WO2005001713A1 (en) * 2003-06-30 2005-01-06 International Business Machines Corporation Retrieving a replica of an electronic document in a computer network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301880A (ja) * 1997-04-10 1998-11-13 At & T Corp スケーラブルネットワークオブジェクトキャッシュ
WO2005001713A1 (en) * 2003-06-30 2005-01-06 International Business Machines Corporation Retrieving a replica of an electronic document in a computer network
JP2007520778A (ja) * 2003-06-30 2007-07-26 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・ネットワークにおける電子文書のレプリカの検索

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187141A (ja) * 2008-02-04 2009-08-20 Brother Ind Ltd 情報配信システム及び同システムにおける重複数調整方法
JP2011008711A (ja) * 2009-06-29 2011-01-13 Brother Industries Ltd ノード装置、処理プログラム及び分散保存方法
WO2018092679A1 (ja) * 2016-11-17 2018-05-24 国立大学法人電気通信大学 ネットワークシステム、キャッシュ方法、キャッシュプログラム、管理装置、管理方法及び管理プログラム

Also Published As

Publication number Publication date
JP4797679B2 (ja) 2011-10-19

Similar Documents

Publication Publication Date Title
JP4640307B2 (ja) コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信システムにおける端末装置及びそのプログラム
JP2007193626A (ja) コンテンツ配信システム、ノード装置及びその情報処理方法並びにそのプログラム
WO2008026400A1 (fr) Système de distribution de contenu, procédé de traitement d'information dans un système de distribution de contenu, dispositif terminal et support d'enregistrement incorporant son programme enregistré
WO2006103800A1 (ja) 情報処理装置及び蓄積装置、情報処理方法及び蓄積方法並びに情報処理用プログラム及び蓄積装置用プログラム
JP2007058597A (ja) 情報配信システム、情報配信方法、情報配信システムに含まれるノード装置および情報処理プログラム
WO2008013036A1 (fr) Dispositif de nœud, support d'enregistrement contenant un programme de traitement d'informations, procédé de distribution de contenu et système de distribution de contenu
JP4765876B2 (ja) コンテンツ配信システムにおける端末装置及びその情報処理方法並びにプログラム
JP4797679B2 (ja) コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム
US8332463B2 (en) Distributed storage system, connection information notifying method, and recording medium in which distributed storage program is recorded
JP4692278B2 (ja) コンテンツ配信システム、端末装置及びその情報処理方法並びにそのプログラム
JP4877107B2 (ja) 情報配信システムにおける端末装置及び情報処理プログラム、並びに端末装置の情報処理方法
JP5532649B2 (ja) ノード装置、ノード処理プログラム及びコンテンツ保存方法
JP2007336396A (ja) コンテンツ配信システム、コンテンツ配信方法、端末装置及びそのプログラム
JP2008035337A (ja) ノード装置、配信装置、管理装置、情報処理プログラム、コンテンツ配信方法及びコンテンツ配信システム
JP2008059398A (ja) 識別情報割当装置及びその情報処理方法並びにそのプログラム
JP2009232272A (ja) コンテンツ分散保存システム、コンテンツ再生方法、ノード装置、管理装置、ノード処理プログラム、及び管理処理プログラム
JP2008067089A (ja) コンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法
JP4935734B2 (ja) コンテンツ分散保存システム、ノード装置及びノード処理プログラム並びにノード処理方法
JP5287059B2 (ja) ノード装置、ノード処理プログラム及び保存指示方法
JP5157770B2 (ja) ノード装置、プログラム及び保存指示方法
JP2008242990A (ja) 情報通信システム、情報通信システムに含まれる端末装置及びその情報処理方法並びに情報処理プログラム
JP2008210295A (ja) コンテンツ配信システム及びその情報処理方法並びにコンテンツ管理装置及びそのプログラム
JP4635966B2 (ja) コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信システムにおける端末装置及びそのプログラム
JP5347876B2 (ja) 情報通信システム、ノード装置、コンテンツ取得方法及びプログラム
JP2008084030A (ja) 識別情報割当装置及びその情報処理方法並びにそのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080421

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110315

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110512

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110705

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110718

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees