JP4862463B2 - 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等 - Google Patents

情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等 Download PDF

Info

Publication number
JP4862463B2
JP4862463B2 JP2006109159A JP2006109159A JP4862463B2 JP 4862463 B2 JP4862463 B2 JP 4862463B2 JP 2006109159 A JP2006109159 A JP 2006109159A JP 2006109159 A JP2006109159 A JP 2006109159A JP 4862463 B2 JP4862463 B2 JP 4862463B2
Authority
JP
Japan
Prior art keywords
information
node
content
catalog
node device
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.)
Active
Application number
JP2006109159A
Other languages
English (en)
Other versions
JP2007280304A (ja
Inventor
建太郎 牛山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2006109159A priority Critical patent/JP4862463B2/ja
Priority to PCT/JP2007/055500 priority patent/WO2007119418A1/ja
Publication of JP2007280304A publication Critical patent/JP2007280304A/ja
Priority to US12/222,584 priority patent/US8312065B2/en
Application granted granted Critical
Publication of JP4862463B2 publication Critical patent/JP4862463B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/252Processing of multiple end-users' preferences to derive collaborative data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4826End-user interface for program selection using recommendation lists, e.g. of programs or channels sorted out according to their score
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/632Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8106Monomedia components thereof involving special audio data, e.g. different tracks for different languages
    • H04N21/8113Monomedia components thereof involving special audio data, e.g. different tracks for different languages comprising music, e.g. song in MP3 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17318Direct or substantially direct transmission and handling of requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))型のコンテンツ配信システムに関し、特に、複数のコンテンツデータが複数のノード装置に分散して保存されたコンテンツ配信システム等の技術分野に関する。
