IP Library Granted Patent US 8,849,961
Granted Patent B2
US 8,849,961 · App. 11/516,922 · Granted Sep 30, 2014

Mobile network optimized method for keeping an application IP connection always on

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,849,961
App. No.
11/516,922
Granted
Sep 30, 2014
Kind
B2
Abstract

A system and method of maintaining an always-on application client communication is provided. An application programming interface implemented on a device hosting an always-on application client determines if network-based keep-alive functionality exists in a network where the device operates. If network-based keep-alive functionality exists, a network element is instructed to transmit keep-alive messages to the application server on behalf of the device. The network element can be implemented in or as a variety of existing network elements, e.g., as a GPRS gateway serving node or a standalone keep-alive network element. Alternatively, an application server communicatively connected to the always-on application client may query whether network-based keep-alive functionality exists. If network-based keep-alive functionality exists, the application server negotiates with the always-on application client to determine an application-specific mechanism for implementing the network-based keep-alive functionality. When an application server queries for network-based keep-alive functionality, an application programming interface need not be utilized.

Claims (46)

1. A method comprising:

providing a keep-alive application programming interface on a device configured to connect to an application client;

transmitting one or more messages of a first keep-alive message type from the device;

determining keep-alive parameters via the keep-alive application programming interface;

transmitting, to a network element via the keep-alive application programming interface, data comprising the keep-alive parameters and information identifying one or more types of keep-alive messages such that the network element is instructed to transmit the one or more types of keep-alive messages to an application server on behalf of the device;

receiving, by the device, information from the network element that directs the device to stop transmitting the one or more types of keep-alive messages to the network element, wherein the information that directs the device to stop transmitting the one or more types of the keep-alive messages to the network element directs the device to stop transmitting the first keep-alive message type;

determining that an outgoing message is one of the one or more types of keep-alive messages that the device is to stop transmitting to the network element; and

filtering, by the device, the outgoing message from outgoing traffic of the device.

2. The method of claim 1 , wherein the keep-alive parameters include a message sending period, at least one parameter defining message content, and a target IP address of the application server.

3. The method of claim 1 , further comprising: prior to transmitting the data, determining, by the keep-alive application programming interface, whether a network element-based keep-alive messaging service exists in a network in which the application client operates.

4. The method of claim 3 , further comprising: upon determining that a network element-based keep-alive messaging service does not exist in the network, transmitting, by the device, a first keep-alive message to the application server.

5. The method of claim 1 , wherein the keep-alive application programming interface comprises a filter description for defining that the one or more types of the keep-alive messages are not to be forwarded from the device.

6. The method of claim 5 , wherein the filtering is performed based on the filter description.

7. The method of claim 1 , wherein the information that directs the device to stop transmitting the one or more types of the keep-alive messages to the network element directs the device to stop transmitting each of a plurality of message types of keep-alive messages.

8. The method of claim 1 , wherein the keep-alive application programming interface does not receive requests for keep-alive functions from the application server while the device is connected to the application server.

9. The method of claim 1 , further comprising: performing a query to determine whether network-element-based keep-alive messaging functionality is available.

10. The method of claim 9 , wherein the transmitting of the data is part of a negotiating process with the network element to relieve the device of a duty to perform keep-alive messaging.

11. The method of claim 1 , wherein the network element is a GPRS gateway serving node.

12. The method of claim 1 , wherein the network element is interposed between the device and the application server.

13. The method of claim 12 , further comprising:

upon determining an IP address of the network element during a dynamic host configuration protocol procedure, requesting, by the device, network address translation-based keep-alive messaging from the network element.

14. An apparatus comprising:

a processor; and

a memory storing computer executable instructions that, when executed, cause the apparatus to at least:

provide a keep-alive application programming interface that is configured to connect to an application client;

transmit one or more messages of a first keep-alive message type;

determine keep-alive parameters via the keep-alive application programming interface;

transmit, to a network element via the keep-alive application programming interface, data comprising the keep-alive parameters and information identifying one or more types of keep-alive messages such that the network element is instructed to transmit the one or more types of keep-alive messages to an application server on behalf of the apparatus;

receive information from the network element that directs the apparatus to stop transmitting the one or more types of keep-alive messages to the network element, wherein the information that directs the apparatus to stop transmitting the one or more types of the keep-alive messages to the network element directs the apparatus to stop transmitting the first keep-alive message type;

determine that an outgoing message is one of the one or more types of keep-alive messages that the apparatus is to stop transmitting to the network element; and

filter the outgoing message from outgoing traffic of the apparatus.

15. The apparatus of claim 14 , wherein the keep-alive parameters include a message sending period, at least one parameter defining message content, and a target IP address of the application server.

16. The apparatus of claim 14 , wherein the memory further stores computer executable instructions that, when executed, cause the apparatus to: prior to transmitting the data, determine, by the keep-alive application programming interface, whether a network element-based keep-alive messaging service exists in a network in which the apparatus operates.

17. The apparatus of claim 16 , wherein the memory further stores computer executable instructions that, when executed, cause the apparatus to: upon determining that a network element-based keep-alive messaging service does not exist in the network, transmit a first keep-alive message to the application server.

18. The apparatus of claim 14 , wherein the keep-alive application programming interface comprises a filter description for defining that the one or more types of keep-alive messages are not to be forwarded from the apparatus.

19. The apparatus of claim 18 , wherein the filtering is performed based on the filter description.

20. The apparatus of claim 14 , wherein the network element is a GPRS gateway serving node.

21. The apparatus of claim 14 , wherein the memory further stores computer executable instructions that, when executed, cause the apparatus to: upon determining an IP address of the network element during a dynamic host configuration protocol procedure, request network address translation-based keep-alive messaging from the network element.

22. A memory comprising computer executable instructions that, when executed, cause a device to at least:

provide a keep-alive application programming interface on the device configured to connect to an application client;

transmit one or more messages of a first keep-alive message type from the device;

determine keep-alive parameters via the application programming interface;

transmit, to a network element via the application programming interface, data comprising the keep-alive parameters and information identifying one or more types of keep-alive messages such that the network element is instructed to transmit the one or more types of keep-alive messages to an application server on behalf of the device;

receive, by the device, information from the network element that directs the device to stop transmitting the one or more types of keep-alive messages to the network element, wherein the information that directs the device to stop transmitting the one or more types of the keep-alive messages to the network element directs the device to stop transmitting the first keep-alive message type;

determine that an outgoing message is one of the one or more types of keep-alive messages that the device is to stop transmitting to the network element; and

filter, by the device, the outgoing message from outgoing traffic of the device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2015
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 035561/0501 →