IP Library Granted Patent US 10,776,160
Granted Patent B2
US 10,776,160 · App. 15/856,184 · Granted Sep 15, 2020

Management of sequenced execution of service tasks in a multi-service system

Inventor: Kevin Kalajan (Arroyo Grande, CA)
Assignee: McGraw Hill LLC
G06F9/4881G06F9/466
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,776,160
App. No.
15/856,184
Granted
Sep 15, 2020
Kind
B2
Abstract

A method and system for optimizing the interaction and execution of multiple service tasks associated with a logical transaction. The multiple components or “legs” of the transaction consisting of tasks executable by a computing service or software as a service (SAAS) endpoint are identified. The system determines a strategy type or belief level associated with each of the service tasks included in a transaction. The belief level may be categorized as either “optimistic” or “pessimistic” based on one or more performance parameters (e.g., a probability of failure of a service and an expense associated with a failure of the service) derived from historical data associated with a particular transaction or service task. A sequence of execution for the multiple service tasks associated with the transaction is determined based at least in part on the belief level associated with each of the multiple service tasks. In one embodiment, one or more unordered service tasks classified as pessimistic are performed before one or more unordered service tasks classified as optimistic.

Claims (57)

1. A method to optimize execution of a plurality of service tasks associated with a transaction, the method comprising:

identifying the plurality of service tasks associated with the transaction requested by a customer system;

identifying:

a first set of ordered service tasks of the plurality of service tasks that have a dependent relationship with one or more other service tasks of the plurality of service tasks, and

a second set of unordered service tasks of the plurality of service tasks that are independent from other service tasks of the plurality of service tasks;

determining a sequence of serial execution of the first set of ordered service tasks;

executing the first set of ordered service tasks in the sequence;

determining a belief score for each of the second set of unordered service tasks, wherein the belief score represents at least one of a probability of failure of a service task or an expense associated with the failure of the service task;

identifying a first subset of the second set of unordered service tasks having a respective belief score greater than or equal to a threshold value;

identifying a second subset of the second set of unordered service tasks having a respective belief score less than the threshold value;

executing, in descending order of the respective belief score, the first subset of the second set of unordered service tasks; and

in response to completion of the execution of the first subset of the second set of unordered service tasks, executing, in parallel, the second subset of the second set of unordered service tasks.

2. The method of claim 1 , wherein execution of the first set of ordered service tasks, the first subset of the unordered service tasks, and the second subset of unordered service tasks results in execution of the transaction.

3. The method of claim 1 , further comprising identifying an error associated with a first service task of the plurality of service tasks.

4. The method of claim 3 , further comprising:

determining a type of the error associated with the first service task; and

determining a first belief score associated the first service task.

5. The method of claim 4 , further comprising determining a retry period of time associated with the first service task based at least in part on the type of error and the first belief score.

6. A system to optimize execution of a plurality of service tasks associated with a transaction, the system comprising:

a processing device; and

a memory to store computer-executable instructions that, if executed, cause the processing device to:

identify the plurality of service tasks associated with the transaction requested by a customer system;

identify:

a first set of ordered service tasks of the plurality of service tasks that have a dependent relationship with one or more other service tasks of the plurality of service tasks, and

a second set of unordered service tasks of the plurality of service tasks that are independent from other service tasks of the plurality of service tasks;

determine a sequence of serial execution of the first set of ordered service tasks;

execute the first set of ordered service tasks in the sequence;

determine a belief score for each of the second set of unordered service tasks wherein the belief score represents at least one of a probability of failure of a service task or an expense associated with the failure of the service task;

identify a first subset of the second set of unordered service tasks having a respective belief score greater than or equal to a threshold value;

identify a second subset of the second set of unordered service tasks having a respective belief score less than the threshold value;

execute, in descending order of the respective belief score, the first subset of the second set of unordered service tasks; and

in response to completion of the execution of the first subset of the second set of unordered service tasks, execute, in parallel, the second subset of the second set of unordered service tasks.

7. The system of claim 6 , wherein execution of the first set of ordered service tasks, the first subset of the unordered service tasks, and the second subset of unordered service tasks results in execution of the transaction.

8. The system of claim 6 , the processing device to identify an error associated with a first service task of the plurality of service tasks.

9. The system of claim 8 , the processing device to:

