A Declarative Approach to Enable Flexible and Dynamic Service Compositions

Leandro Sales Pinto
Politecnico di Milano, Italy

Service Orchestration, Specification language exception-safe and self-adaptative orchestrations, while currently available orchestration engines do not support the desired dynamism. This is a challenge that needs to be addressed and it is our belief, and starting point of this thesis, that it is intrinsically related with the imperative programming style adopted by almost all available languages and with the approach adopted by engines, which limit themselves to executing orchestrations step-by-step. This obliges service architect to precisely specify every detail in the flow among services, explicitly coding all the different routes to go from the beginning to the end of the orchestration, forecasting all possible faults and exceptions that may happen at run-time. This results in a code which is hard to write and maintain, not to mention the impossibility of changing the expected flow at run-time and the limited support to reusing part of pre-defined orchestrations. This thesis proposes a radically different approach, which adopts a declarative, goal-oriented language to model service orchestrations, which is easier to use and results in more flexible compositions. At runtime, an ad-hoc engine interprets those models, using planning techniques to find a path to accomplish the orchestration goals, while providing powerful exception-handling mechanisms to cope with (un)expected situations, either re-building failed plans or allowing users to modify orchestration models at run-time, thus supporting the construction of highly-dynamic self-adaptative systems.