JP5026388B2 - ノード装置及びコンピュータプログラム - Google Patents

ノード装置及びコンピュータプログラム Download PDF

Info

Publication number
JP5026388B2
JP5026388B2 JP2008270248A JP2008270248A JP5026388B2 JP 5026388 B2 JP5026388 B2 JP 5026388B2 JP 2008270248 A JP2008270248 A JP 2008270248A JP 2008270248 A JP2008270248 A JP 2008270248A JP 5026388 B2 JP5026388 B2 JP 5026388B2
Authority
JP
Japan
Prior art keywords
content
node
information
node device
unit
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.)
Expired - Fee Related
Application number
JP2008270248A
Other languages
English (en)
Other versions
JP2010097570A (ja
Inventor
寿之 大亦
清彦 石川
浩幸 今泉
智 藤津
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.)
Japan Broadcasting Corp
Original Assignee
Japan Broadcasting Corp
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 Japan Broadcasting Corp filed Critical Japan Broadcasting Corp
Priority to JP2008270248A priority Critical patent/JP5026388B2/ja
Publication of JP2010097570A publication Critical patent/JP2010097570A/ja
Application granted granted Critical
Publication of JP5026388B2 publication Critical patent/JP5026388B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

本発明は、P2P(ピア・トゥ・ピア、peer-to-peer)ネットワークを構成する各ノードにおいてコンテンツを分散管理するノード装置及びコンピュータプログラムに関する。
<P2PとDHT(分散ハッシュテーブル)を用いたコンテンツの分散管理>
近年、日本においては、インターネットの普及が急速に進んでおり、2007年末でのインターネットの人口普及率は69.0%に達した。中でもFTTH(Fiber to the home)やxDSL(Digital Subscriber Line)のようなブロードバンド回線の利用者数がインターネット利用者数に占める割合は66.1%となっており、ブロードバンドインターネットを利用した通信が当たり前となりつつある。このようなブロードバンド環境においては、HD(High Definition)映像をはじめとする大容量のコンテンツの配信が可能となる。これまでは、映像をはじめとするコンテンツ配信サービスといえば、パーソナルコンピュータ向けのサービスが中心であったが、2007年11月のアクトビラによる対応受信機向けの有料映像配信サービスの開始、2008年6月のIPTVフォーラムの設立、等に代表されるように、デジタル放送受信機向けの通信を利用したコンテンツ配信サービス(IPTV(Internet Protocol TeleVision)サービス)も盛んになりつつある。
このようなコンテンツ配信サービスでは、クライアント−サーバ型のシステム構築が一般的となっているが、コンテンツ配信事業者のように、大規模なサービスやユーザ数を想定した場合、アクセスの集中によるサーバやネットワークの負荷増大などの問題が発生する。しかし、このような問題を解決するためには、大規模なシステム構築やネットワークインフラ整備などに、莫大なコストが必要となってしまう。例えば、2008年4月現在の地上デジタル放送対応受信機の累計出荷台数は約3500万台であり、受信機の普及規模を想定すると、コストの問題を解決する必要がある。
これらの問題の解決策として、P2Pネットワークを用いたコンテンツ配信技術が注目されてきており、世界では、P2P技術を用いた電話サービスや、ストリーミング型、ダウンロード型のコンテンツ配信を行うサービスなどが行われている。また、日本でもP2P技術を用いたエンドユーザ向けのいくつかのコンテンツ配信サービスが行われている。このP2P技術は、サーバからの情報トラフィック量を極力減らすとともに端末間でコンテンツのやり取りなどを行うため、システムやネットワークインフラの構築の規模を抑えられるだけでなく、輻輳に生じるサーバ負荷やネットワーク負荷を大幅に軽減することが出来るという特徴をもつ。
このようなP2P技術を用いたコンテンツ配信サービスのシステムを構築するためには、P2Pネットワークにおけるコンテンツの所在を検索し発見できる機能が必須となるが、コンテンツの情報をサービスに参加している複数のノードで分散管理することにより、コンテンツの検索と発見を可能にする手法が一般的に知られている。そのような手法を実現するための要素技術として、DHT(分散ハッシュテーブル、Distributed Hash Table)が代表的であり、ChordやKademliaをはじめとする様々なアルゴリズムが開発されている。
DHTを用いたコンテンツの分散管理では、コンテンツとノードは同一のハッシュ空間上に存在する。それぞれのノードは、システム全体に存在するコンテンツの所在(コンテンツを保持しているノード)の情報のうち、ハッシュ空間上で近傍に存在するコンテンツの情報(以下、「コンテンツリスト」と呼ぶ)を保持、管理する。また、それぞれのノードは、ハッシュ空間上で近傍に存在するノードのIPアドレスやポートといった転送先の情報(以下、「ノードリスト」と呼ぶ)を保持、管理する。このようなコンテンツ分散管理が行なわれているネットワークにおいて、あるノードが、所望のコンテンツの所在を検索する場合、ノードリストを用いて他のノードに検索のメッセージを送信し、検索のメッセージは、複数のノードを経由して、所望のコンテンツを管理する管理ノードに到達する。そして、コンテンツの管理ノードから当該ノードに、いずれのノードにコンテンツが蓄積されているか、すなわち、コンテンツの所在を通知する。検索を要求したノードは、通知されたコンテンツの所在に基づいて、コンテンツを蓄積しているノードへアクセスし、コンテンツを取得する。
代表的なDHTのアルゴリズムであるChordは、ノードやコンテンツをハッシュ値の順に円環状に並べ、時計回りで測った長さをハッシュ空間上の距離と定義する。一方のKademliaは、ノードやコンテンツをハッシュ値に基づいて二分木のような構造上に配置し、ハッシュ値のハミング距離をハッシュ空間上の距離と定義する。
このような、DHTを用いたコンテンツの分散管理においては、コンテンツのIDによってコンテンツを管理するノードは分散される。そして、新しいコンテンツがシステムに投入されるたびに、そのコンテンツを管理するノードが決定され、コンテンツリストが作成される。特許文献1では、新しいコンテンツが投入されても、アクセス集中によるノードやネットワークの負荷を抑えることが可能な手法が開示されている。
<高度BSダウンロードサービスとP2P>
また、現在、日本においてデジタル放送の普及が進んでおり、2011年の地上およびBSアナログ放送の終了とともにテレビ放送のデジタル化が完了する。完全デジタル化に伴い、空いたアナログ放送の周波数帯を利用したサービスとして、リアルタイム型だけでなく、蓄積型の放送方式が検討されている。地上放送ではISDB−Tmm方式によるモバイル端末向けのサーバ型放送が、衛星放送では高度BSデジタル放送によるダウンロードサービスが検討されている。また、通信の分野においてはアクトビラが2008年度中にダウンロード型の番組コンテンツの配信サービスを開始する予定である。このように、放送と通信の両方の分野において、受信機でのダウンロード型のサービスが検討されている。
高度BSデジタル放送のダウンロードサービスにおいては、予約蓄積できなかったコンテンツや、降雨減衰など受信側の事情により欠損の生じたコンテンツに対して、何らかの補償・補完のサービスを提供することが想定される。クライアント−サーバ型のシステムにより、受信機が放送事業者のサーバからコンテンツをダウンロードする方法も考えられるが、受信機数と運用コストを考慮するとP2P型のシステムを構築することが有効であると検討されている(非特許文献1参照)。
特開2008−129694号公報 石川 清彦、藤井 亜里砂、大亦 寿之,「デジタルコンテンツのDHTによるP2Pネットワーク内流通制御方式」,電子情報通信学会,2008年 暗号と情報セキュリティシンポジウム(SCIS2008(Symposium on Cryptography and Information Security 2008)),平成20年1月22日
上述したように、P2Pネットワーク上のコンテンツの分散管理においては、新しいコンテンツがシステムに投入されるたびに、そのコンテンツを管理するノードが決定され、その管理ノードにおいてコンテンツリストが作成される。コンテンツを蓄積したノードは、そのコンテンツの管理ノードに対して、自ノードのIPアドレスやポートといった転送先の情報を通知することで、管理ノードのコンテンツリストにコンテンツの所在を記述する。逆に、コンテンツを削除した場合は、同様にして管理ノードに通知し、コンテンツリストから自ノードの情報を削除する。
しかし、大量のノードにコンテンツが一斉に投入された場合または一斉に削除された場合、大量のノードからそのコンテンツの管理ノードに対してコンテンツリストの更新要求が発信され、管理ノードへのアクセスおよび管理ノード周辺のネットワークに対する負荷が急増するという問題がある。高度BSデジタル放送のダウンロードサービスなど、放送でのダウンロード型のコンテンツ配信においては、大量の受信機に一斉にコンテンツが蓄積される。現行の地上デジタル放送において、視聴率1%の番組というのは、受信機の累計出荷台数約3500万台で試算すると、約35万台の受信機でその番組を受信したことを意味し、大量の受信機を想定した大規模なシステム設計が必要となる。
そのため、放送によるダウンロードコンテンツの分散管理に、非特許文献1が示すようなDHTを適用した場合、管理ノードとなる受信機およびその周辺のネットワークに対する負荷を低減する手法が不可欠である。
特許文献1では、複数のノードにより構成されるグループごとにタイミングをずらして管理ノードにコンテンツリストの更新要求を出すことによって、アクセス集中によるノードやネットワークの負荷を抑える手法が開示されている。しかし、更新要求の発信に待ち時間が必要となるため、管理ノードのコンテンツリストの更新が終了するまでに時間が必要である点、コンテンツごとに待ち時間が異なるためコンテンツが短時間に連続的に投入された場合に更新要求を出すノード装置の処理が輻輳する可能性がある点、が課題である。
本発明は、このような事情を考慮してなされたもので、その目的は、コンテンツを分散管理するP2Pネットワークを構成する大量のノードに対して、無線放送等により当該P2Pネットワークを経由せずにコンテンツがダウンロードされるなどして、コンテンツが一斉に投入された場合に、輻輳を軽減しながら、コンテンツ管理情報の更新を迅速に管理ノードへ要求することができるノード装置及びコンピュータプログラムを提供することある。
[1] 本発明の一態様は、所定の規則により複数の群に分けられる複数のノード装置と当該複数のノード装置間を接続するネットワークとからなるコンテンツ分散管理システムを構成し、前記所定の規則により前記複数の群のうちコンテンツの所在を管理する前記群を判断する前記ノード装置であって、前記ネットワークを介して接続される他のノード装置の通信アドレスを設定したノードリストを記憶するノードリスト記憶部と、前記ネットワークを介して接続され且つ自ノード装置が属する群と同じ群に属する他のノード装置のうち、コンテンツを蓄積している前記他のノード装置から、当該コンテンツの識別情報と当該コンテンツを記憶している当該他のノード装置の通信アドレスとを関連付けてなるコンテンツ蓄積更新情報を受信する通信入力部と、前記通信入力部により受信した前記コンテンツ蓄積更新情報のうち、同一のコンテンツの識別情報を含む複数の前記コンテンツ蓄積更新情報を特定し、特定された前記コンテンツ蓄積更新情報から前記他のノード装置の通信アドレスをそれぞれ読み出し、前記同一のコンテンツの識別情報と、読み出された複数の前記他のノード装置の通信アドレスとを関連付けてなるコンテンツ蓄積更新集約情報を生成するコンテンツ蓄積更新集約情報生成部と、前記ノードリスト記憶部に記憶されている前記ノードリストから、前記コンテンツ蓄積更新集約情報を送信する宛先として、自ノード装置が属する前記群とは異なる群に属する前記他のノード装置の通信アドレスを読み出すデータ転送先決定部と、前記コンテンツ蓄積更新集約情報生成部が生成した前記コンテンツ蓄積更新集約情報を、前記データ転送先決定部が前記コンテンツ蓄積更新集約情報を送信する宛先として読み出した前記通信アドレスに対して送信する通信出力部と、を備えることを特徴とするノード装置である。
上記発明によれば、P2Pネットワーク上で放送型配信コンテンツの分散管理する場合に、コンテンツを蓄積したノードから、そのコンテンツの管理ノードに対してコンテンツリストを更新するための更新要求を通知する際に、複数のノードから発生した更新要求としてのコンテンツ蓄積更新情報を、管理ノードまでの経路に存在するノードにおいて集約しながら通知を行う。これにより、管理ノードに到達する、コンテンツリストの更新要求の数を減らすことができ、アクセス集中による管理ノードへの負荷、および、管理ノード周辺のネットワークの負荷を抑制することができる。
[2] また、本発明の一態様は、上述するノード装置であって、前記通信入力部は、さらに、前記ネットワークを介して接続され且つ自ノード装置が属する前記群とは異なる群に属する他のノード装置からコンテンツ蓄積更新集約情報を受信し、前記コンテンツ蓄積更新集約情報生成部は、前記通信入力部により受信した前記コンテンツ蓄積更新情報及び前記コンテンツ蓄積更新集約情報のうち、前記同一のコンテンツの識別情報が設定されている前記コンテンツ蓄積更新情報及び前記コンテンツ蓄積更新集約情報を特定し、特定した前記コンテンツ蓄積更新情報及び前記コンテンツ更新集約情報から前記他のノード装置の通信アドレスをそれぞれ読み出し、前記同一のコンテンツの識別情報と、読み出された複数の前記他のノード装置の通信アドレスとを関連付けてなるコンテンツ蓄積更新集約情報を生成する、ことを特徴とする。
上記発明によれば、コンテンツ蓄積更新情報だけでなく、他のノード装置において生成されたコンテンツ蓄積更新集約情報も集約してコンテンツ蓄積更新集約情報を生成するため、さらに管理ノードへの負荷、および、管理ノード周辺のネットワークの負荷を抑制することができる。
[3] また、本発明の一態様は、上述するノード装置であって、前記コンテンツの識別情報と当該コンテンツのデータとを対応づけて記憶するコンテンツ蓄積部と、前記コンテンツの識別情報と当該コンテンツのデータとを対応づけて前記コンテンツ蓄積部に書き込む蓄積コンテンツ管理部と、前記蓄積コンテンツ管理部が前記コンテンツのデータを前記コンテンツ蓄積部に書き込んだときに、当該コンテンツの識別情報と、自ノード装置のアドレス情報とを関連付けてなるコンテンツ蓄積更新情報を生成するコンテンツ蓄積更新情報生成部と、をさらに備え、前記データ転送先決定部は、前記ノードリスト記憶部に記憶されている前記ノードリストから、自ノード装置が属する前記群と同じ群に属する前記他のノード装置の通信アドレスを前記コンテンツ蓄積更新情報の送信先として読み出し、前記通信出力部は、前記コンテンツ蓄積更新情報生成部が生成した前記コンテンツ蓄積更新情報を、前記データ転送先決定部が前記コンテンツ蓄積更新情報の送信先として読み出した通信アドレスに対して送信する、ことを特徴とする。
上記発明によれば、コンテンツの蓄積完了とともにコンテンツ蓄積更新情報を発信するため、コンテンツが短時間に連続的に投入された場合であっても、コンテンツの投入順序どおりに処理を行われ、輻輳を回避することが可能となる。加えて、コンテンツ蓄積更新情報を同じ群に属する他のノード装置へ送信するため、ノードリストには自身の近傍のノード装置のアドレス情報のみを保持することでよく、また、群毎にコンテンツ蓄積更新情報を集約してコンテンツ蓄積更新集約情報を生成することができる。
[4] また、本発明の一態様は、上述するノード装置であって、前記データ転送先決定部は、前記ノードリスト記憶部に記憶されている前記ノードリストから、自ノード装置が属する前記群と同じ群に属する前記他のノード装置の通信アドレスを複数、前記コンテンツ蓄積更新情報の送信先として読み出し、前記通信出力部は、前記コンテンツ蓄積更新情報生成部が生成した前記コンテンツ蓄積更新情報を、前記データ転送先決定部が前記コンテンツ蓄積更新情報の送信先として読み出した前記複数の通信アドレスに対して送信する、ことを特徴とする。
上記発明によれば、コンテンツ蓄積更新情報の適切な送信先を複数個決定することにより、コンテンツ蓄積更新情報を発信したノードから管理ノードまでの経路において、中継ノードの障害などによる転送の失敗が発生する確率を減少させることができる。
[5] また、本発明の一態様は、上述するノード装置であって、前記コンテンツの識別情報と、当該コンテンツを記憶している前記他のノード装置のアドレス情報との対応付けを示すコンテンツリストを記憶するコンテンツリスト記憶部と、自ノード装置が属する前記群とは異なる群に属する前記他のノード装置から受信したコンテンツ蓄積更新集約情報に含まれる前記コンテンツの識別情報から前記所定の規則に基づいて、当該コンテンツに対応する管理ノード装置が自ノード装置であると判断した場合に、当該コンテンツ蓄積更新集約情報に含まれる前記コンテンツの識別情報と当該コンテンツを蓄積している複数の他のノード装置毎の前記通信アドレスの情報とを関連付けてなるコンテンツリストを前記コンテンツリスト記憶部に書き込むコンテンツリスト管理部と、をさらに備えることを特徴とする。
上記発明によれば、管理ノードとして振舞うノード装置は、コンテンツ蓄積更新情報を集約したコンテンツ蓄積更新集約情報によりコンテンツリストを随時更新するため、個別にコンテンツ蓄積更新情報を受信してコンテンツリストの更新を行なう場合に比較して、コンテンツリストの更新完了までの時間を抑制することができる。
[6] また、本発明の一態様は、上述するノード装置であって、前記他のノード装置及び自身のノード装置それぞれの識別情報を所定の関数により算出した演算結果を、前記コンテンツ蓄積更新情報に含まれる前記コンテンツの識別情報を前記所定の関数により算出した演算結果に近い順から複数の群に分割する所定の条件である情報を記憶する範囲規定情報記憶部と、前記所定の関数の演算を行なう関数計算部と、をさらに備え、前記ノードリストは、前記他のノード装置の識別情報を変数として前記所定の関数により算出した演算結果と、当該ノード装置の通信アドレスとの関連付けを示し、前記関数計算部は、前記通信入力部が受信した前記コンテンツ蓄積更新情報に含まれる前記コンテンツの識別情報を変数として前記所定の関数により演算を行い、前記データ転送先決定部は、前記範囲規定情報記憶部に記憶されている前記条件の情報に基づいて、前記他のノード装置及び自ノード装置を、前記関数計算部により演算された演算結果に近い順から複数の群に分割し、前記コンテンツ蓄積更新集約情報を送信する宛先として、前記ノードリスト記憶部に記憶されている前記ノードリストから、自ノード装置が属する群よりも近い群に属する前記他のノード装置の通信アドレスを読み出す、ことを特徴とする。
上記発明によれば、各ノードがハッシュ関数のような共通の関数を持ち、この関数とコンテンツ及びノードの識別情報から、コンテンツリストの更新要求の適切な送信先を各ノードが自律的に決定することができる。これにより、サーバを介さずにコンテンツの分散管理を実現することができる。
[7] また、本発明の一態様は、所定の規則により複数の群に分けられる複数のノード装置と当該複数のノード装置間を接続するネットワークとからなるコンテンツ分散管理システムを構成し、前記所定の規則により前記複数の群のうちコンテンツの所在を管理する前記群を判断する前記ノード装置として用いられるコンピュータを、前記ネットワークを介して接続される他のノード装置の通信アドレスを設定したノードリストを記憶するノードリスト記憶部、前記ネットワークを介して接続され且つ自ノード装置が属する群と同じ群に属する他のノード装置のうち、コンテンツを蓄積している前記他のノード装置から、当該コンテンツの識別情報と当該コンテンツを記憶している当該他のノード装置の通信アドレスとを関連付けてなるコンテンツ蓄積更新情報を受信する通信入力部、前記通信入力部により受信した前記コンテンツ蓄積更新情報のうち、同一のコンテンツの識別情報を含む複数の前記コンテンツ蓄積更新情報を特定し、特定された前記コンテンツ蓄積更新情報から前記他のノード装置の通信アドレスをそれぞれ読み出し、前記同一のコンテンツの識別情報と、読み出された複数の前記他のノード装置の通信アドレスとを関連付けてなるコンテンツ蓄積更新集約情報を生成するコンテンツ蓄積更新集約情報生成部、前記ノードリスト記憶部に記憶されている前記ノードリストから、前記コンテンツ蓄積更新集約情報を送信する宛先として、自ノード装置が属する群とは異なる群に属する前記他のノード装置の通信アドレスを読み出すデータ転送先決定部、前記コンテンツ蓄積更新集約情報生成部が生成した前記コンテンツ蓄積更新集約情報を、前記データ転送先決定部が前記コンテンツ蓄積更新集約情報を送信する宛先として読み出した前記通信アドレスに対して送信する通信出力部、として機能させることを特徴とするコンピュータプログラムである。
本発明によれば、コンテンツを分散管理するP2Pネットワークを構成する大量のノードに対して、コンテンツが一斉に投入された場合でも、輻輳を軽減しながら、コンテンツ管理情報の更新を迅速に管理ノードへ要求し、サーバを用いることなく、大規模なコンテンツ配信システムの設計が可能となる。
以下、本発明の実施形態を、図面を参照して説明する。
[1.全体構成]
図1に、本発明を適用可能な、P2Pネットワークを用いたコンテンツ分散管理システムの全体構成図を示す。ここでは、高度BSデジタル放送のダウンロードサービスにおける例を示す。
同図において、複数のノード装置1は、通信ネットワークNにより相互に接続されている。高度BSデジタル放送では、放送衛星2を使ってコンテンツデータ(以下、単に「コンテンツ」と記載する)の配信を行う。そのため、日本全国のような地理的に広いエリアに存在する複数のノード装置1に対して一斉にコンテンツが配信される。そこで、コンテンツ配信事業者は、配信装置2から放送衛星3にコンテンツの配信を指示することにより、放送波を使ってコンテンツをノード装置1へ送信する。また、逆に、コンテンツの削除要求を一斉に配信することも考えられる。つまり、配信装置2から指示を受けた放送衛星3は、複数のノード装置1に対して一斉にコンテンツの削除要求を送信する。
各ノード装置1は通信機能を備えており、他のノード装置1とネットワークNを介して情報の送受信をすることが可能である。各コンテンツには識別子(ID)の情報が付与されており、ノード装置1は当該識別子によりコンテンツを識別する。また、同様に各ノード装置1にも識別子が付与されており、自ノード装置において、他ノード装置を認識できるようにする。
[2.コンテンツ分散管理のためのデータ]
図2、図3は、従来技術のDHT(分散ハッシュテーブル、Distributed Hash Table)を用いてコンテンツを分散管理するためにノード装置1が記憶するリストの例を示す図である。以降、代表的なDHTのアルゴリズムであるChordを用いた分散管理を例に説明する。Chordでは、ノードとコンテンツをハッシュ値の順に円環状に並べ、時計回りで測った長さをハッシュ空間上の距離と定義する。
図2は、ハッシュ空間上で自ノード装置の“近傍”に存在するコンテンツが、どのノード装置に蓄積されているかという所在情報を示すリストであるコンテンツリストを示す。また、図3はハッシュ空間上で自ノード装置の“近傍”に存在する他ノード装置のIPアドレスやポートなどの、通信を行うために必要な情報を示すリストであるノードリストを示す。
図2において、コンテンツリストには、ノード装置1において所在情報を管理する対象のコンテンツを特定するコンテンツID及び当該コンテンツIDのハッシュ値と、当該コンテンツが蓄積されているノード装置1のノードID及び当該ノード装置1のIPアドレスやポート番号といった通信のために必要な情報と、当該コンテンツが削除されたかを示す情報と、当該コンテンツが蓄積または削除された時刻を示すタイムスタンプの情報とが記述される。
一方、図3に示すノードリストには、ハッシュ空間上の近傍に存在するノード装置1のノードID及び当該ノードIDのハッシュ値、当該ノード装置1のIPアドレスやポート番号といった通信のために必要な情報が記述される。ノードリストは、DHTにおけるルーティングテーブルと同様のものと考えてよい。また、DHTによる分散管理を円滑に行うためには、各ノード装置1が管理すべきコンテンツ、および、把握すべき転送先のノード装置1のハッシュ空間上の“近傍”の範囲を規定する必要がある。なお、すべてのノード装置1においてコンテンツIDおよびノードIDからハッシュ値を算出できるため、必ずしもリストにハッシュ値を記述しなくてもよい。
図2および図3では、ノード装置1に付与されたノードIDのハッシュ値が「500」、“近傍”の範囲を「20」とした例を示している。つまり、コンテンツリストでは、コンテンツIDのハッシュ値が500〜520の範囲に存在するコンテンツの所在を管理し、ノードリストでは、ノードIDのハッシュ値が500〜520の範囲に存在するノード装置1の転送先の情報を保持する。
[3.従来技術を使用したコンテンツ配信]
図4は、一般的なDHTを用いてコンテンツの分散管理を行っているP2Pシステムにおいて、ノード装置1がコンテンツを新たに蓄積し、管理ノードに蓄積したことを通知する、従来の手順を示す。
同図は、ノードIDが「LMNOPQ」、当該ノードIDのハッシュ値が「400」であるノード装置1が、コンテンツIDが「AAAAAA」、当該コンテンツIDのハッシュ値が「501」であるコンテンツを蓄積した場合の例である。ここでは、近傍の範囲は20とする。以下、ノードIDのハッシュ値がXのノード装置1を「ノード装置(X)」、コンテンツIDのハッシュ値がYのコンテンツを「コンテンツ(Y)」と記載する。
(手順A−1)ノード装置(400)は、自身が蓄積したコンテンツのコンテンツID「AAAAAA」からハッシュ値「501」を算出する。
(手順A−2)ノード装置(400)は、ノードIDのハッシュ値が「402」、「410」、「420」となるノード装置1についての情報が記述されたノードリストを記憶している。ノード装置(400)は、自身が記憶しているノードリストから、(手順A−1)において算出したハッシュ値「501」に最も近いハッシュ値となるノードIDにより特定されるノード装置(420)を検出し、当該ノード装置(420)のアドレス情報、すなわち、IPアドレス及びポート番号を読み出す。
(手順A−3)ノード装置(400)は、自身が蓄積したコンテンツのコンテンツID「AAAAAA」、自身のノードID「LMNOPQ」、自身のIPアドレス「100.1.2.3」、ポート番号「5000」を設定したコンテンツ蓄積更新情報を、(手順A−2)において読み出したIPアドレス及びポート番号を宛先に設定して送信し、ノード装置(420)に通知する。
(手順A−4)ノード装置(420)は、コンテンツ蓄積更新情報を受信すると、当該コンテンツ蓄積更新情報に設定されているコンテンツID「AAAAAA」からハッシュ値「501」を算出する。
(手順A−5)以下、同様に、(手順A−2)〜(手順A−4)の操作を繰り返してコンテンツ蓄積更新情報を中継する。つまり、ノード装置1は、自身が記憶しているノードリストから、ノードIDのハッシュ値が、コンテンツIDより算出したハッシュ値に最も近い他のノード装置1を検出し、受信したコンテンツ蓄積更新情報をこの検出した他のノード装置1に通知し、コンテンツ蓄積更新情報を受信したノード装置1は、当該コンテンツ蓄積更新情報に設定されているコンテンツIDからハッシュ値を算出する。(手順A−2)〜(手順A−4)の操作を繰り返すことにより、ノードIDのハッシュ値がコンテンツ(501)の管理範囲である482〜501の範囲内になるノード装置1についての情報を記述したノードリストを保持するノード装置(480)に、コンテンツ蓄積更新情報が通知される。
(手順A−6)ノード装置(480)は、ノードリストに、ノードIDのハッシュ値が「485」、「495」、「500」となるノード装置の情報を保持している。ノード装置(480)は、当該コンテンツ蓄積更新情報に設定されているコンテンツID「AAAAAA」のハッシュ値「501」を算出し、ノードリストよりコンテンツ(501)の管理範囲内に含まれる、ノード装置(485)、ノード装置(495)、ノード装置(500)を検出すると、管理ノードであるそれら全てのノード装置に対して、受信したコンテンツ蓄積更新情報を通知する。
(手順A−7)ノード装置(485)、ノード装置(495)、ノード装置(500)は、受信したコンテンツ蓄積更新情報からコンテンツID「AAAAAA」、ノード装置(400)のノードID「LMNOPQ」、IPアドレス「100.1.2.3」、ポート番号「5000」を読み出すと、自身の保持するコンテンツリストのコンテンツID=AAAAAAのレコードに、読み出したノード装置(400)のノードID、IPアドレス、ポート番号を追記する。
[4.従来技術を使用したコンテンツ検索]
図5に、一般的なDHTを用いてコンテンツの分散管理を行っているシステムにおいて、所望のコンテンツがどのノード装置1に蓄積されているのかを検索する従来の手順について示す。同図においては、ノードIDが「NNNNNN」、当該ノードIDのハッシュ値が「450」であるノード装置1が、コンテンツIDが「AAAAAA」、当該コンテンツIDのハッシュ値が「501」であるコンテンツを蓄積しているノード装置を検索する例を示している。また、ここでは、近傍の範囲は「20」とする。
(手順B−1)ノード装置(450)は、所望のコンテンツのコンテンツID「AAAAAA」からハッシュ値「501」を算出する。
(手順B−2)ノード装置(450)は、ノードIDのハッシュ値が「451」、「455」、「465」となるノード装置1についての情報が記述されたノードリストを記憶している。ノード装置(450)は、自身が記憶しているノードリストから、コンテンツID「AAAAAA」より算出したハッシュ値「501」に最も近いハッシュ値となるノードIDで特定されるノード装置(465)を検出し、当該ノード装置(465)のアドレス情報、すなわち、IPアドレス及びポート番号を読み出す。
(手順B−3)ノード装置(450)は、検索したいコンテンツのコンテンツID「AAAAAA」、自身のノードID「NNNNNN」、IPアドレス「10.2.3.4」、ポート番号「5000」を設定したコンテンツ検索要求情報を、(手順B−2)において読み出したIPアドレス及びポート番号を宛先に設定して送信し、ノード装置(465)に通知する。
(手順B−4)ノード装置(465)は、コンテンツ検索要求情報を受信すると、当該コンテンツ蓄積更新情報に設定されているコンテンツID「AAAAAA」からハッシュ値「501」を算出する。
(手順B−5)以下、同様に、(手順B−2)〜(手順B−4)の操作を繰り返してコンテンツ検索要求情報を中継する。つまり、ノード装置1は、自身が記憶しているノードリストから、ノードIDのハッシュ値が、コンテンツIDより算出したハッシュ値に最も近い他のノード装置1を検出し、受信したコンテンツ検索要求情報をこの検出した他のノード装置1に通知し、コンテンツ検索要求情報を受信したノード装置1は、当該コンテンツ検索要求情報に設定されているコンテンツIDからハッシュ値を算出する。(手順B−2)〜(手順B−4)の操作を繰り返すことにより、ノードIDのハッシュ値がコンテンツ(501)の管理範囲である482〜501の範囲内になるノード装置1にコンテンツ検索要求情報が通知される。なお、図5においては、ノード装置(500)に通知する例を示しているが、管理範囲内であればノード装置(485)、ノード装置(495)のような他のノード装置1に通知することでも構わない。
(手順B−6)ノード装置(500)は、自身が記憶しているコンテンツリスト内のコンテンツIDと、コンテンツ検索要求情報に設定されているコンテンツIDとを照合し、要求されたコンテンツを蓄積しているノード装置1のノードID、IPアドレス及びポート番号の組を全て読み出すと、読み出した全ての組を設定したコンテンツ検索回答情報を作成する。同図においては、コンテンツ検索要求情報に設定されていた、検索対象のコンテンツのコンテンツID「AAAAAA」と、コンテンツリストから読み出した、ノードID「000001」、IPアドレス「123.123.123.123」及びポート番号「5000」の組、ノードID「000015」、IPアドレス「111.111.001.002」及びポート番号「5000」の組、…が設定されたコンテンツ検索回答情報を作成している。
(手順B−7)ノード装置(500)は、コンテンツ検索要求情報に記述されているノード装置(450)のIPアドレスとポート番号を宛先として、(手順B−6)において作成したコンテンツ検索回答情報をノード装置(450)に通知する。
なお、ノード装置(450)は、受信したコンテンツ検索回答情報に設定されているいずれかのノード装置1のIPアドレス及びポート番号を用いてアクセスし、コンテンツ(501)を取得する。
[5.第1の実施形態]
次に、本発明の第1の実施形態について説明する。
[5.1 コンテンツ配信時のシステム全体の処理手順]
図6は、本発明の第1の実施形態によるコンテンツ分散管理システムにおける、情報の集約機能を用いたコンテンツ蓄積更新情報の通知手順について示す。図4に示したような一般的なDHTによる従来の通知手順の場合、コンテンツを蓄積したノード装置1それぞれが管理ノードへコンテンツ蓄積更新情報を通知することになる。つまり、N台のノード装置1に同時に同一のコンテンツが蓄積されると、そのコンテンツの管理ノードとなるノード装置1にはN個のコンテンツ蓄積更新情報が到達することになり、管理ノードへのアクセスが集中してしまう。しかし、本実施形態では、以下のような手順をとることにより、コンテンツ蓄積更新情報を、中継ノードとなるノード装置1で集約しながら管理ノードとなるノード装置へ通知するため、アクセス集中を抑制することができる。以下、このような集約機能を持つ中継ノードを中継集約ノードと記載する。ここでは、ハッシュ値が400〜500の範囲に存在するノード装置1のうちのいくつかが、ハッシュ値が「501」となるコンテンツIDで特定されるコンテンツを受信し、自身に蓄積した際の例における手順を以下に示す。なお、近傍の範囲は20とする。
(手順C−1)ノード装置1はコンテンツを受信して蓄積し、このコンテンツを蓄積したノード装置1(ノード装置(402)、(410)など)は、蓄積したコンテンツのコンテンツIDからハッシュ値「501」を算出する。
(手順C−2)ノード装置1は、コンテンツIDのハッシュ値が501、近傍の範囲が20であることから、501を基準に20ごとの空間(群)にハッシュ空間を分割する。そして、コンテンツを蓄積した全てのノード装置1は、その分割した各空間(群)の範囲と、自身がどの範囲の空間(群)に属するのかを認識する。ここでは、コンテンツIDのハッシュ値「501」、近傍の範囲「20」であることから、ノード装置1は、402〜421、422〜441、…、482〜501、のようにハッシュ空間を分割する。ノード装置(402)、(410)は、自身が402〜421の範囲に属することを認識する。
(手順C−3)それぞれのノード装置1は、自身が属する範囲内で、ノードIDのハッシュ値が最も「501」に近い他のノード装置1を、自身が記憶しているノードリストから検索し、コンテンツ蓄積更新情報の通知先のノード装置1として認識する。ノード装置(402)は、ノードIDのハッシュ値が「405」、「407」、「410」、「416」、「420」となるノード装置1についての情報が記述されたノードリストを記憶しており、ノード装置(410)は、ノードIDのハッシュ値が「410」、「416」、「420」となるノード装置1についての情報が記述されたノードリストを記憶している。そこで、コンテンツを蓄積したノード装置(402)、(410)は、自身の属する範囲が402〜421であることから、自身の保持するノードリストに登録されている中からノード装置(420)を通知先として検出し、そのアドレス情報、すなわち、IPアドレス及びポート番号を読み出す。ノード装置(420)がコンテンツを蓄積したノード装置であるかどうかは関係がない。
(手順C−4)コンテンツを蓄積したノード装置1は、(手順C−3)において検出した通知先のノード装置1にコンテンツ蓄積更新情報として、蓄積したコンテンツのコンテンツID、自身のノードID及びアドレス情報を送信する。従って、ノード装置(402)、(410)は、生成したコンテンツ蓄積更新情報をノード装置(420)に送信する。
(手順C−5)コンテンツ蓄積更新情報を受信したノード装置1、すなわち、中継集約ノードは、一定時間待って、自身の属する範囲内の他のノード装置1から送信される複数のコンテンツ蓄積更新情報を収集する。範囲内のすべての他のノード装置1よりコンテンツ蓄積更新情報を受信した場合は、その時点で収集を終了しても構わない。
(手順C−6)中継集約ノードとなるノード装置1は、(手順C−5)において受信した複数のコンテンツ蓄積更新情報に記載されている送信元のノード装置1のノードID及びアドレス情報を集約して、コンテンツ蓄積更新集約情報を生成する。
(手順C−7)中継集約ノードとなるノード装置1は、コンテンツ蓄積更新情報に記述されているコンテンツIDからハッシュ値「501」を算出し、自身が属する範囲に隣接する範囲内で、ノードIDのハッシュ値が最も501に近い他のノード装置1を、自身が記憶しているノードリストから検索し、コンテンツ蓄積更新集約情報の通知先のノード装置1として認識する。例えば、402〜421の範囲に属するノード装置(420)であれば、ノードIDのハッシュ値が「422」、「425」、「427」、「432」、「434」、「438」となるノード装置1についての情報が記述されたノードリストを記憶している。そこで、ノード装置(420)は、自身が属する範囲に隣接する範囲である422〜441であることから、自身の保持するノードリストに登録されている中からコンテンツIDのハッシュ値「501」に最も近いノード装置(438)を通知先として検出し、そのアドレス情報を読み出して、生成したコンテンツ蓄積更新集約情報を送信する。
(手順C−8)以下、上記の(手順C−5)〜(手順C−7)と同様の操作を行い、コンテンツ蓄積更新集約情報がコンテンツ(501)の管理範囲に最も近い範囲に属するノード装置(480)に転送される。
このとき、中継集約ノードは、コンテンツ蓄積更新情報とコンテンツ蓄積更新集約情報の二種類の情報を集約する場合がある。このような中継集約ノードにおいては、一定時間待って両方の情報を収集して集約することで、コンテンツ蓄積更新集約情報を生成する。つまり、コンテンツ蓄積更新情報とコンテンツ蓄積更新集約情報を受信したノード装置1は、コンテンツ蓄積更新情報とコンテンツ蓄積更新集約情報に記述されているコンテンツIDからハッシュ値を算出し、自身の保持するノードリストに登録されている中から、自身の属する範囲に隣接する範囲に含まれ、かつ、ノードIDのハッシュ値が最もコンテンツIDのハッシュ値に近い他のノード装置1を検出して、生成したコンテンツ蓄積更新集約情報を送信する。例えば、ノード装置(420)からコンテンツ蓄積更新集約情報を、ノード装置(425)及びノード装置(434)からコンテンツ蓄積更新情報を受信したノード装置(438)は、ノードIDのハッシュ値が「422」、「455」、「447」、「450」、「452」、「456」となるノード装置1についての情報が記述されたノードリストを記憶している。ノード装置(438)は、自身が属する範囲422〜441に隣接する範囲である442〜461の中で、コンテンツIDのハッシュ値「501」に最も近いノード装置(456)を自身のノードリストから送信先として検出し、そのアドレス情報を読み出してコンテンツ蓄積更新集約情報を送信する。
(手順C−9)コンテンツの管理範囲に隣接した範囲に属する中継集約ノードであるノード装置1は、コンテンツの管理範囲内の他のノード装置1にコンテンツ蓄積更新集約情報を送信する。ここでの例の場合、ハッシュ値462〜481の範囲に属するノード装置(480)は、コンテンツ蓄積更新集約情報に記述されているコンテンツIDからハッシュ値「501」を算出する。ノード装置(480)は、自身の保持するノードリストに登録されている中から、自身が属する範囲に隣接する範囲、すなわち、コンテンツ(501)の管理範囲である482〜501をノードIDのハッシュ値とするノード装置(485)、(490)、(495)、(500)を送信先として検出してそれらのアドレス情報を読み出し、検出した全てのノード装置1へコンテンツ蓄積更新集約情報を送信する。
(手順C−10)管理ノードであるノード装置1は、受信したコンテンツ蓄積更新集約情報に記述されているコンテンツIDと、ノード装置1のノードID及びアドレス情報の複数の組とを読み出すと、自身の保持するコンテンツリストに追記する。また、管理範囲内のノード装置1がコンテンツを蓄積することも考えられる。例えば、ノード装置(490)は、(手順C−1)〜(手順C−4)に従って、自身が属する範囲内で最もハッシュ値が501に近いノード装置(500)をノードリストから検出し、コンテンツ蓄積更新情報を送信する。ノード装置(500)は、受信したコンテンツ蓄積更新情報に記述されているコンテンツIDと、ノード装置1のノードID及びアドレス情報を読み出すと、自身の保持するコンテンツリストに追記する。そのため、482〜501の管理範囲に属するノード装置1の間でお互いのコンテンツリストの交換を行い、ノード装置間でコンテンツリスト中のコンテンツ(501)についての蓄積情報に不一致が生じることを防止する。
なお、ここでは、コンテンツのハッシュ値とシステム上で規定している近傍の範囲を用いて中継集約ノードを決定し、中継集約ノード間で更新情報の転送を行い、管理ノードにコンテンツ蓄積更新情報を通知する手順について説明したが、中継集約ノードの決定方法については、あらかじめ固定的に決めておく、近傍のノード装置1との間で自律的な処理を行って決定するなど、他の手段を用いても構わない。また、ハッシュ空間上の距離や近傍の定義において、Chordのようなハッシュ値の差を用いる方法だけでなく、Kademliaのようにハッシュ値のハミング距離を用いる方法など、他の方法を用いても構わない。
[5.2 ノード装置の構成]
図7は、第1の実施形態によるノード装置1の内部機能を示すブロック図であり、本発明に関係する機能ブロックのみ抽出してある。同図に示すノード装置1は、例えば、パーソナルコンピュータや携帯電話などのコンピュータ装置により実現され、放送受信部11、コンテンツ蓄積部12、関数計算部13、蓄積コンテンツ管理部14、近傍範囲規定部15、範囲規定情報記憶部16、コンテンツ蓄積更新情報生成部17、データ転送先決定部18、ノードリスト管理部19、ノードリスト記憶部20、通信出力部21、通信入力部22、情報集約制御部23、コンテンツ蓄積更新集約情報生成部24、コンテンツリスト管理部25、コンテンツリスト記憶部26、入力部27、制御部28、表示部29を含む。なお、本実施形態においては、高度BSデジタル放送におけるダウンロードサービスを想定するため、コンテンツは放送において受信するものとする。
放送受信部11は、具体的には、高度BSデジタル放送を受信することができるチューナであり、受信した放送波からコンテンツをデコードする。コンテンツ蓄積部12は、放送受信部11がデコードしたコンテンツを記憶する。蓄積コンテンツ管理部14は、コンテンツ蓄積部12に記憶されているコンテンツの管理を行う。入力部27は、当該ノード装置とユーザとのインタフェースであり、ユーザからの指示を制御部28に伝える。入力部27は、例えば、リモートコントローラやボタンなどのデバイスである。制御部28は、入力部27からの指示を受け、コンテンツ蓄積部12や蓄積コンテンツ管理部14に当該指示を出力する。これにより、制御部28は、ユーザの指示による蓄積コンテンツの削除の指示に対する制御を行う。表示部29は、具体的にはディスプレイであり、コンテンツ蓄積部12に記憶され、蓄積されているコンテンツの状況を表示する。
関数計算部13は、SHA−1(Secure Hash Algorithm 1)やMD5(Message Digest 5)などのハッシュ関数を用いて、コンテンツIDやノードIDのハッシュ値を算出する。なお、同一のP2Pシステム上に存在する全てのノード装置1は共通のハッシュ関数を使用する。近傍範囲規定部15近傍の範囲を規定し、範囲規定情報記憶部16に書き込む。同一のP2Pシステム上に存在する全てのノード装置1は共通の近傍の範囲の値を使用する。ノードリスト管理部19は、ノードリスト記憶部20記憶されているノードリストの管理を行う。ノードリストは、図3と同様のデータ構成である。
コンテンツ蓄積更新情報生成部17は、自ノード装置のコンテンツ蓄積部12にコンテンツが蓄積された際、自ノード装置のコンテンツ蓄積部12からコンテンツが削除された際に、コンテンツ蓄積更新情報を生成する。コンテンツ蓄積更新集約情報生成部24は、自ノード装置が中継集約ノードとして機能する場合、他のノード装置1より受信した複数のコンテンツ蓄積更新情報を集約して、コンテンツ蓄積更新集約情報を生成する。また、コンテンツ蓄積更新集約情報生成部24は、コンテンツ蓄積更新集約情報とコンテンツ蓄積更新情報の集約も行う。さらに、自ノード装置においても同一のコンテンツを受信している場合は、コンテンツ蓄積更新情報生成部17が生成したコンテンツ蓄積更新情報とも集約する。
データ転送先決定部18は、通信出力部21により送信するデータの転送先を決定する。転送先を決定する際、データ転送先決定部18は、関数計算部13により算出されたコンテンツIDやノードIDのハッシュ値、ノードリスト記憶部20に記憶されているノードリスト、範囲規定情報記憶部16に記憶されている規定された近傍範囲の値を用いる。通信出力部21は、インターネットなど通信により情報を出力し、データ転送先決定部18により決定された転送先へ、コンテンツ蓄積更新情報、コンテンツ蓄積更新集約情報、コンテンツリストを送信する。通信入力部22は、インターネットなど通信によって送信された情報を入力し、他のノード装置1から送信されたコンテンツ蓄積更新情報、コンテンツ蓄積更新集約情報、コンテンツリストを受信する。
情報集約制御部23は、通信入力部22を監視することで、コンテンツ蓄積更新集約情報とコンテンツ蓄積更新情報の到着状況を把握する。また、情報集約制御部23は、時間とこれらの情報の到着状況をもとに、コンテンツ蓄積更新集約情報生成部24におけるコンテンツ蓄積更新集約情報の生成のタイミングを制御する。コンテンツリスト管理部25は、自ノード装置がコンテンツの管理ノードとして機能する場合、他のノード装置1より受信したコンテンツ蓄積更新情報およびコンテンツ蓄積更新集約情報を基に、コンテンツリスト記憶部26に記憶されているコンテンツリストの更新を行い、コンテンツリストを管理する。また、コンテンツリスト管理部25は近傍のノード装置1と定期的にコンテンツリストの交換による照合を行い、リストを最新の状態に保つ。なお、コンテンツリストは、図2と同様のデータ構成である。
[5.3 データ記述例]
図8は、第1の実施形態によるコンテンツ蓄積更新情報の記述例を示す。複数のノード装置1におけるデータの解釈の統一を図るために、コンテンツ蓄積更新情報には共通のフォーマットを用い、汎用的な言語であるXML(extensible markup language)形式により記述する。
同図において、データの種類を区別するため、コンテンツ蓄積更新情報のデータの先頭には、コンテンツ蓄積更新情報である旨の種別が記述されている。さらに、コンテンツ蓄積更新情報の本体には、更新の対象となるコンテンツのコンテンツIDと、当該コンテンツ蓄積更新情報を発信するノード装置1のノードID、IPアドレス及びポート番号、ならびに、当該コンテンツ蓄積更新情報を発信した時刻のタイムスタンプを含む発信ノード情報とが記述される。
図9は、第1の実施形態によるコンテンツ蓄積更新集約情報の記述例を示す。コンテンツ蓄積更新集約情報は、図8において示したコンテンツ蓄積更新情報をもとに生成され、コンテンツ蓄積更新情報から取得した発信ノード情報を集約して記述する。コンテンツ蓄積更新情報と同様、コンテンツ蓄積更新集約情報には共通のフォーマットを用い、XML形式により記述する。
同図において、コンテンツ蓄積更新集約情報のデータの先頭には、コンテンツ蓄積更新集約情報である旨の種別が記述されている。さらに、コンテンツ蓄積更新集約情報の本体には、更新の対象となるコンテンツのコンテンツIDと、当該コンテンツIDが記載されたコンテンツ蓄積更新情報から取得した発信ノード情報のリストである発信ノードリスト情報とが記述される。
なお、コンテンツ蓄積更新集約情報は、他のコンテンツ蓄積更新集約情報も集約して生成されうる。この場合、新たに生成されるコンテンツ蓄積更新集約情報の発信ノードリスト情報には、集約対象のコンテンツ蓄積更新情報から取得した発信ノードリスト情報が設定される。
[5.4 コンテンツの配信]
図10〜12は、第1の実施形態によるコンテンツ分散管理システムにおける各ノード装置1の処理フローを示す図である。
図10において、ノード装置1の放送受信部11は、放送衛星3からの放送を受信する(ステップS105)。放送受信部11が放送波からデコードしたコンテンツ及びコンテンツIDは、コンテンツ蓄積部12または図示しない記憶手段に一時的に蓄積される。そして、コンテンツ配信時間が終了すると、ノード装置1の関数計算部13は、放送受信部11が放送波からデコードしたコンテンツに付与されているコンテンツIDを取得し、このコンテンツIDのハッシュ値を算出する(ステップS110)。
蓄積コンテンツ管理部14は、ステップS110において算出されたコンテンツIDのハッシュ値と、近傍範囲規定部15が範囲規定情報記憶部16から読み出した近傍範囲とから、ハッシュ空間を分割し、自ノード装置が管理ノードか、中継集約ノードか、あるいは、それ以外のノードであるかを判断する(ステップS115)。
例えば、コンテンツIDのハッシュ値をX、近傍範囲をYとした場合、Xを基準にYごとの空間に分割して、ハッシュ空間を(X)〜(X−Y+1)、(X−Y)〜(X−2Y+1)、(X−2Y)〜(X−2Y+1)、…とする。ここで、ノードIDのハッシュ値が、(X)〜(X−Y+1)の範囲内になる他のノード装置1、つまり、ノード装置(X)〜(X−Y+1)がコンテンツ(X)を管理する管理ノードである。蓄積コンテンツ管理部14は、自ノードIDのハッシュ値が(X)〜(X−Y+1)の範囲内に含まれていれば、自身が管理ノードであると判断する。
また、自身が管理ノードではない場合、蓄積コンテンツ管理部14は、自身が含まれる分割範囲内(X−iY)〜(X−(i+1)Y+1)(iは1以上の整数)を特定する。そして、自ノードIDのハッシュ値がその範囲の中で最もXに近い、すなわち、(X−iY)である場合は、自身が中継集約ノードであると判断する。また、自身が含まれる分割範囲内に、自ノードIDのハッシュ値よりXに近いハッシュ値が含まれており、そのハッシュ値になるノードIDにより特定される他のノード装置1が、ノードリストに登録されていない場合は、自身が中継集約ノードであると判断し、登録されている場合は、管理ノードでも中継集約ノードでもないと判断する。
自身が管理ノードではなく(ステップS120:いいえ)、中継集約ノードでもない場合(ステップS125:いいえ)、ノード装置1の蓄積コンテンツ管理部14は、ステップS105において受信したコンテンツを、冒頭から終了までコンテンツ蓄積部12または図示しない記憶手段に一時的に蓄積したかを判断する(ステップS130)。コンテンツを蓄積していない場合には(ステップS130:いいえ)、処理を終了する。
一方、コンテンツを冒頭から終了までコンテンツ蓄積部12に蓄積した場合(ステップS130:はい)、蓄積コンテンツ管理部14は、一時的に蓄積していたコンテンツを、コンテンツ蓄積部12内のコンテンツ蓄積用の領域に書き込むとともに、コンテンツ蓄積部12に書き込んだコンテンツからコンテンツIDを読み出す(ステップS135)。
コンテンツ蓄積更新情報生成部17は、コンテンツ蓄積更新情報である旨を示す種別と、コンテンツ蓄積部12に蓄積したコンテンツのコンテンツIDと、自ノード装置のノードID、IPアドレス及びポート番号、現在の時刻を設定したタイムスタンプからなる発信ノード情報とを記述したコンテンツ蓄積更新情報を生成する(ステップS140)。
データ転送先決定部18は、ノードリスト記憶部20に記憶されているノードリストを参照し、ステップS140においてコンテンツ蓄積更新情報生成部17が生成したコンテンツ蓄積更新情報の転送先を決定する(ステップS145)。つまり、データ転送先決定部18は、ステップS115において、自身が含まれるとして特定した分割範囲内(X−iY)〜(X−(i+1)Y+1)の中で、自身のノードIDのハッシュ値よりもXに近く、かつ、ノードリストに登録されているハッシュ値のうち、最もXに近いハッシュ値を1つ選択する。データ転送先決定部18は、この選択したハッシュ値になるノードIDにより特定されるノード装置1のIPアドレスとポート番号を読み出す。
通信出力部21は、コンテンツ蓄積更新情報転送先のノード装置1がオンライン状態か否かを確認する(ステップS150)。これは、例えば、ステップS145において取得したIPアドレスとポート番号を使用して、コンテンツ蓄積更新情報転送先のノード装置1へ通信の開始要求を送信し、その返答があるか否かによって確認することができる。通信出力部21は、コンテンツ蓄積更新情報転送先のノード装置1がオンラインではない場合(ステップS150:いいえ)、再びステップS145を実行して、現在選択されているコンテンツ蓄積更新情報の転送先のノード装置1を除いて、再び、コンテンツ蓄積更新情報の転送先のノード装置1を選択し、選択したノード装置1がオンライン状態か否かを確認する(ステップS145、S150)。
コンテンツ蓄積更新情報転送先のノード装置1がオンラインの場合(ステップS150:はい)、通信出力部21は、ステップS140において生成したコンテンツ蓄積更新情報を、転送先のノード装置1へ送信する(ステップS155)。
図11は、中継集約ノードの場合の処理である。
図10のステップS125において、自身が中継集約ノードであると判断した場合(ステップS125:はい)、ノード装置1の蓄積コンテンツ管理部14は、図10のステップS105において受信したコンテンツを、冒頭から終了までコンテンツ蓄積部12または図示しない記憶手段に一時的に蓄積したかを判断する(ステップS205)。コンテンツを冒頭から終了までコンテンツ蓄積部12に蓄積した場合(ステップS205:はい)、図10のステップS135及びステップS140と同様の処理を行い、蓄積コンテンツ管理部14は、コンテンツをコンテンツ蓄積部12内のコンテンツ蓄積用の領域に書き込んでコンテンツIDを取得し、コンテンツ蓄積更新情報生成部17は、コンテンツ蓄積更新情報を生成する(ステップS210、S215)。
情報集約制御部23は、自ノード装置のノードIDのハッシュ値と、コンテンツIDのハッシュ値とから、他のノード装置1から送信されるコンテンツ蓄積更新情報やコンテンツ蓄積更新集約情報を受信するための待ち時間を算出する(ステップS220)。これは、例えば、自ノード装置のノードIDのハッシュ値と、コンテンツIDのハッシュ値の差分と、その差分に対応した待ち時間との関連を示す情報を予め保持しておき、当該情報を参照して待ち時間を決定する。あるいは、自ノード装置のノードIDのハッシュ値と、コンテンツIDのハッシュ値の差分とをパラメータとして用いた所定の算出式により、待ち時間を算出する。なお、自ノード装置のノードIDのハッシュ値と、コンテンツIDのハッシュ値の差分が小さいほど、待ち時間を長くする。
情報集約制御部23は、この待ち時間が終了するまで、他のノード装置1からコンテンツ蓄積更新情報またはコンテンツ蓄積更新集約情報、あるいは、その両情報を受信する(ステップS225、ステップS230:いいえ)。そして、待ち時間が経過すると、情報集約制御部23にコンテンツ蓄積更新集約情報の生成を指示する(ステップS230:はい)。指示を受けたコンテンツ蓄積更新集約情報生成部24は、ステップS225において受信したコンテンツ蓄積更新情報、コンテンツ蓄積更新集約情報と、ステップS215においてコンテンツ蓄積更新情報を生成している場合は、さらに、この生成したコンテンツ蓄積更新情報とを集約して、コンテンツ蓄積更新集約情報を生成する(ステップS235)。具体的には、コンテンツ蓄積更新集約情報生成部24は、同じコンテンツIDが設定されたコンテンツ蓄積更新情報から発信ノード情報を、コンテンツ蓄積更新集約情報から発信ノードリスト情報を読み出して、これらを設定した新たな発信ノードリスト情報を生成する。コンテンツ蓄積更新集約情報生成部24は、コンテンツ蓄積更新集約情報である旨を示す種別と、コンテンツIDと、新たな発信ノードリスト情報とを記述したコンテンツ蓄積更新集約情報を生成する。
データ転送先決定部18は、ノードリスト記憶部20に記憶されているノードリストを参照し、ステップS235においてコンテンツ蓄積更新集約情報生成部24が生成したコンテンツ蓄積更新集約情報の転送先を決定する(ステップS240)。つまり、データ転送先決定部18は、ノードリストに登録されているハッシュ値の中で、ステップS115において、自身が含まれるとして特定した分割範囲内に隣接した分割範囲(X−i’Y)〜(X−(i’+1)Y+1)(i’=i−1)内であり、かつ、最もXに近いハッシュ値を1つ選択する。データ転送先決定部18は、この選択したハッシュ値になるノードIDにより特定される他のノード装置1のIPアドレスとポート番号をノードリストから読み出す。
通信出力部21は、コンテンツ蓄積更新集約情報の転送先のノード装置1がオンライン状態か否かを確認する(ステップS245)。通信出力部21は、コンテンツ蓄積更新集約情報の転送先のノード装置1がオンラインではない場合(ステップS245:いいえ)、再びステップS240を実行して、現在選択されているコンテンツ蓄積更新集約情報の転送先のノード装置1を除き、再び、コンテンツ蓄積更新集約情報の転送先のノード装置1を選択し、選択したノード装置1がオンライン状態か否かを確認する(ステップS240、S245)。
コンテンツ蓄積更新情報転送先のノード装置1がオンラインの場合(ステップS245:はい)、通信出力部21は、ステップS235において生成したコンテンツ蓄積更新集約情報を、転送先のノード装置1へ送信する(ステップS250)。
図12は、管理ノードの場合の処理である。
図10のステップS120において、自身が管理ノードであると判断した場合(ステップS120:はい)、ノード装置1の蓄積コンテンツ管理部14は、図10のステップS105において受信したコンテンツを、冒頭から終了までコンテンツ蓄積部12または図示しない記憶手段に一時的に蓄積したかを判断する(ステップS305)。コンテンツを冒頭から終了までコンテンツ蓄積部12に蓄積した場合(ステップS305:はい)、ステップS135及びステップS140と同様の処理を行い、蓄積コンテンツ管理部14は、コンテンツをコンテンツ蓄積部12内のコンテンツ蓄積用の領域に書き込んでコンテンツIDを取得し、コンテンツ蓄積更新情報生成部17は、コンテンツ蓄積更新情報を生成する(ステップS310、S315)。
ノード装置1の通信入力部22は、他のノード装置1からコンテンツ蓄積更新集約情報を受信する(ステップS320)。また、コンテンツ蓄積更新情報を受信する場合もある。コンテンツリスト管理部25は、ステップS320において受信した全てのコンテンツ蓄積更新集約情報、コンテンツ蓄積更新情報と、ステップS315においてコンテンツ蓄積更新情報を生成している場合は、さらに、この生成したコンテンツ蓄積更新情報とに基づいて、コンテンツリスト記憶部26に記憶されているコンテンツリストを更新する。つまり、コンテンツリスト管理部25は、コンテンツ蓄積更新集約情報に設定されているコンテンツIDがコンテンツリストにまだ登録されていなければ、そのコンテンツIDと、関数計算部13により算出された当該コンテンツIDのハッシュ値を登録する。さらに、コンテンツリスト管理部25は、当該コンテンツIDに対応づけて、コンテンツ蓄積更新集約情報の発信ノードリスト情報から読み出したノードID、IPアドレス、ポート番号、タイムスタンプの組、コンテンツ蓄積更新情報の発信ノードリスト情報から読み出したノードID、IPアドレス、ポート番号、タイムスタンプの組をコンテンツリストに登録する(ステップS325)。
コンテンツリストの更新後は、上述した従来の検索手順と同様に、コンテンツの検索が行われ、検索元のノード装置1は、コンテンツ検索回答情報を取得し、当該コンテンツ検索回答情報のリストに記載されたIPアドレス及びポート番号を用いて、コンテンツを蓄積しているノード装置1にアクセスし、当該コンテンツを取得する。
[5.5 コンテンツの削除]
コンテンツを削除する場合は、図4に示す従来のコンテンツの配信手順、あるいは、図6及び図10〜12に示すコンテンツの配信手順と同様の転送手順により、コンテンツ削除を示す情報を含むコンテンツ蓄積更新情報、または、コンテンツ蓄積更新集約情報を送信する。以下、コンテンツ削除を示す情報を含むコンテンツ蓄積更新情報を「コンテンツ削除情報」、コンテンツ削除を示す情報を含むコンテンツ蓄積更新集約情報を「コンテンツ削除集約情報」と記載する。
コンテンツ削除情報は、図8に示すコンテンツ蓄積更新情報と同様のフォーマットを用いるが、さらに、コンテンツ削除を示す情報が含まれる。例えば、データの種類自体を「コンテンツ削除情報」としたり、コンテンツ削除を示す要素を追加したり、「タイムスタンプ」を「削除タイムスタンプ」にするなどタグ名を変更したりすることで表すことができる。
コンテンツ削除集約情報は、図9に示すコンテンツ蓄積更新集約情報と同様のフォーマットを用いるが、さらに、コンテンツ削除を示す情報が含まれる。例えば、データの種類自体を「コンテンツ削除集約情報」としたり、コンテンツ削除を示す要素を追加したり、「タイムスタンプ」を「削除タイムスタンプ」にするなどタグ名を変更したりすることで表すことができる。
そして、従来のコンテンツの配信手順によりコンテンツ削除情報を送信する場合は、以下のように動作する。
あるノード装置1において、ユーザが、入力部27により現在のコンテンツ蓄積状況の表示指示を入力すると、制御部28は、蓄積コンテンツ管理部14がコンテンツ蓄積部12から読み出したコンテンツの情報を表示部29により表示させる。そして、この表示された中から、ユーザが、入力部27により削除対象のコンテンツの情報を入力する。制御部28は、削除対象のコンテンツのコンテンツIDと、コンテンツ削除指示を蓄積コンテンツ管理部14に出力し、蓄積コンテンツ管理部14は削除対象のコンテンツをコンテンツ蓄積部12から削除する。これにより、ノード装置1は、コンテンツ蓄積更新情報の代わりに、削除対象のコンテンツのコンテンツIDと、自ノード装置のIPアドレス及びポート番号、現在の時刻を設定したタイムスタンプからなる発信ノード情報とを記述したコンテンツ削除情報を生成する。そして、図4に示す従来のコンテンツ配信手順と同様の手順により、コンテンツ蓄積更新情報の代わりに、コンテンツ削除情報が管理ノードへ転送される。管理ノードとしてのノード装置1は、受信したコンテンツ削除情報に設定されているコンテンツID、ノード装置のノードID、IPアドレス、ポート番号に対応させて、削除を示す情報と、当該コンテンツ削除情報に設定されているタイムスタンプとを、自身の保持するコンテンツリストに書き込む。
一方、一斉削除指示が複数のノード装置1へ配信された場合は、図6、図10〜11に示すコンテンツの配信手順と同様の手順により、コンテンツ削除情報、または、コンテンツ削除集約情報が管理ノードへ転送される。この場合、削除指示を受信したノード装置1は、コンテンツ蓄積更新情報の代わりに、削除対象のコンテンツのコンテンツIDと、自ノード装置のノードID、IPアドレス及びポート番号、現在の時刻を設定したタイムスタンプからなる発信ノード情報とを記述したコンテンツ削除情報を生成する。そして、従来のコンテンツ配信手順と同様の転送手順により、コンテンツ蓄積更新情報の代わりに、コンテンツ削除情報が管理ノードへ転送される。
中継集約ノードとしてのノード装置1は、受信したコンテンツ削除情報、コンテンツ削除集約情報と、自身が生成したコンテンツ削除情報とを集約して、コンテンツ削除集約情報を生成する。具体的には、同じコンテンツIDが設定されたコンテンツ削除情報から発信ノード情報を、コンテンツ削除集約情報から発信ノードリスト情報を読み出して、これらを設定した新たな発信ノードリスト情報を生成すると、コンテンツIDと、新たな発信ノードリスト情報とを記述したコンテンツ削除集約情報を生成する。
そして、管理ノードとしてのノード装置1は、受信したコンテンツ削除集約情報に設定されているコンテンツID、発信ノードリスト内の他のノード装置1のノードID、IPアドレス、ポート番号の組に対応させて削除を示す情報と、発信ノードリスト内に記述されている当該組に対応したタイムスタンプとを、自身の保持するコンテンツリストに書き込む。また、自身でコンテンツ削除情報を生成した場合は、さらに、生成したコンテンツ削除情報に設定されている自身のコンテンツID、ノードID、IPアドレス、ポート番号に対応させて、削除を示す情報と、当該コンテンツ削除情報に設定されているタイムスタンプとを、コンテンツリストに書き込む。
[5.6 コンテンツリストの同期更新]
各ノード装置1は、自身と同じ管理範囲に属する他のノード装置1と、自身が保持しているコンテンツリストとを交換し、コンテンツリストを同期更新する。
図6、図10〜12に示すコンテンツの配信手順や、上述する削除手順によって、ノードリストを更新したノード装置1の関数計算部13は、コンテンツリストの更新対象となったコンテンツIDのハッシュ値を算出し、データ転送先決定部18は、算出されたハッシュ値と、範囲規定情報記憶部16から読み出した近傍範囲とから、管理範囲を得る。例えば、コンテンツIDのハッシュ値をX、近傍範囲をYとした場合、(X)〜(X−Y+1)が管理範囲となる。データ転送先決定部18は、ノードリスト記憶部20に記憶されているノードリストから、ノードIDのハッシュ値が(X)〜(X−Y+1)となる他のノード装置1のIPアドレスとポート番号を読み出す。通信出力部21は、コンテンツリスト管理部25がコンテンツリスト記憶部26から読み出したコンテンツ管理リストを、データ転送先決定部18が読み出したIPアドレスとポート番号を宛先とし、同期先のノード装置1へ送信する。
同期先のノード装置1のコンテンツリスト管理部25がコンテンツ管理リストを受信すると、通信出力部21は、コンテンツリスト管理部25がコンテンツリスト記憶部26から読み出したコンテンツ管理リストを、受信したコンテンツ管理リストの送信元のノード装置1へ返送する。
コンテンツ管理リストを受信した各ノード装置1のコンテンツリスト管理部25は、受信したコンテンツ管理リストと、コンテンツリスト記憶部26に記憶されているコンテンツ管理リストとを比較して差分を抽出する。コンテンツリスト管理部25は、抽出した差分のうち、受信したコンテンツ管理リストのほうがタイムスタンプの新しいもの、あるいは、受信したコンテンツリストのみに記述されているものについて、自身のコンテンツ管理リストを更新する。
[6. 第2の実施形態]
ここでは、第1の実施形態との差分のみを説明する。第1の実施形態では、通知経路が一つの場合のコンテンツ蓄積更新情報の通知手順であるが、通知経路が一つということで、中継集約ノードでの情報処理中に、そのノード装置1の電源が落ちる、ネットワーク接続が不能になる、処理の不具合が生じる、など障害が発生した場合、管理ノードにコンテンツ蓄積更新情報が通知されない可能性がある。そこで、第2の実施形態では、情報伝達における信頼性を向上させることを目的に、複数経路を経由して管理ノードに通知する。
図13は、第2の実施形態によるコンテンツ蓄積更新情報の通知手順について示す。なお、例として経路数=2の場合を示す。第2の実施形態では、図6の説明における(手順C−3)、(手順C−4)の代わりに、以下の(手順D−1)〜(手順D−3)を実行する。
(手順D−1)それぞれのノード装置1は、自身が属する範囲内で最もハッシュ値が501に近い他のノード装置1を、自身が記憶しているノードリストから検索し、コンテンツ蓄積更新情報の通知先のノード装置1として認識する。ノード装置(402)は、ハッシュ値が「405」、「407」、「410」、「416」、「420」、…となるノードIDで特定されるノード装置についての情報が記述されたノードリストを記憶しており、ノード装置(410)は、ハッシュ値が「410」、「416」、「420」、…となるノードIDで特定されるノード装置についての情報が記述されたノードリストを記憶している。そこで、自身の属する範囲が402〜421の範囲である、コンテンツを蓄積したノード装置(402)、(410)は、ノードリストより、ノード装置(420)を検出する。ノード装置(420)はコンテンツを蓄積したノード装置であるかどうかは関係ない。
(手順D−2)それぞれのノード装置1は、自ノード装置と同じ範囲に属し、かつ、(手順D−1)において検出した他のノード装置1にハッシュ空間上で隣接するさらに他のノード装置1をノードリストより検索し、もう一つのコンテンツ蓄積更新情報の通知先のノード装置1として認識する。自身の属する範囲が402〜421の範囲である、コンテンツを蓄積したノード装置(402)、(410)の場合、(手順D−1)において検出したノード装置(420)に隣接するノード装置(416)が該当する。このノード装置1においてもコンテンツを蓄積したノード装置であるかどうかは関係ない。
(手順D−3)コンテンツを蓄積したノード装置1は、(手順D−1)及び(手順D−2)において検出した通知先のノード装置1にコンテンツ蓄積更新情報として、蓄積したコンテンツのコンテンツID、自身のノードID、IPアドレス、ポート番号を送信する。自身の属する範囲が402〜421の範囲である、ノード装置(402)、(410)からは、コンテンツ蓄積更新情報をノード装置(416)、(420)に送信する。
以下、図6の例と同様に、中継集約ノードを経由して、管理ノードにコンテンツ蓄積更新集約情報を通知する。この方式によると、中継集約ノードを増やすことで障害耐性が強まり、情報の転送に対する信頼性は向上する。ただし、ネットワーク上のトラフィックが増加するので、適切な数の中継集約ノードおよび経路数を設定することが望ましい。
第2の実施形態によるノード装置1の処理フローは、図10〜12と同様であるが、図10のステップS145において、データ転送先決定部18は、コンテンツ蓄積更新情報の送信先として、自身が含まれるとして特定した分割範囲内(X−iY)〜(X−(i+1)Y+1)の中で、自身のノードIDのハッシュ値よりもXに近く、かつ、ノードリストに登録されているハッシュ値の中で、最もXに近いハッシュ値から所定数を選択し、ステップS155において、通信出力部21は、生成したコンテンツ蓄積更新情報を、選択された複数の転送先のノード装置1へ送信する。
なお、中継集約ノードが複数の送信先へコンテンツ蓄積更新集約情報を送信するようにしてもよい。この場合、図11のステップS240において、データ転送先決定部18は、ノードリストに登録されているハッシュ値の中で、自身が含まれるとして特定した分割範囲内に隣接した分割範囲(X−i’Y)〜(X−(i’+1)Y+1)(i’=i−1)内であり、かつ、最もXに近いハッシュ値から所定数を選択し、ステップS250において、通信出力部21は、生成したコンテンツ蓄積更新集約情報を、選択された複数の転送先のノード装置1へ送信する。
他の処理は、第1の実施形態と同様である。
[7. 効果]
上述した実施形態によれば、P2Pネットワーク上での放送型配信コンテンツの分散管理において、コンテンツを蓄積したノード装置1からそのコンテンツの管理ノードに対してコンテンツリストの更新要求を通知する際に、複数のノード装置1から発生した更新要求を、管理ノードまでの経路に存在するノード装置1(中継集約ノード)において集約しながら通知を行う。これにより、管理ノードに到達する更新要求の数を減らすことができ、アクセス集中による管理ノードへの負荷、および、管理ノード周辺のネットワークの負荷を抑制することができる。さらに、ノード装置1はコンテンツの蓄積完了とともに更新要求を発信することで、コンテンツが短時間に連続的に投入されても投入順序どおりに処理を行え、輻輳を回避できると同時に、管理ノードにおけるコンテンツリストの更新完了までの時間を抑制することができる。
また、各ノード装置1が共通のハッシュ関数を実行し、このハッシュ関数とコンテンツやノード装置1のノードIDから、コンテンツリストの更新要求の適切な送信先を各ノード装置1が自律的に決定することができる。これにより、サーバを介さずにコンテンツの分散管理を実現することができる。また、ノード装置1において、管理ノードとして振舞うノード装置1において、受信した集約されたコンテンツリストの更新要求を随時処理することで、コンテンツリストの更新完了までの時間を抑制することができる。また、第2の実施形態のように、コンテンツリストの更新要求の適切な送信先を複数個決定することにより、更新要求を発信したノード装置1から管理ノードまでの経路において、中継集約ノードの障害などによる転送の失敗が発生する確率を低減することができる。
このように、本実施形態のノード装置1を用いて、P2Pネットワーク上のコンテンツの分散管理を実現することで、サーバを必要としない大規模なコンテンツ配信システムの設計が可能になる。
以上、実施形態として、高度BSデジタル放送のダウンロードサービスにおけるP2Pネットワーク上のコンテンツの分散管理の例を示したが、放送だけでなく、有線あるいは無線の通信によるコンテンツ配信においても、ノード装置1およびシステムが同様の構成をとることで、同様の機能を実現することができる。
なお、上述のノード装置1は、内部にコンピュータシステムを有している。そして、ノード装置の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
本発明を適用可能なP2Pネットワークを用いたコンテンツ分散管理システムの全体構成図である。 コンテンツリストの設定例を示す図である。の例を示す図である。 ノードリストの設定例を示す図である。 従来技術を用いたコンテンツ蓄積とその通知手順を示す図である。 従来技術を用いたコンテンツ検索手順を示す図である。 第1の実施形態によるコンテンツ蓄積更新情報の通知手順を示す図である。 同実施形態によるノード装置の内部機能を示すブロック図である。 同実施形態によるコンテンツ蓄積更新情報の記述例を示す。 同実施形態によるコンテンツ蓄積更新集約情報の記述例を示す。 同実施形態によるコンテンツ分散管理システムにおける各ノード装置の処理フローを示す図である。 同実施形態によるコンテンツ分散管理システムにおける各ノード装置の処理フローを示す図である。 同実施形態によるコンテンツ分散管理システムにおける各ノード装置の処理フローを示す図である。 第2の実施形態によるコンテンツ蓄積更新情報の通知手順を示す図である。
符号の説明
1…ノード装置
11…放送受信部
12…コンテンツ蓄積部
13…関数計算部
14…蓄積コンテンツ管理部
15…近傍範囲規定部
16…範囲規定情報記憶部
17…コンテンツ蓄積更新情報生成部
18…データ転送先決定部
19…ノードリスト管理部
20…ノードリスト記憶部
21…通信出力部
22…通信入力部
23…情報集約制御部
24…コンテンツ蓄積更新集約情報生成部
25…コンテンツリスト管理部
26…コンテンツリスト記憶部
27…入力部
28…制御部
29…表示部

