Methods, systems and computer program products for coordination of operations for interrelated tasks
First Claim
1. A method for coordination of operations for a plurality of interrelated tasks comprising the steps of:
- setting a desired state object to a desired state;
requesting an update of an actual state object to the desired state; and
updating the actual state object responsive to the request to update the actual state object;
wherein the step of setting the desired state object and the step of requesting an update of the actual state object are performed by a first one of the plurality of interrelated tasks having write access to the desired state object and not having write access to the actual state object; and
wherein the step of updating the actual state object is performed by a second one of the plurality of interrelated tasks having write access to the actual state object and not having write access to the desired state object.
20 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems and computer program products are provided which coordinate operations for a plurality of interrelated tasks executing on a computer using actual state objects and desired state objects. For each event including coordination between two of the plurality of interrelated tasks, a first (or initiator) task initiates operations by a second (or executor) task to carry out a desired sequence of operations. The initiator task sets a desired state object to the desired state and submits a request to the executor task. The executor task, in turn, operates on the request in order to update an actual state object to the desired state stored in the desired state object by the initiator task. Write control over the desired state object is therefore granted to the initiator task while write control over the actual state object is granted to the executor task. A transitional state may be provided for the actual state object during the time period while the executor task is carrying out the operations necessary to change from the actual state to the desired state. Different restrictions on operations related to the associated object may be provided while the actual state object is in the transitional state. Also provided are systems, methods and computer program products for monitoring a task executing on a computer which utilizes a work in process queue and a work pending queue and restarting the task if it is not executing properly.
45 Citations
17 Claims
-
1. A method for coordination of operations for a plurality of interrelated tasks comprising the steps of:
-
setting a desired state object to a desired state;
requesting an update of an actual state object to the desired state; and
updating the actual state object responsive to the request to update the actual state object;
wherein the step of setting the desired state object and the step of requesting an update of the actual state object are performed by a first one of the plurality of interrelated tasks having write access to the desired state object and not having write access to the actual state object; and
wherein the step of updating the actual state object is performed by a second one of the plurality of interrelated tasks having write access to the actual state object and not having write access to the desired state object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
receiving the request to update the actual state object to the desired state;
reading the version number of the actual state object and the version number of the desired state object; and
setting the actual state object to the desired state if the version number of the actual state object is different from the version number of the desired state object.
-
-
3. A method according to claim 2 wherein the step of setting the actual state object further comprises the step of incrementing the version number of the actual state object to the version number of the desired state object.
-
4. A method according to claim 3 wherein the step of setting the actual state object comprises the step of setting the actual state object to the desired state if the version number of the actual state object is less than the version number of the desired state object.
-
5. A method according to claim 1 wherein the step of updating the actual state object comprises the steps of:
-
receiving the request to update the actual state object to the desired state;
reading the actual state object and the desired state object; and
setting the actual state object to the desired state.
-
-
6. A method according to claim 5 wherein the step of setting the actual state object comprises the steps of:
-
setting the actual state object to a transitional state;
thenperforming operations associated with changing from the actual state to the desired state; and
thensetting the actual state object to the desired state.
-
-
7. A method according to claim 6 wherein the first and second ones of the plurality of interrelated tasks are executing on a data processing system and wherein the step of performing operations comprises the steps of:
-
communicating a request to change state to the desired state to a second device remote from the data processing system; and
receiving at least one of an error indication and a confirmation of state change from the second device; and
wherein the step of setting the actual state to the desired state comprises the step of setting the actual state to the desired state if a confirmation of state change is received from the remote device.
-
-
8. A method according to claim 1 wherein the step of requesting an update of an actual state object to the desired state comprises the step of placing a request in a work pending queue associated with the second one of the plurality of interrelated tasks.
-
9. A system for coordination of operations for a plurality of interrelated tasks comprising:
-
a desired state object;
an actual state object;
a first one of the plurality of interrelated tasks having write access to the desired state object and not having write access to the actual state object, the first one of the plurality of interrelated tasks comprising;
means for setting the desired state object to a desired state; and
means for requesting an update of the actual state object to the desired state; and
a second one of the plurality of interrelated tasks having write access to the actual state object and not having write access to the desired state object, the second one of the plurality of interrelated tasks comprising;
means for updating the actual state object responsive to the request to update the actual state object. - View Dependent Claims (10)
-
-
11. A computer program product for coordination of operations for a plurality of interrelated tasks using a desired state object and an actual state object, comprising:
-
a computer-readable storage medium having computer-readable program code means embodied in said medium, said computer-readable program code means comprising;
computer-readable program code means having write access to the desired state object and not having write access to the actual state object for setting the desired state object to a desired state and for requesting an update of the actual state object to the desired state; and
computer-readable program code means, having write access to the actual state object and not having write access to the desired state object, for updating the actual state object responsive to the computer-readable code means for setting the desired state object to a desired state and for requesting an update.
-
-
12. A method for coordination of operations for a plurality of interrelated tasks operating on a shared resource comprising:
-
the following performed by a first one of the plurality of interrelated tasks;
setting a desired state object associated with the shared resource to a desired state of the shared resource to request a change in state of the shared resource; and
the following performed by a second one of the plurality of interrelated tasks;
reading the desired state object;
determining if a current state of the shared resource is different from the desired state;
initiating performing operations associated with changing the current state of the shared resource to the desired state; and
setting an actual state object associated with the shared resource to the desired state. - View Dependent Claims (13, 14, 15)
setting the actual state object to a transitional state associated with an update from the current state to one of a plurality of possible desired states designated by the desired state object, the transitional state being selected from a plurality of possible transitional states associated with different updates; and
setting the actual state object to the desired state upon receiving confirmation of a state change of the shared resource to the desired state.
-
-
14. A method according to claim 13 wherein the step of initiating performing operations comprises the steps of:
-
communicating a request to change state to the desired state to a remote device; and
receiving at least one of an error indication and a confirmation of state change from the remote device; and
wherein the step of setting the actual state object to the desired state upon receiving confirmation of a state change of the shared resource comprises the step of setting the actual state object to the desired state if a confirmation of state change is received from the remote device.
-
-
15. A method according to claim 13 wherein the desired state object and the actual state object each have an associated version number and wherein the step of setting the actual state object comprises:
-
reading the version number of the actual state object and the version number of the desired state object; and
setting the actual state object to the desired state if the version number of the actual state object is different from the version number of the desired state object.
-
-
16. A system for coordination of operations for a plurality of interrelated tasks operating on a shared resource comprising:
-
a first one of the plurality of interrelated tasks comprising means for setting a desired state object associated with the shared resource to a desired state of the shared resource to request a change in state of the shared resource; and
a second one of the plurality of interrelated tasks comprising;
means for reading the desired state object;
means for determining if a current state of the shared resource is different from the desired state;
means for initiating performing operations associated with changing the current state of the shared resource to the desired state; and
means for setting an actual state object associated with the shared resource to the desired state.
-
-
17. A computer program product for coordination of operations for a plurality of interrelated tasks operating on a shared resource, the plurality of interrelated tasks executing on a computer, comprising:
-
a computer-readable storage medium having computer-readable program code means embodied in said medium, said computer-readable program code means comprising;
computer-readable program code means of a first one of the plurality of interrelated tasks that sets a desired state object associated with the shared resource to a desired state of the device to request a change in state of the shared resource; and
computer-readable program code means of a second one of the plurality of interrelated tasks that;
reads the desired state object;
determines if a current state of the shared resource is different from the desired state;
initiates performing operations associated with changing the current state of the shared resource to the desired state; and
sets an actual state object associated with the shared resource to the desired state.
-
Specification