Description of the preferred embodiments
The features, objects, and advantages of the present invention will become more apparent to those skilled in the art from the following detailed description taken in conjunction with the accompanying drawings. As described above, the present invention relates to network initiated uninstallation of one or more target applications on a remote module, such as a wireless telephone.
Hardware component and interconnect
Wireless telephone
Referring to fig. 1, the present invention is illustrated in the context of a wireless telephone 100. The radiotelephone 100 is used as an example and not for limitation. The invention may also be implemented on any form of remote module capable of communicating over a wireless network, including without limitation, Personal Digital Assistants (PDAs), wireless modems, PCMCIA cards, access terminals, personal computers, telephones without a display or keypad, or any combination or sub-combination thereof. These examples of remote modules may also have a user interface (such as a keyboard, video card or sound card).
The example radiotelephone 100 shown in fig. 1 includes a microprocessor, logic circuit, discrete circuit element integration, Application Specific Integrated Circuit (ASIC), or other data processing entity. In the example of fig. 1, the processing entity is implemented as an ASIC102 installed in the manufacture of the radiotelephone 100. An ASIC is a hardware component driven by software therein. The processing circuitry may also include an API (e.g., API104 installed in the wireless telephone 100 at the time of manufacture). The API104 is a software layer configured to interact with the ASIC and runs on the ASIC hardware. The API104 serves as an interface between the ASIC102 hardware and an application 108 (discussed below) installed on the wireless telephone 100. Alternatively, the radiotelephone 100 includes any other form of circuitry that enables the program to operate in a manner that matches the hardware configuration of the radiotelephone 100. The radiotelephone 100 also includes a memory 106. The memory 106 includes RAM and ROM, but alternatively may be any form of memory such as EPROM, EEPROM, or a flash card plug-in.
Referring to fig. 1, a manufacturer (not shown) of the radiotelephone 100 downloads an application 108 to the memory 106 of the radiotelephone 100 when the radiotelephone 100 is manufactured. The application 108 includes a game, book, or any other type of data or software program. The application 108 may also be downloaded wirelessly to the radiotelephone 100 after the radiotelephone 100 is manufactured.
The manufacturer downloads the recall program 110 to the memory 106 of the wireless telephone 100 when the wireless telephone 100 is manufactured. The recall program 110 may also be installed wirelessly after the radiotelephone 100 is manufactured.
As described in greater detail below, the recall program 110, when executed by the wireless telephone 100, uninstalls one or more target application programs 109 stored on the wireless telephone 100. The target application 109 is the application 108 that needs to be uninstalled from the wireless telephone 100 for a variety of reasons, as described below. The recall program 110 may additionally or alternatively be programmed to disable the target application program 109 or reprogram it for different capabilities.
In another embodiment described below, the wireless telephone 100 is programmed to periodically poll the recall command source 222 (discussed in conjunction with FIG. 2) for instructions to recall the target application 109. In this embodiment, the recall polling program 111 is downloaded to the memory 106 of the wireless telephone 100 when the wireless telephone 100 is manufactured. Recall that the polling routine 111 is software that executes itself at various intervals. The recall polling routine 111 is automatically executed whenever the user turns on the radiotelephone 100 and/or at periodic intervals while the user is operating the radiotelephone 100 and/or at programmed predetermined times, such as predetermined dates or times.
The radiotelephone 100 also includes a manufacturer installed local database 112. FIG. 3b illustrates example contents of the local database 112. The local database 112 includes at least a record of the application identification 302 specific to each application program 108 stored on the radiotelephone 100. In addition, the local database 112 includes a record of the location 314 of the applications 108 in the memory 106 of the wireless telephone 100 and any other information useful for recording which applications 108 are downloaded to the wireless telephone 100 and where they are located.
The application identification 302 of the application program 108 maintained in the local database 112 corresponds to the same application identification 302 of the application program 108 maintained in the program management database 204 (fig. 2, discussed below). For example, the application identification 302 of the application 108 maintained on the program management database 204 for "race car 104Z" is equivalent to the application identification 302 of the application 108 on the local database 112 on the wireless telephone 100.
The wireless telephone 100 also includes a download client 114. The download client 114 is an application within the API104 that indicates where each application 108 is stored when wirelessly downloaded onto the wireless telephone 100. The download client 114 also maintains a record of where each application 108 is stored in the memory 106 of the wireless telephone 100.
Network
Fig. 2 shows an example of a network 200 through which a network initiated recall command 216 is broadcast to a wireless telephone 100 with a targeted application program 109. The network 200 includes various components linked in various ways. The network 200 described below is merely exemplary. For use with the present invention, network 200 includes any system in which remote modules, such as wireless telephones 100, communicate wirelessly with each other and/or with components of a wireless network, including without limitation, wireless network carriers and/or servers.
Referring to fig. 2, network 200 includes a program manager 202 on one side. The program manager 202 is any entity (company) that has developed the API104 and provides the manufacturer of the wireless telephone 203 with the option to install on the wireless telephone 203. The program manager 202 is also the entity that verifies that the application program 108 matches the API104 installed on the wireless telephone 203.
Program manager 202 maintains program management database 204. An exemplary content of the program management database 204 is shown in fig. 3 a. Program management database 204 includes at least a record of an application identification 302 representing each application 108 downloaded to each wireless telephone 203 of network 200 at any one time, an Electronic Service Number (ESN)304 representing the person downloading application 108, and a Mobile Identification Number (MIN)306 unique to the wireless telephone 203 carrying application 108. Alternatively, the program management database 204 contains records of the wireless phone model 308, the wireless network carrier 310, the wireless phone usage area 312, and other information used to identify which wireless phones 203 carry which application programs 108.
Program manager 202 also includes recall command source 222. Recall command source 222 is a person or entity that makes a decision to recall one or more target applications 109. The recall command source 222 is also the entity that establishes the recall command 216 (discussed below) broadcast to the identified wireless telephones 100 with the targeted application program 109. Or, without limitation, recall command source 222 is one or more persons or entities involved in the development and release of the targeted application program 109, persons or entities involved in the production of the wireless telephone 203, persons or entities involved in the functionality of components of the network 200 and/or any component of the network 200.
The program manager 202 communicates with one or more computer servers 206 via a network over the internet 208 (preferably secured). The server 206 also communicates with a carrier network 210 via a network over the internet 208. The carrier network 210 controls messages sent to a traffic controller (MSC) 212. The carrier network 210 communicates with the MSC212 via the internet and POTS (plain old telephone system) (collectively 211 in fig. 2). The internet connection 211 between the carrier network 210 and the MSC212 transfers data, while the POTS211 transfers voice information. MSC212, in turn, is coupled to a plurality of base stations (BTSs) 214. The MSC212 is connected to the BTS by the internet 211 (for data transmission) and POTS211 (for voice information). BTS214 wirelessly broadcasts messages to radiotelephones 203 via Short Message Service (SMS) or other wireless methods.
One example of a message broadcast by BTS214 in the present invention is a recall command 216. As discussed further herein, the wireless telephone 100 with the targeted application program 109 uninstalls the program 109 stored on the wireless telephone 100 in response to receiving the recall command 216. The recall command 216 is established by a recall command source (which may or may not be the person or entity that makes the decision to initiate recall of the target application 109). Recall command 216 is sent by recall command source 222 over network 200 to be broadcast to wireless telephones 100 with targeted application programs 109.
Another example of a message broadcast by BTS214 is a recall message 218. As discussed further herein, the recall message 218 is a message sent by the recall command source 222 over the network 200 to the wireless telephone 100 with the targeted application program 109. In response to the recall message 218, the wireless telephone 100 automatically communicates with a recall command source 222. The recall command source 222 sends at least an identification of the target application program 109 and an instruction to the wireless telephone 100 to uninstall the target application program 109. In response to receiving the information, the wireless telephone 100 uninstalls the target application 109. Alternatively, the recall command source 222 sends an instruction to the wireless telephone 100 to retrieve the identification of the target application program 109 from another component of the network 200, including without limitation the server 206.
As shown in fig. 2, the network 200 includes a number of radiotelephones 203, each of which is capable of wirelessly communicating with various other network components 200 via a BTS 214. In the present invention, the identified wireless telephone 100 contains a target application 109 that is recalled using a recall command 216 or a recall message 218 initiated by a portion of the network 200 other than the wireless telephone 203 itself. However, in another embodiment, the recall process is initiated by the wireless telephone 224 with the recall polling program 111. This alternative method of performing a recall is discussed below.
Operation of
In addition to the various hardware embodiments described above, a different aspect of the invention relates to a method of establishing a wireless telephone 100 (including a recall program 110 resident therein), and a method of remotely initiating a recall of one or more target application programs 109 resident in the wireless telephone 100.
Wireless telephone set-up, configuration and use
Fig. 4 is a sequence 400 illustrating one example of the setup, configuration and use of the wireless telephone 100 in which the recall program 110 resides. For ease of illustration and not limitation, the example of FIG. 4 is described in the context of the above-described hardware environment.
In step 402, the radiotelephone 100 is built by the manufacturer. In step 404, the manufacturer downloads the recall program 110 to the memory 106 of the wireless telephone 100. The manufacturer also downloads one or more applications 108 to the wireless telephone 100, step 404.
In step 406, the program manager 202 updates the program management database 204 to include a record representing the application identification 302 of each application program 108 downloaded to each of the produced wireless telephones 100. This information comes directly from the manufacturer.
In step 408, the wireless telephone 100 wirelessly receives a download of one or more applications 108. While the application 108 is verified by the program manager 202, the actual program is maintained at the carrier network 210 (which may be maintained at any location in the network 200 where the application 108 can be sent to the BTS214 for broadcast to the wireless telephones 100). The user of the radiotelephone 100 operates the radiotelephone 100 to communicate with the server 206 over the network 200 to select the desired application 108. In response, the carrier network 210 sends the application 108 to the MSC212 for delivery to the BTS214 which broadcasts the application 108 to the radiotelephone 100.
In response to the radiotelephone 100 receiving the application 108, the download client 114 on the radiotelephone 100 directs the application 108 to a particular location (where the application 108 is stored) in the memory 106 of the radiotelephone 100.
Also in step 408, either the server 206 or the carrier network 210 transmits the application identification 302 specific to the application program 108 that has been downloaded onto the wireless telephone 100 to the program manager 202. The program manager 202 updates the program management database 204 with a record representing the application identification 302 of the additional application program 108 (step 406) that has been downloaded onto the wireless telephone 100.
In step 409, the radiotelephone 100 updates its local database 112 to include a record of the application identification 302 that is unique to the application 108 that has been downloaded onto the radiotelephone 100. Thus, the record of the application identification 302 maintained on the wireless telephone 100 in the local database 112 is equivalent to the record of the application identification 302 maintained on the wireless telephone 100 in the program management database 204.
In step 410, the radiotelephone 100 is operated to transmit and/or run the application 108 stored on the radiotelephone 100. For example, a telephone call is initiated after operating the radiotelephone 100 to run the game tetris o.
In step 412, the radiotelephone 100 is reconfigured to store additional or fewer applications 108. If the radiotelephone 100 is operated to add an application 108, the update to the application identification 302 in steps 408 and 406 is repeated.
Conversely, if the radiotelephone 100 is operated to delete one or more applications 108, the radiotelephone 100 directs the download client 114 to locate the application 108 for deletion and uninstall the application 108, step 414. Upon deletion of the application 108, the wireless telephone 100 automatically updates its local database 112 to delete the record of the application identification 302 representing the deleted application 108. The wireless telephone 100 also automatically sends information to the program manager 202 over the network 200 informing the program manager 202 of the deleted application 108. In response, program manager 202 updates the record corresponding to application identification 302 of wireless telephone 100 maintained in program management database 204 (step 406).
In step 416, the recall command source 222 determines to recall one or more applications 108, as opposed to user manipulation of the wireless telephone 100 to delete an application 108 from the wireless telephone 100. In step 418, recall command source 222 initiates a recall process (described below) and sequence 400 ends.
Recall command
Figure 5 shows a sequence 500 illustrating one example of establishing the recall command 216 and sending the recall command 216 over the network 200 to broadcast a recall command source 222 identified as having a targeted application 109 to be uninstalled or disabled. For ease of illustration and without limitation, the example of FIG. 5 is described in the context of the hardware environment of FIGS. 1-3.
In step 502, recall command source 222 determines whether recall criteria for one or more target applications 109 are met. The recall command source 222 initiates recall in many circumstances, such as any component of the network 200 notifying that the wireless telephone 100 in the network 200 is not functioning properly and/or colliding when the user operates the target application 109; the developer of the target application 109 contacts any component of the network 200 to notify it of the error in the target application 109; the wireless telephone user contacts any component of the network 200 to complain about the target application 109; any component of the network 200 receives statistical feedback on the problem with the interaction between the target application 109 and other applications 108 on the wireless phone; discovering software viruses in the target application 109; and/or that user manipulation of the target application 109 increases the amount of radio frequency in the wireless telephone 100 resulting in the operation of the target application 109 constituting a safety hazard.
The actual decision to recall made by recall command source 222 is determined by an individual, committee, or electronically (e.g., based on statistical feedback from wireless telephone 100 or other portions of network 200) at step 502. The recall range depends on the nature of the problem and the number of radiotelephones 100 affected by the problem. For example, the recall extends to all radiotelephones 203 in the network 200, all radiotelephones 100 within a particular geographic area, a dedicated radiotelephone 100 type, a series of ESNs 304, or a single radiotelephone 100.
At step 504, recall command source 222 contacts program manager 202 to obtain unique application identification 302 representing the target application program 109 (assuming that this information is not already available to recall command source 222). In step 506, program manager 202 searches program management database 204 which maintains application identification 302 representing each application program stored on each wireless telephone 100 in network 200. By searching the application identification 302 of the target application program 109 in the program management database 204, the program manager 202 determines exactly which wireless telephones 100 in the network 200 contain the target application program 109, and this information is communicated by the program manager 202 to the recall command source 222.
In step 508, recall command source 222 creates recall command 216. The recall command 216 contains at least an application identification 302 representing the target application program 109 and an instruction to the wireless telephone 100 to uninstall the target application program 109. Recall command 216 is written as an SMS, but may be in any form that is sent from program manager 202 to BTS214 and broadcast wirelessly to wireless telephone 100. Alternatively, recall command source 222 may send information needed to establish recall command 216 to BTS214 via network 200, and BTS214 may in turn establish recall command 216.
In step 510, recall command 216 is established and after BTS214, BTS214 broadcasts recall command 216 to the identified wireless telephones 100. The instruction to broadcast may be included as part of the recall command 216 or programmed independently at the BTS 214. The BTS broadcasts the recall command 216 at any cellular interface, including AMPS, PCS, GSM or CDMA.
In step 512, the wireless telephone 100 receives the recall command 216 and in response, the wireless telephone 100 automatically uninstalls the targeted application program 109, as described below.
Recall message
Instead of the recall command source 222 establishing the recall command 216 containing all the information required by the wireless telephone 100 to uninstall the targeted application program 109, the recall command source 222 establishes and broadcasts a more limited recall message 218. The recall message 218 is a message to the wireless telephone 100 instructing the wireless telephone 100 to automatically initiate communication with the recall command source 222. These communications are transparent to the user of the radiotelephone 100. The recall command source 222, in turn, provides the wireless telephone 100 with sufficient information to identify the targeted application program 109 to uninstall and provides instructions to uninstall the targeted application program 109. The recall command source 222 also provides the wireless telephone 100 with the recall program 110 necessary to uninstall the targeted application program 109. In response to receiving the identification of the target application program 109 (and, optionally, the recall program 110), the wireless telephone 100 uninstalls the target application program 109 in the following manner.
Alternatively, the recall command source 222 sends the recall message 218 to the wireless telephone 100 containing instructions to retrieve information needed to uninstall the targeted application program 109 from another component of the network 200, including without limitation the server 206. Transparent to the user of the wireless telephone 100, in response to the recall message 218, the wireless telephone 100 obtains from another component of the network 200 the identification of the targeted application program 109, instructions to uninstall the targeted application program 109, and optionally, the recall program 110.
Polling for recall commands
In another embodiment, the recall process is initiated by the wireless telephone 224 itself as an alternative to the recall process initiated by the recall command source 222. In this embodiment, the wireless telephone 224 causes the recall polling program 111 to be downloaded to the telephone 224. The wireless telephone 224 automatically executes the recall polling program 111 at various intervals so that the wireless telephone 224 continually checks for instructions to uninstall the targeted application program 109.
When executed, the recall polling program 111 causes the wireless telephone 224 to automatically wirelessly send a message to the recall command source 222. Recall command source 222 is a person, entity, or component of network 200 that makes the decision to recall one or more target applications 109. Or, without limitation, recall command source 222 is one or more persons or entities involved in the development and release of the targeted application program 109, persons or entities involved in the production of the wireless telephone 203, persons or entities involved in the functionality of components of the network 200 and/or any component of the network 200.
The polling message sent by the wireless telephone 224 to the recall command source 222 requests that the recall command source 222 send the recall command 216 to the wireless telephone 224 to uninstall the targeted application program 109. The "polling" for the recall command 216 may be performed in various ways. For example, the polling message sent by the wireless telephone 224 includes identification information for the wireless telephone 224 that is sufficient for the recall command source 222 to determine which application programs 108 to download to a particular wireless telephone 224. The recall command source 222 makes the determination by referencing the program management database 204 that contains information for each application program 108 downloaded onto each wireless telephone 203 in the network 200. If recall command source 222 determines that the application program 108 downloaded to a particular wireless telephone 224 matches the target application program 109, recall command source 222 sends a recall command 216. If not, recall command source 222 does not send recall command 216.
Instead, the recall command source 222 automatically sends the existing recall command 216 to the wireless telephone 224 in response to receiving a polling message from the wireless telephone 224. Upon receiving the recall command 216, the wireless telephone 224 determines whether the targeted application program 109 is resident on the wireless telephone 224. If so, the wireless telephone 224 uninstalls the target application 109.
As with the previous embodiment, the recall command 216 sent in response to the polling message includes at least an application identification 302 representing the target application program 109 and instructions to the wireless telephone 224 to uninstall the program. Alternatively, the recall command 216 directs the wireless telephone 224 to send a message to another component of the network 200 (such as the server 206) to obtain the information needed to complete the recall. As another alternative, an abbreviated version of recall command 216 may be executed: recall command 216 includes information indicating the identity of application 108 to be uninstalled, the recall command appearing only in recall command source 222 as an implicit instruction for the phone to execute the command.
Uninstallation of target applications
Figure 6 shows a sequence 600 illustrating one example of the uninstallation of the target application program 109 stored on the wireless telephone 100 after the wireless telephone 100 receives the recall command 216 or receives the identity of the target application program 109 and instructions to uninstall the program.
For ease of illustration and without limitation, the example of FIG. 6 is described in the context of the hardware environment described in FIGS. 1-3. In step 602, the radiotelephone 100 receives a recall command 216 broadcast from a BTS214 in the network 200.
In response to receiving the recall command 216 (or the identity of the target application program 109 and instructions to uninstall the program), the download client 114 of the wireless telephone 100 interprets the recall command 216 to determine the application identification 302 representing the target application program 109, step 604. The download client 114 sends a recall command 216 to the recall program 110 installed on the wireless telephone 100. The download client 114 also transmits information to the recall program 110 indicating the location of the target application program 109 in memory 106.
In step 606, the recall command 216 reaches the recall program 110, where it causes the recall program to execute and automatically uninstall the targeted application program 109. Alternatively, the recall program 110 disables the target application 109 or takes other action so that the target application 109 is no longer operational. Recall program 110 is also programmed to delete recall command 216 after the uninstallation is complete.
In step 608, the wireless telephone 100 automatically reports the completed uninstallation of the targeted application program 109 to the recall command source 222. The report is done by SMS or any other form of wireless message sent over the network 200.
In step 610, recall command source 222 transmits a confirmation of the uninstall to program manager 202 (this step assumes that recall command source 222 and program manager 202 are not the same entity). Program manager 202 updates program management database 204 to reflect the fact that: the wireless telephone 100 no longer contains the target application 109 in an operable form. To do so, the program manager 202 deletes the application identification 302 representing the target application program 109 from the list of application programs 108 downloaded to the particular wireless telephone 100.
In step 612, the radiotelephone 100 optionally automatically reports to the user of the radiotelephone 100 that the target application 109 is no longer operational and/or has been uninstalled. The form and wording of the report is included in the recall command 216 and the recall program 110 of the wireless telephone 100 is programmed to cause the wireless telephone 100 to report to the user in response to the instructions in the recall command 216. The report contains the reason for the recall. The report also directs the user of the radiotelephone 100 to a customer service department or any third party to obtain information regarding the recall.
Signal bearing medium/circuit
As described above, the present invention relates to a method that includes network initiated uninstallation of one or more target application programs 109 resident on a child wireless telephone 100 and the establishment of the wireless telephone 100 (including a recall program 110 resident thereon). The present invention also relates to a method for the wireless telephone 224 to poll the network 200 for a recall command 216 to uninstall the targeted application program 109 and to establish the wireless telephone 224 on which the recall polling program 111 resides.
In the context of fig. 1-3, the methods are implemented, for example, by operating the network 200 to execute a sequence of machine-readable instructions. These instructions may reside in various types of signal-bearing media. The signal bearing media includes, for example, RAM (not shown) accessible by, or residing within, the components of the network 200. Alternatively, the instructions may be contained in another signal-bearing medium, such as a magnetic data storage diskette (not shown). Whether in RAM, a diskette, or elsewhere, 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 signal-bearing media including transmission media such as digital and analog.
With respect to the wireless telephone 203, the methods discussed herein are implemented using any type of circuitry, microprocessor, or other type of hardware in the wireless telephone 203.
Other embodiments
While the foregoing disclosure shows illustrative embodiments of the invention, it will be apparent to those skilled in the art that various changes and modifications can 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).