2009-12-02
Software Product Lines for creating Service Oriented Applications
by:
Paul Istoan
Abstract:
Service-oriented architectures and software product lines are currently two approaches that get a lot of attention in research and practice. They both promise to aid in the development of flexible, cost-effective software systems and to support a high level of reuse. These approaches to software development share a common goal.
They both encourage an organization to reuse existing assets and capabilities rather than redeveloping them again and again for new systems. These approaches enable organizations to gain enormously on reuse. They are able to achieve many desired benefits such as productivity gains, decreased development costs, and improved time to market, higher reliability, and competitive advantage. Contributions about the possible connections between both development approaches, SPLs and SOAs, are starting to emerge in the software community.
We propose a complete method that eases the creation and management of families of service-based systems. Exploring the existing connection between software product
line approaches and service oriented architectures, we try to harness the advantages that emerge. Software product lines are well known for their ability to offer companies ways to exploit their software product’s commonalities to achieve economies of production. Therefore, we use product line techniques for dealing with variability issues in service oriented systems.
The approach proposed follows the general product line process. During a domain engineering stage, commonalities and variabilities between members of a service-based family are captured using feature diagrams. The interpretation given to feature diagrams is particular to our service oriented context. It enables to capture the static representation of the system, it’s architecture in terms of composing features. We propose the creation of the system by composing blackbox services. Secondly, the behavior of the system, the actual orchestration of services, is captured using business process diagrams. A two step process for generating these diagrams together with an extension for supporting variability in BPMN is also proposed. Then, during an application engineering stage, using a formalization of BPMN concepts, a complete product derivation process is detailed. The whole method is explained by means of an example, which investigates the feasibility of the synergy between service oriented architectures and software product lines in the context of home automation systems. Using the proposed approach, we try to facilitate the creation of applications for a service-based home automation framework called
EnTiMid.