Comparator: A Tool for Quantifying Behavioural Compatibility

Similar documents
Adaptation of Asynchronously Communicating Software

How to simulate a volume-controlled flooding with mathematical morphology operators?

BoxPlot++ Zeina Azmeh, Fady Hamoui, Marianne Huchard. To cite this version: HAL Id: lirmm

An FCA Framework for Knowledge Discovery in SPARQL Query Answers

Linked data from your pocket: The Android RDFContentProvider

Tacked Link List - An Improved Linked List for Advance Resource Reservation

Mokka, main guidelines and future

Fault-Tolerant Storage Servers for the Databases of Redundant Web Servers in a Computing Grid

Multimedia CTI Services for Telecommunication Systems

Multi-atlas labeling with population-specific template and non-local patch-based label fusion

YANG-Based Configuration Modeling - The SecSIP IPS Case Study

Service Reconfiguration in the DANAH Assistive System

KeyGlasses : Semi-transparent keys to optimize text input on virtual keyboard

Relabeling nodes according to the structure of the graph

Reverse-engineering of UML 2.0 Sequence Diagrams from Execution Traces

Linux: Understanding Process-Level Power Consumption

Simulations of VANET Scenarios with OPNET and SUMO

A Methodology for Improving Software Design Lifecycle in Embedded Control Systems

NP versus PSPACE. Frank Vega. To cite this version: HAL Id: hal

LaHC at CLEF 2015 SBS Lab

Representation of Finite Games as Network Congestion Games

Catalogue of architectural patterns characterized by constraint components, Version 1.0

ASAP.V2 and ASAP.V3: Sequential optimization of an Algorithm Selector and a Scheduler

DANCer: Dynamic Attributed Network with Community Structure Generator

Using a Medical Thesaurus to Predict Query Difficulty

Every 3-connected, essentially 11-connected line graph is hamiltonian

Modularity for Java and How OSGi Can Help

X-Kaapi C programming interface

YAM++ : A multi-strategy based approach for Ontology matching task

From Object-Oriented Programming to Service-Oriented Computing: How to Improve Interoperability by Preserving Subtyping

Comparison of spatial indexes

Scalewelis: a Scalable Query-based Faceted Search System on Top of SPARQL Endpoints

Regularization parameter estimation for non-negative hyperspectral image deconvolution:supplementary material

A Practical Evaluation Method of Network Traffic Load for Capacity Planning

Real-time FEM based control of soft surgical robots

Assisted Policy Management for SPARQL Endpoints Access Control

Decentralised and Privacy-Aware Learning of Traversal Time Models

Setup of epiphytic assistance systems with SEPIA

XBenchMatch: a Benchmark for XML Schema Matching Tools

BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs

QAKiS: an Open Domain QA System based on Relational Patterns

Change Detection System for the Maintenance of Automated Testing

HySCaS: Hybrid Stereoscopic Calibration Software

The Connectivity Order of Links

Formal modelling of ontologies within Event-B

Structuring the First Steps of Requirements Elicitation

Application of Artificial Neural Network to Predict Static Loads on an Aircraft Rib

SIM-Mee - Mobilizing your social network

Computing and maximizing the exact reliability of wireless backhaul networks

Taking Benefit from the User Density in Large Cities for Delivering SMS

Quality of Service Enhancement by Using an Integer Bloom Filter Based Data Deduplication Mechanism in the Cloud Storage Environment

QuickRanking: Fast Algorithm For Sorting And Ranking Data

Traffic Grooming in Bidirectional WDM Ring Networks

Kernel perfect and critical kernel imperfect digraphs structure

Hierarchical Multi-Views Software Architecture

Technical Overview of F-Interop

Fuzzy sensor for the perception of colour

Moveability and Collision Analysis for Fully-Parallel Manipulators

A case-based reasoning approach for unknown class invoice processing

FIT IoT-LAB: The Largest IoT Open Experimental Testbed

UsiXML Extension for Awareness Support

Robust IP and UDP-lite header recovery for packetized multimedia transmission

