2,743 research outputs found

    Using formal methods to develop WS-BPEL applications

    Get PDF
    In recent years, WS-BPEL has become a de facto standard language for orchestration of Web Services. However, there are still some well-known difficulties that make programming in WS-BPEL a tricky task. In this paper, we firstly point out major loose points of the WS-BPEL specification by means of many examples, some of which are also exploited to test and compare the behaviour of three of the most known freely available WS-BPEL engines. We show that, as a matter of fact, these engines implement different semantics, which undermines portability of WS-BPEL programs over different platforms. Then we introduce Blite, a prototypical orchestration language equipped with a formal operational semantics, which is closely inspired by, but simpler than, WS-BPEL. Indeed, Blite is designed around some of WS-BPEL distinctive features like partner links, process termination, message correlation, long-running business transactions and compensation handlers. Finally, we present BliteC, a software tool supporting a rapid and easy development of WS-BPEL applications via translation of service orchestrations written in Blite into executable WS-BPEL programs. We illustrate our approach by means of a running example borrowed from the official specification of WS-BPEL

    An empirical study on mutation testing of WS-BPEL programs

    Get PDF
    Nowadays, applications are increasingly deployed as Web services in the globally distributed cloud computing environment. Multiple services are normally composed to fulfill complex functionalities. Business Process Execution Language for Web Services (WS-BPEL) is an XML-based service composition language that is used to define a complex business process by orchestrating multiple services. Compared with traditional applications, WS-BPEL programs pose many new challenges to the quality assurance, especially testing, of service compositions. A number of techniques have been proposed for testing WS-BPEL programs, but only a few studies have been conducted to systematically evaluate the effectiveness of these techniques. Mutation testing has been widely acknowledged as not only a testing method in its own right but also a popular technique for measuring the fault-detection effectiveness of other testing methods. Several previous studies have proposed a family of mutation operators for generating mutants by seeding various faults into WS-BPEL programs. In this study, we conduct a series of empirical studies to evaluate the applicability and effectiveness of various mutation operators for WS-BPEL programs. The experimental results provide insightful and comprehensive guidance for mutation testing of WS-BPEL programs in practice. In particular, our work is the systematic study in the selection of effective mutation operators specifically for WS-BPEL programs

    A WSDL-Based Type System for WS-BPEL

    Get PDF
    We tackle the problem of providing rigorous formal foundations to current software engineering technologies for web services. We focus on two of the most used XML-based languages for web services: WSDL and WS-BPEL. To this aim, first we select an expressive subset of WS-BPEL, with special concern for modeling the interactions among web service instances in a network context, and define its operational semantics. We call ws-calculus the resulting formalism. Then, we put forward a rigorous typing discipline that formalizes the relationship existing between ws-calculus terms and the associated WSDL documents and supports verification of their compliance. We prove that the type system and the operational semantics of ws-calculus are ‘sound’ and apply our approach to an example application involving three interacting web services

    Modeling Web Services Composition with Transaction Extension for Performance Evaluation

    Get PDF
    Web Services can be composed to build domain-specific application and solution. The standards of several Web services composition (WSC) are proposed, for example, WS-BPEL and WS-CDL. Moreover, there is a great demand for the performance optimization of WSC recently. However, WS-BPEL lacks formal semantics, so it is very difficult to verify WSC and evaluate the performance of WSC. Therefore, considering such situation and Long-Running Transaction (LRT) in WS-BPEL, in this paper, we adopt General Stochastic High-Level Petri Net (GSHLPN) as basic formal description tool of WSC based on WS-BPEL and model the context of LRT Our approach can provide a more real environment for evaluating and optimizing the performance of WSC based on WS-BPEL

    Oblikovanje programskih jezika za događajima poticanu kompoziciju usluga

    Get PDF
    To adapt to rapidly changing market conditions and increase the return of investment, today’s IT solutions usually combine service-oriented architecture (SOA) and event-driven architecture (EDA) that support reusability, flexibility, and responsiveness of business processes. Programming languages for development of event-driven service compositions face several main challenges. First, a language should be based on standard service composition languages to be compatible with SOA-enabling technologies. Second, a language should enable seamless integration of services into event-driven workflows. Third, to overcome a knowledge divide, language should enable seamless cooperation between application developers with different skills and knowledge. Since WS-BPEL is widely accepted as standard executable language in SOA, we extended WS-BPEL with support for event-driven workflow coordination. We designed event-handling mechanisms as special-purpose Coopetition services and augmented WS-BPEL with primitives for their invocation. Coopetition services augment SOA with fundamental EDA characteristics: decoupled interactions, many-to-many communication, publish/subscribe messaging, event triggering, and asynchronous operations. To make the application development familiar to wide community of developers, we designed an application-level end-user language on top of WS-BPEL whose primitives for invocation of regular Web services and Coopetition services resemble the constructs of typical scripting and coordination language.S ciljem prilagodbe promjenjivim tržišnim uvjetima i povećanja isplativosti ulaganja, današnji informacijski sustavi grade se spregom uslužno usmjerene i događajima poticane arhitekture koje omogućuju oblikovanje višestruko iskoristivih i prilagodljivih poslovnih procesa s mogućnošću odziva na pojavu događaja. Programski jezici za događajima poticanu kompoziciju usluga pokazuju nekoliko glavnih značajki. Prvo, jezik mora naslijediti svojstva standardnih jezika za kompoziciju usluga kako bi bio sukladan tehnologijama uslužno-usmjerene arhitekture. Drugo, jezik mora omogućiti prirodni način povezivanja usluga u događajima poticane poslovne procese. Treće, razvijateljima različitih znanja i vještina potrebno je osigurati mogućnost udruženog sudjelovanja u razvoju primjenskih programa. Budući da je WS-BPEL standardni jezik za kompoziciju usluga, izabran je kao osnovica za oblikovanje jezika za događajima poticanu kompoziciju usluga. Oblikovan je poseban skup usluga suradnje i natjecanja kojima je uslužno-usmjerena arhitektura proširena elementima događajima poticane arhitekture, kao što su međudjelovanje zasnovano na slaboj povezivosti, komunikacija u grupi, objava/pretplata, reakcija na pojavu događaja i asinkrone operacije. Jezik WS-BPEL proširen je programskim primitivama za pozivanje tih usluga. Kako bi se razvoj primjenskih programa približio širokoj zajednici graditelja programske potpore, povrh jezika WS-BPEL oblikovan je primjenski jezik za krajnjeg korisnika čije primitive za pozivanje primjenskih usluga te usluga suradnje i natjecanja nalikuju naredbama skriptnih i koordinacijskih jezika

    Generación dinámica de invariantes para composiciones de servicios web en WS-BPEL

    Get PDF
    En los últimos años, las arquitecturas orientadas a servicios están cambiando la filosofía de desarrollo de software en muchos entornos. El uso de servicios web facilita significativamente la interoperabilidad entre sistemas, permitiendo programar sistemas de gran tamaño usando otros más simples de manera sencilla. El principal lenguaje para componer servicios es WS-BPEL 2.0, que ha sido estandarizado por OASIS con la participación de las grandes empresas del sector informático. Sin embargo, las principales técnicas de prueba no han sido adaptadas a WS-BPEL, quedando como uno de los principales retos para su adopción. El objetivo de esta tesis es estudiar la validez de la generación dinámica de invariantes (también conocida como generación de invariantes potenciales) para apoyar la prueba de caja blanca de composiciones de servicios web en WS-BPEL. En primer lugar, la tesis comprueba la viabilidad de la generación dinámica de invariantes para WS-BPEL. Para ello se presenta una arquitectura basada en el generador dinámico de invariantes Daikon, que ha demostrado ser útil para lenguajes imperativos como C/C++, Java y Perl. Daikon es software libre, y se ha integrado con código propio y otros dos sistemas libres: el motor de ejecución compatible WS-BPEL 2.0 ActiveBPEL y la biblioteca de prueba unitaria para WS-BPEL BPELUnit, que incorpora un mecanismo de simulación de servicios web (pues puede haber servicios no disponibles para pruebas). Los tres sistemas han sido adaptados para crear Takuan, el único generador dinámico de invariantes para WS-BPEL hasta la fecha. Tras implementar Takuan se realizaron pruebas para comprobar la utilidad de los invariantes que generaba. En ellas se observaron diversas mejoras específicas de WS-BPEL que permitirían optimizar su rendimiento. Tras implementarlas y evaluarlas, se obtuvo una mejora sustancial tanto en el tiempo de ejecución de Takuan como en la cantidad de invariantes que produce, descartando muchos invariantes no informativos y redundantes. Una vez estuvieron dichas mejoras implementadas se demostró la estabilidad de los invariantes generados por Takuan, permitiendo asegurar su correcto funcionamiento con un conjunto soporte adecuado. Los resultados obtenidos permiten afirmar la validez de la generación dinámica de invariantes para apoyar la prueba de caja blanca de composiciones WS-BPEL

    An architecture for autonomic web service process planning

    Get PDF
    Web service composition is a technology that has received considerable attention in the last number of years. Languages and tools to aid in the process of creating composite web services have been received specific attention. Web service composition is the process of linking single web services together in order to accomplish more complex tasks. One area of web service composition that has not received as much attention is the area of dynamic error handling and re-planning, enabling autonomic composition. Given a repository of service descriptions and a task to complete, it is possible for AI planners to automatically create a plan that will achieve this goal. If however a service in the plan is unavailable or erroneous the plan will fail. Motivated by this problem, this paper suggests autonomous re-planning as a means to overcome dynamic problems. Our solution involves automatically recovering from faults and creating a context-dependent alternate plan

    Abstract syntax of WS-BPEL 2.0

    Get PDF
    WS-BPEL 2.0 is the current version of the "Business Process Execution Language for Web Services". Until now, no formal definition of its syntax exists. We present a complete syntax of WS-BPEL 2.0 of both abstract and executable processes
    corecore