IP Library Granted Patent US 11,513,929
Granted Patent B2
US 11,513,929 · App. 16/849,171 · Granted Nov 29, 2022

Systems and methods for automated uptime monitoring of internet-based software

Inventors: Paul Lin Roest (Salt Lake City, UT); Arunkumar Anandhan (Sandy, UT)
Assignee: NICE LTD.
G06F11/302G06F11/0766G06F11/3006G06F11/3075G06F11/3079
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,513,929
App. No.
16/849,171
Granted
Nov 29, 2022
Kind
B2
Abstract

A system and method for determining automated uptime of internet-based software may include one or more memories storing check suites, each check suite including an ordered sequence of a plurality of checks corresponding to an execution flow of an ordered sequence of functions of the internet-based software; and one or more processors configured to determine a total amount of down time for a monitoring period by: during each time interval of the monitoring period, performing each of the plurality of check suites on the internet-based software, and applying at least one weighing factor to results of performing each of the plurality of check suites.

Claims (125)

1. A system for automated uptime determination of internet-based software, the system comprising:

one or more memories storing a plurality of check suites, wherein each check suite of the plurality of check suites comprises an ordered sequence of a plurality of checks corresponding to an execution flow of an ordered sequence of functions of the internet-based software;

one or more processors configured to determine a total amount of downtime for a monitoring period by:

during each time interval of the monitoring period, performing each check suite of the plurality of check suites on the internet-based software, and

applying at least one weighing factor to results of performing each check suite of the plurality of check suites on the internet-based software, and

wherein the one or more memories store the at least one weighing factor, and wherein the at least one weighing factor comprises a first time based weighing factor corresponding to a first period of time, and a second time based weighing factor corresponding to a second period of time; and

the one or more processors are configured to generate a weighted downtime by, for each time interval of the monitoring period having a stored indication of downtime:

applying the first time based weighing factor to an amount of time of the time interval of the monitoring period if the time interval of the monitoring period occurred during the first period of time; and

applying the second time based weighing factor to an amount of time of the time interval of the monitoring period if the time interval of the monitoring period occurred during the second period of time.

2. The system of claim 1 , wherein:

the one or more processors determining the total amount of downtime for the monitoring period comprises, for each time interval of the monitoring period, store, in the one or more memories, an indication of downtime if any check suite of the plurality of check suites failed during the time interval of the monitoring period; and

the check suite of the plurality of check suites fails if at least one check of the check suite of the plurality of check suites on a function fails.

3. The system of claim 2 , wherein:

the one or more processors applying the at least one weighing factor to the results comprises, for each time interval of the monitoring period having a stored indication of downtime, generating a weighted downtime by applying the at least one weighing factor to an amount of time of the time interval of the monitoring period; and

the one or more processors determining the total amount of downtime for the monitoring period comprises summing each weighted downtime for the monitoring period.

4. The system of claim 2 , wherein:

the one or more processors are located in a plurality of geolocations, wherein the one or more processors comprise at least a first processor in a first geolocation and at least a second processor in a second geolocation which is different from the first geolocation, and wherein the one or more processors are configured to:

for each time interval of the monitoring period, at each geolocation of the plurality of geolocations, perform each check suite of the plurality of check suites on the internet-based software; and

store, in the one or more memories, an indication of downtime for a time interval only if the at least one check of the check suite of the plurality of check suites failed in each geolocation of the plurality of geolocations during the time interval of the monitoring period.

5. The system of claim 2 , wherein the one or more processors are configured to, for each check of the at least one check of the check suite of the plurality of check suites, stop performing the check suite of the plurality of check suites in response to a check of the check suite of the plurality of check suites on a function failing.

6. The system of claim 5 , wherein the one or more processors are configured to, for each time interval of the monitoring period having a stored indication of downtime, divide an amount of checks of the check suite of the plurality of check suites performed by a total amount of checks of the check suite of the plurality of check suites.

7. The system of claim 1 , wherein the first time based weighing factor is 0, and the second time based weighing factor is 1.

8. The system of claim 1 , wherein:

the one or more memories store the at least one weighing factor, wherein the at least one weighing factor comprises a criticality weight for each check suite of the plurality of check suites, and wherein at least two check suites of the plurality of check suites have a different criticality weight; and

the one or more processors are configured to generate a weighted downtime by, for each time interval of the monitoring period having a stored indication of downtime, applying the criticality weight corresponding to the check suite of the plurality of check suites that failed during that time interval of the monitoring period to an amount of time of the time interval of the monitoring period.

9. The system of claim 1 , wherein the one or more processors are configured to:

