SASeS: A Framework for the Development of Service-based Self-adaptive Applications

Self-adaptive Systems (SaS) enable the structural or behavioral adaptation at runtime in response to context changes or user's new needs without interruption in their execution. In service-based SaS, the adaptation activity can be considered as a complex activity, since such systems need to modify or replace a service (e.g., due to an unforeseen situation or failure) at runtime without perception of their stakeholders (i.e., client of these services). Based on this scenario, a framework called SASeS (Self-Adaptive Service-based System) was design. In short, this framework was developed based on web services standards and design patterns that support common tasks in the development of such systems. Moreover, SASeS provides a mechanism for the management of the control loop (or feedback loop), which enables constantly self-evaluating (i.e., monitor, analyze, plan, and execute) the adaptation activity. In order to show the applicability of our framework, two case studies are reported in this paper.

[1]  Ying Shi,et al.  A Reflective Information Model for Reusing Software Architecture , 2008, 2008 ISECS International Colloquium on Computing, Communication, Control, and Management.

[2]  Steve Vinoski A Time for Reflection , 2005, IEEE Internet Comput..

[3]  Paola Inverardi,et al.  Model checking requirements at run-time in adaptive systems , 2011, ASAS '11.

[4]  Mary Shaw,et al.  Software Engineering for Self-Adaptive Systems: A Research Roadmap , 2009, Software Engineering for Self-Adaptive Systems.

[5]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[6]  Xu Hongzhen,et al.  Specification and verification of dynamic evolution of software architectures , 2010, J. Syst. Archit..

[7]  Frank José Affonso,et al.  A Proposal of Reference Architecture for the Reconfigurable Software Development , 2012, SEKE.

[8]  Ian Gorton,et al.  An extensible, lightweight architecture for adaptive J2EE applications , 2006, SEM '06.

[9]  Radu Calinescu,et al.  Developing self-verifying service-based systems , 2013, 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[10]  Jesper Andersson,et al.  Reflecting on self-adaptive software systems , 2009, 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems.

[11]  Frank José Affonso,et al.  A Reference Architecture Based on Reflection for Self-Adaptive Software , 2013, 2013 VII Brazilian Symposium on Software Components, Architectures and Reuse.

[12]  Carlo Ghezzi,et al.  A journey to highly dynamic, self-adaptive service-based applications , 2008, Automated Software Engineering.

[13]  Mohammed Abufouda,et al.  Quality-aware Approach for Engineering Self-adaptive Software Systems , 2014, FOCS 2014.

[14]  Ladan Tahvildari,et al.  StarMX: A framework for developing self-managing Java-based systems , 2009, 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems.

[15]  Krzysztof Zielinski,et al.  Rule Engine Based Lightweight Framework for Adaptive and Autonomic Computing , 2008, ICCS.

[16]  Carlo Ghezzi,et al.  Self-adaptive software needs quantitative verification at runtime , 2012, CACM.

[17]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.

[18]  Elisa Yumi Nakagawa,et al.  A Framework Based on Learning Techniques for Decision-making in Self-adaptive Software , 2015, SEKE.

[19]  Bradley R. Schmerl,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

[20]  Jeff Magee,et al.  Self-Managed Systems: an Architectural Challenge , 2007, Future of Software Engineering (FOSE '07).

[21]  Anna Perini Self-adaptive service based applications: Challenges in requirements engineering , 2012, 2012 Sixth International Conference on Research Challenges in Information Science (RCIS).

[22]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[23]  Hausi A. Müller,et al.  Autonomic Computing Now You See It, Now You Don't , 2008, ISSSE.

[24]  Elisa Yumi Nakagawa,et al.  A Reference Model as Automated Process for Software Adaptation at Runtime , 2015, IEEE Latin America Transactions.

[25]  Brice Morin,et al.  Models@ Run.time to Support Dynamic Adaptation , 2009, Computer.

[26]  Pattie Maes,et al.  Concepts and experiments in computational reflection , 1987, OOPSLA '87.

[27]  Andrew Hinton,et al.  PRISM: A Tool for Automatic Verification of Probabilistic Systems , 2006, TACAS.

[28]  Javier Cámara,et al.  Behavioural self-adaptation of services in ubiquitous computing environments , 2009, 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems.

[29]  Sam Malek,et al.  FUSION: a framework for engineering self-tuning self-adaptive software systems , 2010, FSE '10.

[30]  Paola Inverardi,et al.  A declarative framework for adaptable applications in heterogeneous environments , 2004, SAC '04.