DOWNLOADING SOFTWARE FROM A REMOTE DATA SOURCE TO A COMMUNICATIONS DEVICE INCLUDING SEGMENTATION, REASSEMBLY AND SELECTIVE RETRANSMISSION
This invention relates to a method of downloading software for a communications device, and particularly, though not exclusively, for a wireless communications device which is controlled by a host computer.
Computer-controlled communications devices, and in particular wireless communication devices are becoming increasingly popular. Such devices generally comprise a small peripheral device having circuitry for enabling the controlling computer to access a communications network by means of a link. In the case of wireless communication devices, this is a wireless link. An example of such a device is a PC card modem. Such devices are of a small physical size and are lightweight.
In order for the controlling computer system (called a "host") to communicate with the communications device, software is required, both on a microprocessor of the communications device, and on the host. Specifically, this software is required to configure and interface data between the host and the communications device, and also to provide application software for utilisation of the communications device. Such software is conventionally provided on a CDROM or disk, which can be disadvantageous since the disk can become damaged or lost, or may become out-of-date relatively quickly.
In principle, the use of a data link can overcome the above disadvantages by allowing more up-to-date software to be sent to the host via the communications device. However, although the data link can be used to acquire or update software in a convenient manner, this can be difficult or inefficient for a number of reasons. Firstly, the amount of raw data involved is relatively large, and so the telephone call or other connection period required to acquire the data can be expensive. Also, the length of the telephone call or connection period makes the data transmission vulnerable to interruption or corruption. As a further point, the communications device has to run its current software in order to complete and verify reception of new software, and prior to
changing over to the new software. It cannot normally change over part-way through the process.
According to a first aspect of the present invention, there is provided a method of downloading software for a communications device, the method comprising the steps of: establishing a data link between a local computer system and a remote data source, the local computer system comprising a communications device in connection with a host computer; downloading software from the remote data source to the local computer system, the software being fragmented into discrete packets; and re-assembling the fragmented software at the local computer system.
By downloading the software over the link in fragmented discrete data packets, the amount of raw data which is transmitted at a given time is reduced. Each packet of data is therefore less susceptible to interruption or corruption. Even if a packet is affected, it will only be necessary for that particular data packet to be downloaded again, and not the entire data batch. As a further refinement of this technique, if only part of the software had been changed it would not be necessary to download all the software again, only the data packets that contained changed fragments of the software. The packets of data required to download the software may be acquired over several telephone calls or other communication period of the link if necessary. Once the local computer system has acquired all the packets of data, re-assembling of the fragmented software provides the operational software.
The invention finds particular application where the communications device is a wireless communications device, the software being downloaded over a wireless data link.
For the purpose of this invention, it will be appreciated that the data is pre-arranged into discrete packets at a source location. That is, the software is identifiably fragmented at the source location.
Preferably, the method further comprises the step of performing a verification of the re-assembled software. In this way, the fragmented software is checked for errors at the
local computer system. As briefly mentioned above, if the verification determines that a data error has occurred in a particular batch of data, then the local computer system can request that that particular packet is re-sent, either immediately, or at some later time.
For host driver or application software, the step of re-assembling and verifying the software maybe performed at the communications device of the local computer system, with the re-assembled software thereafter being transferred to the host computer for execution. In this way, the communications device can be used to re-assemble the fragmented data into the software e.g. host driver software and/or application software, and then if appropriate, to transfer or re-program the software to the host computer.
For host driver or application software, and/or for the communications device software, as an alternative to the above, the step of re-assembling and verifying the software may be performed at the host computer, the re-assembled software thereafter being retained in the host or transferred to the communications device for execution. In this case, the host computer is used to re-assemble the fragmented data into the software, e.g. a wireless modem application program, and then to transfer, or re-program, the software to the communications device. It could automatically install the new driver or application software on the host itself.
The local computer system may be programmed to establish a data link with the remote data source only at predetermined times. In this way, it is possible to download large amounts of data at convenient times. For example, the data link might only be established at off-peak call charge times, or at times when the likelihood of interruption or corruption is reduced, e.g. at night. The data link may make use of other forms of low cost data transfer, e.g. short message service, or data that it transmitted concurrently with a voice signal such that the data transfer would take place over a number of voice calls without the user necessarily being aware that this had taken place, or data calls made only when the wireless communications device was in a low cost geographical region, e.g. the home cell of a cellular communications system.
The download operation may be controlled using an application program on the local computer system, the application program including a graphical user interface for displaying the status of the download operation. Alternatively, the operation may be controlled by software at the remote data source.
The method according to the invention finds particular application to wireless PC card type devices.
The method is particularly useful for sending software file types which are required for updating on a regular basis, e.g. .INF files for the configuration folders of PCs.
According to a second aspect of the present invention, there is provided a computer program for downloading software for a communications device, the computer program being stored on a computer usable medium and comprising computer readable instructions for causing a computer system to execute the steps of : establishing a data link between the computer system and a remote data source, the computer system comprising the communications device in connection with a host computer; downloading software from the remote data source to the computer system, the software being fragmented into discrete packets; and re-assembling the fragmented software at the computer system.
The invention will now be explained, by way of example, with reference to the accompanying drawings, in which:
Figure 1 is a block diagram representation of a wireless communications device for use in the method according to the present invention; and
.Figure 2 shows a sequence of data transfer operations for transferring software data in a download operation.
Referring to the drawings, Figure 1 shows a Personal Computer (PC) 1 which comprises a memory 3 and a Central Processing Unit (CPU) 5. The CPU 5 is
connected to the memory 3 and transmits and receives data via a port 21. The PC 1 is connected to a wireless modem 7 by means of a connector 19 between the port 21 of the PC and a port 23 of the wireless modem 7.
The wireless modem 7 is in the form of a PC card peripheral device, and comprises a processor sub-circuit 9, which is connected to a radio-frequency (r.f.) sub-circuit 15, and a memory 13. The memory 13 comprises a non- volatile flash memory IC. The r.f. sub-circuit 15 is connected to an r.f. antenna 17.
It will be appreciated that the wireless modem 7 operates by modulating and demodulating digital data for wireless transmission or reception. This modulation and demodulation is performed in the r.f. sub-circuit 15. The wireless modem 7 is controlled by the processor sub-circuit 9, which is itself controlled by the host PC 1. The processor sub-circuit 9 also accesses and stores information in the memory 13, whilst communicating with the host PC 1.
The PC 1 includes an application program (hereinafter referred to as the "download program") which provides a graphical user interface (GUI) application for initiating and verifying software download operations, as will be explained below.
Software for configuring, interfacing and utilising the wireless modem 7 is downloaded from a source computer 25. At the source computer 25, the software is pre-arranged into discrete fragments (or packets) of software data, and stored in a memory (not shown). These packets of data may be fragmented using established protocols such as TCP/IP or techniques employed in GPRS, or by using an alternative proprietary protocol which may be optional for larger packets of data, or a combination of these protocols.
An overview of the download operation will now be explained with reference to Figure 2.
In order for a downloading operation to begin, the download program on the PC 1 sends an initiating signal "I" to the source computer 25, by means of the wireless modem 7 (this being represented as step a). This initiating signal I is received by the source computer 25 and causes it to transmit the data packets back to the wireless modem 7 and, accordingly, the PC 1 (see step b). The first data packet is labelled "A" and is transmitted at time tl. This first data packet is received by the wireless modem 7 by means of the r.f. antenna 17, the r.f. sub-circuit 15, and the processor sub-circuit 9, whereafter the data packet is stored in a predetermined directory of the memory 13. hi a similar manner at time t2, a second data packet labelled "B" is sent by the source computer 25, received and stored by the wireless modem 7, with the process thereafter being repeated for the remaining data packets "C" and "D" at times t3 and t4, respectively. The GUI of the download program is used to display the progress of the overall download operation.
In the above case, the received data packets A, B, C and D are stored in the memory 13 of the wireless modem 7. However, it should be understood that the data packets can also be stored in the memory 3 of the PC 1.
Once the source computer 25 has completed sending the data packets A, B, C and D, it indicates that the transmission is complete by sending a termination signal "T". When this signal T is received by the wireless modem 7, the download program in the PC 1 performs a verification check on each of the individual data packets A, B, C and D stored in the memory 13 of the wireless modem 7. This verification check can be based on any one of the many known error verification techniques or may use a method specifically designed for this application.
If one or more of the data packets A, B, C and D is found to contain an error during this verification process, the download program sends a new initiating signal specific to the one or more data packets containing an error. For example, if the data packet B is found to have an error, an initiating signal IB is sent to the source computer 25 (see step c). This causes the source computer 25 to re-transmit the data packet B (step d). This
process is repeated for each data packet for which the verification step determines that an error has occurred.
When the download program determines that all of the data packets A, B, C and D are error-free, the data link between the wireless modem 7 and the source computer 25 is terminated.
Having acquired and verified the data packets A, B, C and D (which are stored in the memory 13 of the wireless modem 7) the download program then performs a re-assembling operation to convert the discrete data packets A, B, C and D into the single software program. This may be performed using conventional de-fragmentation software or software specifically designed for this application.
Once the software is in its assembled form, it can be executed on the wireless modem 7 by means of the GUI of the download program (assuming the software is actually intended for execution on the modem). Alternatively, if the assembled software is intended for use on the PC 1 (because it is driver software or an application program for controlling the wireless modem 7) then the assembled software can be transferred from the wireless modem to the memory 3 of the PC 1. As mentioned above, the data packets A, B, C and D could be initially stored in the memory 3 of the PC 1, rather than on the memory 13 of the wireless modem 7, in which case the two above-mentioned operations would be reversed.
The download program includes a scheduling application for allowing the user to control the timing and duration of when the communications link is established between the wireless modem 7 and the source computer 25. Accordingly, the user may specify that the software packets are only downloaded at specific times of the day, e.g. a off-peak times (when call charges are reduced) or at night (when interruption is less likely).
It should also be appreciated that, whereas this description is of a data transfer system initiated and controlled by the PC 1, it would equally be possible to give control of the
process to the remote data source 25. In this case, the PC 1 may, or may not, indicate to the user that the data transfer is taking place and the user may or may not be allowed to interfere if he/she so requires.
In the above-described embodiment, the communications channel between the source computer 25 and the wireless modem 7 is a point-to-point link, hi a further embodiment (not shown) the wireless modem 7 is replaced by a cellular modem. In this situation, a source computer includes a cellular transmitter for transmitting the software data to a localised area or "cell" containing any number of users. In the event of errors occurring in the data packets, the 're-send' technique described above is not possible, since a particular error may only have occurred for one user (the other users in a cell receiving correct data). In this case, the source computer repeatedly transmits each packet of software data periodically. Accordingly, if an error is detected in a particular packet of data, the download software will 'look-out' for the next transmission of that particular packet, acquire it, and then re-assemble the software.