IP Library Granted Patent US 8,423,656
Granted Patent B2
US 8,423,656 · App. 13/326,294 · Granted Apr 16, 2013

Push gateway systems and methods

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,423,656
App. No.
13/326,294
Granted
Apr 16, 2013
Kind
B2
Abstract

A push gateway includes a number of socket servers, a queue server, and arbiter serving, a mapping server and a number of worker servers. Each of the socket servers and the arbiter server includes a network interface. The queue server is coupled to the socket servers for bidirectional communication with the socket servers. The mapping server is coupled to the arbiter server and to the socket servers for bidirectional communication with the arbiter server and each of the socket servers. The worker servers are coupled to the queue serer and the mapping server. The arbiter server is configured to facilitate communications over a network with the worker servers by at least partially balancing loads on the number of socket servers based, at least in part, upon the mapping server.

Claims (28)

1. A push gateway including:

a plurality of socket servers, each of which is configured to maintain socket server connections to one or more devices;

a mapping server configured to develop a map of potential connections to the push gateway, wherein the map is developed based at least in part on information obtained from at least a portion of the plurality of socket servers, wherein the mapping server is configured to communicate with at least one socket server included in the plurality of socket servers;

a plurality of worker servers, each of which is configured to identify a particular socket server maintaining a particular socket server connection to a particular device based at least in part on the map developed by the mapping server;

a queue server configured to manage queues for messaging between the plurality of worker servers and the plurality of socket servers, wherein the queue server is configured to communicate with at least a portion of the worker servers and at least a portion of the socket servers; and

an arbiter server configured to balance loads on at least some of the plurality of socket servers based at least in part on information obtained from the mapping server, wherein the obtained information is associated with the map of potential connections, and wherein the arbiter server is configured to communicate with the mapping server;

wherein the arbiter server is configured to provide a list of socket server connections to a device, wherein the list of socket server connections is derived at least in part from the map of potential connections, and wherein at least one message is pushed to the device via a socket server connection derived from the list of connections.

2. A push gateway as recited in claim 1 , wherein the arbiter server is further configured to:

receive a device identifier associated with the device;

determine whether the device associated with the device identifier has been registered with the push gateway;

send a secure ID to the device over said network if in the event that the device was not registered with the push gateway;

verify a secure ID of the device in the event that the device was registered with the push gateway; and

send the list of connections in the event that the secure ID associated with the device was verified.

3. A push gateway as recited in claim 1 , wherein the mapping server is further configured to store the developed map of potential connections.

4. The push gateway as recited in claim 1 , wherein the list of socket server connections is sent to the device based at least in part on the map of potential connections.

5. The push gateway as recited in claim 1 , wherein the arbiter server is further configured to connect the device to the push gateway at least in part by using a successful socket server connection derived from the list of socket server connections.

6. The push gateway as recited in claim 1 , wherein the device comprises a mobile device.

7. The push gateway as recited in claim 1 , wherein the list of socket server connections comprises a list of socket servers available for socket connection.

8. The push gateway as recited in claim 1 , wherein the list of socket server connections is based at least in part on a determination of loads on the plurality of socket servers.

9. The push gateway as recited in claim 1 , wherein the list of socket server connections is ordered based at least in part on loads on socket servers included in the list.

10. The push gateway as recited in claim 1 , wherein the list of socket server connections includes addresses of socket servers available for socket connection.

11. The push gateway as recited in claim 1 , wherein the arbiter server is further configured to provide an encryption key to the device.

12. The push gateway as recited in claim 11 , wherein the arbiter server is further configured to refresh the encryption key periodically.

13. The push gateway as recited in claim 1 , wherein the arbiter server is further configured to provide lists of socket server connections to the device periodically.

14. The push gateway as recited in claim 1 , wherein the socket servers are configured to enqueue encrypted messages, via the queue server, from the device that are to be received by the plurality of worker servers.

15. The push gateway as recited in claim 1 , wherein a socket connection is maintained at least in part by a keep-alive message.

16. The push gateway as recited in claim 1 , wherein a socket server connected to the device is configured to receive a list of registered applications running on the device.

17. The push gateway as recited in claim 1 , wherein the push message is encrypted.

Assignments (12)
SECURITY INTEREST Recorded Jul 1, 2024
From: AIRSHIP GROUP, INC.; APPTIMIZE, LLC
To: RUNWAY GROWTH FINANCE CORP.
Reel/Frame 068099/0779 →
RELEASE OF SECURITY INTEREST Recorded Jun 28, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: AIRSHIP GROUP, INC.; APPTIMIZE, LLC
Reel/Frame 067965/0545 →
CHANGE OF NAME Recorded Jan 21, 2021
From: URBAN AIRSHIP, INC.
To: AIRSHIP GROUP, INC.
Reel/Frame 055059/0223 →
RELEASE OF SECURITY INTEREST Recorded Apr 2, 2020
From: SILVER LAKE WATERMAN FUND, L.P.
To: URBAN AIRSHIP, INC.; TELLO, INC.
Reel/Frame 052300/0284 →
RELEASE OF SECURITY INTEREST Recorded Apr 2, 2020
From: SILICON VALLEY BANK
To: URBAN AIRSHIP, INC.
Reel/Frame 052300/0425 →
SECURITY INTEREST Recorded Apr 2, 2020
From: URBAN AIRSHIP, INC.; APPTIMIZE, LLC
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 052308/0550 →
SECURITY INTEREST Recorded May 30, 2017
From: URBAN AIRSHIP, INC.; TELLO, INC.
To: SILVER LAKE WATERMAN FUND, L.P., AS AGENT
Reel/Frame 042532/0575 →
RELEASE OF SECURITY INTEREST Recorded Apr 6, 2017
From: ORIX GROWTH CAPITAL, LLC (F/K/A ORIX VENTURES, LLC)
To: URBAN AIRSHIP, INC.; TELLO, INC.
Reel/Frame 041890/0286 →
SECURITY INTEREST Recorded Sep 25, 2015
From: URBAN AIRSHIP, INC.; TELLO, INC.
To: ORIX VENTURES, LLC
Reel/Frame 036654/0332 →
SECURITY INTEREST Recorded Jun 30, 2015
From: URBAN AIRSHIP, INC.
To: SILICON VALLEY BANK
Reel/Frame 035959/0313 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2012
From: LOWRY, ADAM C.; KUOLT, JARED J.; OSBORN, STEVEN L., II
To: URBAN AIRSHIP, INC.
Reel/Frame 027571/0638 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2012
From: LOWRY, ADAM C.; KUOLT, JARED J.; OSBORN II, STEVEN L.
To: URBAN AIRSHIP, INC.
Reel/Frame 027556/0111 →