Dynamic polling control for content distribution

Abstract
The invention allows controlling content distribution polling dynamically. A predetermined event is detected. In response, client-specific polling instants are determined in order to arrange the client-specific polling instants into polling time slots, wherein each polling time slot has no more than a predetermined maximum amount of polling instants. The determined client-specific polling instants are then sent to their respective clients.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are included to provide a further understanding of the invention and constitute a part of this specification, illustrate embodiments of the invention and together with the description help to explain the principles of the invention. In the drawings:



FIG. 1 is a content distribution system according to an embodiment of the present invention;



FIG. 2 is a flow diagram illustrating a method according to an embodiment of the present invention;



FIG. 3
a illustrates randomly distributed polling instants of prior art; and



FIG. 3
b illustrates more uniformly distributed polling instants of the present invention.





DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Reference will now be made in detail to the embodiments of the invention, examples of which are illustrated in the accompanying drawings.



FIG. 1 illustrates a content distribution system according to an embodiment of the present invention. The content distribution system of FIG. 1 comprises client terminal devices 110, 120, 130. In the embodiment illustrated in FIG. 1 the client terminal devices 110, 120, 130 are mobile telecommunication devices. The client terminal device 110 is connected to Internet 140 via a General Packet Radio Service (GPRS) connection 141. The client terminal device 120 is connected to Internet 140 via an Enhanced Data rates for GSM Evolution (EDGE) connection 142. The client terminal device 130 is connected to Internet 140 via a Wideband Code Division Multiple Access (WCDMA) connection 143. However, it is to be understood that other wireless access systems may be used instead of the GPRS, EDGE and WCDMA wireless access systems illustrated in FIG. 1.


The content distribution system of FIG. 1 further comprises a server 150. The server 150 is configured to provide content distribution services to the multiple client terminal devices 110, 120, 130. The term “content distribution” is used to refer to a service in which content, e.g. multimedia content, is periodically downloaded to multiple clients automatically, i.e. without any interaction required from users. Typically, content distribution is subscription based, i.e. a user subscribes to a set of services for a given subscription period, e.g. 30 days, and all the content associated with the subscribed set of services is automatically delivered to a client terminal device of the user during the subscription period. The client terminal device of the content distribution system polls the content distribution server periodically (ranging typically from once in every fifteen minutes to once in every two hours) in order to find out if there is new downloadable content. Often, a polling window is also assigned to each client terminal device of the content distribution system which polling window indicates a time period (typically at night time when traffic is slow, e.g. 1 a.m. to 6 a.m.) when the client terminal device may poll the content distribution server. After the client terminal device has finished downloading the content—e.g. next morning—the user may view or otherwise utilize the downloaded content at leisure.


Each client terminal device 110, 120, 130 comprises a polling request sender 111, 121, 131, respectively. Each of the polling request senders 111, 121, 131 is configured to send polling request messages querying about status of downloadable content. The polling request messages are sent at polling instants which are specific to each client terminal device. For example, the polling request sender 111 is configured to send its polling request messages at polling instants specific to the client terminal device 110 since the polling request sender 111 resides in the client terminal device 110. Each client terminal device 110, 120, 130 further comprises a polling response receiver 112, 122, 132, respectively. Each of the polling response receivers 112, 122, 132 is configured to receive polling response messages, each of which was sent in response to a polling request message. The polling response messages may contain information about at least one of polling windows, polling instants and download locations.


Each client terminal device 110, 120, 130 further comprises a polling instant processor 113, 123, 133, respectively. Each of the polling instant processors 113, 123, 133 is configured to replace the present polling instants specific to the respective client terminal device 110, 120 or 130 with re-calculated polling instants when such re-calculated polling instants are included in at least one of the received polling response messages. Furthermore, the re-calculated polling instants are arranged into polling time slots, wherein each polling time slot has no more than a predetermined maximum amount of polling instants.


The polling request senders 111, 121, 131, the polling response receivers 112, 122, 132, and the polling instant processors 113, 123, 133 may be implemented e.g. as software, firmware or hardware, or as a combination thereof.


The server 150 comprises a polling processor 151 that is configured to receive the above polling request messages sent from the polling request senders 111, 121, 131. The polling processor 151 is further configured to respond to a received polling request message with a polling response message.


