125 research outputs found
Fault Tolerance Framework for Composite Web Services
A composite Web service combines multiple, logically interrelated services for creating more common services meeting complex requirements from users. The services participating in a composition coordinate the actions of distributed activity using Web services protocols to reach consistent agreement on the outcome of joint operation. However, as services run over unreliable protocols, there is a great chance that services fail due to the failure of protocols. However, current protocol standards provide fault-tolerance but are limited to backward recovery using expensive compensation and roll-back strategies. This paper gives an extension of the existing Web services business activity (WS-BA) protocol to deal with failures using forward recovery approach. A set of common failure types affecting the execution of component services is identified, and recovery solutions for each identified failure are also presented. The fault-handling extension of the WS-BA protocol implements recovery solutions for each of the identified failures to handle failures at runtime. Another important aspect about which the WS-BA protocol specification is unclear is reaching and notifying consistent outcome on the completion of joint work. This study extends the WS-BA protocol to notify consistent outcome reached by all participating services. The implementation and testing of the framework are performed using the model-checking and verification tool UPPAAL. A well-known application example supports the study. The key properties of the framework, like the execution of corresponding recovery actions in cases of failures and reaching a consistent agreement on the outcome of joint operation, are verified
Model checking web applications
The modelling of web-based applications can assist in capturing and understanding their behaviour.
The development of such applications requires the use of sound methodologies to ensure that the
intended and actual behaviour are the same.
As a verification technique, model checking can assist in finding design
flaws and simplifying the
design of a web application, and as a result the design and the security of the web application can
be improved. Model checking has the advantage of using an exhaustive search of the state space of
a system to determine if the specifications are true or not in a given model.
In this thesis we present novel approaches in modelling and verifying web applications' properties
to ensure their design correctness and security. Since the actions in web applications rely on both
the user input and the server status; we propose an approach for modelling and verifying dynamic
navigation properties. The Spin model checker has been used successfully in verifying communication
protocols. However, the current version of Spin does not support modelling time. We integrate
discrete time in the Spin model to allow the modelling of realistic properties that rely on time
constraints and to analyse the sequence of actions and time. Examining the sequence of actions in
web applications assists in understanding their behaviour in different scenarios such as navigation
errors and in the presence of an intruder. The model checker Uppaal is presented in the literature
as an alternative to Spin when modelling real-time systems. We develop models with real time
constraints in Uppaal in order to validate the results from the Spin models and to compare the
differences between modelling with real time and with discrete time as in Spin. We also compare
the complexity and expressiveness of each model checker in verifying web applications' properties.
The web application models in our research are developed gradually to ensure their correctness and
to manage the complexities of specifying the security and navigation properties. We analyse the
compromised model to compare the differences in the sequence of actions and time with the secure
model to assist in improving early detections of malicious behaviour in web applications
Proving Properties of Rich Internet Applications
We introduce application layer specifications, which allow us to reason about
the state and transactions of rich Internet applications. We define variants of
the state/event based logic UCTL* along with two example applications to
demonstrate this approach, and then look at a distributed, rich Internet
application, proving properties about the information it stores and
disseminates. Our approach enables us to justify proofs about abstract
properties that are preserved in the face of concurrent, networked inputs by
proofs about concrete properties in an Internet setting. We conclude that our
approach makes it possible to reason about the programs and protocols that
comprise the Internet's application layer with reliability and generality.Comment: In Proceedings WWV 2013, arXiv:1308.026
Formalization and Model Checking of BPMN Collaboration Diagrams with DD-LOTOS
Business Process Model and Notation (BPMN) is a standard graphical notation for modeling complex business processes. Given the importance of business processes, the modeling analysis and validation stage for BPMN is essential. In recent years, BPMN notation has become a widespread practice in business process modeling because of these intuitive diagrams. BPMN diagrams are built from basic elements. The major challenge of BPMN diagrams is the lack of formal semantics, which leads to several interpretations of the concerned diagrams. Hence, this work aims to propose an approach for checking BPMN collaboration diagrams to guarantee some properties of smooth functioning of systems modeled by BPMN notation. The verification approach used in this work is based on model checking techniques. The approach proposes as a first step a formal semantics of the collaboration diagrams in terms of the formal language DD-LOTOS, i.e., a phase of the transformation of collaboration diagrams into DD-LOTOS. This transformation is guided by applying the inference rules of the formal semantics of the DD-LOTOS formal language, and we then use the UPPAAL model checker to check the absence of deadlock, safety properties, and liveness properties
Towards verification of computation orchestration
Recently, a promising programming model called Orc has been proposed to support a structured way of orchestrating distributed Web Services. Orc is intuitive because it offers concise constructors to manage concurrent communication, time-outs, priorities, failure of Web Services or communication and so forth. The semantics of Orc is precisely defined. However, there is no automatic verification tool available to verify critical properties against Orc programs. Our goal is to verify the orchestration programs (written in Orc language) which invoke web services to achieve certain goals. To investigate this problem and build useful tools, we explore in two directions. Firstly, we define a Timed Automata semantics for the Orc language, which we prove is semantically equivalent to the operational semantics of Orc. Consequently, Timed Automata models are systematically constructed from Orc programs. The practical implication is that existing tool supports for Timed Automata, e.g., Uppaal, can be used to simulate and model check Orc programs. An experimental tool has been implemented to automate this approach. Secondly, we start with encoding the operational semantics of Orc language in Constraint Logic Programming (CLP), which allows a systematic translation from Orc to CLP. Powerful constraint solvers like CLP(R) are then used to prove traditional safety properties and beyond, e.g., reachability, deadlock-freeness, lower or upper bound of a time interval, etc. Counterexamples are generated when properties are not satisfied. Furthermore, the stepwise execution traces can be automatically generated as the simulation steps. The two different approaches give an insight into the verification problem of Web Service orchestration. The Timed Automata approach has its merits in visualized simulation and efficient verification supported by the well developed tools. On the other hand, the CPL approach gives better expressiveness in both modeling and verification. The two approaches complement each other, which gives a complete solution for the simulation and verification of Computation Orchestration
TTSS'11 - 5th International Workshop on Harnessing Theories for Tool Support in Software
The aim of the workshop is to bring together practitioners and researchers from academia, industry and government to present and discuss ideas about:
• How to deal with the complexity of software projects by multi-view modeling and separation of concerns about the design of functionality, interaction, concurrency, scheduling, and nonfunctional requirements, and
• How to ensure correctness and dependability of software by integrating formal methods and tools for modeling, design, verification and validation into design and development processes and environments.
• Case studies and experience reports about harnessing static analysis tools such as model checking, theorem proving, testing, as well as runtime monitoring
- …