Although application portability is of high concern in the area of process-aware and service-oriented software, and a design principle of process languages [30], practical obstacles to porting applications are uncataloged. A number of studies, e.g., [38, 39, 61], report on standard-conformance induced portability issues, but focus on singular language aspects or provide no comprehensive evaluation of several standard implementations. Such a systematic study or benchmark that provides a comprehensive evaluation of the support for the feature set of a standard provided by several standard implementations is still lacking. Therefore, the first step in this thesis is to investigate the current state of portability of process-aware and service-oriented software. This is captured in the first research question:
Research Question 1:
What is the current state of portability of service-oriented and process-aware software?
It is a popular conception that all that is necessary to build portable software is to implement an application in conformance to an international standard. If an application conforms to a standard, it can be executed on any conforming implementation of that standard. As a result, the availability of a standardized serialization format for an application is often sufficient to silence a debate regarding its portability. This forms a clear advantage for the implementers of a standard over the users of an implementation. Support for a standard can be easily claimed due to a lack of certification authorities.
As a consequence, to investigate the portability of service-oriented and process- aware software, it is necessary to look at the implementation conformance of existing execution environments [45]. Only if these environments conform to the standards they claim to implement, the porting of applications is feasible. For this reason, we divide the first research question into two subquestions. The first subquestion challenges the assumption that the existence of standards is sufficient:
Research Question 1.1:
Are current standards and their implementations sufficient for enabling portability?
We address this question by benchmarking the implementation conformance of a range of engines for service-oriented and process-aware applications. The results of the benchmark demonstrate that huge differences in standard conformance are the norm. Hence, the change of an engine is problematic.
Since application portability is not given per se, it becomes necessary to examine what features typically hinder or reduce it. It can be expected that
certain programming concepts or constructs are more problematic with respect to portability than others. For instance, constructs related to parallel execution might be less portable than constructs related to sequential execution. We address this in the second subquestion:
Research Question 1.2:
What are existing portability issues and their implications?
If portability is problematic, the advantages of quick environmental changes cannot be leveraged and system evolution is complicated. Therefore, the improve- ment of the portability of service-oriented and process-aware software becomes a relevant research goal. As a first step in this direction, we propose to apply techniques of software quality improvement, in particular software measurement and continuous inspection [49]. We discuss how such techniques work and why they have the potential to improve software quality, or, with respect to this thesis, to improve software portability. This leads to the question if and how portability can be measured, the second main research question:
Research Question 2:
Is it feasible to measure the portability of service-oriented and process-aware software?
A large body of work on software quality frameworks and models exists, e.g., [53– 59, 62]. However, portability is not typically the focus of software quality eval- uations, in particular for service-oriented and process-aware software. More frequently, performance-related quality characteristics, such as throughput or latency [63, 64], or application complexity, cohesion, and coupling [65, 66] are the target of evaluation. As a result, little work exists on measuring and assessing the portability of software in general, and of service-oriented and process-aware software in particular.
To evaluate the feasibility of measuring portability, we select a software quality model, based on a survey of several quality models, as foundational model for the design of a measurement framework. The model selected is the ISO/IEC SQuaRE model [53]. This model provides the common thread for the second part of this thesis. In this model, the quality characteristic of portability is not defined as a stand-alone and isolated characteristic of software quality, but as a conjunction of a number of quality characteristics, notably installability, replaceability, and adaptability. The model calls for the quantification of each of these characteristics when measuring portability. A weighting of the characteristics is not part of the model and they are considered as equally important. As a result, we address each one by a set of dedicated software metrics, which, in combination, form the measurement framework. The derivation, validation, and evaluation of these metrics forms a separate research question for each quality characteristic, each of which is dealt with in a separate chapter of the thesis.
The starting point is the direct portability of an application, without the need for adaptation or replacement. This aspect is addressed in research question 2.1:
Research Question 2.1:
What are suitable metrics for measuring portability?
Regardless of whether software can be ported directly, or has to be adapted or replaced, it has to be installed into the new target execution environment. Therefore, research question 2.2 focuses on the measurement of installability.
Research Question 2.2:
What are suitable metrics for measuring installability?
Although desirable, it can hardly be expected that software can always be ported without any modification. Instead, nonportable parts of an application must be adapted for the new target environment. The ease of this depends on the adaptability of the software and should also be quantified. Adaptability is addressed by research question 2.3.
Research Question 2.3:
What are suitable metrics for measuring adaptability?
Finally, if an application cannot be ported directly and it is hard to adapt, the remaining option is to replace it as a whole. However, this can only be done if it is replaceable by another piece of software. This can be determined by evaluating its replaceability, which is the focus of research question 2.4.
Research Question 2.4:
What are suitable metrics for measuring replaceability?
To maintain scientific rigour when answering the research questions we use a structured methodology and top-down approach to metrics definition and evaluation. As indicated above, this leads to the structuring of the remainder of this work. The methodology and structuring are the topic of the following subsection.