Supporting change propagation in the maintenance and evolution of service-oriented architectures Hoa Khanh Dam and Aditya Ghose School of Computer Science and Software Engineering University of Wollongong New South Wales 2522, Australia {hoa, aditya}@uow.edu.au Abstract—As Service-Oriented Architecture (SOA) continues to be broadly adopted, the maintenance and evolution of service-oriented systems become a growing issue. Maintenance and evolution are inevitable activities since almost all systems that are useful and successful stimulate user-generated requests for change and improvement. A critical issue in the evolution of SOA is change propagation: given a set of primary changes that have been made to the SOA model, what additional secondary changes are needed to maintain consistency across multiple levels of the SOA models. This paper presents how an existing framework can be applied to effectively support change propagation within a SOA model. We also propose to extend this framework with a minimal modification strategy that helps select change options in a manner that accommodates the structural and semantic dimensions of SOA models. Keywords-Service oriented architecture; maintenance and evolution; change propagation I. I NTRODUCTION Service Oriented Architecture (SOA), with its potential to significantly improve the development of high quality and complex systems, has attracted an increasing amount of interest from the research and business communities. The emergence of cloud computing together with a growing services-based economy are motivating enterprise transfor- mation towards SOA to achieve agility, collaboration and efficiency. In fact, according to a survey conducted by Forrester Research 1 in May 2009, 75% of IT executives at Global 2000 organizations planned to adopt SOA by the end of 2009. On the one hand, SOA can be seen as an agile business architecture in which customers and suppliers are treated as business entities collaborating in a system of services. On the other hand, SOA is a technology architecture which helps realize the business services with an agile, interoperable and loosely-coupled suite of services that can be used within multiple business domains [1]. The combination of service oriented business and tech- nical architecture gives SOA the ability to significantly reduce the gap between business and technology concerns. However, in order to leverage this advantage, it is important to provide modeling support in which business analysts and 1 http://blogs.zdnet.com/service-oriented/?p=2053 application architects can exchange views and share under- standing. Among recent efforts in providing modeling sup- port for SOA (e.g. SOMF [2], SOMA [3]), service oriented architecture modeling language (SoaML 2 ) has emerged as a promising standard which offers the capability to model a SOA at the enterprise, system and systems of systems level. SoaML models show how business entities (e.g. people, organizations, and systems) collaborate via services within a SOA and how such services link to other parts (e.g. business processes, data, and business rules) of the SOA. In recent years, the ever-changing business environment demands constant and rapid evolution of an organisation. As a result, changes to the SOA models of such an or- ganisation is inevitable if the architecture are to remain useful and to reflect the current state of service provision and consumption. For example, initial changes in a SOA model which are made to include a new service provider may lead to secondary changes made to relevant service contracts and service composition. Such changes may lead to further changes in the implementation components and so on. The ripple effect that an initial change may cause in a SOA is termed change propagation. In a large modern organization which may have hundred of thousands of services connected to each other and to its structure and business processes, it becomes costly and labour intensive to correctly propagate changes. However, there has been very little work on dealing with changes in SOA [4]. Since SOA is a relatively new technology, maintenance of service-oriented systems has not been so far a critical issue. However, if we are to be successful in the long-term adoption of service-oriented development of software systems that remain useful after delivery, it is now crucial for the research community to provide solutions and insights that will improve the prac- tice of maintaining and evolving service-oriented systems. More specifically, there is a need for techniques and tools that provide more effective automated support for change propagation within an SOA model. We do not believe that change propagation can be fully automated, since there are decisions that involve tradeoffs where human expertise is 2 http://www.omg.org/spec/SoaML