JP2006252532A - 情報配信システム、配信要求プログラム、転送プログラム及び配信プログラム等 - Google Patents

情報配信システム、配信要求プログラム、転送プログラム及び配信プログラム等 Download PDF

Info

Publication number
JP2006252532A
JP2006252532A JP2006019826A JP2006019826A JP2006252532A JP 2006252532 A JP2006252532 A JP 2006252532A JP 2006019826 A JP2006019826 A JP 2006019826A JP 2006019826 A JP2006019826 A JP 2006019826A JP 2006252532 A JP2006252532 A JP 2006252532A
Authority
JP
Japan
Prior art keywords
information
node
node device
request
requests
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
JP2006019826A
Other languages
English (en)
Other versions
JP4599581B2 (ja
Inventor
Hideki Matsuo
英輝 松尾
Yoshihiko Hibino
義彦 日比野
Yuji Kiyohara
裕二 清原
Hiroaki Suzuki
博明 鈴木
Kentaro Ushiyama
建太郎 牛山
Koichi Iijima
康一 飯島
Tomohiro Kudo
知宏 工藤
Osami Takebe
修見 建部
Yuetsu Kodama
祐悦 児玉
Kazuyuki Shudo
一幸 首藤
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
Xing Inc
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Brother Industries Ltd
Xing Inc
National Institute of Advanced Industrial Science and Technology AIST
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, Xing Inc, National Institute of Advanced Industrial Science and Technology AIST filed Critical Brother Industries Ltd
Priority to JP2006019826A priority Critical patent/JP4599581B2/ja
Priority to PCT/JP2006/302038 priority patent/WO2006085519A1/ja
Publication of JP2006252532A publication Critical patent/JP2006252532A/ja
Priority to US11/890,473 priority patent/US7839867B2/en
Application granted granted Critical
Publication of JP4599581B2 publication Critical patent/JP4599581B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • G06F16/1837Management specially adapted to peer-to-peer storage networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】複数のコンテンツノードからコンテンツの配信を受けるべく、ノード情報を効率よく取得する情報配信システムを提供する。
【解決手段】互いに接続された複数のノード装置を備えた情報配信システムにおいて、第1のノード装置は第2のノード装置に対して、装置間で共用されるべき共用情報のうち特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、固有の識別情報とノード情報の要求数を示す要求数情報要求情報を第2のノード装置に対して送信する手段を有し、第2のノード装置は、特定共用情報の要求を受けた場合には、識別情報に対応するノード情報であって、要求情報に含まれる要求数分のノード情報を検索する手段と、要求数分以上のノード情報が発見された場合には、第1のノード装置に要求数分のノード情報を送信し、発見されなかった場合には、発見されたノード情報を第1のノード装置に送信する手段とを有する。
【選択図】図1

Description

本発明は、ネットワークを介して互いに接続された複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))型のコンテンツ配信システムに関し、特に、1のノード装置から他のノード装置に配信されるべきコンテンツデータが複数のノード装置に分散して保存された情報配信システム、配信要求プログラム、転送プログラム及び配信プログラム等の技術分野に関する。
この種のコンテンツ配信システムにおいては、各ノード装置は、複数のノード装置に分散保存されているコンテンツデータに関する所在情報(例えば、コンテンツデータのタイトル等の補助情報を指定することにより、コンテンツデータを保存しているノード装置のIPアドレス等が特定できる情報:以下ではインデックス情報と呼ぶ。)が記述されたリストを有しており、当該リストに記述されたインデックス情報に基づき、ユーザが所望するコンテンツデータをダウンロードすることが可能になっている。このようなリストは、複数のノード装置において共通に使用されるべき共用情報であり、一般に、コンテンツ配信システム上に保存されている全てのコンテンツデータを管理する管理サーバにより管理され、当該管理サーバから各ノード装置に対して上記リストが配信されることになる。
例えば、非特許文献1には、管理サーバを用いない方法として、分散ハッシュテーブル(DHT)を用いた技術が開示されているが、このシステムでは、コンテンツの配信を希望するリクエストノードは、コンテンツ情報を管理するノード装置からコンテンツ情報を記憶するノード装置の所在を聞いて、当該ノード装置にアクセスするようになっている。
「分散ハッシュテーブルの軽量な負荷分散手法の検討」 社団法人 電子情報通信学会 信学技報
ところで、分散ハッシュテーブル(DHT)を用いたコンテンツ配信システムにおいて、コンテンツの配信を希望するリクエストノードが、所望のコンテンツを記憶する複数のノード装置と接続して夫々のノード装置からコンテンツ情報を受信し、所望のコンテンツをできるだけ早く取得したいという場合がある。
このような場合には、リクエストノードがコンテンツ情報を記憶するノード装置の所在を複数個要求して要求数分のコンテンツ情報を記憶するノード装置の所在を有するノード装置から、コンテンツ情報を記憶するノード装置の所在を受信することが考えられるが、このように複数のコンテンツノード装置の所在を問われたノード装置では、要求された数を満足する数のノード装置の所在を自己が有するリストに記載されていない限り、リクエストノードに応答しないので、リクエストノードは、要求した数のノード装置の所在をリストに有するノード装置まで問い合わせが到達し、当該ノード装置から要求された数を満足する数のノード装置の所在の回答が送信されるまでの間、上流からの応答を待機しなければならないという問題が懸念される。
本発明は、以上の問題等に鑑みてなされたものであり、リクエストノードが、所望のコンテンツを記憶する複数のノード装置から当該コンテンツを効率よく取得することを可能とした情報配信システム、配信要求プログラム、転送プログラム、配信プログラム等を提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおいて、前記複数のノード装置に含まれる第1のノード装置は、前記複数のノード装置に含まれる第2のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段と、前記生成した要求情報を前記第2のノード装置に対して送信する要求情報送信手段と、前記第2のノード装置から前記ノード情報を受信するノード情報受信手段と、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段と、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段と、を有し、前記第2のノード装置は、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、前記複数のノード装置の何れかのノード装置から前記要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信手段と、前記第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信手段により前記第1のノード装置に送信したノード情報である送信済ノード情報と、を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、を有し、前記情報記憶ノード装置は、前記第1のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第1のノード装置に対して前記特定共用情報を配信する配信手段と、を有することを特徴とする。
これによれば、第1のノード装置としてのリクエストノードから特定共用情報としてのコンテンツデータの所在の問い合わせを行なう際に、リクエストノードは情報記憶ノード装置としてのコンテンツノードのノード情報を要求する数を要求数情報として要求情報としてのクエリに含んで送信し、複数のコンテンツノードからコンテンツの配信を受けることができるため、より早くコンテンツデータを取得することが可能になる。さらに、第2のノード装置がルートノードで無い場合に、当該第2のノード装置が、クエリを上流のノード装置に転送する際には、既に送信済みのノード情報を送信済ノード情報として要求数情報と併せて送信するよう構成したので、これを受けた上流のノード装置に送信済ノード情報を認識させることが可能になる。
上記課題を解決するために、請求項2に記載の発明は、請求項1に記載の情報配信システムにおいて、第2のノード装置が、前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索手段は、前記記憶手段に記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索することを特徴とする。
これによれば、送信済ノード情報を検索対象から除外することにより、第1のノード装置としてのリクエストノードに同一のノード情報を重複して送信することを防ぐことができる。
上記課題を解決するために、請求項3に記載の発明は、請求項1又は請求項2に記載の情報配信システムにおいて、前記第2のノード装置は、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報がない場合であって、当該第2のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信手段により前記第1のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新手段を有し、前記第2のノード装置における前記転送手段は、当該更新された要求数を新たな要求数情報とした前記要求情報を転送することを特徴とする。
これによれば、当該要求情報を転送する際に、ルートノード或いはキャッシュノード等の第2のノード装置では、既にリクエストノードなどの第1のノード装置にノード情報を送信した数を減算して要求数を更新して転送することができるため、当該第1のノード装置は、第1のノード装置が要求する数のノード情報を確実かつ効率的に取得することが可能になる。
上記課題を解決するために、請求項4に記載の発明は請求項1乃至請求項3のいずれか一項に記載の情報配信システムにおいて、前記第1のノード装置における前記配信要求手段は、前記ノード情報受信手段により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求し、前記第1のノード装置における前記特定共用情報受信手段は、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信することを特徴とする。
これによれば、リクエストノード等の第1のノード装置では、要求数分のノード情報を全部受信しなくても、ルートノード或いはキャッシュノード等の第2のノード装置からノード情報を受信するたびに当該ノード情報に基づいてコンテンツノード等の情報記憶ノード装置に配信要求を行って、順次特定共用情報としての所望のコンテンツの受信を受けるよう構成することができ、更に複数のコンテンツノードと接続すると、夫々のコンテンツノードからコンテンツを並列して受信することができるため、より迅速に所望のコンテンツを取得することが可能になる。
上記課題を解決するために、請求項5に記載の発明は、請求項1乃至請求項4のいずれか一項に記載の情報配信システムにおいて、前記第2のノード装置は、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第2のノード装置自身が、前記管理ノード装置である場合には、前記第1のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答手段を有することを特徴とする。
これによれば、管理ノード装置としてのルートノードに要求情報が転送されてもなお要求数分のノード情報を発見できない場合には、リクエストノード等の第1のノード装置に対してエラー回答を送信するよう構成したので、第1のノード装置では要求数分のノード情報が無いことを容易に把握することが可能になる。
上記課題を解決するために、請求項6に記載の発明はネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける情報配信方法であって、前記複数のノード装置に含まれる第2のノード装置が、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶工程と、前記複数のノード装置に含まれる第1のノード装置が、前記第2のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する工程と、前記第1のノード装置が、前記生成した要求情報を前記第2のノード装置に対して送信する工程と、前記第2のノード装置が、前記複数のノード装置の何れかのノード装置から前記要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶工程にて記憶したノード情報から、当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索工程と、前記第2のノード装置が、前記ノード情報検索工程による検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信工程と、前記第2のノード装置が、当該第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信工程により前記第1のノード装置に送信したノード情報である送信済ノード情報と、を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送工程と、前記第1のノード装置が、前記第2のノード装置から前記ノード情報を受信するノード情報受信工程と、前記第1のノード装置が、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求工程と、前記情報記憶ノード装置が、前記第1のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第1のノード装置に対して前記特定共用情報を配信する配信工程と、前記第1のノード装置が、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信工程と、を有することを特徴とする。
上記課題を解決するために、請求項7に記載の発明は請求項6に記載の情報配信方法において、前記第2のノード装置が、前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索工程では、前記記憶工程にて記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索することを特徴とする。
上記課題を解決するために、請求項8に記載の発明は請求項6又は請求項7に記載の情報配信方法において、前記第2のノード装置が、前記ノード情報検索工程による検索の結果前記要求数分の前記ノード情報がない場合であって、当該第2のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信工程にて前記第1のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新工程を有し、前記転送工程では、当該更新された要求数を新たな要求数情報とした前記要求情報を転送することを特徴とする。
上記課題を解決するために、請求項9に記載の発明は請求項5乃至請求項8のいずれか一項に記載の情報配信方法において、前記配信要求工程では、前記ノード情報受信工程により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求し、前記特定共用情報受信工程は、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信することを特徴とする。
上記課題を解決するために、請求項10に記載の発明は請求項5乃至請求項9のいずれか一項に記載の情報配信方法において、前記第2のノード装置が、前記ノード情報検索工程による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第2のノード装置自身が、前記管理ノード装置である場合には、前記第1のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答工程を有することを特徴とする。
上記課題を解決するために、請求項11に記載の発明はネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第1のノード装置において、前記複数のノード装置に含まれる第2のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段と、前記生成した要求情報を前記第2のノード装置に対して送信する要求情報送信手段と、前記第2のノード装置から前記ノード情報を受信するノード情報受信手段と、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段と、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段と、を有することを特徴とする。
上記課題を解決するために、請求項12に記載の発明は請求項11に記載の第1のノード装置において、前記配信要求手段は、前記ノード情報受信手段により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求し、前記特定共用情報受信手段は、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信することを特徴とする。
上記課題を解決するために、請求項13に記載の発明はネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第1のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第2のノード装置において、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信手段と、前記第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信手段により前記第1のノード装置に送信したノード情報である送信済ノード情報と、を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、を有することを特徴とする。
上記課題を解決するために、請求項14に記載の発明は請求項13に記載の第2のノード装置において、前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索手段は、前記記憶手段に記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索することを特徴とする。
上記課題を解決するために、請求項15に記載の発明は請求項13又は請求項14に記載の第2のノード装置において、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報がない場合であって、当該第2のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信手段により前記第1のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新手段を有し、前記転送手段は、当該更新された要求数を新たな要求数情報とした前記要求情報を転送することを特徴とする。
上記課題を解決するために、請求項16に記載の発明は請求項13乃至請求項15のいずれか一項に記載の第2のノード装置において、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第2のノード装置自身が、前記管理ノード装置である場合には、前記第1のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答手段を有することを特徴とする。
上記課題を解決するために、請求項17に記載の発明はネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第1のノード装置に含まれるコンピュータを、前記複数のノード装置に含まれる第2のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段、前記生成した要求情報を前記第2のノード装置に対して送信する要求情報送信手段、前記第2のノード装置から前記ノード情報を受信するノード情報受信手段、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段、として機能させることを特徴とする。
上記課題を解決するために、請求項18に記載の発明は請求項17に記載の配信要求プログラムにおいて、前記配信要求手段を、前記ノード情報受信手段により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求するよう機能させ、前記特定共用情報受信手段を、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信するよう機能させることを特徴とする。
上記課題を解決するために、請求項19に記載の発明はネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第1のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第2のノード装置に含まれるコンピュータを、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段、前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段、前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信手段と、前記第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信手段により前記第1のノード装置に送信したノード情報である送信済ノード情報と、を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段として機能させることを特徴とする。
上記課題を解決するために、請求項20に記載の発明は請求項19に記載の転送プログラムにおいて、前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索手段は、前記記憶手段に記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索するよう機能させることを特徴とする。
上記課題を解決するために、請求項21に記載の発明は請求項19又は請求項20に記載の転送プログラムにおいて、前記コンピュータを、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報がない場合であって、当該第2のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信手段により前記第1のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新手段として機能させ、かつ、前記転送手段を、当該更新された要求数を新たな要求数情報とした前記要求情報を転送するよう機能させることを特徴とする。
上記課題を解決するために、請求項22に記載の発明は、請求項19乃至請求項21のいずれか一項に記載の転送プログラムにおいて、前記コンピュータを、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第2のノード装置自身が、前記管理ノード装置である場合には、前記第1のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答手段として更に機能させることを特徴とする。
上記課題を解決するために、請求項23に記載の発明は、請求項17乃至請求項22のいずれか一項に記載の配信要求プログラム又は転送プログラムの何れかのプログラムがコンピュータ読み取り可能に記録されていることを特徴とする。
上記課題を解決するために、請求項24に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおいて、前記複数のノード装置に含まれる第1のノード装置は、前記複数のノード装置に含まれる第2のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段と、前記生成した要求情報を、前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って前記第2のノード装置に対して送信する要求情報送信手段と、前記第2のノード装置から前記ノード情報を受信するノード情報受信手段と、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段と、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段と、を有し、前記第2のノード装置は、前記複数のノード装置の何れかのノード装置から、前記共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶手段と、前記複数のノード装置の何れかのノード装置から前記要求情報を受信して、前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶手段を参照して、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信手段と、前記第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、を有し、前記情報記憶ノード装置は、前記第1のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第1のノード装置に対して前記特定共用情報を配信する配信手段と、を有することを特徴とする。
これによれば、第1のノード装置としてのリクエストノードから特定共用情報としてのコンテンツデータの所在の問い合わせを行なう際に、リクエストノードは情報記憶ノード装置としてのコンテンツノードのノード情報を要求する数を要求数情報としてクエリに含んで送信し、複数のコンテンツノードからコンテンツの配信を受けることができるため、より早くコンテンツデータを取得することが可能になる。さらに、識別情報をキーとするルーティングテーブルによってコンテンツノードのノード情報を受信すると、その中継送信元のノード情報をバックポインタとして記憶手段に対応付けて記憶し、かつ、当該コンテンツノードのノード情報を記憶したときと同じように、識別情報をキーとするルーティングテーブルによってクエリが転送されるので、既に送信済みのノード情報を認識することが可能になる。
上記課題を解決するために、請求項25に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける情報配信方法であって、前記複数のノード装置に含まれる第2のノード装置が、前記複数のノード装置の何れかのノード装置から、前記複数のノード装置間で共用されるべき共用情報に対応する固有の識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶工程と、前記複数のノード装置に含まれる第1のノード装置が、前記第2のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する工程と、前記第1のノード装置が、前記生成した要求情報を前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って前記第2のノード装置に対して送信する工程と、前記第2のノード装置が、前記複数のノード装置の何れかのノード装置から前記要求情報を受信して前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶工程にて記憶したノード情報であって、かつ、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索工程と、前記第2のノード装置が、前記ノード情報検索工程による検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信工程と、前記第2のノード装置が、当該第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送工程と、前記第1のノード装置が、前記第2のノード装置から前記ノード情報を受信するノード情報受信工程と、前記第1のノード装置が、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求工程と、前記情報記憶ノード装置が、前記第1のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第1のノード装置に対して前記特定共用情報を配信する配信工程と、前記第1のノード装置が、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信工程と、を有することを特徴とする。
上記課題を解決するために、請求項26に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第1のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第2のノード装置において、前記複数のノード装置の何れかのノード装置から、前記共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶手段と、前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して、前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶手段を参照して、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信手段と、前記第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、を有することを特徴とする。
上記課題を解決するために、請求項27に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第1のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第2のノード装置に含まれるコンピュータを、前記複数のノード装置の何れかのノード装置から、前記共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶手段、前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して、前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶手段を参照して、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段、前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信手段及び、前記第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段として機能させることを特徴とする。
本発明によれば、リクエストノードからコンテンツデータの所在の問い合わせを行なう際に、コンテンツノードのノード情報を要求する数を要求数情報として要求情報としてのクエリに含んで送信し、複数のコンテンツノードからコンテンツの配信を受けることができるため、迅速かつ効率的にコンテンツデータを取得することが可能になる。
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに対して本発明を適用した場合の実施形態である。
[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は、このようなネットワーク8を介して相互に接続された複数のノード装置1a,1b,1c・・・1x,1y,1z・・・を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。各ノード装置1a,1b,1c・・・1x,1y,1z・・には、ノード装置を示す情報(ノード情報)としての固有の製造番号及びIP(Internet Protocol)アドレスが割り当てられている。なお、製造番号及びIPアドレスは、複数のノード装置1間で重複しないものである。なお、以下の説明において、ノード装置1a,1b,1c・・・1x,1y,1z・・・のうち何れかのノード装置を示す場合には、便宜上、ノード装置1という場合がある。
[1−1.DHTの概要]
以下に、本実施形態に係る分散ハッシュテーブル(以下、DHT(Distributed Hash Table)という)を利用したアルゴリズムについて説明する。
上述したコンテンツ配信システムSにおいて、当該ノード装置1が、他のノード装置1の持つ情報にアクセスする際には、その情報を持つノード装置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は、それぞれのノード装置毎にユニーク(固有)な番号を付与する。この番号は、ノード装置の最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、2^128=340×10^36台のノード装置を運用できる。
より具体的には、各ノード装置1のノードIDは、それぞれのノード装置のIPアドレスあるいは製造番号等のノード装置毎に固有の値を、共通のハッシュ関数(ハッシュアルゴリズム)によりハッシュ化して得たハッシュ値であり、一つのID空間に偏りなく分散して配置されることになる。このように共通のハッシュ関数により求められた(ハッシュ化された)ノードIDは、当該IPアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。なお、本実施形態では、IPアドレス(グローバルIPアドレス)を共通のハッシュ関数によりハッシュ化した値をノードIDとする。
また、コンテンツ配信システムSに参加している複数のノード装置1には、1のノード装置1から他のノード装置1に配信される共用情報としてのコンテンツ(例えば、映画や音楽等)データが分散して保存(格納)されているが、当該コンテンツデータにも、それぞれのコンテンツデータ毎にユニーク(固有)な番号(以下、コンテンツIDという。)を付与する。
そして、当該コンテンツIDは、ノードIDと同様の長さ(例えば、128bit等)とし、例えば、コンテンツの名称(コンテンツタイトル)やコンテンツの概要情報(あらすじ)等のキーワードが、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化され(つまり、ノード装置1のIPアドレスのハッシュ値と同一のID空間に配置)、そのハッシュ値と最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノード装置1が、当該コンテンツデータを保存するか、あるいは、その所在情報を管理する。これにより、コンテンツデータを偏りなくコンテンツ配信システムS上に分散させることが可能となる。なお、異なるコンテンツデータであっても、同一のキーワード(例えば、コンテンツの名称)になる場合が想定されるが、この場合、同じハッシュ値になってしまうので、これを避けるために、ハッシュ化するキーワードを、例えば、コンテンツの名称と著作権情報(例えば、出演者名、監督名、原作者名、歌手名、作曲者名、又は作詞者名等)の組合せとすればよい。
このように、各ノード装置1及び各コンテンツデータに付与されたノードID及びコンテンツIDは、共通のハッシュ関数によって生成したため、図2に示す如く、同一のリング状のID空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は32bitでノードID及びコンテンツIDを付与し、図示したものである。図中黒点はノードIDを、黒ひし形はコンテンツIDを示し、反時計回りでIDが増加するものとする。
次に、どのノード装置1に、どのコンテンツデータが保存されるかを、一定の規則の下に決定する。本実施形態においては、「あるコンテンツIDを有するコンテンツデータを管理するノード装置は、そのコンテンツIDに近いノードIDを有するノード装置1である」という規則とする。ここで、「近い」ことの定義は、当該コンテンツIDを超えず、コンテンツIDとノードIDとの差が一番少ないものとするが、実際には、各コンテンツデータの管理を各ノード装置1に割り振る際に、一貫していればよい。同図に示す例では、この定義に基づいて、コンテンツIDaは、ノードIDaを有するノード装置に管理され、コンテンツIDbは、ノードIDbを有するノード装置に管理され、コンテンツIDcは、ノードIDcを有するノード装置1に管理される。なお、あるノード装置は複数の異なるコンテンツデータを管理することもある。
なお、ここで「管理」というのは、コンテンツデータを保存/保持していることを意味するのではなく、「コンテンツデータが何れのノード装置1に保存されているかを知っている」ことを言う。すなわち、図2において、ノードIDaを有するノード装置1は、コンテンツIDaを有するコンテンツデータが何れのノード装置1に保存されているかを知っており、ノードIDbを有するノード装置1及びノードIDcを有するノード装置1も同様にそれぞれコンテンツIDbを有するコンテンツデータ及びコンテンツIDcを有するコンテンツデータが何れのノード装置1に保存されているかを知っている、ということになる。このように、あるコンテンツデータが何れのノード装置1に保存されているかを知っているノード装置を、そのコンテンツデータのルートノードと言う。つまり、ノードIDaを有するノード装置1は、コンテンツIDaを有するコンテンツデータのルートノードであって、ノードIDbを有するノード装置1は、コンテンツIDbを有するコンテンツデータのルートノードであって、ノードIDcを有するノード装置1は、コンテンツIDcを有するコンテンツデータのルートノードである。
また、「あるコンテンツIDを有するコンテンツデータを管理するノード装置は、そのコンテンツIDに近いノードIDを有するノード装置1である」という規則の下にコンテンツデータとルートノードの対が作成された場合であっても、あるコンテンツデータのルートノードが突然機能停止したり、或いはコンテンツデータが保存されているノード装置(以下、単に「コンテンツノード」という。)にて当該コンテンツデータが消滅してしまう場合が考えられる。このような場合であっても、ルートノードが、コンテンツデータの生存を確認し、自己のインデックス情報等を更新しない限り、ルートノードの管理するコンテンツデータの情報はいつまでも残ることになる。そして、当該コンテンツデータが一旦は消滅したものの、再度同一コンテンツデータを登録する際には、改めて上記規則の下に再度ルートノードが選び出されることとなり、新しいノード装置の参加等によって以前のルートノードとは異なるノード装置が新しいルートノードとして選び出されることもありうる。
従って、「あるコンテンツIDを有するコンテンツデータを管理するノード装置は、そのコンテンツIDに近いノードIDを有するノード装置1である」という規則の下にコンテンツデータとルートノードの対が作成された場合であっても、コンテンツ配信システムSが何百台何千台・・・と膨大なネットワークを構築していくに従って、ノード装置のコンテンツ配信システムSからの脱退(ノード装置の電源断や故障、或いはネットワークの部分的な切断等による)及び参加が行なわれる頻度が高く、しかも、コンテンツデータのノード装置への新たな保存又は消去が行なわれる頻度が高くなるため、あるコンテンツデータの保存元であるコンテンツノードを知っているノード装置は1つではなく、現実的には多数のノード装置が存在することとなる。
また、あるコンテンツデータを保持するノード装置(コンテンツノード)は1台とは限らない。多数のノード装置が同一のコンテンツを保持してコンテンツ配信システムSにそれぞれ参加する場合がある。このような場合も、各ノード装置が当該コンテンツ配信システムSに参加する夫々のタイミングの状況下によってルートノードとなるべきノード装置が別々に決定されることもあるため、結果としてあるノート装置が同一のコンテンツデータを保持しているノード装置(コンテンツノード)を2つ以上知っている場合もある。
[1−2.ルーティングテーブルの作成]
ここで、図3を参照して、DHTで用いるルーティングテーブルの作成手法の一例について説明する。
図3は、DHTによってルーティングテーブルが作成される様子の一例を示す図である。
まず、図3(A)に示す如く、ID空間を幾つかのエリアに分割する。実際には、16分割程度が良く用いられるが、説明を簡単にするためここでは4分割とし、IDをビット長16Bitの4進数で表すこととした。そして、ノード装置1NのノードIDを「10230210」とし、このノード装置1Nのルーティングテーブルを作る例について説明する。
(レベル1のルーティング)
まず、ID空間を4分割とすると、それぞれのエリアは4進数で表すと最大桁が異なる4つのエリア「0XXXXXXX」「1XXXXXXX」、「2XXXXXXX」、「3XXXXXXX」(Xは0から3の
自然数、以下同様。)で分けられる。ノード装置1Nは、当該ノード装置1N自身のノードIDが「10230210」であるため、図中左下「1XXXXXXX」のエリアに存在することになる。そして、ノード装置1Nは、自分の存在するエリア(すなわち、「1XXXXXXX」のエリア)以外のエリアに存在するノード装置1を適当に選択し、当該ノードIDのIPアドレスをレベル1のテーブルに記憶する。図4(A)がレベル1のテーブルの一例である。2列目はノード装置1N自身を示しているため、IPアドレスを記憶する必要は無い。
(レベル2のルーティング)
次に、図3(B)に示す如く、上記ルーティングによって4分割したエリアのうち、自分の存在するエリアを更に4分割し、更に4つのエリア「10XXXXXX」「11XXXXXX」、「12XXXXXX」、「13XXXXXX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置1を適当に選択し、当該ノードIDのIPアドレスをレベル2のテーブルに記憶する。図4(B)がレベル2のテーブルの一例である。1列目はノード装置1N自身を示しているため、IPアドレスを記憶する必要は無い。
(レベル3のルーティング)
さらに、図3(C)に示す如く、上記ルーティングによって4分割したエリアのうち、自分の存在するエリアを更に4分割し、更に4つのエリア「100XXXXX」「101XXXXX」、「102XXXXX」、「103XXXXX」と分ける。そして、上記と同様に自分の存在するエリア以外のエリアに存在するノード装置1を適当に選択し、当該ノードIDのIPアドレスをレベル1のテーブルに記憶する。図4(C)がレベル3のテーブルの一例である。3列目はノード装置1N自身を示しているため、IPアドレスを記憶する必要は無く、2列目、4列目はそのエリアにノード装置が存在しないため空白となる。
このようにして、レベル4以下レベル8まで同様にルーティングテーブル図4(D)に示す如く作成することにより、16bitのID全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
以上説明した手法に従って作成したルーティングテーブルを、全てのノード装置1が夫々作成して所有することになる。
[1−3.コンテンツデータの検索方法]
次に、図5を参照して、本実施形態におけるコンテンツデータの保存元であるノード装置1(以下、「コンテンツノード」と言う。)の検索方法の一例について説明する。
図5は、DHTによりコンテンツノードが検索される様子の一例を示す図である。
ここでは、ノードID「12003030」のノード装置1−1(以下、「リクエストノード」と言う。)が、コンテンツID「31330012」を有するコンテンツデータを保持するコンテンツノードを探す際の手順について説明する。なお、同図に示す如くコンテンツID「31330012」を保持するコンテンツノードのノードIDは「00213000」と「02223230」である。
図5において、リクエストノードからコンテンツID「31330012」を有するコンテンツデータを管理するノード装置1−5(すなわちルートノード)に至る経路を実線矢印で表すが、この経路の途中のノード装置1−4を、当該ルートノードが記憶しているインデックス情報をキャッシュとして保持するキャッシュノードとする。
まず、リクエストノードは、コンテンツID「31330012」と同じエリアのノードIDを持つノード装置に対してコンテンツ問い合わせ情報(以下、「コンテンツ問い合わせ情報」を「クエリ」と言う。)を送信する。
ここで、リクエストノードが送信するクエリについて説明する。
クエリには、所望のコンテンツを示すコンテンツID「31330012」だけでなく、コンテンツノードのノード情報をいくつ要求するかを示す要求数情報も含まれる。すなわち、同一のコンテンツを保持するコンテンツノードがコンテンツ配信システムSの中に複数個存在する場合が考えられるが、このような場合、リクエストノードは、コンテンツ配信を要求する際に、所望のコンテンツを保持する複数のコンテンツノードに対して配信を要求するよう構成されている。
このとき、コンテンツノードのノード情報としてのIPアドレスの要求数を多く設定すれば、多くのコンテンツノードからコンテンツの配信を並列して受けることができ、より早くコンテンツを取得することが可能になるという利点がある。また、1つのノード装置で接続可能なコンテンツノードの数は限られているため、その上限数が「10」であるとすれば、コンテンツノードのIPアドレスの要求数をそれより若干多い「15」等とすることが考えられる。上限数より若干多く要求する理由は、接続に失敗した場合の保険である。すなわち、コンテンツノードに配信要求をしたときに当該コンテンツノードの電源が断とされていてアクセス不可能であったり、或いは所望のコンテンツが何らかの原因で配信不可能な状態となっていて要求数だけのコンテンツノードと接続できないことが考えられるからである。一方、人気のないコンテンツは当該コンテンツ自体がシステム中に僅かしか存在していなかったり、当該コンテンツに対応するキャッシュノードが多く存在しないため、要求数を少なく設定することにより、クエリがルートノードへ転送されることなく、コンテンツノードのノード情報が短時間で揃うという利点があるので、リクエストノードのユーザが用途に応じて設定を変えることができる。
このように、リクエストノードは、所望のコンテンツを示すコンテンツIDだけでなく、コンテンツノードのノード情報を要求する数を示す要求数情報も一緒にクエリに含めて送信し、リクエストノードや各キャッシュノードから受信した当該要求数に応じた数の複数のコンテンツノードのノード情報に基づいて、当該複数のコンテンツノードにアクセスしてコンテンツの配信を要求するよう構成する。
なお、以下に図5を用いて説明するコンテンツデータの検索手法においては、ネットワーク上をクエリが転送されることでコンテンツデータを見つけ出すことができることをわかりやすく説明するため、上記要求数は「2」であって、発見されたコンテンツデータが何れも配信可能に各コンテンツノードに保持されているものとして説明する。
まず、リクエストノードは、自己が保持しているルーティングテーブルのレベル1のテーブルを参照して、コンテンツID「31330012」と同じエリアのノードIDを持つノード装置に対して要求数を「2」とする要求数情報を含むクエリを送信する。つまり、コンテンツID「31330012」は「3XXXXXXX」のエリアであるため、当該「3XXXXXXX」のエリアに属すノード装置1のうち、IPアドレスを知っている(すなわち、自己が保持しているルーティングテーブルにIPアドレスが記憶されている)ノード装置1−2に対してクエリを送信する。
図5に示す例に拠れば、ノードIDが「30100000」であるノード装置1−2のIPアドレスがリクエストノードのルーティングテーブルに記憶されていたので、リクエストノードは、ノードIDが「30100000」であるノード装置1−2に対してクエリを送信する。
次に、クエリを受信したノード装置1−2は、当該ノード装置1−2自身が保持しているインデックス情報を参照して、コンテンツID「31330012」に対応するコンテンツノードの情報の有無を確認し、無い場合には、当該ノード装置1−2自身が保持しているルーティングテーブルのレベル2のテーブルを参照して、「31XXXXXX」のエリアに属すノード装置1のうち、IPアドレスを知っているノード装置1−3(ノードID「31012001」)に対してクエリを転送(中継)する。
このように、上流のノード装置、すなわち自己とルートノードの中間に介在するノード装置に対してクエリを転送し、コンテンツIDの桁を上から順に適合していく要領でルートノードへ近づいていく。
そして、ノード装置1−2からクエリを受信したノード装置1−3は、当該ノード装置1−3自身が保持しているインデックス情報を参照して、コンテンツID「31330012」に対応するコンテンツノードの情報の有無を確認する。無い場合には、当該ノード装置1−3自身が保持しているルーティングテーブルのレベル3のテーブルを参照して、「313XXXXX」のエリアに属すノード装置1のうち、IPアドレスを知っているノード装置1−4(ノードID「31320100」)に対してクエリを転送(中継)する。
そして、ノード装置1−3からクエリを受信したノード装置1−4は、当該ノード装置1−4自身が保持しているインデックス情報を参照して、コンテンツID「31330012」に対応するコンテンツノードの情報の有無を確認する。ノード装置1−4は、上記キャッシュノードであるため、コンテンツノードの情報を少なくとも一つは取得することができる。そして、当該コンテンツノード(ノード装置1−6)のノード情報をリクエストノードに送信し、クエリに含まれる要求数情報を要求数が「2」から「1」となるように更新する。
そして、コンテンツノード(ノード装置1−6)のノード情報を受信したリクエストノードは、コンテンツノード(ノード装置1−6)に対してコンテンツの配信を要求する配信要求を図5中破線矢印で示す如く送信する。そして、配信要求を受信した各コンテンツノード(ノード装置1−6)は、図5中一点鎖線で示す如くコンテンツデータをリクエストノードに配信するようになっている。
また、コンテンツノード(ノード装置1−6)のノード情報をリクエストノードに送信したノード装置1−4は、当該ノード装置1−4自身が保持しているルーティングテーブルのレベル4のテーブルを参照して、「3133XXXX」のエリアに属すノード装置1のうち、IPアドレスを知っているノード装置1−5(ノードID「31330000」)すなわちルートノードに対して更新後の要求数情報を含むクエリを転送(中継)する。そして、既に送信したノード情報を送信済ノード情報としてクエリと共に上流のノード装置に送信することによって、更新を経験したクエリであるか否かがわかる。また、他の方法として、要求数情報は、要求数の他に、更新履歴として、クエリ転送済みコンテンツノードのIPアドレス、大元のリクエスタが出した要求数(これは更新されない)を含むよう構成することもできる。この場合には、元の要求数と現在の要求数が異なっていれば、更新を経験したクエリであることが分かる。
最終的に当該コンテンツデータを管理するノード装置1−5、すなわちルートノードに辿り着くと、当該ルートノードは、クエリに含まれるコンテンツID「31330012」を元に自身が管理しているインデックス情報を検索し、未だクエリが送信されていないコンテンツノードであって、コンテンツID「31330012」に対応するコンテンツノードの情報の有無を確認する。そして、コンテンツノード(ノード装置1−7)を発見すると、当該コンテンツノード(ノード装置1−7)のノード情報をリクエストノードに送信する。
そして、コンテンツノード(ノード装置1−7)のノード情報をそれぞれ受信したリクエストノードは、上記記載と同様にしてコンテンツノード(ノード装置1−7)に対してコンテンツの配信を要求する配信要求を図5中破線矢印で示す如く送信し、配信要求を受けたコンテンツノード(ノード装置1−7)は、図5中一点鎖線で示す如くリクエストノードにコンテンツデータを配信する。
すなわち、リクエストノードは複数のコンテンツノードからコンテンツを配信してもらうことにより、1つのコンテンツノードから配信を受ける場合に比べて、迅速にコンテンツを構成する全てのデータを取得することができる。この場合には、例えば、1つのコンテンツを複数のデータ構成で区分させ、最初に接続するコンテンツノード(ノード装置1−6)からはコンテンツを構成するデータのうち前半のデータの配信を受け、後に接続するコンテンツノード(ノード装置1−7)からはコンテンツを構成するデータのうち後半のデータの配信を受けるよう構成したり、或いは、並列して同時に配信を受けるよう構成すればよい。なお、並列して同時に配信を受ける場合には、実際には、各コンテンツノードから順次配信されるパケットを送信された順に順次受け取り、後に説明するリクエストノードの通信部におけるプレゼンテーション層(いわゆるOSI参照モデルにおける第6層であるプレゼンテーション層)等にてパケットを並べ替えて元のコンテンツを再構成するよう制御させればよい。
[1−4.コンテンツデータの登録方法]
このような構成のコンテンツ配信システムSの中で、例えば、あるノード装置1が新しいコンテンツデータを、コンテンツ配信システムS上の他のノード装置に見えるように公開する際の手法について述べる。このノード装置1がコンテンツを保持する(記憶する)情報記憶ノード装置としてのコンテンツノードとなる。
当該コンテンツノードは、コンテンツのタイトル等からコンテンツIDを求め、当該コンテンツIDと同じノードIDを持つノード装置に向けて(このノード装置が実在するか否かはこの時点ではわからない。)公開メッセージを送信する。そして、この公開メッセージも、上記クエリと同様にルーティングテーブルに従って、次々とノード装置1同士で中継して転送されていき、当該公開メッセージに含まれるコンテンツIDに最も近いノードIDを有するノード装置1まで転送されたところで、そのノード装置1はもはや送信先のノード装置が他にないと判断すると、当該ノード装置1自身がそのコンテンツのルートノードとなるべきだと判断し、当該コンテンツID、補助情報(タイトル、ジャンル等の属性情報や、監督名等の著作権情報等)及びノード情報としてのコンテンツノードのIPアドレスをインデックス情報として記憶する。
[2.ノード装置の構成等]
次に、図6を参照して、ノード装置1の構成及び機能について説明する。尚、各ノード装置1は、それぞれが行なう処理によってコンテンツの所在を問い合わせる第1のノード装置としてのリクエストノード、当該リクエストノードや経路上の端末からクエリを受信する第2のノード装置としてのキャッシュノード、当該コンテンツを管理する第2のノード装置及び管理ノード装置としてのルートノード、リクエストノードによって問い合わせの対象とされている特定共用情報としてのコンテンツを保持する情報記憶ノード装置としてのコンテンツノードとして作用するが、その構成は同じである。
図6は、ノード装置1の概要構成例を示す図である。
各ノード装置1は、図6に示すように、演算機能を有するCPU,作業用RAM,各種データ及びプログラムを記憶するROM等から構成されたコンピュータとしての制御部11と、上記コンテンツデータ、上記インデックス情報、上記DHT及びプログラム等を記憶保存(格納)するためのHDD等から構成された記憶手段としての記憶部12(上記コンテンツデータは、保存されていないノード装置1もある)と、受信されたコンテンツデータを一時蓄積するバッファメモリ13と、コンテンツデータに含まれるエンコードされたビデオデータ(映像情報)及びオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)するデコーダ部14と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部15と、当該映像処理部15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等の表示部16と、上記デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音声処理部17と、当該音声処理部17から出力されたオーディオ信号を音波として出力するスピーカ18と、ネットワーク8を通じて他のノード装置1との間の情報の通信制御を行なうための通信部20と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部11に対して与える入力部(例えば、キーボード、マウス、或いは、操作パネル等)21と、を備えて構成され、制御部11、記憶部12、バッファメモリ13、デコーダ部14、及び通信部20はバス22を介して相互に接続されている。
そして、制御部11におけるCPUが記憶部12等に記憶された各種プログラムを実行することにより、第1のノード装置としてのリクエストノード、第2のノード装置としてのキャッシュノード、第2のノード装置及び管理ノード装置としてのルートノード、情報記憶ノード装置としてのコンテンツノードとしてノード装置1全体を統括制御するようになっている。
そして、ノード装置1がリクエストノードとして機能する際には、当該制御部11は、要求情報生成手段、要求情報送信手段、ノード情報受信手段、配信要求手段及び特定共用情報受信手段として機能し、ノード装置1がキャッシュノード或いはルートノードとして機能する際には、当該制御部11は、記憶手段、ノード情報検索手段、ノード情報送信手段及び更新手段として機能し、ノード装置1がコンテンツノードとして機能する際には、当該制御部11は、配信手段として機能する。
[3.コンテンツ配信システムの動作]
次に、コンテンツ配信システムSの各ノード装置の動作について説明する。
ここでは、リクエストノードがコンテンツ配信要求を行なう際のそれぞれのノードで行なわれる処理について詳細に説明するが、上述したように、コンテンツ配信システムSに含まれる全てのノード装置1は、リクエストノード、キャッシュノード、ルートノード、コンテンツノード、或いは経路上のノード等、その他のノード等、何れのノード装置にもなり得る。
例えば、ユーザがノード装置1に備えられた入力部21を操作することによって、特定共用情報としての所望のコンテンツデータの所在の問い合わせが指示されると、当該ノード装置1が第1のノード装置としてのリクエストノードとして機能する。また、当該リクエストノードや中間に介在するノード装置からクエリを受信してコンテンツデータの所在の問い合わせがされたノード装置1は、キャッシュノード、ルートノード等として機能し、また、リクエストノードからコンテンツの配信要求を受けたノード装置1は、コンテンツノードとして機能する。
以下に、それぞれのノードとして機能する際にノード装置1で行なわれる処理について図7乃至図11を用いて詳細に説明する。
[3−1.リクエストノードの処理]
先ず、図7乃至図9を用いてリクエストノードの処理について説明する。
図7及び図8は各ノードのリクエストノードがコンテンツ配信要求を行なう際の、各ノードの間の各種情報の授受の一例をスパニングツリー状に表した説明図である。この図で、中間ノードとは、注目しているコンテンツに対して有効なインデックス情報を持たないノードであり、キャッシュノードとはそれを持つノードである。また、図7において、各コンテンツノードの情報は、コンテンツを登録する際に、公開メッセージとしてキャッシュノードKa及びキャッシュノードKbを経由してルートノードへ辿り着く。従って、キャッシュノードKaの記憶部12のインデックス情報に存在するコンテンツノードの情報は、キャッシュノードKbの記憶部12のインデックス情報にも存在し、さらに、ルートノードは全てのコンテンツノードの情報を持っている。なお、実際には各ノードのインデックス情報はそのコンテンツノードの生存確認ができなかった場合等種々のタイミングで上書きされ更新されるが、ここでは説明の簡略化のため上書き更新の説明は省略する。
図9は、リクエストノードの制御部11に記憶された配信要求プログラムが当該制御部11により実行されることにより行われる処理を示すフローチャートであり、図9(A)に示される処理において、スレッド起動が行われると(後に説明するステップS5の処理)、それ以降行われる図9(A)の処理動作と並行して図9(B)に示すコンテンツ受信処理が行われる。
まず、ユーザが入力部21を操作することにより、特定共用情報としての所望のコンテンツのタイトル等を入力して当該コンテンツを保持するコンテンツノードのノード情報を要求する。この際、要求するノード情報の要求数も共に入力される。
要求数は、ユーザが所望の数を入力しても良いが、コンテンツのタイトルや人気度が記載されたカタログリストを参照して、当該人気度に応じた要求数を入力したり、或いは人気度に応じた要求数が自動設定されるよう構成してもよい。カタログリストには、各コンテンツ毎に、コンテンツのタイトル、コンテンツのあらすじ、監督名、歌手名、原作者名等と共に、当該コンテンツの配信要求の頻度に基づいて決定された人気度が夫々対応付けられて記載されている。このカタログリストは、コンテンツ配信システムS中の任意のノード装置1を、コンテンツを統括管理する管理サーバとして機能させ、当該管理サーバから各ノード装置1に定期的に配布されるよう構成する。
このように、所望のコンテンツデータの所在の問い合わせが行われると、制御部11は識別情報送信手段として機能し、当該コンテンツのタイトル等をハッシュ化して当該コンテンツデータを示すコンテンツID(特定共用情報に対応する固有の識別情報)を生成すると共に、当該生成されたコンテンツIDと、リクエストノードのIPアドレス情報と、上記入力部21によって入力された要求数を示す要求数情報と、を含むクエリを、記憶部12に記憶したルーティングテーブルを参照して他のノード装置1に送信する(ステップS1)。当該他のノード装置1の選択手法は、上述した「1.3コンテンツデータの検索方法」にて詳細に説明した手法に拠る。図7及び図8に示す例によれば、先ずキャッシュノードでもルートノードでもない中間ノードにクエリが送信されている。なお、この例では所望のコンテンツを示すコンテンツIDが「30001012」であって、要求数は「4」とした。
続いて、装置内に具備する内蔵時計等を使用して、時間測定を開始する(ステップS2)。
その後、他のノード装置から何らかの情報を受信したか否かを判定(ステップS3)し、受信していない場合(ステップS3:受信なし)には、ステップS4に移行して所定の待機時間(例えば、10秒など)が経過したか否かを判定し、経過している場合(ステップS4:Yes)にはステップS7に移行して所定のコンテンツノード発見不可処理を行ない(ステップS7)処理を終了する。他方、所定の待機時間が経過していない場合(ステップS4:No)には、ステップS3に移行して、情報の受信を待機する。
一方、ステップS3にて受信した情報がルートノードからのエラー回答である場合(ステップS3:ルートノードからエラー回答受信)には、所定のコンテンツノード発見不可処理を行ない(ステップS7)処理を終了する。なお、ステップS7におけるコンテンツノード発見不可処理では、ノード情報を1つも受信していないときには、コンテンツ配信システムS内に所望のコンテンツが全く存在しない場合と考えられるので「指定のコンテンツは登録されていません。」等のメッセージを表示部16に表示させ、ノード情報を少なくとも1つは受信したが要求数には満たない場合には、「要求数分のノード情報は見つかりません。」等のメッセージを表示部16に表示させる。
他方、ステップS3にて受信した情報がコンテンツノードのノード情報である場合(すなわち、制御部11はノード情報受信手段として機能した場合)(ステップS3:ノード情報)には、スレッドを起動し、図9(B)に示すコンテンツ受信処理を開始する(ステップS5)。
そして、ステップS1でクエリを送信する際に入力した要求数分だけノード情報を受信したか否かを判定(ステップS6)し、ノード情報が要求数に満たない場合(ステップS6:No)には、ステップS4に移行して応答待機時間内である間(すなわち、ステップS4:No)は情報の受信を待機し、ノード情報が要求数分ある場合(ステップS6:Yes)には、処理を終了する。
他方、ステップS5にてスレッドの起動が行われると、ステップS3にて受信したノード情報に基づいてコンテンツノードに対して配信要求を行なう(ステップS8)。
図8を用いて具体的に説明すると、ノード情報としてのコンテンツノードのIPアドレスを実線矢印で示す如くキャッシュノードKa(又はキャッシュノードKb、又はルートノード)から取得すると、当該IPアドレスを宛先として、コンテンツノードCa(又はコンテンツノードCb、又はコンテンツノードCc、又はコンテンツノードCd)に対して配信要求を行なう(破線矢印)。
そして、同図中一点鎖線矢印で示す如く、配信要求を行ったコンテンツノードから配信されたコンテンツデータを受信(ステップS9)して処理を終了する。
なお、ステップS3にてノード情報を受信すると、その都度ステップS5の処理にてスレッドを起動し、図9(B)に示すコンテンツ受信処理を行なうが、図8に示す如く複数のコンテンツノードからコンテンツの配信を受ける場合には、コンテンツを受信する受信ソフトに相当するアプリケーションソフトがコンテンツを受信する処理単位(ここでは「スレッド」と言う。)を複数生成することにより、並行して複数の処理を行なうように構成する。ここで、厳密に時間的に同時に並行して処理すると言うことは考えにくいが、CPUの処理時間を極短い単位に分割し、複数のスレッドに順番に割り当てることによって、複数の処理を同時に行い、各コンテンツノードからコンテンツを同時に並列して受信しているかのように構成することができる。(さらに正確に言うなら、各スレッドでのIPプロトコル上の待ち時間に、別のスレッドの処理が実行できるので、同時動作をしているのと同等の動きになるということである。)図8の例に示す場合で説明すると、リクエストノードがキャッシュノードKa及びKb及びルートノードからノード情報を受信して、各コンテンツノードCa乃至コンテンツノードCdに対して順次配信要求を行ない、最終的には当該コンテンツノードCa乃至コンテンツノードCdの数のスレッドが起動し、CPUが当該各スレッドに対して順番に処理を行なうことで各コンテンツノードから並列してコンテンツの配信を受けるように構成する。このような構成により、リクエストノードはコンテンツを早く取得することが可能になる。
[3−2.キャッシュノード及びルートノードの処理]
次に、図7、図8及び図10を用いてキャッシュノード及びルートノードの処理について説明する。図10は、キャッシュノード或いはルートノードの制御部11に記憶された転送プログラムが当該制御部11により実行されることにより行われる転送処理を示すフローチャートである。当該処理はリクエストノードや、キャッシュノードを含むコンテンツ配信システムS内の他のノード装置から送信されたクエリを受信したことにより開始される。
まず、制御部11は、ノード情報検索手段として機能し、受信したクエリに含まれる識別情報としてのコンテンツIDを認識して、当該コンテンツIDに対応するコンテンツノードのノード情報(コンテンツノードのIPアドレス)を、自己の記憶部12に記憶したインデックス情報の中から検索する(ステップS21)。なお、クエリと共に送信済ノード情報を受信している場合には、当該送信済ノード情報と同じノード情報は検索対象から除く。
そして、コンテンツIDに対応するコンテンツノードの情報が発見されたか否かを判定(ステップS21)し、発見されなかった場合(ステップS21:No)には、自身がルートノードであるか否かを判定(ステップS23)し、自身がルートノードでない場合(ステップS23:No)には、クエリを上流のノード装置、すなわち、自身とルートノードの中間に介在するノード装置へ転送(ステップS24)して処理を終了する。なお、中間に介在するノード装置が無い場合にはルートノードへ転送する。
図7に示す例に拠れば、リクエストノードからのクエリは先ず中間ノードに送信され、その後中間ノードからキャッシュノードKaへとクエリが転送されている。
一方、ステップS23の判定において、自身がルートノードである場合(ステップS23:Yes)には、リクエストノードから、クエリが転送されて来る間に、1つでもノード情報がリクエストノードに送信されているか否かを判定(ステップS25)する。1つでもノード情報がリクエストノードに送信されているか否かはクエリと共に送信済みノード情報を受信しているか否かで判別できる。
また、他の方法として、ノード情報が1つでも送信されている場合には、後のステップS32の処理にて説明するように、クエリに含まれる要求数情報が更新されるため、当該要求数情報の更新を行なう際に、当該要求数情報に更新履歴の有無がわかる情報を付加する。この目的のために、要求数情報には、要求数の他に、大元のリクエストノードが出した要求数(これは更新されない)が含まれており、元の要求数と現在の要求数が異なっていれば、過去に更新があったクエリであることが分かる。
そして、受信したクエリに含まれる要求数情報に更新履歴が無く、1つもリクエストノードにノード情報が送信されていないと判定した場合(ステップS25:Yes)には、制御部11はエラー回答手段として機能し、エラー回答をリクエストノードに送信(ステップS26)して処理を終了する。他方、少なくとも1つはリクエストノードにノード情報が送信されている場合(ステップS25:No)には処理を終了する。
また、ステップS22の処理において、コンテンツIDに対応するコンテンツノードのノード情報を発見した場合には(ステップS22:Yes)、クエリに含まれる要求数情報によって示される要求数以上発見されたか否かを判定(ステップS27)し、要求数以上発見された場合(ステップS27:Yes)には、制御部11はノード情報送信手段として機能し、要求数分のノード情報をリクエストノードに送信する(ステップS28)。尚、要求数より多く発見された場合(ステップS27:Yes)には、発見した数全てのノード情報をリクエストノードに送信してもよいが、この場合、特定のノード情報が高頻度に送信されると、そのコンテンツノードの負荷が大きくなるため、発見されたノード情報の中から、ランダムに要求数分だけノード情報を選んで送信することとする。
他方、クエリに含まれる要求数情報によって示される要求数以上発見されなかった場合(ステップS27:No)には、制御部11は発見したノード情報をリクエストノードに送信する(ステップS29)。
図7に示す例に基づいて具体的に説明すると、キャッシュノードKaは、コンテンツIDが「30001012」であって、要求数を「4」とするクエリを受けると、当該キャッシュノードKaは、記憶部12に記憶されたインデックス情報を参照してコンテンツID「30001012」に対応するコンテンツノードのノード情報を検索する。そして、同図に示す如くコンテンツID「30001012」に対応するノード情報が2つ発見される。この場合には要求数を満足しないので、発見されたコンテンツノードCaのノード情報(IPアドレス「121.43.154.65」)とコンテンツノードCbのノード情報(IPアドレス「243.5.154.65」)が、図8に示す如くキャッシュノードKaからリクエストノードに送信されることになる。
続いて、自身がルートノードであるか否かを判定(ステップS30)し、自身がルートノードでない場合(ステップS30:No)には、制御部11は更新手段及び転送手段として機能し、クエリに含まれる要求数情報によって示される要求数から「1」を引いた値を新たな要求数とするよう要求数情報を更新(ステップS31)した後に、当該更新後の要求数を新たな要求数情報としてクエリに含み、更にステップS29にて送信したノード情報を、送信済ノード情報としてクエリと共に上流のノード装置、すなわち、自身とルートノードの中間に介在するノード装置へ転送(ステップS32)して処理を終了する。なお、中間に介在するノード装置が無い場合にはルートノードへ転送する。
すなわち、送信済ノード情報を上流のノード装置に送信することにより、上流のノード装置に対して送信済ノード情報と同じノード情報を有するコンテンツノードを検索対象から除外するよう指示するためである。図7を用いて具体的に説明すると、キャッシュノードKaは、元の要求数である「4」からキャッシュノードKaで発見されたノード情報の数「2」を減算して要求数情報を更新して新たな要求数情報としてクエリに含ませると共に、既に発見済みのノード情報のIPアドレス「121.43.154.65」とIPアドレス「243.5.154.65」を送信済ノード情報としてクエリと共にキャッシュノードKbに送信する。
そして、このクエリを受けたキャッシュノードKbでは、ステップS22において、自身の記憶部12に記憶されたインデックス情報を参照してコンテンツID「30001012」に対応するノード情報であって、送信済ノード情報と異なるノード情報を検索することになる。図7に示す例によれば、キャッシュノードKbの記憶部12に記憶されたインデックス情報には、コンテンツIDに対応するノード情報として、IPアドレス「132.122.11.12」とIPアドレス「243.5.154.65」とIPアドレス「121.43.154.65」が記憶されているが、IPアドレス「243.5.154.65」とIPアドレス「121.43.154.65」は既にキャッシュノードKaで送信している。すなわち、当該IPアドレス「243.5.154.65」とIPアドレス「121.43.154.65」を送信済ノード情報としてクエリと共に受信しているため、キャッシュノードKbでは、送信済ノード情報を除き、かつコンテンツIDに対応するノード情報として、コンテンツノードCcのノード情報(IPアドレス「132.122.11.12」)がリクエストノードに送信されることになる。そして、キャッシュノードKaから受信したクエリに含まれていた要求数情報から更に1を引いて(減算して)更新した要求数情報を再びクエリに含み、更に送信済ノード情報にIPアドレス「132.122.11.12」を付加して、すなわち、送信済ノード情報を“IPアドレス「121.43.154.65」及びIPアドレス「243.5.154.65」及びIPアドレス「132.122.11.12」”としてルートノードに送信するようになっている。
そして、このクエリを受けたルートノードでは、自身の記憶部12に記憶されたインデックス情報を参照してコンテンツID「30001012」に対応し、かつ送信済ノード情報と異なるノード情報を検索し、その結果コンテンツノードCdのノード情報(IPアドレス「125.15.35.42」)が発見されてリクエストノードに送信されることになる。
なお、ステップS30の処理において、自身がルートノードである場合(ステップS30:Yes)には、エラー回答をリクエストノードに送信(ステップS33)して処理を終了する。
以上説明したように、リクエストノードから複数のコンテンツノードのノード情報の要求がされた場合には、各キャッシュノードでノード情報が発見される都度リクエストノードに送信し、さらに、クエリを上流に転送(中継)する際には当該キャッシュノードで発見され、既にリクエストノードに送信したノード情報を送信済ノード情報としてクエリと共に上流に転送するので、上流のリクエストノードでは送信済ノード情報を除いてノード情報を検索することが可能になる。
また、各キャッシュノード或いはルートノードにて要求数を更新しながら上記処理が行なわれるため、リクエストノードに要求数分のノード情報を確実に送信することができ、さらにクエリが上流に転送されながらノード情報が発見されるとその都度リクエストノードにノード情報が送信されるので、リクエストノードは受信したノード情報に基づいて順次コンテンツノードにアクセスして配信要求を行うことが可能になる。
[3−3.コンテンツノードの処理]
次に、図7、図8及び図11を用いてコンテンツノードの処理について説明する。図11は、コンテンツノードの制御部11に記憶されたプログラムが当該制御部11により実行されることにより行われる処理を示すフローチャートである。
そして、当該処理はリクエストノードから送信された配信要求を受信したことにより開始される。
まず、クエリに含まれるコンテンツIDに対応するコンテンツデータを記憶部12から取得する(ステップS41)。
そして、制御部11は配信手段として機能し、取得したコンテンツデータをリクエストノードに配信する(ステップS42)。
以上説明したように、本実施形態によれば、リクエストノードからコンテンツデータの所在の問い合わせを行なう際に、リクエストノードはコンテンツノードのノード情報を要求する数を要求数情報として送信し、複数のコンテンツノードからコンテンツの配信を受けることができるため、より迅速に所望のコンテンツを取得することが可能になる。
また、クエリを上流のノード装置に転送(中継)する際には、既に送信済みのノード情報を送信済ノード情報として要求数情報と併せて送信するよう構成したので、これを受けた上流のノード装置では、送信済ノード情報を自身の処理における検索対象から除外することが可能になる。従って、リクエストノードに同じノード情報を重複して送信することを防ぐことができる。
更に、クエリに要求数情報を付加して当該要求数情報を更新するよう構成したので、リクエストノードが要求するノード情報の数に確実に応じることが可能になる。
更に、ルートノードまでクエリが転送されたにもかかわらず、コンテンツを発見できない場合には、リクエストノードに対してエラー回答を送信するよう構成したので、リクエストノードではコンテンツ配信システムS上に所望のコンテンツが要求数分無いことを容易に把握することが可能になる。
また、リクエストノードにて要求数を設定してコンテンツIDを含むクエリに含んで送信するよう構成したので、当該クエリを転送する際に、ルートノード或いはキャッシュノードでは、既にリクエストノードに送信したノード情報の数を減算して要求数を更新して転送することができるため、リクエストノードは、要求数分のコンテンツノードのノード情報を確実に取得することが可能になる。従って、ノード情報の要求数を多く設定すれば、多くのコンテンツノードからコンテンツの配信を並列して受けることができ、より早くコンテンツを取得することが可能になる等の利点があり、ノード情報の要求数を少なく設定すれば、要求数分のコンテンツノードのノード情報を短時間で揃えることができる等の利点があるので、リクエストノードのユーザが用途に応じて、或いはコンテンツの人気度に応じて設定を変えることができる。
[4.変形形態]
上記[1−4.コンテンツデータの登録]にて説明したように、各コンテンツは、公開メッセージを送信することによりコンテンツ配信システムSに登録されるが、ノード装置が、公開メッセージを受信して、当該公開メッセージに含まれるコンテンツID等をインデックス情報として自己の記憶部12に記憶する際、DHTルーティングテーブルに従って自身に当該公開メッセージを送信してきたノード装置を中継送信元のノード装置として、当該中継送信元のノード装置のノード情報をバックポインタとして対応付けて記憶する。これにより、公開メッセージと同様の流れで各ノード装置クエリを受信したキャッシュノードでは、送信したノード情報(送信済みノード情報)を上流のノード装置へ転送する処理(ステップS32参照。)が不要になる。
以下、図を用いて具体的に説明する。
図12は、公開メッセージの流れをスパニングツリー状に表した説明図である。
コンテンツID「30001011」のコンテンツを有するコンテンツノードCg,Ch、Ciが、当該コンテンツをコンテンツ配信システムSに登録するために、識別情報としてのコンテンツIDをキーとして公開メッセージをルーティングテーブルに従ってルートノードに向けて送信する。
コンテンツノードCgから公開メッセージを受信したノード装置はキャッシュノードkgとなり、自己の記憶部12に記憶されたインデックス情報に、公開メッセージに含まれるコンテンツID、補助情報(タイトル、ジャンル等の属性情報や、監督名等の著作権情報等)、ノード情報としてのコンテンツノードCgのIPアドレス、更に、バックポインタとして、当該公開メッセージを送信したノード装置のノード情報を対応付けて記憶する。図12の場合、キャッシュノードkgは、公開メッセージの中継送信元のノード装置であるコンテンツノードCgのノード情報:IPアドレス“132.122.11.5”をバックポインタとして記憶する。
そして、当該キャッシュノードKgから公開メッセージを転送されたノード装置もキャッシュノードKhとなり、同様にして、自己の記憶部12に記憶されたインデックス情報に、公開メッセージに含まれるコンテンツID、補助情報及びノード情報と共にバックポインタとして、当該公開メッセージを転送した中継送信元のノード装置のノード情報を対応付けて記憶する。図12の場合、キャッシュノードkhは、公開メッセージの中継送信元のノード装置であるキャッシュノードKgのノード情報:IPアドレス“132.122.11.7”をバックポインタとして記憶する。
また、キャッシュノードKhは、コンテンツノードChからも公開メッセージを受信しているので、当該公開メッセージに含まれるコンテンツID、補助情報及びノード情報と共に、当該公開メッセージを転送した中継送信元のノード装置であるコンテンツノードChのノード情報:IPアドレス“132.122.11.6”をバックポインタとして対応付けて記憶する。
そして、キャッシュノードKhからコンテンツノードCg,Chに係る公開メッセージを夫々受信したルートノードでも、自己の記憶部12に記憶されたインデックス情報に、各公開メッセージに含まれるコンテンツID等の情報と、当該公開メッセージを転送した中継送信元のノード装置である各キャッシュノードKhのノード情報をバックポインタとして夫々対応付けて記憶する。また、ルートノードは、コンテンツノードCiから公開メッセージを受信して、当該公開メッセージに含まれるコンテンツID、補助情報及びノード情報と共に、当該公開メッセージの中継送信元のノード装置であるコンテンツノードCiのノード情報:IPアドレス“132.122.11.9”をバックポインタとして対応付けて記憶する。
図13は、クエリ(コンテンツ問合せ情報)の転送の様子と、当該クエリに応じてコンテンツノードのノード情報が返信される様子をスパニングツリー状に表した説明図である。
先ず、リクエストノードは、コンテンツID「30001011」、要求数「3」とするクエリを送信する。このクエリは、コンテンツIDをキーとしてルーティングテーブルに従って送信され、キャッシュノードKgにて受信される。
そしてキャッシュノードKgは、受信したクエリに含まれる識別情報としてのコンテンツIDを認識して、当該コンテンツIDに対応するコンテンツノードのノード情報を、自己の記憶部12に記憶したインデックス情報の中から検索し、当該ノード情報をリクエストノードに送信する。この時点で要求数が「3」から「2」に更新され、更にクエリが転送される。
キャッシュノードKhは、クエリを受信すると、受信したクエリに含まれる識別情報としてのコンテンツIDを認識して、当該コンテンツIDに対応するコンテンツノードのノード情報を、自己の記憶部12に記憶したインデックス情報の中から検索し、当該ノード情報をリクエストノードに送信する。この時点で要求数が「2」から「1」に更新され、更にクエリが転送される。
ルートノードは、クエリを受信すると、受信したクエリに含まれる識別情報としてのコンテンツIDを認識して、当該コンテンツIDに対応するコンテンツノードのノード情報を、自己の記憶部12に記憶したインデックス情報の中から検索し、当該ノード情報をリクエストノードに送信する。
各キャッシュノード及びルートノードにおける検索の際、インデックス情報に記憶されたバックポインタとして記憶されたノード情報を参照して、クエリの中継送信元のノード装置のノード情報と異なるコンテンツノードのノード情報をリクエストノードに送信するよう構成する。クエリの中継送信元のノード装置のノード情報は、各ノード装置が自身のノード情報をクエリに含んで送信するよう構成すればよい。
図12、図13に示す例の場合、リクエストノードからクエリを受けたキャッシュノードKgは、クエリの中継送信元であるリクエストノードのノード情報:IPアドレス“132.122.11.10”が、バックポインタとして対応付けられていないコンテンツノードCgのノード情報を、リクエストノードに送信する。
キャッシュノードKgからクエリを受けたキャッシュノードKhは、インデックス情報にあるコンテンツID「30001011」のコンテンツノードのノード情報のうち、クエリの中継送信元であるキャッシュノードKgのノード情報:IPアドレス“132.122.11.7”が、バックポインタとして対応付けられていないコンテンツノードChのノード情報を、リクエストノードに送信する。クエリの中継送信元のキャッシュノードKgのノード情報と同じノード情報を、バックポインタとして記憶するコンテンツノードのノード情報(“132.122.11.5”)は、既にリクエストノードに送信済みであるためである。
また、キャッシュノードKhからクエリを受けたルートノードは、インデックス情報にあるコンテンツID「30001011」のコンテンツノードのノード情報のうち、クエリの中継送信元であるキャッシュノードKhのノード情報:IPアドレス“132.122.11.8”が、バックポインタとして対応付けられていないコンテンツノードCiのノード情報を、リクエストノードに送信する。クエリの中継送信元のキャッシュノードKhのノード情報と同じノード情報を、バックポインタとして記憶するコンテンツノードのノード情報(“132.122.11.5”、“132.122.11.6”)は、既にリクエストノードに送信済みであるためである。
これは、クエリも公開メッセージも何れもコンテンツIDをキーとするルーティングテーブルに従って転送されるため、同じ転送経路でルートノードに辿り着く性質を利用しているのであって、クエリを受けたキャッシュノード又はルートノードは、公開メッセージを受信して、コンテンツノードの情報を記憶する際に、その中継送信元を記憶しておくことにより、ある中継送信元からのクエリに対しては、別の中継ノード装置経由で記憶しておいたコンテンツノードのノード情報を送信することが可能となり、同じノード情報を重複してリクエストノードに送信することを防いで、未だ送信されていないノード情報のみを誤りなく送信することができる。こうすれば、先の実施例のステップS32で行ったような、クエリと共に送信済みのノード情報を転送するという動作が必要なくなる。
なお、上述したようにバックポインタを使用して送信済みノード情報を判断する場合、要求数情報の更新を行なう際に、当該要求数情報に更新履歴の有無がわかる情報として、更新履歴フラグを付加するよう構成する。更新履歴フラグは、例えば更新履歴無しを「0」、更新履歴有りを「1」とする。
そして、上記ステップS25において、更新履歴フラグが「1」である場合には1つでもノード情報がリクエストノードに送信されていると判定し、更新履歴フラグが「0」である場合には1つもリクエストノードにノード情報が送信されていないと判定すればよい。
本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。 ID空間の説明図である。 DHTによってルーティングテーブルが作成される様子の一例を示す図である。 (A)レベル1のテーブルの一例である。(B)レベル2のテーブルの一例である。(C)レベル3のテーブルの一例である。(D)完成したルーティングテーブルの一例である。 本実施形態におけるDHTによりコンテンツデータの保存元であるノード装置1が検索される様子の一例を示す図である。 ノード装置1の概要構成例を示す図である。 各ノード間の各種情報の授受をスパニングツリー状に表した説明図である。 各ノード間の各種情報の授受をスパニングツリー状に表した説明図である。 リクエストノードの制御部11における処理を示すフローチャートである。 キャッシュノード或いはルートノードの制御部11における処理を示すフローチャートである。 コンテンツノードの制御部11における処理を示すフローチャートである。 公開メッセージの流れをスパニングツリー状に表した説明図である。 クエリの転送の様子と、コンテンツノードのノード情報が返信される様子をスパニングツリー状に表した説明図である。
符号の説明
1 ノード装置
8 ネットワーク
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
S コンテンツ配信システム
Ca、Cb、Cc、Cd、Cg、Ch、Ci コンテンツノード
Ka、Kb、Kg、Kh キャッシュノード