Blind Browsing on Hand-Held Devices: Touching the Web... to Understand it Better

A Voronoi-Based Hybrid Meshing Method

Malware models for network and service management

Very Tight Coupling between LTE and WiFi: a Practical Analysis

Stream Ciphers: A Practical Solution for Efficient Homomorphic-Ciphertext Compression

The SANTE Tool: Value Analysis, Program Slicing and Test Generation for C Program Debugging

On Code Coverage of Extended FSM Based Test Suites: An Initial Assessment

MUTE: A Peer-to-Peer Web-based Real-time Collaborative Editor

Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs

Prototype Selection Methods for On-line HWR

Implementing an Automatic Functional Test Pattern Generation for Mixed-Signal Boards in a Maintenance Context

Branch-and-price algorithms for the Bi-Objective Vehicle Routing Problem with Time Windows

Comparison of radiosity and ray-tracing methods for coupled rooms

Study on Feebly Open Set with Respect to an Ideal Topological Spaces

A case-based reasoning approach for invoice structure extraction

Real-Time and Resilient Intrusion Detection: A Flow-Based Approach

IntroClassJava: A Benchmark of 297 Small and Buggy Java Programs

XML Document Classification using SVM

Natural Language Based User Interface for On-Demand Service Composition

An Efficient Numerical Inverse Scattering Algorithm for Generalized Zakharov-Shabat Equations with Two Potential Functions

Scale Invariant Detection and Tracking of Elongated Structures

Spectral Active Clustering of Remote Sensing Images

Model-Based Adaptation of Software Communicating via FIFO Buffers

Experimental Evaluation of an IEC Station Bus Communication Reliability

A Generic Architecture of CCSDS Low Density Parity Check Decoder for Near-Earth Applications

Application of RMAN Backup Technology in the Agricultural Products Wholesale Market System

Cloud My Task - A Peer-to-Peer Distributed Python Script Execution Service

Hardware Acceleration for Measurements in 100 Gb/s Networks

SDLS: a Matlab package for solving conic least-squares problems

Recommendation-Based Trust Model in P2P Network Environment

The New Territory of Lightweight Security in a Cloud Computing Environment

Privacy-preserving carpooling

An Experimental Assessment of the 2D Visibility Complex

Light field video dataset captured by a R8 Raytrix camera (with disparity maps)

lambda-min Decoding Algorithm of Regular and Irregular LDPC Codes

Real-Time Collision Detection for Dynamic Virtual Environments

Deformetrica: a software for statistical analysis of anatomical shapes

Kernel-Based Laplacian Smoothing Method for 3D Mesh Denoising

Transcription:

Comparator: A Tool for Quantifying Behavioural Compatibility Meriem Ouederni, Gwen Salaün, Javier Cámara, Ernesto Pimentel To cite this version: Meriem Ouederni, Gwen Salaün, Javier Cámara, Ernesto Pimentel. Comparator: A Tool for Quantifying Behavioural Compatibility. FASE 2014-17th International Conference on Fundamental Approaches to Software Engineering, Apr 2014, Grenoble, France. 2014. <hal- 00934057> HAL Id: hal-00934057 https://hal.inria.fr/hal-00934057 Submitted on 21 Jan 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Comparator: A Tool for Quantifying Behavioural Compatibility Meriem Ouederni 1, Gwen Salaün 2, Javier Cámara 3, and Ernesto Pimentel 4 1 Toulouse INP, IRIT, France 2 Grenoble INP, Inria, France 3 Institute for Software Research, Carnegie Mellon University, USA 4 Department of Computer Science, Universidad de Málaga, Spain Abstract. We present Comparator, a tool that measures the compatibility between two behavioural interfaces. Comparator can be used as a stand-alone Web application, and is also integrated into a model-based adaptation toolbox. 1 Introduction Context. Building new applications by composing existing software components or Web services is now mainstream. However, this task remains error-prone, especially when reusing stateful components accessed through their behavioural interfaces. Techniques and tools are therefore necessary to support this composition task, and to make sure that the new system will behave correctly, avoiding undesired behaviours such as deadlocks. Model. In this work, we assume that component interfaces are described using their interaction protocols represented by Symbolic Transition Systems (STSs) which are Labelled Transition Systems extended with value-passing (parameters coming with messages). In particular, a STS is a tuple (A,S,I, F,T) where A is an alphabet which corresponds to the set of labels, S is a set of states, I S is the initial state, F S is a nonempty set of final states, and T S A S is the transition relation. Note that a label is either the (internal) τ action or a tuple (m,d,pl) where m is the message name, d indicates the communication direction (either an emission! or a reception?), and pl is either a list of typed data terms if the label corresponds to an emission, or a list of typed variables if the label is a reception. STSs can be easily derived from higher-level description languages such as Abstract BPEL for instance where such abstractions were used for verification, composition or adaptation of Web services. Contributions. In this tool paper, we present Comparator, a tool supporting the composition task by analysing the behavioural interfaces of the components to be composed. Comparator accepts as input two behavioural interfaces described using STSs. We assume that both STSs interact wrt. a synchronous communication model. Our tool indicates whether the interfaces can interoperate correctly. Otherwise, it provides three outputs: a detailed compatibility measure for all states in both STSs, a list of mismatches, and a global compatibility measure.

