U.S. patent application number 16/105617 was filed with the patent office on 2019-02-21 for method and apparatus for remote control and updating of wireless mobile devices.
The applicant listed for this patent is Gula Consulting Limited Liability Company. Invention is credited to Ronald J. CRASWELL, Paul J. KLASSEN., David S. PRATT, JR..
Application Number | 20190058789 16/105617 |
Document ID | / |
Family ID | 32096220 |
Filed Date | 2019-02-21 |
![](/patent/app/20190058789/US20190058789A1-20190221-D00000.png)
![](/patent/app/20190058789/US20190058789A1-20190221-D00001.png)
![](/patent/app/20190058789/US20190058789A1-20190221-D00002.png)
![](/patent/app/20190058789/US20190058789A1-20190221-D00003.png)
![](/patent/app/20190058789/US20190058789A1-20190221-D00004.png)
![](/patent/app/20190058789/US20190058789A1-20190221-D00005.png)
![](/patent/app/20190058789/US20190058789A1-20190221-D00006.png)
![](/patent/app/20190058789/US20190058789A1-20190221-D00007.png)
![](/patent/app/20190058789/US20190058789A1-20190221-D00008.png)
United States Patent
Application |
20190058789 |
Kind Code |
A1 |
CRASWELL; Ronald J. ; et
al. |
February 21, 2019 |
METHOD AND APPARATUS FOR REMOTE CONTROL AND UPDATING OF WIRELESS
MOBILE DEVICES
Abstract
A method and apparatus are provided to in one aspect update data
on a wireless mobile device. Available updates may include both
mandatory and discretionary updates, where the mandatory updates
are always installed on the wireless mobile device. In another
aspect, a method and apparatus for of remotely instructing a
wireless mobile device to perform a service is provided. The
wireless mobile device receives a ping message that instructs it to
retrieve further instruction for performing services actions on the
wireless mobile device.
Inventors: |
CRASWELL; Ronald J.;
(Redmond, WA) ; PRATT, JR.; David S.; (Seattle,
WA) ; KLASSEN.; Paul J.; (Newcastle, WA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Gula Consulting Limited Liability Company |
Wilmington |
DE |
US |
|
|
Family ID: |
32096220 |
Appl. No.: |
16/105617 |
Filed: |
August 20, 2018 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
14799007 |
Jul 14, 2015 |
10057415 |
|
|
16105617 |
|
|
|
|
10538794 |
Jun 13, 2005 |
|
|
|
PCT/US2003/032284 |
Oct 10, 2003 |
|
|
|
14799007 |
|
|
|
|
60417905 |
Oct 10, 2002 |
|
|
|
60417858 |
Oct 10, 2002 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
H04W 8/245 20130101;
H04M 3/42144 20130101; G06F 8/65 20130101; H04M 3/42178 20130101;
H04W 8/22 20130101; H04M 1/72525 20130101 |
International
Class: |
H04M 3/42 20060101
H04M003/42; H04W 8/24 20090101 H04W008/24; G06F 8/65 20180101
G06F008/65; H04M 1/725 20060101 H04M001/725 |
Claims
1. A wireless computing apparatus, designed to be mobile, and
configured to perform one or more remote services, comprising: a
processor; and a memory device having stored therein
computer-executable instructions designed to cause the processor to
perform operations including: determining that a message received
from a remote source by the wireless computing apparatus is a
service message for the wireless computing apparatus; requesting
and obtaining further instructions from the remote source, directed
to an action for at least one service selected from the group
consisting of backup services, mobile services, and update
services; and performing the action on the wireless computing
apparatus.
2. The wireless computing apparatus of claim 1, wherein the
requesting is elicited by the determining that the message received
is a service message.
3. The wireless computing apparatus of claim 1, wherein the action
associated with an update service comprises: requesting available
updates; receiving an update catalog for available updates, wherein
the updates are selected from the group consisting of discretionary
updates and mandatory updates; receiving and installing any
mandatory updates; and depicting representations of any
discretionary updates determined by the wireless computing
apparatus to be relevant in a user-selectable manner.
4. The wireless computing apparatus of claim 3, wherein the action
associated with an update service further comprises: enabling a
user of the wireless computing apparatus to select a discretionary
update from the representations; and obtaining and installing the
selected discretionary update.
5. The wireless computing apparatus of claim 3, wherein the
relevance of a discretionary update is determined based on a
current state of the wireless computing apparatus.
6. The wireless computing apparatus of claim 5, wherein the current
state comprises software currently installed on the wireless
computing apparatus.
7. The wireless computing apparatus of claim 1, wherein the
performing occurs automatically upon receipt of the further
instructions.
8. The wireless computing apparatus of claim 7, wherein a user of
the wireless computing apparatus is not informed about the
performing.
9. The wireless computing apparatus of claim 1, wherein the action
associated with a backup service comprises backing up at least a
portion of a memory of the wireless computing apparatus.
10. The wireless computing apparatus of claim 1, wherein the action
associated with an updating service comprises erasing a portion of
a memory of the wireless computing apparatus.
11. The wireless computing apparatus of claim 10, wherein the
erasing comprises erasing, as a mandatory update, a program that
the wireless computing apparatus is not authorized to have.
12. The wireless computing apparatus of claim 1, wherein the action
associated with a mobile service comprises locking the wireless
computing apparatus.
13. The wireless computing apparatus of claim 1, wherein the action
associated with a mobile service comprises erasing data contained
in at least one memory device of the wireless computing
apparatus.
14. The wireless computing apparatus of claim 1, wherein the action
associated with a mobile service comprises one or more
security-related actions.
15. A non-transitory computer-readable medium storing
computer-executable instructions designed to cause a processor of a
wireless computing apparatus to perform operations including:
determining that a message received from a remote source by the
wireless computing apparatus is a service message for the wireless
computing apparatus; requesting and obtaining further instructions
from the remote source, directed to an action for at least one
service selected from the group consisting of backup services,
mobile services, and update services; and performing the action on
the wireless computing apparatus.
16. The medium of claim 15, wherein the requesting is elicited by
the determining that the message received is a service message.
17. The medium of claim 15, wherein the action associated with an
update service comprises: requesting available updates; receiving
an update catalog for available updates, wherein the updates are
selected from the group consisting of discretionary updates and
mandatory updates; receiving and installing any mandatory updates;
and depicting representations of any discretionary updates
determined by the wireless computing apparatus to be relevant in a
user-selectable manner.
18. The medium of claim 17, wherein the action associated with an
update service further comprises: enabling a user of the wireless
computing apparatus to select a discretionary update from the
representations; and obtaining and installing the selected
discretionary update.
19. The medium of claim 17, wherein the relevance of a
discretionary update is determined based on a current state of the
wireless computing apparatus.
20. The medium of claim 19, wherein the current state comprises
software currently installed on the wireless computing
apparatus.
21. The medium of claim 15, wherein the performing occurs
automatically upon receipt of the further instructions.
22. The medium of claim 21, wherein a user of the wireless
computing apparatus is not informed about the performing.
23. The medium of claim 15, wherein the action associated with a
backup service comprises backing up at least a portion of a memory
of the wireless computing apparatus.
24. The medium of claim 15, wherein the action associated with an
updating service comprises erasing a portion of a memory of the
wireless computing apparatus.
25. The medium of claim 24, wherein the erasing comprises erasing,
as a mandatory update, a program that the wireless computing
apparatus is not authorized to have.
26. The medium of claim 15, wherein the action associated with a
mobile service comprises locking the wireless computing
apparatus.
27. The medium of claim 15, wherein the action associated with a
mobile service comprises erasing data contained in at least one
memory device of the wireless computing apparatus.
28. The medium of claim 15, wherein the action associated with a
mobile service comprises one or more security-related actions.
29. A method of remote instruction of a wireless computing
apparatus to perform a service, the method comprising: determining
that a message received from a remote source by the wireless
computing apparatus is a service message for the wireless computing
apparatus; requesting and obtaining further instructions from the
remote source, directed to an action for at least one service
selected from the group consisting of backup services, mobile
services, and update services; and performing the action on the
wireless computing apparatus.
30. The method of claim 29, wherein the requesting is elicited by
the determining that the message received is a service message.
31. The method of claim 29, wherein the action associated with an
update service comprises: requesting available updates; receiving
an update catalog for available updates, wherein the updates are
selected from the group consisting of discretionary updates and
mandatory updates; receiving and installing any mandatory updates;
and depicting representations of any discretionary updates
determined by the wireless computing apparatus to be relevant in a
user-selectable manner.
32. The method of claim 31, wherein the action associated with an
update service further comprises: enabling a user of the wireless
computing apparatus to select a discretionary update from the
representations; and obtaining and installing the selected
discretionary update.
33. The method of claim 31, wherein the relevance of a
discretionary update is determined based on a current state of the
wireless computing apparatus.
34. The method of claim 33, wherein the current state comprises
software currently installed on the wireless computing
apparatus.
35. The method of claim 29, wherein the performing occurs
automatically upon receipt of the further instructions.
36. The medium of claim 35, wherein a user of the wireless
computing apparatus is not informed about the performing.
37. The method of claim 29, wherein the action associated with a
backup service comprises backing up at least a portion of a memory
of the wireless computing apparatus.
38. The method of claim 29, wherein the action associated with an
updating service comprises erasing a portion of a memory of the
wireless computing apparatus.
39. The method of claim 38, wherein the erasing comprises erasing,
as a mandatory update, a program that the wireless computing
apparatus is not authorized to have.
40. The method of claim 29, wherein the action associated with a
mobile service comprises locking the wireless computing
apparatus.
41. The method of claim 29, wherein the action associated with a
mobile service comprises erasing data contained in at least one
memory device of the wireless computing apparatus.
42. The method of claim 29, wherein the action associated with a
mobile service comprises one or more security-related actions.
43. A wireless communication server, comprising: a processor; and a
memory device having stored therein computer-executable
instructions designed to cause the processor to perform operations
including:: transmitting a service message to a wireless computing
apparatus; and in response to receiving a request for further
instructions from the wireless computing apparatus, transmitting
further instructions directed to an action for at least one service
selected from the group consisting of backup services, mobile
services, and update services.
44. The wireless communication server of claim 43, wherein, in
conjunction with the action associated with an update service, the
operations further comprise: transmitting to the wireless computing
apparatus, in response to a request for available updates received
from the wireless computing apparatus, an update catalog for
available updates, wherein the updates are selected from the group
consisting of discretionary updates and mandatory updates; and
transmitting the mandatory updates to the wireless computing
apparatus.
45. The wireless communication server of claim 44, wherein, in
conjunction with the action associated with an update service, the
operations further comprise: transmitting at least one
discretionary update to the wireless computing apparatus, in
response to receiving a request for the at least one discretionary
update from the wireless computing apparatus.
46. The wireless communication server of claim 43, wherein, in
conjunction with the action associated with a backup service, the
operations further comprise transmitting an indication of whether
to backup or to erase all or a portion of memory of the wireless
computing apparatus.
47. The wireless communication server of claim 46, wherein a
portion of memory to erase corresponds to a program that the
wireless communication apparatus is not authorized to have.
48. The wireless communication server of claim 43, wherein, in
conjunction with the action associated with a mobile service, the
operations further comprise transmitting instructions to lock the
wireless computing apparatus.
49. The wireless communication server of claim 43, wherein, in
conjunction with the action associated with a mobile service, the
operations further comprise transmitting instructions to the
wireless computing apparatus corresponding to one or more
security-related actions.
50. A non-transitory computer-readable medium storing
computer-executable instructions designed to cause a processor to
perform operations including: transmitting a service message to a
wireless computing apparatus; and in response to receiving a
request for further instructions from the wireless computing
apparatus, transmitting further instructions directed to an action
for at least one service selected from the group consisting of
backup services, mobile services, and update services.
51. The medium of claim 50, wherein, in conjunction with the action
associated with an update service, the operations further comprise:
transmitting to the wireless computing apparatus, in response to a
request for available updates received from the wireless computing
apparatus, an update catalog for available updates, wherein the
updates are selected from the group consisting of discretionary
updates and mandatory updates; and transmitting the mandatory
updates to the wireless computing apparatus.
52. The medium of claim 51, wherein, in conjunction with the action
associated with an update service, the operations further comprise:
transmitting at least one discretionary update to the wireless
computing apparatus, in response to receiving a request for the at
least one discretionary update from the wireless computing
apparatus.
53. The medium of claim 50, wherein, in conjunction with the action
associated with a backup service, the operations further comprise
transmitting an indication of whether to backup or to erase all or
a portion of memory of the wireless computing apparatus.
54. The medium of claim 53, wherein a portion of memory to erase
corresponds to a program that the wireless communication apparatus
is not authorized to have.
55. The medium of claim 50, wherein, in conjunction with the action
associated with a mobile service, the operations further comprise
transmitting instructions to lock the wireless computing
apparatus.
56. The medium of claim 50, wherein, in conjunction with the action
associated with a mobile service, the operations further comprise
transmitting instructions to the wireless computing apparatus
corresponding to one or more security-related actions.
57. A method, at a wireless communication server, of remotely
instructing a wireless computing apparatus to perform a service,
the method comprising: transmitting a service message to a wireless
computing apparatus; and in response to receiving a request for
further instructions from the wireless computing apparatus,
transmitting further instructions directed to an action for at
least one service selected from the group consisting of backup
services, mobile services, and update services.
58. The method of claim 57, wherein, in conjunction with the action
associated with an update service, the method further comprises:
transmitting to the wireless computing apparatus, in response to a
request for available updates received from the wireless computing
apparatus, an update catalog for available updates, wherein the
updates are selected from the group consisting of discretionary
updates and mandatory updates; and transmitting the mandatory
updates to the wireless computing apparatus.
59. The method of claim 58, wherein, in conjunction with the action
associated with an update service, the method further comprises:
transmitting at least one discretionary update to the wireless
computing apparatus, in response to receiving a request for the at
least one discretionary update from the wireless computing
apparatus.
60. The method of claim 57, wherein, in conjunction with the action
associated with a backup service, the method further comprises:
transmitting an indication of whether to backup or to erase all or
a portion of memory of the wireless computing apparatus.
61. The method of claim 60, wherein a portion of memory to erase
corresponds to a program that the wireless communication apparatus
is not authorized to have.
62. The method of claim 57, wherein, in conjunction with the action
associated with a mobile service, the method further comprises:
transmitting instructions to lock the wireless computing
apparatus.
63. The method of claim 57, wherein, in conjunction with the action
associated with a mobile service, the method further comprises:
transmitting instructions to the wireless computing apparatus
corresponding to one or more security-related actions.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 14/799,007, filed on Jul. 14, 2015 (to be
issued as U.S. Pat. No. 10,057,415), which is a continuation of
U.S. patent application Ser. No. 10/538,794, filed on Jun. 13, 2005
as a U.S. national-stage application of PCT International
Application No. PCT/US03/32284, filed on Oct. 10, 2003, and which
claims the benefit of U.S. Provisional Application No. 60/417,905,
filed on Oct. 10, 2002, entitled, "UPDATE FOR WIRELESS MOBILE
DEVICES," and U.S. Provisional Application No. 60/417,858, filed on
Oct. 10, 2002, entitled, "REMOTE CONTROL FOR WIRELESS MOBILE
DEVICES INCLUDING REMOTE LOCKING," the subject matter of all of
which are incorporated herein by reference.
FIELD OF THE INVENTION
[0002] The present invention relates to the field of wireless
communications. More specifically, the present invention relates to
the provision of a remove control function from remotely
controlling a wireless mobile device, including remotely locking
the device; and additionally includes the provision of an update
function for wireless devices.
BACKGROUND OF INVENTION
[0003] Since their introduction, the capabilities and number of
services and features of wireless mobile devices have steadily
increased while the cost of ownership and operation has decreased.
At first, wireless mobile devices operated on analog wireless
networks that established voice communications and simple paging
features. Later, digital wireless networks were introduced for
cellular telephone communications to provide more advanced features
for voice and data communications, such as encryption, caller
identification and transmitting and receiving Short Message Service
("SMS") text messages.
[0004] Some cellular telephones also incorporate many of the
features originally provided for in the hand-held electronic
devices, such as personal data assistants ("PDAs"). Relative simple
PDA features such as keeping a list of contacts, a calendar,
appointments and the like have been generally integrated into
recent cellular telephone models.
[0005] Recently, some cellular telephones were enabled to allow the
browsing of web pages on the Internet or other on-line services.
More recently, Action Engine, Inc. of Redmond, Wash., assignee of
the present invention, has developed and improved browserless
approach to are consumed using wireless mobile devices, more user
data, in particular, important, sensitive and/or critical data are
being stored on the wireless mobile devices. In addition, as more
and more types of software are implemented and/or installed on
wireless mobile devices, the number of updates to the software has
increased as well. Additionally, as wireless mobile devices become
more sophisticated, users may not be able to keep track of the
current state of development in their software and other data on
their wireless mobile devices.
BRIEF DESCRIPTION OF DRAWINGS
[0006] The present invention will be described by way of exemplary
embodiments, but not limitations, illustrated in the accompanying
drawings in which like references denotes similar elements, and in
which:
[0007] FIG. 1 is a pictorial diagram of a number of devices
connected to a network which provide a client device, also
connected to the network, with update and remote control services
in accordance with embodiments of the present invention.
[0008] FIG. 2 is a block diagram of the client device that provides
an exemplary operating environment for an embodiment of the present
invention.
[0009] FIG. 3 is a diagram illustrating the actions taken by a
client device, a remote control/update server and an administrator
device to provide remote control services in accordance with
embodiments of the present invention.
[0010] FIG. 4 is a flow diagram illustrating a client remote
control routine in accordance with embodiments of the present
invention.
[0011] FIG. 5 is a diagram illustrating the actions taken by a
client device, and a remote control/update server to provide update
services in accordance with embodiments of the present
invention.
[0012] FIG. 6 is a flow diagram illustrating an update routine in
accordance with embodiments of the present invention.
[0013] FIG. 7 is a diagram illustrating actions taken by a client
device, and a remote control/update server to provide an alternate
update service in accordance with embodiments of the present
invention.
[0014] FIG. 8 is the flow diagram illustrating an alternate update
routine in accordance with embodiments of the present
invention.
DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
[0015] The detailed description which follows is represented
largely in terms of processes and symbolic representations of the
of operations by conventional computing components, including
processors, memory storage devices for these processors, connected
display devices and input devices, all of which are well-known in
the art. These processes and operations may utilize conventional
computing components in a heterogeneous distributed computer
environment, including remote storage servers, computer servers and
memory storage devices. Such processes, devices and operations also
being known to those skilled in the art and others. Each of these
conventional computing components may be accessible by the
processors via a communications network.
[0016] The present invention includes a remote control application
for wireless mobile devices. The remove control application allows
a wireless communication service provider to remotely control a
subscriber's wireless mobile device. In particular, the remote
control application allows a wireless communications service
provider to remotely lock a subscriber's wireless mobile device.
Further, in an exemplary embodiment of the present invention, by
invoking the update application described below, a user's data
(including programs and operating system data) on a wireless mobile
device can be updated without the user needing to intervene.
[0017] The remote control software application resides on a
wireless mobile device and can allow secure remote administration
of the wireless mobile device to cause specific tasks to be
performed on the device, to cause the user interface ("UI") of the
device to be locked from normal access, allow a remote
administrator to cause files and data stored on the wireless mobile
device to be erased, to allow a remote administrator to cause a
backup to be performed on the wireless mobile device, and for a
remote administrator to cause an update on data in the wireless
mobile device.
[0018] The remote control application allows the remote
administrator to seize control (either with or without a user's
permission) of a wireless mobile device and in one exemplary
embodiment, to do so with no visible indication as to the fact that
control has been seized of the device.
[0019] The remote administrator will be able to use a unique device
identifier ("ID") to log in and select various options. Special
messages or instructions for the remote control application on the
wireless mobile device are then placed in a secure queue on a
server. Next, a "ping" message is sent to the wireless mobile
device. The ping message is in turn processed by the remote control
application on the wireless mobile device. The remote control
application on the wireless mobile device then retrieves the
special messages or instructions from the remote server and
processes these instructions. In the exemplary embodiment of the
present invention where the instructions include updating the
wireless mobile device, the updating process will allow programs
installed on the wireless mobile device to be automatically updated
in a manner that can be controlled by the user in some cases and is
completely automatic (e.g., controlled by the wireless service
provider as instructions) in other cases.
[0020] Briefly, the update application on the wireless mobile
device can update itself, update applications from a remote server,
monitor a catalogue of application updates and additions on the
server, monitor user activity via a unique device ID and/or other
unique identifiers, launch by stub applications asking to be
replaced by full applications and may further stop or resume
downloads that have been interrupted.
[0021] As noted above, the update application may be activated in a
number of different ways: (1) It may be launched as a normal stand
alone application as to any other application launched on the
wireless mobile device. (2) It may be launched by a stub
application, with a specific path, to replace the stub application
with its intended application (after download and successful
install). To the user, they would launch the stub application, see
a download in progress screen, followed by the actual application
starting up. (3) As already noted above, the update application may
be invoked using the remote control application and having the
update application invoked by a remote administrator.
[0022] There are different types of updates and in various
embodiments, the server will send updates in priority order. It
will first send mandatory updates, then critical updates, then all
others. Within each category, it will download the files in order
of appearance. Mandatory updates are those updates that the update
application will automatically (and silently) download and update
whenever the update application is invoked and such an update is
located. Critical updates are those that have been singled out as
particularly important as they relate to fixing "bugs" in existing
applications and/or providing increased security to a wireless
mobile device. Normal updates are all the remaining types of
updates.
[0023] Application and updates and be further categorized into
"exclusive" updates. If an exclusive update is selected, no other
selections can be made until the exclusive update is downloaded and
installed. This category is particularly useful when installing
updates that require a device reset, or updates that change the
operating system files. The update application does not sent
personal information to a remote server. Rather, it downloads from
the server the list of available updates from which is parses and
analyzes against the local wireless mobile device's computing
environment.
[0024] As previously explained, embodiments of the present
invention operate in a wireless network to communicate between
wireless mobile devices and remote servers. It will be appreciated
by those of ordinary skill in the art that other networks may be
used in addition to a wireless network, e.g., the "Internet" which
refers to a collection of networks and routers that can communicate
between each other on a global level using the Internet Protocol
("IP") communications protocol.
[0025] FIG. 1 is a pictorial diagram of the exemplary wireless
remote control and update system 100 for providing remote control
and update services to wireless mobile devices such as client
device 200 via a wireless network 110 and other networks 130. For
ease of illustration, the client device 200 is shown pictorially as
a PDA in FIG. 1, it being recognized that a large number of client
devices in a variety of forms will be included in actual remote
control and update system 100 employing embodiments of the present
invention. In general, a client device 200 has computing
capabilities and may be any form of device capable of communicating
with the remote/update server 150 in various embodiments of the
present invention. Thus, while client device 200 is pictorially
shown as a PDA, a mobile computer, cellular phone and the like may
be equally employed, although these are just representative devices
and should be taken as illustrative and not limiting.
[0026] The remote control/update system 100 functions in a
distributed computer environment that includes a plurality of
client devices, interconnected by a wireless network 110 via a
gateway 120 to other networks 130 to a remote control/update server
150. In addition, an administrator device 140 is connected with the
remote control/update server 150 to pass instructions to the remote
control/update server 150. All these connections and communications
are interconnected via suitable network connections using suitable
network communications protocols. As will be appreciated by those
of ordinary skill in the art, the remote control/update server 150
may reside on any device accessible by the client device 200 shown
in FIG. 1. An exemplary client device 200 is shown in detail in
FIG. 2 and described below.
[0027] It will also be appreciated that while the remote
control/update server 150 of the remote control/update system 100
is illustrated as a single device, the remote control/update server
150 may actually comprise more than a single device in an actual
system practicing embodiments of the present invention. It will
also be appreciated that the remote control/update server 150 may
comprise file servers, database servers or a mixture of file
servers and database servers.
[0028] FIG. 2 illustrates an exemplary computing device 200
suitable for use in embodiments of the present invention. Those of
ordinary skill in the art and others will appreciate that the
computing device 200 may include many more components than those
shown in FIG. 2. However, it is not necessary that all of these
generally conventional components be shown in order to disclose an
enabling embodiment for practicing the present invention. As shown
in FIG. 2, the client device 200 includes a communications
interface 230 for connecting to remote devices. Those of ordinary
skill in the art will appreciate that the communications interface
230 includes the necessary circuitry, driver and/or transceiver for
such a connection, and is constructed for use of the appropriate
protocols for such a connection. In one embodiment of the present
invention, the communications interface 230 includes the necessary
circuitry for a wireless network connection.
[0029] The computing device 200 also includes a processing unit
210, a display 240 and a memory 250, all interconnected along with
the communications interface 230 via a bus 220. Those of ordinary
skill in the art and others will appreciate that the display 240
may not be necessary in all embodiments of the present invention
and accordingly, is an optional component. The memory 250 generally
comprises a random access memory ("RAM"), a read-only memory
("ROM"), and a permanent mass storage device, such as a disc drive,
flash memory, or the like. The memory 250 stores and operating
system 255, remote control software 260, and update software 265,
formed in accordance with embodiments of the present invention. It
will be appreciated that these software components may be loaded
from a computer readable medium into memory 250 of the client
device 200 using a drive mechanism (not shown) associated with the
computer readable medium, such as a floppy, tape, DVD/CD ROM drive,
flash memory or the communications interface 230.
[0030] Although an exemplary computing device 200 has been
described, it general conforms to conventional computing devices,
those of ordinary skill in the art and others will appreciate that
a client device 200 may be any of a great number of computing
devices capable of communicating remotely with other computing
devices. In various embodiments of the present invention, the
client device 200 may be a cellular phone, PDA, general purpose
computing device and the like.
[0031] The operation of the remote control functionality of the
remote control/update system 100 shown in FIG. 1 will be best
understood by reference to FIG. 3 which includes one exemplary
sequence of communication interactions between an administrator
device 140, a remote control/update server 150 and a client device
200. The exemplary communication interaction shown in FIG. 3 begin
with the administrator device 140 sending instructions 305 for the
client device 200 along with a unique client device ID to the
remote control/update server 150. The remote control/update server
150 then sends a "ping" message 310 to the client device 200. At
the client device 200 a determination 315 is then made that the
ping message was meant for that particular client device 200. Next,
the client device 200 requests 320 further instructions for itself
and includes its client ID. The remote control/update server 150
then retrieves 325 one or more instructions for the client device
200 with the sent client ID. These instructions are then sent back
as client device instructions 330 to the client device 200. The
client device 200 then performs 335 the client device instructions
and notifies 340 the remote control/update server 150 that the
client device instructions have been performed.
[0032] FIG. 4 is a flow diagram illustrating an exemplary
client-side remote control software routine suitable for
implementation by the client device 200 for receiving and
processing remote control instructions from the remote
control/update server 150. The remote control routine 400 begins at
block 405, where a message is received from the remote
control/update server 150. Next, in decision block 410 a
determination is made whether the message is a specially formatted
"ping" message recognized by the remote control software 260. If in
decision block 410 it was determined that the massage was not a
ping message, then routine 400 proceeds to block 455 where the
message is forwarded on for normal processing and remote control
routine 400 ends.
[0033] If, however, in decision block 410 it was determined that
the message was a ping message, then processing proceeds to block
415 where the client device 200 sends a request for further
instructions to a remote server (e.g., remote control/update server
150). Those of ordinary skill in the art and others will appreciate
that while only a single remote control/update server 150 is
illustrated in FIG. 1, that more than one remote control server 150
may be employed in sending ping messages and storing instructions.
Accordingly, in one embodiment, one remote server may send a ping
message which may direct the client device 200 to another remote
server to retrieve instructions. Accordingly, the request for
further instructions in block 415 may be directed to the same or a
different remote control/update server 150 as to the one that sent
the ping message. Next, in block 420, the client device 200
receives the requested instructions. Similarly, while the request
for instructions in block 415 may have been sent to one remote
control/update server 150, yet another remote control/update server
150 may return the actual instructions to the client device 200.
Next, in decision block 425, a determination is made as to what
service the instructions are targeted for. If in decision block 425
it was determined that the instructions are targeted to an update
service, then processing proceeds to block 450 where the client
device 200 is updated. Exemplary client update routines are
illustrated in FIGS. 6 and 8 and described below.
[0034] If, however, in decision block 425 it was determined that
the instructions are targeted for mobile services, then processing
proceeds to block 445 where mobile services are performed. Such
mobile services may be any conventional mobile services that would
apply to a wireless mobile device. However, in one exemplary
embodiment of the present invention, these mobile services may
include service for locking the UI of the client device 200.
[0035] If in decision block 425 it was determined that the
instruction was targeted to the backup service then processing
proceeds to decision block 430 where a further determination is
made whether the instructions are directed to erasing or backing up
data on the client device 200. If the determination in decision
block 430 indicated that data is to be erased, then processing
proceeds to block 435 where the memory of the client device is
partially or completely erased as directed in the received
instructions. In the alternative, where a backup instruction was
issued for backing up the data on the client device 200, then
processing proceeds to block 440 where some or all of the memory of
the client device is backed up depending on the received
instructions.
[0036] Those of ordinary skill in the art and others will
appreciate that more types of instruction may be included in still
other embodiments of the present invention. The inclusion of the
messaging service, backup and update instructions is meant to be
illustrative and not limiting. To better appreciate one such
embodiment, FIGS. 5-8 include further description of the
functionality of the present invention.
[0037] The operation of an exemplary embodiment of the present
invention having an update functionality implemented in the remote
control/update system 100 shown in FIG. 1, will be best understood
with reference to FIG. 5, which includes one exemplary sequence of
communication interactions between a client device 200 and a remote
control/update server 150. It will be appreciated by those of
ordinary skill in the art that the communications from the client
device 200 to the remote control/update server 150, may comprise
wireless signals, including but not limited to: radio frequency
("RF") signals, optical signals, audio modulated signals and
electromagnetic signals as well as conventional wire-based
signals.
[0038] The exemplary communication interactions shown in FIG. 5
begin with the client device 200 sending an update request 505 to
the remote control/update server 150. The remote control/update
server 150 then retrieves 510 a catalog of available updates. The
catalog of available updates is then sent 515 along with any
mandatory updates back to the client device 200. As will be further
described below mandatory updates are those updates which will be
installed on the client device 200 regardless of a user's
interaction. In various embodiments of the present invention, the
user may or may not be notified that a mandatory update has been
installed. Accordingly once the client device receives the
mandatory updates, they are installed 520 on the client device
220.
[0039] The client device 200 next depicts 525 any relevant
available updates on the client device 200 (e.g., via the display
240). The relevant available updates are those non-mandatory
updates (i.e., critical updates and other updates) that have not
already been installed on the client device 200 and for which the
client device 200 has a use (e.g., that are applicable to the
currently installed operating system and/or versions of software
running on the client device 200).
[0040] One or more relevant available updates are selected 530 on
the client device 200. Those of ordinary skill in the art and
others will appreciate that the selection of relevant available
updates may be accomplished in a variety of manners. In one
exemplary embodiment of the present invention all relevant
available critical updates are automatically selected while other
updates may be selected by a user using any form of conventional
user interface. Next the selected updates are requested 535 from
the remote control/update server 150. The remote control/update
server 150 retrieves 540 the selected update or updates and sends
545 the selected updates back to the client device 200. Once the
client device 200 receives the selected updates, they are then
installed 550 on the client device 200.
[0041] The remote control/update system 100 (described herein)
includes a client device 200 whose software is to be updated via
the remote control/update server 150. FIG. 6 is a flow diagram
illustrating an exemplary client side update routine 600 suitable
for implementation by the client device 200 for updating software
on the client device from the remote control/update server 150.
[0042] The update routine 600 begins at block 605 where a update is
requested from the remote control/update server 150. Next in block
610 a catalog of available updates is received along with any
mandatory updates for the client device 200. In decision block 615
a determination is made whether any mandatory updates were
received. If so then processing proceeds to block 620 where the
mandatory updates are installed on the client device 200.
Processing then proceeds to block 625. Also if in decision block
615 it was determined that no mandatory updates were received then
processing continues to block 625. In block 625 the received
catalog of available updates is compared to the currently installed
software on the client device 200. Next in decision block 630 a
determination is made whether any available updates in the catalog
are still relevant to the client device 200. If in decision block
630 it is determined that no available updates are relevant to
client device 200 then processing continues to block 660 where a
message is depicted on the client device 600 that there are no
relevant updates and routine 600 ends.
[0043] If, however, in decision block 630 it was determined that
there are available updates that are still relevant to the client
device 200, then in block 635 those relevant updates are depicted
at the client device 200. Processing then proceeds to block 640
where any desired relevant updates are selected. As already noted,
desired relevant updates may be selected in a variety of fashions
according to any conventional selection mechanism. Next, in block
645 a request is sent to the remote control/update server 150 for
the selected updates. The selected updates are received in block
650, and installed on the client device 200 in block 655.
[0044] Similarly to FIG. 5, FIG. 7 illustrates an update session
with communications between a client device 200 and a remote
control/update server 150. However in the alternate update session
illustrated in FIG. 7 the client device has a stub application that
is automatically updated via the remote control/update server 150.
The exemplary communications interactions shown in FIG. 7 begin
with the client device 200 executing 705 a stub application. The
client device 200 then depicts placeholder information 710
indicating that the application has been executed. Next the full
application is requested 715 from the remote control/update server
150. The remote control/update server 150 retrieves the full
application 720 and returns 725 the full application back to the
client device 200. The client device 200 then installs 730 the full
application. At which point the full application may then be
executed 735.
[0045] The operations of the alternate update mechanism illustrated
in FIG. 7 are further described within FIG. 8 which illustrates an
alternate update routine 800 for implementation on the client
device 200. The alternate update routine 800 replaces a stub
application with a full application from a remote control/update
server 150.
[0046] Alternate update routine 800 begins at block 805 with the
execution of a stub application. Next in block 810 a placeholder
for the full application is displayed. In block 815, the client
device 200 sends a request to the remote control/update server 150
for the full application. In decision block 820 a determination is
made whether the full application was received from the remote
control/update server 150. If so, processing proceeds to block 830
where the full application is installed on the client device 200.
After which, the full application can then be executed in block
835. If however in decision block 820 it was determined that the
full application was not received then in block 825 an error is
depicted indicating that the full application was not
available.
[0047] Although various embodiments of the present invention have
been illustrated and described, it will be appreciated that changes
can be made therein without departing from the spirit and scope of
the invention as defined by the appended claims. In particular it
will be appreciated that while the processes and
communication-interactions and the present interaction have been
described in a particular order, those of ordinary skill in the art
and other will appreciate that other orders of processes and/or
communication interactions will also fall within the spirit and
scope of the present invention.
* * * * *