Claims (27)

  1. ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおいて、
    前記複数のノード装置に含まれる第1のノード装置は、
    前記複数のノード装置に含まれる第2のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段と、
    前記生成した要求情報を前記第2のノード装置に対して送信する要求情報送信手段と、
    前記第2のノード装置から前記ノード情報を受信するノード情報受信手段と、
    前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段と、
    前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段と、を有し、
    前記第2のノード装置は、
    前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、
    前記複数のノード装置の何れかのノード装置から前記要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、
    前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信手段と、
    前記第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信手段により前記第1のノード装置に送信したノード情報である送信済ノード情報と、を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、を有し、
    前記情報記憶ノード装置は、
    前記第1のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第1のノード装置に対して前記特定共用情報を配信する配信手段と、
    を有することを特徴とする情報配信システム。
  2. 請求項1に記載の情報配信システムにおいて、
    第2のノード装置が、前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索手段は、前記記憶手段に記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索することを特徴とする情報配信システム。
  3. 請求項1又は請求項2に記載の情報配信システムにおいて、
    前記第2のノード装置は、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報がない場合であって、当該第2のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信手段により前記第1のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新手段を有し、
    前記第2のノード装置における前記転送手段は、当該更新された要求数を新たな要求数情報とした前記要求情報を転送することを特徴とする情報配信システム。
  4. 請求項1乃至請求項3のいずれか一項に記載の情報配信システムにおいて、
    前記第1のノード装置における前記配信要求手段は、前記ノード情報受信手段により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求し、
    前記第1のノード装置における前記特定共用情報受信手段は、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信することを特徴とする情報配信システム。
  5. 請求項1乃至請求項4のいずれか一項に記載の情報配信システムにおいて、
    前記第2のノード装置は、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第2のノード装置自身が、前記管理ノード装置である場合には、前記第1のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答手段を有することを特徴とする情報配信システム。
  6. ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける情報配信方法であって、
    前記複数のノード装置に含まれる第2のノード装置が、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶工程と、
    前記複数のノード装置に含まれる第1のノード装置が、前記第2のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する工程と、
    前記第1のノード装置が、前記生成した要求情報を前記第2のノード装置に対して送信する工程と、
    前記第2のノード装置が、前記複数のノード装置の何れかのノード装置から前記要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶工程にて記憶したノード情報から、当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索工程と、
    前記第2のノード装置が、前記ノード情報検索工程による検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信工程と、
    前記第2のノード装置が、当該第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信工程により前記第1のノード装置に送信したノード情報である送信済ノード情報と、を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送工程と、
    前記第1のノード装置が、前記第2のノード装置から前記ノード情報を受信するノード情報受信工程と、
    前記第1のノード装置が、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求工程と、
    前記情報記憶ノード装置が、前記第1のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第1のノード装置に対して前記特定共用情報を配信する配信工程と、
    前記第1のノード装置が、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信工程と、
    を有することを特徴とする情報配信方法。
  7. 請求項6に記載の情報配信方法において、
    前記第2のノード装置が、前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索工程では、前記記憶工程にて記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索することを特徴とする情報配信方法。
  8. 請求項6又は請求項7に記載の情報配信方法において、
    前記第2のノード装置が、前記ノード情報検索工程による検索の結果前記要求数分の前記ノード情報がない場合であって、当該第2のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信工程にて前記第1のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新工程を有し、
    前記転送工程では、当該更新された要求数を新たな要求数情報とした前記要求情報を転送することを特徴とする情報配信方法。
  9. 請求項5乃至請求項8のいずれか一項に記載の情報配信方法において、
    前記配信要求工程では、前記ノード情報受信工程により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求し、
    前記特定共用情報受信工程は、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信することを特徴とする情報配信方法。
  10. 請求項5乃至請求項9のいずれか一項に記載の情報配信方法において、
    前記第2のノード装置が、前記ノード情報検索工程による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第2のノード装置自身が、前記管理ノード装置である場合には、前記第1のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答工程を有することを特徴とする情情報配信方法。
  11. ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第1のノード装置において、
    前記複数のノード装置に含まれる第2のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段と、
    前記生成した要求情報を前記第2のノード装置に対して送信する要求情報送信手段と、
    前記第2のノード装置から前記ノード情報を受信するノード情報受信手段と、
    前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段と、
    前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段と、
    を有することを特徴とする第1のノード装置。
  12. 請求項11に記載の第1のノード装置において、
    前記配信要求手段は、前記ノード情報受信手段により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求し、
    前記特定共用情報受信手段は、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信することを特徴とする第1のノード装置。
  13. ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第1のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第2のノード装置において、
    前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、
    前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、
    前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信手段と、
    前記第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信手段により前記第1のノード装置に送信したノード情報である送信済ノード情報と、を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、
    を有することを特徴とする第2のノード装置。
  14. 請求項13に記載の第2のノード装置において、
    前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索手段は、前記記憶手段に記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索することを特徴とする第2のノード装置。
  15. 請求項13又は請求項14に記載の第2のノード装置において、
    前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報がない場合であって、当該第2のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信手段により前記第1のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新手段を有し、
    前記転送手段は、当該更新された要求数を新たな要求数情報とした前記要求情報を転送することを特徴とする第2のノード装置。
  16. 請求項13乃至請求項15のいずれか一項に記載の第2のノード装置において、
    前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第2のノード装置自身が、前記管理ノード装置である場合には、前記第1のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答手段を有することを特徴とする第2のノード装置。
  17. ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第1のノード装置に含まれるコンピュータを、
    前記複数のノード装置に含まれる第2のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段、
    前記生成した要求情報を前記第2のノード装置に対して送信する要求情報送信手段、
    前記第2のノード装置から前記ノード情報を受信するノード情報受信手段、
    前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段、
    前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段、
    として機能させることを特徴とする配信要求プログラム。
  18. 請求項17に記載の配信要求プログラムにおいて、
    前記配信要求手段を、前記ノード情報受信手段により前記ノード情報を受信する度毎に、前記ノード情報に対応する前記情報記憶ノード装置に対して、順次、前記特定共用情報の配信を要求するよう機能させ、
    前記特定共用情報受信手段を、前記特定共用情報の配信を要求した各前記情報記憶ノード装置から配信された前記特定共用情報を並列して受信するよう機能させることを特徴とする配信要求プログラム。
  19. ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第1のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第2のノード装置に含まれるコンピュータを、
    前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段、
    前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して前記特定共用情報の要求を受けた場合には、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段、
    前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信手段と、
    前記第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報と、前記ノード情報送信手段により前記第1のノード装置に送信したノード情報である送信済ノード情報と、を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段として機能させることを特徴とする転送プログラム。
  20. 請求項19に記載の転送プログラムにおいて、
    前記要求情報を受信した際に前記送信済ノード情報を受信した場合には、前記ノード情報検索手段は、前記記憶手段に記憶されたノード情報のうち前記送信済ノード情報と同一のノード情報を除くノード情報の中から、前記識別情報に対応するノード情報を検索するよう機能させることを特徴とする転送プログラム。
  21. 請求項19又は請求項20に記載の転送プログラムにおいて、
    前記コンピュータを、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報がない場合であって、当該第2のノード装置自身が前記管理ノード装置でない場合には、前記要求数から前記ノード情報送信手段により前記第1のノード装置に送信したノード情報の数を減算して前記要求数を更新する更新手段として機能させ、かつ、
    前記転送手段を、当該更新された要求数を新たな要求数情報とした前記要求情報を転送するよう機能させることを特徴とする転送プログラム。
  22. 請求項19乃至請求項21のいずれか一項に記載の転送プログラムにおいて、
    前記コンピュータを、前記ノード情報検索手段による検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であって、かつ当該第2のノード装置自身が、前記管理ノード装置である場合には、前記第1のノード装置に対して前記ノード情報が前記要求数分無いことを回答するエラー回答手段として更に機能させることを特徴とする転送プログラム。
  23. 請求項17乃至請求項22のいずれか一項に記載の配信要求プログラム又は転送プログラムの何れかのプログラムがコンピュータ読み取り可能に記録されていることを特徴とする記録媒体。
  24. ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおいて、
    前記複数のノード装置に含まれる第1のノード装置は、
    前記複数のノード装置に含まれる第2のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する要求情報生成手段と、
    前記生成した要求情報を、前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って前記第2のノード装置に対して送信する要求情報送信手段と、
    前記第2のノード装置から前記ノード情報を受信するノード情報受信手段と、
    前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求手段と、
    前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信手段と、を有し、
    前記第2のノード装置は、
    前記複数のノード装置の何れかのノード装置から、前記共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶手段と、
    前記複数のノード装置の何れかのノード装置から前記要求情報を受信して、前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶手段を参照して、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、
    前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信手段と、
    前記第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、を有し、
    前記情報記憶ノード装置は、
    前記第1のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第1のノード装置に対して前記特定共用情報を配信する配信手段と、
    を有することを特徴とする情報配信システム。
  25. ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける情報配信方法であって、
    前記複数のノード装置に含まれる第2のノード装置が、前記複数のノード装置の何れかのノード装置から、前記複数のノード装置間で共用されるべき共用情報に対応する固有の識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶工程と、
    前記複数のノード装置に含まれる第1のノード装置が、前記第2のノード装置に対して、前記複数のノード装置に含まれるノード装置であって、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて要求情報を生成する工程と、
    前記第1のノード装置が、前記生成した要求情報を前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って前記第2のノード装置に対して送信する工程と、
    前記第2のノード装置が、前記複数のノード装置の何れかのノード装置から前記要求情報を受信して前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶工程にて記憶したノード情報であって、かつ、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索工程と、
    前記第2のノード装置が、前記ノード情報検索工程による検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信工程と、
    前記第2のノード装置が、当該第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送工程と、
    前記第1のノード装置が、前記第2のノード装置から前記ノード情報を受信するノード情報受信工程と、
    前記第1のノード装置が、前記ノード情報に対応する前記情報記憶ノード装置に対し、前記特定共用情報の配信を要求する配信要求工程と、
    前記情報記憶ノード装置が、前記第1のノード装置から前記特定共用情報の配信要求を受けた場合には、前記第1のノード装置に対して前記特定共用情報を配信する配信工程と、
    前記第1のノード装置が、前記情報記憶ノード装置から配信された前記特定共用情報を受信する特定共用情報受信工程と、
    を有することを特徴とする情報配信方法。
  26. ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第1のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第2のノード装置において、
    前記複数のノード装置の何れかのノード装置から、前記共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶手段と、
    前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して、前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶手段を参照して、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段と、
    前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信手段と、
    前記第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段と、
    を有することを特徴とする第2のノード装置。
  27. ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムを構成する前記複数のノード装置に含まれる第1のノード装置から、前記複数のノード装置間で共用されるべき共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置を示すノード情報の送信の要求を受ける前記複数のノード装置に含まれる第2のノード装置に含まれるコンピュータを、
    前記複数のノード装置の何れかのノード装置から、前記共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記共用情報を記憶する前記情報記憶ノード装置を示すノード情報と、前記共用情報に対応する固有の識別情報と、を受信して、当該送信元のノード装置を示すノード情報と夫々対応付けて記憶する記憶手段、
    前記複数のノード装置の何れかのノード装置から、前記特定共用情報に対応する前記識別情報をキーとするルーティングテーブルに従って送信された、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、に基づいて生成された要求情報を受信して、前記複数の情報記憶ノード装置を示すノード情報の送信の要求を受けた場合には、前記記憶手段を参照して、当該受信した要求情報の送信元のノード装置を示すノード情報と対応付けられていない前記情報記憶ノード装置を示す前記ノード情報のうち、前記要求情報に含まれる前記識別情報に対応する前記情報記憶ノード装置を示す前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索するノード情報検索手段、
    前記検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記第1のノード装置に少なくとも前記要求数分の前記ノード情報を送信し、前記要求数分の前記ノード情報が発見されなかった場合には、発見された前記ノード情報を前記第1のノード装置に送信するノード情報送信手段及び、
    前記第2のノード装置自身が前記特定共用情報の管理元である管理ノード装置でない場合には、前記要求情報を前記第2のノード装置と前記管理ノード装置の中間に介在するノード装置に対して、或いは当該中間に介在するノード装置が無い場合には前記管理ノード装置に対して転送する転送手段として機能させることを特徴とする転送プログラム。
