JP4998196B2 - コンテンツ取得装置、プログラム、コンテンツ取得方法、およびコンテンツ取得システム - Google Patents

コンテンツ取得装置、プログラム、コンテンツ取得方法、およびコンテンツ取得システム Download PDF

Info

Publication number
JP4998196B2
JP4998196B2 JP2007268410A JP2007268410A JP4998196B2 JP 4998196 B2 JP4998196 B2 JP 4998196B2 JP 2007268410 A JP2007268410 A JP 2007268410A JP 2007268410 A JP2007268410 A JP 2007268410A JP 4998196 B2 JP4998196 B2 JP 4998196B2
Authority
JP
Japan
Prior art keywords
content
divided data
information
data
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007268410A
Other languages
English (en)
Other versions
JP2009098817A (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.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2007268410A priority Critical patent/JP4998196B2/ja
Priority to US12/595,853 priority patent/US20100223436A1/en
Priority to PCT/JP2008/068567 priority patent/WO2009051099A1/ja
Priority to KR1020097021050A priority patent/KR20100081275A/ko
Priority to CN2008800121297A priority patent/CN101657800B/zh
Priority to EP08840376.1A priority patent/EP2202642A4/en
Publication of JP2009098817A publication Critical patent/JP2009098817A/ja
Application granted granted Critical
Publication of JP4998196B2 publication Critical patent/JP4998196B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/457Network directories; Name-to-address mapping containing identifiers of data entities on a computer, e.g. file names
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、コンテンツ取得装置、プログラム、コンテンツ取得方法、およびコンテンツ取得システムに関する。
近年、RSS(Rich Site Summary)フィードによりコンテンツファイルをダウンロードする方式が広く普及している。具体的には、RSSフィードに含まれる〈enclosure)要素に対象となるコンテンツファイルのURLがHTTP等で記載されており、PC(Personal Computer)や携帯電話などの情報処理装置が上記URLに基づいてコンテンツファイルをダウンロードすることができる。このようなRSSフィードを利用したコンテンツファイルのダウンロードについては、例えば特許文献1に記載されている。
特開2007−166363号公報
ここで、コンテンツファイルがダウンロードされてからコンテンツが再生されるため、HD(High Difinition)ビデオファイル等の非常に大きなコンテンツファイルの場合、ネットワークの状況により、再生が開始されるまでに時間がかかる場合が多い。例えば、P2Pファイル共有型のプロトコルによりコンテンツファイルの取得効率を上げることもできるが、この場合もコンテンツファイル全体が一括して取得されてからでないと再生が開始されない。
これに対し、コンテンツファイルを複数のファイルセグメント(分割データ)に分割し、各ファイルセグメントのURLをRSSフィードに記載しておけば、情報処理装置が複数のURLから並列的にファイルセグメントを取得できるため取得速度の迅速化を図り得る。
しかし、ファイルセグメントの数が多くなると、RSSフィードの〈enclosure)要素の記載が冗長となり、RSSフィードを提供するRSSディレクトリサーバやRSSマルチキャストサーバなどの処理負荷が増大してしまう。また、RSSフィードを受信する情報処理装置(RSSフィードリーダ)のリソースを圧迫してしまうという問題も生じる。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、簡略化された例えばRSSフィードなどの第1のコンテンツ情報の記載に基づいて分割データを取得することが可能な、新規かつ改良されたコンテンツ取得装置、プログラム、コンテンツ取得方法、およびコンテンツ取得システムを提供することにある。
上記課題を解決するために、本発明のある観点によれば、第1のコンテンツデータを分割して得られた所定数の分割データのうちのいずれかを1または2以上のコンテンツ記憶装置が記憶しており、前記所定数の値を示す分割数情報と、前記第1のコンテンツデータに応じたデータ情報と、を含む第1のコンテンツ情報を受信する受信部と、前記分割数情報と前記データ情報とに基づき、前記分割データの各々を示す分割データ指定情報を前記分割データごとに生成する生成部と、前記分割データ指定情報に従って前記1または2以上のコンテンツ記憶装置から前記分割データを取得する取得部と、を備えるコンテンツ取得装置が提供される。
かかる構成においては、生成部が、第1のコンテンツ情報に基づいて各分割データを示す分割データ指定情報を複数生成することができる。そして、取得部が分割データ指定情報に従って1または2以上のコンテンツ記憶装置から分割データを取得する。したがって、当該コンテンツ取得装置によれば、第1のコンテンツ情報に、各分割データを示す分割データ指定情報が含まれていなくても、分割データを取得することができる。その結果、第1のコンテンツ情報の情報量を抑制し、第1のコンテンツ情報が煩雑化することを防止できる。
前記分割データ指定情報に基づいて特定される所在情報記憶装置には前記分割データの所在を示す所在情報が記憶されており、前記取得部は、前記分割データ指定情報に基づいて特定した所在情報記憶装置から前記分割データの所在情報を取得し、該所在情報の示すコンテンツ記憶装置から前記分割データを取得してもよい。
ここで、分割データを記憶しているコンテンツ記憶装置は追加、または減少して変化する場合がある。このため、分割データ指定情報に分割データの所在情報が記載される場合、分割データ指定情報の示す所在から分割データを取得できない、または分割データ指定情報の示す所在が好適な分割データの取得元でないことなどが想定される。そこで、上記のように分割データ指定情報を、分割データの所在情報を記憶する所在情報記憶装置を特定可能なように構成することにより、取得部がより適切に分割データを取得することができる。
また、当該コンテンツ取得装置は、前記取得部により取得された分割データが記録される記憶部と、前記分割データの前記記憶部における所在を示す所在情報を、前記分割データ指定情報に基づいて特定される所在情報記憶装置に送信する送信部とをさらに備えてもよい。
かかる構成においては、送信部から分割データの記憶部における所在情報を受信した所在情報記憶装置が、該所在情報を分割データの所在情報として新たに追加することができる。その結果、他のコンテンツ取得装置が、同一の分割データであってもより多種の所在から分散的に取得することが可能となる。
前記取得部は、前記分割データ指定情報に基づいて特定した所在情報記憶装置から前記分割データの所在情報を複数取得した場合、複数の所在情報のうちから1の所在情報を選択し、選択した所在情報の示すコンテンツ記憶装置から前記分割データを取得してもよい。かかる構成においては、取得部は、例えばネットワークの混雑状況等に応じ、取得し易いコンテンツ記憶装置から選択的に分割データを取得することにより、分割データの取得効率の向上を図ることができる。
前記所在情報記憶装置には、前記所在情報記憶装置の固有識別情報のハッシュ値に応じたハッシュ値の管理範囲が割当てられており、前記分割データの所在情報の各々は、前記分割データを示す分割データ指定情報のハッシュ値を管理範囲に含む所在情報記憶装置に分散記憶されていてもよい。かかる構成においては、分割データの所在情報が複数の所在情報記憶装置に分散して記憶されるため、ある所在情報記憶装置に分割データの所在情報の問い合わせが集中してしまう場合を抑制できる。
前記生成部は、既知の順序付けられた要素群に含まれる要素のうちで、前記分割数情報の示す値に応じた範囲内に順序付けられている要素の各々を前記データ情報に付加することにより所定数の前記分割データ指定情報を生成してもよい。かかる構成によれば、生成部は第1のコンテンツ情報から容易に分割データ指定情報を生成することができる。
受信部は、前記第1のコンテンツ情報と形式が異なり、第2のコンテンツデータを示す第2のコンテンツ情報をさらに受信し、前記取得部は、前記第2のコンテンツ情報に従って特定のコンテンツ記憶装置から前記第2のコンテンツデータを取得してもよい。かかる構成においては、取得部は、分割データだけでなく、分割されていない第2のコンテンツデータも特定のコンテンツ記憶装置から取得することができる。
前記第1のコンテンツ指定情報はRSSフィードに含まれてもよい。
また、上記課題を解決するために、本発明の別の観点によれば、コンピュータを、第1のコンテンツデータを分割して得られた所定数の分割データのうちのいずれかを1または2以上のコンテンツ記憶装置が記憶しており、前記所定数の値を示す分割数情報と、前記第1のコンテンツデータに応じたデータ情報と、を含む第1のコンテンツ指定情報を受信する受信部と、前記分割数情報と前記データ情報とに基づき、前記分割データの各々を示す分割データ指定情報を前記分割データごとに生成する生成部と、前記分割データ指定情報に従って前記1または2以上のコンテンツ記憶装置から前記分割データを取得する取得部と、を備えるコンテンツ取得装置として機能させるためのプログラムが提供される。
かかるプログラムは、例えばCPU、ROMまたはRAMなどを含むコンピュータのハードウェア資源に、上記のような受信部、生成部および取得部の機能を実行させることができる。すなわち、当該プログラムを用いるコンピュータを、上述のコンテンツ取得装置として機能させることが可能である。
また、上記課題を解決するために、本発明の別の観点によれば、コンテンツ取得装置において実行されるコンテンツ取得方法であって、第1のコンテンツデータを分割して得られた所定数の分割データのうちのいずれかを1または2以上のコンテンツ記憶装置が記憶しており、前記所定数の値を示す分割数情報と、前記第1のコンテンツデータに応じたデータ情報と、を含む第1のコンテンツ指定情報を受信するステップと、前記分割数情報と前記データ情報とに基づき、前記分割データの各々を示す分割データ指定情報を前記分割データごとに生成するステップと、前記分割データ指定情報に従って前記1または2以上のコンテンツ記憶装置から前記所定数の分割データを取得するステップと、を含むコンテンツ取得方法が提供される。
また、上記課題を解決するために、本発明の別の観点によれば、1または2以上のコンテンツ記憶装置と、コンテンツ取得装置とを含むコンテンツ取得システムが提供される。前記コンテンツ記憶装置は、第1のコンテンツデータを分割して所定数の分割データを得る分割部と、前記分割データの各々を記憶する分割データ記憶部と、前記所定数の値を示す分割数情報と、前記第1のコンテンツデータに応じたデータ情報と、を含む第1のコンテンツ指定情報を送信する通信部とを備えてもよい。前記コンテンツ取得装置は、前記第1のコンテンツ指定情報を受信する受信部と、前記分割数情報と前記データ情報とに基づき、前記分割データの各々を示す分割データ指定情報を前記分割データごとに生成する生成部と、前記分割データ指定情報に従って前記1または2以上のコンテンツ記憶装置から前記分割データを取得する取得部と、を備えてもよい。
以上説明したように本発明にかかるコンテンツ取得装置、プログラム、コンテンツ取得方法、およびコンテンツ取得システムによれば、簡略化された例えばRSSフィードなどの第1のコンテンツ情報の記載に基づいて分割データを取得することができる。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、以下の順序にしたがって当該「発明を実施するための最良の形態」を説明する。
〔1〕本実施形態にかかるコンテンツ取得システムの概要
〔2〕本実施形態の目的
〔2−1〕本実施形態に関連するコンテンツ取得システム
〔2−2〕本実施形態の目的
〔3〕コンテンツ取得システムの詳細な説明
〔3−1〕ノードのハードウェア構成
〔3−2〕ノードの機能
〔3−3〕コンテンツ取得システムの動作
〔4〕まとめ
〔1〕本実施形態にかかるコンテンツ取得システムの概要
まず、図1を参照して、本実施形態にかかるコンテンツ取得システム1の概要を説明する。
図1は、本実施形態にかかるコンテンツ取得システム1の構成を示した説明図である。図1に示したように、当該コンテンツ取得システム1は、ノード20A、20B、20C、20D、および20Xなどの複数のノードと、ノードアドレス解決サーバ14とを含む。なお、本明細書においては、ノード20A、20B、20C、20D、および20Xなどの各ノードを区別する必要が無い場合、単にノード20と称する。他の符号についても同様である。
各ノード20は、コンテンツの実データであるコンテンツデータ(ファイル)、またはコンテンツデータをチャンク化(分割)して得られるファイルセグメント(分割データ)を記憶している。また、各ノード20は、所定のファイルセグメントが記憶されている所在を示す所在情報としてのURL(Uniform Resource Locator)を記憶している。すなわち、各ノード20は、コンテンツ記憶装置としての機能、および所在情報記憶装置としての機能を有する。
さらに、各ノード20は、あるコンテンツを示す情報が〈enclosure)要素に記載されたRSSフィードを受信し、通信網12を介し、他のノード20に記憶されている該コンテンツのファイルセグメントを取得するコンテンツ取得装置としての機能も有する。
概略的に説明すると、各ノード20は、〈enclosure)要素に記載された情報に基づき、あるコンテンツの各ファイルセグメントのURLを記憶している1または2以上のノード20を、ノードアドレス解決サーバ14と協働して特定する。ここで、ノードアドレス解決サーバ14は、各ノード20を識別する固有識別情報としてのノードIDと、各ノード20にネットワーク上で割り当てられてネットワークアドレスとを対応付けて記憶している。そして、ノードアドレス解決サーバ14は、あるノードIDを有するノード20のネットワークアドレスの解決を依頼されると、該ノードIDと対応付けて記憶しているネットワークアドレスを送信する。
各ノード20は、あるコンテンツの各ファイルセグメントのURLを記憶している1または2以上のノード20を特定すると、各ノード20から各ファイルセグメントのURLを取得する。そして、各ノード20は、各ファイルセグメントのURLに基づいてファイルセグメントを取得することができる。
なお、図1においては、ノード20の一例としてノートPCを示しているが、ノード20はノートPCに限定されず、例えば、PC、家庭用映像処理装置(DVDレコーダ、ビデオデッキなど)、携帯電話、PHS(Personal Handyphone System)、携帯用音楽再生装置、携帯用映像処理装置、PDA(Personal Digital Assistants)、家庭用ゲーム機器、携帯用ゲーム機器、家電機器などの情報処理装置であってもよい。
また、コンテンツとは、音楽、講演およびラジオ番組などの音楽データや、映画、テレビジョン番組、ビデオプログラム、写真、文書、絵画および図表などの映像データや、ゲームおよびソフトフェアなどの任意のデータを含む概念である。
〔2〕本実施形態の目的
続いて、本実施形態の理解を容易にするために、本実施形態に関連するコンテンツ取得システム2と対比させ、本実施形態にかかるコンテンツ取得システム1の目的を説明する。
〔2−1〕本実施形態に関連するコンテンツ取得システム
図2〜図4は、本実施形態に関連するコンテンツ取得システム2におけるコンテンツ取得の流れを示した説明図である。
あるノード22Aは、取得対象のファイルである「targetFile(対象ファイル名)」を保持するとき、このノード22Aの記憶部23AにtargetFileがあることを他のノード22に告知するためのRSSフィードを生成する。通常、RSSフィードの<enclosure>要素のurl属性にはこのファイルの実体を取得するためのURL「targetFile_RealURLOnNode−A」が記述される。
そして、別のノード22が、上記で生成されたRSSフィードを取得し、RSSフィードに記載されている「targetFile_RealURLOnNode−A」によりファイル取得プロトコルを利用して対象ファイル「targetFile」を取得する。
ここで、<enclosure>要素のurl属性の[ファイル名]の項をもとにDHT(Distributed Hash Table)を構成し、[ファイル名]から[ファイル本体のURL]の名前解決テーブルのエントリをDHTを利用して引けるものとする。DHTの詳細については図9を参照して説明する。
この場合、targetFileをダウンロードしようとするノード22は、ファイル名のハッシュ値に対応するノードに分散されたDHTハッシュテーブルを利用してファイルのURLを解決し、本体のファイルを取得する。すなわち、ノード22は、「対象ファイル名」のハッシュ値と「本体のファイルURL」との対応関係が記述された名前解決テーブルを引いてファイルのURLを取得する。
例えば、図2に示したように、ノード22A、22B、22C、22Dおよび22Xに、点線で示したように分散して名前解決テーブル24A、24B、24C、24Dおよび24Xが記憶されている場合を考える。この場合、対象のファイル名「targetFile」のハッシュ値(hash(targetFile))により決定されるノード(この場合はノード22Bである)に、対象のファイル名から本体のファイルURL(targetFile_RealURLOnNode−A)を引く名前解決テーブル24Bが管理される。なお、図4〜図6においては、図面の明瞭性の観点から各名前解決テーブルを結ぶ点線は省略する。
このtargetFileを取得しようとするノード22Xは、このtargetFileについてのメタデータを記述したRSSフィード(<enclosure>要素のurl属性に”targetFile”が記載されている)を取得する。そして、ノード22Xは、DHTを利用してノード22B上の名前解決テーブル24Bを引き、targetFileのURLである「targetFile_RealURLOnNode−A」を得て、targetFileの内容を取得する。さらに、ノード22Xは、取得したtargetFileを記憶部23Xに記録する。
その後、ノード22Xは、ノード22Bで管理されている名前解決テーブルエントリである[targetFile]−>[targetFile_RealURLOnNode−A]ペアの[targetFile_RealURLOnNode−A]の項の後に、記憶部23XにおけるtargetFileのURL「TargetFile_RealURLNodeX」を追加する。
その結果、ノード22BへのtargetFileについての名前解決依頼に対して返信されるURLは「targetFile_RealURLOnNode−A」と「targetFile_RealURLOnNode−X」の2つとなる。
このため、図4に示したように、複数のノード22が異なるノードから同一のファイルを取得することが可能となる。例えば、ノード22Cおよびノード22DがtargetFileの取得を所望する場合、ノード22Cおよびノード22Dは、ノード22Bの名前解決テーブル24Bを引く。
そして、ノード22Cが「targetFile_RealURLOnNode−X」を得て、ノード22Dが「targetFile_RealURLOnNode−A」を得たとする。この場合、ノード22Cがノード22Xから、ノード22Dがノード22Aからというように、それぞれのノードが並行して同時にtargetFileを取得することが可能となる。
同様にして、別のノード22がファイルを取得した場合には、名前解決テーブルのエントリに、取得したノード22上のファイルのURLが逐次追加されていくものとする。かかる構成によれば、ファイルの複製がノード22に分散するにつれ、複数のノード22が同時に同一のファイルの複製を別々のノード22から取得することができるようになる。
一方、図4に示したように、あるファイルの名前解決の依頼がノード22Bに集中すると、ノード22Bの負荷が増加し、個々の名前解決の依頼に対する処理パフォーマンスが劣化し、さらには全体の処理速度を律速してしまう。
〔2−2〕本実施形態の目的
そこで、この問題を緩和することを目的の一つとし、ファイルをチャンク化して複数のファイルセグメントとして複数のノード20に記憶させる概念に至った。例えば、それぞれのファイルセグメントに[ファイル名+n](nはファイルセグメントID:1,2,....N)というファイル名をつけて、あるノード20では、「ファイル名+n」−>[(ファイルセグメントの複製)URL, URL, ....]のセットを名前解決テーブルエントリとして管理する。これにより、1つのファイル名をファイル名−1, ファイル名−2, ファイル名−3, ...,のように複数のキーに分けてハッシュ空間上に分散させて、ファイル名をキーとするDHT検索処理を分散させることができる。
図5および図6は、本実施形態にかかるコンテンツ取得システム1におけるコンテンツ取得の流れを示した説明図である。図5に示したように、「targetFile」が「targetFile−1」および「targetFile−2」にチャンク化されており、「targetFile−1」のファイルの実体はノード20Aの記憶部27Aに記録され、「targetFile−2」のファイルの実体はノード20Xの記憶部27Xに記録されているものとする。
また、「targetFile−1」についての名前解決テーブルのエントリがノード20Bで管理され、「targetFile−2」についての名前解決テーブルのエントリがノード20Aで管理される。「targetFile−1」のエントリには、「targetFile−1」の実体のURLである「targetFile−1_RealURLOnNode−A」が格納される。また、「targetFile−2」のエントリには、「targetFile−2」の実体のURLである「targetFile−2_RealURLOnNode−X」が格納される。
ここで、「targetFile−1」を取得しようとするノード20Cは、「targetFile−1」の実体のURLを解決する名前解決テーブルエントリがノード20Bにあるため、ノード20Bに対して名前解決依頼を行なう。同様に、「targetFile−2」を取得しようとするノード20Dは、「targetFile−2」の実体のURLを解決する名前解決テーブルエントリがノード20Aにあるため、ノード20Aに対して名前解決依頼を行なう。
その結果、ノード20Cは「targetFile−1」のURLである「targetFile−1_RealURLOnNode−A」を得て、ノード20Aから「targetFile−1」を取得する。同様に、ノード20Dは、「targetFile−2」のURLである「targetFile−21_RealURLOnNode−X」を得て、ノード20Xから「targetFile−2」を取得する。
さらに、図6に示したように、「targetFile−1」を取得したノード20Cは、記憶部27Cにおける「targetFile−1」のURLを示す「targetFile−1_RealURLOnNode−C」をノード20Bに送信する。そして、ノード20Bは、「targetFile−1」のURLとして「targetFile−1_RealURLOnNode−C」を追加する。
同様に、「targetFile−2」を取得したノード20Dは、記憶部27Dにおける「targetFile−2」のURLを示す「targetFile−2_RealURLOnNode−D」をノード20Aに送信する。そして、ノード20Aは、「targetFile−2」のURLとして「targetFile−2_RealURLOnNode−D」を追加する。
ここで、上記のように1のコンテンツのファイルセグメントを複数のノード20に分散記憶させるシステムを実現するために、RSSフィードの<enclosure>要素に各ファイルセグメント名を記載する方法が考えられる。
しかし、ファイルセグメントの数が多くなると、RSSフィードの〈enclosure)要素の記載が冗長となり、RSSフィードを提供するRSSディレクトリサーバやRSSマルチキャストサーバなどの処理負荷が増大してしまう。また、RSSフィードを受信するノード20のリソースを圧迫してしまうという問題も生じる。
そこで、上記事情に鑑みて本実施形態にかかるコンテンツ取得システム1を創作するに至った。本実施形態にかかるコンテンツ取得システム1によれば、RSSフィードの〈enclosure)要素の記載を簡素化しつつ、ファイルセグメントの取得を可能とすることができる。
〔3〕コンテンツ取得システムの詳細な説明
以下、当該コンテンツ取得システム1について、ノード20のハードウェア構成、ノード20の機能、およびコンテンツ取得システムの動作の順に従って詳細に説明する。
〔3−1〕ノードのハードウェア構成
図7は、本実施形態にかかるノード20のハードウェア構成を示した説明図である。図7に示したように、ノード20は、CPU(Central Processing Unit)201と、ROM(Read Only Memory)202と、RAM(Random Access Memory)203と、ホストバス204と、ブリッジ205と、外部バス206と、インタフェース207と、入力装置208と、出力装置210と、ストレージ装置(HDD)211と、ドライブ212と、通信装置215とを備える。
CPU201は、演算処理装置および制御装置として機能し、各種プログラムに従ってノード20内の動作全般を制御する。また、CPU201は、マイクロプロセッサであってもよい。ROM202は、CPU201が使用するプログラムや演算パラメータ等を記憶する。RAM203は、CPU201の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはCPUバスなどから構成されるホストバス204により相互に接続されている。
ホストバス204は、ブリッジ205を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス206に接続されている。なお、必ずしもホストバス204、ブリッジ205および外部バス206を分離構成する必要はなく、一のバスにこれらの機能を実装してもよい。
入力装置208は、例えば、マウス、キーボード、タッチパネル、ボタン、マイク、スイッチおよびレバーなどユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、CPU201に出力する入力制御回路などから構成されている。ノード20のユーザは、該入力装置208を操作することにより、ノード20に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置210は、例えば、CRT(Cathode Ray Tube)ディスプレイ装置、液晶ディスプレイ(LCD)装置、OLED(Organic Light Emitting Display)装置およびランプなどの表示装置と、スピーカおよびヘッドホンなどの音声出力装置で構成される。出力装置210は、例えば、再生されたコンテンツを出力する。具体的には、表示装置は再生された映像データ等の各種情報をテキストまたはイメージで表示する。一方、音声出力装置は、再生された音声データ等を音声に変換して出力する。
ストレージ装置211は、本実施形態にかかるノード20の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置211は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含んでもよい。ストレージ装置211は、例えば、HDD(Hard Disk Drive)で構成される。このストレージ装置211は、ハードディスクを駆動し、CPU201が実行するプログラムや各種データを格納する。また、このストレージ装置211には、後述の、名前解決テーブル、ファイルセグメントなどが記録される。
ドライブ212は、記憶媒体用リーダライタであり、ノード20に内蔵、あるいは外付けされる。ドライブ212は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記憶媒体24に記録されている情報を読み出して、RAM203に出力する。
通信装置215は、例えば、通信網12に接続するための通信デバイス等で構成された通信インタフェースである。また、通信装置215は、無線LAN(Local Area Network)対応通信装置であっても、ワイヤレスUSB対応通信装置であっても、有線による通信を行うワイヤー通信装置であってもよい。この通信装置215は、ノードアドレス解決サーバ14や他のノード20との間で、通信網12を介して、RSSフィード、URL、ファイルセグメントなどの各種データを送受信する。
〔3−2〕ノードの機能
続いて、図8〜図11を参照して本実施形態にかかるノード20の機能を説明する。
図8は、本実施形態にかかるノード20の構成を示した機能ブロック図である。図8に示したように、当該ノード20は、通信部216と、名前解決処理部220と、コンテンツ利用部230と、ファイルサーバ処理部240と、レンダリング処理部260と、を備える。
通信部216は、他のノード20Xやノードアドレス解決サーバ14などとのインターフェースであって、各種データを送受信する。例えば、通信部216は、RSSディレクトリサーバ15からRSSフィードを受信する受信部としての機能や、自装置に記憶されているファイルセグメントのURLを送信する送信部としての機能を有する。ここで、RSSディレクトリサーバ15は任意のRSSフィードを記憶していてもよい。なお、本明細書においては、例えばノード20がノード20Aに該当する場合、ノード20Aと異なる他のノード20B、20Cなどを、単にノード20Xと総称する場合がある。
名前解決処理部220は、URL抽出部222と、名前解決テーブル記憶部224と、テーブル管理部226と、を備える。
テーブル管理部226は、名前解決テーブル記憶部224が記憶する名前解決テーブルを管理する。名前解決テーブルは、あるファイル(ファイルセグメントを含む)のファイル名のハッシュ値と、該ファイルのURLとが対応付けられたエントリ(名前解決テーブルエントリ)を含むテーブルである。
具体的には、各ノード20はハッシュ値の管理範囲が割当てられており、各ノード20は、ファイル名のハッシュ値が該管理範囲に含まれるファイルのファイル名のハッシュ値と、該ファイルのURLとが対応付けられた名前解決テーブルエントリを受信する。そして、テーブル管理部226は、他のノード20から受信した名前解決テーブルエントリを名前解決テーブル記憶部224に記録する。ここで、図9を参照して各ノード20に割当てられるハッシュ値の管理範囲について説明する。
図9は、各ノード20に割当てられるハッシュ値の管理範囲の一例について示した説明図である。図9においては、ハッシュ値が10であるノードIDをノード20Aが有し、ハッシュ値が90であるノードIDをノード20Bが有し、ハッシュ値が150であるノードIDをノード20Cが有する場合を示している。また、ノード20Aおよびノード20CがP2P(Peer to Peer)ネットワークに参加しており、ノード20Bは未参加であるものとする。また、ノード20Aおよびノード20Cがリング(ノードIDのハッシュ値を連続して並べた仮想的な輪)上にあるものとする。
この場合、ノード20Aは、ノードIDのハッシュ値が10であり、ノード20CのノードIDのハッシュ値が150であるため、ハッシュ値151〜10までをハッシュ値の管理範囲として割当てられる。また、ノード20Cは、ノードIDのハッシュ値が150であり、ノード20AのノードIDのハッシュ値が10であるため、ハッシュ値11〜150までをハッシュ値の管理範囲として割当てられる。
ここで、ノード20Bが当該ネットワークに参加しようとする場合、ノード20Bは自装置のハッシュ値90の両隣のハッシュ値を有するノード20Aおよびノード20Cを探索する。より多数のノード20がネットワークに参加している場合、ノード20Bは任意のアルゴリズムにより両隣のノードを探索することができる。例えば、ノード20Bは最初に任意のノードと通信し、該ノードが両隣のノードでなかった場合、該ノードから自装置の両隣のノードを得てもよい。
ノード20Bは、両隣のハッシュ値を有するノード20Aおよびノード20Cを得ると、ノード20AのノードIDのハッシュ値が10であり、ノード20CのノードIDのハッシュ値が150であるため、自装置のハッシュ値の管理範囲を11〜90とする。そして、ノード20Bのネットワークへの参加により、ノード20Cのハッシュ値の管理範囲は91〜150になる。
ここで、ネットワークに参加している各ノード20は、上述したように、ファイル名のハッシュ値が管理範囲に含まれるファイルのファイル名のハッシュ値と、該ファイルのURLを対応付けて記憶している。例えば、ノード20Bがネットワークに参加する前は、ノード20Cは、ハッシュ値が11〜150の範囲内のファイル名を有するファイルのURLを記憶していた。したがって、ノード20Bのテーブル管理部226は、ノード20Cが記憶していたうちの、ハッシュ値が11〜90の範囲内のファイル名を有するファイルのURLと、該ファイルのファイル名のハッシュ値のペアである名前解決テーブルエントリをノード20Cから受信し、記憶する。
一方、ノード20Bがネットワークから離脱する場合には、ハッシュ値が隣接するノード20Cを探索し、自装置の名前解決テーブル記憶部224が記憶していた名前解決テーブルエントリをノード20Cに送信する。そして、ノード30Cのテーブル管理部226は、ノード20Bから受信した名前解決テーブルエントリを自装置が管理する名前解決テーブルに追加する。
なお、ノードIDは、各ノードがネットワークに参加する際に例えば時間に基づいて決定して保持するランダムな識別情報であってもよい。
以上、各ノード20に割当てられるハッシュ値の管理範囲や、ネットワークに参加する際、またはネットワークから離脱する際の処理方法について説明したが、上記説明は一例に過ぎず、他の任意の処理方法を代用することが可能である。
URL抽出部222は、他のノード20Xから名前解決要求があった場合、該名前解決要求に応じて適切なURLを返信する。ここで、URL抽出部222は、名前解決要求として例えばファイルセグメント名のハッシュ値を受信し、該ハッシュ値と対応付けて名前解決テーブル記憶部224に記憶されているURLを返信してもよい。このような名前解決処理部220を備えるノードは、所在情報記憶部としての機能を有する。また、名前解決テーブル記憶部224に記憶されている名前解決テーブルの一例を図10に示す。
図10は、名前解決テーブル記憶部224に記憶されている名前解決テーブルの一例を示した説明図である。図10に示したように、名前解決テーブルには、ファイル名のハッシュ値と、ファイルの所在を示すURLとが対応付けられた名前解決テーブルエントリが複数含まれる。
コンテンツ利用部230は、RSS取得部232、生成部234、ファイル取得部236、および再生指示部238を備え、RSSフィードリーダや、RSSフィードリーダにより呼び出されるアプリケーションに相当する。
RSS取得部232は、例えばRSSディレクトリサーバ15に記憶されているRSSフィードのうちから、選択的にRSSフィードを取得する。または、RSS取得部232は、RSSフィードをマルチキャストするRSSマルチキャストサーバ(図示せず。)からRSSフィードを取得することもできる。ここで、RSS取得部232により取得されたRSSフィード(第1のコンテンツ情報)に含まれる〈enclosure)要素には、あるコンテンツに応じたデータ情報として該コンテンツのファイル名や、該コンテンツの分割数が記載されている。
生成部234は、RSS取得部232により取得されたRSSフィードに含まれる〈enclosure)要素の記載から、上記コンテンツをチャンク化して得られた各ファイルセグメントを示す分割データ指定情報としてのファイルセグメント名を生成する。図11を参照して、生成部234の機能を具体的に説明する。
図11は、生成部234が〈enclosure)要素の記載からファイルセグメント名を生成する様子を示した説明図である。図11に示した「drs://targetFile−N」という〈enclosure)要素の記載のうち、「drs」は、当該〈enclosure)要素にファイルの所在でなく特別な情報が記載されていることを示す。
また、「targetFile」がコンテンツファイルのファイル名であり、「N」が該コンテンツを分割して得られたファイルセグメント数である。
生成部234は、かかるファイル名に1〜Nまでの番号を付加して各ファイルセグメント名を生成する。具体的には、図11に示したように、生成部234は「targetFile−1」、「targetFile−2」、「targetFile−3」、「targetFile−4」、・・・、「targetFile−N」を生成する。
ファイル取得部236は、生成部234により生成されたファイルセグメント名の各々に基づいて各ファイルセグメントを取得する取得部として機能する。例えば、ファイル取得部236は、まず各ファイルセグメント名のハッシュ値を計算する。そして、ファイル取得部236は、計算したファイルセグメント名のハッシュ値を管理範囲に含むノードIDを有するノードのネットワークアドレスを、ノードアドレス解決サーバ14に問い合わせて取得する。
その後、ファイル取得部236は、ノードアドレス解決サーバ14から取得したネットワークアドレスを有するノードに、ファイルセグメント名を名前解決依頼として送信することにより、該ノードのURL抽出部222からファイルセグメントのURLを取得する。
そして、ファイル取得部236は、取得したファイルセグメントのURLの示す所在から、ファイルセグメントの実体を取得する。
なお、ファイル取得部236は、1のファイルセグメントに関し、複数のファイルセグメントのURLを取得する場合がある。この場合、ファイル取得部236は、複数のファイルセグメントのURLから1のURLを選択し、選択したURLの示す所在からファイルセグメントの実体を取得してもよい。かかる構成においては、ファイル取得部236は、例えばネットワークの混雑状況等に応じ、取得し易いノードから選択的にファイルセグメントの実体を取得することにより、ファイルセグメントの取得効率の向上を図ることができる。
また、あるファイルセグメントのURLを名前解決テーブル記憶部224に複数記憶しているノードは、他のノードからの名前解決要求時に、複数のファイルセグメントのURLのうちから、1のファイルセグメントのURLを選択して他のノードに送信してもよい。
また、上記では、生成部234がコンテンツのファイル名に1〜Nまでの番号を付加して各ファイルセグメント名を生成する例を説明したが、本発明はかかる例に限定されない。例えば、生成部234は、あらかじめ順序付けられている要素群のうちで、ファイルセグメント数に応じた範囲内に順序付けられている要素の各々をコンテンツのファイル名に付加してもよい。具体的には、生成部234は、A、B、C・・と順序付けられているアルファベット群から、ファイルセグメント数が8であった場合、8つ目に順序付けられている「H」までの各アルファベットをコンテンツ名に付加してファイルセグメント名を得てもよい。
また、ファイルセグメント数は必ずしも数字で表現される必要は無く、あらかじめ順序付けられている要素群におけるいずれかの要素で表現されてもよい。
再生指示部238は、ファイル取得部236により取得されたファイルセグメントの再生をレンダリング処理部260に指示する。すなわち、レンダリング処理部260は、再生指示部238からの指示に応じてコンテンツを映像や音声の出力装置に再生させる再生部として機能を有する。
ファイルサーバ処理部240は、記録部242、ファイル記憶部244、URL通知部246、チャンク処理部248、RSS生成部250、およびファイル転送部252を備える。
記録部242は、ファイル記憶部244に、ファイル取得部236により取得されたコンテンツのファイルセグメントを記録する。ファイル記憶部244は、コンテンツのファイルセグメントや、チャンク化されていないコンテンツデータなどを記憶する分割データ記憶部として機能する。かかるファイル記憶部244を備えるノードは、コンテンツ記憶装置として機能する。なお、図8においては、名前解決テーブル記憶部224およびファイル記憶部244を異なる構成として示しているが、名前解決テーブル記憶部224およびファイル記憶部244は実際には物理的に同一の記憶媒体であってもよい。
また、名前解決テーブル記憶部224およびファイル記憶部244は、例えば、EEPROM(Electrically Erasable Programmable Read−Only Memory)、EPROM(Erasable Programmable Read Only Memory)などの不揮発性メモリや、ハードディスクおよび円盤型磁性体ディスクなどの磁気ディスクや、CD−R(Compact Disc Recordable)/RW(ReWritable)、DVD−R(Digital Versatile Disc Recordable)/RW/+R/+RW/RAM(Ramdam Access Memory)およびBD(Blu−Ray Disc(登録商標))―R/BD−REなどの光ディスクや、MO(Magneto Optical)ディスクなどの記憶媒体であってもよい。
URL通知部246は、記録部242により新たにファイル記憶部244に記録されたファイルセグメントの、ファイル記憶部244における所在を示すURLを、該ファイルセグメントの名前のハッシュ値を管理範囲に含むノードに送信する送信部として機能する。URL通知部246からあるファイルセグメントのURLを受信したノードのテーブル管理部226は、名前解決テーブル記憶部224に、該ファイルセグメントのURLとしてURL通知部246から受信した該ファイルセグメントのURLを追加できる。その結果、後に該ファイルセグメントの取得を所望する複数のノードが、異なるノードから分散的に該ファイルセグメントを取得することが可能となる。
また、URL通知部246は、後述のチャンク処理部248によりコンテンツをチャンク化して得られた各ファイルセグメントのファイル記憶部244における所在を示すURLを、各々対応するノードに送信する。URL通知部246からあるファイルセグメントのURLを受信したノードのテーブル管理部226は、名前解決テーブル記憶部224に、該ファイルセグメントのURLとしてURL通知部246から受信した該ファイルセグメントのURLを記録できる。
チャンク処理部248は、任意のコンテンツデータをチャンク化(分割)し、複数のファイルセグメント(分割データ)を得る分割部として機能する。チャンク処理部248によりチャンク化して得られた各ファイルセグメントは、記録部242によりファイル記憶部244に記録されてもよい。この場合、URL通知部246が、各ファイルセグメントのファイル記憶部244における所在を示すURLを、ファイルセグメント名のハッシュ値と併せて各々対応するノードに送信してもよい。
RSS生成部250は、チャンク処理部248によりあるコンテンツのコンテンツデータがチャンク化されると、該コンテンツのRSSフィードを生成する。具体的には、RSS生成部250は、該コンテンツのコンテンツ名と、チャンク処理部248のチャンク処理により生成されたファイルセグメントの数と、が記載された〈enclosure〉要素を含むRSSフィードを生成する。RSS生成部250により生成されたRSSフィードは、RSSディレクトリサーバ15を介して他のノードに送信される。
ファイル転送部252は、他のノードのファイル取得部236から、ファイル記憶部244に記憶されているファイルセグメントの取得要求があった場合、該ファイルセグメントを他のノードに転送する。
なお、上記では、コンテンツデータがチャンク化された場合のRSSフィードの〈enclosure〉要素に記載される内容について説明してきた。しかし、コンテンツデータがチャンク化されていない場合は、RSSフィード(第2のコンテンツ情報)の〈enclosure〉要素はコンテンツ名を記載されていればよい。この場合、ファイル取得部236は、〈enclosure〉要素に記載されているコンテンツ名のハッシュ値に基づいて該コンテンツの名前解決を依頼するノードを特定し、該ノードから取得したURLの示す所在から該コンテンツの実体を取得する。
〔3−3〕コンテンツ取得システムの動作
以上、図8〜図11を参照して本実施形態にかかるノード20の機能を説明した。続いて、図12〜図16を参照し、本実施形態にかかるコンテンツ取得システムの動作を説明する。
図12は、コンテンツのチャンク化からRSSフィードの公開までの流れを示したシーケンス図である。まず、ノード20Aのファイルサーバ処理部240のチャンク処理部248は、コンテンツのファイルをチャンク化し、各ファイルセグメントにファイル名を命名し、各ファイルセグメントにファイル記憶部244におけるURLを割当てる(S202)。ファイルセグメント数が「N」である場合、チャンク処理部248は、各ファイルセグメントに「targetFile−(1or2or3・・・orN)」のようにファイルセグメント名を命名する。すなわち、図12においては、太字で示したNは、(1、2、3・・・、N)を示す。なお、ファイルセグメント名の命名の際には、ファイルセグメントの再生順序にしたがってコンテンツ名に付加する数字を決定してもよい。
続いて、ファイルサーバ処理部240のURL通知部246は、「targetFile−1」のハッシュ値を管理範囲に含むノードに、「targetFile−1」のハッシュ値、および「targetFile−1」のURLのペアを通知する(S204)。その際、URL通知部246は、ノードアドレス解決サーバ14から「targetFile−1」のハッシュ値を管理範囲に含むノードのネットワークアドレスを取得する(S206)。続いて、「targetFile−1」のハッシュ値を管理範囲に含むノードの名前解決処理部220は、名前解決テーブルエントリとして「targetFile−1」のハッシュ値、および「targetFile−1」のURLのペアを名前解決テーブル記憶部224に記憶させる(S208)。
ノード20Aのファイルサーバ処理部240のURL通知部246は、「targetFile−2」〜「targetFile−N」までのファイルセグメントについても同様の処理を行う。例えば、URL通知部246は、「targetFile−N」のハッシュ値を管理範囲に含むノードに、「targetFile−N」のハッシュ値、および「targetFile−N」のURLのペアを通知する(S210)。その際、URL通知部246は、ノードアドレス解決サーバ14から「targetFile−N」のハッシュ値を管理範囲に含むノードのネットワークアドレスを取得する(S212)。続いて、「targetFile−N」のハッシュ値を管理範囲に含むノードは、名前解決テーブルエントリとして「targetFile−N」のハッシュ値、および「targetFile−N」のURLのペアを名前解決テーブル記憶部224に記憶させる(S214)。
その後、ノード20Aのファイルサーバ処理部240のRSS生成部250は、〈enclosure)要素に「drs://targetFile−N」が記載されたRSSフィードを生成する(S216)。そして、ノード20Aのファイルサーバ処理部240のRSS生成部250は、生成したRSSフィードをRSSディレクトリサーバ15を介して公開する(S218)。
図13〜図16は、RSSの取得からコンテンツの再生までの流れを示したフローチャートである。まず、図13に示したように、ノード20Zのコンテンツ利用部230のRSS取得部232は、RSSディレクトリサーバ15において公開されているRSSフィードに記述されているメタデータを検索し、取得対象のコンテンツに対応するRSSフィードを特定して取得する(S302)。続いて、ノード20Zのコンテンツ利用部230の生成部234およびファイル取得部236は、RSSフィードの<enclosure>要素のurl属性に記載されている「DRS://targetFile−[N]”をもとに、チャンク化された取得対象のコンテンツであるファイルセグメント群のURLを得る。
例えば、ノード20Zのコンテンツ利用部230の生成部234は、ファイルセグメント名として「targetFile−1」〜「targetFile−N」を生成する。そして、ノード20Zのコンテンツ利用部230のファイル取得部236が、「targetFile−1」のハッシュ値を管理範囲に含むノードの名前解決処理部220に「targetFile−1」のURLを問い合わせる(S304)。その際、ファイル取得部236は、ノードアドレス解決サーバ14から「targetFile−1」のハッシュ値を管理範囲に含むノードのネットワークアドレスを取得する(S306)。そして、「targetFile−1」のハッシュ値を管理範囲に含むノードの名前解決処理部220が「targetFile−1」のURLをノード20Zに送信する(S308)。
ノード20Zのコンテンツ利用部230のファイル取得部236は、「targetFile−2」〜「targetFile−N」についても同様の処理を行う。例えば、ファイル取得部236は、「targetFile−N」のハッシュ値を管理範囲に含むノードの名前解決処理部220に「targetFile−N」のURLを問い合わせる(S310)。その際、ファイル取得部236は、ノードアドレス解決サーバ14から「targetFile−N」のハッシュ値を管理範囲に含むノードのネットワークアドレスを取得する(S312)。そして、「targetFile−N」のハッシュ値を管理範囲に含むノードの名前解決処理部220が「targetFile−N」のURLをノード20Zに送信する(S314)。なお、S304〜S310までの処理は、ファイルセグメントごとに並列処理が可能である。
そして、図14に示したように、ノード20Zのコンテンツ利用部230のファイル取得部236は、ファイルセグメントごとに、取得したURLのうちのいずれかを選択し、URLの示す所在に該当するノードのファイルサーバ処理部240にファイルセグメント送信を要求する。例えば、ファイル取得部236が「targetFile−1」の送信をノード20Xのファイルサーバ処理部240に要求すると(S350)、ノード20Xのファイルサーバ処理部240が「targetFile−1」をノード20Zに送信する(S352)。
ノード20Zのコンテンツ利用部230のファイル取得部236は、「targetFile−2」〜「targetFile−N」についても同様の処理を行う。例えば、ファイル取得部236は、「targetFile−N」の送信をノード20Yのファイルサーバ処理部240に要求すると(S354)、ノード20Yのファイルサーバ処理部240が「targetFile−N」をノード20Zに送信する(S356)。なお、S350〜S356までの処理は、ファイルセグメントごとに並列処理が可能である。
続いて、図15に示したように、ノード20Zのファイル取得部236により取得された「targetFile−1」がファイル記憶部244に記録されると(S402)、ノード20Zのファイルサーバ処理部240のURL通知部246は、「targetFile−1」のハッシュ値と、「targetFile−1」のファイル記憶部244における所在を示すURLのペアを、「targetFile−1」のハッシュ値を管理範囲に含むノードに通知する(S404)。その際、URL通知部246は、ノードアドレス解決サーバ14から「targetFile−1」のハッシュ値を管理範囲に含むノードのネットワークアドレスを取得する(S406)。「targetFile−1」のハッシュ値を管理範囲に含むノードは、名前解決テーブルエントリとして「targetFile−1」のハッシュ値と、「targetFile−1」のファイル記憶部244における所在を示すURLのペアを追加する(S408)。
そして、ノード20Zのファイルサーバ処理部240は、「targetFile−2」〜「targetFile−N」についても同様の処理を行う。例えば、ノード20Zのファイル取得部236により取得された「targetFile−N」がファイル記憶部244に記録されると(S410)、URL通知部246は、「targetFile−N」のハッシュ値と、「targetFile−N」のファイル記憶部244における所在を示すURLのペアを、「targetFile−N」のハッシュ値を管理範囲に含むノードに通知する(S412)。その際、URL通知部246は、ノードアドレス解決サーバ14から「targetFile−N」のハッシュ値を管理範囲に含むノードのネットワークアドレスを取得する(S414)。「targetFile−N」のハッシュ値を管理範囲に含むノードは、名前解決テーブルエントリとして「targetFile−N」のハッシュ値と、「targetFile−N」のファイル記憶部244における所在を示すURLのペアを追加する(S416)。なお、S402〜S416までの処理は、ファイルセグメントごとに並列処理が可能である。
一方、図15に示した処理と並行し、ノード20Zのレンダリング処理部260は取得が完了したファイルセグメントから、各ファイルセグメントの順序を考慮してコンテンツの逐次再生処理を実行する。具体的には、図16に示したように、ノード20Zのファイル取得部236に取得された「targetFile−1」がファイル記憶部244に記録されると(S452)、ノード20Zのファイルサーバ処理部240はレンダリング処理部260に「targetFile−1」の再生を要求する(S454)。レンダリング処理部260は、ファイルサーバ処理部240からの要求に応じて「targetFile−1」の再生を開始する(S456)。
そして、ノード20Zは、「targetFile−2」〜「targetFile−N」についても同様の処理を行う。例えば、ファイル取得部236に取得された「targetFile−N」がファイル記憶部244に記録されると(S458)、ファイルサーバ処理部240はレンダリング処理部260に「targetFile−N」の再生を要求する(S460)。レンダリング処理部260は、ファイルサーバ処理部240からの要求に応じて「targetFile−N」の再生を開始する(S462)。
〔4〕まとめ
以上説明したように、本実施形態にかかるノード20は、生成部234が、RSSフィードの<enclosure>要素の記載に基づいて各ファイルセグメント名を生成することができる。そして、ファイル取得部236が各ファイルセグメント名に従って他のノードから各ファイルセグメントを取得する。したがって、当該ノード20によれば、RSSフィードの<enclosure>要素に、各ファイルセグメント名が記載されていなくても各ファイルセグメントを取得することができる。その結果、RSSフィードの情報量を抑制し、RSSフィードが煩雑化することを防止できる。
なお、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば、本明細書のコンテンツ取得システム1の処理における各ステップは、必ずしもシーケンス図として記載された順序に沿って時系列に処理する必要はない。例えば、コンテンツ取得システム1の処理における各ステップは、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)を含んでもよい。
また、ノード20に内蔵されるCPU201、ROM202およびRAM203などのハードウェアを、上述したノード20の各構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、該コンピュータプログラムを記憶させた記憶媒体も提供される。また、図8の機能ブロック図で示したそれぞれの機能ブロックをハードウェアで構成することで、一連の処理をハードウェアで実現することもできる。
本実施形態にかかるコンテンツ取得システムの構成を示した説明図である。 本実施形態に関連するコンテンツ取得システムにおけるコンテンツ取得の流れを示した説明図である。 本実施形態に関連するコンテンツ取得システムにおけるコンテンツ取得の流れを示した説明図である。 本実施形態に関連するコンテンツ取得システムにおけるコンテンツ取得の流れを示した説明図である。 本実施形態にかかるコンテンツ取得システムにおけるコンテンツ取得の流れを示した説明図である。 本実施形態にかかるコンテンツ取得システムにおけるコンテンツ取得の流れを示した説明図である。 本実施形態にかかるノードのハードウェア構成を示した説明図である。 本実施形態にかかるノードの構成を示した機能ブロック図である。 各ノードに割当てられるハッシュ値の管理範囲の一例について示した説明図である。 名前解決テーブル記憶部に記憶されている名前解決テーブルの一例を示した説明図である。 生成部が〈enclosure)要素の記載からファイルセグメント名を生成する様子を示した説明図である。 コンテンツのチャンク化からRSSフィードの公開までの流れを示したシーケンス図である。 RSSの取得からコンテンツの再生までの流れを示したフローチャートである。 RSSの取得からコンテンツの再生までの流れを示したフローチャートである。 RSSの取得からコンテンツの再生までの流れを示したフローチャートである。 RSSの取得からコンテンツの再生までの流れを示したフローチャートである。
符号の説明
14 ノードアドレス解決サーバ
216 通信部
220 名前解決処理部
222 URL抽出部
224 名前解決テーブル記憶部
226 テーブル管理部
230 コンテンツ利用部
232 RSS取得部
234 生成部
236 ファイル取得部
240 ファイルサーバ処理部
242 記録部
244 ファイル記憶部
246 URL通知部
248 チャンク処理部
250 RSS生成部
252 ファイル転送部

