TAPAS Trusted and Quality-of-Service Aware Provision of Application Services
by Wolfgang Emmerich, Santosh Shrivastava, Fabio Panzieri, Jon Crowcroft and Werner Beckmann
The The TAPAS project focuses on the principles, architectures, methods and tools that are needed for the systematic engineering of quality of service aware distributed systems. To meet this objective, TAPAS brings together researchers and practitioners with a background in software engineering, distributed systems and networking. TAPAS is funded for three years through the IST programme.
TAPAS acknowledges that distributed systems are increasingly deployed across organisational boundaries. Examples of such systems include applications that are hosted by third party service providers, storage resource brokerage or grid-computing. In such settings it becomes important that not just functional correctness of the application is assured, but also that the non-functional qualities of service provision are managed. This management includes the definition of required and provided qualities of service in service level agreements, the monitoring of service level agreements through QoS aware middleware, and fault-tolerant computing through group communication and replication.
TAPAS has defined a language to define service level agreements (SLAng). The semantics of SLAng are defined using the model denotational approach to semantics definition that has been used by the precise UML group. The SLANG semantics definition relates a class model of the syntax of SLANG with a model describing events that can be observed in the environment in which services are provided. The semantics definition then uses OCL constraints over the relation between these models to define the meaning of SLAs.
The main advantage of having a formal SLA language (over the current approach of using carefully crafted lawyer speak) is that SLAs can be reasoned about. We are interested in several forms of reasoning. We would like to support the automated derivation of SLA validators. Such validators are given a list of events that have been obtained by monitoring service providers and consumers and can then decide whether an SLA has been met. We have built a meta-SLA compiler, that can generate an SLA validation component from the UML/OCL definition of the SLA language semantics. We are also interested in reasoning about various aspects of service composition. Given that services may be provided by different parties and that they can be composed into some higher-level service the question arises as to whether the service quality guaranteed for the component services is sufficiently strong to allow a service provider to enter into a service level agreement for the higher-level service. To this extent, we have successfully used queuing network models and stochastic process algebras to support quantitative reasoning about service level agreements and their composition.
We found it very difficult to achieve quality of service-aware distributed applications without also modifying the middleware that is used as a run-time environment for the components that provide services. The TAPAS team has therefore made a number of extensions to an existing application server (JBoss). Firstly, the project used the extension mechanisms of JBoss (interceptors) to provide monitoring capabilities about events of interest, such as the time that it takes to remotely invoke an enterprise java bean or the time it takes to execute a JDBC query. These events can then be fed to an SLA validator component in order to reason about SLAs. Secondly, we are modifying the availability and reliability support of JBoss by improving the clustering mechanisms so that JBoss is capable of running heterogeneous clusters and in response to changes in load can re-adjust the replication strategy.
TAPAS is the first JBoss Academia project. JBoss Academia projects are intended to accelerate the dissemination of research ideas into practice. To this end, we are working with the JBoss open source community. In the next version of the TAPAS platform, we will generalise our current use of interceptors and use the emerging JBoss aspect oriented programming mechanisms to provide our extensions for QoS-aware service provision.
University College London, UK