Claims (7)

  1. 所定の規則により複数の群に分けられる複数のノード装置と当該複数のノード装置間を接続するネットワークとからなるコンテンツ分散管理システムを構成し、前記所定の規則により前記複数の群のうちコンテンツの所在を管理する前記群を判断する前記ノード装置であって、
    前記ネットワークを介して接続される他のノード装置の通信アドレスを設定したノードリストを記憶するノードリスト記憶部と、
    前記ネットワークを介して接続され且つ自ノード装置が属する群と同じ群に属する他のノード装置のうち、コンテンツを蓄積している前記他のノード装置から、当該コンテンツの識別情報と当該コンテンツを記憶している当該他のノード装置の通信アドレスとを関連付けてなるコンテンツ蓄積更新情報を受信する通信入力部と、
    前記通信入力部により受信した前記コンテンツ蓄積更新情報のうち、同一のコンテンツの識別情報を含む複数の前記コンテンツ蓄積更新情報を特定し、特定された前記コンテンツ蓄積更新情報から前記他のノード装置の通信アドレスをそれぞれ読み出し、前記同一のコンテンツの識別情報と、読み出された複数の前記他のノード装置の通信アドレスとを関連付けてなるコンテンツ蓄積更新集約情報を生成するコンテンツ蓄積更新集約情報生成部と、
    前記ノードリスト記憶部に記憶されている前記ノードリストから、前記コンテンツ蓄積更新集約情報を送信する宛先として、自ノード装置が属する前記群とは異なる群に属する前記他のノード装置の通信アドレスを読み出すデータ転送先決定部と、
    前記コンテンツ蓄積更新集約情報生成部が生成した前記コンテンツ蓄積更新集約情報を、前記データ転送先決定部が前記コンテンツ蓄積更新集約情報を送信する宛先として読み出した前記通信アドレスに対して送信する通信出力部と、
    を備えることを特徴とするノード装置。
  2. 前記通信入力部は、さらに、前記ネットワークを介して接続され且つ自ノード装置が属する前記群とは異なる群に属する他のノード装置からコンテンツ蓄積更新集約情報を受信し、
    前記コンテンツ蓄積更新集約情報生成部は、前記通信入力部により受信した前記コンテンツ蓄積更新情報及び前記コンテンツ蓄積更新集約情報のうち、前記同一のコンテンツの識別情報が設定されている前記コンテンツ蓄積更新情報及び前記コンテンツ蓄積更新集約情報を特定し、特定した前記コンテンツ蓄積更新情報及び前記コンテンツ更新集約情報から前記他のノード装置の通信アドレスをそれぞれ読み出し、前記同一のコンテンツの識別情報と、読み出された複数の前記他のノード装置の通信アドレスとを関連付けてなるコンテンツ蓄積更新集約情報を生成する、
    ことを特徴とする請求項1に記載のノード装置。
  3. 前記コンテンツの識別情報と当該コンテンツのデータとを対応づけて記憶するコンテンツ蓄積部と、
    前記コンテンツの識別情報と当該コンテンツのデータとを対応づけて前記コンテンツ蓄積部に書き込む蓄積コンテンツ管理部と、
    前記蓄積コンテンツ管理部が前記コンテンツのデータを前記コンテンツ蓄積部に書き込んだときに、当該コンテンツの識別情報と、自ノード装置のアドレス情報とを関連付けてなるコンテンツ蓄積更新情報を生成するコンテンツ蓄積更新情報生成部と、
    をさらに備え、
    前記データ転送先決定部は、前記ノードリスト記憶部に記憶されている前記ノードリストから、自ノード装置が属する前記群と同じ群に属する前記他のノード装置の通信アドレスを前記コンテンツ蓄積更新情報の送信先として読み出し、
    前記通信出力部は、前記コンテンツ蓄積更新情報生成部が生成した前記コンテンツ蓄積更新情報を、前記データ転送先決定部が前記コンテンツ蓄積更新情報の送信先として読み出した通信アドレスに対して送信する、
    ことを特徴とする請求項1または請求項2に記載のノード装置。
  4. 前記データ転送先決定部は、前記ノードリスト記憶部に記憶されている前記ノードリストから、自ノード装置が属する前記群と同じ群に属する前記他のノード装置の通信アドレスを複数、前記コンテンツ蓄積更新情報の送信先として読み出し、
    前記通信出力部は、前記コンテンツ蓄積更新情報生成部が生成した前記コンテンツ蓄積更新情報を、前記データ転送先決定部が前記コンテンツ蓄積更新情報の送信先として読み出した前記複数の通信アドレスに対して送信する、
    ことを特徴とする請求項3に記載のノード装置。
  5. 前記コンテンツの識別情報と、当該コンテンツを記憶している前記他のノード装置のアドレス情報との対応付けを示すコンテンツリストを記憶するコンテンツリスト記憶部と、
    自ノード装置が属する前記群とは異なる群に属する前記他のノード装置から受信したコンテンツ蓄積更新集約情報に含まれる前記コンテンツの識別情報から前記所定の規則に基づいて、当該コンテンツに対応する管理ノード装置が自ノード装置であると判断した場合に、当該コンテンツ蓄積更新集約情報に含まれる前記コンテンツの識別情報と当該コンテンツを蓄積している複数の他のノード装置毎の前記通信アドレスの情報とを関連付けてなるコンテンツリストを前記コンテンツリスト記憶部に書き込むコンテンツリスト管理部と、
    をさらに備えることを特徴とする請求項1から請求項4のいずれかの項に記載のノード装置。
  6. 前記他のノード装置及び自身のノード装置それぞれの識別情報を所定の関数により算出した演算結果を、前記コンテンツ蓄積更新情報に含まれる前記コンテンツの識別情報を前記所定の関数により算出した演算結果に近い順から複数の群に分割する所定の条件である情報を記憶する範囲規定情報記憶部と、
    前記所定の関数の演算を行なう関数計算部と、
    をさらに備え、
    前記ノードリストは、前記他のノード装置の識別情報を変数として前記所定の関数により算出した演算結果と、当該ノード装置の通信アドレスとの関連付けを示し、
    前記関数計算部は、前記通信入力部が受信した前記コンテンツ蓄積更新情報に含まれる前記コンテンツの識別情報を変数として前記所定の関数により演算を行い、
    前記データ転送先決定部は、前記範囲規定情報記憶部に記憶されている前記条件の情報に基づいて、前記他のノード装置及び自ノード装置を、前記関数計算部により演算された演算結果に近い順から複数の群に分割し、前記コンテンツ蓄積更新集約情報を送信する宛先として、前記ノードリスト記憶部に記憶されている前記ノードリストから、自ノード装置が属する群よりも近い群に属する前記他のノード装置の通信アドレスを読み出す、
    ことを特徴とする請求項1または請求項2に記載のノード装置。
  7. 所定の規則により複数の群に分けられる複数のノード装置と当該複数のノード装置間を接続するネットワークとからなるコンテンツ分散管理システムを構成し、前記所定の規則により前記複数の群のうちコンテンツの所在を管理する前記群を判断する前記ノード装置として用いられるコンピュータを、
    前記ネットワークを介して接続される他のノード装置の通信アドレスを設定したノードリストを記憶するノードリスト記憶部、
    前記ネットワークを介して接続され且つ自ノード装置が属する群と同じ群に属する他のノード装置のうち、コンテンツを蓄積している前記他のノード装置から、当該コンテンツの識別情報と当該コンテンツを記憶している当該他のノード装置の通信アドレスとを関連付けてなるコンテンツ蓄積更新情報を受信する通信入力部、
    前記通信入力部により受信した前記コンテンツ蓄積更新情報のうち、同一のコンテンツの識別情報を含む複数の前記コンテンツ蓄積更新情報を特定し、特定された前記コンテンツ蓄積更新情報から前記他のノード装置の通信アドレスをそれぞれ読み出し、前記同一のコンテンツの識別情報と、読み出された複数の前記他のノード装置の通信アドレスとを関連付けてなるコンテンツ蓄積更新集約情報を生成するコンテンツ蓄積更新集約情報生成部、
    前記ノードリスト記憶部に記憶されている前記ノードリストから、前記コンテンツ蓄積更新集約情報を送信する宛先として、自ノード装置が属する群とは異なる群に属する前記他のノード装置の通信アドレスを読み出すデータ転送先決定部、
    前記コンテンツ蓄積更新集約情報生成部が生成した前記コンテンツ蓄積更新集約情報を、前記データ転送先決定部が前記コンテンツ蓄積更新集約情報を送信する宛先として読み出した前記通信アドレスに対して送信する通信出力部、
    として機能させることを特徴とするコンピュータプログラム。
JP2008270248A 2008-10-20 2008-10-20 ノード装置及びコンピュータプログラム Expired - Fee Related JP5026388B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008270248A JP5026388B2 (ja) 2008-10-20 2008-10-20 ノード装置及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008270248A JP5026388B2 (ja) 2008-10-20 2008-10-20 ノード装置及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2010097570A JP2010097570A (ja) 2010-04-30
JP5026388B2 true JP5026388B2 (ja) 2012-09-12

Family

ID=42259175

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008270248A Expired - Fee Related JP5026388B2 (ja) 2008-10-20 2008-10-20 ノード装置及びコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP5026388B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6353395B2 (ja) * 2015-04-08 2018-07-04 日本電信電話株式会社 配信要求分散方法、ノード、及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007037018A1 (ja) * 2005-09-29 2007-04-05 Fujitsu Limited プレゼンス通信システム
JP2007235243A (ja) * 2006-02-27 2007-09-13 Brother Ind Ltd 情報通信システム、情報収集方法、ノード装置、及びノード処理プログラム
JP4830889B2 (ja) * 2007-02-15 2011-12-07 ブラザー工業株式会社 情報配信システム、情報配信方法及びノード装置等

Also Published As

Publication number Publication date
JP2010097570A (ja) 2010-04-30

