The service-oriented approach is becoming a more and more popular solution to integrate highly heterogeneous systems. Service-oriented architectures (SoAs) define a new flexible coordination paradigm for integrating components (services) in unstable and evolving contexts. In many cases, the dynamic nature of these systems precludes the a-priori identification of the compo-nents that define a system and requires that available functionality be discovered at run-time and its quality parameters be negotiated dynamically.
Available services must be composed to implement the desired process or meet the predefined goal. Non-functional requirements play an important role during the composition phase and im-pose that the execution environment be capable of dealing with them. The a-priori validation is not enough anymore. We must probe and monitoring these systems at runtime to assess their behavior and evaluate their quality. Monitoring adds special-purpose probes to detect anomalous conditions. This means that the system must able to understand if a given service does not an-swer (within the set time frame), does not match the contract set in the process definition, or responds with an error message. In many cases, these systems cannot be simply shut down, but they must be able to react to anomalies by means of suitable replanning or recovery actions that handle the deviations from the original plan, compensate anomalous situations, and continue the execution to meet the original goal.
This short course identifies and classifies the main faults of service-oriented systems and intro-duces available solutions to make service compositions become self-healing systems. The course starts by setting the context and presenting available technologies, and then introduces the dif-ferent solutions that can be used to compose services (dynamically), monitor their execution, and compensate anomalous situations. Finally, the course identifies some future directions for ap-plied research in the area.
Besides a general introduction to the problem, the course will provide participants with:
Introduction, overview, and motivations: This part
frames the tutorial, introduces the main problems, and highlights the
driving elements of proposed solutions. It also pinpoints the main
problems towards self-healing Web services, and proposes a road map for
Existing technologies: This part classifies the too many WS-* technologies and concentrates on the main ones (UDDI, WS-BPEL, WS-CDL, etc.) to make the audience understand what is already available, what is missing, and how current technologies solve the problems previously identi-fied.
Available solutions: This part builds on the previous section and explains how the main re-search proposals, methods, and tools provide solutions to the problems highlighted in Part I and currently not solved by existing technologies.
A complete approach: This part presents a complete and homogenous solution to the problem of deploying self-healing Web services.
Conclusions and future work: This last part summarizes the main elements presented during the tutorial, concludes the presentation with a list of still-to-be-solved problems, and highlights possible directions for future research.
This short course is open to all who want to learn more about service-oriented systems, Web services, and dynamic composition. Participants should have a basic background in computer science and be aware of what the Internet and Web technologies (e.g., XML and SOAP) are. No special previous knowledge is required.
Luciano Baresi is an associate professor at the Dipartimento di Elettronica e Informazione of Politecnico di Milano, where he got both his Laurea Degree and Ph.D. in Computer Science. Lu-ciano was also junior researcher at Cefriel (an ICT Center of Excellence For Research, Innovation, Education and industrial Labs partnership) and had research and teaching positions at Univer-sity of Oregon at Eugene (USA), University of Paderborn (Germany), and Tongji University (China, as part of the Sino-Italian cooperation PoliTong).
Luciano has published and presented more than 80 papers on the most important national and international journals and conferences, and served as PC member for several conferences. Lu-ciano was program chair of ICECCS'02 (International Conference on Engineering Complex Com-puter Systems), FASE’06 (ETAPS Conference on Fundamental Approaches on Software Engineer-ing), and ICWE’07 (International Conference on Web Engineering). He will also be program co-chair of ICSOC’09 (International Conference on Service-Oriented Computing).
Luciano has been principal investigator of different European and national projects. His research interests are in software engineering, and currently he is particularly interested in dynamic software systems, service-oriented applications, and software architectures. More detailed in-formation is available at http://home.dei.polimi.it/baresi.