JP2006260430A - ノード装置、ノード情報複製プログラム、複製用ノード情報記憶プログラム及びノード情報複製方法 - Google Patents
ノード装置、ノード情報複製プログラム、複製用ノード情報記憶プログラム及びノード情報複製方法 Download PDFInfo
- Publication number
- JP2006260430A JP2006260430A JP2005079987A JP2005079987A JP2006260430A JP 2006260430 A JP2006260430 A JP 2006260430A JP 2005079987 A JP2005079987 A JP 2005079987A JP 2005079987 A JP2005079987 A JP 2005079987A JP 2006260430 A JP2006260430 A JP 2006260430A
- Authority
- JP
- Japan
- Prior art keywords
- node
- information
- request
- node device
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】特定のノード装置にクエリが集中した場合であっても、特定のノード装置に対して過大な処理負担が課されることを防止可能とする。
【解決手段】ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一のノード装置において、共用情報を記憶するノード装置を示すノード情報と、各共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する手段と、特定共用情報に対応する固有の識別情報と、要求数を示す要求数情報と、を含む要求情報を受信する手段と、要求情報に含まれる要求数分のノード情報を検索し、ノード情報が発見された場合には、要求情報の送信元であるノード装置に、要求数分のノード情報を送信する手段と、受信した要求情報をノード装置毎に、ログを集計する手段と、集計したログに基づいて、要求情報を送信したノード装置に複製用ノード情報を送信する手段と、を有することを特徴とする。
【選択図】図1
【解決手段】ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一のノード装置において、共用情報を記憶するノード装置を示すノード情報と、各共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する手段と、特定共用情報に対応する固有の識別情報と、要求数を示す要求数情報と、を含む要求情報を受信する手段と、要求情報に含まれる要求数分のノード情報を検索し、ノード情報が発見された場合には、要求情報の送信元であるノード装置に、要求数分のノード情報を送信する手段と、受信した要求情報をノード装置毎に、ログを集計する手段と、集計したログに基づいて、要求情報を送信したノード装置に複製用ノード情報を送信する手段と、を有することを特徴とする。
【選択図】図1
Description
本発明は、ネットワークを介して互いに接続された複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))型のコンテンツ配信システムに関し、特に、1のノード装置から他のノード装置に配信されるべきコンテンツデータが複数のノード装置に分散して保存された情報配信システムにおけるノード装置、当該ノード装置に含まれるコンピュータにより実行されるノード情報複製プログラム、複製用ノード情報記憶プログラム及びノード情報複製方法の技術分野に関する。
この種のコンテンツ配信システムにおいては、各ノード装置は、複数のノード装置に分散保存されているコンテンツデータに関する所在情報(例えば、コンテンツデータのタイトル等の補助情報を指定することにより、コンテンツデータを保存しているノード装置のIPアドレス等が特定できる情報)が記述されたレプリカリストを有しており、当該レプリカリストに記述されたIPアドレス等に基づき、ユーザが所望するコンテンツデータをダウンロードすることが可能になっている。このようなリストは、一般に、コンテンツ配信システム上に保存されている全てのコンテンツデータを管理する管理サーバにより管理され、当該管理サーバから各ノード装置に対して上記リストが配信されることになる。
例えば、非特許文献1には、管理サーバを用いない方法として、分散ハッシュテーブル(DHT)を用いた技術が開示されているが、このシステムでは、コンテンツの配信を希望するリクエストノードは、コンテンツ情報を管理するノード装置からコンテンツ情報を記憶するノード装置の所在を聞いて、当該ノード装置にアクセスするようになっている。
「分散ハッシュテーブルの軽量な負荷分散手法の検討」 社団法人 電子情報通信学会 信学技報
「分散ハッシュテーブルの軽量な負荷分散手法の検討」 社団法人 電子情報通信学会 信学技報
このような分散ハッシュテーブル(DHT)を用いたコンテンツ配信システムにおいて、当該システムに含まれるノード装置は、いろいろな役目を兼任している。例えば、あるコンテンツにとっては当該コンテンツを管理するルートノードであったり、またあるときはコンテンツを公開するコンテンツノードであったり、またあるときは、単にクエリを転送するだけの役目を担うこともある。
ところで、このようなDHT上には、あるコンテンツのルートノードは1つしか存在しない。
従って、人気のあるコンテンツのルートノードには、コンテンツ配信システムに参加している他のノード装置から多数のクエリが送信されることになる。
特に、人気のあるコンテンツの発売日や、何らかの要因によって短時間の間にリクエストが集中することが考えられ、このような状況になると、ルートノードはクエリを処理しきれず飽和状態となり、時には装置が動作不能になってしまうという問題が懸念される。
本発明は、以上の問題等に鑑みてなされたものであり、特定のノード装置にクエリが集中した場合であっても、他のノード装置にノード情報を複製することにより、特定のノード装置に対して過大な処理負担が課されることを防止可能としたノード装置、当該ノード装置に含まれるコンピュータにより実行されるノード情報複製プログラム、複製用ノード情報記憶プログラム及びノード情報複製方法を提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置において、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求するための要求情報であって、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む前記要求情報を前記複数のノード装置に含まれる前記ノード装置から受信する要求情報受信手段と、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索する検索手段と、検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記複数のノード装置に含まれるノード装置であって前記要求情報の送信元である前記ノード装置に、少なくとも前記要求数分の前記ノード情報を送信するノード情報送信手段と、前記要求情報受信手段が受信した前記要求情報を当該一のノード装置に対して送信した前記ノード装置毎に、ログを集計するログ集計手段と、集計した前記ログに基づいて、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に前記情報記憶ノード装置を示すノード情報を複製用ノード情報として送信する複製用ノード情報送信手段と、を有することを特徴とする。
これによれば、クエリ(要求情報)を受信する際に、当該クエリを送信してくる各ノード装置毎に、クエリの送信数等のログを集計することにより、当該ノード装置にクエリが集中した場合には、ログに基づいて、例えばクエリの送信数の多いノード装置に対してノード情報を複製用ノード情報として送信することができるので、特定のノード装置に対して過大な処理負担が課されることを防止することができる。
上記課題を解決するために、請求項2に記載の発明は、請求項1に記載のノード装置において、前記ノード情報送信手段は、前記検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であっても、当該一のノード装置自身が前記特定共用情報の管理元である管理ノード装置である場合には、発見された全ての前記ノード情報を前記要求情報の送信元であるノード装置に送信することを特徴とする。
これによれば、クエリに含まれる要求情報にかかる要求数が多い場合であっても、リクエストノード(要求情報の送信元であるノード装置)はルートノード(管理ノード装置)から少なくとも1つはノード情報を受信することが可能になる。
上記課題を解決するために、請求項3に記載の発明は、請求項1又は請求項2に記載のノード装置において、前記記憶手段に記憶されたノード情報のうち、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を検知する検知手段を有し、前記複製用ノード情報送信手段は、前記特定共用情報を記憶する情報記憶ノード装置に対応する前記ノード情報であって、前記検知手段によって検知された前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を、複製用ノード情報として、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に送信することを特徴とする。
これによれば、複製対象となるノード装置(要求情報を当該一のノード装置に対して送信したノード装置)が所持しないノード情報を複製用ノード情報として送信することが可能になる。
上記課題を解決するために、請求項4に記載の発明は、請求項1乃至請求項3のいずれか一項に記載のノード装置において、前記記憶手段は、前記ノード情報及び前記識別情報と、当該ノード情報及び当該識別情報とを当該一のノード装置に対して送信した前記ノード装置を特定するための装置情報と、を対応付けて記憶し、前記検知手段は、前記ノード装置から前記要求情報を前記要求情報受信手段が受信すると、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、当該要求情報を当該一のノード装置に対して送信した前記ノード装置の装置情報に対応しないノード情報を、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報として検知することを特徴とする。
これによれば、コンテンツID(識別情報)及びノード情報を送信してきたノード装置のIPアドレス等の装置情報と共に登録するよう構成したので、自身にクエリを送信してきたノード装置の装置情報に対応しないノード情報を、容易に把握することができる。
上記課題を解決するために、請求項5に記載の発明は、請求項1乃至請求項4のいずれか一項に記載のノード装置において、前記ログは、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から前記要求情報を受信した受信回数、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から送信された前記要求情報に応じて前記ノード情報を送信した送信回数、又は各前記要求情報にかかる要求数、又は前記一のノード装置自身の処理能力のうち、少なくとも何れか1つに基づいて定められることを特徴とする。
これによれば、有用なログに基づいて、クエリの送信数の多いノード装置を決定できる。
上記課題を解決するために、請求項6に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置において、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求すべく、前記特定共用情報に対応する前記識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む要求情報を、前記複数のノード装置に含まれる前記ノード装置に送信する要求情報送信手段と、前記要求情報送信手段が要求情報を送信した前記ノード装置から、前記情報記憶ノード装置を示すノード情報を複製用ノード情報として受信する複製用ノード情報受信手段と、受信した前記複製用ノード情報を、前記記憶手段に記憶させる記憶制御手段と、を有することを特徴とする。
これによれば、クエリ(要求情報)を送信したノード装置から送信された複製用ノード情報を記憶手段に記憶することにより、特定のノード装置に対して過大な処理負担が課されることを防止することができる。
上記課題を解決するために、請求項7に記載の発明は、請求項6に記載のノード装置において、前記記憶制御手段は、前記複製用ノード情報を、前記記憶手段に記憶された前記ノード情報と区別して記憶することを特徴とする。
これによれば、複製用ノード情報のみを消去させるなど、複製用ノード情報に対して記憶されたノード情報とは異なる処理を行なうことが可能になる。
上記課題を解決するために、請求項8に記載の発明は、請求項6又は請求項7に記載のノード装置において、前記記憶制御手段は、前記複製用ノード情報を削除すべき状況か否かを判定し、当該削除すべき状況であると判定すると、当該複製用ノード情報を前記記憶手段から削除することを特徴とする。
これによれば、記憶手段に一旦記憶した複製用ノード情報を削除することが可能になる。
上記課題を解決するために、請求項9に記載の発明は、請求項8に記載のノード装置において、前記記憶制御手段は、時間に基づいて当該複製用ノード情報を削除すべき状況か否かを判定することを特徴とする。
これによれば、時間、即ち、どのくらい記憶する期間やいつまで記憶するかの期日に基づいて、複製用ノード情報を削除することが可能になる。
上記課題を解決するために、請求項10に記載の発明は、請求項8又は請求項9に記載のノード装置において、前記記憶制御手段は、前記記憶手段の空き記憶容量に基づいて当該複製用ノード情報を削除すべき状況か否かを判定することを特徴とする。
これによれば、複製用ノード情報を記憶手段の空き記憶容量に基づいて削除することが可能になる。
上記課題を解決するために、請求項11に記載の発明は、請求項8乃至請求項10の何れか一項に記載のノード装置において、前記記憶制御手段は、前記複製用ノード情報の稼動状況を検知し、当該稼動状況に基づいて当該複製用ノード情報を削除すべき状況か否かを判定することを特徴とする。
これによれば、複製用ノード情報を複製用ノード情報の稼動状況に基づいて削除することが可能になる。
上記課題を解決するために、請求項12に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置に含まれるコンピュータを、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求するための要求情報であって、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む前記要求情報を前記複数のノード装置に含まれる前記ノード装置から受信する要求情報受信手段、前記記憶手段にて記憶した情報を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索する検索手段、検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記複数のノード装置に含まれるノード装置であって前記要求情報の送信元である前記ノード装置に、少なくとも前記要求数分の前記ノード情報を送信するノード情報送信手段、前記要求情報受信手段により受信した前記要求情報を当該一のノード装置に対して送信した前記ノード装置毎に、ログを集計するログ集計手段及び集計した前記ログに基づいて、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に前記情報記憶ノード装置を示すノード情報を複製用ノード情報として送信する複製用ノード情報送信手段と、を有することを特徴とする。
上記課題を解決するために、請求項13に記載の発明は、請求項12に記載のノード情報複製プログラムにおいて、前記ノード情報送信手段を、前記検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であっても、当該一のノード装置自身が前記特定共用情報の管理元である管理ノード装置である場合には、発見された全ての前記ノード情報を前記要求情報の送信元であるノード装置に送信するよう機能させることを特徴とする。
上記課題を解決するために、請求項14に記載の発明は、請求項12又は請求項13に記載のノード情報複製プログラムにおいて、前記コンピュータを、前記記憶手段によって記憶されたノード情報のうち、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を検知する検知手段として更に機能させ、かつ、前記複製用ノード情報送信手段を、前記特定共用情報を記憶する情報記憶ノード装置に対応する前記ノード情報であって、前記検知手段によって検知された前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を、複製用ノード情報として、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に送信するよう機能させることを特徴とする。
上記課題を解決するために、請求項15に記載の発明は、請求項12乃至請求項14のいずれか一項に記載のノード情報複製プログラムにおいて、前記記憶手段を、前記ノード情報及び前記識別情報と、当該ノード情報及び当該識別情報とを当該一のノード装置に対して送信した前記ノード装置を特定するための装置情報と、を対応付けて記憶するよう機能させ、かつ、前記検知手段を、前記ノード装置から前記要求情報を前記要求情報受信手段が受信すると、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、当該要求情報を当該一のノード装置に対して送信した前記ノード装置の装置情報に対応しないノード情報を、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報として検知するよう機能させることを特徴とする。
上記課題を解決するために、請求項16に記載の発明は、請求項12乃至請求項15のいずれか一項に記載のノード情報複製プログラムにおいて、前記ログは、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から前記要求情報を受信した受信回数、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から送信された前記要求情報に応じて前記ノード情報を送信した送信回数、又は各前記要求情報にかかる要求数、又は前記一のノード装置自身の処理能力のうち、少なくとも何れか1つに基づいて定められることを特徴とする。
上記課題を解決するために、請求項17に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置に含まれるコンピュータを、前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段、前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求すべく、前記特定共用情報に対応する前記識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む要求情報を、前記複数のノード装置に含まれる前記ノード装置に送信する要求情報送信手段、前記要求情報送信手段が要求情報を送信した前記ノード装置から、前記情報記憶ノード装置を示すノード情報を複製用ノード情報として受信する複製用ノード情報受信手段及び受信した前記複製用ノード情報を、前記記憶手段に記憶させる記憶制御手段として機能させることを特徴とする。
上記課題を解決するために、請求項18に記載の発明は、請求項17に記載の複製用ノード情報記憶プログラムにおいて、前記記憶制御手段を、前記複製用ノード情報を、前記記憶手段に記憶された前記ノード情報と区別して記憶するよう機能させることを特徴とする。
上記課題を解決するために、請求項19に記載の発明は、請求項17又は請求項18に記載の複製用ノード情報記憶プログラムにおいて、前記記憶制御手段を、前記複製用ノード情報を削除すべき状況か否かを判定し、当該削除すべき状況であると判定すると、当該複製用ノード情報を前記記憶手段から削除するよう機能させることを特徴とする。
上記課題を解決するために、請求項20に記載の発明は、請求項19に記載の複製用ノード情報記憶プログラムにおいて、前記記憶制御手段を、時間に基づいて当該複製用ノード情報を削除すべき状況か否かを判定するよう機能させることを特徴とする。
上記課題を解決するために、請求項21に記載の発明は、請求項19又は請求項20に記載の複製用ノード情報記憶プログラムにおいて、前記記憶制御手段を、前記記憶手段の空き記憶容量に基づいて当該複製用ノード情報を削除すべき状況か否かを判定するよう機能させることを特徴とする。
上記課題を解決するために、請求項22に記載の発明は、請求項19乃至請求項21の何れか一項に記載の複製用ノード情報記憶プログラムにおいて、前記記憶制御手段は、前記複製用ノード情報の稼動状況を検知し、当該稼動状況に基づいて当該複製用ノード情報を削除すべき状況か否かを判定するよう機能させることを特徴とする。
上記課題を解決するために、請求項23に記載の発明は、ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおけるノード情報複製方法において、前記複数のノード装置に含まれる少なくとも1以上の要求情報送信ノード装置が、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報であって、特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む要求情報を、前記複数のノード装置に含まれる複製要求ノード装置に送信する要求情報送信工程と、前記複製要求ノード装置が、何れかの前記要求情報送信ノード装置から前記要求情報を受信する要求情報受信工程と、前記複製要求ノード装置が、前記情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶工程と、前記複製要求ノード装置が、前記要求情報受信工程にて受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を前記記憶工程にて記憶した情報より検索する検索工程と、前記複製要求ノード装置が、前記検索工程による検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記要求情報送信ノード装置のうち前記要求情報の送信元であるノード装置に、少なくとも前記要求数分の前記ノード情報を送信するノード情報送信工程と、前記複製要求ノード装置が、前記要求情報受信工程によって受信した前記要求情報を当該一のノード装置に対して送信した前記要求情報送信ノード装置毎に、ログを集計するログ集計工程と、前記複製要求ノード装置が、集計した前記ログに基づいて、前記要求情報を当該一のノード装置に対して送信した一の前記要求情報送信ノード装置に前記情報記憶ノード装置を示すノード情報を複製用ノード情報として送信する複製用ノード情報送信工程と、を有することを特徴とする。
本発明によれば、特定のノード装置に対してクエリが集中した場合などに、特定のノード装置に過大な処理負担が課されることを防止することができる。
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ配信システムに対して本発明を適用した場合の実施形態である。
[1.コンテンツ配信システムの構成等]
始めに、図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)という)を利用したアルゴリズムについて説明する。
以下に、本実施形態に係る分散ハッシュテーブル(以下、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である」という規則の下にコンテンツデータとルートノードの対が作成された場合であっても、あるコンテンツデータのルートノードが突然機能停止したり、或いはコンテンツデータが保存されているノード装置(以下、単に「コンテンツノード」という。)にて当該コンテンツデータが消滅(消去)してしまう場合が考えられる。このような場合であっても、ルートノードが、コンテンツデータの生存を確認し、自己の保持するレプリカリストのうち当該コンテンツデータに係るレプリカリストを更新しない限り、ルートノードの管理するコンテンツデータの情報はいつまでも残ることになる。そして、当該コンテンツデータが一旦は消滅したものの、再度同一コンテンツデータを登録する際には、改めて上記規則の下に再度ルートノードが選び出されることとなり、新しいノード装置の参加等によって以前のルートノードとは異なるノード装置が新しいルートノードとして選び出されることもありうる。
従って、上記規則の下にコンテンツデータとルートノードの対が作成された場合であっても、コンテンツ配信システムSが何万何十万・・・と膨大なネットワークを構築していくに従って、ノード装置のコンテンツ配信システムSからの脱退(ノード装置の電源断や故障、或いはネットワークの部分的な切断等による)及び参加が行なわれる頻度が高く、しかも、コンテンツデータのノード装置への新たな保存又は消去が行なわれる頻度が高くなるため、あるコンテンツデータの保存元であるコンテンツノードを知っているノード装置は1つではなく、現実的には多数のノード装置が存在することとなる。
また、あるコンテンツデータを保持するノード装置(コンテンツノード)は1台とは限らない。多数のノード装置が同一のコンテンツを保持してコンテンツ配信システムSにそれぞれ参加する場合がある。このような場合も、各ノード装置が当該コンテンツ配信システムSに参加する夫々のタイミングの状況下によってルートノードとなるべきノード装置が別々に決定されることもあるため、結果としてあるノート装置が同一のコンテンツデータを保持しているノード装置(コンテンツノード)を2つ以上知っている場合もある。
[1−2.ルーティングテーブルの作成]
ここで、図3を参照して、DHTで用いるルーティングテーブルの作成手法の一例について説明する。
ここで、図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アドレスを記憶する必要は無い。
まず、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(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列目はそのエリアにノード装置が存在しないため空白となる。
さらに、図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を参照して、本実施形態におけるコンテンツデータの保存元であるノード装置1(以下、「コンテンツノード」と言う。)の検索方法の一例について説明する。
図5は、DHTによりコンテンツノードが検索される様子の一例を示す図である。
ここでは、ノードID「12003030」のノード装置1−1(以下、「リクエストノード」と言う。)が、コンテンツID「31330012」を有するコンテンツデータを保持するコンテンツノードを探す際の手順について説明する。なお、同図に示す如くコンテンツID「31330012」を保持するコンテンツノードのノードIDは「00213000」と「02223230」である。
図5において、リクエストノードからコンテンツID「31330012」を有するコンテンツデータを管理するノード装置1−5(すなわちルートノード)に至る経路を実線矢印で表すが、この経路の途中のノード装置1−4を、当該ルートノードが記憶しているコンテンツID「31330012」のレプリカリストをキャッシュとして保持するキャッシュノードとする。ここで、キャッシュノードとは、ルートノードと異なるノード装置であって、レプリカリストを一時的に記憶しているノード装置を言う。なお、キャッシュノードがレプリカリストを一時的に記憶する手法については後に詳述する。
まず、リクエストノードは、コンテンツID「31330012」と同じエリアのノードIDを持つノード装置に対してコンテンツ問い合わせ情報(以下、「コンテンツ問い合わせ情報」を「クエリ」と言う。)を送信する。
ここで、リクエストノードが送信するクエリについて説明する。
クエリには、所望のコンテンツを示すコンテンツID「31330012」だけでなく、コンテンツノードのノード情報をいくつ要求するかを示す要求数情報も含まれる。すなわち、同一のコンテンツを保持するコンテンツノードがコンテンツ配信システムSの中に複数個存在する場合が考えられるが、このような場合、リクエストノードは、コンテンツ配信を要求する際に、所望のコンテンツを保持する複数のコンテンツノードに対して配信を要求するよう構成されている。
このとき、コンテンツノードのノード情報(IPアドレス等)の要求数を多く設定すれば、多くのコンテンツノードからコンテンツの配信を並列して受けることができ、より早くコンテンツを取得することが可能になるという利点がある。また、1つのノード装置で接続可能なコンテンツノードの数は限られているため、その上限数が「10」であるとすれば、コンテンツノードのIPアドレスの要求数をそれより若干多い「15」等とすることが考えられる。上限数より若干多く要求する理由は、接続に失敗した場合の保険である。すなわち、コンテンツノードに配信要求をしたときに当該コンテンツノードの電源が切断されていてアクセス不可能であったり、或いは所望のコンテンツが何らかの原因で配信不可能な状態となっていて要求数だけのコンテンツノードと接続できないことが考えられるからである。一方、人気のないコンテンツは当該コンテンツ自体がシステム中に僅かしか存在していなかったり、当該コンテンツに対応するキャッシュノードが多く存在しないため、要求数を少なく設定することにより、クエリがルートノードへ転送されることなく、コンテンツノードのノード情報が短時間で揃うという利点があるので、リクエストノードのユーザが用途に応じて設定を変えることができる。また、ユーザが要求数を決定するだけでなく、他の方法としてノード装置によって自動的に要求数を決定するよう構成することもできる。
このように、リクエストノードは、所望のコンテンツを示すコンテンツIDだけでなく、コンテンツノードのノード情報を要求する数を示す要求数情報も一緒にクエリに含めて送信し、リクエストノードや各キャッシュノードから受信した当該要求数に応じた数の複数のコンテンツノードのノード情報に基づいて、当該複数のコンテンツノードにアクセスしてコンテンツの配信を要求するよう構成する。
なお、以下に図5を用いて説明するコンテンツデータの検索手法においては、ネットワーク上をクエリが転送されることでコンテンツデータを見つけ出すことができることをわかりやすく説明するため、上記要求数は「1」として説明する。
まず、リクエストノードは、自己が保持しているルーティングテーブルのレベル1のテーブルを参照して、コンテンツID「31330012」と同じエリアのノードIDを持つノード装置に対して要求数を「1」とする要求数情報を含むクエリを送信する。つまり、コンテンツ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は、コンテンツID「31330012」にとっての上記キャッシュノードであるため、コンテンツノードのレプリカリストを少なくとも一つは発見することができる。つまり要求数が「1」であれば、クエリがルートノード(ノード装置1-5)に転送される前にキャッシュノード(ノード装置1-4)にて必ずレプリカリストを発見できる。
そして、発見したレプリカリストに含まれるコンテンツノード(ノード装置1-6)のノード情報(IPアドレス等)をリクエストノードに送信する。
そして、コンテンツノード(ノード装置1-6)のノード情報を受信したリクエストノードは、コンテンツノード(ノード装置1-6)に対してコンテンツの配信を要求する配信要求を図5中破線矢印で示す如く送信する。そして、配信要求を受信したコンテンツノード(ノード装置1-6)は、図5中一点鎖線で示す如くコンテンツデータをリクエストノードに配信するようになっている。
次に、図6を参照してリクエストノードから送信されたクエリに含まれる要求数が「2」である場合の例について説明する。この場合、キャッシュノードであるノード装置1−4は、として説明する。
まず、リクエストノード(ノード装置1−1)からノード装置1-4(ノードID「31320100」)までクエリが転送されていく手順は上記図5を用いて説明した場合と同じである。
クエリを受けたノード装置1-4(ノードID「31320100」)は、コンテンツID「31330012」にとってのキャッシュノードであるが、クエリに含まれるコンテンツID「31330012」に対応するレプリカリストを1つしか保持していないものとする。つまり、クエリに含まれる要求数「2」以上のレプリカリストは保持していないのである。
この場合には、ノード装置1-4は、当該ノード装置1-4自身が保持しているルーティングテーブルのレベル4のテーブルを参照して、「3133XXXX」のエリアに属すノード装置1のうち、IPアドレスを知っているノード装置1-5(ノードID「31330000」)すなわちルートノードに対してクエリを転送する。
そして、最終的に当該コンテンツデータを管理するノード装置1−5、すなわちルートノードに辿り着くと、当該ルートノードは、クエリに含まれるコンテンツID「31330012」を元に自身が管理しているインデックスを参照し、コンテンツID「31330012」に対応するレプリカリストの有無を確認する。ここで、ルートノードのインデックスには、コンテンツノード(ノード装置1−6)とコンテンツノード(ノード装置1-7)のレプリカリストを有しているものとする。従って、ルートノードは要求数「2」以上のコンテンツID「31330012」に対応するレプリカリストを発見できる。
そして、発見した各レプリカリストに含まれるコンテンツノード(ノード装置1−6)とコンテンツノード(ノード装置1-7)のノード情報(IPアドレス等)をリクエストノードに送信する。
そして、コンテンツノード(ノード装置1−6)とコンテンツノード(ノード装置1-7)のノード情報を受信したリクエストノードは、コンテンツノード(ノード装置1−6)とコンテンツノード(ノード装置1-7)に対してそれぞれコンテンツの配信を要求する配信要求を図5中破線矢印で示す如く送信する。そして、配信要求を受信した各コンテンツノードは、図5中一点鎖線で示す如くコンテンツデータをリクエストノードに配信する。
このように、リクエストノードが要求するコンテンツノードのノード情報の数である「要求数」以上のレプリカリストを有するノード装置(キャッシュノード又はルートノード)に辿り着くまで、クエリはルートノードに向けて転送されるようになっている。
また、あるコンテンツに対するルートノードは1つしか存在しないため、要求数が多くなればなるほどルートノードまで辿り着いてしまうことになる。また、人気のあるコンテンツのルートノードやキャッシュノードは、多くのクエリが送信されるため、リクエストノードへのノード情報の送信処理や、クエリの転送処理が、装置自身の処理能力を超えてしまうこともありうる。
従って、クエリを送信してきた各ノード装置毎に、当該クエリの受信回数、クエリに応じてノード情報を送信した送信回数、クエリに含まれる要求情報にかかる要求数等のログを集計し、当該ログに基づいて、例えばあるコンテンツに対するクエリの送信回数が際立って多いノード装置には、そのコンテンツのレプリカリストを複製するよう構成することにより、当該コンテンツのルートノードやキャッシュノードの処理負担を軽減することができる。
[2.ノード装置の構成等]
次に、図7を参照して、ノード装置1の構成及び機能について説明する。尚、各ノード装置1は、それぞれが行なう処理によってコンテンツの所在を問い合わせる第1のノード装置としてのリクエストノード、当該リクエストノードや経路上の端末からクエリを受信する第2のノード装置としてのキャッシュノード、当該コンテンツを管理する第2のノード装置及び管理ノード装置としてのルートノード、リクエストノードによって問い合わせの対象とされている特定共用情報としてのコンテンツを保持する情報記憶ノード装置としてのコンテンツノードとして作用するが、その構成は同じである。
次に、図7を参照して、ノード装置1の構成及び機能について説明する。尚、各ノード装置1は、それぞれが行なう処理によってコンテンツの所在を問い合わせる第1のノード装置としてのリクエストノード、当該リクエストノードや経路上の端末からクエリを受信する第2のノード装置としてのキャッシュノード、当該コンテンツを管理する第2のノード装置及び管理ノード装置としてのルートノード、リクエストノードによって問い合わせの対象とされている特定共用情報としてのコンテンツを保持する情報記憶ノード装置としてのコンテンツノードとして作用するが、その構成は同じである。
図7は、ノード装置1の概要構成例を示す図である。
各ノード装置1は、図7に示すように、演算機能を有する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が各種プログラムを実行することにより、コンテンツ登録処理、ノード情報要求処理、コンテンツ配信処理、レプリカリスト複製処理等の各種処理を実行し、当該各処理において、記憶手段、要求情報受信手段、検索手段、ノード情報送信手段、ログ集計手段、複製用ノード情報送信手段、検知手段、応急情報送信手段、複製用ノード情報受信手段及び記憶制御手段として機能する。
[3.コンテンツ配信システムの動作]
次に、コンテンツ配信システムSの各ノード装置の動作について説明する。
次に、コンテンツ配信システムSの各ノード装置の動作について説明する。
上述したように、コンテンツ配信システムSに含まれる全てのノード装置1は、リクエストノード、キャッシュノード、ルートノード、コンテンツノード、或いは経路上のノード等、その他のノード等何れのノード装置にもなり得る。
ここでは、ノード装置1の制御部11が受けたメッセージを解析し、その結果に応じてコンテンツ登録処理、ノード情報要求処理、コンテンツ配信処理、レプリカリスト複製処理の何れかの処理を行なうものとして説明する。
[3−1.処理選択の動作]
図8は、コンテンツ配信システムSに含まれる任意のノード装置の制御部11に記憶されたプログラムが当該制御部11により実行されることにより行われる処理を示すフローチャートである。当該フローチャートは制御部11が通信部20を介して他のノード装置から送信されたメッセージを受信することにより処理が開始される。
図8は、コンテンツ配信システムSに含まれる任意のノード装置の制御部11に記憶されたプログラムが当該制御部11により実行されることにより行われる処理を示すフローチャートである。当該フローチャートは制御部11が通信部20を介して他のノード装置から送信されたメッセージを受信することにより処理が開始される。
まず、制御部11が受信したメッセージが、コンテンツノードを含むコンテンツ配信システムS内の他のノード装置から送信された「パブリッシュ(コンテンツの公開)」、リクエストノードやキャッシュノードを含むコンテンツ配信システムS内の他のノード装置から送信された「クエリ(コンテンツ問い合わせ)」、リクエストノードから送信された「コンテンツ配信要求」、又はリクエストノードやキャッシュノードから送信された「レプリカリストの複製要求」の何れであるかを解析する(ステップS1)。
解析の結果、「パブリッシュ」であればコンテンツ登録処理(ステップS2)へ、「クエリ」であればノード情報要求処理(ステップS3)へ、「コンテンツ配信要求」であればコンテンツ配信処理(ステップS4)へ、「レプリカリストの複製要求」であればレプリカリスト複製処理(ステップS5)へ、それぞれ移行して、後に詳述する規定の処理を実行し処理を終了する。
続いて、ノード装置1にて行われる各処理について、図9乃至図20を用いて詳細に説明する。
[3−2.コンテンツ登録処理]
先ず、上記ステップS2における「コンテンツ登録処理」について説明する。
先ず、上記ステップS2における「コンテンツ登録処理」について説明する。
コンテンツ登録処理とは、コンテンツ配信システムSの中で、例えば、あるノード装置1が新しいコンテンツデータを、コンテンツ配信システムS上の他のノード装置に見えるように公開する際の手法であり、登録処理が完了すると、このノード装置1がコンテンツを保持する(記憶する)情報記憶ノード装置としてのコンテンツノードとなる。
まず、あるコンテンツをコンテンツ配信システムSに含まれる他のノード装置と共用可能に登録しようとする際には、コンテンツのタイトル等からコンテンツIDを求め、当該コンテンツIDと同じノードIDを持つノード装置に向けて(このノード装置が実在するか否かはこの時点ではわからない。)パブリッシュ(コンテンツの公開)を送信する。そして、このパブリッシュも、上述したクエリと同様にルーティングテーブルに従って、次々と転送されていき、当該パブリッシュに含まれるコンテンツIDに最も近いノードIDを有するノード装置1まで転送されたところで、そのノード装置1はもはや送信先のノード装置が他にないと判断すると、当該ノード装置1自身がそのコンテンツのルートノードとなるべきだと判断し、識別情報としてのコンテンツID、ノード情報としてのコンテンツノードのIPアドレス等をレプリカリストとして記憶する。なお、レプリカリストには、コンテンツの補助情報(タイトル、ジャンル等の属性情報や、監督名等の著作権情報等)を含めてもよい。
図9は、パブリッシュを受信したノード装置の制御部11に記憶されたコンテンツ登録プログラムが当該制御部11により実行されることにより行われる処理を示すフローチャートであり、図8のフローチャートにおけるステップS2にて行われる処理である。
まず、受信したパブリッシュに含まれるコンテンツIDに対応するレプリカリストが自己のインデックスに登録済みか否かを判定する(ステップS10)。自己のインデックスにパブリッシュに含まれるコンテンツIDに対応するレプリカリストが無い場合には(ステップS10:No)、記憶部11のインデックスに新たにパブリッシュに含まれるコンテンツIDを登録する(ステップS11)。
一方、自己のインデックスにパブリッシュに含まれるコンテンツIDに対応するレプリカリストがある場合には(ステップS10:Yes)、パブリッシュを送ってきたノード装置1のIPアドレス(装置情報)と、コンテンツノードのIPアドレス(ノード情報)とを、コンテンツIDに対応付けて新たにレプリカリストとして登録する(ステップS12)。尚、当該処理によって登録されたレプリカリストは正規登録であるため、複製フラグを「0」とする。すなわち、後に詳述する「3−4.レプリカリスト複製処理」によって複製されたレプリカリストと区別して記憶するように構成されている(記憶制御手段)。
続いて、自身がコンテンツIDのルートノードであるか否かを判定し(ステップS13)、ルートノードである場合(ステップS13:Yes)には処理を終了し、ルートノードでない場合(ステップS13:No)にはパブリッシュをルートノード方向のノード装置へすなわち上流のノード装置へ転送して処理を終了する(ステップS14)。
図10を用いて具体的に説明する。図10は、映画Aを有する2台のコンテンツノードが、夫々パブリッシュを送信し、キャッシュノード及びルートノードに登録されるまでの様子をスパニングツリー状に示した説明図である。
同図において、映画AはコンテンツIDが「10000000」であって、2台のコンテンツノードのIPアドレスは夫々「11.11.11.11」と「22.22.22.22」である。
IPアドレス「22.22.22.22」を有するコンテンツノードから送信されたパブリッシュは、先ず、IPアドレス「77.77.77.77」のノード装置まで辿り着く。
パブリッシュには、映画Aに対応する固有の識別情報としてのコンテンツIDと、コンテンツノードを示すノード情報としてのIPアドレスと、送信した装置を特定するための装置情報としてのIPアドレスと、が含まれているため、IPアドレス「77.77.77.77」のノード装置は受信したパブリッシュに基づいて、パブリッシュを送ってきたノード装置のIPアドレス(装置情報)「22.22.22.22」と、コンテンツノードのIPアドレス(ノード情報)「22.22.22.22」とを、コンテンツID(識別情報)「10000000」に対応付けて記憶部12のキャッシュ領域に記憶する(記憶手段)。このとき、後述する「レプリカリスト複製処理」による登録と区別するため、複製フラグを「0」としてレプリカリストの登録を完了する。このようにして、レプリカリストを記憶すると、IPアドレス「77.77.77.77」のノード装置は、映画AのキャッシュノードC1となる。
また、IPアドレス「11.11.11.11」を有するコンテンツノードから送信されたパブリッシュは、IPアドレス「99.99.99.99」のノード装置に辿り着く。そして、上記同様にIPアドレス「99.99.99.99」のノード装置は受信したパブリッシュに基づいて、パブリッシュを送ってきたノード装置のIPアドレス(装置情報)「11.11.11.11」と、コンテンツノードのIPアドレス(ノード情報)「11.11.11.11」とを、コンテンツID(識別情報)「10000000」に対応付けて記憶部12のキャッシュ領域に記憶する(記憶手段)と共に、複製フラグを「0」としてレプリカリストの登録を完了する。このようにして、レプリカリストを記憶すると、IPアドレス「99.99.99.99」のノード装置は、映画AのキャッシュノードC3となる。
更に、キャッシュノードC3はパブリッシュをIPアドレス「88.88.88.88」のノード装置に転送する。このパブリッシュには送信した装置を特定するための装置情報としてキャッシュノードC3のIPアドレス「99.99.99.99」が含まれている。そして、IPアドレス「88.88.88.88」のノード装置は当該パブリッシュを受信すると、パブリッシュを送ってきたノード装置のIPアドレス(装置情報)「99.99.99.99」と、コンテンツノードのIPアドレス(ノード情報)「11.11.11.11」とを、コンテンツID(識別情報)「10000000」に対応付けて記憶部12のキャッシュ領域に記憶する(記憶手段)と共に、複製フラグを「0」としてレプリカリストの登録を完了する。このようにして、レプリカリストを記憶すると、IPアドレス「88.88.88.88」のノード装置は、映画AのキャッシュノードC2となる。
そして、キャッシュノードC1及びキャッシュノードC2はルートノードにパブリッシュを転送する。これらのパブリッシュには送信した装置を特定するための装置情報としてキャッシュノードC1のIPアドレス「77.77.77.77」とキャッシュノードC2のIPアドレス「88.88.88.88」が夫々含まれている。そして、ルートノードは各パブリッシュを受信すると、夫々のパブリッシュについてレプリカリストを登録する。すなわち、パブリッシュを送ってきたノード装置のIPアドレス(装置情報)「88.88.88.88」と、コンテンツノードのIPアドレス(ノード情報)「11.11.11.11」とを、コンテンツID(識別情報)「10000000」に対応付けて記憶する(記憶手段)と共に、複製フラグを「0」としてレプリカリストの登録を完了する。また、パブリッシュを送ってきたノード装置のIPアドレス(装置情報)「77.77.77.77」と、コンテンツノードのIPアドレス(ノード情報)「22.22.22.22」とを、コンテンツID(識別情報)「10000000」に対応付けて記憶する(記憶手段)と共に、複製フラグを「0」としてレプリカリストの登録を完了する。
なお、ルートノードでは、複製フラグは常に0であるため(更に上位のノード装置が存在しないので複製処理の対象となることが無い)、複製フラグは記憶しなくてもよい。
このようにして、コンテンツの登録が完了すると、コンテンツ配信システムSに含まれる何れかのノード装置がリクエストノードとなって当該コンテンツの配信を要求するため、コンテンツノードの場所を問い合わせるクエリが転送されることになる。
このクエリの転送は、図11に示す如くルートノードを頂点としたツリー状にて記載することもできる。図11は、コンテンツID「20000000」を含むクエリの転送ルートを示し、ルートノード及びキャッシュノードCa、Cbは当該コンテンツID「20000000」に対応するレプリカリストをインデックスに1つ以上保持する。
そして、同図に示す例によれば、キャッシュノードCaはIPアドレスが「44.44.44.44」であって、レプリカリストを3個所持し、キャッシュノードCbはIPアドレスが「55.55.55.55」であって、レプリカリストを5個所持し、ルートノードはレプリカリストを8個所持する。そして、ノード装置1cはレプリカリストを1つも所持しないノード装置(キャッシュノードでもルートノードでもない)である。
キャッシュノードCaは、エリアAに属すノード装置1からのクエリをIPアドレスが「54.54.54.54」のノード装置1若しくはIPアドレスが「53.53.53.53」のノード装置1を介して(これらのノード装置1からのクエリを)、ルートノードに転送する。より具体的には、エリアAに属すノード装置1からのクエリに含まれる要求数が「3」以下である場合には、自身のインデックスに保持するレプリカリストで充足可能なため、クエリをルートノードに転送しないが、クエリに含まれる要求数が「4」以上である場合には、自身のインデックスに保持するレプリカリストでは足りないので、クエリをルートノードに転送することになる。また、キャッシュノードCbも同様にしてエリアBに属すノード装置1からのクエリであって、当該クエリに含まれる要求数が「6」以上である場合にはクエリをルートノードに転送する。ノード装置1cはレプリカリストを1つも所持しないので、ノード装置1cが受信したエリアCに属すノード装置1からのクエリは全てルートノードに転送されることとなる。
[3−3.ノード情報要求処理]
続いて、図8のフローチャートのステップS3における「ノード情報要求処理」について図11乃至図16を用いて説明する。
続いて、図8のフローチャートのステップS3における「ノード情報要求処理」について図11乃至図16を用いて説明する。
ノード情報要求処理は、図8におけるステップS1にてメッセージを解析した結果がクエリ(コンテンツ問い合わせ)である場合にステップS3において実行される処理である。
図12はクエリを受信したノード装置の制御部11に記憶されたプログラム(ノード情報複製プログラムを含む)が当該制御部11により実行されることにより行われる処理を示すフローチャートである。なお、当該処理を実行するキャッシュノード或いはルートノードは、本発明における複製要求ノード装置として機能する。
先ず、制御部11は、クエリを受信することにより要求情報受信手段として機能する。そして、クエリを受信すると、前回受信したクエリから一定期間が経過したか否かを判定する(ステップS21)。判定の結果、一定期間が経過している場合には(ステップS21:Yes)、記憶部12に記憶したクエリ数カウンタと返信カウンタをリセットする(ステップS22)。
ここで、クエリ数カウンタと返信カウンタについて図を用いて説明する。
図13は、クエリ数カウンタの説明図である。
クエリ数とは、例えば、図11におけるキャッシュノードCaが当該フローチャートのノード情報要求処理を実行している場合には、キャッシュノードCaが一定期間の間に受信したクエリの数をクエリ数カウンタ(回)として示すもので、「リクエストノードにノード情報を送信したクエリ(回)」と「転送したクエリ(回)」との合計である。
すなわち、このノード情報要求処理では、キャッシュノードCaがキャッシュノードとしての役割を担う場合(クエリに含まれるコンテンツIDにかかるコンテンツ(例えば「映画A」)のレプリカリストを少なくとも一つは保持している)に、フローチャートの後の処理にあるように、リクエストノードにノード情報を送信したクエリの数である。
一方、キャッシュノードCaは他のコンテンツ(例えば「映画B」)にとってはキャッシュノードでもルートノードでもなく、単にクエリを転送するだけの役目を担うノード装置となる場合がある。例えば、先に説明した[1−3.コンテンツデータの検索方法]の説明におけるノード装置1−2やノード装置1−3のような働きをする場合である(図5又は図6参照。)。
このように、一定期間の間に転送したクエリの数もログとして集計している。図13に示す「転送したクエリ」がこれに相当する。
そして、クエリ数カウンタ(回)が、当該装置の処理できるクエリ数を「装置処理限界」とし、この装置処理限界を超えた場合には、クエリ数を低減させるよう制御することが必要となる。
例えば、図13(A)に示す如く、クエリ数カウンタ(回)が装置処理限界を下回っていればノード装置は問題なく処理を行なえるが、クエリ数カウンタ(回)が装置処理限界を上回ると、クエリ数を減らすよう制御しなければならない。しかし、クエリ数のうち、「転送したクエリ(回)」は、制御することができないので、「リクエストノードにノード情報を送信したクエリ(回)」を低減させることにより、図13(B)に示す如く、クエリ数を低減させるよう構成する。
次に、返信カウンタについて説明する。
返信カウンタとは、例えば、図11におけるルートノードが当該フローチャートのノード情報要求処理を実行している場合には、ルートノードが一定期間の間に「リクエストノードにノード情報を送信したクエリ(回)」を、当該クエリを送信してきたノード装置毎に集計したものである。
図14は、図11におけるルートノードの返信カウンタの一例である。同図に示す例によれば、ルートノードは、キャッシュノードCaから送信されたクエリに応答してリクエストノードにノード情報を送信したクエリの数は「15回」であり、キャッシュノードCbから送信されたクエリに応答してリクエストノードにノード情報を送信したクエリの数は「3回」であり、ノード装置1cから送信されたクエリに応答してリクエストノードにノード情報を送信したクエリの数は「21回」である。なお、ルートノードが本願における複製要求ノード装置として機能する場合には、これらキャッシュノードCa、Cb及びノード装置1cは、本願における要求情報送信ノード装置に相当するものである。
つまり、クエリに含まれる要求情報にかかる要求数が多ければ多いほどクエリがルートノード方向に(すなわち上流に)送信される可能性が高くなるので、当該返信カウンタの数は、キャッシュノードCa、キャッシュノードCb、ノード装置1cの有するレプリカリストの数に応じた数となると考えられる。
従って、ルートノードは、返信カウンタの数が多いノード装置1cに対してレプリカリストを複製させることで、自身がクエリに応じる処理が減り、言い換えれば「リクエストノードにノード情報を送信したクエリ(回)」を低減させることができ、結果として図13(B)に示す如くクエリ数を低減させることが可能になる。なお、レプリカリストの複製については後に詳述する。
図12のフローチャートの説明に戻る。
ステップS21の判定の結果、一定期間が経過していない場合(ステップS21:No)、又はステップS22の処理の後、制御部11は、検索手段として機能し、受信したクエリに含まれる識別情報としてのコンテンツIDを認識して、当該コンテンツIDに対応するコンテンツノードのノード情報(ノード情報としてのコンテンツノードのIPアドレス)を、自己の記憶部12に記憶したインデックスのレプリカリストの中から検索する(ステップS23)。
そして、コンテンツIDに対応するコンテンツノードのノード情報が要求数以上発見されたか否かを判定(ステップS24)し、発見されなかった場合(ステップS24:No)には、自身がルートノードであるか否かを判定(ステップS25)し、自身がルートノードでない場合(ステップS25:No)には、クエリを上流のノード装置、すなわち、自身とルートノードの中間に介在するノード装置へ転送(ステップS26)して処理を終了する。なお、中間に介在するノード装置が無い場合にはルートノードへ転送することとなる。
一方、ステップS25の判定において、自身がルートノードである場合(ステップS23:Yes)には、自己の記憶部12に記憶したインデックスのレプリカリストの数だけ、つまり、全てのレプリカリストに含まれるノード情報をリクエストノードに送信(ステップS27)して(ノード情報送信手段)、ステップS29の処理に移行する。
他方、ステップS24の処理において、コンテンツIDに対応するコンテンツノードのノード情報が要求数以上発見された場合(ステップS24:Yes)には、制御部11はノード情報送信手段として機能し、自己の記憶部12に記憶したインデックスの要求数分のレプリカリストからノード情報を取得し、当該要求数分のノード情報をリクエストノードに送信する(ステップS28)。
続いて、制御部11はログ集計手段として機能し、ステップS29乃至ステップS31のログ集計処理を行なう。
まず、ステップS29では、リクエストノードに送信したノード情報の数をチェックする(ステップS29)。そして、クエリを送信してきたノード装置に対する返信カウンタを更新する(ステップS30)。また、この際に当該クエリに含まれる要求数もログとして集計する。
図11に示すルートノードの制御部11によって当該ノード情報要求処理が実行されている場合について図11及び図14を用いてより具体的に説明すると、クエリを当該ルートノードに送ってきたノード装置がキャッシュノードCa、Cb又はノード装置1cの何れであるかを判断し、該当するノードの返信カウンタ(図14参照。)を「1」加算する。
さらに、クエリ数カウンタを「1」加算して更新する(ステップS31)。
そして、クエリ数カウンタが装置処理限界を超えているか否かを判定し(ステップS32)、装置処理限界を超えていなければ(ステップS32:No)、処理を終了し、装置処理限界を超えている場合(ステップS32:Yes)、何れのノード装置からのクエリが多いのかを返信カウンタを参照して検索する(ステップS33)。そして、レプリカリスト複製処理を実行する(ステップS34)。
続いて、レプリカリスト複製処理の実行後、未だ要求カウンタが装置処理限界を超えているか否かを判定し(ステップS35)、装置処理限界を超えていなければ(ステップS35:No)、処理を終了し、装置処理限界を超えている場合(ステップS35:Yes)、再び、何れのノード装置からのクエリが多いのかを返信カウンタを参照して検索する(ステップS33)。例えば、図14に示す如く、返信カウンタを参照すると、ノード装置1cからのクエリが多いので、当該ノード装置1cに対してレプリカリスト複製処理を実行する。
しかしそれでも未だ装置処理限界を超えている場合もある。例えば、要求数を「4」以上とするクエリを送信するノード装置がエリアAに多数存在する場合などである。この場合には、キャッシュノードCaの制御部11によって当該ノード情報要求処理が実行された際に、キャッシュノードCaが有するレプリカリストは「3」なので、上記ステップS24の処理にて要求数以上のノード情報を発見できないと判断し、ステップS26でクエリを上流のノード装置へ転送するよう制御するので、これを受けたルートノードにてリクエストノードにノード情報を送信することになるためである。
従って、ノード装置1cに対してレプリカリスト複製処理を実行しても尚ルートノードの装置処理限界を超えている場合には、キャッシュノードCaに対してもレプリカリスト複製処理を実行し、ルートノードのクエリ数カウンタが装置処理限界を下回るまでステップS33乃至ステップS35の処理を繰り返し行なうのである。
[3−3−1.レプリカリスト複製要求処理]
続いて、上記ノード情報要求処理のステップS34において実行されるレプリカリスト複製要求処理について図14乃至図16を用いて説明する。
続いて、上記ノード情報要求処理のステップS34において実行されるレプリカリスト複製要求処理について図14乃至図16を用いて説明する。
図15は、ノード装置の制御部11に記憶されたプログラム(ノード情報複製プログラムを含む)がノード装置の制御部11により実行されることにより行われる処理を示すフローチャートである。なお、当該処理を実行するキャッシュノード或いはルートノードは、本発明における複製要求ノード装置として機能する。
先ず、複製するレプリカリストの数を決定する(ステップS40)。より具体的には、上記ノード情報要求処理において集計したログに基づいて決定する。
例えば、図16に示す如く、返信カウンタ(リクエストノードにノード情報を送信したクエリの数(回))と、当該クエリに含まれる要求数(個)を集計し、これを解析して例えば要求数が「5」をピークにして要求数が「8」で平坦化しているので、複製するレプリカリストの数を「8」などと決定する。
そして、複製対象のノード装置が複製対象とされているコンテンツのレプリカリストを所持しているか否かを判定し(ステップS41)、所持していないと判定した場合(ステップS41:No)には、ステップS40にて決定した必要個数分のレプリカリストを自己のインデックスから抽出する(ステップS42)。
図17を用いて具体的に説明する。図17(A)はルートノードの記憶部11に記憶されたインデックスと、複製処理前の複製対象のノード装置としてのノード装置1cの記憶部11に記憶されたインデックスの説明図である。
複製対象とされているコンテンツがコンテンツID「20000000」である場合に、ステップS40において、例えば複製するレプリカリストの数を「5」と決定した場合には、ステップS42の処理において図17に示すルートノード自身が所持するインデックスを参照して、同図におけるコンテンツID「20000000」のレプリカリストのうち、例えば、上から5つを抽出する。
他方、複製対象のノード装置が複製対象とされているコンテンツのレプリカリストを所持していると判定した場合(ステップS41:No)には、制御部11は検知手段として機能し、複製対象のノード装置が所持しないノード情報を、必要個数分から複製対象のノード情報が所持しているレプリカリストの数を減算した数だけ抽出する(ステップS43)。
図18を用いて具体的に説明する。図18(A)はルートノードの記憶部11に記憶されたインデックスと、複製処理前の複製対象のノード装置としてのキャッシュノードCaの記憶部11に記憶されたインデックスの説明図である。
複製対象とされているコンテンツがコンテンツID「20000000」である場合に、ステップS40において、例えば複製するレプリカリストの数を「5」と決定した場合には、ステップS42の処理において、複製対象のノード装置であるキャッシュノードCaが複製対象とされているコンテンツID「20000000」のレプリカリストを所持していると判定している。これは、複製対象のノード装置を、当該装置が送信してきたクエリに含まれる送信元のノード装置のIPアドレス(装置情報)にて特定し、自己のインデックスを参照して、「パブリッシュを送ってきたノード装置のIPアドレス(装置情報)」を含むレプリカリストは複製対象のレプリカリストから除外する。既にキャッシュノードCaが所持するレプリカリストを除くためである。
つまり、図18に示す例によれば、ルートノードは、インデックスを参照して、同図におけるコンテンツID「20000000」のレプリカリストのうち、複製対象のノード装置であるキャッシュノードCaを特定するIPアドレス「44.44.44.44」を含むレプリカリストを除外し、それ以外の例えば、上から5つを抽出する。
続いて、フローチャートに戻り、制御部11は複製用ノード情報送信手段として機能し、ステップS42及びステップS43にて抽出したレプリカリストを(複製用ノード情報として)含んで複製対象のノード装置に「レプリカリストの複製要求」メッセージとして送信し(ステップS44)処理を終了する。なお、このメッセージを受信した複製対象のノード装置では図8のステップS1にて当該メッセージを解析し、ステップS5に示すレプリカリスト複製処理を実行することになる。
上述した説明では、複製するレプリカリストの数を決定する例として、図16を用いて返信カウンタと当該クエリに含まれる要求数(個)を集計し、これを解析することにより、複製するレプリカリストの数を決定する例を挙げたが、これに限らず、当該処理を実行するキャッシュノード或いはルートノードが所持するレプリカリストの数に応じて、複製対象となるノード装置に対して複製するレプリカリストの数を予め決めておいてもよい。
すなわち、当該処理を実行するキャッシュノード或いはルートノードがある程度多くのレプリカリストを持っている場合には、複製対象とされているコンテンツのレプリカリストであって、複製対象のノード装置が所持しないレプリカリストを所定の数(例えば5個)だけ複製するよう構成してもよい。そして、複製を行っても、複製対象のノード装置から送られてくるクエリが減少しない場合は、さらに所定の数(例えば5個)の複製を行う。つまり、複製するレプリカリストの数を決定してしまうのではなく、一度複製を行い、その様子を見てから再度複製を行うよう構成することも可能である。
また、当該処理を実行するキャッシュノード或いはルートノードが所持するレプリカリストの数が少ない場合(例えば10個以下)には、所持する全てのレプリカリストを下流に送ってもよい。なお、これらは一例であって、集計したログに基づいて多様に決定できる。
[3−4.レプリカリスト複製処理]
続いて、図8のフローチャートのステップS5における「レプリカリスト複製処理」について図17乃至図19を用いて説明する。
続いて、図8のフローチャートのステップS5における「レプリカリスト複製処理」について図17乃至図19を用いて説明する。
レプリカリスト複製処理は、前述したステップS44の処理において送信された「レプリカリストの複製要求」メッセージを受信した複製対象のノード装置(制御部11は複製用ノード情報受信手段として機能)が、図8におけるステップS1にてメッセージを解析し、ステップS5において実行される処理である。なお、レプリカリスト複製処理を実行する複製対象のノード装置は、上記「3−3.ノード情報要求処理」を実行したノード装置に対してクエリを送信(要求情報送信手段)したノード装置である。従って、当該処理を実行する複製対象のノード装置は、本発明における要求情報送信ノード装置として機能する。
図19は「レプリカリストの複製要求」メッセージを受信した複製対象のノード装置の制御部11に記憶されたプログラム(複製用ノード情報記憶プログラムを含む)が当該制御部11により実行されることにより行われる処理を示すフローチャートである。
まず、自身の記憶部11に記憶したインデックスを参照して、複製対象となるコンテンツのレプリカリストを所持しているか否かを判定する(ステップS51)。
例えば、図17(A)に示すノード装置1cの記憶部11には、複製対象となるコンテンツID「20000000」のレプリカリストは存在しない。
このように、複製対象となるコンテンツのレプリカリストを所持しない判定(ステップS51:No)すると、複製対象となるコンテンツのレプリカリストを記憶部11のインデックスに生成して登録(ステップS52)して処理を終了する。図17(B)に示す如く、ノード装置1cによって当該処理が行なわれた場合には、ノード装置1cの記憶部11のインデックスに、複製対象となるコンテンツID「20000000」のレプリカリストを生成する。つまり、ルートノードから受信した「レプリカリストの複製要求」メッセージに含まれるレプリカリストに基づいて、複製対象となるコンテンツID「20000000」のレプリカリストを生成する。なお、当該処理によって登録されたレプリカリストは複製による登録であるため、複製フラグを「1」として上述した[3−2.コンテンツ登録処理]によって正規に登録されたレプリカリストと区別して記憶する(記憶制御手段)。
他方、ステップS51において、複製対象となるコンテンツのレプリカリストを所持すると判定(ステップS51:Yes)すると、複製対象となるコンテンツのレプリカリストを記憶部11のインデックスに追加して登録(ステップS53)して処理を終了する。図18(B)に示す如く、キャッシュノードCaによって当該処理が行なわれている場合には、キャッシュノードCaの記憶部11のインデックスにある複製対象となるコンテンツID「20000000」のレプリカリストに、ルートノードから受信した「レプリカリストの複製要求」メッセージに含まれるレプリカリストを追加する。そして、上記同様、当該処理によって登録されたレプリカリストは複製による登録であるため、複製フラグを「1」として上述した[3−2.コンテンツ登録処理]によって正規に登録されたレプリカリストと区別して記憶する(記憶制御手段)。
[3−5.レプリカリスト消去処理]
次に、上述した手法に従って複製されたレプリカリストの消去手法について説明する。
次に、上述した手法に従って複製されたレプリカリストの消去手法について説明する。
クエリの集中(上述したクエリ数カウンタの増加)は、ある短期間であると考えられる。例えば、ノード装置を有する一般ユーザがコンテンツの配信を所望する頻度が高い時間帯(例えば、夕方や休日など)にクエリが集中するとも考えられる。
このようなクエリの集中は、ログを集計することにより解析することができる。例えば、図20は、平日の各時刻に対するクエリ数カウンタ(回)の増減を示すグラフである。
また、新しいコンテンツの発売日等に、コンテンツ配信システムSに参加するコンテンツ配信業者の所有するノード装置によって当該コンテンツが公開されたとき等にクエリが集中し、時間が経過するに従って次第に人気が落ちていくと考えられる。
このような場合には、上記手法に従って複製したレプリカリストの使用頻度が減少すると考えられる。
ところで、先の[3−2.コンテンツ登録処理]にて説明したように、コンテンツノードから正規にパブリッシュを受信して登録されたレプリカリストは、コンテンツノードがコンテンツの公開を止める際にも、「コンテンツがなくなりました」というメッセージが上記登録時の手順と同様にしてルートノードまで転送されるため、ルートノードや各キャッシュノードは自己のインデックスからレプリカリストを消去することができる。
しかし、複製したレプリカリストは、クエリを制御しきれなくなったノード装置が、自己の下流のノード装置に半ば強制的に複製し登録させたものであるため、正規に登録されたレプリカリストのように、「コンテンツがなくなりました」というメッセージは送信されないため、実際にコンテンツがなくなったとしても気づくことができない。
従って、ノード装置は記憶部12に記憶したインデックスに含まれる複製したレプリカリストが、削除すべき状況であるか否かを判定し、削除すべきであると判定した場合には、当該複製したレプリカリストを削除するよう構成する(記憶制御手段)。
複製したレプリカリストを削除すべき状況とは、例えば、レプリカリストを複製する際に、各レプリカリストに生存時間を示す生存時間情報を付加しておき、制御部11が当該生存時間が経過したと判断するとレプリカリストを削除するよう構成する。この場合、生存時間情報を含んだ「レプリカリストの複製要求」メッセージを上流側が送信しても良いし、「レプリカリストの複製要求」メッセージを受信したノード装置が、レプリカリストを複製する際に、各レプリカリストに所定時間、例えば1時間である生存時間を示す生存時間情報を付加して記憶してもよい。
また、他の例として、記憶部12におけるインデックスを記憶する記憶容量を予め決めておき、このうち空き記憶容量を監視するよう構成してもよい。すなわち、例えば、正規登録の増大等により空き記憶容量が所定値以下となった場合には、複製したレプリカリストを削除するよう構成すればよい。この際には、複製フラグが「1」であるものだけ消せばよい。一度に全部削除してもよいが、古いものから段階的に削除してもよい。
また、他の例として、記憶部12に記憶したインデックスのうち複製したレプリカリストの稼動状況を検知して当該稼動状況に基づいて削除するよう構成してもよい。例えば、使用頻度を集計し、当該使用頻度がある一定値以下となったら、削除するよう構成してもよい。
時間に基づいて削除する場合であっても、時間が、どのくらい記憶するかを示す期間、例えば、「1日間(24時間)」や「1時間30分間」等、であっても良いし、時間が、いつまで記憶するかの期日、例えば「午前2時まで」等、であってもよい。そして、上記したように、生存期間または生存期日を含んだ「レプリカリストの複製要求」メッセージを上流側が送信しても良いし、「レプリカリストの複製要求」メッセージを受信したノード装置が、レプリカリストを複製する際に、各レプリカリストに生存期間または生存期日を付加して記憶してもよい。
以上説明したように、本実施形態によれば、クエリを受信する際に、当該クエリを送信してくる各ノード装置毎に、クエリの送信数等のログを集計することにより、ノード装置にクエリが集中した場合には、ログに基づいて、例えばクエリの送信数の多いノード装置に対してノード情報が含まれるレプリカリストを送信することができるので、特定のノード装置に対して過大な処理負担が課されることを防止することができる。
なお、上述した実施形態では、説明の簡単のためクエリに含まれるコンテンツIDに対応するレプリカリストごと複製するよう構成したが、これに限らず、クエリに含まれるコンテンツIDに対応するレプリカリストからノード情報だけを抽出して複製用ノード情報として送信しても差し支えない。クエリはあるコンテンツの所在を問い合わせる要求情報であるため、この所在を示すノード情報だけを下流のノード装置に複製してやれば、下流のノード装置がリクエストノードからのクエリに応えることができるからである。なお、ノード情報は、コンテンツノードの所在を示すIPアドレスとして記載したが、これに限らず、コンテンツノードのメールアドレス等、コンテンツノードにアクセスするための宛先がわかればよい。
さらに、コンテンツID及びノード情報を含むパブリッシュを受信して正規にレプリカリストを登録する際には、当該パブリッシュを送信してきたノード装置のIPアドレス等の装置情報と共に登録するよう構成したので、自身にクエリを送信可能な下流のノード装置の所持するレプリカリストを容易に把握することができ、複製用のレプリカリストを抽出する際に、複製対象のノード装置の所持しないレプリカリストを容易に検知でき、これらから複製用のレプリカリストを抽出することが可能になる。また、上記説明において、パブリッシュを送ってきたノード装置を特定するための装置情報として、当該ノード装置のIPアドレスを使用したが、これに限らず、コンテンツを正規に登録する際に、パブリッシュの送信元のノード装置がわかればよく、例えば工場出荷時に各装置に個別に設けられた製造番号を装置情報として用いてもよいし、各装置を一意に識別するための固有の識別番号を新たに設けてもよい。その他の手法として、複製対象のノード装置が所持するレプリカリストが特定できればよいので、複製対象のノード装置にアクセスして何れのレプリカリストを所持しているかを問い合わせることにより、自己の所持するレプリカリストのうち、複製対象のノード装置が所持しないレプリカリストを検知するよう構成してもよい。
また、記憶部12のインデックスにレプリカリストを登録する際には、複製フラグにより、正規登録か複製による登録かを区別できるよう構成したので、複製したレプリカリストを削除する際に正規登録と容易に区別することができる。
1 ノード装置
8 ネットワーク
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
S コンテンツ配信システム
Ca Cb キャッシュノード
8 ネットワーク
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
S コンテンツ配信システム
Ca Cb キャッシュノード
Claims (23)
- ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置において、
前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、
前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求するための要求情報であって、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む前記要求情報を前記複数のノード装置に含まれる前記ノード装置から受信する要求情報受信手段と、
前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索する検索手段と、
検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記複数のノード装置に含まれるノード装置であって前記要求情報の送信元である前記ノード装置に、少なくとも前記要求数分の前記ノード情報を送信するノード情報送信手段と、
前記要求情報受信手段が受信した前記要求情報を当該一のノード装置に対して送信した前記ノード装置毎に、ログを集計するログ集計手段と、
集計した前記ログに基づいて、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に前記情報記憶ノード装置を示すノード情報を複製用ノード情報として送信する複製用ノード情報送信手段と、
を有することを特徴とするノード装置。 - 請求項1に記載のノード装置において、
前記ノード情報送信手段は、前記検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であっても、当該一のノード装置自身が前記特定共用情報の管理元である管理ノード装置である場合には、発見された全ての前記ノード情報を前記要求情報の送信元であるノード装置に送信することを特徴とするノード装置。 - 請求項1又は請求項2に記載のノード装置において、
前記記憶手段に記憶されたノード情報のうち、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を検知する検知手段を有し、
前記複製用ノード情報送信手段は、前記特定共用情報を記憶する情報記憶ノード装置に対応する前記ノード情報であって、前記検知手段によって検知された前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を、複製用ノード情報として、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に送信することを特徴とするノード装置。 - 請求項1乃至請求項3のいずれか一項に記載のノード装置において、
前記記憶手段は、前記ノード情報及び前記識別情報と、当該ノード情報及び当該識別情報とを当該一のノード装置に対して送信した前記ノード装置を特定するための装置情報と、を対応付けて記憶し、
前記検知手段は、前記ノード装置から前記要求情報を前記要求情報受信手段が受信すると、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、当該要求情報を当該一のノード装置に対して送信した前記ノード装置の装置情報に対応しないノード情報を、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報として検知することを特徴とするノード装置。 - 請求項1乃至請求項4のいずれか一項に記載のノード装置において、
前記ログは、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から前記要求情報を受信した受信回数、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から送信された前記要求情報に応じて前記ノード情報を送信した送信回数、又は各前記要求情報にかかる要求数、又は前記一のノード装置自身の処理能力のうち、少なくとも何れか1つに基づいて定められることを特徴とするノード装置。 - ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置において、
前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段と、
前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求すべく、前記特定共用情報に対応する前記識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む要求情報を、前記複数のノード装置に含まれる前記ノード装置に送信する要求情報送信手段と、
前記要求情報送信手段が要求情報を送信した前記ノード装置から、前記情報記憶ノード装置を示すノード情報を複製用ノード情報として受信する複製用ノード情報受信手段と、
受信した前記複製用ノード情報を、前記記憶手段に記憶させる記憶制御手段と、
を有することを特徴とするノード装置。 - 請求項6に記載のノード装置において、
前記記憶制御手段は、前記複製用ノード情報を、前記記憶手段に記憶された前記ノード情報と区別して記憶することを特徴とするノード装置。 - 請求項6又は請求項7に記載のノード装置において、
前記記憶制御手段は、前記複製用ノード情報を削除すべき状況か否かを判定し、当該削除すべき状況であると判定すると、当該複製用ノード情報を前記記憶手段から削除することを特徴とするノード装置。 - 請求項8に記載のノード装置において、
前記記憶制御手段は、時間に基づいて当該複製用ノード情報を削除すべき状況か否かを判定することを特徴とするノード装置。 - 請求項8又は請求項9に記載のノード装置において、
前記記憶制御手段は、前記記憶手段の空き記憶容量に基づいて当該複製用ノード情報を削除すべき状況か否かを判定することを特徴とするノード装置。 - 請求項8乃至請求項10の何れか一項に記載のノード装置において、
前記記憶制御手段は、前記複製用ノード情報の稼動状況を検知し、当該稼動状況に基づいて当該複製用ノード情報を削除すべき状況か否かを判定することを特徴とするノード装置。 - ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置に含まれるコンピュータを、
前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段、
前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求するための要求情報であって、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む前記要求情報を前記複数のノード装置に含まれる前記ノード装置から受信する要求情報受信手段、
前記記憶手段にて記憶した情報を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を検索する検索手段
検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記複数のノード装置に含まれるノード装置であって前記要求情報の送信元である前記ノード装置に、少なくとも前記要求数分の前記ノード情報を送信するノード情報送信手段、
前記要求情報受信手段により受信した前記要求情報を当該一のノード装置に対して送信した前記ノード装置毎に、ログを集計するログ集計手段及び
集計した前記ログに基づいて、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に前記情報記憶ノード装置を示すノード情報を複製用ノード情報として送信する複製用ノード情報送信手段と、
を有することを特徴とするノード情報複製プログラム。 - 請求項12に記載のノード情報複製プログラムにおいて、
前記ノード情報送信手段を、前記検索の結果、前記要求数分の前記ノード情報が発見されなかった場合であっても、当該一のノード装置自身が前記特定共用情報の管理元である管理ノード装置である場合には、発見された全ての前記ノード情報を前記要求情報の送信元であるノード装置に送信するよう機能させることを特徴とするノード情報複製プログラム。 - 請求項12又は請求項13に記載のノード情報複製プログラムにおいて、
前記コンピュータを、前記記憶手段によって記憶されたノード情報のうち、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を検知する検知手段として更に機能させ、かつ、
前記複製用ノード情報送信手段を、前記特定共用情報を記憶する情報記憶ノード装置に対応する前記ノード情報であって、前記検知手段によって検知された前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報を、複製用ノード情報として、前記要求情報を当該一のノード装置に対して送信した前記ノード装置に送信するよう機能させることを特徴とするノード情報複製プログラム。 - 請求項12乃至請求項14のいずれか一項に記載のノード情報複製プログラムにおいて、
前記記憶手段を、前記ノード情報及び前記識別情報と、当該ノード情報及び当該識別情報とを当該一のノード装置に対して送信した前記ノード装置を特定するための装置情報と、を対応付けて記憶するよう機能させ、かつ、
前記検知手段を、前記ノード装置から前記要求情報を前記要求情報受信手段が受信すると、前記記憶手段を参照して当該受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、当該要求情報を当該一のノード装置に対して送信した前記ノード装置の装置情報に対応しないノード情報を、前記要求情報を当該一のノード装置に対して送信した前記ノード装置が保持しない前記ノード情報として検知するよう機能させることを特徴とするノード情報複製プログラム。 - 請求項12乃至請求項15のいずれか一項に記載のノード情報複製プログラムにおいて、
前記ログは、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から前記要求情報を受信した受信回数、前記要求情報を当該一のノード装置に対して送信した前記ノード装置から送信された前記要求情報に応じて前記ノード情報を送信した送信回数、又は各前記要求情報にかかる要求数、又は前記一のノード装置自身の処理能力のうち、少なくとも何れか1つに基づいて定められることを特徴とするノード情報複製プログラム。 - ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおける一の前記ノード装置に含まれるコンピュータを、
前記複数のノード装置に含まれるノード装置であって、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶手段、
前記共用情報のうち特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求すべく、前記特定共用情報に対応する前記識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む要求情報を、前記複数のノード装置に含まれる前記ノード装置に送信する要求情報送信手段、
前記要求情報送信手段が要求情報を送信した前記ノード装置から、前記情報記憶ノード装置を示すノード情報を複製用ノード情報として受信する複製用ノード情報受信手段及び
受信した前記複製用ノード情報を、前記記憶手段に記憶させる記憶制御手段として機能させることを特徴とする複製用ノード情報記憶プログラム。 - 請求項17に記載の複製用ノード情報記憶プログラムにおいて、
前記記憶制御手段を、前記複製用ノード情報を、前記記憶手段に記憶された前記ノード情報と区別して記憶するよう機能させることを特徴とする複製用ノード情報記憶プログラム。 - 請求項17又は請求項18に記載の複製用ノード情報記憶プログラムにおいて、
前記記憶制御手段を、前記複製用ノード情報を削除すべき状況か否かを判定し、当該削除すべき状況であると判定すると、当該複製用ノード情報を前記記憶手段から削除するよう機能させることを特徴とする複製用ノード情報記憶プログラム。 - 請求項19に記載の複製用ノード情報記憶プログラムにおいて、
前記記憶制御手段を、時間に基づいて当該複製用ノード情報を削除すべき状況か否かを判定するよう機能させることを特徴とする複製用ノード情報記憶プログラム。 - 請求項19又は請求項20に記載の複製用ノード情報記憶プログラムにおいて、
前記記憶制御手段を、前記記憶手段の空き記憶容量に基づいて当該複製用ノード情報を削除すべき状況か否かを判定するよう機能させることを特徴とする複製用ノード情報記憶プログラム。 - 請求項19乃至請求項21の何れか一項に記載の複製用ノード情報記憶プログラムにおいて、
前記記憶制御手段は、前記複製用ノード情報の稼動状況を検知し、当該稼動状況に基づいて当該複製用ノード情報を削除すべき状況か否かを判定するよう機能させることを特徴とする複製用ノード情報記憶プログラム。 - ネットワークを構築して互いに接続された複数のノード装置を備えた情報配信システムにおけるノード情報複製方法において、
前記複数のノード装置に含まれる少なくとも1以上の要求情報送信ノード装置が、前記複数のノード装置間で共用されるべき共用情報を記憶する情報記憶ノード装置を示すノード情報であって、特定の共用情報である特定共用情報を記憶する複数の情報記憶ノード装置に対応する前記ノード情報の送信を要求すべく、前記特定共用情報に対応する固有の識別情報と、前記ノード情報の要求数を示す要求数情報と、を含む要求情報を、前記複数のノード装置に含まれる複製要求ノード装置に送信する要求情報送信工程と、
前記複製要求ノード装置が、何れかの前記要求情報送信ノード装置から前記要求情報を受信する要求情報受信工程と、
前記複製要求ノード装置が、前記情報記憶ノード装置を示すノード情報と、各前記共用情報に対応する固有の識別情報と、をそれぞれ対応付けて記憶する記憶工程と、
前記複製要求ノード装置が、前記要求情報受信工程にて受信した要求情報に含まれる前記識別情報に対応する前記ノード情報であって、前記要求情報に含まれる要求数情報で示される要求数分のノード情報を前記記憶工程にて記憶した情報より検索する検索工程と、
前記複製要求ノード装置が、前記検索工程による検索の結果、前記要求数分以上の前記ノード情報が発見された場合には、前記要求情報送信ノード装置のうち前記要求情報の送信元であるノード装置に、少なくとも前記要求数分の前記ノード情報を送信するノード情報送信工程と、
前記複製要求ノード装置が、前記要求情報受信工程によって受信した前記要求情報を当該一のノード装置に対して送信した前記要求情報送信ノード装置毎に、ログを集計するログ集計工程と、
前記複製要求ノード装置が、集計した前記ログに基づいて、前記要求情報を当該一のノード装置に対して送信した一の前記要求情報送信ノード装置に前記情報記憶ノード装置を示すノード情報を複製用ノード情報として送信する複製用ノード情報送信工程と、
を有することを特徴とするノード情報複製方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005079987A JP2006260430A (ja) | 2005-03-18 | 2005-03-18 | ノード装置、ノード情報複製プログラム、複製用ノード情報記憶プログラム及びノード情報複製方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005079987A JP2006260430A (ja) | 2005-03-18 | 2005-03-18 | ノード装置、ノード情報複製プログラム、複製用ノード情報記憶プログラム及びノード情報複製方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006260430A true JP2006260430A (ja) | 2006-09-28 |
Family
ID=37099557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005079987A Withdrawn JP2006260430A (ja) | 2005-03-18 | 2005-03-18 | ノード装置、ノード情報複製プログラム、複製用ノード情報記憶プログラム及びノード情報複製方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006260430A (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008041422A1 (fr) * | 2006-09-29 | 2008-04-10 | Brother Kogyo Kabushiki Kaisha | Terminal de système de distribution de contenu, son procédé de traitement d'information et programme contenant un support d'enregistrement |
JP2009017381A (ja) * | 2007-07-06 | 2009-01-22 | Brother Ind Ltd | 情報配信システム、同システムに用いる端末装置及び情報処理プログラム、並びに情報処理方法 |
JP2009232272A (ja) * | 2008-03-24 | 2009-10-08 | Brother Ind Ltd | コンテンツ分散保存システム、コンテンツ再生方法、ノード装置、管理装置、ノード処理プログラム、及び管理処理プログラム |
JP2010509692A (ja) * | 2006-11-14 | 2010-03-25 | シーメンス アクチエンゲゼルシヤフト | ピアツーピア・オーバーレイ・ネットワークにおける負荷分散のための方法 |
JP2010086271A (ja) * | 2008-09-30 | 2010-04-15 | Fujitsu Ltd | 情報処理装置、情報処理システム、方法、およびプログラム |
JP2010182301A (ja) * | 2009-01-22 | 2010-08-19 | Ntt Docomo Inc | 自己組織型分散オーバーレイ・ネットワークにおいてオブジェクトへの参照を分散させる方法、コンピュータプログラム、及びノード、並びに自己組織型分散オーバーレイ・ネットワーク |
JP2011133985A (ja) * | 2009-12-22 | 2011-07-07 | Fujitsu Ltd | 構成情報管理システム、構成情報管理方法、分散情報管理装置及び分散情報管理プログラム |
JP2013210825A (ja) * | 2012-03-30 | 2013-10-10 | Brother Ind Ltd | 通信システム、情報処理装置、プログラム及び情報処理方法 |
CN113157709A (zh) * | 2021-01-29 | 2021-07-23 | 百果园技术(新加坡)有限公司 | 分布式***节点动态变更方法、装置、设备及存储介质 |
-
2005
- 2005-03-18 JP JP2005079987A patent/JP2006260430A/ja not_active Withdrawn
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008041422A1 (fr) * | 2006-09-29 | 2008-04-10 | Brother Kogyo Kabushiki Kaisha | Terminal de système de distribution de contenu, son procédé de traitement d'information et programme contenant un support d'enregistrement |
JP2010509692A (ja) * | 2006-11-14 | 2010-03-25 | シーメンス アクチエンゲゼルシヤフト | ピアツーピア・オーバーレイ・ネットワークにおける負荷分散のための方法 |
JP2009017381A (ja) * | 2007-07-06 | 2009-01-22 | Brother Ind Ltd | 情報配信システム、同システムに用いる端末装置及び情報処理プログラム、並びに情報処理方法 |
US8762481B2 (en) | 2007-07-06 | 2014-06-24 | Brother Kogyo Kabushiki Kaisha | Information distribution system, terminal apparatus used in same system, and recording medium on which information processing program is recorded so as to be computer readable, as well as information processing method |
JP2009232272A (ja) * | 2008-03-24 | 2009-10-08 | Brother Ind Ltd | コンテンツ分散保存システム、コンテンツ再生方法、ノード装置、管理装置、ノード処理プログラム、及び管理処理プログラム |
JP2010086271A (ja) * | 2008-09-30 | 2010-04-15 | Fujitsu Ltd | 情報処理装置、情報処理システム、方法、およびプログラム |
JP2010182301A (ja) * | 2009-01-22 | 2010-08-19 | Ntt Docomo Inc | 自己組織型分散オーバーレイ・ネットワークにおいてオブジェクトへの参照を分散させる方法、コンピュータプログラム、及びノード、並びに自己組織型分散オーバーレイ・ネットワーク |
JP2011133985A (ja) * | 2009-12-22 | 2011-07-07 | Fujitsu Ltd | 構成情報管理システム、構成情報管理方法、分散情報管理装置及び分散情報管理プログラム |
JP2013210825A (ja) * | 2012-03-30 | 2013-10-10 | Brother Ind Ltd | 通信システム、情報処理装置、プログラム及び情報処理方法 |
CN113157709A (zh) * | 2021-01-29 | 2021-07-23 | 百果园技术(新加坡)有限公司 | 分布式***节点动态变更方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4599581B2 (ja) | 情報配信システム、配信要求プログラム、転送プログラム及び配信プログラム等 | |
JP2006260430A (ja) | ノード装置、ノード情報複製プログラム、複製用ノード情報記憶プログラム及びノード情報複製方法 | |
JP4418897B2 (ja) | 情報配信システム、情報更新プログラム、及び情報更新方法等 | |
US8676855B2 (en) | Distributed storage system, management apparatus, node apparatus, recording medium on which node program is recorded, page information acquisition method, recording medium on which page information sending program is recorded, and page information sending method | |
WO2006075424A1 (ja) | 情報配信システム、配信要求プログラム、転送プログラム、配信プログラム等 | |
JP2008234445A (ja) | コンテンツ分散保存システム、複製データ取得方法、ノード装置、及びノード処理プログラム | |
US20080270421A1 (en) | Information distribution system, information processing device and memory medium | |
JP5719323B2 (ja) | 分散処理システム、ディスパッチャおよび分散処理管理装置 | |
US7970856B2 (en) | System and method for managing and distributing assets over a network | |
JP4670042B2 (ja) | ノード装置、ノード装置情報更新方法、及びノード装置情報更新プログラム | |
WO2006038433A1 (ja) | ノード装置、共用情報更新方法、共用情報保存方法、プログラム | |
CN110866046B (zh) | 一种可扩展的分布式查询方法及装置 | |
JP2009193250A (ja) | 分散ディレクトリサーバ、分散ディレクトリシステム、分散ディレクトリ方法、およびプログラム | |
JP4670043B2 (ja) | 情報配信システム、配信要求プログラム、転送プログラム、配信プログラム等 | |
CN111046065A (zh) | 可扩展的高性能分布式查询处理方法及装置 | |
JP2007058597A (ja) | 情報配信システム、情報配信方法、情報配信システムに含まれるノード装置および情報処理プログラム | |
Steiner et al. | Evaluating and improving the content access in KAD | |
JP5168334B2 (ja) | 情報生成装置、情報生成方法及び情報生成プログラム | |
JP5375272B2 (ja) | ノード装置、ノード処理プログラム、情報通信システム及びコンテンツデータ管理方法 | |
JP2010231576A (ja) | ノード装置、ノード処理プログラム及びコンテンツ保存方法 | |
JP5458629B2 (ja) | ノード装置、ノード処理プログラム及び検索方法 | |
JP2010066930A (ja) | コンテンツ分散保存システム、コンテンツ保存方法、ノード装置、及びノード処理プログラム | |
JP5257001B2 (ja) | ノード装置、ノード処理プログラム及び利用状況管理方法 | |
JP2006285328A (ja) | ノード装置、情報配信システム、情報利用方法および情報利用プログラム | |
JP5157770B2 (ja) | ノード装置、プログラム及び保存指示方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080603 |