IP Library Granted Patent US 11,336,734
Granted Patent B1
US 11,336,734 · App. 16/440,171 · Granted May 17, 2022

System and method for aggregating communication connections

Inventors: Jan Boris Koum (Santa Clara, CA); Bryan Dennis O'Connor (Atherton, CA); Brian Lange Acton (Palo Alto, CA)
Assignee: WHATSAPP LLC
H04L67/141G06Q10/107H04L51/04H04L65/1046H04L65/1063H04L65/1069H04L65/403H04L67/10H04L67/26H04L67/2833H04L67/42
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 11,336,734
App. No.
16/440,171
Granted
May 17, 2022
Kind
B1
Abstract

A system and methods are provided for aggregating communication connections. Multiple users connect to a system (e.g., a web-based system) that hosts an application or service for exchanging communications. Users who exchange communications among themselves may be considered “associates.” When one user who is on-line with the application sends a communication through the system for an associate, the system determines whether the associate is on-line or off-line. If the associate is off-line, the system crafts and sends toward the associate a notification regarding the communication, including an address of the communication server to which the one user is connected. When the associate's device receives the notification, the application may attempt to connect to the specified address. In this way associated users' connections will aggregate or gravitate toward the same communication server, thereby eliminating the latency and cost of exchanging users' communications between multiple communication servers.

Claims (69)

1. A computer-implemented method, comprising:

receiving, at a communication system hosting a communication application and comprising a plurality of communication servers, each communication server hosting a server version of the communication application, a request for connection from a client device running a client version of the communication application;

determining a connecting user of the client version of the communication application;

determining associated users representing users of the communication application who have exchanged messages on the communication system with the connecting user, wherein respective notifications of the messages:

are configured to notify the connecting user of the availability of the respective message in the communication system and to prompt the client version of the communications application to connect to the communication system to retrieve the respective message, and

include an address of one of the plurality of communication servers to which a sender of the respective message is connected;

determining that one or more of the associated users are currently connected to the communication system;

determining a specific server out of the plurality of communication servers to which one or more of the associated users are currently connected based on the address included in the respective notifications; and

in response to determining that the one or more of the associated users are currently connected to the specific server, connecting the client device to the specific server.

2. The method of claim 1 wherein multiple associated users are connected to the communication system, further comprising:

choosing as the specific server a communication server having any one of the multiple associated users connected thereto.

3. The method of claim 1 wherein multiple associated users are connected to the communication system, further comprising:

choosing as the specific server a communication server having a greatest number of the associated users connected thereto.

4. The method of claim 1 wherein multiple associated users are connected to the communication system, further comprising:

determining a most active associated user having a most active communication session of the multiple associated users; and

choosing as the specific server a communication server having the most active associated user connected thereto.

5. The method of claim 1 wherein all participants in a group chat session or online conference on the communication system are considered associated users of each other.

6. The method of claim 1 further comprising:

receiving, from one of the associated users, a message for the connecting user;

determining that the connecting user is currently not connected to the communication system; and

sending an alert to the connecting user prompting the connecting user to connect to the communication system.

7. The method of claim 6 further comprising:

selecting, as the specific server, the communication server to which the associated user sending the message to the connecting user is connected.

8. A system comprising:

a first communication server linked with at least a second communication server to form a communication system of a plurality of communication servers, each communication server running a server version of a communication application, the server version of the communication application having a communication interface configured to:

receive, at the communication system, a request for connection from a client device running a client version of the communication application;

determine a connecting user of the client version of the communication application;

determine associated users representing users of the communication application who have exchanged messages on the communication system with the connecting user, wherein respective notifications of the messages:

are configured to notify the connecting user of the availability of the respective message in the communication system and to prompt the client version of the communications application to connect to the communication system to retrieve the respective message, and

include an address of one of the plurality of communication servers to which a sender of the respective message is connected;

determine that one or more of the associated users are currently connected to the communication system;

determine a specific server out of the plurality of communication servers to which one or more of the associated users are currently connected based on the address included in the respective notifications; and

in response to determining that the one or more of the associated users are currently connected to the specific server, connect the client device to the specific server.

9. The system of claim 8 wherein multiple associated users are connected to the communication system, the communication interface further configured to:

choose as the specific server a communication server having any one of the associated users connected thereto.

10. The system of claim 8 wherein multiple associated users are connected to the communication system, the communication interface further configured to:

choose as the specific server a communication server having a greatest number of the associated users connected thereto.

11. The system of claim 8 wherein multiple associated users are connected to the communication system, the communication interface further configured to:

determine a most active associated user having a most active communication session of the multiple associated users; and

choose as the specific server a communication server having the most active associated user connected thereto.

12. The system of claim 8 wherein all participants in a group chat session or online conference on the communication system are considered associated users.

13. The system of claim 8 , the communication interface further configured to:

receive, from one of the associated users, a message for the connecting user;

determine that the connecting user is currently not connected to the communication system; and

send an alert to the connecting user prompting the connecting user to connected to the communication system.

14. The system of claim 13 , the communication interface further configured to:

select, as the specific server, the communication server to which the associated user sending the message to the connecting user is connected.

15. A non-transitory, computer-readable medium storing instructions that, when executed by a processor, cause the processor to:

receive, at a communication system hosting a communication application and comprising a plurality of communication servers, each communication server hosting a server version of the communication application, a request for connection from a client device running a client version of the communication application;

determine a connecting user of the client version of the communication application;

determine associated users representing users of the communication application who have exchanged messages on the communication system with the connecting user, wherein respective notifications of the messages:

are configured to notify the connecting user of the availability of the respective message in the communication system and to prompt the client version of the communications application to connect to the communication system to retrieve the respective message, and

include an address of one of the plurality of communication servers to which a sender of the respective message is connected;

determine that one or more of the associated users are currently connected to the communication system;

determine a specific server out of the plurality of communication servers to which one or more of the associated users are currently connected based on the address included in the respective notifications; and

in response to determining that the one or more of the associated users are currently connected to the specific server, connect the client device to the specific server.

16. The medium of claim 15 wherein multiple associated users are connected to the communication system, storing further instructions that cause the processor to:

choose as the specific server a communication server having any one of the connected associated users connected thereto.

17. The medium of claim 15 wherein multiple associated users are connected to the communication system, storing further instructions that cause the processor to:

choose as the specific server a communication server having a greatest number of the associated users connected thereto.

18. The medium of claim 15 wherein multiple associated users are connected to the communication system, storing further instructions that cause the processor to:

determine a most active associated user having a most active communication session of the multiple associated users; and

choose as the specific server a communication server a having the most active associated user connected thereto.

19. The medium of claim 15 wherein all participants in a group chat session or online conference on the communication system are considered associated users.

20. The medium of claim 15 storing further instructions that cause the processor to:

receive, from one of the associated users, a message for the connecting user;

determine that the connecting user is currently not connected to the communication system;

send an alert to the connecting user prompting the connecting user to connected to the communication system; and

select, as the specific server, the communication server to which the associated user sending the message to the connecting user is connected.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2022
From: KOUM, JAN; O'CONNOR, BRYAN D.; ACTON, BRIAN
To: WHATSAPP INC.
Reel/Frame 061333/0892 →
CHANGE OF NAME Recorded Jun 22, 2021
From: WHATSAPP INC.
To: WHATSAPP LLC
Reel/Frame 056646/0001 →
Continuity (2)
Continuation 15277953 · Sep 27, 2016
Continuation 13782690 · Mar 1, 2013
Cited By (1)
US 12,219,017