Dynamic Software Product Lines for Context-Aware Web Services
Résumé
As any software, Web Services have to face various execution environments. We then talk of context-aware Web Services. Moreover, Web Services could also be used in mobile environments. For such environments, it is necessary to have several products (e.g. different implementations of the same service), which may be deployed on various terminals. Furthermore, mobility involves the ability to dynamically change the systems functions at runtime in accordance with the environment variations. A Software Product Line (SPL) paradigm may be helpful to deal with the production of such a family of products. In this chapter, we introduce CAPucine, a Context-Aware Dynamic Service-Oriented Product Line for the production and execution of context-aware web services. CAPucine proposes to express Web-Service variability through feature-diagrams and context-awareness models. CAPucine manages context-awareness (1) initially to derivate products using a Model Driven Engineering process, and (2) with an iterative process to dynamically modify the product structure and behavior due to context changes using the SCA platform and the COSMOS context management framework. CAPUcine presents the whole process which includes: context-aware web service specification, context-aware platform code generation, and context-aware adaptation loop. The whole process is demonstrated through a mobile-commerce scenario.