Discovering Services
Andrea Zisman
, City University London, UK
Abstract
The identification of services that can fulfill specific functional and quality characteristics of service-based systems, also known as service discovery, has been an important topic of research over the last few years. Several approaches have been developed to support service discovery and can be classified as static and dynamic service discovery approaches.
In static service discovery, services are identified during the development of service-based systems and bound to these systems prior to execution. In dynamic (aka runtime) service discovery, services are identified and bound to service-based systems during their execution. This may be necessary in order to replace existing services in an system and allow the system to continue its execution.
In this tutorial we present a service discovery framework to support both static and dynamic identification of services. More specifically, the framework supports the (a) design of service-based systems based on existing services and (b) replacement of services in service-based systems during their execution due to (i) unavailability or malfunctioning of the services, (ii) changes in the context of services or the service-based system environment, and/or (iii) emergence of new services.
The framework adopts an iterative process for the development of service-based systems in which software services that can provide functional and non-functional characteristics of a system being developed are discovered, and the identified services are used to re-formulate the design models of the system.
The dynamic service discovery is based on a proactive approach in which service discovery queries are executed in parallel to the execution of the system in both pull and push modes. The framework uses a query language called SerDiQueL to represent structural, behavioral, and quality characteristics of services to be identified. The matching process is based on distance measurements between queries and service specifications.
A prototype tool has been implemented. The work has been evaluated in terms of recall, precision, and performance measurements. The evaluation has shown positive results, which are also discussed in the presentation.
Short Biography of Andrea Zisman
Andrea Zisman is a full Professor of Software and Systems Engineering at the School of Informatics, City University London. Prior to this position she was a Lecturer, Senior Lecturer, and Reader at City. She holds a Ph.D. degree in Computer Science from Imperial College of Science Technology and Medicine, UK, and MSc and BSc degrees in Computer Science from Brazil. She was a research fellow at University College London, UK; has worked as a software system consultant, developer and analyst; and has been a visiting researcher at AT&T Research Labs, US (2003).
Andrea has been research active in the areas of software and service engineering where she has published more than 75 reviewed papers. Her research interests are in the areas of service-oriented computing, secure software engineering, trust management, cloud computing, validation of software systems, and traceability of software artefacts.
Andrea has given tutorials in many international conferences, served in the organising and program committees of more than 100 international conferences and workshops, and acted as a reviewer and guest editor for many international journals. She is the Programme Co-Chair of the Fundamental Approaches to Software Engineering conference (FASE?12) and the Demonstration Track of the International Conference on Software Engineering (ICSE?11). Andrea has been principal and co-investigator in several European, EPSRC, and industry funded research projects.




