Method and system for constructing adaptive and resilient software
DCFirst Claim
1. A method for executing a software system, the software system comprising:
- a set of storage locations, each storage location having a storage value and at least one associated attribute value;
a plurality of actions, each action having at least two of the plurality of storage locations associated with that action; and
a selection rule;
the method comprising;
determining a set of enabled actions based on the associated attribute values for the at least two storage locations associated with each action;
selecting an enabled action from the set of enabled actions based on the selection rule;
executing the selected enabled action; and
updating the storage value and the at least one associated attribute value for at least one of the storage locations associated with the selected enabled action based on a result of the execution of the selected enabled action.
8 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A dependency action system uses redundant sets of dynamically reconfigurable functional components to achieve robustness and fault tolerance, and to achieve self-optimization by learning and planning techniques that use time-stamps and or computation stamps as a key indicator. The dependency action system is based on functional components, or actions, which act on data values that are stored in stamped storage locations. Data is read and written to these storage locations, updating the stamps as appropriate. The execution of an action is controlled by the stamps of its enabling and disabling storage locations. The dependency action system specifies an action as enabled if new data has arrived in the enabling storage locations. Updating the stamp of the disabling storage locations disables the action. If an alternative action succeeds and produces a value, the other alternative actions become disabled. If one action fails to produce a value to a storage location, other alternative actions may still be enabled and can be executed. Thus, the dependency action system supports automatic recovery from failure of an individual action. The dependency action system accumulates statistical information about the behavior of the actions, which includes the probability that a particular disabling storage location will be updated by an action and the average cost of an action. The dependency action system uses this information to plan a sequence of action executions that most likely leads to the cheapest solution of a given task.
-
Citations
33 Claims
-
1. A method for executing a software system, the software system comprising:
-
a set of storage locations, each storage location having a storage value and at least one associated attribute value;
a plurality of actions, each action having at least two of the plurality of storage locations associated with that action; and
a selection rule;
the method comprising; determining a set of enabled actions based on the associated attribute values for the at least two storage locations associated with each action;
selecting an enabled action from the set of enabled actions based on the selection rule;
executing the selected enabled action; and
updating the storage value and the at least one associated attribute value for at least one of the storage locations associated with the selected enabled action based on a result of the execution of the selected enabled action. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
determining whether a change in updated cost and modification probabilities associated with an action meets predetermined criteria; and
adjusting the selection rule based on the updated cost and modification probabilities if the change meets the predetermined criteria.
-
-
11. The method of claim 1, wherein determining the set of enabled actions comprises determining, for each action and for each at least one enabling storage location and each at least one disabling storage location for that action, whether all such enabling storage locations are initialized and whether the at least one enabling storage location associated with that action has an attribute value greater than the attribute value of all disabling storage locations associated with that action.
-
12. The method of claim 11, wherein an action is enabled if all of its enabling storage locations are initialized and none of its disabling storage locations are initialized.
-
13. The method of claim 1, wherein the attribute value is a time-stamp having a value, and determining a set of enabled actions further comprises identifying an action as enabled according to the relative time-stamp values of designated enabling and disabling storage locations associated with the action.
-
14. The method of claim 1, wherein the attribute value is a computation-stamp having a value, and determining a set of enabled actions further comprises identifying an action as enabled according to the relative computation-stamp values of designated enabling and disabling storage locations associated with the action.
-
15. The method of claim 1, wherein the selection rule is a preference relation.
-
16. The method of claim 1, wherein the selection rule is usable to select one of a plurality of enabled actions.
-
17. A dependency action system, comprising:
-
a set of storage locations, each storage location having a storage value and at least one associated attribute value;
a plurality of actions;
wherein, for each action, at least two of the plurality of storage locations are associated with that action;
a selection rule; and
an enabled action selector that selects an enabled action from a set of enabled actions based on the selection rule;
wherein;
an action is enabled based on the at least one associated attribute value for the at least two storage locations associated with that action; and
the selected enabled action executes upon being selected and the storage value and the associated attribute value for at least one of the storage locations associated with the selected enabled action is updated based on a result of the execution of the selected enabled action. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26)
means for determining whether a change in updated cost and modification probabilities associated with an action meets predetermined criteria; and
means for determining a new selection rule based on the updated cost and modification probabilities if the change meets the predetermined criteria.
-
-
26. The dependency action system of claim 17, wherein the selection rule is usable to select one of a plurality of enabled actions.
-
27. A method for constructing a software system, comprising:
-
defining a plurality of actions;
defining a set of storage locations, each storage location having a storage value and at least one associated attribute value;
associating, for each action, at least two of the plurality of storage locations with that action; and
generating a selection rule. - View Dependent Claims (28, 29, 30, 31, 32, 33)
associating at least one of the at least two storage locations as an enabling storage location for that action; and
associating at least one of the at least two storage locations as a disabling storage location for that action.
-
-
31. The method of claim 27, wherein generating the selection rule comprises generating a preference relation.
-
32. The method of claim 31, wherein generating the preference relation comprises:
-
generating a directed graph from the plurality of actions and the associated storage locations;
determining, for each pair of the plurality of actions, which one of the pair of actions is preferred over the other of the pair of actions; and
recording the preference in the preference relation.
-
-
33. The method of claim 27, wherein generating the selection rule comprises generating a selection rule usable to select one of a number of enabled actions of the plurality of actions.
Specification