14 research outputs found

    Framework for Automatic Checkpoint Generation

    Get PDF
    Web services provide services to their consumers in accordance with terms and conditions laid down in a document called as Service Level Agreement (SLA). Web services have to abide by these terms and conditions failing which, SLA faults result. Fault handling of web services is a key mechanism using which SLA faults can be avoided. We propose fault handling of choreographed web services using checkpointing and recovery. We propose checkpointing in three stages: design, deployment and dynamic checkpointing. In this paper we propose a framework for generation of checkpoint locations automatically in a given choreography document by applying design time checkpointing rules. We have also developed a tool to demonstrate that the proposed framework is indeed implementable

    Dynamic Checkpointing of Composite Web Services

    Get PDF
    Web services provide services to their consumers in accordance with terms and conditions laid down in a document called as Service Level Agreement (SLA). Web services have to abide by these terms and conditions failing which, SLA faults result. Fault handling of web services is a key mechanism using which SLA faults can be avoided. We propose fault handling of choreographed web services using checkpointing and recovery. We propose checkpointing in three stages: design, deployment and dynamic checkpointing. We have presented first two stages of checkpointing in our earlier publications. In this paper we discuss the need for dynamic checkpointing and, various factors to be considered while revising checkpoint locations dynamically. We also propose a framework for implementing dynamic checkpointing

    Reversible Computation: Extending Horizons of Computing

    Get PDF
    This open access State-of-the-Art Survey presents the main recent scientific outcomes in the area of reversible computation, focusing on those that have emerged during COST Action IC1405 "Reversible Computation - Extending Horizons of Computing", a European research network that operated from May 2015 to April 2019. Reversible computation is a new paradigm that extends the traditional forwards-only mode of computation with the ability to execute in reverse, so that computation can run backwards as easily and naturally as forwards. It aims to deliver novel computing devices and software, and to enhance existing systems by equipping them with reversibility. There are many potential applications of reversible computation, including languages and software tools for reliable and recovery-oriented distributed systems and revolutionary reversible logic gates and circuits, but they can only be realized and have lasting effect if conceptual and firm theoretical foundations are established first

    Reversible Computation: Extending Horizons of Computing

    Get PDF
    This open access State-of-the-Art Survey presents the main recent scientific outcomes in the area of reversible computation, focusing on those that have emerged during COST Action IC1405 "Reversible Computation - Extending Horizons of Computing", a European research network that operated from May 2015 to April 2019. Reversible computation is a new paradigm that extends the traditional forwards-only mode of computation with the ability to execute in reverse, so that computation can run backwards as easily and naturally as forwards. It aims to deliver novel computing devices and software, and to enhance existing systems by equipping them with reversibility. There are many potential applications of reversible computation, including languages and software tools for reliable and recovery-oriented distributed systems and revolutionary reversible logic gates and circuits, but they can only be realized and have lasting effect if conceptual and firm theoretical foundations are established first

    Multiparty session types for dynamic verification of distributed systems

    Get PDF
    In large-scale distributed systems, each application is realised through interactions among distributed components. To guarantee safe communication (no deadlocks and communication mismatches) we need programming languages and tools that structure, manage, and policy-check these interactions. Multiparty session types (MPST), a typing discipline for structured interactions between communicating processes, offers a promising approach. To date, however, session types applications have been limited to static verification, which is not always feasible and is often restrictive in terms of programming API and specifying policies. This thesis investigates the design and implementation of a runtime verification framework, ensuring conformance between programs and specifications. Specifications are written in Scribble, a protocol description language formally founded on MPST. The central idea of the approach is a dynamic monitor, which takes a form of a communicating finite state machine, automatically generated from Scribble specifications, and a communication runtime stipulating a message format. We extend and apply Scribble-based runtime verification in manifold ways. First, we implement a Python library, facilitated with session primitives and verification runtime. We integrate the library in a large cyber-infrastructure project for oceanography. Second, we examine multiple communication patterns, which reveal and motivate two novel extensions, asynchronous interrupts for verification of exception handling behaviours, and time constraints for enforcement of realtime protocols. Third, we apply the verification framework to actor programming by augmenting an actor library in Python with protocol annotations. For both implementations, measurements show Scribble-based dynamic checking delivers minimal overhead and allows expressive specifications. Finally, we explore a static analysis of Scribble specifications as to efficiently compute a safe global state from which a monitored system of interacting processes can be recovered after a failure. We provide an implementation of a verification framework for recovery in Erlang. Benchmarks show our recovery strategy outperforms a built-in static recovery strategy, in Erlang, on a number of use cases.Open Acces

    Flexible modeling and execution of choreographies

    Get PDF
    Approaches to address domain specific problems often share overlapping requirements but typically satisfy them in a unique manner for example using service-oriented concepts. The notion of Collaborative, Dynamic & Complex (CDC) systems has been proposed in literature to address the requirements of application domains such as eScience and Collective Adaptive Systems in a unified, generic manner. CDC systems are characterized by dealing with potentially large amounts of data and/or participating applications which engage in complex interactions specified by some collaboration protocol. Furthermore, the need for adaptation mechanisms is a common requirement and users from these application domains are typically no IT experts. The choreography concept originally known from collaborations in the business domain captures the interaction between independent parties from a global perspective. Each party is denoted as a choreography participant, which is implemented by a workflow or a service. This concept provides a way to model and execute for example complex eScience experiments involving multiple scientific fields, scientific methods, and time and/or length scales as a set of coupled workflows. However, typical choreography concepts as described in literature do not provide the desired level of flexibility and ease of use in both modeling and execution to address the requirements of users in CDC system application domains such as eScience. Thus, existing choreography concepts have to be considerably extended by introducing the Model-as-you-go for Choreographies approach in this thesis as a central notion providing capabilities for the flexible modeling and execution of choreographies. In the context of this approach, we provide a concept for fostering reuse in choreography modeling in the form of so-called choreography fragments. Such fragments can be extracted from existing and inserted into new choreography models in order to save time as well as reuse established and approved logic by inexperienced modelers in a less error-prone manner. Furthermore, we provide support for the user-driven control of the complete choreography life cycle. This effectively allows users to automatically deploy the workflow models implementing a choreography as well as starting, pausing, resuming, and terminating a choreography instance, which is formed through the collective execution of workflow instances. Most importantly, the underlying complexity of managing a set of coupled workflow instances is completely hidden from the users. Additional flexibility is given by a concept that allows to re-run already executed choreography logic in order to enforce the convergence of a calculation towards a particular result or to react to errors with parameter changes. The proposed concepts are implemented in a message-based system, the ChorSystem, which is able to handle the challenges of choreography life cycle management from deployment, to run time control and the re-run of logic. Furthermore, the modeling and run time monitoring are integrated into one graphical tool supporting the seamless transition from modeling to execution of choreographies. The concepts, their supporting algorithms, and the prototypical ChorSystem are validated by a set of case studies from different CDC system application domains and evaluated by performance measurements showing the practical applicability

    Software architecture for modeling and distributing virtual environments

    Get PDF

    The University of Iowa 2018-19 General Catalog

    Get PDF

    The University of Iowa 2020-21 General Catalog

    Get PDF
    corecore