WO2012011450A1 - コンテンツ配信装置、コンテンツ再生装置、コンテンツ配信システム、コンテンツ配信装置の制御方法、制御プログラム、および、記録媒体 - Google Patents

コンテンツ配信装置、コンテンツ再生装置、コンテンツ配信システム、コンテンツ配信装置の制御方法、制御プログラム、および、記録媒体 Download PDF

Info

Publication number
WO2012011450A1
WO2012011450A1 PCT/JP2011/066279 JP2011066279W WO2012011450A1 WO 2012011450 A1 WO2012011450 A1 WO 2012011450A1 JP 2011066279 W JP2011066279 W JP 2011066279W WO 2012011450 A1 WO2012011450 A1 WO 2012011450A1
Authority
WO
WIPO (PCT)
Prior art keywords
content
request
response
server
address
Prior art date
Application number
PCT/JP2011/066279
Other languages
English (en)
French (fr)
Inventor
毅 金子
高橋 真毅
伊藤 典男
義昭 荻澤
徳毛 靖昭
渡部 秀一
Original Assignee
シャープ株式会社
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 シャープ株式会社 filed Critical シャープ株式会社
Priority to US13/810,701 priority Critical patent/US20130117413A1/en
Priority to BR112013001376A priority patent/BR112013001376A8/pt
Priority to JP2012525391A priority patent/JPWO2012011450A1/ja
Priority to EP11809620.5A priority patent/EP2597869A4/en
Priority to CN2011800445777A priority patent/CN103119958A/zh
Publication of WO2012011450A1 publication Critical patent/WO2012011450A1/ja

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