この種のコンテンツ配信システムにおいては、各ノード装置は、複数のノード装置に分散保存されているコンテンツデータの属性情報(例えば、コンテンツ名、ジャンル、アーティスト名等)が記述されたコンテンツカタログ情報を有しており、当該コンテンツカタログ情報に記述された属性情報に基づき、ユーザが所望するコンテンツデータをダウンロードすることが可能になっている。このようなコンテンツカタログ情報は、複数のノード装置において共通に使用されるべき共用情報であり、一般に、コンテンツ配信システム上に保存されている全てのコンテンツデータを管理する管理サーバにより管理され、ノード装置からの要求に応じて、管理サーバから当該ノード装置に対して上記コンテンツカタログ情報が送信されるようになっている。
例えば、特許文献1には、この種の管理サーバとして、最上位に存在し、コンテンツ配信管理システム内の全てのコンテンツ情報を管理するインデックスサーバが開示されている。
一方、管理サーバを用いない方法として、Gnutella, Freenet, Winnyなどの、ピュアP2P型の配信システムも考案されているが、それらのシステムでは、コンテンツ名やコンテンツに関するキーワードを指定してコンテンツを検索し、場所を特定し、それにアクセスするという仕組みになっている。しかし、この方法では、コンテンツ名の全リストを取得する方法がないため、ユーザが全コンテンツリストを眺めてその中から所望のコンテンツを選んでアクセスする、という使い方ができない。
特開2002−318720号公報
ところで、コンテンツ配信システム上に投入されるコンテンツの数が膨大になると、コンテンツカタログ情報のデータ量が大きくなりすぎて1台のノードに記憶しきれないという問題が生じ、この場合、各ノードは、コンテンツカタログ情報全てを利用できなくなるということが想定される。
このため、コンテンツカタログ情報を分割して複数のサーバやノード装置に保存しておき、各ノード装置は、必要な分のコンテンツカタログ情報を保存しているサーバ等から、当該コンテンツカタログ情報を取得して利用することが考えられるが、この場合、各ノード装置は、所望のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を探すのは容易ではない。
本発明は、以上の点に鑑みてなされたものであり、各ノード装置が担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するようにした情報通信システムにおいて、各ノード装置が、所望のコンテンツカタログ情報を、より効率良く検索することが可能な情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等を提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備える情報通信システムにおいて前記ノード装置により取得可能な複数のコンテンツデータの夫々に固有の識別情報であって一定桁数からなるコンテンツ識別情報が対応付けられ、且つ、前記ノード装置には夫々に固有の識別情報であって前記コンテンツ識別情報と同一の桁数からなるノード識別情報が対応付けられる前記情報通信システムにおける前記ノード装置において、管理サーバまたは他のノード装置から配信されてきたコンテンツカタログ情報であって前記情報通信システムにおいて取得可能なコンテンツデータの属性情報が記述されたコンテンツカタログ情報を受信する受信手段と、前記受信手段により受信されたコンテンツカタログ情報のうち、前記受信手段により前記コンテンツカタログ情報を受信した前記ノード装置の前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶する記憶手段と、前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記コンテンツデータの属性情報の中から、所定の検索条件を満たす属性情報が記述されたコンテンツカタログ情報を前記記憶手段から取得する第1取得手段と、前記ノード識別情報と所定桁数が一致しない前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記所定の検索条件が含まれる検索要求情報を、他のノード装置に対して送信する送信手段と、前記送信手段により送信された検索要求情報が示す検索条件により検索された前記コンテンツカタログ情報を他のノード装置から取得する第2取得手段と、を備えることを特徴とする。
請求項1に記載の発明によれば、ノード装置は、自己の担当範囲外のコンテンツデータに係るコンテンツカタログ情報についての検索要求を効率良く行うことができる。よって、各ノード装置は、所望のコンテンツカタログ情報を、より効率良く取得することができる。
請求項2に記載の発明は、請求項1に記載のノード装置において、前記複数のノード装置は、所定の規則に従って複数のグループに分けられており、前記ノード装置は、前記グループに属する代表のノード装置の宛先情報を登録するルーティングテーブルを記憶する宛先情報記憶手段を更に備え、前記送信手段は、前記グループに属する代表のノード装置の宛先情報にしたがって、前記代表のノード装置に対して前記検索要求情報を送信し、前記第2取得手段は、前記検索条件により検索された前記コンテンツカタログ情報を前記代表のノード装置から取得することを特徴とする
請求項2に記載の発明によれば、ルーティングテーブルを用いて前記コンテンツカタログ情報を前記代表のノード装置からより効率良く取得することができる。
請求項3に記載の発明は、請求項に記載のノード装置において、前記ルーティングテーブルは、前記ルーティングテーブルを記憶する前記ノード装置が属するグループをさらに複数のグループに分けた小グループに属する代表のノード装置の宛先情報を登録し、前記送信手段は、前記小グループに属する代表のノード装置の宛先情報にしたがって、前記小グループに属する代表のノード装置に対して前記検索要求情報を送信し、前記第2取得手段は、前記検索条件により検索された前記コンテンツカタログ情報を前記小グループに属する代表のノード装置から取得することを特徴とする。この発明によれば、自己の担当範囲外のコンテンツデータに係るコンテンツカタログ情報についての検索要求を、自己が属するグループをさらに複数のグループに分けた各小グループに属する代表のノード装置の宛先情報にしたがって効率良く行うことができる。
請求項4に記載の発明は、請求項2又は3に記載のノード装置において、前記ルーティングテーブルは、前記ノード識別情報の所定桁目の値毎に分けられた前記グループに属する代表のノード装置の宛先情報を登録し、前記送信手段は、前記所定桁目の値毎に分けられた前記グループのうち、前記所定桁目が、前記コンテンツ識別情報の所定桁目と一致しない前記グループに属する代表のノード装置の宛先情報にしたがって、前記代表のノード装置に対して前記検索要求情報を送信することを特徴とする。
請求項4に記載の発明によれば、コンテンツカタログ情報についての検索要求先を容易に把握することができる。
請求項5に記載の発明は、請求項1乃至4の何れか一項に記載のノード装置において、前記ノード装置は、前記記憶手段に記憶されているコンテンツカタログ情報のデータ量が所定量以上になった場合に、前記所定桁数が小さくなるように変更する変更手段と、前記記憶手段に記憶されているコンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、前記変更手段により変更されることにより前記ノード装置の前記ノード識別情報と所定桁数が一致しなくなった前記コンテンツ識別情報に対応するコンテンツデータの属性情報を前記コンテンツカタログ情報から削除する削除手段と、を更に備えることを特徴とする。
請求項に記載の発明によれば、自己の担当範囲のコンテンツデータに係るコンテンツカタログ情報のデータ量が増え、あふれそうになった場合にも、各ノード装置は当該コンテンツカタログ情報を記憶するための記憶容量を確保することができる。
請求項6に記載の発明は、請求項1乃至5の何れか一項に記載のノード装置において、前記ノード装置は、他のノード装置指示された検索条件が含まれる検索要求情報を受信した場合に、この検索要求情報を受信した前記ノード装置の前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータの属性情報の中から前記検索要求情報に含まれる検索条件を満たす属性情報が記述されたコンテンツカタログ情報を、前記記憶手段から検索する検索手段と、前記検索手段により検索された前記コンテンツカタログ情報を含む検索結果情報を、前記検索要求情報を送信した前記他のノード装置に対して返信する返信手段と、を備えることを特徴とする。この発明によれば、ノード装置は、他のノード装置からの要求に応じて、自己の担当範囲のコンテンツデータに係るコンテンツカタログ情報を、より効率良く返信することができる。
請求項7に記載の発明は、請求項1乃至5の何れか一項に記載のノード装置において、前記複数のノード装置は、所定の規則に従って複数のグループに分けられており、前記ノード装置は、前記グループに属する代表のノード装置の宛先情報を登録するルーティングテーブルを記憶し、且つ、このルーティングテーブルを記憶する前記ノード装置が属するグループをさらに複数のグループに分けた小グループに属する代表のノード装置の宛先情報を登録する前記ルーティングテーブルを記憶する宛先情報記憶手段と、他のノード装置より指示された検索条件が含まれる検索要求情報を受信した場合に、この検索要求情報を受信した前記ノード装置の前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータの属性情報の中から前記検索要求情報に含まれる検索条件を満たす属性情報が記述されたコンテンツカタログ情報を、前記記憶手段から検索する検索手段と、前記小グループに属する代表のノード装置の宛先情報にしたがって、前記他のノード装置から受信された前記検索要求情報を前記小グループに属する代表のノード装置に対して転送する転送手段と、前記転送手段により前記検索要求情報を転送した前記ノード装置の前記ノード識別情報と所定桁数が一致しない前記コンテンツ識別情報に対応するコンテンツデータの属性情報であって、前記検索要求情報に含まれる検索条件を満たす属性情報が記述されたコンテンツカタログ情報を、前記小グループに属する代表のノード装置から取得する第3取得手段と、前記検索手段により検索された前記コンテンツカタログ情報と、前記第3取得手段により取得された前記コンテンツカタログ情報とを含む検索結果情報を、前記検索要求情報を送信した前記他のノード装置に対して返信する返信手段と、を備えることを特徴とする。この発明によれば、検索要求を受けたノード装置は、自己の担当範囲外のコンテンツデータに係るコンテンツカタログ情報については、自己が属するグループをさらに複数のグループに分けた小グループに属する代表のノード装置に対して検索要求を行い、それらのノード装置から検索結果を取得してこれを自己の範囲の検索結果と合わせて、検索要求元のノード装置に返信するようにしたので、より効率良く、確実に検索結果を返すことができる。
請求項8に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備える情報通信システムにおいて前記ノード装置により取得可能な複数のコンテンツデータの夫々に固有の識別情報であって一定桁数からなるコンテンツ識別情報が対応付けられ、且つ、前記ノード装置には夫々に固有の識別情報であって前記コンテンツ識別情報と同一の桁数からなるノード識別情報が対応付けられる前記情報通信システムにおける前記ノード装置に含まれるコンピュータに、管理サーバまたは他のノード装置から配信されてきたコンテンツカタログ情報であって前記情報通信システムにおいて取得可能なコンテンツデータの属性情報が記述されたコンテンツカタログ情報を受信する受信ステップと、前記受信ステップにより受信されたコンテンツカタログ情報のうち、前記受信ステップにより前記コンテンツカタログ情報を受信した前記ノード装置の前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶手段に記憶するステップと、前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記コンテンツデータの属性情報の中から、所定の検索条件を満たす属性情報が記述されたコンテンツカタログ情報を前記記憶手段から取得するステップと、前記ノード識別情報と所定桁数が一致しない前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記所定の検索条件が含まれる検索要求情報を、他のノード装置に対して送信する送信ステップと、前記送信ステップにより送信された検索要求情報が示す検索条件により検索された前記コンテンツカタログ情報を他のノード装置から取得するステップと、を実行させることを特徴とする。
請求項9に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備える情報通信システムにおいて前記ノード装置により取得可能な複数のコンテンツデータの夫々に固有の識別情報であって一定桁数からなるコンテンツ識別情報が対応付けられ、且つ、前記ノード装置には夫々に固有の識別情報であって前記コンテンツ識別情報と同一の桁数からなるノード識別情報が対応付けられる前記情報通信システムにおけるコンテンツカタログ情報検索方法であって、管理サーバまたは他のノード装置から配信されてきたコンテンツカタログ情報であって前記情報通信システムにおいて取得可能なコンテンツデータの属性情報が記述されたコンテンツカタログ情報を受信する受信ステップと、前記受信ステップにより受信されたコンテンツカタログ情報のうち、前記受信ステップにより前記コンテンツカタログ情報を受信した前記ノード装置の前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶手段に記憶するステップと、前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記コンテンツデータの属性情報の中から、所定の検索条件を満たす属性情報が記述されたコンテンツカタログ情報を前記記憶手段から取得するステップと、前記ノード識別情報と所定桁数が一致しない前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記所定の検索条件が含まれる検索要求情報を、他のノード装置に対して送信する送信ステップと、前記送信ステップにより送信された検索要求情報が示す検索条件により検索された前記コンテンツカタログ情報を他のノード装置から取得するステップと、を含むことを特徴とする。
請求項10に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置を備える情報通信システムにおいて前記ノード装置により取得可能な複数のコンテンツデータの夫々に固有の識別情報であって一定桁数からなるコンテンツ識別情報が対応付けられ、且つ、前記ノード装置には夫々に固有の識別情報であって前記コンテンツ識別情報と同一の桁数からなるノード識別情報が対応付けられる前記情報通信システムにおいて、前記ノード装置は、管理サーバまたは他のノード装置から配信されてきたコンテンツカタログ情報であって前記情報通信システムにおいて取得可能なコンテンツデータの属性情報が記述されたコンテンツカタログ情報を受信する受信手段と、前記受信手段により受信されたコンテンツカタログ情報のうち、前記受信手段により前記コンテンツカタログ情報を受信した前記ノード装置の前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶する記憶手段と、前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記コンテンツデータの属性情報の中から、所定の検索条件を満たす属性情報が記述されたコンテンツカタログ情報を前記記憶手段から取得する第1取得手段と、前記ノード識別情報と所定桁数が一致しない前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記所定の検索条件が含まれる検索要求情報を、他のノード装置に対して送信する送信手段と、前記送信手段により送信された検索要求情報が示す検索条件により検索された前記コンテンツカタログ情報を他のノード装置から取得する第2取得手段と、を備えることを特徴とする。
本発明によれば、各ノード装置は、自己の担当範囲外のコンテンツデータに係るコンテンツカタログ情報についての検索要求を、宛先情報記憶手段に記憶された各グループに属する代表のノード装置の宛先情報にしたがって効率良く行うことができる。よって、各ノード装置は、所望のコンテンツカタログ情報を、より効率良く検索することができる。
以下、本発明の最良の実施形態を図面に基づいて説明する。なお、以下に説明する実施の形態は、DHT(Distributed Hash Table)を利用したコンテンツ配信システムに本発明を適用した場合の実施形態である。
[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が構築されている。なお、図1の例におけるネットワーク(通信ネットワーク)8には、メッセージ(パケット)を転送するためのルータが、適宜挿入されているが図示を省略している。
コンテンツ配信システムSは、このようなネットワーク8を介して相互に接続された複数のノード装置(以下、「ノード」という)A,B,C・・・X,Y,Z・・・を備えて構成されることになり、ピアツーピア方式のネットワークシステムとなっている。各ノードA,B,C・・・X,Y,Z・・・には、固有の製造番号および宛先情報としてのIP(Internet Protocol)アドレスが割り当てられている。このような製造番号およびIPアドレスは、複数のノード間で重複しないものである。
次に、本実施形態に係る分散ハッシュテーブル(以下、「DHT」という)を利用したアルゴリズムについて説明する。
上述したコンテンツ配信システムSにおいて、当該ノード同士が、互いに情報をやり取りする際には、お互いのIPアドレス等を知っていなければならない。
例えば、コンテンツを互いに共有するシステムにおいては、ネットワーク8に参加している各ノードが互いにネットワーク8に参加している全てのノードのIPアドレスを知っておくのが単純な手法であるが、端末数が何万何十万と多数になると、その全てのノードのIPアドレスを覚えておくのは現実的ではない。また、任意のノードの電源がON或いはOFFとすると、各ノードにて記憶している当該任意のノードのIPアドレスの更新が頻繁になり、運用上困難となる。
そこで、1台のノードでは、ネットワーク8に参加している全てのノードのうち、必要最低限のノードのIPアドレスだけを覚えて(記憶して)おいて、IPアドレスを知らない(記憶していない)ノードについては、各ノード間で互いに情報を転送し合って届けてもらうというシステムが考案されている。
このようなシステムの一例として、DHTを利用したアルゴリズムによって、図1の上部枠100内に示すような、オーバーレイネットワーク9が構築されることになる。つまり、このオーバーレイネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するネットワークを意味する。
本実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバーレイネットワーク9を前提としており、このオーバーレイネットワーク9上に配置されたノードを、オーバーレイネットワーク9に参加しているノードという。なお、オーバーレイネットワーク9への参加は、未だ参加していないノードが、既に参加している任意のノードに対して参加要求を送ることによって行われる。
また、各ノードは、固有のノード識別情報としてのノードIDを有しており、当該ノードIDは、例えば、IPアドレスあるいは製造番号を共通のハッシュ関数(例えば、SHA−1等)によりハッシュ化して得た一定桁数からなるハッシュ値であり、一つのID空間に偏りなく分散して配置されることになる。このノードIDは、ノードの最大運用台数を収容できるだけのbit数を持たせる必要がある。例えば、128bitの番号とすれば、2^128=340×10^36台のノードを運用できる。
このように共通のハッシュ関数により求められたノードIDは、当該IPアドレスあるいは製造番号が異なれば、同じ値になる確率が極めて低いものである。なお、ハッシュ関数については公知であるので詳しい説明を省略する。
[1.1 DHTのルーティングテーブルの作成手法]
次に、図2及び図3を参照して、DHTの内容であるルーティングテーブルの作成手法の一例について説明する。
図2は、ルーティングテーブルが作成される様子の一例を示す図であり、図3は、ルーティングテーブルの一例を示す図である。
各ノードに付与されたノードIDは、共通のハッシュ関数によって生成したため、図2(A)乃至図2(C)に示す如く、同一のリング状のID空間上にさほど偏ることなく、散らばって存在するものとして考えることができる。同図は8bitでノードIDを付与し、図示したものである。図中黒点はノードIDを示し、反時計回りでIDが増加するものとする。
先ず、図2(A)に示す如く、ID空間が、所定の規則に従って幾つかのグループとしてのエリアに分割される(分けられる)。実際には、16分割程度が良く用いられるが、説明を簡単にするためここでは4分割とし、IDをビット長8Bitの4進数で表すこととした。そして、ノードNのノードIDを「1023」とし、このノードNのルーティングテーブルを作る例について説明する。
(レベル1のルーティング)
ID空間を4分割とすると、それぞれのエリアは4進数で表すと最大桁が異なる4つのエリア「0XXX」、「1XXX」、「2XXX」、「3XXX」(Xは0から3の整数、以下同様。)で分けられる。ノードNは、当該ノードN自身のノードIDが「1023」であるため、図中左下「1XXX」のエリアに存在することになる。
そして、ノードNは、自分の存在するエリア(すなわち、「1XXX」のエリア)以外のエリアに存在する(グループに属する)各ノードを代表のノードとして任意に選択し、当該ノードIDのIPアドレス等(実際には、ポート番号も含まれる、以下同様)をレベル1のテーブルにおける各欄(テーブルエントリー)に登録(記憶)する。図3(A)がレベル1のテーブルの一例である。なお、レベル1のテーブルにおける2列目の欄は、ノードN自身を示しているため、IPアドレス等を登録する必要は無い。
(レベル2のルーティング)
次に、図2(B)に示す如く、上記ルーティングによって4分割したエリアのうち、自分の存在するエリアを更に4分割し、4つのエリア「10XX」、「11XX」、「12XX」、「13XX」に分ける(つまり、ノードN自身が属するグループをさらに複数の小グループに分ける)。
そして、上記と同様に自分の存在するエリア以外のエリアに存在する各ノードを代表のノードとして任意に選択し、当該ノードIDのIPアドレス等をレベル2のテーブルにおける各欄(テーブルエントリー)に登録する。図3(B)がレベル2のテーブルの一例である。なお、レベル2のテーブルにおける1列目の欄は、ノードN自身を示しているため、IPアドレス等を登録する必要は無い。
(レベル3のルーティング)
更に、図2(C)に示す如く、上記ルーティングによって4分割したエリアのうち、自分の存在するエリアを更に4分割し、4つのエリア「100X」、「101X」、「102X」、「103X」に分ける(つまり、ノードN自身が属する小グループをさらに複数の小グループに分ける)。そして、上記と同様に自分の存在するエリア以外のエリアに存在する各ノードを代表のノードとして任意に選択し、当該ノードIDのIPアドレス等をレベル3のテーブルにおける各欄(テーブルエントリー)に登録する。図3(C)がレベル3のテーブルの一例である。なお、レベル3のテーブルにおける3列目の欄は、ノードN自身を示しているため、IPアドレス等を登録する必要は無く、2列目及び4列目の欄はそのエリアにノードが存在しないため空白となる。
このようにして、レベル4まで同様にルーティングテーブルが図3(D)に示す如く作成されることにより、8bitのID全てを網羅することができる。レベルが上がる毎にテーブルの中に空白が目立つようになる。
以上説明した手法(規則)に従って作成したルーティングテーブルを、全てのノードが夫々作成して所有することになる(かかるルーティングテーブルの作成は、例えば、未参加のノードがオーバーレイネットワーク9に参加する際に行われるが、本発明とは直接の関係がないので詳しい説明を省略する)。
このように、各ノードは、他のノードの宛先情報としてのIPアドレス等と、グループ及び小グループとしての、ノードID空間のエリア、すなわちDHTの各レベル及び各列と、を対応付けて記憶している。
つまり、各ノードは、複数に分けられた各エリアに属する一のノードのIPアドレス等を、夫々のエリアに対応付けて一の段階(レベル)として規定し、さらに自己が属するエリアが複数のエリアに分けられ、当該分けられた各エリアに属する一のノードのIPアドレス等を、夫々のエリアに対応付けて次の段階(レベル)として規定するルーティングテーブルを記憶している。
なお、ノードIDの桁数に応じてレベルの数が決まり、進数の数に応じて図3(D)における各レベルの注目桁の数が決まる。具体的に、16桁16進数である場合には、64bitのIDとなり、レベル16で注目桁の(英)数字は0〜Fとなる。後述するルーティングテーブルの説明においては、各レベルの注目桁の数を示す部分を単に「列」ともいう。
[1.2 コンテンツデータの保存及び発見方法]
次に、コンテンツ配信システムSにおいて取得可能なコンテンツデータの保存及び発見方法について説明する。
オーバーレイネットワーク9においては、様々なコンテンツ(例えば、映画や音楽等)データが複数のノードに分散して保存(格納)されている(言い換えれば、コンテンツデータが複製されその複製情報であるレプリカが分散保存されている)。
例えば、ノードA及びノードDには、タイトルがXXXの映画のコンテンツデータが保存されており、一方、ノードB及びノードCには、タイトルがYYYの映画のコンテンツデータが保存されるというように、複数のノード(以下、「コンテンツ保持ノード」という)に分散されて保存される。
また、これらのコンテンツデータには、夫々、コンテンツ名(タイトル)及びコンテンツID(コンテンツ毎に固有のコンテンツ識別情報)等の情報が付加されている。このコンテンツIDは、例えば、コンテンツ名+任意の数値(或いは、当該コンテンツデータの先頭数バイトでも良い)が、上記ノードIDを得るときと共通のハッシュ関数によりハッシュ化されて生成される(ノードIDと同一のID空間に配置)。或いは、システム運営者が、コンテンツ毎に一意のID値(ノードIDと同一ビット長)を付与しても良い。この場合は、後述するコンテンツカタログ情報に、コンテンツ名とそのコンテンツIDの対応が書かれた状態で、各ノードに配布される。
また、このように分散保存されているコンテンツデータの所在、つまり、当該コンテンツデータを保存したノードのIPアドレス等と、当該コンテンツデータに対応するコンテンツID等の組が含まれるインデックス情報が、当該コンテンツデータの所在の管理元のノード(以下、「ルートノード」、又は「コンテンツ(コンテンツID)のルートノード」という)等により記憶(インデックスキャッシュに記憶)、管理されるようになっている。
例えば、タイトルがXXXの映画のコンテンツデータのインデックス情報は、そのコンテンツ(コンテンツID)のルートノードであるノードMにより管理され、タイトルがYYYの映画のコンテンツデータのインデックス情報は、そのコンテンツ(コンテンツID)のルートノードであるノードOにより管理される。
つまり、コンテンツ毎にルートノードが分けられるので負荷分散が図られており、しかも、同一のコンテンツデータ(コンテンツIDが同一)が、夫々、複数のコンテンツ保持ノードに保存されている場合であっても、かかるコンテンツデータのインデックス情報は、1つのルートノードで管理することができる。また、このようなルートノードは、例えば、コンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノードであるように定められる。
このようにしてコンテンツデータを保存したノード(コンテンツ保持ノード)は、当該コンテンツデータを保存したことをそのルートノードに知らせるために、そのコンテンツデータのコンテンツID及び自己のIPアドレス等が含まれるパブリッシュ(登録通知)メッセージ(コンテンツデータを保存したので、IPアドレス等の登録の要求を示す登録メッセージ)を生成し、該パブリッシュメッセージを、そのルートノードに向けて送出する。これにより、パブリッシュメッセージは、コンテンツIDをキーとするDHTルーティングによってルートノードに到着することになる。
図4は、コンテンツ保持ノードから送出されたパブリッシュメッセージの流れの一例をDHTのノードID空間にて示した概念図である。
図4の例において、例えば、コンテンツ保持ノードであるノードAは、自己のDHTのレベル1のテーブルを参照して、パブリッシュメッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有する例えばノードHのIPアドレス等を取得し、そのIPアドレス等宛てに、上記パブリッシュメッセージを送信する。
これに対して、ノードHは、当該パブリッシュメッセージを受信し、自己のDHTのレベル2のテーブルを参照して、当該パブリッシュメッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有する例えばノードIのIPアドレス等を取得し、そのIPアドレス等宛てに、上記パブリッシュメッセージを転送する。
これに対して、ノードIは、当該パブリッシュメッセージを受信し、自己のDHTのレベル3のテーブルを参照して、当該パブリッシュメッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有する例えばノードMの転送先ノード情報に含まれるIPアドレス等を取得し、そのIPアドレス等宛てに、上記パブリッシュメッセージを転送する。
これに対して、ノードMは、パブリッシュメッセージを受信し、自己のDHTのレベル4のテーブルを参照して、当該パブリッシュメッセージに含まれるコンテンツIDと最も近い(例えば、上位桁がより多く一致する)ノードIDが自分である、つまり、自分がそのコンテンツIDのルートノードであることを認識し、当該パブリッシュメッセージに含まれるIPアドレス等及びコンテンツIDの組を含むインデックス情報を登録(インデックスキャッシュ領域に記憶)することになる。
なお、パブリッシュメッセージに含まれるIPアドレス等及びコンテンツIDの組を含むインデックス情報は、コンテンツ保持ノードからルートノードに至るまでの転送経路におけるノード(以下、「中継ノード」という。図4の例では、ノードH、及びノードI)においても登録(キャッシュ)される(このように、インデックス情報をキャッシュする中継ノードをキャッシュノードという)。
そして、あるノードのユーザが、所望するコンテンツデータを取得したい場合、当該コンテンツデータの取得を望むノード(以下、「ユーザノード」という)は、当該ユーザによりコンテンツカタログ情報から選択されたコンテンツデータのコンテンツIDを含むコンテンツ所在問合せメッセージを、自己のDHTのルーティングテーブルにしたがって他のノードに対して送出する。これにより、当該コンテンツ所在問合せメッセージは、上述したパブリッシュメッセージと同様に、コンテンツIDをキーとするDHTルーティングによって、いくつかの中継ノードを経由(転送)されて、そのコンテンツIDのルートノードに辿り着く。そして、上記ユーザノードは、当該ルートノードから、上述したそのコンテンツデータのインデックス情報を取得(受信)し、当該IPアドレス等に基づいて上記コンテンツデータを保存しているコンテンツ保持ノードに接続し、そこから当該コンテンツデータを取得(ダウンロード)することが可能になる。なお、上記ユーザノードは、コンテンツ所在問合せメッセージがルートノードに辿り着くまでの間に、当該ルートノードと同じインデックス情報をキャッシュしている中継ノード(キャッシュノード)から当該IPアドレス等を取得(受信)することもできる。
[1.3 コンテンツカタログ情報の内容]
次に、コンテンツカタログ情報の内容等について説明する。
コンテンツカタログ情報(コンテンツリストともいう)には、コンテンツ配信システムSにおいて各ノードが取得可能な多くのコンテンツデータの属性情報が、夫々のコンテンツIDに対応付けられて記述されている。この属性情報としては、例えば、コンテンツ名(コンテンツが映画の場合、映画タイトル、コンテンツが楽曲の場合、楽曲タイトル、コンテンツが放送番組の場合、番組タイトル)、ジャンル(コンテンツが映画の場合、アクション、ホラー、コメディ、ラブストーリー等、コンテンツが音楽の場合、ロック、ジャズ、ポップス、クラシック等、コンテンツが放送番組の場合、ドラマ、スポーツ、ニュース、映画、音楽、アニメ、バラエティ等)、アーティスト名(コンテンツが音楽の場合の歌手、グループ等)、出演者(コンテンツが映画や放送番組の場合のキャスト)、監督名(コンテンツが映画の場合)等が挙げられる。
このような属性情報は、ユーザが所望のコンテンツデータを特定する場合の要素であり、多くのコンテンツデータの中から所望のコンテンツデータを検索するための検索条件としての検索キーワードとしても利用される。例えば、ユーザが検索キーワードとして「ジャズ」を入力すると、属性情報に「ジャズ」に該当する全てのコンテンツデータが検索され、検索されたコンテンツデータの属性情報(例えば、コンテンツ名、ジャンル等)がユーザに選択可能に提示されることになる。
図5は、ミュージックカタログの表示形態遷移の一例を示す概念図であり、かかるミュージックカタログは、本願のコンテンツカタログ情報のあくまでも一例である。この例では、図5(A)に示すように表示されたジャンル一覧の中から、検索キーワードとして例えばジャズが入力され検索されることにより、図5(B)に示すように、当該ジャズに該当するアーティスト名一覧が表示され、そのアーティスト名一覧の中から、検索キーワードとして例えばアーティスト「AABBC」が入力され検索されることにより、図5(C)に示すように、当該アーティストに該当する(例えば、当該アーティストにより歌われる、又は演奏される)楽曲タイトル一覧が表示される。そして、かかる楽曲タイトル一覧の中から、ユーザが入力部を介して所望の楽曲タイトルを選択すると、その楽曲データ(コンテンツデータの一例)のコンテンツIDが取得され、上述したように、コンテンツIDを含むコンテンツ所在問合せメッセージが、そのルートノード向かって送出されることになる。なお、当該コンテンツIDは、コンテンツカタログ情報に記述されなくとも良く、この場合、各ノードは、例えば属性情報に含まれるコンテンツ名+任意の数値を、上述したノードIDをハッシュ化した共通のハッシュ関数によりハッシュ化してコンテンツIDを生成するものであっても良い。
そして、このようなコンテンツカタログ情報は、例えばシステム管理者等により管理されるノード(以下、「カタログ管理ノード」という)、或いは、カタログ管理サーバにより管理されるようになっており、例えば、コンテンツ配信システムS上へ新たに投入されるコンテンツデータは、このカタログ管理ノードにより許可を受けた上で、コンテンツ配信システムS上におけるノードに保存される(一旦投入されたコンテンツデータは、上述したように、コンテンツ保持ノードから取得、その複製が保存されていくことになる)。そして、新たなコンテンツデータが、コンテンツ配信システムS上におけるノードに保存される場合、そのコンテンツデータの属性情報がコンテンツカタログ情報に新規登録(登録された順にシリアル番号が付加される)され、これによりコンテンツカタログ情報は更新(バージョンアップ(アップデート))される。また、コンテンツデータが、コンテンツ配信システムS上から抹消される際も、カタログ管理ノードにより許可され、そのコンテンツデータの属性情報がコンテンツカタログ情報から削除され、これによりコンテンツカタログ情報は更新される(なお、属性情報の一部変更があった場合も同様、コンテンツカタログ情報は更新される)。
また、コンテンツカタログ情報全体には、バージョンを示すバージョン情報が付加されている。このバージョン情報は、例えばバージョン通し番号で表され、コンテンツカタログ情報が更新(例えば、コンテンツデータの属性情報が新規登録)される度に、当該通し番号が所定値(例えば、「1」)カウントアップされる(なお、コンテンツカタログ情報への新規登録は、登録すべきコンテンツデータが一定量溜まってから行われても良いし、新規登録要求がある度に行われても良い)。
更に、例えば、各コンテンツデータに対しては、新規登録時におけるバージョン通し番号が付加(これは、コンテンツカタログ情報全体の更新があってもカウントアップせず変わらない)されており(例えば、シリアル番号「100」のコンテンツデータには、バージョン通し番号「1」が付加され、シリアル番号「200」のコンテンツデータには、通し番号「2」が付加されている)、これにより、どのコンテンツデータがどのバージョンアップ時のものかが判断可能になっている。
[1.4 コンテンツカタログ情報の配布方法]
次に、図6乃至図11を参照して、コンテンツカタログ情報の配布方法について説明する。
このようなコンテンツカタログ情報は、例えば、上記DHTを利用したマルチキャスト(以下、「DHTマルチキャスト」という)により、オーバーレイネットワーク9に参加している全てのノードに配布することができる。
図6は、カタログ管理ノードであるノードXが保持するルーティングテーブルの一例であり、図7は、カタログ配布メッセージを模式的に表した図であり、図8乃至図11は、DHTマルチキャストが行われる様子を示す図である。
なお、ノードXは、図6に示すようなルーティングテーブルを保持しているものとし、当該ルーティングテーブルのレベル1〜4の各エリアに対応する欄には、ノードA〜ノードIの何れかのノードのノードID(4桁4進数)及びIPアドレス等が記憶されているものとする。
カタログ配布メッセージは、図7(A)に示すように、ヘッダ部とペイロード部から構成されるパケットからなり、ヘッダ部には、ターゲットノードID、レベルを示すグループ特定値としてのIDマスク、及びターゲットノードIDに対応するノードのIPアドレス等(図示せず)が含まれており、ペイロード部には、メッセージを識別するためのユニークID及びコンテンツカタログ情報を有する主情報が含まれている。
ここで、ターゲットノードIDとIDマスクとの関係について詳しく説明する。
ターゲットノードIDは、ノードIDと同等の桁数であり(図6の例では、4桁4進数)、送信先ターゲットとなるノードを設定するものであり、IDマスクの値に応じて、例えば、カタログ配布メッセージを送信又は転送するノードのノードIDとしたり、送信先のノードのノードIDとする。
また、IDマスクは、ターゲットノードIDの有効桁数を指定するものであり、有効桁数により、ターゲットノードIDにおける上位から有効桁数分が共通するノードIDが示される。具体的には、IDマスク(IDマスクの値)は、0以上ノードIDの最大桁数以下の整数となり、例えば、ノードIDが4桁4進数の場合、0〜4までの整数となる。
例えば、図7(B)に示すように、ターゲットノードIDが「2132」であり、IDマスクの値が「4」の場合には、ターゲットノードIDの「4」桁全てが有効であり、ノードIDが「2132」であるノードのみがカタログ配布メッセージの送信先タッゲートとなる。
また、図7(C)に示すように、ターゲットノードIDが「3301」であり、IDマスクの値が「2」の場合には、ターゲットノードIDの上位「2」が有効であり(ノードIDが「33**」)上位二桁が「33」である(下位2桁はどのような値でも良い)ルーティングテーブル上の全てのノードがカタログ配布メッセージの送信先ターゲットとなる。
更に、図7(D)に示すように、ターゲットノードIDが「1220」であり、IDマスクの値が「0」の場合には、ターゲットノードIDの上位「0」桁が有効、すなわち、いずれの桁もどのような値であっても良く(そのため、このときのターゲットノードIDは、どのような値であってもよいことになる。)、ルーティングテーブル上の全てのノードがカタログ配布メッセージの送信先ターゲットとなる。
そして、ノードIDを4桁4進数とした場合、カタログ管理ノードであるノードXから送出されるカタログ配布メッセージのDHTマルチキャストは、図8乃至図11に示すように、第1段階から第4段階までのステップで行われる。
(第1段階)
先ず、ノードXは、ヘッダ部におけるターゲットノードIDを自己(自ノード)のノードID「3102」とし、IDマスクを「0」として、当該ヘッダ部及びペイロード部を含むカタログ配布メッセージを生成する。そして、図7(A)、(B)に示すように、ノードXは、図6に示すルーティングテーブルを参照し、IDマスク「0」に「1」を加算した(足した)レベル「1」のテーブルにおける各欄に登録された(つまり、各グループとしての各エリアに属する)代表のノード(ノードA,B,C)に対してカタログ配布メッセージを送信する。
(第2段階)
次に、ノードXは、上記カタログ配布メッセージのヘッダ部におけるIDマスク「0」を「1」に変換したカタログ配布メッセージを生成する。なお、ターゲットノードIDは自己のノードIDであるため、変更されない。そして、ノードXは、図6に示すルーティングテーブルを参照し、図9(A)のノードID空間の右上のエリア及び図9(B)に示すように、IDマスク「1」に「1」を加算したレベル「2」のテーブルにおける各欄に登録された各ノード(ノードD,E,F)に対して当該カタログ配布メッセージを送信する。
一方、第1段階において、ノードXからカタログ配布メッセージ(自己が属するエリアに対するカタログ配布メッセージ)を受信したノードAは、当該カタログ配布メッセージのヘッダ部におけるIDマスク「0」を「1」に変換し、且つ、ターゲットノードID「3102」を自己のノードID「0132」に変換したカタログ配布メッセージを生成する。そして、ノードAは、図示しない自己のルーティングテーブルを参照し、図9(A)のノードID空間の左上のエリア及び図9(B)に示すように、IDマスク「1」に「1」を加算したレベル「2」のテーブルにおける各欄に登録された各ノード(ノードA1,A2,A3)に対して当該カタログ配布メッセージを送信する。つまり、ノードAは、自己が属するエリア「0XXX」がさらに複数のエリア(「00XX」、「01XX」、「02XX」、「03XX」)に分けられている場合には、当該さらに分けられている各エリアに属する一の(代表の)ノード(ノードA1,A2,A3)を決定し、当該決定された全てのノード(ノードA1,A2,A3)に受信されたカタログ配布メッセージを送信する(以下、同様)。
同様にして、図9(A)のノードID空間の左下及び右下のエリア及び図9(B)に示すように、第1段階において、ノードXからカタログ配布メッセージを受信したノードB及びノードCも、夫々、自己のルーティングテーブルを参照し、レベル2のテーブルにおける各欄に登録された各ノード(ノードB1,B2,B3,C1,C2,C3)に対して、IDマスクを「1」とし、且つ、自己のノードIDをターゲットノードIDとしたカタログ配布メッセージを生成し、これを送信する。
(第3段階)
次に、ノードXは、上記カタログ配布メッセージのヘッダ部におけるIDマスク「1」を「2」に変換したカタログ配布メッセージを生成する。なお、上記と同様、ターゲットノードIDは変更されない。そして、ノードXは、図6に示すルーティングテーブルを参照し、図10(A)のノードID空間の右上のエリア及び図10(B)に示すように、IDマスク「2」に「1」を加算したレベル「3」のテーブルにおける各欄に登録された各ノード(ノードG,H)に対して当該カタログ配布メッセージを送信する。
一方、第2段階において、ノードXからカタログ配布メッセージを受信したノードDは、当該カタログ配布メッセージのヘッダ部におけるIDマスク「1」を「2」に変換し、且つ、ターゲットノードID「3102」を自己のノードID「3001」に変換したカタログ配布メッセージを生成する。そして、ノードDは、自己のルーティングテーブルを参照し、図10(B)に示すように、IDマスク「2」に「1」を加算したレベル「3」のテーブルにおける各欄に登録された各ノード(ノードD1,D2,D3)に対して当該カタログ配布メッセージを送信する。
同様にして、図示しないが、第2段階において、カタログ配布メッセージを受信したノードE,F,A1,A2,A3,B1,B2,B3,C1,C2,C3も、夫々、自己のルーティングテーブルを参照し、レベル3のテーブルにおける各欄に登録された各ノード(図示せず)に対して、IDマスクを「2」とし、且つ、自己のノードIDをターゲットノードIDとしたカタログ配布メッセージを生成し、これを送信する。
(第4段階)
次に、ノードXは、上記カタログ配布メッセージのヘッダ部におけるIDマスク「2」を「3」に変換したカタログ配布メッセージを生成する。なお、上記と同様、ターゲットノードIDは変更されない。そして、ノードXは、図6に示すルーティングテーブルを参照し、図11(A)のノードID空間の右上のエリア及び図11(B)に示すように、IDマスク「3」に「1」を加算したレベル「4」のテーブルにおける各欄に登録されたノードIに対して当該カタログ配布メッセージを送信する。
一方、第3段階において、ノードXからカタログ配布メッセージを受信したノードGは、当該カタログ配布メッセージのヘッダ部におけるIDマスク「2」を「3」に変換し、且つ、ターゲットノードID「3102」を自己のノードID「3123」に変換したカタログ配布メッセージを生成する。そして、ノードGは、自己のルーティングテーブルを参照し、図11(B)に示すように、IDマスク「3」に「1」を加算したレベル「4」のテーブルにおける各欄に登録されたノードG1に対して当該カタログ配布メッセージを送信する。
同様にして、図示しないが、第3段階において、カタログ配布メッセージを受信した各ノードも、自己のルーティングテーブルを参照し、レベル4のテーブルにおける各欄に登録された各ノードに対して、IDマスクを「3」とし、且つ、自己のノードIDをターゲットノードIDとしたカタログ配布メッセージを生成し、これを送信する。
(最終段階)
最後に、ノードXは、上記カタログ配布メッセージのヘッダ部におけるIDマスク「3」を「4」に変換したカタログ配布メッセージを生成する。そうすると、ターゲットノードIDとIDマスクから、当該カタログ配布メッセージが自己(自ノード)宛であることを認識し、送信処理を終了する。
一方、第4段階において、カタログ配布メッセージを受信した各ノード1も、当該カタログ配布メッセージのヘッダ部におけるIDマスク「3」を「4」に変換したカタログ配布メッセージを生成する。そうすると、ターゲットノードIDとIDマスクから、当該カタログ配布メッセージが自己(自ノード)宛であることを認識し、送信処理を終了する。
なお、カタログ配布メッセージのペイロード部に含まれるユニークIDは、各カタログ配布メッセージ毎に固有に付与されるIDであり、例えばノードXから送出された一のメッセージが転送され最後のノードに至るまで、当該IDは変わらない。また、カタログ配布メッセージに応じて、各ノードから返信メッセージが返信される場合、元となったカタログ配布メッセージと同一のユニークIDが付与される。
以上のように、コンテンツカタログ情報は、カタログ管理ノードであるノードXから、DHTマルチキャストにより、オーバーレイネットワーク9に参加している全てのノードに配布され、各ノードは、コンテンツカタログ情報を記憶することになる。
また、コンテンツカタログ情報が更新された場合にも、その更新される度に、カタログ管理ノードであるノードXから、DHTマルチキャストにより、オーバーレイネットワーク9に参加している全てのノードに配布されるが、この場合、コンテンツカタログ情報全体のうちの更新された差分のコンテンツデータの属性情報が記述されたコンテンツカタログ情報(以下、「更新差分コンテンツカタログ情報」という)がノードXから送信されることになる。こうして配布された更新差分コンテンツカタログ情報は、各ノードにおいて既に記憶されているコンテンツカタログ情報に組み込まれ(追加)される。
ここで、「コンテンツカタログ情報全体のうちの更新された差分のコンテンツデータの属性情報」とは、例えば、コンテンツカタログ情報に新たに、登録、削除、又は変更された分のコンテンツデータの属性情報を意味する。このように、更新差分コンテンツカタログ情報のみをDHTマルチキャストにより送信することにより、送受信されるデータ量を減らし、ネットワーク8負荷や、各ノードにおける処理負荷の軽減を図ることができる。
ところで、コンテンツ配信システムSにおいては、各ノードのオーバーレイネットワーク9からの脱退(ノード装置の電源断や故障、或いはネットワークの部分的な切断等による)や、オーバーレイネットワーク9への参加(例えば、電源ONによる)が行なわれる頻度が高いため、全てのノードが、最新の(バージョン情報が最も新しいバージョン情報の)コンテンツカタログ情報を保持している(記憶している)とは限らない。
つまり、更新差分コンテンツカタログ情報がDHTマルチキャストにより配布された際に脱退していたノードは、その時の更新差分コンテンツカタログ情報を受け取れず、したがって、その後にオーバーレイネットワーク9に参加した際に保持しているコンテンツカタログ情報は古いものとなる。
そのため、本実施形態においては、DHTマルチキャストにより配布された更新差分コンテンツカタログ情報を受信したノードは、当該更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に記憶されているコンテンツカタログ情報に付加されたバージョン情報とを比較し、その比較の結果に基づいて、オーバーレイネットワーク9に参加している全てのノードにおけるコンテンツカタログ情報が最新になるように処理を行うようになっている。なお、かかる処理の詳細は後述する。
[2.ノードの構成等]
次に、図12を参照して、ノードの構成及び機能について説明する。
図12は、ノードの概要構成例を示す図である。
各ノードは、図12に示すように、演算機能を有するCPU,作業用RAM,各種データおよびプログラムを記憶するROM等から構成されたコンピュータとしての制御部11と、コンテンツデータ、コンテンツカタログ情報、ルーティングテーブル及び各種プログラム等を記憶保存(格納)するためのHD等から構成された宛先情報記憶手段、コンテンツカタログ情報記憶手段、及び範囲情報記憶手段としての記憶部12と、受信されたコンテンツデータ等を一時蓄積するバッファメモリ13と、コンテンツデータに含まれるエンコードされたビデオデータ(映像情報)およびオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)するデコーダ部14と、当該デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する映像処理部15と、当該映像処理部15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等の表示部16と、上記デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する音声処理部17と、当該音声処理部17から出力されたオーディオ信号を音波として出力するスピーカ18と、ネットワーク8を通じて他のノードとの間の情報の通信制御を行うための通信部20と、ユーザからの指示を受け付け当該指示に応じた指示信号を制御部11に対して与える入力部(例えば、キーボード、マウス、或いは、操作パネル等)21と、を備えて構成され、制御部11、記憶部12、バッファメモリ13、デコーダ部14および通信部20はバス22を介して相互に接続されている。なお、ノードとしては、パーソナルコンピュータ、STB(Set Top Box)、或いは、TV受信機等を適用可能である。
そして、制御部11は、CPUが記憶部12等に記憶された各種プログラム(ノード処理プログラムを含む)を実行することにより、ノード全体を統括制御するようになっており、また、検索要求情報送信手段、検索結果情報受信手段、範囲判別手段、不足範囲取得手段、コンテンツカタログ情報取得手段、検索結果情報返信手段、検索要求情報転送手段、コンテンツ特定手段、コンテンツカタログ情報送信手段、及びコンテンツカタログ情報受信手段等として機能し、後述する処理を行うようになっている。
なお、コンテンツカタログ情報を記憶するためのカタログキャッシュ領域は、例えば記憶部12における記憶領域のうち、数KB(キロバイト)〜数MB(メガバイト)が割り当てられている。このようなコンテンツカタログ情報は、例えば、ノードの製造時や販売時に予め記憶されるようにしても良いし、後からDHTマルチキャストにより配布され、記憶されるようにしても良い。
また、上記ノード処理プログラムは、例えば、ネットワーク8上の所定のサーバからダウンロードされるようにしてもよいし、例えば、CD−ROM等の記録媒体に記録されて当該記録媒体のドライブを介して読み込まれるようにしてもよい。
[3.コンテンツ配信システムの動作]
[3.1 実施形態1]
先ず、図13乃至図15を参照して、実施形態1におけるコンテンツ配信システムSの動作について説明する。
なお、実施形態1は、各ノードにコンテンツカタログ情報全体を記憶させる形態である。
図13は、カタログ管理ノードにおけるDHTマルチキャスト処理を示すフローチャートであり、図14は、カタログ配布メッセージを受信したノードにおける処理を示すフローチャートであり、図15は、図14におけるカタログ情報受信処理の詳細を示すフローチャートである。
なお、オーバーレイネットワーク9に参加している各ノードは、稼働(すなわち、電源が入れられ、各種設定を初期化している)し、ユーザからの入力部21を介した指示待機、及び他のノードからのネットワーク8を介したメッセージの受信待機状態にあるものとする。
また、オーバーレイネットワーク9に参加している各ノードには、既にコンテンツカタログ情報が記憶されているものとする。
図13に示す処理は、例えば、カタログ管理ノードであるノードXにおいて、コンテンツカタログ情報が更新(バージョンアップ(アップデート)ともいう。コンテンツカタログ情報全体の更新の場合もあるし、一部の更新の場合もある)された場合に開始され、ノードXの制御部11は、固有のユニークIDと、上述した更新差分コンテンツカタログ情報とを取得し、当該取得したユニークID及び更新差分コンテンツカタログ情報をペイロード部に含むカタログ配布メッセージを生成する(ステップS1)。
次いで、ノードXの制御部11は、上記生成したカタログ配布メッセージのヘッダ部におけるターゲットノードIDとして自己のノードID「3102」を設定し、IDマスクとして「0」を設定し、IPアドレスとして自己のIPアドレスを設定する(ステップS2)。
次いで、当該制御部11は、上記設定したIDマスクの値が、自己のルーティングテーブルの全レベル数(図6の例では、「4」)よりも小さいか否かを判別(判断)する(ステップS3)。
このとき、IDマスクに「0」が設定されているので、ルーティングテーブルの全レベル数よりも小さいため、当該制御部11は、IDマスクがルーティングテーブルの全レベル数よりも小さいと判別し(ステップS3:YES)、自己のルーティングテーブルにおける「上記設定したIDマスク+1」のレベルに登録されている全てのノードを決定し(つまり、ノードXが属するエリアがさらに複数のエリアに分けられているので、当該さらに分けられている各エリアに属する一のノードが決定される)、当該決定したノードに対して上記生成したカタログ配布メッセージを送信する(ステップS4)。
例えば、図6の例では、「IDマスク「0」+1」であるレベル1に登録されたノードA、ノードB、及びノードCに対してカタログ配布メッセージが送信されることになる。
次いで、当該制御部11は、上記カタログ配布メッセージのヘッダ部において設定されたIDマスクの値に「1」を加算して当該IDマスクを再設定し(ステップS5)、ステップS3に戻る。
その後、当該制御部11は、IDマスク「1」,「2」,「3」について同様にステップS3〜S5の処理を繰り返す。これにより、上記カタログ配布メッセージは、自己のルーティングテーブルに登録されている全てのノードに送信されることになる。
一方、ステップS3において、IDマスクの値が、自己のルーティングテーブルの全レベル数よりも小さくないと判別された場合(図6の例では、IDマスクの値が「4」の場合)には、当該処理を終了する。
次に、上記のように送信されたカタログ配布メッセージを受信した各ノードは、当該カタログ配布メッセージを一時格納し、図14に示す処理を開始する。ここでは、ノードAを例にとって説明する。
図14に示す処理が開始されると、ノードAの制御部11は、自己のノードIDが、受信したカタログ配布メッセージのヘッダ部におけるターゲットノードID及びIDマスクにより特定されるターゲットに含まれるか否かを判別する(ステップS11)。
ここで、ターゲットとは、ターゲットノードIDにおいて、IDマスクの値に該当する上位桁が共通するノードIDを示し、例えば、IDマスクが「0」であれば、全てのノードIDがターゲットに含まれ、IDマスクが「2」でターゲットノードIDが「3102」であれば、上位「2」桁が「31」となる「31**」(**はどのような値でも良い)のノードIDがターゲットに含まれることとなる。
ノードAが受信したカタログ配布メッセージのヘッダ部におけるIDマスクは「0」であり、有効桁数が指定されていないので、ノードAの制御部11は、自己のノードID「0132」がターゲットに含まれると判別し(ステップS11:YES)、当該カタログ配布メッセージのヘッダ部におけるターゲットノードIDを、自己のノードID「0132」に変換設定する(ステップS12)。
次いで、当該制御部11は、上記カタログ配布メッセージのヘッダ部におけるIDマスクの値に「1」を加算して当該IDマスクを再設定(ここでは、「0」から「1」に変換(一のレベルを示すIDマスクを次のレベルを示すIDマスクに変えて))する(ステップS13)。
次いで、当該制御部11は、上記再設定したIDマスクの値が、自己のルーティングテーブルの全レベル数よりも小さいか否かを判別する(ステップS14)。
このとき、IDマスクに「1」が設定されているので、ルーティングテーブルの全レベル数よりも小さいため、当該制御部11は、IDマスクがルーティングテーブルの全レベル数よりも小さいと判別し(ステップS14:YES)、自己のルーティングテーブルにおける「上記再設定したIDマスク+1」のレベルに登録されている全てのノードを決定し(つまり、ノードAが属するエリアがさらに複数のエリアに分けられているので、当該さらに分けられている各エリアに属する一のノードが決定される)、当該決定したノードに対して上記生成したカタログ配布メッセージを送信し(ステップS15)、ステップS13に戻る。
例えば、「IDマスク「1」+1」であるレベル2に登録されたノードA1、ノードA2、及びノードA3に対してカタログ配布メッセージが送信されることになる。
その後、当該制御部11は、IDマスク「2」,「3」について同様にステップS14及びS15の処理を繰り返す。これにより、上記カタログ配布メッセージは、自己のルーティングテーブルに登録されている全てのノードに送信されることになる。
一方、上記ステップS11において、当該制御部11は、自己のノードIDが、受信したカタログ配布メッセージのヘッダ部におけるターゲットノードID及びIDマスクにより特定されるターゲットに含まれないと判別した場合には(ステップS11:NO)、ルーティングテーブル中で、当該ターゲットノードIDと上位桁から一致する桁数が最も多いノードに対して上記受信したカタログ配布メッセージを送信(転送)し(ステップS17)、当該処理を終了する。
例えば、IDマスクが「2」でターゲットノードIDが「3102」であったとすると、ノードAのノードID「0132」は、ターゲット「31**」に含まれないと判別される。なお、ステップS17の転送処理は、通常のDHTのルーティングテーブルを用いたメッセージの転送である。
一方、上記ステップS14において、当該制御部11は、IDマスクの値が、自己のルーティングテーブルの全レベル数よりも小さくないと判別した場合には(ステップS14:NO)、カタログ情報受信処理を開始する(ステップS16)。なお、かかるカタログ情報受信処理も、カタログ配布メッセージを受信した各ノードにおいて行われる。
当該カタログ情報受信処理においては、図15に示すように、カタログ配布メッセージを受信したノードの制御部11は、先ず、カタログ配布メッセージのペイロード部における更新差分コンテンツカタログ情報を取得し(ステップS21)、当該更新差分コンテンツカタログ情報に付加されたバージョン情報(バージョン通し番号)と、既に自己の記憶部12に記憶されているコンテンツカタログ情報に付加されたバージョン情報(バージョン通し番号)とを比較し、既に自己の記憶部12に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報より、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報が古いか否かを判別する(ステップS22)。
この比較の結果、既に自己の記憶部12に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報より、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報が古い(例えば、既に記憶されているコンテンツカタログ情報に付加された最新のバージョン通し番号「8」より、更新差分コンテンツカタログ情報に付加されたバージョン通し番号「6」が小さい)場合には(ステップS22:YES)、制御部11は、当該取得された更新差分コンテンツカタログ情報のバージョンよりも新しいバージョンに対応する更新差分コンテンツカタログ情報(例えば、バージョン通し番号「7」及び「8」に対応する更新差分コンテンツカタログ情報)に、当該新しいバージョンを示すバージョン情報を付加して、これを、上記カタログ配布メッセージを送信した上位のノード(例えば、ノードAの場合、カタログ配布メッセージを送信したノードXとなる。ノードA1の場合、カタログ配布メッセージを送信したノードAとなる。)に対して送信する(ステップS23)。つまり、上記カタログ配布メッセージを送信した上位のノードが、自分が持っているコンテンツカタログ情報よりもバージョンが古いものを持っているので、その上位のノードに対して、その足りない更新差分コンテンツカタログ情報が提供されることになる。
このように、上記カタログ配布メッセージを転送した上位のノード(ノードXでない場合に限る)が、自分が持っているコンテンツカタログ情報よりもバージョンが古いということが生じるのは、例えば、コンテンツカタログ情報があまり時間をおかずに続けて複数回更新され、更新差分コンテンツカタログ情報が続けて複数回ノードXからDHTマルチキャストにより送出され、当該更新差分コンテンツカタログ情報が転送さている途中に、オーバーレイネットワーク9へのノードの参加或いは脱退があると、その転送経路が変わり、先にノードXから送出された更新差分コンテンツカタログ情報よりも、後にノードXから送出された最新のバージョンの更新差分コンテンツカタログ情報が先に自分に到達する場合があるためである。
一方、上記比較の結果、既に自己の記憶部12に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報より、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報が古くない(つまり、同じか、若しくは新しい)場合には(ステップS22:NO)、制御部11は、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に記憶部12に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報とを比較し、当該取得した更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に自己の記憶部12に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報とが等しい(同じ)か否かを判別する(ステップS24)。
この比較の結果、当該取得した更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に自己の記憶部12に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報とが等しい場合には(ステップS24:YES)、そのまま当該処理が終了される。
このように、上記カタログ配布メッセージを転送した上位のノード(ノードXでない場合に限る)が、自分が持っているコンテンツカタログ情報と等しいということが生じるのは、例えば、更新差分コンテンツカタログ情報がノードXからDHTマルチキャストにより送出され、当該更新差分コンテンツカタログ情報が転送されている途中に、オーバーレイネットワーク9へのノードの参加或いは脱退があると、その転送経路が変わり、同じ更新差分コンテンツカタログ情報が、後から別経路からも自分に到達する場合があるためである。
一方、上記比較の結果、当該取得した更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に自己の記憶部12に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報とが等しくない(つまり、新しい)場合には(ステップS24:NO)、制御部11は、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に記憶部12に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報とを比較し、当該更新差分コンテンツカタログ情報に付加されたバージョン情報が、既に自己の記憶部12に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報より1つ新しいか否かを判別する(ステップS25)。
この比較の結果、既に自己の記憶部12に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報より、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報が1つ新しい場合(例えば、既に記憶されているコンテンツカタログ情報に付加された最新のバージョン通し番号より、更新差分コンテンツカタログ情報に付加されたバージョン通し番号が1大きい場合)には(ステップS25:YES)、制御部11は、当該更新差分コンテンツカタログ情報に記述されたコンテンツデータの属性情報及びそのバージョン情報に基づいて、既に記憶されているコンテンツカタログ情報及びバージョン情報を更新し(ステップS27)、当該処理を終了する。例えば、上記取得した更新差分コンテンツカタログ情報に記述されたコンテンツデータの属性情報が、既に記憶されているコンテンツカタログ情報に追加登録され、バージョンアップされる。
一方、上記比較の結果、既に記憶されているコンテンツカタログ情報に付加されたバージョン情報より、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報が1つ新しいのではない(つまり、2つ以上新しい)場合(例えば、既に記憶されているコンテンツカタログ情報に付加された最新のバージョン通し番号より、更新差分コンテンツカタログ情報に付加されたバージョン通し番号が2以上大きい)場合には(ステップS25:NO)、制御部11は、双方のバージョン情報の間に位置すべきバージョン情報(例えば、バージョン通し番号「5」と「8」の間に位置する「6」及び「7」)に対応する更新差分コンテンツカタログ情報(つまり、足りない更新差分コンテンツカタログ情報)を、上記カタログ配布メッセージを送信した上位のノードに対して要求、これを取得する(ステップS26)。
そして、制御部11は、ステップS21及びS26で取得した各更新差分コンテンツカタログ情報及びこれらのバージョン情報に基づいて、既に記憶されているコンテンツカタログ情報及びバージョン情報を更新し(ステップS27)、当該処理を終了する。例えば、ステップS21及びS26で取得した各更新差分コンテンツカタログ情報に記述されたコンテンツデータの属性情報を既に記憶されているコンテンツカタログ情報に追加登録し、バージョンアップする。
以上説明したように、上記実施形態1によれば、DHTマルチキャストにより、更新差分コンテンツカタログ情報をオーバーレイネットワーク2に参加している全てのノードに対して配信(配布)されるように構成したので、各ノードが、夫々、カタログ管理サーバに接続して最新のコンテンツカタログ情報を要求する必要がないので、カタログ管理サーバのような特定の管理装置に多大の負荷がかかることを防止することができる。また、各ノードは、常に、最新のコンテンツカタログ情報を記憶しておくようにすることができるので、各ノードのユーザは当該コンテンツカタログ情報から、常に、所望の最新コンテンツを検索することが可能となる。
また、例えばカタログ管理ノードにおいてコンテンツカタログ情報が更新されたときだけ、その更新された差分のみが、更新差分コンテンツカタログ情報としてDHTマルチキャストにより配信されるようにしたので、送受信されるデータ量を減らし、ネットワーク8負荷や、各ノードにおける処理負荷の軽減を図ることができる。
また、各ノードは、受信した更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に自己のカタログキャッシュ領域に記憶しているコンテンツカタログ情報に付加されたバージョン情報とを比較し、既に記憶しているコンテンツカタログ情報に付加されたバージョン情報より、受信した更新差分コンテンツカタログ情報に付加されたバージョン情報が1つ新しい場合には、当該更新差分コンテンツカタログ情報の内容を、既に記憶しているコンテンツカタログ情報に組み込んで更新し、また、既に記憶しているコンテンツカタログ情報に付加されたバージョン情報より、受信された更新差分コンテンツカタログ情報に付加されたバージョン情報が2つ以上新しい場合には、双方のバージョン情報の間に位置すべきバージョン情報に対応する更新差分コンテンツカタログ情報を上位のノードから取得し、当該取得した更新差分コンテンツカタログ情報の内容をも、既に記憶しているコンテンツカタログ情報に組み込んで更新するようにしたので、しばらく脱退していたノードであっても、再参加した後、参加していたノードから更新差分コンテンツカタログ情報を取得することができるので、カタログ管理サーバのような特定の管理装置を介さずに、より効率良く、脱退中に配信された更新差分コンテンツカタログ情報を取得することができる。
更に、各ノードは、受信した更新差分コンテンツカタログ情報に付加されたバージョン情報と、既に自己のカタログキャッシュ領域に記憶しているコンテンツカタログ情報に付加されたバージョン情報とを比較し、既に記憶しているコンテンツカタログ情報に付加されたバージョン情報より、受信した更新差分コンテンツカタログ情報に付加されたバージョン情報が古い場合には、当該受信した更新差分コンテンツカタログ情報のバージョンよりも新しいバージョンに対応する更新差分コンテンツカタログ情報を、古いコンテンツカタログ情報を送信した上位のノードに対して送信するようにしたので、更新差分コンテンツカタログ情報が続けて複数回ノードXからDHTマルチキャストにより送出され、当該更新差分コンテンツカタログ情報が転送さている途中に、オーバーレイネットワーク9へのノードの参加或いは脱退があり、その転送経路が変わった場合であっても、適切に最新のコンテンツカタログ情報を全てのノードに行き渡らせることができる。
(DHTマルチキャスト処理の変形形態)
上記図13に示すDHTマルチキャスト処理においては、各ノードが、自己のルーティングテーブルにIPアドレスが記憶されているノードのみに対してカタログ配布メッセージを送信するように構成したが、ルーティングテーブルにIPアドレスが登録(記憶)されていないノードに向けてもカタログ配布メッセージを送信する変形形態について、図16乃至図18を参照して説明する。
オーバーレイネットワーク9へのノードの参加、脱退が行われたとき、それがあるノードにおけるルーティグテーブルには、未だ反映されていないことも考えられる。この場合、上述したDHTマルチキャストによっても、全てのノードにカタログ配布メッセージが行き渡らない事態が生じる可能性がある。この変形形態では、このような事態が生じても、オーバーレイネットワーク9に参加している全てのノードにカタログ配布メッセージを送信することが可能となる。
なお、この変形形態において、上述した実施形態1と同様の部分については、重複する説明を省略する。
上述した図15に示す処理は、当該変形形態においても適用され、上述した実施形態1と同様に実行される。
一方、上述した図13に示す処理は、当該変形形態においては適用されず、その代わりに図16及び図17に示す処理が実行される。また、上述した図14に示す処理も、当該変形形態においては適用されず、その代わりに図18に示す処理が実行される。
また、当該変形形態において送信されるカタログ配布メッセージにおけるヘッダ部には、転送回数積算値(ノードを転送される度に1カウントアップする値)及び転送回数上限値が含まれる。これは、ルーティングテーブルにIPアドレスが登録されていないノードに向かってカタログ配布メッセージが送信される場合、当該メッセージが転送され続けてしまう可能性があり、これを防止するためである。
図16に示すDHTマルチキャスト処理においては、ノードXの制御部11は、上記図13におけるステップS1と同様、取得したユニークID及び更新差分コンテンツカタログ情報をペイロード部に含むカタログ配布メッセージを生成する(ステップS51)。
次いで、ノードXの制御部11は、生成されたカタログ配布メッセージのヘッダ部におけるターゲットノードIDとして自己のノードID「3102」を設定し、IDマスクとして「0」を設定し、IPアドレスとして自己のIPアドレスを設定する(ステップS52)。
次いで、当該制御部11は、カタログ配布メッセージ送信処理を開始する(ステップS53)。
当該カタログ配布メッセージ送信処理においては、図17に示すように、ノードXの制御部11は、自己のルーティングテーブルの指定するレベルを、自己のノードIDと上記生成したカタログ配布メッセージにおけるターゲットノードIDの上位桁から一致する桁数+1の値に決定する(ステップS61)。
例えば、自己のノードIDが「3102」であり、ターゲットノードIDが「3102」である場合には全て一致するため、一致する桁数が「4」であり、これに1が加算されて、ルーティングテーブルのレベルが「5」と決定される。
次いで、当該制御部11は、上記決定したレベルが、上記生成したカタログ配布メッセージにおけるIDマスクよりも大きいか否かを判別する(ステップS62)。
上述の例で言うと、決定したレベル「5」は、カタログ配布メッセージにおけるIDマスク「0」よりも大きいため、当該制御部11は、決定したレベルがIDマスクよりも大きいと判別し(ステップS62:YES)、ステップS63に移行する。
ステップS63では、当該制御部11は、自己のルーティングテーブルの指定する欄(つまり、レベルと列)を決定する。具体的には、当該制御部11は、指定するレベルを「上記カタログ配布メッセージにおけるIDマスクの値+1」に、指定する列を当該レベルの左端から1列に、夫々決定する。
なお、ルーティングテーブルがA桁B進数からなる場合、レベルの値は1〜Aまでであり、列の値は1〜Bまでとなる。上述のように4桁4進数であれば、レベルは1〜4(全レベル数が4)であり、列は1〜4(全列数が4)である。上述の例では、カタログ配布メッセージにおけるIDマスクが「0」であるため、ルーティングテーブルにおける「レベル1、1列」の欄が指定される。
次いで、当該制御部11は、決定したレベルの値が全レベル数以下であるか否かを判別する(ステップS64)。上述の例では、決定したレベルの値「1」が、全レベル数「4」以下であるため、当該制御部11は、決定したレベルの値が全レベル数以下であると判別し(ステップS64:YES)、次いで、決定した列の値が全列数以下であるか判別する(ステップS65)。上述の例では、決定した列の値「1」が、全列数「4」以下であるため、当該制御部11は、決定したレベルの値が全レベル数以下であると判別し(ステップS65:YES)、続いて、決定した欄が自己(自己のノードID)を示すか否かを判別する(ステップS66)。上述の例では、決定した「レベル1、1列」の欄には自己のノードIDは登録されていないため、当該制御部11は、決定した欄が自己を示さないと判別し(ステップS66:NO)、ステップS67に移行する。
ステップS67では、当該制御部11は、決定した欄にノードのIPアドレス等が登録されているか否かを判断する。上述の例では、決定した「レベル1、1列」の欄にノードAのIPアドレスが登録されているため、当該制御部11は、決定した欄にノードのIPアドレス等が登録されている判断し(ステップS67:YES)、当該登録されているノードに対して(当該IPアドレスにしたがって)カタログ配布メッセージを送信する(ステップS68)。
次いで、当該制御部11は、決定した列の値に「1」を加算し(ステップS69)、ステップS65に戻る。
そして、ステップS65〜S69の処理は繰り返し行われ、例えば図5において「レベル1、2列」の欄に登録されたノードB、「レベル1、3列」の欄に登録されたノードCにもカタログ配布メッセージが送信され、決定した欄が「レベル1、4列」に変更され、ステップS65に戻る。
次いで、ステップS65の処理を経て、ステップS66の処理において、決定した「レベル1、4列」の欄は自己を示しているため、当該制御部11は、決定した欄が自己を示すと判断し(ステップS66:YES)、ステップS69に移行する。このようにして、ルーティングテーブルのレベル1に登録されている全てのノード1にカタログ配布メッセージを送信することができる。
一方、上記ステップS65の処理において決定した列の値が全列数以下でないと判別した場合(ステップS65:NO)、当該制御部11は、上記カタログ配布メッセージのヘッダ部において設定されたIDマスクの値に「1」を加算して当該IDマスクを再設定し(ステップS70)、ステップS63に戻り、同様の処理が繰り返される。
一方、上記ステップS67の処理において、上記決定した欄にノードのIPアドレス等が登録されていない場合には(ステップS67:NO)、当該制御部11は、決定した欄(例えば、「レベル3、2列」)の最も近くに記憶されているノードに対して、カタログ配布メッセージを送信する(ステップS71)。上述の例では、IDマスクの値を「3」とし、ターゲットノードIDを「レベル3、2列」の欄に該当する「3110」とする。
このようにターゲットを特定することにより、この欄に対応するノードが参加した場合に、カタログ配布メッセージを送信できることとなる。なお、上述の例においては、ノードGに当該カタログ配布メッセージを送信して転送させればよい。
ここで、カタログ配布メッセージのヘッダ部における転送回数上限値は、転送回数の上限を決める値であり、ターゲットとなるノードが存在しない場合に、当該メッセージが転送され続けることを防止するために設けられる。転送回数上限値は、通常の転送では絶対に超えない程度のやや大きめの値とする。例えば、レベル数が4であるルーティングテーブルを用いる場合には、転送回数は、4回以内に収まるのが通常であり、この場合、転送回数上限値は、例えば8回、16回等にする。
一方、上記ステップS64の処理において、決定したレベルの値が全レベル数以下でないと判別された(ステップS64:NO)、当該処理が終了する。
一方、上述のステップS61の処理において、例えば自己のノードIDが「3102」であり、ターゲットノードIDが「2132」であり、IDマスクが「4」である場合には、一致する桁数は「0」となり、これに1が加算され、指定するルーティングテーブルのレベルが「1」と決定される。この場合、ステップS62では、決定したレベルがカタログ配布メッセージにおけるIDマスク「4」よりも小さいため、ステップS72に移行され、通常のDHTメッセージ送信(転送)処理が行われる。具体的には、制御部11は、決定したレベルにおけるターゲットノードIDに最も近いノードであって、ルーティングテーブルに登録されているものを決定し、当該ノードにカタログ配布メッセージを送信(転送)し、当該理を終了する。
次に、上記のように送信されたカタログ配布メッセージを受信した各ノードは、当該カタログ配布メッセージを記憶し、図18に示す処理を開始する。
図18に示す処理が開始されると、当該ノードの制御部11は、カタログ配布メッセージの転送回数が転送回数上限値を超えたか否かを判別し(ステップS81)、転送回数上限値を超えていない場合には(ステップS81:NO)、自己のノードIDが、受信したカタログ配布メッセージのターゲットに含まれるか否かを判別する(ステップS82)。このとき、カタログ配布メッセージにおけるIDマスクが「0」である場合、上述したように、全てのノードIDを含むため、当該制御部11は、自己のノードIDが、上記ターゲットに含まれると判別し(ステップS82:YES)、受信したカタログ配布メッセージのヘッダ部におけるターゲットノードIDを自己のノードIDに変換設定し、IDマスクを「上記カタログ配布メッセージにおけるIDマスクの値+1」に変換設定して(ステップS83)、そのカタログ配布メッセージについて図17に示すカタログ配布メッセージ送信処理を実行する(ステップS84)。そして、当該カタログ配布メッセージ送信処理が終了すると、当該制御部11は、上述した実施形態1と同様、図15に示すカタログ情報受信処理を実行し(ステップS85)、当該処理を終了する。
一方、上記ステップS82の処理において、自己のノードIDが、上記ターゲットに含まれないと判別された場合には(ステップS82:NO)、受信したカタログ配布メッセージについて図17に示すカタログ配布メッセージ送信処理を実行し(ステップS86)、当該処理を終了する。
また、一方、ステップS81の処理において、受信されたカタログ配布メッセージの転送回数が転送回数上限値を超えたと判別された場合には(ステップS81:YES)、転送が行われずに当該処理が終了する。
以上説明したように、上記DHTマルチキャスト処理の変形形態によれば、オーバーレイネットワーク9へのノードの参加、脱退が行われたとき、それがあるノードにおけるルーティグテーブルには、未だ反映されていないような場合であっても、オーバーレイネットワーク9に参加している全てのノードにカタログ配布メッセージを送信することができる。
[3.2 実施形態2]
[3.2.1 コンテンツカタログ情報の記憶動作]
次に、実施形態2におけるコンテンツ配信システムSの動作について説明する。なお、この実施形態2において、上述した実施形態1と同様の部分については、重複する説明を省略する
また、上述した図13、図14、図16乃至図18は、当該実施形態2においても適用され、上述した実施形態1若しくは上記変形形態と同様に実行される。
一方、上述した図15に示す処理は、当該実施形態2においては適用されず、その代わりに図19に示す処理が実行される。
上記実施形態1は、オーバーレイネットワーク9に参加している各ノードが、夫々、コンテンツカタログ情報の全部を記憶する形態であったが、コンテンツ配信システムS上に投入されるコンテンツの数が膨大になると、コンテンツカタログ情報のデータ量も大きくなりすぎて1台のノードにおけるカタログキャッシュ領域に記憶しきれないという事態が想定される。
そこで、実施形態2では、各ノード毎にコンテンツデータの担当範囲(当該担当範囲が広ければ広いほどより多くの数のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶でき、担当範囲が狭ければ狭いほど少ない数のコンテンツデータの属性情報が記述されたコンテンツカタログ情報しか記憶できない)を決め、各ノードが属するエリア(ノードID空間におけるエリア)に対応するコンテンツデータ(例えば、最上位桁目が「0」であるエリア(「0XXX」のエリア)には、最上位桁目が「0」であるコンテンツIDを有するコンテンツデータが対応する)のうち自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するように構成し、コンテンツカタログ情報を複数のノードで分散するようにしている。
ここで、「担当範囲」は、例えば、ノードIDとコンテンツIDとの最上位桁目からの一致すべき桁数を示す「Range」(担当範囲を示す担当範囲情報の一例)で表される。例えば、Range=1の場合、少なくとも最上位桁目が一致すべきことを意味し、Range=2の場合、少なくとも最上位桁目及びその次の桁目が一致すべきことを意味しており、当該Rangeは、担当範囲が広くなるほど、小さくなる桁数を示している。
そして、夫々のノードは、上記Rangeを記憶しており、自己のノードIDのうちRangeにて示される桁数分の所定桁目が一致するコンテンツIDを有するコンテンツデータを、自己の担当範囲のコンテンツデータとして、その属性情報が記述されたコンテンツカタログ情報を記憶する。例えば、ノードIDが「0132」でRange=1であるノードは、少なくとも最上位桁目が「0」(最上位桁目が一致)であるコンテンツIDを有する全てのコンテンツデータを、自己の担当範囲のコンテンツデータとしてその属性情報が記述されたコンテンツカタログ情報を記憶することになる。また、ノードIDが「1001」でRange=2であるノードは、少なくとも最上位桁目から2桁目までが「10」であるコンテンツIDを有する全てのコンテンツデータを、担当範囲のコンテンツデータとしてその属性情報が記述されたコンテンツカタログ情報を記憶することになる。なお、Range=0の場合、コンテンツカタログ情報の全部を記憶することになる。また、各ノードは、自己の担当範囲外のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶することを妨げるものではなく、最低限自己の担当範囲のコンテンツデータの属性情報については、他のノードに対して記憶していることを保証するものである。
また、Rangeをどのように設定するかは、各ノード毎に任意であるが、例えば、カタログキャッシュ領域の記憶容量が小さいほど狭く(言い換えれば、大きいほど広く)設定される。なお、記憶容量に余裕がある場合には、Range=0としても良い。
次に、図19を参照して、あるノードにおけるカタログ情報受信処理について具体的に説明する。なお、オーバーレイネットワーク9に参加している各ノードには、少なくとも自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報が記憶されているものとする。
実施形態2における、カタログ情報受信処理においては、図19に示すように、カタログ配布メッセージを受信したノードの制御部11は、実施形態1と同様、カタログ配布メッセージのペイロード部における更新差分コンテンツカタログ情報を取得する(ステップS101)。なお、図19に示すステップS102〜S105の処理は、図15に示すステップS21〜S25の処理と同様である。
上記ステップS105における比較の結果、既に自己の記憶部12に記憶されているコンテンツカタログ情報に付加された最新のバージョン情報より、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報が1つ新しい場合には(ステップS105:YES)、制御部11は、当該更新差分コンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、自己のRangeに示される担当範囲内のコンテンツデータ(例えば、自己のRangeに示される一致すべき桁数分の所定桁目(最上位桁目から当該桁数分)が、自己のノードIDと一致するコンテンツIDを有するコンテンツデータ)を特定し、当該特定したコンテンツデータに係るコンテンツカタログ情報を更新する(ステップS107)。例えば、特定されたコンテンツデータの属性情報が、既に記憶されているコンテンツカタログ情報に追加登録され、バージョンアップされる。
一方、ステップS105における上記比較の結果、既に記憶されているコンテンツカタログ情報に付加されたバージョン情報より、上記取得した更新差分コンテンツカタログ情報に付加されたバージョン情報が1つ新しいのではない(つまり、2つ以上新しい)場合には(ステップS105:NO)、制御部11は、双方のバージョン情報の間に位置すべきバージョン情報に対応する更新差分コンテンツカタログ情報(つまり、足りない更新差分コンテンツカタログ情報)を、上記カタログ配布メッセージを送信した上位のノードに対して要求(足りない更新差分コンテンツカタログ情報のバージョン情報を含む要求メッセージを送信)、これを取得し、当該更新差分コンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、自己のRangeに示される担当範囲内のコンテンツデータを特定する(ステップS106)。
なお、足りない更新差分コンテンツカタログ情報の要求を受けた上位のノードも、自己の担当範囲外によりその更新差分カタログ情報を記憶していない場合、当該上位のノードは、更に上位のノードに対して足りない更新差分コンテンツカタログ情報を要求することになり、その足りない更新差分コンテンツカタログ情報が得られるまで上位のノードへ要求が上がっていくことになる(最悪でも、カタログ配布メッセージの送信元のノードXまでいけば必ず足りない更新差分コンテンツカタログ情報が得られる)。
続いて、制御部11は、上記ステップS101で取得した更新差分コンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、自己のRangeに示される担当範囲内のコンテンツデータ(例えば、自己のRangeに示される一致すべき桁数分の所定桁目(最上位桁目から当該桁数分)が、自己のノードIDと一致するコンテンツIDを有するコンテンツデータ)を特定し、当該特定したコンテンツデータ及び上記ステップS106にて特定したコンテンツデータに係るコンテンツカタログ情報を更新(例えば、特定したコンテンツデータの属性情報を新規登録)する(ステップS107)。
次いで、制御部11は、ステップS101で取得した更新差分コンテンツカタログ情報に付加されたバージョン情報に基づいて、既に記憶されているコンテンツカタログ情報に付加されたバージョン情報を更新し(ステップS108)、当該処理を終了する。
なお、仮に、上記ステップS101で取得された更新差分コンテンツカタログ情報に属性情報が記述されたコンテンツデータのうちからコンテンツデータが一つも特定されない場合(つまり、更新差分コンテンツカタログ情報に属性情報が記述されたコンテンツデータが、何れも自己の担当範囲外である場合)であっても、既に記憶されているコンテンツカタログ情報に付加されたバージョン情報は、上記ステップS101で取得された更新差分コンテンツカタログ情報に付加されたバージョン情報に更新(最新にする)されて記憶される。この後、再び、更新差分コンテンツカタログ情報を受信したときに、そのバージョンと比較しなければならないからである。
次いで、制御部11は、自己の記憶部12におけるカタログキャッシュ領域に記憶されているコンテンツカタログ情報のデータ量が所定量(例えば、当該カタログキャッシュ領域の最大容量の90%以上のデータ量)以上になったか否かを判別し(ステップS109)、所定量以上になった場合には(ステップS109:YES)、自己のRangeに「1」を加算(つまり、自己の担当範囲を狭くするように変更)し(ステップS110)、カタログキャッシュ領域に記憶されているコンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、Rangeが上がったことにより(担当範囲が狭くなったことにより)担当範囲外となったコンテンツデータの属性情報を当該コンテンツカタログ情報から削除し(ステップS111)、当該処理を終了する。これにより、カタログキャッシュ領域の記憶容量を確保することができる。一方、コンテンツカタログ情報のデータ量が所定量以上になっていない場合には(ステップS109:NO)、当該処理を終了する。
以上説明したように、上記実施形態2におけるコンテンツカタログ情報の記憶動作によれば、オーバーレイネットワーク9に参加している各ノード毎に、コンテンツデータの担当範囲を決め、各ノードが属するエリア(ノードID空間におけるエリア)に対応するコンテンツデータのうち自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶するように構成し、コンテンツカタログ情報を複数のノードで分散するようにしたので、コンテンツ配信システムS上に投入されるコンテンツの数が膨大になり、コンテンツカタログ情報のデータ量も大きくなりすぎて1台のノードにおけるカタログキャッシュ領域に記憶しきれないという問題が生じることなく、全てのコンテンツカタログ情報をコンテンツ配信システムS上に検索可能に分散配置させることで、各ノードは、コンテンツカタログ情報の全てを利用することができる。
しかも、各ノードの担当範囲のコンテンツデータは、夫々、自己のノードIDと所定桁目(例えば、最上位桁目)が一致するコンテンツIDに対応するコンテンツデータとしたので、DHTのルーティングテーブルの欄(テーブルエントリー)毎に担当範囲を決めることができ、各ノードは、自己のDHTのルーティングテーブルの各欄に登録されたノードが、どの範囲のコンテンツデータに係るコンテンツカタログ情報を保持している可能性があるかを容易に知ることができる。
また、例えば、ノードID及びコンテンツIDが16桁16進数である場合には、コンテンツカタログ情報を、ルーティングテーブルのレベル1における注目桁である0〜Fの16分割することができる。
また、各ノードの担当範囲は、ノードIDとコンテンツIDとの最上位桁目からの一致すべき桁数を示し、且つ担当範囲が広くなるほど小さくなる桁数を示す「Range」で特定されるようにし、各ノード毎にかかるRangeを任意に決めることができるようにしたので、記憶保存するべきコンテンツカタログ情報の大きさ(データ量)を各ノード毎に決めることができる。更に、そのRangeは、例えば、カタログキャッシュ領域の記憶容量が小さいほど狭く(言い換えれば、大きいほど広く)設定できるようにしたので、各ノードにおける記憶容量に応じて記憶可能なコンテンツカタログ情報のデータ量を設定でき、ノード間の記憶容量の差があっても、適切に、コンテンツカタログ情報を分散させることができる。
また、上述した実施形態1(又はDHTマルチキャスト処理の変形形態)と同様、DHTマルチキャストにより、更新差分コンテンツカタログ情報をオーバーレイネットワーク2に参加している全てのノードに対して配信(配布)されるようにし、これを受信した各ノードは、自己の担当範囲のコンテンツデータに係る更新差分コンテンツカタログ情報のみを既に記憶されているコンテンツカタログ情報に組み込み更新するようにしたので、各ノードは、常に、自己の担当範囲の最新のコンテンツカタログ情報を記憶しておくことができる。
更に、更新差分コンテンツカタログ情報を受信し自己の担当範囲に該当するものを記憶した各ノードは、自己のカタログキャッシュ領域に記憶されているコンテンツカタログ情報のデータ量が所定量以上になった場合、自己の担当範囲を狭くするように変更し、カタログキャッシュ領域に記憶されているコンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、担当範囲が狭くなったことにより担当範囲外となったコンテンツデータの属性情報を当該コンテンツカタログ情報から削除するようにしたので、カタログキャッシュ領域の記憶容量を確保することができる。
[3.2.2 コンテンツカタログ情報の検索動作]
次に、以上のように各ノードに分散されて保存されているコンテンツカタログ情報の検索方法について説明する。
図20(A)は、ノードIのルーティングテーブルの一例を示す図であり、図20(B)は、ノードIからカタログ検索要求がなされる際の様子を示す概念図を示す図である。
図20(B)の例では、ノードIのRangeを「2」としているため、ノードIDが「3102」であるノードIの担当範囲は「31」となり、当該ノードIは、最上位桁から2桁目までが「31」であるコンテンツIDを有するコンテンツデータの属性情報が記述(登録)されたコンテンツカタログ情報を記憶している。したがって、最上桁目から2桁目までが「31」であるコンテンツIDを有するコンテンツデータの属性情報については、自己のコンテンツカタログ情報から検索することができる。
しかし、当該ノードIは、最上位桁目から2桁目までが「31」でないコンテンツIDを有するコンテンツデータの属性情報については、自己のコンテンツカタログ情報中に記述(登録)されていないため、かかる属性情報については、自己のルーティングテーブルに登録された各エリアに属する代表のノードに対して問い合わせる(コンテンツカタログ情報を検索するための検索キーワードによるカタログ検索要求)ことになる。つまり、ノードIは、自己のRangeにて示される一致すべき桁数分の所定桁目(例えば、最上位桁目から2桁目まで)の値「31」外の値に対応する各エリアに属する代表のノードに対して、カタログ検索要求を行うようになっている。
図20(B)の例では、ノードIは、自己のルーティングテーブルの1段目(レベル1)に登録されているノードA、ノードB、及びノードCに対して、夫々、最上位桁目が「0」、「1」、及び「2」であるコンテンツIDを有するコンテンツデータの属性情報が記述されたコンテンツカタログ情報についてのカタログ検索要求を行っている。
更に、図20(B)の例では、ノードIは、自己のルーティングテーブルの2段目(レベル2)に登録されているノードD、ノードE、及びノードFに対して、夫々、最上位桁目から2桁目までが「30」、「32」、及び「33」であるコンテンツIDを有するコンテンツデータの属性情報が記述されたコンテンツカタログ情報についてのカタログ検索要求を行っている。つまり、ノードIは、自己の担当範囲が、自己が属するエリアに対応するコンテンツデータ(ここでは、最上位桁目が「3」であるコンテンツIDを有するコンテンツデータ)の範囲の一部(ここでは、「31」)である場合には、自己が属するエリアをさらに複数のエリアに分けた小エリアに属する代表のノードに対してカタログ検索要求を行うことになる。
更に、図20(B)の例では、ノードBのRangeを「2」としているため、ノードIDが「1001」であるノードBの担当範囲は「10」となる。したがって、ノードBは、最上位桁目から2桁目までが「10」でない(つまり、「11」、「12」、「13」)コンテンツIDを有するコンテンツデータの属性情報については、ノードB1、ノードB2、及びノードB3に対してコンテンツカタログ情報についてのカタログ検索要求を行っている。つまり、ノードBは、自己の担当範囲が、自己が属するエリアに対応するコンテンツデータの範囲の一部である場合には、自己が属するエリアをさらに複数のエリアに分けた小エリアに属する代表のノードに対してカタログ検索要求を行う(転送)ことになる。
なお、ノードIのRangeが「1」である場合、当該ノードは、夫々、最上位桁目から2桁目までが「30」、「32」、及び「33」であるコンテンツIDを有するコンテンツデータの属性情報についても、コンテンツカタログ情報中に記述(登録)されていることになるため、自己のルーティングテーブルの2段目(レベル2)に登録されているノードD、ノードE、及びノードFに対してカタログ検索要求を行う必要はない。
そして、カタログ検索要求を受けた各ノードは、指示された検索条件を満たす(検索キーワードを含む)コンテンツデータの属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域から検索し取得して、これを含む検索結果を、カタログ検索要求元のノードに対して返信することになる。なお、かかる返信は、直接、カタログ検索要求元のノードに対して行うようにしても良いし、上位のノードを経由して(例えば、ノードB1の場合、ノードBを経由してノードIへ)行うようにしても良い。
次に、図21乃至図23を参照して、上記カタログ検索要求が行われる際の各ノードにおける処理について具体的に説明する。
図21は、ノードにおけるカタログ検索処理を示すフローチャートであり、図22は、図21におけるカタログ検索要求処理の詳細を示すフローチャートであり、図23は、カタログ検索要求メッセージを受信したノードにおける処理を示すフローチャートである。
例えばノードIにおいて、ユーザから入力部21を介してカタログ表示指示があった場合、図示しないカタログ表示処理が開始され、例えば図5に示すようなカタログが表示部16上に表示される。
このような表示状態において、ユーザが入力部21を操作して所望の検索キーワード(例えば、ジャズ)を入力実行すると、図21に示すカタログ検索処理が開始(カタログ表示処理から移行)され、当該ノードIの制御部11は、入力された検索キーワードを検索条件として取得し(ステップS201)、さらに記憶部12からRangeを取得する。
次いで、当該制御部11は、取得したRangeが「0」より大きいか否かを判別し(ステップS202)、「0」より大きくない場合(つまり、「0」の場合)には(ステップS202:NO)、コンテンツカタログ情報の全てを記憶しているので、上記取得した検索キーワードに該当する属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域に記憶されたコンテンツカタログ情報から検索、取得し(ステップS203)、そのコンテンツカタログ情報に記述された属性情報の一覧(例えば、ジャンル一覧)を、例えば、表示部21に表示されたカタログ上に選択可能に表示(検索結果をユーザに提示)し(ステップS204)、当該処理を終了し、カタログ表示処理に戻ることになる。なお、当該カタログ表示処理において、ユーザから再び検索キーワードが入力されると(例えば、アーティスト名での絞り込み)、再び、当該カタログ検索処理が開始されることになる。そして、当該表示部21に表示されたカタログ上でコンテンツ名が選択されると、上述したように、そのコンテンツデータのコンテンツIDが取得され、コンテンツIDを含むコンテンツ所在問合せメッセージが、そのルートノードに向かって送出されることになる。
一方、上記取得したRangeが「0」より大きい場合(つまり、コンテンツカタログ情報の全てを記憶していない場合)には(ステップS202:YES)、当該制御部11は、自己のIPアドレス等を含み、例えばレベル下限値lower=1、レベル上限値upper=2、及び転送回数上限値nforward=2に設定したヘッダ部と、固有のユニークID(例えば、当該カタログ検索要求メッセージに固有のID)及び上記取得した検索キーワードを検索条件として含むペイロード部と、を有する検索要求情報としてのカタログ検索要求メッセージを生成する(ステップS205)。レベル下限値lowerとレベル上限値upperとで、ルーティングテーブルにおけるメッセージの送信範囲を規定できるようになっており、例えば、レベル下限値lower=1、且つレベル上限値upper=2と設定すると、ルーティングテーブルにおけるレベル1及びレベル2に登録された全てのノードがメッセージの送信先となる。
次いで、当該制御部11は、カタログ検索要求処理を行う(ステップS206)。
当該カタログ検索要求処理においては、図22に示すように、先ず、制御部11は、上記カタログ検索要求メッセージにおけるヘッダ部に設定されたレベル上限値upperがレベル下限値lower以上であるか否かを判別し(ステップS221)、レベル下限値lower以上である場合には(ステップS221:YES)、自己のルーティングテーブルの指定する欄(つまり、レベルと列)を決定する(ステップS222)。具体的には、当該制御部11は、指定するレベルをカタログ検索要求メッセージにおけるレベル下限値lowerに、指定する列を当該レベルの左端から1列に、夫々決定する。
次いで、当該制御部11は、決定した欄にIPアドレスが登録されているか否かを判別し(ステップS223)、登録されている場合には(ステップS223:YES)、上記カタログ検索要求メッセージのヘッダ部におけるターゲットノードIDとして当該決定した欄におけるノードIDに設定し、当該決定した欄におけるIPアドレスを設定して(ステップS224)、当該決定した欄に登録されている代表のノードに、当該カタログ検索要求メッセージを送信する(ステップS225)。
一方、決定した欄にIPアドレスが登録されていない場合には(ステップS223:NO)、当該制御部11は、転送回数上限値nforwardに「1」を加算(転送回数上限値を増やし、当該エリアに属するノードに到達させるため)し(ステップS226)、上記カタログ検索要求メッセージのヘッダ部におけるターゲットノードIDとして当該決定した欄に登録可能な任意のノードID(例えば、注目桁が「0」であるエリアの場合、0(最上位桁)から始まりさえすればその後の値は何であっても良い)に設定し、当該決定した欄と同じレベルの最も近くの欄(例えば、右隣の欄)に登録(記憶)されているノードのIPアドレスを設定して(ステップS227)、当該最も近くの欄に登録されているノードに、当該カタログ検索要求メッセージを送信する(ステップS225)。これにより、当該メッセージは、上記決定した欄に登録可能な任意のノードIDのノード(このエリアに属する代表のノードとなる)に最終的に転送されるか、或いは、転送回数上限値に達して破棄されることになる。
次いで、当該制御部11は、上記決定した列の値に「1」を加算し(ステップS228)、加算された列が全列数以下か否かを判別し(ステップ229)、全列数以下である場合には(ステップS229:YES)、ステップS223に戻り、上記と同様の処理を行い、当該レベルの右端列の欄についての処理が終了するまで繰り返される。
そして、全列数以下でなくなった場合には(ステップS229:NO)、レベル下限値lowerに「1」が加算され(ステップS230)、ステップS221に戻り、再び、レベル上限値upperが、上記加算されたレベル下限値lower以上であるか否かが判別され、レベル上限値upperが、上記加算されたレベル下限値lower以上でなくなるまで、上記処理が繰り返し行われる。つまり、レベル上限値upperで示されるルーティングテーブルのレベル(ここではレベル2)における各欄についての処理が行われる。そして、レベル上限値upperがレベル下限値lower以上でなくなった場合には(ステップS221:NO)、図21に示す処理に戻る。
以上のように、カタログ検索要求メッセージは、ルーティングテーブルにおける各エリアに属する代表のノードのIPアドレスにしたがって、当該各エリアに属する代表のノードに対して送信されることになる。
次に、上記のように送信されたカタログ検索要求メッセージを受信した各ノードは、当該カタログ検索要求メッセージを一時格納し、図23に示す処理を開始する。
図23に示す処理が開始されると、ノードの制御部11は、カタログ検索要求メッセージのヘッダ部における転送回数上限値nforwardから「1」を減算し(ステップS241)、自己のノードIDが、受信したカタログ検索要求メッセージのターゲットに含まれるか否かを判断する(ステップS242)。例えば、自己のノードIDと、カタログ検索要求メッセージのヘッダ部におけるターゲットノードIDとが一致する場合、当該ターゲットに含まれると判断され(ステップS242:YES)、当該制御部11は、上記減算された転送回数上限値nforwardが「0」より大きいか否かを判別する(ステップS243)。
そして、転送回数上限値nforwardが「0」より大きい場合には(ステップS243:YES)、当該制御部11は、レベル下限値lowerに「1」を加算し(ステップS244)、図22に示すカタログ検索要求処理を行い(ステップS245)、ステップS246に移行する。当該カタログ検索要求処理については、上述した通りであり、当該ノードは、自己の下位のノード(ルーティングテーブルのレベル2の各欄に登録された代表のノード)に対してカタログ検索要求メッセージを転送することになる。
一方、転送回数上限値nforwardが「0」より大きくない(「0」になった)場合には(ステップS243:NO)、これ以上、カタログ検索要求メッセージの転送を行うことなく、ステップS246に移行する。
ステップS246では、当該制御部11は、カタログ検索要求メッセージのペイロード部における検索条件として検索キーワードを取得し、当該検索条件を満たす(例えば、検索キーワード「ジャズ」に該当する)コンテンツデータの属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域から検索する。
そして、当該制御部11は、上記検索したコンテンツカタログ情報、及び自己の担当範囲(例えば、「10」)を検索範囲として含む検索結果情報と、カタログ検索要求メッセージにおけるユニークIDと、を含む検索結果メッセージを生成し、これを、カタログ検索要求メッセージの送信元のノードIに対して送信(返信)し(ステップS247)、当該処理を終了する。
一方、ステップS242の処理において、自己のノードIDが、受信したカタログ検索要求メッセージのターゲットに含まれないと判断された場合には(ステップS242:NO)、当該制御部11は、上記減算された転送回数上限値nforwardが「0」より大きいか否かを判別し(ステップS248)、「0」より大きい場合には(ステップS248:YES)、通常のDHTルーティングと同様、カタログ検索要求メッセージのヘッダ部におけるターゲットIDと最も近い(例えば、上位桁がより多く一致する)ノードIDを有するノードのIPアドレス等を取得し、そのIPアドレス等宛てに、上記カタログ検索要求メッセージを転送し(ステップS249)、「0」より大きくない場合には(ステップS248:NO)、当該処理を終了する。
そして、図21に示す処理に戻り、ノードIの制御部11は、他のノードから返信されてきた検索結果メッセージを受信すると(ステップS207:YES)、当該メッセージに含まれているユニークIDと検索結果情報を一時的にRAMに記憶する(ステップS208)。こうして、予め設定された時間(カタログ検索要求処理においてカタログ検索要求メッセージを送信してから該予め設定された時間)が経過しタイムアウトに至るまで、上記検索結果メッセージの受信待機及び受信が行われ、受信された各検索結果メッセージに含まれるユニークIDと検索結果情報が記憶される。
そして、タイムアウトになると(ステップS209:YES)、当該制御部11は、同じユニークIDに対応する検索結果情報を集計、整理し、これに含まれる検索範囲が、期待される範囲(自己の担当範囲外の範囲)を全て網羅しているか否かを判別(つまり、受信された全ての検索結果情報に含まれる検索範囲に基づいて、コンテンツカタログ情報の検索がされていない範囲があるか否かを判別)し(ステップS210)、網羅していない場合(検索がされていない範囲がある場合)には(ステップS210:NO)、網羅していない範囲(検索されていない範囲)に関してのみ、カタログ管理ノードであるノードX又はカタログ管理サーバに問合せ、その範囲に係る上記検索条件を満たすコンテンツデータの属性情報が記述されたコンテンツカタログ情報を取得、追加する(ステップS211)。
次いで、当該ノードIの制御部11は、自己の担当範囲のコンテンツデータの属性情報が記述されたコンテンツカタログ情報から、上記検索条件を満たす(例えば、検索キーワード「ジャズ」に該当する)コンテンツデータの属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域から検索、取得し(ステップS203)、こうして全ての範囲について網羅されたコンテンツカタログ情報に記述された属性情報の一覧を、例えば、表示部21に表示されたカタログ上に選択可能に表示(検索結果をユーザに提示)し(ステップS204)、当該処理を終了し、カタログ表示処理に戻ることになる。
以上説明したように、上記実施形態2におけるコンテンツカタログ情報の検索動作によれば、各ノードは自己の担当範囲外のコンテンツデータに係るコンテンツカタログ情報についてのカタログ検索要求(カタログ検索要求メッセージ)を、DHTマルチキャストにより効率良く、自己のDHTのルーティングテーブルの例えばレベル1及びレベル2の各欄に登録された代表の各ノードに対して行うことができる。よって、各ノードは、所望のコンテンツカタログ情報を、少ないメッセージ量で、より効率良く検索することができる。
そして、カタログ検索要求を行ったノードは、代表の各ノードから夫々の範囲の検索結果を取得することができるので、全てのコンテンツカタログ情報を保持しておく必要がない。
また、コンテンツカタログ情報のサイズが巨大になると、カタログ検索要求を受けた各ノードにおける検索処理の負荷も大きくなるが、上記実施形態2の手法によれば、コンテンツカタログ情報がほぼ均等に分散されるため(コンテンツID自体がノードID空間にさほど隔たりがなく分散されることによる)、当該各ノードにおける検索処理の負荷も均等に分散され、検索速度の向上を図ることができ、ネットワーク負荷も分散することができる。
更に、上記コンテンツカタログ情報の分散は、各ノードにより自律的に行われるので、例えばサーバによる情報収集や管理が必要ないというメリットもある。つまり、管理者は、例えばカタログ管理ノードから差分更新コンテンツカタログ情報をDHTマルチキャストにより配信するだけで、各ノードは自己の担当範囲であるか否かを、ノードID、コンテンツID、及びRangeにより判断し、自己の担当範囲のコンテンツデータに係るコンテンツカタログ情報のみを記憶保存するようにしたので、自律的なコンテンツカタログ情報の分散を図ることが可能となる。
(カタログ検索処理の変形形態)
上述した図21及び図22に示すカタログ検索処理では、カタログ検索要求メッセージを受信したノードが、自己の担当範囲如何に関わらず、転送回数上限値nforwardを確認して、カタログ検索要求メッセージを下位のノードに転送するようにした処理であったが、この変形形態として、カタログ検索要求メッセージを受信したノードが、自己の担当範囲が、自己が属するエリアに対応するコンテンツデータの範囲の一部である場合にのみ、自己が属するエリアをさらに複数のエリアに分けた小エリアに属する代表のノードに対してカタログ検索要求メッセージを転送するようにしたカタログ検索処理について、図24乃至図26を参照して、説明する。
なお、この変形形態において、上述した実施形態2と同様の部分については、重複する説明を省略する。
上述した図22に示す処理は、当該変形形態においても適用され、上述した実施形態2と同様に実行される。
一方、上述した図21に示す処理は、当該変形形態においては適用されず、その代わりに図24及び図25に示す処理が実行される。また、上述した図23に示す処理も、当該変形形態においては適用されず、その代わりに図26に示す処理が実行される。
(ノードIの処理)
図24に示すカタログ検索処理は、図21に示す処理と同様、例えば図5に示すようなカタログが表示部16上に表示された状態において、ユーザが入力部21を操作して所望の検索キーワード(例えば、ジャズ)を入力実行すると開始(カタログ表示処理から移行)され、当該ノードIの制御部11は、入力された検索キーワードを検索条件として取得し(ステップS301)、さらに記憶部12からRangeを取得する。
次いで、当該制御部11は、図25に示すカタログ検索処理αに移行する(ステップS302)。
当該カタログ検索処理αにおいては、図25に示すように、ノードIの制御部11は、先ず、上記取得した自己のRangeが、入力部21を介してユーザにより事前に設定された「要求検索範囲N」より大きいか否かを判別する(ステップS311)。
ここで、要求検索範囲Nは、コンテンツデータの検索範囲を決めるためのものであり、例えば、「0」に設定すると、全範囲のコンテンツデータが検索対象になり、値が大きくになるにしたがって、検索範囲が狭まっていくようになっている。
そして、自己のRangeが、要求検索範囲Nより大きくない場合(例えば、Range=0、要求検索範囲N=0の場合)には(ステップS311:NO)、当該制御部11は、自己のコンテンツカタログ情報に属性情報が記述されたコンテンツデータのコンテンツIDうち、自己のノードIDと最上位桁目からN(要求検索範囲)桁一致するコンテンツID(要求検索範囲=0の場合、全ての桁が一致しなくとも良く、したがって、全コンテンツデータのコンテンツIDが対象となる)を有するコンテンツデータの属性情報の中から、上記取得した検索キーワードに該当する属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域に記憶されたコンテンツカタログ情報から検索、取得し(ステップS312)、図24に示す処理に戻り、その属性情報の一覧を、例えば、表示部21に表示されたカタログ上に選択可能に表示(検索結果をユーザに提示)し(ステップS303)、当該処理を終了し、図21に示す処理と同様、カタログ表示処理に戻ることになる。
一方、自己のRangeが要求検索範囲Nより大きい場合(例えば、Range=2、要求検索範囲N=0の場合)には(ステップS311:YES)、当該制御部11は、自己のIPアドレス等を含み、例えばレベル下限値lower=「要求検索範囲N+1」、レベル上限値upper=「自己のRange」、及び転送回数上限値nforward=1に設定したヘッダ部と、固有のユニークID及び上記取得した検索キーワードを検索条件として含むペイロード部と、を有する検索要求情報としてのカタログ検索要求メッセージを生成する(ステップS313)。
上述したように、レベル下限値lowerとレベル上限値upperとで、ルーティングテーブルにおけるメッセージの送信範囲を規定できるようになっているので、例えば、Range=2、要求検索範囲N=0の場合、例えば、レベル下限値lower=1、且つレベル上限値upper=2となり、ルーティングテーブルにおけるレベル1及びレベル2に登録された全てのノード(図20の例では、ノードA,B,C,D,E及びF)がメッセージの送信先となる。また、例えば、Range=2、要求検索範囲N=1の場合、例えば、レベル下限値lower=2、且つレベル上限値upper=2となり、ルーティングテーブルにおけるレベル2のみに登録された全てのノードがメッセージの送信先となる。
次いで、当該制御部11は、図22に示すカタログ検索要求処理を行う(ステップS314)。かかるカタログ検索要求処理は、上述した実施形態2と同様であり、カタログ検索要求メッセージは、ルーティングテーブルにおける各エリアに属する代表のノードのIPアドレスにしたがって、当該各エリアに属する代表のノードに対して送信されることになる。
そして、送信されたカタログ検索要求メッセージを受信した各ノードは、当該カタログ検索要求メッセージを一時格納し、図26に示す処理を開始する。
図26に示す処理が開始されると、ノードの制御部11は、カタログ検索要求メッセージの送信元のノードIのノードIDと自己のノードIDとの一致桁数(最上位からの一致桁数)に「1」を加算した値を、要求検索範囲Nとし(ステップS331)、カタログ検索要求メッセージにおける検索キーワードを検索条件として取得し、さらに記憶部12から自己のRangeを取得、図25に示すカタログ検索処理αに移行する(ステップS332)。
(ノードAの処理)
カタログ検索要求メッセージを受信したノードが、例えば図20に示すノードAの場合、図25に示すカタログ検索処理αにおけるステップS311では、自己のRange(=1)が、要求検索範囲N(=1)より大きくないので、ステップS312に移行され、ノードAの制御部11は、自己のコンテンツカタログ情報に属性情報が記述されたコンテンツデータのコンテンツIDうち、自己のノードID(0132)と最上位桁目からN(=1)桁一致するコンテンツID(つまり、最上位桁目が「0」であるコンテンツID)を有するコンテンツデータの属性情報の中から、上記取得した検索キーワードに該当する属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域に記憶されたコンテンツカタログ情報から検索、取得し、図26に示す処理に戻る。
そして、図26に示すステップS333では、当該ノードAの制御部11は、上記ステップS312にて検索されたコンテンツカタログ情報、及び自己の担当範囲(例えば、「0」)を検索範囲として含む検索結果情報と、カタログ検索要求メッセージにおけるユニークIDと、を含む検索結果メッセージを生成し、これを、カタログ検索要求メッセージの送信元のノードIに対して送信(返信)し、当該処理を終了する。
(ノードB等の処理)
他方、カタログ検索要求メッセージを受信したノードが、例えば図20に示すノードBの場合、図25に示すカタログ検索処理αにおけるステップS311では、自己のRange(=2)が、要求検索範囲N(=1)より大きいので、ステップS313に移行され、ノードBの制御部11は、自己のIPアドレス等を含み、例えばレベル下限値lower=「要求検索範囲N(=1)+1」、レベル上限値upper=「自己のRange(=2)」、及び転送回数上限値nforward=1に設定したヘッダ部と、固有のユニークID及び上記取得した検索キーワードを検索条件として含むペイロード部と、を有する検索要求情報としてのカタログ検索要求メッセージを生成する。この場合、レベル下限値lower=2、且つレベル上限値upper=2となり、ルーティングテーブルにおけるレベル2に登録されたノードB1,B2及びB3がメッセージの送信先となる。
そして、当該ノードBの制御部11は、図22に示すカタログ検索要求処理を行い、カタログ検索要求メッセージを、ノードB1,B2及びB3に対して送信する。そして、当該カタログ検索要求メッセージを受信したノードB1,B2及びB3は、図26に示す処理を行い(上述したノードAと同様に図25の処理を経る)、自ら検索、取得したコンテンツカタログ情報、及び自己の担当範囲を検索範囲として含む検索結果情報と、カタログ検索要求メッセージにおけるユニークIDと、を含む検索結果メッセージを生成し、これを、当該カタログ検索要求メッセージの送信元のノードBに対して送信(返信)し、当該処理を終了する。
ノードBが行っている図25に示す処理に戻り、当該ノードBの制御部11は、ノードB1,B2及びB3から、夫々返信(理想的にはノードB1,B2及びB3の全てから返信されるが、脱退等により返信されないという場合も考えられる)されてきた検索結果メッセージを夫々受信すると(ステップS315:YES)、夫々のメッセージに含まれているユニークIDと検索結果情報を一時的にRAMに記憶する(ステップS316)。こうして、予め設定された時間(カタログ検索要求処理においてカタログ検索要求メッセージを送信してから該予め設定された時間)が経過しタイムアウトに至るまで、上記検索結果メッセージの受信待機及び受信が行われ、受信された各検索結果メッセージに含まれるユニークIDと検索結果情報が記憶される。
そして、タイムアウトになると(ステップS317:YES)、当該ノードBの制御部11は、同じユニークIDに対応する検索結果情報を集計、整理し、これに含まれる検索範囲が、期待される範囲(自己の担当範囲外の範囲(ここでは、「11」、「12」、及び「13」)を全て網羅しているか否かを判別し(ステップS318)、網羅していない場合には(ステップS318:NO)、網羅していない範囲に関してのみ、カタログ管理ノードであるノードX又はカタログ管理サーバに問合せ、その範囲に係る上記検索条件を満たすコンテンツデータの属性情報が記述されたコンテンツカタログ情報を取得、追加する(ステップS319)。
次いで、ノードBの制御部11は、自己のRange(=2)の値を、要求検索範囲Nとし(代入してNを変換)(ステップS320)、自己のコンテンツカタログ情報に属性情報が記述されたコンテンツデータのコンテンツIDのうち、自己のノードID(1001)と最上位桁目からN(=2)桁一致するコンテンツID(つまり、最上位桁目が「10」であるコンテンツID)を有するコンテンツデータの属性情報の中から、上記取得した検索キーワードに該当する属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域に記憶されたコンテンツカタログ情報から検索、取得し(ステップS312)、図26に示す処理に戻る。
そして、図26に示すステップS333では、当該ノードBの制御部11は、上記ステップS316,S319,及びステップS312にて取得されたコンテンツカタログ情報、並びに、自己の担当範囲を含む全ての検索範囲(ここでは、「10」、「11」、「12」、及び「13」、すなわち、「1」となる)を含む検索結果情報と、上記カタログ検索要求メッセージにおけるユニークIDと、を含む検索結果メッセージを生成し、これを、カタログ検索要求メッセージの送信元のノードIに対して送信(返信)し、当該処理を終了する。
(ノードIの処理)
ノードIが行っている図25に示す処理に戻り、当該ノードIの制御部11は、ノードA及びB等から、夫々返信されてきた検索結果メッセージを夫々受信すると(ステップS315:YES)、夫々のメッセージに含まれているユニークIDと検索結果情報を一時的にRAMに記憶する(ステップS316)。こうして、予め設定された時間(カタログ検索要求処理においてカタログ検索要求メッセージを送信してから該予め設定された時間)が経過しタイムアウトに至るまで、上記検索結果メッセージの受信待機及び受信が行われ、受信された各検索結果メッセージに含まれるユニークIDと検索結果情報が記憶される。
そして、タイムアウトになると(ステップS317:YES)、当該ノードIの制御部11は、同じユニークIDに対応する検索結果情報を集計、整理し、これに含まれる検索範囲が、期待される範囲(自己の担当範囲外の範囲(例えば、「0」、「1」、「2」、「30」、「32」、「33」)を全て網羅しているか否かを判別し(ステップS318)、網羅していない場合には(ステップS318:NO)、網羅していない範囲に関してのみ、カタログ管理ノードであるノードX又はカタログ管理サーバに問合せ、その範囲に係る上記検索条件を満たすコンテンツデータの属性情報が記述されたコンテンツカタログ情報を取得、追加する(ステップS319)。
次いで、ノードIの制御部11は、自己のRangeの値を、要求検索範囲Nとし(代入してNを例えば「2」に変換)(ステップS320)、自己のコンテンツカタログ情報に属性情報が記述されたコンテンツデータのコンテンツIDうち、自己のノードID(3102)と最上位桁目からN桁一致するコンテンツID(例えば、N=2とした場合、最上位桁目から2桁目までが「31」であるコンテンツID)を有するコンテンツデータの属性情報の中から、上記取得した検索キーワードに該当する属性情報が記述されたコンテンツカタログ情報を、自己のカタログキャッシュ領域に記憶されたコンテンツカタログ情報から検索、取得し(ステップS312)、図24に示す処理に戻る。
そして、図24に示すステップS303では、上記取得されたコンテンツカタログ情報に記述された属性情報の一覧を、例えば、表示部21に表示されたカタログ上に選択可能に表示(検索結果をユーザに提示)し(ステップS303)、当該処理を終了し、図21に示す処理と同様、カタログ表示処理に戻ることになる。
以上説明したように、上記カタログ検索処理の変形形態によれば、カタログ検索要求(カタログ検索要求メッセージ)を受けたノードは、自己の担当範囲外のコンテンツデータに係るコンテンツカタログ情報については、下位のノード(つまり、自己が属するエリアをさらに複数のエリアに分けた小エリアに属する代表のノード)に対してカタログ検索要求を行い、それらのノードから検索結果を取得してこれを自己の範囲の検索結果と合わせて、カタログ検索要求元のノードに返信するようにしたので、より効率良く、確実に検索結果を返すことができる。
図21及び図22に示すカタログ検索処理のように、カタログ検索要求を受けたノードが、自己の担当範囲如何に関わらず、当該カタログ検索要求を下位のノードに転送することに比して、ネットワーク負荷を低減することができる。
なお、上述したカタログ検索処理は、コンテンツカタログ情報がDHTマルチキャストにより配信され記憶されるような形態ばかりでなく、予め複数のノードにコンテンツカタログ情報が分散配置されている(例えば、各ノードの出荷時に自己の担当範囲のコンテンツカタログ情報が記憶されている)形態に対しても適用可能であることはいうまでもない。
また、上記実施形態において、各ノードは、ローカリティを考慮し、自己にネットワーク的に近い(例えば、HOP数がより小さい)ノードを優先して自己のDHTのルーティングテーブルの各欄に登録されるように構成しても良い。
例えば、あるノードが、自己のルーティングテーブルにおける、ある欄に登録することが可能な複数のノードに確認メッセージを送信し、夫々のノードからの返信された返信メッセージから、当該夫々のノードと自己との間の、例えば、TTL(Time To Live)を取得(既にTTLを知っていれば確認メッセージを送信することはない)して互いに比較し、自己にネットワーク的に近い(例えば、TTLが最も大きい(HOP数が最も小さい))ノードを優先して自己のDHTのルーティングテーブルに登録する。
このように構成すれば、各ノードは、ネットワーク的に近いノードに対してカタログ検索要求を行うことになるので、当該検索処理にもローカリティが反映され、ネットワーク負荷を更に低減することが可能となる。
また、上記実施形態は、コンテンツ配信システムSにおける複数のノードにおいて共通に使用されるべき共用情報であるコンテンツカタログ情報について適用したが、その他の共用情報に対して適用しても良い。
また、上記実施形態においては、DHTを利用したアルゴリズムによって構築されたオーバーレイネットワーク9を前提として説明したが、本発明はこれに限定されるものではない。
本実施形態に係るコンテンツ配信システムにおける各ノード装置の接続態様の一例を示す図である。 ルーティングテーブルが作成される様子の一例を示す図である。 ルーティングテーブルの一例を示す図である。 コンテンツ保持ノードから送出されたパブリッシュメッセージの流れの一例をDHTのノードID空間にて示した概念図である。 ミュージックカタログの表示形態遷移の一例を示す概念図である。 カタログ管理ノードであるノードXが保持するルーティングテーブルの一例である。 カタログ配布メッセージを模式的に表した図である。 DHTマルチキャストが行われる様子を示す図である。 DHTマルチキャストが行われる様子を示す図である。 DHTマルチキャストが行われる様子を示す図である。 DHTマルチキャストが行われる様子を示す図である。 ノードの概要構成例を示す図である。 カタログ管理ノードにおけるDHTマルチキャスト処理を示すフローチャートである。 カタログ配布メッセージを受信したノードにおける処理を示すフローチャートである。 図14におけるカタログ情報受信処理の詳細を示すフローチャートである。 カタログ管理ノードにおけるDHTマルチキャスト処理を示すフローチャートである。 カタログ管理ノードにおけるDHTマルチキャスト処理を示すフローチャートである。 カタログ配布メッセージを受信したノードにおける処理を示すフローチャートである。 図19におけるカタログ情報受信処理の詳細を示すフローチャートである。 (A)は、ノードIのルーティングテーブルの一例を示す図であり、(B)は、ノードIからカタログ検索要求がなされる際の様子を示す概念図を示す図である。 ノードにおけるカタログ検索処理を示すフローチャートである。 図21におけるカタログ検索要求処理の詳細を示すフローチャートである。 カタログ検索要求メッセージを受信したノードにおける処理を示すフローチャートである。 ノードにおけるカタログ検索処理を示すフローチャートである。 ノードにおけるカタログ検索処理αを示すフローチャートである。 カタログ検索要求メッセージを受信したノードにおける処理を示すフローチャートである。
符号の説明
A〜Z ノード
8 ネットワーク
9 オーバーレイネットワーク
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
S コンテンツ配信システム

Claims (10)

  1. ネットワークを介して互いに通信可能な複数のノード装置を備える情報通信システムにおいて前記ノード装置により取得可能な複数のコンテンツデータの夫々に固有の識別情報であって一定桁数からなるコンテンツ識別情報が対応付けられ、且つ、前記ノード装置には夫々に固有の識別情報であって前記コンテンツ識別情報と同一の桁数からなるノード識別情報が対応付けられる前記情報通信システムにおける前記ノード装置において、
    管理サーバまたは他のノード装置から配信されてきたコンテンツカタログ情報であって前記情報通信システムにおいて取得可能なコンテンツデータの属性情報が記述されたコンテンツカタログ情報を受信する受信手段と、
    前記受信手段により受信されたコンテンツカタログ情報のうち、前記受信手段により前記コンテンツカタログ情報を受信した前記ノード装置の前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶する記憶手段と、
    前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記コンテンツデータの属性情報の中から、所定の検索条件を満たす属性情報が記述されたコンテンツカタログ情報を前記記憶手段から取得する第1取得手段と、
    前記ノード識別情報と所定桁数が一致しない前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記所定の検索条件が含まれる検索要求情報を、他のノード装置に対して送信する送信手段と、
    前記送信手段により送信された検索要求情報が示す検索条件により検索された前記コンテンツカタログ情報を他のノード装置から取得する第2取得手段と、
    を備えることを特徴とするノード装置。
  2. 前記複数のノード装置は、所定の規則に従って複数のグループに分けられており、
    前記ノード装置は、前記グループに属する代表のノード装置の宛先情報を登録するルーティングテーブルを記憶する宛先情報記憶手段を更に備え、
    前記送信手段は、前記グループに属する代表のノード装置の宛先情報にしたがって、前記代表のノード装置に対して前記検索要求情報を送信し、
    前記第2取得手段は、前記検索条件により検索された前記コンテンツカタログ情報を前記代表のノード装置から取得することを特徴とする請求項1に記載のノード装置。
  3. 前記ルーティングテーブルは、前記ルーティングテーブルを記憶する前記ノード装置が属するグループをさらに複数のグループに分けた小グループに属する代表のノード装置の宛先情報を登録し、
    前記送信手段は、前記小グループに属する代表のノード装置の宛先情報にしたがって、前記小グループに属する代表のノード装置に対して前記検索要求情報を送信し、
    前記第2取得手段は、前記検索条件により検索された前記コンテンツカタログ情報を前記小グループに属する代表のノード装置から取得することを特徴とする請求項2に記載のノード装置。
  4. 前記ルーティングテーブルは、前記ノード識別情報の所定桁目の値毎に分けられた前記グループに属する代表のノード装置の宛先情報を登録し、
    前記送信手段は、前記所定桁目の値毎に分けられた前記グループのうち、前記所定桁目が、前記コンテンツ識別情報の所定桁目と一致しない前記グループに属する代表のノード装置の宛先情報にしたがって、前記代表のノード装置に対して前記検索要求情報を送信することを特徴とする請求項2又は3に記載のノード装置。
  5. 前記ノード装置は、
    前記記憶手段に記憶されているコンテンツカタログ情報のデータ量が所定量以上になった場合に、前記所定桁数が小さくなるように変更する変更手段と、
    前記記憶手段に記憶されているコンテンツカタログ情報に属性情報が記述されたコンテンツデータのうち、前記変更手段により変更されることにより前記ノード装置の前記ノード識別情報と所定桁数が一致しなくなった前記コンテンツ識別情報に対応するコンテンツデータの属性情報を前記コンテンツカタログ情報から削除する削除手段と、
    を更に備えることを特徴とする請求項1乃至4の何れか一項に記載のノード装置。
  6. 前記ノード装置は、
    他のノード装置により指示された検索条件が含まれる検索要求情報を受信した場合に、この検索要求情報を受信した前記ノード装置の前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータの属性情報の中から前記検索要求情報に含まれる検索条件を満たす属性情報が記述されたコンテンツカタログ情報を、前記記憶手段から検索する検索手段と、
    前記検索手段により検索された前記コンテンツカタログ情報を含む検索結果情報を、前記検索要求情報を送信した前記他のノード装置に対して返信する返信手段と、
    を備えることを特徴とする請求項1乃至5の何れか一項に記載のノード装置。
  7. 前記複数のノード装置は、所定の規則に従って複数のグループに分けられており、
    前記ノード装置は、
    前記グループに属する代表のノード装置の宛先情報を登録するルーティングテーブルを記憶し、且つ、このルーティングテーブルを記憶する前記ノード装置が属するグループをさらに複数のグループに分けた小グループに属する代表のノード装置の宛先情報を登録する前記ルーティングテーブルを記憶する宛先情報記憶手段と、
    他のノード装置により指示された検索条件が含まれる検索要求情報を受信した場合に、この検索要求情報を受信した前記ノード装置の前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータの属性情報の中から前記検索要求情報に含まれる検索条件を満たす属性情報が記述されたコンテンツカタログ情報を、前記記憶手段から検索する検索手段と、
    前記小グループに属する代表のノード装置の宛先情報にしたがって、前記他のノード装置から受信された前記検索要求情報を前記小グループに属する代表のノード装置に対して転送する転送手段と、
    前記転送手段により前記検索要求情報を転送した前記ノード装置の前記ノード識別情報と所定桁数が一致しない前記コンテンツ識別情報に対応するコンテンツデータの属性情報であって、前記検索要求情報に含まれる検索条件を満たす属性情報が記述されたコンテンツカタログ情報を、前記小グループに属する代表のノード装置から取得する第3取得手段と、
    前記検索手段により検索された前記コンテンツカタログ情報と、前記第3取得手段により取得された前記コンテンツカタログ情報とを含む検索結果情報を、前記検索要求情報を送信した前記他のノード装置に対して返信する返信手段と、
    を備えることを特徴とする請求項1乃至5の何れか一項に記載のノード装置。
  8. ネットワークを介して互いに通信可能な複数のノード装置を備える情報通信システムにおいて前記ノード装置により取得可能な複数のコンテンツデータの夫々に固有の識別情報であって一定桁数からなるコンテンツ識別情報が対応付けられ、且つ、前記ノード装置には夫々に固有の識別情報であって前記コンテンツ識別情報と同一の桁数からなるノード識別情報が対応付けられる前記情報通信システムにおける前記ノード装置に含まれるコンピュータに、
    管理サーバまたは他のノード装置から配信されてきたコンテンツカタログ情報であって前記情報通信システムにおいて取得可能なコンテンツデータの属性情報が記述されたコンテンツカタログ情報を受信する受信ステップと、
    前記受信ステップにより受信されたコンテンツカタログ情報のうち、前記受信ステップにより前記コンテンツカタログ情報を受信した前記ノード装置の前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶手段に記憶するステップと、
    前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記コンテンツデータの属性情報の中から、所定の検索条件を満たす属性情報が記述されたコンテンツカタログ情報を前記記憶手段から取得するステップと、
    前記ノード識別情報と所定桁数が一致しない前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記所定の検索条件が含まれる検索要求情報を、他のノード装置に対して送信する送信ステップと、
    前記送信ステップにより送信された検索要求情報が示す検索条件により検索された前記コンテンツカタログ情報を他のノード装置から取得するステップと、
    を実行させることを特徴とするノード処理プログラム
  9. ネットワークを介して互いに通信可能な複数のノード装置を備える情報通信システムにおいて前記ノード装置により取得可能な複数のコンテンツデータの夫々に固有の識別情報であって一定桁数からなるコンテンツ識別情報が対応付けられ、且つ、前記ノード装置には夫々に固有の識別情報であって前記コンテンツ識別情報と同一の桁数からなるノード識別情報が対応付けられる前記情報通信システムにおけるコンテンツカタログ情報検索方法であって、
    管理サーバまたは他のノード装置から配信されてきたコンテンツカタログ情報であって前記情報通信システムにおいて取得可能なコンテンツデータの属性情報が記述されたコンテンツカタログ情報を受信する受信ステップと、
    前記受信ステップにより受信されたコンテンツカタログ情報のうち、前記受信ステップにより前記コンテンツカタログ情報を受信した前記ノード装置の前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶手段に記憶するステップと、
    前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記コンテンツデータの属性情報の中から、所定の検索条件を満たす属性情報が記述されたコンテンツカタログ情報を前記記憶手段から取得するステップと、
    前記ノード識別情報と所定桁数が一致しない前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記所定の検索条件が含まれる検索要求情報を、他のノード装置に対して送信する送信ステップと、
    前記送信ステップにより送信された検索要求情報が示す検索条件により検索された前記コンテンツカタログ情報を他のノード装置から取得するステップと、
    を含むことを特徴とするコンテンツカタログ情報検索方法
  10. ネットワークを介して互いに通信可能な複数のノード装置を備える情報通信システムにおいて前記ノード装置により取得可能な複数のコンテンツデータの夫々に固有の識別情報であって一定桁数からなるコンテンツ識別情報が対応付けられ、且つ、前記ノード装置には夫々に固有の識別情報であって前記コンテンツ識別情報と同一の桁数からなるノード識別情報が対応付けられる前記情報通信システムにおいて、
    前記ノード装置は、
    管理サーバまたは他のノード装置から配信されてきたコンテンツカタログ情報であって前記情報通信システムにおいて取得可能なコンテンツデータの属性情報が記述されたコンテンツカタログ情報を受信する受信手段と、
    前記受信手段により受信されたコンテンツカタログ情報のうち、前記受信手段により前記コンテンツカタログ情報を受信した前記ノード装置の前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータの属性情報が記述されたコンテンツカタログ情報を記憶する記憶手段と、
    前記ノード識別情報と所定桁数が一致する前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記コンテンツデータの属性情報の中から、所定の検索条件を満たす属性情報が記述されたコンテンツカタログ情報を前記記憶手段から取得する第1取得手段と、
    前記ノード識別情報と所定桁数が一致しない前記コンテンツ識別情報に対応するコンテンツデータを取得する場合に、前記所定の検索条件が含まれる検索要求情報を、他のノード装置に対して送信する送信手段と、
    前記送信手段により送信された検索要求情報が示す検索条件により検索された前記コンテンツカタログ情報を他のノード装置から取得する第2取得手段と、
    を備えることを特徴とする情報通信システム
JP2006109159A 2006-04-11 2006-04-11 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等 Active JP4862463B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006109159A JP4862463B2 (ja) 2006-04-11 2006-04-11 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
PCT/JP2007/055500 WO2007119418A1 (ja) 2006-04-11 2007-03-19 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
US12/222,584 US8312065B2 (en) 2006-04-11 2008-08-12 Tree-type broadcast system, reconnection process method, node device, node process program, server device, and server process program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006109159A JP4862463B2 (ja) 2006-04-11 2006-04-11 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等

Publications (2)

Publication Number Publication Date
JP2007280304A JP2007280304A (ja) 2007-10-25
JP4862463B2 true JP4862463B2 (ja) 2012-01-25

Family

ID=38609209

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006109159A Active JP4862463B2 (ja) 2006-04-11 2006-04-11 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等

Country Status (3)

Country Link
US (1) US8312065B2 (ja)
JP (1) JP4862463B2 (ja)
WO (1) WO2007119418A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007280303A (ja) * 2006-04-11 2007-10-25 Brother Ind Ltd 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等
JP4862463B2 (ja) 2006-04-11 2012-01-25 ブラザー工業株式会社 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
JP4655986B2 (ja) 2006-04-12 2011-03-23 ブラザー工業株式会社 ノード装置、記憶制御プログラム及び情報記憶方法
JP4560115B2 (ja) * 2008-04-10 2010-10-13 株式会社日立製作所 配布管理方法、配布管理システム、および配布管理サーバ
JP5240009B2 (ja) * 2009-03-30 2013-07-17 ブラザー工業株式会社 コンテンツ分散保存システム、Webページ生成方法、サーバ装置、及びサーバ処理プログラム
JP5278152B2 (ja) * 2009-05-01 2013-09-04 ブラザー工業株式会社 管理装置、ノード装置、ノードプログラム、ページ情報送信プログラム、及びページ情報送信方法
JP5347884B2 (ja) * 2009-09-30 2013-11-20 ブラザー工業株式会社 情報処理システム、情報処理装置、ノード装置およびプログラム
US8190593B1 (en) * 2010-04-14 2012-05-29 A9.Com, Inc. Dynamic request throttling
WO2011136261A1 (ja) * 2010-04-28 2011-11-03 日本電気株式会社 ストレージシステム、ストレージシステムの制御方法、及びコンピュータプログラム
JP5514041B2 (ja) * 2010-08-25 2014-06-04 日本電信電話株式会社 識別子割当て方法及びプログラム
WO2012164735A1 (ja) * 2011-06-03 2012-12-06 富士通株式会社 情報処理装置、データ管理方法およびデータ管理プログラム
CN103297468B (zh) * 2012-02-29 2017-12-01 华为技术有限公司 针对群组资源的操作方法、群组服务器
US9819573B2 (en) * 2014-09-11 2017-11-14 Microsoft Technology Licensing, Llc Method for scalable computer network partitioning
US9608907B2 (en) 2014-09-29 2017-03-28 Vivint, Inc. Systems and methods for centrally-assisted distributed hash table
CN110519173A (zh) * 2019-09-10 2019-11-29 烽火通信科技股份有限公司 一种ip五元组表项的查找方法及查找***
CN113127409A (zh) * 2019-12-31 2021-07-16 深圳云天励飞技术有限公司 数据实时归档用运算集群的管理方法、装置、设备及介质

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044205A (en) 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
US5453979A (en) 1994-01-27 1995-09-26 Dsc Communications Corporation Method and apparatus for generating route information for asynchronous transfer mode cell processing
US7114801B2 (en) 1995-04-27 2006-10-03 Hewlett-Packard Development Company, L.P. Method and apparatus for providing ink to an ink jet printing system
US5900896A (en) 1995-04-27 1999-05-04 Hewlett-Packard Company Ink cartridge adapters
US5805824A (en) 1996-02-28 1998-09-08 Hyper-G Software Forchungs-Und Entwicklungsgesellschaft M.B.H. Method of propagating data through a distributed information system
JP3438849B2 (ja) 1996-03-07 2003-08-18 日本電信電話株式会社 Pvcパス再設定方法
JP3564485B2 (ja) 1997-03-03 2004-09-08 日本電信電話株式会社 情報処理方法及びシステム
JP2000358039A (ja) 1999-06-17 2000-12-26 Sony Corp 情報処理装置および方法、並びに媒体
US7117273B1 (en) 2000-01-25 2006-10-03 Cisco Technology, Inc. Methods and apparatus for maintaining a map of node relationships for a network
US7689696B2 (en) 2000-01-31 2010-03-30 Telecommunication Systems, Inc. System and method for re-directing requests from browsers for communications over non-IP based networks
US7418498B2 (en) 2001-01-24 2008-08-26 Telecommunication Systems, Inc. System and method to publish information from servers to remote monitor devices
US6993587B1 (en) 2000-04-07 2006-01-31 Network Appliance Inc. Method and apparatus for election of group leaders in a distributed network
JP2001325140A (ja) * 2000-05-17 2001-11-22 Mitsubishi Electric Corp ファイル転送装置
US20030172135A1 (en) 2000-09-01 2003-09-11 Mark Bobick System, method, and data structure for packaging assets for processing and distribution on multi-tiered networks
US6970939B2 (en) 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US7296088B1 (en) 2000-11-17 2007-11-13 Microsoft Corporation System and method for determining the geographic location of internet hosts
US20020062336A1 (en) 2000-11-22 2002-05-23 Dan Teodosiu Resource coherency among resources cached in a peer to peer environment
WO2002057917A2 (en) 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US20040122741A1 (en) * 2002-01-25 2004-06-24 David Sidman Apparatus, method and system for effecting information access in a peer environment
EP1366438A4 (en) 2001-01-25 2005-04-20 David Sidman DEVICE, METHOD AND SYSTEM FOR ENSURING THE QUALITY OF A REPERTOIRE
WO2002065329A1 (en) * 2001-02-14 2002-08-22 The Escher Group, Ltd. Peer-to peer enterprise storage
US6950820B2 (en) 2001-02-23 2005-09-27 International Business Machines Corporation Maintaining consistency of a global resource in a distributed peer process environment
US6813372B2 (en) 2001-03-30 2004-11-02 Logitech, Inc. Motion and audio detection based webcamming and bandwidth control
JP2002318720A (ja) * 2001-04-19 2002-10-31 Oki Electric Ind Co Ltd コンテンツ配信管理システム
US6880100B2 (en) 2001-07-18 2005-04-12 Smartmatic Corp. Peer-to-peer fault detection
US7054867B2 (en) 2001-09-18 2006-05-30 Skyris Networks, Inc. Systems, methods and programming for routing and indexing globally addressable objects and associated business models
JP4658412B2 (ja) 2001-09-20 2011-03-23 富士通株式会社 データ共有装置
US6937602B2 (en) 2001-10-23 2005-08-30 Meshnetworks, Inc. System and method for providing a congestion optimized address resolution protocol for wireless ad-hoc networks
US7412535B2 (en) 2001-12-19 2008-08-12 International Business Machines Corporation Method and system for caching fragments while avoiding parsing of pages that do not contain fragments
US20050066219A1 (en) 2001-12-28 2005-03-24 James Hoffman Personal digital server pds
JP2003216521A (ja) 2002-01-28 2003-07-31 Nippon Telegr & Teleph Corp <Ntt> コンテンツの配置方法、この方法のプログラム、このプログラムを記録した記録媒体
US7492787B2 (en) 2002-03-29 2009-02-17 Fujitsu Limited Method, apparatus, and medium for migration across link technologies
US6996678B1 (en) 2002-07-31 2006-02-07 Cisco Technology, Inc. Method and apparatus for randomized cache entry replacement
US7263560B2 (en) * 2002-08-30 2007-08-28 Sun Microsystems, Inc. Decentralized peer-to-peer advertisement
JP2004127074A (ja) 2002-10-04 2004-04-22 Nippon Telegr & Teleph Corp <Ntt> P2pネットワークにおけるファイル検索方法、端末、プログラム、および記録媒体
US7551634B2 (en) 2002-11-12 2009-06-23 Fujitsu Limited Communication network system
US7251670B1 (en) 2002-12-16 2007-07-31 Cisco Technology, Inc. Methods and apparatus for replicating a catalog in a content distribution network
US7406535B2 (en) 2002-12-20 2008-07-29 Symantec Operating Corporation Role-based message addressing for a computer network
JP2004258994A (ja) 2003-02-26 2004-09-16 Nippon Telegr & Teleph Corp <Ntt> P2pネットワークにおける動的なファイル検索方法、端末、プログラム、および記録媒体
US20040181607A1 (en) 2003-03-13 2004-09-16 Zhichen Xu Method and apparatus for providing information in a peer-to-peer network
US7870218B2 (en) 2003-04-09 2011-01-11 Nec Laboratories America, Inc. Peer-to-peer system and method with improved utilization
US7805448B2 (en) 2003-04-18 2010-09-28 Hewlett-Packard Development Company, L.P. Storing attribute values of computing resources in a peer-to-peer network
JP4203354B2 (ja) 2003-05-19 2008-12-24 パナソニック株式会社 コンテンツ配信装置およびコンテンツ受信装置
JP2004355114A (ja) 2003-05-27 2004-12-16 Nippon Telegr & Teleph Corp <Ntt> 意味情報ネットワークシステム、セッションリジューム方法及びセッションリジュームプログラム
JP2004362033A (ja) 2003-06-02 2004-12-24 Sony Corp コンテンツ管理方法、コンテンツ管理システム、端末装置およびサーバ装置
US7321939B1 (en) 2003-06-27 2008-01-22 Embarq Holdings Company Llc Enhanced distributed extract, transform and load (ETL) computer method
JP2005071227A (ja) 2003-08-27 2005-03-17 Sony Corp メタデータ流通管理システム,メタデータ流通管理装置,個人別メタデータ管理装置,クライアント端末,メタデータ流通管理方法およびコンピュータプログラム
US7783777B1 (en) 2003-09-09 2010-08-24 Oracle America, Inc. Peer-to-peer content sharing/distribution networks
US7685253B1 (en) 2003-10-28 2010-03-23 Sun Microsystems, Inc. System and method for disconnected operation of thin-client applications
US7188937B2 (en) 2004-01-29 2007-03-13 Hewlett-Packard Development Company, L.P. Printing-fluid venting assembly
US7593353B2 (en) 2004-03-13 2009-09-22 International Business Machines Corporation Methods and apparatus for content delivery via application level multicast with minimum communication delay
US7730207B2 (en) 2004-03-31 2010-06-01 Microsoft Corporation Routing in peer-to-peer networks
US7418454B2 (en) 2004-04-16 2008-08-26 Microsoft Corporation Data overlay, self-organized metadata overlay, and application level multicasting
US7924726B2 (en) 2004-07-12 2011-04-12 Cisco Technology, Inc. Arrangement for preventing count-to-infinity in flooding distance vector routing protocols
US7360879B2 (en) 2004-07-29 2008-04-22 Castle Steven T Inkjet pen adapter
JP4696498B2 (ja) 2004-08-20 2011-06-08 ブラザー工業株式会社 情報配信システム、ノード装置、所在情報検索方法、及び所在情報検索処理プログラム等
US7604324B2 (en) 2004-10-27 2009-10-20 Brother Kogyo Kabushiki Kaisha Apparatus for ejecting droplets
FR2878673B1 (fr) * 2004-11-26 2007-02-09 Univ Picardie Jules Verne Etab Systeme et procede de sauvegarde distribuee perenne
WO2006068365A1 (en) * 2004-12-21 2006-06-29 Electronics And Telecommunications Research Institute P2p overlay network construction method and apparatus
US7562125B2 (en) 2005-02-02 2009-07-14 Cisco Technology, Inc. Techniques for locating distributed objects on a network based on physical communication costs
KR20070110367A (ko) 2005-02-24 2007-11-16 제라운드 시스템즈 리미티드 데이터 관리 방법 및 장치
US20060195532A1 (en) 2005-02-28 2006-08-31 Microsoft Corporation Client-side presence documentation
EP1864424A1 (en) 2005-03-17 2007-12-12 Xynk Pty Ltd A method and system of communication with identity and directory management
US20070079004A1 (en) * 2005-09-30 2007-04-05 Junichi Tatemura Method and apparatus for distributed indexing
US7668173B2 (en) 2005-12-01 2010-02-23 Azalea Networks Method and system for an adaptive wireless routing protocol in a mesh network
US7739239B1 (en) 2005-12-29 2010-06-15 Amazon Technologies, Inc. Distributed storage system with support for distinct storage classes
WO2007106791A2 (en) 2006-03-10 2007-09-20 Peerant Inc. Peer to peer inbound contact center
US7881223B2 (en) * 2006-03-31 2011-02-01 Panasonic Corporation Method for on demand distributed hash table update
JP2007280303A (ja) 2006-04-11 2007-10-25 Brother Ind Ltd 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等
JP4862463B2 (ja) 2006-04-11 2012-01-25 ブラザー工業株式会社 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
JP4655986B2 (ja) 2006-04-12 2011-03-23 ブラザー工業株式会社 ノード装置、記憶制御プログラム及び情報記憶方法
JP2007304849A (ja) 2006-05-11 2007-11-22 Sony Corp 管理装置、情報処理装置、管理方法および情報処理方法

Also Published As

Publication number Publication date
JP2007280304A (ja) 2007-10-25
US20080319956A1 (en) 2008-12-25
WO2007119418A1 (ja) 2007-10-25
US8312065B2 (en) 2012-11-13

Similar Documents

Publication Publication Date Title
JP4862463B2 (ja) 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
JP2007280303A (ja) 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等
JP4830889B2 (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
US20080235321A1 (en) Distributed contents storing system, copied data acquiring method, node device, and program processed in node
JP2008129694A (ja) 情報配信システム、情報配信方法、配信装置及びノード装置等
WO2006075424A1 (ja) 情報配信システム、配信要求プログラム、転送プログラム、配信プログラム等
JP2007148545A (ja) 情報配信システム、情報配信方法、ノード装置、及びノード処理プログラム
JP2007058597A (ja) 情報配信システム、情報配信方法、情報配信システムに含まれるノード装置および情報処理プログラム
JP2006260430A (ja) ノード装置、ノード情報複製プログラム、複製用ノード情報記憶プログラム及びノード情報複製方法
JP2006059133A (ja) 情報配信システム、ノード装置、所在情報検索方法、及び所在情報検索処理プログラム等
JP2007213322A (ja) 情報配信システム、情報配信方法、ノード装置、及びノード処理プログラム
JP2010113573A (ja) コンテンツ分散保存システム、コンテンツ保存方法、サーバ装置、ノード装置、サーバ処理プログラム、及びノード処理プログラム
JP5532649B2 (ja) ノード装置、ノード処理プログラム及びコンテンツ保存方法
JP2008092236A (ja) コンテンツ配信システムにおける端末装置及びその情報処理方法並びにプログラム
JP5375272B2 (ja) ノード装置、ノード処理プログラム、情報通信システム及びコンテンツデータ管理方法
US8514742B2 (en) Node device, information process method, and recording medium recording node device program
JP5458629B2 (ja) ノード装置、ノード処理プログラム及び検索方法
JP2010066930A (ja) コンテンツ分散保存システム、コンテンツ保存方法、ノード装置、及びノード処理プログラム
JP2009232272A (ja) コンテンツ分散保存システム、コンテンツ再生方法、ノード装置、管理装置、ノード処理プログラム、及び管理処理プログラム
JP2010026866A (ja) コンテンツ分散保存システム、総評価値管理装置、管理処理プログラム、ノード装置、及び総評価値管理方法
JP2008067089A (ja) コンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法
JP5412924B2 (ja) ノード装置、ノード処理プログラム及びコンテンツデータ削除方法
JP5434268B2 (ja) 分散保存システム、データファイル分散保存方法及びプログラム
JP2011008657A (ja) コンテンツ配信システム、ノード装置、コンテンツ配信方法及びノードプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110804

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111011

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111024

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

Free format text: PAYMENT UNTIL: 20141118

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4862463

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150