SOA and Quality Assurance Ivica Crnkovic Malardalen University Vasteras, Sweden
[email protected]
Kung-Kiu Lau University of Manchester Manchester, UK
[email protected]
Abstract
Raffaela Mirandola Politecnico di Milano Piazza Leonardo da Vinci, 32 Milano, Italy
[email protected]
tions are built by integrating pieces of software, possibly developed by different stakeholders, in a distributed setting and their configurations can change during run time. Besides, applications built on services should ensure, on one hand, required performance on the client side and on the other hand the maximized incomes for the service provider. These requirements may be in contradiction and they need a continuous negotiation. Due to the high dynamism of the applications, the quality assessment should be performed both at development and at run time. Also a quality assessment of services only is not sufficient; the quality of the application depends not only on the selected services but also on the underlying support systems and on the network resources. From an industrial perspective, the quality prediction and assessment in practice is a costly and timely choice due to many factors such as missing system knowledge and limited access to performance experts. Many software development companies are neither willing nor able to conduct detailed quality predictions and analyses; instead these companies adopt simple ad-hoc processes or, in many instances, companies do not bother to perform any kind of quality analysis. In SOA applications quality assessments become more important since they must be expressed by different stakeholders in order to ensure a quality of the application.
This panel session discusses which qualities are of particular importance for SOA and it explores the possible ways to guarantee them. Presentations in the session will explore the use of different techniques and approaches in order to foster the adoption of quality modeling techniques by industrial software systems.
1. Problem statement Service-Oriented Architectures (SOAs) provide a new paradigm for the creation of business applications. This paradigm enforces decentralized developments and compositions of distributed systems: new added-value services may be created by composing independently developed services. In addition to functionality the quality of a composition of services is a crucial factor for deciding which components must be selected, or to choose whether a given sequence of interactions can provide the requested quality. The general term quality is used as inclusive of specific notions of non-functional measures considered in the realization and execution of service-based applications, such as performance parameters or reliability, as well as of more abstract qualities, such as maintainability, usability, portability, and similar ilities, which are realm of conventional system designs but becoming of relevance also for SOA as the use of SOA approaches increased in different application domains, many of them business-, mission- or even safety-critical domains. The problem of predicting and ensuring quality properties for SOA applications becomes an important issue, explicitly addressed thanks to the use of model-based approaches. Managing quality in distributed systems is not a novel problem, but a number of additional issues arise in the context of a service-oriented computing environment, due to the nature of these applications; service-based applica-
2. A holistic approach To deal with these challenges, we argue that SOAs can benefit from the Model Driven Development (MDD) paradigm. In essence, this means that models are built to support software engineers in reasoning about quality attributes at the software architecture level. As a satisfactory solution is built at the model level, transformation steps (possibly automated) derive the final implementation. Specifically, a possibility to have/define/use methods supporting quality-driven SOA-based software development is of interest, where the consequences of design decisions and platform changes are made explicit to the user
xxvii
through quality impact analysis and simulation A holistic approach to predict quality attributes requires an investigation about a possibility to define a design methodology for service-based systems that integrates the classical model-based development approach with the orthogonal model-based development with modeling quality attributes. In this context, the quality assessment will play a key role in all the lifecycle phases to guarantee that existing applications continue to fulfill the quality requirements and that newly constructed applications satisfy the quality constraints, as well as the quality of the applications are guaranteed by provided qualities of the services and the underlying integration mechanisms. In such a way, the use of models will allow the prediction of the system quality before it has been built and the understanding of the main effects of an architecture with respect to quality requirements. This prediction, based on analysis methodologies applied to some suitable system model, can be exploited to drive decisions about how to architect a service-based software application so as to meet the quality requirements imposed on the design. The use of models extends beyond the initial development of an application. Models may be used to support evolution of the software architecture. They can also be useful to devise suitable reconfiguration strategies for the dynamic contexts where the application will be deployed. Once the application is running, model-based reasoning may be used to predict the impact of different reconfigurations in a changing context, driving in this way the reconfiguration process.
- Other crucial questions related to predictability of quality attributes are: (i) Given the overall system quality attributes required, which attributes are required of the services/components concerned? (ii) How can the quality attributes of a system be accurately predicted from the quality attributes of services that are determined with certain accuracy? (iii) To what extent and under which constraints are the emerging system attributes determined by the service attributes? iv) How the system is able to deal with possible evolution of the software?
4. Goals and Expected Results The main goal of this panel is to promote a lively discussion between SOA users developers and researchers. We are interested in discussing proposals for modeling techniques to reduce the cost of quality modeling in industry and to increase the adoption of state of the art research in industry. In particular, we hope to discuss the main issues described above and to devise : - Guidelines for practitioners for cost effective and fast adoption of quality modeling approaches in servicebased applications, and - Proposal of techniques and approaches for quality modeling in case of uncertainty about system behavior. The session will help explore possible avenues for future research avenues and collaboration between participants and between different research projects.
3. Questions and issues addressed In this panel several approaches will be presented, discussed and compared with industrial practices. Specifically, among the several questions that can be tackled, we intend to pay special attention to the following points: - For SOA applications, when dealing with quality, an important question to be considered concerns the point of view i.e., if we are looking at the application from the provider or from the consumer point of view. This distinction is meaningful as provider and consumer have usually very different–even antithetic–goals. The provider is interested in maximize the resource utilization or the economic profits while providing an adequate service level. The consumer is interested in minimizing the cost, while maximizing other quality metrics such as reliability or throughput. - Another key point that should be taken into account concerns the development phase: quality attributes should be managed both at Run-Time or at Design Time using possibly different but complementary methods.
xxviii