The polling response message may include e.g. information about the status of the downloadable content, i.e. whether there is new downloadable content or not. If there is new downloadable content, the polling response message may include information about the download location of the new downloadable content, such as Uniform Resource Locator (URL) addresses of the new downloadable files. In addition, the polling response message may include information about polling instants, polling windows and polling intervals.


In an embodiment, the polling response message may further include debugging activation data. In accordance with information included in the debugging activation data the receiving client terminal device will download debugging software from a given location, run the downloaded debugging software, and collect and store debugging information. Then, the client terminal device will send the collected debugging information to the server 150, e.g. included in polling request messages. A subsequent polling response message may include debugging deactivation data instructing the client terminal device to delete the debugging software and/or the collected debugging information.


The server 150 of FIG. 1 further comprises a polling controller 152 which is configured to re-calculate, in response to a detected predetermined event, the client terminal device specific polling instants in order to organize them into polling time slots wherein each polling time slot has no more than a predetermined maximum amount of polling instants. The polling controller 152 is further configured to send the re-calculated client terminal device specific polling instants to their respective client terminal devices, e.g. by including the re-calculated client terminal device specific polling instants in the polling response messages.


The predetermined event may be e.g. a detected increase or decrease in the amount of the client terminal devices. In an embodiment, the predetermined event is latency detected in the client terminal device specific polling instants. The latency may be due to e.g. network conditions between at least one of the client terminal devices 110, 120, 130 and the server 150. The latency may also be due to e.g. the server 150 being under heavy load or overloaded and therefore momentarily delayed in performing its tasks.


In an embodiment, the polling controller 152 may be further configured to determine intermediate time slots of a given length between the polling time slots, while re-calculating the client terminal device specific polling instants. The intermediate time slots may be determined e.g. based on the above described detected latency in the client terminal device specific polling instants.


The polling processor 151 and the polling controller 152 may be implemented e.g. as software, firmware or hardware, or as a combination thereof. It is to be understood that even though in the embodiment illustrated in FIG. 1 the polling processor 151 and the polling controller 152 are integrated with the server 150, this does not need to be the case. Rather the polling processor 151 and the polling controller 152 may be implemented separately from the server 150.


The server 150 of FIG. 1 further comprises a content storage 153 which is configured to store the downloadable content. However, it is to be understood that the content storage 153 need not be integrated with the server 150. Rather, the content storage 153 may be implemented separately from the server 150.


The polling request messages and the polling response messages may be e.g. Hypertext Transfer Protocol (HTTP) messages. In such a case, for example the polling request sender 111, 121, or 131 sending a polling request message would open a Hypertext Transfer Protocol connection over the General Packet Radio Service connection 141, the Enhanced Data rates for GSM Evolution connection 142, or the Wideband Code Division Multiple Access connection 143, and the Internet 140, respectively.



FIG. 2 illustrates an embodiment of the method of the present invention relating to controlling content distribution polling dynamically according to an embodiment of the present invention. At first, a polling request message is sent and received, step 200. The polling request message queries about status of downloadable content, and the polling request message was sent at a polling instant specific to the sending client.


If, at step 201, a predetermined event is not detected, the method proceeds to step 204 in which a polling response message is sent to the client which sent the polling request message.


However, if a predetermined event is detected at step 201, the method proceeds to step 202 in which the client-specific polling instants are re-calculated in order to arrange the client-specific polling instants into polling time slots, wherein each polling time slot has no more than a predetermined maximum amount of polling instants.


The polling instants may be calculated as specific polling times (e.g. 9.02 p.m., 9.17 p.m., 9.32 p.m., etc.). In another embodiment, the polling instants may be calculated as polling intervals (e.g. 14 minutes, 15 minutes, 1 hour, etc.) from which the client will determine the specific polling times using e.g. the installation time of the client as a starting point.


Next, the polling instants re-calculated for the client that sent the polling request message are included in a polling response message, step 203. Then, the method proceeds to step 204 in which the polling response message now including the re-calculated client-specific polling instants is sent to the client which sent the polling request message. If the re-calculation of step 202 results in changes to polling instants of other clients, then polling response messages including the client-specific polling instants re-calculated for these other clients may also be sent to the other clients at step 204.


After receiving the re-calculated polling instants, the client will send its subsequent polling request messages according to the re-calculated polling instants.



