IP Library Granted Patent US 8,116,207
Granted Patent B2
US 8,116,207 · App. 11/466,026 · Granted Feb 14, 2012

Systems and methods for weighted monitoring of network services

Assignee: Citrix Systems, Inc.
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 8,116,207
App. No.
11/466,026
Granted
Feb 14, 2012
Kind
B2
Abstract

A method for determining service availability using a plurality of weighted monitoring agents includes: establishing, by an appliance, a plurality of agents, the plurality of agents monitoring a service executing on a server, and each agent having an assigned weight; computing, by the appliance, a sum of the assigned weights of the agents reporting the service as currently operational; determining, by the appliance, the sum falls below a given threshold; and transmitting, by the appliance, an indication that the service is unusable. Corresponding systems are also described.

Claims (51)

1. A method for determining service availability using a plurality of weighted monitoring agents, the method comprising:

(a) establishing, by a first appliance intermediary to one or more servers and a plurality of clients, a plurality of agents, each agent of the plurality of agents established to monitor availability of a corresponding protocol of a service, each agent having an assigned weight;

(b) monitoring, by each agent of the plurality of agents executing on the first appliance, the service executing on the one or more servers, responses from the service to requests of a protocol specific to each agent;

(c) computing, by the first appliance, a sum of the assigned weights of the agents reporting the service as currently operational;

(d) determining, by the first appliance, the sum falls below a given threshold;

(e) transmitting, by the first appliance, an indication that the service is unusable to a second appliance; and

(f) changing, by the second appliance, a number of requests for the service from the plurality of clients to forward to the first appliance based on the indication.

2. The method of claim 1 , wherein step (a) comprises establishing, by the first appliance, a plurality of agents, wherein at least one of the agents comprises an interpreted script.

3. The method of claim 1 , wherein step (c) comprises the steps of:

(c-a) receiving, from at least one of the plurality of agents, an indication that the service is operational; and

(c-b) computing, by the first appliance, a sum of the assigned weights of the agents reporting the service as currently operational.

4. The method of claim 1 , wherein step (c) comprises the steps of:

(c-a) receiving, from at least one of the plurality of agents, an indication that the service is not responding; and

(c-b) computing, by the first appliance, a sum of the assigned weights of the agents reporting the service as currently operational.

5. The method of claim 1 , wherein step (c) comprises the steps of:

(c-a) receiving, from at least one of the plurality of agents, an indication that the service response time is below a given threshold; and

(c-b) computing, by the first appliance, a sum of the assigned weights of the agents reporting the service as currently operational.

6. The method of claim 1 , wherein step (e) comprises the step of transmitting, by the first appliance to a client agent, an application routing table indicating that the service is unusable.

7. The method of claim 1 , wherein step (e) comprises the steps of:

(e-a) receiving, from a client, a request identifying the service; and

(e-b) forwarding, by the first appliance, the request to a second service operating on a second server.

8. The method of claim 1 , wherein step (e) comprises the steps of:

(e-a) receiving, from a client, a request identifying the service;

(e-b) identifying, by the first appliance, an application associated with the service;

(e-c) identifying, by the first appliance, a second service associated with the application; and

(e-d) forwarding, by the first appliance, the request to a second service operating on a second server.

9. The method of claim 1 , wherein step (e) comprises the steps of:

(e-a) receiving, from a client, a request identifying the service;

(e-b) identifying, by the first appliance, an application associated with the service;

(e-c) identifying, by the first appliance, a second service associated with the application, wherein the second service executes on a second server; and

(e-d) forwarding, by the first appliance, the request to a second service operating on a second server.

10. A computer implemented system for determining service availability using a plurality of weighted monitoring agents:

a first network appliance, intermediary to one or more servers and a plurality of clients, which

establishes a plurality of agents that execute on the first network appliance, each agent of the plurality of agents established to monitor availability of a corresponding protocol of a service, each agent having an assigned weight, each agent of the plurality of agents monitoring the service executing on the one or more servers, responses from the service to requests of a protocol specific to each agent;

computes a sum of the assigned weights of the agents reporting the service as currently operational; and

determines the sum falls below a given threshold; and

transmits an indication that the service is unusable to a second appliance; wherein

the second network appliance changes a number of requests for the service from the plurality of clients to forward to the first network appliance based on the indication.

11. The system of claim 10 , wherein the first network appliance establishes a plurality of agents that execute on the first network appliance, the plurality of agents monitoring a service executing on the one or more servers, wherein at least one of the agents comprises an interpreted script.

12. The system of claim 10 , wherein the first network appliance receives, from at least one of the plurality of agents, an indication that the service is operational; and computes a sum of the assigned weights of the agents reporting the service as currently operational.

13. The system of claim 10 , wherein the first network appliance receives, from at least one of the plurality of agents, an indication that the service is not responding; and computes a sum of the assigned weights of the agents reporting the service as currently operational.

14. The system of claim 10 , wherein the first network appliance receives, from at least one of the plurality of agents, an indication that the service response time is below a given threshold; and computes a sum of the assigned weights of the agents reporting the service as currently operational.

15. The system of claim 10 , wherein the first network appliance transmits, to a client agent, an application routing table indicating that the service is unusable.

16. The system of claim 10 , wherein the first network appliance receives, from a client, a request identifying the service; and forwards the request to a second service operating on a second server.

17. The system of claim 10 , wherein the first network appliance receives, from a client, a request identifying the service; identifies an application associated with the service; identifies a second service associated with the application; and forwards the request to a second service operating on a second server.

18. The system of claim 10 , wherein the first network appliance receives, from a client, a request identifying the service; identifies an application associated with the service; identifies a second service associated with the application, wherein the second service executes on a second server; and forwards the request to a second service operating on a second server.

19. A method for determining availability of a service using a plurality of weighted monitoring agents, the method comprising:

(a) establishing, by a device intermediary to a plurality of clients and a service executing on one or more servers, a plurality of agents to monitor the service, each agent assigned a weight, each agent monitoring availability of a different protocol of the service;

(b) monitoring, by each agent, responses from the service to requests comprising a protocol specific to each agent; and

(c) determining, by the device, a sum of weights assigned to each agent reporting the service as operational falls below a given threshold hold.

20. The method of claim 19 , further comprising monitoring, by a first agent of the plurality of agents, responses from the service to requests of a first protocol of the first agent and monitoring, by second first agent of the plurality of agents, responses from the service to requests of a second protocol of the second agent.

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 →
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 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 →
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 →
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 →
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 May 18, 2007
From: SCHEKOCHIKHIN, ARCADY; KAMATH, SANDEEP; SHETTY, ANIL; VERZUNOV, SERGEY
To: CITRIX SYSTEMS, INC.
Reel/Frame 019315/0026 →
Continuity (1)
Related Publication 20080043617A1 · Feb 21, 2008