IP Library › Granted Patent US 11,108,673
Granted Patent B2
US 11,108,673 · App. 15/707,077 · Granted Aug 31, 2021

Extensible, decentralized health checking of cloud service components and capabilities

Inventors: Thomas Kludy (Fort Lauderdale, FL); Ricardo Feijoo (Fort Lauderdale, FL); Ayush Jain (North Lauderdale, FL)
Assignee: Citrix Systems, Inc.
H04L43/50G06F11/30H04L43/04H04L43/0817H04L43/12H04L67/10H04L67/34
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,108,673
App. No.
15/707,077
Granted
Aug 31, 2021
Kind
B2
Abstract

Methods, computer-readable media, and apparatuses for checking the health of a cloud-based component. The method includes receiving, by a health event hub as output by a first device, a request for performing a health check on a second device; outputting, by the health event hub, the request to each health checker on the network; receiving, by the health event hub, a health data response output by at least one checker that is capable of performing the health check; collecting, by the health event hub, each health data response associated with the request output by the first device that is output by the at least one health checker that is capable of performing the health check on the second device; and outputting, by the health event hub to each health data collector on the network, each health data response associated with the request output by the first device.

Claims (115)

1. A health check method, comprising:

receiving, by a health event hub as output by a first device onto a network, a first health data request for performing a health check on a target device of a plurality of target devices communicatively connected to the network, wherein the first health data request includes a hierarchical identifier of the first health data request;

outputting, by the health event hub onto the network, the received first health data request to each of a plurality of health checkers associated with the network, and communicatively connected to the network;

determining, by each of the plurality of health checkers and based on receiving the first health data request, whether the corresponding health checker of the plurality of health checkers is capable of performing the requested health check on the target device;

performing, by each of the plurality of health checkers and based on determining that the corresponding health checker of the plurality of health checkers is capable of performing the requested health check on the target device, the requested health check on the target device;

receiving, by the health event hub via the network, a health data response output by at least one of the plurality of health checkers that is capable of performing the requested health check on the target device;

collecting, by the health event hub, each health data response associated with the first health data request that is output by the at least one of the plurality of health checkers that is capable of performing the requested health check on the target device;

outputting, by the health event hub to each of a plurality of health data collectors on the network, each health data response associated with the first health data request;

receiving, by the health event hub and during the output of the health data responses associated with the first health data request, a second health data request for performing a health check on the target device, wherein the second health data request includes a hierarchical identifier of the second health data request;

for each health data response output after receipt of the second health data request, comparing, by each of the plurality of health data collectors, a hierarchical request identifier included in the corresponding health data response output to the hierarchical identifier of the second health data request;

in response to identifying that the corresponding health data response includes the hierarchical identifier of the first health data request, identifying, by each of the plurality of data collectors, that the corresponding health data response is out of date; and

in response to identifying that the corresponding health data response includes the hierarchical identifier of the second health data request, identifying, by each of the plurality of data collectors, that the corresponding health data response is current.

2. The health check method of claim 1 , further comprising:

outputting, by each of the plurality of health checkers that is capable of performing the requested health check on the target device, a health data response that includes information associated with the requested health check, wherein the information includes:

an identifier of the first device,

an identifier of the corresponding health checker of the plurality of health checkers,

the hierarchical identifier of the first health data request,

an identifier of the target device, and

health data for the target device.

3. The health check method of claim 1 , further comprising:

collating the health data responses output by the plurality of health checkers with the first health data request,

wherein a health data response received from the at least one of the plurality of health checkers after the second health data request has been received by the health event hub is not associated with the first health data request by the health event hub.

4. The health check method of claim 1 ,

wherein one of the plurality of health checkers provides health data to the first device, and

wherein another of the plurality of health checkers provides health data to another device different from the first device.

5. The health check method of claim 1 , further comprising:

receiving, by the health event hub, information regarding a new health checker associated with the network and communicatively connected to the network; and

sending, by the health event hub after having received the information regarding the new health checker, the second health data request to the plurality of health checkers and to the new health checker.

6. The health check method of claim 1 , wherein the target device comprises a processor, and wherein the health check comprises determining a utilization percentage of the processor during a predetermined time period.

