19 research outputs found

    Compatibility and inheritance in software architectures

    Get PDF
    Abstract The application of formal methods to the development of software depends on the availability of adequate models and formalisms for each of the stages of the development process. In this work, we focus on the level of design called Software Architecture. At this level, the system is described as a collection of interrelated components, and it is here where the properties derived from the system's structure can be naturally analyzed. Our approach uses process algebras as a formal basis for the description and analysis of software architectures. Process algebras are widely accepted for the speciÿcation of software systems. In particular, -calculus addresses the description of systems with a dynamic or evolving topology, and permits their analysis for bisimilarity and other interesting properties. Though bisimilarity determines the equivalence of behavior, more exible relations are needed in the context of Software Engineering, in order to support formally the notions of conformance and reÿnement of behavior. In this paper we present a relation of compatibility in the context of -calculus which formalizes the notion of conformance of behavior between software components. Our approach is enhanced with the deÿnition of a relation of inheritance among processes. This relation preserves compatibility and indicates whether a process can be considered as a specialization or extension of another one. The suitability of our approach is shown by its application to the ÿeld of Software Architecture

    Analysis and Verification of Service Interaction Protocols - A Brief Survey

    Get PDF
    Modeling and analysis of interactions among services is a crucial issue in Service-Oriented Computing. Composing Web services is a complicated task which requires techniques and tools to verify that the new system will behave correctly. In this paper, we first overview some formal models proposed in the literature to describe services. Second, we give a brief survey of verification techniques that can be used to analyse services and their interaction. Last, we focus on the realizability and conformance of choreographies.Comment: In Proceedings TAV-WEB 2010, arXiv:1009.330

    Tau Be or not Tau Be? - A Perspective on Service Compatibility and Substitutability

    Get PDF
    One of the main open research issues in Service Oriented Computing is to propose automated techniques to analyse service interfaces. A first problem, called compatibility, aims at determining whether a set of services (two in this paper) can be composed together and interact with each other as expected. Another related problem is to check the substitutability of one service with another. These problems are especially difficult when behavioural descriptions (i.e., message calls and their ordering) are taken into account in service interfaces. Interfaces should capture as faithfully as possible the service behaviour to make their automated analysis possible while not exhibiting implementation details. In this position paper, we choose Labelled Transition Systems to specify the behavioural part of service interfaces. In particular, we show that internal behaviours (tau transitions) are necessary in these transition systems in order to detect subtle errors that may occur when composing a set of services together. We also show that tau transitions should be handled differently in the compatibility and substitutability problem: the former problem requires to check if the compatibility is preserved every time a tau transition is traversed in one interface, whereas the latter requires a precise analysis of tau branchings in order to make the substitution preserve the properties (e.g., a compatibility notion) which were ensured before replacement.Comment: In Proceedings WCSI 2010, arXiv:1010.233

    Integración de procesos de negocio basados en servicios Web: Coreografía y satisfacción de restricciones

    Get PDF
    Los procesos de negocio en ocasiones necesitan funcionalidades adicionales que pueden alcanzarse empleando servicios del mismo dominio o de uno externo. Durante este procedimiento, los servicios web involucrados deben integrarse, de tal forma que sus funcionalidades individuales generen un comportamiento global. La coreografía de servicios web controla la secuencia de las interacciones entre los servicios durante el proceso de integración. Este artículo presenta una aproximación al modelado basado en restricciones de la coreografía de servicios web, a fin de lograr su automatización

    Prototyping Component-Based Self-Adaptive Systems with Maude

    Get PDF
    Software adaptation is becoming increasingly important as more and more applications need to dynamically adapt their structure and behavior to cope with changing contexts, available resources and user requirements. Maude is a high-performance reflective language and system, supporting both equational and rewriting logic specification and programming for a wide range of applications. In this paper we describe our experience in using Maude for prototyping component-based self-adaptive systems so that they can be formally simulated and analyzed. In order to illustrate the benefits of using Maude in this context, a case study in the robotics domain is presented.Ministerio de Ciencia e Innovación TIN2009-08572Fundación Séneca-CARM 15374/PI/1

    Formalizing Web Service Choreographies

    Get PDF
    Current Web service choreography proposals, such as BPEL4WS, BPSS, WSFL, WSCDL or WSCI, provide notations for describing the message flows in Web service collaborations. However, such proposals remain at the descriptive level, without providing any kind of reasoning mechanisms or tool support for checking the compatibility of Web services based on the proposed notations. In this paper we present the formalization of one of these Web service choreography proposals (WSCI), and discuss the benefits that can be obtained by such formalization. In particular, we show how to check whether two or more Web services are compatible to interoperate or not, and, if not, whether the specification of adaptors that mediate between them can be automatically generated ---hence enabling the communication of (a priori) incompatible Web services

    Measuring the Compatibility of Service Interaction Protocols

    Get PDF
    International audienceChecking the compatibility of service interfaces allows one to avoid erroneous executions when composing the services together. This task is especially difficult when considering interaction protocols, that is messages and their application order, in service interfaces. Although service compatibility has been intensively studied, in particular for discovery purposes, most of existing works return a Boolean result. However, if two services are incompatible, these approaches do not indicate whether the services are almost compatible or totally incompatible. This information is crucial if one wants to apply adaptation techniques, for instance, to successfully compose these services in spite of existing mismatches. In this paper, we propose a generic flooding-based techniques for measuring the compatibility degree of service protocols. We illustrate our approach with two compatibility notions, namely unspecified receptions and unidirectional complementarity. Our solution is fully automated by a prototype tool we have implemented

    Towards Formalizing Behavorial Substitutability in Component Frameworks

    Get PDF
    International audienceWhen using a component framework, developers need to respect the behavior implemented by the components. Static information about the component interface is not sufficient. Dynamic information such as the description of valid sequences of operations is required. In this paper we propose a mathematical model and a formal language to describe the knowledge about behavior. We rely on a hierarchical model of deterministic finite state-machines. The execution model of these state-machines follows the Synchronous Paradigm. We focus on extension of components, owing to the notion of behavioral substitutability. A formal semantics for the language is defined and a composition-ality result allows us to get modular model-checking facilities. From the language and the model, we can draw practical design rules that are sufficient to preserve behavorial substitutability. Associated tools may ensure correct (re)use of components, as well as automatic simulation and verification , code generation, and run-time checks
    corecore