Claims (10)

  1. 第1のコンテンツデータを分割して得られた所定数の分割データのうちのいずれかを1または2以上のコンテンツ記憶装置が記憶しており、前記所定数の値を示す分割数情報と、前記第1のコンテンツデータに応じたデータ情報と、を含む第1のコンテンツ情報を受信する受信部と;
    前記分割数情報と前記データ情報とに基づき、前記分割データの各々を示す分割データ指定情報を前記分割データごとに生成する生成部と;
    前記分割データ指定情報に従って前記1または2以上のコンテンツ記憶装置から前記分割データを取得する取得部と;
    を備え、
    前記分割データ指定情報に基づいて特定される所在情報記憶装置には前記分割データの所在を示す所在情報が記憶されており、
    前記取得部は、前記分割データ指定情報に基づいて特定した所在情報記憶装置から前記分割データの所在情報を取得し、該所在情報の示すコンテンツ記憶装置から前記分割データを取得することを特徴とする、コンテンツ取得装置。
  2. 前記取得部により取得された分割データが記録される記憶部と;
    前記分割データの前記記憶部における所在を示す所在情報を、前記分割データ指定情報に基づいて特定される所在情報記憶装置に送信する送信部と;
    をさらに備えることを特徴とする、請求項1に記載のコンテンツ取得装置。
  3. 前記取得部は、前記分割データ指定情報に基づいて特定した所在情報記憶装置から前記分割データの所在情報を複数取得した場合、複数の所在情報のうちから1の所在情報を選択し、選択した所在情報の示すコンテンツ記憶装置から前記分割データを取得することを特徴とする、請求項1に記載のコンテンツ取得装置。
  4. 前記所在情報記憶装置には、前記所在情報記憶装置の固有識別情報のハッシュ値に応じたハッシュ値の管理範囲が割当てられており、
    前記分割データの所在情報の各々は、前記分割データを示す分割データ指定情報のハッシュ値を管理範囲に含む所在情報記憶装置に分散記憶されていることを特徴とする、請求項1に記載のコンテンツ取得装置。
  5. 前記生成部は、既知の順序付けられた要素群に含まれる要素のうちで、前記分割数情報の示す値に応じた範囲内に順序付けられている要素の各々を前記データ情報に付加することにより所定数の前記分割データ指定情報を生成することを特徴とする、請求項1に記載のコンテンツ取得装置。
  6. 受信部は、前記第1のコンテンツ情報と形式が異なり、第2のコンテンツデータを示す第2のコンテンツ情報をさらに受信し、
    前記取得部は、前記第2のコンテンツ情報に従って特定のコンテンツ記憶装置から前記第2のコンテンツデータを取得することを特徴とする、請求項1に記載のコンテンツ取得装置。
  7. 前記第1のコンテンツ指定情報はRSSフィードに含まれることを特徴とする、請求項1に記載のコンテンツ取得装置。
  8. コンピュータを、
    第1のコンテンツデータを分割して得られた所定数の分割データのうちのいずれかを1または2以上のコンテンツ記憶装置が記憶しており、前記所定数の値を示す分割数情報と、前記第1のコンテンツデータに応じたデータ情報と、を含む第1のコンテンツ指定情報を受信する受信部と;
    前記分割数情報と前記データ情報とに基づき、前記分割データの各々を示す分割データ指定情報を前記分割データごとに生成する生成部と;
    前記分割データ指定情報に従って前記1または2以上のコンテンツ記憶装置から前記分割データを取得する取得部と;
    を備え、
    前記分割データ指定情報に基づいて特定される所在情報記憶装置には前記分割データの所在を示す所在情報が記憶されており、
    前記取得部は、前記分割データ指定情報に基づいて特定した所在情報記憶装置から前記分割データの所在情報を取得し、該所在情報の示すコンテンツ記憶装置から前記分割データを取得するコンテンツ取得装置として機能させるためのプログラム。
  9. コンテンツ取得装置において実行されるコンテンツ取得方法であって:
    第1のコンテンツデータを分割して得られた所定数の分割データのうちのいずれかを1または2以上のコンテンツ記憶装置が記憶しており、前記所定数の値を示す分割数情報と、前記第1のコンテンツデータに応じたデータ情報と、を含む第1のコンテンツ指定情報を受信するステップと;
    前記分割数情報と前記データ情報とに基づき、前記分割データの各々を示す分割データ指定情報を前記分割データごとに生成するステップと;
    前記分割データ指定情報に従って前記1または2以上のコンテンツ記憶装置から前記所定数の分割データを取得するステップと;
    を含み、
    前記分割データ指定情報に基づいて特定される所在情報記憶装置には前記分割データの所在を示す所在情報が記憶されており、
    前記取得するステップでは、前記分割データ指定情報に基づいて特定した所在情報記憶装置から前記分割データの所在情報を取得し、該所在情報の示すコンテンツ記憶装置から前記分割データを取得することを特徴とする、コンテンツ取得方法。
  10. 1または2以上のコンテンツ記憶装置と、コンテンツ取得装置とを含むコンテンツ取得システムであって:
    前記コンテンツ記憶装置は、
    第1のコンテンツデータを分割して所定数の分割データを得る分割部と;
    前記分割データの各々を記憶する分割データ記憶部と;
    前記所定数の値を示す分割数情報と、前記第1のコンテンツデータに応じたデータ情報と、を含む第1のコンテンツ指定情報を送信する通信部と;
    を備え、
    前記コンテンツ取得装置は、
    前記第1のコンテンツ指定情報を受信する受信部と;
    前記分割数情報と前記データ情報とに基づき、前記分割データの各々を示す分割データ指定情報を前記分割データごとに生成する生成部と;
    前記分割データ指定情報に従って前記1または2以上のコンテンツ記憶装置から前記分割データを取得する取得部と;
    を備え、
    前記分割データ指定情報に基づいて特定される所在情報記憶装置には前記分割データの所在を示す所在情報が記憶されており、
    前記取得部は、前記分割データ指定情報に基づいて特定した所在情報記憶装置から前記分割データの所在情報を取得し、該所在情報の示すコンテンツ記憶装置から前記分割データを取得することを特徴とする、コンテンツ取得システム。