2 Meriem Ouederni, Gwen Salaün, Javier Cámara, and Ernesto Pimentel Comparator can be used as a stand-alone application through a Web interface. It is also integrated into ITACA [2], a toolbox for model-based adaptation. 2 Quantifying Behavioural Compatibility Interfaces are compatible if they interact successfully with no mismatch wrt. a criterion set on their observable actions. This criterion is called compatibility notion, e.g., unspecified receptions where all reachable emissions can be received in the other STS, and unidirectional complementarity where all actions in one STS have a matching in the other STS [3]. In this section, we overview the main ideas behind our measure computation. All the theoretical background for identifying possible mismatches and measuring the compatibility of two STSs is presented in [4]. The computation process accepts as input two protocols STS 1 = (A 1,S 1,I 1,F 1,T 1 ) and STS 2 = (A 2,S 2,I 2,F 2,T 2 ) and computes a compatibility degree for each global state, i.e., each couple of states (s 1,s 2 ) with s 1 S 1 and s 2 S 2. All compatibility scores range between 0 and 1, where 1 means a perfect compatibility. Our approach is parameterised by a compatibility notion, that is, we measure how far the two interfaces are from being compatible wrt. this compatibility notion. To measure the compatibility of two STSs, we compute the compatibility degree for all possible global states in two steps. We first compute a static compatibility based on the comparison of state nature (i.e., initial, final, or none of them), labels, and types of exchanged parameters. These measures are then used to quantify the behavioural compatibility taking the label ordering into account and the structure of both STSs. The second step returns the compatibility measure for all global states in both STSs. State compatibility is based on the fact that two states are compatible if their preceding and succeeding neighbouring states are compatible, where the preceding and succeeding neighbours of state s in transitions (s,l, s ) and (s,l,s ) are respectively the states s and s. Hence, in order to measure the compatibility degree of two protocols, we consider an iterative approach which propagates the compatibility degree from one state to all its neighbours. This process is called compatibility flooding and works using a double propagation (forward and backward). 3 Online Comparator Tool Our approach for measuring the protocol compatibility degree has been fully implemented in a tool called Comparator. We encoded it in Python 2.6 using Eclipse 3.5.1 as programming IDE. The tool accepts as input two XML files corresponding to the interfaces, and a compatibility notion used as comparison criterion. Comparator returns the compatibility matrix, the mismatch list, and the global compatibility degree, which indicates how compatible the two interfaces are. The implementation of our proposal is highly modular, thus facilitating its extension with other compatibility notions. In order to make our Comparator tool widely

