JPWO2012011450A1 - コンテンツ配信装置、コンテンツ再生装置、コンテンツ配信装置の制御方法、および、コンテンツ再生装置の制御方法 - Google Patents

コンテンツ配信装置、コンテンツ再生装置、コンテンツ配信装置の制御方法、および、コンテンツ再生装置の制御方法 Download PDF

Info

Publication number
JPWO2012011450A1
JPWO2012011450A1 JP2012525391A JP2012525391A JPWO2012011450A1 JP WO2012011450 A1 JPWO2012011450 A1 JP WO2012011450A1 JP 2012525391 A JP2012525391 A JP 2012525391A JP 2012525391 A JP2012525391 A JP 2012525391A JP WO2012011450 A1 JPWO2012011450 A1 JP WO2012011450A1
Authority
JP
Japan
Prior art keywords
content
request
response
server
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012525391A
Other languages
English (en)
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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Publication of JPWO2012011450A1 publication Critical patent/JPWO2012011450A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2183Cache memory
    • 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/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • H04N21/2225Local VOD servers
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • 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/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/858Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
    • H04N21/8586Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
    • 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/56Provisioning of proxy services

Abstract

本発明のコンテンツ配信装置は、コンテンツの送信を要求する要求メッセージを受信し、要求メッセージの送信主体が、要求したコンテンツを保持して、要求したコンテンツを他の装置に転送する中継装置であれば、当該中継装置に対して要求されたコンテンツを送信し、要求メッセージの送信主体が要求したコンテンツを再生するコンテンツ再生装置であれば、当該コンテンツ再生装置に対して、要求されたコンテンツを過去に送信した中継装置から、当該コンテンツを取得するように指示する。

Description

本発明は、コンテンツを再生するクライアントからの要求に応じて、サーバからクライアントにコンテンツを配信するコンテンツ配信サービスに関するものである。
従来から、通信ネットワークを介した動画などのコンテンツの提供を行う技術が広く用いられている。例えば、コンテンツを再生するクライアントからの要求に応じて、コンテンツを管理するサーバからクライアントにコンテンツを配信するビデオ・オン・デマンド(VOD)サービス等がある。VOD等のコンテンツ配信サービスでは、ストリーミング方式、ダウンロード方式またはプログレッシブダウンロード方式によって、クライアントにコンテンツを提供している。
下記の特許文献1には、プログレッシブダウンロード方式によるコンテンツ配信サービスの一例が記載されている。特許文献1には、クライアントからサーバにHTTPでコンテンツのリクエストを送信し、クライアントがこのリクエストに対する応答として受信したコンテンツを再生するコンテンツ配信サービスシステムが開示されている。
日本国公開特許公報「特開2005−110244号公報(公開日:2005年4月21日)」
ストリーミング方式、ダウンロード方式、及び、プログレッシブダウンロード方式であっても、複数のクライアントに対してそれぞれ異なるコンテンツを配信するコンテンツ配信サービスを行う場合には、サーバとクライアントとの間で大量の連続的なデータ伝送が必要となる。クライアントの数が増え、サーバからのデータ送出に用いられるネットワークおよびサーバに対する負荷が許容量以上に増大すると、データ伝送の遅延等が発生し、コンテンツ配信サービスのサービス品質が低下するという問題がある。
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、サーバからクライアントにコンテンツを配信するコンテンツ配信システムにおいて、サーバからのデータ送出に用いられるネットワークおよびサーバに対する負荷の増大を抑制するコンテンツ配信装置、コンテンツ再生装置、コンテンツ配信システム、コンテンツ配信装置の制御方法、制御プログラム、および、記録媒体を実現することにある。
本発明に係るコンテンツ配信装置は、上記課題を解決するために、リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置であって、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定手段と、上記判定手段が上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信手段と、上記コンテンツ送信手段が送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成手段と、上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示手段と、を備えることを特徴としている。
本発明に係るコンテンツ配信装置の制御方法は、上記課題を解決するために、リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置の制御方法であって、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定ステップと、上記判定ステップにおいて上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信ステップと、上記コンテンツ送信ステップにおいて送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成ステップと、上記判定ステップにおいて上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示ステップと、を含むことを特徴としている。
上記の構成によれば、中継装置からリクエストを受信すると、コンテンツ送信手段がリクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信し、コンテンツ格納先情報生成手段が上記コンテンツ送信手段が送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成する。また、コンテンツ再生装置からリクエストを受信すると、コンテンツ取得先指示手段が上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示する。ここで、上記中継装置および上記コンテンツ再生装置は、取得したコンテンツを保持するため、上記コンテンツ格納先情報は、どの中継装置またはコンテンツ再生装置がどのコンテンツを保持しているかを示す情報である。
すなわち、コンテンツ配信装置は、過去に送信したコンテンツと、当該コンテンツを保持する中継装置またはコンテンツ再生装置とを対応付けて把握しておき、或るコンテンツ再生装置からリクエストを受信すると、リクエストの送信元のコンテンツ再生装置に直接コンテンツを送信せずに、リクエストされたコンテンツを保持している中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、リクエストの送信元のコンテンツ再生装置に対して指示する。リクエストの送信元のコンテンツ再生装置は、指示された中継装置またはコンテンツ再生装置からリクエストしたコンテンツを取得するため、指示された中継装置またはコンテンツ再生装置が当該コンテンツを保持している場合、リクエストの送信元のコンテンツ再生装置と、指示された中継装置またはコンテンツ再生装置との両者だけでコンテンツの送受信が完了する。つまり、コンテンツ配信装置がコンテンツの送信処理を実行せずに、リクエストの送信元のコンテンツ再生装置がコンテンツを取得することができる。
よって、コンテンツ配信装置からのデータ送出に用いられるネットワークおよびコンテンツ配信装置に対する負荷を抑制することができるという効果を奏する。ここで、コンテンツ配信装置、中継装置、コンテンツ再生装置が実行する処理の中で、コンテンツの送受信処理が最も負荷の掛かる処理であり、それらの装置間のネットワークにおいてもコンテンツの送受信が最も負荷が掛かる。従って、例えば、コンテンツ再生装置の個数が増えて、コンテンツ配信装置に対するリクエストが増えたとしても、コンテンツ配信装置からのデータ送出に用いられるネットワークおよびコンテンツ配信装置に対する負荷の増大を抑制することができるため、コンテンツ配信装置の処理能力の拡大や上記ネットワークの容量の増大を図ることなく、多数のコンテンツ再生装置がコンテンツを取得することができる。
以上のように、本発明に係るコンテンツ配信装置は、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定手段と、上記判定手段が上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信手段と、上記コンテンツ送信手段が送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成手段と、上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示手段と、を備えている構成である。
また、本発明に係るコンテンツ配信装置の制御方法は、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定ステップと、上記判定ステップにおいて上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信ステップと、上記コンテンツ送信ステップにおいて送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成ステップと、上記判定ステップにおいて上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示ステップと、を含む。
よって、コンテンツ配信装置からのデータ送出に用いられるネットワークおよびコンテンツ配信装置に対する負荷を抑制することができるという効果を奏する。
本発明のさらに他の目的、特徴、及び優れた点は、以下に示す記載によって十分わかるであろう。また、本発明の利益は、添付図面を参照した次の説明で明白になるであろう。
本発明の第1の実施形態を示すものであり、第1の実施形態に係るコンテンツ配信システムの概要およびコンテンツ配信システムを構成する各装置の要部構成を示す図である。 上記コンテンツ配信システムに含まれる送信ログ記憶部が記憶する送信ログの一例を示す図である。 上記コンテンツ配信システムに含まれるコンテンツ格納先情報記憶部が記憶するコンテンツ格納先情報の一例を示す図である。 上記コンテンツ配信システムを構成するサーバが実行する処理の一例を示すフローチャートである。 上記コンテンツ配信システムを構成するプロキシが実行する処理の一例を示すフローチャートである。 上記コンテンツ配信システムを構成するクライアントが実行する処理の一例を示すフローチャートである。 第1の実施形態の実施例におけるコンテンツ配信システムの動作シーケンスの一例を示す図である。 リクエストまたはレスポンスとして送受信されるHTTPメッセージの一例を示す図であり、図8の(a)、(c)および(d)は図7のリクエストの、図8の(b)、(e)および(f)はレスポンスのHTTPメッセージをそれぞれ示している。 リクエストまたはレスポンスとして送受信されるHTTPメッセージの一例を示す図であり、図9の(a)、(c)および(d)は図7のリクエストの、図9の(b)、(e)および(f)はレスポンスのHTTPメッセージをそれぞれ示している。 リクエストまたはレスポンスとして送受信されるHTTPメッセージの一例を示す図であり、図10の(a)、(c)および(d)は図7のリクエストの、図10の(b)、(e)および(f)はレスポンスのHTTPメッセージをそれぞれ示している。 本発明の第2の実施形態を示すものであり、第2の実施形態に係るコンテンツ配信システムの概要およびコンテンツ配信システムを構成する各装置の要部構成を示す図である。 上記コンテンツ配信システムに含まれる送信ログ記憶部が記憶する送信ログの一例を示す図である。 上記コンテンツ配信システムに含まれるコンテンツ格納先情報記憶部が記憶するコンテンツ格納先情報の一例を示す図である。 上記コンテンツ配信システムを構成するサーバが実行する処理の一例を示すフローチャートである。 上記コンテンツ配信システムを構成するクライアントがコンテンツ再生装置として実行する処理の一例を示すフローチャートである。 上記コンテンツ配信システムを構成するクライアントが中継装置として実行する処理の一例を示すフローチャートである。 第2の実施形態の実施例におけるコンテンツ配信システムの動作シーケンスの一例を示す図である。 リクエストまたはレスポンスとして送受信されるHTTPメッセージの一例を示す図であり、図18の(a)、(c)および(d)は図17のリクエストの、図18の(b)、(e)および(f)はレスポンスのHTTPメッセージをそれぞれ示している。 リクエストまたはレスポンスとして送受信されるHTTPメッセージの一例を示す図であり、図19の(a)、(c)および(d)は図17のリクエストの、図19の(b)、(e)および(f)はレスポンスのHTTPメッセージをそれぞれ示している。 本発明の第3の実施形態を示すものであり、第3の実施形態に係るコンテンツ配信システムの概要およびコンテンツ配信システムを構成する各装置の要部構成を示す図である。 上記コンテンツ配信システムで取り扱うコンテンツのフォーマットを示す図である。 上記コンテンツ配信システムを構成するサーバが実行する処理の一例を示すフローチャートである。 上記コンテンツ配信システムを構成するクライアントがコンテンツ再生装置として実行する処理の一例を示すフローチャートである。 第3の実施形態の実施例におけるコンテンツ配信システムの動作シーケンスの一例を示す図である。 上記コンテンツ配信システムに含まれる送信ログ記憶部が記憶する送信ログの一例を示す図である。 上記コンテンツ配信システムに含まれるコンテンツ格納先情報記憶部が記憶するコンテンツ格納先情報の一例を示す図である。 リクエストまたはレスポンスとして送受信されるHTTPメッセージの一例を示す図であり、図27の(a)、(c)および(d)は図24のリクエストの、図27の(b)、(e)および(f)はレスポンスのHTTPメッセージをそれぞれ示している。 リクエストまたはレスポンスとして送受信されるHTTPメッセージの一例を示す図であり、図28の(a)および(b)は図24のリクエストの、図28の(c)および(d)はレスポンスのHTTPメッセージをそれぞれ示している。 本発明の第4の実施形態を示すものであり、第4の実施形態に係るコンテンツ配信システムの概要およびコンテンツ配信システムを構成する各装置の要部構成を示す図である。 上記コンテンツ配信システムに含まれるコンテンツ格納先情報記憶部が記憶するコンテンツ格納先情報の一例を示す図である。 上記コンテンツ配信システムを構成するサーバが実行する処理の一例を示すフローチャートである。 上記コンテンツ配信システムを構成するクライアントがコンテンツ再生装置として実行する処理の一例を示すフローチャートである。 第4の実施形態の実施例におけるコンテンツ配信システムの動作シーケンスの一例を示す図である。 レスポンスとして送受信されるHTTPメッセージの一例を示す図である。 本発明の第5の実施形態に係るコンテンツ配信システムで取り扱うコンテンツのメタデータであるMPDデータの一例を示す図である。 上記コンテンツ配信システムで取り扱うMPDデータの一例を示す図である。 上記コンテンツ配信システムで取り扱う外部リソースの一例を示す図である。 上記コンテンツ配信システムで取り扱うMPDデータおよび外部リソースの一例を示す図である。 上記コンテンツ配信システムを構成するサーバが実行する処理の一例を示すフローチャートである。 上記コンテンツ配信システムを構成するクライアントがコンテンツ再生装置として実行する処理の一例を示すフローチャートである。 第5の実施形態の実施例におけるコンテンツ配信システムの動作シーケンスの一例を示す図である。
<第1の実施形態>
本発明の第1の実施形態について図1から図10に基づいて説明すると以下の通りである。まず、本実施形態のコンテンツ配信システム1の概要について、図1に基づいて説明する。
〔コンテンツ配信システム1の概要〕
図1は、第1の実施形態に係るコンテンツ配信システム1の概要およびコンテンツ配信システム1を構成する各装置の要部構成を示す図である。図1に示すように、コンテンツ配信システム1は、サーバ(コンテンツ配信装置)2、プロキシ(中継装置、コンテンツ取得装置)3aおよび3b、並びに、クライアント(コンテンツ再生装置、コンテンツ取得装置)4aおよび4bを含む。また、コンテンツ配信システム1は、サーバ2と接続しているコンテンツ格納部5と、プロキシ3a、3bとそれぞれ接続しているキャッシュ格納部6a、6bとを含む。
図1に示すように、サーバ2、プロキシ3aおよび3b、並びに、クライアント4aおよび4bは、それぞれネットワーク7を介して接続されている。なお、ネットワーク7は、上記の各装置が相互に通信可能なものであればよく、有線通信のネットワークであってもよいし、無線通信のネットワークであってもよい。
なお、以下では、プロキシ3aおよび3bを総称してプロキシ3と称し、キャッシュ格納部6aおよび6bを総称してキャッシュ格納部6と称し、クライアント4aおよび4bを総称してクライアント4と称する。
また、図1に示す例では、コンテンツ配信システム1が、プロキシ3を2つ、クライアント4を2つ含んでいるが、これに限るものではない。コンテンツ配信システム1が、プロキシを1つまたは3つ以上含んでいてもよく、クライアント4を3つ以上含んでいてもよい。すなわち、コンテンツ配信システム1は、プロキシ3を少なくとも1つ、また、クライアント4を複数含んでいればよい。
また、本実施形態では、サーバ2が配信するコンテンツは、VODサービス用の映像コンテンツであり、コンテンツのフォーマットは、MP4ファイルフォーマットとする。さらに、コンテンツ配信システム1におけるネットワーク7上の伝送プロトコルは、汎用的なファイル伝送プロトコルとして広く用いられているHTTPを用いるものとする。なお、本実施形態において、サーバ2が配信するコンテンツや、コンテンツ配信システム1におけるネットワーク7上の伝送プロトコルは、これに限るものではない。
〔サーバ2について〕
サーバ2は、プロキシ3およびクライアント4(コンテンツ取得装置)からコンテンツの送信を要求する要求メッセージ(リクエスト)を受信して、受信した要求メッセージに対する応答メッセージ(レスポンス)を送信するコンテンツ配信装置である。上述のように、サーバ2は、動画などのコンテンツを格納するコンテンツ格納部5と接続されており、コンテンツ格納部5に格納されているコンテンツを管理する。なお、コンテンツ格納部5は、サーバ2に内蔵されていてもよい。
なお、サーバ2は、不特定多数の装置に同じコンテンツを同時に配信してもよいし、単一の装置にコンテンツを配信してもよいし、決められた複数の装置に対して、同時に同じコンテンツを配信してもよい。
図1に示すように、サーバ2は、サーバ2の動作を統括して制御するサーバ制御部14と、サーバ2が外部の装置と通信するためのサーバ通信部11と、サーバ2が送信したレスポンスを記憶する送信ログ記憶部12と、コンテンツ格納先情報(詳細は後述)を記憶するコンテンツ格納先情報記憶部13とを備えている。また、サーバ制御部14には、レスポンス実行部(判定手段、コンテンツ送信手段、コンテンツ取得先指示手段、送信記録作成手段)15、中継装置特定部(コンテンツ取得先指示手段、距離算出手段)16、および、コンテンツ格納先情報生成部(コンテンツ格納先情報生成手段)17が含まれている。
レスポンス実行部15は、サーバ通信部11を介して、コンテンツの送信を要求する要求メッセージを受信すると、当該要求メッセージを送信した装置(プロキシ3またはクライアント4)に応じて、受信した要求メッセージに対する応答メッセージを上記装置に送信する。
具体的には、レスポンス実行部15は、コンテンツの送信を要求する要求メッセージを受信するのを待っており、サーバ通信部11を介して、コンテンツの送信を要求する要求メッセージを受信すると、受信した要求メッセージのヘッダを確認して、受信した要求メッセージがプロキシ3を経由して送信されたものであるか否かを判定する。例えば、レスポンス実行部15は、要求メッセージを受信すると、受信した要求メッセージに、「Via」ヘッダが含まれる場合、受信した要求メッセージが、クライアント4からの要求メッセージを受けてプロキシ3が送信したものであると判定し、一方、受信した要求メッセージに、「Via」ヘッダが含まれていない場合、クライアント4から、直接、要求メッセージが送信されたものであると判定してもよい。
レスポンス実行部15は、クライアント4から、直接、コンテンツを要求する要求メッセージを受信すると、中継装置特定部16に対して、クライアント4が要求したコンテンツを保持する(可能性のある)プロキシ3のアドレス情報(例えば、プロキシ3のURI等)を特定するように指示する。そして、レスポンス実行部15は、中継装置特定部16から、クライアント4が要求するコンテンツを保持するプロキシ3のアドレス情報を受信すると、クライアント4からの要求メッセージに対する応答として、中継装置特定部16が特定したアドレス情報から要求したコンテンツを取得するように指示した応答メッセージをクライアント4に送信する。例えば、レスポンス実行部15は、応答メッセージとして「305 USE Proxy」を用いて、「Location」フィールドに、中継装置特定部16が特定したアドレス情報を与えることで、クライアント4に対して、クライアント4が要求したコンテンツを保持する(可能性のある)プロキシ3に対して、コンテンツの要求メッセージを送信するよう指示する。
また、レスポンス実行部15は、プロキシ3から、コンテンツを要求する要求メッセージを受信すると、受信した要求メッセージが「If-Modified-Since」等の条件付要求であるか否かを判定する。受信した要求メッセージが条件付要求でなければ、レスポンス実行部15は、要求されたコンテンツをコンテンツ格納部5から読み出し、プロキシ3からの要求メッセージに対する応答として、読み出したコンテンツをプロキシ3に送信する。
一方、受信した要求メッセージが条件付要求であれば、レスポンス実行部15は、続いて、プロキシ3が保持しているコンテンツのデータが最新のデータであるか否かを判定する。換言すると、レスポンス実行部15は、プロキシ3が保持しているコンテンツのデータと、コンテンツ格納部5に格納されている同じコンテンツのデータとが同一であるか否かを判定する。
プロキシ3が保持しているコンテンツのデータが最新のデータでなければ、レスポンス実行部15は、要求されたコンテンツをコンテンツ格納部5から読み出し、プロキシ3からの要求メッセージに対する応答として、読み出したコンテンツをプロキシ3に送信する。また、プロキシ3が保持しているコンテンツのデータが最新のデータであれば、レスポンス実行部15は、プロキシ3からの要求メッセージに対する応答として、プロキシ3が保持しているコンテンツのデータが最新のデータであることを示す応答メッセージをプロキシ3に送信する。レスポンス実行部15は、例えば、プロキシ3が保持しているコンテンツのデータが最新のデータであることを示す応答メッセージとして「304 NOT modified」をプロキシ3に送信する。
また、レスポンス実行部15は、送信した応答メッセージから送信ログ(レスポンス送信記録)を作成して、作成した送信ログを送信ログ記憶部12に記憶する。レスポンス実行部15が作成する送信ログについて、詳細は後述する。
なお、レスポンス実行部15は、プロキシ3にコンテンツを送信する際に、コンテンツのヘッダに、例えば、「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」を追加してもよい。これにより、コンテンツ送信先のプロキシ3がキャッシュ格納部6に保持したコンテンツを他の要求に従って利活用、つまり送信する場合に、プロキシ3に対して、送信する前にそのコンテンツが最新バージョンかどうかをサーバ2へ必ず確認させることができる。
中継装置特定部16は、レスポンス実行部15の指示に従って、クライアント4が要求したコンテンツを保持している(可能性のある)プロキシ3を特定するものである。
具体的には、中継装置特定部16は、レスポンス実行部15から指示を受けて、コンテンツ格納先情報記憶部13からコンテンツ格納先情報を読み出す。中継装置特定部16は、読み出したコンテンツ格納先情報を参照して、クライアント4が要求するコンテンツに対応付けられているプロキシ3のアドレス情報(例えば、URI等)を、コンテンツの取得先のアドレス情報として特定する。中継装置特定部16は、特定したアドレス情報をレスポンス実行部15に送信する。
また、中継装置特定部16は、コンテンツ格納先情報記憶部13に、クライアント4が要求するコンテンツを含むコンテンツ格納先情報が格納されていない場合、クライアント4が要求するコンテンツごとに、予め定められた(デフォルトの)アドレス情報を当該コンテンツの取得先のアドレス情報として特定してもよい。また、中継装置特定部16は、コンテンツ格納先情報記憶部13に、クライアント4が要求するコンテンツを含むコンテンツ格納先情報が格納されていない場合、サーバ2とネットワーク7を介して接続しているプロキシ3の中からランダムに、当該コンテンツの取得先を特定してもよい。
また、中継装置特定部16は、クライアント4が要求するコンテンツに対応付けられているプロキシ3のアドレス情報を含むコンテンツ格納先情報がコンテンツ格納先情報記憶部13に複数存在する場合、複数のアドレス情報をコンテンツの取得先のアドレス情報として特定し、特定した複数のアドレス情報を含むコンテンツ格納先リストを作成してもよい。中継装置特定部16は、複数のアドレス情報をコンテンツの取得先のアドレス情報として特定した場合、複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成してもよい。
また、中継装置特定部16は、クライアント4が要求するコンテンツに対応付けられているプロキシ3のアドレス情報を含むコンテンツ格納先情報がコンテンツ格納先情報記憶部13に複数存在する場合、直近の(コンテンツ格納先情報に含まれる日時が最も新しい)コンテンツ格納先情報に含まれるプロキシ3のアドレス情報をコンテンツの取得先のアドレス情報として特定してもよい。中継装置特定部16は、複数のアドレス情報をコンテンツの取得先のアドレス情報として特定した場合、例えば、コンテンツ格納先情報に含まれる日時が新しい順番に従って、複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成してもよい。
また、中継装置特定部16は、クライアント4が要求するコンテンツに対応付けられているプロキシ3のアドレス情報を含むコンテンツ格納先情報がコンテンツ格納先情報記憶部13に複数存在する場合、クライアント4との物理的またはネットワーク構造上の距離に基づいて、最も上記距離が短い、コンテンツ格納先情報に含まれるプロキシ3のアドレスをコンテンツの取得先のアドレスとして特定してもよい。中継装置特定部16は、複数のアドレス情報をコンテンツの取得先のアドレス情報として特定した場合、例えば、クライアント4との物理的またはネットワーク構造上の距離に基づいて、上記距離が短い順に、複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成してもよい。つまり、中継装置特定部16は、コンテンツ格納先情報に含まれるアドレスに基づいて、当該アドレスの示すプロキシ3と、リクエストの送信元のクライアント4との物理的またはネットワーク構造上の距離を算出し、上記複数のコンテンツ格納先情報に含まれる上記複数のアドレスを、算出した距離が短い順に並べて、上記複数のアドレスに優先順位を付加して上記コンテンツ格納先リストを作成してもよい。
例えば、要求メッセージを送信したクライアント4のURI、および、サーバ2とネットワーク7を介して接続しているプロキシ3のURIをサーバ2が既知の場合、中継装置特定部16は、要求メッセージを送信したクライアント4のURIから、当該クライアント4のドメイン名を割り出し、割り出したドメイン名のレベル順に、当該クライアント4からの物理的、もしくは、ネットワーク構造的な距離が近い順にプロキシ3を並べて、複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成してもよい。
具体的には、例えばクライアント4のURIが「http://client.co.jp」の場合、中継装置特定部16は、第2レベルドメイン名まで考慮して、第2レベルドメイン名が「co.jp」であるプロキシ3を選出して、選出したプロキシ3を、クライアント4からの物理的、もしくは、ネットワーク構造的な距離が近い順に並べて、コンテンツ格納先リストを作成してもよい。このとき、第2レベルドメイン名が「co.jp」であるプロキシ3がなければ、第1レベルドメイン名が「jp」であるプロキシ3を選出して、選出したプロキシ3を、クライアント4からの物理的、もしくは、ネットワーク構造的な距離が近い順に並べて、コンテンツ格納先リストを作成してもよい。
また、クライアント4のURIが、「co.jp」といった属性型JPドメイン名でなく、「kaisha.chiyoda.tokyo.jp」または「pref.fukuoka.jp」といった都道府県ラベルや市区町村ラベルの付いた地域型JPドメイン名の場合、中継装置特定部16は、クライアント4の都道府県ラベルまたは市区町村ラベルと同じラベル、もしくは当該ラベルと近隣のラベルの付いたプロキシ3を選出して、コンテンツ格納先リストを作成してもよい。
同様に、例えば、要求メッセージを送信したクライアント4のIPアドレス、および、サーバ2とネットワーク7を介して接続しているプロキシ3のIPアドレスをサーバ2が既知の場合、中継装置特定部16は、要求メッセージを送信したクライアント4のIPアドレスの上位ビット側のネットワークアドレス部を参照して、当該クライアント4と物理的、もしくは、ネットワーク構造的な距離の近いプロキシ3を選出してもよい。
他にも、例えば、一般的なルーティング技術やネットワーク監視、アクセス解析等の手法を活用して、予め、サーバ2とクライアント4との間の接続経路やネットワーク状況を調べておき、中継装置特定部16が調査した内容に基づいて、より適切なプロキシを選定してもよい。例えば、クライアント4へコンテンツを取得するプロキシ3を指定する前に、「traceroute」もしくは「tracert」コマンドを用いて、サーバ2とクライアント4との接続経路を調査し、その結果に基づき、中継装置特定部16がクライアント4により近いプロキシ3を選出してもよい。
さらに、中継装置特定部16は、プロキシ3の負荷状況も考慮して、クライアント4の要求するコンテンツを保持する(可能性のある)プロキシ3であって、負荷の少ないプロキシ3を特定しても良い。より詳細には、中継装置特定部16は、送信ログ記憶部12に格納されている送信ログも参照して、コンテンツの取得先のアドレス情報を特定してもよい。
例えば、中継装置特定部16は、送信ログ記憶部12に格納されている送信ログを参照して、各プロキシ3が一定時間以内にコンテンツの送受信処理をしたか否かを判断し、一定時間以内にコンテンツの送受信処理をしていないプロキシ3であって、読み出したコンテンツ格納先情報において、クライアント4が要求するコンテンツに対応付けられているプロキシ3のアドレス情報を、コンテンツの取得先のアドレス情報として特定してもよい。なお、対応付けられているコンテンツに応じて、上記一定時間を設定してもよい。
また、クライアント4が要求するコンテンツに対応付けられているプロキシ3のアドレス情報を含むコンテンツ格納先情報がコンテンツ格納先情報記憶部13に複数存在する場合、中継装置特定部16は、一定時間以上コンテンツの送受信処理をしていないプロキシ3であって、直近のコンテンツ格納先情報に含まれるプロキシ3のアドレス情報をコンテンツの取得先のアドレス情報として特定してもよい。
さらに、中継装置特定部16は、プロキシ3からサーバ2へのアクセス数も考慮して、クライアント4の要求するコンテンツを保持する(可能性のある)プロキシ3を特定しても良い。例えば、サーバ2に対するアクセス数の多いプロキシ3ほど、多くのコンテンツをキャッシュしていると考えられるので、サーバ2に対するアクセス数が予め定めた下限値以上のプロキシ3を特定しても良い。なお、中継装置特定部16は、サーバ2に対するアクセス数を、送信ログ記憶部12に格納されている送信ログを参照して特定してもよい。そして、コンテンツ格納先情報において、クライアント4が要求するコンテンツに対応付けられているプロキシ3のうち、サーバ2に対するアクセス数が予め定めた下限値以上のプロキシ3のアドレス情報を、コンテンツの取得先のアドレス情報として特定してもよい。
また、クライアント4が要求するコンテンツに、複数のアドレス情報が対応付けられている場合、中継装置特定部16は、サーバ2に対するアクセス数が最も大きいプロキシ3のアドレス情報をコンテンツの取得先のアドレス情報として特定してもよい。
さらに、中継装置特定部16は、特定のプロキシ3に対するアクセスを集中させないようにするため、サーバ2に対するアクセス数が予め定めた上限値以下のプロキシ3を特定しても良い。
コンテンツ格納先情報生成部17は、送信ログ記憶部12に格納されている送信ログから、コンテンツを保持する(可能性のある)プロキシ3のアドレス情報を特定するためのコンテンツ格納先情報を生成して、コンテンツ格納先情報記憶部13に格納するものである。
具体的には、コンテンツ格納先情報生成部17は、サーバ2がプロキシ3にコンテンツを送信したことを示す送信ログを参照して、サーバ2が送信したコンテンツと、コンテンツの送信先のプロキシ3のアドレス情報と、サーバ2が当該コンテンツを送信した日時とを対応付けて、コンテンツ格納先情報を生成する。また、コンテンツ格納先情報生成部17は、プロキシ3の保持しているコンテンツが最新バージョンであることを応答メッセージとしてサーバ2が送信したことを示す送信ログを参照して、サーバ2が最新バージョンであることを確認したコンテンツと、当該コンテンツを保持しているプロキシ3のアドレス情報と、サーバ2が当該応答メッセージを送信した日時とを対応付けて、コンテンツ格納先情報を生成する。
なお、コンテンツ格納先情報生成部17は、所定の送信ログが送信ログ記憶部12に追加される度に、コンテンツ格納先情報を生成してもよいし、所定期間ごとに、送信ログを読み出して、コンテンツ格納先情報を生成してもよい。
送信ログ記憶部12は、サーバ2がプロキシ3またはクライアント4に送信した応答メッセージの送信日時と、当該応答メッセージの送信先の装置のアドレス情報と、当該応答メッセージの内容と、当該応答メッセージに対応する要求メッセージで要求されたコンテンツとが対応付けられた送信ログを記憶するものである。送信ログ記憶部12が記憶する送信ログは、例えば、図2に示すデータであってよい。図2は、送信ログ記憶部12が記憶する送信ログの一例を示す図である。
図2に示すように、送信ログは、応答メッセージの送信日時である「Date」と、当該応答メッセージの送信先の装置のアドレス情報である「送信先アドレス」と、当該応答メッセージの内容を示す「送信内容」と、当該応答メッセージに対応する要求メッセージで要求されたコンテンツを示す「コンテンツID」とが対応付けられている。
「送信内容」として、応答メッセージの内容である「200 OK」、「305 Use Proxy」または「304 Not Modified」が格納されている。ここで、「送信内容」が「305 Use Proxy」の場合、図2に示すように、「305 Use Proxy (proxy1)」として、()内に指定するプロキシ3を示す情報が含まれているものとする。
「200 OK」は、コンテンツのリクエストに対してコンテンツを送信するときに送信する応答メッセージに含まれるものであるから、「200 OK」の応答メッセージを送信した送信ログを、コンテンツ送信ログと呼ぶ。また、「305 Use Proxy」は、指定したプロキシからコンテンツを取得させる応答メッセージに含まれるものであるから、「305 Use Proxy」の応答メッセージを送信した送信ログを、取得指示ログと呼ぶ。そして、「304 Not Modified」は、コンテンツが最新バージョンであることを通知する応答メッセージに含まれるものであるから、「304 Not Modified」の応答メッセージを送信した送信ログを、バージョン通知ログと呼ぶ。
レスポンス実行部15が送信した応答メッセージから送信ログを作成することにより、上述のように、コンテンツ格納先情報生成部17は、送信ログから、コンテンツを保持する(可能性のある)プロキシ3のアドレス情報を特定するためのコンテンツ格納先情報を作成することができる。また、中継装置特定部16は、送信ログを参照して、一定時間以内にコンテンツの送受信処理をしていないプロキシ3を特定することができる。
例えば、中継装置特定部16は、送信ログ記憶部12に格納されている送信ログを参照して、一定時間以内の送信ログにおいて、送信内容が「200 OK」または「304 Not Modified」に対応付けられているプロキシ3を、一定時間以内にコンテンツの送受信処理をしたプロキシ3として判定する。
コンテンツ格納先情報記憶部13は、コンテンツと、当該コンテンツを保持する(可能性のある)プロキシ3のアドレス情報と、当該プロキシ3が当該コンテンツを取得した日時とが対応付けられたコンテンツ格納先情報を記憶するものである。コンテンツ格納先情報記憶部13が記憶するコンテンツ格納先情報は、例えば、図3に示すデータであってよい。図3は、コンテンツ格納先情報記憶部13が記憶するコンテンツ格納先情報の一例を示す図である。コンテンツ格納先情報は、換言すると、コンテンツと、当該コンテンツの格納先を示すアドレス情報とが対応付けられた情報である。
図3に示すように、コンテンツ格納先情報は、プロキシ3がコンテンツを取得した日時である「Date」と、当該コンテンツを示す「コンテンツID」(コンテンツ識別情報)と、当該コンテンツを保持するプロキシ3のアドレス情報である「格納先アドレス」とが対応付けられている。
コンテンツ格納先情報生成部17が送信ログからコンテンツ格納先情報を生成することにより、上述のように、中継装置特定部16は、コンテンツ格納先情報を参照して、コンテンツを保持する(可能性のある)プロキシ3のアドレス情報を特定することができる。
なお、送信ログ記憶部12およびコンテンツ格納先情報記憶部13は、コンテンツ格納部5と同様に、サーバ2が内蔵する代わりに、サーバ2と接続されている外部の記憶装置であってもよい。
〔プロキシ3について〕
プロキシ3は、リクエストされたコンテンツを送信する装置であると共に、コンテンツをリクエストして取得する装置である。上述のように、プロキシ3は、サーバ2から受信したコンテンツ等を格納するキャッシュ格納部6と接続されており、リクエストされたコンテンツがキャッシュ格納部6にあれば、キャッシュ格納部6から読み出してクライアント4に送信し、キャッシュ格納部6になければサーバ2にリクエストする。なお、キャッシュ格納部6は、プロキシ3に内蔵されていてもよい。
図1に示すように、プロキシ3は、プロキシ3の動作を統括して制御するプロキシ制御部22と、プロキシ3が外部の装置と通信するためのプロキシ通信部21とを備えている。また、プロキシ制御部22には、レスポンス/リクエスト実行部23が含まれている。
レスポンス/リクエスト実行部23は、クライアント4から受信した、コンテンツを要求する要求メッセージで指定されたコンテンツをクライアント4に送信するものである。
具体的には、レスポンス/リクエスト実行部23は、クライアント4からコンテンツの送信を要求する要求メッセージを待っており、プロキシ通信部21を介して、クライアント4から要求メッセージを受信すると、要求されたコンテンツがキャッシュ格納部6に格納されているか否かを確認する。
要求されたコンテンツがキャッシュ格納部6に格納されていない場合、レスポンス/リクエスト実行部23は、クライアント4から送信された要求メッセージの「Host」フィールドを確認して、「Host」フィールドに記述されているURIの示すサーバ2に対して、クライアント4が要求するコンテンツの要求メッセージを送信する。そして、レスポンス/リクエスト実行部23は、サーバ2からコンテンツを取得し、取得したコンテンツをキャッシュ格納部6に格納する。レスポンス/リクエスト実行部23は、取得したコンテンツをキャッシュ格納部6に格納した後、クライアント4へ要求されたコンテンツを送信する。
また、要求されたコンテンツがキャッシュ格納部6に格納されている場合、レスポンス/リクエスト実行部23は、キャッシュ格納部6に保持しているコンテンツのデータが最新のデータであるか否かをサーバ2に確認するために、要求メッセージに当該コンテンツをプロキシ3が取得した時間情報を記述した「If-Modified-Since」を付加して条件付要求の要求メッセージを作成して、作成した条件付要求の要求メッセージをサーバ2に送信する。
条件付要求の要求メッセージの応答として、サーバ2から「304 NOT Modified」の応答メッセージを受信した場合、レスポンス/リクエスト実行部23は、キャッシュ格納部6に格納されているコンテンツは最新のデータであると判断して、キャッシュ格納部6から、保持しているコンテンツを読み出し、読み出したコンテンツをクライアント4に送信する。
一方、キャッシュ格納部6に格納されているコンテンツが最新のデータでなければ、条件付要求の要求メッセージの応答として、サーバ2から最新バージョンのコンテンツが送信され、レスポンス/リクエスト実行部23は、サーバ2から送信されたコンテンツを取得する。レスポンス/リクエスト実行部23は、取得したコンテンツをキャッシュ格納部6に格納した後、クライアント4へ要求されたコンテンツを送信する。
なお、コンテンツをクライアント4へ送信する際には、送信するコンテンツのヘッダに、サーバ2が付与した、例えば「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」の記述をそのまま保持して、コンテンツを送信してもよい。これにより、コンテンツ送信先のクライアント4が取得したコンテンツを他の要求に従って送信する場合に、クライアント4に対して、送信する前にそのコンテンツが最新バージョンかどうかをサーバ2へ必ず確認させることができる。
すなわち、本実施形態では、プロキシ3は、コンテンツのリクエストを送信してコンテンツを取得する装置であって、リクエストしたコンテンツを保持して、リクエストしたコンテンツを転送先である他の装置(例えば、クライアント4)に転送する中継装置である。
〔クライアント4について〕
クライアント4は、コンテンツをリクエストして取得し、取得したコンテンツを再生する装置である。同図には示していないが、クライアント4は、ユーザ操作を受け付ける入力部を備えており、この入力部で受け付けた入力操作に基づき、コンテンツをリクエストする。
図示のように、クライアント4は、クライアント4の動作を統括して制御するクライアント制御部32と、クライアント4が外部の装置と通信するためのクライアント通信部31を備えている。また、クライアント制御部32には、リクエスト実行部33およびコンテンツ再生部34が含まれている。
リクエスト実行部33は、コンテンツの送信を要求する要求メッセージを生成し、クライアント通信部31を介してサーバ2に送信し、これに対する応答として応答メッセージを受信する。本発明では、上述のように、リクエスト実行部33は、サーバ2から応答メッセージとして、プロキシを特定する情報と、当該プロキシにコンテンツを要求する要求メッセージを送信する指示を受信する。リクエスト実行部33は、サーバ2から上記応答メッセージを受信すると、サーバ2の指示に従って、指定されたプロキシ3に対して、コンテンツの送信を要求する要求メッセージを送信する。そして、リクエスト実行部33は、サーバ2に指定されたプロキシ3からコンテンツを取得する。
コンテンツ再生部34は、リクエスト実行部33が取得したコンテンツを再生する。例えば、取得したコンテンツが動画像のコンテンツである場合には、コンテンツ再生部34は、取得したコンテンツをデコードし、これにより得られた映像及び音声を外部の表示装置(図示せず)に出力させる。
すなわち、本実施形態では、クライアント4は、コンテンツのリクエストを送信してコンテンツを取得する装置であって、リクエストしたコンテンツを取得して再生するコンテンツ再生装置である。
〔各装置が実行する処理について〕
次に、サーバ2、プロキシ3およびクライアント4の各装置が実行する処理について、図4から6に基づいて説明する。まずは、サーバ2が実行する処理について図4に基づいて説明する。
〔サーバ2が実行する処理について〕
図4は、サーバ2が実行する処理の一例を示すフローチャートである。レスポンス実行部15は、コンテンツの送信を要求する要求メッセージを受信するのを待っており、サーバ通信部11を介して、コンテンツの送信を要求する要求メッセージを受信すると(S401)、受信した要求メッセージのヘッダを確認して、受信した要求メッセージがプロキシ3を経由して送信されたものであるか否かを判定する(S402)。
受信した要求メッセージを送信した主体がクライアント4である場合、(S402でNO)、中継装置特定部16に対して、クライアント4がコンテンツを取得する、その取得先のプロキシ3を特定するように指示する。中継装置特定部16は、レスポンス実行部15から指示を受けて、コンテンツ格納先情報記憶部13からコンテンツ格納先情報を読み出す(S403)。中継装置特定部16は、読み出したコンテンツ格納先情報を参照して、クライアント4が要求するコンテンツに対応付けられているプロキシ3のURIを、コンテンツの取得先のアドレス情報として特定する(S404)。中継装置特定部16は、特定したアドレス情報をレスポンス実行部15に送信する。レスポンス実行部15は、中継装置特定部16が特定したアドレス情報の示すアドレスに存在するプロキシ3から、要求したコンテンツを取得するように指示した応答メッセージを、クライアント4に送信する(S405)。レスポンス実行部15は、クライアント4に送信した応答メッセージから送信ログを作成し、作成した送信ログを送信ログ記憶部12に追加する(S410)。
一方、受信した要求メッセージを送信した主体がプロキシ3である場合(S402でYES)、レスポンス実行部15は、続いて、受信した要求メッセージが「If-Modified-Since」等の条件付要求であるか否かを判定する(S406)。受信した要求メッセージが条件付要求でなければ(S406でNO)、レスポンス実行部15は、プロキシ3から要求されたコンテンツをコンテンツ格納部5から読み出し、プロキシ3からの要求メッセージに対する応答として、読み出したコンテンツをプロキシ3に送信する(S407)。そして、レスポンス実行部15は、プロキシ3に送信した応答メッセージから送信ログを作成し、作成した送信ログを送信ログ記憶部12に追加する(S410)。
受信した要求メッセージが条件付要求であれば(S406でYES)、レスポンス実行部15は、さらに、プロキシ3が保持しているコンテンツのデータが最新のデータであるか否かを判定する(S408)。プロキシ3が保持しているコンテンツのデータが最新のデータでなければ(S408でNO)、レスポンス実行部15は、プロキシ3から要求されたコンテンツをコンテンツ格納部5から読み出し、プロキシ3からの要求メッセージに対する応答として、読み出したコンテンツをプロキシ3に送信する(S407)。一方、プロキシ3が保持しているコンテンツのデータが最新のデータであれば(S408でYES)、レスポンス実行部15は、プロキシ3からの要求メッセージに対する応答として、プロキシ3が保持しているコンテンツのデータが最新のデータであることを示す応答メッセージをプロキシ3に送信する(S409)。そして、レスポンス実行部15は、プロキシ3に送信した応答メッセージを送信ログ記憶部12に追加する(S410)。
なお、S407において、レスポンス実行部15は、プロキシ3にコンテンツを送信する際に、コンテンツのヘッダに、例えば、「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」を追加する。これにより、コンテンツ送信先のプロキシ3がキャッシュ格納部6に保持したコンテンツを他の要求に従って送信する場合に、プロキシ3に対して、送信する前にそのコンテンツが最新バージョンかどうかをサーバへ必ず確認させることができる。
〔プロキシ3が実行する処理について〕
次に、プロキシ3が実行する処理について図5に基づいて説明する。図5は、プロキシ3が実行する処理の一例を示すフローチャートである。
図5に示すように、レスポンス/リクエスト実行部23は、クライアント4からコンテンツの送信を要求する要求メッセージを待っており、プロキシ通信部21を介して、クライアント4から要求メッセージを受信すると(S421)、要求されたコンテンツがキャッシュ格納部6に格納されているか否かを確認する(S422)。
要求されたコンテンツがキャッシュ格納部6に格納されていない場合(S422でNO)、レスポンス/リクエスト実行部23は、クライアント4から送信された要求メッセージの「Host」フィールドを確認して、「Host」フィールドに記述されているURIの示すサーバ2に対して、クライアント4が要求するコンテンツの要求メッセージを送信する(S423)。そして、レスポンス/リクエスト実行部23は、サーバ2からコンテンツを取得し(S424)、取得したコンテンツをキャッシュ格納部6に格納する(S425)。レスポンス/リクエスト実行部23は、取得したコンテンツをキャッシュ格納部6に格納した後、クライアント4へ要求されたコンテンツを送信する(S426)。
要求されたコンテンツがキャッシュ格納部6に格納されている場合(S422でYES)、レスポンス/リクエスト実行部23は、要求メッセージに当該コンテンツを取得した時間情報を記述した「If-Modified-Since」を付加して条件付要求の要求メッセージを作成して、作成した条件付要求の要求メッセージをサーバ2に送信する(S427)。
条件付要求の要求メッセージの応答として、サーバ2から「304 NOT Modified」の応答メッセージを受信した場合(S428でYES)、レスポンス/リクエスト実行部23は、キャッシュ格納部6から、保持しているコンテンツを読み出し、読み出したコンテンツをクライアント4に送信する(S426)。
一方、キャッシュ格納部6に格納されているコンテンツが最新のデータでなければ、条件付要求の要求メッセージの応答として、サーバ2から最新バージョンのコンテンツが送信され、レスポンス/リクエスト実行部23は、サーバ2から送信された最新バージョンのコンテンツを取得する(S424)。レスポンス/リクエスト実行部23は、取得したコンテンツをキャッシュ格納部6に格納した後(S425)、クライアント4へ要求されたコンテンツを送信する(S426)。
なお、S426において、コンテンツをクライアント4へ送信する際には、送信するコンテンツのヘッダに、サーバ2が付与した、例えば「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」の記述をそのまま保持して、コンテンツを送信する。これにより、コンテンツ送信先のクライアント4が取得したコンテンツを他の要求に従って送信する場合に、送信する前に、クライアント4に対して、そのコンテンツが最新バージョンかどうかを必ずサーバ2へ確認しなければならない状態を保つことができる。
〔クライアント4が実行する処理について〕
次に、クライアント4が実行する処理について図6に基づいて説明する。図6は、クライアント4が実行する処理の一例を示すフローチャートである。
図6に示すように、リクエスト実行部33は、サーバ2にコンテンツの送信を要求する要求メッセージを送信する(S441)。リクエスト実行部33は、要求メッセージに対する応答として、指定されたプロキシ3からコンテンツを取得するように指示した応答メッセージを受信する(S442)。リクエスト実行部33は、サーバ2の指示に従って、サーバ2から指定されたプロキシ3に対して、要求メッセージを送信する(S443)。そして、リクエスト実行部33は、要求メッセージを送信したプロキシ3から、その応答として、コンテンツを取得する(S444)。
〔実施例1〕
以下、図7に実施例1を示し、本実施形態についてさらに詳しく説明する。実施例1では、クライアント4に対して、コンテンツを取得させるプロキシ3を指示するコンテンツ配信システム1の動作例を示す。図7は、実施例1におけるコンテンツ配信システム1の動作シーケンスの一例を示す図である。
なお、実施例1では、前提として、コンテンツ格納部5にコンテンツ1およびコンテンツ2が格納されており、キャッシュ格納部6aおよび6bには、何もキャッシュされておらず、サーバ2は、デフォルトとして、コンテンツ1の取得先をプロキシ3aとし、コンテンツ2の取得先をプロキシ3bとして設定しているものとする。また、実施例1では、図7に示す処理の開始時に、送信ログ記憶部12およびコンテンツ格納先情報記憶部13には、それぞれ、送信ログおよびコンテンツ格納先情報が記憶されていないとする。そして、レスポンス実行部15が図2に示す送信ログを、応答メッセージを送信するごとに作成し、コンテンツ格納先情報生成部17が図3に示すコンテンツ格納先情報を、コンテンツ送信ログまたはバージョン通知ログ(「送信内容」が「200 OK」または「304 Not Modified」である送信ログ)が送信ログ記憶部12に追加される度に、作成するものとする。
また、クライアント4が要求メッセージを送信して、当該要求メッセージに対応する応答メッセージを受信するまでを1つのセッションとする。
図7に示すように、まず、セッション110において、クライアント4aがコンテンツ1の送信を要求する要求メッセージをサーバ2に送信する(リクエスト111)。リクエスト111を受信したサーバ2では、レスポンス実行部15は、中継装置特定部16に取得先のプロキシ3を特定するように指示する。中継装置特定部16は、指示を受けて、コンテンツ格納先情報記憶部13のコンテンツ格納先情報を確認する(処理112)。ここでは、コンテンツ格納先情報記憶部13には、コンテンツ1の取得先を示すコンテンツ格納先情報が無いため、中継装置特定部16は、コンテンツ1の取得先として、デフォルトで設定されているプロキシ3aをコンテンツ1の取得先として特定する。レスポンス実行部15は、中継装置特定部16が特定したアドレス情報の示すプロキシ3から、要求したコンテンツを取得するように指示した応答メッセージを、クライアント4aに送信する(レスポンス113)。そして、レスポンス実行部15は、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部12に追加する(処理114)。
次に、セッション120において、レスポンス113を受信したクライアント4aは、サーバ2の指示に従って、プロキシ3aに対して、コンテンツ1の送信を要求する要求メッセージを送信する(リクエスト121)。リクエスト121を受信したプロキシ3aは、コンテンツ1がキャッシュ格納部6aに格納されているかどうかを確認する(処理122)。ここでは、キャッシュ格納部6aにコンテンツ1が格納されていないため、リクエスト121に基づく要求メッセージをサーバ2に送信する(リクエスト123)。リクエスト123を受信したサーバ2では、リクエスト123がプロキシ3aから送信されているため、レスポンス実行部15がプロキシ3aにコンテンツ1を送信する(レスポンス124)。レスポンス124を受信したプロキシ3aは、取得したコンテンツ1をキャッシュ格納部6aに格納してキャッシュ登録する(処理125)。キャッシュ登録した後、プロキシ3aは、リクエスト121に対する応答として、クライアント4aにコンテンツ1を送信する(レスポンス126)。なお、レスポンス実行部15は、レスポンス124を送信した後、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部12に追加する(処理127)。また、コンテンツ格納先情報生成部17は、コンテンツ1とプロキシ3aのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部13に格納する(処理128)。
次に、セッション130およびセッション140において、クライアント4bがコンテンツ2を取得する。セッション130およびセッション140における、クライアント4b、プロキシ3bおよびサーバ2の動作は、セッション110およびセッション120における、クライアント4a、プロキシ3aおよびサーバ2の動作と扱うデータが異なるだけで同様のため、ここでは説明を省略する。
セッション140終了後には、プロキシ3aのキャッシュ格納部6aにコンテンツ1がキャッシュ登録され、プロキシ3bのキャッシュ格納部6bにコンテンツ2がキャッシュ登録された状態である。すなわち、コンテンツ格納先情報記憶部13にコンテンツ1とプロキシ3aとが対応付けられたコンテンツ格納先情報と、コンテンツ2とプロキシ3bとが対応付けられたコンテンツ格納先情報とが格納されている状態である。
この状態で次に、セッション150において、クライアント4aがコンテンツ2の送信を要求する要求メッセージをサーバ2に送信する(リクエスト151)。リクエスト151を受信したサーバ2では、レスポンス実行部15は、中継装置特定部16に取得先のプロキシ3を特定するように指示する。中継装置特定部16は、指示を受けて、コンテンツ格納先情報記憶部13のコンテンツ格納先情報を確認する(処理152)。ここでは、コンテンツ格納先情報記憶部13には、コンテンツ2とプロキシ3bとが対応付けられているコンテンツ格納先情報があるため、中継装置特定部16は、コンテンツ2の取得先としてプロキシ3bを特定する。レスポンス実行部15は、中継装置特定部16が特定したプロキシ3bから、要求したコンテンツを取得するように指示した応答メッセージを、クライアント4aに送信する(レスポンス153)。そして、レスポンス実行部15は、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部12に追加する(処理154)。
次に、セッション160において、レスポンス153を受信したクライアント4aは、サーバ2の指示に従って、プロキシ3bに対して、コンテンツ2の送信を要求する要求メッセージを送信する(リクエスト161)。リクエスト161を受信したプロキシ3bは、コンテンツ2がキャッシュ格納部6bに格納されているかどうかを確認する(処理162)。キャッシュ格納部6bにはコンテンツ2が既に格納されているため、プロキシ3bは、キャッシュ格納部6bに格納されているコンテンツ2が最新のデータであるかどうかをサーバ2に確認するため、リクエスト121に基づく要求メッセージに「If-Modified-Since」を付加して条件付要求としてサーバ2に送信する(リクエスト163)。リクエスト163を受信したサーバ2では、リクエスト163がプロキシ3bを経由しており、条件付要求の要求メッセージであるため、レスポンス実行部15が、プロキシ3bが保持しているコンテンツ2が最新のデータであるかどうかを確認する(処理164)。レスポンス実行部15は、プロキシ3bが保持しているコンテンツ2が最新のデータであると判定して、プロキシ3bに「304 NOT Modified」の応答メッセージを送信する(レスポンス165)。レスポンス165を受信したプロキシ3bは、キャッシュ格納部6bに格納しているコンテンツ2を読み出し、リクエスト161に対する応答として、クライアント4aに読み出したコンテンツ2を送信する(レスポンス166)。なお、レスポンス実行部15は、レスポンス165を送信した後、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部12に追加する(処理167)。また、コンテンツ格納先情報生成部17は、コンテンツ2とプロキシ3bのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部13に格納する(処理168)。
上述のように、本実施形態では、クライアント4は、サーバ2に対してコンテンツを要求すると、サーバ2は、過去に同じコンテンツをプロキシ3に送信していた場合、当該プロキシ3が当該コンテンツをキャッシュしていると判断し、クライアント4に対して、要求したコンテンツを保持していると判断したプロキシ3から、当該コンテンツを取得するように指示する。
本実施形態では、MP4ファイルフォーマットの動画コンテンツを用いたVODサービスを想定しているため、サーバ2、プロキシ3、ネットワーク7への負荷という観点では、「コンテンツの送受信」が最も負荷のかかる動作となる。
従って、実施例1におけるセッション110〜120も、セッション130〜140も、リクエストとレスポンスの往復は、従来方法に比べて増えているが、「コンテンツの送受信」に関しては、プロキシ3を経由するだけでほとんど変わらない。しかしながら、セッション110〜120およびセッション130〜140を実行したことによって、セッション160における「コンテンツ送受信」がプロキシ3bとクライアント4aとの間だけで済むようになるため、サーバ2の処理負荷およびサーバ2−プロキシ3間のネットワークの伝送情報量(ネットワーク負荷)が特に小さくなっている。
ここでは、説明の便宜のため、プロキシ3を2台、クライアント4を2台、サーバ2が管理するコンテンツを2種類という最も簡単な例を示したが、実際のVOD等のコンテンツ配信サービスの場合は、はるかに大規模なシステムで多種多量のコンテンツ送受信が行われるため、ここに示したサーバ2とサーバ2−プロキシ3間のネットワークへの負荷軽減効果は、非常に高くなる。言い換えれば、従来方法では、クライアント4の台数が多くなると、特にサーバ2の処理負荷およびサーバ2−クライアント4間のネットワークへの負荷がクライアント4の台数に応じて非常に大きくなっていた。しかしながら、本発明を用いることで、サーバ2はプロキシ3の処理能力やキャッシュ機能を効率よく活用することができるようになり、結果的に、サーバ2およびサーバ2−プロキシ3間のネットワークに掛かる負荷をプロキシ3またはプロキシ3−クライアント4間のネットワークへ分散させることが可能となる。
〔実施例1におけるHTTPメッセージ〕
続いて、図7の動作シーケンス図で使用されるリクエストおよびレスポンスの詳細を図8〜図10に基づいて説明する。図8〜図10は、リクエストまたはレスポンスとして送受信されるHTTPメッセージの一例を示す図であり、図8は、セッション110およびセッション120におけるHTTPメッセージの一例を示す図であり、図9は、セッション130およびセッション140におけるHTTPメッセージの一例を示す図であり、図10は、セッション150およびセッション160におけるHTTPメッセージの一例を示す図である。
図8の(a)は、図7に示すリクエスト111の、図8の(b)はレスポンス113の、図8の(c)はリクエスト121の、図8の(d)はリクエスト123の、図8の(e)はレスポンス124の、図8の(f)はレスポンス126のHTTPメッセージをそれぞれ示している。
また、図9の(a)は、図7に示すリクエスト131の、図9の(b)はレスポンス133の、図9の(c)はリクエスト141の、図9の(d)はリクエスト143の、図9の(e)はレスポンス144の、図9の(f)はレスポンス146のHTTPメッセージをそれぞれ示している。
また、図10の(a)は、図7に示すリクエスト151の、図10の(b)はレスポンス153の、図10の(c)はリクエスト161の、図10の(d)はリクエスト163の、図10の(e)はレスポンス165の、図10の(f)はレスポンス166のHTTPメッセージをそれぞれ示している。
〔セッション110およびセッション120におけるHTTPメッセージ〕
まず、セッション110およびセッション120におけるHTTPメッセージを図8に基づいて説明する。なお、図9の(a)〜(f)は、図8の(a)〜(f)にそれぞれ対応しており、図9では、図8のコンテンツ1がコンテンツ2に、プロキシ3aがプロキシ3bに、クライアント4aがクライアント4bに変更しているだけであるから、図9に基づく、セッション130およびセッション140におけるHTTPメッセージの説明は省略する。なお、ここでは、HTTPメッセージに含まれる要素のうち、本発明に特有の要素を中心に説明し、公知の要素については適宜説明を省略する。
(コンテンツを要求するリクエスト111)
図8の(a)に示すように、クライアント4aからサーバ2に対してコンテンツ1を要求するリクエスト111に対応するHTTPメッセージには、リクエストラインと付加情報を通知するヘッダが含まれる。
図8の(a)のリクエストラインには、コンテンツを取得するメソッドを示す「GET」の後に取得するコンテンツを特定する情報が記述されている。具体的には、「/コンテンツ名」の形式で記述されている。つまり、図8の(a)のHTTPメッセージは、「content 1」が示すコンテンツ1の送信を要求するリクエストということになる。
また、図8の(a)のヘッダには、リクエスト先のサーバを特定する「Host」ヘッダが含まれており、この「Host」ヘッダに、サーバ2のアドレスを示す「example.com」が記述されている。
また、図8の(a)のヘッダには、クライアント4aが処理可能なデータ形式を示す「Accept」ヘッダが含まれており、この「Accept」ヘッダに、MP4フォーマットの動画データを示す情報「video/mp4」が記述されている。これにより、このリクエストを送信した装置であるクライアント4aは、MP4フォーマットの動画データを受信可能であることをリクエストの送信先の装置であるサーバ2に伝えることができる。
(コンテンツの取得先を指示するレスポンス113)
図8の(b)に示すように、サーバ2からクライアント4aに対してコンテンツ1の取得先を指示するレスポンス113に対応するHTTPメッセージには、レスポンスラインとヘッダが含まれる。
図8の(b)のレスポンスラインには、「Location」ヘッダで指定したプロキシ3を使用するように指示する情報が記述されている。具体的には、「ステータス番号 メッセージ」の形式で記述されている。つまり、図8の(b)のHTTPメッセージは、下記の「Location」ヘッダで指定したプロキシ3を使用してコンテンツ1を要求するように指示したレスポンスということになる。
また、図8の(b)のヘッダには、使用するプロキシを特定する「Location」ヘッダが含まれており、この「Location」ヘッダに、使用するプロキシ3のアドレスを示すアドレス情報「http://example-proxy1.com」が記述されている。これにより、このレスポンスを受信した装置であるクライアント4aは、コンテンツ1を要求する相手先であるプロキシ3のアドレス情報を知ることができる。
(指定されたプロキシ3にコンテンツを要求するリクエスト121)
図8の(c)に示すように、クライアント4aからプロキシ3aに対してコンテンツ1を要求するリクエスト121に対応するHTTPメッセージには、リクエストラインとヘッダが含まれる。
図8の(c)のリクエストラインには、コンテンツを取得するメソッドを示す「GET」の後にリクエスト対象となるコンテンツのURIが記述されている。具体的には、「http://コンテンツを管理するサーバ名/コンテンツ名」が記述されている。つまり、図8の(c)のHTTPメッセージは、サーバ2の管理するコンテンツ1の送信を要求するリクエストということになる。
また、図8の(c)のヘッダには、リクエスト111と同様に、「Host」ヘッダおよび「Accept」ヘッダが含まれている。
(プロキシ3aからサーバ2にコンテンツを要求するリクエスト123)
図8の(d)に示すように、プロキシ3aからサーバ2に対してコンテンツ1を要求するリクエスト123に対応するHTTPメッセージには、リクエストラインとヘッダが含まれる。
図8の(d)のリクエストラインには、コンテンツを取得するメソッドを示す「GET」の後にリクエスト対象となるコンテンツのURIが記述されている。具体的には、「/コンテンツ名」が記述されている。つまり、図8の(a)のHTTPメッセージは、「content 1」が示すコンテンツ1の送信を要求するリクエストということになる。
また、図8の(d)のヘッダには、リクエスト111と同様に、「Host」ヘッダおよび「Accept」ヘッダが含まれている。さらに、メッセージの転送経路を示す「Via」ヘッダが含まれており、この「Via」ヘッダに、メッセージを経由した装置のアドレスを示す「example-proxy1.com」が記述されている。これにより、このリクエストを受信した装置であるサーバ2が、どの装置(この場合、プロキシ3a)を経由して当該リクエストが送信されてきたかを知ることができる。
(サーバ2からプロキシ3aにコンテンツを送信するレスポンス124)
図8の(e)に示すように、サーバ2からプロキシ3aに対してコンテンツ1を送信するレスポンス124に対応するHTTPメッセージには、レスポンスライン、ヘッダ、および「content1」を格納するボディが含まれる。
図8の(e)のレスポンスラインには、リクエストを正常に受け付けたことを示す、つまり、要求したコンテンツを送信することを示す情報が記述されている。具体的には、「ステータス番号 応答メッセージ」の形式で記述されている。
ヘッダには、送信するコンテンツに関する情報が記述される。図示の例では、コンテンツを送信した日時を示す「Date」ヘッダ、送信するコンテンツのキャッシュに関する指示を示す「Cache-Control」ヘッダ、および、送信するコンテンツの種別を示す「Content-Type」ヘッダが含まれている。
図示の例では、「Cache-Control」ヘッダに、送信したコンテンツのキャッシュを他に送信する前に、キャッシュしているコンテンツが最新のデータであるかどうかを必ず確認させることを示す「must-revalidate」が記述されている。また、「Content-Type」ヘッダに、送信するコンテンツがMP4フォーマットの動画データであることを示す「video/mp4」が記述されている。
そして、ボディには、コンテンツ1のデータを示す「[binary-data: content1]」が記述されている。
(プロキシ3aからクライアント4aにコンテンツを送信するレスポンス126)
図8の(f)に示すように、プロキシ3aからクライアント4aに対してコンテンツ1を送信するレスポンス126に対応するHTTPメッセージには、レスポンスライン、ヘッダ、およびボディが含まれる。
図8の(f)のレスポンスラインには、リクエストを正常に受け付けたことを示す、つまり、要求したコンテンツを送信することを示す情報が記述されている。具体的には、「ステータス番号 応答メッセージ」の形式で記述されている。
ヘッダには、送信するコンテンツに関する情報が記述される。図示の例では、送信するコンテンツのキャッシュに関する指示を示す「Cache-Control」ヘッダ、送信するコンテンツの種別を示す「Content-Type」ヘッダ、および、メッセージの転送経路を示す「Via」ヘッダが含まれている。
図示の例では、レスポンス124と同様に、「Cache-Control」ヘッダに「must-revalidate」が記述されており、「Content-Type」ヘッダに「video/mp4」が記述されている。また、「Via」ヘッダは、「Via」ヘッダを含むリクエストが装置を経由して送信されてきたことを示す。「Via」ヘッダには、経由した装置のアドレスを示すアドレス情報が記述されており、レスポンス124では、経由した装置であるプロキシ3aのアドレスを示すアドレス情報「example-proxy1.com」が記述されている。
そして、ボディには、コンテンツ1のデータ実体(バイナリデータ)が含まれており、コンテンツ1のデータを示す「[binary-data: content1]」が記述されている。
〔セッション150およびセッション160におけるHTTPメッセージ〕
次に、セッション150およびセッション160におけるHTTPメッセージを図10に基づいて説明する。なお、図10の(a)〜(c)、(f)は、図8の(a)〜(c)、(f)にそれぞれ対応しており、図10では、図8のコンテンツ1がコンテンツ2に、プロキシ3aがプロキシ3bに変更しているだけであるから、リクエスト151、レスポンス153、リクエスト161およびレスポンス166のHTTPメッセージの説明は省略する。
(プロキシ3bからサーバ2に条件付でコンテンツを要求するリクエスト163)
図10の(d)に示すように、プロキシ3bからサーバ2に対して条件付でコンテンツ2を要求するリクエスト163に対応するHTTPメッセージには、リクエストラインおよびヘッダが含まれる。
図10の(d)のリクエストラインには、コンテンツを取得するメソッドを示す「GET」の後にリクエスト対象となるコンテンツのURIが記述されている。具体的には、「/コンテンツ名」が記述されている。
また、図10の(d)のヘッダには、当該ヘッダに記述した日時以降に新しいデータに更新していれば、最新のデータのコンテンツを要求することを示す「If-Modified-Since」ヘッダ、「Accept」ヘッダ、「Host」ヘッダ、および、「Via」ヘッダが含まれている。ここでは、「If-Modified-Since」ヘッダに、リクエスト163で要求したコンテンツ2をプロキシ3bがキャッシュした日時を示す「Sun, 31 May 2013 15:03:08 GMT」が記述されている。これにより、このリクエスト163を受信した装置であるサーバ2が、プロキシ3bがキャッシュした日時から、プロキシ3bが保持しているコンテンツ2が最新のデータであるか否かを判定することができる。
(サーバ2からプロキシ3bに対するレスポンス165)
図10の(e)に示すように、サーバ2からプロキシ3bに対して、プロキシ3bが保持するコンテンツ2が最新のデータであることを示すレスポンス165に対応するHTTPメッセージには、レスポンスラインおよびヘッダが含まれる。
図10の(e)のレスポンスラインには、プロキシ3bがキャッシュ日時以降に、そのキャッシュしているコンテンツを更新していないことを示す応答メッセージとそのステータス番号が記述されている。具体的には、「ステータス番号 応答メッセージ」が記述されている。
また、図10の(e)のヘッダには、レスポンス165を送信した日時を示す「Date」ヘッダが含まれている。
<第2の実施形態>
本発明の第2の実施形態では、サーバ2の処理負荷およびサーバ2からのデータ送出に用いられるネットワークの負荷をより広く分散できるように、クライアント4がプロキシの機能を備え、クライアント4がプロキシとして振舞う例を示す。
より詳細には、本実施形態では、クライアント4が記憶部を備え、取得したコンテンツをキャッシュ登録し、サーバ2が過去に送信した応答メッセージから、コンテンツを保持している(可能性のある)装置(プロキシ3またはクライアント4)を特定し、コンテンツを要求した装置(クライアント4)に対して、特定した装置から当該コンテンツを取得するように指示する。
すなわち、本実施形態では、クライアント4は、コンテンツのリクエストを送信してコンテンツを取得する装置であって、リクエストしたコンテンツを保持して、リクエストしたコンテンツを他の装置に転送する中継装置(プロキシ)として動作したり、コンテンツのリクエストを送信してコンテンツを取得する装置であって、リクエストしたコンテンツを取得して再生するコンテンツ再生装置として動作したりする。
なお、以下では、プロキシ3およびプロキシとして動作するクライアント4を、中継装置と称し、リクエストしたコンテンツを取得して再生するクライアント4を、コンテンツ再生装置と称する。
本実施形態について図11から図19に基づいて説明すると以下の通りである。第2の実施形態は、第1の実施形態と異なり、クライアント4がプロキシの機能を有しているだけであり、その他の点では、第1の実施形態と同様のため、主に、第1の実施形態と異なる点について説明する。
〔コンテンツ配信システム1aの概要〕
まず、本実施形態のコンテンツ配信システム1aの概要について、図11に基づいて説明する。図11は、第2の実施形態に係るコンテンツ配信システム1aの概要およびコンテンツ配信システム1aを構成する各装置の要部構成を示す図である。図11に示すように、コンテンツ配信システム1aは、サーバ2、プロキシ3、並びに、クライアント4cおよび4dを含む。また、コンテンツ配信システム1aは、サーバ2と接続しているコンテンツ格納部5と、プロキシ3と接続しているキャッシュ格納部6と、クライアント4c、4dとそれぞれ接続しているクライアント記憶部8c、8dとを含む。
なお、以下では、クライアント記憶部8c、8dを総称してクライアント記憶部8と称する。
本実施形態におけるプロキシ3は、第1の実施形態におけるプロキシ3と構成およびその動作処理が同一であるため、ここでは、プロキシ3の詳細について説明を省略する。
〔サーバ2について〕
本実施形態におけるサーバ2は、第1の実施形態におけるサーバ2と同じ構成である。ただし、クライアント4がプロキシとして動作することもあるため、レスポンス実行部15、中継装置特定部16、および、コンテンツ格納先情報生成部17の動作が一部異なっている。
レスポンス実行部15は、サーバ通信部11を介して、中継装置またはコンテンツ再生装置から、コンテンツの送信を要求する要求メッセージを受信すると、当該要求メッセージが中継装置から送信されたものであるか否かに応じて、受信した要求メッセージに対する応答メッセージを中継装置またはコンテンツ再生装置に送信する。
具体的には、レスポンス実行部15は、コンテンツの送信を要求する要求メッセージを受信するのを待っており、サーバ通信部11を介して、コンテンツの送信を要求する要求メッセージを受信すると、受信した要求メッセージのヘッダを確認して、受信した要求メッセージが中継装置を経由して送信されたものであるか否かを判定する。例えば、レスポンス実行部15は、要求メッセージを受信すると、受信した要求メッセージに、「Via」ヘッダ(転送経路情報)が含まれる場合、受信した要求メッセージが、コンテンツ再生装置からの要求メッセージを受けて中継装置が送信したものであると判定し、一方、受信した要求メッセージに、「Via」ヘッダが含まれていない場合、コンテンツ再生装置から、直接、要求メッセージが送信されたものであると判定してもよい。
レスポンス実行部15は、受信した要求メッセージが中継装置から送信されたものでない場合、つまり、要求メッセージの送信元の装置であるコンテンツ再生装置から、直接、コンテンツを要求する要求メッセージを受信すると、中継装置特定部16に対して、コンテンツ再生装置が要求したコンテンツを保持する(可能性のある)中継装置のアドレス情報(例えば、プロキシ3またはクライアント4のURI等)を特定するように指示する。そして、レスポンス実行部15は、中継装置特定部16から、コンテンツ再生装置が要求するコンテンツを保持する中継装置のアドレス情報を受信すると、コンテンツ再生装置からの要求メッセージに対する応答として、中継装置特定部16が特定したアドレス情報で特定される装置から、コンテンツを取得するように指示する応答メッセージをコンテンツ再生装置に送信する。例えば、レスポンス実行部15は、応答メッセージとして「305 USE Proxy」を用いて、「Location」フィールドに、中継装置特定部16が特定したアドレス情報を与えることで、コンテンツ再生装置に対して、コンテンツ再生装置が要求したコンテンツを保持する(可能性のある)中継装置に対して、コンテンツの要求メッセージを再送するよう指示する。
また、レスポンス実行部15は、受信した要求メッセージが中継装置を経由して送信されたものである場合、つまり、中継装置から要求メッセージを受信した場合には、続いて、受信した要求メッセージが「If-Modified-Since」等の条件付要求であるか否かを判定する。受信した要求メッセージが条件付要求でなければ、レスポンス実行部15は、要求されたコンテンツをコンテンツ格納部5から読み出し、要求メッセージに対する応答として、読み出したコンテンツを、要求メッセージを送信した中継装置に送信する。
一方、受信した要求メッセージが条件付要求であれば、レスポンス実行部15は、続いて、要求メッセージを送信した中継装置が保持しているコンテンツのデータが最新のデータであるか否かを判定する。換言すると、レスポンス実行部15は、要求メッセージを送信した中継装置が保持しているコンテンツのデータと、コンテンツ格納部5に格納されている同じコンテンツのデータとが同一であるか否かを判定する。
要求メッセージを送信した中継装置が保持しているコンテンツのデータが最新のデータでなければ、レスポンス実行部15は、要求されたコンテンツをコンテンツ格納部5から読み出し、要求メッセージに対する応答として、読み出したコンテンツを、要求メッセージを送信した中継装置に送信する。また、要求メッセージを送信した中継装置が保持しているコンテンツのデータが最新のデータであれば、レスポンス実行部15は、要求メッセージに対する応答として、要求メッセージを送信した中継装置が保持しているコンテンツのデータが最新のデータであることを示す応答メッセージを、要求メッセージを送信した中継装置に送信する。レスポンス実行部15は、例えば、要求メッセージを送信した中継装置が保持しているコンテンツのデータが最新のデータであることを示す応答メッセージとして「304 NOT modified」を、要求メッセージを送信した中継装置に送信する。
また、レスポンス実行部15は、第1の実施形態と同様に、送信した応答メッセージから送信ログを作成して、作成した送信ログを送信ログ記憶部12に記憶する。
なお、レスポンス実行部15は、第1の実施形態と同様に、要求メッセージを送信した中継装置にコンテンツを送信する際に、コンテンツのヘッダに、例えば、「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」を追加してもよい。これにより、コンテンツを取得した中継装置が取得したコンテンツを他の要求に従って送信する場合に、コンテンツを取得した中継装置に対して、送信する前にそのコンテンツが最新バージョンかどうかをサーバ2へ必ず確認させることができる。
中継装置特定部16は、レスポンス実行部15の指示に従って、コンテンツ再生装置が要求したコンテンツを保持している(可能性のある)中継装置を特定するものである。
具体的には、中継装置特定部16は、レスポンス実行部15から指示を受けて、コンテンツ格納先情報記憶部13からコンテンツ格納先情報を読み出す。中継装置特定部16は、読み出したコンテンツ格納先情報を参照して、コンテンツ再生装置が要求するコンテンツに対応付けられている中継装置のアドレス情報を、コンテンツの取得先のアドレス情報として特定する。中継装置特定部16は、特定したアドレス情報をレスポンス実行部15に送信する。
また、中継装置特定部16は、コンテンツ格納先情報記憶部13に、コンテンツ再生装置が要求するコンテンツを含むコンテンツ格納先情報が格納されていない場合、コンテンツ再生装置が要求するコンテンツごとに、予め定められた(デフォルトの)アドレス情報を当該コンテンツの取得先のアドレス情報として特定してもよい。また、中継装置特定部16は、コンテンツ格納先情報記憶部13に、コンテンツ再生装置が要求するコンテンツを含むコンテンツ格納先情報が格納されていない場合、サーバ2とネットワーク7を介して接続している中継装置の中からランダムに、当該コンテンツの取得先を特定してもよい。
また、中継装置特定部16は、コンテンツ再生装置が要求するコンテンツに対応付けられている中継装置のアドレス情報を含むコンテンツ格納先情報がコンテンツ格納先情報記憶部13に複数存在する場合、複数のアドレス情報をコンテンツの取得先のアドレス情報として特定し、特定した複数のアドレス情報を含むコンテンツ格納先リストを作成してもよい。中継装置特定部16は、複数のアドレス情報をコンテンツの取得先のアドレス情報として特定した場合、複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成してもよい。
また、中継装置特定部16は、実施形態1と同様に、コンテンツ格納先情報に含まれる日時に基づいて、コンテンツの取得先を特定してもよい。また、コンテンツ再生装置と中継装置との物理的、もしくは、ネットワーク構造的な距離に基づいて、コンテンツの取得先を特定してもよい。さらに、中継装置特定部16は、中継装置の負荷状況も考慮して、コンテンツ再生装置の要求するコンテンツを保持する(可能性のある)中継装置であって、負荷の少ない中継装置を特定しても良い。より詳細には、中継装置特定部16は、送信ログ記憶部12に格納されている送信ログも参照して、コンテンツの取得先のアドレス情報を特定してもよい。加えて、中継装置特定部16は、中継装置からサーバ2へのアクセス数も考慮して、コンテンツ再生装置の要求するコンテンツを保持する(可能性のある)中継装置を特定しても良い。なお、本実施形態において、中継装置特定部16が実行するコンテンツ再生装置の要求するコンテンツを保持する(可能性のある)中継装置を特定する処理は、実施形態1における、中継装置特定部16が実行するクライアント4の要求するコンテンツを保持する(可能性のある)プロキシ3を特定する処理と同様であるので、具体的な処理に関する説明を省略する。
コンテンツ格納先情報生成部17は、送信ログ記憶部12に格納されている送信ログから、コンテンツを保持する(可能性のある)中継装置のアドレス情報を特定するためのコンテンツ格納先情報を生成して、コンテンツ格納先情報記憶部13に格納するものである。第2の実施形態では、第1の実施形態と異なり、コンテンツ格納先情報生成部17は、コンテンツを保持する(可能性のある)装置として、プロキシ3だけではなくクライアント4も含める。
具体的には、コンテンツ格納先情報生成部17は、サーバ2が中継装置にコンテンツを送信したことを示す送信ログ(コンテンツ送信ログ)を参照して特定した、サーバ2が送信したコンテンツと、コンテンツの送信先のアドレス情報と、サーバ2が当該コンテンツを送信した日時とを対応付けて、コンテンツ格納先情報を生成する。コンテンツの送信先装置は、そのコンテンツを格納していると考えられるからである。
また、コンテンツ格納先情報生成部17は、中継装置の保持しているコンテンツが最新バージョンであることを応答メッセージとしてサーバ2が送信したことを示す送信ログ(バージョン通知ログ)を参照して特定した、最新バージョンであることを確認したコンテンツと、当該コンテンツを保持している装置(中継装置)のアドレス情報と、サーバ2が当該応答メッセージを送信した日時とを対応付けて、コンテンツ格納先情報を生成する。最新バージョンであることを示す応答メッセージの送信先装置は、そのコンテンツの最新バージョンを格納しているからである。
さらに、コンテンツ格納先情報生成部17は、サーバ2がコンテンツ再生装置に対して、装置を指定してコンテンツを取得させるコンテンツ取得指示の送信示す送信ログ(取得指示ログ)を参照して特定した、コンテンツと、当該コンテンツ取得指示の送信先のアドレス情報と、当該応答メッセージの送信日時とを対応付けて、コンテンツ格納先情報を生成してもよい。コンテンツ取得指示の送信先の装置は、その後コンテンツを取得し格納している可能性が高いためである。
なお、コンテンツ取得指示の送信先の装置は、その後コンテンツの取得に失敗する可能性もあるので、コンテンツ送信ログと取得指示ログの両方を用いてコンテンツ格納先情報を生成しても良い。つまり、取得指示ログと、サーバ2からその中継装置にコンテンツを送信したことを示すコンテンツ送信ログが存在する場合に、当該コンテンツと、取得指示ログの送信先アドレスと、コンテンツ送信ログの日時とを対応付けてコンテンツ格納先情報としてもよい。コンテンツ取得指示でコンテンツ取得先に指定した中継装置がコンテンツを格納していなかった場合、サーバ2にそのコンテンツをリクエストすると考えられ、サーバ2がそのリクエストに応えていた場合には、そのコンテンツは中継装置を介してコンテンツ取得指示の送信先装置に送信されるからである。
また、コンテンツ格納先情報生成部17は、取得指示ログとバージョン通知ログとを参照して、コンテンツ格納先情報を生成してもよい。すなわち、ある中継装置からコンテンツを取得するよう指示したコンテンツ取得指示を送信したことを示すコンテンツ送信ログと、その中継装置にそのコンテンツが最新バージョンであることを通知したことを示すバージョン通知ログとが存在する場合、当該コンテンツと、上記コンテンツ取得指示の送信先アドレスと、バージョン通知ログに含まれる日時とを対応付けて、コンテンツ格納先情報を生成してもよい。
なお、コンテンツ格納先情報生成部17は、所定の送信ログが送信ログ記憶部12に追加される度に、コンテンツ格納先情報を生成してもよいし、所定期間ごとに、送信ログを読み出して、コンテンツ格納先情報を生成してもよい。
本実施形態におけるコンテンツ格納先情報生成部17の具体的な動作例について、図12および図13に基づいて説明する。図12は、送信ログ記憶部12が記憶する送信ログの一例を示す図である。また、図13は、コンテンツ格納先情報記憶部13が記憶するコンテンツ格納先情報の一例を示す図である。ここでは、図12に示す送信ログに基づいて、図13に示すコンテンツ格納先情報を作成するコンテンツ格納先情報生成部17の動作例を説明する。
まず、コンテンツ格納先情報生成部17は、送信内容が「200 OK」である送信ログ(コンテンツ送信ログ)42を参照して、送信ログ42に含まれる「content1」と、「http://example-proxy1.com」と、「Sun, 31 May 2013 13:53:38 GMT」とを対応付けて、図13に示すコンテンツ格納先情報45を作成する。
次に、コンテンツ格納先情報生成部17は、送信内容が「305 Use Proxy (proxy1)」である送信ログ(取得指示ログ)41、および、「200 OK」であり、送信ログ41とコンテンツIDが同じであり、かつ送信ログ41の送信内容に示されている「proxy1」に対して応答したことを示す送信ログ42からコンテンツ格納先情報46を生成する。すなわち、「content1」と、送信ログ41に含まれる送信先アドレス「http://example-client1.com」と、送信ログ42の送信日時「Sun, 31 May 2013 13:53:38 GMT」とを対応付けて、図13に示すコンテンツ格納先情報46を作成する。
なお、「http://example-proxy1.com」にも「content1」は格納されていると考えられるので、「http://example-proxy1.com」をアドレス情報に追加しても良い。
次に、コンテンツ格納先情報生成部17は、送信内容が「304 Not Modified」である送信ログ(バージョン通知ログ)44を参照して、送信ログ44に含まれる「content1」と、「http://example-client1.com」と、「Mon, 01 Jun 2013 08:05:30 GMT」とを対応付けて、図13に示すコンテンツ格納先情報47を作成する。
最後に、コンテンツ格納先情報生成部17は、送信内容が「305 Use Proxy (client1)」(取得指示ログ)である送信ログ43、および、「304 Not Modified」であり、送信ログ43とコンテンツIDが同じであり、かつ送信ログ43の送信内容に示されている「client1」に対して応答したことを示す送信ログ44からコンテンツ格納先情報46を生成する。すなわち、「content1」と、送信ログ43に含まれる送信先アドレス「http://example-client2.com」と、送信ログ44の送信日時「Mon, 01 Jun 2013 08:05:30 GMT」とを対応付けて、図13に示すコンテンツ格納先情報47を作成する。なお、「http://example-client1.com」にも「content1」は格納されているので、「http://example-client1.com」をアドレス情報に追加しても良い。
〔クライアント4について〕
本実施形態におけるクライアント4は、プロキシとしても機能するため、第1の実施形態と異なり、クライアント制御部32が、リクエスト実行部33の代わりに、レスポンス/リクエスト実行部35を含む。また、コンテンツをキャッシュするクライアント記憶部8がクライアント4と接続されている。なお、クライアント記憶部8は、クライアント4に内蔵されていてもよい。
レスポンス/リクエスト実行部35は、クライアント4がコンテンツ再生装置として動作する場合、リクエスト実行部33と同様の動作処理を実行する。
具体的には、レスポンス/リクエスト実行部35は、コンテンツの送信を要求する要求メッセージを生成し、クライアント通信部31を介してサーバ2に送信し、これに対する応答として応答メッセージを受信する。そして、レスポンス/リクエスト実行部35は、サーバ2から応答メッセージとして、中継装置を特定する情報と、当該中継装置にコンテンツを要求する要求メッセージを送信する指示を受信する。レスポンス/リクエスト実行部35は、サーバ2から上記応答メッセージを受信すると、サーバ2の指示に従って、指定された中継装置に対して、コンテンツの送信を要求する要求メッセージを送信する。そして、レスポンス/リクエスト実行部35は、サーバ2に指定された中継装置からコンテンツを取得する。レスポンス/リクエスト実行部35は、取得したコンテンツをクライアント記憶部8に格納する。
また、レスポンス/リクエスト実行部35は、クライアント4が中継装置として動作する場合、プロキシ3のリクエスト実行部23と同様の動作処理を実行する。
具体的には、レスポンス/リクエスト実行部35は、コンテンツ再生装置から受信した、コンテンツを要求する要求メッセージで指定されたコンテンツをコンテンツ再生装置に送信するものである。
より詳細には、レスポンス/リクエスト実行部35は、コンテンツ再生装置からコンテンツの送信を要求する要求メッセージを待っており、クライアント通信部31を介して、コンテンツ再生装置から要求メッセージを受信すると、要求されたコンテンツがクライアント記憶部8に格納されているか否かを確認する。
要求されたコンテンツがクライアント記憶部8に格納されていない場合、レスポンス/リクエスト実行部35は、コンテンツ再生装置から送信された要求メッセージのHostフィールドを確認して、Hostフィールドに記述されているURIの示すサーバ2に対して、コンテンツ再生装置が要求するコンテンツの要求メッセージを送信する。そして、レスポンス/リクエスト実行部35は、サーバ2からコンテンツを取得し、取得したコンテンツをクライアント記憶部8に格納する。レスポンス/リクエスト実行部35は、取得したコンテンツをクライアント記憶部8に格納した後、コンテンツ再生装置へ要求されたコンテンツを送信する。
また、要求されたコンテンツがクライアント記憶部8に格納されている場合、レスポンス/リクエスト実行部35は、クライアント記憶部8に保持しているコンテンツのデータが最新のデータであるか否かをサーバ2に確認するために、要求メッセージに当該コンテンツを中継装置が取得した時間情報を記述した「If-Modified-Since」を付加して条件付要求の要求メッセージを作成して、作成した条件付要求の要求メッセージをサーバ2に送信する。
条件付要求の要求メッセージの応答として、サーバ2から「304 NOT Modified」の応答メッセージを受信した場合、レスポンス/リクエスト実行部35は、クライアント記憶部8に格納されているコンテンツは最新のデータであると判断して、クライアント記憶部8から、保持しているコンテンツを読み出し、読み出したコンテンツをコンテンツ再生装置に送信する。
一方、クライアント記憶部8に格納されているコンテンツが最新のデータでなければ、条件付要求の要求メッセージの応答として、サーバ2から最新バージョンのコンテンツが送信され、レスポンス/リクエスト実行部35は、サーバ2から送信されたコンテンツを取得する。レスポンス/リクエスト実行部35は、取得したコンテンツをクライアント記憶部8に格納した後、コンテンツ再生装置へ要求されたコンテンツを送信する。
なお、コンテンツをコンテンツ再生装置へ送信する際には、送信するコンテンツのヘッダに、サーバ2が付与した、例えば「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」の記述をそのまま保持して、コンテンツを送信してもよい。これにより、コンテンツ送信先のコンテンツ再生装置が取得したコンテンツを他の要求に従って送信する場合に、コンテンツ再生装置に対して、送信する前にそのコンテンツが最新バージョンかどうかをサーバ2へ必ず確認させることができる。
〔各装置が実行する処理について〕
次に、サーバ2およびクライアント4が実行する処理について、図14から16に基づいて説明する。第2の実施形態におけるプロキシ3が実行する処理は、第1の実施形態と同様であるため説明は省略する。
〔サーバ2が実行する処理について〕
まずは、サーバ2が実行する処理について図14に基づいて説明する。図14は、サーバ2が実行する処理の一例を示すフローチャートである。
レスポンス実行部15は、コンテンツの送信を要求する要求メッセージを受信するのを待っており、サーバ通信部11を介して、コンテンツの送信を要求する要求メッセージを受信すると(S501)、受信した要求メッセージのヘッダを確認して、受信した要求メッセージが中継装置から送信されたものであるか否かを判定する(S502)。
受信した要求メッセージを送信した主体がコンテンツ再生装置である場合、(S502でNO)、中継装置特定部16に対して、コンテンツ再生装置がコンテンツを取得する、その取得先の中継装置を特定するように指示する。中継装置特定部16は、レスポンス実行部15から指示を受けて、コンテンツ格納先情報記憶部13からコンテンツ格納先情報を読み出す(S503)。中継装置特定部16は、読み出したコンテンツ格納先情報を参照して、コンテンツ再生装置が要求するコンテンツに対応付けられている中継装置のURIを、コンテンツの取得先のアドレス情報として特定する(S504)。中継装置特定部16は、特定したアドレス情報をレスポンス実行部15に送信する。レスポンス実行部15は、中継装置特定部16が特定したアドレス情報の示すアドレスに存在する中継装置から、要求したコンテンツを取得するように指示した応答メッセージを、コンテンツ再生装置に送信する(S505)。レスポンス実行部15は、コンテンツ再生装置に送信した応答メッセージから送信ログを作成し、作成した送信ログを送信ログ記憶部12に追加する(S510)。
一方、受信した要求メッセージを送信した主体が中継装置である場合(S502でYES)、レスポンス実行部15は、続いて、受信した要求メッセージが「If-Modified-Since」等の条件付要求であるか否かを判定する(S506)。受信した要求メッセージが条件付要求でなければ(S506でNO)、レスポンス実行部15は、中継装置から要求されたコンテンツをコンテンツ格納部5から読み出し、中継装置からの要求メッセージに対する応答として、読み出したコンテンツを中継装置に送信する(S507)。そして、レスポンス実行部15は、中継装置に送信した応答メッセージから送信ログを作成し、作成した送信ログを送信ログ記憶部12に追加する(S510)。
受信した要求メッセージが条件付要求であれば(S506でYES)、レスポンス実行部15は、さらに、中継装置が保持しているコンテンツのデータが最新のデータであるか否かを判定する(S508)。中継装置が保持しているコンテンツのデータが最新のデータでなければ(S508でNO)、レスポンス実行部15は、中継装置から要求されたコンテンツをコンテンツ格納部5から読み出し、中継装置からの要求メッセージに対する応答として、読み出したコンテンツを中継装置に送信する(S507)。一方、中継装置が保持しているコンテンツのデータが最新のデータであれば(S508でYES)、レスポンス実行部15は、中継装置からの要求メッセージに対する応答として、中継装置が保持しているコンテンツのデータが最新のデータであることを示す応答メッセージを中継装置に送信する(S509)。そして、レスポンス実行部15は、中継装置に送信した応答メッセージを送信ログ記憶部12に追加する(S510)。
なお、S507において、レスポンス実行部15は、中継装置にコンテンツを送信する際に、コンテンツのヘッダに、例えば、「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」を追加する。これにより、コンテンツ送信先の中継装置が保持したコンテンツを他の要求に従って送信する場合に、中継装置に対して、送信する前にそのコンテンツが最新バージョンかどうかをサーバへ必ず確認させることができる。
〔クライアント4が実行する処理について〕
次に、クライアント4が実行する処理について図15および図16に基づいて説明する。上述のように、クライアント4は、中継装置として動作したり、コンテンツ再生装置として動作したりする。まず、コンテンツ再生装置として動作する場合にクライアント4が実行する処理について図15に基づいて説明する。
(クライアント4であるコンテンツ再生装置が実行する処理について)
図15は、クライアント4であるコンテンツ再生装置が実行する処理の一例を示すフローチャートである。図15に示すように、レスポンス/リクエスト実行部35は、サーバ2にコンテンツの送信を要求する要求メッセージを送信する(S521)。レスポンス/リクエスト実行部35は、要求メッセージに対する応答として、指定された中継装置から、要求したコンテンツを取得するように指示した応答メッセージを受信する(S522)。レスポンス/リクエスト実行部35は、サーバ2の指示に従って、サーバ2から指定された中継装置に対して、要求メッセージを送信する(S523)。そして、レスポンス/リクエスト実行部35は、要求メッセージを送信した中継装置から、その応答として、コンテンツを取得する(S524)。
(クライアント4である中継装置が実行する処理について)
次に、中継装置として動作する場合にクライアント4が実行する処理について図16に基づいて説明する。図16は、クライアント4である中継装置が実行する処理の一例を示すフローチャートである。
図16に示すように、レスポンス/リクエスト実行部35は、コンテンツ再生装置(他のクライアント4)からコンテンツの送信を要求する要求メッセージを待っており、クライアント通信部31を介して、コンテンツ再生装置から要求メッセージを受信すると(S541)、要求されたコンテンツがクライアント記憶部8に格納されているか否かを確認する(S542)。
要求されたコンテンツがクライアント記憶部8に格納されていない場合(S542でNO)、レスポンス/リクエスト実行部35は、コンテンツ再生装置から送信された要求メッセージのHostフィールドを確認して、Hostフィールドに記述されているURIの示すサーバ2に対して、コンテンツ再生装置が要求するコンテンツの要求メッセージを送信する(S543)。そして、レスポンス/リクエスト実行部35は、サーバ2からコンテンツを取得し(S544)、取得したコンテンツをクライアント記憶部8に格納する(S545)。レスポンス/リクエスト実行部35は、取得したコンテンツをクライアント記憶部8に格納した後、コンテンツ再生装置へ要求されたコンテンツを送信する(S546)。
要求されたコンテンツがクライアント記憶部8に格納されている場合(S542でYES)、レスポンス/リクエスト実行部35は、要求メッセージに当該コンテンツを自装置が取得した時間情報を記述した「If-Modified-Since」を付加して条件付要求の要求メッセージを作成して、作成した条件付要求の要求メッセージをサーバ2に送信する(S547)。
条件付要求の要求メッセージの応答として、サーバ2から「304 NOT Modified」の応答メッセージを受信した場合(S548でYES)、レスポンス/リクエスト実行部35は、クライアント記憶部8から、保持しているコンテンツを読み出し、読み出したコンテンツをコンテンツ再生装置に送信する(S426)。
一方、クライアント記憶部8に格納されているコンテンツが最新のデータでなければ、条件付要求の要求メッセージの応答として、サーバ2から最新バージョンのコンテンツが送信され、レスポンス/リクエスト実行部35は、サーバ2から送信された最新バージョンのコンテンツを取得する(S544)。レスポンス/リクエスト実行部35は、取得したコンテンツをクライアント記憶部8に格納した後(S545)、コンテンツ再生装置へ要求されたコンテンツを送信する(S546)。
なお、S546において、コンテンツをコンテンツ再生装置へ送信する際には、送信するコンテンツのヘッダに、サーバ2が付与した、例えば「Cache-Control: must-revalidate」もしくは「Cache-Control: proxy-revalidate」の記述をそのまま保持して、コンテンツを送信する。これにより、コンテンツ送信先のコンテンツ再生装置が取得したコンテンツを他の要求に従って送信する場合に、送信する前に、コンテンツ再生装置に対して、そのコンテンツが最新バージョンかどうかを必ずサーバ2へ確認しなければならない状態を保つことができる。
〔実施例2〕
以下、図17に実施例2を示し、本実施形態についてさらに詳しく説明する。実施例2では、クライアント4dであるコンテンツ再生装置に対して、コンテンツを取得させる中継装置(クライアント4c)を指示するコンテンツ配信システム1aの動作例を示す。図17は、実施例2におけるコンテンツ配信システム1aの動作シーケンスの一例を示す図である。
なお、実施例2では、前提として、コンテンツ格納部5にコンテンツ1が格納されており、キャッシュ格納部6およびクライアント記憶部8c、8dには、何もキャッシュされておらず、サーバ2は、デフォルトとして、コンテンツ1の取得先をプロキシ3として設定しているものとする。また、実施例2では、図17に示す処理の開始時に、送信ログ記憶部12およびコンテンツ格納先情報記憶部13には、それぞれ、送信ログおよびコンテンツ格納先情報が記憶されていないとする。そして、レスポンス実行部15が図12に示す送信ログを、応答メッセージを送信するごとに作成し、コンテンツ格納先情報生成部17が図13に示すコンテンツ格納先情報を、コンテンツ送信ログまたはバージョン通知ログ(「送信内容」が「200 OK」または「304 Not Modified」である送信ログ)が送信ログ記憶部12に追加される度に、作成するものとする。
また、コンテンツ再生装置が要求メッセージを送信して、当該要求メッセージに対応する応答メッセージを受信するまでを1つのセッションとする。
図17に示すように、まず、セッション210において、クライアント4cがコンテンツ1の送信を要求する要求メッセージをサーバ2に送信する(リクエスト211)。リクエスト211を受信したサーバ2では、レスポンス実行部15は、中継装置特定部16に取得先の中継装置を特定するように指示する。中継装置特定部16は、指示を受けて、コンテンツ格納先情報記憶部13のコンテンツ格納先情報を確認する(処理212)。ここでは、コンテンツ格納先情報記憶部13には、コンテンツ1の取得先を示すコンテンツ格納先情報が無いため、中継装置特定部16は、コンテンツ1の取得先として、デフォルトで設定されているプロキシ3をコンテンツ1の取得先として特定する。レスポンス実行部15は、中継装置特定部16が特定したアドレス情報に対応するプロキシ3から、要求したコンテンツを取得するように指示した応答メッセージを、クライアント4cに送信する(レスポンス213)。そして、レスポンス実行部15は、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部12に追加する(処理214)。
次に、セッション220において、レスポンス213を受信したクライアント4cは、サーバ2の指示に従って、プロキシ3に対して、コンテンツ1の送信を要求する要求メッセージを送信する(リクエスト221)。リクエスト221を受信したプロキシ3は、コンテンツ1がキャッシュ格納部6に格納されているかどうかを確認する(処理222)。ここでは、キャッシュ格納部6にコンテンツ1が格納されていないため、リクエスト221に基づく要求メッセージをサーバ2に送信する(リクエスト223)。リクエスト223を受信したサーバ2では、リクエスト223に「Via」ヘッダが含まれているため、レスポンス実行部15がプロキシ3にコンテンツ1を送信する(レスポンス224)。レスポンス224を受信したプロキシ3は、取得したコンテンツ1をキャッシュ格納部6に格納してキャッシュ登録する(処理225)。キャッシュ登録した後、プロキシ3は、リクエスト221に対する応答として、クライアント4cにコンテンツ1を送信する(レスポンス226)。クライアント4cは、プロキシ3からコンテンツ1を取得すると、取得したコンテンツ1をクライアント記憶部8cに格納してキャッシュ登録する(処理227)。なお、レスポンス実行部15は、レスポンス224を送信した後、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部12に追加する(処理228)。また、コンテンツ格納先情報生成部17は、コンテンツ1とプロキシ3のアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部13に格納する。さらに、コンテンツ格納先情報生成部17は、コンテンツ1とクライアント4cのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部13に格納する(処理229)。
セッション220終了後には、プロキシ3のキャッシュ格納部6、および、クライアント4cのクライアント記憶部8cにコンテンツ1がそれぞれキャッシュ登録された状態である。すなわち、コンテンツ格納先情報記憶部13にコンテンツ1とプロキシ3とが対応付けられたコンテンツ格納先情報と、コンテンツ1とクライアント4cとが対応付けられたコンテンツ格納先情報とが格納されている状態である。つまり、この状態では、プロキシ3だけでなくクライアント4cも、コンテンツ1の取得先の中継装置の候補である。
この状態で次に、セッション230において、クライアント4dがコンテンツ1の送信を要求する要求メッセージをサーバ2に送信する(リクエスト231)。リクエスト231を受信したサーバ2では、レスポンス実行部15は、中継装置特定部16に取得先の中継装置を特定するように指示する。中継装置特定部16は、指示を受けて、コンテンツ格納先情報記憶部13のコンテンツ格納先情報を確認する(処理232)。ここでは、コンテンツ格納先情報記憶部13には、コンテンツ1と対応付けられている格納先として、プロキシ3bと、クライアント4cとが存在し、クライアント4cを含むコンテンツ格納先情報の方が新しいため、中継装置特定部16は、コンテンツ1の取得先としてクライアント4cを特定する。レスポンス実行部15は、中継装置特定部16が特定したクライアント4cから、要求したコンテンツを取得するように指示した応答メッセージを、クライアント4dに送信する(レスポンス233)。そして、レスポンス実行部15は、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部12に追加する(処理234)。
次に、セッション240において、レスポンス233を受信したクライアント4dは、サーバ2の指示に従って、クライアント4cに対して、コンテンツ1の送信を要求する要求メッセージを送信する(リクエスト241)。リクエスト241を受信したクライアント4cは、コンテンツ1がクライアント記憶部8cに格納されているかどうかを確認する(処理242)。クライアント記憶部8cにはコンテンツ1が既に格納されているため、クライアント4cは、クライアント記憶部8cに格納されているコンテンツ1が最新のデータであるかどうかをサーバ2に確認するため、リクエスト241に基づく要求メッセージに「If-Modified-Since」を付加して条件付要求としてサーバ2に送信する(リクエスト243)。リクエスト243を受信したサーバ2では、リクエスト243に「Via」ヘッダが含まれており、リクエスト243が条件付要求の要求メッセージであるため、レスポンス実行部15が、クライアント4cが保持しているコンテンツ1が最新のデータであるかどうかを確認する(処理244)。レスポンス実行部15は、クライアント4cが保持しているコンテンツ1が最新のデータであると判定して、クライアント4cに「304 NOT Modified」の応答メッセージを送信する(レスポンス245)。レスポンス245を受信したクライアント4cは、クライアント記憶部8cに格納しているコンテンツ1を読み出し、リクエスト241に対する応答として、クライアント4dに読み出したコンテンツ1を送信する(レスポンス246)。なお、レスポンス実行部15は、レスポンス245を送信した後、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部12に追加する(処理247)。また、コンテンツ格納先情報生成部17は、コンテンツ1とクライアント4cのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部13に格納する。さらに、コンテンツ格納先情報生成部17は、コンテンツ1とクライアント4dのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部13に格納する(処理248)。
上述のように、本実施形態では、クライアント4がコンテンツ再生装置として動作したり、中継装置として動作したりする。そのため、サーバ2が中継装置として特定する装置の選択肢が増えるため、サーバ2の処理負荷およびサーバ2サーバからのデータ送出に用いられるネットワークの負荷を、クライアント4、および、クライアント4−クライアント4間のネットワークも含めたより広範囲のネットワークへ分散することができる。
〔実施例2におけるHTTPメッセージ〕
続いて、図17の動作シーケンス図で使用されるリクエストおよびレスポンスの詳細を図18〜図19に示す。図18〜図19は、リクエストまたはレスポンスとして送受信されるHTTPメッセージの一例を示す図であり、図18は、セッション210およびセッション220におけるHTTPメッセージの一例を示す図であり、図19は、セッション230およびセッション240におけるHTTPメッセージの一例を示す図である。
図18の(a)は、図17に示すリクエスト211の、図18の(b)はレスポンス213の、図18の(c)はリクエスト221の、図18の(d)はリクエスト223の、図18の(e)はレスポンス224の、図18の(f)はレスポンス226のHTTPメッセージをそれぞれ示している。
また、図19の(a)は、図17に示すリクエスト231の、図19の(b)はレスポンス233の、図19の(c)はリクエスト241の、図19の(d)はリクエスト243の、図19の(e)はレスポンス245の、図19の(f)はレスポンス246のHTTPメッセージをそれぞれ示している。
図18の(a)〜(f)は、図8の(a)〜(f)にそれぞれ対応しており、図18では、図8のクライアント4aがクライアント4cに、プロキシ3aがプロキシ3に変更されている。それ以外の内容は既に説明したとおりである。また、図19の(a)〜(f)は、図10の(a)〜(f)にそれぞれ対応しており、図19では、図10のコンテンツ2がコンテンツ1に、クライアント4aがクライアント4dに、プロキシ3bがクライアント4cに変更されている。それ以外の内容は既に説明したとおりである。
<第3の実施形態>
本発明の第3の実施形態では、コンテンツ再生装置と中継装置との間のネットワークの負荷をより広く分散できるように、サーバ2がコンテンツ取得先の中継装置を複数指定し、コンテンツ再生装置が指定された複数の中継装置の中から、中継装置を選択してコンテンツを取得する例を示す。
より詳細には、本実施形態では、コンテンツ再生装置であるクライアント4が、サーバ2から指定された複数の中継装置の中から1つの中継装置を選択し、選択した中継装置からコンテンツを取得する。このコンテンツの取得中に、コンテンツの取得に関して遅延が発生した場合、サーバ2から指定された複数の中継装置の中から別の中継装置を再度選択して、コンテンツを取得する中継装置を変更する。
本実施形態について図20から図28に基づいて説明すると以下の通りである。第3の実施形態は、第2の実施形態と比べて、クライアント4の構成と、サーバ2が管理するコンテンツのデータ形式が異なるだけであり、その他は同様のため、主に、第2の実施形態と異なる点について説明する。
〔コンテンツ配信システム1bの概要〕
まず、本実施形態のコンテンツ配信システム1bの概要について、図20に基づいて説明する。図20は、第3の実施形態に係るコンテンツ配信システム1bの概要およびコンテンツ配信システム1bを構成する各装置の要部構成を示す図である。図20に示すように、コンテンツ配信システム1bは、サーバ2、プロキシ3a、3bおよび3c、並びに、クライアント4eおよび4fを含む。また、コンテンツ配信システム1bは、サーバ2と接続しているコンテンツ格納部5と、プロキシ3a、3b、3cとそれぞれ接続しているキャッシュ格納部6a、6b、6cと、クライアント4e、4fとそれぞれ接続しているクライアント記憶部8e、8fとを含む。
本実施形態におけるプロキシ3は、第1の実施形態におけるプロキシ3と構成およびその動作処理が同一であるため、ここでは、プロキシ3の詳細について説明を省略する。
〔サーバ2について〕
本実施形態におけるサーバ2は、第2の実施形態におけるサーバ2と同じ構成であり、第2の実施形態におけるサーバ2と同様の動作を実行する。ただし、コンテンツ再生装置にコンテンツの取得先の中継装置を選択させるために、本実施形態におけるサーバ2は、コンテンツ再生装置が要求するコンテンツを保持する(可能性のある)中継装置を複数特定し、特定した複数の中継装置のアドレス情報を含むコンテンツ格納先リストをコンテンツ再生装置に提示し、コンテンツ再生装置に対して、提示したコンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置の何れかからコンテンツを取得するように指示するものとする。
具体的には、レスポンス実行部15は、コンテンツ再生装置から、直接、コンテンツを要求する要求メッセージを受信すると、中継装置特定部16に対して、コンテンツ再生装置が要求したコンテンツを保持する(可能性のある)中継装置のアドレス情報(例えば、プロキシ3またはクライアント4のURI等)を特定するように指示する。そして、レスポンス実行部15は、中継装置特定部16から、コンテンツ再生装置が要求するコンテンツを保持する中継装置のアドレス情報を複数含むコンテンツ格納先リストを受信すると、コンテンツ再生装置からの要求メッセージに対する応答として、中継装置特定部16が作成したコンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置の何れかから、要求したコンテンツを取得するように指示した応答メッセージをコンテンツ再生装置に送信する。
なお、レスポンス実行部15のその他の処理については、第2の実施形態と同様であるため、ここでは説明を省略する。
中継装置特定部16は、レスポンス実行部15の指示に従って、コンテンツ再生装置が要求したコンテンツを保持している(可能性のある)中継装置を複数特定し、特定した複数の中継装置のアドレス情報を含むコンテンツ格納先リストを作成するものである。
具体的には、中継装置特定部16は、レスポンス実行部15から指示を受けて、コンテンツ格納先情報記憶部13からコンテンツ格納先情報を読み出す。中継装置特定部16は、読み出したコンテンツ格納先情報を参照して、コンテンツ再生装置が要求するコンテンツに対応付けられている中継装置のアドレス情報を複数特定し、特定した複数のアドレス情報を含むコンテンツ格納先リストを作成する。中継装置特定部16は、作成したコンテンツ格納先リストをレスポンス実行部15に送信する。
また、中継装置特定部16は、コンテンツ格納先情報記憶部13に、コンテンツ再生装置が要求するコンテンツを含むコンテンツ格納先情報が格納されていない場合、もしくは、コンテンツ再生装置が要求するコンテンツを含むコンテンツ格納先情報が1つしか格納されていない場合、コンテンツ再生装置が要求するコンテンツごとに、予め定められた(デフォルトの)アドレス情報を当該コンテンツの取得先のアドレス情報として特定し、複数のアドレス情報を含むコンテンツ格納先リストを作成してもよい。また、中継装置特定部16は、コンテンツ格納先情報記憶部13に、コンテンツ再生装置が要求するコンテンツを含むコンテンツ格納先情報が格納されていない場合、もしくは、コンテンツ再生装置が要求するコンテンツを含むコンテンツ格納先情報が1つしか格納されていない場合、サーバ2とネットワーク7を介して接続している中継装置の中からランダムに、当該コンテンツの取得先を特定して、コンテンツ格納先リストを作成してもよい。
また、中継装置特定部16は、特定した複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成してもよい。このとき、第2の実施形態と同様に、コンテンツ格納先情報に含まれる日時、コンテンツ再生装置と中継装置との物理的、もしくは、ネットワーク構造的な距離、中継装置の負荷状況、送信ログ記憶部12に格納されている送信ログ等に基づいて、優先順位を決定してもよい。
〔クライアント4について〕
本実施形態におけるクライアント4は、コンテンツ再生装置として機能する際に、第2の実施形態と異なり、サーバ2から送信されたコンテンツ格納先リストを受信して、受信したコンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置の何れかからリクエストしたコンテンツを取得する。
図20に示すクライアント4では、クライアント制御部32に、レスポンス/リクエスト実行部35の他、第2の実施形態では含まれていなかった、が、クライアント状況判断部36と、中継装置選択部(中継装置変更手段)37とが含まれている。
レスポンス/リクエスト実行部35は、サーバ2から応答メッセージとして、コンテンツ格納先リストと、当該コンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置の何れかにコンテンツを要求する要求メッセージを送信する指示とを受信する。
レスポンス/リクエスト実行部35がコンテンツ格納先リストおよび上記指示を受信すると、中継装置選択部37は、レスポンス/リクエスト実行部35が受信したコンテンツ格納先リストに含まれるアドレス情報の中から何れか1つを選択する。中継装置選択部37は、選択したアドレス情報の示すアドレスに存在する中継装置からコンテンツを取得するようにレスポンス/リクエスト実行部35に指示する。
ここで、中継装置選択部37は、コンテンツ格納先リストに含まれるアドレス情報に優先順位が付加されていなければ(サーバ2からコンテンツを取得する中継装置を選択する順序を指示されていなければ)、コンテンツ格納先リストに含まれるアドレス情報の中からランダムに選択してもよいし、予め定められたルール(デフォルト)に基づいて選択してもよいし、自装置との物理的、もしくは、ネットワーク構造的な距離が最も短い中継装置を選択してもよい。
一方、コンテンツ格納先リストに含まれるアドレス情報に優先順位が付加されている場合、中継装置選択部37は、優先順位が最も高いアドレス情報を選択する。
また、中継装置選択部37は、中継装置選択部37が選択した中継装置から、レスポンス/リクエスト実行部35が取得しているコンテンツの取得速度(コンテンツの受信速度)が予め定めた受信速度よりも遅いことを示す遅延情報をクライアント状況判断部36から受信すると、コンテンツを取得する取得先の中継装置を、コンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する他の中継装置に変更し、変更した他の中継装置からコンテンツを取得するように、レスポンス/リクエスト実行部35に指示する。
ここで、中継装置選択部37は、コンテンツ格納先リストに含まれるアドレス情報に優先順位が付加されていなければ、他の中継装置を、コンテンツ格納先リストに含まれるアドレス情報の中からランダムに選択してもよいし、予め定められたルール(デフォルト)に基づいて選択してもよいし、自装置との物理的、もしくは、ネットワーク構造的な距離が次に短い中継装置を選択してもよい。
一方、コンテンツ格納先リストに含まれるアドレス情報に優先順位が付加されている場合、中継装置選択部37は、次に優先順位の高いアドレス情報を選択する。
クライアント状況判断部36は、予め定められた事象の発生を検出する。具体的には、クライアント状況判断部36は、コンテンツ再生装置が中継装置から要求したコンテンツを取得する際に、予定よりも遅延してコンテンツが受信されたという事象を検出する。この事象は、コンテンツ再生装置と中継装置との間のネットワークの通信状況の良し悪し、および/または、当該中継装置に対する負荷の大きさを示す事象である。クライアント状況判断部36は、予定よりも遅延してコンテンツが受信されたという事象を検出すると、検出した事象を示す遅延情報を中継装置選択部37に送信する。
〔コンテンツのフォーマット〕
続いて、本実施形態において、コンテンツ格納部5に格納されているコンテンツのフォーマットを、図21の(a)に基づいて説明する。図21の(a)は、コンテンツのフォーマットの一例を示す図である。
図21の(a)に示すように、コンテンツを示すデータであるメディアファイルは、予め定められた単位でフラグメント化されている。この単位は特に限定されず、例えば1分といった時間単位でフラグメント化されていてもよいし、画像符号化におけるGOP(Group Of Picture)単位等でフラグメント化されていてもよい。
以降の説明では、このフラグメントをムービーフラグメントと呼び、ムービーフラグメントで構成されるメディアファイルの具体例としてMP4ファイルを用いる。
メディアファイルをMP4ファイルとする場合、フラグメント内の映像・音声を管理するヘッダ情報を格納した「moof」と、クライアントで再生される映像・音声などのデータが格納された「mdat」で構成されたフラグメントがムービーフラグメントに相当する。
ここで、MP4ファイルにおいては、「moof」、「mdat」以外に、メディアファイル全体に係る情報、例えば、画像解像度やプロファイル情報等、クライアント4におけるコンテンツ再生部34の初期化に必要な情報(再生情報)が前述の「moof」、「mdat」とは別の「moov」に格納されている。
このため、「moov」に格納された再生情報は、再生開始前にクライアント4へ通知する必要がある。「moov」に格納された再生情報は、ムービーフラグメントとは別の手順で通知してもよく、必ずしも「moov」をムービーフラグメントに含める必要はないが、以降の説明では、各メディアファイルの先頭のムービーフラグメントが「moov」を含む例を説明する。つまり、図21の(a)の「再生装置の初期化に必要な情報」は、「moov」である。
また、図21に示す通り、各メディアファイル内のムービーフラグメントには、先頭のムービーフラグメントから順に「movie fragment 1」、「movie fragment 2」と連番を付している。なお、各ムービーフラグメントには1秒分の映像データが含まれるものとする。
〔コンテンツの伝送フォーマット〕
次に、本発明のコンテンツ配信システム1bにおいて、コンテンツの伝送単位について説明する。コンテンツ配信システム1bにおいては、サーバ2、プロキシ3およびクライアント4の間では、コンテンツをメディアセグメントと呼ぶ単位に分割し、HTTPを用いて伝送を行う。
図21の(b)は、コンテンツ配信システム1bがコンテンツの伝送単位として扱うメディアセグメントの概念を示す図であり、コンテンツ配信システム1bにおけるコンテンツの伝送単位の一例を示している。
メディアセグメントは、少なくとも1つのムービーフラグメントを含んで構成されるものである。別の観点からは、コンテンツは1つ以上のメディアセグメントで構成されており、各メディアセグメントは1つ以上のムービーフラグメントで構成されていると言える。通常、メディアセグメントは、所定のコンテンツにおいて、再生時間の連続する2つ以上のムービーフラグメントを含んで構成されるが、1つのムービーフラグメントで構成されてもよいし、再生時間が連続しないムービーフラグメントで構成されていてもよい。
具体的には、図21の(b)は、複数のムービーフラグメントをひとまとめにして、1つのメディアセグメントとしている例である。これにより、各ムービーフラグメントを別個に伝送する場合と比べて、コンテンツを送信するメッセージの数を減らすことができるので、コンテンツを効率よく送信することができる。
図21の(b)の例では、「movie fragment 1〜60」をまとめて、1つのメディアセグメント「media segment 1」とし、「movie fragment 61〜120」をまとめて、1つのメディアセグメント「media segment 2」としている。なお、メディアセグメントは、所定のコンテンツにおける再生時間の連続する2つ以上のムービーフラグメントを含むものであればよく、1つのメディアセグメントに含まれるムービーフラグメントの数は特に限定されない。本実施形態では、図示のように、1つのメディアセグメントに60個のムービーフラグメントが含まれているものとする。
〔各装置が実行する処理について〕
次に、サーバ2およびコンテンツ再生装置として機能するクライアント4が実行する処理について、図22および図23に基づいて説明する。第3の実施形態におけるプロキシ3が実行する処理は、第1の実施形態と同様であり、第3の実施形態における中継装置として機能するクライアント4が実行する処理は、第2の実施形態と同様であるため説明は省略する。
〔サーバ2が実行する処理について〕
まずは、サーバ2が実行する処理について図22に基づいて説明する。図22は、サーバ2が実行する処理の一例を示すフローチャートである。
レスポンス実行部15は、コンテンツの送信を要求する要求メッセージを受信するのを待っており、サーバ通信部11を介して、コンテンツの送信を要求する要求メッセージを受信すると(S601)、受信した要求メッセージのヘッダを確認して、受信した要求メッセージが中継装置から送信されたものであるか否かを判定する(S602)。
受信した要求メッセージを送信した主体がコンテンツ再生装置である場合、(S602でNO)、中継装置特定部16に対して、コンテンツ再生装置がコンテンツを取得する、その取得先の中継装置を複数特定するように指示する。中継装置特定部16は、レスポンス実行部15から指示を受けて、コンテンツ格納先情報記憶部13からコンテンツ格納先情報を読み出す(S603)。中継装置特定部16は、読み出したコンテンツ格納先情報を参照して、コンテンツ再生装置が要求するコンテンツに対応付けられている中継装置のURIを複数特定し、特定した複数のアドレス情報を含むコンテンツ格納先リストを作成する(S604)。中継装置特定部16は、作成したコンテンツ格納先リストをレスポンス実行部15に送信する。レスポンス実行部15は、中継装置特定部16が作成したコンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置の何れかから、要求したコンテンツを取得するように指示した応答メッセージを、コンテンツ再生装置に送信する(S605)。レスポンス実行部15は、コンテンツ再生装置に送信した応答メッセージから送信ログを作成し、作成した送信ログを送信ログ記憶部12に追加する(S610)。
なお、受信した要求メッセージを送信した主体が中継装置である場合の処理(S606〜S609)は、第2の実施形態におけるサーバ2の処理(図14のS506〜S509)と同様であるため、ここでは説明を省略する。
〔コンテンツ再生装置として機能するクライアント4が実行する処理について〕
次に、コンテンツ再生装置として機能するクライアント4が実行する処理について図23に基づいて説明する。図23は、コンテンツ再生装置として機能するクライアント4が実行する処理の一例を示すフローチャートである。
レスポンス/リクエスト実行部35は、サーバ2にコンテンツの送信を要求する要求メッセージを送信する(S621)。レスポンス/リクエスト実行部35は、要求メッセージに対する応答として、コンテンツ格納先リストと、当該コンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置の何れかにコンテンツを要求する要求メッセージを送信する指示とを含む応答メッセージ受信する(S622)。
中継装置選択部37は、レスポンス/リクエスト実行部35が上記応答メッセージを受信すると、レスポンス/リクエスト実行部35が受信したコンテンツ格納先リストに含まれるアドレス情報の中から何れか1つを選択する(S623)。中継装置選択部37は、選択したアドレス情報の示すアドレスに存在する中継装置からコンテンツを取得するようにレスポンス/リクエスト実行部35に指示する。
中継装置選択部37からの指示を受けたレスポンス/リクエスト実行部35は、中継装置選択部37が選択した中継装置に対して、要求メッセージを送信する(S624)。要求メッセージを受信した中継装置は、この要求メッセージに対する応答メッセージとして、まず、ヘッダを送信するので、レスポンス/リクエスト実行部35はこれを受信し(S625)、その旨をクライアント状況判断部36に通知する。
この通知を受信したクライアント状況判断部36は、ムービーフラグメントの受信時間を評価するため、タイマを初期化し、時間のカウントを開始させる。また、クライアント状況判断部36は、この評価に用いる変数(カウンタ)を初期化(N1=N2=0)しておく(S626)。なお、タイマの初期値としては、例えば直前に送信したムービーフラグメントのタイムスタンプの値から予め定めた閾値Tthを引いた値等を用いてもよい。
そして、要求メッセージを受信した中継装置は、S624で受信した要求メッセージに対する応答メッセージとして、ヘッダの後に複数のムービーフラグメントをマルチパート化したボディを送信するので、レスポンス/リクエスト実行部35はムービーフラグメントを受信し(S627)、その旨をクライアント状況判断部36に通知する。
また、レスポンス/リクエスト実行部35は、受信したヘッダに含まれる「Content-Type」ヘッダの値から、MIMEマルチパート形式でムービーフラグメントを受信したと判断し、その旨をコンテンツ再生部34に通知すると共に、受信したムービーフラグメントをコンテンツ再生部34に送信する。そして、コンテンツ再生部34は、受信したムービーフラグメントの「X-Timestamp」ヘッダを参照して、そのムービーフラグメントのタイムスタンプを特定し、タイムスタンプを参照しながらムービーフラグメントを再生する。
ここで、クライアント状況判断部36は、受信時間の評価を行う(S628)。具体的には、クライアント状況判断部36は、S626でカウントを開始したタイマの示す時間tと、S627で受信したムービーフラグメントのタイムスタンプTfr(X-Timestampの値)とを比較する。
この比較の結果、t<Tfr−Tthであった場合には、予定受信時間より十分に早いと判断(通信状況が良いことを示す事象を検出したと判断)し、S629に進む。これに対し、Tfr+Tth>tであった場合には、遅延が生じていると判断(通信状況が悪いことを示す事象を検出したと判断)し、S630に進む。一方、上記の何れにも該当しない場合(|t−Tfr|≦Tthの場合)には、S631に進む。
つまり、クライアント状況判断部36は、応答メッセージに含まれるムービーフラグメント1つの受信を開始した後、その次に受信するフラグメントの受信開始までの時間tをカウントし、先のムービーフラグメントに対応付けられたタイムスタンプの値と、次のムービーフラグメントに対応付けられたタイムスタンプの値との差をTfrとし、予め定めたゼロ以上の閾値をTthとして、Tfr+Tth>tであった場合には通信状況が悪いことを示す事象を検出したと判断し、t<Tfr−Tthであった場合には通信状況が良いことを示す事象を検出したと判断する。
S629では、クライアント状況判断部36は、予定受信時間より十分に早くムービーフラグメントを受信した回数のカウンタであるN1をインクリメントする。この後、処理はS631に進む。
S630では、クライアント状況判断部36は、ムービーフラグメントを遅延して受信した回数のカウンタであるN2をインクリメントする。この後、処理はS631に進む。
S631では、レスポンス/リクエスト実行部35は、S624で送信したリクエストで指定されるメディアセグメントに含まれる全てのムービーフラグメントを送信したかを確認し、未受信のものが確認された場合(S631でNO)には、S627の処理に戻る。
一方、全て受信済みであることを確認した場合(S631でYES)には、レスポンス/リクエスト実行部35は、リクエスト対象となっているコンテンツの全てのメディアセグメントを受信したかを確認(S632)し、全て受信済みであることを確認した場合(S632でYES)には処理を終了する。一方、未受信のものが確認された場合(S632でNO)には、クライアント状況判断部36は、S629およびS630で求めたN1、N2を用い、N2−N1>0であるか否かを判定する(S633)。
2−N1>0でなければ、つまり、N2−N1≦0であれば、中継装置を変更せず、S623で選択した中継装置に対して、メディアセグメント番号をインクリメントした要求メッセージを送信する(S624)。この要求メッセージに対する応答メッセージとして、レスポンス/リクエスト実行部35はヘッダを受信し(S625)、その旨をクライアント状況判断部36に通知する。そして、クライアント状況判断部36は、次のメディアセグメントに含まれるムービーフラグメントの受信時間を評価するため、タイマを再度初期化し、時間のカウントを開始させる。また、クライアント状況判断部36は、この評価に用いる変数(カウンタ)も再度初期化(N1=N2=0)する。そして、レスポンス/リクエスト実行部35は、次のメディアセグメントに含まれるムービーフラグメントを受信する(S627)。
一方、N2−N1>0であれば、クライアント状況判断部36は、コンテンツの取得に遅延が生じていることを示す遅延情報を中継装置選択部37に送信する。中継装置選択部37は、クライアント状況判断部36から遅延情報を受信すると、コンテンツ格納先リストに含まれるアドレス情報であって、現在選択しているアドレス情報とは異なる他のアドレス情報を選択する(S634)。中継装置選択部37は、選択したアドレス情報の示すアドレスに存在する中継装置からコンテンツを取得するようにレスポンス/リクエスト実行部35に指示する。
中継装置選択部37からの指示を受けたレスポンス/リクエスト実行部35は、中継装置選択部37が選択した中継装置に対して、メディアセグメント番号をインクリメントした要求メッセージを再度送信する(S624)。
なお、上記では、メディアセグメント単位でコンテンツを取得する中継装置の再選択を行う(S634)例を示したが、ムービーフラグメント単位で中継装置の再選択を行ってもよい。この場合には、例えば、S628で行う受信時間の評価結果に応じて、中継装置を変更し、変更した中継装置に対して要求メッセージを新たに送信し、先に送信した要求メッセージに基づいて送信される、以降のムービーフラグメントを破棄してもよい。
例えば、クライアント状況判断部36は、受信に要した時間が予定時間より十分に早かったムービーフラグメントの数N1と、送信に遅延が生じたムービーフラグメントの数N2とを、S629、630でカウントしておいてもよい。そして、1つのメディアセグメントの送信完了後、N2−N1>0であれば、全体的に遅延があると判断(通信状況が悪いことを示す事象を検出したと判断)して、その旨を中継装置選択部37に通知すればよい。
また、上記では、S633において、クライアント状況判断部36は、N2−N1>0であるか否かを判定して、コンテンツの取得に際し遅延が生じているか否かを判断していたが、これに限るものではない。例えば、ムービーフラグメントを遅延して受信した回数のカウンタであるN2の上限値を予め定めておき、N2の値が予め定めた上限値を超えた時点で、それ以降のムービーフラグメントを破棄して、別の中継装置に切り替えてもよい。
〔実施例3〕
以下、図24に実施例3を示し、本実施形態についてさらに詳しく説明する。実施例3では、クライアント4eであるコンテンツ再生装置に対して、コンテンツ格納先リストに含まれるアドレス情報の何れかからコンテンツの取得を指示するコンテンツ配信システム1bの動作例を示す。図24は、実施例3におけるコンテンツ配信システム1bの動作シーケンスの一例を示す図である。
なお、実施例3では、前提として、コンテンツ格納部5に図21に示すフォーマットのコンテンツ1が格納されており、キャッシュ格納部6a、6cおよびクライアント記憶部8fには、コンテンツ1が既にキャッシュされているものとする。また、サーバ2は、コンテンツ格納先情報に含まれる日時に基づいて、複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成するものとする。また、実施例3では、図25に示す処理の開始時に、送信ログ記憶部12には、図25に示す送信ログ51〜53が記憶されており、コンテンツ格納先情報記憶部13には、図26に示すコンテンツ格納先情報61〜63が記憶されているものとする。そして、レスポンス実行部15が図25に示す送信ログ54〜56を、応答メッセージを送信するごとに作成し、コンテンツ格納先情報生成部17が図26に示すコンテンツ格納先情報64〜67を、コンテンツ送信ログまたはバージョン通知ログ(「送信内容」が「200 OK」または「304 Not Modified」である送信ログ)が送信ログ記憶部12に追加される度に、作成するものとする。
また、コンテンツ再生装置が要求メッセージを送信して、当該要求メッセージに対応する応答メッセージを受信するまでを1つのセッションとする。
図24に示すように、セッション310において、クライアント4eがコンテンツ1の送信を要求する要求メッセージをサーバ2に送信する(リクエスト311)。リクエスト311を受信したサーバ2では、レスポンス実行部15は、中継装置特定部16に取得先の中継装置を複数特定するように指示する。中継装置特定部16は、指示を受けて、コンテンツ格納先情報記憶部13のコンテンツ格納先情報を確認する(処理312)。ここでは、コンテンツ格納先情報記憶部13には、コンテンツ1と対応付けられている格納先として、プロキシ3a、3cおよびクライアント4fが存在するため、コンテンツ格納先情報に含まれる日時に基づいて、中継装置特定部16は、プロキシ3a、クライアント4f、プロキシ3cの優先順位をそれぞれ1、2、3とし、プロキシ3a、クライアント4fおよびプロキシ3cのアドレス情報を含む、優先順位を付加したコンテンツ格納先リストを作成する。レスポンス実行部15は、中継装置特定部16が作成したコンテンツ格納先リストに含まれるアドレス情報を優先順位の高い順に選択し、選択したアドレス情報の示すアドレスに存在する中継装置から、要求したコンテンツを取得するように指示した応答メッセージを、クライアント4eに送信する(レスポンス313)。つまり、レスポンス実行部15は、まず、プロキシ3aからコンテンツを取得するように指示し、プロキシ3aからコンテンツが取得できない、または、取得速度が遅い場合に、クライアント4f、プロキシ3cの順番でコンテンツの取得を実行するようにクライアント4eに指示する。そして、レスポンス実行部15は、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部12に追加する(処理314)。
レスポンス313を受信したクライアント4eでは、中継装置選択部37がサーバ2の指示に基づいて、優先順位が最も高いプロキシ3aを、コンテンツの取得先の中継装置として選択する(処理320)。そして、中継装置選択部37は、レスポンス/リクエスト実行部35に対して、プロキシ3aからコンテンツ1を取得するように指示する。
次に、セッション330において、中継装置選択部37から指示を受けたレスポンス/リクエスト実行部35は、プロキシ3aに対して、コンテンツ1の送信を要求する要求メッセージを送信する(リクエスト331)。リクエスト331を受信したプロキシ3aは、コンテンツ1がキャッシュ格納部6aに格納されているかどうかを確認する(処理332)。キャッシュ格納部6aにはコンテンツ1が既に格納されているため、プロキシ3aは、キャッシュ格納部6aに格納されているコンテンツ1が最新のデータであるかどうかをサーバ2に確認するため、リクエスト331に基づく要求メッセージに「If-Modified-Since」を付加して条件付要求としてサーバ2に送信する(リクエスト333)。リクエスト333を受信したサーバ2では、リクエスト333に「Via」ヘッダが含まれており、リクエスト333が条件付要求の要求メッセージであるため、レスポンス実行部15が、プロキシ3aが保持しているコンテンツ1が最新のデータであるかどうかを確認する(処理334)。レスポンス実行部15は、プロキシ3aが保持しているコンテンツ1が最新のデータであると判定して、プロキシ3aに「304 NOT Modified」の応答メッセージを送信する(レスポンス335)。レスポンス335を受信したプロキシ3aは、キャッシュ格納部6aに格納しているコンテンツ1を読み出し、リクエスト331に対する応答として、クライアント4eに読み出したコンテンツ1を送信する(レスポンス336)。クライアント4eは、レスポンス336を受信して、「movie fragment1〜60」を順に取得する。なお、レスポンス実行部15は、レスポンス335を送信した後、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部12に追加する(処理337)。また、コンテンツ格納先情報生成部17は、コンテンツ1とプロキシ3aのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部13に格納する。さらに、コンテンツ格納先情報生成部17は、コンテンツ1とクライアント4eのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部13に格納する(処理338)。
クライアント状況判断部36は、ムービーフラグメントを受信するごとに受信時間の評価を行い、1つのメディアセグメントを受信した時点で、N2−N1>0であったとする。このとき、クライアント状況判断部36は、プロキシ3aから取得するコンテンツ1の受信速度が予め定めた受信速度より遅いと判断し、その旨を示す遅延情報を中継装置選択部37に通知する(処理340)。
中継装置選択部37は、クライアント状況判断部36から遅延の通知を受けると、現在コンテンツの取得先の中継装置として選択しているプロキシ3aから、優先順位が2番目に高いクライアント4fに変更する(処理350)。つまり、中継装置選択部37は、再選択して、クライアント4fをコンテンツの取得先の中継装置として決定する。そして、中継装置選択部37は、レスポンス/リクエスト実行部35に対して、クライアント4fからコンテンツ1を取得するように指示する。
次に、セッション360において、中継装置選択部37から指示を受けたレスポンス/リクエスト実行部35は、現在、「movie fragment1〜60」まで受信しているため、クライアント4fに対して、コンテンツ1の「movie fragment61」以降の送信を要求する要求メッセージを送信する(リクエスト361)。リクエスト361を受信したクライアント4fは、コンテンツ1がクライアント記憶部8fに格納されているかどうかを確認する(処理362)。クライアント記憶部8fにはコンテンツ1が既に格納されているため、クライアント4fは、クライアント記憶部8fに格納されているコンテンツ1が最新のデータであるかどうかをサーバ2に確認するため、リクエスト361に基づく要求メッセージに「If-Modified-Since」を付加して条件付要求としてサーバ2に送信する(リクエスト363)。リクエスト363を受信したサーバ2では、リクエスト363に「Via」ヘッダが含まれており、リクエスト363が条件付要求の要求メッセージであるため、レスポンス実行部15が、クライアント4fが保持しているコンテンツ1が最新のデータであるかどうかを確認する(処理364)。レスポンス実行部15は、クライアント4fが保持しているコンテンツ1が最新のデータであると判定して、クライアント4fに「304 NOT Modified」の応答メッセージを送信する(レスポンス365)。レスポンス365を受信したクライアント4fは、クライアント記憶部8fに格納しているコンテンツ1の「movie fragment61」以降のデータを順次読み出し、リクエスト361に対する応答として、クライアント4eに読み出したコンテンツ1の「movie fragment61」以降を順番に送信する(レスポンス366)。クライアント4eは、レスポンス366を受信して、「movie fragment61」以降を順に取得する。なお、レスポンス実行部15は、レスポンス365を送信した後、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部12に追加する(処理367)。また、コンテンツ格納先情報生成部17は、コンテンツ1とクライアント4fのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部13に格納する。さらに、コンテンツ格納先情報生成部17は、コンテンツ1とクライアント4eのアドレス情報とを対応付けてコンテンツ格納先情報を生成し、コンテンツ格納先情報記憶部13に格納する(処理368)。
上述のように、本実施形態では、コンテンツ再生装置は、サーバ2から複数の中継装置のアドレス情報を含むコンテンツ格納先リストを受信し、コンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置の何れかからコンテンツを取得する。そして、コンテンツ再生装置は、コンテンツの取得に遅延が生じると、コンテンツを取得する中継装置を、コンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する他の中継装置に変更する。そのため、ネットワーク(特に、コンテンツ再生装置と中継装置との間のネットワーク)の負荷を時間的にも効率よく分散できるようになり、コンテンツ配信システム1bにおいて、よりきめ細かい制御が可能となる。結果的により多数のコンテンツ再生装置に対してより高いサービス品質を保つことができる。
〔実施例3におけるHTTPメッセージ〕
続いて、図24の動作シーケンス図で使用されるリクエストおよびレスポンスの詳細を図27〜図28に示す。図27〜図28は、リクエストまたはレスポンスとして送受信されるHTTPメッセージの一例を示す図であり、図27は、セッション310およびセッション330におけるHTTPメッセージの一例を示す図であり、図28は、セッション360におけるHTTPメッセージの一例を示す図である。
図27の(a)は、図24に示すリクエスト311の、図27の(b)はレスポンス313の、図27の(c)はリクエスト331の、図27の(d)はリクエスト333の、図27の(e)はレスポンス335の、図27の(f)はレスポンス336のHTTPメッセージをそれぞれ示している。
また、図28の(a)は、図24に示すリクエスト361の、図28の(b)はレスポンス363の、図28の(c)はリクエスト365の、図28の(d)はリクエスト366のHTTPメッセージをそれぞれ示している。
〔セッション310およびセッション330におけるHTTPメッセージ〕
まず、セッション310およびセッション330におけるHTTPメッセージを図27に基づいて説明する。なお、図27の(c)〜(e)は、図10の(c)〜(e)にそれぞれ対応しており、図27では、図10のコンテンツ2がMIMEマルチパート形式のコンテンツ1に変更しており、クライアント4aがクライアント4eに、プロキシ3bがプロキシ3aに変更しているだけであるから、セッション330のリクエスト331、リクエスト333およびレスポンス336のHTTPメッセージの説明は省略する。また、図28の(a)〜(d)は、図27の(c)〜(f)にそれぞれ対応しており、図28では、図27のコンテンツ1の「media segment1」が「media segment2」に、プロキシ3aがクライアント4fに変更しているだけであるから、セッション360におけるHTTPメッセージの説明は省略する。なお、ここでは、HTTPメッセージに含まれる要素のうち、本発明に特有の要素を中心に説明し、公知の要素については適宜説明を省略する。
(コンテンツを要求するリクエスト311)
図27の(a)に示すように、クライアント4eからサーバ2に対してコンテンツ1の「media segment1」を要求するリクエスト311に対応するHTTPメッセージには、リクエストラインとヘッダが含まれる。
図27の(a)のリクエストラインには、コンテンツを取得するメソッドを示す「GET」の後に取得するコンテンツを特定する情報が記述されている。具体的には、「/コンテンツ名/メディアセグメント番号」の形式で記述されている。つまり、図27の(a)のHTTPメッセージは、「content 1」の「0」番目(先頭部分)の「media segment1」に対するリクエストということになる。
また、図27の(a)のヘッダには、クライアント4eが処理可能なデータ形式を示す「Accept」ヘッダが含まれており、この「Accept」ヘッダに、MP4フォーマットの動画データを示す情報「video/mp4」が記述されている。それに加えて、MIMEマルチパート形式を示す情報「multipart/media-segment」が記述されている。これにより、このリクエストを送信した装置であるクライアント4eは、MP4フォーマットの動画データをMIMEマルチパート形式で受信可能であることをリクエストの送信先の装置であるサーバ2に伝えることができる。
また、図27の(a)のヘッダには、リクエスト先のサーバを特定する「Host」ヘッダが含まれており、この「Host」ヘッダに、サーバ2のアドレスを示す「example.com」が記述されている。
(コンテンツの取得先を指示するレスポンス313)
図27の(b)に示すように、サーバ2からクライアント4eに対してコンテンツ1の取得先を指示するレスポンス313に対応するHTTPメッセージには、レスポンスラインとヘッダが含まれる。
図27の(b)のレスポンスラインには、プロキシ3を使用するように指示する情報が、「ステータス番号 メッセージ」の形式で記述されている。
また、図27の(b)のヘッダには、使用する中継装置を特定する「Location」ヘッダが含まれている。つまり、図27の(b)のHTTPメッセージは、下記の「Location」ヘッダで指定した中継装置を使用してコンテンツ1を要求するように指示したレスポンスということになる。図示の例では、この「Location」ヘッダに、プロキシ3aのアドレスを示すアドレス情報「http://example-proxy1.com」が記述されている。これにより、このレスポンスを受信した装置であるクライアント4eは、コンテンツ1を要求する相手先である中継装置(プロキシ3a)のアドレス情報を知ることができる。
さらに、図27の(b)のヘッダには、コンテンツ1を保持する、その他の中継装置のアドレス情報を示す「X-Alternative-Proxy-List」ヘッダが含まれており、この「X-Alternative-Proxy-List」ヘッダに、その他の中継装置(ここでは、クライアント4fおよびプロキシ3c)のアドレスを示すアドレス情報「http://example-client2.com, http://example-proxy3.com」が記述されている。これにより、このレスポンスを受信した装置であるクライアント4eは、「Location」ヘッダで指定された中継装置以外にも、コンテンツ1を保持している(可能性のある)中継装置が提示され、コンテンツ1を取得する中継装置を、「Location」ヘッダまたは「X-Alternative-Proxy-List」ヘッダに含まれるアドレス情報の示すアドレスに存在する中継装置から選択することができる。なお、ヘッダの名称中の「X」は、そのヘッダを本実施形態で新規に定義したことを示している。
(プロキシ3aからクライアント4eにコンテンツを送信するレスポンス336)
図27の(f)に示すように、プロキシ3aからクライアント4eに対してコンテンツ1の「media segment1」を送信するレスポンス336に対応するHTTPメッセージには、レスポンスライン、ヘッダ、およびボディが含まれる。
図27の(f)のレスポンスラインには、リクエストを正常に受け付けたことを示す、つまり、要求したコンテンツを送信することを示す情報が記述されている。具体的には、「ステータス番号 応答メッセージ」の形式で記述されている。
ヘッダには、送信するコンテンツに関する情報が記述される。図示の例では、送信するコンテンツの種別を示す「Content-Type」ヘッダ、送信するコンテンツの格納場所(例えば、URI等)を示す「Content-Location」ヘッダ、送信するコンテンツのキャッシュに関する指示を示す「Cache-Control」ヘッダ、メッセージの転送経路を示す転送経路情報である「Via」ヘッダ、および、送信するメディアセグメントのコンテンツ全体に対する位置を示す「X-Media-Segment-Index」ヘッダが含まれている。
図示の例では、「Content-Type」ヘッダにMIMEマルチパート形式を示す情報である「multipart/media-segment」が記述されている。これにより、このヘッダを受信した装置(クライアント4e)は、このヘッダの次に受信するコンテンツが、MIMEマルチパート形式で送信されたメディアセグメントであることを認識することができる。そして、このヘッダには、パートの切れ目が「THIS#STRING#SEPARATES」であることを示す情報「boundary=THIS#STRING#SEPARATES」が含まれている。
また、「Content-Location」ヘッダには、「http://www.example.com/content1/0」というURIが記述されている。上述のように、このURIの末尾の「0」は、コンテンツの先頭部分の「media segment1」を示している。そして、これに続く「media segment2」のURIは「http://www.example.com/content1/1」となっている。このように、メディアセグメントを連番で示すことにより、このレスポンスを受信した装置(クライアント4e)は、この番号をインクリメントしたURIを、次に要求するメディアセグメントのURIとすることができる。
また、「Cache-Control」ヘッダに「must-revalidate」が記述されており、「Via」ヘッダに「example-proxy1.com」が記述されている。
さらに、図示の例では、「X-Media- Segment-Index」ヘッダが含まれている。このヘッダは、コンテンツの全体に対する当該メディアセグメントの再生位置を示すものである。図27の(f)では、「1/60」と記述されており、これは、コンテンツ全体で60のメディアセグメントがあるうち、1番目のメディアセグメントを示している。この情報により、コンテンツの全長及び現在の再生位置が把握できるので、この情報を参照して、コンテンツ中の任意のメディアセグメントにアクセスすることもできる。
ボディには、メディアセグメントを構成する複数のムービーフラグメントがMIMEマルチパート形式で記述される。ここでは、1つのメディアセグメントに1〜60までの60のムービーフラグメントが含まれている。
また、各パート(フラグメント毎)にはヘッダを記述することができる。図示の例では、ムービーフラグメントのコンテンツ種別を示す「Content-Type」ヘッダ、当該ムービーフラグメントのタイムスタンプを示す「X-Timestamp」ヘッダが記述されている。この「X-Timestamp」ヘッダの示すタイムスタンプを参照することにより、ムービーフラグメントを解析することなく、そのムービーフラグメントの再生時間(再生開始タイミング)を特定することができる。そして、各パートには、そのパートのムービーフラグメントのデータ実体(バイナリデータ)が含まれる。
〔クライアントがMIMEマルチパート形式のデータを処理することができない場合〕
本実施形態では、クライアント4であるコンテンツ再生装置がMIMEマルチパート形式のデータを処理可能な場合、すなわちリクエストメッセージの「Accept」ヘッダの値に「multipart/media-segment」が含まれている場合について説明したが、コンテンツ再生装置がMIMEマルチパート形式のデータを処理できないこと(リクエストメッセージの「Accept」ヘッダの値に「multipart/media-segment」が含まれていないこと)も考えられる。
このような場合、中継装置やサーバ2は、MIMEマルチパート形式で応答するのではなく、メディアセグメント内のすべてのムービーフラグメントを結合したものを1つのボディとして応答すればよい。これにより、MIMEマルチパート形式のデータを処理できないコンテンツ再生装置が、受信したコンテンツを再生することが可能となる。
<第4の実施の形態>
本発明の第4の実施形態では、同一のコンテンツを複数のサーバ2が管理している場合に、コンテンツ再生装置とサーバ2との間のネットワークの負荷およびサーバ2の処理負荷をより広く分散できるように、コンテンツリクエストを受信したサーバ2がコンテンツ取得先のサーバ2を複数指定し、コンテンツ再生装置が指定された複数のサーバ2の中から、サーバ2を選択してコンテンツを取得する例を示す。
より詳細には、本実施形態では、コンテンツ再生装置であるクライアント4が、コンテンツリクエストの送信先のサーバ2から指定された複数のサーバ2の中から1つのサーバ2を選択し、選択したサーバ2からコンテンツを取得する。このコンテンツの取得中に、コンテンツの取得に関して遅延が発生した場合、コンテンツリクエストの送信先のサーバ2から指定された複数のサーバ2の中から別のサーバ2を再度選択して、コンテンツを取得するサーバ2を変更する。
本実施形態について図29から図34に基づいて説明すると以下の通りである。第4の実施形態は、第3の実施形態と比べて、コンテンツ配信システムがサーバ2を複数備えていることと、サーバ2およびクライアント4の構成とが異なるだけであり、その他は同様のため、主に、第3の実施形態と異なる点について説明する。
〔コンテンツ配信システム1cの概要〕
まず、本実施形態のコンテンツ配信システム1cの概要について、図29に基づいて説明する。図29は、第4の実施の形態に係るコンテンツ配信システム1cの概要およびコンテンツ配信システム1cを構成する各装置の要部構成を示す図である。
図29に示すように、コンテンツ配信システム1cは、サーバ2a、2bおよび2c、プロキシ3a、3bおよび3c、並びに、クライアント4gおよび4hを含む。また、コンテンツ配信システム1cは、サーバ2a、2b、2cとそれぞれ接続しているコンテンツ格納部5a、5b、5cと、プロキシ3a、3b、3cとそれぞれ接続しているキャッシュ格納部6a、6b、6cと、クライアント4g、4hとそれぞれ接続しているクライアント記憶部8g、8hとを含む。
本実施形態におけるプロキシ3は、第3の実施形態におけるプロキシ3と構成および動作処理が同一であるため、ここではプロキシ3の詳細について説明を省略する。
〔サーバ2について〕
本実施形態におけるサーバ2a、2bおよび2cは、第3の実施形態におけるサーバ2と異なり、中継装置特定部16に代えて、取得先特定部18を備える。また、コンテンツ格納先情報記憶部13は、コンテンツを保持する中継装置のアドレス情報を含むコンテンツ格納先情報だけではなく、コンテンツを保持するサーバ2のアドレス情報を含むコンテンツ格納先情報も記憶する。本実施形態におけるサーバ2a、2bおよび2cは、それ以外の構成は第3の実施形態におけるサーバ2と同様の構成である。
本実施形態におけるサーバ2は、コンテンツ再生装置にコンテンツの取得先のサーバ2を選択させるために、コンテンツ再生装置が要求するコンテンツを保持する(可能性のある)サーバ2を複数特定し、特定した複数のサーバ2のアドレス情報を含むコンテンツ格納先サーバリストをコンテンツ再生装置に提示し、コンテンツ再生装置に対して、提示したコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在するサーバ2の何れかからコンテンツを取得するように指示するものとする。
具体的には、レスポンス実行部15は、コンテンツ再生装置から、直接、コンテンツを要求する要求メッセージを受信すると、取得先特定部18に対して、コンテンツ再生装置が要求したコンテンツを保持する(可能性のある)サーバ2のアドレス情報(例えば、サーバ2のURI等)を特定するように指示する。そして、レスポンス実行部15は、取得先特定部18から、コンテンツ再生装置が要求するコンテンツを保持するサーバ2のアドレス情報を複数含むコンテンツ格納先サーバリストを受信すると、コンテンツ再生装置からの要求メッセージに対する応答として、取得先特定部18が作成したコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在するサーバ2の何れかから、要求したコンテンツを取得するように指示した応答メッセージをコンテンツ再生装置に送信する。
また、レスポンス実行部15は、他のサーバ2のレスポンス実行部15からコンテンツの有無に関する問い合わせがあった場合、自装置と接続するコンテンツ格納部5が問い合わせのあったコンテンツを保持しているか否かを確認する。そして、レスポンス実行部15は、他のサーバ2に対してコンテンツの有無を応答する。例えば、サーバ2bのレスポンス実行部15からサーバ2aのレスポンス実行部15に対してコンテンツの有無に関する問い合わせがあった場合、サーバ2aのレスポンス実行部15は、コンテンツ格納部5aが保持するコンテンツを確認し、コンテンツの有無をサーバ2bに対して応答する。
なお、レスポンス実行部15のその他の処理については、第3の実施形態と同様であるため、ここでは説明を省略する。
取得先特定部18は、レスポンス実行部15の指示に従って、コンテンツ再生装置が要求したコンテンツを保持している(可能性のある)サーバ2を複数特定し、特定した複数のサーバ2のアドレス情報を含むコンテンツ格納先サーバリストを作成するものである。
具体的には、取得先特定部18は、レスポンス実行部15から指示を受けて、コンテンツ格納先情報記憶部13からコンテンツ格納先情報を読み出す。取得先特定部18は、読み出したコンテンツ格納先情報を参照して、コンテンツ再生装置が要求するコンテンツに対応付けられているサーバ2のアドレス情報を複数特定し、特定した複数のアドレス情報を含むコンテンツ格納先サーバリストを作成する。取得先特定部18は、作成したコンテンツ格納先サーバリストをレスポンス実行部15に送信する。
取得先特定部18は、コンテンツ格納先情報記憶部13からコンテンツ格納先情報を読み出す際に、例えば、コンテンツ格納先情報記憶部13にサーバ2のアドレス情報を含むコンテンツ格納先情報が存在しない場合、あるいは、コンテンツ格納先情報が古い場合(コンテンツ格納先情報が含む日時が所定時間前のものである場合)、コンテンツ格納先情報記憶部13が記憶するサーバ2のアドレス情報を含むコンテンツ格納先情報を更新する。
取得先特定部18は、コンテンツ格納先情報の更新が必要であると判断すると、他のサーバ2に対して、要求されたコンテンツを有するかどうかの問い合わせをレスポンス実行部15を経由して行う。そして、各サーバ2からの応答に基づいて、要求されたコンテンツを有すると応答したサーバ2のアドレス情報を特定し、特定したアドレス情報を含むコンテンツ格納先サーバリストを生成し、レスポンス実行部15へ通知する。また、取得先特定部18は、各サーバ2からの応答に基づいて、要求されたコンテンツと、当該コンテンツを有すると応答したサーバ2のアドレス情報と、当該応答を受信した日時とを対応付けてコンテンツ格納先情報を生成し、生成したコンテンツ格納先情報をコンテンツ格納先情報記憶部13に格納する。
なお、取得先特定部18は、所定時間ごとにコンテンツ格納先情報の更新を行ってもよい。
また、取得先特定部18がコンテンツ格納先情報を更新する際に、各サーバ2へのコンテンツの有無の問い合わせを行ってから、その応答を受信するまでの時間を計測し、その時間に基づいてサーバ2に順位付けを行ってもよい。すなわち、上記時間が長い(問い合わせに対する応答に時間がかかった)サーバ2に対しては順位を低く設定し、上記時間が短いサーバ2に対しては順位を高く設定してもよい。そして、取得先特定部18は、作成したコンテンツ格納先サーバリストに含まれるサーバ2のアドレス情報に対して、設定した順位を対応付けてもよい。
また、第3の実施形態と同様に、コンテンツ再生装置とサーバ2との物理的、もしくは、ネットワーク構造的な距離、サーバ2の負荷状況などに基づいて、サーバ2の優先順位を決定してもよい。
また、取得先特定部18は、コンテンツを保持するサーバ2のアドレス情報を含むコンテンツ格納先サーバリストだけではなく、第3の実施形態と同様に、コンテンツを保持する(可能性のある)中継装置のアドレス情報を含むコンテンツ格納先リストを作成してもよい。
コンテンツ格納先情報記憶部13は、中継装置のアドレス情報を含むコンテンツ格納先情報に加えて、コンテンツと、当該コンテンツを保持するサーバ2のアドレス情報と、当該サーバ2からの更新の応答を受信した日時とが対応付けられたコンテンツ格納先情報を記憶するものである。コンテンツ格納先情報記憶部13が記憶するコンテンツ格納先情報は、例えば、図30に示すデータであってよい。図30は、コンテンツ格納先情報記憶部13が記憶するコンテンツ格納先情報の一例を示す図である。
図30に示すように、コンテンツ格納先情報は、プロキシ3もしくはクライアント4がコンテンツを取得した日時または更新の応答を受信した日時である「Date」と、コンテンツを示す「コンテンツID」と、当該コンテンツを保持するプロキシ3、クライアント4またはサーバ2のアドレス情報である「格納先アドレス」とが対応付けられている。
具体的には、図30では、例として、アドレスが「http://srv2.exmaple.com」であるサーバ2がコンテンツ「content1」を保持していることを示すコンテンツ格納先情報75が示されている。
以上、まとめると、本実施形態に係るサーバ2では、レスポンス実行部15が、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する。次に、取得先特定部(コンテンツ格納先情報取得手段)18は、レスポンス実行部15が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、予め定められた他のサーバ2のうち、当該リクエストされたコンテンツを有する他のサーバ2のアドレスを取得する。そして、レスポンス実行部(コンテンツ取得先指示手段)15は、取得先特定部18が取得したアドレスの示す他のサーバ2からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示する。
ここで、上記予め定められた他のサーバ2とは、上記リクエストを受信したサーバ2とネットワーク7で接続されたサーバ2であって、予め所定のルールで定めた範囲のサーバ2である。例えば、サーバ2aが上記リクエストを受信したサーバ2の場合、上記予め定められた他のサーバ2を、サーバ2bおよび2cとしてもよいし、サーバ2bとしてもよいし、さらに、サーバ2bおよびサーバ2cに加えて、サーバ2aがネットワークを介して通信可能な全てのサーバ2としてもよい。
また、取得先特定部18は、上記予め定められた他のサーバ2に対して、上記リクエストされたコンテンツを有するか否かの問い合わせを送信し、当該問い合わせに対して上記リクエストされたコンテンツを有すると応答した他のサーバ2のアドレスを取得する。
また、取得先特定部18は、取得したコンテンツを有する他のサーバ2のアドレスと、当該コンテンツを示すコンテンツ識別情報とを対応付けてコンテンツ格納先情報を生成して、コンテンツ格納先情報記憶部(記憶部)13に格納する。
また、取得先特定部18は、コンテンツ格納先情報記憶部13からコンテンツ格納先情報を読み出し、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含む場合、当該コンテンツ格納先情報から当該コンテンツ識別情報と対応付けられたアドレスを取得し、一方、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含まない場合、上記問い合わせを送信し、上記リクエストされたコンテンツを有する他のサーバ2のアドレスを取得する。
また、取得先特定部18は、上記リクエストされたコンテンツを有する複数のサーバ2の各々のアドレスを取得し、取得した各アドレスと、当該コンテンツを示すコンテンツ識別情報とを含むコンテンツ格納先サーバリストを作成する。そして、レスポンス実行部15は、取得先特定部18が作成したコンテンツ格納先サーバリストに含まれるアドレスの示す他のサーバ2からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示する。
また、本実施形態に係るコンテンツ再生装置として機能するクライアント4では、サーバ2にリクエストを送信し、当該リクエストに対するレスポンスとして上記コンテンツ格納先サーバリストを受信し、受信したコンテンツ格納先サーバリストに含まれる何れかのアドレスの示す他のサーバ2からリクエストしたコンテンツを取得する。
具体的には、クライアント4は、上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の他のサーバ2(例えば、サーバ2b)を、コンテンツ格納先サーバリストに含まれる上記アドレスとは別のアドレスの示す他のサーバ2(例えば、サーバ2c)に変更する取得先選択部(取得先変更手段)38を備える。
〔クライアント4について〕
本実施形態におけるクライアント4は、コンテンツ再生装置として機能する際に、サーバ2から送信されたコンテンツ格納先サーバリストを受信して、受信したコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在するサーバ2の何れかからリクエストしたコンテンツを取得する。
図29に示すクライアント4gおよび4hは、第3の実施形態のクライアント4が備える中継装置選択部37に代えて、取得先選択部38を備える。取得先選択部38は、本実施の形態にて後述するサーバ2を選択する機能に加え、第3の実施形態で示した中継装置選択部37の機能を備える。
レスポンス/リクエスト実行部35は、サーバ2から応答メッセージとして、コンテンツ格納先サーバリストと、当該コンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在するサーバ2の何れかにコンテンツを要求する要求メッセージを送信する指示とを受信する。
レスポンス/リクエスト実行部35がコンテンツ格納先サーバリストおよび上記指示を受信すると、取得先選択部38は、レスポンス/リクエスト実行部35が受信したコンテンツ格納先サーバリストに含まれるアドレス情報の中から何れか1つを選択する。取得先選択部38は、選択したアドレス情報の示すアドレスに存在するサーバ2からコンテンツを取得するように、レスポンス/リクエスト実行部35に指示する。
ここで、取得先選択部38は、コンテンツ格納先サーバリストに含まれるアドレス情報に優先順位が付加されていなければ(コンテンツリクエスト送信先のサーバ2からコンテンツを取得するサーバ2を選択する順序を指示されていなければ)、コンテンツ格納先サーバリストに含まれるアドレス情報の中からランダムに選択してもよいし、予め定められたルール(デフォルト)に基づいて選択してもよいし、自装置との物理的、もしくは、ネットワーク構造的な距離が最も短いサーバ2を選択してもよい。
一方、コンテンツ格納先サーバリストに含まれるアドレス情報に優先順位が付加されている場合、取得先選択部38は、優先順位が最も高いアドレス情報を選択する。
さらに、取得先選択部38は、取得先選択部38が選択したサーバ2から、レスポンス/リクエスト実行部35が取得しているコンテンツの取得速度(コンテンツの受信速度)が予め定めた受信速度よりも遅いことを示す遅延情報をクライアント状況判断部36から受信すると、コンテンツを取得する取得先のサーバ2を、コンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在する他のサーバ2に変更し、変更した他のサーバ2からコンテンツを取得するように、レスポンス/リクエスト実行部35に指示する。
ここで、取得先選択部38は、コンテンツ格納先サーバリストに含まれるアドレス情報に優先順位が付加されていなければ(コンテンツリクエスト送信先のサーバ2からコンテンツを取得するサーバ2を選択する順序を指示されていなければ)、他のサーバ2を、コンテンツ格納先サーバリストに含まれるアドレス情報の中からランダムに選択してもよいし、予め定められたルール(デフォルト)に基づいて選択してもよいし、自装置との物理的、もしくは、ネットワーク構造的な距離が次に短いサーバ2を選択してもよい。
一方、コンテンツ格納先サーバリストに含まれるアドレス情報に優先順位が付加されている場合、取得先選択部38は、次に優先順位が高いアドレス情報を選択する。
クライアント状況判断部36は、第3の実施形態で述べた動作に加えて、次の事象の発生を検出する。具体的には、クライアント状況判断部36は、コンテンツ再生装置がサーバ2から要求したコンテンツを取得する際に、予定よりも遅延してコンテンツが受信されたという事象を検出する。この事象は、コンテンツ再生装置とサーバ2との間のネットワークの通信状況の良し悪し、および/または、当該サーバ2に対する負荷の大きさを示す事象である。クライアント状況判断部36は、予定よりも遅延してコンテンツが受信されたという事象を検出すると、検出した事象を示す遅延情報を取得先選択部38に送信する。
これまでは応答メッセージに、要求したコンテンツを有する他のサーバ2を選択するためのコンテンツ格納先サーバリストが含まれている例について述べたが、サーバ2からの応答メッセージには、この他に、中継装置を選択するためのコンテンツ格納先リストが含まれていてもよい。これらにリストの両者が含まれていた場合、取得先選択部38は、中継装置経由での取得か、他のサーバ2から取得するかを選択するとともに、選択した方の格納先リストに含まれるアドレス情報の中から何れか一つを選択する。
ここで取得先選択部38は、コンテンツ格納先リストとコンテンツ格納先サーバリストに含まれるアドレス情報に優先順位がなければ(サーバ2からコンテンツの取得先を選択する順序を指示されていなければ)、コンテンツ格納先リストあるいはコンテンツ格納先サーバリストに含まれるアドレス情報の中からランダムに選択してもよいし、予め定められたルール(デフォルト)に基づいて選択してもよいし、自装置との物理的、もしくは、ネットワーク構造的な距離が最も短い取得先を選択してもよい。
一方、優先順位が付加されている場合、取得先選択部38は、優先順位が最も高いアドレス情報を選択する。
また、取得先選択部38は、取得先選択部38が選択した取得先(中継装置あるいはサーバ2)から、レスポンス/リクエスト実行部35が取得しているコンテンツの取得速度(コンテンツの受信速度)が予め定めた受信速度よりも遅いことを示す遅延情報をクライアント状況判断部36から受信すると、コンテンツを取得する取得先を、コンテンツ格納先リストあるいはコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在する他の中継装置またはサーバ2に変更し、変更した他の取得先からコンテンツを取得するように、レスポンス/リクエスト実行部35に指示する。
〔各装置が実行する処理について〕
次に、サーバ2およびコンテンツ再生装置として機能するクライアント4が実行する処理について、図31および図32に基づいて説明する。第4の実施形態におけるプロキシ3が実行する処理は、第3の実施形態と同様であり、第4の実施形態における中継装置として機能するクライアント4が実行する処理も、第4の実施形態と同様であるため説明は省略する。また、第4の実施形態では、サーバ2または中継装置の何れかを選択してコンテンツを取得する例を示す。
〔サーバ2が実行する処理について〕
まずは、サーバ2が実行する処理について図31に基づいて説明する。図31は、サーバ2が実行する処理の一例を示すフローチャートである。なお、第3の実施形態と同様の処理については同じ番号を付し、詳細な説明は省略する。
レスポンス実行部15は、コンテンツの送信を要求する要求メッセージを受信するのを待っており、サーバ通信部11を介して、コンテンツの送信を要求する要求メッセージを受信すると(S601)、受信した要求メッセージのヘッダを確認して、受信した要求メッセージが中継装置から送信されたものであるか否かを判定する(S602)。
受信した要求メッセージを送信した主体がコンテンツ再生装置である場合、(S602でNO)、取得先特定部18に対して、コンテンツ再生装置がコンテンツを取得する、その取得先を複数特定するように指示する。
取得先特定部18は、レスポンス実行部15から指示を受けて、コンテンツ格納先情報記憶部13からコンテンツ格納先情報を読み出す(S603)。取得先特定部18は、コンテンツ格納先情報からコンテンツ格納先サーバリストを作成する(S701)。
取得先特定部18は、コンテンツ格納先サーバリストが作成できたかどうかを判断する(S702)。コンテンツ格納先情報を読み出せなかったか、あるいは、格納先の情報が古いと判断したか、などにより、コンテンツ格納先サーバリスト作成できたなかった場合(S702でNO)、レスポンス実行部15に情報の更新を指示する。情報の更新を指示されたレスポンス実行部15は、ネットワークに接続されている他のサーバ2に対して、要求されたコンテンツを有するかどうか、問い合わせを行う(S703)。
レスポンス実行部15は、各サーバ2からの応答結果を取得先特定部18に通知し、取得先特定部18は、通知された応答結果を基に、コンテンツ格納先情報記憶部13に情報の更新を要求し、コンテンツ格納先情報を更新し(S704)、再度、コンテンツ格納先サーバリストを作成する(S705)。
取得先特定部18は、読み出したコンテンツ格納先情報を参照して、コンテンツ再生装置が要求するコンテンツに対応付けられている取得先の中継装置またはサーバ(中継装置)のURIを複数特定し、特定した複数のアドレス情報を含むコンテンツ格納先リストを作成する(S604)。
取得先特定部18は、作成したコンテンツ格納先リストをレスポンス実行部15に送信する。レスポンス実行部15は、取得先特定部18が作成したコンテンツ格納先リストおよび/またはコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在する中継装置またはサーバ2の何れかから、要求したコンテンツを取得するように指示した応答メッセージを、コンテンツ再生装置に送信する(S706)。
レスポンス実行部15は、コンテンツ再生装置に送信した応答メッセージから送信ログを作成し、作成した送信ログを送信ログ記憶部12に追加する(S610)。
なお、受信した要求メッセージを送信した主体が中継装置である場合の処理(S606〜S609)は、第2の実施形態におけるサーバ2の処理(図14のS506〜S509)と同様であるため、ここでは説明を省略する。
〔コンテンツ再生装置として機能するクライアント4が実行する処理について〕
次に、コンテンツ再生装置として機能するクライアント4が実行する処理について図32に基づいて説明する。図32は、コンテンツ再生装置として機能するクライアント4が実行する処理の一例を示すフローチャートである。ただし、第3の実施形態と同様の処理については同じ番号を付し、詳細な説明を省く。さらに、コンテンツの受信処理(図23のS625〜S631)については、第3の実施形態と同様であるため、図32では、S724として記載している。
レスポンス/リクエスト実行部35は、サーバ2にコンテンツの送信を要求する要求メッセージを送信する(S621)。レスポンス/リクエスト実行部35は、要求メッセー
ジに対する応答として、コンテンツ格納先リストおよび/またはコンテンツ格納先サーバリストと、当該コンテンツ格納先リストおよび/またはコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在する中継装置またはサーバ2の何れかにコンテンツを要求する要求メッセージを送信する指示とを含む応答メッセージ受信する(S3721)。
取得先選択部38は、レスポンス/リクエスト実行部35が上記応答メッセージを受信すると、レスポンス/リクエスト実行部35が受信したコンテンツ格納先リストおよび/またはコンテンツ格納先サーバリストに含まれるアドレス情報の中から何れか1つを選択する(S722)。取得先選択部38は、選択したアドレス情報の示すアドレスに存在する取得先からコンテンツを取得するようにレスポンス/リクエスト実行部35に指示する。
取得先選択部38からの指示を受けたレスポンス/リクエスト実行部35は、取得先選択部38が選択した取得先に対して、要求メッセージを送信する(S723)。
要求メッセージを受信した取得先装置は、第3の実施形態で示したコンテンツ取得処理を行う。そして、レスポンス/リクエスト実行部35およびクライアント状況判断部36は、メディアセグメントの取得・再生処理を行う(S724)。
ここで、レスポンス/リクエスト実行部35は、全てのムービーフラグメントを受信すると、リクエスト対象となっているコンテンツの全てのメディアセグメントを受信したかを確認(S632)し、全て受信済みであることを確認した場合(S632でYES)には処理を終了する。一方、未受信のものが確認された場合(S632でNO)には、クライアント状況判断部36は、第3の実施形態と同様に、取得先を変更すべきか否かを判定する(S725)。
取得先の変更を行わないと判断した場合(S725でNO)、コンテンツの取得先を変更せず、S722で選択した取得先に対して、メディアセグメント番号をインクリメントした要求メッセージを送信する(S723)。
取得先の変更を行うと判断した場合(S725でYES)、クライアント状況判断部36は、コンテンツの取得に遅延が生じていることを示す遅延情報を取得先選択部38に送信する。取得先選択部38は、クライアント状況判断部36から遅延情報を受信すると、コンテンツ格納先リストまたはコンテンツ格納先サーバリストに含まれるアドレス情報であって、現在選択しているアドレス情報とは異なる他のアドレス情報を選択する(S726)。取得先選択部38は、選択したアドレス情報の示すアドレスに存在する取得先からコンテンツを取得するようにレスポンス/リクエスト実行部35に指示する。
取得先選択部38からの指示を受けたレスポンス/リクエスト実行部35は、取得先選択部38が選択した取得先に対して、メディアセグメント番号をインクリメントした要求メッセージを再度送信する(S723)。
なお、第3の実施形態と同様に、本実施の形態においても、メディアセグメント単位ではなく、ムービーフラグメント単位で切替を行ってもよい。加えて、その際には、第3の実施形態と同様の切替処理を行っても良い。
〔実施例4〕
以下、図33に実施例4を示し、本実施形態についてさらに詳しく説明する。実施例4では、クライアント4gであるコンテンツ再生装置に対して、コンテンツ格納先リストまたはコンテンツ格納先サーバリストに含まれるアドレス情報の何れかからコンテンツの取得を指示するコンテンツ配信システム1cの動作例を示す。図33は、実施例4におけるコンテンツ配信システム1cの動作シーケンスの一例を示す図である。なお実施例3と同様の処理については、図24と同じ番号を付している。
なお、実施例4では、前提として、コンテンツ格納部5a、5b、5cに図21に示すフォーマットのコンテンツ1が格納されており、各コンテンツ格納部5に格納されているコンテンツ1のメディアセグメントへの分割は同一であるとする。また、キャッシュ格納部6a、6cおよびクライアント記憶部8hには、コンテンツ1が既にキャッシュされているものとする。
また、サーバ2aは、コンテンツ格納先情報に含まれる日時に基づいて、複数のアドレス情報に優先順位を付加してコンテンツ格納先リストを作成するものとする。また、実施例4では、図32に示す処理の開始時に、送信ログ記憶部12には、図25に示す送信ログ51〜53が記憶されており、コンテンツ格納先情報記憶部13には、図26に示すコンテンツ格納先情報61〜63が記憶されているものとする。
また、コンテンツ再生装置が要求メッセージを送信して、当該要求メッセージに対応する応答メッセージを受信するまでを1つのセッションとする。
図33に示すように、セッション810において、クライアント4gがコンテンツ1の送信を要求する要求メッセージをサーバ2aに送信する(リクエスト811)。リクエスト811を受信したサーバ2aでは、レスポンス実行部15は、取得先特定部18に取得先を複数特定するように指示する。取得先特定部18は、指示を受けて、コンテンツ格納先情報記憶部13のコンテンツ格納先情報を確認する(処理812)。コンテンツ格納先情報からコンテンツ格納先サーバリストの有無を確認し、存在しない場合は、サーバ2b、サーバ2cに対して、コンテンツ1の有無を確認する(処理813)。この確認は、例えば、各サーバ2にコンテンツ1のヘッダを要求して応答を確認するなどが考えられる(図33に示すサーバ2cへのリクエスト814およびレスポンス816、並びに、サーバ2cへのリクエスト815およびレスポンス817)。
ここでは、コンテンツ格納先情報記憶部13には、コンテンツ1と対応付けられている格納先として、プロキシ3a、3cおよびクライアント4fが存在するため、コンテンツ格納先情報に含まれる日時に基づいて、取得先特定部18は、プロキシ3a、クライアント4f、プロキシ3cの優先順位をそれぞれ1、2、3とし、プロキシ3a、クライアント4fおよびプロキシ3cのアドレス情報を含む、優先順位を付加したコンテンツ格納先リストを作成する。
加えて、処理813の応答(レスポンス815および817)に基いて、コンテンツ格納先サーバリストを作成する。本実施例では、サーバ2bの応答のほうが、サーバ2cの応答より速かったため、優先順位をそれぞれ1,2とし、これらのアドレス情報と自身のアドレス情報を含む、優先順位を付加したコンテンツ格納先サーバリストを作成する(処理818)。
ここで、サーバ2aの優先順位の設定方法は任意でよい。例えば、サーバ2aの優先順位を常に一番に(他のサーバ2より優先順位を高く)設定してもよい。また、サーバ2bまたはサーバ2cの応答速度が任意の閾値より速い場合は、サーバ2aの優先順位をサーバ2bまたはサーバ2cより低く設定し、上記応答速度が任意の閾値より遅い場合は、サーバ2aの優先順位をサーバ2bまたはサーバ2cより高く設定してもよい。また、サーバ2aの処理負荷が所定の閾値より高い場合は、サーバ2aの優先順位を他のサーバ2より低く設定してもよい。
レスポンス実行部15は、取得先特定部18が作成したコンテンツ格納先リストまたはコンテンツ格納先サーバリストに含まれるアドレス情報をそれぞれ優先順位の高い順に選択し、選択したアドレス情報の示すアドレスに存在する中継装置またはサーバ2から要求したコンテンツを取得する応答メッセージを、クライアント4gに送信する(レスポンス819)。
ここで、レスポンス実行部15は、コンテンツ格納先リストまたはコンテンツ格納先サーバリストのどちらを優先して選択するかを判断する。つまり、レスポンス実行部15は、クライアント4gに対して、中継装置からコンテンツを取得させるか、サーバ2からコンテンツを取得させるかを判断する。
コンテンツ格納先リストまたはコンテンツ格納先サーバリストのどちらを優先して選択するかは任意であってよい。例えば、レスポンス実行部15は、デフォルトの設定に基づいて、コンテンツ格納先リスト(コンテンツ格納先サーバリスト)を優先して選択し、選択したコンテンツ格納先リスト(コンテンツ格納先サーバリスト)が利用できない場合、コンテンツ格納先サーバリスト(コンテンツ格納先リスト)を選択してもよい。
また、レスポンス実行部15は、コンテンツ格納先リストに含まれる(最も優先順位の高い)アドレス情報を含むコンテンツ格納先情報の日時が新しいもの(所定期間以内)であれば、コンテンツ格納先リストを優先して選択し、上記日時が古いもの(所定期間以前)であれば、コンテンツ格納先サーバリストを優先して選択してもよい。また、レスポンス実行部15は、コンテンツ格納先情報が無い状態で、コンテンツ格納先リストに含まれるアドレス情報がデフォルトまたはランダムに決定された場合、コンテンツ格納先サーバリストを優先して選択してもよい。
本例では、レスポンス実行部15は、コンテンツ格納先リストがある場合は、コンテンツ格納先リストを優先して選択することとする。
なお、本実施例においては、サーバ2aからのコンテンツ取得は、基本的には、中継装置を利用しての取得と同じことである(中継装置を利用したコンテンツ取得でも、取得先のアドレスはサーバ2aである)。すなわち、レスポンス実行部15がコンテンツ格納先リストを選択した場合と、レスポンス実行部15がコンテンツ格納先サーバリストを選択し、コンテンツ格納先サーバリストからサーバ2aを選択した場合とは、実質的に同じ処理(第3の実施形態と同様の処理)を行う。また、レスポンス実行部15がコンテンツ格納先サーバリストを選択し、コンテンツ格納先サーバリストからサーバ2bまたはサーバcを選択した場合、サーバbまたはサーバcは、クライアント4gからコンテンツのリクエストを受信すると、第3の実施形態と同様に、所定の中継装置を特定し、特定した中継装置からコンテンツを取得するようにクライアント4gに指示する。
つまり、レスポンス実行部15は、中継装置を利用する場合(コンテンツ格納先リストを選択した場合、および、コンテンツ格納先サーバリストを選択し、コンテンツ格納先サーバリストからサーバ2aを選択した場合)は、まず、プロキシ3aからコンテンツを取得するように指示し、プロキシ3aからコンテンツが取得できない、または、取得速度が遅い場合に、クライアント4f、プロキシ3cの順番でコンテンツの取得を実行するようにクライアント4gに指示する。一方、他のサーバ2を利用する場合は、同様に、サーバ2b、サーバ2cから順にコンテンツ取得を実行するように、クライアント4gに指示する。
そして、レスポンス実行部15は、送信した応答メッセージに基づいて、送信ログを作成し、送信ログ記憶部12に追加する(処理820)。
レスポンス819を受信したクライアント4gでは、取得先選択部38がサーバ2aの指示に基づいて、優先順位が最も高いプロキシ3aを、コンテンツの取得先の候補として選択する(処理830)。そして、取得先選択部38は、レスポンス/リクエスト実行部35に対して、プロキシ3aからコンテンツ1を取得するように指示する。
以下、取得先にプロキシ3aあるいは、他のクライアント(クライアント4f)を選択した場合の処理(セッション840、処理850、処理860およびセッション870)は実施例3(図24に示すセッション330、処理340、処理350、セッション360)と同様なため、説明を省略する。
なお、サーバ2を選択した場合のコンテンツ取得方法は、一般的なHTTPによる取得処理と同様の動作を行う。
また、実施例3では、ムービーフラグメント毎にクライアント状況判断部36が遅延情報を中継装置特定部16に通知していたが、本実施例4では、遅延情報を取得先特定部18に通知する。通知を受けた取得先特定部18は、中継装置特定部16と同様に、取得先の再選択を行う。
上述のように、本実施形態では、コンテンツ再生装置は、サーバ2から複数の中継装置のアドレス情報を含むコンテンツ格納先リストと複数のサーバのアドレス情報を含むコンテンツ格納先サーバリストを受信し、コンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する中継装置またはコンテンツ格納先サーバリストの何れかからコンテンツを取得する。そして、コンテンツ再生装置は、コンテンツの取得に遅延が生じると、コンテンツを取得する取得先を、コンテンツ格納先リストに含まれるアドレス情報の示すアドレスに存在する他の中継装置またはコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在する他のサーバ2に変更する。そのため、ネットワーク(特に、コンテンツ再生装置と中継装置またはサーバ2との間のネットワーク)の負荷を時間的にも効率よく分散できるようになり、コンテンツ配信システム1cにおいて、よりきめ細かい制御が可能となる。結果的により多数のコンテンツ再生装置に対してより高いサービス品質を保つことができる。
また、本実施形態では、コンテンツ再生装置は、サーバ2aから複数の中継装置のアドレス情報を含むコンテンツ格納先リストと複数のサーバのアドレス情報を含むコンテンツ格納先サーバリストを受信する例を示したが、サーバ2aからサーバのアドレス情報を含むコンテンツ格納先サーバリストだけを受信してもよい。同様に、サーバ2aは、コンテンツ再生装置に対して、要求コンテンツを有する他のサーバ2のアドレス情報を含むコンテンツ格納先サーバリストだけを通知してもよい。
〔実施例4におけるHTTPメッセージ〕
続いて、図33の動作シーケンス図で使用されるレスポンス819の詳細を示す。なお、リクエスト811およびその他のリクエストあるいはレスポンスは、実施例3と同様であるため省略する。
〔レスポンス819におけるHTTPメッセージ〕
レスポンス819におけるHTTPメッセージを図34に基づいて説明する。
(コンテンツの取得先を指示するレスポンスR3210)
図34の(a)に示すように、サーバ2aからクライアント4gに対してコンテンツ1の取得先を指示するレスポンス819に対応するHTTPメッセージには、レスポンスラインとヘッダが含まれる。
図34の(a)のレスポンスラインには、中継装置を使用するように指示する情報が、「ステータス番号 メッセージ」の形式で記述されている。
また、図34の(a)のヘッダには、使用する中継装置を特定する「Location」ヘッダが含まれている。つまり、図34のHTTPメッセージは、下記の「Location」ヘッダで指定した中継装置を使用してコンテンツ1を要求するように指示したレスポンスということになる。図示の例では、この「Location」ヘッダに、プロキシ3aのアドレスを示すアドレス情報「http://example-proxy1.com」が記述されている。これにより、このレスポンスを受信した装置であるクライアント4gは、コンテンツ1を要求する相手先である中継装置(プロキシ3a)のアドレス情報を知ることができる。
さらに、図34の(a)のヘッダには、コンテンツ1を保持する、その他の中継装置のアドレス情報を示す「X-Alternative-Proxy-List」ヘッダが含まれており、この「X-Alternative-Proxy-List」ヘッダに、その他の中継装置(ここでは、クライアント4hおよびプロキシ3c)のアドレスを示すアドレス情報「http://example-client2.com, http://example-proxy3.com」が記述されている。これにより、このレスポンスを受信した装置であるクライアント4gは、「Location」ヘッダで指定された中継装置以外にも、コンテンツ1を保持している(可能性のある)中継装置が提示され、コンテンツ1を取得する中継装置を、「Location」ヘッダまたは「X-Alternative-Proxy-List」ヘッダに含まれるアドレス情報の示すアドレスに存在する中継装置から選択することができる。なお、ヘッダの名称中の「X」は、そのヘッダを本実施形態で新規に定義したことを示している。
さらに図34の(a)のヘッダには、コンテンツ1を保持する、その他のサーバのアドレス情報を示す「X-Alternative-Server-List 」ヘッダが含まれており、この「X-Alternative-Server-List 」ヘッダに、コンテンツ1を保持する(可能性のある)、その他のサーバ(ここでは、サーバ2b、サーバ2c)のアドレスを示すアドレス情報「http://svr2.example.com, http://srv3.example.com」が記述されている。これにより、このレスポンスを受信した装置であるクライアント4gは、「Location」ヘッダや「X-Alternative-Proxy-List」ヘッダに含まれる中継装置を経由してコンテンツの取得するだけでなく、「X-Alternative-Server-List」に記述されたサーバ2からコンテンツ1を取得するという選択を行うことができる。
なお、ヘッダの名称中の「X」は、そのヘッダを本実施形態で新規に定義したことを示している。
図34の(a)に示すHTTPメッセージは、サーバ2aが中継装置を利用してコンテンツへアクセスすることを要求するHTTPメッセージである。一方、中継装置を利用せず、他のサーバ2へアクセスすることを指示するメッセージの例を図34の(b)に示す。
図34の(b)では、他のURIを利用してアクセスすることを指示する情報が、「ステータス番号 メッセージ」の形式で記述されている。
さらに、ヘッダには、他のURIを示す「Locataion」ヘッダが含まれており、このURIを利用してコンテンツ1を要求するように指示したものである。
さらに、図34の(a)と同様に、「X-Alternative-Server-List」ヘッダで、他に利用できるサーバ2を記述している。
<第5の実施の形態>
第4の実施形態では、コンテンツ再生装置がコンテンツを取得することができるサーバ2の情報を、HTTPメッセージを利用して、コンテンツ再生装置へ通知する例を示した。
本発明の第5の実施形態では、コンテンツ取得先のサーバ2を、コンテンツに関連するメタデータで通知する例を示す。
なお、本実施形態におけるコンテンツのメタデータとして、現在標準化作業が進められているDASH(Dynamic Adaptive Streaming over HTTP)で策定されているマークアップ言語MPD(Media Presentation Description)を用いて記述される。MPDは、メディアセグメントのアドレスやメディアセグメントの映像ビットレート等の情報が期間ごとに規定されている、動画コンテンツに関するメタデータである。本実施形態では、コンテンツのメタデータを、MPDデータと呼称する。
本実施形態の構成は、図29に示す第4の実施形態の構成と同様であるため、図29を用いて説明する。より詳細には、図29に示すサーバ2aは、コンテンツのメタデータであるMPDデータを用意する。該MPDデータには、コンテンツの符号化方式やビットレートなどの動画コンテンツに関する情報に加えて、該コンテンツを取得するためのサーバ2のアドレス情報や、メディアセグメントを取得するためのアドレス情報が記述される。クライアント4gは、コンテンツ再生に先立って、このMPDデータを取得解析し、MPDデータに記載された複数のサーバ2中から1つのサーバ2を選択する。
加えて、コンテンツのメタデータであるMPDデータは、外部リソースを参照することが可能である形式であるため、これを利用することで、MPDデータの作成時と、実際にMPDデータを利用してコンテンツを再生する時とで、ネットワークやサーバの状況が変わっても、それらの状況を反映し、負荷分散を可能とすることができる。さらに、外部リソースを参照する間隔を短くすることにより、再生時の刻々とした状況に対応となり、よりきめ細かい制御を可能とする。
〔コンテンツ配信システム1cの概要〕
第5の実施形態の構成は、図29に示す本願の第4の実施形態の構成と同様である。機能的には、サーバ2aは、サーバ2aが提供するコンテンツについて、そのコンテンツメタデータであるMPDデータを用意する点が異なり、クライアント4gは、コンテンツ再生時には、アクセスするサーバの情報を、MPDデータから取得し再生する点が異なる。
具体的には、レスポンス実行部(管理手段)15は、コンテンツと、コンテンツのメタデータであって、コンテンツを識別するコンテンツ識別情報と当該コンテンツを有する他のコンテンツ配信装置のアドレスとが対応付けられているコンテンツ格納先情報または当該コンテンツ格納先情報の所在を示す格納先アドレス(外部リソース)を含むメタデータ(MPDデータ)と、を管理する。
レスポンス実行部15は、基本的には、コンテンツ格納部5にコンテンツを格納する際に、当該コンテンツのMPDデータを生成し、必要に応じて、生成したMPDデータを更新する。また、レスポンス実行部15は、外部リソースの作成要求を受けて、外部リソースを作成する。
また、レスポンス実行部(リクエスト判定手段)15は、上記リクエストが、コンテンツリクエストまたはメタデータリクエストの何れであるかを判定する。
また、レスポンス実行部15は、上記コンテンツリクエストであると判定した場合、リクエストされたコンテンツを、当該リクエストの送信元の装置に送信する。一方、レスポンス実行部15は、上記メタデータリクエストであると判定した場合、リクエストされたメタデータを当該リクエストの送信元の装置に送信する。
レスポンス実行部15は、上記リクエストが、コンテンツリクエスト、メタデータリクエスト、格納先アドレスを用いたコンテンツ格納先情報リクエストの何れであるかを判定してもよい。
レスポンス実行部15は、上記格納先アドレス(外部リソース)を用いたコンテンツ格納先情報リクエストであると判定した場合、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信する。
また、取得先特定部18は、上記予め定められた他のコンテンツ配信装置に対して、所定のコンテンツを有するか否かの問い合わせを送信し、当該問い合わせに対して上記所定のコンテンツを有すると応答した他のコンテンツ配信装置のアドレスを取得する。
また、取得先特定部18は、取得した上記所定のコンテンツを有する他のコンテンツ配信装置のアドレスと、当該所定のコンテンツを識別するコンテンツ識別情報とを対応付けてコンテンツ格納先情報を生成して、コンテンツ格納先情報記憶部(記憶部)13に格納する。
また、取得先特定部(更新判定手段)18は、コンテンツ格納先情報記憶部13に格納されているコンテンツ格納先情報を更新するか否かを判定する。
また、レスポンス実行部15が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合で、かつ、取得先特定部18が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新すると判定した場合、取得先特定部18が上記問い合わせを送信して、上記アドレスを取得し、当該アドレスに基づいてコンテンツ格納先情報を生成し、レスポンス実行部15が、当該コンテンツ格納先情報を上記リクエストの送信元の装置に送信する。
また、レスポンス実行部15が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合で、かつ、取得先特定部18が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新しないと判定した場合、レスポンス実行部15が、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信する。
また、上記メタデータは、コンテンツを所定の時間間隔で分割して得られる単位毎に設定したコンテンツ格納先情報の所在を示す格納先アドレスを複数含むものであってよい。
また、上記コンテンツは、複数のメディアセグメントを含み、上記所定の時間間隔で分割されたコンテンツは、少なくとも1つのメディアセグメントを含むものであってよい。
また、上記メタデータは、上記コンテンツ格納先情報を複数含むコンテンツ格納先サーバリストまたは当該コンテンツ格納先サーバリストの所在を示す格納先アドレスを含むものであってよい。
また、コンテンツ再生装置として機能するクライアント4は、サーバ2にメタデータリクエストを送信し、当該リクエストのレスポンスとして上記メタデータを受信し、受信したメタデータに従って、コンテンツを取得する。
また、レスポンス/リクエスト実行部(コンテンツ取得手段)35は、上記受信したメタデータに含まれるコンテンツ格納先サーバリストを受信すると、または、上記受信したメタデータに含まれる格納先アドレスを用いたコンテンツ格納先情報リクエストを送信し、当該リクエストのレスポンスとしてコンテンツ格納先サーバリストを受信すると、受信したコンテンツ格納先サーバリストに含まれる何れかのコンテンツ格納先情報の示すアドレスの示す他のコンテンツ配信装置からコンテンツを取得する。
また、取得先選択部(取得先変更手段)38レスポンス/リクエスト実行部35のコンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先のサーバ2(例えば、サーバ2b)を、コンテンツ格納先サーバリストに含まれる上記アドレスとは別のアドレスの示す他のサーバ2(例えば、サーバ2c)に変更する。
〔コンテンツメタデータ:MPDデータ〕
図35、36および38に、本実施形態で利用するコンテンツメタデータであるMPDデータの記述例を示す。図35は、外部リソースの参照を行っていない例である。コンテンツは、実施形態3と同様に予め定められた単位でフラグメント化され、伝送のために、メディアセグメント化されている。図35の(a)では、「content1/0.mp4」、「content1/1.mp4」などが、content1のメディアセグメントを示す。図35の(a)に示す例では、content1は、12個のメディアセグメントに分割されていることを示す。
MPDデータは、「MPD」をルート要素とするマークアップ言語形式のデータである。MPD開始タグの属性「minBufferTime」の値は、映像をスムーズに再生するために必要な最小の初期バッファリング時間を示しており、属性「type」の値は、後述する「Representation」タグの属性「type」のデフォルト値を示している。すなわち、属性「type」の値は、「Representation」タグにおいて属性「type」が指定されていないリプレセンテーションがオンデマンドストリーミング配信であるかライブストリーミング配信であるかを示している。また、属性「mediaPresentationDuration」はコンテンツの再生時間を示し、本例では、コンテンツの再生時間が120秒であることを記述している。
「MPD」のサブ要素である「Period」は、特定の期間(ピリオド)において再生すべき映像に関する情報が、対応するPeriod開始タグおよび終了タグで囲まれた範囲に記載されていることを示している。Period開始タグの属性「id」は、MPDが提供するコンテンツに含まれる各Periodを識別するための情報であり、各Periodにユニークな値が設定される。
「Period」のサブ要素である「Group」は、Group開始タグおよび終了タグで囲まれた範囲に記載されている1以上のサブ要素「Representation」が同一のリプレゼンテーショングループに属していることを示している。
すなわち、選択された何れか1つのリプレゼンテーションのメディアセグメント(再生対象データ)だけが該当する期間において再生されることを示している。なお、同一グループに属するリプレゼンテーションは、画像サイズ、フレームレート、ビットレート等の再生品質に違いがある可能性はあるものの、再生される内容は同じである。例えば、図35の(b)の例では、2つのリプレゼンテーション(content1とcontent2)が記載されており、どちらかのリプレゼンテーションを選択して、再生を行うことができる。
さらに図35の(a)では、Group開始タグの属性「mimeType」リプレゼンテーションを構成するメディアセグメントに使用されるコーデック種別等を示している。また属性「lang」は、Groupに属するリプレゼンテーションの言語を示している。
また、Group開始タグと終了タグとで囲まれた範囲には、サブ要素「SegmentInfoDefault」が記載されている。このSegmentInfoDefaultは、Group開始タグと終了タグで囲まれた範囲のリプレゼンテーションに共通の情報が記述される。本例では、「SegmentInfoDefault」要素は、さらにサブ要素として、「BaseURL」要素を有する。
BaseURL開始タグと終了タグに囲まれた範囲には、共通のURLが記述される。後述するリプレゼンテーションにURL情報と合わせて、参照先の解決を行う。図35の(a)に示すように、このBaseURLは、複数記述することができる。
Groupを構成するリプレゼンテーションは、「Representation」タグを用いて記述される。図に示すRepresentation開始タグの属性「bandwidth」は、当該リプレゼンテーションのビットレートを示している。
Representation開始タグと終了タグで囲まれた範囲には、サブ要素「Segment」を用いて、メディアセグメント情報が存在することを示し、属する各メディアセグメントを取得するURLは、Segmentタグのサブ要素「Url」の開始タグの属性「sourceURL」を用いて記述される。これらは各メディアセグメントについて記述される。なお、各Urlに共通部分がある場合、前述したBaseURLタグを用いて、記述することも可能である。
図示の例では、BaseURLタグが用いられ、各メディアセグメントのUrlには、ホストを示す記述がないため、BaseURLタグで示される情報を利用して、メディアセグメントのUrlが生成される。すなわち、1番目のメディアセグメントへのアクセスは、BaseURLタグの「http://srv2.example.com/」と、Urlタグで示される「content1/0.mp4」から、「http://srv2.example.com/content1/0.mp4」と生成されるUrlにて行われる。
このように、クライアントが各メディアセグメントを取得する際には、MPDデータの解析結果を下に、各メディアセグメントのUrlを生成し、取得する。
次に、MPDデータにおける外部リソースの参照について、図36〜38を用いて説明する。
本例では、リプレゼンテーションが1つである図35の(a)の例を用いて、詳細を説明する。
上述のように、図35の(a)に示すMPDデータには、各メディアセグメントが格納されるサーバのアドレス情報がBaseURLタグを用いて記述されている。BaseURLタグが複数存在するということは、クライアントは、状況に応じて何れか一つのBaseURLタグを選択することで、最適な状態でメディアセグメントを取得することができる。
しかしながら、通常、MPDデータはサーバ2にコンテンツが格納される時点で生成されることが多い。このため、MPDデータが生成された時点で最適なサーバの情報を収集し、記述を行っても、実際にMPDデータを利用してコンテンツにアクセスする時点では、ネットワーク状況や最適なサーバ情報は変わっている可能性が高い。また、MPDデータの作成後により高速なサーバ等が当該コンテンツの配信のために追加されたとしても、一度作成されたMPDデータを生成しなおさない限り、そのようなサーバを利用することができない。
そこで、MPDの外部リソースへのリンク機能を利用する。そのMPDデータの例が図36である。図36では、図35の(a)でGroupタグを用いて記述されている、サーバ情報(BaseURLタグで記述されている情報)や、各リプレゼンテーションとそれを構成するメディアセグメント(Representationタグで記述されている情報)の記載の代わりに、Group開始タグの属性として、xlinkの記述が用いられている。xlinkは、外部のリソースを参照する機能であり、該記述があるデータを解析する際には、xlinkによってリンクされている外部リソースを取得し、取り込むことで、解析が可能となる。図36で示すように、属性「xlink:href」でリンクされた外部リソースのURLを記述する。属性「xlink:actuate」は、xlink:hrefで示される外部リソースを、どの時点で取得されるかを記述する。xlink:actuateは、必要に応じて取得する「onRequest」、MPDデータの取得と同時に取得する「onLoad」があり、本例では、必要に応じて取得する「onRequest」を用いている。
図37が、外部リソース(http://example.com/content1/resource1.xml)のデータ例を示す図である。図36に示すMPDデータは、xlinkにより、図37に示す外部リソースが取り込まれ、図35の(a)と同等のMPDデータになる。
さらに、本例では、きめ細かい制御を可能とするために、MPDデータを、前述のPeriodタグを用いて、短いPeriodに分割し、各Periodでxlinkによる外部リソースの取り込みを行う。図35の(a)に示すMPDデータおよび図37に示す外部リソースでは、コンテンツは、1つのPeriodで記述されているため、外部リソースを取り込んだとしてもコンテンツ再生開始時点の状況しか反映できない。すなわち、コンテンツが長時間に及ぶ場合、再生開始時点では最適なサーバを選択したとしても、コンテンツ終盤ではネットワークやサーバの状況が変わって、最適と言い難い状況となる可能性もある。さらに、終盤で最適なサーバが、再生開始時に選択されず、外部リソースに記述されなければ、そのサーバを選択する方法を有することはない。
そこで、図38の(a)に、複数のPeriodに分割し、各Periodでxlinkによる外部リソースの取り込みを行うMPDデータの例を示す。図38の(b)〜(d)が、取り込まれる外部リソースの例である。
図38の(b)〜(d)に示す外部リソースは、それぞれ4つのメディアセグメントを有している。1つのメディアセグメントが10秒であるとすると、本例では、図38の(a)に示すMPDデータにおける1つのPeriodは40秒となり、40秒分のデータ取得ごとに外部リソースの取り込みを行う。
上記のように、MPDデータに含まれるサーバ情報を外部リソースとして提供することにより、予め生成するのではなく、クライアントからの要求があった際に、そのときの配信システムやネットワークの状況を反映する外部リソースを生成し提供することが可能となる。
さらに、本実施の形態では、Periodを短い期間と設定することで、ネットワークやサーバの状況をきめ細かく反映することを可能とする。これにより、コンテンツメタデータであるMPDデータの生成タイミングと、MPDデータの利用タイミングが異なっていても、利用タイミング時の状況にあわせた情報を提供可能となる。
〔各装置が実行する処理について〕
次にサーバ2とクライアント4が実行する処理について、図39と図40に基づいて説明する。第5の実施形態におけるプロキシ3a、3b、3cが実行する処理は、第3の実施形態と同じであるため、省略する。
〔サーバ2が実行する処理について〕
まずは、本実施形態におけるサーバ2aの処理について図39に基づいて説明する。図39はサーバ2aが実行する処理の一例を示すフローチャートである。本願の第4の実施形態と同じ処理については、同じ符号を振っている。
レスポンス実行部15は、クライアント4からの要求メッセージを受信するのを待っており、サーバ通信部11を介して、クライアント4からの要求メッセージを受信する(S901)。
サーバ2は、要求メッセージを受信すると、受信した要求メッセージが、コンテンツのリクエストなのか、xlink用データのリクエストなのか、コンテンツメタデータであるMPDデータのリクエストなのかを判断する(S902、S903、S904)。リクエストが、コンテンツメタデータ要求であると判断された場合(S904でYES)、サーバ2は、コンテンツ格納部5から指定のMPDデータを読み出し(S905)、リクエスト送信元の装置へ送信する(S906)。
そして、受信したリクエストがxlinkによる外部リソースデータの取得要求であった場合(S903でYES)、レスポンス実行部15は、取得先特定部18に対して、コンテンツ再生装置がコンテンツを取得するための取得先のサーバを複数特定するように指示する。取得先特定部18は、レスポンス実行部15から指示を受けてコンテンツ格納先情報記憶部13からコンテンツ格納先情報を読み出す(S603)。
取得先特定部18は、コンテンツ格納先情報からコンテンツ格納先サーバリストを作成する。(S701)
取得先特定部18は、コンテンツ格納先サーバリストが作成できたかどうかを判断する。(S702)。コンテンツ格納先情報を読み出せなかったか、あるいは、格納先の情報が古いと判断したか、などにより、コンテンツ格納先サーバリスト作成できたなかった場合、レスポンス実行部15に情報の更新を指示する。情報の更新を指示されたレスポンス実行部15は、ネットワークに接続されている他のサーバ2に対して、要求されたコンテンツを有するかどうか、問い合わせを行う(S703)。
レスポンス実行部15は、各サーバ2からの応答結果を取得先特定部18に通知し、取得先特定部18は、通知された応答結果を基に、コンテンツ格納先情報記憶部13に情報の更新を要求し、コンテンツ格納先情報を更新し(S704)、再度、コンテンツ格納先サーバリストを作成する(S705)。
レスポンス実行部15は、取得先特定部18が作成したコンテンツ格納先サーバリストに含まれるアドレス情報の示すアドレスに存在するサーバ2の何れかから、要求したコンテンツを取得するように指示した外部リソースデータを作成し(S907)、コンテンツ再生装置に送信する(S908)。
一方で、リクエストがコンテンツである場合(S902でYES)、サーバ2は、コンテンツを送信元に対して送信する。なお、このときの処理は、第3の実施の形態におけるサーバ2の処理(図22のS606〜S610)と同様のため、ここでは説明を省略する。
なお、コンテンツリクエストでもなく、xlink用データのリクエストでもなく、MPDデータのリクエストでもない場合(S904でNO)、サーバ2は、受信したリクエストに応じた処理を実行する。例えば、サーバ2は、コンテンツへのリンクが含まれたwebページのデータのGET要求や、コンテンツのファイルサイズやファイルのタイムスタンプなどのHEADリクエスト等を受信した場合、要求に応じた処理を実行する。
〔コンテンツ再生装置として機能するクライアント4が実行する処理について〕
次にコンテンツ再生装置として機能するクライアント4が実行する処理について図40に基づいて説明する。図40は、コンテンツ再生装置として機能するクライアント4が実行する処理の一例を示すフローチャートである。
レスポンス/リクエスト実行部35は、サーバ2にコンテンツに対応するMPDデータの送信を要求する要求メッセージを送信する(S921)。レスポンス/リクエスト実行部35は、要求メッセージに対する応答として、MPDデータを含む応答メッセージを受信する(S922)。受信したメタデータは、レスポンス/リクエスト実行部35で解析され、再生するコンテンツを決定する(S923)。
次に、レスポンス/リクエスト実行部35は、MPDデータの解析結果から再生するコンテンツ(メディアセグメント)のアドレスを取得する。このとき、MPDメタデータからアドレスを取得するために、MPDデータのxlinkで示された外部リソースのデータが必要かどうかを判断する(S924)。アドレスの取得に外部リソースのデータが必要ではないと判断された場合(S924でNO)、このMPDデータの解析を行い、コンテンツ格納先サーバリストを抽出する。抽出したコンテンツ格納先リストは、第4の実施形態におけるクライアント4の処理(図23のS623〜S634)までと同様に、取得先選択部38によりサーバのアドレス情報の一つが選択される。(S928)
一方、アドレスの取得に外部リソースのデータが必要と判断された場合(S924でYES)、xlinkで示された外部リソースのアドレスを用いて、外部リソースデータをリクエストする(S925)。
リクエストした外部リソースデータをxlinkで示されたサーバ2から受信する(S926)と、レスポンス/リクエスト実行部35は、受信したMPDデータの外部リソースを取得したxlinkで示された箇所を、受信した外部リソースデータに置き換え、MPDデータを更新する(S927)。そして、このMPDデータの解析を行い、コンテンツ格納先サーバリストを抽出する。抽出したコンテンツ格納先リストは、第4の実施形態におけるクライアント4の処理(図23のS623〜S634)までと同様に、取得先選択部38によりサーバのアドレス情報の一つが選択される。(S928)
レスポンス/リクエスト実行部35は、選択されたサーバのアドレス情報と取得するメディアセグメントのアドレス情報から、メディアセグメントのリクエストを生成、サーバに対して、リクエストを行う(S929)。そして、第4の実施形態と同様に、メディアセグメントの受信を逐次行う(S724)。なお、メディアセグメントの受信処理は、第4の実施形態と同様であるため、図40では、S724として記載している。
ここで、レスポンス/リクエスト実行部35は、全てのムービーフラグメントを受信すると、リクエスト対象となっているコンテンツの全てのメディアセグメントを受信したかを確認(S632)し、全て受信済みであることを確認した場合(S632でYES)には処理を終了する。
一方、未受信のものが確認された場合(S632でNO)には、レスポンス/リクエスト実行部35は、次のメディアセグメントが取得可能かどうかを、MPDデータの再生対象となっているPeriodに含まれているメディアセグメントを全て受信したかどうかで判断する(S930)。Period内の全てのメディアセグメントを受信していれば(S930でYES)、次のPeriodの取得を行う(S931)。
Period内に受信可能なメディアセグメントがある場合には、次のメディアセグメントの受信処理を進める。そして、クライアント状況判断部36は、第3の実施形態と同様に、取得先を変更すべきか否かを判定する(S725)。判断方法は第4の実施形態で示したものと同様である。そして、メディアセグメントの取得を継続する。
〔実施例5〕
以下に、図41に実施例5を示し、本実施形態についてさらに詳しく説明する。実施例5は、クライアント4であるコンテンツ再生装置に対して、コンテンツ格納先サーバリストに含まれるアドレス情報の何れかからコンテンツの取得の指示するコンテンツ配信システム1cの動作シーケンスの一例を示す図である。
なお、実施例5では、前提として、サーバ2a、2b、2cのそれぞれには、コンテンツ格納部5に図21に示すフォーマットのコンテンツ1と、図38で示す構造のコンテンツ1に対するコンテンツメタデータであるMPDデータと外部リソースデータが格納されている。また、各サーバ2にあるコンテンツ1のメディアセグメントも同じように分割され格納されているとする。
また、実施例4と同様に、コンテンツ再生装置が要求メッセージを送信して、当該要求メッセージに対応する応答メッセージを受信までを1つのセッションとする。
図41に示すように、セッション1010において、クライアント4gがコンテンツ1のMPDデータの送信を要求する要求メッセージをサーバ2aに送信する(リクエスト1011)。リクエスト1011を受信したサーバ2aでは、レスポンス実行部15は、コンテンツ格納部5aから要求されたMPDデータを読み出し(処理1012)、応答メッセージをクライアント4gに送信する(レスポンス1013)。
レスポンス1013を受信したクライアント4gでは、レスポンス/リクエスト実行部35が受信したMPDデータを解析し、メディアセグメントの取得を試みる(処理1020)。そして、取得したMPDデータに、メディアセグメントの所在情報等の取得に必要な外部リソースの参照が含まれると判断されると、サーバ2から外部リソースの取得を行う。
次に、セッション1030において、クライアント4gは、外部リソースデータの要求を行う要求メッセージを送信する(リクエスト1031)。
リクエスト1031を受信したサーバ2aでは、レスポンス実行部15は、取得先特定部18にサーバ2を複数特定するように指示する。取得先特定部18は、指示を受けて、コンテンツ格納先情報記憶部13のコンテンツ格納先情報から格納先サーバリストの生成を行う。(処理812)。ここで、コンテンツ格納先情報記憶部13には、コンテンツ1に関するサーバ情報がないため(処理813)、取得先特定部18は、コンテンツ格納先サーバリストの生成のため、レスポンス実行部15を通して、サーバ2b、2cに対して、コンテンツ1の格納情報を問い合わせする(リクエスト814、815)。そして、問い合わせに対する応答と、応答時間を取得する(レスポンス816、817)。この応答結果からコンテンツ格納先サーバリストを生成する。(処理818)
続いて、レスポンス実行部15は、要求された外部リソースデータをコンテンツ格納部5aから取得し、作成したコンテンツ格納先リストの情報を用いて、該外部リソースデータを更新し、要求された外部リソースデータを作成する(処理1032)。そして、作成した外部リソースデータ含んだ応答メッセージをサーバ通信部11を介して、クライアント4gへ送信する(レスポンス1033)。
レスポンス1033を受信したクライアント4gでは、受信した外部リソースデータを用いて、既に取得したMPDデータを更新する。取得先選択部38は、更新されたMPDデータを用いて、コンテンツの取得先のサーバ2を選択する(処理1040)。このときの選択の方法は、リストの先頭を選択してもよいし、優先度などの情報が付与されていれば、それを元に選択してもよい。また、クライアント状況判断部36から遅延情報を受信していれば、それを考慮して取得先のサーバ2を選択してもよい。
サーバ2を選択すると(ここではサーバ2bとする)、レスポンス/リクエスト実行部35は、MPDからメディアセグメントを取得するためのUrlを生成し、順次取得する(セッション1050)。詳細な取得の処理については、実施例3(実施例4)と同様なため、説明を省略する。
MPDデータのPeriod内の全てのメディアセグメントの取得を完了すると、クライアント4gは、次のPeriodに含まれるメディアセグメントの取得を行う。取得対象のメディアセグメント情報の取得にxlinkによる外部リソースデータが必要である場合は、セッション1030と同様に対象xlinkに記述されたアドレスに対して、外部リソースの要求を行う。
以下、クライアント4およびサーバ2ともセッション1010〜セッション1050までの動作を繰り返し、全てのメディアセグメントを取得し、再生を完了する。
〔課題を解決するための手段〕
本発明に係るコンテンツ配信装置は、上記課題を解決するために、リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置であって、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定手段と、上記判定手段が上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信手段と、上記コンテンツ送信手段が送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成手段と、上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示手段と、を備えることを特徴としている。
本発明に係るコンテンツ配信装置の制御方法は、上記課題を解決するために、リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置の制御方法であって、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定ステップと、上記判定ステップにおいて上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信ステップと、上記コンテンツ送信ステップにおいて送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成ステップと、上記判定ステップにおいて上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示ステップと、を含むことを特徴としている。
上記の構成によれば、中継装置からリクエストを受信すると、コンテンツ送信手段がリクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信し、コンテンツ格納先情報生成手段が上記コンテンツ送信手段が送信したコンテンツと、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成する。また、コンテンツ再生装置からリクエストを受信すると、コンテンツ取得先指示手段が上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示する。ここで、上記中継装置および上記コンテンツ再生装置は、取得したコンテンツを保持するため、上記コンテンツ格納先情報は、どの中継装置またはコンテンツ再生装置がどのコンテンツを保持しているかを示す情報である。
すなわち、コンテンツ配信装置は、過去に送信したコンテンツと、当該コンテンツを保持する中継装置またはコンテンツ再生装置とを対応付けて把握しておき、或るコンテンツ再生装置からリクエストを受信すると、リクエストの送信元のコンテンツ再生装置に直接コンテンツを送信せずに、リクエストされたコンテンツを保持している中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、リクエストの送信元のコンテンツ再生装置に対して指示する。リクエストの送信元のコンテンツ再生装置は、指示された中継装置またはコンテンツ再生装置からリクエストしたコンテンツを取得するため、指示された中継装置またはコンテンツ再生装置が当該コンテンツを保持している場合、リクエストの送信元のコンテンツ再生装置と、指示された中継装置またはコンテンツ再生装置との両者だけでコンテンツの送受信が完了する。つまり、コンテンツ配信装置がコンテンツの送信処理を実行せずに、リクエストの送信元のコンテンツ再生装置がコンテンツを取得することができる。
よって、コンテンツ配信装置からのデータ送出に用いられるネットワークおよびコンテンツ配信装置に対する負荷を抑制することができるという効果を奏する。ここで、コンテンツ配信装置、中継装置、コンテンツ再生装置が実行する処理の中で、コンテンツの送受信処理が最も負荷の掛かる処理であり、それらの装置間のネットワークにおいてもコンテンツの送受信が最も負荷が掛かる。従って、例えば、コンテンツ再生装置の個数が増えて、コンテンツ配信装置に対するリクエストが増えたとしても、コンテンツ配信装置からのデータ送出に用いられるネットワークおよびコンテンツ配信装置に対する負荷の増大を抑制することができるため、コンテンツ配信装置の処理能力の拡大や上記ネットワークの容量の増大を図ることなく、多数のコンテンツ再生装置がコンテンツを取得することができる。
また、本発明に係るコンテンツ配信装置は、上記リクエストが当該リクエストの転送経路を示す転送経路情報を含む場合、上記リクエストの送信元が上記中継装置であると判定する一方、上記リクエストが上記転送経路情報を含まない場合、上記リクエストの送信元が上記コンテンツ再生装置であると判定することが好ましい。
上記の構成によれば、上記判定手段は、上記リクエストが当該リクエストの転送経路を示す転送経路情報を含む場合、上記リクエストの送信元が上記中継装置であると判定する一方、上記リクエストが上記転送経路情報を含まない場合、上記リクエストの送信元が上記コンテンツ再生装置であると判定する。つまり、上記判定手段は、装置から直接リクエストを受信すると、リクエストの送信元がコンテンツ再生装置であると判定し、装置が送信したリクエストが、他の装置のリクエストに基づくリクエストであれば、当該コンテンツ取得装置を中継装置として判定する。
上述のように、リクエストの送信元の中継装置には、リクエストされたコンテンツを送信し、リクエストの送信元のコンテンツ再生装置には、リクエストされたコンテンツを保持する中継装置またはコンテンツ再生装置から当該コンテンツを取得するように指示する。そのため、コンテンツ配信装置は、必ず、指示した中継装置またはコンテンツ再生装置を介してコンテンツ再生装置にコンテンツを送信することができる。従って、指示した中継装置またはコンテンツ再生装置が、リクエストの送信元のコンテンツ再生装置のリクエストしたコンテンツを保持している場合、コンテンツ配信装置が当該コンテンツを送信する必要がないため、コンテンツ配信装置からのデータ送出に用いられるネットワークおよびコンテンツ配信装置に対する負荷を抑制することができる。
また、本発明に係るコンテンツ配信装置は、上記コンテンツ取得先指示手段は、リクエストされたコンテンツに対応付けられたアドレスを含む上記コンテンツ格納先情報が複数存在する場合、当該コンテンツ格納先情報に含まれるアドレスを複数含むコンテンツ格納先リストを作成し、作成したコンテンツ格納先リストに含まれるアドレスの示す中継装置またはコンテンツ再生装置の何れかから上記コンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示することが好ましい。
上記の構成によれば、上記コンテンツ取得先指示手段は、リクエストされたコンテンツに対応付けられたアドレスを含む上記コンテンツ格納先情報が複数存在する場合、当該コンテンツ格納先情報に含まれるアドレスを複数含むコンテンツ格納先リストを作成し、作成したコンテンツ格納先リストに含まれるアドレスの示す中継装置またはコンテンツ再生装置の何れかから上記コンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示する。
そのため、リクエストの送信元のコンテンツ再生装置は、上記コンテンツ格納先リストに含まれるアドレスの示すアドレス中継装置またはコンテンツ再生装置の何れかを選択して、選択した中継装置またはコンテンツ再生装置からコンテンツを取得する。よって、リクエストの送信元のコンテンツ再生装置は、自装置およびコンテンツを保持する中継装置またはコンテンツ再生装置の状況に応じて、最適な装置からコンテンツを取得することができる。
また、本発明に係るコンテンツ配信装置は、上記コンテンツ格納先情報生成手段は、上記コンテンツ送信手段が送信したコンテンツに、当該コンテンツを上記コンテンツ送信手段が送信した日時を対応付けて、上記コンテンツ格納先情報を生成するものであり、上記コンテンツ取得先指示手段は、上記複数のコンテンツ格納先情報に含まれる上記複数のアドレスを、対応付けられている日時が新しい順に並べて、上記複数のアドレスに優先順位を付加して上記コンテンツ格納先リストを作成することが好ましい。
上記の構成によれば、上記コンテンツ格納先情報では、コンテンツと、当該コンテンツを保持する中継装置またはコンテンツ再生装置と、当該中継装置またはコンテンツ再生装置にコンテンツが送信された日時、つまり、当該中継装置またはコンテンツ再生装置がコンテンツを保持した日時とが対応付けられている。そして、上記コンテンツ取得先指示手段は、上記複数のコンテンツ格納先情報に含まれる上記複数のアドレスを、対応付けられている日時が新しい順に並べて、上記複数のアドレスに優先順位を付加して上記コンテンツ格納先リストを作成する。
すなわち、上記コンテンツ格納先リストには、リクエストの送信元のコンテンツ再生装置がリクエストしたコンテンツを保持する中継装置またはコンテンツ再生装置が複数示されており、当該中継装置またはコンテンツ再生装置のコンテンツを保持した順が示されている。そのため、リクエストの送信元のコンテンツ再生装置は、コンテンツ格納先リストを参照して、例えば、コンテンツの取得先の装置として、直近にコンテンツを保持した中継装置またはコンテンツ再生装置を選択することができる。
ここで、例えば、コンテンツ配信装置が送信するコンテンツを新しいデータに更新したり、コンテンツを保持する中継装置またはコンテンツ再生装置が、保持しているコンテンツを破棄したり、改変したりすることも考えられる。このような場合であっても、リクエストの送信元のコンテンツ再生装置は、コンテンツを保持した日時が最も新しい中継装置またはコンテンツ再生装置から取得することにより、コンテンツ配信装置が送信するコンテンツと同じコンテンツをより確実に取得することができる。
また、本発明に係るコンテンツ配信装置は、上記コンテンツ格納先情報に含まれるアドレスに基づいて、当該アドレスの示す中継装置またはコンテンツ再生装置と、上記コンテンツ取得先指示手段がコンテンツの取得先を指示するコンテンツ再生装置との物理的またはネットワーク構造上の距離を算出する距離算出手段をさらに備え、上記コンテンツ取得先指示手段は、上記複数のコンテンツ格納先情報に含まれる上記複数のアドレスを、上記距離算出手段が算出した距離が短い順に並べて、上記複数のアドレスに優先順位を付加して上記コンテンツ格納先リストを作成することが好ましい。
上記の構成によれば、上記距離算出手段が、上記コンテンツ格納先情報に含まれるアドレスに基づいて、当該アドレスの示す中継装置またはコンテンツ再生装置と、上記コンテンツ取得先指示手段がコンテンツの取得先を指示するコンテンツ再生装置との物理的またはネットワーク構造上の距離を算出する。そして、上記コンテンツ取得先指示手段は、上記複数のコンテンツ格納先情報に含まれる上記複数のアドレスを、上記距離算出手段が算出した距離が短い順に並べて、上記複数のアドレスに優先順位を付加して上記コンテンツ格納先リストを作成する。
すなわち、上記コンテンツ格納先リストには、上記コンテンツ取得先指示手段がコンテンツの取得先を指示する、リクエストの送信元のコンテンツ再生装置がリクエストしたコンテンツを保持する中継装置またはコンテンツ再生装置が複数示されており、リクエストの送信元のコンテンツ再生装置との物理的またはネットワーク構造的な距離が近い順に各中継装置またはコンテンツ再生装置が示されている。そのため、リクエストの送信元のコンテンツ再生装置は、コンテンツ格納先リストを参照して、例えば、コンテンツの取得先の装置として、自装置と上記距離が最も近い中継装置またはコンテンツ再生装置を選択することができる。よって、リクエストの送信元のコンテンツ再生装置がコンテンツを取得する際に、ネットワークに掛かる負荷を抑制することができる。
また、本発明に係るコンテンツ配信装置は、上記リクエストに応じたレスポンスの送信先と、当該レスポンスの送信日時とを対応付けて、レスポンス送信記録を作成する送信記録作成手段をさらに備え、上記コンテンツ取得先指示手段は、上記送信記録作成手段が作成したレスポンス送信記録を参照して、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置であって、一定時間以内の上記レスポンス送信記録に含まれていない上記レスポンスの送信先から、当該コンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示することが好ましい。
上記の構成によれば、送信記録作成手段が上記リクエストに応じたレスポンスの送信先と、当該レスポンスの送信日時とを対応付けて、レスポンス送信記録を作成する。そして、上記コンテンツ取得先指示手段は、上記送信記録作成手段が作成したレスポンス送信記録を参照して、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置であって、一定時間以内の上記レスポンス送信記録に含まれていない上記レスポンスの送信先から、当該コンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示する。
ここで、上記コンテンツ取得先指示手段は、上記レスポンス送信記録を参照することにより、上記レスポンスの送信先である中継装置またはコンテンツ再生装置が上記レスポンスを受信した日時を予測することができ、つまり、上記レスポンスの送信先の中継装置またはコンテンツ再生装置がリクエスト送信やレスポンス受信またはそれに付随する処理を行った日時を予測することができる。それゆえ、上記の一定時間以内の上記レスポンス送信記録に含まれていない上記レスポンスの送信先とは、一定時間以内に処理を行っていないと考えられる中継装置またはコンテンツ再生装置である。
すなわち、上記コンテンツ取得先指示手段は、リクエストの送信元のコンテンツ再生装置に対して、リクエストされたコンテンツを保持する中継装置またはコンテンツ再生装置であって、一定時間以内にコンテンツの送受信に関する処理を実行していないと考えられる中継装置またはコンテンツ再生装置から、リクエストされたコンテンツを取得するように指示する。よって、リクエストの送信元のコンテンツ再生装置は、上記コンテンツ取得先指示手段から指示された中継装置またはコンテンツ再生装置からコンテンツを取得する際に、コンテンツの取得先である中継装置またはコンテンツ再生装置の処理量の増大による、リクエストの送信元のコンテンツ再生装置によるコンテンツ取得時に遅延が発生することを抑えることができる。
また、本発明に係るコンテンツ再生装置は、上記コンテンツ配信装置にリクエストを送信し、当該リクエストに対するレスポンスとして上記コンテンツ格納先リストを受信し、受信したコンテンツ格納先リストに含まれるアドレスの示す中継装置またはコンテンツ再生装置の何れかからリクエストしたコンテンツを取得するコンテンツ再生装置であって、上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の中継装置またはコンテンツ再生装置を、コンテンツ格納先リストに含まれるアドレスの示す他の中継装置またはコンテンツ再生装置に変更することを特徴としている。
上記の構成によれば、コンテンツ再生装置は、受信したコンテンツ格納先リストに含まれるアドレスの示す中継装置またはコンテンツ再生装置の何れかを選択する。そして、コンテンツ再生装置は、選択した中継装置またはコンテンツ再生装置からリクエストしたコンテンツを取得する際に、上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の中継装置またはコンテンツ再生装置を、上記選択した中継装置またはコンテンツ再生装置から、コンテンツ格納先リストに含まれるアドレスの示す他の中継装置またはコンテンツ再生装置に変更する。
そのため、コンテンツ再生装置は、コンテンツを取得する受信速度を予め定めた受信速度以上に保つことができ、大きな遅延を発生させることなく、コンテンツを安定的に取得することができる。
また、コンテンツの取得に遅延が発生している場合、取得先である中継装置またはコンテンツ再生装置の処理量が増大しているか、もしくは、コンテンツ再生装置と取得先である中継装置またはコンテンツ再生装置との間のネットワークの通信状態が悪化していること等が考えられる。そのため、コンテンツ再生装置が、遅延の発生に応じて、現在のコンテンツの取得先の中継装置またはコンテンツ再生装置を、他の中継装置またはコンテンツ再生装置に切り替えることによって、取得先の中継装置またはコンテンツ再生装置、および、コンテンツを取得するコンテンツ再生装置と取得先の中継装置またはコンテンツ再生装置との間のネットワークの資源を有効に活用することができる。
また、本発明に係るコンテンツ再生装置は、上記コンテンツ配信装置にリクエストを送信し、当該リクエストに対するレスポンスとして上記コンテンツ格納先リストを受信し、受信したコンテンツ格納先リストにおいて、優先順位が最も高いアドレスの示す中継装置またはコンテンツ再生装置からリクエストしたコンテンツを取得するコンテンツ再生装置であって、上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の中継装置またはコンテンツ再生装置を、コンテンツ格納先リストにおいて優先順位が次のアドレスの示す中継装置またはコンテンツ再生装置に変更することを特徴としている。
上記の構成によれば、コンテンツ再生装置は、受信したコンテンツ格納先リストにおいて、優先順位が最も高いアドレスの示す中継装置またはコンテンツ再生装置を選択する。そして、コンテンツ再生装置は、選択した中継装置またはコンテンツ再生装置からリクエストしたコンテンツを取得する際に、上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の中継装置またはコンテンツ再生装置を、上記選択した中継装置またはコンテンツ再生装置から、コンテンツ格納先リストにおいて優先順位が次のアドレスの示す中継装置またはコンテンツ再生装置に変更する。
そのため、コンテンツ再生装置は、コンテンツを取得する受信速度を予め定めた受信速度以上に保つことができ、大きな遅延を発生させることなく、コンテンツを安定的に取得することができる。
また、優先順位がコンテンツを保持した日時に基づいて付加されている場合、コンテンツを取得するコンテンツ再生装置は、コンテンツ配信装置が送信するコンテンツと同じコンテンツを保持している可能性の高い中継装置またはコンテンツ再生装置から順にコンテンツを取得するため、コンテンツ配信装置が送信するコンテンツと同じコンテンツをより早くより確実に取得することができる。また、優先順位がコンテンツを取得するコンテンツ再生装置との上記距離に基づいて付加されている場合、当該コンテンツ再生装置は、自装置と上記距離が近い中継装置またはコンテンツ再生装置から順にコンテンツを取得するため、ネットワークに掛かる負荷を抑制しながら、コンテンツを安定的に取得することができる。
また、本発明に係るコンテンツ配信システムは、上記コンテンツ配信装置と、上記コンテンツ配信装置にコンテンツの送信をリクエストして、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置と、上記コンテンツ配信装置にコンテンツの送信をリクエストして、上記コンテンツ配信装置から指示された装置から、リクエストしたコンテンツを取得するコンテンツ再生装置とを含むことを特徴としている。
上記の構成によれば、コンテンツ配信システムは、上記コンテンツ配信装置と同様の効果を奏する。
また、本発明に係るコンテンツ配信装置は、リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置であって、
上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定手段と、
上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、予め定められた他のコンテンツ配信装置のうち、当該リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得するコンテンツ格納先情報取得手段と、
上記コンテンツ格納先情報取得手段が取得したアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示手段と、を備えることを特徴としている。
また、本発明に係るコンテンツ配信装置の制御方法は、リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置の制御方法であって、上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定ステップと、上記判定ステップにおいて上記リクエストの送信元がコンテンツ再生装置であると判定された場合、当該リクエストに応じて、上記コンテンツ配信装置と接続された他のコンテンツ配信装置のうち、当該リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得するコンテンツ格納先情報取得ステップと、上記コンテンツ格納先情報取得ステップにおいて取得されたアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示ステップと、を含むことを特徴としている。
上記の構成によれば、上記判定手段が、上記リクエストの送信元が中継装置であるか、コンテンツ再生装置であるかを判定し、上記コンテンツ格納先情報取得手段は、上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、予め定められた他のコンテンツ配信装置のうち、当該リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得する。そして、上記コンテンツ取得先指示手段は、上記コンテンツ格納先情報取得手段が取得したアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示する。
すなわち、コンテンツ配信装置は、コンテンツ再生装置からリクエストを受信すると、リクエストの送信元のコンテンツ再生装置に直接コンテンツを送信せずに、リクエストされたコンテンツを保持している他のコンテンツ配信装置から当該コンテンツを取得するように、リクエストの送信元のコンテンツ再生装置に対して指示する。リクエストの送信元のコンテンツ再生装置は、指示された他のコンテンツ配信装置からリクエストしたコンテンツを取得する。つまり、コンテンツ再生装置からリクエストを受信したコンテンツ配信装置がコンテンツの送信処理を実行せずに、リクエストの送信元のコンテンツ再生装置がコンテンツを取得することができる。
よって、コンテンツ再生装置からリクエストを受信したコンテンツ配信装置からのデータ送出に用いられるネットワークおよび当該コンテンツ配信装置に対する負荷が相対的に大きい場合、他のコンテンツ配信装置からコンテンツを取得させることにより、コンテンツ配信装置からのデータ送出に用いられるネットワークおよび当該コンテンツ配信装置に対する負荷を分散することができるという効果を奏する。
また、本発明に係るコンテンツ配信装置は、上記コンテンツ格納先情報取得手段は、上記予め定められた他のコンテンツ配信装置に対して、上記リクエストされたコンテンツを有するか否かの問い合わせを送信し、当該問い合わせに対して上記リクエストされたコンテンツを有すると応答した他のコンテンツ配信装置のアドレスを取得することが好ましい。
上記の構成によれば、上記コンテンツ格納先情報取得手段は、上記予め定められた他のコンテンツ配信装置に対して、上記リクエストされたコンテンツを有するか否かの問い合わせを送信し、当該問い合わせに対して上記リクエストされたコンテンツを有すると応答した他のコンテンツ配信装置のアドレスを取得する。
上記コンテンツ取得先指示手段は、上記コンテンツ格納先情報取得手段が上記問い合わせを行って取得したアドレスに基づいて、コンテンツを取得するようにコンテンツ再生装置に指示するため、精度の高い(正確な)情報に基づいてコンテンツ再生装置に指示することができる。よって、コンテンツ再生装置は、リクエストしたコンテンツを確実に取得することができる。
また、本発明に係るコンテンツ配信装置は、上記コンテンツ格納先情報取得手段が取得した、コンテンツを有する他のコンテンツ配信装置のアドレスと、当該コンテンツを示すコンテンツ識別情報とを対応付けてコンテンツ格納先情報を生成して、記憶部に格納するコンテンツ格納先情報生成手段をさらに備え、上記コンテンツ格納先情報取得手段は、上記記憶部からコンテンツ格納先情報を読み出し、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含む場合、当該コンテンツ格納先情報から当該コンテンツ識別情報と対応付けられたアドレスを取得し、一方、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含まない場合、上記問い合わせを送信し、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得することが好ましい。
上記の構成によれば、上記コンテンツ格納先情報生成手段は、上記コンテンツ格納先情報取得手段が取得した、コンテンツを有する他のコンテンツ配信装置のアドレスと、当該コンテンツを示すコンテンツ識別情報とを対応付けてコンテンツ格納先情報を生成して、記憶部に格納する。そして、上記コンテンツ格納先情報取得手段は、上記記憶部からコンテンツ格納先情報を読み出し、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含む場合、当該コンテンツ識別情報と対応付けられたアドレスを取得し、一方、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含まない場合、上記問い合わせを送信し、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得する。
すなわち、上記コンテンツ格納先情報取得手段は、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得する際に、上記記憶部に格納されているコンテンツ格納先情報を参照し、上記リクエストされたコンテンツを示すコンテンツ識別情報を含むコンテンツ格納先情報が記憶部に格納されている場合、つまり、以前に同じコンテンツを有する他のコンテンツ配信装置のアドレスを取得していた場合、上記記憶部に格納されているコンテンツ格納先情報からそのアドレスを取得する。
一方、上記記憶部に格納されているコンテンツ格納先情報を参照し、上記リクエストされたコンテンツを示すコンテンツ識別情報を含むコンテンツ格納先情報が記憶部に格納されていない場合、つまり、以前に同じコンテンツを有する他のコンテンツ配信装置のアドレスを取得していない場合、上記問い合わせを送信し、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得する。
ここで、記憶部に格納されているコンテンツ格納先情報に含まれるアドレスの示す他のコンテンツ配信装置は、当該アドレスに対応するコンテンツ識別情報の示すコンテンツを有していると予想される。
そのため、以前に取得したアドレスを利用するという簡単な処理によって、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得することができる。よって、コンテンツ配信装置の処理負荷を軽減することができる。
また、本発明に係るコンテンツ配信装置は、上記コンテンツ格納先情報取得手段は、上記リクエストされたコンテンツを有する複数のコンテンツ配信装置の各々のアドレスを取得し、取得した各アドレスと、当該コンテンツを示すコンテンツ識別情報とを含むコンテンツ格納先サーバリストを作成し、上記コンテンツ取得先指示手段は、上記コンテンツ格納先情報取得手段が作成したコンテンツ格納先サーバリストに含まれるアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示することが好ましい。
上記の構成によれば、上記コンテンツ格納先情報取得手段は、上記リクエストされたコンテンツを有する複数のコンテンツ配信装置の各々のアドレスを取得し、取得した各アドレスと、当該コンテンツを示すコンテンツ識別情報とを含むコンテンツ格納先サーバリストを作成し、上記コンテンツ取得先指示手段は、上記コンテンツ格納先情報取得手段が作成したコンテンツ格納先サーバリストに含まれるアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示する。
すなわち、コンテンツ再生装置は、上記リクエストしたコンテンツを複数の他のコンテンツ配信装置の何れかから取得することが可能になる。よって、他のコンテンツ配信装置からのデータ送出に用いられるネットワークおよび当該他のコンテンツ配信装置に対する負荷をより分散することができる。
また、本発明に係るコンテンツ再生装置は、上記コンテンツ配信装置にリクエストを送信し、当該リクエストに対するレスポンスとして上記コンテンツ格納先サーバリストを受信し、受信したコンテンツ格納先サーバリストに含まれる何れかのアドレスの示す他のコンテンツ配信装置からリクエストしたコンテンツを取得するコンテンツ再生装置であって、
上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の他のコンテンツ配信装置を、コンテンツ格納先サーバリストに含まれる上記アドレスとは別のアドレスの示す他のコンテンツ配信装置に変更する取得先変更手段を備えることを特徴としている。
上記の構成によれば、コンテンツ再生装置は、受信したコンテンツ格納先サーバリストに含まれる何れかのアドレスの示す他のコンテンツ配信装置を選択する。そして、コンテンツ再生装置は、選択した他のコンテンツ配信装置からリクエストしたコンテンツを取得する際に、上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の他のコンテンツ配信装置を、上記選択した他のコンテンツ配信装置とは異なる他のコンテンツ配信装置に変更する。
そのため、コンテンツ再生装置は、コンテンツを取得する受信速度を予め定めた受信速度以上に保つことができ、大きな遅延を発生させることなく、コンテンツを安定的に取得することができる。
また、コンテンツの取得に遅延が発生している場合、取得先である他のコンテンツ配信装置の処理量が増大しているか、もしくは、コンテンツ再生装置と取得先である他のコンテンツ配信装置との間のネットワークの通信状態が悪化していること等が考えられる。そのため、コンテンツ再生装置が、遅延の発生に応じて、現在のコンテンツの取得先の他のコンテンツ配信装置を、それとは異なる他のコンテンツ配信装置に切り替えることによって、取得先の他のコンテンツ配信装置、および、コンテンツを取得するコンテンツ再生装置と取得先の他のコンテンツ配信装置との間のネットワークの資源を有効に活用することができる。
また、本発明に係るコンテンツ配信システムは、上記コンテンツ配信装置と、上記コンテンツ配信装置にコンテンツの送信をリクエストして、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置と、上記コンテンツ配信装置にコンテンツの送信をリクエストして、上記コンテンツ配信装置から指示された装置から、リクエストしたコンテンツを取得するコンテンツ再生装置とを含むことを特徴としている。
上記の構成によれば、コンテンツ配信システムは、上記コンテンツ配信装置と同様の効果を奏する。
また、本発明に係るコンテンツ配信装置は、リクエストに応じて、当該リクエストの送信元にデータを送信するコンテンツ配信装置であって、コンテンツと、コンテンツのメタデータであって、コンテンツを識別するコンテンツ識別情報と当該コンテンツを有する他のコンテンツ配信装置のアドレスとが対応付けられているコンテンツ格納先情報または当該コンテンツ格納先情報の所在を示す格納先アドレスを含むメタデータと、を管理する管理手段と、上記リクエストが、コンテンツリクエストまたはメタデータリクエストの何れであるかを判定するリクエスト判定手段と、上記リクエスト判定手段が上記コンテンツリクエストであると判定した場合、リクエストされたコンテンツを、当該リクエストの送信元の装置に送信する一方、上記リクエスト判定手段が上記メタデータリクエストであると判定した場合、リクエストされたメタデータを当該リクエストの送信元の装置に送信する送信手段とを備えることを特徴としている。
また、本発明に係るコンテンツ配信装置の制御方法は、リクエストに応じて、当該リクエストの送信元にデータを送信するコンテンツ配信装置の制御方法において、コンテンツと、コンテンツのメタデータであって、コンテンツを識別するコンテンツ識別情報と当該コンテンツを有する他のコンテンツ配信装置のアドレスとが対応付けられているコンテンツ格納先情報または当該コンテンツ格納先情報の所在を示す格納先アドレスを含むメタデータと、を管理するコンテンツ配信装置の制御方法であって、上記リクエストが、コンテンツリクエストまたはメタデータリクエストの何れであるかを判定するリクエスト判定ステップと、上記リクエスト判定ステップにおいて上記コンテンツリクエストであると判定された場合、リクエストされたコンテンツを、当該リクエストの送信元の装置に送信する送信ステップと、上記リクエスト判定ステップにおいて上記メタデータリクエストであると判定された場合、リクエストされたメタデータを当該リクエストの送信元の装置に送信する送信ステップとを含むことを特徴としている。
上記の構成によれば、上記管理手段は、コンテンツと、コンテンツのメタデータであって、コンテンツを識別するコンテンツ識別情報と当該コンテンツを有する他のコンテンツ配信装置のアドレスとが対応付けられているコンテンツ格納先情報または当該コンテンツ格納先情報の所在を示す格納先アドレスを含むメタデータと、を管理しており、上記リクエスト判定手段は、上記リクエストが、コンテンツリクエストまたはメタデータリクエストの何れであるかを判定し、上記送信手段は、上記リクエスト判定手段が上記コンテンツリクエストであると判定した場合、リクエストされたコンテンツを、当該リクエストの送信元の装置に送信する一方、上記リクエスト判定手段が上記メタデータリクエストであると判定した場合、リクエストされたメタデータを当該リクエストの送信元の装置に送信する。
すなわち、コンテンツ配信装置は、コンテンツ再生装置からコンテンツリクエストを受信すると、リクエストの送信元のコンテンツ再生装置に直接コンテンツを送信する一方、コンテンツ再生装置からメタデータリクエストを受信すると、リクエストの送信元のコンテンツ再生装置に直接コンテンツを送信せずに、リクエストされたコンテンツを保持している他のコンテンツ配信装置から当該コンテンツを取得するように、リクエストの送信元のコンテンツ再生装置に対して指示する。リクエストの送信元のコンテンツ再生装置は、指示された他のコンテンツ配信装置からリクエストしたコンテンツを取得する。つまり、コンテンツ再生装置がコンテンツのメタデータを使用してコンテンツの取得を要求する場合、コンテンツ再生装置からメタデータリクエストを受信したコンテンツ配信装置がコンテンツの送信処理を実行せずに、他のコンテンツ配信装置が送信処理を実行して、リクエストの送信元のコンテンツ再生装置がコンテンツを取得することができる。
よって、コンテンツ再生装置がコンテンツのメタデータを使用してコンテンツの取得を要求する場合であって、コンテンツ再生装置からリクエストを受信したコンテンツ配信装置からのデータ送出に用いられるネットワークおよび当該コンテンツ配信装置に対する負荷が相対的に大きい場合、他のコンテンツ配信装置からコンテンツを取得させることにより、コンテンツ配信装置からのデータ送出に用いられるネットワークおよび当該コンテンツ配信装置に対する負荷を分散することができるという効果を奏する。
また、本発明に係るコンテンツ配信装置は、上記リクエスト判定手段は、上記リクエストが、コンテンツリクエスト、メタデータリクエスト、格納先アドレスを用いたコンテンツ格納先情報リクエストの何れであるかを判定し、上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合、上記送信手段は、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信することが好ましい。
上記の構成によれば、上記リクエスト判定手段は、上記リクエストが、コンテンツリクエスト、メタデータリクエスト、格納先アドレスを用いたコンテンツ格納先情報リクエストの何れであるかを判定し、上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合、上記送信手段は、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信する。
そのため、コンテンツ配信装置は、コンテンツ再生装置からメタデータリクエストを受信した際に、メタデータに対応するコンテンツの取得先を示すコンテンツ格納先情報を通知するだけではなく、コンテンツ再生装置からコンテンツ格納先情報リクエストを受信した時点における、メタデータに対応するコンテンツの取得先を示すコンテンツ格納先情報を通知することができる。よって、コンテンツ再生装置は、例えば、コンテンツを再生する際に、コンテンツ格納先情報リクエストを送信することによって、コンテンツを再生する時点での当該コンテンツを有する他のコンテンツ配信装置を知ることができる。
従って、コンテンツ配信装置は、コンテンツ再生装置に対して、精度の高い(正確な)情報を通知することができ、コンテンツ再生装置は、コンテンツの取得先の装置からコンテンツを取得できない等のエラーが発生することを抑制することができ、安定的にコンテンツを取得することができる。
また、本発明に係るコンテンツ配信装置は、上記予め定められた他のコンテンツ配信装置に対して、所定のコンテンツを有するか否かの問い合わせを送信し、当該問い合わせに対して上記所定のコンテンツを有すると応答した他のコンテンツ配信装置のアドレスを取得するコンテンツ格納先情報取得手段と、上記コンテンツ格納先情報取得手段が取得した、上記所定のコンテンツを有する他のコンテンツ配信装置のアドレスと、当該所定のコンテンツを識別するコンテンツ識別情報とを対応付けてコンテンツ格納先情報を生成して、記憶部に格納するコンテンツ格納先情報生成手段と、上記記憶部に格納されているコンテンツ格納先情報を更新するか否かを判定する更新判定手段とをさらに備え、上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合で、かつ、上記更新判定手段が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新すると判定した場合、コンテンツ格納先情報取得手段が上記問い合わせを送信して、上記アドレスを取得し、上記コンテンツ格納先情報生成手段が当該アドレスに基づいてコンテンツ格納先情報を生成し、上記送信手段が、当該コンテンツ格納先情報を上記リクエストの送信元の装置に送信し、上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合で、かつ、上記更新判定手段が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新しないと判定した場合、上記送信手段が、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信することが好ましい。
上記の構成によれば、上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定し、かつ、上記更新判定手段が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新すると判定した場合、コンテンツ格納先情報取得手段が上記問い合わせを送信して、上記アドレスを取得し、上記コンテンツ格納先情報生成手段が当該アドレスに基づいてコンテンツ格納先情報を生成し、上記送信手段が、当該コンテンツ格納先情報を上記リクエストの送信元の装置に送信する。一方、上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定し、かつ、上記更新判定手段が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新しないと判定した場合、上記送信手段が、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信する。
すなわち、上記コンテンツ格納先情報取得手段は、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得する際に、上記記憶部に格納されているコンテンツ格納先情報を更新しない場合、上記記憶部に格納されているコンテンツ格納先情報からそのアドレスを取得する。一方、上記記憶部に格納されているコンテンツ格納先情報を更新する場合、上記問い合わせを送信し、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得する。
ここで、上記更新判定手段が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新すると判定した場合とは、例えば、記憶部に格納されているコンテンツ格納先情報が古い場合や、上記リクエストされたコンテンツを示すコンテンツ識別情報を含むコンテンツ格納先情報が記憶部に格納されていない場合、つまり、以前に同じコンテンツを有する他のコンテンツ配信装置のアドレスを取得していない場合などである。
そのため、記憶部に格納されているコンテンツ格納先情報を更新しない場合、以前に取得したアドレスを利用するという簡単な処理によって、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得することができる。よって、コンテンツ配信装置の処理負荷を軽減することができる。
また、記憶部に格納されているコンテンツ格納先情報を更新することにより、コンテンツ配信装置は、コンテンツ再生装置に対して、精度の高い(正確な)情報を通知することができ、コンテンツ再生装置は、コンテンツの取得先の装置からコンテンツを取得できない等のエラーが発生することを抑制することができ、安定的にコンテンツを取得することができる。
また、本発明に係るコンテンツ配信装置は、上記メタデータは、コンテンツを所定の時間間隔で分割して得られる単位毎に設定したコンテンツ格納先情報の所在を示す格納先アドレスを複数含むものであることが好ましい。
上記の構成によれば、上記メタデータは、コンテンツを所定の時間間隔で分割して得られる単位毎に設定したコンテンツ格納先情報の所在を示す格納先アドレスを複数含むものである。そのため、コンテンツ配信装置は、コンテンツ再生装置に対して、例えば、コンテンツを所定の時間間隔で分割して得られる単位毎に、異なるコンテンツ格納先情報を通知することができる。
よって、コンテンツ配信装置は、コンテンツ再生装置に対して、コンテンツの取得先の自由度をより大きくすることができる。従って、コンテンツ配信装置からのデータ送出に用いられるネットワークおよび当該コンテンツ配信装置に対する負荷をより分散することができる。
また、本発明に係るコンテンツ配信装置は、上記コンテンツは、複数のメディアセグメントを含み、上記所定の時間間隔で分割されたコンテンツは、少なくとも1つのメディアセグメントを含むものであることが好ましい。
上記の構成によれば、上記所定の時間間隔で分割されたコンテンツは、少なくとも1つのメディアセグメントを含むものである。よって、コンテンツの取得先の自由度を、メディアセグメント単位で管理することができる。
また、本発明に係るコンテンツ配信装置は、上記メタデータは、上記コンテンツ格納先情報を複数含むコンテンツ格納先サーバリストまたは当該コンテンツ格納先サーバリストの所在を示す格納先アドレスを含むものであることが好ましい。
上記の構成によれば、上記メタデータは、上記コンテンツ格納先情報を複数含むコンテンツ格納先サーバリストまたは当該コンテンツ格納先サーバリストの所在を示す格納先アドレスを含む。そのため、コンテンツ配信装置は、コンテンツ再生装置に対して、メタデータに対応するコンテンツを複数の他のコンテンツ配信装置の何れかから取得させることが可能になる。よって、他のコンテンツ配信装置からのデータ送出に用いられるネットワークおよび当該他のコンテンツ配信装置に対する負荷をより分散することができる。
また、本発明に係るコンテンツ再生装置は、上記コンテンツ配信装置にメタデータリクエストを送信し、当該リクエストのレスポンスとして上記メタデータを受信し、受信したメタデータに従って、コンテンツを取得するコンテンツ再生装置であって、 上記受信したメタデータに含まれるコンテンツ格納先サーバリストを受信すると、または、上記受信したメタデータに含まれる格納先アドレスを用いたコンテンツ格納先情報リクエストを送信し、当該リクエストのレスポンスとしてコンテンツ格納先サーバリストを受信すると、受信したコンテンツ格納先サーバリストに含まれる何れかのコンテンツ格納先情報の示すアドレスの示す他のコンテンツ配信装置からコンテンツを取得するコンテンツ取得手段と、上記コンテンツ取得手段のコンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の他のコンテンツ配信装置を、コンテンツ格納先サーバリストに含まれる上記アドレスとは別のアドレスの示す他のコンテンツ配信装置に変更する取得先変更手段とを備えることを特徴としている。
上記の構成によれば、上記コンテンツ取得手段は、受信したメタデータに基づいて、コンテンツ格納先サーバリストを受信すると、受信したコンテンツ格納先サーバリストに含まれる何れかのコンテンツ格納先情報の示すアドレスの示す他のコンテンツ配信装置からコンテンツを取得し、上記取得先変更手段は、上記コンテンツ取得手段のコンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の他のコンテンツ配信装置を、コンテンツ格納先サーバリストに含まれる上記アドレスとは別のアドレスの示す他のコンテンツ配信装置に変更する。
そのため、コンテンツ再生装置は、コンテンツを取得する受信速度を予め定めた受信速度以上に保つことができ、大きな遅延を発生させることなく、コンテンツを安定的に取得することができる。
また、コンテンツの取得に遅延が発生している場合、取得先である他のコンテンツ配信装置の処理量が増大しているか、もしくは、コンテンツ再生装置と取得先である他のコンテンツ配信装置との間のネットワークの通信状態が悪化していること等が考えられる。そのため、コンテンツ再生装置が、遅延の発生に応じて、現在のコンテンツの取得先の他のコンテンツ配信装置を、それとは異なる他のコンテンツ配信装置に切り替えることによって、取得先の他のコンテンツ配信装置、および、コンテンツを取得するコンテンツ再生装置と取得先の他のコンテンツ配信装置との間のネットワークの資源を有効に活用することができる。
また、本発明に係るコンテンツ配信システムは、上記コンテンツ配信装置と、上記コンテンツ配信装置にコンテンツの送信をリクエストして、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置と、上記コンテンツ配信装置にコンテンツを要求するコンテンツリクエストを送信して、当該コンテンツ配信装置からコンテンツを取得するコンテンツ再生装置であって、上記コンテンツ配信装置にコンテンツのメタデータを要求するメタデータリクエストを送信して、当該コンテンツ配信装置からメタデータを受信し、受信したメタデータに基づいて、当該メタデータに対応するコンテンツを取得するコンテンツ再生装置とを含むことを特徴としている。
上記の構成によれば、コンテンツ配信システムは、上記コンテンツ配信装置と同様の効果を奏する。
なお、上記コンテンツ配信装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記コンテンツ配信装置の各手段として動作させることにより、上記コンテンツ配信装置をコンピュータにて実現させる制御プログラム、及びそれを記録したコンピュータ読み取り可能な記録媒体も本発明の範疇に入る。
〔補足〕
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
最後に、サーバ2、プロキシ3およびクライアント4の各ブロック、特にサーバ制御部14、プロキシ制御部22およびクライアント制御部32は、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
すなわち、サーバ2、プロキシ3およびクライアント4は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるサーバ2、プロキシ3およびクライアント4の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記サーバ2、プロキシ3およびクライアント4に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、サーバ2、プロキシ3およびクライアント4を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。
本発明は、コンテンツを再生するクライアントからの要求に応じて、サーバからクライアントにコンテンツを配信するコンテンツ配信システム、および、当該システムを構成するコンテンツ配信装置、中継装置、コンテンツ再生装置に利用することができる。
1、1a、1b、1c コンテンツ配信システム
2 サーバ(コンテンツ配信装置)
3 プロキシ(中継装置)
4 クライアント(コンテンツ再生装置、中継装置)
15 レスポンス実行部(判定手段、コンテンツ送信手段、コンテンツ取得先指示手段、送信記録作成手段、リクエスト判定手段、送信手段)
16 中継装置特定部(コンテンツ取得先指示手段、距離算出手段)
17 コンテンツ格納先情報生成部(コンテンツ格納先情報生成手段)
18 取得先特定部(コンテンツ格納先情報取得手段、コンテンツ格納先情報生成手段、更新判定手段)
35 レスポンス/リクエスト実行部(コンテンツ取得手段)
37 中継装置選択部(中継装置変更手段)
38 取得先特定部(取得先変更手段)

Claims (28)

  1. リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置であって、
    上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定手段と、
    上記判定手段が上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信手段と、
    上記コンテンツ送信手段が送信したコンテンツを識別するコンテンツ識別情報と、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成手段と、
    上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツを示すコンテンツ識別情報に対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示手段と、を備えることを特徴とするコンテンツ配信装置。
  2. 上記判定手段は、上記リクエストが当該リクエストの転送経路を示す転送経路情報を含む場合、上記リクエストの送信元が上記中継装置であると判定する一方、上記リクエストが上記転送経路情報を含まない場合、上記リクエストの送信元が上記コンテンツ再生装置であると判定することを特徴とする請求項1に記載のコンテンツ配信装置。
  3. 上記コンテンツ取得先指示手段は、リクエストされたコンテンツを示すコンテンツ識別情報に対応付けられたアドレスを含む上記コンテンツ格納先情報が複数存在する場合、当該コンテンツ格納先情報に含まれるアドレスを複数含むコンテンツ格納先リストを作成し、作成したコンテンツ格納先リストに含まれるアドレスの示す中継装置またはコンテンツ再生装置の何れかから上記コンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示することを特徴とする請求項1または2に記載のコンテンツ配信装置。
  4. 上記コンテンツ格納先情報生成手段は、上記コンテンツ送信手段が送信したコンテンツを示すコンテンツ識別情報に、当該コンテンツを上記コンテンツ送信手段が送信した日時を対応付けて、上記コンテンツ格納先情報を生成するものであり、
    上記コンテンツ取得先指示手段は、上記複数のコンテンツ格納先情報に含まれる上記複数のアドレスを、対応付けられている日時が新しい順に並べて、上記複数のアドレスに優先順位を付加して上記コンテンツ格納先リストを作成することを特徴とする請求項3に記載のコンテンツ配信装置。
  5. 上記コンテンツ格納先情報に含まれるアドレスに基づいて、当該アドレスの示す中継装置またはコンテンツ再生装置と、上記コンテンツ取得先指示手段がコンテンツの取得先を指示するコンテンツ再生装置との物理的またはネットワーク構造上の距離を算出する距離算出手段をさらに備え、
    上記コンテンツ取得先指示手段は、上記複数のコンテンツ格納先情報に含まれる上記複数のアドレスを、上記距離算出手段が算出した距離が短い順に並べて、上記複数のアドレスに優先順位を付加して上記コンテンツ格納先リストを作成することを特徴とする請求項3に記載のコンテンツ配信装置。
  6. 上記リクエストに応じたレスポンスの送信先と、当該レスポンスの送信日時とを対応付けて、レスポンス送信記録を作成する送信記録作成手段をさらに備え、
    上記コンテンツ取得先指示手段は、上記送信記録作成手段が作成したレスポンス送信記録を参照して、上記コンテンツ格納先情報において、リクエストされたコンテンツに対応付けられたアドレスの示す中継装置またはコンテンツ再生装置であって、一定時間以内の上記レスポンス送信記録に含まれていない上記レスポンスの送信先から、当該コンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示することを特徴とする請求項1〜5の何れか1項に記載のコンテンツ配信装置。
  7. 請求項3に記載のコンテンツ配信装置にリクエストを送信し、当該リクエストに対するレスポンスとして上記コンテンツ格納先リストを受信し、受信したコンテンツ格納先リストに含まれるアドレスの示す中継装置またはコンテンツ再生装置の何れかからリクエストしたコンテンツを取得するコンテンツ再生装置であって、
    上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の中継装置またはコンテンツ再生装置を、コンテンツ格納先リストに含まれるアドレスの示す他の中継装置またはコンテンツ再生装置に変更することを特徴とするコンテンツ再生装置。
  8. 請求項4または5に記載のコンテンツ配信装置にリクエストを送信し、当該リクエストに対するレスポンスとして上記コンテンツ格納先リストを受信し、受信したコンテンツ格納先リストにおいて、優先順位が最も高いアドレスの示す中継装置またはコンテンツ再生装置からリクエストしたコンテンツを取得するコンテンツ再生装置であって、
    上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の中継装置またはコンテンツ再生装置を、コンテンツ格納先リストにおいて優先順位が次のアドレスの示す中継装置またはコンテンツ再生装置に変更する中継装置変更手段を備えることを特徴とするコンテンツ再生装置。
  9. 請求項1〜6の何れか1項に記載のコンテンツ配信装置と、
    上記コンテンツ配信装置にコンテンツの送信をリクエストして、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置と、
    上記コンテンツ配信装置にコンテンツの送信をリクエストして、上記コンテンツ配信装置から指示された装置から、リクエストしたコンテンツを取得するコンテンツ再生装置とを含むことを特徴とするコンテンツ配信システム。
  10. リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置の制御方法であって、
    上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定ステップと、
    上記判定ステップにおいて上記リクエストの送信元が中継装置であると判定した場合、当該リクエストに応じて、リクエストされたコンテンツを、当該リクエストの送信元である中継装置に送信するコンテンツ送信ステップと、
    上記コンテンツ送信ステップにおいて送信したコンテンツを示すコンテンツ識別情報と、その送信先である中継装置またはその転送先であるコンテンツ再生装置のアドレスとを対応付けて、コンテンツ格納先情報を生成するコンテンツ格納先情報生成ステップと、
    上記判定ステップにおいて上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、上記コンテンツ格納先情報において、リクエストされたコンテンツを示すコンテンツ識別情報に対応付けられたアドレスの示す中継装置またはコンテンツ再生装置から当該コンテンツを取得するように、当該リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示ステップと、を含むことを特徴とするコンテンツ配信装置の制御方法。
  11. リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置であって、
    上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定手段と、
    上記判定手段が上記リクエストの送信元がコンテンツ再生装置であると判定した場合、当該リクエストに応じて、予め定められた他のコンテンツ配信装置のうち、当該リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得するコンテンツ格納先情報取得手段と、
    上記コンテンツ格納先情報取得手段が取得したアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示手段と、を備えることを特徴とするコンテンツ配信装置。
  12. 上記コンテンツ格納先情報取得手段は、上記予め定められた他のコンテンツ配信装置に対して、上記リクエストされたコンテンツを有するか否かの問い合わせを送信し、当該問い合わせに対して上記リクエストされたコンテンツを有すると応答した他のコンテンツ配信装置のアドレスを取得することを特徴とする請求項11に記載のコンテンツ配信装置。
  13. 上記コンテンツ格納先情報取得手段が取得した、コンテンツを有する他のコンテンツ配信装置のアドレスと、当該コンテンツを示すコンテンツ識別情報とを対応付けてコンテンツ格納先情報を生成して、記憶部に格納するコンテンツ格納先情報生成手段をさらに備え、
    上記コンテンツ格納先情報取得手段は、上記記憶部からコンテンツ格納先情報を読み出し、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含む場合、当該コンテンツ格納先情報から当該コンテンツ識別情報と対応付けられたアドレスを取得し、一方、読み出したコンテンツ格納先情報が上記リクエストされたコンテンツを示すコンテンツ識別情報を含まない場合、上記問い合わせを送信し、上記リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得することを特徴とする請求項12に記載のコンテンツ配信装置。
  14. 上記コンテンツ格納先情報取得手段は、上記リクエストされたコンテンツを有する複数のコンテンツ配信装置の各々のアドレスを取得し、取得した各アドレスと、当該コンテンツを示すコンテンツ識別情報とを含むコンテンツ格納先サーバリストを作成し、
    上記コンテンツ取得先指示手段は、上記コンテンツ格納先情報取得手段が作成したコンテンツ格納先サーバリストに含まれるアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示することを特徴とする請求項11〜13の何れか1項に記載のコンテンツ配信装置。
  15. 請求項14に記載のコンテンツ配信装置にリクエストを送信し、当該リクエストに対するレスポンスとして上記コンテンツ格納先サーバリストを受信し、受信したコンテンツ格納先サーバリストに含まれる何れかのアドレスの示す他のコンテンツ配信装置からリクエストしたコンテンツを取得するコンテンツ再生装置であって、
    上記コンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の他のコンテンツ配信装置を、コンテンツ格納先サーバリストに含まれる上記アドレスとは別のアドレスの示す他のコンテンツ配信装置に変更する取得先変更手段を備えることを特徴とするコンテンツ再生装置。
  16. 請求項11〜14の何れか1項に記載のコンテンツ配信装置と、
    上記コンテンツ配信装置にコンテンツの送信をリクエストして、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置と、
    上記コンテンツ配信装置にコンテンツの送信をリクエストして、上記コンテンツ配信装置から指示された装置から、リクエストしたコンテンツを取得するコンテンツ再生装置とを含むことを特徴とするコンテンツ配信システム。
  17. リクエストに応じて、当該リクエストの送信元にコンテンツを送信するコンテンツ配信装置の制御方法であって、
    上記リクエストの送信元が、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置であるか、リクエストしたコンテンツを再生するコンテンツ再生装置であるか、を判定する判定ステップと、
    上記判定ステップにおいて上記リクエストの送信元がコンテンツ再生装置であると判定された場合、当該リクエストに応じて、上記コンテンツ配信装置と接続された他のコンテンツ配信装置のうち、当該リクエストされたコンテンツを有する他のコンテンツ配信装置のアドレスを取得するコンテンツ格納先情報取得ステップと、
    上記コンテンツ格納先情報取得ステップにおいて取得されたアドレスの示す他のコンテンツ配信装置からコンテンツを取得するように、上記リクエストの送信元であるコンテンツ再生装置に指示するコンテンツ取得先指示ステップと、を含むことを特徴とするコンテンツ配信装置の制御方法。
  18. リクエストに応じて、当該リクエストの送信元にデータを送信するコンテンツ配信装置であって、
    コンテンツと、コンテンツのメタデータであって、コンテンツを識別するコンテンツ識別情報と当該コンテンツを有する他のコンテンツ配信装置のアドレスとが対応付けられているコンテンツ格納先情報または当該コンテンツ格納先情報の所在を示す格納先アドレスを含むメタデータと、を管理する管理手段と、
    上記リクエストが、コンテンツリクエストまたはメタデータリクエストの何れであるかを判定するリクエスト判定手段と、
    上記リクエスト判定手段が上記コンテンツリクエストであると判定した場合、リクエストされたコンテンツを、当該リクエストの送信元の装置に送信する一方、上記リクエスト判定手段が上記メタデータリクエストであると判定した場合、リクエストされたメタデータを当該リクエストの送信元の装置に送信する送信手段とを備えることを特徴とするコンテンツ配信装置。
  19. 上記リクエスト判定手段は、上記リクエストが、コンテンツリクエスト、メタデータリクエスト、格納先アドレスを用いたコンテンツ格納先情報リクエストの何れであるかを判定し、
    上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合、上記送信手段は、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信することを特徴とする請求項18に記載のコンテンツ配信装置。
  20. 上記予め定められた他のコンテンツ配信装置に対して、所定のコンテンツを有するか否かの問い合わせを送信し、当該問い合わせに対して上記所定のコンテンツを有すると応答した他のコンテンツ配信装置のアドレスを取得するコンテンツ格納先情報取得手段と、
    上記コンテンツ格納先情報取得手段が取得した、上記所定のコンテンツを有する他のコンテンツ配信装置のアドレスと、当該所定のコンテンツを識別するコンテンツ識別情報とを対応付けてコンテンツ格納先情報を生成して、記憶部に格納するコンテンツ格納先情報生成手段と、
    上記記憶部に格納されているコンテンツ格納先情報を更新するか否かを判定する更新判定手段とをさらに備え、
    上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合で、かつ、上記更新判定手段が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新すると判定した場合、コンテンツ格納先情報取得手段が上記問い合わせを送信して、上記アドレスを取得し、上記コンテンツ格納先情報生成手段が当該アドレスに基づいてコンテンツ格納先情報を生成し、上記送信手段が、当該コンテンツ格納先情報を上記リクエストの送信元の装置に送信し、
    上記リクエスト判定手段が上記格納先アドレスを用いたコンテンツ格納先情報リクエストであると判定した場合で、かつ、上記更新判定手段が上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を更新しないと判定した場合、上記送信手段が、上記格納先アドレスによりその所在が示されるコンテンツ格納先情報を上記リクエストの送信元の装置に送信することを特徴とする請求項19に記載のコンテンツ配信装置。
  21. 上記メタデータは、コンテンツを所定の時間間隔で分割して得られる単位毎に設定したコンテンツ格納先情報の所在を示す格納先アドレスを複数含むものであることを特徴とする請求項20に記載のコンテンツ配信装置。
  22. 上記コンテンツは、複数のメディアセグメントを含み、
    上記所定の時間間隔で分割されたコンテンツは、少なくとも1つのメディアセグメントを含むものであることを特徴とする請求項21に記載のコンテンツ配信装置。
  23. 上記メタデータは、上記コンテンツ格納先情報を複数含むコンテンツ格納先サーバリストまたは当該コンテンツ格納先サーバリストの所在を示す格納先アドレスを含むものであることを特徴とする請求項20〜22の何れか1項に記載のコンテンツ配信装置。
  24. 請求項23に記載のコンテンツ配信装置にメタデータリクエストを送信し、当該リクエストのレスポンスとして上記メタデータを受信し、受信したメタデータに従って、コンテンツを取得するコンテンツ再生装置であって、
    上記受信したメタデータに含まれるコンテンツ格納先サーバリストを受信すると、または、上記受信したメタデータに含まれる格納先アドレスを用いたコンテンツ格納先情報リクエストを送信し、当該リクエストのレスポンスとしてコンテンツ格納先サーバリストを受信すると、受信したコンテンツ格納先サーバリストに含まれる何れかのコンテンツ格納先情報の示すアドレスの示す他のコンテンツ配信装置からコンテンツを取得するコンテンツ取得手段と、
    上記コンテンツ取得手段のコンテンツを取得する受信速度が、予め定めた受信速度よりも遅い場合、上記コンテンツを取得する取得先の他のコンテンツ配信装置を、コンテンツ格納先サーバリストに含まれる上記アドレスとは別のアドレスの示す他のコンテンツ配信装置に変更する取得先変更手段とを備えることを特徴とするコンテンツ再生装置。
  25. 請求項18〜23の何れか1項に記載のコンテンツ配信装置と、
    上記コンテンツ配信装置にコンテンツの送信をリクエストして、リクエストしたコンテンツを保持して、リクエストしたコンテンツをコンテンツ再生装置に転送する中継装置と、
    上記コンテンツ配信装置にコンテンツを要求するコンテンツリクエストを送信して、当該コンテンツ配信装置からコンテンツを取得するコンテンツ再生装置であって、上記コンテンツ配信装置にコンテンツのメタデータを要求するメタデータリクエストを送信して、当該コンテンツ配信装置からメタデータを受信し、受信したメタデータに基づいて、当該メタデータに対応するコンテンツを取得するコンテンツ再生装置とを含むことを特徴とするコンテンツ配信システム。
  26. リクエストに応じて、当該リクエストの送信元にデータを送信するコンテンツ配信装置の制御方法において、コンテンツと、コンテンツのメタデータであって、コンテンツを識別するコンテンツ識別情報と当該コンテンツを有する他のコンテンツ配信装置のアドレスとが対応付けられているコンテンツ格納先情報または当該コンテンツ格納先情報の所在を示す格納先アドレスを含むメタデータと、を管理するコンテンツ配信装置の制御方法であって、
    上記リクエストが、コンテンツリクエストまたはメタデータリクエストの何れであるかを判定するリクエスト判定ステップと、
    上記リクエスト判定ステップにおいて上記コンテンツリクエストであると判定された場合、リクエストされたコンテンツを、当該リクエストの送信元の装置に送信する送信ステップと、
    上記リクエスト判定ステップにおいて上記メタデータリクエストであると判定された場合、リクエストされたメタデータを当該リクエストの送信元の装置に送信する送信ステップとを含むことを特徴とするコンテンツ配信装置の制御方法。
  27. 請求項1〜6、11〜14、18〜23の何れか1項に記載のコンテンツ配信装置を動作させるための制御プログラムであって、コンピュータを上記各手段として機能させるための制御プログラム。
  28. 請求項27に記載の制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2012525391A 2010-07-20 2011-07-15 コンテンツ配信装置、コンテンツ再生装置、コンテンツ配信装置の制御方法、および、コンテンツ再生装置の制御方法 Pending JPWO2012011450A1 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2010163367 2010-07-20
JP2010163367 2010-07-20
JP2011053614 2011-03-10
JP2011053614 2011-03-10
PCT/JP2011/066279 WO2012011450A1 (ja) 2010-07-20 2011-07-15 コンテンツ配信装置、コンテンツ再生装置、コンテンツ配信システム、コンテンツ配信装置の制御方法、制御プログラム、および、記録媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2016133253A Division JP2016181289A (ja) 2010-07-20 2016-07-05 コンテンツ再生装置、および、コンテンツ再生装置の制御方法

Publications (1)

Publication Number Publication Date
JPWO2012011450A1 true JPWO2012011450A1 (ja) 2013-09-09

Family

ID=45496872

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012525391A Pending JPWO2012011450A1 (ja) 2010-07-20 2011-07-15 コンテンツ配信装置、コンテンツ再生装置、コンテンツ配信装置の制御方法、および、コンテンツ再生装置の制御方法
JP2016133253A Pending JP2016181289A (ja) 2010-07-20 2016-07-05 コンテンツ再生装置、および、コンテンツ再生装置の制御方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2016133253A Pending JP2016181289A (ja) 2010-07-20 2016-07-05 コンテンツ再生装置、および、コンテンツ再生装置の制御方法

Country Status (6)

Country Link
US (1) US20130117413A1 (ja)
EP (1) EP2597869A4 (ja)
JP (2) JPWO2012011450A1 (ja)
CN (1) CN103119958A (ja)
BR (1) BR112013001376A8 (ja)
WO (1) WO2012011450A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016516316A (ja) * 2013-02-04 2016-06-02 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. ストリーミング・メディア・データを送信するための方法および装置

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8135912B2 (en) 2009-05-18 2012-03-13 Hola Networks, Ltd. System and method of increasing cache size
JP5143287B2 (ja) * 2009-09-18 2013-02-13 株式会社東芝 中継装置
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
KR20120034550A (ko) 2010-07-20 2012-04-12 한국전자통신연구원 스트리밍 컨텐츠 제공 장치 및 방법
US9467493B2 (en) 2010-09-06 2016-10-11 Electronics And Telecommunication Research Institute Apparatus and method for providing streaming content
CN103081504B (zh) * 2010-09-06 2017-02-08 韩国电子通信研究院 提供串流内容的方法及装置
IL210169A0 (en) 2010-12-22 2011-03-31 Yehuda Binder System and method for routing-based internet security
US9230019B2 (en) 2010-12-23 2016-01-05 Virtuanet Llc Semantic information processing
US10652343B2 (en) * 2011-06-08 2020-05-12 Koninklijke Kpn N.V. Locating and retrieving segmented content
US9590814B2 (en) * 2011-08-01 2017-03-07 Qualcomm Incorporated Method and apparatus for transport of dynamic adaptive streaming over HTTP (DASH) initialization segment description fragments as user service description fragments
EP3764687B1 (en) 2011-10-21 2021-11-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Resource management concept
US8953478B2 (en) * 2012-01-27 2015-02-10 Intel Corporation Evolved node B and method for coherent coordinated multipoint transmission with per CSI-RS feedback
US9219929B2 (en) * 2012-02-27 2015-12-22 Fritz Barnes Enhanced startup and channel change for fragmented media stream delivery
US10805656B1 (en) * 2012-06-28 2020-10-13 Google Llc Content restriction system
US20140006538A1 (en) * 2012-06-28 2014-01-02 Bytemobile, Inc. Intelligent Client-Side Caching On Mobile Devices
JP6064249B2 (ja) 2012-07-09 2017-01-25 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 動的適応ストリーミングオーバーハイパーテキスト転送プロトコルクライアント挙動フレームワークおよびセッション管理の実装
JP6074933B2 (ja) * 2012-07-19 2017-02-08 沖電気工業株式会社 映像配信装置、映像配信プログラム、キャッシュ制御装置、キャッシュ制御プログラム、映像配信システム及び映像配信方法
CN104854839B (zh) * 2012-10-19 2018-10-12 交互数字专利控股公司 Http流传输的多假设速率自适应
US9135274B2 (en) * 2012-11-21 2015-09-15 General Electric Company Medical imaging workflow manager with prioritized DICOM data retrieval
CN108540834B (zh) 2013-01-16 2021-04-20 华为技术有限公司 由用户端设备实现的媒体内容流的方法和装置
JP6135958B2 (ja) * 2013-01-16 2017-05-31 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ダウンロード及びストリーミングのためのコンテンツの記憶及び送信
EP2782320A1 (en) 2013-03-20 2014-09-24 Telefonica S.A. Method, system and devices for dynamic content distribution
CN104125516B (zh) * 2013-04-24 2018-09-28 华为技术有限公司 媒体文件接收、媒体文件发送方法和装置及系统
US9444863B2 (en) * 2013-06-06 2016-09-13 Intel Corporation Manager for DASH media streaming
JP2015002513A (ja) * 2013-06-18 2015-01-05 ソニー株式会社 コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム
WO2015009723A1 (en) * 2013-07-15 2015-01-22 Huawei Technologies Co., Ltd. Just-in-time dereferencing of remote elements in dynamic adaptive streaming over hypertext transfer protocol
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
JP2015049650A (ja) * 2013-08-30 2015-03-16 ソニー株式会社 サーバ装置、情報処理方法、プログラム、端末装置、およびコンテンツ供給システム
US10410244B2 (en) 2013-11-13 2019-09-10 Bi Science (2009) Ltd Behavioral content discovery
KR102123439B1 (ko) * 2013-11-20 2020-06-16 삼성전자 주식회사 이동 망에서 비디오 트래픽의 사용자 만족도 최적화를 고려한 혼잡 완화 방법 및 그 장치
WO2015081218A1 (en) 2013-11-27 2015-06-04 Interdigital Patent Holdings, Inc. Media presentation description
FR3015832A1 (fr) * 2013-12-23 2015-06-26 Orange Technique de controle du routage d'une requete relative a un service
US10033824B2 (en) * 2014-06-30 2018-07-24 Samsung Electronics Co., Ltd. Cache manifest for efficient peer assisted streaming
TWI587696B (zh) * 2014-09-12 2017-06-11 佳世達科技股份有限公司 資料同步播放的方法
KR102656605B1 (ko) * 2014-11-05 2024-04-12 삼성전자주식회사 복수의 단말기들 간의 화면 공유를 제어하는 방법, 장치 및 기록 매체
JP6393837B2 (ja) * 2015-02-11 2018-09-19 ヴィド スケール インコーポレイテッド Http上の動的適応ストリーミング(dash)における一般化されたhttpヘッダのためのシステムおよび方法
WO2016174960A1 (ja) * 2015-04-30 2016-11-03 ソニー株式会社 受信装置、送信装置、およびデータ処理方法
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US11108883B2 (en) 2015-09-04 2021-08-31 Google Llc Systems and methods for remote network topology discovery
JP6504004B2 (ja) * 2015-09-29 2019-04-24 ブラザー工業株式会社 通信装置、通信システムおよびコンピュータプログラム
EP4170995A1 (en) 2016-03-04 2023-04-26 Convida Wireless, LLC Request processing in the service layer
US11704300B2 (en) * 2017-06-23 2023-07-18 Charter Communications Operating, Llc Apparatus and methods for packetized data management and delivery in a digital content distribution network
EP3767494B1 (en) 2017-08-28 2023-02-15 Bright Data Ltd. Method for improving content fetching by selecting tunnel devices
US11190374B2 (en) 2017-08-28 2021-11-30 Bright Data Ltd. System and method for improving content fetching by selecting tunnel devices
CN109842567B (zh) * 2017-11-24 2020-12-25 华为技术有限公司 数据分发方法以及分发服务器
JP7183762B2 (ja) * 2018-12-19 2022-12-06 日本電信電話株式会社 サーバ選択装置、サーバ選択方法及びプログラム
LT3780547T (lt) 2019-02-25 2023-03-10 Bright Data Ltd. Turinio parsisiuntimo, naudojant url bandymų mechanizmą, sistema ir būdas
EP4027618A1 (en) 2019-04-02 2022-07-13 Bright Data Ltd. Managing a non-direct url fetching service
US11445270B2 (en) 2020-04-15 2022-09-13 Comcast Cable Communications, Llc Content information for manifest determination
CN111669438B (zh) * 2020-05-27 2022-10-04 北京百度网讯科技有限公司 直播消息传输方法、装置、电子设备及介质
WO2022190639A1 (ja) * 2021-03-11 2022-09-15 ソニーグループ株式会社 情報処理装置および方法、並びに情報処理端末
JP7463314B2 (ja) 2021-03-23 2024-04-08 Kddi株式会社 コンテンツ配信ネットワークのクライアント装置及びプログラム
JP2022180956A (ja) * 2021-05-25 2022-12-07 富士通株式会社 情報処理装置,プログラム及び情報処理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002268979A (ja) * 2001-03-07 2002-09-20 Nippon Telegr & Teleph Corp <Ntt> ダウンロード方法及び装置、ダウンロード用プログラム並びにそのプログラムを記録した記録媒体
JP2003223378A (ja) * 2002-01-29 2003-08-08 Fujitsu Ltd コンテンツデリバリネットワークサービス方法及びシステム
JP2005303927A (ja) * 2004-04-15 2005-10-27 Sony Corp 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム
US20100011117A1 (en) * 2008-07-09 2010-01-14 Apple Inc. Video streaming using multiple channels

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7194549B1 (en) * 2000-09-06 2007-03-20 Vulcan Patents Llc Multicast system using client forwarding
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
JP4359019B2 (ja) * 2002-03-13 2009-11-04 富士フイルム株式会社 動画ストリーム送信方法
WO2003090468A1 (en) * 2002-04-19 2003-10-30 Opentv, Inc. Supporting common interactive television functionality through presentation engine syntax
US7653689B1 (en) * 2002-05-17 2010-01-26 Abacast, Inc. Intelligent virtual content distribution network system and method
KR100608715B1 (ko) 2003-09-27 2006-08-04 엘지전자 주식회사 QoS보장형 멀티미디어 스트리밍 서비스 시스템 및 방법
US9176955B2 (en) * 2005-03-09 2015-11-03 Vvond, Inc. Method and apparatus for sharing media files among network nodes
US20100235432A1 (en) * 2006-08-21 2010-09-16 Telefonaktiebolaget L M Ericsson Distributed Server Network for Providing Triple and Play Services to End Users
US7903652B2 (en) * 2006-12-14 2011-03-08 At&T Intellectual Property I, L.P. System and method for peer to peer video streaming
US20090031381A1 (en) * 2007-07-24 2009-01-29 Honeywell International, Inc. Proxy video server for video surveillance
WO2009036461A2 (en) * 2007-09-13 2009-03-19 Lightspeed Audio Labs, Inc. System and method for streamed-media distribution using a multicast, peer-to-peer network
CN102573882A (zh) * 2009-04-28 2012-07-11 塔尔甘塔治疗公司 用奥利万星治疗细菌感染的方法
PL2497267T3 (pl) * 2009-11-03 2015-02-27 Ericsson Telefon Ab L M Strumieniowanie z opcjonalną rozgłoszeniową transmisją segmentów danych
US8789196B2 (en) * 2010-05-28 2014-07-22 Adobe Systems Incorporated System and method for providing content protection of linearly consumed content with a bidirectional protocol for license acquisition
US9596522B2 (en) * 2010-06-04 2017-03-14 Mobitv, Inc. Fragmented file structure for live media stream delivery

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002268979A (ja) * 2001-03-07 2002-09-20 Nippon Telegr & Teleph Corp <Ntt> ダウンロード方法及び装置、ダウンロード用プログラム並びにそのプログラムを記録した記録媒体
JP2003223378A (ja) * 2002-01-29 2003-08-08 Fujitsu Ltd コンテンツデリバリネットワークサービス方法及びシステム
JP2005303927A (ja) * 2004-04-15 2005-10-27 Sony Corp 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム
US20100011117A1 (en) * 2008-07-09 2010-01-14 Apple Inc. Video streaming using multiple channels

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6011044858; R. Fielding et al.: RFC 2616 Hypertext Transfer Protocol HTTP/1.1 , 199906, "14.45 Via" *
JPN6016012223; R. Fielding: Request for Comments: 1808 Relative Uniform Resource Locators , 199506 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016516316A (ja) * 2013-02-04 2016-06-02 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. ストリーミング・メディア・データを送信するための方法および装置

Also Published As

Publication number Publication date
JP2016181289A (ja) 2016-10-13
CN103119958A (zh) 2013-05-22
EP2597869A1 (en) 2013-05-29
WO2012011450A1 (ja) 2012-01-26
EP2597869A4 (en) 2013-12-18
US20130117413A1 (en) 2013-05-09
BR112013001376A2 (pt) 2016-05-17
BR112013001376A8 (pt) 2017-10-17

Similar Documents

Publication Publication Date Title
JP2016181289A (ja) コンテンツ再生装置、および、コンテンツ再生装置の制御方法
US10609101B2 (en) Streaming of segmented content
US10009659B2 (en) System and method for hybrid push-based streaming
KR101737325B1 (ko) 멀티미디어 시스템에서 멀티미디어 서비스의 경험 품질 감소를 줄이는 방법 및 장치
KR101616152B1 (ko) 컴퓨터 구현 방법 및 컴퓨터 시스템
US9438654B2 (en) Fragment interface into dynamic adaptive streaming over hypertext transfer protocol presentations
JP2015133701A (ja) クライアント端末においてマルチメディアコンテンツのセグメントの来るシーケンスをダウンロードする方法、及び対応する端末
EP3207682B1 (en) Managing concurrent streaming of media streams
WO2016174960A1 (ja) 受信装置、送信装置、およびデータ処理方法
US20210274241A1 (en) Client based storage of remote element resolutions
US10687106B2 (en) System and method for distributed control of segmented media
WO2014010444A1 (ja) コンテンツ送信装置、コンテンツ再生装置、コンテンツ配信システム、コンテンツ送信装置の制御方法、コンテンツ再生装置の制御方法、データ構造、制御プログラムおよび記録媒体
WO2017141701A1 (ja) 受信装置、送信装置、及び、データ処理方法
KR102533674B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
JP2008278261A (ja) 中継装置、中継装置制御方法、通信システムおよび中継プログラム
WO2013039042A1 (ja) 再生装置、再生方法、配信装置、配信システム、再生プログラムおよび記録媒体
US11750889B2 (en) Systems and methods for selecting a data delivery network
KR101652255B1 (ko) 라이브 컨텐츠의 효과적인 재생방법
KR20140126094A (ko) 멀티미디어 시스템에서 컨텐츠 재생 방법 및 장치
KR20120088072A (ko) 멀티미디어 스트리밍 서비스 방법
KR20240008319A (ko) 사용자 맞춤형 콘텐츠와 미리 작성된 미디어 콘텐츠의 전송 간 전환

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150821

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160405