WSDarwin: A Comprehensive Framework for Supporting Service-Oriented Systems Evolution

  • Author / Creator
    Fokaefs, Marios-Eleftherios
  • Service-oriented architecture (SOA) has become the prevalent paradigm for the development of distributed and modular software systems. SOA owes its popularity to certain properties that characterize the resulting systems and, in theory, gives flexibility to the development and maintenance of service-oriented systems. First, web services, which are the building blocks of service-oriented systems, are accessible over the Internet, which implies that there is no need to exchange code artifacts (as in the case of software libraries). Second, software components in service-oriented systems are published through concise and abstract interfaces usually based on common and well-adopted standards. The abstraction implies that the interface exposes just enough for a functional run-time data exchange. The abstraction results in information hiding, which offers two benefits. On one hand, providers can hide the business logic of their service from the clients, thus, retaining their expertise or the ownership of data, from which they can possibly profit. On the other hand, taking advantage of the common standards, clients can flexibly migrate between web services to satisfy their requirements as best as possible. Nevertheless, these particular properties may also cause problems in the stability of a service-oriented system especially in the case of software evolution, if good practices are not followed. One relevant challenge is that, since the system is distributed, the decision about the evolution of a service may be restrained to a small part of the system. Also, since the communication between the components is limited by the abstract interface, the impact of the change may be unknown for the rest of the system. The clients of a service may have little information about the changes and how to react to them. The published service interface constitutes a contract between the provider and the client. If best practices about service evolution are not followed and this contract is broken, the repercussions may be severe to the client application and this can also have business and financial impact both to the client and the provider. Another challenge is caused by the definition and availability of multiple styles and technologies that follow a service-oriented architecture, including, but not limited to, REST and WS-* services. This results in a variability on how service-oriented systems are implemented. Although the challenges around the evolution of web services may be based on fundamental properties of the architecture, each style may require different solutions and tools to support the maintenance of service-oriented systems. Given these challenges, there is an evident need to support client developers in the maintenance of their application against evolving services. This support is necessary regardless of whether good practices are followed by providers and regardless of the underlying styles and technologies of the service system. There is also a need to support the decision-making processes of service providers and clients about the evolution of their software, in manner aware not only of the technical but also the relevant business and economic considerations. In my work, I make three contributions towards satisfying these needs. I have developed the WSDarwin tools to support the maintenance of client applications in the event of service evolution; first, an Eclipse plug-in to support service clients of the WS-* style and, second, a web application to support REST service clients. Between the two implementations, WSDarwin offers support for a variety of tasks, including comparison of WSDL and WADL service interfaces to identify differences between versions of a service, automatic adaptation of WS-* client applications, automatic generation of WADL interfaces for REST services and automatic mapping of similar services from different providers. The third contribution of my work is the development of a theoretical framework to support the decision-making process concerning the evolution of a service-oriented system. The framework consists of an economic model and a game-theoretic model to take into consideration the economic repercussions of service evolution and the complicated interactions between providers and clients. The thesis of my work is that service evolution should be not only technically but also socially and economically conscious through support from automated tools. WSDarwin implements a suite of relevant tools, and thus substantiates the thesis.

  • Subjects / Keywords
  • Graduation date
  • Type of Item
  • Degree
    Doctor of Philosophy
  • DOI
  • License
    This thesis is made available by the University of Alberta Libraries with permission of the copyright owner solely for non-commercial purposes. This thesis, or any portion thereof, may not otherwise be copied or reproduced without the written consent of the copyright owner, except to the extent permitted by Canadian copyright law.
  • Language
  • Institution
    University of Alberta
  • Degree level
  • Department
    • Department of Computing Science
  • Supervisor / co-supervisor and their department(s)
    • Stroulia, Eleni (Computing Science)
  • Examining committee members and their departments
    • Miller, James (Electrical and Computer Engineering)
    • Stroulia, Eleni (Computing Science)
    • Messinger, Paul R. (School of Business)
    • Martin, Patrick (School of Computing, Queen's University)
    • Hoover, James (Computing Science)