# US 6,721,288 B1 · Wireless mobile devices having improved operation during network unavailability

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 6,721,288 B1
- Document ID: US6721288B1
- Status: Granted
- Kind: B1
- Application number: 09/170,879
- Filed: 1998-10-13
- Granted: 2004-04-13
- Earliest claimed: 1998-09-16
- Assignees: Openwave Systems Inc.
- Inventors: Peter F. King; Bruce K. Martin, Jr.; Stephen S. Boyle; Bruce V. Schwartz; Lawrence Stein
- Web page: https://patentgrep.com/patent/US6721288B1

## CPC

- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/04: specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
- H04L 67/289: Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 67/59: Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
- H04L 67/62: Establishing a time schedule for servicing the requests
- H04L 69/329: in the application layer [OSI layer 7]
- H04W 4/00: Services specially adapted for wireless communication networks; Facilities therefor
- H04W 88/182: {Network node acting on behalf of an other network entity, e.g. proxy}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Improved techniques for reducing delays faced by users of mobile devices due to unavailability of wireless networks are disclosed. The techniques facilitate the reduction of delays faced by users of mobile devices during unavailability of wireless networks. A first technique allows mobile devices to communicate with remote servers using asynchronous communications, namely asynchronous requests. Such asynchronous communications allow the processing at a mobile device to continue while the asynchronous request is processed in the background. A second technique pertains to the use of content channels with mobile devices. The content channels are stored and retained in cache memory so that their resources are guaranteed to be locally available, regardless of availability of wireless networks. A third technique pertains to improved list processing within mobile devices such that lists can be manipulated without server interaction. These various techniques can be used separately or in combination.

## Claims

### Claim 1

A method for sending a resource request of a mobile device to a remote server through a wireless network, said method comprising the acts of:
(a) receiving a resource request, the requested resource being associated with the remote server;
(b) determining whether the requested resource is of a synchronous type resource request or of an asynchronous type resource request;
(c) placing the resource request in an outgoing queue and not awaiting a resource reply when said determining (b) determines that the resource request is an asynchronous type resource request; and
(d) when said determining (b) determines that the resource request is a synchronous type resource request, performing the acts of
(d1) determining whether the requested resource is present in a local cache memory of the mobile device;
(d2) supplying the requested resource from the local cache memory when said determining (d) determines that the requested resource is present in the local cache memory; and
(d3) sending the resource request to the remote server through the wireless network and awaiting a resource reply when said determining (d) determines that the requested resource is not present in the local cache memory.

### Claim 2 (depends on 1)

A method as recited in claim 1, wherein said method further comprises:
(e) removing the resource request from the outgoing queue when the wireless network is available and then sending the resource request to the remote server through the wireless network.

### Claim 3 (depends on 2)

A method as recited in claim 2, wherein said method further comprises:
(f) receiving a resource reply at the mobile device in response to the asynchronous resource request via the wireless network when the wireless network is available.

### Claim 4 (depends on 3)

A method as recited in claim 3, wherein said method further comprises:
(g) storing the resource reply in the cache memory.

### Claim 5 (depends on 1)

A method as recited in claim 1, wherein the application executing on the mobile device issues the resource request and indicates whether the resource request is a synchronous resource request or asynchronous resource request.

### Claim 6 (depends on 1)

A method as recited in claim 1, wherein the application is a web browser, and the resource request references a universal resource identifier.

### Claim 7 (depends on 6)

A method as recited in claim 6, wherein the mobile device is one of a mobile telephone, a mobile pager, a mobile personal digital assistant, and a mobile computer.

### Claim 8 (depends on 7)

A method as recited in claim 7, wherein said method further comprises:
(e) determining whether the wireless network is available; and
(f) removing the asynchronous resource request from the outgoing queue when the wireless network is available and then sending the asynchronous resource request to the remote server through the wireless network.

### Claim 9 (depends on 8)

A method as recited in claim 8, wherein the application executing on the mobile device issues the resource request and indicates whether the resource request is a synchronous resource request or asynchronous resource request.

### Claim 10

A mobile device that connects to a remote server through a network, said mobile device comprising:
an application that executes on said mobile device, said application produces outgoing messages that are to be sent to the remote server;
an asynchronous message queue that stores outgoing messages from said application that are to be sent from said mobile device to the remote server; and
an asynchronous message manager that manages the sending of the outgoing messages from said asynchronous message queue to the remote server through the network,
wherein the outgoing messages are synchronous or asynchronous messages,
wherein said mobile device further comprises a synchronous message manager that manages the sending of the synchronous messages to the remote server through the network,
wherein said asynchronous message queue stores the asynchronous messages from said application that are to be sent from said mobile device to the remote server, and
wherein said asynchronous message manager that manages the sending of the asynchronous messages from said asynchronous message queue to the remote server through the network.

### Claim 11 (depends on 10)

A mobile device as recited in claim 10,
wherein the network comprises a wireless network,
wherein said application requests asynchronous transmission of the outgoing messages, and
wherein said application does not await to receive reply messages from the remote server in response to the outgoing messages.

### Claim 12 (depends on 10)

A mobile device as recited in claim 10,
wherein the network comprises a wireless network,
wherein the outgoing messages are requests for resources, and
wherein said mobile device further comprises:
a cache memory that stores resources likely to be requested by said application;
a channel manager that loads a content channel into said cache memory from the remote server through the wireless network.

### Claim 13 (depends on 12)

A mobile device as recited in claim 12, wherein said channel manager loads a content channel when said mobile device is provisioned or on a user request.

### Claim 14 (depends on 12)

A mobile device as recited in claim 12, wherein the content channel comprises channel resources,
wherein said channel manager stores the channel resources in a reserved portion of said cache memory.

### Claim 15 (depends on 14)

A mobile device as recited in claim 14, wherein the channel resources stored in the reserved portion of said cache memory are protected from cache clean-up or refresh processing.

### Claim 16 (depends on 12)

A mobile device as recited in claim 12,
wherein the network comprises a wireless network,
wherein the outgoing messages are requests for resources, and
wherein said mobile device further comprises a list manager that manages lists provided on said mobile device such that lists can be manipulated without interaction with the remote server through the wireless network.

### Claim 17

A mobile device that connects to a remote server through a network, said mobile device comprising:
an application that executes on said mobile device, said application produces outgoing messages that are to be sent to the remote server;
an asynchronous message queue that stores outgoing messages from said application that are to be sent from said mobile device to the remote server; and
an asynchronous message manager that manages the sending of the outgoing messages from said asynchronous message queue to the remote server through the network,
wherein the network comprises a wireless network,
wherein the outgoing messages are requests for resources, and
wherein said mobile device further comprises a list manager that manages a list provided on said mobile device such that lists can be manipulated without interaction with the remote server through the wireless network.

### Claim 18 (depends on 17)

A mobile device as recited in claim 17, wherein said mobile device stores a list object for the list, the list object facilitates said list manager in manipulating the list.

### Claim 19 (depends on 18)

A mobile device as recited in claim 18,
wherein the list is display on a display device of said mobile device, and
wherein said list object comprises: a list specification that describes the list, and a plurality of list elements that correspond to each entry of the displayed list.

### Claim 20 (depends on 17)

A mobile device as recited in claim 17, wherein said mobile device stores a list object for the list, the list object facilitates said list manager in manipulating the list as well as subsequent asynchronous notification of the remote server of the manipulations that have been made to the list.

### Claim 21

A computer readable medium including computer program code for sending a resource request of a mobile device to a remote server through a wireless network, said computer readable medium comprising:
computer program code for receiving a resource request, the requested resource being associated with the remote server;
computer program code for determining whether the requested resource is of a synchronous type resource request or of a an asynchronous type resource request;
computer program code for placing the resource request in an outgoing queue and not awaiting a resource reply when the resource request is an asynchronous type resource request; and
computer program code for sending the resource request to the remote server through the wireless network and awaiting a resource reply when the resource request is a synchronous type resource request.

### Claim 22 (depends on 21)

A computer readable medium as recited in claim 21, wherein said computer readable medium further comprises:
computer program code for removing the resource request from the outgoing queue when the wireless network is available and then sending the resource request to the remote server through the wireless network.

### Claim 23 (depends on 22)

A computer readable medium as recited in claim 22, wherein said computer readable medium further comprises:
computer readable medium for receiving a resource reply at the mobile device in response to the asynchronous resource request via the wireless network when the wireless network is available.

### Claim 24 (depends on 21)

A computer readable medium as recited in claim 21, wherein the application executing on the mobile device issues the resource request and indicates whether the resource request is a synchronous resource request or asynchronous resource request.

### Claim 25 (depends on 24)

A computer readable medium as recited in claim 24, wherein the application is a web browser, and the resource request references a universal resource identifier.

### Claim 26 (depends on 25)

A computer readable medium as recited in claim 25, wherein the mobile device is one of a mobile telephone, a mobile pager, a mobile personal digital assistant, and a mobile computer.

### Claim 27 (depends on 21)

A computer readable medium as recited in claim 21, wherein said computer readable medium further comprises:
computer program code for determining whether the wireless network is available; and
computer program code for removing the asynchronous resource request from the outgoing queue when the wireless network is available and then sending the asynchronous resource request to the remote server through the wireless network.

### Claim 28 (depends on 27)

A computer readable medium as recited in claim 27, wherein the application executing on the mobile device issues the resource request and indicates whether the resource request is a synchronous resource request or asynchronous resource request.