Comparator: A Tool for Quantifying Behavioural Compatibility 3 available to any potential users, we implemented a Web interface [1] so that anyone can use and run it online (Fig. 1). Experimental Results. We validated our tool on about 110 real-world examples, e.g., a car rental service, a travel booking system, a medical management system, or an online email service. Some of these examples are available online [1] to illustrate the results returned by our compatibility measure. Note that Comparator computes the compatibility degree of quite large systems (e.g., interfaces with hundreds of states and transitions) in a reasonable time (a few minutes). Evaluation. We evaluate our tool accuracy using precision and recall metrics [5], which estimate how much our measure meets the expected result. Precision measures the matching quality (number of false positive matches) and is defined as the ratio of the number of correct state matches found out of the total of state matches found. Recall is the coverage of the state matching results and is defined as the ratio of the number of correct state matches found out of the total of all correct state matches in the two protocols. An effective measure must produce high precision and recall values. We have computed these metrics for the examples of our database using both UC and UR notions. We assume (s 1,s 2 ) is a correct match if the state s 1 S 1 has the highest compatibility degree with s 2 S 2 among those in S 2. Our measuring process yields a precision and recall of 100% for compatible protocols. Our empirical analysis also showed the good quality of our approach for comparing incompatible protocols. For instance, the study of the car rental service [1] produces a precision and recall equal to 85% and 95%, respectively. We applied the same evaluation to a flight advice system [1] which helps travellers to find flight information. This yields a precision and a recall equal to 91% and 100%, respectively. We measured precision and recall for the other examples of our dataset as well, and our study revealed very high values for both metrics (more than 90% in average). 4 Application to Model-based Adaptation of Web Services Our compatibility degree results have some straightforward applications for, e.g., service selection, ranking, and adaptation. We focus in the rest of this section on software adaptation [6]. Adaptation aims at computing an intermediate component or adaptor to resolve mismatches existing between services interacting with each other. An adaptor is built from abstract descriptions, a.k.a adaptation contracts, specifying how the involved services can successfully interact together for fulfilling some specific requirements in spite of the mismatches existing in their interfaces. The Comparator tool was integrated into a graphical environment, called ACIDE, for the interactive specification of adaptation contracts. This module belongs to a complete framework, called ITACA, dedicated to the design and synthesis of adaptors for Web services [2]. ACIDE includes a graphical representation of STSs and a visualization of their ports. Each label on the STS corresponds to a port in the graphical description. Ports include a data port for each parameter contained in the parameter list of

4 Meriem Ouederni, Gwen Salaün, Javier Cámara, and Ernesto Pimentel the label. Correspondences between STSs are represented as port bindings and data port bindings. Starting from the graphical representation, the architect can specify these bindings by successively connecting ports and data ports. The resulting collection of bindings is the adaptation contract. Our compatibility measure can be used in different ways to specify the adaptation contract in ACIDE. Firstly, it is possible to automatically generate port bindings for labels that perfectly match. Secondly, the designer can also select a state (label, resp.) in one protocol, and Comparator returns the best state (label, resp.) matching in the other protocol. For instance, Fig. 2 shows the state-based matching results when the designer selects state number 2 in the top left STS and compares it with all the states in the client STS on the right. Fig. 1. Online Comparator Fig. 2. State-based matching in ACIDE References 1. Comparator Web Page. http://ouederni.perso.enseeiht.fr/10-comparator-tool.html. 2. J. Cámara, J. Antonio Martín, G. Salaün, J. Cubo, M. Ouederni, C. Canal, and E. Pimentel. ITACA: An Integrated Toolbox for the Automatic Composition and Adaptation of Web Services. In Proc. of ICSE 09, pages 627 630. IEEE, 2009. 3. F. Durán, M. Ouederni, and G. Salaün. A Generic Framework for N-Protocol Compatibility Checking. SCP, 77(7-8):870 886, 2012. 4. M. Ouederni, G. Salaün, and E. Pimentel. Measuring the Compatibility of Service Interaction Protocols. In Proc. of SAC 11, pages 1560 1567. ACM, 2011. 5. G. Salton and M. J. McGill. Introduction to Modern Information Retrieval. McGraw-Hill New York, 1983. 6. D. M. Yellin and R. E. Strom. Protocol Specifications and Component Adaptors. ACM Trans. Program. Lang. Syst., 19(2):292 333, 1997.