7. The health check method of claim 1 , wherein the second health data request includes:

the hierarchical identifier corresponding to the second health data request,

a format in which health information responsive to the second health data request should be displayed, and

a time period within which the health information responsive to the second health data request should be obtained.

8. The health check method of claim 7 , further comprising:

formatting, by each of the plurality of health data collectors, the health data responses, wherein formatting the health data responses comprises:

presenting the health data responses identified as current in an unobscured manner, and

presenting the health data responses identified as out of date in an obscured manner.

9. The health check method of claim 8 , wherein:

formatting the health data responses comprises formatting the health data responses based on the format specified in the first health data request, and

the format comprises one of more of: a text format or a pie chart.

10. One or more non-transitory computer-readable media storing instructions for performing a health check on a cloud-based service, the instructions, when executed by a cloud-based system that includes at least one processor and a memory, cause the cloud-based system to:

receive, via a network as output by a first device, a first health data request for performing a health check on a target device of a plurality of target devices communicatively connected to the network, wherein the first health data request includes a hierarchical identifier of the first health data request;

output, via the network, the first health data request to each of a plurality of health checkers associated with the network and communicatively connected to the network;

cause each health checker of the plurality of health checkers to, based on receiving the first health data request, determine whether the corresponding health checker of the plurality of health checkers is capable of performing the requested health check on the target device;

cause each health checker of the plurality of health checkers to, based on determining that the corresponding health checker of the plurality of health checkers is capable of performing the requested health check on the target device, perform the requested health check on the target device;

receive a health data response output by at least one of the plurality of health checkers that is capable of performing the health check on the target device;

collect each health data response associated with the first health data request that is output by the at least one of the plurality of health checkers that is capable of performing the health check on the target device;

output, via the network to each of a plurality of health data collectors, each health data response associated with the first health data request;

receive, during the output of the health data responses associated with the first health data request, a second health data request for performing a health check on the target device, wherein the second health data request includes a hierarchical identifier of the second health data request;

for each health data response output after receipt of the second health data request, compare a hierarchical request identifier included in the corresponding health data response output to the hierarchical identifier of the second health data request;

in response to identifying that the corresponding health data response includes the hierarchical identifier of the first health data request, identify that the corresponding health data response is out of date; and

in response to identifying that the corresponding health data response includes the hierarchical identifier of the second health data request, identify that the corresponding health data response is current.

11. The one or more non-transitory computer readable medium of claim 10 , wherein the instructions, when executed by the cloud-based system, further cause the cloud-based system to:

output a health data response that includes information associated with the health check, wherein the information includes:

an identifier of the first device,

an identifier of the corresponding health checker of the plurality of health checkers,

the hierarchical identifier of the first health data request,

an identifier of the target device, and

health data for the target device.

12. The one or more non-transitory computer readable medium of claim 11 , wherein the instructions, when executed by the cloud-based system, further cause the cloud-based system to:

correlate the health data responses output by the plurality of health checkers with the first health data request,

wherein a health data response received from the at least one of the plurality of health checkers after the second health data request has been received are not correlated with the first health data request.

13. The one or more non-transitory computer readable medium of claim 11 ,

wherein one of the plurality of health checkers provides health data to the first device, and

wherein another of the plurality of health checkers provides health data to another device different from the first device.

14. The one or more non-transitory computer readable medium of claim 10 , wherein the instructions, when executed by the cloud-based system, further cause the cloud-based system to:

receive information regarding a new health checker communicatively connected to the network; and

send, after having received the information regarding the new health checker, the second health data request to the plurality of health checkers and to the new health checker.

15. A health check system comprising:

a computing device comprising:

one or more first processors; and

a first memory storing first computer-readable instructions that, when executed by the one or more first processors, configure the one or more first processors to:

receive a first health data request for performing a health check on a target device of a plurality of target devices communicatively connected to a network, wherein the first health data request includes a hierarchical identifier of the first health data request;

output, onto the network, the received first health data request to each of a plurality of health checkers associated with the network, and communicatively connected to the network;

receive, via the network, a health data response output by at least one of the plurality of health checkers that is capable of performing the requested health check on the target device;

collect each health data response associated with the first health data request that is output by the at least one of the plurality of health checkers that is capable of performing the requested health check on the target device;

output, to each of a plurality of health data collectors on the network, each health data response associated with the first health data request;

receive, during the output of the health data responses associated with the first health data request, a second health data request for performing a health check on the target device, wherein the second health data request includes a hierarchical identifier of the second health data request;

the plurality of health checkers, each comprising:

one or more second processors; and

a second memory storing second computer-readable instructions that, when executed by the one or more second processors, configure the one or more second processors to:

determine, based on receiving the first health data request, whether the corresponding health checker of the plurality of health checkers is capable of performing the requested health check on the target device;

performing, based on determining that the corresponding health checker of the plurality of health checkers is capable of performing the requested health check on the target device, the requested health check on the target device; and

the plurality of health data collectors, each comprising:

one or more third processors; and

a third memory storing third computer-readable instructions that, when executed by the one or more third processors, configure the one or more third processors to:

for each health data response output after receipt of the second health data request, compare a hierarchical request identifier included in the corresponding health data response output to the hierarchical identifier of the second health data request;

in response to identifying that the corresponding health data response includes the hierarchical identifier of the first health data request, identify that the corresponding health data response is out of date; and

in response to identifying that the corresponding health data response includes the hierarchical identifier of the second health data request, identify that the corresponding health data response is current.

16. The health check system of claim 15 , wherein the health data response comprises:

an identifier of a device that sent the first health data request to the computing device,

an identifier of the at least one of the plurality of health checkers,

the hierarchical identifier of the first health data request,

an identifier of the target device, and

health data for the target device.

17. The health check system of claim 16 , wherein the first computer-readable instructions, when executed by the one or more first processors, further configure the one or more first processors to:

correlate the health data with the first health data request,

wherein any health data received from the plurality of health checkers after the second health data request has been received are not correlated with the first health data request.

18. The health check system of claim 16 ,

wherein one of the plurality of health checkers provides health data to the device that sent the first health data request, and

wherein another of the plurality of health checkers provides health data to another different device.

19. The health check system of claim 15 , wherein, the first computer-readable instructions, when executed by the one or more first processors, configure the one or more first processors to:

based on receiving information regarding a new health checker configured to act on received requests, send further health data requests to the plurality of health checkers and to the new health checker.

20. A method comprising:

receiving, via a network as output by a first device, a first health data request for performing a health check on a target device of a plurality of target devices communicatively connected to the network, wherein the first health data request includes a hierarchical identifier of the first health data request;

outputting, via the network, the first health data request to each of a plurality of health checkers associated with the network and communicatively connected to the network;

causing each health checker of the plurality of health checkers to, based on receiving the first health data request, determine whether the corresponding health checker of the plurality of health checkers is capable of performing the requested health check on the target device;

causing each health checker of the plurality of health checkers to, based on determining that the corresponding health checker of the plurality of health checkers is capable of performing the requested health check on the target device, perform the requested health check on the target device;

receiving a health data response output by at least one of the plurality of health checkers that is capable of performing the health check on the target device;

collecting each health data response associated with the first health data request that is output by the at least one of the plurality of health checkers that is capable of performing the health check on the target device;

outputting, via the network to each of a plurality of health data collectors, each health data response associated with the first health data request;

receiving, during the output of the health data responses associated with the first health data request, a second health data request for performing a health check on the target device, wherein the second health data request includes a hierarchical identifier of the second health data request;

for each health data response output after receipt of the second health data request, comparing a hierarchical request identifier included in the corresponding health data response output to the hierarchical identifier of the second health data request;

in response to identifying that the corresponding health data response includes the hierarchical identifier of the first health data request, identifying that the corresponding health data response is out of date; and

in response to identifying that the corresponding health data response includes the hierarchical identifier of the second health data request, identifying that the corresponding health data response is current.

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 Sep 20, 2017
From: KLUDY, THOMAS; FEIJOO, RICARDO; JAIN, AYUSH
To: CITRIX SYSTEMS, INC.
Reel/Frame 043641/0163 →
Continuity (1)
Related Publication 20190089618A1 · Mar 21, 2019
Cited By (1)
US 12,267,220