IP Library Granted Patent US 10,863,221
Granted Patent B2
US 10,863,221 · App. 16/509,231 · Granted Dec 8, 2020

Dynamic object update subscriptions based on user interactions with an interface

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,863,221
App. No.
16/509,231
Granted
Dec 8, 2020
Kind
B2
Abstract

Subscriptions for object updates to be transmitted to a client device may be dynamically managed based on the occurrence of one or more trigger events at the client device, which causes the client device to transmit subscription modification requests to a computing platform configured to dynamically maintain object subscription lists for each of one or more client devices based at least in part on subscription modification requests received from each of the one or more client devices, to determine whether subscribed objects for a particular client device are current at the client device, and to transmit updates of subscribed objects in real-time upon determining that the particular client device does not comprise current object data.

Claims (61)

1. A subscription management system comprising:

one or more memory storage areas for maintaining current object data for a plurality of objects and for maintaining a subscription list for each of one or more client devices, wherein the subscription list for each of the one or more client devices comprises object identifiers corresponding to subscribed objects of the plurality of objects for each of the one or more client devices;

one or more processors collectively configured to:

receive a subscription modification request from at least one client device of the one or more client devices, wherein:

the subscription modification request identifies at least one object and a subscription modification request type for the at least one object;

the subscription modification request type is based at least in part on a position of the at least one object relative to an aspect of a graphical user interface (GUI) of the at least one client device; and

the subscription modification request type is selected from:

a subscribe request reflecting a change to a position of the at least one object relative to the aspect of the GUI such that the at least one object is visible via the at least one client device; or

an unsubscribe request reflecting a change to a position of the at least one object relative to the aspect of the GUI such that the at least one object is not visible via the at least one client device;

upon determining that the subscription modification request identifies a change in the subscription list for the at least one client device, update the subscription list to generate an updated subscription list for the at least one client device based at least in part on the at least one object and the subscription modification request type for the at least one object; and

provide current object data for the subscribed objects of the plurality of objects identified within the updated subscription list to the at least one client device.

2. The subscription management system of claim 1 , wherein the subscription modification request reflects a change in visibility of the at least one object identified within the subscription modification request via the at least one client device.

3. The subscription management system of claim 1 , wherein implementing the updated subscription list comprises:

upon detecting an update to the current object data stored within the one or more memory storage areas for at least one subscribed object, determine whether the at least one client device comprises the current object data for the at least one subscribed object; and

upon determining that the at least one client device does not comprise the current object data for the at least one subscribed object, transmit updates of the current object data for the at least one subscribed object to the at least one client device.

4. The subscription management system of claim 3 , wherein the subscription modification request comprises version identifiers corresponding to the at least one object identified within the subscription modification request, and wherein:

determining whether the at least one client device comprises the current object data for the at least one subscribed object comprises determining whether the version identifiers reflected in the subscription modification request correspond with version identifiers of current object data stored within the one or more memory storage areas.

5. The subscription management system of claim 1 , wherein receiving the subscription modification request from the at least one client device comprises receiving the subscription modification request via a web socket connection.

6. The subscription management system of claim 1 , wherein the subscription list for each of the one or more client devices defines a maximum number of objects reflected within the subscription list.

7. The subscription management system of claim 1 , wherein, for the subscribe request, updating the subscription list to generate the updated subscription list comprises concatenating an object identifier corresponding to the at least one object identified within the subscription modification request to the subscription list for the at least one client device.

8. The subscription management system of claim 1 , wherein, for the unsubscribe request, updating the subscription list to generate the updated subscription list comprises removing an object identifier corresponding to the at least one object identified within the subscription modification request from the subscription list for the at least one client device.

9. A computer-program product comprising at least one non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising an executable portion configured to:

store, within a memory storage area, current object data for a plurality of objects and one or more subscription lists each corresponding to one or more client devices, wherein a subscription list of the one or more subscription lists comprises object identifiers corresponding to subscribed objects of the plurality of objects for a client device of the one or more client devices;

receive a subscription modification request from the client device, wherein:

the subscription modification request identifies at least one object and a subscription modification request type for the at least one object;

the subscription modification request type is based at least in part on a position of the at least one object relative to an aspect of a graphical user interface (GUI) of the client device; and

the subscription modification request type is selected from:

a subscribe request reflecting a change to a position of the at least one object relative to the aspect of the GUI such that the at least one object is visible via the client device; or

an unsubscribe request reflecting a change to a position of the at least one object relative to the aspect of the GUI such that the at least one object is not visible via the client device;

upon determining that the subscription modification request identifies a change in the subscription list for the client device, update the subscription list to generate an updated subscription list for the client device based at least in part on the at least one object and the subscription modification request type for the at least one object; and

