JP2010028551A - コンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びアドレス情報変更通知方法 - Google Patents
コンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びアドレス情報変更通知方法 Download PDFInfo
- Publication number
- JP2010028551A JP2010028551A JP2008188825A JP2008188825A JP2010028551A JP 2010028551 A JP2010028551 A JP 2010028551A JP 2008188825 A JP2008188825 A JP 2008188825A JP 2008188825 A JP2008188825 A JP 2008188825A JP 2010028551 A JP2010028551 A JP 2010028551A
- Authority
- JP
- Japan
- Prior art keywords
- node
- address
- node device
- address information
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
- G06F16/1837—Management specially adapted to peer-to-peer storage networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5076—Update or notification mechanisms, e.g. DynDNS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1053—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】IPアドレスが変更されても、各ノード装置間の情報伝達に支障が来たすことを防止することが可能なコンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びアドレス情報変更通知方法を提供する。
【解決手段】ノード装置は、自己のアドレス情報の変更を検出した場合には、アドレス情報が記憶されているノード装置のうちから少なくとも一つのノード装置を選定し、当該ノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信し、当該アドレス変更通知メッセージを受信するノード装置は、前記受信されたアドレス変更通知メッセージに含まれるノード識別情報が過去に記憶されており、当該記憶されているノード識別情報に対応付けられて記憶されているアドレス情報が、前記メッセージに含まれるアドレス情報と異なる場合には、当該記憶されているアドレス情報に代えて当該メッセージに含まれるアドレス情報に更新するように構成した。
【選択図】図6
【解決手段】ノード装置は、自己のアドレス情報の変更を検出した場合には、アドレス情報が記憶されているノード装置のうちから少なくとも一つのノード装置を選定し、当該ノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信し、当該アドレス変更通知メッセージを受信するノード装置は、前記受信されたアドレス変更通知メッセージに含まれるノード識別情報が過去に記憶されており、当該記憶されているノード識別情報に対応付けられて記憶されているアドレス情報が、前記メッセージに含まれるアドレス情報と異なる場合には、当該記憶されているアドレス情報に代えて当該メッセージに含まれるアドレス情報に更新するように構成した。
【選択図】図6
Description
本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))型の通信システムの技術分野に関する。
この種のピアツーピア型の通信システムにおいて、複数のコンテンツデータ(映画及び音楽等のコンテンツのデータ)の複製データ(以下、「レプリカ」という)を複数のノード装置に分散して保存(配置)させ、IPアドレス(Internet Protocol)が割り当てられている各ノード装置間でレプリカを授受可能としたコンテンツ分散保存システムが知られている。このように分散保存されたレプリカの所在は、例えば特許文献1に開示されるような分散ハッシュテーブル(以下、DHT(Distributed Hash Table)という)を利用して効率良く検索可能になっている。
特開2006−197400号公報
ところで、各ノード装置に割り当てられているIPアドレスは、固定でないこと場合がある。例えば、Internet Protocol version 4(以下、「IPv4」という)の場合、一般に、DHCP(Dynamic Host Configuration Protocol)サーバによりIPアドレスが割り当てられるが、当該IPアドレスにリース期間(有効期間)が設定されていると、当該期間後にIPアドレスが変わることがある。また、Internet Protocol version 6(以下、「IPv6」という)の場合、DHCPサーバがなくても、ルータのステートレス自動設定によりIPアドレスを割り当てることができるが、当該IPアドレスを使用続けるとセキュリティ上の問題があるので、定期的に変更される一時アドレス(RFC3041)が使用される。
しかしながら、このようにIPアドレスが変更されると、各ノード装置間の情報伝達、例えば、上記DHTを用いたメッセージのルーティング等に支障を来たす可能性がある。
本発明は、以上の点等に鑑みてなされたものであり、IPアドレスが変更されても、各ノード装置間の情報伝達に支障が来たすことを防止することが可能なコンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びアドレス情報変更通知方法を提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、ネットワークに接続された複数のノード装置の参加により構成されるコンテンツ分散保存システムであり、複数のコンテンツの複製データが複数のノード装置に分散して保存され、各ノード装置間で前記複製データを授受可能としたコンテンツ分散保存システムにおいて、前記ノード装置は、前記コンテンツ分散保存システムに参加している複数のノード装置であって当該コンテンツ分散保存システムに参加している全ノード装置の数より少ない数のノード装置のアドレス情報及びノード識別情報を記憶する記憶手段と、自己のアドレス情報の変更を検出するアドレス変更検出手段と、前記アドレス情報の変更が検出された場合には、前記アドレス情報が記憶されているノード装置のうちから少なくとも一つのノード装置を選定するノード選定手段と、前記選定されたノード装置のアドレス情報を用いて当該ノード装置に前記ネットワークを介して接続し当該ノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信するアドレス変更通知手段と、を備え、前記アドレス変更通知メッセージを受信するノード装置は、前記コンテンツ分散保存システムに参加している複数のノード装置であって当該コンテンツ分散保存システムに参加している全ノード装置の数より少ない数のノード装置のアドレス情報及びノード識別情報を記憶する記憶手段と、前記受信されたアドレス変更通知メッセージに含まれるノード識別情報が過去に記憶されており、当該記憶されているノード識別情報に対応付けられて記憶されているアドレス情報が、前記メッセージに含まれるアドレス情報と異なる場合には、当該記憶されているアドレス情報に代えて当該メッセージに含まれるアドレス情報に更新するアドレス情報更新手段と、を備えることを特徴とする。
この発明によれば、ノード装置は、自己のアドレス情報の変更を検出した場合には、アドレス情報が記憶されているノード装置のうちから少なくとも一つのノード装置を選定し、当該ノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信し、当該アドレス変更通知メッセージを受信するノード装置は、前記受信されたアドレス変更通知メッセージに含まれるノード識別情報が過去に記憶されており、当該記憶されているノード識別情報に対応付けられて記憶されているアドレス情報が、前記メッセージに含まれるアドレス情報と異なる場合には、当該記憶されているアドレス情報に代えて当該メッセージに含まれるアドレス情報に更新するように構成したので、アドレス情報が変更されても、各ノード装置間の情報伝達に支障が来たすことを防止することができる。
請求項2に記載の発明は、請求項1に記載のコンテンツ分散保存システムにおいて、前記記憶手段には、メッセージの送信先候補となる前記複数のノード装置であって前記コンテンツ分散保存システムに参加している全ノード装置の数より少ない数のノード装置のアドレス情報及びノード識別情報が登録された送信先テーブルが記憶されており、前記ノード選定手段は、前記送信先テーブルにアドレス情報が登録されているノード装置を選定し、前記アドレス変更通知手段は、前記選定されたノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信することを特徴とする。
この発明によれば、送信先テーブルを利用してアドレス変更通知メッセージを送信することができる。
請求項3に記載の発明は、請求項2に記載のコンテンツ分散保存システムにおいて、前記アドレス変更通知メッセージを受信したノード装置は、前記受信されたアドレス変更通知メッセージに含まれるノード識別情報と、前記送信先テーブルに登録された他のノード装置のノード識別情報との比較結果に基づいて前記送信先テーブルから一つのノード装置を選定し、当該選定したノード装置のアドレス情報を用いて当該ノード装置に前記ネットワークを介して接続し当該ノード装置に対して、前記アドレス変更通知メッセージを転送するメッセージ転送手段を更に備えることを特徴とする。
この発明によれば、送信先テーブルを利用してアドレス変更通知メッセージを送信することができる。
請求項4に記載の発明は、請求項2に記載のコンテンツ分散保存システムにおいて、前記送信先テーブルは、アドレス情報を複数段に区別して登録し、前記ノード選定手段は、前記送信先テーブルの所定段にアドレス情報が登録されているノード装置、及び当該所定段より下位の段にアドレス情報が登録されているノード装置を選定し、前記アドレス変更通知手段は、前記選定されたノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信するものであって、前記アドレス変更通知メッセージを受信するノード装置は、前記送信先テーブルの前記所定段より下位の段にアドレス情報が登録されているノード装置を選定し、当該選定した各ノード装置のアドレス情報を用いて当該各ノード装置に前記ネットワークを介して接続し当該各ノード装置に対して、前記アドレス変更通知メッセージを転送するメッセージ転送手段を更に備え、当該アドレス変更通知メッセージの転送は、その後に当該メッセージを受信した各ノード装置において同様に行われることを特徴とする。
この発明によれば、送信先テーブルを利用してコンテンツ分散保存システムに参加している全ノード装置にアドレス変更通知メッセージを送信することができる。
請求項5に記載の発明は、請求項1に記載のコンテンツ分散保存システムにおいて、前記記憶手段には、何れかの前記コンテンツの複製データを保存している他のノード装置のアドレス情報と当該コンテンツのコンテンツ識別情報の組を含むインデックス情報が記憶されており、前記ノード選定手段は、前記インデックス情報にアドレス情報が含まれているノード装置を選定し、前記アドレス変更通知手段は、前記選定されたノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信することを特徴とする。
この発明によれば、インデックス情報を利用してアドレス変更通知メッセージを送信することができる。
請求項6に記載の発明は、請求項1に記載のコンテンツ分散保存システムにおいて、前記記憶手段には、自己にメッセージを過去に送信した他のノード装置のアドレス情報を含むログ情報が記憶されており、前記ノード選定手段は、前記ログ情報にアドレス情報が含まれているノード装置を選定し、前記アドレス変更通知手段は、前記選定されたノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信することを特徴とする。
この発明によれば、ログ情報を利用してアドレス変更通知メッセージを送信することができる。
請求項7に記載の発明は、請求項1に記載のコンテンツ分散保存システムにおいて、前記記憶手段には、前記コンテンツ分散保存システムへの参加の際に送信するべき参加メッセージの送信先のノード装置のアドレス情報が記憶されており、前記ノード選定手段は、前記参加メッセージの送信先のノード装置を選定し、前記アドレス変更通知手段は、前記選定されたノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信するものであって、前記アドレス変更通知メッセージを受信したノード装置は、前記受信されたアドレス変更通知メッセージに含まれるノード識別情報と、前記送信先テーブルに登録された他のノード装置のノード識別情報との比較結果に基づいて前記送信先テーブルから一つのノード装置を選定し、当該選定したノード装置のアドレス情報を用いて当該ノード装置に前記ネットワークを介して接続し当該ノード装置に対して、前記アドレス変更通知メッセージを転送するメッセージ転送手段を更に備えることを特徴とする。
この発明によれば、参加メッセージの転送経路を利用してアドレス変更通知メッセージを送信することができる。
請求項8に記載の発明は、請求項1乃至7の何れか一項に記載のコンテンツ分散保存システムにおいて、前記記憶手段には、メッセージの送信先候補となる前記複数のノード装置であって前記コンテンツ分散保存システムに参加している全ノード装置の数より少ない数のノード装置のアドレス情報及びノード識別情報が登録された送信先テーブルが記憶されており、前記アドレス変更通知手段は、自己が保存している前記複製データに対応するコンテンツ識別情報と、前記送信先テーブルに登録されている他のノード装置のノード識別情報との比較結果に基づいて前記送信先テーブルから一つのノード装置を選定し、当該選定したノード装置のアドレス情報を用いて当該ノード装置に前記ネットワークを介して接続し当該ノード装置に対して、前記変更されたアドレス情報、当該コンテンツ識別情報及び自己のノード識別情報を含むアドレス変更通知メッセージを送信するものであって、前記アドレス変更通知メッセージを受信したノード装置は、前記受信されたアドレス変更通知メッセージが自己宛てであるか否かを、前記アドレス変更通知メッセージに含まれるコンテンツ識別情報と、自己のノード識別情報及び前記送信先テーブルに登録されている他のノード装置のノード識別情報との比較結果に基づいて判別し、自己宛でない場合には、前記比較結果に基づいて前記送信先テーブルから一つのノード装置を選定し、当該選定したノード装置のアドレス情報を用いて当該ノード装置に前記ネットワークを介して接続し当該ノード装置に対して、前記アドレス変更通知メッセージを転送するメッセージ転送手段と、を更に備えることを特徴とする。
この発明によれば、送信先テーブルを利用してアドレス変更通知メッセージを送信することができる。
請求項9に記載の発明は、ネットワークに接続された複数のノード装置の参加により構成されるコンテンツ分散保存システムであり、複数のコンテンツの複製データが複数のノード装置に分散して保存され、各ノード装置間で前記複製データを授受可能としたコンテンツ分散保存システムにおけるノード装置であって、前記コンテンツ分散保存システムに参加している全ノード装置の数より少ない数のノード装置のアドレス情報及びノード識別情報を記憶する記憶手段と、自己のアドレス情報の変更を検出するアドレス変更検出手段と、前記アドレス情報の変更が検出された場合には、前記アドレス情報が記憶されているノード装置のうちから少なくとも一つのノード装置を選定するノード選定手段と、前記選定されたノード装置のアドレス情報を用いて当該ノード装置に前記ネットワークを介して接続し当該ノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信するアドレス変更通知手段と、前記受信したアドレス変更通知メッセージに含まれるノード識別情報が過去に記憶されており、当該記憶されているノード識別情報に対応付けられて記憶されているアドレス情報が、前記メッセージに含まれるアドレス情報と異なる場合には、当該記憶されているアドレス情報に代えて当該メッセージに含まれるアドレス情報に更新するアドレス情報更新手段と、を備えることを特徴とする。
請求項10に記載のノード処理プログラムの発明は、コンピュータを、請求項1乃至9の何れか一項に記載のコンテンツ分散保存システムにおけるノード装置として機能させることを特徴とする。
請求項11に記載の発明は、ネットワークに接続された複数のノード装置の参加により構成されるコンテンツ分散保存システムであり、複数のコンテンツの複製データが複数のノード装置に分散して保存され、各ノード装置間で前記複製データを授受可能としたコンテンツ分散保存システムにおけるアドレス情報変更通知方法であって、前記ノード装置は、前記コンテンツ分散保存システムに参加している複数のノード装置であって当該コンテンツ分散保存システムに参加している全ノード装置の数より少ない数のノード装置のアドレス情報及びノード識別情報を記憶する工程と、自己のアドレス情報の変更を検出する工程と、前記アドレス情報の変更が検出された場合には、前記アドレス情報が記憶されているノード装置のうちから少なくとも一つのノード装置を選定する工程と、前記選定されたノード装置のアドレス情報を用いて当該ノード装置に前記ネットワークを介して接続し当該ノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信する工程と、を備え、前記アドレス変更通知メッセージを受信するノード装置は、前記コンテンツ分散保存システムに参加している複数のノード装置であって当該コンテンツ分散保存システムに参加している全ノード装置の数より少ない数のノード装置のアドレス情報及びノード識別情報を記憶する工程と、前記受信されたアドレス変更通知メッセージに含まれるノード識別情報が過去に記憶されており、当該記憶されているノード識別情報に対応付けられて記憶されているアドレス情報が、前記メッセージに含まれるアドレス情報と異なる場合には、当該記憶されているアドレス情報に代えて当該メッセージに含まれるアドレス情報に更新する工程と、を備えることを特徴とする。
本発明によれば、ノード装置は、自己のアドレス情報の変更を検出した場合には、アドレス情報が記憶されているノード装置のうちから少なくとも一つのノード装置を選定し、当該ノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信し、当該アドレス変更通知メッセージを受信するノード装置は、前記受信されたアドレス変更通知メッセージに含まれるノード識別情報が過去に記憶されており、当該記憶されているノード識別情報に対応付けられて記憶されているアドレス情報が、前記メッセージに含まれるアドレス情報と異なる場合には、当該記憶されているアドレス情報に代えて当該メッセージに含まれるアドレス情報に更新するように構成したので、アドレス情報が変更されても、各ノード装置間の情報伝達に支障が来たすことを防止することができる。
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、コンテンツ分散保存システムに本発明を適用した場合の実施形態である。
[1.コンテンツ分散保存システムの構成等]
始めに、図1等を参照して、本実施形態に係るコンテンツ分散保存システムの概要構成等について説明する。
始めに、図1等を参照して、本実施形態に係るコンテンツ分散保存システムの概要構成等について説明する。
図1は、本実施形態に係るコンテンツ分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4a,4b、DSL(Digital Subscriber Line)回線事業者(の装置)5a,5b、FTTH(Fiber To The Home)回線事業者(の装置)6、及び通信回線(例えば、電話回線や光ケーブル等)7等によって、インターネット等のネットワーク(現実世界の通信ネットワーク)8が構築されている。なお、図1の例におけるネットワーク8には、データ(パケット)を転送するためのルータが、適宜挿入されているが図示を省略している。
このようなネットワーク8には、複数のノード装置(以下、「ノード」という)Nn(n=1,2,3・・・の何れか)がルータを介して接続されている。また、各ノードNnには、固有の製造番号およびIP(Internet Protocol)アドレス(アドレス情報)が割り当てられている。そして、本実施形態に係るコンテンツ分散保存システムSは、これらのノードNnのうち、図1の上部枠100内に示すように、何れか複数のノードNnの参加により形成されるピアツーピア方式のネットワークシステムとなっている。
なお、図1の上部枠100内に示すネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク9(論理的なネットワーク)である。かかるオーバーレイネットワーク9は、特定のアルゴリズム、例えば、DHTを利用したアルゴリズムにより実現される。
そして、コンテンツ分散保存システムS(言い換えれば、オーバーレイネットワーク9)に参加している各ノードNnには、所定桁数からなる固有のノード識別情報であるノードIDが割り当てられている。また、当該ノードIDは、例えば、各ノードNnに個別に割り当てられたIPアドレス或いは製造番号を共通のハッシュ関数(例えば、SHA−1等)によりハッシュ化した値(例えば、bit長が160bit)であり、一つのID空間に偏りなく分散して配置されることになる。
なお、コンテンツ分散保存システムSへの参加は、参加していないノードNn(例えば、ノードN8)が、参加している任意のノードNn(例えば、当該システムSに常時参加しているコンタクトノード)に対して参加要求を示す参加メッセージを送信することによって行われる。
また、各ノードNnは、夫々、DHTを用いたルーティングテーブル(送信先テーブルの一例、以下、「DHTルーティングテーブル」という)を保持している。このルーティングテーブルは、コンテンツ分散保存システムS上における各種メッセージの転送先候補(送信先候補)先を規定しており、具体的には、ID空間内で適度に離れたノードNnのノードID、IPアドレス及びポート番号を含むノード情報が複数登録されている。
コンテンツ分散保存システムSに参加している1台のノードNnは、該システムSに参加している全てのノードNnのうち、必要最低限のノードNn(つまり、該システムSに参加している全ノードNnの数より少ない数のノードNn)のノード情報をルーティングテーブルに登録しておき、ノード情報を知らない(記憶していない)ノードNnについては、各ノードNn間で互いに各種メッセージを転送し合って届けてもらうようになっている。
ここで、図2及び図3を参照して、DHTルーティングテーブルについて詳しく説明する。
図2は、ノードN2が保持するDHTルーティングテーブルの一例を示す図であり、図3は、DHTのID空間の一例を示す概念図である。
なお、図2及び図3の例においては、説明の便宜上、ノードIDのbit長を2bit×3桁=6bitとし、各桁を4進数(0〜3の整数)で表している(実際には、もっと長いbit長を用い、各桁も例えば4bitに区切って0〜fの16進数で表現する)。
図2の例において、DHTルーティングテーブルは、レベル1(一段目)〜レベル3(三段目)の複数段のテーブルからなり、各レベルのテーブルエントリーには、エリア毎に、ノード情報として、ノードIDとこれに対応するノードNnのIPアドレス及びポート番号が対応付けられて登録されている。
つまり、各ノードNnのノード情報は、複数段に区別して登録されており、最上位段をレベル1として、当該レベル1より下位の段であるレベル2、レベル3が続くことになる(レベル2はレベル3の上位の段ということになる)。
各レベルのテーブルにおける各エリアは、DHTのノードID空間を分割することにより得られるエリアである。例えば、図3に示すように、レベル1では、DHTのID空間全体が4分割され、“000”〜“033”のノードIDが存在するエリアを0XXのエリア、“100”〜“133” のノードIDが存在するエリアを1XXのエリア、“200”〜“233” のノードIDが存在するエリアを2XXのエリア、“300”〜“333” のノードIDが存在するエリアを3XXのエリアとする。また、レベル2では、レベル1のエリア(つまり、0XX〜3XXのエリア)が更に4分割、例えば1XXのエリアが4分割され、“100”〜“103” のノードIDが存在するエリアを10Xのエリア、“110”〜“113” のノードIDが存在するエリアを11Xのエリア、“120”〜“123” のノードIDが存在するエリアを12Xのエリア、“130”〜“133” のノードIDが存在するエリアを13Xのエリアとする。
そして、例えば、ノードN2のノードIDが“122”とすると、図2に示すように、かかるノードN2のレベル1における1XXのエリア(自己(つまり、自ノード)が存在するエリア)のテーブルには、自己のノードID及びIPアドレス(IPアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い)等が登録され、自己が存在しないエリア(つまり、0XXのエリア、2XXのエリア、及び3XXのエリア)には、夫々、他の任意のノードNnのノードID及びIPアドレス等が登録されている。
また、かかるノードN2のレベル2における12Xのエリア(自己が存在するエリア)のテーブルには、図2に示すように、自己のノードID及びIPアドレス(IPアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い)等が登録され、自己が存在しないエリア(つまり、10Xのエリア、11Xのエリア、及び13Xのエリア)等には、夫々、他の任意のノードNnのノードID及びIPアドレス等が登録されている。
更に、かかるノードN2のレベル3には、図2に示すように、ノードIDが“120”〜“122”のノードID及びIPアドレス(IPアドレスは自分のものであるので、当該ルーティングテーブルに登録しなくても良い)等が登録されている。
なお、図2及び図3の例では、ノードIDのbit長を3桁×2bitとしたので、レベル1〜3の3レベル分のテーブルで網羅できるが、ノードIDのbit長が増せば、その分のテーブルが必要となる(例えば、ノードIDのbit長を16桁×4bitとした場合、16レベル分のテーブルが必要となる)。
このように、本実施形態におけるDHTルーティングテーブルでは、レベルの数値が大きくなるほど、言い換えれば、下位の段にいくほど、エリアが狭まっていくようになっている。
そして、このようなDHTルーティングテーブルは、例えば、未参加のノードがコンテンツ分散保存システムSに参加する際に生成される。
ここで、図4を参照して、コンテンツ分散保存システムSへの参加時におけるDHTルーティングテーブルの生成手順について詳しく説明する。
図4は、コンテンツ分散保存システムSへの参加時におけるDHTルーティングテーブルの生成手順の一例を示す概念図である。
図4に示すように、未参加のノードN8(例えば、ノードIDを“123”とする)がコンテンツ分散保存システムSに参加する場合、例えば、コンタクトノードのIPアドレスを用いて当該コンタクトノードにネットワーク8を介して接続し当該コンタクトノードに対して参加メッセージ(ノードN8のノード情報を含む)を送信する。当該参加メッセージを受信したコンタクトノードは、自己のDHTルーティングテーブルにおけるレベル1のテーブルに登録されているノード情報等を含む返信メッセージを、上記ノードN8に対して返信する。更に、コンタクトノードは、受信された参加メッセージに含まれるノードIDと、DHTルーティングテーブルに登録された他のノードNnのノードIDとの比較結果に基づいてDHTルーティングテーブルから一つのノードNnを選定する。例えば、参加メッセージに含まれるノードIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノードN35が、DHTルーティングテーブルから選定され、当該ノードN35に上記参加メッセージが転送される。このとき、当該参加メッセージには、次に返信させるべきテーブルの段数(ここでは、レベル2)を示す情報が含められる。
次に当該参加メッセージを受信したノードN35は、自己のDHTルーティングテーブルにおけるレベル2のテーブルに登録されているノード情報等を含む返信メッセージを、上記ノードN8に対して返信する。更に、ノードN35は、受信された参加メッセージに含まれるノードIDと、DHTルーティングテーブルに登録された他のノードNnのノードIDとの比較結果に基づいてDHTルーティングテーブルから一つのノードNnを選定する。例えば、参加メッセージに含まれるノードIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノードN2が、DHTルーティングテーブルから選定され、当該ノードN2に上記参加メッセージが転送される。このとき、当該参加メッセージには、次に返信させるべきテーブルの段数(ここでは、レベル3)を示す情報が含められる。
次に当該参加メッセージを受信したノードN2は、自己のDHTルーティングテーブルにおけるレベル3のテーブルに登録されているノード情報等を含む返信メッセージを、上記ノードN8に対して返信する。
以上のようにして参加メッセージは、ノードIDをキーとするDHTルーティングにより、未参加のノードN8のノードIDに一番近いノードIDを有するノードNnまで転送される。
そして、ノードN8は、各ノードNnから受信した返信メッセージに含まれるノード情報等を用いて自己のDHTルーティングテーブルを生成する。当該DHTルーティングテーブルを生成においては、例えば、コンタクトノードから受信されたノード情報が自己のDHTルーティングテーブルのテーブル1に登録され、ノードN35から受信されたノード情報が自己のDHTルーティングテーブルのテーブル2に登録され、ノードN2から受信されたノード情報が自己のDHTルーティングテーブルのテーブル3に登録される。
こうして、ノードN8は、コンテンツ分散保存システムSへの参加が完了することになる。なお、図4に示すようなメッセージのやりとりは三角形になるので、このような参加の形態を「三角JOIN」と称する。
ところで、コンテンツ分散保存システムSにおいては、内容の異なる様々なコンテンツ(例えば、映画や音楽等)のレプリカが所定のファイル形式で複数のノードNnに分散して保存(格納)されており、各ノードNn間で当該レプリカを授受可能になっている。例えば、ノードN5には、タイトルがXXXの映画のコンテンツのレプリカが保存されており、一方、ノードN3には、タイトルがYYYの映画のコンテンツのレプリカが保存されるというように、複数のノードNn(以下、「コンテンツ保持ノード」という)に分散されて保存されている。
また、これらのコンテンツのレプリカには、夫々、コンテンツ名(タイトル)、及びコンテンツID(コンテンツ毎に固有のコンテンツ識別情報)等の情報が付与されている。このコンテンツIDは、例えば、コンテンツ名+任意の数値(或いは、コンテンツデータの先頭数バイトでも良い)が、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化されて生成される(ノードIDと同一のID空間に配置)。或いは、システム管理者が、コンテンツ毎に一意のID値(ノードIDと同一ビット長)を付与しても良い。この場合は、コンテンツ名とそのコンテンツIDの対応が書かれたコンテンツカタログ情報が、全ノードNnに配布される。
また、このように分散保存されているレプリカの所在、つまり、当該レプリカを保存したノードNnのノード情報と当該コンテンツのレプリカに対応するコンテンツID等の組が含まれるインデックス情報が、当該コンテンツのレプリカの所在を管理しているノードNn(以下、「ルートノード」、又は「コンテンツデータ(コンテンツID)のルートノード」という)等により記憶(インデックスキャッシュに記憶)、管理されるようになっている。
つまり、コンテンツのレプリカを保存しているコンテンツ保持ノードのノード情報は、他のノードNnからの問い合わせに応じて提供可能なようにルートノードにより管理されている。
例えば、タイトルがXXXの映画のコンテンツのレプリカについてのインデックス情報は、そのコンテンツ(コンテンツID)のルートノードであるノードN4により管理され、タイトルがYYYの映画のコンテンツのレプリカについてのインデックス情報は、そのコンテンツ(コンテンツID)のルートノードであるノードN7により管理される。また、このようなルートノードは、例えば、コンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノードNnであるように定められる。
そして、あるノードNnのユーザが、所望するコンテンツのレプリカを取得したい場合、当該レプリカの取得を望むノードNn(以下、「ユーザノード」という)は、当該ユーザにより例えばコンテンツカタログ情報から選択されたコンテンツのコンテンツID及び自己のIPアドレス等を含むコンテンツ所在問合せ(検索)メッセージ(クエリ)を生成し、これを自己のDHTルーティングテーブルにしたがって他のノードNnに対して送出する。つまり、ユーザノードは、コンテンツ所在問合せ(検索)メッセージを、ルートノードに向けて(ルートノード宛に)送出する(つまり、ルートノードにコンテンツのレプリカの所在を問い合わせる)。これにより、コンテンツ所在問合せ(検索)メッセージは、コンテンツIDをキーとするDHTルーティングによって最終的にルートノードに到着することになる。なお、このDHTルーティングについては、特開2006−197400号公報等で公知であるので、詳しい説明を省略する。
なお、各ノードNnにおいてユーザにより選択されるべきコンテンツのコンテンツ名、コンテンツID、公開日時等の属性情報は、例えばコンテンツ提供サーバから全てのノードNnに配信されるコンテンツカタログ情報に記述されている。また、上記コンテンツ所在問合せ(検索)メッセージに含まれるコンテンツIDは、ユーザノードによって、コンテンツ名が上記共通のハッシュ関数によりハッシュ化されて生成されるようにしても良い。
上記コンテンツ所在問合せ(検索)メッセージを受信したルートノードは、これに含まれるコンテンツIDに対応するインデックス情報をインデックスキャッシュから取得して、当該インデックス情報を、該コンテンツ所在問合せメッセージの送信元であるユーザノードに対して返信する。こうしてインデックス情報を取得したユーザノードは、当該インデックス情報に含まれるあるコンテンツ保持ノードのIPアドレス等に基づいて当該コンテンツ保持ノードに接続して、コンテンツ送信要求メッセージを送信し、そこからコンテンツのレプリカを取得(ダウンロード)する。
なお、ルートノードは、当該インデックス情報に含まれるIPアドレス等に示されたコンテンツ保持ノードに対してコンテンツ送信要求メッセージを送信し、これにより、ユーザノードは、上記コンテンツ保持ノードからそのレプリカを取得することもできる。また、上記ユーザノードは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、当該ルートノードと同じインデックス情報をキャッシュしているキャッシュノードから当該インデックス情報を取得することもできる。
そして、コンテンツ保持ノードから取得したコンテンツのレプリカを保存(例えば、ハードディスクに記録)したユーザノードは、当該レプリカを保存したことをそのルートノードに知らせるために(言い換えれば、該システムSに参加している他のノードNnに対して公開するために)、当該レプリカのコンテンツID及び自己のノード情報が含まれるパブリッシュ(登録通知)メッセージを生成し、該パブリッシュメッセージを、そのルートノードに向けて(ルートノード宛に)送出する。
これにより、パブリッシュメッセージは、コンテンツ所在問合せ(検索)メッセージと同じように、コンテンツIDをキーとするDHTルーティングによってルートノードに到着することになる。そして、該ルートノードは、受信したパブリッシュメッセージに含まれるノード情報及びコンテンツIDの組を含むインデックス情報を登録(インデックスキャッシュ領域に記憶)することになる。こうして、上記ユーザノードは、新たに、上記コンテンツのレプリカを保持するコンテンツ保持ノードとなる。
なお、上記パブリッシュメッセージに含まれるノード情報及びコンテンツIDの組を含むインデックス情報は、ルートノードに至るまでの転送経路におけるキャッシュノードにおいても登録(キャッシュ)される。
[2.ノードNnの構成及び機能等]
次に、図5を参照して、ノードNnの構成及び機能について説明する。
次に、図5を参照して、ノードNnの構成及び機能について説明する。
図5は、ノードNnの概要構成例を示す図である。
各ノードNnは、図5に示すように、演算機能を有するCPU,作業用RAM,各種データ及びプログラムを記憶するROM等から構成されたコンピュータとしての制御部11と、各種データ(例えば、コンテンツデータのレプリカ、インデックス情報、DHTルーティングテーブル等)及び各種プログラム等を記憶保存するためのHD(ハードディスク)等から構成された記憶部12と、受信されたコンテンツデータのレプリカ等を一時蓄積するバッファメモリ13と、コンテンツデータのレプリカに含まれるエンコードされたビデオデータ(映像情報)およびオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)するデコーダ部14と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部15と、当該映像処理部15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等の表示部16と、上記デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音声処理部17と、当該音声処理部17から出力されたオーディオ信号を音波として出力するスピーカ18と、ネットワーク8を通じて他のノードNn等間の情報の通信制御を行うための通信部19と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部11に対して与える入力部(例えば、キーボード、マウス、或いは、操作パネル等)20と、を備えて構成され、制御部11、記憶部12、バッファメモリ13、デコーダ部14、通信部19、及び入力部20はバス21を介して相互に接続されている。なお、ノードNnとしては、パーソナルコンピュータ、STB(Set Top Box)、或いは、TV受信機等を適用可能である。
また、記憶部12には、コンテンツ分散保存システムSに参加する際のアクセス先となるコンタクトノードのIPアドレス及びポート番号等が記憶されている。なお、上述したDHTルーティングテーブル及びインデックスキャッシュに記憶されているノード情報の他にも、記憶部12には、自ノードにメッセージを過去に送信した他のノードNnのIPアドレスを含むログ情報が記憶されるように構成しても良い。
このような構成において、制御部11は、CPUが記憶部12等に記憶されたプログラムを読み出して実行することにより、全体を統括制御し、コンテンツ分散保存システムSへの参加により上述したユーザノード、中継ノード、ルートノード、キャッシュノード、及びコンテンツ保持ノードの少なくとも何れか一つのノードとしての処理を行い、更に、本発明におけるアドレス変更検出手段、ノード選定手段、アドレス変更通知手段、メッセージ転送手段、及びアドレス情報更新手段等として機能する。
具体的には、制御部11は、自ノードのIPアドレスの変更を検出する。なお、IPアドレスの変更は、例えば他のノードNnと接続できたときに検出することができる。制御部11は、IPアドレスの変更を検出した場合、当該IPアドレスの変更を通知するために、IPアドレスが記憶されている他のノードNn(つまり、IPアドレスを知っている他のノードNn)のうちから少なくとも一つのノードNnを選定する。
そして、制御部11は、選定したノードNnのIPアドレスを用いて当該ノードNnにネットワーク8を介して接続し当該ノードNnに対して、自ノードの変更されたIPアドレス及び自ノードのノードIDを含むアドレス変更通知メッセージを送信する。
ところで、当該アドレス変更通知メッセージの送信対象として、例えば、DHTルーティングテーブルにノード情報が登録されている全てのノードNn、及びインデックスキャッシュにIPアドレスが記憶されている全てのノードNnが選定されるように構成すれば、自ノードとメッセージのやり取りを行う可能性のある多くのノードNnに対して、IPアドレスの変更を通知することができる。また、上述したログ情報が記憶されるのであれば、当該ログ情報中にIPアドレスが含まれている全てのノードNnがアドレス変更通知メッセージの送信対象として選定されるように構成すれば、自ノードとメッセージのやり取りを行う可能性のある、より多くのノードNnに対して、IPアドレスの変更を通知することができる。
ただし、DHTルーティングテーブル、インデックスキャッシュ、及びログ情報におけるノードNnに対してアドレス変更通知メッセージを送信するだけでは、自ノードが把握していない他のノードNnに対してはIPアドレスの変更を通知することが困難である。そこで、IPアドレスの変更通知(アドレス変更通知メッセージ)を上述したパブリッシュメッセージと同様の転送経路で転送させるように構成すると良い。例えば、制御部11は、自ノードの記憶部12に保存されているレプリカのコンテンツID、及び自ノードのノード情報(自ノードの変更されたIPアドレス及び自ノードのノードIDを含む)が含まれるパブリッシュメッセージ(つまり、アドレス変更通知メッセージを含むパブリッシュメッセージ)を、当該コンテンツIDをキーとしてそのルートノードに向けて送出する。これにより、パブリッシュメッセージがルートノードに至るまでの転送経路におけるキャッシュノード(自ノードのIPアドレスを記憶しているであろうノードNn)に対してもIPアドレスの変更を通知することができる。
更に、上述した三角JOINを利用して、IPアドレスの変更通知(アドレス変更通知メッセージ)を参加メッセージと同様の転送経路で転送させるように構成すると良い。例えば、制御部11は、自ノードのノード情報(自ノードの変更されたIPアドレス及び自ノードのノードIDを含む)が含まれる再参加メッセージ(つまり、アドレス変更通知メッセージを含む再参加メッセージ)を、当該ノードIDをキーとしてそのルートノードに向けて送出する。これにより、再参加メッセージがルートノードに至るまでの転送経路におけるノードNn(図4の例では、自ノードのIPアドレスを記憶しているであろうコンタクトノード及びノードN35)に対してもIPアドレスの変更を通知することができる。
また、別の例として、特開2007−053662号公報にて開示されたDHTマルチキャスト(マルチキャストメッセージ転送処理)によりコンテンツ分散保存システムSに参加している全てのノードNnに対してアドレス変更通知メッセージを送信することが、IPアドレスの変更を通知する上で最も確実である。その反面、自ノードのIPアドレスを記憶していない多くのノードNnに対してアドレス変更通知メッセージが送信されることになるので、無駄が多く、トラフィック量の増大によりネットワーク8に負荷がかかる。
一方、アドレス変更通知メッセージを受信したノードNnの制御部11は、当該受信されたアドレス変更通知メッセージに含まれるノードIDが、過去に記憶(例えば、例えばDHTルーティングテーブル、インデックスキャッシュ、及びログ情報の少なくとも何れか一つに記憶)されており、当該記憶されているノードIDに対応付けられて記憶されているIPアドレスが、当該メッセージに含まれるIPアドレスと異なる場合には、当該記憶されているIPアドレスに代えて当該メッセージに含まれるIPアドレスに更新する。
[3.コンテンツ分散保存システムSの動作]
次に、図6〜図11等を参照して、コンテンツ分散保存システムSの動作について説明する。
次に、図6〜図11等を参照して、コンテンツ分散保存システムSの動作について説明する。
図6は、ノードNnにおける制御部11のメイン処理を示すフローチャートである。また、図7は、図6に示すステップS2等のパブリッシュ処理の詳細を示すフローチャートであり、図8は、図6に示すステップS5のIPアドレス変更通知処理の詳細を示すフローチャートである。また、図9は、図6に示すステップS7のメッセージ受信処理の詳細を示すフローチャートであり、図10は、図9に示すステップS72及びS86のIPアドレス更新処理の詳細を示すフローチャートである。また、図11は、メッセージ送信処理の詳細を示すフローチャートである。
図6に示す処理は、ノードNnにおいて電源オンがなされると開始され、先ず、制御部11は参加処理を行う(ステップS1)。当該参加処理においては、図4を用いて説明したように、制御部11は、コンタクトノードにネットワーク8を介して接続し当該コンタクトノードに対して参加メッセージを送信する。そして、当該制御部11は、コンタクトノードを含む各ノードNnから返信されてきた返信メッセージを受信すると、各返信メッセージに含まれるノード情報等を用いてDHTルーティングテーブルを生成する。
次いで、制御部11はパブリッシュ処理を行う(ステップS2)。当該パブリッシュ処理においては、図7に示すように、制御部11は、記憶部12にコンテンツのレプリカが保存されているか否かを判別し(ステップS21)、保存されていない場合には(ステップS21:NO)、図6の処理に戻り、保存されている場合には(ステップS21:YES)、ステップS22に進む。
ステップS22では、制御部11は、保存されているレプリカに対応するコンテンツID及び自ノードのノード情報が含まれるパブリッシュメッセージを、そのルートノードに向けて送出する。具体的には、制御部11は、当該コンテンツIDと、DHTルーティングテーブルに登録されている他のノードNnのノードIDとの比較結果に基づいてDHTルーティングテーブルから一つのノードNnを選定、例えば、当該コンテンツIDに最も近いノードIDを有するノードNnを選定する。そして、制御部11は、当該選定したノードNnに対して、上記パブリッシュメッセージを送信する。なお、内容の異なる複数のコンテンツのレプリカが保存されている場合には、各コンテンツのコンテンツIDに対応するルートノードに向けてパブリッシュメッセージが送出される。
次いで、制御部11は、電源オフ指令があったか否かを判別し(ステップS3)、電源オフ指令がない場合には(ステップS3:NO)、ステップS4に進み、電源オフ指令があった場合には(ステップS3:YES)、脱退処理を行った後、図6の処理を終了する。当該脱退処理においては、保存されているレプリカに対応するコンテンツID及び自ノードのノード情報が含まれる脱退通知メッセージがそのルートノードに向けて送出される。これにより、当該脱退通知メッセージを受信したルートノード、及び当該脱退通知メッセージの転送経路上に存在するキャッシュノードにおいて、脱退通知メッセージの送信元のノード情報がインデックス情報から削除されることになる。
ステップS4では、制御部11は、自ノードのIPアドレスの変更を検出したか否かを判別し、IPアドレスの変更を検出していない場合には(ステップS4:NO)、ステップS6に進み、IPアドレスの変更を検出した場合には(ステップS4:YES)、IPアドレス変更通知処理を行う(ステップS5)。当該IPアドレス変更通知処理の例としては、図8(A)〜(E)に示すように、実施例1〜実施例5が挙げられる。
図8(A)に示す実施例1は、DHTルーティングテーブルを利用した例である。この場合、制御部11は、先ず、自ノードの変更されたIPアドレス及び自ノードのノードIDを含むアドレス変更通知メッセージを生成する(ステップS51A)。次いで、制御部11は、DHTルーティングテーブルにノード情報が登録されている全てのノードNnを選定し、選定した各ノードNnに対して、上記生成したアドレス変更通知メッセージを送信する(ステップ52A)。次いで、制御部11は、図7に示すパブリッシュ処理を行う(ステップS53A)。ここで送信されるパブリッシュメッセージには、自ノードの変更されたIPアドレス及び自ノードのノードIDが含まれる。
図8(B)に示す実施例2は、インデックスキャッシュを利用した例である。この場合、制御部11は、先ず、自ノードの変更されたIPアドレス及び自ノードのノードIDを含むアドレス変更通知メッセージを生成する(ステップS51B)。次いで、制御部11は、インデックスキャッシュにIPアドレスが記憶されている全てのノードNnを選定し、選定した各ノードNnに対して、上記生成したアドレス変更通知メッセージを送信する(ステップ52B)。次いで、制御部11は、図7に示すパブリッシュ処理を行う(ステップS53B)。なお、図8(B)に示す処理において、図8(A)に示すステップS52Aの処理が行われるように構成しても良い。ただし、DHTルーティングテーブルとインデックスキャッシュとの双方にノード情報が記憶されているノードNnについては、当該処理において一度だけアドレス変更通知メッセージが送信される。
図8(C)に示す実施例3は、ログ情報を利用した例である。この場合、制御部11は、先ず、自ノードの変更されたIPアドレス及び自ノードのノードIDを含むアドレス変更通知メッセージを生成する(ステップS51C)。次いで、制御部11は、ログ情報にIPアドレスが記憶されている全てのノードNnを選定し、選定した各ノードNnに対して、上記生成したアドレス変更通知メッセージを送信する(ステップ52C)。次いで、制御部11は、図7に示すパブリッシュ処理を行う(ステップS53C)。
図8(D)に示す実施例4は、三角JOINを利用した例である。この場合、制御部11は、先ず、自ノードの変更されたIPアドレス及び自ノードのノードIDを含む再参加メッセージを生成する(ステップS51D)。次いで、制御部11は、DHTルーティングテーブルやインデックスキャッシュ等にノード情報が記憶されている一つのノードNnを選定し、選定したノードNnに対して、上記生成した再参加メッセージを送信する(ステップ52D)。ここで、選定されるノードNnとしてコンタクトノードとすれば、当該再参加メッセージは、上記ステップS1の参加処理による参加メッセージの転送経路上に存在するノードNnにおけるDHTルーティングテーブルの内容に変更がなければ、当該参加メッセージと同一の転送経路で転送されるのでより効果的である。次いで、制御部11は、図7に示すパブリッシュ処理を行う(ステップS53D)。
図8(E)に示す実施例5は、DHTマルチキャストを利用した例である。この場合、制御部11は、先ず、自ノードの変更されたIPアドレス、自ノードのノードID、IDマスク「0」を含むアドレス変更通知メッセージを生成し(ステップS51E)、RAMに記憶しておく。なお、自ノードのノードIDは、ターゲットノードIDに設定される。
次いで、制御部11は、当該アドレス変更通知メッセージにおけるIDマスクがDHTルーティングテーブルの全レベル数(全段数)よりも小さいか否かを判別し(ステップS52E)、IDマスクが上記全レベル数より小さい場合には(ステップS52E:YES)、ステップS53Eに進み、IDマスクが上記全レベル数より小さくない場合、つまり、一致した場合には(ステップS52E:NO)、当該処理を終了する。例えば、IDマスクが「0」の場合、図2に示すDHTルーティングテーブルの全レベル数「3」よりも小さいため、ステップS53Eに進む。
ステップS53Eでは、制御部11は、DHTルーティングテーブルのうち、「IDマスク+1」のレベル(例えば、レベル1)のテーブルにノード情報が登録されている全てのノードNnを選定し、選定した各ノードNnに対して、上記生成したアドレス変更通知メッセージを送信する。
次いで、制御部11は、上記アドレス変更通知メッセージにおいて設定されているIDマスクに「1」を加算して得た値を、新たなIDマスクとしてアドレス変更通知メッセージに設定し(ステップS54E)、ステップS52Eに戻る。こうして、上記ステップS52EにおいてIDマスクがDHTルーティングテーブルの全レベル数と一致するまで、ステップS53E及びS54Eの処理は繰り返し実行され、DHTルーティングテーブルにノード情報が登録されている全てのノードNnに対してアドレス変更通知メッセージが送信されることになる。そして、当該アドレス変更通知メッセージは、これを受信した各ノードNnにより転送(図9のステップS77)され、コンテンツ分散保存システムS全体に行き渡ることになる。また、上記処理により、例えば、DHTルーティングテーブルのレベル1のテーブルに登録されているノードNnに送信されるアドレス変更通知メッセージに設定されたIDマスクは「0」となり、DHTルーティングテーブルのレベル2のテーブルに登録されているノードNnに送信されるアドレス変更通知メッセージに設定されたIDマスクは「1」となる。つまり、レベルの数値が大きくなるほど、IDマスクの値は大きくなっていく。
図6に示す処理に戻り、ステップS6では、制御部11は、メッセージを受信したか否かを判別し、メッセージを受信していない場合には(ステップS6:NO)、ステップS9に進みその他の処理を行い、メッセージを受信した場合には(ステップS6:YES)、メッセージ受信処理を行う(ステップS7)。当該メッセージ受信処理においては、受信されたメッセージの種別に応じた処理が行われる。なお、メッセージの種別は、例えば、各メッセージのヘッダ内に記述されている。
図9に示すメッセージ受信処理では、制御部11は、受信したメッセージがアドレス変更通知メッセージであるか否かを判別し(ステップS71)、アドレス変更通知メッセージである場合には(ステップS71:YES)、ステップS72に進み、アドレス変更通知メッセージでない場合には(ステップS71:NO)、ステップS78に進む。
ステップS72では、制御部11は、IPアドレス更新処理を行う。当該IPアドレス更新処理においては、図10に示すように、制御部11は、受信されたアドレス変更通知メッセージに含まれるノードID(当該メッセージの送信元ノードNnのノードID)が、DHTルーティングテーブルに登録されているか否かを判別する(ステップS721)。そして、当該ノードIDがDHTルーティングテーブルに登録されている場合(ステップS721:YES)、ステップS722に進み、当該ノードIDがDHTルーティングテーブルに登録されていない場合には(ステップS721:NO)、ステップS724に進む。
ステップS722では、制御部11は、上記ノードIDに対応付けられてDHTルーティングテーブルに登録されているIPアドレスが、上記受信されたアドレス変更通知メッセージに含まれた変更通知に係るIPアドレスと同じであるか否かを判別し、同じである場合には(ステップS722:YES)、ステップS724に進み、異なる場合には(ステップS722:NO)、ステップS723に進む。
ステップS723では、制御部11は、上記アドレス変更通知メッセージに含まれた変更通知に係るIPアドレスにより、当該IPアドレスと同じノードIDが対応付けられてDHTルーティングテーブルに登録されているIPアドレスを更新する。
ステップS724では、制御部11は、受信されたアドレス変更通知メッセージに含まれるノードID(当該メッセージの送信元ノードNnのノードID)が、インデックスキャッシュに記憶されているか否かを判別する。そして、当該ノードIDがインデックスキャッシュに記憶されている場合(ステップS724:YES)、ステップS725に進み、当該ノードIDがインデックスキャッシュに記憶されていない場合には(ステップS724:NO)、図9に示す処理に戻る。
ステップS725では、制御部11は、上記ノードIDに対応付けられてインデックスキャッシュに記憶されているIPアドレスが、上記受信されたアドレス変更通知メッセージに含まれた変更通知に係るIPアドレスと同じであるか否かを判別し、同じである場合には(ステップS725:YES)、図9に示す処理に戻り、異なる場合には(ステップS725:NO)、ステップS726に進む。
ステップS726では、制御部11は、上記アドレス変更通知メッセージに含まれた変更通知に係るIPアドレスにより、当該IPアドレスと同じノードIDが対応付けられてインデックスキャッシュに記憶されているIPアドレスを更新し、図9に示す処理に戻る。
次に、図9に示すステップS73では、制御部11は、上記受信されたアドレス変更通知メッセージがDHTマルチキャストにより送信されたメッセージであるか否かを判別(例えば、IDマスクにより判別)し、DHTマルチキャストにより送信されたメッセージである場合には(ステップS73:YES)、ステップS74に進み、DHTマルチキャストにより送信されたメッセージでない場合には(ステップS73:NO)、図6に示す処理に戻る。
ステップS74では、制御部11は、上記受信されたアドレス変更通知メッセージに含まれるターゲットノードIDを自ノードのノードIDに変換する。
次いで、制御部11は、当該アドレス変更通知メッセージにおいて設定されているIDマスクに「1」を加算して得た値を、新たなIDマスクとしてアドレス変更通知メッセージに設定する(ステップS75)。
次いで、制御部11は、当該アドレス変更通知メッセージにおけるIDマスクがDHTルーティングテーブルの全レベル数(全段数)よりも小さいか否かを判別し(ステップS76)、IDマスクが上記全レベル数より小さい場合には(ステップS76:YES)、ステップS77に進み、IDマスクが上記全レベル数より小さくない場合、つまり、一致した場合には(ステップS76:NO)、図6に示す処理に戻る。
ステップS77では、制御部11は、DHTルーティングテーブルのうち、ステップS75で新たに設定されたIDマスク+1のレベル(例えば、レベル2)のテーブルにノード情報が登録されている全てのノードNnを選定し、選定した各ノードNnに対して、上記ターゲットノードIDが変換され新たなIDマスクが設定されたアドレス変更通知メッセージを転送し、ステップS75に戻る。
こうして、上記ステップS76においてIDマスクがDHTルーティングテーブルの全レベル数と一致するまで、ステップS75及びS77の処理は繰り返し実行され、DHTルーティングテーブルにノード情報が登録されているノードNnのうち、所定レベル(所定段)より下位のレベルにノード情報が登録されている全てのノードNnに対してアドレス変更通知メッセージが送信されることになる。ここで、所定レベルとは、アドレス変更通知メッセージの受信時におけるIDマスク+1のレベルに相当する。
次に、図9に示すステップS78では、制御部11は、受信したメッセージがパブリッシュメッセージであるか否かを判別し、パブリッシュメッセージである場合には(ステップS78:YES)、ステップS79に進み、パブリッシュメッセージでない場合には(ステップS78:NO)、ステップS85に進む。
ステップS79では、制御部11は、受信されたパブリッシュメッセージに含まれるノードID(当該メッセージの送信元ノードNnのノードID)が、インデックスキャッシュに記憶されているか否かを判別する。そして、当該ノードIDがインデックスキャッシュに記憶されている場合(ステップS79:YES)、ステップS80に進み、当該ノードIDがインデックスキャッシュに記憶されていない場合には(ステップS79:NO)、ステップS82に進む。
ステップS80では、制御部11は、上記ノードIDに対応付けられてインデックスキャッシュに記憶されているIPアドレスが、上記受信されたパブリッシュメッセージに含まれた変更通知に係るIPアドレスと同じであるか否かを判別し、同じである場合には(ステップS80:YES)、ステップS83に進み、異なる場合には(ステップS80:NO)、ステップS81に進む。
ステップS81では、制御部11は、上記パブリッシュメッセージに含まれた変更通知に係るIPアドレスにより、当該IPアドレスと同じノードIDが対応付けられてインデックスキャッシュに記憶されているIPアドレスを更新する。
ステップS82では、制御部11は、受信されたパブリッシュメッセージに含まれるコンテンツID及びノード情報の組をインデックス情報としてインデックスキャッシュに追加記憶する。
ステップS83では、制御部11は、受信されたパブリッシュメッセージが自ノード宛てであるか(つまり、自ノードがコンテンツIDのルートノードであるか)否かを、パブリッシュメッセージに含まれるコンテンツIDと、自ノードのノードID及びDHTルーティングテーブルに登録されている他のノードNnのノードIDとの比較結果に基づいて判別する。そして、自ノード宛である場合、例えば、パブリッシュメッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノードNnが自ノードである場合には、図6に示す処理に戻り、自ノード宛でない場合、ステップS84に進む。
ステップS84では、制御部11は、上記比較結果に基づいてDHTルーティングテーブルから一つのノードNnを選定、例えば、上記コンテンツIDに最も近いノードIDを有するノードNnを選定し、当該選定したノードNnに対して、上記パブリッシュメッセージを転送し、図6に示す処理に戻る。
次に、図9に示すステップS85では、制御部11は、受信したメッセージが再参加メッセージであるか否かを判別し、再参加メッセージである場合には(ステップS85:YES)、ステップS86に進み、再参加メッセージでない場合には(ステップS85:NO)、ステップS89に進む。
ステップS86では、制御部11は、図10に示すIPアドレス更新処理を行う。
次いで、制御部11は、受信された再参加メッセージが自ノード宛てであるか(つまり、自ノードが、再参加メッセージの送信元のノードNnのノードIDのルートノードであるか)否かを、再参加メッセージに含まれるノードIDと、自ノードのノードID及びDHTルーティングテーブルに登録されている他のノードNnのノードIDとの比較結果に基づいて判別する(ステップS87)。そして、自ノード宛である場合(ステップS87:YES)、例えば、再参加メッセージに含まれるノードIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノードNnが自ノードである場合には、図6に示す処理に戻り、自ノード宛でない場合(ステップS87:NO)、ステップS88に進む。
ステップS88では、制御部11は、上記比較結果に基づいてDHTルーティングテーブルから一つのノードNnを選定、例えば、上記再参加メッセージに含まれるノードIDに最も近いノードIDを有するノードNnを選定し、当該選定したノードNnに対して、上記再参加メッセージを転送し、図6に示す処理に戻る。
なお、ステップS89では、その他のメッセージ(例えば、参加メッセージ、コンテンツ所在問合せメッセージ、コンテンツ送信要求メッセージなど)に応じた処理が行われる。
図6に示すステップS8では、例えば、受信されたアドレス変更通知メッセージに含まれた変更通知に係るIPアドレスにより、当該IPアドレスと同じノードIDが対応付けられてログ情報中に含まれるIPアドレスが更新されるか、又は受信された参加メッセージに含まれるIPアドレス及びノードIDの組の新規追加が行われる。
次に、以上の図6〜図10の中で行われるメッセージの送信処理の詳細について、図11を参照して説明する。
図11に示す処理は、送信すべきメッセージ(例えば、アドレス変更通知メッセージなど)及び当該メッセージの送信先のノードNnが確定した場合に開始され、制御部11は、当該メッセージの送信先のノードNnとの接続がプールされているか否かを判別する(ステップS31)。
ここで、送信先のノードNnとの接続(セッション)は、例えば、3ウェイハンドシェイクと呼ばれる接続手順(SSL(Secure Socket Layer)を使用している場合、認証が行われる)により確立されるが、コンテンツ分散保存システムSでは、多くのノードNnとの接続がなされるので、メッセージの転送の度にハンドシェイクが行われると、転送に時間がかかる。よって、頻繁に接続が行われるノードNnとは、一度ハンドシェイクが行われたら、その接続を切断せずに、そのセッション情報をソケットテーブルに登録し保持(これをソケットプールという)しておく。例えば、ソケットテーブルには、最大50程度のセッション情報を登録できる(50程度のソケットをプールできる)ようになっている。なお、セッション情報には、例えば、自ノードのノード情報、接続相手のノード情報、及びソケット識別子が含まれる。そして、ソケットプールされていないノードNnとの新たな接続は、ソケットプールの中で最も使用されていないノードNnとの接続が切断された上で、ハンドシェイクにより行われる。
上記ステップS31において、当該メッセージの送信先のノードNnとの接続がプールされている場合(ステップS31:YES)、制御部11は、当該メッセージ(パケット)を、当該送信先のノードNnに通信部19を通じて送信する(ステップS32)。
一方、当該メッセージの送信先のノードNnとの接続がプールされていない場合(ステップS31:NO)、制御部11は、当該送信先のノードNnのIPアドレス及びポート番号を宛先IPアドレス及び宛先ポート番号として用いて上記ハンドシェイクにより当該送信先のノードNnとの接続確立を試みる。そして、上記送信先のノードNnとの接続確立できた場合には(ステップS33:YES)、制御部11は、当該送信先のノードNnとのセッション情報をソケットテーブルに追加登録(最大登録数に達している場合、例えば最も古いセッション情報を削除した上で追加登録)し(ステップS34)、上記ステップS32の処理を行う。一方、上記送信先のノードNnとの接続確立できない場合には(ステップS33:NO)、制御部11は、当該送信先のノードNnのノード情報をDHTルーティングテーブル等から削除する(ステップS35)。次いで、制御部11は、上記送信すべきメッセージが他のノードNnへ転送すべきメッセージ(例えば、パブリッシュメッセージなど)であるか否かを判別し(ステップS36)、転送すべきメッセージである場合には(ステップS36:YES)、ステップS37に進み、転送すべきメッセージでない場合には(ステップS36:NO)、ステップS38に進む。
ステップS37では、制御部11は、当該メッセージの他の送信先(転送先)のノードNnの候補を例えばDHTルーティングテーブルから検索し、検索できた場合には(ステップS37:YES)、ステップS31に戻り、当該検索できたノードNnについて上記と同様の処理を行う。一方、検索できなかった場合には(ステップS37:NO)、制御部11は、ステップS38に進む。
ステップS38〜S44は、ソケットプールのクリーニング処理である。先ず、制御部11は、変数Iを「0」に設定し(ステップS38)、当該Iがソケットテーブルへの最大登録数(例えば、50)より小さいか否かを判別する(ステップS39)。そして、Iがソケットテーブルへの最大登録数(例えば、50)より小さい場合には(ステップS39:YES)、ステップS40に進み、Iがソケットテーブルへの最大登録数(例えば、50)より小さくない場合には(ステップS39:NO)、当該処理が終了する。
ステップS40では、制御部11は、ソケットテーブルのI番目に登録されているノードNnとの接続が確立されているか否かを判別し、接続が確立されている場合には(ステップS40:YES)、ステップS41に進み、接続が確立されていない場合には(ステップS40:NO)、ステップS44に進む。
ステップS41では、制御部11は、I番目に登録されているノードNnとの間で非推奨のIPアドレス(自ノードのIPアドレス)で接続しているか否かを判別し、非推奨のIPアドレスで接続している場合には(ステップS41:YES)、ステップS42に進み、推奨のIPアドレスで接続している場合には(ステップS41:NO)、ステップS44に進む。
ここで、上記非推奨のIPアドレスは、IPv6の場合を考慮したものである。IPv6の場合、IPアドレスの割り当てから一定時間までは推奨期間であるが、この推奨期間を過ぎると、当該IPアドレスは非推奨になる。
ステップS42では、制御部11は、I番目に登録されているノードNnに対して、現時点から過去所定時間(例えば、10分)以内にメッセージを送信しているか否かを判別し、メッセージを送信している場合には(ステップS42:YES)、ステップS44に進み、メッセージを送信していない場合には(ステップS42:NO)、ステップS43に進む。
ステップS43では、制御部11は、I番目に登録されているノードNnとの接続を切断し、ステップS44に進む。
ステップS44では、制御部11は、上記Iを1インクリメントしてステップS39に戻り、次のノードNnについて上記と同様の処理を行う。
以上説明したように、上記実施形態によれば、各ノードNnは、自己のIPアドレスの変更を検出した場合には、DHTルーティングテーブルやインデックスキャッシュ等から他のノードNnを選定し、当該選定したノードNnに対してアドレス変更通知メッセージを送信することにより、IPアドレスの変更を通知して更新させるように構成したので、IPアドレスが変更されても、各ノードNn間の情報伝達(例えば、DHTルーティングテーブルを用いたメッセージのルーティング等)に支障が来たすことを防止することができる。
また、IPアドレスの変更通知をパブリッシュメッセージと同様の転送経路で行うように構成すれば、パブリッシュメッセージがルートノードに至るまでの転送経路において自ノードのIPアドレスを記憶しているであろうノードNnに対して、より効果的にIPアドレスの変更を通知することができる。
また、IPアドレスの変更通知を参加メッセージと同様の転送経路で行うように構成すれば、再参加メッセージがルートノードに至るまでの転送経路において自ノードのIPアドレスを記憶しているであろうノードNnに対して、より効果的にIPアドレスの変更を通知することができる。
また、IPアドレスの変更通知をDHTマルチキャストにより行うように構成すれば、コンテンツ分散保存システムSに参加している全てのノードNnに対してIPアドレスの変更を通知することができる。
なお、上記実施形態においては、アドレス情報の一例としてIPアドレスとしたが、待ち受けポート(listen port)の変更の場合にも適用できる。
なお、上記実施形態におけるコンテンツ分散保存システムSは、DHTを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。
8 ネットワーク
9 オーバーレイネットワーク
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
19 通信部
20 入力部
21 バス
Nn ノード
S コンテンツ分散保存システム
9 オーバーレイネットワーク
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
19 通信部
20 入力部
21 バス
Nn ノード
S コンテンツ分散保存システム
Claims (11)
- ネットワークに接続された複数のノード装置の参加により構成されるコンテンツ分散保存システムであり、複数のコンテンツの複製データが複数のノード装置に分散して保存され、各ノード装置間で前記複製データを授受可能としたコンテンツ分散保存システムにおいて、
前記ノード装置は、
前記コンテンツ分散保存システムに参加している複数のノード装置であって当該コンテンツ分散保存システムに参加している全ノード装置の数より少ない数のノード装置のアドレス情報及びノード識別情報を記憶する記憶手段と、
自己のアドレス情報の変更を検出するアドレス変更検出手段と、
前記アドレス情報の変更が検出された場合には、前記アドレス情報が記憶されているノード装置のうちから少なくとも一つのノード装置を選定するノード選定手段と、
前記選定されたノード装置のアドレス情報を用いて当該ノード装置に前記ネットワークを介して接続し当該ノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信するアドレス変更通知手段と、
を備え、
前記アドレス変更通知メッセージを受信するノード装置は、
前記コンテンツ分散保存システムに参加している複数のノード装置であって当該コンテンツ分散保存システムに参加している全ノード装置の数より少ない数のノード装置のアドレス情報及びノード識別情報を記憶する記憶手段と、
前記受信されたアドレス変更通知メッセージに含まれるノード識別情報が過去に記憶されており、当該記憶されているノード識別情報に対応付けられて記憶されているアドレス情報が、前記メッセージに含まれるアドレス情報と異なる場合には、当該記憶されているアドレス情報に代えて当該メッセージに含まれるアドレス情報に更新するアドレス情報更新手段と、
を備えることを特徴とするコンテンツ分散保存システム。 - 請求項1に記載のコンテンツ分散保存システムにおいて、
前記記憶手段には、メッセージの送信先候補となる前記複数のノード装置であって前記コンテンツ分散保存システムに参加している全ノード装置の数より少ない数のノード装置のアドレス情報及びノード識別情報が登録された送信先テーブルが記憶されており、
前記ノード選定手段は、前記送信先テーブルにアドレス情報が登録されているノード装置を選定し、
前記アドレス変更通知手段は、前記選定されたノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信することを特徴とするコンテンツ分散保存システム。 - 請求項2に記載のコンテンツ分散保存システムにおいて、
前記アドレス変更通知メッセージを受信したノード装置は、
前記受信されたアドレス変更通知メッセージに含まれるノード識別情報と、前記送信先テーブルに登録された他のノード装置のノード識別情報との比較結果に基づいて前記送信先テーブルから一つのノード装置を選定し、当該選定したノード装置のアドレス情報を用いて当該ノード装置に前記ネットワークを介して接続し当該ノード装置に対して、前記アドレス変更通知メッセージを転送するメッセージ転送手段を
更に備えることを特徴とするコンテンツ分散保存システム。 - 請求項2に記載のコンテンツ分散保存システムにおいて、
前記送信先テーブルは、アドレス情報を複数段に区別して登録し、
前記ノード選定手段は、前記送信先テーブルの所定段にアドレス情報が登録されているノード装置、及び当該所定段より下位の段にアドレス情報が登録されているノード装置を選定し、
前記アドレス変更通知手段は、前記選定されたノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信するものであって、
前記アドレス変更通知メッセージを受信するノード装置は、
前記送信先テーブルの前記所定段より下位の段にアドレス情報が登録されているノード装置を選定し、当該選定した各ノード装置のアドレス情報を用いて当該各ノード装置に前記ネットワークを介して接続し当該各ノード装置に対して、前記アドレス変更通知メッセージを転送するメッセージ転送手段を更に備え、
当該アドレス変更通知メッセージの転送は、その後に当該メッセージを受信した各ノード装置において同様に行われることを特徴とするコンテンツ分散保存システム。 - 請求項1に記載のコンテンツ分散保存システムにおいて、
前記記憶手段には、何れかの前記コンテンツの複製データを保存している他のノード装置のアドレス情報と当該コンテンツのコンテンツ識別情報の組を含むインデックス情報が記憶されており、
前記ノード選定手段は、前記インデックス情報にアドレス情報が含まれているノード装置を選定し、
前記アドレス変更通知手段は、前記選定されたノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信することを特徴とするコンテンツ分散保存システム。 - 請求項1に記載のコンテンツ分散保存システムにおいて、
前記記憶手段には、自己にメッセージを過去に送信した他のノード装置のアドレス情報を含むログ情報が記憶されており、
前記ノード選定手段は、前記ログ情報にアドレス情報が含まれているノード装置を選定し、
前記アドレス変更通知手段は、前記選定されたノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信することを特徴とするコンテンツ分散保存システム。 - 請求項1に記載のコンテンツ分散保存システムにおいて、
前記記憶手段には、前記コンテンツ分散保存システムへの参加の際に送信するべき参加メッセージの送信先のノード装置のアドレス情報が記憶されており、
前記ノード選定手段は、前記参加メッセージの送信先のノード装置を選定し、
前記アドレス変更通知手段は、前記選定されたノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信するものであって、
前記アドレス変更通知メッセージを受信したノード装置は、
前記受信されたアドレス変更通知メッセージに含まれるノード識別情報と、前記送信先テーブルに登録された他のノード装置のノード識別情報との比較結果に基づいて前記送信先テーブルから一つのノード装置を選定し、当該選定したノード装置のアドレス情報を用いて当該ノード装置に前記ネットワークを介して接続し当該ノード装置に対して、前記アドレス変更通知メッセージを転送するメッセージ転送手段を
更に備えることを特徴とするコンテンツ分散保存システム。 - 請求項1乃至7の何れか一項に記載のコンテンツ分散保存システムにおいて、
前記記憶手段には、メッセージの送信先候補となる前記複数のノード装置であって前記コンテンツ分散保存システムに参加している全ノード装置の数より少ない数のノード装置のアドレス情報及びノード識別情報が登録された送信先テーブルが記憶されており、
前記アドレス変更通知手段は、自己が保存している前記複製データに対応するコンテンツ識別情報と、前記送信先テーブルに登録されている他のノード装置のノード識別情報との比較結果に基づいて前記送信先テーブルから一つのノード装置を選定し、当該選定したノード装置のアドレス情報を用いて当該ノード装置に前記ネットワークを介して接続し当該ノード装置に対して、前記変更されたアドレス情報、当該コンテンツ識別情報及び自己のノード識別情報を含むアドレス変更通知メッセージを送信するものであって、
前記アドレス変更通知メッセージを受信したノード装置は、
前記受信されたアドレス変更通知メッセージが自己宛てであるか否かを、前記アドレス変更通知メッセージに含まれるコンテンツ識別情報と、自己のノード識別情報及び前記送信先テーブルに登録されている他のノード装置のノード識別情報との比較結果に基づいて判別し、自己宛でない場合には、前記比較結果に基づいて前記送信先テーブルから一つのノード装置を選定し、当該選定したノード装置のアドレス情報を用いて当該ノード装置に前記ネットワークを介して接続し当該ノード装置に対して、前記アドレス変更通知メッセージを転送するメッセージ転送手段と、
を更に備えることを特徴とするコンテンツ分散保存システム。 - ネットワークに接続された複数のノード装置の参加により構成されるコンテンツ分散保存システムであり、複数のコンテンツの複製データが複数のノード装置に分散して保存され、各ノード装置間で前記複製データを授受可能としたコンテンツ分散保存システムにおけるノード装置であって、
前記コンテンツ分散保存システムに参加している全ノード装置の数より少ない数のノード装置のアドレス情報及びノード識別情報を記憶する記憶手段と、
自己のアドレス情報の変更を検出するアドレス変更検出手段と、
前記アドレス情報の変更が検出された場合には、前記アドレス情報が記憶されているノード装置のうちから少なくとも一つのノード装置を選定するノード選定手段と、
前記選定されたノード装置のアドレス情報を用いて当該ノード装置に前記ネットワークを介して接続し当該ノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信するアドレス変更通知手段と、
前記受信したアドレス変更通知メッセージに含まれるノード識別情報が過去に記憶されており、当該記憶されているノード識別情報に対応付けられて記憶されているアドレス情報が、前記メッセージに含まれるアドレス情報と異なる場合には、当該記憶されているアドレス情報に代えて当該メッセージに含まれるアドレス情報に更新するアドレス情報更新手段と、
を備えることを特徴とするノード装置。 - コンピュータを、請求項1乃至9の何れか一項に記載のコンテンツ分散保存システムにおけるノード装置として機能させることを特徴とするノード処理プログラム。
- ネットワークに接続された複数のノード装置の参加により構成されるコンテンツ分散保存システムであり、複数のコンテンツの複製データが複数のノード装置に分散して保存され、各ノード装置間で前記複製データを授受可能としたコンテンツ分散保存システムにおけるアドレス情報変更通知方法であって、
前記ノード装置は、
前記コンテンツ分散保存システムに参加している複数のノード装置であって当該コンテンツ分散保存システムに参加している全ノード装置の数より少ない数のノード装置のアドレス情報及びノード識別情報を記憶する工程と、
自己のアドレス情報の変更を検出する工程と、
前記アドレス情報の変更が検出された場合には、前記アドレス情報が記憶されているノード装置のうちから少なくとも一つのノード装置を選定する工程と、
前記選定されたノード装置のアドレス情報を用いて当該ノード装置に前記ネットワークを介して接続し当該ノード装置に対して前記変更されたアドレス情報、及び自己のノード識別情報を含むアドレス変更通知メッセージを送信する工程と、
を備え、
前記アドレス変更通知メッセージを受信するノード装置は、
前記コンテンツ分散保存システムに参加している複数のノード装置であって当該コンテンツ分散保存システムに参加している全ノード装置の数より少ない数のノード装置のアドレス情報及びノード識別情報を記憶する工程と、
前記受信されたアドレス変更通知メッセージに含まれるノード識別情報が過去に記憶されており、当該記憶されているノード識別情報に対応付けられて記憶されているアドレス情報が、前記メッセージに含まれるアドレス情報と異なる場合には、当該記憶されているアドレス情報に代えて当該メッセージに含まれるアドレス情報に更新する工程と、
を備えることを特徴とするアドレス情報変更通知方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008188825A JP2010028551A (ja) | 2008-07-22 | 2008-07-22 | コンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びアドレス情報変更通知方法 |
US12/458,638 US8321586B2 (en) | 2008-07-22 | 2009-07-17 | Distributed storage system, node device, recording medium in which node processing program is recorded, and address information change notifying method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008188825A JP2010028551A (ja) | 2008-07-22 | 2008-07-22 | コンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びアドレス情報変更通知方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010028551A true JP2010028551A (ja) | 2010-02-04 |
Family
ID=41569594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008188825A Pending JP2010028551A (ja) | 2008-07-22 | 2008-07-22 | コンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びアドレス情報変更通知方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8321586B2 (ja) |
JP (1) | JP2010028551A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012054648A (ja) * | 2010-08-31 | 2012-03-15 | Brother Ind Ltd | ノード装置、情報通信システム、情報通信方法及びプログラム |
JP2012178786A (ja) * | 2011-02-28 | 2012-09-13 | Brother Ind Ltd | 情報通信システム、情報通信方法、情報処理装置およびプログラム |
JP2013026683A (ja) * | 2011-07-15 | 2013-02-04 | National Institute Of Information & Communication Technology | 情報伝達経路探索システム |
JP2013210698A (ja) * | 2012-03-30 | 2013-10-10 | Hitachi Solutions Ltd | ファイル検索システム及びプログラム |
CN104537081A (zh) * | 2014-12-31 | 2015-04-22 | 北京畅游天下网络技术有限公司 | 文件管理系统和方法 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011101523A1 (en) * | 2010-02-17 | 2011-08-25 | Nokia Corporation | Cognitive control network selection |
CN102866995B (zh) * | 2011-07-05 | 2017-05-24 | 中兴通讯股份有限公司 | 对等网络的文件访问方法、管理方法及分布式文件系统 |
CN103139081B (zh) * | 2011-11-28 | 2017-08-11 | 中兴通讯股份有限公司 | 分布式哈希表路由表更新方法及节点 |
US9288177B2 (en) * | 2011-12-14 | 2016-03-15 | International Business Machines Corporation | Inventory updating of an internet protocol (IP) alias within a highly available computing cluster |
US10157051B2 (en) * | 2012-03-02 | 2018-12-18 | International Business Machines Corporation | Upgrading devices in a dispersed storage network |
JP2018067248A (ja) * | 2016-10-21 | 2018-04-26 | 富士通株式会社 | 制御プログラム、制御方法、及び情報処理装置 |
US11258694B2 (en) * | 2017-01-04 | 2022-02-22 | Cisco Technology, Inc. | Providing dynamic routing updates in field area network deployment using Internet Key Exchange v2 |
WO2018131176A1 (ja) * | 2017-01-11 | 2018-07-19 | 甲賀電子株式会社 | データ通信方法 |
CN109561125B (zh) * | 2017-09-27 | 2021-11-09 | 阿里巴巴集团控股有限公司 | 一种数据传输方法、分布式系统中复制数据的方法及装置 |
US11412041B2 (en) | 2018-06-25 | 2022-08-09 | International Business Machines Corporation | Automatic intervention of global coordinator |
CN110365809B (zh) * | 2019-07-23 | 2021-12-14 | 中南民族大学 | 分布式服务器地址配置系统及方法 |
CN110932980B (zh) * | 2019-11-27 | 2022-09-20 | 达闼机器人股份有限公司 | 通信方法、终端及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007174672A (ja) * | 2005-12-21 | 2007-07-05 | Ntt Docomo Inc | ピアツーピアルックアップシステムに対するモビリティチャーン処理のための方法および装置 |
WO2008142511A2 (en) * | 2007-05-17 | 2008-11-27 | Nokia Corporation | A node and method to provide and keep real-time up-to-date data in a distributed hash table |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613796B2 (en) * | 2002-09-11 | 2009-11-03 | Microsoft Corporation | System and method for creating improved overlay network with an efficient distributed data structure |
US7555527B1 (en) * | 2003-11-07 | 2009-06-30 | Symantec Operating Corporation | Efficiently linking storage object replicas in a computer network |
US7698414B1 (en) * | 2004-05-27 | 2010-04-13 | Symantec Operating Corporation | Global monitoring and statistics collection for a plurality of computing nodes |
WO2006075424A1 (ja) * | 2005-01-13 | 2006-07-20 | Brother Kogyo Kabushiki Kaisha | 情報配信システム、配信要求プログラム、転送プログラム、配信プログラム等 |
JP4418897B2 (ja) | 2005-01-14 | 2010-02-24 | ブラザー工業株式会社 | 情報配信システム、情報更新プログラム、及び情報更新方法等 |
JP2006277338A (ja) * | 2005-03-29 | 2006-10-12 | Brother Ind Ltd | 情報処理装置及び蓄積装置、情報処理方法及び蓄積方法並びに情報処理用プログラム及び蓄積装置用プログラム |
US7808971B2 (en) * | 2005-07-01 | 2010-10-05 | Miller John L | Routing cache for distributed hash tables |
JP2007280303A (ja) * | 2006-04-11 | 2007-10-25 | Brother Ind Ltd | 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等 |
-
2008
- 2008-07-22 JP JP2008188825A patent/JP2010028551A/ja active Pending
-
2009
- 2009-07-17 US US12/458,638 patent/US8321586B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007174672A (ja) * | 2005-12-21 | 2007-07-05 | Ntt Docomo Inc | ピアツーピアルックアップシステムに対するモビリティチャーン処理のための方法および装置 |
WO2008142511A2 (en) * | 2007-05-17 | 2008-11-27 | Nokia Corporation | A node and method to provide and keep real-time up-to-date data in a distributed hash table |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012054648A (ja) * | 2010-08-31 | 2012-03-15 | Brother Ind Ltd | ノード装置、情報通信システム、情報通信方法及びプログラム |
JP2012178786A (ja) * | 2011-02-28 | 2012-09-13 | Brother Ind Ltd | 情報通信システム、情報通信方法、情報処理装置およびプログラム |
US8943121B2 (en) | 2011-02-28 | 2015-01-27 | Brother Kogyo Kabushiki Kaisha | Communication across an overlay network |
JP2013026683A (ja) * | 2011-07-15 | 2013-02-04 | National Institute Of Information & Communication Technology | 情報伝達経路探索システム |
JP2013210698A (ja) * | 2012-03-30 | 2013-10-10 | Hitachi Solutions Ltd | ファイル検索システム及びプログラム |
CN104537081A (zh) * | 2014-12-31 | 2015-04-22 | 北京畅游天下网络技术有限公司 | 文件管理系统和方法 |
CN104537081B (zh) * | 2014-12-31 | 2018-11-16 | 北京畅游时空软件技术有限公司 | 文件管理系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20100023593A1 (en) | 2010-01-28 |
US8321586B2 (en) | 2012-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010028551A (ja) | コンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びアドレス情報変更通知方法 | |
JP4371056B2 (ja) | ノード装置、ネットワーク参加処理プログラム、及びネットワーク参加処理方法等 | |
US7782867B2 (en) | Node device, memory medium saving computer program, information delivery system, and network participation method | |
JP4375303B2 (ja) | 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置、情報処理プログラムおよびノード装置のプログラム | |
US20080235321A1 (en) | Distributed contents storing system, copied data acquiring method, node device, and program processed in node | |
JP2007058275A (ja) | ノード装置、共用情報更新処理プログラム、共用情報更新方法、及び情報共有システム | |
JP2007200203A (ja) | 情報配信システム、再登録メッセージ送信方法、ノード装置、及びノード処理プログラム | |
JP4702314B2 (ja) | コンテンツ分散保存システム、ノード装置、ノード処理プログラム、及びコンテンツデータ取得方法 | |
US8819295B2 (en) | Information communication system, first information processing device, method for processing information, and computer readable storage medium | |
JP2008294627A (ja) | 通信システム、ノード装置、ノード処理プログラム、及びメッセージ送受信方法 | |
US8332463B2 (en) | Distributed storage system, connection information notifying method, and recording medium in which distributed storage program is recorded | |
JP4539603B2 (ja) | 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム | |
JP5532649B2 (ja) | ノード装置、ノード処理プログラム及びコンテンツ保存方法 | |
JP5212292B2 (ja) | 情報通信システム、ノード装置、ノード装置確認方法及びプログラム | |
JP4623030B2 (ja) | ツリー型放送システム、接続先決定方法、接続管理装置、及び接続管理処理プログラム等 | |
JP2009232272A (ja) | コンテンツ分散保存システム、コンテンツ再生方法、ノード装置、管理装置、ノード処理プログラム、及び管理処理プログラム | |
JP2010039722A (ja) | ノード装置、管理ノード装置、ノード処理プログラム、管理ノード処理プログラム、コンテンツ分散保存システム、複製データ取得方法 | |
JP4770804B2 (ja) | オーバレイネットワーク型通信システム、オーバレイネットワーク型ノード装置およびプログラム | |
JP5434268B2 (ja) | 分散保存システム、データファイル分散保存方法及びプログラム | |
JP5287059B2 (ja) | ノード装置、ノード処理プログラム及び保存指示方法 | |
JP5494361B2 (ja) | 分散保存システム、代表ノード装置、通知方法及びプログラム | |
JP2009187056A (ja) | コンテンツ分散保存システム、評価値加算方法、サーバ装置、ノード装置、及びノード処理プログラム | |
JP2009080546A (ja) | コンテンツ分散保存システム、複製データ保存数集計方法、ノード装置、及びノード処理プログラム | |
JP2010067073A (ja) | 保存指示装置、ノード装置、及び保存指示処理プログラム、ノード処理プログラム及び保存指示方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110314 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120316 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120522 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120925 |