Definitions

  • the present invention relates to a content distribution service for distributing content from a server to a client in response to a request from the client that reproduces the content.
  • VOD video on demand
  • content is provided to clients by a streaming method, a download method, or a progressive download method.
  • Patent Document 1 describes an example of a content distribution service based on a progressive download method.
  • Patent Document 1 discloses a content distribution service system in which a request for content is transmitted from a client to a server by HTTP, and the content received by the client as a response to the request is reproduced.
  • Japanese Patent Publication Japanese Patent Laid-Open No. 2005-110244 (Publication Date: April 21, 2005)”
  • the present invention has been made in view of the above-described problems, and an object of the present invention is to increase the load on a network and a server used for data transmission from a server in a content distribution system that distributes content from a server to a client. It is to realize a content distribution apparatus, a content reproduction apparatus, a content distribution system, a content distribution apparatus control method, a control program, and a recording medium.
  • the content distribution device is a content distribution device that transmits content to a transmission source of the request in response to a request, and the transmission source of the request transmits the requested content. Holding a determination unit that determines whether the content is a relay device that transfers the requested content to the content reproduction device or a content reproduction device that reproduces the requested content, and the determination unit determines that the transmission source of the request is When it is determined to be a relay device, in response to the request, a content transmission unit that transmits the requested content to the relay device that is the transmission source of the request, the content transmitted by the content transmission unit, and the transmission The relay device that is the destination or the content that is the transfer destination When the content storage location information generating means for generating content storage location information in association with the address of the device and the determination means determine that the transmission source of the request is a content playback device, in response to the request, In the content storage location information, the content acquisition destination that instructs the content reproduction device that is the transmission source of the request to acquire
  • a content delivery apparatus control method is a content delivery apparatus control method for transmitting content to a transmission source of the request in response to a request.
  • the determination step for determining whether the content is a relay device that holds the requested content and transfers the requested content to the content reproduction device or the content reproduction device that reproduces the requested content.
  • a content transmission step of transmitting the requested content to the relay device that is the transmission source of the request in response to the request, and transmission in the content transmission step Content and its destination A content storage destination information generating step for generating content storage destination information in association with an address of a certain relay device or a content playback device that is a transfer destination thereof, and the transmission source of the request in the determination step is the content playback device
  • the transmission source of the request so that the content is acquired from the relay device or the content reproduction device indicated by the address associated with the requested content in the content storage location information.
  • a content acquisition destination instruction step for instructing the content reproduction apparatus.
  • the content transmitting unit transmits the requested content to the relay device that is the transmission source of the request
  • the content storage destination information generating unit is Content storage destination information is generated by associating the transmitted content with the address of the relay device that is the transmission destination or the address of the content reproduction device that is the transfer destination.
  • the content acquisition destination instruction means acquires the content from the relay device or the content reproduction device indicated by the address associated with the requested content in the content storage location information. And instructing the content reproduction apparatus that is the transmission source of the request.
  • the content storage destination information is information indicating which relay device or content reproduction device holds which content.
  • the content distribution device grasps the content transmitted in the past in association with the relay device or the content reproduction device that holds the content, and receives a request from a certain content reproduction device. Instruct the content reproduction device that is the transmission source of the request to acquire the content from the relay device or the content reproduction device that holds the requested content without directly transmitting the content to the content reproduction device. .
  • the content reproduction device that is the transmission source of the request acquires the requested content from the instructed relay device or the content reproduction device. If the instructed relay device or the content reproduction device holds the content, the request is transmitted.
  • the transmission / reception of the content is completed only by both the original content reproduction device and the instructed relay device or content reproduction device. That is, the content reproduction device that has transmitted the request can acquire the content without the content distribution device executing the content transmission processing.
  • the content transmission / reception processing is the most burdensome processing, and the content transmission / reception is the most burdensome in the network between these devices. . Therefore, for example, even if the number of content reproduction devices increases and requests to the content distribution device increase, it is possible to suppress an increase in the load on the network and content distribution device used for data transmission from the content distribution device.
  • a large number of content reproduction devices can acquire content without increasing the processing capability of the content distribution device or increasing the capacity of the network.
  • the transmission source of the request is a relay device that holds the requested content and transfers the requested content to the content reproduction device, or reproduces the requested content.
  • a determination unit that determines whether the content is a playback device, and if the determination unit determines that the transmission source of the request is a relay device, the requested content is transmitted in response to the request.
  • a content storage unit that associates the content transmission unit that transmits to the original relay device, the content transmitted by the content transmission unit, and the address of the relay device that is the transmission destination or the content reproduction device that is the transfer destination.
  • Content storage location information generating means for generating information
  • the determination means Determines that the transmission source of the request is a content reproduction device, in response to the request, in the content storage destination information, the relay device or the content reproduction device indicated by the address associated with the requested content
  • Content acquisition destination instructing means for instructing the content reproduction apparatus that is the transmission source of the request to acquire the content.
  • the transmission source of the request may be a relay apparatus that holds the requested content and transfers the requested content to the content reproduction apparatus, or reproduces the requested content.
  • a content storage destination that associates the content transmission step to be transmitted to the original relay device, the content transmitted in the content transmission step, and the address of the relay device that is the transmission destination or the content reproduction device that is the transfer destination.
  • FIG. 1 illustrates a first embodiment of the present invention, and is a diagram illustrating an outline of a content distribution system according to the first embodiment and a configuration of a main part of each device configuring the content distribution system. It is a figure which shows an example of the transmission log which the transmission log memory
  • FIG. 9 is a diagram illustrating an example of an HTTP message transmitted / received as a request or a response, in which (a), (c), and (d) in FIG. 8 are (b), (e), and (d) in FIG. f) shows a response HTTP message.
  • FIG. 9 is a diagram illustrating an example of an HTTP message transmitted and received as a request or a response, and FIGS. 9A, 9C, and 9D illustrate the request illustrated in FIG. 7, and FIGS. f) shows a response HTTP message.
  • FIG. 10 It is a figure which shows an example of the HTTP message transmitted / received as a request or a response, (a), (c), and (d) of FIG. 10 are (b), (e), and (d) of the request of FIG. f) shows a response HTTP message.
  • stores It is a figure which shows an example of the content storage location information which the content storage location information storage part contained in the said content delivery system memorize
  • FIG. 1 It is a flowchart which shows an example of the process which the server which comprises the said content delivery system performs. It is a flowchart which shows an example of the process which the client which comprises the said content delivery system performs as a content reproduction apparatus. It is a flowchart which shows an example of the process which the client which comprises the said content delivery system performs as a relay apparatus. It is a figure which shows an example of the operation
  • FIG. 19 is a diagram illustrating an example of an HTTP message transmitted and received as a request or a response.
  • FIGS. 19A, 19C, and 19D are views of the request in FIG. f) shows a response HTTP message.
  • It is a flowchart which shows an example of the process which the server which comprises the said content delivery system performs.
  • FIG. 27 It is a figure which shows an example of the operation
  • FIGS. 28A and 28B show the request of FIG. 24, and FIGS. 28C and 28D show the HTTP message of the response.
  • FIGS. 28A and 28B show the request of FIG. 24, and FIGS. 28C and 28D show the HTTP message of the response.
  • FIGS. 28A and 28B show the request of FIG. 24, and FIGS. 28C and 28D show the HTTP message of the response.
  • FIGS. 28A and 28B show the request of FIG. 24, and FIGS. 28C and 28D show the HTTP message of the response.
  • It is a flowchart which shows an example of the process which the server which comprises the said content
  • FIG. 1 is a diagram illustrating an overview of the content distribution system 1 according to the first embodiment and a configuration of main parts of each device constituting the content distribution system 1.
  • the content distribution system 1 includes a server (content distribution device) 2, proxies (relay devices, content acquisition devices) 3a and 3b, and clients (content reproduction devices, content acquisition devices) 4a and 4b.
  • the content distribution system 1 includes a content storage unit 5 connected to the server 2 and cache storage units 6a and 6b connected to the proxies 3a and 3b, respectively.
  • the server 2 As shown in FIG. 1, the server 2, the proxies 3a and 3b, and the clients 4a and 4b are connected via a network 7, respectively.
  • the network 7 may be any network as long as the above devices can communicate with each other, and may be a wired communication network or a wireless communication network.
  • proxy 3 the proxies 3a and 3b are collectively referred to as proxy 3
  • cache storage units 6a and 6b are collectively referred to as cache storage unit 6
  • clients 4a and 4b are collectively referred to as client 4.
  • the content distribution system 1 includes two proxies 3 and two clients 4, but is not limited thereto.
  • the content distribution system 1 may include one or more proxies, and may include three or more clients 4. That is, the content distribution system 1 only needs to include at least one proxy 3 and a plurality of clients 4.
  • the content distributed by the server 2 is video content for the VOD service, and the content format is the MP4 file format. Furthermore, it is assumed that HTTP, which is widely used as a general-purpose file transmission protocol, is used as the transmission protocol on the network 7 in the content distribution system 1. In the present embodiment, the content distributed by the server 2 and the transmission protocol on the network 7 in the content distribution system 1 are not limited to this.
  • the server 2 is a content distribution device that receives a request message (request) requesting transmission of content from the proxy 3 and the client 4 (content acquisition device), and transmits a response message (response) to the received request message.
  • the server 2 is connected to the content storage unit 5 that stores content such as moving images, and manages the content stored in the content storage unit 5.
  • the content storage unit 5 may be built in the server 2.
  • the server 2 may simultaneously distribute the same content to an unspecified number of devices, may distribute the content to a single device, or may simultaneously distribute the same content to a plurality of determined devices. May be delivered.
  • the server 2 includes a server control unit 14 that controls and controls the operation of the server 2, a server communication unit 11 for the server 2 to communicate with an external device, and a response transmitted by the server 2. And a content storage location information storage portion 13 for storing content storage location information (details will be described later).
  • the server control unit 14 includes a response execution unit (determination unit, content transmission unit, content acquisition destination instruction unit, transmission record creation unit) 15, a relay device identification unit (content acquisition destination instruction unit, distance calculation unit) 16, In addition, a content storage destination information generation unit (content storage destination information generation means) 17 is included.
  • the response execution unit 15 When the response execution unit 15 receives a request message for requesting content transmission via the server communication unit 11, the response execution unit 15 responds to the received request message according to the device (proxy 3 or client 4) that transmitted the request message. Send a message to the device.
  • the response execution unit 15 waits to receive a request message for requesting content transmission.
  • the request message for requesting content transmission is received via the server communication unit 11, the response execution unit 15 receives the request message.
  • the response execution unit 15 By checking the header of the request message, it is determined whether or not the received request message is transmitted via the proxy 3. For example, when the response execution unit 15 receives the request message and the received request message includes a “Via” header, the received request message is the one sent by the proxy 3 in response to the request message from the client 4 On the other hand, if the received request message does not include the “Via” header, it may be determined that the request message has been transmitted directly from the client 4.
  • the response execution unit 15 When the response execution unit 15 receives a request message directly requesting content from the client 4, the address of the proxy 3 that holds (possibly) the content requested by the client 4 to the relay device specifying unit 16. An instruction is given to specify information (for example, the URI of the proxy 3).
  • the response execution unit 15 specifies the relay device specifying unit 16 as a response to the request message from the client 4.
  • a response message instructed to acquire the requested content from the address information is transmitted to the client 4.
  • the response execution unit 15 uses “305 USE Proxy” as a response message, and gives the address information specified by the relay device specifying unit 16 to the “Location” field.
  • the proxy 3 that holds (possibly) the requested content is instructed to transmit a content request message.
  • the response execution unit 15 determines whether the received request message is a conditional request such as “If-Modified-Since”. If the received request message is not a conditional request, the response execution unit 15 reads the requested content from the content storage unit 5 and transmits the read content to the proxy 3 as a response to the request message from the proxy 3.
  • a conditional request such as “If-Modified-Since”. If the received request message is not a conditional request, the response execution unit 15 reads the requested content from the content storage unit 5 and transmits the read content to the proxy 3 as a response to the request message from the proxy 3.
  • the response execution unit 15 subsequently determines whether the content data held by the proxy 3 is the latest data. In other words, the response execution unit 15 determines whether or not the content data held by the proxy 3 is the same as the same content data stored in the content storage unit 5.
  • the response execution unit 15 If the content data held by the proxy 3 is not the latest data, the response execution unit 15 reads the requested content from the content storage unit 5, and uses the read content as a response to the request message from the proxy 3. Send to proxy 3. If the content data held by the proxy 3 is the latest data, the response execution unit 15 returns the data of the content held by the proxy 3 as the latest data as a response to the request message from the proxy 3. A response message indicating that is sent to the proxy 3. For example, the response execution unit 15 transmits “304 NOT modified” to the proxy 3 as a response message indicating that the content data held by the proxy 3 is the latest data.
  • the response execution unit 15 creates a transmission log (response transmission record) from the transmitted response message, and stores the created transmission log in the transmission log storage unit 12. Details of the transmission log created by the response execution unit 15 will be described later.
  • the response execution unit 15 may add, for example, “Cache-Control: datemust-revalidate” or “Cache-Control: proxy-revalidate” to the content header when transmitting the content to the proxy 3. .
  • the proxy 3 determines whether the content is the latest version before transmission. The server 2 can always be confirmed.
  • the relay device identification unit 16 identifies the proxy 3 that holds (possibly has) the content requested by the client 4 in accordance with the instruction from the response execution unit 15.
  • the relay device specifying unit 16 receives the instruction from the response execution unit 15 and reads the content storage destination information from the content storage destination information storage unit 13.
  • the relay device specifying unit 16 refers to the read content storage location information, and uses the proxy 3 address information (for example, URI) associated with the content requested by the client 4 as the content acquisition location address information. As specified.
  • the relay device identification unit 16 transmits the identified address information to the response execution unit 15.
  • the relay device specifying unit 16 is predetermined for each content requested by the client 4.
  • the (default) address information may be specified as the address information from which the content is acquired.
  • the relay device specifying unit 16 is connected to the server 2 via the network 7 when the content storage destination information storage unit 13 does not store content storage destination information including the content requested by the client 4.
  • the acquisition destination of the content may be specified at random from 3.
  • the relay device specifying unit 16 also includes a plurality of pieces of address information when there are a plurality of pieces of content storage destination information including the address information of the proxy 3 associated with the content requested by the client 4 in the content storage destination information storage unit 13. May be specified as the address information of the content acquisition destination, and a content storage destination list including a plurality of specified address information may be created.
  • the relay device specifying unit 16 specifies a plurality of address information as the address information of the content acquisition destination, the relay device specifying unit 16 may create a content storage destination list by adding a priority to the plurality of address information.
  • the relay device specifying unit 16 when there are a plurality of pieces of content storage destination information including the address information of the proxy 3 associated with the content requested by the client 4 in the content storage destination information storage unit 13, the relay device specifying unit 16
  • the address information of the proxy 3 included in the content storage destination information (the date and time included in the storage destination information is the newest) may be specified as the address information of the content acquisition destination.
  • the relay device specifying unit 16 specifies a plurality of address information as the address information of the content acquisition destination, for example, the relay device specifying unit 16 adds a priority to the plurality of address information according to the newest date and time included in the content storage destination information.
  • a content storage destination list may be created.
  • the relay device specifying unit 16 determines whether the content storage destination information including the address information of the proxy 3 associated with the content requested by the client 4 is stored in the content storage destination information storage unit 13. Based on the distance on the physical or network structure, the address of the proxy 3 included in the content storage destination information having the shortest distance may be specified as the content acquisition destination address.
  • the relay device specifying unit 16 specifies a plurality of pieces of address information as the address information from which the content is acquired, for example, based on the physical or network structure distance from the client 4, A content storage destination list may be created by adding priority to address information.
  • the content storage destination list may be created by arranging the plurality of addresses included in the plurality of content storage destination information in the order of the shortest calculated distance and adding priority to the plurality of addresses.
  • the relay device specifying unit 16 has transmitted the request message.
  • the domain name of the client 4 is determined from the URI of the client 4, and the proxy 3 is arranged in order of the physical or network structural distance from the client 4 in order of the level of the determined domain name.
  • a content storage destination list may be created by adding priorities to the contents.
  • the relay device specifying unit 16 considers up to the second level domain name, and the second level domain name is “co .jp ”may be selected, and the selected proxy 3 may be arranged in order of the physical or network structural distance from the client 4 to create a content storage destination list.
  • the proxy 3 whose first level domain name is “jp” is selected, and the selected proxy 3 is sent from the client 4.
  • the content storage destination list may be created by arranging them in order of increasing physical or network structural distance.
  • the URI of client 4 is not an attribute type JP domain name such as “co.jp” but a prefecture or city label such as “kaisha.chiyoda.tokyo.jp” or “pref.fukuoka.jp”
  • the relay device specifying unit 16 selects the proxy 3 having the same label as the prefecture label or the municipality label of the client 4 or a label in the vicinity of the label, and stores the content.
  • a destination list may be created.
  • the relay device specifying unit 16 With reference to the network address part on the upper bit side of the IP address of the client 4 that transmitted the request message, the proxy 3 that is close to the client 4 in physical or network structural distance may be selected.
  • a connection route between the server 2 and the client 4 and a network state are examined in advance by utilizing a general routing technique, network monitoring, access analysis, and the like, and the relay device specifying unit A more appropriate proxy may be selected based on the contents investigated by 16. For example, before specifying the proxy 3 for acquiring content to the client 4, the connection route between the server 2 and the client 4 is investigated using the “traceroute” or “tracert” command, and the relay device is identified based on the result. The unit 16 may select the proxy 3 closer to the client 4.
  • the relay device specifying unit 16 also considers the load status of the proxy 3 and may specify the proxy 3 that holds (possibly) the content requested by the client 4 and has a low load. good. More specifically, the relay device specifying unit 16 may specify the address information of the content acquisition destination with reference to the transmission log stored in the transmission log storage unit 12.
  • the relay device specifying unit 16 refers to the transmission log stored in the transmission log storage unit 12 to determine whether or not each proxy 3 has performed content transmission / reception processing within a certain time, and within a certain time
  • the address information of the proxy 3 associated with the content requested by the client 4 in the read content storage destination information is used as the address information of the content acquisition destination. You may specify.
  • the certain time may be set according to the associated content.
  • the relay device specifying unit 16 when there are a plurality of content storage destination information including the address information of the proxy 3 associated with the content requested by the client 4 in the content storage destination information storage unit 13, the relay device specifying unit 16 The address information of the proxy 3 included in the latest content storage destination information may be specified as the address information of the content acquisition destination.
  • the relay device specifying unit 16 may specify the proxy 3 that holds (possibly) the content requested by the client 4 in consideration of the number of accesses from the proxy 3 to the server 2. For example, since the proxy 3 having a larger number of accesses to the server 2 is considered to cache more content, the proxy 3 having the number of accesses to the server 2 greater than or equal to a predetermined lower limit value may be specified. Note that the relay device specifying unit 16 may specify the number of accesses to the server 2 with reference to the transmission log stored in the transmission log storage unit 12.
  • the address information of the proxy 3 whose number of accesses to the server 2 is equal to or higher than a predetermined lower limit value is obtained as the content acquisition destination. It may be specified as address information.
  • the relay device specifying unit 16 uses the address information of the proxy 3 having the largest number of accesses to the server 2 as the address information of the content acquisition destination. May be specified.
  • the relay device specifying unit 16 may specify the proxy 3 whose number of accesses to the server 2 is equal to or less than a predetermined upper limit value so as not to concentrate access to the specific proxy 3.
  • the content storage location information generation unit 17 generates content storage location information for identifying the address information of the proxy 3 that holds the content (possibly) from the transmission log stored in the transmission log storage unit 12. Thus, it is stored in the content storage location information storage unit 13.
  • the content storage destination information generation unit 17 refers to the transmission log indicating that the server 2 has transmitted the content to the proxy 3, and the content transmitted by the server 2 and the proxy 3 of the content transmission destination The address storage information is associated with the date and time when the server 2 transmits the content, and content storage destination information is generated. Further, the content storage location information generation unit 17 refers to the transmission log indicating that the server 2 has transmitted as a response message that the content held by the proxy 3 is the latest version, and the server 2 is the latest version. Content storage destination information is generated by associating the content confirmed to exist, the address information of the proxy 3 holding the content, and the date and time when the server 2 transmits the response message.
  • the content storage destination information generation unit 17 may generate the content storage destination information every time a predetermined transmission log is added to the transmission log storage unit 12, or read the transmission log every predetermined period.
  • the content storage location information may be generated.
  • the transmission log storage unit 12 corresponds to the transmission date and time of the response message transmitted from the server 2 to the proxy 3 or the client 4, the address information of the transmission destination device of the response message, the content of the response message, and the response message.
  • the transmission log in which the content requested by the request message is associated is stored.
  • the transmission log stored in the transmission log storage unit 12 may be, for example, data illustrated in FIG.
  • FIG. 2 is a diagram illustrating an example of a transmission log stored in the transmission log storage unit 12.
  • the transmission log indicates “Date” that is the transmission date and time of the response message, “transmission destination address” that is the address information of the transmission destination device of the response message, and the content of the response message.
  • “Transmission content” is associated with “content ID” indicating the content requested by the request message corresponding to the response message.
  • the “transmission content” the content of the response message “200 OK”, “305 Use ⁇ Proxy” or “304 Not Modified” is stored.
  • the “transmission content” is “305 Use Proxy”, as shown in FIG. 2, information indicating the proxy 3 designated in () is included as “305 Use Proxy (proxy1)”.
  • “200 OK” is included in the response message sent when content is sent in response to a content request, so the transmission log that sent the “200 OK” response message is called the content transmission log. Further, since “305 Use Proxy” is included in the response message for acquiring content from the designated proxy, the transmission log that has transmitted the response message “305 ⁇ Use Proxy ”is referred to as an acquisition instruction log. Since “304 Not Modified” is included in the response message notifying that the content is the latest version, the transmission log that has transmitted the response message “304 Not Modified” is referred to as a version notification log.
  • the content storage location information generation unit 17 stores the address of the proxy 3 that holds the content (possibly) from the transmission log. Content storage location information for identifying information can be created. Further, the relay device specifying unit 16 can specify the proxy 3 that has not performed the content transmission / reception processing within a predetermined time with reference to the transmission log.
  • the relay device specifying unit 16 refers to the transmission log stored in the transmission log storage unit 12 and associates the transmission content with “200 OK” or “304 Not Modified” in the transmission log within a predetermined time. It is determined that the proxy 3 is a proxy 3 that has performed content transmission / reception processing within a certain period of time.
  • the content storage location information storage unit 13 is content storage location information in which the content, the address information of the proxy 3 that holds the content (possibly), and the date and time when the proxy 3 acquired the content are associated with each other. Is memorized.
  • the content storage location information stored in the content storage location information storage unit 13 may be, for example, data shown in FIG.
  • FIG. 3 is a diagram illustrating an example of content storage location information stored in the content storage location information storage unit 13.
  • the content storage location information is information in which content is associated with address information indicating the storage location of the content.
  • the content storage location information includes “Date” that is the date and time when the proxy 3 acquired the content, “Content ID” (content identification information) that indicates the content, and the proxy 3 that holds the content. Is associated with “storage destination address”.
  • the relay device specification unit 16 refers to the content storage location information and holds the content (possibility of possibility)
  • the address information of the proxy 3 can be specified.
  • transmission log storage unit 12 and the content storage destination information storage unit 13 may be external storage devices connected to the server 2 instead of being built in the server 2, similarly to the content storage unit 5.
  • the proxy 3 is a device that transmits the requested content, and a device that requests and acquires the content. As described above, the proxy 3 is connected to the cache storage unit 6 that stores the content received from the server 2. If the requested content is in the cache storage unit 6, the proxy 3 reads the content from the cache storage unit 6. 4, if not in the cache storage unit 6, the server 2 is requested. Note that the cache storage unit 6 may be built in the proxy 3.
  • the proxy 3 includes a proxy control unit 22 that controls the overall operation of the proxy 3 and a proxy communication unit 21 that allows the proxy 3 to communicate with an external device.
  • the proxy control unit 22 includes a response / request execution unit 23.
  • the response / request execution unit 23 transmits the content specified by the request message for requesting the content received from the client 4 to the client 4.
  • the response / request execution unit 23 waits for a request message for requesting transmission of content from the client 4.
  • the request message is received from the client 4 via the proxy communication unit 21, the requested content is received. Is stored in the cache storage unit 6.
  • the response / request execution unit 23 When the requested content is not stored in the cache storage unit 6, the response / request execution unit 23 confirms the “Host” field of the request message transmitted from the client 4 and is described in the “Host” field. A request message for the content requested by the client 4 is transmitted to the server 2 indicated by the current URI. Then, the response / request execution unit 23 acquires content from the server 2 and stores the acquired content in the cache storage unit 6. The response / request execution unit 23 stores the acquired content in the cache storage unit 6, and then transmits the requested content to the client 4.
  • the response / request execution unit 23 determines whether the content data held in the cache storage unit 6 is the latest data. In order to confirm, the request message of the conditional request is created by adding “If-Modified-Since” describing the time information when the proxy 3 has acquired the content to the request message. A request message is transmitted to the server 2.
  • the response / request execution unit 23 stores the content stored in the cache storage unit 6 as the latest data. The stored content is read from the cache storage unit 6 and the read content is transmitted to the client 4.
  • the latest version of the content is transmitted from the server 2 as a response to the request message for the conditional request, and the response / request execution unit 23 The content transmitted from 2 is acquired.
  • the response / request execution unit 23 stores the acquired content in the cache storage unit 6, and then transmits the requested content to the client 4.
  • the proxy 3 is a device that acquires a content by transmitting a request for the content, holds the requested content, and transfers the requested content to another device (for example, a client) It is a relay device that transfers to 4).
  • the client 4 is a device that requests and acquires content and reproduces the acquired content. Although not shown in the figure, the client 4 includes an input unit that receives a user operation, and requests content based on the input operation received by the input unit.
  • the client 4 includes a client control unit 32 that controls the operation of the client 4 in an integrated manner, and a client communication unit 31 for the client 4 to communicate with an external device.
  • the client control unit 32 includes a request execution unit 33 and a content reproduction unit 34.
  • the request execution unit 33 generates a request message for requesting content transmission, transmits the request message to the server 2 via the client communication unit 31, and receives a response message as a response thereto.
  • the request execution unit 33 receives, as a response message from the server 2, information specifying a proxy and an instruction to transmit a request message requesting content from the proxy.
  • the request execution unit 33 transmits a request message for requesting transmission of content to the designated proxy 3 in accordance with an instruction from the server 2. Then, the request execution unit 33 acquires content from the proxy 3 designated by the server 2.
  • the content playback unit 34 plays back the content acquired by the request execution unit 33.
  • the content reproduction unit 34 decodes the acquired content, and outputs the video and audio obtained thereby to an external display device (not shown). .
  • the client 4 is a device that transmits a content request and acquires the content, and is a content playback device that acquires and plays back the requested content.
  • FIG. 4 is a flowchart illustrating an example of processing executed by the server 2.
  • the response execution unit 15 waits to receive a request message for requesting content transmission.
  • the response execution unit 15 receives a request message for requesting content transmission via the server communication unit 11 (S401)
  • the received request message is received.
  • the request message is checked to determine whether the received request message is sent via the proxy 3 (S402).
  • the relay device specifying unit 16 When the main body that has transmitted the received request message is the client 4 (NO in S402), the relay device specifying unit 16 is instructed to specify the proxy 3 from which the client 4 acquires the content and the acquisition destination. To do.
  • the relay device specifying unit 16 reads the content storage location information from the content storage location information storage unit 13 (S403).
  • the relay device specifying unit 16 refers to the read content storage location information and specifies the URI of the proxy 3 associated with the content requested by the client 4 as the address information of the content acquisition destination (S404).
  • the relay device identification unit 16 transmits the identified address information to the response execution unit 15.
  • the response execution unit 15 transmits to the client 4 a response message instructed to acquire the requested content from the proxy 3 existing at the address indicated by the address information specified by the relay device specifying unit 16 (S405).
  • the response execution unit 15 creates a transmission log from the response message transmitted to the client 4, and adds the created transmission log to the transmission log storage unit 12 (S410).
  • the response execution unit 15 subsequently receives the conditional request such as “If-Modified-Since” as the received request message. It is determined whether or not (S406). If the received request message is not a conditional request (NO in S406), the response execution unit 15 reads the content requested from the proxy 3 from the content storage unit 5, and reads it as a response to the request message from the proxy 3 The content is transmitted to the proxy 3 (S407). Then, the response execution unit 15 creates a transmission log from the response message transmitted to the proxy 3, and adds the created transmission log to the transmission log storage unit 12 (S410).
  • the conditional request such as “If-Modified-Since” as the received request message. It is determined whether or not (S406). If the received request message is not a conditional request (NO in S406), the response execution unit 15 reads the content requested from the proxy 3 from the content storage unit 5, and reads it as a response to the request message from the proxy 3 The content is transmitted to the proxy 3 (S407).
  • the response execution unit 15 determines whether the content data held by the proxy 3 is the latest data (S408). . If the content data held by the proxy 3 is not the latest data (NO in S408), the response execution unit 15 reads the content requested from the proxy 3 from the content storage unit 5 and requests the proxy 3 As a response to, the read content is transmitted to the proxy 3 (S407). On the other hand, if the content data held by the proxy 3 is the latest data (YES in S408), the response execution unit 15 returns the content held by the proxy 3 as a response to the request message from the proxy 3. A response message indicating that the data is the latest data is transmitted to the proxy 3 (S409). Then, the response execution unit 15 adds the response message transmitted to the proxy 3 to the transmission log storage unit 12 (S410).
  • the response execution unit 15 adds, for example, “Cache-Control: ⁇ must-revalidate ”or“ Cache-Control: proxy-revalidate ”to the content header when transmitting the content to the proxy 3. .
  • the proxy 3 when the content transmission destination proxy 3 transmits the content held in the cache storage unit 6 according to another request, the proxy 3 always confirms to the server whether the content is the latest version before transmission. Can be made.
  • FIG. 5 is a flowchart illustrating an example of processing executed by the proxy 3.
  • the response / request execution unit 23 waits for a request message for requesting content transmission from the client 4 and receives the request message from the client 4 via the proxy communication unit 21 (S421). Then, it is confirmed whether or not the requested content is stored in the cache storage unit 6 (S422).
  • the response / request execution unit 23 checks the “Host” field of the request message transmitted from the client 4, and “Host”.
  • a request message for the content requested by the client 4 is transmitted to the server 2 indicated by the URI described in the field (S423). Then, the response / request execution unit 23 acquires content from the server 2 (S424), and stores the acquired content in the cache storage unit 6 (S425). The response / request execution unit 23 stores the acquired content in the cache storage unit 6, and then transmits the requested content to the client 4 (S426).
  • the response / request execution unit 23 sets “If-Modified-Since” describing the time information for acquiring the content in the request message.
  • a request message for the conditional request is created, and the created request message for the conditional request is transmitted to the server 2 (S427).
  • the response / request execution unit 23 stores the content held from the cache storage unit 6. And the read content is transmitted to the client 4 (S426).
  • the latest version of the content is transmitted from the server 2 as a response to the request message for the conditional request, and the response / request execution unit 23
  • the latest version of the content transmitted from 2 is acquired (S424).
  • the response / request execution unit 23 stores the acquired content in the cache storage unit 6 (S425), and then transmits the requested content to the client 4 (S426).
  • FIG. 6 is a flowchart illustrating an example of processing executed by the client 4.
  • the request execution unit 33 transmits a request message requesting the server 2 to transmit content (S441).
  • the request execution unit 33 receives a response message instructed to acquire content from the designated proxy 3 as a response to the request message (S442).
  • the request execution unit 33 transmits a request message to the proxy 3 designated by the server 2 according to the instruction of the server 2 (S443).
  • the request execution part 33 acquires a content as a response from the proxy 3 which transmitted the request message (S444).
  • Example 1 Hereinafter, Example 1 is shown in FIG. 7, and this embodiment will be described in more detail.
  • FIG. 7 is a diagram illustrating an example of an operation sequence of the content distribution system 1 according to the first embodiment.
  • the server 2 defaults as follows: It is assumed that the acquisition destination of the content 1 is set as the proxy 3a and the acquisition destination of the content 2 is set as the proxy 3b. Further, in the first embodiment, it is assumed that the transmission log and the content storage destination information are not stored in the transmission log storage unit 12 and the content storage destination information storage unit 13, respectively, at the start of the process illustrated in FIG.
  • the response execution unit 15 creates the transmission log shown in FIG. 2 every time a response message is sent, and the content storage location information generation unit 17 creates the content storage location information shown in FIG. 3 as the content transmission log or version notification log. Each time (transmission log whose “transmission content” is “200 ⁇ OK” or “304 Not Modified”) is added to the transmission log storage unit 12, it is created.
  • one session is a period from when the client 4 transmits a request message until a response message corresponding to the request message is received.
  • the client 4a transmits a request message requesting transmission of the content 1 to the server 2 (request 111).
  • the response execution unit 15 instructs the relay device specifying unit 16 to specify the proxy 3 as the acquisition destination.
  • the relay device specifying unit 16 confirms the content storage destination information in the content storage destination information storage unit 13 (process 112).
  • the relay device specifying unit 16 sets the proxy 3a set as the acquisition destination of the content 1 by default. Is specified as the acquisition destination of the content 1.
  • the response execution unit 15 transmits, to the client 4a, a response message instructed to acquire the requested content from the proxy 3 indicated by the address information specified by the relay device specifying unit 16 (response 113). Then, the response execution unit 15 creates a transmission log based on the transmitted response message and adds it to the transmission log storage unit 12 (process 114).
  • the client 4a that has received the response 113 transmits a request message for requesting transmission of the content 1 to the proxy 3a in accordance with an instruction from the server 2 (request 121).
  • the proxy 3a that has received the request 121 checks whether or not the content 1 is stored in the cache storage unit 6a (process 122).
  • a request message based on the request 121 is transmitted to the server 2 (request 123).
  • the response execution unit 15 transmits the content 1 to the proxy 3a (response 124).
  • the proxy 3a that has received the response 124 stores the acquired content 1 in the cache storage unit 6a and registers it in the cache (processing 125). After the cache registration, the proxy 3a transmits the content 1 to the client 4a as a response to the request 121 (response 126). In addition, after transmitting the response 124, the response execution unit 15 creates a transmission log based on the transmitted response message and adds the transmission log to the transmission log storage unit 12 (processing 127). Further, the content storage location information generation unit 17 generates content storage location information by associating the content 1 with the address information of the proxy 3a, and stores the content storage location information in the content storage location information storage unit 13 (process 128).
  • the client 4b acquires the content 2.
  • the operations of the client 4b, the proxy 3b, and the server 2 in the session 130 and the session 140 are the same as the operations of the client 4a, the proxy 3a, and the server 2 in the session 110 and the session 120 except for the data that is handled. Is omitted.
  • the content 1 is cache registered in the cache storage unit 6a of the proxy 3a
  • the content 2 is cache registered in the cache storage unit 6b of the proxy 3b. That is, in the state where the content storage location information in which the content 1 and the proxy 3a are associated with each other and the content storage location information in which the content 2 and the proxy 3b are associated are stored in the content storage location information storage unit 13. is there.
  • the client 4a transmits a request message for requesting transmission of the content 2 to the server 2 (request 151).
  • the response executing unit 15 instructs the relay device specifying unit 16 to specify the proxy 3 as the acquisition destination.
  • the relay device specifying unit 16 confirms the content storage destination information in the content storage destination information storage unit 13 (process 152).
  • the relay device specifying unit 16 specifies the proxy 3b as the acquisition destination of the content 2 To do.
  • the response executing unit 15 transmits a response message instructed to acquire the requested content from the proxy 3b specified by the relay device specifying unit 16 to the client 4a (response 153). Then, the response execution unit 15 creates a transmission log based on the transmitted response message and adds it to the transmission log storage unit 12 (process 154).
  • the client 4a that has received the response 153 transmits a request message for requesting transmission of the content 2 to the proxy 3b in accordance with an instruction from the server 2 (request 161).
  • the proxy 3b that has received the request 161 checks whether or not the content 2 is stored in the cache storage unit 6b (process 162). Since the content 2 is already stored in the cache storage unit 6b, the proxy 3b makes a request 121 to confirm with the server 2 whether the content 2 stored in the cache storage unit 6b is the latest data. “If-Modified-Since” is added to the request message based on the request message and sent to the server 2 as a conditional request (request 163).
  • the response execution unit 15 determines that the content 2 held by the proxy 3b is the latest data. It is confirmed whether there is any (process 164). The response execution unit 15 determines that the content 2 held by the proxy 3b is the latest data, and transmits a response message “304 NOT Modified” to the proxy 3b (response 165). The proxy 3b that has received the response 165 reads the content 2 stored in the cache storage unit 6b, and transmits the read content 2 to the client 4a as a response to the request 161 (response 166).
  • the response execution unit 15 After transmitting the response 165, the response execution unit 15 creates a transmission log based on the transmitted response message and adds the transmission log to the transmission log storage unit 12 (processing 167).
  • the content storage location information generation unit 17 generates content storage location information by associating the content 2 with the address information of the proxy 3b, and stores the content storage location information in the content storage location information storage unit 13 (process 168).
  • the proxy 3 caches the content. If the proxy 3 determines that the requested content is held, the client 4 is instructed to acquire the content.
  • the round trip between the request and the response is increased as compared with the conventional method, but “transmission / reception of content” is performed only via the proxy 3. Almost unchanged.
  • the sessions 110 to 120 and the sessions 130 to 140 are executed, the “content transmission / reception” in the session 160 can be performed only between the proxy 3b and the client 4a.
  • the amount of network transmission information (network load) between the proxies 3 is particularly small.
  • the server 2 can efficiently use the processing capability and cache function of the proxy 3, and as a result, the load on the network between the server 2 and the server 2-proxy 3 is increased. Can be distributed to the network between the proxy 3 and the proxy 3 -client 4.
  • FIGS. 8 to 10 are diagrams illustrating examples of HTTP messages transmitted and received as requests or responses.
  • FIG. 8 is a diagram illustrating examples of HTTP messages in the session 110 and the session 120.
  • FIG. 10 is a diagram illustrating an example of the HTTP message in the session 140 and
  • FIG. 10 is a diagram illustrating an example of the HTTP message in the session 150 and the session 160.
  • FIG. 8A shows the request 111 shown in FIG. 7, FIG. 8B shows the response 113, FIG. 8C shows the request 121, and FIG. 8D shows the request 123.
  • 8 (e) shows the response 124, and FIG. 8 (f) shows the HTTP message of the response 126.
  • FIG. 9A shows the request 131 shown in FIG. 7, FIG. 9B shows the response 133, FIG. 9C shows the request 141, and FIG. 9D shows the request 143.
  • 9E shows the HTTP message of the response 144, and FIG. 9F shows the HTTP message of the response 146.
  • FIG. 10A shows the request 151 shown in FIG. 7, FIG. 10B shows the response 153, FIG. 10C shows the request 161, and FIG. 10D shows the request 163.
  • 10E shows the HTTP message of the response 165, and FIG. 10F shows the HTTP message of the response 166.
  • HTTP messages in session 110 and session 120 will be described with reference to FIG. Note that (a) to (f) in FIG. 9 correspond to (a) to (f) in FIG. 8, respectively.
  • content 1 in FIG. 8 is content 2 and proxy 3a is proxy 3b.
  • description of HTTP messages in the session 130 and the session 140 based on FIG. 9 is omitted.
  • elements that are unique to the present invention will be mainly described, and descriptions of known elements will be omitted as appropriate.
  • the HTTP message corresponding to the request 111 for requesting the content 1 from the client 4a to the server 2 includes a request line and a header for notifying additional information.
  • the HTTP message in FIG. 8A is a request for requesting transmission of the content 1 indicated by “content 1”.
  • the header of FIG. 8A includes a “Host” header for specifying the request destination server, and “example.com” indicating the address of the server 2 is described in the “Host” header. Has been.
  • the 8A includes an “Accept” header indicating a data format that can be processed by the client 4a.
  • the “Accept” header includes information “video” indicating video data in the MP4 format. / mp4 "is described.
  • the client 4a that is the device that transmitted the request can notify the server 2 that is the device that is the transmission destination of the request that it can receive the moving image data in the MP4 format.
  • the HTTP message corresponding to the response 113 instructing the acquisition destination of the content 1 from the server 2 to the client 4a includes a response line and a header.
  • the header of FIG. 8B includes a “Location” header for specifying a proxy to be used, and address information “http: / indicating the address of the proxy 3 to be used is included in this“ Location ”header. /example-proxy1.com "is described.
  • the client 4a that is the device that has received this response can know the address information of the proxy 3 that is the other party that requests the content 1.
  • the HTTP message corresponding to the request 121 for requesting the content 1 from the client 4a to the proxy 3a includes a request line and a header.
  • the URI of the content to be requested is described after “GET” indicating the method for acquiring the content. Specifically, “http: // server name for managing content / content name” is described. That is, the HTTP message in FIG. 8C is a request for requesting transmission of the content 1 managed by the server 2.
  • the header of FIG. 8C includes a “Host” header and an “Accept” header, as in the request 111.
  • the HTTP message corresponding to the request 123 for requesting the content 1 from the proxy 3a to the server 2 includes a request line and a header.
  • the URI of the content to be requested is described after “GET” indicating the method for acquiring the content. Specifically, “/ content name” is described. That is, the HTTP message in FIG. 8A is a request for requesting transmission of the content 1 indicated by “content 1”.
  • the header of FIG. 8D includes a “Host” header and an “Accept” header, as in the request 111. Further, a “Via” header indicating a message transfer path is included, and “example-proxy1.com” indicating an address of a device via the message is described in the “Via” header.
  • the server 2 that is the device that has received the request can know which device (in this case, the proxy 3a) the request has been transmitted to.
  • the HTTP message corresponding to the response 124 that transmits the content 1 from the server 2 to the proxy 3 a includes a response line, a header, and a body that stores “content1”.
  • a “Date” header indicating the date and time when the content was transmitted
  • a “Cache-Control” header indicating an instruction regarding the cache of the content to be transmitted
  • a “Content-Type” header indicating the type of content to be transmitted
  • “must-revalidate” indicates that the “Cache-Control” header must check whether the cached content is the latest data before sending the cache of the transmitted content to others. Is described. Further, “video / mp4” indicating that the content to be transmitted is moving image data in the MP4 format is described in the “Content-Type” header.
  • the HTTP message corresponding to the response 126 for transmitting the content 1 from the proxy 3a to the client 4a includes a response line, a header, and a body.
  • a “Cache-Control” header indicating an instruction regarding caching of the content to be transmitted, a “Content-Type” header indicating the type of the content to be transmitted, and a “Via” header indicating the message transfer path are included. ing.
  • “must-revalidate” is described in the “Cache-Control” header and “video / mp4” is described in the “Content-Type” header, similarly to the response 124.
  • the “Via” header indicates that a request including the “Via” header has been transmitted via the apparatus.
  • address information indicating the address of the device that has been passed is described, and in the response 124, address information “example-proxy1.com” that indicates the address of the proxy 3a that is the device that has passed is described. Yes.
  • the data entity (binary data) of content 1 is included, and “[binary-data: content1]” indicating the data of content 1 is described.
  • HTTP messages in session 150 and session 160 will be described with reference to FIG. Note that (a) to (c) and (f) in FIG. 10 correspond to (a) to (c) and (f) in FIG. 8, respectively.
  • content 1 in FIG. Second since the proxy 3a is only changed to the proxy 3b, the description of the HTTP messages of the request 151, the response 153, the request 161, and the response 166 is omitted.
  • the HTTP message corresponding to the request 163 that requests the content 2 from the proxy 3b to the server 2 with a condition includes a request line and a header.
  • the URI of the content to be requested is described after “GET” indicating the method for acquiring the content. Specifically, “/ content name” is described.
  • an “If-Modified-Since” header indicating that the latest data content is requested if updated to new data after the date and time described in the header
  • An “Accept” header, a “Host” header, and a “Via” header are included.
  • “Sun, 31ified May 2013 15:03:08 GMT” indicating the date and time when the proxy 3b caches the content 2 requested by the request 163 is described in the “If-Modified-Since” header.
  • the server 2 that is the device that has received the request 163 can determine whether or not the content 2 held by the proxy 3b is the latest data from the date and time cached by the proxy 3b.
  • the response 165 from the server 2 to the proxy 3b As shown in FIG. 10E, the HTTP message corresponding to the response 165 indicating that the content 2 held by the proxy 3b is the latest data is sent from the server 2 to the proxy 3b. Is included.
  • the header of (e) in FIG. 10 includes a “Date” header indicating the date and time when the response 165 is transmitted.
  • the client 4 has a proxy function so that the processing load of the server 2 and the network load used for data transmission from the server 2 can be more widely distributed. An example of behavior is shown.
  • the client 4 includes a storage unit, registers the acquired content in a cache, and retains (possibly) the content from response messages transmitted by the server 2 in the past. (Proxy 3 or client 4) is specified, and the device (client 4) that requested the content is instructed to acquire the content from the specified device.
  • the client 4 is a device that transmits a content request and acquires the content, holds the requested content, and forwards the requested content to another device (proxy). Or a device that acquires a content by transmitting a content request, and operates as a content reproduction device that acquires and reproduces the requested content.
  • proxy 3 and the client 4 that operates as a proxy are referred to as a relay device, and the client 4 that acquires and plays back the requested content is referred to as a content playback device.
  • the second embodiment is different from the first embodiment in that the client 4 only has a proxy function and is otherwise the same as the first embodiment. Differences from the embodiment will be described.
  • FIG. 11 is a diagram illustrating an outline of the content distribution system 1a according to the second embodiment and a configuration of main parts of each device configuring the content distribution system 1a.
  • the content distribution system 1a includes a server 2, a proxy 3, and clients 4c and 4d.
  • the content distribution system 1a includes a content storage unit 5 connected to the server 2, a cache storage unit 6 connected to the proxy 3, and client storage units 8c and 8d connected to the clients 4c and 4d, respectively. Including.
  • client storage units 8c and 8d are collectively referred to as the client storage unit 8.
  • the proxy 3 in the present embodiment has the same configuration and operation process as the proxy 3 in the first embodiment, description of the details of the proxy 3 is omitted here.
  • the server 2 in this embodiment has the same configuration as the server 2 in the first embodiment. However, since the client 4 may operate as a proxy, the operations of the response executing unit 15, the relay device specifying unit 16, and the content storage location information generating unit 17 are partially different.
  • the response execution unit 15 When the response execution unit 15 receives a request message for requesting transmission of content from the relay device or the content reproduction device via the server communication unit 11, it determines whether or not the request message is transmitted from the relay device. In response, a response message to the received request message is transmitted to the relay device or the content reproduction device.
  • the response execution unit 15 waits to receive a request message for requesting content transmission.
  • the request message for requesting content transmission is received via the server communication unit 11
  • the response execution unit 15 receives the request message.
  • the header of the request message is checked, and it is determined whether or not the received request message is transmitted via the relay device. For example, when the response execution unit 15 receives the request message, if the received request message includes a “Via” header (transfer route information), the received request message receives the request message from the content reproduction device. If the received request message does not include the “Via” header, it is determined that the request message has been transmitted directly from the content playback device. May be.
  • the response execution unit 15 When the received request message is not transmitted from the relay device, that is, when the response execution unit 15 receives a request message for requesting content directly from the content reproduction device that is the transmission source device of the request message, The device specifying unit 16 is instructed to specify the address information (for example, the URI of the proxy 3 or the client 4) of the relay device that holds (possibly) the content requested by the content reproduction device.
  • the response execution unit 15 receives from the relay device specifying unit 16 the address information of the relay device that holds the content requested by the content reproduction device, the response execution unit 15 responds to the request message from the content reproduction device as a response to the relay device specification unit 16.
  • a response message instructing to acquire the content is transmitted from the device identified by the address information identified by to the content reproduction device.
  • the response execution unit 15 uses “305 USE Proxy” as a response message, and gives the address information specified by the relay device specifying unit 16 to the “Location” field, so that the content playback device can play back the content.
  • the relay device that holds (possibly) the content requested by the device is instructed to retransmit the content request message.
  • the response execution unit 15 when the received request message is transmitted via the relay device, that is, when the request message is received from the relay device, the response execution unit 15 subsequently receives the request message “ It is determined whether the request is a conditional request such as “If-Modified-Since”. If the received request message is not a conditional request, the response execution unit 15 reads the requested content from the content storage unit 5, and transmits the read content to the relay apparatus that transmitted the request message as a response to the request message. To do.
  • the response execution unit 15 subsequently determines whether the content data held by the relay apparatus that has transmitted the request message is the latest data. . In other words, the response execution unit 15 determines whether the content data held by the relay apparatus that has transmitted the request message is the same as the same content data stored in the content storage unit 5. .
  • the response execution unit 15 reads the requested content from the content storage unit 5 and reads the read content as a response to the request message. Is transmitted to the relay apparatus that transmitted the request message. If the content data held by the relay device that transmitted the request message is the latest data, the response execution unit 15 uses the content held by the relay device that transmitted the request message as a response to the request message. A response message indicating that the data is the latest data is transmitted to the relay apparatus that transmitted the request message. For example, the response execution unit 15 sets “304 NOT modified” as a response message indicating that the content data held by the relay apparatus that transmitted the request message is the latest data, to the relay apparatus that transmitted the request message. Send.
  • the response execution unit 15 creates a transmission log from the transmitted response message, and stores the created transmission log in the transmission log storage unit 12 as in the first embodiment.
  • the response execution unit 15 transmits, for example, “Cache-Control: must-revalidate” or “ “Cache-Control: proxy-revalidate” may be added.
  • the server 2 when the content acquired by the relay device that acquired the content is transmitted in accordance with another request, the server 2 must be sure to check whether the content is the latest version before transmitting to the relay device that acquired the content. Can be made.
  • the relay device identification unit 16 identifies a relay device that holds (possibly has) the content requested by the content reproduction device in accordance with the instruction from the response execution unit 15.
  • the relay device specifying unit 16 receives the instruction from the response execution unit 15 and reads the content storage destination information from the content storage destination information storage unit 13.
  • the relay device identification unit 16 refers to the read content storage location information and identifies the address information of the relay device associated with the content requested by the content reproduction device as the address information of the content acquisition destination.
  • the relay device identification unit 16 transmits the identified address information to the response execution unit 15.
  • the relay device specifying unit 16 determines in advance for each content requested by the content reproduction device.
  • the provided (default) address information may be specified as address information of the acquisition destination of the content.
  • the relay device specifying unit 16 is connected to the server 2 via the network 7 when the content storage destination information storage unit 13 does not store content storage destination information including content requested by the content reproduction device.
  • the acquisition source of the content may be specified randomly from the relay device.
  • the relay device specifying unit 16 has a plurality of addresses when the content storage destination information storage unit 13 includes a plurality of pieces of content storage destination information including address information of the relay devices associated with the content requested by the content reproduction device.
  • the information may be specified as address information of the content acquisition destination, and a content storage destination list including a plurality of specified address information may be created.
  • the relay device specifying unit 16 may create a content storage destination list by adding a priority to the plurality of address information.
  • the relay device specifying unit 16 may specify the content acquisition destination based on the date and time included in the content storage destination information, as in the first embodiment. Further, the content acquisition destination may be specified based on a physical or network structural distance between the content reproduction device and the relay device. Further, the relay device specifying unit 16 specifies a relay device that holds (possibly) the content requested by the content reproduction device and has a low load in consideration of the load status of the relay device. Also good. More specifically, the relay device specifying unit 16 may specify the address information of the content acquisition destination with reference to the transmission log stored in the transmission log storage unit 12.
  • the relay device specifying unit 16 may specify a relay device that holds (possibly) the content requested by the content reproduction device in consideration of the number of accesses from the relay device to the server 2.
  • the relay device specifying unit 16 in the first embodiment performs processing for specifying a relay device that holds (possibly has) content requested by the content reproduction device executed by the relay device specifying unit 16. Since it is the same as the process of specifying the proxy 3 that holds (possibly) the content requested by the client 4 to be executed, a description of the specific process is omitted.
  • the content storage location information generation unit 17 generates content storage location information for specifying address information of a relay device that holds content (possibly) from the transmission log stored in the transmission log storage unit 12. Thus, it is stored in the content storage location information storage unit 13.
  • the content storage location information generation unit 17 includes not only the proxy 3 but also the client 4 as a device that holds (possibly) content.
  • the content storage location information generation unit 17 refers to a transmission log (content transmission log) indicating that the server 2 has transmitted content to the relay device, and the content transmitted by the server 2 and the content
  • the content storage destination information is generated by associating the address information of the transmission destination with the date and time when the server 2 transmits the content. This is because the content transmission destination device is considered to store the content.
  • the content storage location information generation unit 17 identifies the content held by the relay device with reference to a transmission log (version notification log) indicating that the server 2 has transmitted as a response message that the content is the latest version.
  • the content storage location information is obtained by associating the content confirmed to be the latest version, the address information of the device (relay device) holding the content, and the date and time when the server 2 transmitted the response message. Generate. This is because the transmission destination device of the response message indicating the latest version stores the latest version of the content.
  • the content storage location information generation unit 17 specifies the server 2 with reference to a transmission log (acquisition instruction log) indicating transmission of a content acquisition instruction that causes the content reproduction apparatus to acquire the content by specifying the apparatus.
  • the content storage destination information may be generated by associating the content, the address information of the transmission destination of the content acquisition instruction, and the transmission date and time of the response message. This is because the device that is the destination of the content acquisition instruction has a high possibility of acquiring and storing the content thereafter.
  • the content acquisition instruction transmission destination device may fail to acquire the content thereafter, so the content storage destination information may be generated using both the content transmission log and the acquisition instruction log. That is, when there is an acquisition instruction log and a content transmission log indicating that the content has been transmitted from the server 2 to the relay device, the content, the transmission destination address of the acquisition instruction log, and the date and time of the content transmission log Corresponding content storage location information may be used. If the relay device specified as the content acquisition destination in the content acquisition instruction does not store the content, it is considered that the server 2 requests the content, and if the server 2 responds to the request, the content is relayed. This is because the content acquisition instruction is transmitted to the transmission destination device via the device.
  • the content storage location information generation unit 17 may generate content storage location information with reference to the acquisition instruction log and the version notification log. That is, a content transmission log indicating that a content acquisition instruction instructing to acquire content from a certain relay device has been transmitted, and a version notification log indicating that the relay device has been notified that the content is the latest version If present, the content storage location information may be generated by associating the content, the transmission destination address of the content acquisition instruction, and the date and time included in the version notification log.
  • the content storage destination information generation unit 17 may generate the content storage destination information every time a predetermined transmission log is added to the transmission log storage unit 12, or read the transmission log every predetermined period.
  • the content storage location information may be generated.
  • FIG. 12 is a diagram illustrating an example of a transmission log stored in the transmission log storage unit 12.
  • FIG. 13 is a diagram illustrating an example of content storage location information stored in the content storage location information storage unit 13.
  • an operation example of the content storage location information generation unit 17 that creates the content storage location information shown in FIG. 13 based on the transmission log shown in FIG. 12 will be described.
  • the content storage location information generation unit 17 refers to a transmission log (content transmission log) 42 whose transmission content is “200 OK”, “content1” included in the transmission log 42, and “http: // example -proxy1.com "is associated with” Sun, 31 May 2013 13:53:38 GMT "to create the content storage location information 45 shown in FIG.
  • the content storage location information generation unit 17 has a transmission log (acquisition instruction log) 41 whose transmission content is “305 Use Proxy (proxy1)” and “200 OK”.
  • the content storage destination information 46 is generated from the transmission log 42 that is the same and that has responded to “proxy1” indicated in the transmission content of the transmission log 41. That is, “content1”, the transmission destination address “http://example-client1.com” included in the transmission log 41, and the transmission date and time “Sun, 31 May 2013 13:53:38 GMT” of the transmission log 42
  • the content storage location information 46 shown in FIG. 13 is created. Since “content1” is also stored in “http://example-proxy1.com”, “http://example-proxy1.com” may be added to the address information.
  • the content storage location information generation unit 17 refers to the transmission log (version notification log) 44 whose transmission content is “304 Not Modified”, “content1” included in the transmission log 44, and “http: / /example-client1.com ”and“ Mon, 01 Jun 2013 08:05:30 GMT ”are associated with each other to create the content storage location information 47 shown in FIG.
  • the content storage location information generation unit 17 has a transmission log 43 whose transmission content is “305 Use Proxy (client1)” (acquisition instruction log) and “304 Not Modified”. And the content storage location information 46 is generated from the transmission log 44 indicating that a response has been made to “client1” indicated in the transmission content of the transmission log 43. That is, “content1”, the transmission destination address “http://example-client2.com” included in the transmission log 43, and the transmission date and time “Mon, 01 Jun 2013 08:05:30 GMT” of the transmission log 44 Correspondingly, the content storage location information 47 shown in FIG. 13 is created. Since “content1” is also stored in “http://example-client1.com”, “http://example-client1.com” may be added to the address information.
  • the client control unit 32 includes a response / request execution unit 35 instead of the request execution unit 33 unlike the first embodiment.
  • a client storage unit 8 that caches content is connected to the client 4.
  • the client storage unit 8 may be built in the client 4.
  • the response / request execution unit 35 executes the same operation process as the request execution unit 33 when the client 4 operates as a content reproduction device.
  • the response / request execution unit 35 generates a request message for requesting transmission of content, transmits the request message to the server 2 via the client communication unit 31, and receives a response message as a response thereto. Then, the response / request execution unit 35 receives information specifying the relay device and an instruction to transmit a request message for requesting content from the relay device as a response message from the server 2. When the response / request execution unit 35 receives the response message from the server 2, the response / request execution unit 35 transmits a request message for requesting transmission of the content to the designated relay device according to the instruction of the server 2. Then, the response / request execution unit 35 acquires content from the relay device designated by the server 2. The response / request execution unit 35 stores the acquired content in the client storage unit 8.
  • response / request execution unit 35 executes the same operation process as the request execution unit 23 of the proxy 3 when the client 4 operates as a relay device.
  • the response / request execution unit 35 transmits the content specified by the request message for requesting the content received from the content playback device to the content playback device.
  • the response / request execution unit 35 waits for a request message for requesting transmission of content from the content reproduction device, and is requested when a request message is received from the content reproduction device via the client communication unit 31. It is confirmed whether or not the stored content is stored in the client storage unit 8.
  • the response / request execution unit 35 When the requested content is not stored in the client storage unit 8, the response / request execution unit 35 confirms the Host field of the request message transmitted from the content reproduction device, and the URI described in the Host field. A content request message requested by the content reproduction apparatus is transmitted to the server 2 shown. Then, the response / request execution unit 35 acquires content from the server 2 and stores the acquired content in the client storage unit 8. The response / request execution unit 35 stores the acquired content in the client storage unit 8, and then transmits the requested content to the content reproduction device.
  • the response / request execution unit 35 determines whether the content data held in the client storage unit 8 is the latest data. In order to confirm, the request message of the conditional request is created by adding “If-Modified-Since” describing the time information when the relay device acquires the content to the request message. A request message is transmitted to the server 2.
  • the response / request execution unit 35 When a response message “304 NOT Modified” is received from the server 2 as a response to the request message for the conditional request, the response / request execution unit 35 has the latest data stored in the client storage unit 8. The content stored is read from the client storage unit 8, and the read content is transmitted to the content reproduction apparatus.
  • the latest version of the content is transmitted from the server 2 as a response to the request message for the conditional request, and the response / request execution unit 35
  • the content transmitted from 2 is acquired.
  • the response / request execution unit 35 stores the acquired content in the client storage unit 8, and then transmits the requested content to the content reproduction device.
  • the description of “Cache-Control: must-revalidate” or “Cache-Control: proxy-revalidate” given by the server 2 is added to the header of the content to be transmitted.
  • the content may be transmitted as it is. Thereby, when the content acquired by the content playback device of the content transmission destination is transmitted according to another request, the content playback device always makes the server 2 check whether the content is the latest version before transmitting. Can do.
  • FIG. 14 is a flowchart illustrating an example of processing executed by the server 2.
  • the response execution unit 15 waits to receive a request message for requesting content transmission, and when receiving a request message for requesting content transmission via the server communication unit 11 (S501), the received request message. Is checked to determine whether the received request message is transmitted from the relay device (S502).
  • the content playback device acquires content from the relay device specifying unit 16 so as to specify the acquisition destination relay device.
  • the relay device specifying unit 16 reads the content storage location information from the content storage location information storage unit 13 (S503).
  • the relay device identification unit 16 refers to the read content storage location information, and identifies the URI of the relay device associated with the content requested by the content reproduction device as the address information of the content acquisition destination (S504). .
  • the relay device identification unit 16 transmits the identified address information to the response execution unit 15.
  • the response execution unit 15 transmits a response message instructed to acquire the requested content from the relay device existing at the address indicated by the address information specified by the relay device specifying unit 16 to the content reproduction device (S505).
  • the response execution unit 15 creates a transmission log from the response message transmitted to the content reproduction device, and adds the created transmission log to the transmission log storage unit 12 (S510).
  • the response execution unit 15 subsequently receives the conditional request such as “If-Modified-Since”. It is determined whether or not (S506). If the received request message is not a conditional request (NO in S506), the response execution unit 15 reads the content requested from the relay device from the content storage unit 5, and reads it as a response to the request message from the relay device. The content is transmitted to the relay device (S507). Then, the response execution unit 15 creates a transmission log from the response message transmitted to the relay device, and adds the created transmission log to the transmission log storage unit 12 (S510).
  • the conditional request such as “If-Modified-Since”. It is determined whether or not (S506). If the received request message is not a conditional request (NO in S506), the response execution unit 15 reads the content requested from the relay device from the content storage unit 5, and reads it as a response to the request message from the relay device. The content is transmitted to the relay device (S507). Then, the response execution unit 15 create
  • the response execution unit 15 determines whether the content data held by the relay device is the latest data (S508). . If the content data held by the relay device is not the latest data (NO in S508), the response execution unit 15 reads the content requested by the relay device from the content storage unit 5, and requests the message from the relay device. As a response to, the read content is transmitted to the relay device (S507). On the other hand, if the content data held by the relay device is the latest data (YES in S508), the response execution unit 15 returns the content held by the relay device as a response to the request message from the relay device. A response message indicating that the data is the latest data is transmitted to the relay apparatus (S509). Then, the response execution unit 15 adds the response message transmitted to the relay device to the transmission log storage unit 12 (S510).
  • the response execution unit 15 adds, for example, “Cache-Control: must-revalidate” or “Cache-Control: proxy-revalidate” to the content header when transmitting the content to the relay device.
  • the relay device can be sure to confirm with the server whether the content is the latest version before transmission.
  • FIG. 15 is a flowchart illustrating an example of processing executed by the content reproduction apparatus that is the client 4.
  • the response / request execution unit 35 transmits a request message requesting the server 2 to transmit content (S521).
  • the response / request execution unit 35 receives a response message instructed to acquire the requested content from the designated relay device (S522).
  • the response / request execution unit 35 transmits a request message to the relay device designated by the server 2 according to the instruction of the server 2 (S523).
  • the response / request execution unit 35 acquires content as a response from the relay apparatus that has transmitted the request message (S524).
  • FIG. 16 is a flowchart illustrating an example of processing executed by the relay device that is the client 4.
  • the response / request execution unit 35 waits for a request message for requesting content transmission from the content reproduction device (other client 4), and from the content reproduction device via the client communication unit 31.
  • the request message is received (S541), it is confirmed whether or not the requested content is stored in the client storage unit 8 (S542).
  • the response / request execution unit 35 When the requested content is not stored in the client storage unit 8 (NO in S542), the response / request execution unit 35 confirms the Host field of the request message transmitted from the content reproduction device and describes it in the Host field. A request message for the content requested by the content reproduction device is transmitted to the server 2 indicated by the URI that has been sent (S543). Then, the response / request execution unit 35 acquires content from the server 2 (S544), and stores the acquired content in the client storage unit 8 (S545). The response / request execution unit 35 stores the acquired content in the client storage unit 8, and then transmits the requested content to the content reproduction device (S546).
  • the response / request execution unit 35 When the requested content is stored in the client storage unit 8 (YES in S542), the response / request execution unit 35 describes “If-Modified-” in which the time information at which the device itself acquired the content is described in the request message. Since "is added to create a request message for the conditional request, and the created conditional request message is transmitted to the server 2 (S547).
  • the response / request execution unit 35 stores the content stored from the client storage unit 8. And the read content is transmitted to the content reproduction apparatus (S426).
  • the latest version of the content is transmitted from the server 2 as a response to the request message for the conditional request, and the response / request execution unit 35
  • the latest version of the content transmitted from 2 is acquired (S544).
  • the response / request execution unit 35 stores the acquired content in the client storage unit 8 (S545), and then transmits the requested content to the content reproduction device (S546).
  • Example 2 is shown in FIG. 17, and this embodiment will be described in more detail.
  • FIG. 17 is a diagram illustrating an example of an operation sequence of the content distribution system 1a according to the second embodiment.
  • the content 1 is stored in the content storage unit 5 and nothing is cached in the cache storage unit 6 and the client storage units 8c and 8d. Assume that the acquisition destination of the content 1 is set as the proxy 3. Also, in the second embodiment, it is assumed that the transmission log and the content storage destination information are not stored in the transmission log storage unit 12 and the content storage destination information storage unit 13, respectively, at the start of the process illustrated in FIG.
  • the response execution unit 15 creates the transmission log shown in FIG. 12 every time a response message is sent, and the content storage destination information generation unit 17 creates the content storage destination information shown in FIG. 13 as the content transmission log or version notification log. Each time (transmission log whose “transmission content” is “200 ⁇ OK” or “304 Not Modified”) is added to the transmission log storage unit 12, it is created.
  • one session is a period from when the content playback device transmits a request message until it receives a response message corresponding to the request message.
  • the client 4c transmits a request message requesting transmission of the content 1 to the server 2 (request 211).
  • the response execution unit 15 instructs the relay device specifying unit 16 to specify the acquisition relay device.
  • the relay device specifying unit 16 confirms the content storage destination information in the content storage destination information storage unit 13 (process 212).
  • the relay device specifying unit 16 sets the proxy 3 set as a default as the acquisition destination of the content 1. Is specified as the acquisition destination of the content 1.
  • the response execution unit 15 transmits a response message instructed to acquire the requested content from the proxy 3 corresponding to the address information specified by the relay device specifying unit 16 to the client 4c (response 213). Then, the response execution unit 15 creates a transmission log based on the transmitted response message and adds it to the transmission log storage unit 12 (process 214).
  • the client 4c that has received the response 213 transmits a request message for requesting transmission of the content 1 to the proxy 3 in accordance with an instruction from the server 2 (request 221).
  • the proxy 3 that has received the request 221 checks whether or not the content 1 is stored in the cache storage unit 6 (process 222). Here, since the content 1 is not stored in the cache storage unit 6, a request message based on the request 221 is transmitted to the server 2 (request 223).
  • the response execution unit 15 transmits the content 1 to the proxy 3 (response 224).
  • the proxy 3 that has received the response 224 stores the acquired content 1 in the cache storage unit 6 and performs cache registration (processing 225). After the cache registration, the proxy 3 transmits the content 1 to the client 4c as a response to the request 221 (response 226). When the client 4c acquires the content 1 from the proxy 3, the client 4c stores the acquired content 1 in the client storage unit 8c and performs cache registration (processing 227). In addition, after transmitting the response 224, the response execution unit 15 creates a transmission log based on the transmitted response message and adds the transmission log to the transmission log storage unit 12 (processing 228).
  • the content storage location information generation unit 17 generates content storage location information by associating the content 1 with the address information of the proxy 3 and stores the content storage location information in the content storage location information storage unit 13. Further, the content storage location information generation unit 17 generates content storage location information by associating the content 1 with the address information of the client 4c, and stores the content storage location information in the content storage location information storage unit 13 (process 229).
  • the content 1 is cache-registered in the cache storage unit 6 of the proxy 3 and the client storage unit 8c of the client 4c. That is, in the state in which the content storage destination information in which the content 1 and the proxy 3 are associated and the content storage destination information in which the content 1 and the client 4c are associated are stored in the content storage destination information storage unit 13. is there. That is, in this state, not only the proxy 3 but also the client 4c are candidates for the relay device from which the content 1 is acquired.
  • the client 4d transmits a request message for requesting transmission of the content 1 to the server 2 (request 231).
  • the response execution unit 15 instructs the relay device specifying unit 16 to specify the acquisition relay device.
  • the relay device specifying unit 16 confirms the content storage destination information in the content storage destination information storage unit 13 (process 232).
  • the proxy 3b and the client 4c exist as storage locations associated with the content 1 in the content storage location information storage unit 13, and the content storage location information including the client 4c is newer,
  • the relay device specifying unit 16 specifies the client 4 c as the acquisition destination of the content 1.
  • the response executing unit 15 transmits a response message instructed to acquire the requested content from the client 4c specified by the relay device specifying unit 16 to the client 4d (response 233). Then, the response execution unit 15 creates a transmission log based on the transmitted response message and adds it to the transmission log storage unit 12 (process 234).
  • the client 4d that has received the response 233 transmits a request message for requesting transmission of the content 1 to the client 4c according to the instruction of the server 2 (request 241).
  • the client 4c that has received the request 241 checks whether or not the content 1 is stored in the client storage unit 8c (process 242). Since the content 1 is already stored in the client storage unit 8c, the client 4c makes a request 241 to confirm with the server 2 whether the content 1 stored in the client storage unit 8c is the latest data. “If-Modified-Since” is added to the request message based on the request message and sent to the server 2 as a conditional request (request 243).
  • the response execution unit 15 uses the content 1 held by the client 4c. Is the latest data (process 244). The response execution unit 15 determines that the content 1 held by the client 4c is the latest data, and transmits a response message “304 NOT Modified” to the client 4c (response 245). The client 4c that received the response 245 reads the content 1 stored in the client storage unit 8c, and transmits the read content 1 to the client 4d as a response to the request 241 (response 246).
  • the response execution unit 15 creates a transmission log based on the transmitted response message and adds it to the transmission log storage unit 12 (process 247).
  • the content storage location information generation unit 17 generates content storage location information by associating the content 1 with the address information of the client 4 c and stores the content storage location information in the content storage location information storage unit 13. Further, the content storage location information generation unit 17 generates content storage location information by associating the content 1 with the address information of the client 4d, and stores the content storage location information in the content storage location information storage unit 13 (process 248).
  • the client 4 operates as a content reproduction device or as a relay device.
  • the server 2 increases the number of options that can be specified as a relay device. Therefore, the processing load of the server 2 and the network load used for data transmission from the server 2 server are changed between the client 4 and the client 4 -client 4. It can be distributed over a wider range of networks including networks.
  • FIGS. 18 to 19 are diagrams illustrating examples of HTTP messages transmitted and received as requests or responses.
  • FIG. 18 is a diagram illustrating examples of HTTP messages in the session 210 and the session 220.
  • FIG. 4 is a diagram illustrating an example of an HTTP message in a session 240.
  • FIG. 18 is a diagram illustrating examples of HTTP messages transmitted and received as requests or responses.
  • FIG. 18 is a diagram illustrating examples of HTTP messages in the session 210 and the session 220.
  • FIG. 4 is a diagram illustrating an example of an HTTP message in a session 240.
  • FIG. 18A shows the request 211 shown in FIG. 17, FIG. 18B shows the response 213, FIG. 18C shows the request 221, and FIG. 18D shows the request 223.
  • 18 (e) shows the HTTP message of the response 224, and FIG. 18 (f) shows the HTTP message of the response 226.
  • FIG. 19A shows the request 231 shown in FIG. 17, FIG. 19B shows the response 233, FIG. 19C shows the request 241, and FIG. 19D shows the request 243.
  • 19 (e) shows the HTTP message of the response 245, and FIG. 19 (f) shows the HTTP message of the response 246.
  • FIG. 18 correspond to (a) to (f) in FIG. 8, respectively.
  • the client 4a in FIG. 8 is changed to the client 4c
  • the proxy 3a is changed to the proxy 3.
  • the other contents are as described above.
  • (a) to (f) in FIG. 19 correspond to (a) to (f) in FIG. 10, respectively.
  • content 2 in FIG. 10 is content 1 and client 4a is client 4d.
  • the proxy 3b is changed to the client 4c.
  • the other contents are as described above.
  • the server 2 designates a plurality of content acquisition destination relay devices so that the network load between the content reproduction device and the relay device can be more widely distributed.
  • An example is shown in which content is acquired by selecting a relay device from among the plurality of relay devices.
  • the client 4 that is a content reproduction device selects one relay device from among a plurality of relay devices designated by the server 2 and acquires content from the selected relay device. If a delay occurs with respect to content acquisition during content acquisition, another relay device is selected again from the plurality of relay devices designated by the server 2, and the relay device that acquires the content is changed.
  • the third embodiment is different from the second embodiment only in the configuration of the client 4 and the data format of the content managed by the server 2, and the others are the same. A different point from a form is demonstrated.
  • FIG. 20 is a diagram illustrating an outline of the content distribution system 1b according to the third embodiment and a configuration of a main part of each device configuring the content distribution system 1b.
  • the content distribution system 1b includes a server 2, proxies 3a, 3b and 3c, and clients 4e and 4f.
  • the content distribution system 1b is connected to the content storage unit 5 connected to the server 2, the cache storage units 6a, 6b, and 6c connected to the proxies 3a, 3b, and 3c, and the clients 4e and 4f, respectively.
  • the proxy 3 in the present embodiment has the same configuration and operation process as the proxy 3 in the first embodiment, description of the details of the proxy 3 is omitted here.
  • the server 2 in the present embodiment has the same configuration as the server 2 in the second embodiment, and performs the same operation as the server 2 in the second embodiment.
  • the server 2 in this embodiment specifies a plurality of (possible) relay apparatuses that hold the content requested by the content reproduction apparatus, and A content storage destination list including the address information of the plurality of identified relay devices is presented to the content playback device, and the content playback device is provided with the relay device existing at the address indicated by the address information included in the presented content storage destination list. It is instructed to acquire content from either.
  • the response execution unit 15 when the response execution unit 15 receives a request message directly requesting content from the content reproduction device, the response execution unit 15 holds the content requested by the content reproduction device in the relay device specifying unit 16 (possibility The address information of the relay apparatus (for example, the URI of the proxy 3 or the client 4) is specified.
  • the response execution unit 15 receives from the relay device specifying unit 16 a content storage destination list including a plurality of address information of relay devices that hold the content requested by the content playback device, the response execution unit 15 responds to the request message from the content playback device.
  • a response message instructing to acquire the requested content from any of the relay devices existing at the address indicated by the address information included in the content storage destination list created by the relay device specifying unit 16 is transmitted to the content reproduction device To do.
  • the relay device specifying unit 16 specifies a plurality of (possibly) relay devices that hold the content requested by the content reproduction device in accordance with an instruction from the response execution unit 15, and sets address information of the specified plurality of relay devices. A content storage destination list is created.
  • the relay device specifying unit 16 receives the instruction from the response execution unit 15 and reads the content storage destination information from the content storage destination information storage unit 13.
  • the relay device specifying unit 16 refers to the read content storage location information, specifies a plurality of address information of the relay device associated with the content requested by the content reproduction device, and includes the specified plurality of address information Create a storage list.
  • the relay device specifying unit 16 transmits the created content storage destination list to the response executing unit 15.
  • the relay device specifying unit 16 does not store content storage destination information including content requested by the content reproduction device in the content storage destination information storage unit 13, or content including content requested by the content reproduction device.
  • predetermined (default) address information is specified as address information of the acquisition destination of the content, and a plurality of address information May be created.
  • the relay device specifying unit 16 does not store content storage destination information including content requested by the content reproduction device in the content storage destination information storage unit 13, or content including content requested by the content reproduction device.
  • the content acquisition location list is created by randomly identifying the content acquisition location from among the relay devices connected to the server 2 via the network 7. May be.
  • the relay device specifying unit 16 may create a content storage destination list by adding priority to the specified plurality of address information.
  • the date and time included in the content storage location information, the physical or network structural distance between the content reproduction device and the relay device, the load status of the relay device, and the transmission log storage unit The priority order may be determined based on the transmission log stored in FIG.
  • the client 4 when the client 4 in the present embodiment functions as a content reproduction device, the client 4 receives the content storage destination list transmitted from the server 2 and includes the address included in the received content storage destination list.
  • the requested content is acquired from any of the relay devices existing at the address indicated by the information.
  • the client control unit 32 is not included in the second embodiment in addition to the response / request execution unit 35, but the client status determination unit 36 and the relay device selection unit (relay) Device changing means) 37.
  • the response / request execution unit 35 receives, as a response message from the server 2, a request message for requesting content from either the content storage destination list or a relay device existing at the address indicated by the address information included in the content storage destination list. Receive instructions to send.
  • the relay device selection unit 37 selects any one of the address information included in the content storage destination list received by the response / request execution unit 35. Select. The relay device selection unit 37 instructs the response / request execution unit 35 to acquire content from the relay device existing at the address indicated by the selected address information.
  • the relay device selection unit 37 does not add priority to the address information included in the content storage destination list (unless it is instructed to select the relay device for acquiring content from the server 2).
  • the address information included in the content storage destination list may be randomly selected, may be selected based on a predetermined rule (default), or may be physically or network structure with the own device The relay device with the shortest distance may be selected.
  • the relay device selection unit 37 selects the address information having the highest priority.
  • the relay device selection unit 37 has a content acquisition speed (content reception speed) acquired by the response / request execution unit 35 from the relay device selected by the relay device selection unit 37 higher than a predetermined reception speed.
  • the acquisition destination relay device that acquires the content is changed to another relay device that exists at the address indicated by the address information included in the content storage destination list, The response / request execution unit 35 is instructed to acquire content from another changed relay device.
  • the relay device selection unit 37 randomly selects another relay device from the address information included in the content storage destination list. Alternatively, it may be selected based on a predetermined rule (default), or a relay device having the next shortest physical or network structural distance from the own device may be selected. .
  • the relay device selection unit 37 selects the address information with the next highest priority.
  • the client status determination unit 36 detects the occurrence of a predetermined event. Specifically, the client status determination unit 36 detects an event that the content is received with a delay from the schedule when the content reproduction device acquires the content requested from the relay device. This event is an event indicating whether the communication status of the network between the content reproduction device and the relay device is good and / or the load on the relay device. When the client status determination unit 36 detects an event that the content is received with a delay from the schedule, the client status determination unit 36 transmits delay information indicating the detected event to the relay device selection unit 37.
  • FIG. 21A shows an example of a content format.
  • the media file which is data indicating content, is fragmented in a predetermined unit.
  • This unit is not particularly limited, and may be fragmented in units of time such as 1 minute, or may be fragmented in units of GOP (Group Of Picture) in image coding.
  • GOP Group Of Picture
  • this fragment is called a movie fragment, and an MP4 file is used as a specific example of a media file composed of movie fragments.
  • the media file When the media file is an MP4 file, it is composed of “moof” storing header information for managing video / audio in the fragment and “mdat” storing video / audio data to be played back by the client.
  • a fragment corresponds to a movie fragment.
  • information related to the entire media file for example, information necessary for initialization of the content playback unit 34 in the client 4, such as image resolution and profile information (playback) Information) is stored in “moov” different from “moof” and “mdat” described above.
  • the reproduction information stored in “moov” needs to be notified to the client 4 before the reproduction is started.
  • the playback information stored in “moov” may be notified by a procedure different from that for the movie fragment, and it is not always necessary to include “moov” in the movie fragment. However, in the following description, the beginning of each media file is not included. An example in which the movie fragment includes “moov” will be described. That is, “information necessary for initialization of the playback device” in FIG. 21A is “moov”.
  • each movie fragment in each media file are sequentially numbered “movie fragment 1” and “movie fragment 2” in order from the first movie fragment.
  • Each movie fragment includes video data for one second.
  • FIG. 21B is a diagram showing a concept of a media segment handled by the content distribution system 1b as a content transmission unit, and shows an example of a content transmission unit in the content distribution system 1b.
  • the media segment includes at least one movie fragment. From another point of view, it can be said that the content is composed of one or more media segments, and each media segment is composed of one or more movie fragments.
  • a media segment is configured to include two or more movie fragments having a continuous playback time in a predetermined content, but may be composed of one movie fragment or a movie fragment having a playback time that is not continuous. It may be configured.
  • FIG. 21B shows an example in which a plurality of movie fragments are grouped into one media segment.
  • “movie fragment 1 to 60” is grouped into one media segment “media segment 1”, and “movie fragment 61 to 120” is grouped into one media segment “media segment”. 2 ”.
  • the media segment only needs to include two or more movie fragments having a continuous playback time in a predetermined content, and the number of movie fragments included in one media segment is not particularly limited. In the present embodiment, it is assumed that 60 movie fragments are included in one media segment as illustrated.
  • FIG. 22 is a flowchart illustrating an example of processing executed by the server 2.
  • the response execution unit 15 waits to receive a request message for requesting content transmission, and when receiving a request message for requesting content transmission via the server communication unit 11 (S601), the received request message. Is checked to determine whether or not the received request message is transmitted from the relay device (S602).
  • the content reproduction device acquires a plurality of relay devices from which the content reproduction device acquires content to the relay device specifying unit 16.
  • the relay device specifying unit 16 reads the content storage location information from the content storage location information storage unit 13 (S603).
  • the relay device specifying unit 16 refers to the read content storage location information, specifies a plurality of URIs of the relay device associated with the content requested by the content reproduction device, and stores content including the specified plurality of address information
  • a destination list is created (S604).
  • the relay device specifying unit 16 transmits the created content storage destination list to the response executing unit 15.
  • the response execution unit 15 sends a response message instructed to acquire the requested content from any of the relay devices existing at the address indicated by the address information included in the content storage destination list created by the relay device specifying unit 16.
  • the content is transmitted to the device (S605).
  • the response execution unit 15 creates a transmission log from the response message transmitted to the content reproduction device, and adds the created transmission log to the transmission log storage unit 12 (S610).
  • FIG. 23 is a flowchart illustrating an example of processing executed by the client 4 functioning as a content reproduction device.
  • the response / request execution unit 35 transmits a request message for requesting transmission of content to the server 2 (S621). As a response to the request message, the response / request execution unit 35 transmits a request message for requesting content to either the content storage destination list or the relay device existing at the address indicated by the address information included in the content storage destination list. A response message including an instruction to receive is received (S622).
  • the relay device selection unit 37 selects one of the address information included in the content storage destination list received by the response / request execution unit 35 ( S623).
  • the relay device selection unit 37 instructs the response / request execution unit 35 to acquire content from the relay device existing at the address indicated by the selected address information.
  • the response / request execution unit 35 transmits a request message to the relay device selected by the relay device selection unit 37 (S624).
  • the relay device that has received the request message first transmits a header as a response message to the request message, so the response / request execution unit 35 receives this (S625), and notifies the client status determination unit 36 accordingly. To do.
  • the relay device that has received the request message transmits a body in which a plurality of movie fragments are multiparted after the header as a response message to the request message received in S624, so that the response / request execution unit 35 receives the movie fragment. Received (S627), and notifies the client status determination unit 36 to that effect.
  • the response / request execution unit 35 determines that the movie fragment has been received in the MIME multipart format from the value of the “Content-Type” header included in the received header, and notifies the content reproduction unit 34 to that effect. At the same time, the received movie fragment is transmitted to the content reproduction unit 34. Then, the content reproduction unit 34 refers to the “X-Timestamp” header of the received movie fragment, specifies the time stamp of the movie fragment, and reproduces the movie fragment while referring to the time stamp.
  • the client status determination unit 36 evaluates the reception time (S628). Specifically, the client status determination unit 36 compares the time t indicated by the timer that started counting in S626 with the time stamp T fr (X-Timestamp value) of the movie fragment received in S627.
  • the client situation determination unit 36 counts the time t from the start of reception of one movie fragment included in the response message to the start of reception of the next fragment received, and is associated with the previous movie fragment.
  • T fr + T th > t where T fr is the difference between the time stamp value and the time stamp value associated with the next movie fragment, and T th is a predetermined threshold value equal to or greater than zero. Determines that an event indicating that the communication status is bad is detected, and if t ⁇ T fr ⁇ T th , it is determined that an event indicating that the communication status is good is detected.
  • the client situation determination unit 36 increments N 1 which is a counter of the number of times the movie fragment is received sufficiently earlier than the scheduled reception time. Thereafter, the process proceeds to S631.
  • the client situation determination unit 36 increments N 2 which is a counter of the number of times the movie fragment is received with a delay. Thereafter, the process proceeds to S631.
  • the response / request execution unit 35 confirms whether all movie fragments included in the media segment specified by the request transmitted in S624 have been transmitted, and if an unreceived one is confirmed (NO in S631). ) Returns to the process of S627.
  • the response / request execution unit 35 confirms whether or not all media segments of the content subject to the request have been received (S632). When it is confirmed that all have been received (YES in S632), the process is terminated. On the other hand, either in the case where those unreceived was confirmed (NO in S632), the client status determination unit 36, using N 1, N 2 obtained in S629 and S630, a N 2 -N 1> 0 It is determined whether or not (S633).
  • the relay device is not changed, and a request message in which the media segment number is incremented is sent to the relay device selected in S623. Transmit (S624).
  • the client status determination unit 36 transmits to the relay device selection unit 37 delay information indicating that there is a delay in content acquisition.
  • the relay device selection unit 37 selects the address information included in the content storage destination list and different from the currently selected address information ( S634).
  • the relay device selection unit 37 instructs the response / request execution unit 35 to acquire content from the relay device existing at the address indicated by the selected address information.
  • the response / request execution unit 35 transmits again a request message in which the media segment number is incremented to the relay device selected by the relay device selection unit 37 (S624).
  • the relay device may be reselected in units of movie fragments.
  • the relay device is changed according to the evaluation result of the reception time performed in S628, a request message is newly transmitted to the changed relay device, and the request message is transmitted based on the previously transmitted request message.
  • the subsequent movie fragments may be discarded.
  • the client status determination unit 36 counts the number N 1 of movie fragments in which the time required for reception is sufficiently earlier than the scheduled time and the number N 2 of movie fragments in which transmission is delayed in S629 and 630. You may keep it. After transmission of one media segment, if N 2 ⁇ N 1 > 0, it is determined that there is a delay as a whole (determining that an event indicating that the communication status is bad is detected), and that To the relay device selection unit 37.
  • the client status determination unit 36 determines whether or not N 2 ⁇ N 1 > 0, and determines whether or not there is a delay in content acquisition.
  • N 2 an upper limit value of N 2 that is a counter of the number of times a movie fragment is received with a delay is determined in advance, and when the value of N 2 exceeds a predetermined upper limit value, subsequent movie fragments are discarded. Thus, it may be switched to another relay device.
  • Example 3 Hereinafter, Example 3 is shown in FIG. 24, and this embodiment will be described in more detail.
  • FIG. 24 is a diagram illustrating an example of an operation sequence of the content distribution system 1b according to the third embodiment.
  • the content 1 in the format shown in FIG. 21 is stored in the content storage unit 5, and the content 1 is already cached in the cache storage units 6a and 6c and the client storage unit 8f. It shall be.
  • the server 2 creates a content storage destination list by adding priorities to a plurality of address information based on the date and time included in the content storage destination information.
  • the transmission log storage unit 12 stores transmission logs 51 to 53 shown in FIG. 25 at the start of the processing shown in FIG. It is assumed that content storage location information 61 to 63 shown in FIG. Then, the response execution unit 15 creates the transmission logs 54 to 56 shown in FIG.
  • the content storage destination information generation unit 17 creates the content storage destination information 64 to 67 shown in FIG. It is assumed that a transmission log or a version notification log (a transmission log whose “transmission content” is “200 ⁇ OK ”or“ 304 Not Modified ”) is added to the transmission log storage unit 12 every time.
  • one session is a period from when the content playback device transmits a request message until it receives a response message corresponding to the request message.
  • the client 4e transmits a request message for requesting transmission of the content 1 to the server 2 (request 311).
  • the response execution unit 15 instructs the relay device specifying unit 16 to specify a plurality of relay devices as acquisition destinations.
  • the relay device specifying unit 16 confirms the content storage destination information in the content storage destination information storage unit 13 (process 312).
  • the content storage location information storage unit 13 includes the proxies 3a and 3c and the client 4f as storage locations associated with the content 1, relaying is performed based on the date and time included in the content storage location information.
  • the device specifying unit 16 sets the priority order of the proxy 3a, the client 4f, and the proxy 3c to 1, 2, and 3, respectively, and stores the content storage destination list to which the priority order is added including the address information of the proxy 3a, the client 4f, and the proxy 3c. create.
  • the response execution unit 15 selects the address information included in the content storage destination list created by the relay device specifying unit 16 in descending order of priority, and requests the requested content from the relay device existing at the address indicated by the selected address information.
  • a response message instructed to be acquired is transmitted to the client 4e (response 313).
  • the response execution unit 15 instructs to acquire content from the proxy 3a, and when the content cannot be acquired from the proxy 3a or the acquisition speed is low, the content is acquired in the order of the client 4f and the proxy 3c. To the client 4e. Then, the response execution unit 15 creates a transmission log based on the transmitted response message and adds it to the transmission log storage unit 12 (process 314).
  • the relay device selection unit 37 selects the proxy 3a having the highest priority as a content acquisition destination relay device based on an instruction from the server 2 (process 320). Then, the relay device selection unit 37 instructs the response / request execution unit 35 to acquire the content 1 from the proxy 3a.
  • the response / request execution unit 35 that has received an instruction from the relay device selection unit 37 transmits a request message for requesting transmission of the content 1 to the proxy 3a (request 331).
  • the proxy 3a that has received the request 331 checks whether or not the content 1 is stored in the cache storage unit 6a (processing 332). Since the content 1 is already stored in the cache storage unit 6a, the proxy 3a makes a request 331 to check with the server 2 whether the content 1 stored in the cache storage unit 6a is the latest data. “If-Modified-Since” is added to the request message based on the request message and sent to the server 2 as a conditional request (request 333).
  • the response execution unit 15 uses the content 1 held by the proxy 3a. Is the latest data (process 334). The response execution unit 15 determines that the content 1 held by the proxy 3a is the latest data, and transmits a response message “304 NOT Modified” to the proxy 3a (response 335). The proxy 3a that has received the response 335 reads the content 1 stored in the cache storage unit 6a, and transmits the read content 1 to the client 4e as a response to the request 331 (response 336).
  • the client 4e receives the response 336, and acquires “movie fragment1 to 60” in order.
  • the response execution unit 15 creates a transmission log based on the transmitted response message and adds the transmission log to the transmission log storage unit 12 (processing 337).
  • the content storage location information generation unit 17 generates content storage location information by associating the content 1 with the address information of the proxy 3 a and stores the content storage location information in the content storage location information storage unit 13.
  • the content storage location information generation unit 17 generates content storage location information by associating the content 1 with the address information of the client 4e, and stores the content storage location information in the content storage location information storage unit 13 (process 338).
  • the client status determination unit 36 evaluates the reception time each time a movie fragment is received, and it is assumed that N 2 ⁇ N 1 > 0 when one media segment is received. At this time, the client status determination unit 36 determines that the reception speed of the content 1 acquired from the proxy 3a is slower than a predetermined reception speed, and notifies the relay apparatus selection unit 37 of delay information indicating that (processing 340) ).
  • the relay device selection unit 37 When the relay device selection unit 37 receives the delay notification from the client status determination unit 36, the relay device selection unit 37 changes the proxy 3a selected as the relay device from which the current content is acquired to the client 4f having the second highest priority ( Process 350). That is, the relay device selection unit 37 reselects and determines the client 4f as the content acquisition destination relay device. Then, the relay device selection unit 37 instructs the response / request execution unit 35 to acquire the content 1 from the client 4f.
  • the response / request execution unit 35 that has received an instruction from the relay device selection unit 37 is currently receiving “movie fragment1 to 60”, so that the “4” of the content 1 is sent to the client 4f.
  • a request message requesting transmission after “movie fragment61” is transmitted (request 361).
  • the client 4f that has received the request 361 checks whether or not the content 1 is stored in the client storage unit 8f (process 362). Since the content 1 is already stored in the client storage unit 8f, the client 4f requests the request 361 to check with the server 2 whether the content 1 stored in the client storage unit 8f is the latest data.
  • “If-Modified-Since” is added to the request message based on the request message and sent to the server 2 as a conditional request (request 363).
  • the response execution unit 15 uses the content 1 held by the client 4f. Is the latest data (process 364).
  • the response execution unit 15 determines that the content 1 held by the client 4f is the latest data, and transmits a response message “304 NOT Modified” to the client 4f (response 365).
  • the client 4f that has received the response 365 sequentially reads the data after “movie fragment61” of the content 1 stored in the client storage unit 8f, and “movie fragment61” of the content 1 read to the client 4e as a response to the request 361.
  • the subsequent steps are transmitted in order (response 366).
  • the client 4e receives the response 366 and sequentially acquires “movie fragment61” and thereafter.
  • the response execution unit 15 creates a transmission log based on the transmitted response message and adds it to the transmission log storage unit 12 (process 367).
  • the content storage location information generation unit 17 generates content storage location information by associating the content 1 with the address information of the client 4 f and stores the content storage location information in the content storage location information storage unit 13. Further, the content storage location information generation unit 17 generates content storage location information by associating the content 1 with the address information of the client 4e, and stores it in the content storage location information storage unit 13 (process 368).
  • the content reproduction device receives the content storage destination list including the address information of the plurality of relay devices from the server 2 and exists at the address indicated by the address information included in the content storage destination list. Content is acquired from any of the relay devices. Then, when there is a delay in content acquisition, the content reproduction device changes the relay device that acquires the content to another relay device that exists at the address indicated by the address information included in the content storage destination list.
  • the load on the network can be efficiently distributed over time, and finer control can be performed in the content distribution system 1b. As a result, higher service quality can be maintained for a larger number of content reproduction apparatuses.
  • FIGS. 27 to 28 are diagrams showing examples of HTTP messages transmitted and received as requests or responses
  • FIG. 27 is a diagram showing examples of HTTP messages in the session 310 and the session 330
  • FIG. It is a figure which shows an example of the HTTP message in.
  • FIG. 27A shows the request 311 shown in FIG. 24, FIG. 27B shows the response 313, FIG. 27C shows the request 331, and FIG. 27D shows the request 333.
  • 27 (e) shows the HTTP message of the response 335, and FIG. 27 (f) shows the HTTP message of the response 336.
  • FIG. 28A shows the request 361 shown in FIG. 24, FIG. 28B shows the response 363, FIG. 28C shows the request 365, and FIG. 28D shows the request 366.
  • Each HTTP message is shown.
  • HTTP messages in session 310 and the session 330 will be described with reference to FIG. Note that (c) to (e) in FIG. 27 correspond to (c) to (e) in FIG. 10, respectively.
  • content 2 in FIG. 10 is changed to content 1 in MIME multipart format. Since the client 4a is only changed to the client 4e and the proxy 3b is changed to the proxy 3a, the description of the HTTP message of the request 331, the request 333, and the response 336 of the session 330 is omitted.
  • 28 correspond to (c) to (f) in FIG. 27.
  • “media segment1” of content 1 in FIG. 27 is “media segment2”.
  • the proxy 3a is only changed to the client 4f, the description of the HTTP message in the session 360 is omitted.
  • elements that are unique to the present invention will be mainly described, and descriptions of known elements will be omitted as appropriate.
  • the HTTP message corresponding to the request 311 for requesting the “media segment 1” of the content 1 from the client 4e to the server 2 includes a request line and a header.
  • the HTTP message in FIG. 27A is a request for “media0segment1” of “0” th (first part) of “content 1”.
  • the 27A includes an “Accept” header indicating a data format that can be processed by the client 4e.
  • the “Accept” header includes information “video” indicating video data in the MP4 format. / mp4 "is described.
  • information “multipart / media-segment” indicating the MIME multipart format is described.
  • the client 4e which is the device that transmitted this request, can inform the server 2 that is the device to which the request is transmitted that it can receive the moving image data in the MP4 format in the MIME multipart format.
  • the header of FIG. 27A includes a “Host” header that identifies the request destination server, and “example.com” indicating the address of the server 2 is described in the “Host” header. Has been.
  • the HTTP message corresponding to the response 313 instructing the acquisition destination of the content 1 from the server 2 to the client 4e includes a response line and a header.
  • the header of (b) of FIG. 27 includes a “Location” header for specifying a relay device to be used. That is, the HTTP message of FIG. 27B is a response instructed to request the content 1 using the relay device specified by the “Location” header below. In the illustrated example, address information “http://example-proxy1.com” indicating the address of the proxy 3a is described in the “Location” header. As a result, the client 4e, which is the device that has received this response, can know the address information of the relay device (proxy 3a) that is the other party requesting the content 1.
  • the header of (b) of FIG. 27 includes an “X-Alternative-Proxy-List” header indicating the address information of other relay apparatuses that hold the content 1, and this “X-Alternative- In the “Proxy-List” header, address information “http://example-client2.com, ⁇ http://example-proxy3.com ”indicating the addresses of other relay apparatuses (here, the client 4f and the proxy 3c) is described. Has been. As a result, the client 4e, which is a device that has received this response, is presented with a relay device holding (possibly) the content 1 in addition to the relay device specified by the “Location” header.
  • the HTTP message corresponding to the response 336 that transmits the “media segment 1” of the content 1 from the proxy 3a to the client 4e includes a response line, a header, and a body.
  • a “Content-Type” header indicating the type of content to be transmitted indicating the type of content to be transmitted
  • a “Content-Location” header indicating a storage location (for example, a URI) of the content to be transmitted indicating a storage location (for example, a URI) of the content to be transmitted
  • an instruction regarding a cache of the content to be transmitted includes a "Cache-Control” header, a "Via” header that is transfer path information indicating the transfer path of the message, and an "X-Media-Segment-Index” header that indicates the position of the media segment to be transmitted with respect to the entire content .
  • multipart / media-segment which is information indicating the MIME multipart format
  • the device (client 4e) that has received this header can recognize that the content received next to this header is a media segment transmitted in the MIME multipart format.
  • an “X-Media- Segment-Index” header is included.
  • This header indicates the playback position of the media segment with respect to the entire content.
  • “1/60” is described, which indicates the first media segment out of 60 media segments in the entire content.
  • multiple movie fragments that make up the media segment are described in MIME multipart format.
  • 60 movie fragments 1 to 60 are included in one media segment.
  • a header can be described for each part (for each fragment).
  • a “Content-Type” header indicating the content type of the movie fragment and an “X-Timestamp” header indicating the time stamp of the movie fragment are described.
  • the playback time (playback start timing) of the movie fragment can be specified without analyzing the movie fragment.
  • Each part includes a data entity (binary data) of the movie fragment of the part.
  • the relay device or the server 2 does not respond in the MIME multipart format, but may respond by combining all movie fragments in the media segment as one body.
  • a content playback apparatus that cannot process data in the MIME multipart format can play back the received content.
  • the network load between the content reproduction apparatus and the server 2 and the processing load of the server 2 can be more widely distributed.
  • the server 2 that has received the content request designates a plurality of content acquisition destination servers 2 and selects the server 2 from among the plurality of servers 2 to which the content reproduction devices are designated. .
  • the client 4 that is the content reproduction apparatus selects one server 2 from the plurality of servers 2 designated by the server 2 that is the destination of the content request, and the selected server 2 Get content from If there is a delay in content acquisition during content acquisition, another server 2 is selected again from the plurality of servers 2 designated by the server 2 to which the content request is transmitted, and the content is acquired. Server 2 is changed.
  • the fourth embodiment is different from the third embodiment in that the content distribution system includes a plurality of servers 2 and only the configurations of the server 2 and the client 4 are the same. Differences from the third embodiment will be mainly described.
  • FIG. 29 is a diagram illustrating an outline of the content distribution system 1c according to the fourth embodiment and a configuration of main parts of each device configuring the content distribution system 1c.
  • the content distribution system 1c includes servers 2a, 2b and 2c, proxies 3a, 3b and 3c, and clients 4g and 4h.
  • the content distribution system 1c includes content storage units 5a, 5b, and 5c connected to the servers 2a, 2b, and 2c, and cache storage units 6a, 6b, and 6c connected to the proxies 3a, 3b, and 3c, respectively.
  • client storage units 8g and 8h connected to the clients 4g and 4h, respectively.
  • the proxy 3 in the present embodiment has the same configuration and operation process as the proxy 3 in the third embodiment, description of the details of the proxy 3 is omitted here.
  • the servers 2a, 2b, and 2c in the present embodiment include an acquisition destination specifying unit 18 instead of the relay device specifying unit 16.
  • the content storage location information storage unit 13 stores not only content storage location information including address information of a relay device that holds content, but also content storage location information including address information of the server 2 that holds content.
  • the servers 2a, 2b and 2c in the present embodiment are the same as the server 2 in the third embodiment except for the other configurations.
  • the server 2 in the present embodiment specifies and specifies a plurality of (possible) servers 2 that hold the content requested by the content reproduction device in order to cause the content reproduction device to select the server 2 from which the content is acquired.
  • the content storage destination server list including the address information of the plurality of servers 2 is presented to the content reproduction device, and the server 2 existing at the address indicated by the address information included in the presented content storage destination server list is presented to the content reproduction device. It is instructed to acquire content from either.
  • the response execution unit 15 when the response execution unit 15 receives a request message directly requesting the content from the content reproduction device, the response execution unit 15 holds the content requested by the content reproduction device in the acquisition destination specifying unit 18 (possibility)
  • the address information of the server 2 (for example, the URI of the server 2) is specified.
  • the response execution unit 15 receives a content storage destination server list including a plurality of address information of the server 2 holding the content requested by the content reproduction device from the acquisition destination specifying unit 18, the response execution unit 15 responds to the request message from the content reproduction device.
  • the content playback apparatus sends a response message instructed to acquire the requested content from any of the servers 2 existing at the address indicated by the address information included in the content storage destination server list created by the acquisition destination specifying unit 18 Send to.
  • the response execution unit 15 determines whether the content storage unit 5 connected to its own device holds the inquired content. Confirm. Then, the response execution unit 15 responds to the other server 2 on the presence / absence of content. For example, when the response execution unit 15 of the server 2b makes an inquiry about the presence of content to the response execution unit 15 of the server 2a, the response execution unit 15 of the server 2a checks the content held by the content storage unit 5a. In response to the presence or absence of content, the server 2b is responded.
  • the acquisition destination specifying unit 18 specifies a plurality of (possibly) servers 2 that hold the content requested by the content reproduction device in accordance with instructions from the response execution unit 15, and obtains address information of the specified plurality of servers 2.
  • a content storage destination server list is created.
  • the acquisition destination specifying unit 18 receives the instruction from the response execution unit 15 and reads the content storage destination information from the content storage destination information storage unit 13.
  • the acquisition destination specifying unit 18 refers to the read content storage location information, specifies a plurality of address information of the server 2 associated with the content requested by the content reproduction device, and includes the plurality of specified address information Create a storage server list.
  • the acquisition destination specifying unit 18 transmits the created content storage destination server list to the response execution unit 15.
  • the acquisition destination specifying unit 18 reads the content storage destination information from the content storage destination information storage unit 13, for example, when the content storage destination information including the address information of the server 2 does not exist in the content storage destination information storage unit 13, Alternatively, when the content storage location information is old (when the date and time included in the content storage location information is a predetermined time before), the content storage location information including the address information of the server 2 stored in the content storage location information storage unit 13 is stored. Update.
  • the acquisition destination specifying unit 18 determines that the content storage destination information needs to be updated, the acquisition destination specifying unit 18 makes an inquiry to the other server 2 via the response execution unit 15 as to whether or not the requested content is included. Then, based on the response from each server 2, the address information of the server 2 that responded that it has the requested content is specified, a content storage destination server list including the specified address information is generated, and the response execution unit 15 Notice. Further, the acquisition destination specifying unit 18 associates the requested content, the address information of the server 2 that has responded that the content is included, and the date and time when the response is received, based on the response from each server 2. Content storage location information is generated, and the generated content storage location information is stored in the content storage location information storage unit 13.
  • the acquisition destination specifying unit 18 may update the content storage destination information every predetermined time.
  • the acquisition destination specifying unit 18 when the acquisition destination specifying unit 18 updates the content storage location information, it measures the time from when an inquiry is made to the existence of content to each server 2 until the response is received, and based on that time.
  • the server 2 may be ranked. That is, the rank may be set low for the server 2 that has a long time (it takes a long time to answer an inquiry), and the rank may be set high for the server 2 that has a short time. Then, the acquisition destination specifying unit 18 may associate the set order with the address information of the server 2 included in the created content storage destination server list.
  • the priority order of the server 2 may be determined based on the physical or network structural distance between the content reproduction apparatus and the server 2, the load status of the server 2, and the like. Good.
  • the acquisition destination specifying unit 18 is not only a content storage destination server list including the address information of the server 2 that holds the content, but also a relay device that holds (possibly has) content, as in the third embodiment.
  • a content storage destination list including the address information may be created.
  • the content storage destination information storage unit 13 receives the content, the address information of the server 2 that holds the content, and the update response from the server 2 in addition to the content storage destination information including the address information of the relay device. Content storage location information associated with the date and time is stored.
  • the content storage location information stored in the content storage location information storage unit 13 may be, for example, data shown in FIG. FIG. 30 is a diagram illustrating an example of content storage location information stored in the content storage location information storage unit 13.
  • the content storage location information includes “Date” that is the date and time when the proxy 3 or the client 4 acquired the content or the date and time when the update response was received, “Content ID” that indicates the content, and the content Is associated with “storage destination address” which is address information of the proxy 3, the client 4, or the server 2.
  • content storage location information 75 indicating that the server 2 whose address is “http://srv2.exmaple.com” holds the content “content1” is shown as an example. ing.
  • the response execution unit 15 determines whether the response execution unit 15 is a relay device in which the transmission source of the request holds the requested content and transfers the requested content to the content reproduction device. It is determined whether the content reproduction apparatus reproduces the requested content.
  • the acquisition destination specifying unit (content storage location information acquisition unit) 18 The address of the other server 2 having the requested content is acquired. Then, the response execution unit (content acquisition destination instruction unit) 15 instructs the content reproduction device that is the transmission source of the request to acquire the content from the other server 2 indicated by the address acquired by the acquisition destination specifying unit 18. To do.
  • the other predetermined server 2 is a server 2 connected to the server 2 that has received the request via the network 7, and is a server 2 in a range determined by a predetermined rule.
  • the server 2a is the server 2 that has received the request
  • the other predetermined server 2 may be the servers 2b and 2c, the server 2b, or the server 2b and the server 2c.
  • the server 2a may be all servers 2 that can communicate via a network.
  • the acquisition destination specifying unit 18 transmits an inquiry as to whether or not the requested content is present to the other predetermined server 2, and the requested content is included in response to the inquiry. Then, the address of the other server 2 that has responded is acquired.
  • the acquisition destination specifying unit 18 generates content storage destination information by associating the address of the other server 2 having the acquired content with the content identification information indicating the content, and stores the content storage destination information storage unit ( (Storage unit) 13.
  • the acquisition destination specifying unit 18 reads the content storage destination information from the content storage destination information storage unit 13, and when the read content storage destination information includes content identification information indicating the requested content, the content storage destination information If the address associated with the content identification information is acquired from the content, and the read content storage location information does not include the content identification information indicating the requested content, the inquiry is transmitted, and the requested content
  • the other server 2 having
  • the acquisition destination specifying unit 18 acquires each address of the plurality of servers 2 having the requested content, and stores a content storage destination server list including each acquired address and content identification information indicating the content. create.
  • the response execution unit 15 then sends the request to the content reproduction device that is the transmission source of the request so as to acquire the content from the other server 2 indicated by the address included in the content storage destination server list created by the acquisition destination specifying unit 18. Instruct.
  • the client 4 functioning as the content reproduction apparatus according to the present embodiment transmits a request to the server 2, receives the content storage destination server list as a response to the request, and is included in the received content storage destination server list.
  • the requested content is acquired from the other server 2 indicated by any address.
  • the client 4 stores the other server 2 (for example, the server 2b) from which the content is acquired in the content storage.
  • An acquisition destination selection unit (acquisition destination changing means) 38 for changing to another server 2 (for example, server 2c) indicated by an address different from the address included in the destination server list is provided.
  • the client 4 When the client 4 in the present embodiment functions as a content reproduction device, the client 4 receives the content storage destination server list transmitted from the server 2 and exists at the address indicated by the address information included in the received content storage destination server list. The requested content is acquired from any of the servers 2 that perform the processing.
  • the clients 4g and 4h illustrated in FIG. 29 include an acquisition destination selection unit 38 instead of the relay device selection unit 37 included in the client 4 of the third embodiment.
  • the acquisition destination selection unit 38 includes the function of the relay device selection unit 37 shown in the third embodiment in addition to the function of selecting the server 2 described later in the present embodiment.
  • the response / request execution unit 35 requests, as a response message from the server 2, a request for content from either the content storage destination server list or the server 2 existing at the address indicated by the address information included in the content storage destination server list. Receive an instruction to send a message.
  • the acquisition destination selection unit 38 selects one of the address information included in the content storage destination server list received by the response / request execution unit 35. Select one.
  • the acquisition destination selection unit 38 instructs the response / request execution unit 35 to acquire content from the server 2 existing at the address indicated by the selected address information.
  • the priority is not added to the address information included in the content storage destination server list (the order of selecting the server 2 that acquires the content from the content request transmission destination server 2) If not, it may be randomly selected from the address information included in the content storage destination server list, may be selected based on a predetermined rule (default), The server 2 having the shortest physical or network structural distance may be selected.
  • the acquisition destination selection unit 38 selects the address information having the highest priority.
  • the acquisition destination selection unit 38 determines that the content acquisition speed (content reception speed) acquired by the response / request execution unit 35 from the server 2 selected by the acquisition destination selection unit 38 is higher than a predetermined reception speed.
  • the server 2 that is the acquisition destination for acquiring the content is changed to another server 2 that exists at the address indicated by the address information included in the content storage destination server list.
  • the response / request execution unit 35 is instructed to acquire the content from the other changed server 2.
  • the priority is not added to the address information included in the content storage destination server list (the order of selecting the server 2 that acquires the content from the content request transmission destination server 2) If not, another server 2 may be selected randomly from the address information included in the content storage destination server list, or may be selected based on a predetermined rule (default). Alternatively, the server 2 having the next shortest physical or network structural distance from the own device may be selected.
  • the acquisition destination selection unit 38 selects address information with the next highest priority.
  • the client status determination unit 36 detects the occurrence of the next event in addition to the operations described in the third embodiment. Specifically, the client status determination unit 36 detects an event that the content is received with a delay from the schedule when the content reproduction device acquires the content requested from the server 2. This event is an event indicating whether the communication state of the network between the content reproduction apparatus and the server 2 is good and / or the load on the server 2. When detecting an event that the content is received with a delay from the schedule, the client status determining unit 36 transmits delay information indicating the detected event to the acquisition destination selecting unit 38.
  • the response message includes the content storage destination server list for selecting the other server 2 having the requested content.
  • the response message from the server 2 includes: A content storage destination list for selecting a relay device may be included. If both of these lists are included, the acquisition destination selection unit 38 selects whether to acquire via the relay device or from another server 2, and is included in the selected storage destination list. Select one of the address information.
  • the acquisition destination selection unit 38 has no priority in the address information included in the content storage destination list and the content storage destination server list (unless the server 2 has instructed the order of selecting the content acquisition destination).
  • the address information included in the content storage destination list or the content storage destination server list may be selected at random, may be selected based on a predetermined rule (default), or may be physically selected from the own device. Or an acquisition source having the shortest network structural distance may be selected.
  • the acquisition source selection unit 38 selects the address information having the highest priority.
  • the acquisition destination selection unit 38 has the content acquisition speed (content reception speed) acquired by the response / request execution unit 35 from the acquisition destination (relay device or server 2) selected by the acquisition destination selection unit 38.
  • the acquisition destination from which content is acquired is set to the address indicated by the address information included in the content storage destination list or the content storage destination server list.
  • the response / request execution unit 35 is instructed to change to another existing relay device or server 2 and acquire content from the changed other acquisition destination.
  • FIG. 31 The processing executed by the proxy 3 in the fourth embodiment is the same as that in the third embodiment, and the processing executed by the client 4 functioning as a relay device in the fourth embodiment is also the same as that in the fourth embodiment. Therefore, the description is omitted.
  • the fourth embodiment an example is shown in which content is acquired by selecting either the server 2 or the relay device.
  • FIG. 31 is a flowchart illustrating an example of processing executed by the server 2.
  • the same number is attached
  • the response execution unit 15 waits to receive a request message for requesting content transmission, and when receiving a request message for requesting content transmission via the server communication unit 11 (S601), the received request message. Is checked to determine whether or not the received request message is transmitted from the relay device (S602).
  • the content playback device acquires content and instructs the acquisition destination specifying unit 18 to specify a plurality of acquisition sources. To do.
  • the acquisition destination specifying unit 18 receives the instruction from the response execution unit 15 and reads the content storage destination information from the content storage destination information storage unit 13 (S603).
  • the acquisition destination specifying unit 18 creates a content storage destination server list from the content storage destination information (S701).
  • the acquisition destination specifying unit 18 determines whether or not the content storage destination server list has been created (S702). If the content storage destination server list could not be created because the content storage location information could not be read or the storage location information was determined to be old (NO in S702), the response execution unit 15 stores the information. Instruct update. The response execution unit 15 instructed to update the information makes an inquiry to the other server 2 connected to the network as to whether or not the requested content is included (S703).
  • the response execution unit 15 notifies the acquisition result specifying unit 18 of the response result from each server 2, and the acquisition destination specifying unit 18 updates the information in the content storage destination information storage unit 13 based on the notified response result.
  • the content storage location information is updated (S704), and the content storage location server list is created again (S705).
  • the acquisition destination specifying unit 18 refers to the read content storage location information, specifies a plurality of URIs of the acquisition destination relay device or server (relay device) associated with the content requested by the content reproduction device, and specifies them.
  • a content storage destination list including the plurality of address information is created (S604).
  • the acquisition destination specifying unit 18 transmits the created content storage destination list to the response execution unit 15.
  • the response execution unit 15 requests the requested content from either the relay device or the server 2 existing at the address indicated by the address information included in the content storage destination list and / or the content storage destination server list created by the acquisition destination specifying unit 18.
  • a response message instructed to acquire the message is transmitted to the content reproduction apparatus (S706).
  • the response execution unit 15 creates a transmission log from the response message transmitted to the content reproduction device, and adds the created transmission log to the transmission log storage unit 12 (S610).
  • FIG. 32 is a flowchart illustrating an example of processing executed by the client 4 functioning as a content reproduction device.
  • the same number is attached
  • the content reception process (S625 to S631 in FIG. 23) is the same as that in the third embodiment, and therefore is described as S724 in FIG.
  • the response / request execution unit 35 transmits a request message for requesting transmission of content to the server 2 (S621). As a response to the request message, the response / request execution unit 35 receives the content storage destination list and / or content storage destination server list, and the address indicated by the address information included in the content storage destination list and / or content storage destination server list. A response message including an instruction to transmit a request message for requesting content to either an existing relay device or server 2 is received (S3721).
  • the acquisition destination selection unit 38 receives the content storage destination list and / or the address information included in the content storage destination server list received by the response / request execution unit 35. Either one is selected (S722).
  • the acquisition destination selection unit 38 instructs the response / request execution unit 35 to acquire content from the acquisition source existing at the address indicated by the selected address information.
  • the response / request execution unit 35 transmits a request message to the acquisition destination selected by the acquisition destination selection unit 38 (S723).
  • the acquisition destination device that has received the request message performs the content acquisition process described in the third embodiment. Then, the response / request execution unit 35 and the client status determination unit 36 perform media segment acquisition / playback processing (S724).
  • the response / request execution unit 35 checks whether all media segments of the requested content have been received (S632), and confirms that all have been received. If so (YES in S632), the process ends. On the other hand, if an unreceived item has been confirmed (NO in S632), the client status determination unit 36 determines whether or not to change the acquisition source, similarly to the third embodiment (S725).
  • the client status determination unit 36 transmits delay information indicating that there is a delay in content acquisition to the acquisition destination selection unit 38.
  • the acquisition destination selection unit 38 is address information included in the content storage destination list or the content storage destination server list, and is different from the currently selected address information. Address information is selected (S726).
  • the acquisition destination selection unit 38 instructs the response / request execution unit 35 to acquire content from the acquisition source existing at the address indicated by the selected address information.
  • the response / request execution unit 35 transmits again a request message in which the media segment number is incremented to the acquisition destination selected by the acquisition destination selection unit 38 (S723).
  • switching may be performed in units of movie fragments instead of in units of media segments.
  • a switching process similar to that of the third embodiment may be performed.
  • Example 4 is shown in FIG. 33, and this embodiment will be described in more detail.
  • FIG. 33 is a diagram illustrating an example of an operation sequence of the content distribution system 1c according to the fourth embodiment. The same processes as those in the third embodiment are denoted by the same numbers as those in FIG.
  • the content storage units 5a, 5b, and 5c store the content 1 in the format shown in FIG. 21, and the content storage unit 5 stores the content 1 in the media segment.
  • the division is the same.
  • the server 2a creates a content storage destination list by adding priorities to a plurality of address information based on the date and time included in the content storage destination information.
  • the transmission log storage unit 12 stores the transmission logs 51 to 53 shown in FIG. 25, and the content storage location information storage unit 13 stores It is assumed that content storage location information 61 to 63 shown in FIG.
  • one session is a period from when the content playback device transmits a request message until it receives a response message corresponding to the request message.
  • the client 4g transmits a request message for requesting transmission of the content 1 to the server 2a (request 811).
  • the response execution unit 15 instructs the acquisition destination specifying unit 18 to specify a plurality of acquisition destinations.
  • the acquisition destination specifying unit 18 confirms the content storage destination information in the content storage destination information storage unit 13 (process 812).
  • the presence / absence of the content storage destination server list is confirmed from the content storage location information, and if it does not exist, the presence / absence of the content 1 is confirmed with respect to the server 2b and the server 2c (process 813).
  • This confirmation may be, for example, confirming the response by requesting the header of the content 1 from each server 2 (request 814 and response 816 to the server 2c shown in FIG. 33, request 815 to the server 2c and Response 817).
  • the content storage location information storage unit 13 since the content storage location information storage unit 13 includes the proxies 3a and 3c and the client 4f as storage locations associated with the content 1, the content storage location information storage unit 13 acquires the content storage location information based on the date and time included in the content storage location information.
  • the destination specifying unit 18 sets the priority order of the proxy 3a, the client 4f, and the proxy 3c to 1, 2, and 3, respectively, and the content storage destination list to which the priority order is added, including the address information of the proxy 3a, the client 4f, and the proxy 3c. create.
  • a content storage destination server list is created based on the response of the processing 813 (responses 815 and 817).
  • the priority is set to 1 and 2, respectively, and the content storage destination server to which the priority is added, including these address information and its own address information A list is created (process 818).
  • the priority setting method of the server 2a may be arbitrary.
  • the priority of the server 2a may always be set first (higher priority than other servers 2).
  • the priority order of the server 2a is set lower than that of the server 2b or the server 2c, and when the response speed is lower than the arbitrary threshold, the server 2a
  • the priority order may be set higher than the server 2b or the server 2c.
  • the priority of the server 2a may be set lower than that of the other servers 2.
  • the response execution unit 15 selects address information included in the content storage destination list or content storage destination server list created by the acquisition destination specifying unit 18 in descending order of priority, and relays exist at the address indicated by the selected address information.
  • a response message for acquiring the content requested from the apparatus or the server 2 is transmitted to the client 4g (response 819).
  • the response execution unit 15 determines which of the content storage destination list and the content storage destination server list is selected with priority. That is, the response execution unit 15 determines whether to cause the client 4g to acquire content from the relay device or to acquire content from the server 2.
  • Whether to select the content storage destination list or the content storage destination server list with priority may be arbitrary.
  • the response execution unit 15 preferentially selects the content storage destination list (content storage destination server list) based on the default setting, and the selected content storage destination list (content storage destination server list) cannot be used.
  • a content storage destination server list (content storage destination list) may be selected.
  • the response execution unit 15 prioritizes the content storage destination list if the date and time of the content storage destination information including the address information (highest priority) included in the content storage destination list is new (within a predetermined period). If the date and time are old (before a predetermined period), the content storage destination server list may be selected with priority. Further, when there is no content storage location information and the address information included in the content storage location list is determined by default or randomly, the response execution unit 15 may preferentially select the content storage location server list. .
  • the response execution unit 15 preferentially selects the content storage destination list.
  • content acquisition from the server 2a is basically the same as acquisition using a relay device (even in content acquisition using a relay device, the acquisition destination address is the server 2a). That is, the case where the response execution unit 15 selects the content storage destination list and the case where the response execution unit 15 selects the content storage destination server list and selects the server 2a from the content storage destination server list are substantially the same. Processing (same processing as in the third embodiment) is performed.
  • the response execution unit 15 selects the content storage destination server list and selects the server 2b or server c from the content storage destination server list, when the server b or server c receives a content request from the client 4g, As in the third embodiment, a predetermined relay device is specified, and the client 4g is instructed to acquire content from the specified relay device.
  • the response execution unit 15 uses the relay device (when the content storage destination list is selected and when the content storage destination server list is selected and the server 2a is selected from the content storage destination server list).
  • the client 4g is instructed to acquire content from the proxy 3a, and when the content cannot be acquired from the proxy 3a or the acquisition speed is low, the client 4g is executed to acquire the content in the order of the client 4f and the proxy 3c. Instruct.
  • the client 4g is similarly instructed to execute content acquisition in order from the server 2b and the server 2c.
  • the response execution unit 15 creates a transmission log based on the transmitted response message and adds it to the transmission log storage unit 12 (process 820).
  • the acquisition destination selection unit 38 selects the proxy 3a having the highest priority as a candidate for the content acquisition destination based on an instruction from the server 2a (process 830). Then, the acquisition destination selection unit 38 instructs the response / request execution unit 35 to acquire the content 1 from the proxy 3a.
  • the processing (the session 840, the processing 850, the processing 860, and the session 870) when the proxy 3a or another client (client 4f) is selected as the acquisition destination is performed in the third embodiment (the session 330, the processing 340, and the processing 340 illustrated in FIG. 24). Since it is the same as the processing 350 and the session 360), the description is omitted.
  • the content acquisition method when the server 2 is selected performs the same operation as a general HTTP acquisition process.
  • the client status determination unit 36 notifies the relay apparatus specifying unit 16 of the delay information for each movie fragment.
  • the delay information is notified to the acquisition destination specifying unit 18.
  • the acquisition destination specifying unit 18 that has received the notification performs reselection of the acquisition source in the same manner as the relay device specifying unit 16.
  • the content reproduction apparatus receives the content storage destination list including the address information of the plurality of relay apparatuses and the content storage destination server list including the address information of the plurality of servers from the server 2,
  • the content is acquired from either the relay device or the content storage destination server list existing at the address indicated by the address information included in the storage destination list.
  • the content reproduction device sets the acquisition destination for acquiring the content to another relay device or the content storage destination server list that exists at the address indicated by the address information included in the content storage destination list. Change to another server 2 existing at the address indicated by the included address information.
  • the load on the network (in particular, the network between the content reproduction device and the relay device or the server 2) can be efficiently distributed over time, and finer control can be performed in the content distribution system 1c. As a result, higher service quality can be maintained for a larger number of content reproduction apparatuses.
  • the content reproduction apparatus receives an example of receiving the content storage destination list including the address information of the plurality of relay apparatuses and the content storage destination server list including the address information of the plurality of servers from the server 2a. Only the content storage destination server list including the server address information may be received from the server 2a. Similarly, the server 2a may notify only the content storage destination server list including the address information of the other server 2 having the requested content to the content reproduction apparatus.
  • the HTTP message corresponding to the response 819 instructing the acquisition destination of the content 1 from the server 2a to the client 4g includes a response line and a header.
  • the header of FIG. 34A includes a “Location” header for specifying a relay device to be used. That is, the HTTP message in FIG. 34 is a response instructed to request the content 1 using the relay device specified by the “Location” header below.
  • address information “http://example-proxy1.com” indicating the address of the proxy 3a is described in the “Location” header.
  • the client 4g which is the device that has received this response, can know the address information of the relay device (proxy 3a) that is the counterpart that requests the content 1.
  • the header of FIG. 34A includes an “X-Alternative-Proxy-List” header indicating the address information of other relay apparatuses that hold the content 1, and this “X-Alternative- In the “Proxy-List” header, address information “http://example-client2.com, http://example-proxy3.com” indicating the addresses of other relay devices (here, the client 4h and the proxy 3c) is described. Has been. As a result, the client 4g, which is the device that has received this response, is presented with a relay device that holds (possibly) the content 1 in addition to the relay device specified by the “Location” header.
  • the header of FIG. 34A includes an “X-Alternative-Server-List” header indicating the address information of other servers that hold the content 1, and this “X-Alternative-Server- Address information “http://svr2.example.com, http: /” indicating the addresses of other servers (in this case, the server 2b and the server 2c) holding the content 1 in the “List” header (possibly) /srv3.example.com "is described.
  • the client 4g which is the device that has received this response, not only acquires the content via the relay device included in the “Location” header or the “X-Alternative-Proxy-List” header, but also “X- The user can select to acquire the content 1 from the server 2 described in “Alternative-Server-List”.
  • the HTTP message shown in (a) of FIG. 34 is an HTTP message requesting that the server 2a access the content using the relay device.
  • an example of a message instructing access to another server 2 without using the relay device is shown in FIG.
  • the header includes a “Location” header indicating another URI, and instructs to request the content 1 using this URI.
  • MPD Media Presentation Description
  • DASH Dynamic Adaptive Streaming Over HTTP
  • MPD data content metadata
  • the configuration of this embodiment is the same as the configuration of the fourth embodiment shown in FIG. 29, and will be described with reference to FIG. More specifically, the server 2a shown in FIG. 29 prepares MPD data that is content metadata.
  • MPD data in addition to information on moving image content such as a content encoding method and bit rate, address information of the server 2 for acquiring the content and address information for acquiring a media segment are described.
  • the client 4g acquires and analyzes the MPD data, and selects one server 2 from the plurality of servers 2 described in the MPD data.
  • MPD data which is metadata of content
  • MPD data is in a format in which external resources can be referred to
  • using this makes it possible to create MPD data and actually use MPD data. Even if the status of the network or server changes between when the content is played back, the status can be reflected to enable load distribution. Furthermore, by shortening the interval for referring to the external resource, it is possible to cope with the situation at the time of reproduction and to perform finer control.
  • the configuration of the fifth embodiment is the same as the configuration of the fourth embodiment of the present application shown in FIG.
  • the server 2a is different in that MPD data, which is content metadata, is prepared for the content provided by the server 2a.
  • the client 4g obtains information on the server to be accessed from the MPD data during content playback. The difference is that it is acquired and played back.
  • the response execution unit (management unit) 15 associates content with content metadata, content identification information for identifying the content, and an address of another content distribution apparatus having the content.
  • Content storage location information or metadata (MPD data) including a storage location address (external resource) indicating the location of the content storage location information is managed.
  • the response execution unit 15 basically generates MPD data of the content when storing the content in the content storage unit 5, and updates the generated MPD data as necessary. In addition, the response execution unit 15 receives the external resource creation request and creates an external resource.
  • the response execution unit (request determination unit) 15 determines whether the request is a content request or a metadata request.
  • the response execution unit 15 determines that the request is the content request, the response execution unit 15 transmits the requested content to the transmission source device. On the other hand, if the response execution unit 15 determines that the request is the metadata request, the response execution unit 15 transmits the requested metadata to the transmission source device of the request.
  • the response execution unit 15 may determine whether the request is a content request, a metadata request, or a content storage location information request using a storage location address.
  • the response execution unit 15 determines that the request is a content storage destination information request using the storage destination address (external resource)
  • the response execution unit 15 obtains the content storage destination information whose location is indicated by the storage destination address. Send to device.
  • the acquisition destination specifying unit 18 transmits an inquiry as to whether or not the predetermined content distribution apparatus has the predetermined content to the other predetermined content distribution device, and responds to the inquiry when the predetermined content is included. Obtain the address of the other content distribution apparatus.
  • the acquisition destination specifying unit 18 generates content storage destination information by associating the acquired address of another content distribution apparatus having the predetermined content with content identification information for identifying the predetermined content, It is stored in the content storage location information storage unit (storage unit) 13.
  • the acquisition destination specifying unit (update determination unit) 18 determines whether or not to update the content storage destination information stored in the content storage destination information storage unit 13.
  • the acquisition location specifying unit 18 displays content storage location information whose location is indicated by the storage location address.
  • the acquisition destination specifying unit 18 transmits the inquiry, acquires the address, generates content storage destination information based on the address, and the response execution unit 15 acquires the content storage destination information. Send to the request source device.
  • the acquisition location specifying unit 18 displays content storage location information whose location is indicated by the storage location address. If it is determined not to be updated, the response execution unit 15 transmits content storage location information whose location is indicated by the storage location address to the device that has transmitted the request.
  • the metadata may include a plurality of storage destination addresses indicating the location of the content storage destination information set for each unit obtained by dividing the content at predetermined time intervals.
  • the content may include a plurality of media segments, and the content divided at the predetermined time interval may include at least one media segment.
  • the metadata may include a content storage destination server list including a plurality of the content storage destination information or a storage destination address indicating the location of the content storage destination server list.
  • the client 4 functioning as a content reproduction device transmits a metadata request to the server 2, receives the metadata as a response to the request, and acquires content according to the received metadata.
  • the response / request execution unit (content acquisition unit) 35 receives the content storage destination server list included in the received metadata, or stores content using the storage destination address included in the received metadata.
  • content acquisition unit 35 receives the content storage destination server list included in the received metadata, or stores content using the storage destination address included in the received metadata.
  • the server 2 (for example, the acquisition destination) that acquires the content , The server 2b) is changed to another server 2 (for example, the server 2c) indicated by an address different from the address included in the content storage destination server list.
  • [Content metadata: MPD data] 35, 36 and 38 show examples of description of MPD data which is content metadata used in the present embodiment.
  • FIG. 35 is an example in which external resources are not referenced.
  • the content is fragmented in predetermined units as in the third embodiment, and is media segmented for transmission.
  • “content1 / 0.mp4”, “content1 / 1.mp4”, and the like indicate the media segment of content1.
  • content1 indicates that it is divided into 12 media segments.
  • MPD data is markup language format data having “MPD” as a root element.
  • the value of the attribute “minBufferTime” of the MPD start tag indicates the minimum initial buffering time necessary for smooth playback of the video
  • the value of the attribute “type” is the attribute “Representation” tag described later.
  • the default value of “type” is shown. That is, the value of the attribute “type” indicates whether the representation for which the attribute “type” is not specified in the “Representation” tag is on-demand streaming distribution or live streaming distribution.
  • the attribute “mediaPresentationDuration” indicates the playback time of the content, and in this example, describes that the playback time of the content is 120 seconds.
  • Period which is a sub-element of “MPD”, indicates that information related to a video to be played in a specific period (period) is described in a range surrounded by a corresponding Period start tag and end tag. Yes.
  • the attribute “id” of the Period start tag is information for identifying each Period included in the content provided by the MPD, and a unique value is set for each Period.
  • Group which is a sub-element of “Period” indicates that one or more sub-elements “Representation” described in the range surrounded by the group start tag and end tag belong to the same representation group. ing.
  • representations belonging to the same group have the same reproduced content, although there may be differences in reproduction quality such as image size, frame rate, and bit rate.
  • reproduction quality such as image size, frame rate, and bit rate.
  • two representations (content1 and content2) are described, and one of the representations can be selected and played back.
  • FIG. 35 (a) shows the codec type used for the media segment constituting the attribute “mimeType” representation of the Group start tag.
  • the attribute “lang” indicates the language of the representation belonging to the Group.
  • SegmentInfoDefault a sub-element “SegmentInfoDefault” is described in a range surrounded by the Group start tag and the end tag.
  • this SegmentInfoDefault information common to the representation in the range surrounded by the Group start tag and the end tag is described.
  • the “SegmentInfoDefault” element further includes a “BaseURL” element as a sub-element.
  • a common URL is described in the range between the BaseURL start tag and the end tag. The reference destination is resolved along with the URL information in the later-described representation. As shown in FIG. 35A, a plurality of BaseURLs can be described.
  • Representations that make up a Group are described using a “Representation” tag.
  • the attribute “bandwidth” of the representation start tag shown in the figure indicates the bit rate of the representation.
  • the sub-element “Segment” is used to indicate that the media segment information exists in the range surrounded by the Representation start tag and the end tag, and the URL for obtaining each media segment to which it belongs is the sub-element “Url” of the Segment tag. "Is described using the attribute” sourceURL "of the start tag. These are described for each media segment. If there is a common part in each URL, it can be described using the BaseURL tag described above.
  • a BaseURL tag is used, and there is no description indicating the host in the Url of each media segment. Therefore, the Url of the media segment is generated using the information indicated by the BaseURL tag. That is, the access to the first media segment is made from “http://srv2.example.com/” of the BaseURL tag and “content1 / 0.mp4” indicated by the Url tag to “http: // srv2. This is done in the generated URL “example.com/content1/0.mp4”.
  • the URL of each media segment is generated and acquired based on the MPD data analysis result.
  • the address information of the server storing each media segment is described using the BaseURL tag.
  • the presence of a plurality of BaseURL tags means that the client can acquire a media segment in an optimum state by selecting any one BaseURL tag according to the situation.
  • MPD data is often generated when content is stored in the server 2. For this reason, even if information on the optimal server is collected and described when MPD data is generated, the network status and optimal server information will not change when content is actually accessed using MPD data. There is a high possibility. Further, even if a higher-speed server or the like is added for distribution of the content after the creation of MPD data, such a server cannot be used unless MPD data created once is regenerated.
  • FIG. 36 An example of the MPD data is shown in FIG. In FIG. 36, server information (information described in the BaseURL tag) described using the Group tag in FIG. 35 (a), each representation, and the media segment (Representation tag) constituting the representation.
  • Xlink description is used as the attribute of the Group start tag instead of the description of the information).
  • xlink is a function that refers to an external resource, and when analyzing the data with the description, the external resource linked by xlink can be acquired and imported. As shown in FIG. 36, the URL of the external resource linked by the attribute “xlink: href” is described.
  • xlink: actuate describes at which point the external resource indicated by xlink: href is acquired.
  • xlink: actuate includes “onRequest” acquired as necessary, and “onLoad” acquired at the same time as MPD data acquisition. In this example, “onRequest” acquired as needed is used.
  • FIG. 37 is a diagram showing an example of data of an external resource (http://example.com/content1/resource1.xml). 36 receives the external resource shown in FIG. 37 by xlink, and becomes MPD data equivalent to FIG. 35 (a).
  • the MPD data is divided into short periods using the above-described Period tag, and external resources are captured by xlink in each Period.
  • the content is described in one period, so even if the external resource is taken in, only the situation at the start of content reproduction can be reflected.
  • the status of the network or server may change at the end of the content, making it difficult to say that it is optimal.
  • the optimum server at the end is not selected at the start of playback and is not described in an external resource, there is no way to select that server.
  • FIG. 38 (a) shows an example of MPD data that is divided into a plurality of Periods and external resources are captured by xlink in each Period.
  • (B) to (d) of FIG. 38 are examples of external resources to be captured.
  • Each of the external resources shown in (b) to (d) of FIG. 38 has four media segments. Assuming that one media segment is 10 seconds, in this example, one period in the MPD data shown in FIG. 38A is 40 seconds, and external resources are captured every 40 seconds of data acquisition.
  • server information included in MPD data is provided as an external resource, so that when a request is made from a client, the distribution system and network status at that time are reflected instead of being generated in advance. It is possible to create and provide external resources.
  • the period can be set to a short period so that the status of the network or server can be reflected in detail.
  • FIG. 39 is a flowchart illustrating an example of processing executed by the server 2a.
  • the same reference numerals are given to the same processes as those in the fourth embodiment of the present application.
  • the response execution unit 15 is waiting to receive a request message from the client 4, and receives the request message from the client 4 via the server communication unit 11 (S901).
  • the server 2 Upon receiving the request message, the server 2 determines whether the received request message is a request for content, a request for xlink data, or a request for MPD data that is content metadata (S902, S903, S904). ). If it is determined that the request is a content metadata request (YES in S904), the server 2 reads the specified MPD data from the content storage unit 5 (S905) and transmits it to the request transmission source device (S906). .
  • the response execution unit 15 acquires the content source device for acquiring the content from the acquisition destination specifying unit 18. Instructs to identify multiple destination servers.
  • the acquisition destination specifying unit 18 receives the instruction from the response execution unit 15 and reads the content storage destination information from the content storage destination information storage unit 13 (S603).
  • the acquisition destination specifying unit 18 creates a content storage destination server list from the content storage destination information. (S701) The acquisition destination specifying unit 18 determines whether or not the content storage destination server list has been created. (S702). If the content storage destination server list could not be created because the content storage destination information could not be read or the storage destination information was determined to be old, the response execution unit 15 is instructed to update the information. The response execution unit 15 instructed to update the information makes an inquiry to the other server 2 connected to the network as to whether or not the requested content is included (S703).
  • the response execution unit 15 notifies the acquisition result specifying unit 18 of the response result from each server 2, and the acquisition destination specifying unit 18 updates the information in the content storage destination information storage unit 13 based on the notified response result.
  • the content storage location information is updated (S704), and the content storage location server list is created again (S705).
  • the response execution unit 15 instructs the external resource data to acquire the requested content from any of the servers 2 existing at the address indicated by the address information included in the content storage destination server list created by the acquisition destination specifying unit 18 Is created (S907) and transmitted to the content reproduction apparatus (S908).
  • the server 2 transmits the content to the transmission source. Note that the processing at this time is the same as the processing of the server 2 in the third embodiment (S606 to S610 in FIG. 22), and thus description thereof is omitted here.
  • the server 2 executes a process according to the received request. For example, when the server 2 receives a GET request for data of a web page including a link to content or a HEAD request such as a file size of the content or a time stamp of the file, the server 2 executes processing according to the request. .
  • FIG. 40 is a flowchart illustrating an example of processing executed by the client 4 functioning as a content reproduction device.
  • the response / request execution unit 35 transmits a request message for requesting transmission of MPD data corresponding to the content to the server 2 (S921).
  • the response / request execution unit 35 receives a response message including MPD data as a response to the request message (S922).
  • the received metadata is analyzed by the response / request execution unit 35 and the content to be reproduced is determined (S923).
  • the response / request execution unit 35 acquires the address of the content (media segment) to be reproduced from the analysis result of the MPD data.
  • the response / request execution unit 35 receives the external location of the received MPD data from the location indicated by xlink.
  • the MPD data is updated by replacing with resource data (S927).
  • the MPD data is analyzed to extract a content storage destination server list.
  • one of the server address information is selected by the acquisition destination selection unit 38 in the same manner as the processing of the client 4 in the fourth embodiment (S623 to S634 in FIG. 23).
  • the response / request execution unit 35 generates a media segment request from the selected server address information and the acquired media segment address information, and makes a request to the server (S929).
  • the media segments are sequentially received (S724). Note that the media segment reception process is the same as that in the fourth embodiment, and therefore is described as S724 in FIG.
  • the response / request execution unit 35 checks whether all media segments of the requested content have been received (S632), and confirms that all have been received. If so (YES in S632), the process ends.
  • the response / request execution unit 35 includes whether or not the next media segment can be acquired in the Period that is the reproduction target of MPD data. It is determined whether all the received media segments have been received (S930). If all media segments in the period have been received (YES in S930), the next period is acquired (S931).
  • the client situation determination unit 36 determines whether or not the acquisition source should be changed as in the third embodiment (S725). The determination method is the same as that shown in the fourth embodiment. And the acquisition of a media segment is continued.
  • Example 5 is shown in FIG. 41, and this embodiment will be described in more detail.
  • Example 5 is a diagram illustrating an example of an operation sequence of the content distribution system 1c that instructs the content reproduction apparatus as the client 4 to acquire content from any of the address information included in the content storage destination server list. .
  • the servers 2a, 2b, and 2c have content metadata for the content 1 having the format shown in FIG. 21 and the content 1 having the structure shown in FIG. MPD data and external resource data are stored. Further, it is assumed that the media segment of the content 1 in each server 2 is similarly divided and stored.
  • the content reproduction device transmits a request message and receives a response message corresponding to the request message as one session.
  • the client 4g transmits a request message requesting transmission of MPD data of the content 1 to the server 2a (request 1011).
  • the response execution unit 15 reads the requested MPD data from the content storage unit 5a (process 1012), and transmits a response message to the client 4g (response 1013).
  • the client 4g Upon receiving the response 1013, the client 4g analyzes the MPD data received by the response / request execution unit 35 and tries to acquire a media segment (process 1020). When it is determined that the acquired MPD data includes a reference to an external resource necessary for acquiring the location information of the media segment, the external resource is acquired from the server 2.
  • the client 4g transmits a request message for requesting external resource data (request 1031).
  • the response executing unit 15 instructs the acquisition destination specifying unit 18 to specify a plurality of servers 2.
  • the acquisition destination specifying unit 18 generates a storage destination server list from the content storage destination information in the content storage destination information storage unit 13. (Process 812).
  • the acquisition destination specifying unit 18 passes the server through the response execution unit 15 to generate the content storage destination server list.
  • 2b and 2c are inquired about the storage information of content 1 (requests 814 and 815). Then, a response to the inquiry and a response time are acquired (responses 816 and 817).
  • a content storage destination server list is generated from the response result. (Process 818) Subsequently, the response execution unit 15 acquires the requested external resource data from the content storage unit 5a, updates the external resource data using the information of the created content storage destination list, and requests the requested external resource data. Is created (process 1032). Then, a response message including the created external resource data is transmitted to the client 4g via the server communication unit 11 (response 1033).
  • the client 4g that received the response 1033 updates the already acquired MPD data using the received external resource data.
  • the acquisition destination selection unit 38 selects the server 2 from which the content is acquired using the updated MPD data (process 1040). As a selection method at this time, the top of the list may be selected, or if information such as priority is given, selection may be made based on the information. Further, if delay information is received from the client status determination unit 36, the server 2 as the acquisition destination may be selected in consideration of the delay information.
  • the response / request execution unit 35 When the server 2 is selected (here, the server 2b), the response / request execution unit 35 generates URLs for acquiring media segments from the MPD and sequentially acquires them (session 1050). Since the detailed acquisition process is the same as that of the third embodiment (fourth embodiment), the description thereof is omitted.
  • the client 4g acquires the media segment included in the next period.
  • an external resource request is made to the address described in the target xlink as in session 1030.
  • both the client 4 and the server 2 repeat the operations from the session 1010 to the session 1050 to acquire all the media segments and complete the reproduction.
  • the content distribution device is a content distribution device that transmits content to a transmission source of the request in response to a request, and the transmission source of the request transmits the requested content.
  • Holding a determination unit that determines whether the content is a relay device that transfers the requested content to the content reproduction device or a content reproduction device that reproduces the requested content, and the determination unit determines that the transmission source of the request is When it is determined to be a relay device, in response to the request, a content transmission unit that transmits the requested content to the relay device that is the transmission source of the request, the content transmitted by the content transmission unit, and the transmission Playback of the relay device that is the destination or the content that is the transfer destination Content storage location information generating means for generating content storage location information in association with the device address, and when the determination means determines that the transmission source of the request is a content reproduction device, In the content storage location information, the content acquisition destination that instructs the content reproduction device that is the transmission source of the request to acquire the content from the relay device or the content reproduction device indicated by the address associated with the requested content And an instruction means.
  • a content delivery apparatus control method is a content delivery apparatus control method for transmitting content to a transmission source of the request in response to a request.
  • the determination step for determining whether the content is a relay device that holds the requested content and transfers the requested content to the content reproduction device or the content reproduction device that reproduces the requested content.
  • a content transmission step of transmitting the requested content to the relay device that is the transmission source of the request in response to the request, and transmission in the content transmission step Content and its destination A content storage destination information generating step for generating content storage destination information in association with an address of a certain relay device or a content playback device that is a transfer destination thereof, and the transmission source of the request in the determination step is the content playback device
  • the transmission source of the request so that the content is acquired from the relay device or the content reproduction device indicated by the address associated with the requested content in the content storage location information.
  • a content acquisition destination instruction step for instructing the content reproduction apparatus.
  • the content transmitting unit transmits the requested content to the relay device that is the transmission source of the request
  • the content storage destination information generating unit is Content storage destination information is generated by associating the transmitted content with the address of the relay device that is the transmission destination or the address of the content reproduction device that is the transfer destination.
  • the content acquisition destination instruction means acquires the content from the relay device or the content reproduction device indicated by the address associated with the requested content in the content storage location information. And instructing the content reproduction apparatus that is the transmission source of the request.
  • the content storage destination information is information indicating which relay device or content reproduction device holds which content.
  • the content distribution device grasps the content transmitted in the past in association with the relay device or the content reproduction device that holds the content, and receives a request from a certain content reproduction device. Instruct the content reproduction device that is the transmission source of the request to acquire the content from the relay device or the content reproduction device that holds the requested content without directly transmitting the content to the content reproduction device. .
  • the content reproduction device that is the transmission source of the request acquires the requested content from the instructed relay device or the content reproduction device. If the instructed relay device or the content reproduction device holds the content, the request is transmitted.
  • the transmission / reception of the content is completed only by both the original content reproduction device and the instructed relay device or content reproduction device. That is, the content reproduction device that has transmitted the request can acquire the content without the content distribution device executing the content transmission processing.
  • the content transmission / reception processing is the most burdensome processing, and the content transmission / reception is the most burdensome in the network between these devices. . Therefore, for example, even if the number of content reproduction devices increases and requests to the content distribution device increase, it is possible to suppress an increase in the load on the network and content distribution device used for data transmission from the content distribution device.
  • a large number of content reproduction devices can acquire content without increasing the processing capability of the content distribution device or increasing the capacity of the network.
  • the content distribution apparatus determines that the transmission source of the request is the relay apparatus, while the request is the transfer path. When information is not included, it is preferable to determine that the transmission source of the request is the content reproduction device.
  • the determination unit determines that the transmission source of the request is the relay device, while the request is the transfer device.
  • the route information is not included, it is determined that the transmission source of the request is the content reproduction device. That is, when the determination unit receives a request directly from a device, the determination unit determines that the transmission source of the request is a content reproduction device, and if the request transmitted by the device is a request based on a request from another device, the content The acquisition device is determined as a relay device.
  • the requested content is transmitted to the relay device that is the request transmission source, and the content playback device that is the request transmission source transmits the content from the relay device or the content reproduction device that holds the requested content. Instruct to get. Therefore, the content distribution device can always transmit the content to the content reproduction device via the instructed relay device or content reproduction device. Therefore, when the instructed relay device or content reproduction device holds the content requested by the content reproduction device that has transmitted the request, the content distribution device does not need to transmit the content. The load on the network and content distribution apparatus used for data transmission can be suppressed.
  • the content acquisition destination instructing means is included in the content storage destination information when there are a plurality of the content storage destination information including an address associated with the requested content.
  • Content that is a transmission source of the request so as to create a content storage destination list including a plurality of addresses and acquire the content from either the relay device or the content playback device indicated by the address included in the created content storage destination list It is preferable to instruct the playback device.
  • the content acquisition destination instructing unit when there are a plurality of the content storage destination information including the address associated with the requested content, the content acquisition destination instructing unit includes a plurality of addresses included in the content storage destination information. Create a content storage destination list and instruct the content reproduction device that is the transmission source of the request to acquire the content from either the relay device or the content reproduction device indicated by the address included in the created content storage destination list To do.
  • the content playback device that transmitted the request selects either the address relay device or the content playback device indicated by the address included in the content storage destination list, and acquires the content from the selected relay device or content playback device.
  • the content reproduction device that is the transmission source of the request can acquire the content from the optimum device according to the situation of the own device and the relay device or content reproduction device that holds the content.
  • the content storage destination information generation unit associates the content transmitted by the content transmission unit with the date and time when the content transmission unit transmitted the content, and stores the content storage destination.
  • the content acquisition destination instructing means arranges the plurality of addresses included in the plurality of content storage destination information in order from the latest associated date and time, and prioritizes the plurality of addresses. It is preferable to create the content storage destination list by adding.
  • the content storage location information includes the content, the relay device or content playback device that holds the content, the date and time when the content was transmitted to the relay device or content playback device, that is, the relay device. Or, the date and time when the content reproduction apparatus holds the content is associated.
  • the content acquisition destination instructing means arranges the plurality of addresses included in the plurality of content storage destination information in the order of the associated date and time, and adds a priority to the plurality of addresses to add the content. Create a storage list.
  • the content storage destination list shows a plurality of relay devices or content playback devices that hold the content requested by the content playback device that sent the request, and holds the content of the relay device or content playback device. The order is shown.
  • the content reproduction device that has transmitted the request can refer to the content storage destination list and select, for example, the relay device or the content reproduction device that has recently held the content as the content acquisition destination device.
  • the content transmitted by the content distribution apparatus may be updated to new data, or the relay apparatus or content reproduction apparatus that holds the content may discard or modify the held content.
  • the content reproduction device that has transmitted the request acquires the same content as the content transmitted by the content distribution device by acquiring the content from the relay device or the content reproduction device that has the latest date and time when the content is retained. It can be acquired more reliably.
  • the content distribution device based on the address included in the content storage location information, the relay device or the content reproduction device indicated by the address, and the content acquisition location instruction means instruct the content acquisition location. It further comprises distance calculation means for calculating a physical or network structure distance from the content playback device, wherein the content acquisition destination instruction means calculates the distances included in the plurality of content storage destination information. It is preferable to arrange the content storage destination list by arranging priorities in the order of the shortest distances calculated by the means and adding priority to the plurality of addresses.
  • the distance calculation unit determines the content acquisition destination by the relay device or the content reproduction device indicated by the address and the content acquisition destination instruction unit. A physical or network structure distance to the instructed content reproduction apparatus is calculated.
  • the content acquisition destination instructing unit arranges the plurality of addresses included in the plurality of content storage destination information in order from the shortest distance calculated by the distance calculating unit, and adds a priority to the plurality of addresses. Create the content storage destination list.
  • the content storage destination list a plurality of relay devices or content playback devices that hold the content requested by the content playback device of the request transmission source, in which the content acquisition destination instruction unit instructs the content acquisition destination.
  • Each relay device or content playback device is shown in order of increasing physical or network structural distance from the content playback device that sent the request. Therefore, the content reproduction device that is the transmission source of the request refers to the content storage destination list, and may select, for example, the relay device or the content reproduction device that is closest to the device as the content acquisition destination device. it can. Therefore, it is possible to suppress the load on the network when the content reproduction device that is the transmission source of the request acquires the content.
  • the content distribution apparatus further includes a transmission record creating unit that creates a response transmission record by associating a transmission destination of the response according to the request with a transmission date and time of the response,
  • the destination instruction means refers to the response transmission record created by the transmission record creation means, and is a relay device or a content reproduction device indicated by the address associated with the requested content in the content storage location information, It is preferable to instruct the content reproduction apparatus that is the transmission source of the request to acquire the content from the transmission destination of the response that is not included in the response transmission record within a certain time.
  • the transmission record creating unit creates a response transmission record by associating the transmission destination of the response corresponding to the request with the transmission date and time of the response.
  • the content acquisition destination instructing unit refers to the response transmission record created by the transmission record creating unit, and in the content storage destination information, the relay device or the content reproduction indicated by the address associated with the requested content
  • the content reproduction device that is the transmission source of the request is instructed to acquire the content from the transmission destination of the response that is not included in the response transmission record within a certain time.
  • the content acquisition destination instructing unit can predict the date and time when the relay device or the content reproduction device, which is the transmission destination of the response, receives the response by referring to the response transmission record. It is possible to predict the date and time when the relay device or content reproduction device to which the response is sent performs request transmission, response reception, or processing associated therewith. Therefore, the transmission destination of the response that is not included in the response transmission record within the certain time is a relay device or a content reproduction device that is considered not to perform processing within the certain time.
  • the content acquisition destination instructing unit is a relay device or a content reproduction device that holds the requested content with respect to the content reproduction device that is the transmission source of the request, and executes processing related to transmission / reception of the content within a predetermined time
  • An instruction is given to acquire the requested content from a relay device or content reproduction device that is considered not to be. Therefore, when the content reproduction device that is the transmission source of the request acquires content from the relay device or content reproduction device instructed by the content acquisition destination instruction means, the processing of the relay device or content reproduction device that is the content acquisition destination It is possible to prevent a delay from occurring when content is acquired by the content reproduction apparatus that is the transmission source of the request due to an increase in the amount.
  • the content reproduction device transmits a request to the content distribution device, receives the content storage destination list as a response to the request, and a relay device indicated by an address included in the received content storage destination list or A content playback apparatus that acquires content requested from any of the content playback apparatuses, and when the reception speed for acquiring the content is slower than a predetermined reception speed,
  • the content playback device is characterized in that it is changed to another relay device or content playback device indicated by an address included in the content storage destination list.
  • the content reproduction device selects either the relay device or the content reproduction device indicated by the address included in the received content storage destination list. Then, when acquiring the content requested from the selected relay device or content playback device, the content playback device acquires the content if the reception speed for acquiring the content is slower than a predetermined reception speed. The previous relay device or content reproduction device is changed from the selected relay device or content reproduction device to another relay device or content reproduction device indicated by the address included in the content storage destination list.
  • the content reproduction apparatus can keep the reception speed for acquiring the content at or above a predetermined reception speed, and can stably acquire the content without causing a large delay.
  • the processing amount of the relay device or content playback device that is the acquisition destination has increased, or the content playback device and the relay device or content playback device that is the acquisition destination It is conceivable that the network communication state between the two has deteriorated. For this reason, the content reproduction device switches the relay device or content reproduction device from which the current content is acquired to another relay device or content reproduction device in response to the occurrence of a delay, thereby obtaining the relay device or content reproduction from the acquisition destination.
  • the resources of the network between the device and the content playback device that acquires the content and the relay device or content playback device that is the acquisition destination can be effectively used.
  • the content reproduction device transmits a request to the content distribution device, receives the content storage destination list as a response to the request, and receives the address with the highest priority in the received content storage destination list.
  • the content reproduction device that acquires the content requested from the relay device or the content reproduction device shown in the above, and when the reception speed for acquiring the content is slower than a predetermined reception speed, the relay device that is the acquisition destination for acquiring the content Alternatively, the content reproduction device is changed to a relay device or a content reproduction device whose priority is indicated by the next address in the content storage destination list.
  • the content reproduction device selects the relay device or content reproduction device indicated by the highest priority address in the received content storage destination list. Then, when acquiring the content requested from the selected relay device or content playback device, the content playback device acquires the content if the reception speed for acquiring the content is slower than a predetermined reception speed. The previous relay device or content reproduction device is changed from the selected relay device or content reproduction device to the relay device or content reproduction device whose priority is indicated by the next address in the content storage destination list.
  • the content reproduction apparatus can keep the reception speed for acquiring the content at or above a predetermined reception speed, and can stably acquire the content without causing a large delay.
  • the content reproduction device that acquires the content is likely to hold the same content as the content transmitted by the content distribution device or Since the content is acquired in order from the content reproduction device, the same content as the content transmitted by the content distribution device can be acquired more quickly and reliably.
  • the priority is added based on the distance from the content playback device that acquires the content, the content playback device acquires the content in order from the relay device or the content playback device that is close to the device. Therefore, it is possible to stably acquire content while suppressing the load on the network.
  • the content distribution system includes the content distribution device and a relay device that requests the content distribution device to transmit content, holds the requested content, and transfers the requested content to the content reproduction device And a content reproduction device that requests content transmission from the content distribution device and acquires the requested content from the device instructed by the content distribution device.
  • the content distribution system has the same effect as the content distribution device.
  • a content distribution apparatus is a content distribution apparatus that transmits content to a transmission source of the request in response to a request, Determining means for determining whether the transmission source of the request is a relay device that holds the requested content and transfers the requested content to the content reproduction device or a content reproduction device that reproduces the requested content; , When the determination unit determines that the transmission source of the request is a content reproduction device, another content distribution device having the requested content among other predetermined content distribution devices according to the request Content storage location information acquisition means for acquiring the address of Content acquisition destination instruction means for instructing the content reproduction apparatus that is the transmission source of the request so as to acquire content from another content distribution apparatus indicated by the address acquired by the content storage destination information acquisition means. It is a feature.
  • the content distribution apparatus control method is a content distribution apparatus control method for transmitting content to a request transmission source in response to a request, wherein the request transmission source transmits the requested content.
  • the determination step of determining whether the content is a relay device that transfers the requested content to the content reproduction device or the content reproduction device that reproduces the requested content, and the transmission source of the request in the determination step is If it is determined that the content reproduction apparatus is used, an address of another content distribution apparatus having the requested content is acquired from other content distribution apparatuses connected to the content distribution apparatus in response to the request.
  • Content storage location information acquisition step A content acquisition destination instructing step for instructing the content reproduction device that is the transmission source of the request to acquire content from another content distribution device indicated by the address acquired in the content storage destination information acquisition step. It is characterized by that.
  • the determination unit determines whether the transmission source of the request is a relay device or a content reproduction device, and the content storage destination information acquisition unit is configured so that the determination unit When it is determined that the transmission source is a content reproduction device, an address of another content distribution device having the requested content is acquired from other predetermined content distribution devices in response to the request. Then, the content acquisition destination instructing unit instructs the content reproduction device that is the transmission source of the request to acquire the content from another content distribution device indicated by the address acquired by the content storage destination information acquiring unit.
  • the content distribution device when the content distribution device receives a request from the content reproduction device, the content distribution device does not directly transmit the content to the content reproduction device that is the transmission source of the request, but from the other content distribution device that holds the requested content. Is instructed to the content reproduction apparatus that is the transmission source of the request.
  • the content reproduction device that is the transmission source of the request acquires the requested content from the other instructed content distribution device. That is, the content reproduction apparatus that has received the request from the content reproduction apparatus does not execute the content transmission process, and the content reproduction apparatus that has transmitted the request can acquire the content.
  • the content distribution is performed by acquiring the content from another content distribution apparatus. There is an effect that it is possible to distribute the load on the network used for data transmission from the apparatus and the content distribution apparatus.
  • the content storage location information acquisition means transmits an inquiry as to whether or not the requested content is present to the other predetermined content distribution device, It is preferable to acquire the address of another content distribution apparatus that has responded that it has the requested content in response to the inquiry.
  • the said content storage location information acquisition means transmits the inquiry whether it has the said requested content with respect to the said other predetermined content delivery apparatus, In response to the said inquiry The address of the other content distribution apparatus that has responded that it has the requested content is acquired.
  • the content acquisition destination instructing means instructs the content reproduction apparatus to acquire content based on the address acquired by the content storage destination information acquisition means by making the inquiry, so that highly accurate (accurate) information is obtained.
  • the content reproduction apparatus can be instructed based on the above. Therefore, the content reproduction apparatus can reliably acquire the requested content.
  • the content distribution apparatus associates the address of another content distribution apparatus having content acquired by the content storage destination information acquisition unit with content identification information indicating the content in association with the content storage destination information.
  • Content storage location information generating means for generating the content storage location information and storing the content storage location information in the storage portion, wherein the content storage location information acquisition means reads the content storage location information from the storage portion, and the read content storage location information is requested. If the content identification information indicating the content is included, the address associated with the content identification information is acquired from the content storage location information, while the read content storage location information indicates the requested content. If you do not include It sends, it is preferable to obtain the address of another content distribution system having the requested content.
  • the content storage location information generation unit associates the address of the other content distribution device having the content acquired by the content storage location information acquisition unit with the content identification information indicating the content.
  • Content storage location information is generated and stored in the storage unit.
  • the content storage location information acquisition unit reads the content storage location information from the storage unit, and when the read content storage location information includes content identification information indicating the requested content, the content storage location information is associated with the content identification information. If the read content storage location information does not include the content identification information indicating the requested content, the inquiry is transmitted, and another content distribution device having the requested content is sent. Get the address.
  • the content storage location information acquisition unit refers to the content storage location information stored in the storage unit when acquiring the address of another content distribution device having the requested content, and requests the content storage location information. If content storage location information including content identification information indicating the content that has been stored is stored in the storage unit, that is, if the address of another content distribution apparatus having the same content has been acquired before, the storage unit stores the information. The address is acquired from the stored content storage location information.
  • the content storage location information including the content identification information indicating the requested content is not stored in the storage unit with reference to the content storage location information stored in the storage unit, that is, the same content before If the address of the other content distribution apparatus having the content is not acquired, the inquiry is transmitted, and the address of the other content distribution apparatus having the requested content is acquired.
  • the other content distribution device indicated by the address included in the content storage location information stored in the storage unit has the content indicated by the content identification information corresponding to the address.
  • the address of another content distribution apparatus having the requested content can be acquired by a simple process of using the previously acquired address. Therefore, the processing load on the content distribution apparatus can be reduced.
  • the content storage location information acquisition unit acquires each address of the plurality of content distribution devices having the requested content, and indicates each acquired address and the content.
  • a content storage destination server list including content identification information is created, and the content acquisition destination instruction means is sent from another content distribution device indicated by an address included in the content storage destination server list created by the content storage destination information acquisition means. It is preferable to instruct the content reproduction apparatus that is the transmission source of the request to acquire the content.
  • the said content storage location information acquisition means acquires each address of the some content delivery apparatus which has the said requested content, Each acquired address, Content identification information which shows the said content,
  • the content storage destination server list includes the content storage destination server list, and the content acquisition destination instruction unit acquires the content from another content distribution apparatus indicated by the address included in the content storage destination server list generated by the content storage destination information acquisition unit In this manner, the content reproduction apparatus that is the transmission source of the request is instructed.
  • the content reproduction device can acquire the requested content from any of a plurality of other content distribution devices. Therefore, it is possible to further distribute the load on the network used for data transmission from other content distribution apparatuses and the other content distribution apparatuses.
  • the content reproduction device transmits a request to the content distribution device, receives the content storage destination server list as a response to the request, and any address included in the received content storage destination server list
  • a content playback device that acquires content requested from another content distribution device indicated by When the reception speed for acquiring the content is slower than a predetermined reception speed, another content distribution apparatus from which the content is acquired is sent to an address different from the address included in the content storage destination server list. It is characterized by comprising an acquisition destination changing means for changing to the other content distribution apparatus shown.
  • the content reproduction device selects another content distribution device indicated by any address included in the received content storage destination server list.
  • the content playback apparatus acquires the requested content from the other selected content distribution apparatus, if the reception speed for acquiring the content is slower than a predetermined reception speed, the acquisition destination for acquiring the content The other content distribution device is changed to another content distribution device different from the selected other content distribution device.
  • the content reproduction apparatus can keep the reception speed for acquiring the content at or above a predetermined reception speed, and can stably acquire the content without causing a large delay.
  • the processing amount of the other content distribution device that is the acquisition destination has increased, or between the content playback device and the other content distribution device that is the acquisition destination It is conceivable that the communication state of the other network has deteriorated. Therefore, the content reproduction device switches another content distribution device from which the current content is acquired to another content distribution device different from the content distribution device according to the occurrence of the delay, thereby obtaining another content distribution device from the acquisition destination, In addition, it is possible to effectively use the network resources between the content playback device that acquires the content and the other content distribution device of the acquisition destination.
  • the content distribution system includes the content distribution device and a relay device that requests the content distribution device to transmit content, holds the requested content, and transfers the requested content to the content reproduction device And a content reproduction device that requests content transmission from the content distribution device and acquires the requested content from the device instructed by the content distribution device.
  • the content distribution system has the same effect as the content distribution device.
  • the content distribution apparatus is a content distribution apparatus that transmits data to a transmission source of the request in response to a request, and is content and content metadata that identifies the content.
  • Management means for managing content storage destination information in which information and an address of another content distribution apparatus having the content are associated or metadata including a storage destination address indicating the location of the content storage destination information;
  • the request determination unit determines whether the request is a content request or a metadata request, and when the request determination unit determines that the request is the content request, the requested content is transmitted from the transmission source of the request. While sending to the device If the request determination means determines that the above-mentioned metadata request, and comprising: a transmitting means for transmitting the metadata request transmission source device of the request.
  • the content distribution apparatus control method is a content distribution apparatus control method for transmitting data to a transmission source of the request in response to a request.
  • a method for controlling a content distribution apparatus wherein a request determination step for determining whether the request is a content request or a metadata request, and a request when the request determination step determines that the request is the content request. Is When the content is determined to be the metadata request in the transmission step for transmitting the content to the request source device and the request determination step, the requested metadata is transmitted to the request source device.
  • the management unit is a content, content metadata, in which content identification information for identifying the content is associated with an address of another content distribution apparatus having the content Storage location information or metadata including a storage location address indicating the location of the content storage location information, and the request determination means determines whether the request is a content request or a metadata request. If the request determination unit determines that the request is the content request, the request determination unit transmits the requested content to the device that has transmitted the request, while the request determination unit If it is determined that The metadata is transmitted to the transmission source device of the request.
  • the content distribution apparatus when the content distribution apparatus receives a content request from the content reproduction apparatus, the content distribution apparatus transmits the content directly to the content reproduction apparatus that is the transmission source of the request, while when the metadata distribution request is received from the content reproduction apparatus, the content of the request transmission source is transmitted.
  • An instruction is sent to the content reproduction apparatus that has transmitted the request so that the content is acquired from another content distribution apparatus that holds the requested content without directly transmitting the content to the reproduction apparatus.
  • the content reproduction device that is the transmission source of the request acquires the requested content from the other instructed content distribution device.
  • the content distribution device that has received the metadata request from the content playback device does not execute the content transmission process, but distributes other content.
  • the apparatus executes the transmission process, and the content reproduction apparatus that is the transmission source of the request can acquire the content.
  • the network is used for data transmission from the content distribution apparatus that has received the request from the content reproduction apparatus, and the content distribution apparatus.
  • the load is relatively large, it is possible to distribute the load on the network used for data transmission from the content distribution device and the content distribution device by acquiring the content from another content distribution device.
  • the request determination unit determines whether the request is a content request, a metadata request, or a content storage location information request using a storage location address, and the request If the determination means determines that the request is a content storage location information request using the storage location address, the transmission means sends the content storage location information whose location is indicated by the storage location address to the device that sent the request. It is preferable to transmit.
  • the request determination unit determines whether the request is a content request, a metadata request, or a content storage location information request using a storage location address. If it is determined that the request is a content storage location information request using a storage location address, the transmission means transmits content storage location information whose location is indicated by the storage location address to the request source apparatus.
  • the content distribution apparatus when the content distribution apparatus receives the metadata request from the content reproduction apparatus, the content distribution apparatus not only notifies the content storage destination information indicating the acquisition destination of the content corresponding to the metadata, but also from the content reproduction apparatus. It is possible to notify the content storage destination information indicating the acquisition destination of the content corresponding to the metadata when the request is received. Therefore, for example, when playing back content, the content playback device can know another content distribution device having the content at the time of playback of the content by transmitting a content storage location information request.
  • the content distribution apparatus can notify the content reproduction apparatus of highly accurate (accurate) information, and the content reproduction apparatus has an error such as being unable to acquire content from the content acquisition destination apparatus. Can be suppressed, and content can be acquired stably.
  • the content distribution apparatus transmits an inquiry as to whether or not the predetermined content distribution apparatus has the predetermined content to the other predetermined content distribution apparatus, and the predetermined content is included in the inquiry. Then, a content storage destination information acquisition unit that acquires the address of the other content distribution device that has responded, an address of the other content distribution device that has the predetermined content acquired by the content storage destination information acquisition unit, Whether content storage destination information is generated by associating with content identification information for identifying content and stored in the storage unit, and whether the content storage destination information stored in the storage unit is updated Update determination means for determining whether or not the request is received by the request determination means.
  • the update determination means determines that the content storage location information whose location is indicated by the storage location address is updated.
  • the means transmits the inquiry to obtain the address, the content storage location information generation means generates content storage location information based on the address, and the transmission means obtains the content storage location information of the request.
  • the request determination unit determines that the request is a content storage destination information request using the storage destination address, and the update determination unit indicates the location by the storage destination address. If it is determined not to update the content storage location information, the transmission means It is preferable to transmit the content storage destination information that location is indicated by the address to the source of the device of the request.
  • the content storage location information acquisition unit transmits the inquiry, acquires the address
  • the content storage location information generation unit generates content storage location information based on the address
  • the transmission means transmits the content storage destination information to the request source apparatus.
  • the transmission means transmits content storage location information whose location is indicated by the storage location address to the device that is the transmission source of the request.
  • the content storage location information acquisition unit does not update the content storage location information stored in the storage unit when acquiring the address of another content distribution device having the requested content
  • the address is acquired from the content storage location information stored in the section.
  • the inquiry is transmitted, and the address of another content distribution apparatus having the requested content is acquired.
  • the update determination unit determines to update the content storage destination information whose location is indicated by the storage destination address, for example, when the content storage destination information stored in the storage unit is old, This is the case where the content storage destination information including the content identification information indicating the requested content is not stored in the storage unit, that is, when the address of another content distribution apparatus having the same content has not been acquired before.
  • the address of another content distribution apparatus having the requested content is acquired by a simple process of using the previously acquired address. Can do. Therefore, the processing load on the content distribution apparatus can be reduced.
  • the content distribution apparatus can notify the content reproduction apparatus of highly accurate (accurate) information, and the content reproduction apparatus Thus, it is possible to suppress the occurrence of an error such that content cannot be acquired from the content acquisition device, and it is possible to acquire content stably.
  • the metadata may include a plurality of storage destination addresses indicating the location of content storage destination information set for each unit obtained by dividing the content at a predetermined time interval. preferable.
  • the metadata includes a plurality of storage destination addresses indicating the location of the content storage destination information set for each unit obtained by dividing the content at predetermined time intervals. Therefore, the content distribution apparatus can notify the content reproduction apparatus of different content storage location information for each unit obtained by dividing the content at a predetermined time interval, for example.
  • the content distribution apparatus can increase the degree of freedom of the content acquisition destination with respect to the content reproduction apparatus. Therefore, it is possible to further distribute the network used for data transmission from the content distribution apparatus and the load on the content distribution apparatus.
  • the content includes a plurality of media segments, and the content divided at the predetermined time interval includes at least one media segment.
  • the content divided at the predetermined time interval includes at least one media segment. Therefore, the degree of freedom of the content acquisition destination can be managed in units of media segments.
  • the metadata includes a content storage destination server list including a plurality of the content storage destination information or a storage destination address indicating a location of the content storage destination server list.
  • the metadata includes a content storage destination server list including a plurality of the content storage destination information or a storage destination address indicating a location of the content storage destination server list. Therefore, the content distribution apparatus can cause the content reproduction apparatus to acquire content corresponding to the metadata from any of a plurality of other content distribution apparatuses. Therefore, it is possible to further distribute the load on the network used for data transmission from other content distribution apparatuses and the other content distribution apparatuses.
  • the content playback apparatus is a content playback apparatus that transmits a metadata request to the content distribution apparatus, receives the metadata as a response to the request, and acquires content according to the received metadata.
  • a content storage destination server list included in the received metadata is received, or a content storage destination information request using the storage destination address included in the received metadata is transmitted, and content is transmitted as a response to the request.
  • a content acquisition unit that acquires content from another content distribution device indicated by an address indicated by any of the content storage destination information included in the received content storage destination server list; and
  • the reception speed for acquiring the content is slower than a predetermined reception speed
  • another content distribution apparatus from which the content is acquired is indicated by an address different from the address included in the content storage destination server list.
  • An acquisition destination changing means for changing to another content distribution apparatus is provided.
  • the acquisition destination changing unit acquires the content when the reception speed for acquiring the content of the content acquisition unit is slower than a predetermined reception rate.
  • the other content distribution device is changed to another content distribution device indicated by an address different from the address included in the content storage destination server list.
  • the content reproduction apparatus can keep the reception speed for acquiring the content at or above a predetermined reception speed, and can stably acquire the content without causing a large delay.
  • the processing amount of the other content distribution device that is the acquisition destination has increased, or between the content playback device and the other content distribution device that is the acquisition destination It is conceivable that the communication state of the other network has deteriorated. Therefore, the content reproduction device switches another content distribution device from which the current content is acquired to another content distribution device different from the content distribution device according to the occurrence of the delay, thereby obtaining another content distribution device from the acquisition destination, In addition, it is possible to effectively use the network resources between the content playback device that acquires the content and the other content distribution device of the acquisition destination.
  • the content distribution system includes the content distribution device and a relay device that requests the content distribution device to transmit content, holds the requested content, and transfers the requested content to the content reproduction device And a content reproduction device that transmits a content request for requesting content to the content distribution device and acquires content from the content distribution device, wherein a metadata request for requesting content metadata from the content distribution device is received. And a content playback device that receives the metadata from the content distribution device and acquires content corresponding to the metadata based on the received metadata.
  • the content distribution system has the same effect as the content distribution device.
  • the content distribution apparatus may be realized by a computer.
  • a control program for realizing the content distribution apparatus by a computer by causing the computer to operate as each unit of the content distribution apparatus, and A computer-readable recording medium on which it is recorded also falls within the scope of the present invention.
  • each block of the server 2, the proxy 3 and the client 4, particularly the server control unit 14, the proxy control unit 22 and the client control unit 32 may be configured by hardware logic, and uses a CPU as follows. It may be realized by software.
  • the server 2, the proxy 3, and the client 4 are a CPU (central processing unit) that executes instructions of a control program that realizes each function, a ROM (read memory only) that stores the program, and a RAM ( random access memory), a storage device (recording medium) such as a memory for storing the program and various data.
  • the object of the present invention is to record the program code (execution format program, intermediate code program, source program) of the control program of the server 2, the proxy 3 and the client 4 which are software for realizing the functions described above so as to be readable by a computer. This can also be achieved by supplying the recorded medium to the server 2, the proxy 3, and the client 4, and the computer (or CPU or MPU) reads and executes the program code recorded on the recording medium.
  • Examples of the recording medium include tapes such as magnetic tapes and cassette tapes, magnetic disks such as floppy (registered trademark) disks / hard disks, and disks including optical disks such as CD-ROM / MO / MD / DVD / CD-R.
  • Card system such as IC card, IC card (including memory card) / optical card, or semiconductor memory system such as mask ROM / EPROM / EEPROM / flash ROM.
  • the server 2, the proxy 3, and the client 4 may be configured to be connectable to a communication network, and the program code may be supplied via the communication network.
  • the communication network is not particularly limited.
  • the Internet intranet, extranet, LAN, ISDN, VAN, CATV communication network, virtual private network, telephone line network, mobile communication network, satellite communication. A net or the like is available.
  • the transmission medium constituting the communication network is not particularly limited.
  • infrared rays such as IrDA and remote control, Bluetooth (Registered trademark), 802.11 wireless, HDR, mobile phone network, satellite line, terrestrial digital network, and the like can also be used.
  • the present invention can be used in a content distribution system that distributes content from a server to a client in response to a request from a client that reproduces content, and a content distribution device, a relay device, and a content reproduction device that constitute the system. it can.
  • Content distribution system 2 Server (content distribution device) 3 Proxy (relay device) 4 Client (content playback device, relay device) 15 Response execution unit (determination unit, content transmission unit, content acquisition destination instruction unit, transmission record creation unit, request determination unit, transmission unit) 16 Relay device specifying unit (content acquisition destination instruction means, distance calculation means) 17 Content storage location information generation unit (content storage location information generation means) 18 Acquisition destination specifying unit (content storage destination information acquisition means, content storage destination information generation means, update determination means) 35 Response / request execution unit (content acquisition means) 37 Relay device selector (relay device changing means) 38 Acquisition destination specifying part (Acquisition destination changing means)

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)。
 N2-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に記載の制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