FIG. 3
b illustrates more uniformly distributed polling instants of the present invention. Time block 350 comprises polling time slots 351-370. There are two polling instants in polling time slots 351, 353 and 355. There are three polling instants in polling time slots 357, 359, 361, 363, 365, 367 and 369. In other words, the polling instants are distributed more uniformly over the polling time slots than in the prior art case of FIG. 3a. There are no peaks causing server overload, such as the peak 312 of nine polling instants in FIG. 3a. Furthermore, there are no extended “silent” moments, such the period of polling time slots 307-311 in FIG. 3a, due to which the invention allows more efficient use of valuable server resources.


It is obvious to a person skilled in the art that with the advancement of technology, the basic idea of the invention may be implemented in various ways. The invention and its embodiments are thus not limited to the examples described above; instead they may vary within the scope of the claims.

Claims
  • 1. An apparatus comprising: a polling processor configured to receive from multiple clients, polling request messages querying about status of downloadable content in a content distribution system, and to respond with polling response messages, said polling request messages having been sent at client-specific polling instants; anda polling controller configured to re-calculate, in response to a detected predetermined event, said client-specific polling instants in order to arrange the client-specific polling instants into polling time slots, each polling time slot having no more than a predetermined maximum amount of polling instants, and to send the re-calculated client-specific polling instants to their respective clients.
  • 2. The apparatus according to claim 1, wherein the polling controller is further configured to perform said sending the re-calculated client-specific polling instants by including the re-calculated client-specific polling instants in the polling response messages.
  • 3. The apparatus according to claim 1, wherein the predetermined event comprises at least one of an increase in an amount of the clients, a decrease in the amount of the clients, and latency in the client-specific polling instants.
  • 4. The apparatus according to claim 1, wherein the polling controller is further configured to determine intermediate time slots of a given length between the polling time slots, while re-calculating the client-specific polling instants.
  • 5. An apparatus comprising: a polling processing means for receiving, from multiple clients, polling request messages querying about status of downloadable content in a content distribution system, and for responding with polling response messages, said polling request messages having been sent at client-specific polling instants; anda polling controlling means for re-calculating, in response to a detected predetermined event, said client-specific polling instants in order to arrange the client-specific polling instants into polling time slots, each polling time slot having no more than a predetermined maximum amount of polling instants, and for sending the re-calculated client-specific polling instants to their respective clients.
  • 6. A method comprising: detecting a predetermined event;in response to the detecting, determining client-specific polling instants in order to arrange the client-specific polling instants into polling time slots, each polling time slot having no more than a predetermined maximum amount of polling instants, the client-specific polling instants defining, for content distribution clients, instants for sending polling request messages querying about status of downloadable content in a content distribution system; andsending the determined client-specific polling instants to their respective clients.
  • 7. The method according to claim 6, wherein the method is performed by a data-processing device controlled by a computer program embodied on a computer readable medium.
  • 8. An apparatus comprising: a polling request sender configured to send, at given polling instants, polling request messages querying about status of downloadable content in a content distribution system;a polling response receiver configured to receive polling response messages, each sent in response to one of said polling request messages; anda polling instant processor configured to replace said given polling instants with re-calculated polling instants included in at least one of the received polling response messages, said re-calculated polling instants arranged into polling time slots, each polling time slot having no more than a predetermined maximum amount of polling instants.
  • 9. A method comprising: sending, at given polling instants, polling request messages querying about status of downloadable content in a content distribution system;receiving polling response messages, each sent in response to one of said polling request messages; andreplacing said given polling instants with re-calculated polling instants included in at least one of the received polling response messages, said re-calculated polling instants arranged into polling time slots, each polling time slot having no more than a predetermined maximum amount of polling instants.
  • 10. The method according to claim 9, wherein the method is performed by a data-processing device controlled by a computer program embodied on a computer readable medium.
  • 11. An apparatus comprising: a polling request sending means for sending, at given polling instants, polling request messages querying about status of downloadable content in a content distribution system;a polling response receiving means for receiving polling response messages, each sent in response to one of said polling request messages; anda polling instant processing means for replacing said given polling instants with re-calculated polling instants included in at least one of the received polling response messages, said re-calculated polling instants arranged into polling time slots, each polling time slot having no more than a predetermined maximum amount of polling instants.