Service Communautaire d'Information sur la Recherche et le Développement - CORDIS

Multi-staged semantic component checking based on formal methods

Composing complex systems from reusable components is a challenge for the end-user and developer. We have developed a multi-staged method for checking component composition both at static and dynamic level.
In the first stage we provide a method called Compression-Based Reasoning (CBR) to reason about expected or forbidden behaviour in component systems. Consistency rules (the specification) express (in the temporal logic language CTL) dynamic dependencies and constraints (dynamic with respect to the control flow). Model- checking is the underlying theory to process the static verification and has to be adapted for its usage in component-based systems. The process is to verify given temporal specifications (formalising intended behaviour) against the model derived from the real component system.

In CBR, characteristics of component systems (refinement, hierarchy, compression, piece-meal growth, and modularisation) are aimed at being exploited to minimise the gap between model and real component system as well as to minimise the state explosion problem. CBR defines a set of concepts incorporated in the model-checking procedure, i.e. it realises an application of formal model-checking verification to the domain of components. CBR is based on earlier approaches in feature interaction and aspect interaction. A subset of the concepts defined in CBR is realised in an appropriate model-checker implementation, the Component Verifier (CoV). These are: state grouping (explicit states with their properties), explicit NOT (to increase the expressiveness of the modelling language with respect to design knowledge), hierarchy and compression (allowing to express states composed from other states).

The second stage of the multi-staged semantic component checker concentrates on distributed component systems. Composing distributed components correctly rise to a challenge. Since in general, a composed component must guarantee transactions, i.e., the execution of simple services without interruption or interleaving with other services. Classic locking policies could lead to deadlocks or even would fail, as the simple Services do not know that they are part of more complex ones. UKA proposes an approach to guarantee the consistency and to avoid the deadlock. This approach is based on dynamic protocol checking. Protocols are sequencing constraints that describe legal execution of component services, especially transactions. Component protocols are defined on top of the classical component interface. The goal of the explicit specification of component protocols is to specify the needed constraints for composing components correctly.

In our approach, we specify not only the provided protocols but also the required protocols for solving the problem described above. A component system is consistent if its component protocols are satisfied. The checking of component protocols is based on transaction technique which uses optimistic synchronization mechanisms to guarantee the consistency and avoiding of distributed deadlocks. Additional, our technique provides a distributed solution for checking protocols; i.e. there is no central instance that controls the entire component system. UKA has developed a tool called CoTaP (Composition of Transactional Protocols CoTaP) to check the composition of component protocols dynamically. CoTaP provides the protocol language TCPL (Transactional Component Protocol Language) to model the component protocols and the transactional properties of the protocols. From the component protocols, CoTaP generates the needed checker for individual components.

Informations connexes

Reported by

Universitat Karlsruhe
Adenauerring 20a, Geb. 50.41
76128 Karlsruhe
See on map