Using a Lifecycle Model for Developing and Executing Adaptable Interactive Distributed Applications