Keywords

1 Introduction

Modern software systems are especially distinguished by their increasing complexity and scale. The Service Oriented Computing (SOC) model has slowly gained ground within the tech industry. The composition of the services with SOC drives the software development. Such services can be offered by third parties, which only show external access interfaces [1]. Particularly, web services are software components that can be almost seamlessly integrated into more complex distributed applications [2]. Such distributed web-based applications, generally known as service-based systems, depend on certain third parties to ensure that their services meet the necessary or approved quality of service (QoS). An Internet application can invoke multiple services (for example, a web service for trading acts can invoke a payment service which may then invoke an authentication service for validation). Such a scenario is called Web service composition, and the data/invocation flow may be statically or dynamically defined [3].

The analysis of questions related to QoS becomes crucial for several related activities with web services, from the discovery of the services, the selection of them, their composition and their adaptation in client systems. Therefore, QoS is currently a subject of research of significant importance in the field of Web services [4]. In this sense, various types of proposals and approaches have emerged with the definition and analysis of quality of service in Web services for different related activities. An important question, for example, is: What requirements can make a service have “good” quality? The response to this question requires that a shared framework of understanding be developed in which multiple actors are involved in quality assessment. Definitions of these structures are the quality models, and they are called technological objects introduced to organize and standardize the principles and meanings of quality factors in web services. However, as in many other areas of Engineering, there is no single model for quality agreed by the community, but there are several proposals. These proposals can differ in several aspects, being size, structure, terminology, underlying principles some examples. Any web service has the characteristic of presenting clear interfaces that define its functionality; the interface of a web service serves not only as a means of communication between the client and server, but as a specification of such functionality. Historically, software engineers have used the catalogs of metrics as an important tool to estimate the quality of their artifacts of software. In addition, the definitions of a web service interface have several dimensions, such as complexity and consistency, which can be evaluated [5].

The importance of service interfaces and more specifically their non-functional attributes has been highlighted by previous research. In particular, the work of [6] identifies common bad practices that are found in the interfaces of public services, which affect the comprehensibility and discoverability of the services described. In this context, comprehensibility is the ability of a service interface description to be self-explanatory, that is, a software engineer can reason effectively about a service’s functionality only by looking at its interface description. Discoverability, on the other hand, refers to a service ’s ability to be retrieved conveniently from a registry or archive based on a partial summary of its features, that is, a question. Around the same time, the author defines a series of metrics in [5] for measuring the complexity and efficiency of the service interfaces. At present there are no works that allow estimating the quality of web services from the perspective of complexity, size or quality of its interface. It should be noted that in the context of this work it is crucial to estimate the quality levels of the attributes of the candidates web services to compose based on the interfaces of these services, since as the composition can be carried out in different ways, that is, combining different services, Choosing the services to compose that have the best quality, implies a better performance as a result of the composition. These improvements range from obtaining results in a shorter period of time, achieving higher reliability of the system, to increasing service availability.

In this work, we explore a preliminary approach that allows software developers to predict values of quality attributes, with a certain level of confidence that should satisfy the web services candidates to be part of a service composition. As it is not always possible to determine the levels of quality attributes or to verify that candidate services meet the quality attributes they exhibit, the approach explored in this paper would assist developers to estimate these quality levels based on the values of the metrics of interfaces proposed in the well-known Sneed’s catalog. The idea behind this work is based on the use of these metrics as early indicators to warn software developers of quality of services that take part in a process of service composition. To solve the problem of estimating levels of quality, we explore multivariate linear regression, where the dependent variable is the level of a quality attribute and the independent variables are each of the metrics proposed in the Sneed’s catalog. In conclusion, experiments carried out with the QWS DatasetFootnote 1 have revealed fruitful insights in the context of quality assessment in service composition.

The remainder of this paper was arranged as follows. The background is described in Sect. 2. The related work is discussed in Sect. 3. The proposed approach is set out in Sect. 4. Our empirical evaluation is described in Sect. 5, and summarized. Lastly, the findings and possible study lines are set out in Sect. 6.

2 Background

Nowadays, with the aim to address the needs of the Industry, software development processes have increased their confidence in software reuse [7]. Service Oriented Computing (SOC) is a prominent paradigm of utmost utility for the development of distributed applications, which promotes the uncoupled reuse of software [8]. This model aims to provide support in heterogeneous environments when designing distributed applications. In addition, SOC encourages the cost- and time-effective production and delivery of an application. Online services are used as the building blocks to allow for versatile composition of applications [9].

