It is important that during the service development lifecycle, the phases of service evolution are also considered so that stakeholders are involved in acts beyond the focus of just developing some business functionality to adapt quickly to the unexpected change in requirement. To effectively address the challenges that one faces during service evolution, one needs to focus on the explicit support around the services and their environment for a sustainable quality in the future. The challenges faced in different aspects of service evolution are explained below. Also the approaches to address these different challenges are different.
Service Model and Support
The service model helps to set the uniform mindset across all stakeholders in the design (Zimmermann, Krogdahl, & Gee, 2004), development, and maintenance phase of service lifecycle. The modeling approach does help to create a framework to work with in boundaries and enhances the system. Each existing model caters to a specific problem in service development. Some examples of models are:
Model driven architecture (MDA) streamlines the process of integration
Web services resource framework (WSRF) defines a generic and open framework for modeling and accessing stateful resources using Web services
Business process execution language (BPEL) defines the orchestration of services across domains
Domain-specific languages fill the gap between general purpose languages and particular application domains by providing a language with notation and concepts geared to the domain
Information technology infrastructure library (ITIL) is a set of concepts, techniques, and frameworks to manage software infrastructure and its operations
All models might not be justifiable for all architectures. Appropriate decisions to judiciously select models need to be made in the initial phase of service development. The model designed can be incremental and would need to coexist with other models in the system. Model factor helps the system to work within the scope of the specifications but provides a better traceability for any changes/enhancements. The model helps to build a blueprint for the smooth execution of service evolution.
Modeling caters to the reoccurring aspects of a service requirement or deals with the environment for service performance and monitoring. Therefore, service models need to interact with the service component and the underlying development environment. Evolution is related to the entire systems involved. The modeling approach does help to create a framework to work within boundaries and enhance the system with help of these models. For example, domain-specific languages fill the gap between general purpose languages and particular application domains by providing a language with notation and concepts geared to the domain. But model engineering brings in lock-in to the concepts and abstractions adopted during the process. Service models for a system are to be selected and engineered for a sustainable service evolution where changes in different artifacts can be reflected easily.