IP Library › Granted Patent US 10,205,760
Granted Patent B2
US 10,205,760 · App. 14/703,074 · Granted Feb 12, 2019

Task coordination in distributed systems

Inventor: Aftab Mahmood (Pleasanton, CA)
Assignee: Citrix Systems, Inc.
H04L65/4076H04L41/0893H04L43/0817H04L43/10H04L67/10H04L67/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 10,205,760
App. No.
14/703,074
Granted
Feb 12, 2019
Kind
B2
Abstract

Methods and systems are disclosed for providing approaches to enhanced task coordination in distributed systems. The methods and systems may include receiving, by a first computing device, a command for a client device and determining whether the first computing is connected to the client device. The methods and systems may include that if the first computing device is not connected to the client device, then transmitting, from the first computing device, a first message to a database associated with the cluster, the first message including the command and a device state of the first computing device, transmitting, from the database, a second message to a second computing device of the cluster, the second message including the command and the device state of the first computing device, and transmitting, from the second computing device and based on the device state of the second computing device, the command to the client device.

Claims (53)

1. A method comprising:

receiving, by a first computing device of a cluster of computing devices, a command for a client device;

determining, by the first computing device and based on receiving the command, whether the first computing device of the cluster is connected to the client device;

transmitting, from the first computing device and in response to determining that the first computing device is not connected to the client device, a first message to a database associated with the cluster, the first message comprising the command and a device state of the first computing device;

determining, by the first computing device and based on a roster received from the database, a connection status for the client device;

transmitting, from the first computing device and to a second computing device of the cluster, based on the roster, an indication of the first message to the second computing device;

transmitting, from the database and based on receiving a request for the first message from the second computing device, a second message to the second computing device, the second message comprising the command and the device state of the first computing device; and

transmitting, from the second computing device and based on receiving the second message, the command to the client device.

2. The method of claim 1 , wherein the command comprises an instruction for one or more client devices, wherein the client device is of the one or more client devices, and wherein the first message comprises a broadcast message, the method further comprising:

transmitting, from the database, the second message to one or more other computing devices of the cluster connected to the one or more client devices.

3. The method of claim 1 , wherein the command comprises an instruction for one or more client devices, wherein the client device is of the one or more client devices, and wherein the first message comprises a multicast message, the method further comprising:

transmitting, from the database, the second message to all of the computing devices of the cluster.

4. The method of claim 1 , wherein the indication comprises a real-time notification.

5. The method of claim 1 , wherein the first computing device and the second computing device are not connected to the client device, the method further comprises:

transmitting a broadcast message to the database, the broadcast message including the command for the client device, the device state of the first computing device and the device state of the second computing device; and

transmitting, from the database, a third message to a third computing device of the cluster connected to the client device, the third message including the command, the device state of the first computing device and the device state of the second computing device.

6. A system, comprising:

at least one processor; and

at least one memory storing computer-readable instructions that, when executed by the at least one processor, cause the system to perform:

receiving, by a first computing device of a cluster of computing devices, a command for a client device;

determining, by the first computing device and based on receiving the command, whether the first computing device of the cluster is known, by the first computing device, to be connected to the client device;

transmitting, from the first computing device and in response to determining that the first computing device is not connected to the client device, a first message to a database associated with the cluster, the first message comprising the command and a device state of the first computing device;

determining, by the first computing device and based on a roster received from the database, a connection status for the client device;

transmitting, from the first computing device and to a second computing device of the cluster, based on the roster, an indication of the first message to the second computing device;

transmitting, from the database and based on receiving a request for the first message from the second computing device, a second message to the second computing device, the second message comprising the command and the device state of the first computing device; and

transmitting, from the second computing device and based on receiving the second message, the command to the client device.

7. The system of claim 6 , wherein the command comprises an instruction for one or more client devices, wherein the client device is of the one or more client devices, wherein the first message comprises a broadcast message, and wherein the computer-readable instructions further cause the system to perform transmitting, from the database, the second message to one or more computing devices of the cluster connected to the one or more client devices.

