Deadlock Freedom by Construction

Slides:



Advertisements
Similar presentations
SYNTHESIS: a tool for automatically assembling correct and distributed component-based systems Massimo Tivoli Computer Science Department University of.
Advertisements

Pi4soa Implementation Issues WS-CDL Candidate Recommendation December 2005 Pi4 Technologies Ltd.
Web Services Choreography Description Language Overview 24th November2004 Steve Ross-Talbot Chief Scientist, Enigmatec Corporation Ltd Chair W3C Web Services.
Web Services Choreography Description Language Overview 6th December 2004 JP Morgan Steve Ross-Talbot Chair W3C Web Services Activity Co-chair W3C Web.
Developing Event Driven State Machine Workflows S1 S2 S3 S4 Adam Calderon Principal Engineer - Interknowlogy Microsoft MVP – C#
Design by Contract.
Inference of progress properties for (multi party) sessions Mario Coppo (Universita’ di Torino) joint work with Mariangiola Dezani, Nobuko Yoshida Lisbon,
Optimizing single thread performance Dependence Loop transformations.
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
Modeling Insider Attacks on Group Key Exchange Protocols Jonathan Katz Ji Sun Shin University of Maryland.
Semantic description of service behavior and automatic composition of services Oussama Kassem Zein Yvon Kermarrec ENST Bretagne France.
1 The SOCK SAGA Ivan Lanese Computer Science Department University of Bologna Italy Joint work with Gianluigi Zavattaro.
1 Synchronization strategies for global computing models Ivan Lanese Computer Science Department University of Bologna.
CPSC 668Set 16: Distributed Shared Memory1 CPSC 668 Distributed Algorithms and Systems Fall 2006 Prof. Jennifer Welch.
1 Ivan Lanese Computer Science Department University of Bologna Roberto Bruni Computer Science Department University of Pisa A mobile calculus with parametric.
1 SOCK and JOLIE from the formal basis to a service oriented programming language Ivan Lanese Computer Science Department University of Bologna Italy Joint.
1 Ivan Lanese Computer Science Department University of Bologna Italy Evolvable systems: some ideas for modelling With input from Davide Sangiorgi, Fabrizio.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio Montesi and Gianluigi.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio Montesi and Gianluigi.
1 Static vs dynamic SAGAs Ivan Lanese Computer Science Department University of Bologna/INRIA Italy.
CS533 - Concepts of Operating Systems
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
System-Level Types for Component-Based Design Paper by: Edward A. Lee and Yuhong Xiong Presentation by: Dan Patterson.
1 Joint work with Antonio Bucchiarone (Fondazione Bruno Kessler - IRST, Trento) and Fabrizio Montesi (University of Bologna/INRIA, Bologna) A Framework.
C++ Functions. 2 Agenda What is a function? What is a function? Types of C++ functions: Types of C++ functions: Standard functions Standard functions.
Memory Consistency Models Some material borrowed from Sarita Adve’s (UIUC) tutorial on memory consistency models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 13 Slide 1 Application architectures.
Supporting Automatic Model Inconsistency Fixing Yingfei Xiong University of Tokyo, Japan Zhenjiang HuNational Institute of Informatics, Japan Haiyan ZhaoPeking.
Developing Workflows with SharePoint Designer David Coe Application Development Consultant Microsoft Corporation.
VIENNA DEVELOPMENT METHOD -II. Improving the Incubator System  The software will not only record the current temperature of the system, but will also.
Dynamic Choreographies Safe Runtime Updates of Distributed Applications Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint.
Towards Global and Local Types for Adaptation Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint work with Mario Bravetti,
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Amending Choreographies Joint work with Fabrizio Montesi and Gianluigi Zavattaro.
Problem Statement: Users can get too busy at work or at home to check the current weather condition for sever weather. Many of the free weather software.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
“Dynamic fault handling mechanisms for service-oriented applications” Fabrizio Montesi, Claudio Guidi, Ivan Lanese and Gianluigi Zavattaro Department of.
Memory Consistency Models. Outline Review of multi-threaded program execution on uniprocessor Need for memory consistency models Sequential consistency.
WSMO Presentation „A formal Approach to Component Adaption“ – Summary on a paper by A. Bracciali, A. Brogi and C. Canal … to appear in The Journal of Systems.
Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.
16/11/ Web Services Choreography Requirements Presenter: Emilia Cimpian, NUIG-DERI, 07April W3C Working Draft.
G.v. Bochmann, revised Jan Comm Systems Arch 1 Different system architectures Object-oriented architecture (only objects, no particular structure)
CS223: Software Engineering
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Python: Building Geoprocessing Tools David Wynne, Ghislain Prince.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Adaptive Choreographies Joint work with Mila Dalla Preda, Jacopo Mauro and Maurizio.
Copyright 1999 G.v. Bochmann ELG 7186C ch.1 1 Course Notes ELG 7186C Formal Methods for the Development of Real-Time System Applications Gregor v. Bochmann.
Application architectures. Objectives l To explain the organisation of two fundamental models of business systems - batch processing and transaction processing.
Compositional Choreographies By Fabrizio Montesi and Nobuko Yoshida
Development Environment
Object-Oriented Analysis and Design
Memory Consistency Models
CS101 Introduction to Computing Lecture 19 Programming Languages
Recall The Team Skills Analyzing the Problem
Memory Consistency Models
Distribution and components
Choreographies: the idea
Testing & Testing Tools
Online Shopping APP.
Chapter 10: Process Implementation with Executable Models
Shanna-Shaye Forbes Ben Lickly Man-Kit Leung
Internet of Things A Process Calculus Approach
Chapter 20 Object-Oriented Analysis and Design
Software Construction Lecture 2
Memory Consistency Models
Axiomatic Semantics Will consider axiomatic semantics (A.S.) of IMP:
Chapter 5 Architectural Design.
Applied Software Project Management
Cohesion and Coupling.
From Use Cases to Implementation
Presentation transcript:

Deadlock Freedom by Construction for Distributed Adaptative Applications Mila Dalla Preda, Ivan Lanese, Jacopo Mauro, Maurizio Gabbrielli, Saverio Giallorenzo Milan, Feb 2014

Structure of the talk Choreographies Adaptation Our approach: Motivation Scopes Adaptation Rules Results Demo → Saverio

Choreographies Allow to describe the behavior of a distributed communicating system from a global perspective All participants + interactions described together Composed by operations of the form Interaction ( op: a → b ) Sequential composition ( ; ) Parallel composition ( | ) Control flow (if then else, while) Very similar to global types in multiparty session types

Choreography Example

Easy to describe distributed systems Why Choreographies? Easy to describe distributed systems Possibility to derive actual code via projection Input: Choreography code Output: Code for every participant Properties: preserves semantics (when interacting, the participants behave as specified by the choreography)

Locations corresponding to participants, containing their code Where to Project? Locations corresponding to participants, containing their code Basic operations: input and output Composed using sequential composition ( ; ) parallel composition ( | ) Control flow (if then else, while)

Projection Example

Users can change their minds Adaption Systems should live for long periods of time in ever changing environments Users can change their minds The system should adapt to satisfy new requirements Adaptation happens at runtime Adaptation details not known when the system has been designed or even started

Motivation of Our Work Lots of works on adaptation exist Not many formal approaches Very little guarantees on the properties of the system after adaptation takes place Using choreographies we can guarantee safe adaptation Deadlock freedom

Our Approach A system is obtained as projection of a choreography The system runs on its own The system interacts with an adaptation middleware composed by distributed adaptation servers and the environment A single adaptation may involve many participants

Adaptation Rules The adaptation servers contain rules which can be applied to update the running system Conditions checking whether adaptation is applicable/useful can be specified New rules can be added at any moment Application of a rule involves code mobility from the adaptation server to the system

Adaptation Scopes Scopes to enclose code that could be adapted Contain default code May tag code with (non-functional) properties Specify leader of adaptation → who triggers the check of adaptation

Adaptation Rules Contain new code + information on when and where the rule can be applied

Projecting a Scope Semantics of the leader: Check whether there is a rule whose applicability condition holds ✓ → download the code for each participant and send it to them x → tell the other participants that no adaptation is needed Semantics of other participants Wait for instruction from the leader ✓ adaptation → execute the new code x adaptation → execute the current code

Connectedness Two syntactic conditions: For sequence → ensures that projecting a sequence I;I' implies actions in I executed before action in I' For parallel → ensure that different interactions with the same operation do not interfere Polynomial check On line validation while writing code – see tool

Results A choreography and its projection have the same traces Under all possible adaptations With environments and sets of applicable rules that may change at any moment during the computation The adapted system is deadlock free by construction Developed an Eclipse plug-in + automatic projection in Jolie