A web service is a part of software that can be exposed and invoked using standard Web protocols. The language used to specify web services is called WSDL and it is based on XML. A web service can thus be defined in terms of the functionality it provides (its public interface), the description of the operations it provides, the outgoing messages associated with each operation, as well as the data types used as parameters. These operations and messages are defined in the abstract, and then linked to a particular transportation protocol such as SOAP or HTTP. The discovery of potentially relevant services, which meet the needs of the developer, is a process that involves the search for these in discovery entities materialized in registries [10].

The specifications of quality attributes, including those related to performance, protection, modificability, reliability and usability, have a major impact on a system’s software architecture [11]. Much of a software architecture’s life is spent designing software systems to meet a collection of specifications for software quality attributes, typically including scalability, security, performance, and reliability. These are often informally called “-ilities” of an application (although, of course, some of them -e.g. performance- do not fit properly under this lexical specification). The specifications for quality attributes are part of an application’s non-functional requirements which capture multiple aspects of how an application’s functional requirements are achieved. Both applications may have non-functional specifications which can be expressed in terms of specifications for the quality attributes.

In this context, the analysis of issues related to QoS is of vital importance in the field of web services composition, since knowing the quality of services guarantees that a better new application can be obtained at the time of composing. Linear regression analysis is especially a statistical technique used to research the relationship between variables that adapts to a wide variety of situations [13]. The regression model is used in social science to forecast a wide variety of phenomena, from economic indicators to various aspects of human behaviour. Within the context of market research, it may be used to determine in which of the different media to invest more effectively; or to predict the number of sales of a given product [12, 13]. Although there are works that have used linear regression to calculate the efficiency of [14] web services, the study of web service interface metrics and quality attributes seems to be an unexplored area of research.

3 Related Work

Sneed in [5] focused on metrics from a practical point of view, analyzing interfaces for web services. This consists of various types of metrics to calculate the sophistication and efficiency of web services, ranging from specific metrics such as the number of lines of code and number of declarations. All the metrics described can be found in the interface of a web service. Finally, Sneed proposes the SoftAudit tool, which after receiving as input a list of WSDL files, allows for assessing the quality of the interface of a web service. From a non-functional standpoint, Gambhir et al. [14] created a linear regression model for evaluating the quality of web services using the tool WEKA. From a dataset that contains information about quality attributes, the authors built a multivariate linear regression model to predict the quality of some attributes in the absence of others.

The authors analyzed quality of service (QoS) in Web services composition in [18]. Their research is focused on the premise that they have different QoS, criteria and costs for each task in a collection of web services with similar functionalities, so when choosing web services for each task this leads to an optimization problem. As a solution, they proposed a heuristic that allows for obtaining 99% of the optimal solution, taking less than 2% of the time of the exact standard algorithm. The authors proposed to implement genetic algorithms in [19] to improve the quality of service (QoS) in order to obtain better response time or total cost. Given low efficiency, genetic algorithms are a more scalable alternative, and the generic QoS attributes are more accessible to handle.

In [20], the service composition model based analysis is provided, with a emphasis on quality attribute evaluation, that is, efficiency and reliability. They created a tool called ATOP, which automatically transforms a model of service composition design into a model of analysis, which in turn feeds a probabilistic model for predicting quality. Along this line, the authors proposed to formulate a web services configuration through Petri networks by analyzing the graphical structure and algebraic properties in [21]. The result is then used to formulate multiple QoS attribute optimization. In summary, they have obtained that the architecture provides a programming model for the development and assembly of business systems using a service-oriented architecture through the composition of services.

A QoS-based approach to Web service selection is suggested in [22]. The approach presents an equitable and simple algorithm for evaluating multiple metrics based on quality. Researchers use Web Services Modeling Ontology (WSMO) for service annotation definitions with QoS data to define a service quality ontology and its vocabulary. The authors present a complex method of selection, using an optimal algorithm of normalization. Several contemporary approaches are proposed in [23] which use AI to explore alternative solutions when making a composition of web services. IIn this way, compositions of the versatile and adaptable web service can be created, thus achieving better interoperability between distributed and heterogeneous applications.

There is little work to the best of our knowledge on the exploration of relationships between web service interfaces and the consistency of such services from a web service composition perspective. For this reason, our work explores the relationship between the metrics of the Sneed catalog and the QoS-metrics defined by Al-Masri to obtain unknown values of a metric given the values of correlated metrics.

4 Our Approach

In this research work, we delineate an approach that allows software developers to predict quality attribute levels, with a certain confidence level, which the candidate web services must satisfy in order to be part of a service composition. Figure 1 depicts our approach, which is divided into 5 stages. First, there is a WSDL file dataset that contains values of the quality attributes proposed by Al-Masri (1). This set of files is pre-processed to be used later by the SoftAudit tool provided by Sneed and thus obtain a dataset with the interface metrics of the WSDL files (2) [5]. Once both datasets are prepared with their respective metrics separately, the KNIME toolFootnote 2 is used to merge the dataset into one that combines the information from both sources (3). In this stage, the Infostat toolFootnote 3 (4) is used to assess statistical assumptions previously to build linear regression models. Finally, linear regression models are built by considering Sneed’s catalog metrics as independent variables and Al-Masri quality attributes as dependent variables (5). Hence, we can state our research question as follows:

RQ: With respect to the composition of web service, is it possible to complete missing information on either web service interface metrics or web service quality attribute levels, and what is the effectiveness given the public QoS-datasets?

Fig. 1.
figure 1

Schema of our proposed approach.

In order to build linear regression models, we used the following methodology:

  1. 1.

    Perform correlation analysis (matrix) for all independent variables by using Pearson correlation (r).

  2. 2.

    For each independent variable, verify

    1. (a)

      Sample normality (Shapiro-Wilk test)

    2. (b)

      Homoscedasticity with the dependent variable

    3. (c)

      If assumptions are verified

      1. i.

        Run the regression model

      2. ii.

        Check adjusted squared-R coefficient

      3. iii.

        Check Fisher statistic F

      4. iv.

        Check p-value probability of independent variable coefficients

  3. 3.

    Assemble the Linear Regression equation

Next we step into our proposed approach. Firstly, the correlation matrix allows us to select variables with a considerable correlation (positive or negative) higher than 0.5. For example, let us assume we select two variables from our experimental dataset, namely Interface Modularity and Number of Object-Points (r = 0.56), and then we check the sample normality as depicted in Fig. 2.

Fig. 2.
figure 2

Normality graph for the Interface Modularity dependent variable in relation to the independent variable Number of Object-Points.

By observing the variability of the dependent variable Interface Modularity at each level of the independent variable Number of Object-Points and not finding any pattern where the variability grows as the values of Number of Object-Points grow, we can affirm that the homocedasticity criterion is achieved as shown in Fig. 3.

Fig. 3.
figure 3

Homocedasticity graph for the dependent variable Interface Modularity in relation to the independent variable Number of Object-Points.

Thirdly, we should run the linear regression algorithm and obtain the model as illustrated by Fig. 4. Then, we checked the quality metrics of a linear regression model, namely adjusted squared-R factor (0.32), p-value (\({<}0.0001\)) and F-test (F = 342.34, p < 0.05). As a result, the metrics show a weak linear regression model; the resulting equation could infer values of the Interface Modularity metric but with a low level of confidence.

$$\begin{aligned} Interface Modularity = 0.14 + 1.0e-04*Number of Object Points + error \end{aligned}$$
Fig. 4.
figure 4

Linear regression graph for the dependent variable Interface Modularity in relation to the independent variable Number of Object-Points.

5 Experimental Evaluation

To evaluate our approach, we used a publicly available Quality of Web Service (QWS) datasetFootnote 4. The dataset have been utilized by related studies [15, 16] and consists of a set of QoS measurements for 2507 real web service implementations. The web services were collected using the Web Service Crawler Engine (WSCE) [15] and quality measurements were obtained using the Quality of Web Service Manager (QWSMan) [16]. Each web service calculation consists of nine QoS parameters which are calculated using benchmark software for commercial web service. Table 1 shows description of the QoS parameters and their measuring units.

Table 1. QoS parameters and units from Al-Masri dataset.

The quality and complexity of the web services were calculated using SoftAudit [5]. This tool performs a static analysis on the service interface to measure its quality and complexity. The full list of measures and their descriptions are listed in Table 3. In order to obtain interfaces listed in the QWS dataset, we retrieved the WSDL documents using URLs provided on the dataset. A total of 1162 (46.35%) WSDL documents were successfully retrieved when the experiment was carried out. Out of the 1345 (53.64%) WSDL documents that were unavailable on the Internet, we retrieved 374 WSDL documents from the QWS-WSDL dataset [17]. Finally, we were able to calculate the quality and complexity of 1536 (61.26%) web services. Table 2 and 3 shows the descriptive statistical analysis of quality and complexity measurements, respectively.

The experiments were divided in two phases. On the one hand, linear regression equations were found for the relationships between the metrics proposed by Sneed, and on the other hand, the linear regression equations for the relationships between the metrics proposed by Al-Masri. In order to perform the tests, each dataset was divided into two groups: 75% for “training” and 25% for “testing”. The 75% of WSDL documents were used to find the linear regression equations, whereas the remaining 25% were used to calculate the estimation error using the least-squares technique.

Table 2. Descriptive statistics of QoS of services from Al-Masri’s dataset.
Table 3. Descriptive statistics of the Sneed’s metrics from the dataset.
Fig. 5.
figure 5

Correlation matrix between Sneed’s and Al-Masri’s metrics

In order to study the correlation between Sneed’s metrics and Al-Masri’s metrics, we calculated the Pearson correlation as shown in Fig. 5. The matrix is a heatmap that shows the correlation strength between variables. Regarding our aforementioned research question (RQ), we observed that there was no considerable correlation between the metrics proposed by Sneed (web service interface metrics) and the ones proposed by Al-Masri (web service quality attribute levels). In principle, whether Sneed’s metrics are good QoS predictors should be evaluated in light of a higher amount of service descriptions. So, we decided to study each group of metrics separately because we found stronger correlations as shown in Fig. 6.

Fig. 6.
figure 6

Correlation matrix from full merged dataset.

In his catalog, Sneed classifies the metrics into three groups, namely Service Interface Size, Service Interface Complexity, and Service Interface Quality. Thus, we propose to predict metrics belonging to the Service Interface Quality group from the metrics belonging to the Service Interface Size and Service Interface Complexity groups.

We found that Interface Modularity is the metric that showed the highest values of correlations with the rest of the variables, but when analyzing the adjusted squared-R factor, we observed a lower value in comparison with the Interface Reusability metric. Despite having less correlation with the rest of the variables, it showed higher adjusted squared-R factors close to 1. Another finding related to the Interface Modularity metric is the higher precision in the linear regression models related to metrics belonging to the Service Interface Complexity in comparison with the ones belonging to the Service Interface Size group. To sum up, the best linear regression models found were the following:

$$\begin{aligned} Interface Modularity = 0.08 \,+\, 0.63\,*\,Interface Structure Modularity \,+\, 0.00264 \end{aligned}$$

Additionally, we found a multivariate linear regression model, where the dependent variable Interface Modularity depends on 4 independent variables:

$$\begin{aligned} Interface Modularity = -0.25 + 0.11*IDC + 1.13*ISC + 0.02*DFC - 0.13*LC + 0.102 \end{aligned}$$

where IDC is Interface Data Complexity, ISC is Interface Structure Complexity, DFC is Data Flow Complexity, LC is Language Complexity. Finally, as for the equations defined for the Al-Masri model, the best equation found according to linear regression quality metrics was:

$$\begin{aligned} Availability= 3.21 + 0.92*Successability + 9.222 \end{aligned}$$

6 Conclusions

In this work, a series of linear regression models were presented, which allow users, from a set of metrics, to predict others from the same set. That is, in the absence of certain metrics, these can be obtained by just applying an equation. Providing metrics to quantify web services is still a maturing area, and thus reducing the number of individual metrics employed by users to test web service quality might alleviate the burden of web service QoS assessment upon composing existing services. In the beginning, we have taken into account the dataset provided by Al-Masri, which in turn contained information on the Quality attributes that each WSDL file (i.e. web service). This dataset was pre-processed to obtain the interface metrics of each web service that Sneed proposes in his catalog through the use of the SoftAudit tool. Then, our approach aimed to predict the metrics of the quality attributes that each WSDL file met from analyzing its interface. As it was not possible to find a relationship between both datasets because there was no correlation between the variables defined in each group, we studied the datasets separately.

According to the experimental results carried out with a dataset of 2500 Web services, several linear regression models were found that allow predicting service interface metrics based on their size and complexity metrics. Likewise, it was possible to find models that allow software practitioners to infer quality attributes from known attributes. In practical terms, linear regression models were developed to detect patterns, forecast performance, and draw conclusions backed by an input dataset, either a QoS-dataset or a Sneed catalog metric dataset.

As future work, we are working on several issues. Firstly, we are planning to explore AI techniques such as association rules, neural networks, and clustering, among others. Secondly, we will normalize the dataset provided by Al-Masri, to study the correlation between the variables and corroborate whether the lack of normalization impacts on the study. Thirdly, we plan to collect information from various databases containing quality information from WSDL files to see whether a correlation analysis relationship can be identified using the SoftAudit tool.