Patent ID: 8046406

Claim:
A system comprising a computer and a computer-readable physically tangible storage device coupled to the computer, said storage device storing computer readable program instructions that when loaded into a computer and executed causes the computer to performs a method that utilizes a schedule of data transfer periods during which data is transferred from a plurality of client devices to a server over a network, said method comprising for a first device of the plurality of devices: obtaining, by the server, from the first device a communication of an actual data transfer size of data actually stored in the first device; estimating, by the server, a corresponding future data transfer size of the data actually stored in the first device, said estimating being based on a historic data transfer size for data previously transferred from the first device to the server over the network, said schedule currently being based on the historic data transfer size for the first device; determining, by the server, that a difference exists between the actual data transfer size and the corresponding estimated future data transfer size; responsive to said determining that said difference exists, changing an existing data transfer period for the first device in the schedule in a way that minimizes change to the schedule; receiving, by the server, a transmission over the network from the first device of the data actually stored in the first device, said transmission being received in accordance with the schedule resulting from said changing the existing data transfer period for the first device; keeping track, by the server, of an off-line device of the plurality of devices that is off-line and informing the off-line device of the off-line device's schedule for transferring data from the off-line device to the server as soon as the off-line device becomes on-line; receiving, by the server, information relating to GSM radio reception power over time by a another device of the plurality of devices and estimating, by the server based on the received information relating to the GSM power, times unsuitable for the another device to be connected to the server; said server forecasting a bandwidth of the network by monitoring current download activity from data transfers between the network and said server; revising the schedule to achieve data transfer from the plurality of devices to the server at 80% of the forecasted bandwidth; changing, by the server, the schedule in response to detecting that a device of the plurality of devices has run out of memory; determining, by the server, when to upload new software from the server to the plurality of devices, taking into account a reduction in an effective communications bandwidth, said reduction resulting from the data transferred from the plurality of devices to the server.