Fabrizio Montesi is Professor of Computer Science at the University of Southern Denmark. He is a Villum Young Investigator and recipient of several awards for science and innovation, including the EAPLS Best PhD Dissertation Award and the Best Thesis in ICT Award from the General Confederation of Italian Industry.
'Distributed Systems have a large number and variety of Computing infrastructure parts. One of the main challenges lies in the solid definition of concurrency and protocols. This excellent and timely book addresses these issues in a convincing way by taking the reader on a journey of dealing with and reasoning on choreographies by providing many examples.' Schahram Dustdar, TU Wien, Austria 'A mass of dancers dance individually and concurrently following a choreography, creating a masterpiece collaboratively. Choreographies are a framework to promote a protocol-guided programming for no single point of failure. Montesi's book starts from a friendly introduction to formal methods for beginners and covers comprehensive choreography theories—from the simple choreographies to the advanced extensions. Highly recommended for the undergraduate and graduate computer science students as well as developers of web services.' Nobuko Yoshida, Christopher Strachey Chair of Computing, University of Oxford 'Distributed systems are the norm today. Choreographies govern how autonomous parts of distributed systems that operate concurrently may communicate with each other. However, it is not always clear whether all communication participants comply with a given choreography design. This book comes to the remedy. Fabrizio Montesi, pioneer of choreographic programming with the Jolie language and microservices community leader, establishes a uniform theory and a notation for choreographies – not only to specify their protocols, but also to check participant conformance and prove desired properties including communication safety and freedom from starvation. Read this book if you want to learn or teach these concepts en route to more robust and more understandable Distributed Systems, and apply its concepts in practice if you want to prove that your language, middleware, and tool creations work as designed.' Olaf Zimmermann, Eastern Switzerland University of Applied Sciences, School of Computer Science, Author of Patterns for API Design - Simplifying Integration with Loosely Coupled Message Exchanges