JP2006019826A 2005-02-08 2006-01-27 情報配信システム、配信要求プログラム、転送プログラム及び配信プログラム等 Active JP4599581B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006019826A JP4599581B2 (ja) 2005-02-08 2006-01-27 情報配信システム、配信要求プログラム、転送プログラム及び配信プログラム等
PCT/JP2006/302038 WO2006085519A1 (ja) 2005-02-08 2006-02-07 情報配信システム、配信要求プログラム、転送プログラム及び配信プログラム等
US11/890,473 US7839867B2 (en) 2005-02-08 2007-08-07 Information delivery system, delivery request program, transfer program, delivery program, and the like

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005031795 2005-02-08
JP2006019826A JP4599581B2 (ja) 2005-02-08 2006-01-27 情報配信システム、配信要求プログラム、転送プログラム及び配信プログラム等

Publications (2)

Publication Number Publication Date
JP2006252532A true JP2006252532A (ja) 2006-09-21
JP4599581B2 JP4599581B2 (ja) 2010-12-15

Family

ID=36793091

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006019826A Active JP4599581B2 (ja) 2005-02-08 2006-01-27 情報配信システム、配信要求プログラム、転送プログラム及び配信プログラム等

Country Status (3)

Country Link
US (1) US7839867B2 (ja)
JP (1) JP4599581B2 (ja)
WO (1) WO2006085519A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007034545A (ja) * 2005-07-26 2007-02-08 Brother Ind Ltd 管理装置、ノード装置、コンテンツ情報管理処理プログラム、確認要求処理プログラム、情報配信システム、及び情報配信方法
JP2008198047A (ja) * 2007-02-15 2008-08-28 Brother Ind Ltd 情報配信システム、情報配信方法、配信装置及びノード装置等
JP2009043128A (ja) * 2007-08-10 2009-02-26 Brother Ind Ltd コンテンツ分散保存システム、コンテンツデータ取得方法、ノード装置、及びノード処理プログラム
JP2009043129A (ja) * 2007-08-10 2009-02-26 Brother Ind Ltd コンテンツ分散保存システム、コンテンツデータ取得方法、ノード装置、及びノード処理プログラム
JP2012105066A (ja) * 2010-11-10 2012-05-31 Japan Radio Co Ltd 分散管理ネットワークシステム

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007193626A (ja) * 2006-01-20 2007-08-02 Brother Ind Ltd コンテンツ配信システム、ノード装置及びその情報処理方法並びにそのプログラム
JP2007200203A (ja) * 2006-01-30 2007-08-09 Brother Ind Ltd 情報配信システム、再登録メッセージ送信方法、ノード装置、及びノード処理プログラム
EP1999883A4 (en) 2006-03-14 2013-03-06 Divx Llc FEDERATED DIGITAL RIGHTS MANAGEMENT SYSTEM COMPRISING CONFIDENCE SYSTEMS
JP2007280303A (ja) * 2006-04-11 2007-10-25 Brother Ind Ltd 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等
JP2008236537A (ja) * 2007-03-22 2008-10-02 Brother Ind Ltd コンテンツ分散保存システム、連結コンテンツ作成装置、連結コンテンツ作成処理プログラム、及び連結コンテンツデータ提供方法
US8510303B2 (en) 2009-01-07 2013-08-13 Divx, Llc Singular, collective and automated creation of a media guide for online content
JP5458629B2 (ja) * 2009-03-31 2014-04-02 ブラザー工業株式会社 ノード装置、ノード処理プログラム及び検索方法
EP2249550A1 (en) * 2009-05-04 2010-11-10 Thomson Licensing device and method for controlling dissemination of contents between peers having wireless communication capacities, depending on impatience reaction functions
WO2011068668A1 (en) 2009-12-04 2011-06-09 Divx, Llc Elementary bitstream cryptographic material transport systems and methods
US8914534B2 (en) 2011-01-05 2014-12-16 Sonic Ip, Inc. Systems and methods for adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol
US9467708B2 (en) 2011-08-30 2016-10-11 Sonic Ip, Inc. Selection of resolutions for seamless resolution switching of multimedia content
US8909922B2 (en) 2011-09-01 2014-12-09 Sonic Ip, Inc. Systems and methods for playing back alternative streams of protected content protected using common cryptographic information
US8964977B2 (en) 2011-09-01 2015-02-24 Sonic Ip, Inc. Systems and methods for saving encoded media streamed using adaptive bitrate streaming
CN103034960A (zh) * 2012-11-23 2013-04-10 山东电力集团公司 一种对配电自动化系统数据的追踪方法
US9313510B2 (en) 2012-12-31 2016-04-12 Sonic Ip, Inc. Use of objective quality measures of streamed content to reduce streaming bandwidth
US9191457B2 (en) 2012-12-31 2015-11-17 Sonic Ip, Inc. Systems, methods, and media for controlling delivery of content
US9906785B2 (en) 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
US10397292B2 (en) 2013-03-15 2019-08-27 Divx, Llc Systems, methods, and media for delivery of content
US9094737B2 (en) 2013-05-30 2015-07-28 Sonic Ip, Inc. Network video streaming with trick play based on separate trick play files
US9967305B2 (en) 2013-06-28 2018-05-08 Divx, Llc Systems, methods, and media for streaming media content
US20150189017A1 (en) * 2013-12-31 2015-07-02 Sonic Ip, Inc. Cooperative nodes in a content distribution network
US9866878B2 (en) 2014-04-05 2018-01-09 Sonic Ip, Inc. Systems and methods for encoding and playing back video at different frame rates using enhancement layers
JP6383338B2 (ja) * 2015-09-07 2018-08-29 日本電信電話株式会社 サーバ、データ一覧作成方法、および、データ一覧作成プログラム
US10498795B2 (en) 2017-02-17 2019-12-03 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000235583A (ja) * 1999-02-16 2000-08-29 Fujitsu Ltd 分散型検索システムのデータアクセス装置及びその方法
JP2004021321A (ja) * 2002-06-12 2004-01-22 Sony Ericsson Mobilecommunications Japan Inc 辞書データ検索方法、辞書データ検索装置および辞書データ検索プログラム
JP2004127168A (ja) * 2002-10-07 2004-04-22 Sony Corp 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
US7555527B1 (en) * 2003-11-07 2009-06-30 Symantec Operating Corporation Efficiently linking storage object replicas in a computer network

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7096228B2 (en) * 2002-03-27 2006-08-22 Microsoft Corporation Method and system for managing data records on a computer network
US7304994B2 (en) * 2003-04-09 2007-12-04 Nec Laboratories America, Inc. Peer-to-peer system and method with prefix-based distributed hash table
US7539771B2 (en) * 2003-06-06 2009-05-26 Microsoft Corporation Organizational locality in prefix-based structured peer-to-peer overlays
US7313565B2 (en) * 2004-02-19 2007-12-25 Microsoft Corporation Data overlay, self-organized metadata overlay, and associated methods

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000235583A (ja) * 1999-02-16 2000-08-29 Fujitsu Ltd 分散型検索システムのデータアクセス装置及びその方法
JP2004021321A (ja) * 2002-06-12 2004-01-22 Sony Ericsson Mobilecommunications Japan Inc 辞書データ検索方法、辞書データ検索装置および辞書データ検索プログラム
JP2004127168A (ja) * 2002-10-07 2004-04-22 Sony Corp 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
US7555527B1 (en) * 2003-11-07 2009-06-30 Symantec Operating Corporation Efficiently linking storage object replicas in a computer network

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007034545A (ja) * 2005-07-26 2007-02-08 Brother Ind Ltd 管理装置、ノード装置、コンテンツ情報管理処理プログラム、確認要求処理プログラム、情報配信システム、及び情報配信方法
JP4674504B2 (ja) * 2005-07-26 2011-04-20 ブラザー工業株式会社 管理装置、ノード装置、コンテンツ情報管理処理プログラム、確認要求処理プログラム、情報配信システム、及び情報配信方法
JP2008198047A (ja) * 2007-02-15 2008-08-28 Brother Ind Ltd 情報配信システム、情報配信方法、配信装置及びノード装置等
JP2009043128A (ja) * 2007-08-10 2009-02-26 Brother Ind Ltd コンテンツ分散保存システム、コンテンツデータ取得方法、ノード装置、及びノード処理プログラム
JP2009043129A (ja) * 2007-08-10 2009-02-26 Brother Ind Ltd コンテンツ分散保存システム、コンテンツデータ取得方法、ノード装置、及びノード処理プログラム
JP2012105066A (ja) * 2010-11-10 2012-05-31 Japan Radio Co Ltd 分散管理ネットワークシステム

