Better QoS for distributed software with stochastic and formal methods
Reusability of software is a hot topic nowadays. It is easier, cheaper and more efficient to reuse parts of existing software in order to adjust or incorporate new functionalities, than to design completely new programs. However, due to the different sources and constraints of software components, it is not easy to define the Quality of Service (QoS) for newly composed software, especially when it consists of components or services provided by various geographically distributed organizations. Young-Joo Moon, PhD student at the Centrum Wiskunde & Informatica (CWI) in Amsterdam, developed a stochastic formal model to derive the end-to-end QoS of such software systems. She defended her PhD thesis, entitled ‘Stochastic Models for Quality of Service of Component Connectors’ at Leiden University on 25 October 2011. Moon also applied her work in a case study on the ASK system of the Dutch company Almende, which resulted in practical advice on several optimizations.
Combining several existing software services into a new one has many advantages. If someone wants to book a flight, rent a car and make a reservation for a hotel at the same time, it is more efficient to combine existing online services than to develop from scratch a new service to provide this combined functionality. Existing software components and services can be joined together with the help of coordination software, which is written in a coordination language. For her research Young-Joo Moon used Reo, a powerful coordination language introduced by the CWI research group Foundations of Software Engineering (SEN3). The choice for this language is very appropriate, since, for instance, the various deadlines from different functionalities make high demands on the synchronizing aspect –a powerful feature of Reo.
The original Reo did not incorporate performance aspects. Moon designed an extension, Stochastic Reo – a formalism to specify software composition with QoS aspects. Based on this formal model, she also implemented the Reo2MC tool as a plug-in for the Eclipse-based Reo toolset (Extensible Coordination Tools). As a case study, she modelled and analyzed the ASK system, an industrial software system for connecting people to each other. The analysis results provided the best cost-effective resource utilization and some suggestions to improve the performance of the ASK system, such as the required minimum capacity of a task queue and some bottlenecks in the system. Young-Joo Moon was part of the research group Foundations of Software Engineering (SEN3)_at CWI. SEN3 focuses on concurrent distributed software systems and their activities cover foundations, technology and applications, specifically in the context of component-based software engineering and service-oriented computing.
This research has been carried out at CWI and Leiden University, under the auspices of IPA (Institute for Programming research and Algorithmics) in the Netherlands. It was supported by the GLANCE funding program of NWO through the CooPer project (Coordination with Performance Guarantees).
Prof. dr. F. Arbab (CWI and Leiden University)
Co-supervisor: dr. A. Silva (Radboud University Nijmegen) and dr. E.P. de Vink (TU/e)