Software developer perceptions about software project failure: a case study
Journal of Systems and Software - Special issue on software engineering education and training for the next millennium
FORM: A feature-oriented reuse method with domain-specific reference architectures
Annals of Software Engineering
Using First-Order Logic for Product Line Model Validation
SPLC 2 Proceedings of the Second International Conference on Software Product Lines
Expert One-on-One J2EE Development without EJB
Expert One-on-One J2EE Development without EJB
Object-Oriented and Classical Software Engineering
Object-Oriented and Classical Software Engineering
Towards requirements-driven autonomic systems design
DEAS '05 Proceedings of the 2005 workshop on Design and evolution of autonomic application software
fmp and fmp2rsm: eclipse plug-ins for modeling features using model templates
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Automatic Model-Driven Recovery in Distributed Systems
SRDS '05 Proceedings of the 24th IEEE Symposium on Reliable Distributed Systems
Toward an assessment of software development risk
Journal of Management Information Systems - Special section: Strategic and competitive information systems
Microreboot — A technique for cheap recovery
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
Why do internet services fail, and what can be done about it?
USITS'03 Proceedings of the 4th conference on USENIX Symposium on Internet Technologies and Systems - Volume 4
Model-Driven Autonomic Architecture
ICAC '07 Proceedings of the Fourth International Conference on Autonomic Computing
Designing Self-Adaptive Service-Oriented Applications
ICAC '07 Proceedings of the Fourth International Conference on Autonomic Computing
Automating Product-Line Variant Selection for Mobile Devices
SPLC '07 Proceedings of the 11th International Software Product Line Conference
Automated Model-Based Configuration of Enterprise Java Applications
EDOC '07 Proceedings of the 11th IEEE International Enterprise Distributed Object Computing Conference
Automated error analysis for the agilization of feature modeling
Journal of Systems and Software
Enabling Self-Managing Applications using Model-based Online Control Strategies
ICAC '06 Proceedings of the 2006 IEEE International Conference on Autonomic Computing
Solving the Multidimensional Multiple-choice Knapsack Problem by constructing convex hulls
Computers and Operations Research
Automated reasoning on feature models
CAiSE'05 Proceedings of the 17th international conference on Advanced Information Systems Engineering
Feature models, grammars, and propositional formulas
SPLC'05 Proceedings of the 9th international conference on Software Product Lines
Constraint-based self-adaptation of wireless sensor networks
Proceedings of the 2nd International Workshop on Adaptive Services for the Future Internet and 6th International Workshop on Web APIs and Service Mashups
Hi-index | 0.00 |
Building enterprise applications that can self-adapt to eliminate component failures is hard. Existing approaches for building adaptive applications exhibit significant limitations, such as requiring developers to manually handle healing side-effects, such as lock release, thread synchronization, and transaction cancellation. Moreover, these techniques require developers to write the complex recovery logic needed to self-adapt without exceeding resource constraints. This paper provides two contributions to R&D on self-adaptive applications. First, it describes a microrebooting technique called Refresh that uses (1) feature models and a heuristic algorithm to derive a new and correct application configuration that meets resource constraints and (2) an application's component container to shutdown the failed subsystems and reboot the subsystem with the new component configuration. Second, we present results from experiments that evaluate how fast Refresh can adapt an enterprise application to eliminate failed components. These results show that Refresh can reconfigure and reboot failed application subsystems in approximately 150ms. This level of performance enables Refresh to significantly improve enterprise application recovery time compared to standard system or application container rebooting.