provide current object data for the subscribed objects of the plurality of objects identified within the updated subscription list to the client device.

10. The computer-program product of claim 9 , wherein the subscription modification request reflects a change in visibility of the at least one object identified within the subscription modification request via the client device.

11. The computer-program product of claim 9 , wherein implementing the updated subscription list comprises:

upon detecting an update to the current object data stored within the memory storage area for at least one subscribed object, determine whether the client device comprises the current object data for the at least one subscribed object; and

upon determining that the client device does not comprise the current object data for the at least one subscribed object, transmit updates of the current object data for the at least one subscribed object to the client device.

12. The computer-program product of claim 11 , wherein the subscription modification request comprises version identifiers corresponding to the at least one object identified within the subscription modification request, and wherein:

determining whether the client device comprises the current object data for the at least one subscribed object comprises determining whether the version identifiers reflected in the subscription modification request correspond with version identifiers of current object data stored within the memory storage area.

13. The computer-program product of claim 9 , wherein receiving the subscription modification request from the client device comprises receiving the subscription modification request via a websocket connection.

14. The computer-program product of claim 9 , wherein the subscription list defines a maximum number of objects reflected within the subscription list.

15. The computer-program product of claim 9 , wherein, for the subscribe request, updating the subscription list to generate the updated subscription list comprises concatenating an object identifier corresponding to the at least one object identified within the subscription modification request to the subscription list for the client device.

16. The computer-program product of claim 9 , wherein, for the unsubscribe request, updating the subscription list to generate the updated subscription list comprises removing an object identifier corresponding to the at least one object identified within the subscription modification request from the subscription list for the client device.

17. A computer-implemented method comprising:

storing, within a memory storage area, current object data for a plurality of objects and one or more subscription lists each corresponding to one or more client devices, wherein a subscription list of the one or more subscription lists comprises object identifiers corresponding to subscribed objects of the plurality of objects for a client device of the one or more client devices;

receiving, via one or more processors, a subscription modification request from the client device, wherein:

the subscription modification request identifies at least one object and a subscription modification request type for the at least one object;

the subscription modification request type is based at least in part on a position of the at least one object relative to an aspect of a graphical user interface (GUI) of the client device; and

the subscription modification request type is selected from:

a subscribe request reflecting a change to a position of the at least one object relative to the aspect of the GUI such that the at least one object is visible via the client device; or

an unsubscribe request reflecting a change to a position of the at least one object relative to the aspect of the GUI such that the at least one object is not visible via the client device;

upon determining that the subscription modification request identifies a change in the subscription list for the client device, updating, via the one or more processors, the subscription list to generate an updated subscription list for the client device based at least in part on the at least one object and the subscription modification request type for the at least one object; and

providing, via the one or more processors, current object data for the subscribed objects of the plurality of objects identified within the updated subscription list to the client device.

18. The computer-implemented method of claim 17 , wherein the subscription modification request reflects a change in visibility of the at least one object identified within the subscription modification request via the client device.

19. The computer-implemented method of claim 17 , wherein implementing the updated subscription list comprises:

upon detecting an update to the current object data stored within the memory storage area for at least one subscribed object, determine whether the client device comprises the current object data for the at least one subscribed object; and

upon determining that the client device does not comprise the current object data for the at least one subscribed object, transmit updates of the current object data for the at least one subscribed object to the client device.

20. The computer-implemented method of claim 19 , wherein the subscription modification request comprises version identifiers corresponding to the at least one object identified within the subscription modification request, and wherein:

determining whether the client device comprises the current object data for the at least one subscribed object comprises determining whether the version identifiers reflected in the subscription modification request correspond with version identifiers of current object data stored within the memory storage area.

21. The computer-implemented method of claim 17 , wherein receiving the subscription modification request from the client device comprises receiving the subscription modification request via a websocket connection.

22. The computer-implemented method of claim 17 , wherein the subscription list defines a maximum number of objects reflected within the subscription list.

23. The computer-implemented method of claim 17 , wherein, for the subscribe request, updating the subscription list to generate the updated subscription list comprises concatenating an object identifier corresponding to the at least one object identified within the subscription modification request to the subscription list for the client device.

24. The computer-implemented method of claim 17 , wherein, for the unsubscribe request, updating the subscription list to generate the updated subscription list comprises removing an object identifier corresponding to the at least one object identified within the subscription modification request from the subscription list for the client device.

Assignments (3)
MERGER Recorded Jan 11, 2023
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE.COM, INC.
Reel/Frame 062354/0073 →
CHANGE OF NAME Recorded Jan 11, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 062354/0100 →
MERGER AND CHANGE OF NAME Recorded Oct 1, 2021
From: SLACK TECHNOLOGIES, INC.; SLACK TECHNOLOGIES, LLC
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057683/0001 →