SASSY: Self Architecting Software Systems
Project sponsored by the National Science Foundation under grant CCF-0820060
SASSY is an infrastructure that automatically generates a number of candidate software architecture and selects the one that best serves given QoS goals. This is done by leveraging knowledge of architectural patterns and their promoted QoS properties. For that, SASSY takes as inputs models of computing activities and QoS goals specified by domain experts.
Personnel | Summary | Publications
Faculty: Dr. Daniel A. Menasce (PI), Dr. Hassan Gomaa (co-PI), Dr. Sam Malek (co-PI), and Dr. Joao P. Sousa (co-PI)
Students: Naeem Esfahani, John Ewing, Mohamad Abu-Matar, Zeynep Zengin, Ehsan Kouroshfar, and Nariman Mirzaei
Former Senior Staff: Dr. Minseong Kim (post-doc), Dr. Koji Hashimoto
The design of large-scale distributed software systems presents many challenges, including providing the means for the software to adapt to changes in the environment (e.g., workload changes and failures) and to evolve as a consequence of changes in the requirements. SASSY is a model-driven framework for run-time self-architecting and rearchitecting of distributed software systems. SASSY provides a uniform approach to automated composition, adaptation, and evolution of software systems. Our framework is inspired by the properties of one of the largest, most complex, highly dependable, and resilient systems ever designed: the Internet. Four important characteristics of the Internet design are responsible for its highly adaptive run-time behavior: i) autonomous organization as a collection of IP networks, ii) autonomic behavior including self-managing, self-configuring, self-optimizing, and self-healing properties afforded, for example, by its routing protocols and TCP's congestion avoidance mechanism, c) distributed control as evidenced by its distributed routing decisions, and d) distributed run-time optimization through the implementation of distributed versions of centralized optimization algorithms, such as the shortest path algorithm for optimal routing.
These characteristics of the Internet are not present in today's large-scale real world software systems. SASSY represents a paradigm shift in architecting software systems that exhibit characteristics similar to the Internet. It provides mechanisms for self-architecting and rearchitecting that determine the near-optimal architecture for satisfying functional and Quality of Service (QoS) requirements. The quality of a given architecture is expressed by a utility function provided by end-users and represents one or more desirable system objectives.
Software adaptation refers to software systems that change their behavior during execution. Self-adaptive software systems monitor the environment and adapt their behavior in response to changes in the environment. Adaptation of distributed component-based software systems can be classified as: a) Behavioral adaptation: the system dynamically changes its behavior without changing its structure; b) Structural adaptation: e.g., a software component is replaced with another component that has the same interface; and c) Architectural adaptation: the software system's structure is substantially modified at run-time. Model-based adaptation can be used in each of the above forms of dynamic adaptation, although the adaptation challenge is likely to grow progressively from behavioral through architectural adaptation. SASSY deals with all three aspects of adaptation. In general, the goal of self-architecting and rearchitecting directly from requirements is too ambitious and unrealistic. SASSY addresses a more constrained but yet challenging and increasingly important class of software systems: those built out of service-oriented architectures (SOA). The SASSY framework deals with the initial composition of the software system, evolution of the requirements, and adaptation to operating conditions in a uniform way. To address software evolution, the new requirements, in the form of modified activity models, are used to derive a new architecture in an automatic manner. The figure below illustrates the SASSY framework.
SASSY: A Framework for Self-Architecting Service-Oriented Systems, D.A. Menasce, H. Gomaa, S. Malek, and J.P. Sousa, IEEE Software, Vol. 28, No. 6, Nov./Dec. 2011.
Self-Architecting Software SYstems (SASSY) From QoS-Annotated Models, S. Malek, N. Esfahani, D.A. Menasce, J.P. Sousa, and H. Gomaa, Proc. of the ICSE 2009 workshop on Principles of Engineering Service Oriented Systems, Vancouver, Canada, May 18-19, 2009.
A Modeling Language for Activity-Oriented Composition of Service-Oriented Software Systems, N. Esfahani, S. Malek, J.P. Sousa, H. Gomaa, and D.A. Menasce, ACM/IEEE 12th International Conference on Model Driven Engineering Languages and Systems, Denver, CO, October 2-4, 2009.
A Framework for Utility-Based Service Oriented Design in SASSY, D.A. Menasce, J. Ewing, H. Gomaa, S. Malek, and J.P. Sousa, First Joint WOSP/SIPEW International Conference on Performance Engineering (WOSP/SIPEW 2010), San Jose, California, USA January 28-30, 2010.
Software Adaptation Patterns for Service Oriented Architectures, H. Gomaa, K. Hashimoto, M. Kim, S. Malek, and D.A. Menasce, Proc. 25th ACM Symposium on Applied Computing, Dependable and Adaptive Distributed Systems, Sierre, Switzerland, March 22 - 26, 2010.
QoS Architectural Patterns for Self-Architecting Software Systems, D.A. Menasce, J.P. Sousa, S. Malek, and H. Gomaa, 7th IEEE Intnl. Conf. on Autonomic Computing and Communication, Washington, DC, June 7-11, 2010.
Utility-based Optimal Service Selection for Business Processes in Service Oriented Architectures, V. Dubey and D.A. Menasce, The Eight Intl. Conf. Web Services, IEEE Computer Society, Miami, FL, July 5-10, 2010.
Other Publications:
Utilizing Architectural Styles to Enhance the Adaptation Support of Middleware Platforms,
Naeem Esfahani and Sam Malek, J. Information and Software Technology, Vol. 54, No. 7, July 2012, pp. 786-801.
Dynamic Self-Adaptation for Distributed Service-Oriented Transactions,
H. Gomaa and K. Hashimoto,
Proc. ACM/IEEE 7th Intl. Symp. Software Engineering for Adaptive and Self-Managing Systems (SEAMS), Zurich,
Switzerland, June 2012.
A Taxonomy and Survey of Self-Protecting Software Systems,
Eric Yuan and Sam Malek,
7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2012), Zurich, Switzerland, June 2012.
 
;
FORMS: Unifying Reference Model for Formal Specification of Distr
ibuted Self-Adaptive Systems,
Danny Weyns, Sam Malek, and Jesper Andersson,
ACM Transactions on Autonomous and Adaptive Systems, Special Issue on Formal Methods for Pervasive, Self-Aware
, and Context-Aware Systems, Vol. 7, No. 1, April 2012.
An Extensible Framework for Improving a Distributed Software System's Deployment Ar
chitecture,
S. Malek, N. Medvidovic, and M.Mikic-Rakic,
IEEE Transactions on Software Engineering, Vol. 38, No. 1, Jan-Febr. 2012, pp. 73-100.
Dynamic Software Adaptation for Service-Oriented Product Lines,
H. Gomaa and K. Hashimoto,
Proc. 15th Intl Software Product Line Conf., Munich, Germany, August 2011, vol. 2.
Feature-based Variability Meta-Modeling for Service-Oriented Product Lines,
M. Abu-Matar and H. Gomaa,
in Models in Software Engineering, Workshops and Symposia at MoDELS 2011,
Jorg Kienzle (Ed.), Springer LNCS 7167, pp. 68-82, 2012.
An Architecture-Based Dynamic Adaptation Model and Framework for Adaptive Software Systems,
H. Gomaa and M. Hussein,
Proc. ACS/IEEE International Conference on Computer Systems and Applications,
Sharm El-Sheikh, Egypt, December 2011.
Taming Uncertainty in Self-Adaptive Software, Naeem Esfahani, Ehsan Kouroshfar, and Sam Malek,
Proc. 8th Joint Meeting of the European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2011), Szeged, Hungary, September 2011.
Dynamic Software Adaptation for Service-Oriented Product Lines, H. Gomaa and K. Hashimoto,
Proc. Fifth International Workshop on Dynamic Software Product Lines, Munich, Germany, August 2011.
Performance Management of Composite Applications in Service Oriented Architectures, V. Dubey and D.A. Menasce,
in Performance and Dependability in service computing: Concepts, Techniques and Research Directions, eds. V. Cardellini, E. Casalicchio, K. Castello Branco, J.C. Estrella, and F.K. Monaco, IGI Global, July 2011.
Foundations of Team Computing: Enabling End Users to Assemble Software for Ubiquitous Computing, J.P. Sousa,
Intl Conf on Complex, Intelligent and Software Intensive Systems, Krakow, Poland, pp 9-16
IEEE Computer Society, 2010.
An Architecture-Driven Software Mobility Framework,
S. Malek, G. Edwards, Y. Brun, H. Tajalli, J. Garcia, I. Krka, N. Medvidovic, M. Mikic-Rakic, and G. Sukhatme,
Journal of Systems and Software, special issue on Software Architecture and Mobility, vol. 83, no. 6, June 2010.
RESISTing Reliability Degradation through Proactive Reconfiguration,
D. Cooray, S. Malek, R. Roshandel, and D. Kilgore,
Proc. 25th IEEE/ACM International Conference on Automated Software Engineering (ASE 2010), Antwerp, Belgium, September 2010.
On the Role of Architectural Styles in Improving the Adaptation Support of Middleware Platforms,
N. Esfahani and S. Malek,
Proc. 4th European Conference on Software Architectures, Copenhagen, Denmark, August 2010.
FUSION: A Framework for Engineering Self-Tuning Self-Adaptive Software Systems,
A. Elkhodary, N. Esfahani and S. Malek,
proceedings of the 18th ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE 2010), Santa Fe, NM, November 2010.
Social Computing Networks: A New Paradigm for Engineering Pervasive Software Systems,
N. Esfahani and S. Malek,
Proc. 32nd International Conference on Software Engineering (ICSE 2010), New Ideas and Emerging Results Track, Cape Town, South Africa, May 2010.
On Decentralized Self-Adaptation: Lessons from the Trenches and Challenges for the Future,
D. Weyns, S. Malek, and J. Andersson,
Proc. ICSE workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2010), Cape Town, South Africa, May 2010.
Towards Multi-Design of Situated Service-Oriented Systems,
J.P. Sousa, Z. Zengin, and S. Malek,
Proc. ICSE workshop on Principles of Engineering Service Oriented Systems (PESOS 2010), Cape Town, South Africa, May 2010.
Space-Aware TeC: End-User Development of Safety and Control Systems for Smart Spaces,
J.P. Sousa, V. Tzeremes, and A. El Masri,
IEEE Intl Conf on Systems, Man, and Cybernetics, Istanbul, Turkey, IEEE Computer Society, pp 2914-2921, 2010.
General Trust Management - GTM,
D. Al-Arayed and J.P. Sousa,
IEEE Intl Conf Information Privacy, Security, Risk and Trust, Minneapolis, MN, IEEE Computer Society, pp 857-864, 2010.
Understanding Cloud Computing: Experimentation and Capacity Planning, D.A. Menasce and P.
Ngo, 2009 Computer Measurement Group Conference, Dallas, TX, Dec. 6-11, 2009.
On the Role of Features in Analyzing the Architecture of Self-Adaptive Software Systems,
Ahmed Elkhodary, Sam Malek, Naeem Esfahani,
Proc. 4th International Workshop on Models at Runtime, Denver, Colorado, October 2009.
On Optimal Service Selection in Service Oriented Architectures,
D.A. Menasce, E. Casalicchio, and V. Dubey, Performance Evaluation Journal, Elsevier,
August 2010, 67(8), pp. 659-675.
Optimal
Service Selection Heuristics in Service Oriented Architectures, E.
Casalicchio, D.A. Menasce, V. Dubey, and L. Silvestri, The 3rd International
Workshop on Advanced Architectures and Algorithms for Internet DElivery and
Applications (AAA-IDEA 2009), Las Palmas de Gran Canaria, The Canary Islands,
Spain, November 26, 2009.
Business-oriented Autonomic Load Balancing for Multitiered Web
Sites, J. Ewing and D.A. Menasce, 17th IEEE/ACM MASCOTS Conference,
London, UK, September 21-23, 2009.
Modeling
Dimensions of Self-Adaptive Software Systems, J. Andersson, R. de Lemos,
S. Malek, and D. Weyns, in Software Engineering for Self-Adaptive Systems,
B.H.C. Cheng et al., eds. , Lecture Notes on Computer Science Hot Topics,
Springer, 2009.
Improving the Reliability of Mobile Software Systems through
Continuous Analysis and Proactive Reconfiguration, S. Malek, R. Roshandel,
D. Kilgore, and I. Elhag, Proc. ICSE 2009, New Ideas and Emerging Results
Track, Vancouver, Canada, May 2009.
Reflecting on Self-Adaptive Software Systems, J.
Andersson, R. de Lemos, S. Malek, and D. Weyns, Proc. ICSE 2009 Workshop on
Software Engineering for Adaptive and Self-Managing Systems, Vancouver, Canada,
May 2009.
Computing
Missing Service Demand Parameters for Performance Models, D.A. Menasce,
2008 Computer Measurement Group Conf., Dec. 7-12, 2008, Las Vegas, NV.