A key challenge posed by the Next Generation Internet landscape, is that modern service- based systems need to cope with open and continuously evolving environments and to operate under dynamic circumstances. Dynamism is given by changes in the operational context, changes in the availability of resources and variations in their behavior, changes in users goals, etc. Indeed, dynamically discover, select and compose the appropriate services in open and expanding domains is a challenging task. Many approaches for self-adaptive systems have been proposed in the last decades. Unfortunately, although they support run-time adaptation, current approaches tend to foresee the system adaptation requirements and their related solutions at design-time. This makes them inadequate for the application in open environments, where components constantly join/leave the system, since they require for continuous involvement of IT and domain experts for the systems re-configuration. In these settings, a new way of approaching self-adaptation of systems is needed.
In this tutorial, we present a novel design for adaptation framework for modeling and executing modern service- based systems. The idea of the framework consists in defining the complete life-cycle for the continuous develop- ment and deployment of service-based systems, by facilitating (i) the continuous integration of new services that can easily join the systems, and (ii) the systems operation under dynamic circumstances, to face the openness and dynamicity of the environment.
Furthermore, Collective Adaptive Systems (CAS) are spreading in new emerging contexts, such as the shared economy trend. Modern systems are expected to handle a multitude of heterogeneous components that cooperate to accomplish collective tasks. To this aim, we also present how the presented design for adaptation framework has been extended to deal with CAS, their design and their execution via collective adaptation.
During the tutorial we will use concrete examples from both Internet of Services and Internet of Things do- mains, to show how the framework and its components are used. Prototypes will be shown to demonstrate real applications of the approach. We conclude the tutorial by discussing a number of open points and challenges out- lining future extensions of the framework in combination with future research in engineering self-adaptive systems.