PCT/JP2011/066279 2010-07-20 2011-07-15 コンテンツ配信装置、コンテンツ再生装置、コンテンツ配信システム、コンテンツ配信装置の制御方法、制御プログラム、および、記録媒体 WO2012011450A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US13/810,701 US20130117413A1 (en) 2010-07-20 2011-07-15 Content distribution device, content playback device, content distribution system, method for controlling a content distribution device, control program, and recording medium
BR112013001376A BR112013001376A8 (pt) 2010-07-20 2011-07-15 dispositivo de distribuição de conteúdo, dispositivo de reprodução de conteúdo, sistema de distribuição de conteúdo, método de controle de um dispositivo de distribuição de conteúdo, programa de controle, e meio de gravação
JP2012525391A JPWO2012011450A1 (ja) 2010-07-20 2011-07-15 コンテンツ配信装置、コンテンツ再生装置、コンテンツ配信装置の制御方法、および、コンテンツ再生装置の制御方法
EP11809620.5A EP2597869A4 (en) 2010-07-20 2011-07-15 CONTENT DISTRIBUTION DEVICE, CONTENT PLAYER, CONTENT DISTRIBUTION SYSTEM, METHOD FOR CONTROLLING THE CONTENT DISTRIBUTION APPROACH, CONTROL PROGRAM AND RECORDING MEDIUM
CN2011800445777A CN103119958A (zh) 2010-07-20 2011-07-15 内容分发装置、内容重放装置、内容分发系统、内容分发装置的控制方法、控制程序以及记录介质

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010-163367 2010-07-20
JP2010163367 2010-07-20
JP2011053614 2011-03-10
JP2011-053614 2011-03-10

