U.S. patent application number 10/892769 was filed with the patent office on 2006-01-19 for personal server.
Invention is credited to Lawrence A. Denenberg, Harry C. Forsdick, Grant Gould, Michael A. Krasner, Marc J. Neuberger, Graeme W. Smith, Marc D. Tanner.
Application Number | 20060014530 10/892769 |
Document ID | / |
Family ID | 35600109 |
Filed Date | 2006-01-19 |
United States Patent
Application |
20060014530 |
Kind Code |
A1 |
Denenberg; Lawrence A. ; et
al. |
January 19, 2006 |
Personal server
Abstract
A personal server is provided for use with a mobile device, such
as a cellular telephone. The personal server provides services to
the user of the mobile device and to others authorized by the user,
but to no other users. The personal server may be a home PC of the
user of the mobile device. The personal server may serve as a proxy
server for a shared server that provides services to the mobile
device. The personal server may relay messages between the mobile
device and the shared server. The personal server may store, log,
filter, and perform other processing on the user's personal data,
such as messages transmitted by the mobile device and/or the shared
server. The personal server may aggregate messages received from a
plurality of shared servers. A non-personal server may perform
additional services, such as configuring the personal server and
temporarily storing data if the personal server becomes
inaccessible.
Inventors: |
Denenberg; Lawrence A.;
(Newton, MA) ; Forsdick; Harry C.; (Lexington,
MA) ; Krasner; Michael A.; (Watertown, MA) ;
Smith; Graeme W.; (Stoneham, MA) ; Gould; Grant;
(Arlington, MA) ; Neuberger; Marc J.; (Arlington,
MA) ; Tanner; Marc D.; (Somerville, MA) |
Correspondence
Address: |
ROBERT PLOTKIN, PC
91 MAIN STREET, SUITE 204
CONCORD
MA
01742-2527
US
|
Family ID: |
35600109 |
Appl. No.: |
10/892769 |
Filed: |
July 16, 2004 |
Current U.S.
Class: |
455/414.1 ;
455/412.1; 455/414.3 |
Current CPC
Class: |
H04L 51/00 20130101;
H04L 69/329 20130101; H04L 67/04 20130101; H04L 67/42 20130101;
H04L 63/10 20130101; H04L 51/04 20130101; H04L 51/38 20130101; H04L
12/2854 20130101; H04L 51/10 20130101; H04L 67/24 20130101; H04L
51/066 20130101; H04L 12/18 20130101 |
Class at
Publication: |
455/414.1 ;
455/414.3; 455/412.1 |
International
Class: |
H04Q 7/20 20060101
H04Q007/20 |
Claims
1. A system comprising: a mobile device configured for use by a
user; a personal server coupled to the mobile device over a first
wide area network connection to provide services over the wide area
network to the user and to others authorized by the user, but to no
other users.
2. The system of claim 1, wherein the personal server comprises a
personal computer.
3. The system of claim 1, wherein the user owns the mobile device
and the personal server.
4. The system of claim 3, wherein the user is authorized by an
owner of the mobile device to perform read-only actions using the
mobile device.
5. The system of claim 1, wherein the mobile device comprises a
cellular telephone.
6. The system of claim 1, further comprising: a non-personal
server, wherein the personal server maintains a connection to the
mobile device through the non-personal server.
7. The system of claim 1, wherein the personal server comprises:
means for receiving a message from the mobile device, the message
having a plurality of destinations; and means for forwarding the
message to the plurality of destinations.
8. The system of claim 1, wherein the personal server includes data
not included in the mobile device, and wherein the personal server
includes means for transmitting the data to a destination on behalf
of the mobile device.
9. The system of claim 1, wherein: the mobile device includes means
for transmitting a message having a destination to the personal
server according to a first protocol but not according to a second
protocol; the personal server includes means for forwarding the
message to the destination according to the second protocol.
10. The system of claim 1, wherein the second protocol comprises an
electronic mail protocol.
11. The system of claim 1, further comprising: configuration means
for configuring the personal server to receive messages on behalf
of the mobile device; and wherein the personal server further
comprises means for receiving a message having the mobile device as
its destination and storing the message at the personal server
without forwarding the message to the mobile device if the personal
server is configured to receive messages on behalf of the mobile
device.
12. The system of claim 11, wherein the personal server further
comprises means for forwarding the message to the mobile device if
the personal server is not configured to receive messages on behalf
of the mobile device.
13. The system of claim 11, wherein the personal server includes
the configuration means.
14. The system of claim 11, further comprising a non-personal
server coupled to the personal server, wherein the non-personal
server includes the configuration means.
15. The system of claim 1, wherein the mobile device comprises
means for instructing the personal server to execute a computer
program, and wherein the personal server comprises means for
executing the computer program in response to the instruction from
the mobile device.
16. The system of claim 1, further comprising: a non-personal
server coupled to the mobile device and the personal server, the
non-personal server comprising: means for receiving a message from
the mobile device; means for determining whether the personal
server is accessible to the non-personal server; and means for
storing the message at the non-personal server if the personal
server is determined not to be accessible to the non-personal
server.
17. The system of claim 16, wherein the non-personal server further
comprises: means for transmitting the message to the personal
server if the personal server is determined to be accessible to the
non-personal server.
18. The system of claim 17, wherein: the means for determining
comprises: means for repeatedly determining whether the personal
server is accessible to the non-personal server over a period of
time; and means for identifying a time at which the personal server
is accessible to the non-personal server; and wherein the means for
transmitting comprises: means for transmitting the message to the
personal server at about the identified time.
19. The system of claim 1, wherein the personal server comprises:
means for storing personal data on behalf of the user.
20. The system of claim 19, further comprising: means for receiving
the personal data on behalf of the user.
21. The system of claim 20, wherein the means for receiving
comprises means for receiving the personal data from the mobile
device.
22. The system of claim 19, wherein the personal server further
comprises: means for providing the personal data to the user
through the mobile device in response to a request from the
user.
23. The system of claim 1, further comprising: determination means
for determining whether to transmit an incoming message to the
personal server or to the mobile device; first transmission means
for transmitting the message to the personal server if it is
determined that the message is to be transmitted to the personal
server; and second transmission means for transmitting the message
to the mobile device if it is determined that the message is to be
transmitted to the mobile device.
24. The system of claim 23, wherein the mobile device includes the
determination means.
25. The system of claim 1, further comprising: an instant messaging
server coupled to the personal server over a second wide area
network connection, the instant message server comprising means for
transmitting instant messaging information to the personal server
using an instant messaging protocol; wherein the personal server
comprises: means for receiving the instant messaging information
from the instant messaging server using the instant messaging
protocol; and means for transmitting at least some of the instant
messaging information over the first wide area network connection
using a non-instant messaging protocol; and wherein the mobile
device comprises means for receiving the at least some of the
instant messaging information over the first connection using the
non-instant messaging protocol.
26. The system of claim 25, wherein the at least some of the
instant messaging information comprises less than all of the
instant messaging information.
27. The system of claim 26, wherein the instant messaging
information comprises presence information, and wherein the at
least some of the instant messaging information comprises less than
all of the presence information.
28. The system of claim 25, wherein the mobile device does not
include means for communicating with the instant messaging server
using the instant messaging protocol.
29. The system of claim 25, wherein the first connection comprises
a wireless connection and wherein the second connection comprises a
wired connection.
30. The system of claim 25, wherein the first connection is metered
as a first function of data usage, wherein the second connection is
metered as a second function of data usage, whereby the first
connection is less costly than the second connection for equivalent
data usages.
31. The system of claim 1, further comprising: an instant messaging
server coupled to the personal server over a second wide area
network connection, the instant messaging server comprising means
for transmitting instant messaging information to the personal
server using an instant messaging protocol; wherein the personal
server comprises: means for receiving the instant messaging
information from the instant messaging server using the instant
messaging protocol; means for filtering the instant messaging
information to produce filtered instant messaging information;
means for transmitting the filtered instant messaging information
over the first connection to the mobile device; and wherein the
mobile device comprises means for receiving the filtered instant
messaging information over the first connection.
32. The system of claim 31, wherein the instant messaging
information comprises presence information, and wherein the means
for filtering comprises means for removing at least some of the
presence information from the instant messaging information.
33. The system of claim 31, wherein the mobile device does not
include means for communicating with the instant messaging server
using the instant messaging protocol.
34. The system of claim 31, wherein the first connection comprises
a wireless connection and wherein the second connection comprises a
wired connection.
35. The system of claim 31, wherein the first connection is metered
as a first function of data usage, wherein the second connection is
metered as a second function of data usage, whereby the first
connection is less costly than the second connection for equivalent
data usages.
36. The system of claim 1, further comprising: an instant messaging
server comprising means for transmitting instant messaging
information using an instant messaging protocol; a plurality of
personal servers coupled to the instant messaging server over a
first plurality of wide area network connections, wherein the
personal server comprises one of the plurality of personal servers,
each of the plurality of personal servers comprising: means for
receiving the instant messaging information from the instant
messaging server using the instant messaging protocol; means for
filtering the instant messaging information to produce filtered
instant messaging information; means for transmitting the filtered
instant messaging information over a corresponding one of a
plurality of second wide area network connections; and a plurality
of mobile devices coupled to corresponding ones of the plurality of
personal servers over corresponding ones of the plurality of second
wide area connections, the mobile device comprising one of the
plurality of mobile devices, each of the plurality of mobile
devices including means for receiving the filtered instant
messaging information over the corresponding one of the second
plurality of wide area connections.
37. The system of claim 36, wherein the instant messaging
information comprises presence information, and wherein the means
for filtering comprises means for removing at least some of the
presence information from the instant messaging information.
38. The system of claim 36, wherein the mobile device does not
include means for communicating with the instant messaging server
using the instant messaging protocol.
39. The system of claim 36, wherein the first connection comprises
a wireless connection and wherein the second connection comprises a
wired connection.
40. The system of claim 36, wherein the first connection is metered
as a first function of data usage, wherein the second connection is
metered as a second function of data usage, whereby the first
connection is less costly than the second connection for equivalent
data usages.
41. The system of claim 1, further comprising: a plurality of
instant messaging servers comprising means for transmitting instant
messaging information using at least one instant messaging
protocol; wherein the personal server is coupled to the plurality
of instant messaging servers over a plurality of wide area network
connections, the personal server comprising: means for receiving
the instant messaging information from the plurality of instant
messaging servers using the at least one instant messaging
protocol; means for transmitting at least some of the instant
messaging information over the first wide area network connection;
and wherein the mobile device comprises means for receiving the at
least some instant messaging information over the first wide area
network connection.
42. The system of claim 41, wherein the at least some of the
instant messaging information comprises less than all of the
instant messaging information.
43. The system of claim 41, wherein the mobile device does not
include means for communicating with the instant messaging server
using the instant messaging protocol.
44. The system of claim 41, wherein the first connection comprises
a wireless connection and wherein the second connection comprises a
wired connection.
45. The system of claim 41, wherein the first connection is metered
as a first function of data usage, wherein the second connection is
metered as a second function of data usage, whereby the first
connection is less costly than the second connection for equivalent
data usages.
46. A computer-implemented method comprising a step of: (A) at a
personal server coupled to a mobile device over a first wide area
network connection, providing services over the wide area network
to a user of the mobile device and to others authorized by the
user, but to no other users.
47. The method of claim 46, wherein the personal server comprises a
personal computer.
48. The method of claim 46, wherein the user owns the mobile device
and the personal server.
49. The method of claim 48, wherein the user is authorized by an
owner of the mobile device to perform read-only actions using the
mobile device.
50. The method of claim 46, wherein the mobile device comprises a
cellular telephone.
51. The method of claim 46, wherein the step (A) comprises steps
of: (A)(1) receiving a message from the mobile device, the message
having a plurality of destinations; and (A)(2) forwarding the
message to the plurality of destinations.
52. The method of claim 46, wherein the personal server includes
data not included in the mobile device, and wherein the step (A)
comprises a step of transmitting the data to a destination on
behalf of the mobile device.
53. The method of claim 46, wherein the step (A) comprises steps
of: (A)(1) receiving a message from the mobile device according to
a first protocol, the message having a destination; (A)(2)
forwarding the message to the destination according to a second
protocol that differs from the first protocol.
54. The method of claim 46, wherein the step (A) comprises steps
of: (A)(1) receiving a message having the mobile device as its
destination; (A)(2) determining whether the personal server is
configured to receive messages on behalf of the mobile device; and
(A)(3) storing the message at the personal server without
forwarding the message to the mobile device if it is determined
that the personal server is configured to receive messages on
behalf of the mobile device.
55. The method of claim 46, wherein the step (A) comprises steps
of: (A)(1) receiving an instruction from the mobile device to
execute a computer program; and (A)(2) executing the program in
response to the instruction.
56. The method of claim 46, further comprising a step of: (B) at a
non-personal server coupled to the mobile device and the personal
server, performing steps of: (1) receiving a message from the
mobile device; (2) determining whether the personal server is
accessible to the non-personal server; and (3) storing the message
at the non-personal server if the personal server is determined not
to be accessible to the non-personal server.
57. The method of claim 46, wherein the step (A) comprises a step
of: (A)(1) storing personal data on behalf of the user.
58. The method of claim 57, wherein the step (A) further comprises
a step of: (A)(2) receiving the personal data on behalf of the
user.
59. The method of claim 57, wherein the step (A) further comprises
a step of: (A)(2) providing the personal data to the user through
the mobile device in response to a request from the user.
60. The method of claim 46, wherein the step (A) comprises steps
of: (A)(1) receiving instant messaging information from an instant
messaging server using an instant messaging protocol; and (A)(2)
transmitting at least some of the instant messaging information
over the first wide area network connection to the mobile device
using a non-instant messaging protocol.
61. The method of claim 46, wherein the step (A) comprises steps
of: (A)(1) receiving instant messaging information from an instant
messaging server using an instant messaging protocol; (A)(2)
filtering the instant messaging information to produce filtered
instant messaging information; and (A)(3) transmitting the filtered
instant messaging information to the mobile device.
62. The method of claim 46, wherein the step (A) comprises steps
of: (A)(1) receiving instant messaging information from a plurality
of instant messaging servers using at least one instant messaging
protocol; and (A)(2) transmitting at least some of the instant
messaging information over the first wide area network connection
to a mobile device.
63. A system comprising: a mobile device configured for use by a
user; a personal server coupled to the mobile device over a first
wide area network connection to transmit personal data between the
mobile device and the user and others authorized by the user, but
no other users.
64. The system of claim 63, wherein the personal server comprises a
personal computer.
65. The system of claim 63, wherein the user owns the mobile device
and the personal server.
66. The system of claim 65, wherein the user is authorized by an
owner of the mobile device to perform read-only actions using the
mobile device.
67. The system of claim 63, wherein the mobile device comprises a
cellular telephone.
68. The system of claim 63, further comprising: a non-personal
server, wherein the personal server maintains a connection to the
mobile device through the non-personal server.
69. The system of claim 63, wherein the personal server comprises:
means for receiving a message from the mobile device, the message
having a plurality of destinations; and means for forwarding the
message to the plurality of destinations.
70. The system of claim 63, wherein the personal server includes
data not included in the mobile device, and wherein the personal
server includes means for transmitting the data to a destination on
behalf of the mobile device.
71. The system of claim 63, wherein: the mobile device includes
means for transmitting a message having a destination to the
personal server according to a first protocol but not according to
a second protocol; the personal server includes means for
forwarding the message to the destination according to the second
protocol.
72. The system of claim 63, wherein the second protocol comprises
an electronic mail protocol.
73. The system of claim 63, further comprising: configuration means
for configuring the personal server to receive messages on behalf
of the mobile device; and wherein the personal server further
comprises means for receiving a message having the mobile device as
its destination and storing the message at the personal server
without forwarding the message to the mobile device if the personal
server is configured to receive messages on behalf of the mobile
device.
74. The system of claim 73, wherein the personal server further
comprises means for forwarding the message to the mobile device if
the personal server is not configured to receive messages on behalf
of the mobile device.
75. The system of claim 73, wherein the personal server includes
the configuration means.
76. The system of claim 73, further comprising a non-personal
server coupled to the personal server, wherein the non-personal
server includes the configuration means.
77. The system of claim 63, wherein the mobile device comprises
means for instructing the personal server to execute a computer
program, and wherein the personal server comprises means for
executing the computer program in response to the instruction from
the mobile device.
78. The system of claim 63, further comprising: a non-personal
server coupled to the mobile device and the personal server, the
non-personal server comprising: means for receiving a message from
the mobile device; means for determining whether the personal
server is accessible to the non-personal server; and means for
storing the message at the non-personal server if the personal
server is determined not to be accessible to the non-personal
server.
79. The system of claim 78, wherein the non-personal server further
comprises: means for transmitting the message to the personal
server if the personal server is determined to be accessible to the
non-personal server.
80. The system of claim 79, wherein: the means for determining
comprises: means for repeatedly determining whether the personal
server is accessible to the non-personal server over a period of
time; and means for identifying a time at which the personal server
is accessible to the non-personal server; and wherein the means for
transmitting comprises: means for transmitting the message to the
personal server at about the identified time.
81. The system of claim 63, wherein the personal server comprises:
means for storing personal data on behalf of the user.
82. The system of claim 81, further comprising: means for receiving
the personal data on behalf of the user.
83. The system of claim 82, wherein the means for receiving
comprises means for receiving the personal data from the mobile
device.
84. The system of claim 81, wherein the personal server further
comprises: means for providing the personal data to the user
through the mobile device in response to a request from the
user.
85. The system of claim 63, further comprising: determination means
for determining whether to transmit an incoming message to the
personal server or to the mobile device; first transmission means
for transmitting the message to the personal server if it is
determined that the message is to be transmitted to the personal
server; and second transmission means for transmitting the message
to the mobile device if it is determined that the message is to be
transmitted to the mobile device.
86. The system of claim 85, wherein the mobile device includes the
determination means.
87. The system of claim 63, further comprising: an instant
messaging server coupled to the personal server over a second wide
area network connection, the instant message server comprising
means for transmitting instant messaging information to the
personal server using an instant messaging protocol; wherein the
personal server comprises: means for receiving the instant
messaging information from the instant messaging server using the
instant messaging protocol; and means for transmitting at least
some of the instant messaging information over the first wide area
network connection using a non-instant messaging protocol; and
wherein the mobile device comprises means for receiving the at
least some of the instant messaging information over the first
connection using the non-instant messaging protocol.
88. The system of claim 87, wherein the at least some of the
instant messaging information comprises less than all of the
instant messaging information.
89. The system of claim 88, wherein the instant messaging
information comprises presence information, and wherein the at
least some of the instant messaging information comprises less than
all of the presence information.
90. The system of claim 87, wherein the mobile device does not
include means for communicating with the instant messaging server
using the instant messaging protocol.
91. The system of claim 87, wherein the first connection comprises
a wireless connection and wherein the second connection comprises a
wired connection.
92. The system of claim 87, wherein the first connection is metered
as a first function of data usage, wherein the second connection is
metered as a second function of data usage, whereby the first
connection is less costly than the second connection for equivalent
data usages.
93. The system of claim 63, further comprising: an instant
messaging server coupled to the personal server over a second wide
area network connection, the instant messaging server comprising
means for transmitting instant messaging information to the
personal server using an instant messaging protocol; wherein the
personal server comprises: means for receiving the instant
messaging information from the instant messaging server using the
instant messaging protocol; means for filtering the instant
messaging information to produce filtered instant messaging
information; means for transmitting the filtered instant messaging
information over the first connection to the mobile device; and
wherein the mobile device comprises means for receiving the
filtered instant messaging information over the first
connection.
94. The system of claim 93, wherein the instant messaging
information comprises presence information, and wherein the means
for filtering comprises means for removing at least some of the
presence information from the instant messaging information.
95. The system of claim 93, wherein the mobile device does not
include means for communicating with the instant messaging server
using the instant messaging protocol.
96. The system of claim 93, wherein the first connection comprises
a wireless connection and wherein the second connection comprises a
wired connection.
97. The system of claim 93, wherein the first connection is metered
as a first function of data usage, wherein the second connection is
metered as a second function of data usage, whereby the first
connection is less costly than the second connection for equivalent
data usages.
98. The system of claim 63, further comprising: an instant
messaging server comprising means for transmitting instant
messaging information using an instant messaging protocol; a
plurality of personal servers coupled to the instant messaging
server over a first plurality of wide area network connections,
wherein the personal server comprises one of the plurality of
personal servers, each of the plurality of personal servers
comprising: means for receiving the instant messaging information
from the instant messaging server using the instant messaging
protocol; means for filtering the instant messaging information to
produce filtered instant messaging information; means for
transmitting the filtered instant messaging information over a
corresponding one of a plurality of second wide area network
connections; and a plurality of mobile devices coupled to
corresponding ones of the plurality of personal servers over
corresponding ones of the plurality of second wide area
connections, the mobile device comprising one of the plurality of
mobile devices, each of the plurality of mobile devices including
means for receiving the filtered instant messaging information over
the corresponding one of the second plurality of wide area
connections.
99. The system of claim 98, wherein the instant messaging
information comprises presence information, and wherein the means
for filtering comprises means for removing at least some of the
presence information from the instant messaging information.
100. The system of claim 98, wherein the mobile device does not
include means for communicating with the instant messaging server
using the instant messaging protocol.
101. The system of claim 98, wherein the first connection comprises
a wireless connection and wherein the second connection comprises a
wired connection.
102. The system of claim 98, wherein the first connection is
metered as a first function of data usage, wherein the second
connection is metered as a second function of data usage, whereby
the first connection is less costly than the second connection for
equivalent data usages.
103. The system of claim 63, further comprising: a plurality of
instant messaging servers comprising means for transmitting instant
messaging information using at least one instant messaging
protocol; wherein the personal server is coupled to the plurality
of instant messaging servers over a plurality of wide area network
connections, the personal server comprising: means for receiving
the instant messaging information from the plurality of instant
messaging servers using the at least one instant messaging
protocol; means for transmitting at least some of the instant
messaging information over the first wide area network connection;
and wherein the mobile device comprises means for receiving the at
least some instant messaging information over the first wide area
network connection.
104. The system of claim 103, wherein the at least some of the
instant messaging information comprises less than all of the
instant messaging information.
105. The system of claim 103, wherein the mobile device does not
include means for communicating with the instant messaging server
using the instant messaging protocol.
106. The system of claim 103, wherein the first connection
comprises a wireless connection and wherein the second connection
comprises a wired connection.
107. The system of claim 103, wherein the first connection is
metered as a first function of data usage, wherein the second
connection is metered as a second function of data usage, whereby
the first connection is less costly than the second connection for
equivalent data usages.
108. A computer-implemented method comprising a step of: (A) at a
personal server coupled to a mobile device over a first wide area
network connection, the mobile device having a user, transmitting
personal data between the mobile device and the user and others
authorized by the user, but to no other users.
109. The method of claim 108, wherein the personal server comprises
a personal computer.
110. The method of claim 108, wherein the user owns the mobile
device and the personal server.
111. The method of claim 110, wherein the user is authorized by an
owner of the mobile device to perform read-only actions using the
mobile device.
112. The method of claim 108, wherein the mobile device comprises a
cellular telephone.
113. The method of claim 108, wherein the step (A) comprises steps
of: (A)(1) receiving a message from the mobile device, the message
having a plurality of destinations; and (A)(2) forwarding the
message to the plurality of destinations.
114. The method of claim 108, wherein the personal server includes
data not included in the mobile device, and wherein the step (A)
comprises a step of transmitting the data to a destination on
behalf of the mobile device.
115. The method of claim 108, wherein the step (A) comprises steps
of: (A)(1) receiving a message from the mobile device according to
a first protocol, the message having a destination; (A)(2)
forwarding the message to the destination according to a second
protocol that differs from the first protocol.
116. The method of claim 108, wherein the step (A) comprises steps
of: (A)(1) receiving a message having the mobile device as its
destination; (A)(2) determining whether the personal server is
configured to receive messages on behalf of the mobile device; and
(A)(3) storing the message at the personal server without
forwarding the message to the mobile device if it is determined
that the personal server is configured to receive messages on
behalf of the mobile device.
117. The method of claim 108, wherein the step (A) comprises steps
of: (A)(1) receiving an instruction from the mobile device to
execute a computer program; and (A)(2) executing the program in
response to the instruction.
118. The method of claim 108, further comprising a step of: (B) at
a non-personal server coupled to the mobile device and the personal
server, performing steps of: (1) receiving a message from the
mobile device; (2) determining whether the personal server is
accessible to the non-personal server; and (3) storing the message
at the non-personal server if the personal server is determined not
to be accessible to the non-personal server.
119. The method of claim 108, wherein the step (A) comprises a step
of: (A)(1) storing personal data on behalf of the user.
120. The method of claim 119, wherein the step (A) further
comprises a step of: (A)(2) receiving the personal data on behalf
of the user.
121. The method of claim 119, wherein the step (A) further
comprises a step of: (A)(2) providing the personal data to the user
through the mobile device in response to a request from the
user.
122. The method of claim 108, wherein the step (A) comprises steps
of: (A)(1) receiving instant messaging information from an instant
messaging server using an instant messaging protocol; and (A)(2)
transmitting at least some of the instant messaging information
over the first wide area network connection to the mobile device
using a non-instant messaging protocol.
123. The method of claim 108, wherein the step (A) comprises steps
of: (A)(1) receiving instant messaging information from an instant
messaging server using an instant messaging protocol; (A)(2)
filtering the instant messaging information to produce filtered
instant messaging information; and (A)(3) transmitting the filtered
instant messaging information to the mobile device.
124. The method of claim 108, wherein the step (A) comprises steps
of: (A)(1) receiving instant messaging information from a plurality
of instant messaging servers using at least one instant messaging
protocol; and (A)(2) transmitting at least some of the instant
messaging information over the first wide area network connection
to a mobile device.
Description
BACKGROUND
[0001] 1. Field of the Invention
[0002] The present invention relates to network information
services and, more particularly, to techniques for providing
network services to mobile devices.
[0003] 2. Related Art
[0004] Mobile electronic devices, such as cellular telephones,
personal digital assistants (PDAs), and laptop computers, continue
to proliferate as they increase in functionality and decrease in
size and price. Furthermore, all kinds of mobile electronic devices
are increasingly being equipped with wireless Internet access as a
standard feature. As a result, mobile devices currently provide a
range of features previously only available from full-featured PCs,
but with the obvious advantage of increased mobility.
[0005] Mobile devices typically communicate with a centralized
server, such as a web server, instant messaging (IM) server, or SMS
(Short Message Service) server, which performs requested services
on behalf of the mobile device. Referring to FIG. 1A, for example,
a diagram is shown of a prior art communications system 100 in
which a mobile device 102 communicates with a server 104 over a
network 106, such as a cellular telephone network. The connection
108a-b between the mobile device 102 and server 104 is abstracted
to represent both the physical connection and the logical
connection between the device 102 and server 104. If, for example,
the server 104 is an email server, the mobile device 102 may send
and receive email through the server 104. For example, the mobile
device may send a request over the connection 108a-b to receive any
new email messages, in response to which the server 104 may
retrieve and transmit any new email messages over the connection
108a-b to the mobile device 102. The server 104 typically is
maintained by a service provider and may provide service to a large
number of mobile devices simultaneously. Depending on the type of
service provided by the server 104, the user of the mobile device
102 may pay a fee to the provider of the server 104, which may be a
different provider than the provider of the network 106 and/or
connection 108a-b, to which the mobile device user may pay separate
fees.
[0006] Instant messaging (IM) is an increasingly popular service
being provided on a variety of networks. When a user transmits an
instant message over an IM network to another user on the network,
the message is displayed immediately on the recipient's screen.
Users may therefore use instant messaging to conduct online
conversations in real-time, much like telephone conversations. Many
users prefer instant messaging to email because of its immediacy.
Multiple users may simultaneously engage in an IM conversation,
sometimes referred to as a "group chat."
[0007] Referring to FIG. 1B, a diagram is shown of a prior art
instant message system 120, which includes a centralized IM server
124 coupled to a plurality of IM clients 122a-d over persistent
connections 126a-d, respectively. For ease of illustration and
explanation, FIG. 1B does not show the network itself or the
devices (such as desktop computers) that may be used to perform
instant messaging in the system 120. IM client 122a may, for
example, transmit an instant message to IM client 122b by
transmitting the message using an appropriate protocol (referred to
herein as an "instant messaging protocol") over connection 126a to
IM server 124. IM server 124 may relay the message over connection
126b to IM client 122b. In other words, IM server 124 acts as an
intermediary for all of the IM clients 122a-d.
[0008] Although instant message was originally implemented for use
on desktop and laptop personal computers (PCs), more recently
mobile devices have been equipped with the ability to engage in
instant messaging. For example, referring to FIG. 1C, a diagram is
shown of a system 140 implementing a portion of the instant
messaging system 120 shown in FIG. 1B. In current systems, a mobile
device 142 is provided with IM functionality by installing a
software IM client 122a on the mobile device 142. The IM client
122a on the mobile device 142 communicates with the IM server 124
over a network 144 through IM connection 146a-b.
[0009] The mobile device IM client 122a communicates with the IM
server 124 using the same IM protocol that is used by a PC-based IM
client. Due to various resource limitations of the mobile device
142, however, such as its limited screen, bandwidth, storage
capacity, power supply, and processing power, the IM client 122a
typically provides a set of features that is significantly scaled
down in comparison to the set of features provided by a PC-based IM
client. For example, the mobile device's IM client 122a may be
unable to display more than a few lines of an IM conversation at a
time, may be unable to store ("log") the contents of an IM
conversation, and may be unable to receive and/or display images
transmitted as attachments to IMs.
[0010] Therefore, although the users of mobile devices are
increasingly looking to such devices to provide the same
functionality as conventional full-featured PCs, providing such
functionality in mobile devices remains a challenge, both because
of the resource limitations just described and because of the
relatively high cost of mobile (typically wireless) bandwidth
compared to the relatively low cost of (typically wired) PC
bandwidth. Some servers providers have attempted to address this
problem by providing public servers for providing additional
functions on behalf of mobile devices, such as filtering and
logging instant messages. Such servers may, therefore, reduce the
burden on the mobile clients to perform such functions. The
establishment of such servers, however, imposes an additional cost
on the server provider, which is then passed on to the customer.
Furthermore, the mobile device users may be provided with only a
limited ability to configure or otherwise control the services
provided by the public servers, thereby limiting their usefulness
to the end users.
[0011] What is needed, therefore, are improved techniques for
providing network information services to mobile devices.
SUMMARY
[0012] A personal server is provided for use with a mobile device,
such as a cellular telephone. The personal server provides services
to the user of the mobile device and to others authorized by the
user, but to no other users. The personal server may be a home PC
of the user of the mobile device. The personal server may serve as
a proxy server for a shared server that provides services to the
mobile device. The personal server may relay messages between the
mobile device and the shared server. The personal server may store,
log, filter, and perform other processing on the user's personal
data, such as messages transmitted by the mobile device and/or the
shared server. The personal server may aggregate messages received
from a plurality of shared servers. A non-personal server may
perform additional services, such as configuring the personal
server and temporarily storing data if the personal server becomes
inaccessible.
[0013] For example, in one embodiment of the present invention, a
system is provided which includes a mobile device configured for
use by a user, and a personal server coupled to the mobile device
over a first wide area network connection to provide services over
the wide area network to the user and to others authorized by the
user, but to no other users. In another embodiment of the present
invention, a computer-implemented method is provided in which a
personal server, coupled to a mobile device over a first wide area
network connection, provides services over the wide area network to
a user of the mobile device and to others authorized by the user,
but to no other users.
[0014] In yet another embodiment of the present invention, a system
is provided which includes mobile device configured for use by a
user, and a personal server coupled to the mobile device over a
first wide area network connection to transmit personal data
between the mobile device and the user and others authorized by the
user, but no other users. In a further embodiment of the present
invention, a computer-implemented method is provided in which a
personal server, coupled to a mobile device over a first wide area
network connection, transmits personal data between the mobile
device and the user of the mobile device (and others authorized by
the user), but to no other users.
[0015] Other features and advantages of various aspects and
embodiments of the present invention will become apparent from the
following description and from the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0016] FIG. 1A is a diagram of a prior art communications system in
which a mobile device communicates with a server over a
network;
[0017] FIG. 1B is a diagram of a prior art instant messaging system
including a centralized instant messaging server coupled to a
plurality of instant messaging clients;
[0018] FIG. 1C is a diagram of a system implementing a portion of
the prior art instant messaging system of FIG. 1B;
[0019] FIG. 2A is a block diagram of a system implemented according
to one embodiment of the present invention;
[0020] FIG. 2B is a diagram of a system implemented according to
another embodiment of the present invention;
[0021] FIG. 2C is a diagram of a system including a plurality of
mobile devices and a plurality of corresponding personal servers
according to one embodiment of the present invention;
[0022] FIG. 3A is a flowchart of a method that is performed by a
personal server to relay messages from a shared server to a mobile
device according to one embodiment of the present invention;
[0023] FIG. 3B is a flowchart of a method that is performed by a
personal server to relay messages from a mobile device to a shared
server according to one embodiment of the present invention;
[0024] FIGS. 3C-3D are flowcharts of methods performed by a
personal server to translate messages between a first and second
protocol according to one embodiment of the present invention;
[0025] FIG. 3E is a flowchart of a method that is performed by a
personal server to filter messages received from a shared server
according to one embodiment of the present invention;
[0026] FIG. 3F is a flowchart of a method that is performed by a
personal server to process instant messages on behalf of a mobile
device according to one embodiment of the present invention;
[0027] FIG. 3G-3H are flowcharts of methods performed by a personal
server to aggregate and disaggregate messages, respectively,
according to one embodiment of the present invention;
[0028] FIGS. 3I-3J are flowcharts of methods performed by a
non-personal server to relay messages between a shared server and a
personal server according to one embodiment of the present
invention;
[0029] FIG. 3K is a flowchart of a method performed by a personal
server to broadcast a message on behalf of a mobile device
according to one embodiment of the present invention;
[0030] FIG. 3L is a method performed by a personal server to store
data on behalf of a mobile device based on predetermined criteria
according to one embodiment of the present invention;
[0031] FIG. 3M is a method performed by a personal server to
transmit personal data to a mobile device according to one
embodiment of the present invention;
[0032] FIG. 3N is a flowchart of a method performed by a personal
server to selectively store personal data on behalf of a mobile
device according to one embodiment of the present invention;
[0033] FIG. 3O is a flowchart of a method performed by a
non-personal server to use a personal server to selectively store
personal data on behalf of a mobile device according to one
embodiment of the present invention;
[0034] FIG. 3P is a flowchart of a method performed by a personal
server to execute a program on behalf of a mobile device according
to one embodiment of the present invention; and
[0035] FIG. 3Q is a flowchart of a method performed by a
non-personal server to temporarily store personal data on behalf of
a mobile device according to one embodiment of the present
invention.
DETAILED DESCRIPTION
[0036] A personal server is provided for use with a mobile device,
such as a cellular telephone. The personal server provides services
to the user of the mobile device and to others authorized by the
user, but to no other users. The personal server may be a home PC
of the user of the mobile device. The personal server may serve as
a proxy server for a shared server that provides services to the
mobile device. The personal server may relay messages between the
mobile device and the shared server. The personal server may store,
log, filter, and perform other processing on the user's personal
data, such as messages transmitted by the mobile device and/or the
shared server. The personal server may aggregate messages received
from a plurality of shared servers. A non-personal server may
perform additional services, such as configuring the personal
server and temporarily storing data if the personal server becomes
inaccessible.
[0037] Referring to FIG. 2A, a block diagram is shown of a system
200a implemented according to one embodiment of the present
invention. The system 200a includes a mobile device 202 (such as a
cellular telephone) coupled over a first wide area network 220
(such as a cellular telephone network) to a personal server 212
(such as a desktop or laptop PC). The mobile device 202 has a user
222 who is authorized to use the mobile device 202. The user 222
may, for example, be an owner of the mobile device 202 or someone
authorized by the owner to use the mobile device 202, such as a
friend or family member of the owner of the mobile device 202. In
one embodiment of the present invention, the user 222 may be an
owner of the mobile device 202 or someone authorized by the owner
of the mobile device 202 to perform read-only actions (such as
viewing email and browsing web pages) using the mobile device 202.
The personal server 212 provides services to the user 222 and to
others authorized by the user 222 to use the personal server 212,
but to no other users. The personal server 212 may, for example, be
a personal computer owned by the user 222. As described in more
detail below, the personal server 212 may store personal data 214
associated with the user 222.
[0038] User 222 operates the mobile device 202 by providing
commands 224 to the device 202 using a user interface provided by
the device 202. Such a user interface may, for example, include
hardware input components such as a keyboard, mouse, keypad,
stylus, and/or touchscreen, as well as software for providing a
graphical user interface to the user 222 and for processing the
commands 224. Mobile device 202 provides output 226 to the user
222, such as by displaying text and/or graphics on a display
screen. Various techniques for receiving input from and providing
output to the user of a mobile device are well-known to those
having ordinary skill in the art.
[0039] The mobile device 202 may communicate with the personal
server 212 over the wide area network 220, such as by sending
outgoing message 210 to the personal server 212 and by receiving
incoming message 218 from the personal server 212. In the
embodiment illustrated in FIG. 2A, outgoing message 210 is
transmitted over WAN connection 208a and incoming message 218 is
transmitted over WAN connection 208c. Both outgoing message 210 and
incoming message 218 may, however, be transmitted over the same WAN
connection between mobile device 202 and personal server 212. For
example, the mobile device 202 may be an Internet-enabled cellular
telephone, and the personal server 212 may be a PC having a
permanent connection to the Internet. In such a case, the mobile
device 202 may establish an Internet connection with the personal
server 212 in any of a variety of ways well-known to those having
ordinary skill in the art.
[0040] Incoming message 218 and outgoing message 210 may be any of
a variety of kinds of messages, such as instant messages, email
messages, or text messages (e.g., SMS messages). More generally,
the term "message" refers herein to any kind of information
transmitted over a network, whether such information represents a
human-readable message or non-human readable data or commands. The
personal server 212 may thereby provide a variety of services to
the mobile device 202 over the wide area network 220.
[0041] The personal server 212 may serve as a proxy server for
another, shared, server 204. The shared server 204 is "shared" in
the sense that, unlike the personal server 212, it provides
services to a plurality of independent users. One example of a
plurality of "independent" users is a plurality of users having
distinct instant messaging accounts on a public instant messaging
server. The shared server 204 may, for example, be a conventional
file server, email server, instant messaging server, or SMS server.
In the embodiment illustrated in FIG. 2A, the personal server 212
is coupled to the shared server 204 over a second wide area network
206. Note, however, that the first wide area network 220 and the
second wide area network 206 may be a single network rather than
two distinct networks.
[0042] The personal server 212 may serve as a "proxy" server in the
sense that the personal server 212 may serve as a proxy for the
mobile device 202 in communications with the shared server. Recall,
for example, that in the prior art instant messaging system 120
shown in FIG. 1B, each of the IM clients 122a-d communicates
directly the IM server 124. In contrast, in the system 200a
illustrated in FIG. 2A, the mobile device 202 communicates with the
shared server 204 indirectly through the personal server 212. The
personal server 212 may include a pseudo-client 240, which may be
configured to communicate with the shared server 204 using an
appropriate protocol. For example, if the shared server 204 is an
instant messaging server, the pseudo-client 240 may be a
conventional instant messaging client or other software that is
capable of communicating with the shared server 204 using an
appropriate instant messaging protocol.
[0043] The personal server 212 may provide a variety of services to
the mobile device 202. For example, the personal server 212 may
relay messages between the mobile device 202 and the shared server
204. For example, referring to FIG. 3A, a flowchart is shown of a
method 300 that is performed by the personal server 212 in one
embodiment of the present invention. The personal server 212 may,
for example, receive incoming message 218 from the shared server
204 on connection 208d (step 302). The personal server 304 may
transmit the incoming message 218 to the mobile device 202 on
connection 208c (step 304). Similarly, referring to FIG. 3B (method
305), the personal server 212 may receive outgoing message 210
(step 306) to the shared server 204 as an outgoing message 216 on a
connection 208b between personal server 212 and shared server 204
(step 308).
[0044] One function that may be performed by the personal server
212 is to translate incoming and outgoing messages from one
protocol to another. For example, referring to FIG. 3C, a flowchart
is shown of a method 309 that is performed by the personal server
212 in one embodiment of the present invention. Consider, for
example, a case in which the shared server 204 is an instant
messaging server and in which the mobile device 202 is not equipped
with instant messaging capabilities. Assuming that the mobile
device 202 is equipped, however, with email/SMS/IM capabilities,
the personal server 212 may use the pseudo-client 240 to receive
instant messages transmitted by the shared server 204 according to
an instant messaging protocol (step 310) and convert such messages
into email messages (step 312) before transmitting them to the
mobile device 202 (step 314). Conversely, referring to FIG. 3D
(method 315), the personal server 212 may receive email messages
transmitted by the mobile device 202 (step 316) and convert them to
instant messages (step 318) before transmitting them to the shared
server 204 (step 320). More generally, the personal server 212 may
convert messages from one protocol to another when relaying
messages between the mobile device 202 and the shared server 204,
thereby allowing communication therebetween which would not
otherwise be possible. In some existing systems, such translation
is performed by shared servers maintained by service providers.
Performing such translation using the personal server 212 may be
advantageous for a variety of reasons. For example, the personal
server 212, which may otherwise be idle, may devote its processing
resources exclusively to servicing the mobile device 202, thereby
providing services more efficiently than a shared server.
[0045] The personal server 212 may also perform filtering on
messages received from the shared server 204. For example,
referring to FIG. 3E, a flowchart is shown of a method 321 that is
performed in one embodiment of the present invention by the
personal server 212 to filter messages received from the shared
server 204. The personal server 212 receives messages from the
shared server 204 (step 322), filters the messages to produce
filtered messages (step 324), and transmits the filtered messages
to the mobile device 202 (step 326). As a result, the personal
server 212 may forward less than all of the data received from the
shared server 204 to the mobile device 202. Such filtering may be
advantageous for a variety of reasons. For example, such filtering
may decrease the cost of operating the mobile device 202 because
the cost of the connection between the personal server 212 and the
mobile device 202 may be higher than the cost of the connection
between the personal server 212 and the shared server 204.
[0046] One example of information that may be filtered by the
personal server 212 is instant messaging "presence information." In
conventional instant messaging systems, such as the system 120
shown in FIG. 1B, the instant messaging server 124 maintains
persistent connections 126a-d with the IM clients 122a-d. The
central IM server 124 periodically sends presence information to
each client, indicating whether other selected instant messaging
users (sometimes referred to as "buddies") are connected to the
network. Such presence information is transmitted to the client
automatically, whether or not it is requested. Although the
transmission of presence information may not be problematic on
wired connections which are priced at a flat rate or by the hour,
the repeated transmission of presence information may incur a
significant cost to the user 222 when such information is
transmitted over connections (such as cellular telephone
connections) which are priced by usage. As a result, filtering
presence information may provide a cost savings to the user 222
when the cost per bit of the connection between the personal server
212 and the shared server 204 is lower than the cost per bit of the
connection between the personal server 212 and the mobile device
202. Such filtering may be performed in any of a variety of ways,
such as by lengthening the period between transmissions (e.g., from
10 seconds to 5 minutes) or by only transmitting presence
information to the mobile device 202 when such information has
changed.
[0047] Note that the filtering just described may be implemented
whether or not the mobile device 202 is instant-messaging enabled.
For example, the mobile device 202 may include a personal client
228, which may be a conventional mobile instant messaging client,
in which case the personal server 212 may act as a filter without
converting from one protocol to another. Alternatively, the
personal server 212 may both act as a filter and convert between
the instant messaging protocol (or other protocol used by the
shared server 204) and a protocol (such as an email protocol)
recognized by the mobile device 202.
[0048] More generally, the personal server 212 may serve as an
"instant messaging proxy server" (IM proxy) that performs a variety
of IM-related service for the mobile device 202. For example, the
personal server 212 may log IM sessions in the personal data 214,
filter obscene messages or other information, operate distribution
lists, and maintain the required persistent connection with the IM
server (e.g., the shared server 204) even when the mobile device
202 loses network connectivity due to an incoming phone call,
momentary interruption of service, or other network connectivity
problem. More generally, referring to FIG. 3F (method 327), the
personal server 212 may receive instant messages from the shared
(IM) server 204 in the same manner as any other conventional IM
client (step 328), perform any kind of processing on the instant
messages (step 330), and then transmit the processed instant
messages to the mobile device (step 332).
[0049] Another function that may performed by the personal server
212 is to act as an aggregator of services provided by a plurality
of shared servers. For example, referring to FIG. 2B, a diagram is
shown of a system 200b in another embodiment of the present
invention. Referring to FIG. 3G, a flowchart is shown of a method
333 that is performed by the personal server 212 to aggregate
messages in the system 200b according to one embodiment of the
present invention. Individual messages are not shown in FIG. 2B for
ease of illustration. The system 200b includes the elements of
system 200a (FIG. 2A), as well as two additional shared servers 282
and 284. The shared servers 204, 282, and 284 may, for example, be
instant messaging servers operating on different instant messaging
networks and/or using different instant messaging protocols.
Typically, for a device such as the mobile device 202 to
communicate with all of the shared servers 204, 282, and 284, the
mobile device 202 would be need to be equipped with a plurality of
clients, each configured to communicate with a distinct one of the
shared servers 204, 282, and 284. In contrast, in the embodiment
illustrated in FIG. 2B, the personal server 212 is equipped with a
plurality of pseudo clients 204, 282, and 284, capable of
communicating with shared servers 204, 282, and 284, respectively.
As a result, the personal server 212 may serve as a proxy for the
mobile device 202 by receiving messages from the plurality of
shared servers 204, 282, and 284 (step 334), aggregating the
messages (step 336), and transmitting the aggregated messages to
the mobile device 202 (step 338). For example, the personal server
212 may aggregate instant messaging streams received from the
shared servers 204, 282, and 284 into a single instant messaging
stream provided to the single personal client 228. Similarly,
referring to FIG. 3H (method 339) the personal server 212 may
receive messages from the mobile device 202 (step 340),
disaggregate the messages (step 342), and then use the
pseudo-clients 240, 286, and 288 to forward the disaggregated
messages to the appropriate ones of the shared servers 204, 282,
and 284 (step 344). Such aggregation and disaggregation may be
combined with any of the other techniques disclosed herein, such as
filtering and logging of communications.
[0050] In the embodiment illustrated in FIG. 2A, the mobile device
202 is provided with personal client 228 for communicating with the
personal server 212 over the wide area network 220 using an
appropriate protocol. The personal client 228 may, for example, be
a conventional email client IM client, or SMS client. The personal
client 228 may, however, be a proprietary client 228 for
communicating with the personal server 212 according to a
proprietary protocol. For example, the personal server 212 may
communicate with the shared server 204 using a standard protocol
(such as SMS), yet communicate with the mobile device 202 using a
proprietary (non-standard protocol), and convert between the two.
As a result, the mobile device 202 may not need to be equipped with
the kind of client (e.g., an instant messaging client) that would
otherwise be required for communicating with the shared server
204.
[0051] Note that the mobile device 202 and the personal server 212
need not be coupled directly to each other. Rather, as shown in
FIG. 2B, the system 200b may include a non-personal server 230
through which the mobile device 202 and the personal server 212 may
communicate over the WAN 220. The non-personal server 230 may serve
a plurality of users, unlike the personal server 212. One function
that may be performed by the non-personal server 230 is to forward
outgoing messages 210 from the mobile device 202 to the personal
server 212 and to forward incoming messages 218 from the personal
server 212 to the mobile device 202.
[0052] The non-personal server 230 may maintain account information
236a-c for each of the users served by the non-personal server 230.
For example, referring to FIG. 2C, the system may include a
plurality of mobile devices 202, 250, and 270, and a plurality of
corresponding personal servers 212, 254, and 274. Account
information 236a may be associated with the user 222 of mobile
device 202 and personal server 212; account information 236b may be
associated with mobile device 250 and personal server 254; and
account information 236c may be associated with the mobile device
270 and personal server 274. Additional components of the personal
servers 212, 254, and 274 (such as configuration information and
pseudo-clients) are omitted from FIG. 2C for ease of illustration.
The account information 236a-c may include any kind of information
about the associated user and devices, such as usernames,
passwords, device IDs, and configuration preferences.
[0053] Referring to FIG. 3I, a flowchart is shown of a method 349
that is performed by the non-personal server 230 to relay messages
from the mobile device 202 to the personal server 212 according to
one embodiment of the present invention. The non-personal server
230 receives a message (such as outgoing message 210) from the
mobile device 202 over the WAN 220 (step 350). The non-personal
server 230 identifies the personal server that corresponds to the
mobile device 202 (step 352). The non-personal server 230 may, for
example, use the header of the outgoing message 210 and the account
information 236a-c to identify the personal server 212 as the
personal server corresponding to mobile device 202. The
non-personal server 230 transmits the message 210 to the identified
personal server over the WAN 220 (step 354). Conversely, referring
to FIG. 3J (method 355), the non-personal server 230 may receive a
message (such as incoming message 218) from the shared server 204
over the WAN 220 (step 356), identify the personal server that
corresponds to the mobile device for which the message is destined
(step 358), and transmit the message to the identified personal
server (step 360).
[0054] Another function that may be performed by the personal
server 212 is to broadcast messages on behalf of the mobile device
202. For example, referring to FIG. 3K, a flowchart is shown of a
method 359 that is performed by the personal server 212 in one
embodiment of the present invention to broadcast messages on behalf
of the mobile device 202. The mobile device 202 may transmit the
single outgoing message 210 to the personal server 212 but specify
a plurality of destinations. Referring to FIG. 2B, the personal
server 212 may receive the outgoing message 210 (step 360),
identify the plurality of destination clients 232a-c specified by
the message (step 362), and broadcast multiple instances of the
outgoing message 216 over the WAN 206 to a plurality of destination
clients 232a-c (step 364). Such a technique may be advantageous for
a variety of reasons. For example, the bandwidth of connections
over the second WAN 206 may be less expensive than the bandwidth of
the connections over the first WAN 220, as may be the case if the
first WAN 220 is a cellular telephone network and the second WAN is
a wired Ethernet network. As another example, the personal server
212 may have greater computing resources than the mobile device 202
and therefore be more suitable for transmitting multiple messages,
as may be the case if the mobile device 202 is a cellular telephone
and the personal server 212 is a full-featured desktop PC. Note
that although the destination clients 232a-c are shown in FIG. 2A
as being connected directly to the WAN 206, the destination clients
232a-c may be connected to the WAN 206 indirectly through the
shared server 204 or in other ways.
[0055] Another function that may be performed by the personal
server 212 is to store personal data 214 for the user 222. As used
herein, the term "personal data" refers to any data associated with
the user 222, such as text, image, or audio files created,
received, owned, or otherwise under control of the user 222. It may
be desirable to store such data 214 on the personal server 212
instead of or in addition to the mobile device 202 for a variety of
reasons. For example, the personal server 212 may have
significantly greater storage capacity than the mobile device 202.
If the personal server 212 is a PC and the mobile device 202 is a
cellular telephone, for example, the personal server 212 may easily
have over a million times greater persistent storage capacity than
the mobile device 202. The personal server 212 may also have
significantly greater processing power than the mobile device 202,
making it more suitable to perform image processing, spell
checking, automatic text translation, text-to-speech translation,
speech recognition, or other kinds of processing on the personal
data 214.
[0056] The personal data 214 may come to be stored on the personal
server 212 in any of a variety of ways. For example, the mobile
device 202 may transmit the personal data 214 to the personal
server 212 along with specific instructions to store the personal
data 214 on the personal service 212. For example, the user 222 may
create a word processing document using the mobile device 202 and
instruct the personal server 212 to store the document to save
storage space on the mobile device 202. Similarly, backup software
executing on the mobile device 202 may transmit some or all of the
data stored on the mobile device 202 for backup storage in the
personal data 214. The personal server 212 may create the personal
data 214 by logging incoming and/or outgoing messages which pass
through the personal server 212, such as email messages, instant
messages, or SMS messages. Such logging may be configured to be
performed automatically, with or without filtering as desired by
the user 222. Such configuration may be specified by the user 222
by modifying configuration information 236 in the personal server
212 and/or by modifying the account information 236a associated
with the user 222.
[0057] The personal server 212 may also, for example, decide to
store incoming messages 218 in the personal data 214 based on
predetermined criteria. For example, referring to FIG. 3L, a
flowchart is shown of a method 365 that is performed by the
personal server 212 to store data based on predetermined criteria
according to one embodiment of the present invention. The personal
server 212 receives a message from the mobile device 202 or the
shared server 204 (step 366). The personal server 212 determines
whether the message satisfies predetermined criteria (step 368). If
such criteria are satisfied, the personal server 212 stores the
message, or data derived therefrom, in the personal data (step
370). The message may also be forwarded to the mobile device 202.
For example, the personal server 212 may be configured to store any
incoming messages larger than a particular predetermined size in
the personal data 214 rather than transmitting such messages to the
mobile device 202. Rather than forwarding such messages to the
mobile device 202, the personal server 212 may, for example,
transmit a smaller message to the mobile device 202 indicating that
the original (larger) message has been received and stored in the
personal data 214. The user 222 may, for example, choose to access
the personal data 214 using the personal server directly 212, as in
the case where the personal server 212 is a home PC owned by the
user 222.
[0058] The user 222 may store personal data 214 directly on the
personal server 212, without going through an intermediary such as
the mobile device 202, the non-personal server 212, or the shared
server 204. For example, user 222 may create files using the
personal server 212 and store such files in the personal data 214.
As another example, the user 222 may purchase, download, or
otherwise obtain files (such as digital audio/video files) and
store such files in the personal data 214. Once such files are
stored in the personal data 214, they may be processed and
transmitted in any of the ways described herein.
[0059] The personal server 212 may include means for transmitting
some or all of the personal data 214 to the mobile device 202. For
example, referring to FIG. 3M, a flowchart is shown of a method 371
that is performed by the personal server 212 to transmit some or
all of the personal data 214 to the mobile device 202. The personal
server 212 may receive a request from the mobile device 202 to
transmit some or all of the personal data 214 to the mobile device
202 (step 372). In response, the personal server 212 may transmit
the requested data to the mobile device 202 (step 374). In this
sense, the personal server 212 may act, for example, as a file
server to the mobile device 202. Alternatively, for example, the
personal server 212 may transmit some or all of the personal data
214 to the mobile device 202 when the personal server 212 detects
that a low-cost connection has been established between the
personal server 212 and the mobile device 202. In any case, the
ability to store personal data 214 on the personal server 212
rather than the mobile device 202 advantageously leverages the
increased storage capacity, processing power, and bandwidth
available to the personal server 212 compared to the mobile device
202.
[0060] The personal data 214 may be any kind of data, such as
static files 214 for storage, messages transmitted by the mobile
device 202, or messages having the mobile device 202 as their
intended destination. For example, the configuration information
236 may be modified to configure the personal server 212 to receive
messages (such as email messages, instant messages, or SMS
messages) on behalf of the mobile device 202. Referring to FIG. 3N,
a flowchart is shown of a method 375 that is performed by the
personal server 212 according to one embodiment of the present
invention to selectively receive messages on behalf of the mobile
device 202. The personal server 212 receives a message having the
mobile device 202 as its destination (step 376). If the personal
server 212 is configured to receive messages on behalf of the
mobile device 202 (step 378), the personal server 212 stores the
message for the mobile device 202 (step 382). Otherwise, the
personal server 212 transmits the message to the mobile device 202
(step 380). Messages stored by the personal server 212 on behalf of
the mobile device 202 may be retrieved by the user 222 in any of
the ways described above.
[0061] Alternatively, the personal server 212 may be configured to
receive messages on behalf of the mobile device 202 by modifying
the account information 236a at the non-personal server 230. For
example, referring to FIG. 30, a flowchart is shown of a method 381
that is performed by the non-personal server 230 according to one
embodiment of the present invention to enable the personal server
212 to selectively receive messages on behalf of the mobile device
202. The non-personal server 230 receives a message having the
mobile device 202 as its destination (step 382). The non-personal
server 230 determines whether it is configured to transmit messages
to the mobile device 202 or to the personal server 212 (step 384).
If the non-personal server 230 is configured to transmit messages
to the mobile device 202, the non-personal server 230 transmits the
message to the mobile device (step 386). Otherwise, the
non-personal server 230 transmits the message to the personal
server 212 (step 388).
[0062] The mobile device 202, rather than the non-personal server
230, may determine whether a particular message is to be
transmitted to the personal server 212 rather than to the mobile
device. For example, the non-personal server 230 may transmit a
header of the incoming message to the mobile device 202. The mobile
device 202 may determine whether the message should be transmitted
to the mobile device 202 or to the personal server 212 based on
information in the header (such as the size of the message). The
mobile device 202 may then instruct the non-personal server 230
appropriately, in response to which the non-personal server 230 may
transmit the body of the message to the mobile device 202 or to the
personal server 212. Alternatively, the personal server 212 may
make the determination in the manner just described for the mobile
device 202. In other words, any one of the non-personal server 230,
the mobile device 202, and the personal server 212 may determine
whether an incoming message is to be transmitted to and stored by
the personal server 212 or by the mobile device 202.
[0063] Another function that may be performed by the personal
server 212 is to execute programs on behalf of the mobile device
202. For all of the reasons described above, the personal server
212 may be more suitable than the mobile device 202 for executing a
variety of programs. Referring to FIG. 3P, a flowchart is shown of
a method 389 that is performed by the personal server 212 in one
embodiment of the present invention to execute programs on behalf
of the mobile device 202. The mobile device 202 may transmit an
instruction to the personal server 212 to execute a program 256
residing on (or otherwise under the control of) the personal server
212. In response to receiving such a request (step 390), the
personal server 212 may execute the program 256 (step 392). For
example, the program 256 may be an image processing program which
may process an image stored in the personal data 214 by reducing
its dimensions to a size suitable for transmission to and display
by the mobile device 202. Upon executing the program 256, the
personal server 212 may transmit the output of the program 256
(such as the reduced image) or any other response to the mobile
device 202.
[0064] Similarly, the personal server 212 may perform processing
for a game on behalf of the user 222. For example, the executable
program 256 may be a game which is too expensive or
resource-intensive to execute on the mobile device 202. The user
222 may therefore play the game using the mobile device 202 by
executing the game on the personal server 212 and using the mobile
device 202 as an interface with the personal server 212. Similarly,
the executable program 256 may be a client or server program for a
networked multiplayer game, thereby allowing the user 222 to play
such a game even if it would be impossible or prohibitively
expensive to execute the game client and/or server on the mobile
device 202 itself.
[0065] The personal server 212 may become inaccessible over the WAN
220 or otherwise become unavailable for use for any of a variety of
reasons. For example, the personal server 212 may crash, be turned
off, or lose its connection to the WAN 220. Such
inaccessibility/unavailability may last for varying periods of
time. In some cases, the personal server 212 may be able make
itself become available again, such as by re-establishing a
connection to the WAN 220 automatically. In other cases, it may be
necessary for the user 222 to make the personal server 212
available, such as by rebooting it or manually reconnecting it to
the WAN 220.
[0066] As described above, the non-personal server 230 may serve as
an intermediary between the personal server 212 and the shared
server 204. For example, when the personal server 212 is available,
the incoming message 218 transmitted by the shared server 204 to
the mobile device 202 may first be received by the non-personal
server 230, then transmitted by the non-personal server 230 to the
personal server 212, and then transmitted by the personal server
212 to the mobile device 202. The non-personal server 230 may use
the account information 236a-c to identify the personal server to
which the message should be sent. If, however, the personal server
212 becomes unavailable, the non-personal server 230 will be unable
to transmit messages to the personal server 212 for the duration of
that unavailability.
[0067] In one embodiment of the present invention, the non-personal
server 230 stores data destined for the personal server 212 as
temporary personal data 234 when the personal server 212 is
determined to be unavailable. Note that although only temporary
personal data 234 is shown in FIG. 2B, the non-personal server 230
may store temporary personal data for use user served by the
non-personal server 230. For example, the temporary personal data
234 may be stored as part of the account information 236a for the
user 222, and the remaining account information 236b-c may include
temporary personal data for additional users of the non-personal
server 230.
[0068] Referring to FIG. 3Q, a flowchart is shown of a method 393
that is performed by the non-personal server 230 to store data
destined for the personal server 212 when the personal server is
unavailable. The non-personal server 230 receives a message from
the shared server 204 or the mobile device (step 394). The
non-personal server 212 identifies the personal server associated
with the message (step 396). The non-personal server 230 determines
whether the identified personal server is available over the WAN
220 (step 398). If the personal server 212 is available over the
WAN 220, the non-personal server 230 transmits the message to the
personal server 212 (step 400), as described above. Otherwise, the
non-personal server 230 stores the incoming message 218 in the
temporary personal data 234 associated with the mobile device 202
(step 402).
[0069] The non-personal server 230 may, for example, transmit a
message directly to the mobile device 202 notifying it that the
incoming message 218 is available for retrieval. In response, the
mobile device 202 may retrieve (automatically or in response to a
command from the user 222) the incoming message 218 from the
temporary personal data 234 without going through the personal
server 212. Alternatively, the non-personal server 230 may transmit
the message 218 to the personal server 212 at a later time, when
the personal server 212 again becomes available to the non-personal
server 230 over the WAN 220. The non-personal server 220 may, for
example, periodically attempt to establish contact with the
personal server 212 and transmit the message 218 to the personal
server 212 when such contact is established (steps 398, 402).
Alternatively, the personal server 212 may initiate contact with
the non-personal server 230 when the personal server 212
establishes a connection with the WAN 220. In response, the
non-personal server 230 may transmit the message 218 to the
personal server 212. In any case, once the message 218 has been
transmitted to the personal server 212, it may be handled by the
personal server 212 in any of the ways described above.
[0070] Outgoing messages may also be stored in the temporary
personal data 234. For example, when the mobile device 202
transmits the outgoing message 210, the non-personal server 230 may
receive the outgoing message 210 and determine whether the personal
server 212 is accessible to the non-personal server 230 over the
WAN 220. If the personal server 212 is accessible, the non-personal
server 230 may transmit the outgoing message 210 to the personal
server 212, and the personal server 212 may handle the message in
any of the ways described above. If the personal server 212 is not
accessible, the non-personal server 230 may store the outgoing
message 210 in the temporary personal data 234. The non-personal
server 230 may transmit the outgoing message 210 from the temporary
personal data 234 to the personal server 212 when the personal
server 212 again becomes accessible to the non-personal server, as
described above.
[0071] As may be appreciated from the description above,
embodiments of the present invention have a variety of advantages.
For example, various benefits may be obtained by selecting as the
personal server 212 a computing device that is more powerful than
the mobile device 202 and/or which has a higher-bandwidth
connection than the mobile device 202, and which therefore may
perform processing tasks more efficiently than the mobile device
202. For example, the personal server 212 may filter, log, store,
compress, and broadcast data more efficiently than the mobile
device 202. The home PC of the user 222 may be selected as the
personal server 212, thereby taking advantage of computing
resources which would otherwise likely remain underutilized.
Another advantage of selecting the user's home PC as the personal
server 212 is that the user 222 may access the personal data 214
either remotely using the mobile device 202, or directly at the
personal server 212 when the user 222 returns home.
[0072] Another advantage of various embodiments of the present
invention is that the personal server 212 may serve as a proxy for
a system, such as a conventional instant messaging system, which is
not particularly well-suited to direct use in conjunction with a
mobile device such as a cellular telephone. For example, instant
messaging systems, with few exceptions, use complex,
vendor-specific, heavyweight protocols. These shortcomings make
them difficult to use on mobile devices, which typically have
little processing power, inadequate space for multiple IM clients,
and extremely limited data bandwidth. By providing the personal
server, which has greater processing power, storage space, and
bandwidth, with the ability to communicate directly with the IM
server and to transmit IM information to and from the mobile device
using a protocol that is more suitable for the mobile device 202,
the personal server 212 may be used to provide the mobile device
202 with the benefits of a service such as instant messaging
without the typical drawbacks.
[0073] Some existing systems use shared public servers to perform
certain functions described herein, such as logging and filtering
instant messages for users. It is advantageous, however, to perform
these and other functions using a personal server rather than a
shared public server. In general, the personal server 212 may
provide services to the mobile device 202 more flexibly, less
expensively, more securely, and more efficiently than a shared
public server. For example, one advantage of using the user's home
PC, or other computer under the control of the user 222, as an IM
proxy or other proxy, is that the user 222 may configure the
personal server 212 as desired. For example, the user 222 may tune
the personal server's performance, such as by customizing the
configuration of the pseudo-client 240 or upgrading the hardware of
the personal server 212, unlike in conventional systems, in which
the IM server is under the control of a service provider rather
than the user. Furthermore, the user 222 may establish a secure
communications channel between the mobile device 202 and the
personal server 212, even when such a secure channel would not be
available for use with a shared public server. In addition, service
providers typically charge an additional fee for using shared
public servers to performs functions such as logging and filtering.
The user 222 may avoid such costs by using the personal server 212
to perform such functions.
[0074] It is to be understood that although the invention has been
described above in terms of particular embodiments, the foregoing
embodiments are provided as illustrative only, and do not limit or
define the scope of the invention. Various other embodiments,
including but not limited to the following, are also within the
scope of the claims. For example, elements and components described
herein may be further divided into additional components or joined
together to form fewer components for performing the same
functions. In particular, techniques described herein may be
combined with each other in various ways that will be apparent to
those having ordinary skill in the art based on the description
herein.
[0075] The mobile device 202 may be any kind of mobile device 202
capable of performing the functions described herein. For example,
the mobile device 202 may be a cellular telephone, personal digital
assistant (PDA), laptop, or a combination thereof. The personal
server 212 may be any kind of computing device, such as a
workstation or desktop or laptop PC.
[0076] The techniques described above may be implemented, for
example, in hardware, software, firmware, or any combination
thereof. The techniques described above may be implemented in one
or more computer programs executing on a programmable computer
including a processor, a storage medium readable by the processor
(including, for example, volatile and non-volatile memory and/or
storage elements), at least one input device, and at least one
output device. Program code may be applied to input entered using
the input device to perform the functions described and to generate
output. The output may be provided to one or more output
devices.
[0077] Each computer program within the scope of the claims below
may be implemented in any programming language, such as assembly
language, machine language, a high-level procedural programming
language, or an object-oriented programming language. The
programming language may, for example, be a compiled or interpreted
programming language.
[0078] Each such computer program may be implemented in a computer
program product tangibly embodied in a machine-readable storage
device for execution by a computer processor. Method steps of the
invention may be performed by a computer processor executing a
program tangibly embodied on a computer-readable medium to perform
functions of the invention by operating on input and generating
output. Suitable processors include, by way of example, both
general and special purpose microprocessors. Generally, the
processor receives instructions and data from a read-only memory
and/or a random access memory. Storage devices suitable for
tangibly embodying computer program instructions include, for
example, all forms of non-volatile memory, such as semiconductor
memory devices, including EPROM, EEPROM, and flash memory devices;
magnetic disks such as internal hard disks and removable disks;
magneto-optical disks; and CD-ROMs. Any of the foregoing may be
supplemented by, or incorporated in, specially-designed ASICs
(application-specific integrated circuits) or FPGAs
(Field-Programmable Gate Arrays). A computer can generally also
receive programs and data from a storage medium such as an internal
disk (not shown) or a removable disk. These elements will also be
found in a conventional desktop or workstation computer as well as
other computers suitable for executing computer programs
implementing the methods described herein, which may be used in
conjunction with any digital print engine or marking engine,
display monitor, or other raster output device capable of producing
color or gray scale pixels on paper, film, display screen, or other
output medium.
* * * * *