Schmeling, Benjamin (2013)
Composing Non-Functional Concerns in Web Services.
Technische Universität Darmstadt
Ph.D. Thesis, Primary publication
|
Text
Thesis_print.pdf - Accepted Version Copyright Information: In Copyright. Download (10MB) | Preview |
Item Type: | Ph.D. Thesis | ||||
---|---|---|---|---|---|
Type of entry: | Primary publication | ||||
Title: | Composing Non-Functional Concerns in Web Services | ||||
Language: | English | ||||
Referees: | Mezini, Prof. Dr. Mira ; Tai, Prof. Dr. Stefan | ||||
Date: | 13 July 2013 | ||||
Place of Publication: | Darmstadt | ||||
Date of oral examination: | 5 June 2013 | ||||
Abstract: | In software development, two types of concerns must generally be addressed: functional and non-functional ones. Functional concerns relate to the main or core functionality of a software, whereas non-functional concerns represent quality characteristics of the same. It is widely accepted that the two types of concerns should be strictly separated from one another to increase maintainability, understandability and reusability of a software. In component-based software systems, this strict separation of concerns results in the implementation of the respective concerns as functional as well as non-functional components. From the current perspective, web services are the prevalent technology for implementing such component-based software systems. They adhere to open standards and describe a well-defined interface which is strictly separated from the implementation of the service. This allows the realization of systems consisting of loosely coupled and platform-independent services. Non-functional concerns could also be implemented as web services; however, a well-defined mechanism is required to integrate these non-functional components with functional ones. This mechanism should not interfere with the aforementioned platform independence and loose coupling, and it should not require changes in the implementation of the functional component. For reuse purposes, it should be possible to integrate one non-functional component with several functional components. Furthermore it should be possible to integrate multiple non-functional components with a single functional component. The latter, however, requires a well-defined ordering of the consumption of the non-functional components. The justification for this is that, generally,different orderings of non-functional concerns would cause different behavior. Furthermore, it is not possible to define generally valid (default) orderings, because the ordering may be specific to a particular functional component. Thus, a mechanism for specifying these orderings explicitly is required. Furthermore, a component must be available which is able to enforce this specification at runtime. This dissertation analyzes the applicability of state-of-the-art approaches for the composition of non-functional concerns in web services in terms of the concrete requirements to be met. In this analysis it turns out that there is no appropriate approach which sufficiently supports most of the requirements. Hence, the dissertation presents NFComp, a novel, model-driven approach for composing non-functional concerns in web services. This approach takes different dimensions into account. Firstly, it aims at both specification as well as enforcement of concern compositions. Secondly, it covers different views on web services in which only particular parts of the service are available. Thirdly, it provides an abstract framework which could be applied to all component-based approaches and a concrete, instantiable one which can be applied to web services in particular. In this approach, a modeler can specify concern composition in terms of non-functional actions each representing distinct and fine-grained non-functional behavior. Those actions, their logical composition and mapping to functional components, can be modeled in a graphical way. The model is mainly process-oriented and shows directly in which order and for which services actions must be executed. The approach is structured in six phases: requirements specification, action definition, action composition, service mapping, middleware mapping and code generation. In each phase, the model is processed by various participants in different roles and enriched by new information. The resulting model can be validated at design time against a set of constraints imposed by different types of interdependencies modeled in the action definition phase. In this regard, the problem of finding interdependencies which crosscut different non-functional domains has been addressed. A mechanism has been defined to systematically analyze data dependencies to infer control flow constraints. This mechanism helps to enrich the modeled set of interdependencies by discovering even cross-domain interdependencies and thus enables a more precise validation. In addition to the classical validation where constraint violations are directly shown in the model, a guided modeling procedure has been invented. This procedure supports the modeler by showing the next safe modeling steps always resulting in a valid model. Finally, a generator takes the model as input in order to produce code which enforces the modeled composition at runtime. The generator, however, does not produce the implementation of non-functional components which must be implemented manually. Instead, it provides a composition component which takes over the task of integrating and invoking these components in the specified order according to the model. The whole approach has been implemented for web services as a set of Java-based modeling tools and a code transformer which generates either the configuration for an Enterprise Service Bus or, alternatively, a set of aspects implementing the composition component. The aspect-based approach is not only applicable to web services but also generally to component-based software written in Java. |
||||
Alternative Abstract: |
|
||||
Uncontrolled Keywords: | Web Services, Non-Functional Concerns, model-driven, MDD, BPMN, BPEL | ||||
URN: | urn:nbn:de:tuda-tuprints-35124 | ||||
Classification DDC: | 000 Generalities, computers, information > 004 Computer science | ||||
Divisions: | 20 Department of Computer Science > Software Technology | ||||
Date Deposited: | 11 Jul 2013 09:47 | ||||
Last Modified: | 09 Jul 2020 00:29 | ||||
URI: | https://tuprints.ulb.tu-darmstadt.de/id/eprint/3512 | ||||
PPN: | 325395926 | ||||
Export: |
View Item |