Towards Plug-and-Play Services: Design and Validation Using Roles
MetadataVis full innførsel
Today telecommunication service users expect to access a similar set of services independently of what network they happen to use, they expect services to adapt to new surroundings and contexts as they move around, and they expect to get access to new and useful services as soon as they become available. Building services operating satisfactorily under such requirements poses new challenges and requires new solutions and new engineering methods for rapid service development and deployment. The PaP project at NTNU was initiated in order to define a framework for service development and execution that supports the dynamic composition of services using Plug-and- Play techniques. By dynamic composition, we mean that services and service components can be designed separately, and then composed at run-time. In the frame of the PaP project, this doctoral work has addressed two issues: the design and the validation of Plugand- Play services. Service design is complex. In a PaP context, this complexity increases further as services are designed to be dynamically adapted to changing contexts. A design approach based on service roles is proposed, and role composition is proposed as a means to achieve adaptability. We model service role behaviours and their composition using state machines that interact asynchronously. Describing system behaviours in terms of state machines has proven to be of great value, and is widely adopted in most teleservice engineering approaches. We favour the use of the modelling language SDL because of its formal semantics that enables an unambiguous interpretation of the system specification. However, our design and validation results are not bound to SDL. They may be applied on systems specified using other modelling languages that support state machines, as for example UML. In our work, we investigate how SDL-2000 can be used to model composition. Differently from process algebra, SDL and other approaches using state machines do not explicitly define composition operators. By defining design patterns and rules for expressing composition in SDL, this thesis contributes to promote using SDL as a behaviour composition language. SDL is not only a language for the modelling of state machines. SDL-2000 has newly been released, and to the best of our knowledge little experimentation using the new concepts of SDL-2000 has been done. We propose original and innovative employment of some of the newly introduced SDL concepts, that should be of interest for the SDL community. Dynamic composition of services requires incremental and compositional validation methods. It should be possible to validate components introduced in a system at run-time, and to restrict the analysis to the parts of the system affected by the dynamic modifications. This thesis proposes a validation approach suited for dynamic service composition. Validation analysis is complex and requires simplification. Two simplification schemes, projection and incrementation, are proposed. Projection and incrementation are two main contributions of this thesis: • A projection is a simplified system description or viewpoint that emphasises some system properties while hiding some others. Rather than analysing the whole system, projections are analysed. In our work, the projection only retains the aspects significant for the purpose of validation of associations between service roles. • Incrementation means that validation can be applied incrementally. The proposed validation approach is tightly integrated with the composition of service roles. Elementary roles are first validated, and then the roles composed of elementary roles, and then the composite of composites. In that way, the proposed validation techniques enable us to validate parts of systems and the composition of system parts. Another contribution of this thesis are design rules that enable the designer to avoid making certain dynamic errors and to develop well-formed state machines. Error search is not postponed until after the specification phase: ambiguous and conflicting behaviours can be identified already at design time. The projection of service roles lead to interface descriptions that are described using state machines. In that way, our interface descriptions overcome the limitations of static object interfaces. In our work, the interface descriptions represent the dynamic behaviour of interactions between service roles. It is also possible to determine required interfaces from provided interfaces. The results of this thesis should then be of interest for the research related to the definition of semantic interfaces. A major concern in our work has been to provide validation techniques that are easy to understand and apply. Current verification and validation techniques often require high competence and knowledge in formal modelling and reasoning on the part of the system developer, and their use in the software industry is rather moderate. We believe that our approach, although thoroughly justified, remains easy to understand and use. In that way, the applicability of the proposed approach is wider than the context of dynamic validation. It should also be of interest for the validation of static systems.