1. Introduction
Service-Oriented Architecture (SOA) provides the conceptual framework for realizing service-oriented systems by allowing software systems to be dynamically composed and reconfigured using services discoverable on the network [1]. From a product-line engineering viewpoint this model of deployment promises significant benefits over the traditional model of software deployment as a product. Firstly, the dynamic nature of SOA means it can support user needs and expectations in a continuously changing environment [21]. Secondly, services can be combined in different configurations and contexts simplifying the deployment of product variants tailored to the needs of different customers, but mostly based on the same core services [2].