determine a total amount of uptime by subtracting the total amount of downtime from a total amount of time of the monitoring period; and

determine an availability ratio by dividing the total amount of uptime from the total amount of time of the monitoring period.

10. A method for automated uptime determination of internet-based software, the method comprising:

storing a plurality of check suites, wherein each check suite of the plurality of check suites comprises an ordered sequence of a plurality of checks corresponding to an execution flow of an ordered sequence of functions of the internet-based software;

determining a total amount of downtime for a monitoring period by:

during each time interval of the monitoring period, performing each check suite of the plurality of check suites on the internet-based software, and

applying at least one weighing factor to results of performing each check suite of the plurality of check suites on the internet-based software, and

wherein the at least one weighing factor comprises a first time based weighing factor corresponding to a first period of time, and a second time based weighing factor corresponding to a second period of time; and

generating a weighted downtime by, for each time interval of the monitoring period having a stored indication of downtime:

applying the first time based weighing factor to an amount of time of the time interval of the monitoring period if the time interval of the monitoring period occurred during the first period of time; and

applying the second time based weighing factor to an amount of time of the time interval of the monitoring period if the time interval of the monitoring period occurred during the second period of time.

11. The method of claim 10 , wherein:

determining the total amount of downtime for the monitoring period comprises, for each time interval of the monitoring period, store, an indication of downtime if any check suite of the plurality of check suites failed during the time interval of the monitoring period; and

the check suite of the plurality of check suites fails if at least one check of the check suite of the plurality of check suites on a function fails.

12. The method of claim 11 , wherein:

applying the at least one weighing factor to the results comprises, for each time interval of the monitoring period having a stored indication of downtime, generating a weighted downtime by applying the at least one weighing factor to an amount of time of the time interval of the monitoring period; and

determining the total amount of downtime for the monitoring period comprises summing each weighted downtime for the monitoring period.

13. The method of claim 11 , wherein:

one or more processors are located in a plurality of geolocations, wherein the one or more processors comprise at least a first processor in a first geolocation and at least a second processor in a second geolocation which is different from the first geolocation, and wherein the one or more processors are configured to:

for each time interval of the monitoring period, at each geolocation of the plurality of geolocations, perform each check suite of the plurality of check suites on the internet-based software; and

store, in one or more memories, an indication of downtime for a time interval only if the at least one check of the check suite of the plurality of check suites failed in each geolocation of the plurality of geolocations during the time interval of the monitoring period.

14. The method of claim 11 , further comprising, for each check of the at least one check of the check suite of the plurality of check suites, stopping performing the check suite of the plurality of check suites in response to a check of the check suite of the plurality of check suites on a function failing.

15. The method of claim 14 , further comprising, for each time interval of the monitoring period having a stored indication of downtime, dividing an amount of checks of the check suite of the plurality of check suites performed by a total amount of checks of the check suite of the plurality of check suites.

16. The method of claim 10 , further comprising:

storing the at least one weighing factor, wherein the at least one weighing factor comprises a criticality weight for each check suite of the plurality of check suites, and wherein at least two check suites of the plurality of check suites have a different criticality weight; and

generating a weighted downtime by, for each time interval of the monitoring period having a stored indication of downtime, applying the criticality weight corresponding to the check suite of the plurality of check suites that failed during that time interval of the monitoring period to an amount of time of the time interval of the monitoring period.

17. The method of claim 10 , further comprising:

determining a total amount of uptime by subtracting the total amount of downtime from a total amount of time of the monitoring period; and

determining an availability ratio by dividing the total amount of uptime from the total amount of time of the monitoring period.

18. A system for automated uptime determination of internet-based software, the system comprising:

one or more memories storing a plurality of check suites, wherein each check suite of the plurality of check suites comprises an ordered sequence of a plurality of checks corresponding to an execution flow of an ordered sequence of functions of the internet-based software;

one or more processors configured to determine a total amount of downtime for a monitoring period by:

during each time interval of the monitoring period, performing each check suite of the plurality of check suites on the internet-based software, and

applying at least one weighing factor to results of performing each check suite of the plurality of check suites on the internet-based software, and

wherein the one or more processors determining the total amount of downtime for the monitoring period comprises, for each time interval of the monitoring period, store, in the one or more memories, an indication of downtime if any check suite of the plurality of check suites failed during the time interval of the monitoring period; and

wherein the check suite of the plurality of check suites fails if at least one check of the check suite of the plurality of check suites on a function fails; and