JP2007268410A 2007-10-15 2007-10-15 コンテンツ取得装置、プログラム、コンテンツ取得方法、およびコンテンツ取得システム Expired - Fee Related JP4998196B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2007268410A JP4998196B2 (ja) 2007-10-15 2007-10-15 コンテンツ取得装置、プログラム、コンテンツ取得方法、およびコンテンツ取得システム
US12/595,853 US20100223436A1 (en) 2007-10-15 2008-10-14 Content acquisition apparatus, program, content acquisition method and content acquisition system
PCT/JP2008/068567 WO2009051099A1 (ja) 2007-10-15 2008-10-14 コンテンツ取得装置、プログラム、コンテンツ取得方法、およびコンテンツ取得システム
KR1020097021050A KR20100081275A (ko) 2007-10-15 2008-10-14 콘텐츠 취득장치, 프로그램, 콘텐츠 취득방법 및 콘텐츠 취득시스템
CN2008800121297A CN101657800B (zh) 2007-10-15 2008-10-14 内容获取设备、内容获取方法和内容获取***
EP08840376.1A EP2202642A4 (en) 2007-10-15 2008-10-14 CONTENT MANAGEMENT APPROACH, PROGRAM, CONTENT MANAGEMENT METHOD AND CONTENT MANAGEMENT SYSTEM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007268410A JP4998196B2 (ja) 2007-10-15 2007-10-15 コンテンツ取得装置、プログラム、コンテンツ取得方法、およびコンテンツ取得システム

Publications (2)

Publication Number Publication Date
JP2009098817A JP2009098817A (ja) 2009-05-07
JP4998196B2 true JP4998196B2 (ja) 2012-08-15

Family

ID=40567363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007268410A Expired - Fee Related JP4998196B2 (ja) 2007-10-15 2007-10-15 コンテンツ取得装置、プログラム、コンテンツ取得方法、およびコンテンツ取得システム

Country Status (6)

Country Link
US (1) US20100223436A1 (ja)
EP (1) EP2202642A4 (ja)
JP (1) JP4998196B2 (ja)
KR (1) KR20100081275A (ja)
CN (1) CN101657800B (ja)
WO (1) WO2009051099A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8903906B2 (en) 2010-03-16 2014-12-02 Brother Kogyo Kabushiki Kaisha Information communications system, node device, method of communicating contents, computer readable recording medium storing a program
JP5423497B2 (ja) * 2010-03-16 2014-02-19 ブラザー工業株式会社 情報通信システム、ノード装置、情報通信方法、及びプログラム
JP5234041B2 (ja) * 2010-03-31 2013-07-10 ブラザー工業株式会社 情報通信システム、ノード装置および情報処理方法ならびにノード装置用プログラム
US9792381B2 (en) * 2010-06-28 2017-10-17 Here Global B.V. Method and apparatus for a paged update protocol
US10511887B2 (en) 2010-08-30 2019-12-17 Saturn Licensing Llc Reception apparatus, reception method, transmission apparatus, transmission method, program, and broadcasting system
JP5716745B2 (ja) * 2010-09-02 2015-05-13 日本電気株式会社 データ転送システム
JP5775359B2 (ja) * 2011-05-11 2015-09-09 キヤノン株式会社 システム管理サーバ、管理方法及びプログラム
US9113230B2 (en) * 2011-12-21 2015-08-18 Sony Corporation Method, computer program, and reception apparatus for delivery of supplemental content
CA2839808C (en) 2012-06-19 2021-09-14 Sony Corporation Extensions to trigger parameters table for interactive television
JP5799967B2 (ja) * 2013-03-01 2015-10-28 トヨタ自動車株式会社 データ送信装置、データ共有システム、データ共有方法、およびメッセージ交換システム
CN103906046A (zh) * 2014-04-17 2014-07-02 上海电机学院 一种基于身份隐藏的安全点对点按需路由方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6181867B1 (en) * 1995-06-07 2001-01-30 Intervu, Inc. Video storage and retrieval system
US20050138655A1 (en) * 2003-12-22 2005-06-23 Randy Zimler Methods, systems and storage medium for managing digital rights of segmented content
CA2564959A1 (en) * 2004-05-07 2005-11-24 Home Box Office, Inc. Method and system for secure distribution of content over a communications network
US8434118B2 (en) * 2004-05-27 2013-04-30 Time Warner Cable Enterprises Llc Playlist menu navigation
JP2006173759A (ja) * 2004-12-13 2006-06-29 Canon Inc 蓄積制御装置、受信装置、蓄積制御方法
JP2006285328A (ja) * 2005-03-31 2006-10-19 Brother Ind Ltd ノード装置、情報配信システム、情報利用方法および情報利用プログラム
JP4848756B2 (ja) 2005-12-15 2011-12-28 ソニー株式会社 情報処理装置および方法、並びにプログラム
CN101390394B (zh) * 2006-02-22 2012-11-07 株式会社爱可信 节目广播***以及节目内容传送***
US7925781B1 (en) * 2006-05-26 2011-04-12 The Hong Kong University Of Science And Technology Distributed storage to support user interactivity in peer-to-peer video streaming
JP2008181281A (ja) * 2007-01-24 2008-08-07 Hitachi Ltd ピア・ツー・ピア通信を行うネットワークシステム
US20080235331A1 (en) * 2007-01-26 2008-09-25 Sharon Melamed Scheduling synchronized demand for p2p networks
US8560654B2 (en) * 2007-02-02 2013-10-15 Hewlett-Packard Development Company Change management
US8046453B2 (en) * 2007-09-20 2011-10-25 Qurio Holdings, Inc. Illustration supported P2P media content streaming
US8752100B2 (en) * 2008-08-29 2014-06-10 At&T Intellectual Property Ii, Lp Systems and methods for distributing video on demand

Also Published As

Publication number Publication date
EP2202642A1 (en) 2010-06-30
WO2009051099A1 (ja) 2009-04-23
US20100223436A1 (en) 2010-09-02
CN101657800B (zh) 2012-01-11
CN101657800A (zh) 2010-02-24
EP2202642A4 (en) 2014-10-15
KR20100081275A (ko) 2010-07-14
JP2009098817A (ja) 2009-05-07

Similar Documents

Publication Publication Date Title
JP4998196B2 (ja) コンテンツ取得装置、プログラム、コンテンツ取得方法、およびコンテンツ取得システム
JP4998197B2 (ja) コンテンツ取得装置、プログラム、コンテンツ取得方法、およびコンテンツ取得システム
JP4859943B2 (ja) メタデータ注入を用いたメディアファイルの管理
US20080005358A1 (en) Method and apparatus for synchronizing content directory service in universal plug and play network
JP2007115247A (ja) 多重サーバ環境に適したデバイスをクライアントをして同期化を行わせる方法及び装置
JP2004235739A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
CN104717527A (zh) 一种视频传输方法及装置
JP2010103622A (ja) ネットワークシステム、コンテンツ再生方法、およびコンテンツ再生プログラム
JP2009077212A (ja) コンテンツ提供装置
WO2006133737A1 (en) Method for setting up a network of mobile or stationary devices
US20120109347A1 (en) Content Replay System, Control Device and Replay Device
JP2008257620A (ja) コンテンツ推薦装置及びコンテンツ推薦プログラム
JP2019061408A (ja) 情報処理装置及び情報処理プログラム
JP4935734B2 (ja) コンテンツ分散保存システム、ノード装置及びノード処理プログラム並びにノード処理方法
JP2011129059A (ja) 情報処理装置、通信システム、制御方法及び制御プログラム
JP2009232272A (ja) コンテンツ分散保存システム、コンテンツ再生方法、ノード装置、管理装置、ノード処理プログラム、及び管理処理プログラム
JP5071262B2 (ja) 情報配信システム、同情報配信システムにおける端末装置、配信サーバ及び投入サーバ並びにそのプログラム
JP2008067089A (ja) コンテンツ配信システム及び同システムにおける端末装置及び同端末装置のプログラム及び同端末装置による情報管理方法
JP5412924B2 (ja) ノード装置、ノード処理プログラム及びコンテンツデータ削除方法
JP4983183B2 (ja) ノード装置、情報分割保存システム、情報処理プログラム及び情報利用方法
JP2011227887A (ja) 情報通信システム、情報処理装置および情報通信方法ならびにプログラム
JP2010033113A (ja) データ転送装置、データ転送方法およびデータ転送プログラム
JP5293457B2 (ja) 分散保存システム、ノード装置、並びにその処理方法及びプログラム
JP5347876B2 (ja) 情報通信システム、ノード装置、コンテンツ取得方法及びプログラム
JP2015064924A (ja) コンテンツ再生システム、制御装置及び再生装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120203

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

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

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

Free format text: PAYMENT UNTIL: 20150525

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees