Continuous Integration for Decentralised Development of Service-Based Software Systems

Author: Jameel Almalki

Almalki, Jameel, 2018 Continuous Integration for Decentralised Development of Service-Based Software Systems, Flinders University, College of Science and Engineering

Terms of Use: This electronic version is (or will be) made publicly available by Flinders University in accordance with its open access policy for student theses. Copyright in this thesis remains with the author. You may use this material for uses permitted under the Copyright Act 1968. If you are the owner of any included third party copyright material and/or you believe that any material has been made available without permission of the copyright owner please contact copyright@flinders.edu.au with the details.

Abstract

With the rapid adoption of Service-Oriented Architectures (SOA) for the creation of distributed software applications, it is important for software development processes to be supported with relevant methodologies and tools. Traditional approaches to designing and implementing ‘monolithic’ software architectures fail to address these needs for developing distributed, service-oriented applications. In this light, the discipline of Service-Oriented Software Engineering has emerged to address the development and operation of distributed and loosely-coupled software systems, composed of reusable services often provided by third parties.

A key component the development and operation of SOA systems is Continuous Integration whereby pieces of a software application are integrated and tested as they change. Continuous Integration in SOA-based software systems introduces a whole new level of complexity. For Continuous Integration to work in this context, network-accessible services need to be dynamically and continuously discoverable to be invoked through their APIs to ensure that the individual elements always work together. Enabling Continuous Integration in a centralised software development environment is relatively easy – that is, a dedicated Continuous Integration server can monitor the central software repository and execute integration tests whenever changes are detected. Continuous Integration in SOAs is not so straight-forward, since different parts of a distributed service-based application might be owned and managed by different software development teams and organisations, thereby restricting centralised storage, testing, deployment and execution. In these circumstances, a decentralised approach to Continuous Integration is required to fulfil this practice in the context of API-driven SOA environments.

To this end, this thesis puts forward the following research question: How can Continuous Integration be enabled in service-based distributed software systems in the absence of a central server? We present Service-Oriented Revision Control (SORC) as an answer to this question. SORC relies on peer-to-peer communication between service providers and consumers to enable discovery and consumption of versions of services, ensuring that the overall service-based software system operates in a stable and reliable manner, even in the presence of frequent service updates and multiple versions. By using three basic commands – i.e., commit, checkout, and update – the SORC approach demonstrates how service consumers can always be informed of compatible and incompatible service versions. To achieve this functionality, the approach uses a distributed reference architecture and implements a framework based on this reference architecture, thereby enabling support for Continuous Integration in SOAs through a novel combination of software versioning and compatibility checking techniques.

The SORC approach presented in this thesis contributes to the domain of Service-Oriented Software Engineering and, more specifically, to Continuous Integration for SOA, as well as to the areas of software versioning and compatibility checking. The main contributions of this thesis include the novel SORC approach itself, which supports Continuous Integration for SOA, the prototype implementation of the SORC system, called as SORCER, demonstrating the viability of the proposed approach, novel versioning and compatibility checking techniques, and a literature survey on relevant state-of-the-art research.

Keywords: Continuous Integration, Service-Oriented Architecture, API, SORC, service versioning, service compatibility

Subject: Engineering thesis

Thesis type: Doctor of Philosophy
Completed: 2018
School: College of Science and Engineering
Supervisor: Dr Haifeng Shen