The development of distributed reactive systems is a complex and error-prone process. These systems consist of many separate autonomous components that operate concurrently and continuously interact with each other and with the environment in order to deliver services to the end-users. These systems are becoming more and more sophisticated, providing an ever expanding portfolio of services. In many cases new and customizable services are considered the key to increased revenues. Being able to rapidly develop and incrementally deploy such services, while avoiding undesired interactions with already existing services, therefore becomes strategically important.

In this thesis we present a service-oriented and model-driven approach to engineering distributed reactive systems. The approach integrates model creation and analysis tightly. Services are explicitly modeled as collaborations between roles, using UML 2 collaborations. These offer powerful means to structure and reuse crosscutting system behavior, and to provide a high-level overview of it. Complex collaborations can be composed from more elementary ones, whose behavior can be completely described using sequence diagrams. The full behavior of a composite collaboration can in turn be described using a choreography graph, which defines the global execution ordering of its sub-collaborations.For each service collaboration, the state machine behavior of its roles can be automatically synthesized. These roles are then assigned to the components that will play them. The subsequent composition and coordination of such roles to form complete component behavior may call for human assistance.

Having confidence in the correctness of the models being created is important.For that reason we identify some good practices in service modeling. We also propose early analysis techniques that help to uncover undesired or overlooked behaviors at two critical points during the modeling process. First, each service model is analyzed separately in search of realizability problems. That is, pathologies that may cause the joint behavior of the set of distributed roles synthesized from the service model to be different from the global behavior specified in the model. We provide algorithms to detect some realizability problems. Moreover, we discuss the actual nature of those problems and their underlying causes. This is important not only to adopt the most appropriate resolution when problems are detected, but also to avoid them in the first place. Second, the potential interactions between the roles that any component may play are analyzed, in order to adopt appropriate coordination measures.

Finally, we recognize that service discovery and adaptation, and service personalization based on the service context and end-user preferences are increasingly important mechanisms. In this area we present policy-based mechanisms to allow personalization of services and runtime adaptation.

-- Daniel Amyot - 20 Nov 2009


Form For Virtual Library edit

Title Collaborations in Service Engineering: Modeling, Analysis and Execution
Authors Humberto Nicolás Castejón
Type Thesis
Publisher Norwegian University of Science and Technology, Department of Telematics, Norway
Month November
Year 2008
Pages 306
Keywords Collaborations, Composition, Modeling, Role, Service Engineering, Synthesis, Telecommunications, UCM, UML
Topic revision: r1 - 20 Nov 2009 - 08:23:18 - Daniel Amyot
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback