Choreographies: the idea

Slides:



Advertisements
Similar presentations
Web Services Choreography Description Language Overview 24th November2004 Steve Ross-Talbot Chief Scientist, Enigmatec Corporation Ltd Chair W3C Web Services.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Basic Concepts in Component-Based Software Engineering
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
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.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Data Structures and Programming.  John Edgar2.
The chapter will address the following questions:
The Design Discipline.
UML - Development Process 1 Software Development Process Using UML (2)
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Dynamic Choreographies Safe Runtime Updates of Distributed Applications Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
Towards Global and Local Types for Adaptation Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint work with Mario Bravetti,
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
16/11/ Web Services Choreography Requirements Presenter: Emilia Cimpian, NUIG-DERI, 07April W3C Working Draft.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
CSCI1600: Embedded and Real Time Software Lecture 28: Verification I Steven Reiss, Fall 2015.
Basic Concepts and Definitions
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Adaptive Choreographies Joint work with Mila Dalla Preda, Jacopo Mauro and Maurizio.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
5 Systems Analysis and Design in a Changing World, Fourth Edition.
5 Chapter 5: Modeling Systems Requirements: Events and Things Systems Analysis and Design in a Changing World.
Component Object Model(COM)
Software Architecture Lecture 3
Issues need harmonization
Programming paradigms
CIM Modeling for E&U - (Short Version)
The Movement To Objects
Choreography Proposal
Software Life Cycle “What happens in the ‘life’ of software”
The Project Management Framework
Software Processes (a)
Distribution and components
Software Quality Engineering
Software Architecture Lecture 3
Software Design Methodology
Software Architecture & Design Pattern
Recall The Team Skills Analyzing the Problem (with 5 steps)
Scenarios In System Development
Software Architecture Lecture 3
Subprograms and Programmer Defined Data Type
Unified Modeling Language
Operating Systems Bina Ramamurthy CSE421 11/27/2018 B.Ramamurthy.
Internet of Things A Process Calculus Approach
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2004 Instructor: Patrice Chalin.
Chapter 20 Object-Oriented Analysis and Design
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Object oriented analysis and design
Appendix A Object-Oriented Analysis and Design
Software Architecture Lecture 3
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
John D. McGregor Module 6 Session 1 More Design
Chapter 13 Finalizing Design Specifications
Design Yaodong Bi.
Top-Down Design & JSP Skill Area Part D
Appendix A Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Design.
Software Development Process Using UML Recap
From Use Cases to Implementation
Presentation transcript:

Choreographies: the idea Modeling a whole distributed system in a single artifact Having interaction as key element An interaction is the communication of a message between two entities One sending the message One receiving the message

Choreographies: examples Used at many abstraction levels Documentation Types Programming language

Choreographies: advantages Global view of the expected behavior Local behaviors implementing the global view can be automatically generated Projection on each participant Correctness ensured by mathematical proofs Deadlock freedom, ... Generating the choreography from local descriptions is also possible

Smart projections Projection can add all what is needed to ensure the abstract specification is satisfied Synchronizations Error management Security mechanisms The programmer has no need to consider these aspects

Choreographies for evolution If the system needs to evolve, the choreography is changed Local code is re-generated New local code replaces the old one Techniques for coordinated hot swap exist

Oh, yes, we have to speak about microservices

Microservices Not a unique agreed definition, but... Microservices are autonomous entities communicating via message passing Microservices are small Describe a single functionality, built by a small team, easily disposable, ... Microservices collaborate to reach a common (complex) goal

The puzzle analogy The smaller the pieces, the more difficult the puzzle How to solve the puzzle?

The puzzle analogy Look at the global picture Choreographies are the global picture for the microservice puzzle

Summary Choreographies are a suitable tool to manage the complexity of communication in microservice systems But a lot of work is still needed to make the approach practical

Future work Choreographies need further development Choreography as a programming language not yet fully developed Compositionality Application of choreographies to microservices raises new questions Choreography-based development process Choreography refinement Interplay between choreographies and deployment