1. A method for controlling a computer-implemented application, the method comprising:
- determining a current state of a computer-implemented application;
- inducing said application into a predefined state associated with a target action of said application if said current state does not match said predefined state in accordance with predefined match criteria; and
- causing said target action to be performed.
2. A method according to claim 1 wherein said determining, inducing, and causing steps are performed responsive to detecting a request that said computer-implemented application perform said target action.
3. A method according to claim 1 wherein said inducing step comprises performing a predefined set of actions of said application whose performance is known to induce said predefined state.
4. A method according to claim 3 wherein said performing step comprises performing said set of actions in accordance with a predefined sequence.
5. A method according to claim 3 and further comprising:
- identifying at least one candidate subset of zero or more actions of said set of actions, wherein performing said candidate subset of actions produces a result that a) matches a known result of said set of actions in accordance with predefined match criteria, or b) results in a state that matches a predefined state associated with said target action according to predefined match criteria;
- selecting one of said candidate subsets that includes the fewest number of actions of said candidate subsets; and
- performing said selected candidate subset responsive to detecting a request that said computer-implemented application perform said target action.
6. A method according to claim 3 and further comprising:
- if a result of said target action matches in accordance with predefined match criteria either a) a known valid result for said target action or b) a result of performing a set of actions of said computer-implemented application associated with said target action followed by said target action, performing said target action responsive to detecting a request that said computer-implemented application perform said target action;
- otherwise,
- identifying at least one candidate subset of zero or more actions of said set of actions of said computer-implemented application, wherein performing said candidate subset of actions followed by said target action produces a result that matches in accordance with predefined match criteria either a) said known valid result for said target action or b) said result of performing said set of actions of said computer-implemented application associated with said target action followed by said target action,
- selecting one of said candidate subsets that includes the fewest number of actions of said candidate subsets, and
- performing said selected candidate subset responsive to detecting a request that said computer-implemented application perform said target action.
7. A system for controlling a computer-implemented application, the system comprising:
- a state detector configured to determine a current state of a computer-implemented application;
- a state inducer configured to induce said application into a predefined state associated with a target action of said application if said current state does not match said predefined state in accordance with predefined match criteria; and
- a target action manager configured to cause or allow said target action to be performed.
8. A system according to claim 7 wherein said state detector, state inducer, and target action manager are operative responsive to the detection of a request that said computer-implemented application perform said target action.
9. A system according to claim 7 wherein said state inducer is configured to cause said computer-implemented application to perform a predefined set of actions of said application whose performance is known to induce said predefined state.
10. A system according to claim 9 wherein said state inducer is configured to perform said set of actions in accordance with a predefined sequence.
11. A system according to claim 7 and further comprising:
- an action set optimizer configured to
- identify at least one candidate subset of zero or more actions of a set of actions of a computer-implemented application, said set associated with a target action of said application, wherein performing said candidate subset of actions produces a result that a) matches a known result of said set of actions in accordance with predefined match criteria, or b) results in a state that matches a predefined state associated with said target action according to predefined match criteria, and
- select one of said candidate subsets that includes the fewest number of actions of said candidate subsets, and
- wherein said state inducer is configured to cause said computer-implemented application to perform said selected candidate subset responsive to detecting a request that said computer-implemented application perform said target action.
12. A system according to claim 7 wherein said state inducer is operative, if a result of a target action matches in accordance with predefined match criteria either a) a known valid result for said target action or b) a result of performing a set of actions of said computer-implemented application associated with said target action followed by said target action, to cause said computer-implemented application to perform said target action responsive to the detection of a request that said computer-implemented application perform said target action, and further comprising:
- an action set optimizer configured to
- identify at least one candidate subset of zero or more actions of said set of actions of said computer-implemented application, wherein performing said candidate subset of actions followed by said target action produces a result that matches in accordance with predefined match criteria either a) said known valid result for said target action or b) said result of performing said set of actions of said computer-implemented application associated with said target action followed by said target action,
- select one of said candidate subsets that includes the fewest number of actions of said candidate subsets, and
- perform said selected candidate subset responsive to detecting a request that said computer-implemented application perform said target action,
- if a said result of said target action does not match said known valid result for said target action or said result of performing said set of actions.
13. A computer-implemented program embodied on a computer-readable medium, the computer program comprising:
- a code segment operative to determine a current state of a computer-implemented application;
- a code segment operative to induce said application into a predefined state associated with a target action of said application if said current state does not match said predefined state in accordance with predefined match criteria; and
- a code segment operative to cause said target action to be performed.
14. A computer program according to claim 13 wherein said code segments are operative responsive to detecting a request that said computer-implemented application perform said target action.
15. A computer program according to claim 13 wherein said code segment operative to induce is operative to perform a predefined set of actions of said application whose performance is known to induce said predefined state.
16. A computer program according to claim 15 wherein said code segment operative to induce is operative to perform said set of actions in accordance with a predefined sequence.
17. A computer program according to claim 15 and further comprising:
- a code segment operative to identify at least one candidate subset of zero or more actions of said set of actions, wherein performing said candidate subset of actions produces a result that a) matches a known result of said set of actions in accordance with predefined match criteria, or b) results in a state that matches a predefined state associated with said target action according to predefined match criteria;
- a code segment operative to select one of said candidate subsets that includes the fewest number of actions of said candidate subsets; and
- a code segment operative to perform said selected candidate subset responsive to detecting a request that said computer-implemented application perform said target action.
18. A computer program according to claim 15 and further comprising:
- a code segment operative, if a result of said target action matches in accordance with predefined match criteria either a) a known valid result for said target action or b) a result of performing a set of actions of said computer-implemented application associated with said target action followed by said target action, to perform said target action responsive to detecting a request that said computer-implemented application perform said target action;
- and otherwise operative to
- identify at least one candidate subset of zero or more actions of said set of actions of said computer-implemented application, wherein performing said candidate subset of actions followed by said target action produces a result that matches in accordance with predefined match criteria either a) said known valid result for said target action or b) said result of performing said set of actions of said computer-implemented application associated with said target action followed by said target action,
- select one of said candidate subsets that includes the fewest number of actions of said candidate subsets, and
- perform said selected candidate subset responsive to detecting a request that said computer-implemented application perform said target action.