Also Published As

Publication number Publication date
US20070297422A1 (en) 2007-12-27
WO2006085519A1 (ja) 2006-08-17
JP4599581B2 (ja) 2010-12-15
US7839867B2 (en) 2010-11-23

Similar Documents

Publication Publication Date Title
JP4599581B2 (ja) 情報配信システム、配信要求プログラム、転送プログラム及び配信プログラム等
JP4418897B2 (ja) 情報配信システム、情報更新プログラム、及び情報更新方法等
US8195764B2 (en) Information delivery system, delivery request program, transfer program, delivery program, and the like
JP4371056B2 (ja) ノード装置、ネットワーク参加処理プログラム、及びネットワーク参加処理方法等
JP4670043B2 (ja) 情報配信システム、配信要求プログラム、転送プログラム、配信プログラム等
US20080235321A1 (en) Distributed contents storing system, copied data acquiring method, node device, and program processed in node
JP2007141103A (ja) 情報配信システム、情報処理装置及び情報処理プログラム
WO2007119413A1 (ja) 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等
JP4670042B2 (ja) ノード装置、ノード装置情報更新方法、及びノード装置情報更新プログラム
JP4561283B2 (ja) ノード装置、共用情報更新方法、共用情報保存方法、共用情報更新処理プログラム、及び共用情報保存処理プログラム
WO2006103800A1 (ja) 情報処理装置及び蓄積装置、情報処理方法及び蓄積方法並びに情報処理用プログラム及び蓄積装置用プログラム
JP2006260430A (ja) ノード装置、ノード情報複製プログラム、複製用ノード情報記憶プログラム及びノード情報複製方法
US8332463B2 (en) Distributed storage system, connection information notifying method, and recording medium in which distributed storage program is recorded
JP2011211543A (ja) 情報通信システム、情報処理装置、情報処理方法、及び情報処理プログラム
JP2007233488A (ja) 登録装置、登録方法及び登録処理プログラム
WO2007074873A1 (ja) コンテンツ配信システム、端末装置及びその情報処理方法並びにそのプログラムを記録した記録媒体
JP4797679B2 (ja) コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム
JP2009232272A (ja) コンテンツ分散保存システム、コンテンツ再生方法、ノード装置、管理装置、ノード処理プログラム、及び管理処理プログラム
JP2010238161A (ja) ノード装置、ノード処理プログラム、情報通信システム及びコンテンツデータ管理方法
JP2006217538A (ja) 情報通信システム、情報通信システムに含まれる初期ゾーン管理ノード装置等
JP6369264B2 (ja) 通信システム及び情報処理装置
JP5157770B2 (ja) ノード装置、プログラム及び保存指示方法
JP5434268B2 (ja) 分散保存システム、データファイル分散保存方法及びプログラム
JP5287059B2 (ja) ノード装置、ノード処理プログラム及び保存指示方法
JP2011008657A (ja) コンテンツ配信システム、ノード装置、コンテンツ配信方法及びノードプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100615

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100805

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

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

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

Free format text: PAYMENT UNTIL: 20131008

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4599581

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250