Similar Documents

Publication Publication Date Title
USRE49943E1 (en) System and method for a context layer switch
US11477118B2 (en) Preemptive caching of content in a content-centric network
Zhang et al. Scalable name-based data synchronization for named data networking
US8059560B2 (en) Tree-type network system, node device, broadcast system, broadcast method, and the like
US20090116412A1 (en) Tree-type broadcast system, reconnection process method, node device, node process program, server device, and server process program
CN101755261A (zh) 辅助对等媒体流传送
JP2007148545A (ja) 情報配信システム、情報配信方法、ノード装置、及びノード処理プログラム
US7853718B2 (en) Information delivery system, reregistration message sending method, node device, and recording medium recording node processing program
JP4692414B2 (ja) 通信システム、コンテンツデータ送信可否決定方法、ノード装置、及びノード処理プログラム等
CN113453038B (zh) 一种cdn-p2p混合架构下效用最优协同缓存管理方法
CN108293023B (zh) 支持信息为中心的网络中的上下文感知的内容请求的系统和方法
JP2008294626A (ja) コンテンツ分散保存システム、コンテンツ保存方法、ノード装置、及びノード処理プログラム
CN104506537B (zh) P2p系统节点选择方法
US20140317271A1 (en) Method and node apparatus for collecting information in content network based on information-centric networking
CN101394339A (zh) 一种在对等网络中实现路由的方法、系统及装置
JP5026388B2 (ja) ノード装置及びコンピュータプログラム
JP2011150382A (ja) コンテンツ配信システムと方法およびプログラム
JP4146373B2 (ja) 動的なネットワークにおけるサービス選択方法およびサービス選択システム
JP5522801B2 (ja) 受信端末およびその制御プログラム
Bhargavi et al. A hybrid secure routing scheme for MANETS
CN110139126B (zh) 基于用户交互行为感知的移动视频系统资源共享方法
US20080240138A1 (en) Tree type broadcast system, connection target determination method, connection management device, connection management process program, and the like
CN107332769B (zh) 数据转发方法及装置
JP2008236538A (ja) ツリー型放送システム、コンテンツ放送方法、放送管理装置、及び放送管理処理プログラム
JP5280284B2 (ja) ノード装置及びコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110318

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120517

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: 20120522

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: 20120620

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

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees