# Patent

## Title
Serving data/applications from a wireless mobile phone

## Abstract

Various methods and apparatuses associated with the serving of data from a wireless mobile phone, including a wireless mobile phone, are described herein.

## Background
RELATED APPLICATION
This application is a continuation of U.S. patent application Ser. No. 13/020,651 filed Feb. 3, 2011, which is a continuation of U.S. patent application Ser. No. 11/158,308, filed Jun. 21, 2005, which claims the benefit of priority from Provisional Application Ser. No. 60/581,864, filed Jun. 21, 2004. The disclosures of these applications are herein incorporated by references in their entirety.


TECHNICAL FIELD
Embodiments of the present invention relates to the fields of telephony and data processing. More specifically, the present invention is related to serving data and/or application from a wireless mobile phone.
BACKGROUND OF THE INVENTION
Advances in semiconductor, processor, telecommunication, networking and related technologies have led to the ubiquitous availability of a wide range of general and special purpose computing devices. In particular, wireless mobile phones are now widely available and employed for voice communication. In some cases, wireless mobile phones have replaced desktop phones as the primary voice communication devices for many users.
At the same time, as the capabilities and functionality of wireless mobile phones continue to grow, wireless mobile phones have become the major repositories of the users' data. Today, very often, not only contacts and calendar data are stored on the wireless mobile phones, increasingly, word documents, presentations, including the viewers of the corresponding applications are stored thereon. In other words, increasingly, wireless mobile phones are also being employed to perform data processing functions that were once performed on traditional data processing devices, such as laptop or desktop computers.
However, by virtue of the portability characteristic, which inherently means small display screens and small keypads, wireless mobile phones, when used as data processing/computing devices, remain relatively user-unfriendly.
The term “wireless mobile phone” as used herein refers to the class of telephony devices equipped to make and receive calls wirelessly, notwithstanding movement, as long as the device is within the communication reach of a service or base station of a wireless network service provider. Unless specifically excluded, these terms are to include the analog subclass as well as the digital subclass (of all signaling protocols).



BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be described by way of exemplary embodiments, but not limitations, illustrated in the accompanying drawings in which like references denote similar elements, and in which:
FIG. 1 illustrates an overview of the present invention, in accordance with various embodiments;
FIG. 2 illustrates a protocol view of the interactions between the client computer, the domain name server, the proxy server and the wireless mobile phone of FIG. 1, in accordance with various embodiments;
FIGS. 3a-3c illustrate the wireless mobile phone of FIG. 1 in further detail, in accordance with various embodiments;
FIG. 4 illustrates an architecture view of the components of the wireless mobile phone of FIG. 3a-3c, in accordance with various embodiments; and
FIG. 5 illustrates an exemplary system suitable for use as domain name servers or proxy servers of FIG. 1, in accordance with various embodiments.



DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
Embodiments of the present invention include, but are not limited to, methods related to serving data and/or applications from wireless mobile phones, and apparatuses, such as client computers, domain name servers, proxy servers and wireless mobile phones equipped with appropriate logic to practice corresponding aspects of the methods.
Various aspects of the illustrative embodiments will be described using terms commonly employed by those skilled in the art to convey the substance of their work to others skilled in the art. However, it will be apparent to those skilled in the art that alternate embodiments may be practiced with only some of the described aspects. For purposes of explanation, specific numbers, materials, and configurations are set forth in order to provide a thorough understanding of the illustrative embodiments. However, it will be apparent to one skilled in the art that alternate embodiments may be practiced without the specific details. In other instances, well-known features are omitted or simplified in order not to obscure the illustrative embodiments.
Parts of the description will be presented in terms, such as data, uniform resource locator, resolution, notification, and so forth, consistent with the manner commonly employed by those skilled in the art to convey the substance of their work to others skilled in the art. As well understood by those skilled in the art, these quantities take the form of electrical, magnetic, RF, or optical signals capable of being stored, transferred, combined, and otherwise manipulated through electrical and/or optical components of a processor and its subsystems.
Part of the descriptions will employ various abbreviations, including but are not limited to:
















CDROM
Compact Disc Read Only Memory



DVD
Digital Versatile Disc



GPRS
Global Packet Radio Service



GSM
Global System for Mobile Communication



HTTP
HyperText Transfer Protocol



IEEE
Institute of Electrical and Electronic Engineers



RF
Radio Frequency



SMS
Short Messaging Service



Wi-Fi
Wireless Fidelity (IEEE 802.11a, b, g currently)



USB
Universal Serial Bus










Further, various operations will be described as multiple discrete operations, in turn, in a manner that is most helpful in understanding the illustrative embodiments; however, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations need not be performed in the order of presentation.
The phrase “in one embodiment” is used repeatedly. The phrase generally does not refer to the same embodiment; however, it may. The terms “comprising”, “having”, and “including” are synonymous, unless the context dictates otherwise.
Referring now to FIG. 1, wherein a block diagram illustrating an overview of the present invention 100, in accordance with various embodiments, is shown. As illustrated and to be described more fully below, wireless mobile phone (WMP) 102 is equipped with hardware and/or software elements to serve data and/or applications stored thereon and/or mirrored, for another computing device, such as laptop/desktop computer 104. In various embodiments, WMP 102 or its logical mirror 102′ effectuates the serving of data and applications for computing 104 by acting as a web server. In other embodiments, WMP 102 or its logical mirror 102′ effectuates the serving of data and applications for computing 104 by acting as a terminal server, a print server, a file server, and/or servers of other types. The term “logical mirror” (hereinafter “mirror”) as used herein refers to the reflected/synchronized portion of the logical content of WMP 102 for serving data and/or applications, which may or may not include the entire logical content of WMP 102.
Further, as will be also described in more detail below, for these embodiments, domain name servers 120 and proxy servers 122 are equipped to enable WMP 102 or its mirror 102′ to effectuate the serving of data and applications for computing 104. That is, domain name servers 120 and proxy servers 122 are equipped with the logic and functions to bridge the fact that WMP 102 generally does not have a persistent connection to the Internet, nor a persistent IP address.
Resultantly, a user of WMP 102 may use someone else' computer, e.g. a visitor/co-worker's computer at a visiting location, a public computer at a public library/Internet café, and so forth, to perform data processing functions, using data and/or applications stored on WMP 102 (or on its mirror 102′), to overcome the inherent user unfriendliness of WMP 102 for performing data processing tasks.
Except for the logic/enhancements provided to WMP 102, domain name servers 102 and proxy servers 122, these and other enumerated elements may otherwise be implemented with a wide range of these elements known in the art or to be designed.
Referring now to FIG. 2, wherein a protocol view of the interactions between client computer 104, domain name servers 120, proxy server 122 and WMP 102 or its mirror 102′, in accordance with various embodiments, is shown. As illustrated, for the embodiments, the serving of data from WMP 102 or its mirror 102′ to client computer 104 may start with client computer 104 attempts to access WMP 102 using a conventional browser and a uniform resource locator (URL) that resolves to WMP 102 or its mirror 102′. In various embodiments, this URL includes an identifier of WMP 102, e.g. the telephone number assigned to WMP 102, and a URL like www.1234567890.wirelessphsvc.com or www.wirelessphsvc.com/1234567890, operation 202. In other embodiments, the URL may include a name of the owner of the telephone number assigned to WMP 102, e.g. “www.johnowner.wirelessphsvc.com” (where “johnowner” is the name of the owner of the telephone number “1234567890”). In still other embodiments, the URL may contain other identification information, including but not limited to identifier information generated based on identification information associated with the subscriber. The derivation algorithm or generation function may be any deterministic derivation algorithm or generation function.
As with conventional attempts to access a resource identified by an URL, the attempt results in a request being submitted to one of the domain name servers 120, operation 203. In various embodiments, client computer 104 submits the request over the communication protocol TCP/IP. In other embodiments, other communication protocols may be employed instead.
On receipt of the request, the domain name server 120 having previously stored a record resolving the URL to proxy server 122, resolves the request to proxy server 122 accordingly, operation 204. Additionally, for the embodiments, the domain name server 120 notifies proxy server 122 of the request to resolve a URL to WMP 102, operation 204. In various embodiments, domain name server 120 notifies proxy server 122 using the communication protocol TCP/IP. In other embodiments, other communication protocols may be employed instead.
On receipt of the notification, for the embodiments, proxy server 122 determines whether a data connection has already been established between WMP 102 and proxy server 122, operation 206. Proxy server 122 may make the determination by examining e.g. content of a data connection table/log it maintains or its communication stacks in memory.
If a data connection between WMP 102 and proxy server 122 has not already been established, and mirroring of WMP 102 is not implemented, proxy server 122 sends a message to WMP 102 informing WMP 102 that an attempt to access WMP 102 is in the process of being made, and assuming WMP 102 wants to service the access, WMP 102 should establish a data connection to the proxy server 122, operation 208. In various embodiments, proxy server 122 sends the message to WMP 102 in the form of a SMS message. In other embodiments, other messaging protocols may be employed instead.
In response, assuming WMP 102 does want to service the access, WMP 102 establishes a data connection with proxy server 122, operation 210. In various embodiments, WMP 102 establishes a data connection with proxy server 122 by establishing a GPRS or other connection.
In the meantime, on receipt of the resolution of the URL of WMP 102 to the proxy server 122 (e.g. by receiving the IP address of proxy server 122), operation 203, client computer 104 establishes a data communication connection to proxy server 122 to access WMP 102, operation 205. In various embodiments, client computer 104 establishes a HTTP connection to proxy server 122 to access WMP 102. In other embodiments, other data communication protocols may be employed instead.
On acceptance and establishment of the data communication connection from client computer 104, proxy server 122 forwards the access request of client computer 104 to WMP 102 (if a data connection is established), or WMP 102′ (if a data connection to WMP 102 is not established, and mirroring is implemented), operation 212.
In response, for the embodiments, WMP 102/102′ responds with a login page, operation 214. Proxy server 122, in turn, forwards the login page to the client computer 104, operation 216.
On receipt of the login page, assuming it is a legitimate login, the user completes the login page appropriately, which in due course, results in client computer 104 submitting a completed instance of the login page to proxy server 122, operation 218.
As before, on receipt of the completed instance of the login page, proxy server 122 forwards the completed instance to WMP 102/102′, operation 220. On receipt, operation 222, WMP 102/102′ determines whether the login page was appropriately completed, in particular, whether client computer 104 should be granted access, operation 224.
In alternate embodiments, in lieu of or in addition to the above described login approach, client computer 104 may be granted access to WMP 102/102′ conditioned on the fact that it is a pre-authorized device, or it is proximally located from WMP 102. The former may e.g. be determined based on the IP address of client computer 104, e.g. when it is a known statically pre-allocated IP address. The latter may e.g. be verified based on location information, such as global positioning satellite (GPS) coordinates, provided by the devices. Further, the proximal location of the devices may be verified periodically, and the access may be revoked as soon as WMP 102 is no longer proximally located next to client computer 104.
Assuming client computer 104 should be granted access, for the embodiments, WMP 102/102′ responds with a home page or a terminal server page having a number of applications for the user of client computer 104 to use, operation 224. As before, proxy server 122 forwards the home or terminal server with application page to client computer 104, operation 226.
On receipt, the user of client computer 104 interacts with one or more of the available applications, resulting in the interactions being sent back to proxy server 122, operation 228.
As before, on receipt of the interactions, proxy server 122 forwards the interactions to WMP 102/102′, operation 230. On receipt, operation 232, WMP 102/102′ processes the interactions and responds accordingly to proxy server 124, operation 230. Proxy server 124 again forwards the response to client computer 104, operation 234.
Operations 228-234 are repeated until the user of client computer 104 stops accessing WMP 102/102′, or WMP 102/102′ stops serving client computer 104 (for whatever reason).
For the embodiments supporting the implementation of mirror 102′, a user of WMP 102 may cause a data connection to be established from WMP 102 to mirror 102′ and synchronize their logical content, from time to time.
Thus, a user of WMP 102 may use a computer at a visiting location, with more user friendly display screen and keyboard for performing data processing tasks, using data and running applications stored on WMP 102.
In the foregoing description, for ease of understanding, the embodiments have been described with domain name server 120 notifying proxy server 122 of attempted access of WMP 102, thereby enabling proxy server 122 to ensure WMP 102 has a proper data connection established with proxy server 122. In alternate embodiments, the present invention may nonetheless be practiced without the alert notification. For examples, in alternate embodiments, the present invention may be practiced with the proxy server 122 serving up substitute pages while it is causing WMP 102 to establish its data connection to proxy server 122, or allowing the attempt to “fail” and retried.
Additionally, while mirror 102′ is illustrated as being maintained by proxy server 122, in alternate embodiments, mirror 102′ may be implemented on any networked servers, accessible to proxy server 122.
Further, in various embodiments, WMP 102 may be adapted to download a communication applet onto client computer 104 upon granting access to client computer 104. The communication applet may be adapted to collaborate with the proximally located WMP 102 to determine whether the serving of data and/or applications from WMP 102 may be switched to a local communication connection, such as a short range wireless connection or a wired serial or parallel connection.
Still further, in various embodiments, on granting access to client computer 104, WMP 102/102′ may cause a security applet be downloaded onto client computer 104.
The security applet is adapted to control caching of all data and/or applications downloaded from WMP 102/102′ while accessing WMP 102/102′, and destruction of the downloaded data and applications (possibly including itself) as soon as the access is terminated.
Of course, in various embodiments, the additional communication and security applets may be implemented as a single combined applet.
Still further, in other embodiments, the serving of data and/or applications from WMP 102/102′ may be initiated by WMP 102, or even an authorized third party.
FIGS. 3a-3c and 4 illustrate WMP 102 in further detail, in accordance with various embodiments. As illustrated, for the embodiments, WMP 102 includes a fully functional base WMP unit 304 and a removable accessory cover 302, within which a personalization module (PM) 306 is disposed.
FIGS. 3a and 3b illustrate a perspective view and a side-view of removable accessory cover 302 respectively. For the embodiments, cover 302 has a substantially U-shaped cover body, and designed to be snapped onto the base WMP unit 304 via a substantially side way motion (as defined by the expected orientation of WMP 102). PM 306 is disposed at the inside surface of the mid-section of the U-shaped cover body 302. PM 306 may include data and/or instructions to personalize, customize and/or base WMP unit 304.
FIG. 3c illustrates a front view of the assembly, that is having removable accessory cover 302 and the base WMP unit 304 illustrated with cover 302 having been snapped on, i.e. attached, to the base WMP unit 304.
Resultantly, removable accessory cover 302 provides a convenient way of personalizing, customizing and/or enhancing base WMP unit 304, e.g. enhancing WMP unit 304 with a web server, an application server, a terminal server, and/or applications, for facilitating practice of embodiments of the present invention.
FIG. 4 illustrate an architecture view of base WMP unit 304, in accordance with various embodiments. As illustrated, base WMP unit 304 includes elements found in conventional wireless mobile client devices, such as micro-controller/processor 502, digital signal processor (DSP) 504, non-volatile memory 506, general purpose input/output (GPIO) interface 508, radio receiver 510, and transmit/receive (TX/RX) 512 (also known as a transceiver), coupled to each other via bus 514, and disposed on a circuit board 520. Additionally, base WMP unit 304 is endowed with a software implementation of web server 214 and/or terminal server having one or more applications 216, and other earlier described functionality for the practice of embodiments of the present invention.
Except for web server 214 and optionally, terminal server with one or more applications 216 provided to base WMP unit 304, each of these elements 502-514 performs its conventional function known in the art, and is intended to represent a broad range of such element and its equivalents. Further, TX/RX 512 may be designed to support one or more of any of the known signaling protocols, including but are not limited to CDMA, TDMA, GSM, and so forth. Moreover TX/RX 512 may be implemented using separate transmitter and receiver.
Accordingly, elements 502-514 will not be further described. Further, in alternate embodiments, WMP 102 may assume other form factors, including but not limited to a conventional substantially rectangular unibody form factor, or a conventional substantially rectangular flip/slider phone form factor, with or without a removable accessory cover or faceplate.
FIG. 5 illustrates an example computing device, suitable for use as domain name servers 120 and/or proxy server 122, in accordance with some embodiments. As illustrated, computing device 700 includes one or more processors 702, and system memory 704. Additionally, computing device 700 includes mass storage devices 706 (such as diskette, hard drive, CDROM, DVD and so forth), input/output devices 708 (such as keyboard, cursor control and so forth) and communication interfaces 710 (such as network interface cards, modems and so forth). The elements are coupled to each other via system bus 712, which represents one or more buses. In the case of multiple buses, they are bridged by one or more bus bridges (not shown).
Each of these elements performs its conventional functions known in the art. In particular, system memory 704 and mass storage 706 are employed to store a working copy and a permanent copy (not shown) of the programming instructions implementing domain name service 502 or proxy service 504, depending on whether computing device 700 is employed to implement domain name server 120 or proxy server 122.
The permanent copy of the programming instructions may be loaded into mass storage 706 in the factory, or in the field, through e.g. a distribution medium (not shown) or through communication interface 710 (from a distribution server (not shown).
The constitution of these elements 702-712 are known, and accordingly will not be further described.
Thus, it can be seen from the above descriptions, a novel method for serving data/applications from a wireless mobile phone, and apparatuses equipped to practice various aspects of the method, have been described. While the present invention has been described in terms of the earlier described embodiments, those skilled in the art will recognize that the invention is not limited to the embodiments described. The present invention can be practiced with modification and alteration within the spirit and scope of the appended claims of the non-provisional application to follow. Thus, the description is to be regarded as illustrative instead of restrictive on the present invention.

## Claims

1. A method for providing access to data or applications from a mobile device, the method comprising:
receiving, by the mobile device, a message from a first computing device notifying the mobile device to establish a data connection to a data network, wherein the message is received from the first computing device after a determination by the first computing device that a data connection between the mobile device and the data network has not been previously established, and wherein the determination by the first computing device is performed in response to the first computing device receiving a request, or a notification of a request, from a second computing device, the request being to resolve a identifier associated with the mobile device, wherein the identifier is for locating the data or application on the mobile device; and
establishing, by the mobile device, the data connection with the data network in accordance with a data communication protocol.

2. The method of claim 1, wherein receiving the message comprises receiving the message via SMS, and establishing the data connection with a data communication protocol comprises establishing the data connection with GPRS.

3. The method of claim 1, further comprising serving, by the mobile device, a login page for the mobile device to the second computing device.

4. The method of claim 3, further comprising:
receiving, by the mobile device, from the second computing device, a completed instance of the login page; and
determining, by the mobile device, whether the login is to be granted.

5. The method of claim 4, further comprising receiving, by the mobile device, from the second computing device, a request to access the data or application on the mobile device.

6. The method of claim 5, wherein the data or the application is data or application accessible via a terminal server on the mobile device.

7. The method of claim 6, further comprising receiving, by the mobile device, from the second computing device, one or more interactions with the terminal server to execute an application on the mobile device.

8. The method of claim 3, wherein the application is a selected one of a word processing application, a presentation application, a spreadsheet application, and a database application.

9. A method for providing access to data or applications from a mobile device, the method comprising:
sending to a first computing system, by a second computing system, a request to resolve a uniform resource locator to the mobile device, wherein the first computing system is to send a notification of the request to a third computing system;
receiving, by the second computing system, a network address associated with the third computing system, from the first computing system, wherein the third computing system is to notify the mobile device to establish a data connection between the mobile device and the third computing system;
establishing, by the second computing system, a data communication connection with the third computing device; and
accessing, by the second computing system, a login page provided by the mobile device for accessing the mobile device, wherein the login page is provided via the third computing system at the network address.

10. The method of claim 9, further comprising:
receiving, by the second computing system from the mobile device, via the third computing system, the login page; and
submitting, by the second computing system to the mobile device, via the third computing device, a completed instance of the login page.

11. The method of claim 10, further comprising:
accessing, by the second computing system, data or an application on the mobile device upon successful authentication of the second computing system by the mobile device via interaction with the login page.

12. The method of claim 9, wherein accessing the data or the application upon successful logging onto the mobile device comprises accessing the data or the application via a terminal server on the mobile device.

13. The method of claim 12, further comprising:
providing, by the second computing system, interactions via the terminal server on the mobile device to execute the application on the mobile device.

14. The method of claim 13, wherein the application is a selected one of a word processing application, a presentation application, a spreadsheet application, or a database application.

15. One or more non-transitory computer-readable media containing instructions written thereon that, in response to execution on a mobile computing device, cause the mobile computing device to provide access to data or applications on the mobile computing device by causing the mobile computing device to:
receive a message from a first computing device that notifies the mobile computing device to establish a data connection to a data network, wherein the message is received from a first computing device after a determination by the first computing device that a data connection between the mobile computing device and the data network has not been previously established, and wherein the determination by the first computing device is performed in response to receipt of a request by the first computing device, or a notification of a request, from a second computing device to resolve a identifier associated with the mobile computing device, wherein the identifier is for locating the data or application on the mobile computing device; and
establish the data connection with the data network in accordance with a data communication protocol.

16. The non-transitory computer-readable media of claim 15, wherein receive the message comprises receive the message via SMS, and establish the data connection with a data communication protocol comprises establish the data connection with GPRS.

17. The non-transitory computer-readable media of claim 15, wherein the instructions are further to cause the mobile computing device to serve a login page for the mobile computing device to the second computing device.

18. The non-transitory computer-readable media of claim 17, wherein the instructions are further to cause the mobile computing device to:
receive, from the second computing device, a completed instance of the login page; and
determine whether the login is to be granted.

19. The non-transitory computer-readable media of claim 18, wherein the instructions are further to cause the mobile computing device to receive, from the second computing device, a request to access the data or application on the mobile computing device.

20. The non-transitory computer-readable media of claim 19, wherein:
the data or the application is data or application accessible via a terminal server on the mobile computing device; and
the instructions are further to cause the mobile computing device to receive, from the second computing device, one or more interactions with the terminal server to execute an application on the mobile computing device.