HK1108296A - Method, software and apparatus for application upgrade during execution - Google Patents
Method, software and apparatus for application upgrade during execution Download PDFInfo
- Publication number
- HK1108296A HK1108296A HK08102273.6A HK08102273A HK1108296A HK 1108296 A HK1108296 A HK 1108296A HK 08102273 A HK08102273 A HK 08102273A HK 1108296 A HK1108296 A HK 1108296A
- Authority
- HK
- Hong Kong
- Prior art keywords
- application
- different version
- resident executable
- wireless device
- request
- Prior art date
Links
Abstract
A system and method for optional upgrading of a software application on a wireless device during the execution of the software application. The system includes receiving a request to replace a resident executable application with a different version of the application. The system further includes detecting the active execution of the resident executable application. The system also includes receiving, via a network, the different version of the application. Also, the system includes storing the different version of the application in a temporary location in response to detecting the active execution of the resident executable application. In addition, the system includes terminating the active execution of the resident executable application. The system also includes overwriting the resident executable application with the different version of the application stored in the temporary location. Further, the system includes initiating active execution of the different version of the application.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority from U.S. provisional application No. 60/515,802, filed on 29/10/2003, which is incorporated herein by reference.
Technical Field
The present invention relates generally to data networks and computer communications across the data networks. More particularly, the present invention relates in part to the installation and deletion of software applications and components thereof on wireless devices in selective communication with one or more application download servers across a wireless data network. More particularly, the present invention relates in part to the optional upgrading of a software application on a wireless device during the execution of the software application.
Background
Wireless devices, such as cellular telephones, communicate data packets including voice and data over wireless networks. Cellular telephones themselves are being manufactured with increased computing capabilities and are equivalent to personal computers and hand-held personal digital assistants ("PDAs"). These "smart" cellular telephones have installed application programming interfaces ("APIs") onto their local computer platforms that allow software developers to create software applications (often referred to as "programs") that can execute entirely on the cellular telephone. The API sits between the wireless device system software and the software application so that the application can utilize the cellular telephone computer functionality without requiring the software developer to have specific cellular telephone system source code.
The software application may be pre-loaded at the time of manufacture of the wireless device, or the user may subsequently request that additional programs be downloaded via the cellular telecommunications carrier network, where the downloaded applications may be executed on the wireless telephone. Thus, a user of a wireless telephone may self-define his wireless telephone by selectively downloading applications, such as games, printed media, stock updates, news, or any other type of information or application that may be available for download over a wireless network. To manage cellular telephone resources, a user of the wireless device purposefully deletes applications and data from the wireless telephone platform to clean up the memory space so that new applications can be loaded onto the cleaned up space.
Wireless devices have limited resources (e.g., storage and processing) for unnecessary applications compared to the larger computer platforms of personal computers and PDAs. Typically, telecommunications applications have priority over the use of system resources, and other applications allocate resources when used. The wireless device has a limited capacity for saving all files of the application and the management of resources is decided by the user of the phone to delete the application to make room for a new application to be downloaded to the wireless device. The wireless device does not otherwise download applications that it does not have resources to save and execute.
In seeking to free resources on a wireless device, a user is generally unable to remove certain components of a resident application without disabling the entire resident application. If the user manages to delete a particular component, this action will be detrimental to the intended release of resources, as the disabled resident application cannot be recovered without completely reinstalling the application. Even if the host application is not executable, the useless undeleted application components still uselessly occupy memory space. This need for the complete deletion or non-deletion of resident software applications on a wireless device greatly limits the number of applications that can be resident on the wireless device and operated by the user.
It would therefore be advantageous to provide a wireless device that can remove certain components of an application while maintaining important data (e.g., licenses and user-specified data) for the application, thereby maximizing the utilization of computer resources on the wireless device. When the wireless device needs the deleted software component to execute the application again, the wireless device may obtain the software component over the wireless network. The present invention is therefore directed generally to providing a system and method that can control the deletion and reloading of selected software application components at a wireless device.
Disclosure of Invention
Embodiments disclosed herein include systems and methods for upgrading a software application on a wireless device, such as a cellular telephone, personal digital assistant, pager, or other computer platform, where the upgrade is optionally performed during execution of the software application. At least one embodiment includes receiving a request to replace a resident executable application with a different version of the application. This embodiment further comprises detecting actual execution of the resident executable application. This embodiment further includes receiving the different version of the application over a network. Such embodiment further comprises storing the different version of the resident executable application in a temporary location in response to detecting the actual execution of the application. This embodiment further comprises terminating the actual execution of the resident executable application. And, this embodiment further comprises overwriting the resident executable application with the different version of the application stored in the temporary location; and this embodiment further comprises initiating actual execution of the different version of the application.
At least one embodiment includes logic configured for receiving a request to replace a resident executable application with a different version of the application. Such embodiment further comprises logic configured for detecting actual execution of the resident executable application. Such embodiment further comprises logic configured for receiving the different version of the application over a network. Such embodiment further comprises logic configured for storing the different version of the resident executable application in a temporary location in response to detecting the actual execution of the application. Such embodiment further comprises logic configured for terminating the actual execution of the resident executable application, such embodiment further comprising logic configured for overwriting the application with the different version of the resident executable application stored in the temporary location. Also, this embodiment further comprises logic configured for initiating actual execution of the different version of the application.
At least one embodiment includes code operable to receive a request to replace a resident executable application with a different version of the application. Such embodiment further comprises code operable to detect actual execution of the resident executable application. This embodiment further comprises code operable to receive the different version of the application over a network. Such embodiment further comprises code operable, in response to detecting the actual execution of the resident executable application, to store the different version of the application in a temporary location. Such embodiment further comprises code operable to terminate the actual execution of the resident executable application. Such embodiment further comprises code operable to overwrite the resident executable application with the different version of the application stored in the temporary location. Also, this embodiment further includes code operable to initiate actual execution of the different version of the application.
At least one embodiment includes means for receiving a request to replace a resident executable application with a different version of the application. This embodiment includes means for detecting actual execution of the resident executable application. This embodiment includes means for receiving the different versions of the application over a network. Such embodiment includes means for storing the different version of the resident executable application in a temporary location in response to detecting the actual execution of the application. This embodiment includes means for terminating the actual execution of the resident executable application. Such embodiment includes means for overwriting the resident executable application with the different version of the application stored in the temporary location. Also, this embodiment includes means for initiating actual execution of the different version of the application.
At least one embodiment includes receiving a request to replace a resident executable application with a different version of the application. This embodiment further includes receiving the different version of the application over a network. Such embodiment further comprises storing a different version of a resident executable application in a temporary location in response to receiving the request to replace the application with the different version of the application. This embodiment further comprises detecting actual execution of the resident executable application. This embodiment further comprises terminating the actual execution of the resident executable application. Such embodiment further comprises overwriting the resident executable application with the different version of the application stored in the temporary location. Also, this embodiment further comprises initiating actual execution of the different version of the application.
At least one embodiment includes logic configured for receiving a request to replace a resident executable application with a different version of the application. This embodiment also includes logic configured for receiving the different version of the application over a network. Such embodiment further comprises logic configured for storing a different version of a resident executable application in a temporary location in response to receiving the request to replace the application with the different version of the application. Such embodiment further comprises logic configured for detecting actual execution of the resident executable application. Such embodiment further comprises logic configured for terminating the actual execution of the resident executable application. Such embodiment further comprises logic configured for overwriting the resident executable application with the different version of the application stored in the temporary location. Also, this embodiment further comprises logic configured for initiating actual execution of the different version of the application.
At least one embodiment includes code operable to receive a request to replace a resident executable application with a different version of the application. This embodiment further comprises code operable to receive the different version of the application over a network. Such embodiment further comprises code operable, in response to receiving the request to replace the application with a different version of a resident executable application, to store the different version of the application in a temporary location. Such embodiment further comprises code operable to detect actual execution of the resident executable application. Such embodiment further comprises code operable to terminate the actual execution of the resident executable application. Such embodiment further comprises code operable to overwrite the resident executable application with the different version of the application stored in the temporary location. Also, this embodiment further includes code operable to initiate actual execution of the different version of the application.
At least one embodiment includes means for receiving a request to replace a resident executable application with a different version of the application. This embodiment further comprises means for receiving the different version of the application over a network. Such embodiment further comprises means for storing a different version of a resident executable application in a temporary location in response to receiving the request to replace the application with the different version of the application. This embodiment further comprises means for detecting actual execution of the resident executable application. This embodiment further comprises means for terminating the actual execution of the resident executable application. Such embodiment further comprises means for overwriting the resident executable application with the different version of the application stored in the temporary location. Also, this embodiment further comprises means operable to initiate actual execution of the different version of the application.
At least one embodiment includes receiving a request to replace a resident executable application with a different version of the application. This embodiment further includes receiving the different version of the application over a network. Such embodiment further comprises storing a different version of a resident executable application in an upgraded location in response to receiving the request to replace the application with the version of the application. This embodiment further includes detecting the actual execution of the resident executable application in an actual application location. This embodiment further comprises terminating the actual execution of the resident executable application. Also, this embodiment further comprises initiating execution of the first application detected in a continuous search of the upgrade location and the actual application location.
At least one embodiment includes logic configured for receiving a request to replace a resident executable application with a different version of the application. Such embodiment further comprises logic configured for receiving the different version of the application over a network. Such embodiment further comprises logic configured for storing a different version of a resident executable application in an upgraded location in response to receiving the request to replace the application with the version of the application. Such embodiment further comprises logic configured for detecting the actual execution of the resident executable application in an actual application location. Such embodiment further comprises logic configured for terminating the actual execution of the resident executable application. Also, this embodiment further comprises logic configured for initiating execution of a first application detected in a continuous search of the upgrade location and the actual application location.
At least one embodiment includes code operable to receive a request to replace a resident executable application with a different version of the application. This embodiment includes code operable to receive the different versions of the application over a network. Such embodiment includes code operable to store a different version of a resident executable application in an upgraded location in response to receiving the request to replace the application with the version of the application. This embodiment includes code operable to detect the actual execution of the resident executable application in an actual application location. This embodiment includes code operable to terminate the actual execution of the resident executable application. Also, this embodiment includes code operable to initiate execution of a first application detected in a continuous search of the upgrade location and the actual application location.
At least one embodiment includes means for receiving a request to replace a resident executable application with a different version of the application. This embodiment also includes means for receiving the different version of the application over a network. Such embodiment also includes means for storing a different version of a resident executable application in an upgraded location in response to receiving the request to replace the application with the version of the application. This embodiment also includes means for detecting the actual execution of the resident executable application in an actual application location. This embodiment also includes means for terminating the actual execution of the resident executable application. Also, this embodiment includes means for initiating execution of a first application detected in a continuous search of the upgrade location and the actual application location.
Other objects, advantages and features of the present invention will become apparent after review of the hereinafter set forth brief description of the drawings, detailed description of the invention, and the claims set forth above.
Drawings
FIG. 1 is a representative diagram of the present system for managing software applications on a wireless device in selective communication with one or more application download servers across a wireless network.
Fig. 2 is a block diagram of the hardware components of an exemplary wireless network providing communication between different wireless devices and an application download server and database.
Fig. 3 is a table of files resident on the wireless device platform that specifically illustrates one application and its constituent components.
Fig. 4 is a flow diagram illustrating selective deletion of application components on a wireless device.
Fig. 5 is a flow diagram illustrating the wireless device retrieving application components from an application download server to restore an application on the wireless device so that the application can be executed again.
FIG. 6 is a flow chart illustrating one embodiment of a system that includes replacing a resident executable application with a different version of the application.
FIG. 7 is a flow chart illustrating one embodiment of a system that includes replacing a resident executable application with a different version of the application.
Figure 8 is a block diagram of one embodiment of a wireless device for use in a system for replacing a resident executable application with a different version of the application.
Figure 9 is a block diagram of one embodiment of a wireless device for use in a system for replacing a resident executable application with a different version of the application.
Figure 10 is a block diagram of one embodiment of a wireless device for use in a system for replacing a resident executable application with a different version of the application.
Detailed Description
Referring to fig. 1, fig. 1 shows a system 10 of the present invention for deleting and reloading software application components on a wireless device, such as a cellular telephone 12, in communication across a wireless network 14 with at least one application download server 16, the at least one application download server 16 selectively transmitting software applications and components to the wireless device across a wireless communication portal or other data portal of the wireless network 14. As shown here, the wireless device may be a cellular telephone 12, a personal digital assistant 18, a pager 20, which is shown here as a two-way text pager, or even a separate computer platform 22 that has a wireless communication portal, and may otherwise have a wired connection 24 to a network or the Internet. The inventive system can thus be implemented on any form of remote module including a wireless communication portal, including without limitation, wireless modems, PCMCIA cards, access terminals, personal computers, access terminals, telephones without a display or keypad, or any combination or sub-combination thereof.
The application download server 16 and other computer elements in communication with the wireless network 14 are shown here on the network 26. There is a second server 30 and a separate server 32, and each server may provide separate services and processing to the wireless devices 12, 18, 20, 22 across the wireless network 14. There is also preferably at least one stored application database 28 that holds applications that can be downloaded by the wireless devices 12, 18, 20, 22.
A block diagram more fully illustrating the components of the wireless network 14 and the interrelation of the elements of the present invention is shown in fig. 2. The wireless network 14 is merely exemplary and can include any system whereby remote modules, such as wireless devices 12, 18, 20, 22, communicate over-the-air between and among each other and/or between and among components of a wireless network 14, including without limitation wireless network carriers and/or servers. The application download server 16 and stored application database 28, along with any other servers needed to provide cellular telecommunication services such as server 30, communicate with the carrier network 40 via a data link, for example, the internet, a secure LAN, WAN, or other network. The carrier network 40 controls messages (sent as data packets) sent to a message service controller ("MSC") 42. The carrier network 40 communicates with the MSC by a network, the Internet, and/or POTS ("plain ordinary telephone system"). Typically, the network or internet connection between the carrier network 40 and the MSC 42 transfers data, and the POTS transfers voice information. The MSC 42 is coupled to a plurality of base stations ("BTSs") 44. In a manner similar to a carrier network, the MSC 42 is typically connected to the BTS 44 by a network and/or the Internet for data transfer and POTS for voice information. The BTS 44 ultimately broadcasts messages wirelessly to wireless devices, such as cellular telephones 12, by short message service ("SMS"), or other radio methods known in the art.
A wireless device, such as a cellular telephone 12, has a computer platform 50 that can receive and execute software applications transmitted from the application download server 16. Computer platform 50 includes an application specific integrated circuit ("ASIC" 52) or other processor, microprocessor, logic circuit, or other data processing device. The ASIC 52 is installed at the time of manufacture of the wireless device and is not normally upgradeable. The ASIC 52 or other processor executes an application programming interface ("API") layer that interfaces with any resident programs in the memory 56 of the wireless device. The memory may be comprised of read-only or random-access memory (RAM and ROM), EPROM, flash cards, or any memory common to computer platforms. The computer platform 50 also includes a local database 58 that can hold applications not actually used in memory 56. The local database 58 is typically a flash memory cell, but may be any secondary storage device as known in the art, such as magnetic media, EPROM, optical media, tape, or soft or hard disk.
The wireless device, such as cellular telephone 12, thus downloads one or more software applications, such as games, news, stock monitors, and the like, and saves the applications on the local database 58 when not in use, and uploads resident applications stored on the local database 58 to the memory 56 for execution on the API 54 when desired by the user. However, there are significant cost and size limitations on the wireless device that limit the installed storage capacity available in the local database 58 and memory 56 so that a limited amount of resident software applications can be saved on the wireless device. The present system and method manages this storage capacity limitation by selectively deleting and reloading individual software application components, as described further below.
Referring to FIG. 3, an illustrative file structure or data management structure stored in the API 54 is shown. The top level domain is a "file" 60 that contains all of the discrete software files on the computer platform 50. The file structure of fig. 3 is merely illustrative and may not appear in this form on the computer platform 50, and may even reside entirely in machine code on the wireless device 12, 18, 20, 22 with no discernable file structure. Shown in file 60 is an API, here shown as Windows binary runtime ("BREW") 62, which is an API used by QUALCOMM for interacting with software applications on the wireless device computer platform 50. The BREW 62 file includes an application file 64, and one file is a chess 66 game that has been downloaded from the application download server 16 and is now resident on the local database 58 of the computer platform 50 of the wireless device. For purposes of illustration, the chess 66 application is a resident software application of the wireless device.
The chess 66 application includes several software components 68, such as the files chess. The application component 68 is a module necessary to execute the chess application on the computer platform 50. The chess 66 also includes data associated with a particular application, here shown as scores. sig 70, which is a stored score for the user playing the chess game on the computer platform 50. A license may also be included in the chess 66 application as a hidden file. Thus, the application component 68 that allows the execution of the chess game is easily duplicated using the copy transmitted from the application download server 16, while the associated application data, such as the score 70 and license, would be lost if their files or modules were deleted. The present invention thus utilizes the capability to obtain another copy of the unnecessary application components from the application download server 16 while maintaining non-retrievable application-related data, such as licenses, or user-specific data, such as personal information and addresses, or even purely entertainment-related data, such as the previous scores 70 of the chess game.
When the user wishes to download another software application to the computer platform 50 without sufficient resources, particularly with respect to storage on the local database 58, the BREW API 62 or other space management component may trigger a prompt to the user asking if the chess application component is removable so that the requested downloaded application may be placed on the computer platform 50. In addition, the BREW API 62 can determine which components to delete and automatically manage system resources. When the chess 66 file has been deleted from the chess mod and the chess bar files, the chess game will not be executable on the computer platform 50. Through the separation of essential and non-essential files on the computer platform 50, the wireless device may selectively delete one or more of the application components 68 of one or more resident software applications without losing application-related data, such as the score file 70.
When the application has deleted one or more application components, such as the chess game 66, the chess.mod and the chess.bar application components 68, and the user wishes to use the application again, the wireless device will selectively prompt the application download server 16 across the wireless network 14 to transmit the one or more application components 68. Once the wireless device receives the application components 68, the wireless device installs the transmitted one or more application components 68 back onto the computer platform 50 so that the resident application or chess 66 therein can be executed again. It should be noted that not all application components 68 need be removed and that deletions may be made based on the size of the application or other criteria. Sig 70 may also contain application components needed to execute the application and need not be a pure data container.
Fig. 4 and 5 are flow diagrams illustrating the present method for managing the loading and removal of the application component 68 of one or more software applications resident on the computer platform 50 of the wireless device 12, 18, 20, 22. As shown in fig. 4, the computer platform 50 receives instructions to download a software application, as shown at step 80, and then makes a determination on the ASIC 52 or other processor of the wireless device as to whether there are sufficient resources available to download the application, as shown at step 82. If there are sufficient available resources, the application is downloaded and stored, as shown at step 84, and the download process terminates. If there are insufficient resources at decision 82, the user is prompted to clean up system resources to download the application, which requires the deletion of an application component, as shown at step 86. A determination is then made as to whether the user grants a clear resource, as shown at decision 88, and if not, the user is notified that there are not sufficient resources available for downloading, as shown at step 90, and the download process terminates. If the user permits the cleaning of the resources at decision 88, one or more application components, such as component 68, are selectively deleted to clean the necessary resources, and such deletion occurs without significant loss of application-related data, such as scores. sig file 70, or any license to use the application. The application is then downloaded and stored on the computer platform 50, as shown at step 94, and the download process terminates.
The process of reinstalling a deleted component when a request is received to execute an application having one or more deleted components 68, as shown at step 100, is shown in FIG. 5. An example of this would be for a user to try to play a chess game again. The user is then preferably prompted to establish a communication link to the application download server 16, as shown at step 102. However, the wireless device may alternately automatically establish a communication link upon receiving the execution request. If the user requests a request to execute the application, a determination is made as to whether the user has authorized the link, as shown at decision 104. If the user refuses to establish the link, the user is notified that the desired application component must be downloaded to execute the requesting application, as shown at step 106, and then the execution request terminates. If the user authorizes the communication link at decision 104, then a communication link is established with the application download server 16, as shown at step 108.
Once the communication link with the application download server 16 has been established, the wireless device prompts the application download server 16 to transmit one or more application components needed by the wireless device to execute the requested application, as shown in step 110. It is then determined whether the server has transmitted the required application components, as shown at decision 112, and if not, the user is notified that the required components are not available, as shown at step 114, and the execution request terminates. Otherwise, if the user has transmitted the necessary components at decision 112, the wireless device receives the components from the application download server, as shown at step 116, and installs the received components into the application to make the application executable, as shown at step 118. The application is then executed on the wireless device until terminated, as shown at step 120.
If the reloading of a deleted application component, such as application component 68, is automatic, the process of FIG. 5 will proceed to step 110 to prompt the application download server 16 upon receiving a request from step 100 to execute the application. The wireless device will only notify the user if the application is not able to download the component, as shown in step 114.
The step of establishing a communication link is typically to establish the communication link through a digital or analog cellular telecommunications network as shown in fig. 2, but other wireless networks, such as a wireless LAN or a microwave or infrared network, may alternatively be used. Further, establishing the communication link may occur automatically on the wireless device 12, 18, 20, 22 desiring to execute the resident software application for which the one or more related components have been deleted, i.e., the wireless device bridges communications with the application download server 16 over the wireless network 14. Otherwise, the step of establishing a communication link may occur upon a specific prompt by the user of the wireless device 12, 18, 20, 22 to bridge communication with the application download server 16 to transmit the one or more components to the resident software application from which the one or more related components have been deleted via the wireless network 14. If the user of the wireless device is to pay for a communication link, such as a cellular telephone call, in order to transfer a new application component to the wireless device, the user should be prompted to authorize the communication link necessary to reload the component before deleting the component. The user may again be prompted when a communication link is required to retrieve a component of the application to make the application executable. However, if the wireless device is fully automated and the communication link does not require charging the user, the user need not be prompted and the reloading of the components is apparent unless a problem is encountered and an error message is generated, such as at step 114.
Automatic application upgrade during execution
In one embodiment, as shown in FIG. 6, an application or extension (extension) downloaded to a wireless device 12, 18, 20, 22 may be downloaded to the wireless device 12, 18, 20, 22 while a previous or different version of the application or extension is executing on the wireless device 12, 18, 20, 22. The upgrade or download of the application or extension may be requested by the wireless device 12, 18, 20, 22 through a device user or a process running on the wireless device 12, 18, 20, 22, or through the server 16, 30, 32. Note that "upgrade" need not include later versions, but may refer to different versions. For example, it may be preferable to revert to an old version of the application, in which case "upgrading" involves downloading a previous version of the application in place of an existing, rather than later, version.
(hereinafter, only an "application" will be used, although it should be understood that this description also applies to extensions. Further, an application program includes not only any executable type of software, but also scripts or content data.
The embodiment process includes step 600 wherein a request is made to download an application upgrade to a wireless device 12, 18, 20, 22. The wireless devices 12, 18, 20, 22 may have different or previous versions of applications executing on the handset. At step 602, a check is made to determine if a different or previous version of the requested application is executing on the wireless device 12, 18, 20, 22. If not, then at step 604 the application may be upgraded with the newly requested application by overwriting the existing application with the newly requested application in a file location where the existing (i.e., previous or different) application is located on the device.
However, if the check at step 602 determines that the application is executing, then the process continues at step 606, where the upgraded application is stored in a temporary location. This temporary location may be on the device, however it may be stored on the peripheral device or other location on the network accessible to the device.
At step 608, the executing application is notified that it needs to be terminated. And the application or secondary process initiates the termination of executing the application. After the application is terminated, the upgraded application is then transferred to the file location of the existing application at step 610. Note that the location to which the upgraded application is copied is any location where the system expects to execute the application. For example, in one embodiment, if the system desires to find an upgrade location to execute an upgraded application, and if it does not exist, the system finds another location to execute an existing application, then the process will copy the upgraded application to the upgrade location and not overwrite the existing application.
After the upgraded application is transferred from the temporary location to the correct location (whether the location of the existing application is overwritten or some other desired location as described above), the application then restarts at step 612. Note that this application may automatically restart. It should also be noted that the device need not be reset, run by restarting the router, reboot, or perform any other reset type of function for the existing application to be upgraded and the executing application.
In another embodiment of application upgrade, and as shown in FIG. 7, in step 606 and before step 602, the requested application is downloaded to a temporary location of the device. After downloading, the device is then checked at step 602 to determine if a previous or different version of the application is executing on the device. If so, execution of the existing application is terminated at step 608, and the upgraded application is copied from the temporary storage location to the correct storage location (e.g., it may overwrite the existing application) at step 610, and then the upgraded application is executed at step 612. As described above, this execution may be performed automatically.
If it is determined in step 602 that the existing application is not executing, then in step 700 the upgraded application is transferred to the correct location, e.g., overwriting the existing application. In this example, because the application is not executing, there is no need to terminate its execution before transferring the upgraded application to the correct location.
Fig. 8 shows one embodiment of a wireless device implementing the method as described in fig. 6. As shown, wireless device 800 includes a memory 802, a network interface 804, a processor 806, and a bus 808. Although the memory 802 is shown as RAM memory, other embodiments include memory 802 such as any known type of memory known for providing storage of configuration logic. In addition, although memory 802 is shown as one contiguous unit of one type of memory, other embodiments use multiple locations and multiple types of memory as memory 802. The network I/O interface 804 provides input and output to devices coupled to the network via the bus 808. The processor 806 operates according to instructions and data provided via the bus 808. The processor 906 is part of the ASIC 52 in at least one embodiment.
Located in memory 802 are: logic 810 for receiving a request to replace a resident executable application with a different version of the application; logic 812 to detect actual execution of a resident executable application; logic 814 for receiving different versions of the application via a network; logic 816, in response to detecting actual execution of a resident executable application, to store a different version of the application in a temporary location; logic 818 to terminate actual execution of the resident executable application; logic 820 for overwriting a resident executable application stored in a temporary location with a different version of the application; and logic 822 to initiate actual execution of the different versions of the application. In one or more different embodiments, the logic for receiving a request to utilize a different version of a resident executable application in place of the application 810 is further modified such that wherein the request is initiated by the wireless device 824, wherein the request is initiated by detecting a user input 826, wherein the different version of the application is a previous version 828, and/or wherein the application is at least one of an extension, a script, and content data 830. Also, in one embodiment, the logic for storing different versions of the application in a temporary location in response to detecting actual execution of the resident executable application is further modified, wherein the temporary location is on at least one of a peripheral and a remote network location (832).
Fig. 9 shows one embodiment of a wireless device implementing the method as described in fig. 7. As shown, wireless device 900 contains memory 902, a network interface 904, a processor 906 and a bus 908. Although memory 902 is shown as RAM memory, other embodiments include memory 902 such as all known types of memory known for providing storage of configuration logic. In addition, although memory 802 is shown as one contiguous unit of one type of memory, other embodiments use multiple locations and multiple types of memory as memory 902. Network I/O interface 904 provides input and output to devices coupled to a network via bus 908. The processor 906 operates in accordance with instructions and data provided via the bus 908. In at least one embodiment, the processor 906 is part of the ASIC 52.
Located in memory 902 are: logic 910 for receiving a request to replace a resident executable application with a different version of the application; logic 912 to receive, via a network, different versions of the application; logic 914 for storing different versions of an application in a temporary location in response to receiving the request to replace the application with a different version of a resident executable application; logic 916 to detect actual execution of a resident executable application; logic 918 for terminating actual execution of the resident executable application; logic 920 for overwriting a resident executable application with a different version of the application stored in a temporary location; and logic 922 to initiate actual execution of different versions of the application. In one or more different embodiments, the logic for receiving a request to replace a resident executable application with a different version of the application is further modified such that: wherein the request is initiated (924) by the wireless device; wherein the request is initiated by detection of user input (926); wherein the different version of the application is a previous version (928); and/or wherein the application is at least one of an extension, a script, and content data (930). Also, in one embodiment, the logic for storing the different versions of the application in a temporary location in response to detecting actual execution of the resident executable application is further modified, wherein the temporary location is on at least one of a peripheral and a remote network location (932).
Figure 10 shows one embodiment of a version of a wireless device implementing an automatic application upgrade process, sometimes described as including a continuous search for execution locations in the process of initiating execution of a preferred application. As shown, the wireless device 1000 contains memory 1002, a network interface 1004, a processor 1006 and a bus 1008. Although the memory 1002 is shown as RAM memory, other embodiments include memory 1002 such as all known types of memory known for providing storage of configuration logic. Additionally, although memory 1002 is shown as one contiguous unit of one type of memory, other embodiments use multiple locations and multiple types of memory as memory 1002. The network I/O interface 1004 provides input and output via the bus 1008 to devices coupled to the network. The processor 1006 operates according to instructions and data provided via the bus 1008. In at least one embodiment, the processor 1006 is part of an ASIC 52.
Located in memory 1002 are: logic 1010 to receive a request to replace a resident executable application with a different version of the application; logic 1012 to receive different versions of the application via a network; logic 1014 to, in response to receiving the request to replace the application with a different version of a resident executable application, store the different version of the application in a temporary location; logic 1016 to detect actual execution of a resident executable application in an actual application location; logic 1018 to terminate actual execution of the resident executable application; logic 1020 configured for initiating execution of a first application detected in a continuous search of an upgrade location and an actual application location. In one or more different embodiments, the logic for receiving a request to replace a resident executable application with a different version of the application is further modified such that wherein the request is initiated by the wireless device (1022), wherein the request is initiated by detecting user input (1024), wherein the different version of the application is a previous version (1026), and/or wherein the application is at least one of an extension, a script, and content data (1028). Also, in one embodiment, the logic for storing the different version of the application in an upgrade location in response to receiving the request to replace the application with the different version of the resident executable application is further modified, wherein the upgrade location is on at least one of the peripheral and the remote network location (1030).
In view of the inventive methods, the present invention includes a program resident in a computer readable medium, where the program directs a wireless device having a computer platform to perform the inventive method steps. The computer readable medium may be the memory 56 of the computer platform 50 of the cellular telephone 12 (or other wireless device) or may be in a local database, such as the local database 58 of the cellular telephone 12. Further, the computer readable medium can be in a secondary storage media that is loadable onto a wireless device computer platform, such as a magnetic disk or tape, optical disk, hard disk, flash memory, or other storage media as is known in the art. In the context of fig. 4 and 5, the inventive method may be implemented, for example, by operating portions of the wireless network 14 to execute sequences of machine-readable instructions. The instructions may reside in various types of signal-bearing media. Such signal-bearing medium may comprise, for example, RAM (not shown) accessible by, or residing in, the components of the wireless network 14. Whether contained in RAM, a diskette, or other secondary storage media, the instructions may be stored on a variety of machine-readable data storage media, such as DASD storage (e.g., a conventional "hard disk" or a RAID array), magnetic tape, electronic read-only memory (e.g., ROM, EPROM, or EEPROM), an optical storage device (e.g., CD-ROM, WORM, DVD, digital optical tape), paper "punch" cards, or other suitable data storage media including transmission media such as digital and analog.
While the foregoing disclosure shows illustrative embodiments of the invention, it should be noted that various changes and modifications could be made herein without departing from the scope of the invention as defined by the appended claims. Furthermore, although elements of the invention may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated.
Claims (48)
1. A method for replacing a resident executable application on a wireless device with a different version of the application, comprising:
receiving a request to replace a resident executable application with a different version of the application;
detecting actual execution of the resident executable application;
receiving the different version of the application via a network;
storing the different version of the resident executable application in a temporary location in response to detecting the actual execution of the application;
terminating the actual execution of the resident executable application;
overwriting the resident executable application with the different version of the application stored in the temporary location; and
actual execution of the different version of the application is initiated.
2. The method of claim 1, wherein the request is initiated by the wireless device.
3. The method of claim 1, wherein the request is initiated by detection of a user input.
4. The method of claim 1, wherein the different version of an application is a previous version.
5. The method of claim 1, wherein the application is at least one of an extension, a script, and content data.
6. The method of claim 1, wherein the temporary location is on at least one of a peripheral device and a remote network location.
7. A wireless device containing a resident executable application, comprising:
logic configured to receive a request to replace a resident executable application with a different version of the application;
logic configured to detect actual execution of the resident executable application;
logic configured to receive the different version of the application via a network;
logic configured to store the different version of the resident executable application in a temporary location in response to detecting the actual execution of the application;
logic configured to terminate the actual execution of the resident executable application;
logic configured to overwrite the resident executable application with the different version of the application stored in the temporary location; and
logic configured for initiating actual execution of the different version of the application.
8. The wireless device of claim 7, wherein the request is initiated by the wireless device.
9. The wireless device of claim 7, wherein the request is initiated by detection of a user input.
10. The wireless device of claim 7, wherein the different version of an application is a previous version.
11. The wireless device of claim 7, wherein the application is at least one of an extension, a script, and content data.
12. The wireless device of claim 7, wherein the temporary location is on at least one of a peripheral device and a remote network location.
13. A computer program embodied on a computer readable medium, the computer program capable of replacing a resident executable application on a wireless device with a different version of the application, the computer program comprising:
code operable to receive a request to replace a resident executable application with a different version of the application;
code operable to detect actual execution of the resident executable application;
code operable to receive the different versions of the application program via a network;
code operable to store the different version of the resident executable application in a temporary location in response to detecting the actual execution of the application;
code operable to terminate the actual execution of the resident executable application;
code operable to overwrite the resident executable application with the different version of the application stored in the temporary location; and
code operable to initiate actual execution of the different version of the application.
14. The computer program of claim 13, wherein the application is at least one of an extension, a script, and content data.
15. A wireless device containing a resident application, comprising:
means for receiving a request to replace a resident executable application with a different version of the application;
means for detecting actual execution of the resident executable application;
means for receiving the different versions of the application via a network;
means for storing the different versions of the resident executable application in a temporary location in response to detecting the actual execution of the application;
means for terminating the actual execution of the resident executable application;
means for overwriting the resident executable application with the different version of the application stored in the temporary location; and
means for initiating actual execution of the different version of the application.
16. The wireless device of claim 15, wherein the application is at least one of an extension, a script, and content data.
17. A method of replacing a resident executable application on a wireless device with a different version of the application, comprising:
receiving a request to replace a resident executable application with a different version of the application;
receiving the different version of the application via a network;
storing a different version of a resident executable application in a temporary location in response to receiving the request to replace the application with the different version of the application;
detecting actual execution of the resident executable application;
terminating the actual execution of the resident executable application;
overwriting the resident executable application with the different version of the application stored in the temporary location; and
actual execution of the different version of the application is initiated.
18. The method of claim 17, wherein the request is initiated by the wireless device.
19. The method of claim 17, wherein the request is initiated by detection of a user input.
20. The method of claim 17, wherein the different version of an application is a previous version.
21. The method of claim 17, wherein the resident executable application is at least one of an extension, a script, and content data.
22. The method of claim 17, wherein the temporary location is at least one of a peripheral device and a remote network location.
23. A wireless device containing a resident executable application, comprising:
logic configured to receive a request to replace a resident executable application with a different version of the application;
logic configured to receive the different version of the application via a network;
logic configured to store a different version of a resident executable application in a temporary location in response to receiving the request to replace the application with the different version of the application;
logic configured to detect actual execution of the resident executable application;
logic configured to terminate the actual execution of the resident executable application;
logic configured to overwrite the resident executable application with the different version of the application stored in the temporary location; and
logic configured to initiate actual execution of the different version of the application.
24. The wireless device of claim 23, wherein the request is initiated by the wireless device.
25. The wireless device of claim 23, wherein the request is initiated by detection of a user input.
26. The wireless device of claim 23, wherein the different version of an application is a previous version.
27. The wireless device of claim 23, wherein the resident executable application is at least one of an extension, a script, and content data.
28. The wireless device of claim 23, wherein the temporary location is at least one of a peripheral device and a remote network location.
29. A computer program embodied on a computer readable medium, the computer program capable of replacing a resident executable application on a wireless device with a different version of the application, the computer program comprising:
code operable to receive a request to replace a resident executable application with a different version of the application;
code operable to receive the different versions of the application program via a network;
code operable to store a different version of a resident executable application in a temporary location in response to receiving the request to replace the application with the different version of the application;
code operable to detect actual execution of the resident executable application;
code operable to terminate the actual execution of the resident executable application;
code operable to overwrite the resident executable application with the different version of the application stored in the temporary location; and
code operable to initiate actual execution of the different version of the application.
30. The computer program of claim 29, wherein the application is at least one of an extension, a script, and content data.
31. A wireless apparatus for handling secure communications with a client computing device over a network, comprising:
means for receiving a request to replace a resident executable application with a different version of the application;
means for receiving the different versions of the application over a network;
means for storing a different version of a resident executable application in a temporary location in response to receiving the request to replace the application with the different version of the application;
means for detecting actual execution of the resident executable application;
means for terminating the actual execution of the resident executable application;
means for overwriting the resident executable application with the different version of the application stored in the temporary location; and
means for initiating actual execution of the different version of the application.
32. The wireless device of claim 31, wherein the application is at least one of an extension, a script, and content data.
33. A method of replacing a resident executable application on a wireless device with a different version of the application, comprising:
receiving a request to replace a resident executable application with a different version of the application;
receiving the different version of the application via a network;
storing a different version of a resident executable application in an upgraded location in response to receiving the request to replace the application with the version of the application;
detecting actual execution of the resident executable application in an actual application location;
terminating the actual execution of the resident executable application; and
initiating execution of a first application detected in a continuous search of the upgrade location and the actual application location.
34. The method of claim 33, wherein the request is initiated by the wireless device.
35. The method of claim 33, wherein the request is initiated by detection of a user input.
36. The method of claim 33, wherein the different version of an application is a previous version.
37. The method of claim 33, wherein the resident executable application is at least one of an extension, a script, and content data.
38. The method of claim 33, wherein the temporary location is at least one of a peripheral device and a remote network location.
39. A wireless device containing a resident executable application, comprising:
logic configured to receive a request to replace a resident executable application with a different version of the application;
logic configured to receive the different version of the application via a network;
logic configured to store a different version of a resident executable application in an upgraded location in response to receiving the request to replace the application with the version of the application;
logic configured to detect actual execution of the resident executable application in an actual application location;
logic configured to terminate the actual execution of the resident executable application; and
logic configured to initiate execution of a first application detected in a continuous search of the upgrade location and the actual application location.
40. The wireless device of claim 39, wherein the request is initiated by the wireless device.
41. The wireless device of claim 39, wherein the request is initiated by detection of a user input.
42. The wireless device of claim 39, wherein the different version of application is a previous version.
43. The wireless device of claim 39, wherein the resident executable application is at least one of an extension, a script, and content data.
44. The wireless device of claim 39, wherein the upgrade location is at least one of a peripheral device and a remote network location.
45. A computer program embodied on a computer readable medium, the computer program capable of replacing a resident executable application on a wireless device with a different version of the application, the computer program comprising:
code operable to receive a request to replace a resident executable application with a different version of the application;
code operable to receive the different versions of the application program via a network;
code operable to store a different version of a resident executable application in an upgraded location in response to receiving the request to replace the application with the version of the application;
code operable to detect actual execution of the resident executable application in an actual application location;
code operable to terminate the actual execution of the resident executable application; and
code operable to initiate execution of a first application detected in a continuous search of the upgrade location and the actual application location.
46. The computer program of claim 45, wherein the application is at least one of an extension, a script, and content data.
47. A wireless device containing a resident executable application, comprising:
means for receiving a request to replace a resident executable application with a different version of the application;
means for receiving the different versions of the application via a network;
means for storing a different version of a resident executable application in an upgraded location in response to receiving the request to replace the application with the version of the application;
means for detecting actual execution of the resident executable application in an actual application location;
means for terminating the actual execution of the resident executable application; and
means for initiating execution of a first application detected in a continuous search of the upgrade location and the actual application location.
48. The wireless device of claim 47, wherein the application is at least one of an extension, a script, and content data.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60/515,802 | 2003-10-29 | ||
US10/969,507 | 2004-10-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
HK1108296A true HK1108296A (en) | 2008-05-02 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100915564B1 (en) | Method, software and apparatus for application upgrade during execution | |
CN1555645A (en) | System and method for temporary deletion and reloading of application program components on a wireless device | |
KR100984599B1 (en) | System and method for application disable / restore management | |
CN1197004C (en) | Management program of JAVA application program for embedded system | |
JP4865835B2 (en) | Method, software, and apparatus for performing actions on a wireless device using action lists and versioning | |
JP2005500607A5 (en) | ||
CN101051912A (en) | Data automatic updating method | |
CN1918932A (en) | Preferred Roaming List Update in Subscriber Identity Module/Removable Subscriber Identity Module Card | |
CA2511056A1 (en) | System for registry-based automatic installation and component handling on a device | |
HK1108296A (en) | Method, software and apparatus for application upgrade during execution | |
CN1426554A (en) | Method for ensuring compatibility and method for data protection in a distributed computer system containing multiple computer subsystems | |
HK1070218A (en) | System and method for temporary application component deletion and reload on a wireless device | |
KR100864387B1 (en) | System and apparatus for temporary application component deletion and reloading on wireless devices | |
KR100865640B1 (en) | System and apparatus for temporary application component deletion and reloading on wireless devices | |
CN101069155A (en) | Method, software and apparatus for application upgrade during execution | |
AU2002356071A1 (en) | System for updating software in a wireless device | |
MXPA06004669A (en) | Method, software and apparatus for application upgrade during execution | |
HK1088475A (en) | System and method for updating dataset versions resident on a wireless device |