Publications (1)

Publication Number Publication Date
WO2012011450A1 true WO2012011450A1 (ja) 2012-01-26

Family

ID=45496872

Family Applications (1)

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

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 (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014022996A (ja) * 2012-07-19 2014-02-03 Oki Electric Ind Co Ltd 映像配信装置、映像配信プログラム、キャッシュ制御装置、キャッシュ制御プログラム、映像配信システム及び映像配信方法
WO2014113603A3 (en) * 2013-01-16 2014-08-21 Huawei Technologies Co., Ltd. Storing and transmitting content for downloading and streaming
JP2014523667A (ja) * 2011-06-08 2014-09-11 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ セグメント化されたコンテンツの位置特定および抽出
EP2782320A1 (en) 2013-03-20 2014-09-24 Telefonica S.A. Method, system and devices for dynamic content distribution
WO2014203745A1 (ja) * 2013-06-18 2014-12-24 ソニー株式会社 コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム
WO2015029800A1 (ja) * 2013-08-30 2015-03-05 ソニー株式会社 サーバ装置、情報処理方法、プログラム、端末装置、およびコンテンツ供給システム
WO2015076598A1 (ko) * 2013-11-20 2015-05-28 삼성전자 주식회사 이동 망에서 비디오 트래픽의 사용자 만족도 최적화를 고려한 혼잡 완화 방법 및 그 장치
CN104854839A (zh) * 2012-10-19 2015-08-19 交互数字专利控股公司 Http流传输的多假设速率自适应
JP2016519895A (ja) * 2013-04-24 2016-07-07 華為技術有限公司Huawei Technologies Co.,Ltd. メディアファイル受信およびメディアファイル送信方法、装置、およびシステム
JP2016522621A (ja) * 2013-07-15 2016-07-28 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ダイナミックアダプティブストリーミング・オーバー・ハイパーテキストトランスファープロトコルにおけるリモート要素のジャストインタイムデリファレンス
KR20160134880A (ko) * 2013-01-16 2016-11-23 후아웨이 테크놀러지 컴퍼니 리미티드 적응형 스트리밍에 있어서 url 파라미터의 삽입과 추가
JP2017022769A (ja) * 2012-01-27 2017-01-26 インテル コーポレイション 改善されたマルチキャスト・コンテンツ配信のための技術
JP2017068403A (ja) * 2015-09-29 2017-04-06 ブラザー工業株式会社 通信装置、通信システムおよびコンピュータプログラム
JP2017525213A (ja) * 2014-06-30 2017-08-31 サムスン エレクトロニクス カンパニー リミテッド 効率的なピア支援ストリーミングのためのキャッシュマニフェスト
US10182086B2 (en) 2013-02-04 2019-01-15 Huawei Technologies Co., Ltd. Method and apparatus for transmitting streaming media data
US10270829B2 (en) 2012-07-09 2019-04-23 Futurewei Technologies, Inc. Specifying client behavior and sessions in dynamic adaptive streaming over hypertext transfer protocol (DASH)
JP7463314B2 (ja) 2021-03-23 2024-04-08 Kddi株式会社 コンテンツ配信ネットワークのクライアント装置及びプログラム

Families Citing this family (37)

* 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
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
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
US9135274B2 (en) * 2012-11-21 2015-09-15 General Electric Company Medical imaging workflow manager with prioritized DICOM data retrieval
US9444863B2 (en) * 2013-06-06 2016-09-13 Intel Corporation Manager for DASH media streaming
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US10410244B2 (en) 2013-11-13 2019-09-10 Bi Science (2009) Ltd Behavioral content discovery
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
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
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 ソニーグループ株式会社 情報処理装置および方法、並びに情報処理端末
JP2022180956A (ja) * 2021-05-25 2022-12-07 富士通株式会社 情報処理装置,プログラム及び情報処理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003223378A (ja) * 2002-01-29 2003-08-08 Fujitsu Ltd コンテンツデリバリネットワークサービス方法及びシステム
JP2005110244A (ja) 2003-09-27 2005-04-21 Lg Electronics Inc マルチメディアストリーミングサービスシステム及びその方法

Family Cites Families (17)

* 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
JP2002268979A (ja) * 2001-03-07 2002-09-20 Nippon Telegr & Teleph Corp <Ntt> ダウンロード方法及び装置、ダウンロード用プログラム並びにそのプログラムを記録した記録媒体
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
JP2005303927A (ja) * 2004-04-15 2005-10-27 Sony Corp 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム
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
US8539092B2 (en) * 2008-07-09 2013-09-17 Apple Inc. Video streaming using multiple channels
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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003223378A (ja) * 2002-01-29 2003-08-08 Fujitsu Ltd コンテンツデリバリネットワークサービス方法及びシステム
JP2005110244A (ja) 2003-09-27 2005-04-21 Lg Electronics Inc マルチメディアストリーミングサービスシステム及びその方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
R. FIELDING ET AL.: "14.45 Via", RFC 2616 HYPERTEXT TRANSFER PROTOCOL HTTP/1.1, June 1999 (1999-06-01), XP002196143 *
See also references of EP2597869A4

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014523667A (ja) * 2011-06-08 2014-09-11 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ セグメント化されたコンテンツの位置特定および抽出
JP2017022769A (ja) * 2012-01-27 2017-01-26 インテル コーポレイション 改善されたマルチキャスト・コンテンツ配信のための技術
US10270829B2 (en) 2012-07-09 2019-04-23 Futurewei Technologies, Inc. Specifying client behavior and sessions in dynamic adaptive streaming over hypertext transfer protocol (DASH)
JP2014022996A (ja) * 2012-07-19 2014-02-03 Oki Electric Ind Co Ltd 映像配信装置、映像配信プログラム、キャッシュ制御装置、キャッシュ制御プログラム、映像配信システム及び映像配信方法
CN104854839A (zh) * 2012-10-19 2015-08-19 交互数字专利控股公司 Http流传输的多假设速率自适应
CN104854839B (zh) * 2012-10-19 2018-10-12 交互数字专利控股公司 Http流传输的多假设速率自适应
US10033777B2 (en) 2012-10-19 2018-07-24 Interdigital Patent Holdings, Inc. Multi-hypothesis rate adaptation for HTTP streaming
JP2015537441A (ja) * 2012-10-19 2015-12-24 インターデイジタル パテント ホールディングス インコーポレイテッド Httpストリーミングのための多仮説レート適合
KR20160134880A (ko) * 2013-01-16 2016-11-23 후아웨이 테크놀러지 컴퍼니 리미티드 적응형 스트리밍에 있어서 url 파라미터의 삽입과 추가
US9749375B2 (en) 2013-01-16 2017-08-29 Futurewei Technologies, Inc. URL parameter insertion and addition in adaptive streaming
KR20150067282A (ko) * 2013-01-16 2015-06-17 후아웨이 테크놀러지 컴퍼니 리미티드 다운로딩 및 스트리밍을 위한 저장 및 전송 콘텐츠
JP2016502809A (ja) * 2013-01-16 2016-01-28 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ダウンロード及びストリーミングのためのコンテンツの記憶及び送信
WO2014113603A3 (en) * 2013-01-16 2014-08-21 Huawei Technologies Co., Ltd. Storing and transmitting content for downloading and streaming
US10148714B2 (en) 2013-01-16 2018-12-04 Futurewei Technologies, Inc. URL parameter insertion and addition in adaptive streaming
KR101685515B1 (ko) * 2013-01-16 2016-12-13 후아웨이 테크놀러지 컴퍼니 리미티드 다운로딩 및 스트리밍을 위한 저장 및 전송 콘텐츠
KR101692685B1 (ko) * 2013-01-16 2017-01-03 후아웨이 테크놀러지 컴퍼니 리미티드 적응형 스트리밍에 있어서 url 파라미터의 삽입과 추가
US9762642B2 (en) 2013-01-16 2017-09-12 Futurewei Technologies, Inc. Storing and transmitting content for downloading and streaming
CN104798357A (zh) * 2013-01-16 2015-07-22 华为技术有限公司 用于下载和串流的内容存储和传输的系统和方法
US10182086B2 (en) 2013-02-04 2019-01-15 Huawei Technologies Co., Ltd. Method and apparatus for transmitting streaming media data
EP2782320A1 (en) 2013-03-20 2014-09-24 Telefonica S.A. Method, system and devices for dynamic content distribution
US9628547B2 (en) 2013-04-24 2017-04-18 Huawei Technologies Co., Ltd. Media file receiving and media file sending methods, apparatuses, and systems
JP2016519895A (ja) * 2013-04-24 2016-07-07 華為技術有限公司Huawei Technologies Co.,Ltd. メディアファイル受信およびメディアファイル送信方法、装置、およびシステム
WO2014203745A1 (ja) * 2013-06-18 2014-12-24 ソニー株式会社 コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム
JP2016522621A (ja) * 2013-07-15 2016-07-28 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ダイナミックアダプティブストリーミング・オーバー・ハイパーテキストトランスファープロトコルにおけるリモート要素のジャストインタイムデリファレンス
WO2015029800A1 (ja) * 2013-08-30 2015-03-05 ソニー株式会社 サーバ装置、情報処理方法、プログラム、端末装置、およびコンテンツ供給システム
WO2015076598A1 (ko) * 2013-11-20 2015-05-28 삼성전자 주식회사 이동 망에서 비디오 트래픽의 사용자 만족도 최적화를 고려한 혼잡 완화 방법 및 그 장치
JP2017525213A (ja) * 2014-06-30 2017-08-31 サムスン エレクトロニクス カンパニー リミテッド 効率的なピア支援ストリーミングのためのキャッシュマニフェスト
JP2017068403A (ja) * 2015-09-29 2017-04-06 ブラザー工業株式会社 通信装置、通信システムおよびコンピュータプログラム
JP7463314B2 (ja) 2021-03-23 2024-04-08 Kddi株式会社 コンテンツ配信ネットワークのクライアント装置及びプログラム

Also Published As

Publication number Publication date
JPWO2012011450A1 (ja) 2013-09-09
JP2016181289A (ja) 2016-10-13
CN103119958A (zh) 2013-05-22
EP2597869A1 (en) 2013-05-29
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
WO2012011450A1 (ja) コンテンツ配信装置、コンテンツ再生装置、コンテンツ配信システム、コンテンツ配信装置の制御方法、制御プログラム、および、記録媒体
US10609101B2 (en) Streaming of segmented content
US10009659B2 (en) System and method for hybrid push-based streaming
KR101737325B1 (ko) 멀티미디어 시스템에서 멀티미디어 서비스의 경험 품질 감소를 줄이는 방법 및 장치
KR101616152B1 (ko) 컴퓨터 구현 방법 및 컴퓨터 시스템
US9118814B2 (en) Set-top box peer-assisted video-on-demand
US9438654B2 (en) Fragment interface into dynamic adaptive streaming over hypertext transfer protocol presentations
EP3207682B1 (en) Managing concurrent streaming of media streams
WO2016174960A1 (ja) 受信装置、送信装置、およびデータ処理方法
KR20120079880A (ko) 스트리밍 서비스 시스템에서 북마크 생성 장치 및 방법
GB2517060A (en) Adaptive data streaming method with push messages control
US20210274241A1 (en) Client based storage of remote element resolutions
US10687106B2 (en) System and method for distributed control of segmented media
WO2014010444A1 (ja) コンテンツ送信装置、コンテンツ再生装置、コンテンツ配信システム、コンテンツ送信装置の制御方法、コンテンツ再生装置の制御方法、データ構造、制御プログラムおよび記録媒体
JP6630092B2 (ja) ルータ、端末、およびそれらの輻輳制御方法
WO2017141701A1 (ja) 受信装置、送信装置、及び、データ処理方法
WO2016174959A1 (ja) 受信装置、送信装置、およびデータ処理方法
JP2008278261A (ja) 中継装置、中継装置制御方法、通信システムおよび中継プログラム
US11750889B2 (en) Systems and methods for selecting a data delivery network
KR20140126094A (ko) 멀티미디어 시스템에서 컨텐츠 재생 방법 및 장치
KR20240008319A (ko) 사용자 맞춤형 콘텐츠와 미리 작성된 미디어 콘텐츠의 전송 간 전환
JP5266712B2 (ja) ストリーミング再生装置
KR20120088072A (ko) 멀티미디어 스트리밍 서비스 방법

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180044577.7

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11809620

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012525391

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13810701

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2011809620

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2011809620

Country of ref document: EP

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112013001376

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112013001376

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20130118