IP Library Granted Patent US 10,498,548
Granted Patent B2
US 10,498,548 · App. 15/983,674 · Granted Dec 3, 2019

Method, apparatus, and computer program product for a scalable group-based communication system with a reduced client memory footprint requirement

Inventors: Cyrus Katrak (San Francisco, CA); Mark Christian (San Francisco, CA)
Assignee: Slack Technologies, Inc.
H04L12/1818H04L12/189H04L12/1813H04L12/5691H04L47/70H04L63/0807H04L63/0853H04L63/102H04L63/104H04L63/12H04L65/1023H04L65/1069H04L67/1004H04L67/1044H04W4/08H04W88/16
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 10,498,548
App. No.
15/983,674
Granted
Dec 3, 2019
Kind
B2
Abstract

Various embodiments are directed to systems and methods for efficient network distribution of group-based communication data transmissions comprising group-based communication data required by client devices within a group-based communication platform.

Claims (62)

1. A computer-implemented method, comprising:

receiving, using a processor and from a group-based communication load balancer, a client device connection request, the client device connection request associated with a client device and comprising a client device authorization token;

transmitting, using the processor and to a group-based communication server in communication with a group-based communication repository, the client device authorization token;

receiving, using the processor and from the group-based communication server upon the group-based communication server verifying the client device authorization token, a first group-based communication data superset associated with the client device authorization token;

storing, using the processor and in at least one memory, the first group-based communication data superset;

extracting, using the processor, a first group-based communication data subset from the first group-based communication data superset, the first group-based communication data subset comprising a first group-based communication minimum data set required by the client device to render a group-based communication interface; and

transmitting, using the processor, the first group-based communication minimum data set to the client device.

2. The computer-implemented method of claim 1 , further comprising:

receiving, using the processor and from a group-based communication status checker, data representing a plurality of available group-based communication gateway servers;

establishing, using the processor, a connection with a group-based communication gateway server of the plurality of available group-based communication gateway servers;

receiving, using the processor and from the group-based communication gateway server, an updated group-based communication data set associated with the client device; and

updating, using the processor and in the at least one memory, the first group-based communication data superset with the updated group-based communication data set to produce an updated first group-based communication data superset.

3. The computer-implemented method of claim 2 , further comprising:

receiving, using the processor and from the client device, a group-based communication data request;

extracting, using the processor and from the updated first group-based communication data superset, a second group-based communication data subset based on the group-based communication data request; and

transmitting, using the processor, the second group-based communication data subset to the client device.

4. The computer-implemented method of claim 3 , wherein the second group-based communication data subset is different from the first group-based communication data subset.

5. The computer-implemented method of claim 2 , further comprising:

selecting, using the processor, the group-based communication gateway server from the plurality of available group-based communication gateway servers based upon a group-based communication team identifier associated with the client device.

6. The computer-implemented method of claim 1 , wherein the first group-based communication data superset comprises all group-based communication data stored in the group-based communication repository associated with the client device.

7. The computer-implemented method of claim 6 ,

wherein all group-based communication data stored in the group-based communication repository associated with the client device comprises:

group-based communication channel data associated with one or more group-based communication channel identifiers associated with the client device;

group-based communication team data associated with one or more group-based communication team identifiers associated with the client device; and

group-based communication channel member data associated with one or more members included in those group-based communication channels identified by the group-based communication channel identifiers associated with the client device.

8. The computer-implemented method of claim 1 , wherein the group-based communication server retrieves the first group-based communication data superset from the group-based communication repository.

9. A computing apparatus for implementing a group-based communication edge cache host, the computing apparatus comprising:

a processor; and

a memory storing instructions that, when executed by the processor, configure the apparatus to:

receive, from a group-based communication load balancer, a client device connection request, the client device connection request associated with a client device and comprising a client device authorization token;

transmit, to a group-based communication server in communication with a group-based communication repository, the client device authorization token;

receive, from the group-based communication server upon the group-based communication server verifying the client device authorization token, a first group-based communication data superset associated with the client device authorization token;

store, in at least one memory, the first group-based communication data superset;

extract a first group-based communication data subset from the first group-based communication data superset, the first group-based communication data subset comprising a first group-based communication minimum data set required by the client device to render a group-based communication interface; and

transmit the first group-based communication minimum data set to the client device.

10. The computing apparatus of claim 9 , wherein the instructions further configure the apparatus to:

receive, using the processor and from a group-based communication status checker, data representing a plurality of available group-based communication gateway servers;

establish, using the processor, a connection with a group-based communication gateway server of the plurality of available group-based communication gateway servers;

receive, using the processor and from the group-based communication gateway server, an updated group-based communication data set associated with the client device; and

update, using the processor and in the memory storing instructions, the first group-based communication data superset with the updated group-based communication data set to produce an updated first group-based communication data superset.

11. The computing apparatus of claim 10 , wherein the instructions further configure the apparatus to:

receive, using the processor and from the client device, a group-based communication data request;

extract, using the processor and from the updated first group-based communication data superset, a second group-based communication data subset based on the group-based communication data request; and

transmit, using the processor, the second group-based communication data subset to the client device.

12. The computing apparatus of claim 11 , wherein the second group-based communication data subset is different from the first group-based communication data subset.

13. The computing apparatus of claim 10 , wherein the instructions further configure the apparatus to:

select, using the processor, the group-based communication gateway server from the plurality of available group-based communication gateway servers based upon a group-based communication team identifier associated with the client device.

14. The computing apparatus of claim 10 , wherein the computing apparatus is located in a different geolocation than the group-based communication gateway server and the group-based communication server.

15. The computing apparatus of claim 9 , wherein the first group-based communication data superset comprises all group-based communication data stored in the group-based communication repository associated with the client device.

16. The computing apparatus of claim 15 ,

wherein all group-based communication data stored in the group-based communication repository associated with the client device comprises:

group-based communication channel data associated with one or more group-based communication channel identifiers associated with the client device;

group-based communication team data associated with one or more group-based communication team identifiers associated with the client device; and

group-based communication channel member data associated with one or more members included in those group-based communication channels identified by the group-based communication channel identifiers associated with the client device.

17. The computing apparatus of claim 9 , wherein the group-based communication server retrieves the first group-based communication data superset from the group-based communication repository.

18. A group-based communication edge cache host system, comprising one or more servers, each server comprising a processor and memory storing instructions that, when executed by the processor, cause the server to:

receive, from a group-based communication load balancer, a client device connection request, the client device connection request associated with a client device and comprising a client device authorization token;

transmit, to a group-based communication server in communication with a group-based communication repository, the client device authorization token;

receive, from the group-based communication server upon the group-based communication server verifying the client device authorization token, a first group-based communication data superset associated with the client device authorization token;

store, in at least one memory, the first group-based communication data superset;

extract a first group-based communication data subset from the first group-based communication data superset, the first group-based communication data subset comprising a first group-based communication minimum data set required by the client device to render a group-based communication interface; and

transmit the first group-based communication minimum data set to the client device.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2023
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE, INC.
Reel/Frame 064642/0564 →
MERGER Recorded Jul 29, 2021
From: SLACK TECHNOLOGIES, INC.
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057475/0404 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 49332/0349 Recorded Jul 19, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 057649/0882 →
PATENT SECURITY AGREEMENT Recorded May 30, 2019
From: SLACK TECHNOLOGIES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 049332/0349 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2018
From: KATRAK, CYRUS; CHRISTIAN, MARK
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 046750/0719 →
Continuity (2)
Provisional Application 62508952 · May 19, 2017
Related Publication 20180337795A1 · Nov 22, 2018