determine a type of the error associated with the first service task; and

determine a first belief score associated the first service task.

10. The system of claim 9 , the processing device to:

determining a retry period of time associated with the first service task based at least in part on the type of error and the first belief score.

11. A non-transitory computer-readable storage device storing computer-executable instructions to optimize execution of a plurality of service tasks associated with a transaction, the instructions, if executed by a processing device, cause the processing device to:

identify the plurality of service tasks associated with the transaction requested by a customer system;

identify:

a first set of ordered service tasks of the plurality of service tasks that have a dependent relationship with one or more other service tasks of the plurality of service tasks, and

a second set of unordered service tasks of the plurality of service tasks that are independent from other service tasks of the plurality of service tasks;

determine a sequence of serial execution of the first set of ordered service tasks;

execute the first set of ordered service tasks in the sequence;

determine a belief score for each of the second set of unordered service tasks wherein the belief score represents at least one of a probability of failure of a service task or an expense associated with the failure of the service task;

identify a first subset of the second set of unordered service tasks having a respective belief score greater than or equal to a threshold value;

identify a second subset of the second set of unordered service tasks having a respective belief score less than the threshold value;

execute, in descending order of the respective belief score, the first subset of the second set of unordered service tasks; and

in response to completion of the execution of the first subset of the second set of unordered service tasks, execute, in parallel, the second subset of the second set of unordered service tasks.

12. The non-transitory computer-readable storage device of claim 11 , wherein execution of the first set of ordered service tasks, the first subset of the unordered service tasks, and the second subset of unordered service tasks results in execution of the transaction.

13. The non-transitory computer-readable storage device of claim 11 , the processing device to identify an error associated with a first service task of the plurality of service tasks.

14. The non-transitory computer-readable storage device of claim 13 , the processing device to:

determine a type of the error associated with the first service task;

determine a first belief score associated the first service task; and

determine a retry period of time associated with the first service task based at least in part on the type of error and the first belief score.

Assignments (12)
SECURITY INTEREST (NOTES) Recorded Aug 9, 2024
From: ACHIEVE3000, INC.; ACTIVELY LEARN INC.; MCGRAW HILL LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 068522/0031 →
RELEASE OF PATENT SECURITY AGREEMENT (FIRST LIEN) Recorded Aug 23, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS AGENT
To: MCGRAW HILL LLC
Reel/Frame 057263/0664 →
RELEASE OF SECURITY INTEREST Recorded Aug 3, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: MCGRAW HILL LLC
Reel/Frame 057070/0283 →
SECURITY AGREEMENT Recorded Jul 30, 2021
From: MCGRAW HILL LLC
To: BANK OF AMERICA, N.A.
Reel/Frame 057041/0925 →
ABL SECURITY AGREEMENT Recorded Jul 30, 2021
From: MCGRAW HILL LLC
To: BANK OF AMERICA, N.A.
Reel/Frame 057041/0934 →
NOTES SECURITY AGREEMENT Recorded Jul 30, 2021
From: MCGRAW HILL LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 057041/0977 →
SECURITY INTEREST Recorded Jan 22, 2021
From: MCGRAW HILL LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 055000/0643 →
MERGER Recorded Feb 7, 2020
From: MCGRAW-HILL GLOBAL EDUCATION HOLDINGS, LLC
To: MCGRAW HILL LLC
Reel/Frame 051754/0790 →
CHANGE OF ASSIGNEE ADDRESS Recorded Jan 28, 2020
From: MCGRAW HILL LLC
To: MCGRAW HILL LLC
Reel/Frame 051723/0187 →
MERGER AND CHANGE OF NAME Recorded Jan 22, 2020
From: MCGRAW-HILL GLOBAL EDUCATION HOLDINGS, LLC; MCGRAW-HILL SCHOOL EDUCATION LLC
To: MCGRAW HILL LLC
Reel/Frame 051586/0647 →
SECURITY INTEREST Recorded Jan 2, 2020
From: MCGRAW HILL LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 051402/0282 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2018
From: KALAJAN, KEVIN
To: MCGRAW-HILL GLOBAL EDUCATION HOLDINGS, LLC
Reel/Frame 044584/0884 →
Continuity (1)
Related Publication 20190205162A1 · Jul 4, 2019
Cited By (1)
US 12,307,920