« PreviousContinue »
1 2 METHOD AND SYSTEM FOR FIG. 1 is a block diagram schematically illustrating a netCONTROLLING SOFTWARE VERSION work system; UPDATES FIG. 2 is a block diagram schematically illustrating com
CROSS-REFERENCE TO RELATED APPLICATION
The instant application claims priority from U.S. Provisional Patent Application Ser. No. 60/672,096 filed Apr. 18, 2005, the disclosures of which are incorporated herein by reference.
The present invention relates to wireless communications devices, and in particular to a method and system for controlling software version updates for wireless terminal devices.
BACKGROUND OF THE INVENTION
The number and variety of wireless tenninal devices, such as mobile telephones, wireless-enabled laptops and PDAs with wireless communication capabilities, self-service kiosks and two-way pagers are rapidly increasing. Software applications which run on these devices increase their utility. For example, a mobile phone may include an application which retrieves the weather for a range of cities, or a PDA may include an application that allows a user to shop for groceries. These software applications take advantage of the connectivity to a network in order to provide timely and useful services to users.
As is well known in the art, software application developers frequently produce new and/or updated versions of their software. Such software updates may be released on a very frequent basis, as, for example, in the case of patches to resolve defects in previously released software. Major upgrades may be released on, for example, a yearly or biyearly basis, and often provide new functions to enhance the utility of a particular device.
However, while software developers may readily develop and release software updates, actual implementation of updates on all of the affected devices is highly complex. For example, in a wireless network, connectivity is frequently intermittent, so that a particular device may not be connected to a network when an update is released. In this case, some means is needed to enable the update to be downloaded and installed at some later time. Even when this is accomplished, some devices may lack resources (such as suflicient memory) to download and successfully install a particular update. In other cases, an application update may require that a device’ s controller software be updated before the application update is installed. In still other cases, a series of application updates must be downloaded and installed in a particular order. Thus, for example, an application upgrade which provides a new feature, must be installed before a service patch which corrects several issues including a deficiency in the new feature.
Accordingly, methods and systems for controlling the installation of software updates to wireless terminal devices remains highly desirable.
BRIEF DESCRIPTION OF THE DRAWINGS
Further features and advantages of the present invention will become apparent from the following detailed description, taken in combination with the appended drawings, in which:
ponents and operation of an application development enviromnent in accordance with an aspect of the present invention;
FIG. 3 is a message flow diagram schematically illustrating a process for publishing a software upgrade in accordance with an aspect of the present invention;
FIG. 4 is a message flow diagram schematically illustrating a process for installing a software upgrade on a terminal device in accordance with an embodiment of the present invention; and
FIG. S is a message flow diagram schematically illustrating a process for installing a software upgrade on a terminal device in accordance with another embodiment of the present invention.
It will be noted that throughout the appended drawings, like features are identified by like reference numerals.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
An object of the present invention is to provide methods and systems for controlling the installation of software updates to wireless terminal devices.
Thus, an aspect of the present invention provides a method of controlling asynchronous installation of a software update on a tenninal device of a wireless network. According to the present invention, an update notification message in respect of the software update is received by an Application Gateway hosting the terminal device. The update notification message includes a software identifier uniquely identifying an application affected by the update; a version number associated with the software update; and an address of an update script on a data network accessible by the tenninal device. The update script is adapted to install the software update on the tenninal device. The update notification message is logged in an updates registry, and a notification message is forwarded to the terminal device. The notification message includes the software identifier, the version number and the address of the update script, so that the terminal device can access and execute the update script to install the software update.
A further aspect of the present invention provides a method of controlling installation of a software update on a tenninal device of a wireless network. According to the present invention, an update-notification message including infonnation respecting an available software update is received by a runtime enviromnent of the terminal device. The update notification message comprises: a software identifier uniquely identifying an application affected by the update; a version number associated with the software update; and an address of an update script on a data network accessible by the tenninal device, the update script being adapted to install the software update on the terminal device. A compatibility of the software update is detennined using the update version number. Thereafter, the update script is accessed using the address, and executed to install the software update.
A still further aspect of the present invention provides a method of enabling controlled distribution of software updates affecting an application installed on a plurality of tenninal devices of a wireless network. According to the present invention a version schema is defined including a respective field for each one of a plurality of aspects of the application. An initial value of each field is defined when an initial application load is released. For each successive software update affecting the application, each aspect of the
application affected by the software update is identified, and the value of the respective field is incremented.
The present invention provides methods and systems for controlling the distribution and installation of software updates on wireless tenninal devices. Embodiments of the invention are described below, by way of example only, with reference to FIGS. 1-5.
Referring to FIG. 1, a system in accordance with a representative embodiment of the present invention generally comprises an Application Gateway (AG) 2 coupled between a wireless network 4 and a data network 6, such as for example, the Intemet. The system also has an online registry 8 including: a profiles registry 10 containing, for each subscriber’s terminal device(s) 14a, 14b, 14c, a listing of infonnation identifying software applications stored on the respective terminal device; and an updates registry 12 containing information identifying any available application updates.
The AG 2 generally operates to mediate message flows between tenninal devices 14a, 14b, 14c connected to the wireless network 4 and data services accessible through the data network 6 in the manner described in Applicant’s copending United States Patent Publications Nos. 2004/ 0215700 and 2004/ 0220998, both of which are incorporated herein by reference.
The online registry 8 can be co-resident with the AG 2 or may be located remotely from the AG and accessed by the AG via the data network 6. In the embodiment of FIG. 1, the online registry 8 includes a profiles registry 10 and an updates registry 12. The profiles registry 10 contains a profile for each one of a plurality of tenninal devices. Each profile contains, at a minimum, a listing of software identifiers (SW-IDs) uniquely identifying the runtime enviromnent (RE) and each application installed on the respective terminal device. A respective “current” version number of each application installed on the terminal device may also be stored in the online registry 8 in association with the respective SW-ID, or may be stored in the terminal device. A separate scripts registry 40 contains, for each software update, one or more scripts designed for implementing the software update on a terminal device.
In general, the terminal devices can be any of a wide variety of software-controlled wireless devices including but not limited to wireless-enabled laptop computers 14a, mobile or cellular telephones 14b, PDAs with wireless communication capabilities 14c, self-service kiosks and two-way pagers. As may be seen in FIG. 1, such devices generally include a microprocessor 16 connected to an RF section 18 for wireless communications, a memory 20 (at least a portion of which will normally be non-volatile), and a user interface (UI) 22 including a display 24 and one or more user input devices (UID) 26, e.g. a keyboard, thumb-wheel, stylus, microphone, etc.). The microprocessor 16 operates under software control to provide the functionality of the tenninal device. Preferably, the software is designed on a layered model, in which an RE 32 translates between application software 30 and the native machine-language 34 of the terminal device to control the terminal device hardware, and communicate with data services. This layered software model, and the manner in which it operates, is known from Applicant’s co-pending United States Patent Publications Nos. 2004/0215700 and 2004/ 0220998. The RE can also maintain a terminal device registry 28 (denoted “TD-REG” in FIG. 1) identifying each application installed on the tenninal device, and the current version number of each application. Operation of the RE to enable asynchronous distribution and installation of software upgrades to tenninal devices will be described in detail below.
As described in Applicant’s co-pending United States Patent Publications Nos. 2004/0215700 and 2004/0220998, operation of the AG 2 enables a software application executing in a tenninal device to communicate with data services (not shown) offered through the data network 6. This operation may, for example, include accessing and downloading files from back-end data sources (not shown) connected to the data network 6. As may be seen in FIG. 1, and described in greater detail below, an application developer (AD) 36 can also distribute and support new or updated software through the data network 6. For example, downloadable application software and installation scripts can be stored in an application developer registry 38 which can be accessed by users (either directly or indirectly) through the data network 6.
Application Development Enviromnent
Referring now to FIG. 2, the application developer uses an application development toolkit (ADT) 52 of an application development enviromnent (ADE) 50 running on a computing device to code, test, and debug application software, in a manner generally known in the art. The computing device can be a personal computer or laptop connected or connectable to the data network or other networked workstation. This same ADE is also used for developing subsequent updates of the application, again in a manner known in the art. In accordance with the present invention, the ADE 50 also includes a versioning module 70, which automatically assigns a version number based on changes made in the application source code during the process of coding, testing, and debugging. The versioning module 70 can also be used to generate an update script 60 which, when executed in a tenninal device, will download and install the update on the tenninal device.
For example, the versioning module 70 can be used to identify any of the following:
changes in existing data components, such as data struc
tures, i.e. by adding or removing fields, or changing field type definition; changes in global variable definitions or enumerations;
changes in existing messages, i.e. by adding or removing
fields, or changing field type definition;
changes in existing application logic;
new data components, messages or application logic to be
added to the application.
In each of these cases, the changes and additions detected by the versioning module 70 are those relative to the “current” version of the application (that is, the initial release with any subsequently released updates installed). As may be appreciated, detection of changes can be perfonned by either realtime tracking of actions (e.g. keystrokes) of the application developer during the editing process using a revisions log 54, or by comparing “before” and “after” versions of the application source code or by any other means for comparing an updated version of the application with a previous version of the application to detennine what changes have been made. In either case, the versioning module 70 identifies new and/or revised data components, messages, and application logic, which are then written to one or more update files 58. These update files 58 can then be saved to an update files registry 42, which is preferably resident within the application developer registry 38 as depicted in FIGS. 1 and 2. Altematively, in the embodiment as shown in FIG. 2, a revisions log 54 tracks the changes made to the application source code by the AD toolkit 52. It will be appreciated that the versioning module 70 can contain the revisions log 54 or the revisions log 54 can be a separate module within the ADE 50.
In addition, an update script 60 can be generated to control a tenninal device to download and install the update file(s) 58,