WO2010061262A2 - Content brokering system - Google Patents

Content brokering system Download PDF

Info

Publication number
WO2010061262A2
WO2010061262A2 PCT/IB2009/007454 IB2009007454W WO2010061262A2 WO 2010061262 A2 WO2010061262 A2 WO 2010061262A2 IB 2009007454 W IB2009007454 W IB 2009007454W WO 2010061262 A2 WO2010061262 A2 WO 2010061262A2
Authority
WO
WIPO (PCT)
Prior art keywords
data content
content
request
server
response
Prior art date
Application number
PCT/IB2009/007454
Other languages
French (fr)
Other versions
WO2010061262A3 (en
Inventor
Simone Lupetti
Frederic Paint
Original Assignee
Telenor Asa
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 Telenor Asa filed Critical Telenor Asa
Publication of WO2010061262A2 publication Critical patent/WO2010061262A2/en
Publication of WO2010061262A3 publication Critical patent/WO2010061262A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation

Definitions

  • the present invention relates to data content brokering systems. Moreover, the invention also concerns methods of brokering data content in such data content brokering systems. Furthermore, the invention relates to software products recorded on data carriers and executable on computing hardware for implementing such methods using such computing hardware.
  • the method includes a step of receiving a first request (100) from the user device (140), the first request identifying data content (120) and at least one server (130) comprising content data access information being indicative of a manner of accessing the data content (120).
  • the method further includes, in response to the first request, the step of transmitting a second request (110) to the server (130), the second request (110) identifying the data content (120) and the step of receiving a response from the server (130).
  • the step includes the step of redirecting, using the content brokering apparatus (80), the data content (120) to the at least one target device (150) to which the data content (120) is downloadable, the at least one target device (150) being a different device from the user device (140), thereby providing access to the data content (120) by other means than via the user device (140).
  • the step of transmitting of the second request (110) comprises forwarding those parts of the first request that identify the data content (120) and the at least one server (130).
  • the forwarding comprises using the same communication protocols as used by the first request.
  • the method further includes transmitting a notification (160) to the user device (140) after reception of the first request (100).
  • the step of transmitting a notification (160) further includes modifying metadata included in the response and associated with the data content (120), and transmitting the modified response to the user device (140).
  • the notification (160) is transmitted using a communication session established by the first request (100), thereby causing the user device (140) to process the notification (160) as if it was a response from the server (130) to the first request (100).
  • the method includes a step of transcoding a portion of the data content (120), the transcoded portion being of a format suitable for decoding at the user device (140) and of a size that is significantly smaller than the size of the data content (120) and a step of including the transcoded portion in the notification (160), the step of modifying including replacing metadata of the response, indicating the size and format of the data content (120), with the size and format of the transcoded portion.
  • the method includes a step of generating a response based on a template stored in the content brokering apparatus (80) and a step of including status information associated with the data content (120) into the generated response, the transmission of the notification (160) comprises transmitting the generated response to the user device (140).
  • the method further includes a step of generating a response based on a template stored in the content brokering apparatus (80) and a step of including status information associated with the data content (120) into the generated response, the transmission of the notification (160) comprising transmitting the generated response to the user device (140).
  • the notification (160) is transmitted upon fulfilment of one or more of the following conditions: when a time period measured from reception of the first request (100) reaches a limit defined in the content brokering apparatus (80); when the response from the server (130) has been at least partially received by the content brokering apparatus (80); and when the data content (120) has been at least partially downloaded to the at least one target device (150).
  • the data content (120) is received in the response from the server (130) and wherein the server (130) comprises the one or more sources of data content (20).
  • the method further includes selecting the at least one target device (150) among a set of a plurality of target devices (150a, 150b) whose identities are stored in the content brokering apparatus (80).
  • the selection is made based on one or more of: (a) a metadata associated with the data content (120); (b) a file extension of the data content (120); and
  • the metadata, file extension and/or identified address are recognized by analyzing the received first request (100).
  • the metadata, file extension and/or identified address are recognized by analyzing the received response.
  • the metadata are recognized by analyzing the received data content (120).
  • the method further includes selecting the target device based on configuration rules obtained from a configuration server external to the content brokering apparatus (80).
  • the request (100) further includes an identification of the target device (150) and the redirection being performed on the basis of the received identification.
  • the method further includes selecting the target device based on at least one additional parameter included in the first request (100), wherein the at least one parameter is excluded from the second request before transmission to the server (130).
  • the method further includes the step of downloading, from the server (130), the content data access information, the step of configuring the content brokering apparatus (80) to initiate a peer-to-peer transfer of the data content (120) based on the content data access information, and the step of receiving the data content (120) from one or more additional content brokering apparatus (80, 20) operates as peers to the content brokering apparatus (80) in a peer-to-peer network.
  • the redirection of the content (120) by the brokering apparatus (80) occurs without intervention by the user (40).
  • the content brokering apparatus (80) redirects the data content provided from the server (130) in real-time.
  • the user device is selected from the set of: (a) a mobile phone;
  • PC personal computer
  • PDA personal digital assistant
  • a set-top box (500) including a content brokering apparatus (80), where the content brokering apparatus (80) is operable to implement a method of using a data content brokering apparatus (80) to provide access to downloaded data content (120) by other means than via a user device (140).
  • a machine-readable data- carrying medium including software code stored thereon, the software code being executable upon computing hardware (80) for implementing a method of using a data content brokering apparatus (80) to provide access to downloaded data content (120) by other means than via a user device (140).
  • the method includes a step of receiving a first request (100) from the user device (140), the first request identifying data content (120) and at least one server (130) comprising content data access information being indicative of a manner of accessing the data content (120). Further, the method includes the step of, in response to the first request, transmitting a second request (110) to the server (130), the second request (1 10) identifying the data content (120) and the step of receiving a response from the server (130).
  • Also included in the method are the steps of receiving the data content (120) from one or more sources of data content (20) and, based on at least one of: the received first request (100), the received response, and the received data content (120), selecting at least one target device (150) to which the data content (120) is downloadable.
  • the method includes the step of redirecting, using the content brokering apparatus (80), the data content (120) to the at least one target device (150) to which the data content (120) is downloadable, the at least one target device (150) being a different device from the user device (140), thereby providing access to the data content (120) by other means than via the user device (140) and the step of transmitting a notification (160) to the user device (140) after reception of the first request (100).
  • the server (130) comprises the one or more sources of data content (20) and the selection is made based on one or more of: (a) a metadata associated with the data content (120), (b) a file extension of the data content (120) and (c) an identified address of the server (130) from which the data content (120) is available.
  • the metadata, file extension and/or identified address are recognized by analyzing the received first request (100) and the content brokering apparatus (80) redirects the data content provided from the server (130) in real-time.
  • the user device is selected from the set of: (a) a mobile phone, (b) a personal computer (PC), (c) a laptop computer, (d) a personal digital assistant (PDA) or palm-top computer, (e) a Set-Top-Box and (f) a game console.
  • a data content brokering apparatus (80).
  • the apparatus includes a first reception unit that receives a first request (100) from a user device (140), the first request identifying data content (120) and at least one server (130) comprising content data access information being indicative of a manner of accessing the data content (120) and a transmission unit that, in response to the first request, generates and transmit a second request (110) to a server (130) identified in the first request, the second request (110) identifying the data content (120).
  • a second reception unit that receives a response from the server (130) and the data content (120) from one or more sources of data content (20) and a selection unit that selects at least one target device (150) to which the data content (120) is downloadable and to redirect the data content (120) to the selected at least one target device (150), the at least one target device (150) being a different device from the user device (140), thereby providing access to the data content (120) by other means than via the user device (140).
  • Figure 1 is an illustration of a first configuration of a data content brokering system pursuant to the present invention
  • Figure 2 is a block diagram illustrating an embodiment of the present invention
  • Figure 3 is a block diagram illustrating another embodiment of the present invention.
  • Figure 4 is an illustration of a second configuration of a data content brokering system pursuant to the present invention.
  • Figure 5 is an illustration of a third configuration of a data content brokering system pursuant to the present invention.
  • Figure 6 is an illustration of a set-top box implementation of a data content brokering system pursuant to the present invention
  • Figure 7 is a block diagram illustrating another embodiment of the present invention
  • Figure 8 is a flow diagram corresponding to an embodiment of the present invention.
  • Figure 9 is a block diagram illustrating an exemplary structure of a server according to an embodiment of the present invention.
  • a data content brokering system indicated generally by 10.
  • the system 10 is communicatively connectable to a data content provider system indicated generally by 30.
  • the content provider system 30 is coupled to one or more sources of data content denoted by 20.
  • the one or more sources of data content 20 external to the data content brokering apparatus 80 and which include at least one of:
  • the data content provider system 30 may include more than one server computer 30a and 30b as is shown in Figures 2 and 3. Moreover, the content server 130 and the sources of data content 20 can be included on any one of the servers 30a and 30b.
  • the system 10 itself is optionally established at one physical location, for example at a home of a user 40. Alternatively, the system 10 is spread between several locations.
  • the system 10 includes a data content brokering apparatus 80, for example implemented in a server computer or in a Set-Top-Box (STB), or in a combination of the server computer and the Set-Top-Box.
  • the server computer is a regular desktop computer, a home media server computer, a router device, a home gateway device.
  • the server computer is part of a Gateway GPRS Support Node (GGSN) of a GPRS (General Packet Radio Service) network, an Access Service Network Gateway (ASN-GW) of a WiMAX network, or a Serving Gateway (SGW) of an LTE network.
  • GGSN Gateway GPRS Support Node
  • ASN-GW Access Service Network Gateway
  • SGW Serving Gateway
  • ASN-GW or SGW allows the user to redirect content to a device present in the home network even when content requests are issued from another operator's network, for example in order to avoid incurring data roaming fees when downloading the requested content.
  • the brokering apparatus 80 hosted on the GGSN may also be accessed via a Web interface.
  • a target device 150 In order to have the server be part of the GGSN, however, a target device 150 must become known to the GGSN (ASN-GW, GSW).
  • XMPP Extensible Messaging and Presence Protocol, a.k.a. "Jabber” protocol.
  • GGSN ASN-GW, GSW
  • the target device 150 can either be on the GPRS network or on an external network.
  • the data content brokering apparatus 80 may include a packet inspecting router 85 which includes mainly three components:
  • a data traffic analyzer 86 configured to analyze at least one of: - an incoming request 100 from a user device 140;
  • a target device selector 87 configured to based on at least one of: the analyzed request, the analyzed response and the analyzed data content 120, select at least one target device 150 to which the data content 120 is downloadable;
  • a content redirector 88 configured to redirect using the content brokering apparatus 80 the data content 120 to the selected at least one target device 150.
  • the data content brokering apparatus 80 comprises a response generator 89 configured to generate responses (e.g. notification 160) to the user device 140, for example to proactively stop the user device 140 from waiting for a response from the at least one server 130.
  • responses e.g. notification 160
  • data traffic analyzer 86 target device selector 87, content redirector 88, and response generator 89 are logical components meant to simplify understanding of the disclosure, and are not necessarily separate software or physical components.
  • these elements may be implemented using computer hardware including elements such as a CPU, memory, etc, where the CPU is configured to implement the functions of these elements.
  • the purpose of the data traffic analyzer 86 is to detect one or more relevant parts of an incoming request 100, an incoming response and/or incoming data content 120.
  • relevant parts can for example be those parts that identify data content 120 and at least one server 130. In an embodiment, these parts are detected in the same layer of the contemporary Open Systems Interconnection Basic Reference Model, namely OSI model.
  • the relevant parts can be an RFC 2616 compatible HTTP/1.1 GET command with a path and a Host request-header that are jointly identifying the data content and the server.
  • the relevant parts can be an RFC 2616 compatible HTTP/1.1 GET command with a path and a Host request-header that are jointly identifying the data content and the server.
  • the path "/jazz/song 1.mp3" and the host “music.contentprovider.com” can at the server 130 be translated to "www.contentprovider.com/music/jazz/song1. mp3".
  • relevant parts of an incoming request 100 can be acquired from two or more different layers of the OSI model.
  • the traffic analyzer 86 may acquire a content identity from an HTTP/1.0 GET command at the application layer of the incoming request 100 containing e.g. the path "/content. mpg", and a server identity by acquiring the destination address from the network layer of the incoming request 100, for example from the Destination Address header field of one or more Internet Protocol (IP) packets that together form the incoming request 100.
  • IP Internet Protocol
  • the server is identified by a combination of the Destination Address header field of an IP packet and a Destination port field of a Transmission Control Protocol (TCP) segment header included in the Data field of the IP packet.
  • TCP Transmission Control Protocol
  • the incoming request 100 which is received at the data content brokering apparatus 80 from the user device 140 is processed before being forwarded to the server 30/130.
  • the data content brokering apparatus 80 may only forward a part of the request 100 to the server 30/130 as request 110.
  • a HTTP request originating from the user device 140 will likely contain more information then just
  • requests 100 and 110 may correspond to two different TCP sessions, one with the incoming HTTP request 100 and the other with the "forwarded" HTTP request 110. Therefore "part” of the incoming request (the HTTP data) 100 is forwarded while other parts (the TCP session data) are not forwarded in request 110.
  • a relevant part of an incoming response from the server 130 is an RFC 2616 compliant Content-Type entity-header field indicating the Internet media type, also called Multipurpose Internet Mail Extension (MIME) media type, of the entity-body being returned in the response from the server 130.
  • MIME Multipurpose Internet Mail Extension
  • the Content-Type field may comprise the text "video/mpeg", thereby indicating that the response from the server 130 comprises a video in an MPEG format. This may in turn indicate that the response also comprises the requested data content 120, i.e. that the server 130 comprises the one or more sources of data content 20.
  • the Content-Type field comprises the text "application/x-bittorrent", thereby indicating that the response from the server 130 comprises a BitTorrent metadata file.
  • This may be an indication that the server 130 does not comprise the one or more sources of data content 20, but rather that these sources are to be found via a swarm discovery server identified by the metadata file.
  • a relevant part of an incoming response from the server 130 is an RFC 2616 compliant Content-Length entity-header field indicating the size of the entity-body being returned in the response from the server 130. A large size indicates that the response from the server likely comprises data content 120, which may need to be redirected to the at least one target device 150.
  • relevant parts of an incoming response from the server 130 can be acquired from different layers of the OSI model.
  • the traffic analyzer 86 may acquire an RFC 2616 compliant Content-Type entity-header at the application layer of the incoming response as exemplified above, and a server identity by acquiring the source address from the network layer of the incoming response, for example from the Source Address header field of one or more Internet Protocol (IP) packets that together form the incoming response from the server 130.
  • IP Internet Protocol
  • a relevant part of incoming data content 120 from one or more sources of data content 20 is metadata included at one or more positions in the data content 120.
  • the metadata may be a four-character code byte sequence at or near the beginning of the data content 120 that identifies the type of data content, such as "MP4V" for identifying an MPEG-4 video or "MJPG" for a Motion JPEG video.
  • the data content 120 may comprise an Ogg transport bit stream comprising Ogg pages, each page identified by metadata comprising a four-character "OggS" capture pattern.
  • the data content 120 may be sound encoded according to the MP3 standard, the metadata being an ID3 tag identifying the encoded sound.
  • the detected one or more relevant parts of an incoming request 100, an incoming response and/or incoming data content 120, are used by the data content brokering apparatus 80 to trigger the execution of one or more configuration rules.
  • configuration rules are stored in the data content brokering apparatus 80.
  • configuration rules are alternatively or in addition obtained from a configuration server external to the data content brokering apparatus 80.
  • the triggering of configuration rules may involve the target device selector 87 selecting at least one target device 150 to which the data content 120 is downloadable.
  • An example of such a rule can be:
  • IP address "192.168.2.15" identifying for example a network storage device or an Internet-enabled TV capable of playing MPEG-formatted video content.
  • the selection of at least one target device 150 triggers the content redirector 88 to redirect the data content 120 received from the server 130 and/or from one or more sources of data content 20 to the selected at least one target device 150, thereby enabling the user 40 to access the data content 120 by other means than via the user device 140.
  • the data content 120 is redirected in its full size to the at least one target device 150.
  • only a part of the data content 120 is redirected to the at least one target device 150, the part being at least 50% the size of the original data content 120 but still capable of being experienced by the user 40 from the at least one target device 150 as if the part was similar to the original data content 120 or at least a close derivative work of the data content 120.
  • the part redirected to the at least one target device 150 can be the data content 120 without its advertisements.
  • the data traffic analyzer 86, target device selector 87 and the content redirector 88 are implemented as matching filters of a software router and as corresponding routing rules for the software router together with the software router itself.
  • An example of such a router is iptables, found at http://www.netfilter.org.
  • the identification or relevant parts as exemplified above may be implemented using network layer, transport layer and/or application layer matching functionality of the software router and configuration rules used to select at least one target device 150 may at least in part be implemented by configuring chain rules for the software router.
  • each target device 150 may be assigned a virtual network interface at the data content brokering apparatus 80 to which the software router forwards data content 120 based on the configured rules.
  • These virtual network interfaces may further be linked to network drivers, communication protocol translators and/or other software adapted to communicate with each particular target device 150.
  • the response generator 89 generates a response for transmission to the user device 140.
  • a Web client at the user device 140 may be waiting for a response from the server 130 to which it sent the request via the data content brokering apparatus 80, and typically it will only stop waiting either from a user interruption, a timeout at the Web client, or from a response to the request 100. Therefore, an effective way of stopping the Web client from waiting for a response to the request 100 is to transmit a notification 160 to the user device 140 as if it was a response from the server 130 to the first request 100.
  • a notification 160 is transmitted using the same communication session as the one established by the first request 100.
  • An example of such a communication session is a TCP session initiated when the user device 140 transmits a first request 100 over TCP, for example comprising an RFC 2616 compatible HTTP/1.1 GET command as exemplified above.
  • the response generator 89 can generate a response to the user device 140 for example in response to the incoming request 100, the incoming response from the server 130, or the incoming data content 120.
  • the response is generated within a time period measured from reception of the first request 100 by the content brokering apparatus 80.
  • the response is generated when the response from the server 130 has been at least partially received by the content brokering apparatus 80.
  • the response is generated when the data content 120 has been at least partially downloaded to the at least one target device 150.
  • the response to the user device 140 comprises metadata copied from an HTTP response header of the response from the server 130, but not the data content 120 of the response body.
  • the Web client at the user device 140 may continue to wait until it receives a response body of the same size as indicated in the Content-Length entity-header field returned in the response header.
  • the response sent from the server 130 to the data content brokering apparatus 80 is modified by the response generator 89 before the modified response is transmitted from the data content brokering apparatus 80 to the user device 140.
  • the response generator 89 can override any metadata received in the response from the server 130 indicating the size of the response body, such as the Content-Length entity-header field of an HTTP response header, to zero and also exclude the body from the response so that the user device 140 receives a response that stops it from waiting for the data content 120.
  • the response generator 89 comprises a transcoder that converts a portion of the data content 120 to a format that is suitable for decoding at the user device 140.
  • the transcoded portion is preferably of a size that is significantly smaller than the size of the data content 120, for example at least 75% smaller size, and more optionally 90% smaller size.
  • the transcoded portion is then included in the notification.
  • the metadata indicating the size of the data content 120 is preferably also modified accordingly in the response generated by the response generator 89 to correspond with the size of the transcoded portion.
  • the metadata indicating the format of the data content 120 is modified in a corresponding way as well.
  • the response to the user device 140 is generated by the response generator 89 from a template.
  • the template is optionally stored in the content brokering apparatus 80.
  • the response generator 89 may optionally include status information into the generated response, indicating for example:
  • the response generator 89 inserts metadata in the response that asks the user device 140 to issue another request, for example within a predefined period of time. This can be useful in order for the user device 140 to receive updates to the status information.
  • metadata can be inserted either in the response header or in the response body.
  • An example of metadata inserted into the response header is a Refresh entity-header field, which although is not mentioned in RFC 2616, is supported by Mozilla® and Internet Explorer® Web browsers.
  • the two above examples recommend the Web client to resend the first request 100 every 10 seconds, but the person skilled in the art will realise that the response generator 89 can ask the user device 140 to send requests for updates in other ways, and also that the response generator 89 can ask the user device 140 to ask for updates from a different server, for example a Web server integrated into the data content brokering apparatus 80.
  • the event that triggers the response generation may be defined using a complex logical condition, for example also involving a time measured from the reception of the incoming request 100 by the data content brokering apparatus 80, or error codes received from the server 130, sources of data content 20, or one or more target devices 150.
  • the response generator 89 generates a response for transmission to the user device 140 when the response from the server 130 has been at least partially received by the content brokering apparatus 80, for example when an HTTP response header has been received.
  • the server computer optionally comprises a proxy server 85 for implementing a method pursuant to the present invention.
  • a proxy server 85 for implementing a method pursuant to the present invention.
  • the proxy server is susceptible to being configured to function on the transport layer of the OSI model. Communication on the transport layer beneficially hides complexity from the user of whatever functionality the proxy server 85 is operable to provide.
  • the proxy server 85 includes a data traffic analyser 86, a target device selector 87 and a content redirector 88.
  • a user device 140 is optionally configured to use the proxy server 85 as a gateway to the Internet, so that, irrespective of which user device application running on the user device 140 tries to access the Internet, an associated connection would have to be routed via the proxy server.
  • a configuration generally comprises configuring the user device 140 with an Internet Protocol (IP) address of the proxy server, a port number, and optionally a user name and a password.
  • IP Internet Protocol
  • a specific user device application can be configured to use the data content brokering apparatus 80 as a gateway to the Internet.
  • a user device application is optionally susceptible to present a user interface that enables the user 40 to search for and select data content 120 obtainable from the one or more sources of data content 20.
  • the user device application is optionally also susceptible to presenting meta-tagged text content downloaded from the Internet.
  • the user device application is optionally a Web browser or a Wireless Application Protocol (WAP) browser.
  • WAP Wireless Application Protocol
  • configuring the user device 140 or the user device application is performed by a network operator associated with the user device 140, to hide the complexity of setting up the proxy configuration from the user 40. Such a configuration can for example be performed using a suitable Over-The-Air (OTA) provisioning protocol.
  • OTA Over-The-Air
  • the network operator is optionally able to upload such a configuration to the user device 140 in the form of a Short Message Service (SMS) message.
  • SMS Short Message Service
  • the user device 140 is already configured to use an Internet proxy, the device 140 is susceptible to being configured to enable the method pursuant to the present invention.
  • the user device can optionally be implemented using a set-top box 140b having a web client 145 which is controllable using a user device 140a which may be for example a remote control device or a device configured to perform a remote control function.
  • the user device 140a may access the set-top box 140b through, for example a network, through wireless signals, through infrared signals, etc.
  • the method of the present invention is optionally implemented using a Web server running on the server computer.
  • a Web server running on the server computer.
  • a result of using a Web server is that the Web server is optionally susceptible to being established virtually on any location, including locations not under control of a network operator associated with the user device 140.
  • Web server is optionally also configured to enable customization of the user interface enabling the user 40 to search for and select data content 120 obtainable from the one or more sources of data content 20. Such customization is optionally enabled by transmitting
  • Web pages 90 to the user device 140 are optionally configured to use the Web server as a start page server to the Internet, so that when the user device 140 starts a Web browser, the browser connects to the Web server configured to enable the method pursuant to the present invention.
  • a configuration usually comprises setting the Web server address in a configuration file of the Web browser.
  • an OTA provisioning protocol is optionally used to configure the start page server address.
  • the Set- Top-Box is optionally located in a convenient region of a home.
  • the data content brokering apparatus 80 is also susceptible to include a Web server 95 for configuration purposes.
  • This web server 95 can be included in the server 80a or alternatively in a separate server 80b. By connecting to such a configuration Web server
  • the Web pages 90 may be presented to the user
  • the configuration web server 95 enables the user 40 to configure at least one of: the data traffic analyzer 86, the target device selector 87, and the content redirector 88.
  • the configuration web server 95 enables the user 40 to configure the response generator
  • the content brokering apparatus 80 can be configured to provide at least one of a searching service and a directory service to the user device 140.
  • the data content brokering apparatus 80 is a Set-Top-Box
  • the at least one of a searching service and a directory service is controllable via a user device 140, for example a remote control, and presentable results of the at least one of a searching service and a directory service are displayed at a display device, for example a television (TV).
  • TV television
  • the user device 140 is portable.
  • the portable user device is optionally a mobile telephone or personal digital assistant (PDA).
  • PDA personal digital assistant
  • the apparatus 80 of the system 10 is operable to employ a method of enabling a user 40 of a user device 140 to access downloaded data content 120 by other means than via the user device 140, wherein the method shown, for example, in Figure 8 includes steps of: (a) receiving a first request 100 from a user device 140, the first request 100 identifying data content 120 and at least one server 130 comprising content data access information being indicative of a manner of accessing the data content 120 (Shown in Figure 8 as a get content request sent from the user device 140 to the content brokering apparatus 80).
  • the target device 150 can be the same device or a different device from the user device 140.
  • the data content 120 is redirected to a different device than the user device 140. This enables the user 40 to access the data content 120 by other means than via the user device 140.
  • the target device 150 receives the data content 120 without requesting the data content 120 from the target device 150, in other words the target device 150 receives the data content 120 without direct solicitation from the target device 150.
  • a notification 160 is transmitted to the user device 140.
  • the notification is sent from the apparatus 80 to the user device 140.
  • the notification 160 is sent from the target device 150 via the brokering apparatus 80 to the user device 140.
  • Figure 1 a simple situation is illustrated wherein the data content 120 is provided from a single server 130.
  • Figure 4 wherein the data content 120 comprises first and second data content portions 120a, 120b provided from first and second servers 130a, 130b, respectively, a much more complex problem of administration and control of data content delivery arises.
  • the data content portion 120a is a video film with moving images and a sound track in English language
  • the data content portion 120b is a text overlay into Norwegian for the video film which needs to be synchronized and overlaid onto the video film for presentation at the target device 150.
  • delivery of the first and second data content portions 120a, 120b has to be temporally coordinated on account of limited data storage capacity available at the target device 150.
  • a special situation can arise when the first data content portion 120a is a real-time video conference hosted on the target device 150, wherein the second data content portion 120b is a simultaneous translation performed real-time into Norwegian.
  • Such an implementation of the system 10 enables business people represented by the user 40 to arrange video conferences and arrange simultaneous translation as the second data content portion 120b hosted via the Internet.
  • the simultaneous translation can be provided by human translators at remote locations or by real-time computer-based simultaneous translation facilities and associated computer executable advanced software products recorded on data carriers.
  • Temporal synchronization between the first and second data content portions 120a, 120b can be achieved by the servers 130a, 130b being configured in mutual coordination for providing the content portions 120a, 120b to the target device 150 in an appropriately timely manner.
  • the user 40 invokes the user device 140 to instruct the servers 130a, 130b to send the data content portions 120a, 120b to the apparatus 80 for subsequent routing to first and second target devices 150a, 150b respectively, which then send their respective notifications 160a, 160b to the user device 140 for confirming successful receipt of the data content portions 120a, 120b thereat.
  • the first and second target devices 150a, 150b send their notifications to the brokering apparatus 80 which subsequently notifies the user 40, for example via the user device 140.
  • the target device 150a is a high-definition television requiring high-definition presentation of data content 120a in HDTV format with stereo and ambient sound channels together with a so-called surrounding-illumination "ambilight" channel
  • the second target device 150b is a personal digital assistant (PDA) including a low-resolution liquid crystal display (LCD) screen with stereo audio outputs for headphones.
  • PDA personal digital assistant
  • the user 40 orders the data content portions 120a, 120b by selecting the data content portions 120a, 120b using the user device 140, which for example is implemented as a mobile telephone having short messaging service (SMS) and/or direct Internet browsing functionality.
  • SMS short messaging service
  • the user 40 can then watch and thereby enjoy the data content in high quality on the high-definition television at home and also in lower quality when travelling to work by public transport.
  • the data content portions 120a, 120b can, for example, comprise latest news reports to avoid a need for printed newspapers whose production is potentially costly and environmentally damaging.
  • the notifications 160a, 160b enable the user 40 to be informed that the data content has been successfully delivered in response to the request 100 being sent by the user 40.
  • the notifications 160a, 160b are conveyed via the brokering apparatus 80.
  • a content portion 120 can be selected in various ways, for example by one or more of: (i) sending an SMS message from the user device 140 to the content brokering apparatus 80 via an SMS gateway, wherein the SMS message identifies the content portion 120 and at least one server 130; and
  • the apparatus 80 is optionally implemented within the Internet, for example as a Web portal or proxy server.
  • the user device 140 is optionally a terminal interface to the Internet so that the request 100 includes messages conveyed within the Internet from one Internet site to another thereof.
  • at least one of the servers 130a, 130b, the apparatus 80 and the user device 140 are local to the home. The foregoing is also applicable when the home represents an office, cinema, ship, road vehicle or aircraft including a user-reconfigurable infotainment system.
  • the user device 140 and the apparatus 80 are optionally spatially located together in a data content resource terminal.
  • the user device 140 and the apparatus 80 can be configured to form a data content brokering apparatus and the one or more target devices 150 functionally form a configuration of devices.
  • the aforesaid method steps (a) to (d) optionally include an additional step of selecting the one or more target devices 150 among a set of one or more target devices whose identities are stored in the apparatus 80. More optionally, the selection is susceptible to being made based on one or more of: (i) metadata associated with the data content 120, for example a file extension, a file type, or a Multipurpose Internet Mail Extension (MIME) media type for the data content 120.
  • MIME Multipurpose Internet Mail Extension
  • data content 120 with file names ending with ".mp3" are optionally routed via the apparatus 80 to the target device 150a for playing music
  • data content 120 with file names ending with ".mpg” are routed via the apparatus 80 to the target device 150b for playing movies.
  • data content 120 smaller than a certain file size are optionally routed via the apparatus 80 to the target device 150a, whereas data content 120 larger than a certain file size are via the apparatus 80 to the target device 150b;
  • metadata included in the data content 120 for example programme listings or programme indexes useable for data content searching and navigation purposes;
  • the request 100 optionally further includes an identification of the one ore more target devices 150a, 150b and the redirection within the apparatus 80 is performed on the basis of the identification being subsequently received at the apparatus 80.
  • the data content 120 itself is able to control the apparatus 80 to determine to which target device 150 the data content 120, or a portion thereof, is automatically routed or otherwise directed.
  • the system 10 is itself optionally capable of functioning, at least partially, in a manner of one or more of the servers 130a, 130b for further distributing the data content 120 in a peer-to-peer manner.
  • the aforementioned method in steps (a) to (d) optionally includes a step of configuring the content brokering apparatus 80 to initiate an aforementioned peer-to-peer transfer of the data content 120, and receiving said data content from one or more additional content brokering apparatus 80 configured to operate as peers to the content brokering apparatus 80 in a manner of a peer-to-peer network.
  • the aforesaid method optionally therefore includes a step of the content brokering apparatus 80 configuring itself to operate as a part of a peer in the peer-to-peer network.
  • the aforesaid method optionally includes a step of configuring the content brokering apparatus 80 to provide at least one of a searching service and a directory service to the peer-to-peer network.
  • the brokering apparatus 80 is optionally susceptible to configuring itself to operate as an uploading peer in the peer-to-peer network.
  • the system 10 and its associated apparatus 80 are susceptible to being implemented in several different practical forms.
  • the system 10 and its apparatus 80 are susceptible to being implemented as a home media server 80a, as shown in Figure 7, and/or a Set-Top-Box (STB).
  • STB Set-Top-Box
  • message exchanges arising during operation of the system 10 are not all presented to the user 40 so that the user 40 perceives the system 10 to be transparent in use.
  • the aforesaid method optionally includes a step of encrypting and/or decrypting the data content 120 communicated between the content data brokering apparatus 80 and one or more of the servers 130a, 130b; such encryption is optionally based on public-private key encryption and decryption, wherein the public key is employed for encryption and the private key is employed selectively for performing decryption.
  • other modes of encryption are also alternatively or additionally possible.
  • the data content brokering apparatus 80 is optionally operable to preserve use rights associated with the defined data content 120, the use rights restricting access to the data content 120 based on at least one of: (a) a user identity of the user 40; (b) an identity of the one or more target devices 150 and/or the user device 140 to which the data content is downloaded, and a time period of validity for the data content 120; and
  • the content brokering apparatus 80 is operable to receive the defined data content 120 from the one or more servers 130a, 130b and also redirect the defined data content 120 provided from the one or more servers 130 within an Internet session, without closing any connection or session between the user 40 device and the one or more servers 130a, 130b. Encryption and/or decryption is optionally performed for data communicated between the brokering apparatus 80 and the one or more servers 130a, 130b.
  • the user device 140 is optionally selected from a set of: (a) a mobile phone; (b) a personal computer (PC);
  • PDA Personal Digital Assistant
  • the system 10 is also optionally operable to function as a content brokering apparatus 80 for redirecting downloaded data, wherein the brokering apparatus 80 includes:
  • At least one server 130a, 130b from which the data content 120 is available, the at least one server 130a, 130b being operable to provide the data content 120 in response to receiving said first request 100;
  • the content brokering apparatus 80 being operable to based on at least one of: the first request, a response from the server 130a, 130b, and the received data content
  • the one or more target devices 150a, 150b being operable to at least partially download the data content 120, and optionally to transmit at least one notification 160a, 160b of the download of the data content 120 to the user device 140, the notification optionally being sent via the brokering apparatus 80.
  • the data content brokering apparatus 80 is optionally implemented as a Set-Top-Box 500 as illustrated in Figure 6.
  • the Set-Top-Box 500 is optionally integrated into a television or similar.
  • One or more of the user device 140, and apparatus 80 and the one or more target devices 150a, 150b optionally includes software code stored upon a machine-readable data medium, the software code being executable upon computing hardware for implementing aforementioned methods of brokering data content 120.
  • the at least one server 130 comprise content data access information which is optionally data representing a mapping between a Uniform Research Locator (URL) and a file system path; such a correspondence is contemporarily routinely used for Web servers.
  • a Web server is able to translate a URL received in a request 110 from the content brokering apparatus 80, into a file system path accessible by the Web server.
  • An example of such a contemporary Web server is the Apache ® Web server as reported at an Internet Web-site: www.apache.org.
  • a "mod_alias" module of the Apache Web server is capable of being configured with a mapping between a Uniform Resource Locator (URL) and a file system path by using a DocumentRoot directive and/or an Alias directive.
  • Content data access information is optionally data representing a mapping between a first URL and a second URL; such a mapping is conventionally employed in Web servers.
  • the apparatus 80 is operable to send a first URL to the Web server which translates the first URL into a second corresponding URL.
  • the second URL may be employed in at least two mutually different ways.
  • the Web server is configured to function as a reverse proxy, namely the Web server, upon receiving a request 110 including a first URL from the content brokering apparatus 80, uses mapping data to translate the first URL into a second URL, and then transmits a subsequent request to a second server identified by the second URL, the second server being different from the Web server.
  • the second URL optionally comprises a different protocol name identifying the protocol to be used in the subsequent request, for example the File Transfer Protocol (FTP).
  • FTP File Transfer Protocol
  • the Web server redirects the content data to the content brokering apparatus 80.
  • An example of a Web server which is capable of functioning as a reverse proxy is the aforesaid Apache Web server.
  • the mod_rewrite and mod-proxy Apache modules are susceptible to being configured with a mapping between a first URL and a second URL for such a purpose by using a RewhteRule directive and/or a ProxyPass directive.
  • the Web server is configured, upon receiving a request 110 including a first URL from the content brokering apparatus
  • the second URL may be attached to a hypertext transfer protocol (HTTP) response status code, for example:
  • HTTP hypertext transfer protocol
  • the content brokering apparatus 80 Upon receiving such a response status code and a second URL, the content brokering apparatus 80 transmits a request to a server identified by the second URL.
  • a Web server being capable of instructing a content brokering apparatus to transmit a request to a second URL is the aforesaid Apache Web server.
  • the mod_alias Apache module is susceptible to being configured with a mapping between a first URL and a second URL for such a purpose by using a Redirect directive.
  • content data access information may be a metadata file identifying parts of at least one data content file and at least one address of a swarm discovery server.
  • the content brokering apparatus 80 transmits a request to a server hosting the metadata file and receives a metadata file in response.
  • the server is optionally a Web server.
  • the content brokering apparatus 80 then extracts the at least one address of a swarm discovery server, and then transmits a request to at least one swarm discovery server in order to obtain a peer list therefrom.
  • the peer list namely a form of address list, may then be used by the content brokering apparatus 80 to contact peers in a peer-to-peer network.
  • a peer of such a peer-to-peer network is optionally another content brokering apparatus 80.
  • the aforesaid metadata file is a torrent file
  • the swarm discovery server is a BitTorrent tracker
  • data content is received from other peers in the peer-to-peer network by employing a contemporary BitTorrent protocol.
  • a peer list comprises at least one address of a peer configured to function as a swarm discovery server using a contemporary Distributed Hash Table (DHT) method
  • DHT Distributed Hash Table
  • redirection in "real-time” can mean that as soon as an at least a part of the content data 120 is received by the content brokering apparatus 80, the at least a part of the content data 120 is transmitted to a target device 150 within 1 millisecond, optionally within 10 milliseconds, more optionally within 50 milliseconds, yet more optionally within 100 milliseconds, yet more optionally within 500 milliseconds, yet more optionally within 1 second, yet more optionally within 30 seconds, yet more optionally within 1 minute, yet more optionally within 5 minutes, yet more optionally within 10 minutes. Other time periods are envisaged within the scope of the present invention.
  • FIG 9 illustrates the structure of, for example, the content brokering apparatus 80 according to an embodiment of the invention.
  • the apparatus 80 includes a bus B or other communication mechanism for communicating information, and a processor/CPU 1004 coupled with the bus B for processing the information.
  • the apparatus 80 also includes a main memory/memory unit 1003, such as a random access memory (RAM) or other dynamic storage device (e.g., dynamic RAM (DRAM), static RAM (SRAM), and synchronous DRAM (SDRAM)), coupled to the bus B for storing information and instructions to be executed by processor/CPU 1004.
  • the memory unit 1003 may be used for storing temporary variables or other intermediate information during the execution of instructions by the CPU 1004.
  • the apparatus 80 may also further include a read only memory (ROM) or other static storage device (e.g., programmable ROM (PROM), erasable PROM (EPROM), and electrically erasable PROM (EEPROM)) coupled to the bus B for storing static information and instructions for the CPU 1004.
  • ROM read only memory
  • PROM programmable ROM
  • EPROM erasable PROM
  • EEPROM electrically erasable PROM
  • the apparatus 80 may also include a disk controller coupled to the bus B to control one or more storage devices for storing information and instructions, such as mass storage 1002, and drive device 1006 (e.g., floppy disk drive, read-only compact disc drive, read/write compact disc drive, compact disc jukebox, tape drive, and removable magneto-optical drive).
  • the storage devices may be added to the apparatus 80 using an appropriate device interface (e.g., small computer system interface (SCSI), integrated device electronics (IDE), enhanced-IDE (E-IDE), direct memory access (DMA),
  • the apparatus 80 may also include special purpose logic devices (e.g., application specific integrated circuits (ASICs)) or configurable logic devices (e.g., simple programmable logic devices (SPLDs), complex programmable logic devices (CPLDs), and field programmable gate arrays (FPGAs)).
  • ASICs application specific integrated circuits
  • SPLDs simple programmable logic devices
  • CPLDs complex programmable logic devices
  • FPGAs field programmable gate arrays
  • the apparatus 80 may also include a display controller coupled to the bus B to control a display, such as a cathode ray tube (CRT), for displaying information to a computer user.
  • a display such as a cathode ray tube (CRT)
  • the computer system includes input devices, such as a keyboard and a pointing device, for interacting with a computer user and providing information to the processor.
  • the pointing device for example, may be a mouse, a trackball, or a pointing stick for communicating direction information and command selections to the processor and for controlling cursor movement on the display.
  • a printer may provide printed listings of data stored and/or generated by the computer system.
  • the apparatus 80 performs at least a portion of the processing steps of the invention in response to the CPU 1004 executing one or more sequences of one or more instructions contained in a memory, such as the memory unit 1003. Such instructions may be read into the memory unit from another computer readable medium, such as the mass storage 1002 or a removable media 1001.
  • processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in memory unit 1003.
  • hard-wired circuitry may be used in place of or in combination with software instructions. Thus, embodiments are not limited to any specific combination of hardware circuitry and software.
  • the apparatus 80 includes at least one computer readable medium 1001 or memory for holding instructions programmed according to the teachings of the invention and for containing data structures, tables, records, or other data described herein.
  • Examples of computer readable media are compact discs, hard disks, floppy disks, tape, magneto-optical disks, PROMs (EPROM, EEPROM, flash EPROM), DRAM, SRAM, SDRAM, or any other magnetic medium, compact discs (e.g., CD-ROM), or any other medium from which a computer can read.
  • the present invention includes software for controlling the apparatus 80, for driving a device or devices for implementing the invention, and for enabling the apparatus 80 to interact with a human user.
  • software may include, but is not limited to, device drivers, operating systems, development tools, and applications software.
  • Such computer readable media further includes the computer program product of the present invention for performing all or a portion (if processing is distributed) of the processing performed in implementing the invention.
  • the computer code elements on the medium of the present invention may be any interpretable or executable code mechanism, including but not limited to scripts, interpretable programs, dynamic link libraries (DLLs), Java classes, and complete executable programs. Moreover, parts of the processing of the present invention may be distributed for better performance, reliability, and/or cost.
  • Non-volatile media includes, for example, optical, magnetic disks, and magneto- optical disks, such as the mass storage 1002 or the removable media 1001.
  • Volatile media includes dynamic memory, such as the memory unit 1003.
  • Various forms of computer readable media may be involved in carrying out one or more sequences of one or more instructions to the CPU 1004 for execution.
  • the instructions may initially be carried on a magnetic disk of a remote computer.
  • An input coupled to the bus B can receive the data and place the data on the bus B.
  • the bus B carries the data to the memory unit 1003, from which the CPU 1004 retrieves and executes the instructions.
  • the instructions received by the memory unit 1003 may optionally be stored on mass storage 1002 either before or after execution by the CPU 1004.
  • the apparatus 80 also includes a communication interface 1005 coupled to the bus B.
  • the communication interface 1004 provides a two-way data communication coupling to a network that is connected to, for example, a local area network (LAN), or to another communications network such as the Internet.
  • the communication interface 1005 may be a network interface card to attach to any packet switched LAN.
  • the communication interface 1005 may be an asymmetrical digital subscriber line (ADSL) card, an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of communications line.
  • Wireless links may also be implemented.
  • the communication interface 1005 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
  • the network typically provides data communication through one or more networks to other data devices.
  • the network may provide a connection to another computer through a local network (e.g., a LAN) or through equipment operated by a service provider, which provides communication services through a communications network.
  • the local network and the communications network use, for example, electrical, electromagnetic, or optical signals that carry digital data streams, and the associated physical layer (e.g., CAT 5 cable, coaxial cable, optical fiber, etc).
  • the network may provide a connection to a mobile device such as a personal digital assistant (PDA) laptop computer, or cellular telephone.
  • PDA personal digital assistant

Abstract

There is disclosed a method using a data content brokering apparatus (80) to provide access to downloaded data content (120) by other means than via a user device (140). The method includes receiving a first request (100) from the user device (140) and in response to the first request, transmitting a second request (110) to the server (130). The method further includes receiving a response from the server (130), receiving the data content (120) from one or more sources of data content (20) and selecting at least one target device (150) to which the data content (120) is downloadable. Furthermore, the method includes redirecting, at the data content brokering apparatus (80), the data content (120) to the at least one target device (150) to which said data content (120) is downloadable thereby providing access to the data content (120) by other means than via the user device (140).

Description

CONTENT BROKERING SYSTEM
Field of the invention
The present invention relates to data content brokering systems. Moreover, the invention also concerns methods of brokering data content in such data content brokering systems. Furthermore, the invention relates to software products recorded on data carriers and executable on computing hardware for implementing such methods using such computing hardware.
Background of the invention
In contemporary situations where data content is consumed by users, the data content is potentially consumed in many different ways by the users, and the data content potentially derives from many different sources. There thereby arises a technical problem of how to manage receipt of data content and how to ensure the data content is presented to the users on their preferred mode of presentation. As data content may be requested from many different user devices, there also arises a technical problem of how to manage requests for data content from the user devices.
Summary of the invention
According to a first aspect of the invention, there is provided a method of using a data content brokering apparatus (80) to provide access to downloaded data content (120) by other means than via a user device (140). The method includes a step of receiving a first request (100) from the user device (140), the first request identifying data content (120) and at least one server (130) comprising content data access information being indicative of a manner of accessing the data content (120). The method further includes, in response to the first request, the step of transmitting a second request (110) to the server (130), the second request (110) identifying the data content (120) and the step of receiving a response from the server (130). Also included in the method is the step of receiving the data content (120) from one or more sources of data content (20) and based on at least one of: the received first request (100), the received response, and the received data content (120), the step of selecting at least one target device (150) to which the data content (120) is downloadable. Finally, the step includes the step of redirecting, using the content brokering apparatus (80), the data content (120) to the at least one target device (150) to which the data content (120) is downloadable, the at least one target device (150) being a different device from the user device (140), thereby providing access to the data content (120) by other means than via the user device (140).
Optionally, the step of transmitting of the second request (110) comprises forwarding those parts of the first request that identify the data content (120) and the at least one server (130).
Optionally, the forwarding comprises using the same communication protocols as used by the first request.
Optionally, the method further includes transmitting a notification (160) to the user device (140) after reception of the first request (100).
Optionally, the step of transmitting a notification (160) further includes modifying metadata included in the response and associated with the data content (120), and transmitting the modified response to the user device (140).
Optionally, the notification (160) is transmitted using a communication session established by the first request (100), thereby causing the user device (140) to process the notification (160) as if it was a response from the server (130) to the first request (100).
Optionally, the method includes a step of transcoding a portion of the data content (120), the transcoded portion being of a format suitable for decoding at the user device (140) and of a size that is significantly smaller than the size of the data content (120) and a step of including the transcoded portion in the notification (160), the step of modifying including replacing metadata of the response, indicating the size and format of the data content (120), with the size and format of the transcoded portion.
Optionally, the method includes a step of generating a response based on a template stored in the content brokering apparatus (80) and a step of including status information associated with the data content (120) into the generated response, the transmission of the notification (160) comprises transmitting the generated response to the user device (140). Optionally, the method further includes a step of generating a response based on a template stored in the content brokering apparatus (80) and a step of including status information associated with the data content (120) into the generated response, the transmission of the notification (160) comprising transmitting the generated response to the user device (140).
Optionally, the notification (160) is transmitted upon fulfilment of one or more of the following conditions: when a time period measured from reception of the first request (100) reaches a limit defined in the content brokering apparatus (80); when the response from the server (130) has been at least partially received by the content brokering apparatus (80); and when the data content (120) has been at least partially downloaded to the at least one target device (150).
Optionally, the data content (120) is received in the response from the server (130) and wherein the server (130) comprises the one or more sources of data content (20).
Optionally, the method further includes selecting the at least one target device (150) among a set of a plurality of target devices (150a, 150b) whose identities are stored in the content brokering apparatus (80).
Optionally, the selection is made based on one or more of: (a) a metadata associated with the data content (120); (b) a file extension of the data content (120); and
(c) an identified address of the server (130) from which the data content (120) is available.
Optionally, the metadata, file extension and/or identified address are recognized by analyzing the received first request (100).
Optionally, the metadata, file extension and/or identified address are recognized by analyzing the received response.
Optionally, the metadata are recognized by analyzing the received data content (120). Optionally, the method further includes selecting the target device based on configuration rules obtained from a configuration server external to the content brokering apparatus (80).
Optionally, the request (100) further includes an identification of the target device (150) and the redirection being performed on the basis of the received identification.
Optionally, the method further includes selecting the target device based on at least one additional parameter included in the first request (100), wherein the at least one parameter is excluded from the second request before transmission to the server (130).
Optionally, the method further includes the step of downloading, from the server (130), the content data access information, the step of configuring the content brokering apparatus (80) to initiate a peer-to-peer transfer of the data content (120) based on the content data access information, and the step of receiving the data content (120) from one or more additional content brokering apparatus (80, 20) operates as peers to the content brokering apparatus (80) in a peer-to-peer network.
Optionally, the redirection of the content (120) by the brokering apparatus (80) occurs without intervention by the user (40).
Optionally, the content brokering apparatus (80) redirects the data content provided from the server (130) in real-time.
Optionally, the user device is selected from the set of: (a) a mobile phone;
(b) a personal computer (PC);
(c) a laptop computer;
(d) a personal digital assistant (PDA) or palm-top computer;
(e) a Set-Top-Box; and (f) a game console.
According to another aspect of the invention, there is provided a set-top box (500) including a content brokering apparatus (80), where the content brokering apparatus (80) is operable to implement a method of using a data content brokering apparatus (80) to provide access to downloaded data content (120) by other means than via a user device (140). According to another aspect of the invention, there is provided a machine-readable data- carrying medium including software code stored thereon, the software code being executable upon computing hardware (80) for implementing a method of using a data content brokering apparatus (80) to provide access to downloaded data content (120) by other means than via a user device (140).
According to another aspect of the invention, there is provided a method of using a data content brokering apparatus (80) to provide access to downloaded data content (120) by other means than via a user device (140). The method includes a step of receiving a first request (100) from the user device (140), the first request identifying data content (120) and at least one server (130) comprising content data access information being indicative of a manner of accessing the data content (120). Further, the method includes the step of, in response to the first request, transmitting a second request (110) to the server (130), the second request (1 10) identifying the data content (120) and the step of receiving a response from the server (130). Also included in the method are the steps of receiving the data content (120) from one or more sources of data content (20) and, based on at least one of: the received first request (100), the received response, and the received data content (120), selecting at least one target device (150) to which the data content (120) is downloadable. Further the method includes the step of redirecting, using the content brokering apparatus (80), the data content (120) to the at least one target device (150) to which the data content (120) is downloadable, the at least one target device (150) being a different device from the user device (140), thereby providing access to the data content (120) by other means than via the user device (140) and the step of transmitting a notification (160) to the user device (140) after reception of the first request (100). In addition, the data content (120) is received in the response from the server (130), the server (130) comprises the one or more sources of data content (20) and the selection is made based on one or more of: (a) a metadata associated with the data content (120), (b) a file extension of the data content (120) and (c) an identified address of the server (130) from which the data content (120) is available. Furthermore the metadata, file extension and/or identified address are recognized by analyzing the received first request (100) and the content brokering apparatus (80) redirects the data content provided from the server (130) in real-time. Finally, the user device is selected from the set of: (a) a mobile phone, (b) a personal computer (PC), (c) a laptop computer, (d) a personal digital assistant (PDA) or palm-top computer, (e) a Set-Top-Box and (f) a game console.
According to another aspect of the invention, there is provided a data content brokering apparatus (80). The apparatus includes a first reception unit that receives a first request (100) from a user device (140), the first request identifying data content (120) and at least one server (130) comprising content data access information being indicative of a manner of accessing the data content (120) and a transmission unit that, in response to the first request, generates and transmit a second request (110) to a server (130) identified in the first request, the second request (110) identifying the data content (120). Also included in the apparatus are a second reception unit that receives a response from the server (130) and the data content (120) from one or more sources of data content (20) and a selection unit that selects at least one target device (150) to which the data content (120) is downloadable and to redirect the data content (120) to the selected at least one target device (150), the at least one target device (150) being a different device from the user device (140), thereby providing access to the data content (120) by other means than via the user device (140).
It will be appreciated that features of the invention are susceptible to being combined in any combination without departing from the scope of the invention as defined by the accompanying claims.
Description of the diagrams
Embodiments of the present invention will now be described, by way of example only, with reference to the following diagrams wherein:
Figure 1 is an illustration of a first configuration of a data content brokering system pursuant to the present invention;
Figure 2 is a block diagram illustrating an embodiment of the present invention;
Figure 3 is a block diagram illustrating another embodiment of the present invention;
Figure 4 is an illustration of a second configuration of a data content brokering system pursuant to the present invention;
Figure 5 is an illustration of a third configuration of a data content brokering system pursuant to the present invention;
Figure 6 is an illustration of a set-top box implementation of a data content brokering system pursuant to the present invention; Figure 7 is a block diagram illustrating another embodiment of the present invention;
Figure 8 is a flow diagram corresponding to an embodiment of the present invention; and
Figure 9 is a block diagram illustrating an exemplary structure of a server according to an embodiment of the present invention.
Description of embodiments of the invention
Referring to Figure 1 , there is shown a data content brokering system indicated generally by 10. The system 10 is communicatively connectable to a data content provider system indicated generally by 30. The content provider system 30 is coupled to one or more sources of data content denoted by 20. The one or more sources of data content 20 external to the data content brokering apparatus 80 and which include at least one of:
(a) the Internet or one or more telecommunications networks operable to stream data content and/or provide data content as data files to the system 10;
(b) physical data carriers such as optical data discs, magnetic data discs, solid state memory chips.
The data content provider system 30 may include more than one server computer 30a and 30b as is shown in Figures 2 and 3. Moreover, the content server 130 and the sources of data content 20 can be included on any one of the servers 30a and 30b.
The system 10 itself is optionally established at one physical location, for example at a home of a user 40. Alternatively, the system 10 is spread between several locations. The system 10 includes a data content brokering apparatus 80, for example implemented in a server computer or in a Set-Top-Box (STB), or in a combination of the server computer and the Set-Top-Box. Optionally, the server computer is a regular desktop computer, a home media server computer, a router device, a home gateway device. Optionally, the server computer is part of a Gateway GPRS Support Node (GGSN) of a GPRS (General Packet Radio Service) network, an Access Service Network Gateway (ASN-GW) of a WiMAX network, or a Serving Gateway (SGW) of an LTE network. Having the server computer incorporated into the GGSN, ASN-GW or SGW allows the user to redirect content to a device present in the home network even when content requests are issued from another operator's network, for example in order to avoid incurring data roaming fees when downloading the requested content. The brokering apparatus 80 hosted on the GGSN (ASN-GW, GSW) may also be accessed via a Web interface. In order to have the server be part of the GGSN, however, a target device 150 must become known to the GGSN (ASN-GW, GSW). This can be done directly by giving the target device a fixed address, relying on the addressing and routing functionalities provided by the GPRS core network (or 3G, LTE respectively) when the user device is directly connected to the operator's network (for example having a GPRS/3G/LTE modem and SIM card) or by using an ad-hoc notification protocol such as XMPP (Extensible Messaging and Presence Protocol, a.k.a. "Jabber" protocol). Those skilled in the art will realise that there are many ways by which a GGSN (ASN-GW, GSW) server could discover the target device 150. Thus the target device 150 can either be on the GPRS network or on an external network.
As is shown in Figure 2, the data content brokering apparatus 80 may include a packet inspecting router 85 which includes mainly three components:
(a) a data traffic analyzer 86, configured to analyze at least one of: - an incoming request 100 from a user device 140;
- an incoming response from at least one server 130; and
- incoming data content 120 from one or more sources of data content 20;
(b) a target device selector 87, configured to based on at least one of: the analyzed request, the analyzed response and the analyzed data content 120, select at least one target device 150 to which the data content 120 is downloadable; and
(c) a content redirector 88, configured to redirect using the content brokering apparatus 80 the data content 120 to the selected at least one target device 150.
The data content brokering apparatus 80 comprises a response generator 89 configured to generate responses (e.g. notification 160) to the user device 140, for example to proactively stop the user device 140 from waiting for a response from the at least one server 130.
It will be appreciated by those skilled in the art that the data traffic analyzer 86, target device selector 87, content redirector 88, and response generator 89 are logical components meant to simplify understanding of the disclosure, and are not necessarily separate software or physical components. However, it should also be noted that these elements may be implemented using computer hardware including elements such as a CPU, memory, etc, where the CPU is configured to implement the functions of these elements.
The purpose of the data traffic analyzer 86 is to detect one or more relevant parts of an incoming request 100, an incoming response and/or incoming data content 120. For an incoming request 100, relevant parts can for example be those parts that identify data content 120 and at least one server 130. In an embodiment, these parts are detected in the same layer of the contemporary Open Systems Interconnection Basic Reference Model, namely OSI model. For example, the relevant parts can be an RFC 2616 compatible HTTP/1.1 GET command with a path and a Host request-header that are jointly identifying the data content and the server. The skilled person will realise that there is not necessarily a 1-1 relation between the path and the content, and between the Host request-header and the server, respectively. For example, the path "/jazz/song 1.mp3" and the host "music.contentprovider.com" can at the server 130 be translated to "www.contentprovider.com/music/jazz/song1. mp3". In an embodiment, relevant parts of an incoming request 100 can be acquired from two or more different layers of the OSI model. For example, the traffic analyzer 86 may acquire a content identity from an HTTP/1.0 GET command at the application layer of the incoming request 100 containing e.g. the path "/content. mpg", and a server identity by acquiring the destination address from the network layer of the incoming request 100, for example from the Destination Address header field of one or more Internet Protocol (IP) packets that together form the incoming request 100. In an embodiment, the server is identified by a combination of the Destination Address header field of an IP packet and a Destination port field of a Transmission Control Protocol (TCP) segment header included in the Data field of the IP packet. Again, the skilled reader will realise that the same combination may also partially or entirely identify content, for example by identifying a particular Internet radio or Internet TV channel.
In an embodiment, the incoming request 100 which is received at the data content brokering apparatus 80 from the user device 140 is processed before being forwarded to the server 30/130. For example, the data content brokering apparatus 80 may only forward a part of the request 100 to the server 30/130 as request 110. For instance, a HTTP request originating from the user device 140 will likely contain more information then just
"GET" and "Host" fields, such as, for example, "User-agent" or "Accept" fields. These fields may be removed by the data content brokering apparatus 80 such that the request 110 sent to the server 30/130 is only part of the information received in the request 100. In addition, requests 100 and 110 may correspond to two different TCP sessions, one with the incoming HTTP request 100 and the other with the "forwarded" HTTP request 110. Therefore "part" of the incoming request (the HTTP data) 100 is forwarded while other parts (the TCP session data) are not forwarded in request 110.
In an embodiment, a relevant part of an incoming response from the server 130 is an RFC 2616 compliant Content-Type entity-header field indicating the Internet media type, also called Multipurpose Internet Mail Extension (MIME) media type, of the entity-body being returned in the response from the server 130. There are many examples of Internet media types. For example, the Content-Type field may comprise the text "video/mpeg", thereby indicating that the response from the server 130 comprises a video in an MPEG format. This may in turn indicate that the response also comprises the requested data content 120, i.e. that the server 130 comprises the one or more sources of data content 20. In another example, the Content-Type field comprises the text "application/x-bittorrent", thereby indicating that the response from the server 130 comprises a BitTorrent metadata file. This may be an indication that the server 130 does not comprise the one or more sources of data content 20, but rather that these sources are to be found via a swarm discovery server identified by the metadata file. In another embodiment, a relevant part of an incoming response from the server 130 is an RFC 2616 compliant Content-Length entity-header field indicating the size of the entity-body being returned in the response from the server 130. A large size indicates that the response from the server likely comprises data content 120, which may need to be redirected to the at least one target device 150. In an embodiment, relevant parts of an incoming response from the server 130 can be acquired from different layers of the OSI model. For example, the traffic analyzer 86 may acquire an RFC 2616 compliant Content-Type entity-header at the application layer of the incoming response as exemplified above, and a server identity by acquiring the source address from the network layer of the incoming response, for example from the Source Address header field of one or more Internet Protocol (IP) packets that together form the incoming response from the server 130.
In an embodiment, a relevant part of incoming data content 120 from one or more sources of data content 20 is metadata included at one or more positions in the data content 120. For example, the metadata may be a four-character code byte sequence at or near the beginning of the data content 120 that identifies the type of data content, such as "MP4V" for identifying an MPEG-4 video or "MJPG" for a Motion JPEG video. In another example, the data content 120 may comprise an Ogg transport bit stream comprising Ogg pages, each page identified by metadata comprising a four-character "OggS" capture pattern. In yet another example, the data content 120 may be sound encoded according to the MP3 standard, the metadata being an ID3 tag identifying the encoded sound. Those skilled in the art will realise that there are many examples of identifying relevant parts of incoming data without having to inspect the entire data content 120.
The detected one or more relevant parts of an incoming request 100, an incoming response and/or incoming data content 120, are used by the data content brokering apparatus 80 to trigger the execution of one or more configuration rules. In an embodiment, configuration rules are stored in the data content brokering apparatus 80. In another embodiment, configuration rules are alternatively or in addition obtained from a configuration server external to the data content brokering apparatus 80.
The triggering of configuration rules may involve the target device selector 87 selecting at least one target device 150 to which the data content 120 is downloadable. An example of such a rule can be:
if http_response. Content-Type == "video/mpeg" then content.destination = "192.168.2.15" end
The IP address "192.168.2.15" identifying for example a network storage device or an Internet-enabled TV capable of playing MPEG-formatted video content.
In an embodiment, the selection of at least one target device 150 triggers the content redirector 88 to redirect the data content 120 received from the server 130 and/or from one or more sources of data content 20 to the selected at least one target device 150, thereby enabling the user 40 to access the data content 120 by other means than via the user device 140. In an embodiment, the data content 120 is redirected in its full size to the at least one target device 150. In other embodiments, only a part of the data content 120 is redirected to the at least one target device 150, the part being at least 50% the size of the original data content 120 but still capable of being experienced by the user 40 from the at least one target device 150 as if the part was similar to the original data content 120 or at least a close derivative work of the data content 120. For example, if the data content brokering apparatus 80 is capable of excluding advertisements from the data content 120, the part redirected to the at least one target device 150 can be the data content 120 without its advertisements. In an embodiment, the data traffic analyzer 86, target device selector 87 and the content redirector 88 are implemented as matching filters of a software router and as corresponding routing rules for the software router together with the software router itself. An example of such a router is iptables, found at http://www.netfilter.org. More specifically, the identification or relevant parts as exemplified above may be implemented using network layer, transport layer and/or application layer matching functionality of the software router and configuration rules used to select at least one target device 150 may at least in part be implemented by configuring chain rules for the software router. Furthermore, each target device 150 may be assigned a virtual network interface at the data content brokering apparatus 80 to which the software router forwards data content 120 based on the configured rules. These virtual network interfaces may further be linked to network drivers, communication protocol translators and/or other software adapted to communicate with each particular target device 150.
In an embodiment, the response generator 89 generates a response for transmission to the user device 140. This is useful because a Web client at the user device 140 may be waiting for a response from the server 130 to which it sent the request via the data content brokering apparatus 80, and typically it will only stop waiting either from a user interruption, a timeout at the Web client, or from a response to the request 100. Therefore, an effective way of stopping the Web client from waiting for a response to the request 100 is to transmit a notification 160 to the user device 140 as if it was a response from the server 130 to the first request 100. Optionally, such a notification 160 is transmitted using the same communication session as the one established by the first request 100. An example of such a communication session is a TCP session initiated when the user device 140 transmits a first request 100 over TCP, for example comprising an RFC 2616 compatible HTTP/1.1 GET command as exemplified above.
The response generator 89 can generate a response to the user device 140 for example in response to the incoming request 100, the incoming response from the server 130, or the incoming data content 120. In an embodiment, the response is generated within a time period measured from reception of the first request 100 by the content brokering apparatus 80. In an embodiment, the response is generated when the response from the server 130 has been at least partially received by the content brokering apparatus 80. In an embodiment, the response is generated when the data content 120 has been at least partially downloaded to the at least one target device 150. In an embodiment, the response to the user device 140 comprises metadata copied from an HTTP response header of the response from the server 130, but not the data content 120 of the response body. This can however be suboptimal, because the Web client at the user device 140 may continue to wait until it receives a response body of the same size as indicated in the Content-Length entity-header field returned in the response header. In another embodiment, the response sent from the server 130 to the data content brokering apparatus 80 is modified by the response generator 89 before the modified response is transmitted from the data content brokering apparatus 80 to the user device 140. For example, the response generator 89 can override any metadata received in the response from the server 130 indicating the size of the response body, such as the Content-Length entity-header field of an HTTP response header, to zero and also exclude the body from the response so that the user device 140 receives a response that stops it from waiting for the data content 120. In an embodiment, the response generator 89 comprises a transcoder that converts a portion of the data content 120 to a format that is suitable for decoding at the user device 140. The transcoded portion is preferably of a size that is significantly smaller than the size of the data content 120, for example at least 75% smaller size, and more optionally 90% smaller size. The transcoded portion is then included in the notification. Also, the metadata indicating the size of the data content 120 is preferably also modified accordingly in the response generated by the response generator 89 to correspond with the size of the transcoded portion. Optionally, the metadata indicating the format of the data content 120 is modified in a corresponding way as well.
In yet another embodiment, the response to the user device 140 is generated by the response generator 89 from a template. As shown in Figure 2, the template is optionally stored in the content brokering apparatus 80. The response generator 89 may optionally include status information into the generated response, indicating for example:
- whether or how much of the data content 120 is successfully received by the content brokering apparatus 80;
- whether or how much of the data content 120 is successfully sent to the selected at least one target device 150;
- whether the server 130 or other sources of data content 20 are reliable sources, for example whether all the data content 120 is obtainable from them or only parts of it;
- integrity of the data content 120, for example in the form of a status report over the successful retrieval of a public cryptographic key by the content brokering apparatus 80 and the successful use of the key to check the integrity of the data content 120. Optionally, the response generator 89 inserts metadata in the response that asks the user device 140 to issue another request, for example within a predefined period of time. This can be useful in order for the user device 140 to receive updates to the status information. Such metadata can be inserted either in the response header or in the response body. An example of metadata inserted into the response header is a Refresh entity-header field, which although is not mentioned in RFC 2616, is supported by Mozilla® and Internet Explorer® Web browsers. Examples of metadata inserted into the response body are: an HTML meta tag included in the response body together with the (non-standard) Refresh attribute, for example <meta http-equiv=" refresh" content="10"> or - a Javascript function call, for example setTimeout("location.reload();", 10000), included in the response body.
The two above examples recommend the Web client to resend the first request 100 every 10 seconds, but the person skilled in the art will realise that the response generator 89 can ask the user device 140 to send requests for updates in other ways, and also that the response generator 89 can ask the user device 140 to ask for updates from a different server, for example a Web server integrated into the data content brokering apparatus 80.
Optionally, the event that triggers the response generation may be defined using a complex logical condition, for example also involving a time measured from the reception of the incoming request 100 by the data content brokering apparatus 80, or error codes received from the server 130, sources of data content 20, or one or more target devices 150. Optionally, the response generator 89 generates a response for transmission to the user device 140 when the response from the server 130 has been at least partially received by the content brokering apparatus 80, for example when an HTTP response header has been received.
In an example of the data content brokering apparatus 80 being implemented in a server computer 80a as shown in Figure 3, the server computer optionally comprises a proxy server 85 for implementing a method pursuant to the present invention. A benefit of using a proxy server 85 is that the proxy server is susceptible to being configured to function on the transport layer of the OSI model. Communication on the transport layer beneficially hides complexity from the user of whatever functionality the proxy server 85 is operable to provide. Similarly to the embodiment shown in Figure 2 in which the data content brokering apparatus 80 includes a packet inspecting router 85, in the embodiment illustrated in Figure 6, the proxy server 85 includes a data traffic analyser 86, a target device selector 87 and a content redirector 88. A user device 140 is optionally configured to use the proxy server 85 as a gateway to the Internet, so that, irrespective of which user device application running on the user device 140 tries to access the Internet, an associated connection would have to be routed via the proxy server. Such a configuration generally comprises configuring the user device 140 with an Internet Protocol (IP) address of the proxy server, a port number, and optionally a user name and a password. Alternatively, another form of authentication data may be used instead of the username and password. As an alternative to configuring the user device 140, a specific user device application can be configured to use the data content brokering apparatus 80 as a gateway to the Internet. A user device application is optionally susceptible to present a user interface that enables the user 40 to search for and select data content 120 obtainable from the one or more sources of data content 20. The user device application is optionally also susceptible to presenting meta-tagged text content downloaded from the Internet. According to some embodiments consistent with the principles of the invention, the user device application is optionally a Web browser or a Wireless Application Protocol (WAP) browser. Optionally, configuring the user device 140 or the user device application is performed by a network operator associated with the user device 140, to hide the complexity of setting up the proxy configuration from the user 40. Such a configuration can for example be performed using a suitable Over-The-Air (OTA) provisioning protocol. For example, the network operator is optionally able to upload such a configuration to the user device 140 in the form of a Short Message Service (SMS) message. Optionally, if the user device 140 is already configured to use an Internet proxy, the device 140 is susceptible to being configured to enable the method pursuant to the present invention.
Further, the user device can optionally be implemented using a set-top box 140b having a web client 145 which is controllable using a user device 140a which may be for example a remote control device or a device configured to perform a remote control function. The user device 140a may access the set-top box 140b through, for example a network, through wireless signals, through infrared signals, etc.
In the example of the data content brokering apparatus 80 being implemented in a server computer, the method of the present invention is optionally implemented using a Web server running on the server computer. A result of using a Web server is that the Web server is optionally susceptible to being established virtually on any location, including locations not under control of a network operator associated with the user device 140. A
Web server is optionally also configured to enable customization of the user interface enabling the user 40 to search for and select data content 120 obtainable from the one or more sources of data content 20. Such customization is optionally enabled by transmitting
Web pages 90 to the user device 140. Optionally, these Web pages 90, when interpreted by a Web browser of the user device 140, instruct the Web browser to also contact at least one additional server 130, and to present a mash-up of pages 60, 90 to the user 40; by "mash-up", it is envisaged a reorganisation of information content within the pages 60, 90. The user device 140 is optionally configured to use the Web server as a start page server to the Internet, so that when the user device 140 starts a Web browser, the browser connects to the Web server configured to enable the method pursuant to the present invention. Such a configuration usually comprises setting the Web server address in a configuration file of the Web browser. However, also in this example, an OTA provisioning protocol is optionally used to configure the start page server address.
In the example of the data content brokering apparatus 80 being a Set-Top-Box; the Set- Top-Box is optionally located in a convenient region of a home.
Optionally, the data content brokering apparatus 80 is also susceptible to include a Web server 95 for configuration purposes. This web server 95 can be included in the server 80a or alternatively in a separate server 80b. By connecting to such a configuration Web server
95, for example from the user device 140, the Web pages 90 may be presented to the user
40 that enable the user 40 to configure the Web proxy or Set-Top-Box. More specifically, the configuration web server 95 enables the user 40 to configure at least one of: the data traffic analyzer 86, the target device selector 87, and the content redirector 88. Optionally, the configuration web server 95 enables the user 40 to configure the response generator
89.
Optionally, the content brokering apparatus 80 can be configured to provide at least one of a searching service and a directory service to the user device 140. Alternatively, if the data content brokering apparatus 80 is a Set-Top-Box, the at least one of a searching service and a directory service is controllable via a user device 140, for example a remote control, and presentable results of the at least one of a searching service and a directory service are displayed at a display device, for example a television (TV).
Optionally, the user device 140 is portable. Moreover, the portable user device is optionally a mobile telephone or personal digital assistant (PDA).
In overview, the apparatus 80 of the system 10 is operable to employ a method of enabling a user 40 of a user device 140 to access downloaded data content 120 by other means than via the user device 140, wherein the method shown, for example, in Figure 8 includes steps of: (a) receiving a first request 100 from a user device 140, the first request 100 identifying data content 120 and at least one server 130 comprising content data access information being indicative of a manner of accessing the data content 120 (Shown in Figure 8 as a get content request sent from the user device 140 to the content brokering apparatus 80).
(b) in response to the first request, transmitting a second request 110 to the server 130, the second request 110 being based on the first request 100 and therefore also identifying the data content 120 (Shown in Figure 8 as sending a get content request to the server 30).
(c) receiving a response from the server 130, which for example may contain metadata associated with the data content 120 (Shown in Figure 8 as sending a response from the server 30 which includes a header comprising the metadata.)
(d) receiving the data content 120 from one or more sources of data content 20, for example at the apparatus 80; (Shown in Figure 8 as sending the content from the server 30 or from another source storing the data content).
(e) based on at least one of: the received first request, the received response, and the received data content 120, selecting at least one target device 150 to which the data content 120 is downloadable (Shown in Figure 8 as selecting a target device 150 using the content brokering apparatus 80).
(f) redirecting, using the apparatus 80 of the data content brokering system 10, the data content 120 to the at least one target device 150 (Shown in Figure 8 as sending the data content to the selected target device 150 using the content redirector 88 in response to the selection being received from the target device selector 87).
The target device 150 can be the same device or a different device from the user device 140. Preferably, the data content 120 is redirected to a different device than the user device 140. This enables the user 40 to access the data content 120 by other means than via the user device 140. When the target device 150 is a different device than the user device 140, the target device 150 receives the data content 120 without requesting the data content 120 from the target device 150, in other words the target device 150 receives the data content 120 without direct solicitation from the target device 150.
Optionally, when the data content 120 has been at least partially downloaded to the target device 150, a notification 160 is transmitted to the user device 140. The notification is sent from the apparatus 80 to the user device 140. Alternatively, the notification 160 is sent from the target device 150 via the brokering apparatus 80 to the user device 140. In Figure 1 , a simple situation is illustrated wherein the data content 120 is provided from a single server 130. However, in a more complex situation illustrated in Figure 4, wherein the data content 120 comprises first and second data content portions 120a, 120b provided from first and second servers 130a, 130b, respectively, a much more complex problem of administration and control of data content delivery arises. For example, the data content portion 120a is a video film with moving images and a sound track in English language, whereas the data content portion 120b is a text overlay into Norwegian for the video film which needs to be synchronized and overlaid onto the video film for presentation at the target device 150. Optionally, delivery of the first and second data content portions 120a, 120b has to be temporally coordinated on account of limited data storage capacity available at the target device 150. A special situation can arise when the first data content portion 120a is a real-time video conference hosted on the target device 150, wherein the second data content portion 120b is a simultaneous translation performed real-time into Norwegian. Such an implementation of the system 10 enables business people represented by the user 40 to arrange video conferences and arrange simultaneous translation as the second data content portion 120b hosted via the Internet. The simultaneous translation can be provided by human translators at remote locations or by real-time computer-based simultaneous translation facilities and associated computer executable advanced software products recorded on data carriers. Temporal synchronization between the first and second data content portions 120a, 120b can be achieved by the servers 130a, 130b being configured in mutual coordination for providing the content portions 120a, 120b to the target device 150 in an appropriately timely manner.
Alternatively, as illustrated in Figure 5, the user 40 invokes the user device 140 to instruct the servers 130a, 130b to send the data content portions 120a, 120b to the apparatus 80 for subsequent routing to first and second target devices 150a, 150b respectively, which then send their respective notifications 160a, 160b to the user device 140 for confirming successful receipt of the data content portions 120a, 120b thereat. Alternatively, the first and second target devices 150a, 150b send their notifications to the brokering apparatus 80 which subsequently notifies the user 40, for example via the user device 140.
For example, the target device 150a is a high-definition television requiring high-definition presentation of data content 120a in HDTV format with stereo and ambient sound channels together with a so-called surrounding-illumination "ambilight" channel, whereas the second target device 150b is a personal digital assistant (PDA) including a low-resolution liquid crystal display (LCD) screen with stereo audio outputs for headphones. The user 40 orders the data content portions 120a, 120b by selecting the data content portions 120a, 120b using the user device 140, which for example is implemented as a mobile telephone having short messaging service (SMS) and/or direct Internet browsing functionality. By submitting a request 100 identifying the data content portions 120a, 120b and at least one server 130a, 130b, the user 40 can then watch and thereby enjoy the data content in high quality on the high-definition television at home and also in lower quality when travelling to work by public transport. The data content portions 120a, 120b can, for example, comprise latest news reports to avoid a need for printed newspapers whose production is potentially costly and environmentally damaging. The notifications 160a, 160b enable the user 40 to be informed that the data content has been successfully delivered in response to the request 100 being sent by the user 40. Optionally, the notifications 160a, 160b are conveyed via the brokering apparatus 80.
A content portion 120 can be selected in various ways, for example by one or more of: (i) sending an SMS message from the user device 140 to the content brokering apparatus 80 via an SMS gateway, wherein the SMS message identifies the content portion 120 and at least one server 130; and
(ii) sending an Hypertext Transfer Protocol (HTTP) GET or HTTP POST message from the user device 140 to the content brokering apparatus 80, wherein the message identifies the content portion 120 and at least one server 130.
As described earlier, the apparatus 80 is optionally implemented within the Internet, for example as a Web portal or proxy server. Similarly, the user device 140 is optionally a terminal interface to the Internet so that the request 100 includes messages conveyed within the Internet from one Internet site to another thereof. Alternatively, at least one of the servers 130a, 130b, the apparatus 80 and the user device 140 are local to the home. The foregoing is also applicable when the home represents an office, cinema, ship, road vehicle or aircraft including a user-reconfigurable infotainment system. Moreover, the user device 140 and the apparatus 80 are optionally spatially located together in a data content resource terminal. Thus, optionally, the user device 140 and the apparatus 80 can be configured to form a data content brokering apparatus and the one or more target devices 150 functionally form a configuration of devices.
The aforesaid method steps (a) to (d) optionally include an additional step of selecting the one or more target devices 150 among a set of one or more target devices whose identities are stored in the apparatus 80. More optionally, the selection is susceptible to being made based on one or more of: (i) metadata associated with the data content 120, for example a file extension, a file type, or a Multipurpose Internet Mail Extension (MIME) media type for the data content 120. In the file extension example, data content 120 with file names ending with ".mp3" are optionally routed via the apparatus 80 to the target device 150a for playing music, whereas data content 120 with file names ending with ".mpg" are routed via the apparatus 80 to the target device 150b for playing movies. In the file size example, data content 120 smaller than a certain file size are optionally routed via the apparatus 80 to the target device 150a, whereas data content 120 larger than a certain file size are via the apparatus 80 to the target device 150b; (ii) metadata included in the data content 120, for example programme listings or programme indexes useable for data content searching and navigation purposes; and
(iii) one or more identified addresses of the one or more servers 130a, 130b from which the data content 120 is available.
When implementing the aforesaid method in the system 10, the request 100 optionally further includes an identification of the one ore more target devices 150a, 150b and the redirection within the apparatus 80 is performed on the basis of the identification being subsequently received at the apparatus 80. By adopting such an approach, the data content 120 itself is able to control the apparatus 80 to determine to which target device 150 the data content 120, or a portion thereof, is automatically routed or otherwise directed.
The system 10 is itself optionally capable of functioning, at least partially, in a manner of one or more of the servers 130a, 130b for further distributing the data content 120 in a peer-to-peer manner. Thus, the aforementioned method in steps (a) to (d) optionally includes a step of configuring the content brokering apparatus 80 to initiate an aforementioned peer-to-peer transfer of the data content 120, and receiving said data content from one or more additional content brokering apparatus 80 configured to operate as peers to the content brokering apparatus 80 in a manner of a peer-to-peer network. The aforesaid method optionally therefore includes a step of the content brokering apparatus 80 configuring itself to operate as a part of a peer in the peer-to-peer network. Moreover, in order to provide for rapid data content searching, the aforesaid method optionally includes a step of configuring the content brokering apparatus 80 to provide at least one of a searching service and a directory service to the peer-to-peer network. Thus, the brokering apparatus 80 is optionally susceptible to configuring itself to operate as an uploading peer in the peer-to-peer network. The system 10 and its associated apparatus 80 are susceptible to being implemented in several different practical forms. For example, the system 10 and its apparatus 80 are susceptible to being implemented as a home media server 80a, as shown in Figure 7, and/or a Set-Top-Box (STB). According to an exemplary embodiment, message exchanges arising during operation of the system 10 are not all presented to the user 40 so that the user 40 perceives the system 10 to be transparent in use. Moreover, the aforesaid method optionally includes a step of encrypting and/or decrypting the data content 120 communicated between the content data brokering apparatus 80 and one or more of the servers 130a, 130b; such encryption is optionally based on public-private key encryption and decryption, wherein the public key is employed for encryption and the private key is employed selectively for performing decryption. However, other modes of encryption are also alternatively or additionally possible.
In respect of digital rights management (DRM) for example, the data content brokering apparatus 80 is optionally operable to preserve use rights associated with the defined data content 120, the use rights restricting access to the data content 120 based on at least one of: (a) a user identity of the user 40; (b) an identity of the one or more target devices 150 and/or the user device 140 to which the data content is downloaded, and a time period of validity for the data content 120; and
(c) authorized payment having been initiated by the user 40. Redirection of content 120 optionally occurs in the brokering apparatus 80 without interaction with the user 40.
According to an exemplary embodiment of the invention, for providing ease of use to the user 40, for example to obtain prompt responsiveness, the content brokering apparatus 80 is operable to receive the defined data content 120 from the one or more servers 130a, 130b and also redirect the defined data content 120 provided from the one or more servers 130 within an Internet session, without closing any connection or session between the user 40 device and the one or more servers 130a, 130b. Encryption and/or decryption is optionally performed for data communicated between the brokering apparatus 80 and the one or more servers 130a, 130b.
The user device 140 is optionally selected from a set of: (a) a mobile phone; (b) a personal computer (PC);
(c) a laptop computer;
(d) a Personal Digital Assistant (PDA) or similar palm-top computer;
(e) a Set-Top-Box; (f) a game console.
The system 10 is also optionally operable to function as a content brokering apparatus 80 for redirecting downloaded data, wherein the brokering apparatus 80 includes:
(a) a user device 140 which is operable to send a first request 100 identifying data content 120;
(b) at least one server 130a, 130b from which the data content 120 is available, the at least one server 130a, 130b being operable to provide the data content 120 in response to receiving said first request 100;
(c) the content brokering apparatus 80 being operable to based on at least one of: the first request, a response from the server 130a, 130b, and the received data content
120, select at least one target device 150a, 150b to which the data content 120 is downloadable, and redirect the data content 120 the at least one target device 150a, 150b, the one or more target devices 150a, 150b being a different device from the user device 140; and (d) the one or more target devices 150a, 150b being operable to at least partially download the data content 120, and optionally to transmit at least one notification 160a, 160b of the download of the data content 120 to the user device 140, the notification optionally being sent via the brokering apparatus 80.
Consistent with exemplary embodiments of the invention, the data content brokering apparatus 80 is optionally implemented as a Set-Top-Box 500 as illustrated in Figure 6. The Set-Top-Box 500 is optionally integrated into a television or similar. One or more of the user device 140, and apparatus 80 and the one or more target devices 150a, 150b optionally includes software code stored upon a machine-readable data medium, the software code being executable upon computing hardware for implementing aforementioned methods of brokering data content 120.
Although only two target devices 150a, 150b are shown in the accompanying diagrams, it will be appreciated that less than two such target devices or more than two such target devices are optionally also feasible pursuant to the present invention. Referring next to the at least one server 130, the at least one server 130 comprise content data access information which is optionally data representing a mapping between a Uniform Research Locator (URL) and a file system path; such a correspondence is contemporarily routinely used for Web servers. When configured with such mapping data, a Web server is able to translate a URL received in a request 110 from the content brokering apparatus 80, into a file system path accessible by the Web server. An example of such a contemporary Web server is the Apache® Web server as reported at an Internet Web-site: www.apache.org. For the present invention, a "mod_alias" module of the Apache Web server is capable of being configured with a mapping between a Uniform Resource Locator (URL) and a file system path by using a DocumentRoot directive and/or an Alias directive.
Content data access information is optionally data representing a mapping between a first URL and a second URL; such a mapping is conventionally employed in Web servers. When the content brokering apparatus 80 is configured to operate with such a Web server, the apparatus 80 is operable to send a first URL to the Web server which translates the first URL into a second corresponding URL. The second URL may be employed in at least two mutually different ways.
In one example embodiment of the present invention, the Web server is configured to function as a reverse proxy, namely the Web server, upon receiving a request 110 including a first URL from the content brokering apparatus 80, uses mapping data to translate the first URL into a second URL, and then transmits a subsequent request to a second server identified by the second URL, the second server being different from the Web server. The second URL optionally comprises a different protocol name identifying the protocol to be used in the subsequent request, for example the File Transfer Protocol (FTP). Upon reception of content data from the second server, the Web server then redirects the content data to the content brokering apparatus 80. An example of a Web server which is capable of functioning as a reverse proxy is the aforesaid Apache Web server. The mod_rewrite and mod-proxy Apache modules are susceptible to being configured with a mapping between a first URL and a second URL for such a purpose by using a RewhteRule directive and/or a ProxyPass directive.
In another example embodiment of the present invention, the Web server is configured, upon receiving a request 110 including a first URL from the content brokering apparatus
80, to use the mapping data to translate the first URL into the second URL, and then to transmit the second URL back to the content brokering apparatus 80. For example, the second URL may be attached to a hypertext transfer protocol (HTTP) response status code, for example:
HTTP/1.1 302 Found Location: http: //www. contentprovider. com/'content .mpg
Upon receiving such a response status code and a second URL, the content brokering apparatus 80 transmits a request to a server identified by the second URL. An example of a Web server being capable of instructing a content brokering apparatus to transmit a request to a second URL is the aforesaid Apache Web server. The mod_alias Apache module is susceptible to being configured with a mapping between a first URL and a second URL for such a purpose by using a Redirect directive.
Optionally, in a context of the present invention, content data access information may be a metadata file identifying parts of at least one data content file and at least one address of a swarm discovery server. In such an embodiment, the content brokering apparatus 80 transmits a request to a server hosting the metadata file and receives a metadata file in response. The server is optionally a Web server. The content brokering apparatus 80 then extracts the at least one address of a swarm discovery server, and then transmits a request to at least one swarm discovery server in order to obtain a peer list therefrom. The peer list, namely a form of address list, may then be used by the content brokering apparatus 80 to contact peers in a peer-to-peer network. A peer of such a peer-to-peer network is optionally another content brokering apparatus 80.
In an example of the present invention implemented in a peer-to-peer manner, the aforesaid metadata file is a torrent file, the swarm discovery server is a BitTorrent tracker, and data content is received from other peers in the peer-to-peer network by employing a contemporary BitTorrent protocol. In another related embodiment of the present invention, a peer list comprises at least one address of a peer configured to function as a swarm discovery server using a contemporary Distributed Hash Table (DHT) method, and the content brokering apparatus 80 is operable to utilize the same method in its communication with the at least one peer.
Depending on the implementation of the content brokering apparatus 80, redirection in "real-time" can mean that as soon as an at least a part of the content data 120 is received by the content brokering apparatus 80, the at least a part of the content data 120 is transmitted to a target device 150 within 1 millisecond, optionally within 10 milliseconds, more optionally within 50 milliseconds, yet more optionally within 100 milliseconds, yet more optionally within 500 milliseconds, yet more optionally within 1 second, yet more optionally within 30 seconds, yet more optionally within 1 minute, yet more optionally within 5 minutes, yet more optionally within 10 minutes. Other time periods are envisaged within the scope of the present invention.
Expressions such as "has", "is", "include", "comprise", "consist of, "incorporates" are to be construed to include additional components or items which are not specifically defined; namely, such terms are to be construed in a non-exclusive manner. Moreover, reference to the singular is also to be construed to also include the plural. Furthermore, numerals and other symbols included within parentheses in the accompanying claims are not to be construed to influence interpreted claim scope but merely assist in understanding the present invention when studying the claims.
Figure 9 illustrates the structure of, for example, the content brokering apparatus 80 according to an embodiment of the invention. The apparatus 80 includes a bus B or other communication mechanism for communicating information, and a processor/CPU 1004 coupled with the bus B for processing the information. The apparatus 80 also includes a main memory/memory unit 1003, such as a random access memory (RAM) or other dynamic storage device (e.g., dynamic RAM (DRAM), static RAM (SRAM), and synchronous DRAM (SDRAM)), coupled to the bus B for storing information and instructions to be executed by processor/CPU 1004. In addition, the memory unit 1003 may be used for storing temporary variables or other intermediate information during the execution of instructions by the CPU 1004. The apparatus 80 may also further include a read only memory (ROM) or other static storage device (e.g., programmable ROM (PROM), erasable PROM (EPROM), and electrically erasable PROM (EEPROM)) coupled to the bus B for storing static information and instructions for the CPU 1004. The apparatus 80 may also include a disk controller coupled to the bus B to control one or more storage devices for storing information and instructions, such as mass storage 1002, and drive device 1006 (e.g., floppy disk drive, read-only compact disc drive, read/write compact disc drive, compact disc jukebox, tape drive, and removable magneto-optical drive). The storage devices may be added to the apparatus 80 using an appropriate device interface (e.g., small computer system interface (SCSI), integrated device electronics (IDE), enhanced-IDE (E-IDE), direct memory access (DMA), or ultra-DMA).
The apparatus 80 may also include special purpose logic devices (e.g., application specific integrated circuits (ASICs)) or configurable logic devices (e.g., simple programmable logic devices (SPLDs), complex programmable logic devices (CPLDs), and field programmable gate arrays (FPGAs)).
The apparatus 80 may also include a display controller coupled to the bus B to control a display, such as a cathode ray tube (CRT), for displaying information to a computer user. The computer system includes input devices, such as a keyboard and a pointing device, for interacting with a computer user and providing information to the processor. The pointing device, for example, may be a mouse, a trackball, or a pointing stick for communicating direction information and command selections to the processor and for controlling cursor movement on the display. In addition, a printer may provide printed listings of data stored and/or generated by the computer system.
The apparatus 80 performs at least a portion of the processing steps of the invention in response to the CPU 1004 executing one or more sequences of one or more instructions contained in a memory, such as the memory unit 1003. Such instructions may be read into the memory unit from another computer readable medium, such as the mass storage 1002 or a removable media 1001. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in memory unit 1003. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions. Thus, embodiments are not limited to any specific combination of hardware circuitry and software. As stated above, the apparatus 80 includes at least one computer readable medium 1001 or memory for holding instructions programmed according to the teachings of the invention and for containing data structures, tables, records, or other data described herein. Examples of computer readable media are compact discs, hard disks, floppy disks, tape, magneto-optical disks, PROMs (EPROM, EEPROM, flash EPROM), DRAM, SRAM, SDRAM, or any other magnetic medium, compact discs (e.g., CD-ROM), or any other medium from which a computer can read.
Stored on any one or on a combination of computer readable media, the present invention includes software for controlling the apparatus 80, for driving a device or devices for implementing the invention, and for enabling the apparatus 80 to interact with a human user. Such software may include, but is not limited to, device drivers, operating systems, development tools, and applications software. Such computer readable media further includes the computer program product of the present invention for performing all or a portion (if processing is distributed) of the processing performed in implementing the invention. The computer code elements on the medium of the present invention may be any interpretable or executable code mechanism, including but not limited to scripts, interpretable programs, dynamic link libraries (DLLs), Java classes, and complete executable programs. Moreover, parts of the processing of the present invention may be distributed for better performance, reliability, and/or cost.
The term "computer readable medium" as used herein refers to any medium that participates in providing instructions to the CPU 1004 for execution. A computer readable medium may take many forms, including but not limited to, non-volatile media, and volatile media. Non-volatile media includes, for example, optical, magnetic disks, and magneto- optical disks, such as the mass storage 1002 or the removable media 1001. Volatile media includes dynamic memory, such as the memory unit 1003. Various forms of computer readable media may be involved in carrying out one or more sequences of one or more instructions to the CPU 1004 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. An input coupled to the bus B can receive the data and place the data on the bus B. The bus B carries the data to the memory unit 1003, from which the CPU 1004 retrieves and executes the instructions. The instructions received by the memory unit 1003 may optionally be stored on mass storage 1002 either before or after execution by the CPU 1004.
The apparatus 80 also includes a communication interface 1005 coupled to the bus B. The communication interface 1004 provides a two-way data communication coupling to a network that is connected to, for example, a local area network (LAN), or to another communications network such as the Internet. For example, the communication interface 1005 may be a network interface card to attach to any packet switched LAN. As another example, the communication interface 1005 may be an asymmetrical digital subscriber line (ADSL) card, an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of communications line. Wireless links may also be implemented. In any such implementation, the communication interface 1005 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
The network typically provides data communication through one or more networks to other data devices. For example, the network may provide a connection to another computer through a local network (e.g., a LAN) or through equipment operated by a service provider, which provides communication services through a communications network. The local network and the communications network use, for example, electrical, electromagnetic, or optical signals that carry digital data streams, and the associated physical layer (e.g., CAT 5 cable, coaxial cable, optical fiber, etc). Moreover, the network may provide a connection to a mobile device such as a personal digital assistant (PDA) laptop computer, or cellular telephone. Modifications to embodiments of the invention described in the foregoing are susceptible to being implemented without departing from the scope of the invention as defined by the appended claims.

Claims

1. A method of using a data content brokering apparatus (80) to provide access to downloaded data content (120) by other means than via a user device (140), the method comprising:
receiving a first request (100) from the user device (140), the first request identifying data content (120) and at least one server (130) comprising content data access information being indicative of a manner of accessing the data content (120);
in response to the first request, transmitting a second request (110) to the server (130), the second request (110) identifying the data content (120);
receiving a response from the server (130);
receiving the data content (120) from one or more sources of data content (20);
based on at least one of: the received first request (100), the received response, and the received data content (120), selecting at least one target device (150) to which the data content (120) is downloadable; and
redirecting, using the content brokering apparatus (80), the data content (120) to the at least one target device (150) to which said data content (120) is downloadable, said at least one target device (150) being a different device from said user device (140), thereby providing access to the data content (120) by other means than via the user device (140).
2. A method as claimed in claim 1 , wherein said transmitting of said second request (1 10) comprises forwarding those parts of said first request that identify said data content
(120) and said at least one server (130)
3. A method as claimed in claim 2, wherein said forwarding comprises using the same communication protocols as used by said first request.
4. A method as claimed in claim 1 , further comprising transmitting a notification (160) to said user device (140) after reception of said first request (100).
5. A method as claimed in claim 4, wherein said transmitting a notification (160) further comprises modifying metadata included in said response and associated with said data content (120), and transmitting the modified response to the user device (140).
6. A method as claimed in claim 5, wherein said notification (160) is transmitted using a communication session established by said first request (100), thereby causing said user device (140) to process said notification (160) as if it was a response from said server (130) to said first request (100).
7. A method as claimed in claim 6, further comprising:
transcoding a portion of said data content (120), the transcoded portion being of a format suitable for decoding at said user device (140) and of a size that is significantly smaller than the size of said data content (120);
including the transcoded portion in said notification (160);
wherein said modifying comprises replacing metadata of said response, indicating the size and format of said data content (120), with the size and format of the transcoded portion.
8. A method as claimed in claim 5, further comprising:
generating a response based on a template stored in said content brokering apparatus (80); and
including status information associated with said data content (120) into the generated response,
wherein said transmission of said notification (160) comprises transmitting the generated response to the user device (140).
9. A method as claimed in claim 4, wherein said notification (160) is transmitted upon fulfilment of one or more of the following conditions: - when a time period measured from reception of said first request (100) reaches a limit defined in said content brokering apparatus (80); when said response from said server (130) has been at least partially received by said content brokering apparatus (80); and when said data content (120) has been at least partially downloaded to said at least one target device (150).
10. A method according to claim 1 , wherein said data content (120) is received in said response from said server (130) and wherein said server (130) comprises said one or more sources of data content (20).
1 1. A method as claimed in claim 1 , wherein said method includes selecting said at least one target device (150) among a set of a plurality of target devices (150a, 150b) whose identities are stored in said content brokering apparatus (80).
12. A method as claimed in claim 1 , wherein said selection is made based on one or more of:
(a) a metadata associated with said data content (120);
(b) a file extension of said data content (120); and
(c) an identified address of said server (130) from which said data content (120) is available.
13. A method as claimed in claim 12, wherein said metadata, file extension and/or identified address are recognized by analyzing said received first request (100).
14. A method as claimed in claim 12, wherein said metadata, file extension and/or identified address are recognized by analyzing said received response.
15. A method as claimed in claim 12, wherein said metadata are recognized by analyzing said received data content (120).
16. A method as claimed in claim 1 , further comprising selecting said target device based on configuration rules obtained from a configuration server external to the content brokering apparatus (80).
17. A method as claimed in claim 1 , wherein said request (100) further includes an identification of said target device (150) and said redirection being performed on the basis of said received identification.
18. A method as claimed in claim 1 , further comprising selecting said target device based on at least one additional parameter included in said first request (100), wherein the at least one parameter is excluded from said second request before transmission to said server (130).
19. A method as claimed in claim 1 , wherein said method further includes downloading, from said server (130), said content data access information, configuring said content brokering apparatus (80) to initiate a peer-to-peer transfer of said data content (120) based on said content data access information, and receiving said data content (120) from one or more additional content brokering apparatus (80, 20) configured to operate as peers to said content brokering apparatus (80) in a peer-to-peer network.
20. A method as claimed in claim 1 , wherein redirection of said content (120) by said brokering apparatus (80) occurs without intervention by said user (40).
21. A method as claimed in claim 1 , wherein said content brokering apparatus (80) is configured to redirect said data content provided from said server (130) in real-time.
22. A method as claimed in claim 1 , wherein the user device is selected from the set of:
(a) a mobile phone;
(b) a personal computer (PC);
(c) a laptop computer;
(d) a personal digital assistant (PDA) or palm-top computer; (e) a Set-Top-Box; and
(f) a game console.
23. A set-top box (500) including a content brokering apparatus (80), wherein said content brokering apparatus (80) is operable to implement a method as claimed in claim 1.
24. A machine-readable data-carrying medium including software code stored thereon, said software code being executable upon computing hardware (80) for implementing a method as claimed in claim 1.
25. A method of using a data content brokering apparatus (80) to provide access to downloaded data content (120) by other means than via a user device (140), the method comprising: receiving a first request (100) from the user device (140), the first request identifying data content (120) and at least one server (130) comprising content data access information being indicative of a manner of accessing the data content (120); in response to the first request, transmitting a second request (110) to the server (130), the second request (110) identifying the data content (120); receiving a response from the server (130); receiving the data content (120) from one or more sources of data content (20); based on at least one of: the received first request (100), the received response, and the received data content (120), selecting at least one target device (150) to which the data content (120) is downloadable; redirecting, using the content brokering apparatus (80), the data content (120) to the at least one target device (150) to which said data content (120) is downloadable, said at least one target device (150) being a different device from said user device (140), thereby providing access to the data content (120) by other means than via the user device (140); transmitting a notification (160) to said user device (140) after reception of said first request (100), wherein said data content (120) is received in said response from said server (130), wherein said server (130) comprises said one or more sources of data content (20), wherein said selection is made based on one or more of:
(a) a metadata associated with said data content (120);
(b) a file extension of said data content (120); and
(c) an identified address of said server (130) from which said data content (120) is available, wherein said metadata, file extension and/or identified address are recognized by analyzing said received first request (100), wherein said content brokering apparatus (80) is configured to redirect said data content provided from said server (130) in real-time, and wherein the user device is selected from the set of: (a) a mobile phone; (b) a personal computer (PC);
(c) a laptop computer;
(d) a personal digital assistant (PDA) or palm-top computer;
(e) a Set-Top-Box; and
(f) a game console.
26. A data content brokering apparatus (80) comprising: a first reception unit configured to receive a first request (100) from a user device (140), the first request identifying data content (120) and at least one server (130) comprising content data access information being indicative of a manner of accessing the data content (120); a transmission unit configured to, in response to the first request, generate and transmit a second request (110) to a server (130) identified in the first request, the second request (1 10) identifying the data content (120) a second reception unit configured to receive a response from the server (130) and the data content (120) from one or more sources of data content (20); a selection unit configured to select at least one target device (150) to which the data content (120) is downloadable and to redirect the data content (120) to the selected at least one target device (150), said at least one target device (150) being a different device from said user device (140), thereby providing access to the data content (120) by other means than via the user device (140).
PCT/IB2009/007454 2008-11-03 2009-11-03 Content brokering system WO2010061262A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
NOPCT/NO2008/0000386 2008-11-03
PCT/NO2008/000386 WO2010050817A1 (en) 2008-11-03 2008-11-03 Content brokering system

Publications (2)

Publication Number Publication Date
WO2010061262A2 true WO2010061262A2 (en) 2010-06-03
WO2010061262A3 WO2010061262A3 (en) 2010-07-22

Family

ID=40433673

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/NO2008/000386 WO2010050817A1 (en) 2008-11-03 2008-11-03 Content brokering system
PCT/IB2009/007454 WO2010061262A2 (en) 2008-11-03 2009-11-03 Content brokering system

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/NO2008/000386 WO2010050817A1 (en) 2008-11-03 2008-11-03 Content brokering system

Country Status (1)

Country Link
WO (2) WO2010050817A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11895066B2 (en) * 2022-02-02 2024-02-06 T-Mobile Innovations Llc Real-time chat service file transfer across different networks

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040225728A1 (en) * 2003-05-05 2004-11-11 Huggins Guy Dwayne Network and communications system for streaming media applications
US8285851B2 (en) * 2007-01-08 2012-10-09 Apple Inc. Pairing a media server and a media client
US8418206B2 (en) * 2007-03-22 2013-04-09 United Video Properties, Inc. User defined rules for assigning destinations of content

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
None

Also Published As

Publication number Publication date
WO2010061262A3 (en) 2010-07-22
WO2010050817A1 (en) 2010-05-06

Similar Documents

Publication Publication Date Title
US11570234B2 (en) Connected-media end user experience using an overlay network
US20210006404A1 (en) Systems and methods for accessing and controlling media stored remotely
Kesavan et al. An investigation on adaptive HTTP media streaming Quality-of-Experience (QoE) and agility using cloud media services
US8595319B2 (en) Home network video peer-to-peer for mobile devices
RU2647654C2 (en) System and method of delivering audio-visual content to client device
US8817983B2 (en) Streaming video to cellular phones
US10812598B2 (en) Unified, browser-based enterprise collaboration platform
US9172594B1 (en) IPv6 to web architecture
US20170041422A1 (en) Method and system for retrieving a content manifest in a network
WO2014154108A1 (en) Media stream transfer method and user equipment
WO2012126964A1 (en) Method and system for providing media optimization
WO2016074149A1 (en) Expedited media content delivery
KR20210056180A (en) Method and apparatus for providing web service using edge computing service
WO2010061262A2 (en) Content brokering system
AU2014233547B2 (en) Systems and methods for accessing and controlling media stored remotely
AU2013270565B2 (en) Systems and methods for accessing and controlling media stored remotely
CN116018794A (en) HTTP-based media streaming service using segmented MP4

Legal Events

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

Ref document number: 09803899

Country of ref document: EP

Kind code of ref document: A2

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09803899

Country of ref document: EP

Kind code of ref document: A2