The Evolving Philosophers Problem: Dynamic Change Management
IEEE Transactions on Software Engineering
Software testing based on formal specifications: a theory and a tool
Software Engineering Journal
A graph based architectural (Re)configuration language
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
A Graphical Parallel Composition Operator for Process Algebras
FORTE XII / PSTV XIX '99 Proceedings of the IFIP TC6 WG6.1 Joint International Conference on Formal Description Techniques for Distributed Systems and Communication Protocols (FORTE XII) and Protocol Specification, Testing and Verification (PSTV XIX)
Behaviour Analysis of Software Architectures
WICSA1 Proceedings of the TC2 First Working IFIP Conference on Software Architecture (WICSA1)
Specification and Verification of a Dynamic Reconfiguration Protocol for Agent-Based Applications
Proceedings of the IFIP TC6 / WG6.1 Third International Working Conference on New Developments in Distributed Applications and Interoperable Systems
An Agent Platform for Reliable Asynchronous Distributed Programming
SRDS '99 Proceedings of the 18th IEEE Symposium on Reliable Distributed Systems
Agile Project Management With Scrum
Agile Project Management With Scrum
Reo: a channel-based coordination model for component composition
Mathematical Structures in Computer Science
A Model Checking Language for Concurrent Value-Passing Systems
FM '08 Proceedings of the 15th international symposium on Formal Methods
The SmartFrog configuration management framework
ACM SIGOPS Operating Systems Review
seL4: formal verification of an OS kernel
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Formalizing Adaptation On-the-Fly
Electronic Notes in Theoretical Computer Science (ENTCS)
A Formal Framework for Structural Reconfiguration of Components under Behavioural Adaptation
Electronic Notes in Theoretical Computer Science (ENTCS)
Software architecture definition for on-demand cloud provisioning
Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing
Modeling dynamic reconfigurations in Reo using high-level replacement systems
Science of Computer Programming
Handbook of Cloud Computing
CADP 2010: a toolbox for the construction and analysis of distributed processes
TACAS'11/ETAPS'11 Proceedings of the 17th international conference on Tools and algorithms for the construction and analysis of systems: part of the joint European conferences on theory and practice of software
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
Specifying and verifying the SYNERGY reconfiguration protocol with LOTOS NT and CADP
FM'11 Proceedings of the 17th international conference on Formal methods
Model checking and co-simulation of a dynamic task dispatcher circuit using CADP
FMICS'11 Proceedings of the 16th international conference on Formal methods for industrial critical systems
Self-Configuration of Distributed Applications in the Cloud
CLOUD '11 Proceedings of the 2011 IEEE 4th International Conference on Cloud Computing
BISIMULATOR: a modular tool for on-the-fly equivalence checking
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Verification of a self-configuration protocol for distributed applications in the cloud
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
Cloud applications are often complex distributed applications composed of multiple software components running on separate virtual machines. Setting up, (re)configuring, and monitoring these applications are complicated tasks because a software application may depend on several remote software and virtual machine configurations. These management tasks involve many complex protocols, which fully automate these tasks while preserving application consistency as well as some key properties. In this article, we present two experiences we had in formally specifying and verifying such protocols. The first one aims at designing a reconfiguration protocol of a component-based platform, intended as the foundation for building robust dynamic systems. The second aims at automating the configuration task of a set of virtual machines running a set of interconnected software components. Both applications are specified using the LNT process algebra and verified using the CADP verification toolbox. The use of formal specification languages and tools was a success. We conclude with a number of lessons we have learned while working on this topic in the last 3 years.