wherein the one or more processors applying the at least one weighing factor to the results comprises, for each time interval of the monitoring period having a stored indication of downtime, generating a weighted downtime by applying the at least one weighing factor to an amount of time of the time interval of the monitoring period; and

wherein the one or more processors determining the total amount of downtime for the monitoring period comprises summing each weighted downtime for the monitoring period.

19. A system for automated uptime determination of internet-based software, the system comprising:

one or more memories storing a plurality of check suites, wherein each check suite of the plurality of check suites comprises an ordered sequence of a plurality of checks corresponding to an execution flow of an ordered sequence of functions of the internet-based software;

one or more processors configured to determine a total amount of downtime for a monitoring period by:

during each time interval of the monitoring period, performing each check suite of the plurality of check suites on the internet-based software, and

applying at least one weighing factor to results of performing each check suite of the plurality of check suites on the internet-based software, and

wherein the one or more memories store the at least one weighing factor, wherein the at least one weighing factor comprises a criticality weight for each check suite of the plurality of check suites, and wherein at least two check suites of the plurality of check suites have a different criticality weight; and

wherein the one or more processors are configured to generate a weighted downtime by, for each time interval of the monitoring period having a stored indication of downtime, applying the criticality weight corresponding to the check suite of the plurality of check suites that failed during that time interval of the monitoring period to an amount of time of the time interval of the monitoring period.

20. A system for automated uptime determination of internet-based software, the system comprising:

one or more memories storing a plurality of check suites, wherein each check suite of the plurality of check suites comprises an ordered sequence of a plurality of checks corresponding to an execution flow of an ordered sequence of functions of the internet-based software;

one or more processors configured to determine a total amount of downtime for a monitoring period by:

during each time interval of the monitoring period, performing each check suite of the plurality of check suites on the internet-based software, and

applying at least one weighing factor to results of performing each check suite of the plurality of check suites on the internet-based software, and

wherein the one or more processors determining the total amount of downtime for the monitoring period comprises, for each time interval of the monitoring period, store, in the one or more memories, an indication of downtime if any check suite of the plurality of check suites failed during the time interval of the monitoring period; and

wherein the check suite of the plurality of check suites fails if at least one check of the check suite of the plurality of check suites on a function fails; and

wherein the one or more processors are located in a plurality of geolocations, wherein the one or more processors comprise at least a first processor in a first geolocation and at least a second processor in a second geolocation which is different from the first geolocation, and wherein the one or more processors are configured to:

for each time interval of the monitoring period, at each geolocation of the plurality of geolocations, perform each check suite of the plurality of check suites on the internet-based software; and

store, in the one or more memories, an indication of downtime for a time interval only if the at least one check of the check suite of the plurality of check suites failed in each geolocation of the plurality of geolocations during the time interval of the monitoring period.

21. A system for automated uptime determination of internet-based software, the system comprising:

one or more memories storing a plurality of check suites, wherein each check suite of the plurality of check suites comprises an ordered sequence of a plurality of checks corresponding to an execution flow of an ordered sequence of functions of the internet-based software;

one or more processors configured to determine a total amount of downtime for a monitoring period by:

during each time interval of the monitoring period, performing each check suite of the plurality of check suites on the internet-based software, and

applying at least one weighing factor to results of performing each check suite of the plurality of check suites on the internet-based software, and

wherein the one or more processors determining the total amount of downtime for the monitoring period comprises, for each time interval of the monitoring period, store, in the one or more memories, an indication of downtime if any check suite of the plurality of check suites failed during the time interval of the monitoring period; and

wherein the check suite of the plurality of check suites fails if at least one check of the check suite of the plurality of check suites on a function fails; and

wherein the one or more processors are configured to, for each check of the at least one check of the check suite of the plurality of check suites, stop performing the check suite of the plurality of check suites in response to a check of the check suite of the plurality of check suites on a function failing; and

wherein the one or more processors are configured to, for each time interval of the monitoring period having a stored indication of downtime, divide an amount of checks of the check suite of the plurality of check suites performed by a total amount of checks of the check suite of the plurality of check suites.

22. A method for automated uptime determination of internet-based software, the method comprising:

storing a plurality of check suites, wherein each check suite of the plurality of check suites comprises an ordered sequence of a plurality of checks corresponding to an execution flow of an ordered sequence of functions of the internet-based software;

determining a total amount of downtime for a monitoring period by:

during each time interval of the monitoring period, performing each check suite of the plurality of check suites on the internet-based software, and

applying at least one weighing factor to results of performing each check suite of the plurality of check suites on the internet-based software, and

wherein determining the total amount of downtime for the monitoring period comprises, for each time interval of the monitoring period, store, an indication of downtime if any check suite of the plurality of check suites failed during the time interval of the monitoring period; and

wherein the check suite of the plurality of check suites fails if at least one check of the check suite of the plurality of check suites on a function fails; and

wherein applying the at least one weighing factor to the results comprises, for each time interval of the monitoring period having a stored indication of downtime, generating a weighted downtime by applying the at least one weighing factor to an amount of time of the time interval of the monitoring period; and

wherein determining the total amount of downtime for the monitoring period comprises summing each weighted downtime for the monitoring period.

23. A method for automated uptime determination of internet-based software, the method comprising:

storing a plurality of check suites, wherein each check suite of the plurality of check suites comprises an ordered sequence of a plurality of checks corresponding to an execution flow of an ordered sequence of functions of the internet-based software;

determining a total amount of downtime for a monitoring period by:

during each time interval of the monitoring period, performing each check suite of the plurality of check suites on the internet-based software, and

applying at least one weighing factor to results of performing each check suite of the plurality of check suites on the internet-based software, and

storing the at least one weighing factor, wherein the at least one weighing factor comprises a criticality weight for each check suite of the plurality of check suites, and wherein at least two check suites of the plurality of check suites have a different criticality weight; and

generating a weighted downtime by, for each time interval of the monitoring period having a stored indication of downtime, applying the criticality weight corresponding to the check suite of the plurality of check suites that failed during that time interval of the monitoring period to an amount of time of the time interval of the monitoring period.

24. A method for automated uptime determination of internet-based software, the method comprising:

storing a plurality of check suites, wherein each check suite of the plurality of check suites comprises an ordered sequence of a plurality of checks corresponding to an execution flow of an ordered sequence of functions of the internet-based software;

determining a total amount of downtime for a monitoring period by:

during each time interval of the monitoring period, performing each check suite of the plurality of check suites on the internet-based software, and

applying at least one weighing factor to results of performing each check suite of the plurality of check suites on the internet-based software, and

wherein determining the total amount of downtime for the monitoring period comprises, for each time interval of the monitoring period, store, an indication of downtime if any check suite of the plurality of check suites failed during the time interval of the monitoring period; and

wherein the check suite of the plurality of check suites fails if at least one check of the check suite of the plurality of check suites on a function fails; and

wherein one or more processors are located in a plurality of geolocations, wherein the one or more processors comprise at least a first processor in a first geolocation and at least a second processor in a second geolocation which is different from the first geolocation, and wherein the one or more processors are configured to:

for each time interval of the monitoring period, at each geolocation of the plurality of geolocations, perform each check suite of the plurality of check suites on the internet-based software; and

store, in one or more memories, an indication of downtime for a time interval only if the at least one check of the check suite of the plurality of check suites failed in each geolocation of the plurality of geolocations during the time interval of the monitoring period.

25. A method for automated uptime determination of internet-based software, the method comprising:

storing a plurality of check suites, wherein each check suite of the plurality of check suites comprises an ordered sequence of a plurality of checks corresponding to an execution flow of an ordered sequence of functions of the internet-based software;

determining a total amount of downtime for a monitoring period by:

during each time interval of the monitoring period, performing each check suite of the plurality of check suites on the internet-based software, and

applying at least one weighing factor to results of performing each check suite of the plurality of check suites on the internet-based software, and

wherein determining the total amount of downtime for the monitoring period comprises, for each time interval of the monitoring period, store, an indication of downtime if any check suite of the plurality of check suites failed during the time interval of the monitoring period; and

wherein the check suite of the plurality of check suites fails if at least one check of the check suite of the plurality of check suites on a function fails; and

for each check of the at least one check of the check suite of the plurality of check suites, stopping performing the check suite of the plurality of check suites in response to a check of the check suite of the plurality of check suites on a function failing; and

for each time interval of the monitoring period having a stored indication of downtime, dividing an amount of checks of the check suite of the plurality of check suites performed by a total amount of checks of the check suite of the plurality of check suites.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2026
From: ROEST, PAUL LIN; ANANDHAN, ARUNKUMAR
To: INCONTACT, INC.
Reel/Frame 073920/0143 →
SECURITY INTEREST Recorded Feb 26, 2026
From: NICE LTD; NICE SYSTEMS INC.; NICE SYSTEMS TECHNOLOGIES INC.; INCONTACT, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 074986/0208 →
Continuity (2)
Provisional Application 62963802 · Jan 21, 2020
Related Publication 20210224173A1 · Jul 22, 2021