114 research outputs found

    Automated Runtime Testing of Web Services

    Get PDF
    Service-oriented computing (SOC) is a relatively new paradigm for developing software applications through the composition of software units called services. With services, software is no longer owned but offered remotely, within or across organisational borders. Currently, the dominant technology for implementing services is that of Web services. Since service requestors do not usually have access to the implementation source code, from their perspective, services are offered as black boxes. However, requestors need to verify first that provided services are trustworthy and implemented correctly before they are integrated into their own business-critical systems. The verification and testing of remote, third-party services involve unique considerations, since testing must be performed in a blackbox manner and at runtime. Addressing the aforementioned concerns, the research work described in this thesis investigates the feasibility of testing Web services for functional correctness, especially at runtime. The aim is to introduce rigour and automation to the testing process, so that service requestors can verify Web services with correctness guarantees and with the aid of tools. Thus, formal methods are utilised to specify the functionality of Web services unambiguously, so that they are amenable to automated and systematic testing. The well-studied stream X-machine (SXM) formalism has been selected as suitable for modelling both the dynamic behavior and static data of Web services, while a proven testing method associated with SXMs is used to derive test sets that can verify the correctness of the implementations. This research concentrates on testing stateful Web services, in which the presence of state makes their behaviour more complex and more difficult to specify and test. The nature of Web service state, its effect on service behaviour, and implications on service modelling and testing, are investigated. In addition, comprehensive techniques are described for deriving a stream X-machine specification of a Web service, and for subsequently testing its implementation for equivalence to the specification. Then, a collaborative approach that makes possible third-party Web service verification and validation is proposed, in which the service provider is required to supply a SXM specification of the service functionality along with the standard WSDL description of its interface. On top of that, techniques are proposed for service providers to include information that ground the abstract SXM specification to the concrete Web service implementation. Having these descriptions available, it is possible to automate at runtime not only test set generation but also test case execution on Web services. A tool has been developed as part of this work, which extends an existing SXM-based testing tool (JSXM). The tool supports the tester activities, consisting of generation of abstract test cases from the SXM specification and their execution on the Web service under test using the supplied grounding information. Practical Web service examples are also used throughout the thesis to demonstrate the proposed techniques

    On using Markov decision processes to model integration solutions for disparate resources in software ecosystems

    Get PDF
    The file attached to this record is the author's final peer reviewed version. The Publisher's final version can be found by following the DOI link.The software ecosystem of an enterprise is usually composed of an heterogeneous set of applications, databases, documents, spreadsheets, and so on. Such resources are involved in the enterprise’s daily activities by supporting its business processes. As a consequence of market change and the enterprise evolution, new business processes emerge and the current ones have to be evolved to tackle the new requirements. It is not a surprise that different resources may be required to collaborate in a business process. However, most of these resources were devised without taking into account their integration with the others, i.e., they represent isolated islands of data and functionality. Thus, the goal of an integration solution is to enable the collaboration of different resources without changing them or increasing their coupling. The analysis of integration solutions to predict their behaviour and find possible performance bottlenecks is an important activity that contributes to increase the quality of the delivered solutions. Software engineers usually follow an approach that requires the construction of the integration solution, the execution of the actual integration solution, and the collection of data from this execution in order to analyse and predict their behaviour. This is a costly, risky, and time-consuming approach. This paper discusses the usage of Markov models for formal modelling of integration solutions aiming at enabling the simulation of the conceptual models of integration solutions still in the design phase. By using well-established simulation techniques and tools at an early development stage, this new approach contributes to reduce cost, risk, development time and improve software quality attributes such as robustness, scalability, and maintenance

    Multi User Context-Aware Service Selection for Mobile Environments - A Heuristic Technique

    Get PDF
    Modern service systems build on top of service dominant designs which encompass contextualization (value-in-context) and collaboration (value-in-use) between users and service providers. Processes in this domain often require the consideration of both context information (e.g., location or time of day) and multiple participating users where each user probably has its own preferences and constraints (e.g., restricted overall budget). However, selecting a suitable service provider for each action of a process, especially when some of these actions are conducted together by several users, can be a complex decision problem in multi user context-aware service systems. Consequently, exact approaches are not fit to solve such a service selection problem in appropriate time. Thus, the paper proposes a heuristic technique applying a decomposition of the users’ global constraints and a local service selection. In this way, the aim is to determine a feasible service composition for each participating user while taking the users’ individual preferences and constraints as well as context information into account. The evaluation of the heuristic technique shows, based on a real-world scenario in the tourism domain, that the proposed approach is able to achieve close-to-optimal solutions while efficiently scaling with problem size and therefore can support decision makers in multi user context-aware service Systems

    Asynchronous Coordination of Stateful Autonomic Managers in the Cloud

    Get PDF
    International audienceCloud computing is now an omnipresent paradigm in modern programming. Cloud applications usually consist of several software components deployed on remote virtual machines. Managing such applications is a challenging problem because manual administration is no longer realistic for these complex distributed systems. Thus, auto-nomic computing is a promising solution for monitoring and updating these applications automatically. This is achieved through the automation of administration functions and the use of control loops called au-tonomic managers. An autonomic manager observes the environment, detects changes, and reconfigures dynamically the application. Multiple autonomic managers can be deployed in the same system and must make consistent decisions. Using them without coordination may lead to inconsistencies and error-prone situations. In this paper, we present our approach for coordinating stateful autonomic managers, which relies on a simple coordination language, new techniques for asynchronous controller synthesis and Java code generation. We used our approach for coordinating real-world cloud applications

    S+Net: extending functional coordination with extra-functional semantics

    Get PDF
    This technical report introduces S+Net, a compositional coordination language for streaming networks with extra-functional semantics. Compositionality simplifies the specification of complex parallel and distributed applications; extra-functional semantics allow the application designer to reason about and control resource usage, performance and fault handling. The key feature of S+Net is that functional and extra-functional semantics are defined orthogonally from each other. S+Net can be seen as a simultaneous simplification and extension of the existing coordination language S-Net, that gives control of extra-functional behavior to the S-Net programmer. S+Net can also be seen as a transitional research step between S-Net and AstraKahn, another coordination language currently being designed at the University of Hertfordshire. In contrast with AstraKahn which constitutes a re-design from the ground up, S+Net preserves the basic operational semantics of S-Net and thus provides an incremental introduction of extra-functional control in an existing language.Comment: 34 pages, 11 figures, 3 table
    • …
    corecore