We are assisting to a paradigmatic shift in developing Web applications since their components are often distributed and deployed as services among different organizations. Their logic is based on a set of actions that can be linked together by exploiting higher level languages more suitable to address the scale of the Web. On this multi-organization scale, applications can be influenced by different context events generated by the environment where they run. Handling these events requires run-time adaptations of the application's behaviour to react, properly and quickly, to changes. The paper addresses these needs by proposing a programming paradigm based on ''autonomic service compositions,'' ie, compositions that are able to self-change their structure, according to a specific life cycle, to allow for the continuation of execution, even if unexpected events arise. The approach exploits autonomic computing and reasoning for taking decision on information collected during processes execution. Autonomic actions on composition structures are performed using Event Condition Action rules and a set of meta-operations. The approach is detailed, analysed, and discussed with reference to some examples derived from a real-world application.
KEYWORDSautonomic computing, self-management, service composition, software adaptation
INTRODUCTIONWe are assisting to a significant change in Web applications development. Up to now, they have been often composed of a business logic hosted by a robust application server (in many cases replicated for ensuring fault-tolerance and scalability) exposing an HTTP interface for enabling remote access. Today, the diffusion of Web services is promoting a large-scale componentization of Web applications through services hosted by several containerized application servers that can belong to different administration domains.These multi-organization Web applications represent today an ideal IT solution for implementing virtual enterprises or complex valued added services, aiming at taking advantage of opportunities in a rapidly changing market, through B2B interactions with different organizations. In this context, the probability of experimenting with an exceptional behaviour is very high due to the high number of software components involved, which are not under the control of a unique organization. Moreover, business constraints introduce a new level of exception handling complexity derived by unsatisfactory behaviours of the services involved in Web processes.Programming the complex behaviour of a multi-organization Web application is a difficult conceptual activity. The heterogeneity of the execution environment calls for the adoption of a high-level language that is able to drive the behaviour of each component node of a large-scale application, which is based on distributed resources, human or automated, for performing the programmed tasks 1 whereas unexpected events introduce the need of adapting their control structure to satisfy the requirements emerging in the execution context. 2 Thes...