Task sequence integration and execution mechanism with automated global condition checking and compensation
First Claim
1. In a computing system that includes one or more processors and a computer-readable media having thereon computer-executable instructions, a method for the computing system to verify that a sequence of tasks is more likely not to fail, the method performed by executing the computer-executable instructions by the one or more processors, the method comprising the following:
- an act of accessing one or more preconditions for a first task in the sequence of tasks;
an act of adding the one or more preconditions to a sequence preconditions list;
an act of accessing one or more postconditions for the first task;
an act of adding the one or more postconditions to a sequence postconditions list;
for one or more subsequent tasks in the sequence of tasks, an act of performing the following one subsequent task at a time;
an act of accessing one or more preconditions for the subsequent task in the sequence of tasks;
an act of determining whether or not any of the one or more preconditions for the subsequent task conflict with any conditions in the sequence preconditions list and the sequence post condition list;
if the one or more preconditions for the subsequent task conflict with any of the conditions, an act of failing the sequence of tasks;
an act of determining whether or not the one or more preconditions for the subsequent task are equivalent to any conditions in the sequence post condition list;
if the one or more preconditions for the subsequent task do not conflict with any of the conditions and are not equivalent to any of the conditions in sequence post condition list, an act of ensuring that the one or more preconditions are represented in the sequence preconditions list;
an act of accessing one or more postconditions for the subsequent tasks;
for each postcondition of the one or more postconditions for the subsequent tasks, an act of performing the following;
an act of determining if the postcondition conflicts with any of the postconditions in the sequence postconditions list;
if the postcondition conflicts with any of the postconditions in the sequence postconditions list, an act of removing the conflicting postcondition from the sequence postconditions list; and
if the postcondition does not conflict with any of the postconditions in the sequence postconditions list, an act of ensuring that the postcondition is represented in the sequence postconditions list.
2 Assignments
0 Petitions
Accused Products
Abstract
A method for verifying that a sequence of tasks is more likely to be successful prior to executing the sequence of tasks. First, a projection algorithm is performed to generate a precondition and postconditions list for the entire sequence. In order to execute the sequence of tasks, it is determined whether or not all of the preconditions in the preconditions list are satisfied. If they are not, then the sequence of task fails without performing any of the sequence of tasks. On the other hand, if the sequence preconditions are all satisfied, the sequence of tasks is executed one at a time. If any of the sequence of tasks fails, then the tasks that have been executed may be compensated to return to the initial state. Once execution completes assuming none of the task executions failed, the postconditions for the sequence are checked.
60 Citations
20 Claims
-
1. In a computing system that includes one or more processors and a computer-readable media having thereon computer-executable instructions, a method for the computing system to verify that a sequence of tasks is more likely not to fail, the method performed by executing the computer-executable instructions by the one or more processors, the method comprising the following:
-
an act of accessing one or more preconditions for a first task in the sequence of tasks;
an act of adding the one or more preconditions to a sequence preconditions list;
an act of accessing one or more postconditions for the first task;
an act of adding the one or more postconditions to a sequence postconditions list;
for one or more subsequent tasks in the sequence of tasks, an act of performing the following one subsequent task at a time;
an act of accessing one or more preconditions for the subsequent task in the sequence of tasks;
an act of determining whether or not any of the one or more preconditions for the subsequent task conflict with any conditions in the sequence preconditions list and the sequence post condition list;
if the one or more preconditions for the subsequent task conflict with any of the conditions, an act of failing the sequence of tasks;
an act of determining whether or not the one or more preconditions for the subsequent task are equivalent to any conditions in the sequence post condition list;
if the one or more preconditions for the subsequent task do not conflict with any of the conditions and are not equivalent to any of the conditions in sequence post condition list, an act of ensuring that the one or more preconditions are represented in the sequence preconditions list;
an act of accessing one or more postconditions for the subsequent tasks;
for each postcondition of the one or more postconditions for the subsequent tasks, an act of performing the following;
an act of determining if the postcondition conflicts with any of the postconditions in the sequence postconditions list;
if the postcondition conflicts with any of the postconditions in the sequence postconditions list, an act of removing the conflicting postcondition from the sequence postconditions list; and
if the postcondition does not conflict with any of the postconditions in the sequence postconditions list, an act of ensuring that the postcondition is represented in the sequence postconditions list. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer program product for use in a computing system that includes one or more processors, the computer program product comprising one or more computer-readable media having thereon computer-executable instructions that, when executed by the one or more processors, causes the computing system to perform a method, the method for the computing system to verify that a sequence of tasks is more likely not to fail, the method comprising the following:
-
an act of accessing one or more preconditions for a first task in the sequence of tasks;
an act of adding the one or more preconditions to a sequence preconditions list;
an act of accessing one or more postconditions for the first task;
an act of adding the one or more postconditions to a sequence postconditions list;
for one or more subsequent tasks in the sequence of tasks, an act of performing the following one subsequent task at a time;
an act of accessing one or more preconditions for the subsequent task in the sequence of tasks;
an act of determining whether or not any of the one or more preconditions for the subsequent task conflict with any conditions in the sequence preconditions list and the sequence post condition list;
if the one or more preconditions for the subsequent task conflict with any of the conditions, an act of failing the sequence of tasks;
an act of determining whether or not the one or more preconditions for the subsequent task are equivalent to any conditions in the sequence post condition list;
if the one or more preconditions for the subsequent task do not conflict with any of the conditions and are not equivalent to any of the conditions in sequence post condition list, an act of ensuring that the one or more preconditions are represented in the sequence preconditions list;
an act of accessing one or more postconditions for the subsequent tasks;
for each postcondition of the one or more postconditions for the subsequent tasks, an act of performing the following;
an act of determining if the postcondition conflicts with any of the postconditions in the sequence postconditions list;
if the postcondition conflicts with any of the postconditions in the sequence postconditions list, an act of ensuring that the postcondition is not represented in the sequence postconditions list; and
if the postcondition does not conflict with any of the postconditions in the sequence postconditions list, an act of ensuring that the postcondition is represented in the sequence postconditions list. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification