The Evolving Philosophers Problem: Dynamic Change Management
IEEE Transactions on Software Engineering
Foundations for the study of software architecture
ACM SIGSOFT Software Engineering Notes
A Domain-Specific Software Architecture for Adaptive Intelligent Systems
IEEE Transactions on Software Engineering - Special issue on software architecture
DSSA (Domain-Specific Software Architecture): pedagogical example
ACM SIGSOFT Software Engineering Notes
A component- and message-based architectural style for GUI software
Proceedings of the 17th international conference on Software engineering
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
Some patterns for software architectures
Pattern languages of program design 2
Analysis patterns: reusable objects models
Analysis patterns: reusable objects models
Process patterns: building large-scale systems using object technology
Process patterns: building large-scale systems using object technology
Architecture-based runtime software evolution
Proceedings of the 20th international conference on Software engineering
A domain specific software architecture style for CSCD system
ACM SIGSOFT Software Engineering Notes
More process patterns: delivering large-scale systems using object technology
More process patterns: delivering large-scale systems using object technology
Patterns of Enterprise Application Architecture
Patterns of Enterprise Application Architecture
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
Architectural Styles, Design Patterns, and Objects
IEEE Software
The Vision of Autonomic Computing
Computer
Aura: an Architectural Framework for User Mobility in Ubiquitous Computing Environments
WICSA 3 Proceedings of the IFIP 17th World Computer Congress - TC2 Stream / 3rd IEEE/IFIP Conference on Software Architecture: System Design, Development and Maintenance
Software Reconfiguration Patterns for Dynamic Evolution of Software Architectures
WICSA '04 Proceedings of the Fourth Working IEEE/IFIP Conference on Software Architecture
Towards A Component-Based Middleware Framework for Configurable and Reconfigurable Grid Computing
WETICE '04 Proceedings of the 13th IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises
A Style-Aware Architectural Middleware for Resource-Constrained, Distributed Systems
IEEE Transactions on Software Engineering
Distributed context management in a mobility and adaptation enabling middleware (MADAM)
Proceedings of the 2006 ACM symposium on Applied computing
Software—Practice & Experience
Pattern Oriented Software Architecture: On Patterns and Pattern Languages (Wiley Software Patterns Series)
Reconceptualizing a Family of Heterogeneous Embedded Systems via Explicit Architectural Support
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Software Design and Architecture The once and future focus of software engineering
FOSE '07 2007 Future of Software Engineering
Self-Managed Systems: an Architectural Challenge
FOSE '07 2007 Future of Software Engineering
Tranquility: A Low Disruptive Alternative to Quiescence for Ensuring Safe Dynamic Updates
IEEE Transactions on Software Engineering
A generic component model for building systems software
ACM Transactions on Computer Systems (TOCS)
Time-bounded adaptation for automotive system software
Proceedings of the 30th international conference on Software engineering
MobiPADS: A Reflective Middleware for Context-Aware Mobile Computing
IEEE Transactions on Software Engineering
Enabling Dynamic Co-evolution of Models and Runtime Applications
COMPSAC '08 Proceedings of the 2008 32nd Annual IEEE International Computer Software and Applications Conference
A comprehensive solution for application-level adaptation
Software—Practice & Experience
Software Architecture: Foundations, Theory, and Practice
Software Architecture: Foundations, Theory, and Practice
A Reflective Middleware to Support Peer-to-Peer Overlay Adaptation
DAIS '09 Proceedings of the 9th IFIP WG 6.1 International Conference on Distributed Applications and Interoperable Systems
Software Engineering for Self-Adaptive Systems: A Research Roadmap
Software Engineering for Self-Adaptive Systems
MUSIC: Middleware Support for Self-Adaptation in Ubiquitous and Service-Oriented Environments
Software Engineering for Self-Adaptive Systems
Design patterns for developing dynamically adaptive systems
Proceedings of the 2010 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems
On the role of architectural styles in improving the adaptation support of middleware platforms
ECSA'10 Proceedings of the 4th European conference on Software architecture
Incremental model synchronization with triple graph grammars
MoDELS'06 Proceedings of the 9th international conference on Model Driven Engineering Languages and Systems
Reliable dynamic reconfigurations in a reflective component model
CBSE'10 Proceedings of the 13th international conference on Component-Based Software Engineering
FIESTA: a generic framework for integrating new functionalities into software architectures
ECSA'07 Proceedings of the First European conference on Software Architecture
Mining the execution history of a software system to infer the best time for its adaptation
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Hi-index | 0.00 |
Context: Modern middleware platforms provide the applications deployed on top of them with facilities for their adaptation. However, the level of adaptation support provided by the state-of-the-art middleware solutions is often limited to dynamically loading and off-loading of software components. Therefore, it is left to the application developers to handle the details of change such that the system's consistency is not jeopardized. Objective: We aim to change the status quo by providing the middleware facilities necessary to ensure the consistency of software after adaptation. We would like these facilities to be reusable across different applications, such that the middleware can streamline the process of achieving safe adaptation. Method: Our approach addresses the current shortcomings by utilizing the information encoded in a software system's architectural style. This information drives the development of reusable adaptation patterns. The patterns specify both the exact sequence of changes and the time at which those changes need to occur. We use the patterns to provide advanced adaptation support on top of an existing architectural middleware platform. Results: Our experience shows the feasibility of deriving detailed adaptation patterns for several architectural styles. Applying the middleware to adapt two real-world software systems shows the approach is effective in consistently adapting these systems without jeopardizing their consistency. Conclusion: We conclude the approach is effective in alleviating the application developers from the responsibility of managing the adaptation process at the application-level. Moreover, we believe this study provides the foundation for changing the way adaptation support is realized in middleware solutions.