Next: Problem determination
Up: Polus Framework Previous: Conjunction of
specifications and
The reasoning engine is triggered whenever any of the assigned goals are violated. The objective of the reasoning engine is to select the action(s) that need to be invoked at run-time, in response to the violation of goals. The operation of the reasoning engine is a three step process:
Problem determination: Analyzes the components in the invocation path; determines components that are saturated or the components that need to be tuned for the current state.
Base-level reasoning: Searches the action objects, based on the queries generated by the problem determination module (can be visualized as an object interpreter).
Meta-level reasoning: The meta-level is responsible for higher-order optimizations such as deciding between multiple candidate actions based on invocation cost, error functions, side-effects and so on.
In the SAN file system example, if the prescribed throughput goal of 100 MBps is being violated, the steps that are taken by the reasoning engine to rectify the problem are described in the following subsections.