8. The system of claim 6 , wherein the command comprises an instruction for one or more client devices, wherein the client device is of the one or more client devices, wherein the first message comprises a multicast message, and wherein the computer-readable instructions further cause the system to perform transmitting, from the database, the second message to all of the computing devices of the cluster.

9. The system of claim 6 , wherein the second message comprises a real-time notification from the first computing device.

10. The system of claim 6 , wherein the first computing device and the second computing device are not connected to the client device, wherein the computer-readable instructions further cause the system to perform:

transmitting a broadcast message to the database, the broadcast message including the command for the client device, the device state of the first computing device and the device state of the second computing device; and

transmitting, from the database, a third message to a third computing device of the cluster connected to the client device, the third message including the command, the device state of the first computing device and the device state of the second computing device.

11. One or more non-transitory computer-readable storage media having computer-readable instructions stored thereon, that when executed by one or more processors, cause the one or more processors to perform:

receiving, by a first computing device of a cluster of computing devices, a command for a client device;

determining, by the first computing device and based on receiving the command, whether the first computing device of the cluster is connected to the client device;

transmitting, from the first computing device and in response to determining that the first computing device is not connected to the client device, a first message to a database associated with the cluster, the first message comprising the command and a device state of the first computing device;

determining, by the first computing device and based on a roster received from the database, a connection status for the client device;

transmitting, from the first computing device and to a second computing device of the cluster, based on the roster, an indication of the first message to the second computing device;

transmitting, from the database and based on receiving a request for the first message from the second computing device, a second message to the second computing device, the second message comprising the command and the device state of the first computing device; and

transmitting, from the second computing device and based on receiving the second message, the command to the client device.

12. The computer-readable storage media of claim 11 , wherein the command comprises an instruction for one or more client devices, wherein the client device is of the one or more client devices, wherein the first message comprises a broadcast message, and wherein the computer-readable instructions further cause the one or more processors to perform transmitting, from the database, the second message to one or more computing devices of the cluster connected to the one or more client devices.

13. The computer-readable storage media of claim 11 , wherein the command comprises an instruction for one or more client devices, wherein the client device is of the one or more client devices, wherein the first message comprises a multicast message, and wherein the computer-readable instructions further cause the one or more processors to perform transmitting, from the database, the second message to all of the computing devices of the cluster.

14. The computer-readable storage media of claim 11 , wherein the second message comprises a real-time notification.

15. The computer-readable storage media of claim 11 , wherein the first computing device and the second computing device are not connected to the client device, wherein the computer-readable instructions further cause the one or more processors to perform:

transmitting a broadcast message to the database, the broadcast message including the command for the client device, the device state of the first computing device and the device state of the second computing device; and

transmitting, from the database, a third message to a third computing device of the cluster connected to the client device, the third message including the command and the device state of the first computing device and the device state of the second computing device.

16. The method of claim 1 , further comprising connecting the first computing device to the client device based on the connection status.

17. The method of claim 1 , further comprising transmitting an indication that the first computing device is connected to the database.

18. The system of claim 6 , wherein the computer-readable instructions further cause the system to perform connecting the first computing device to the client device based on the connection status.

19. The system of claim 6 , wherein the computer-readable instructions further cause the system to perform transmitting an indication that the first computing device is connected to the database.

20. The computer-readable storage media of claim 11 , wherein the computer-readable instructions further cause the one or more processors to perform:

transmitting an indication that the first computing device is connected to the database; and

connecting the first computing device to the client device based on the connection status.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 7, 2015
From: MAHMOOD, AFTAB
To: CITRIX SYSTEMS, INC.
Reel/Frame 036010/0717 →
Continuity (2)
Provisional Application 61988493 · May 5, 2014
Related Publication 20150319226A1 · Nov 5, 2015
Cited By (1)
US 12,552,225