This book describes in contributions by scientists and practitioners the development of scientific concepts, technologies, engineering techniques and tools for a service-based society. The focus is on microservices, i.e cohesive, independent processes deployed in isolation and equipped with dedicated memory persistence tools, which interact via messages.
The book is structured in six parts. Part 1 'Opening' analyzes the new (and old) challenges including service design and specification, data integrity, and consistency management and provides the introductory information needed to successfully digest the remaining parts. Part 2 'Migration' discusses the issue of migration from monoliths to microservices and their loosely coupled architecture. Part 3 'Modeling' introduces a catalog and a taxonomy of the most common microservices anti-patterns and identifies common problems. It also explains the concept of RESTful conversations and presents insights from studying and developing two further modeling approaches. Next , Part 4 is dedicated to various aspects of 'Development and Deployment'. Part 5 then covers 'Applications' of microservices, presenting case studies from Industry 4.0, Netflix, and customized SaaS examples. Eventually, Part 6 focuses on 'Education' and reports on experiences made in special programs, both at academic level as a master program course and for practitioners in an industrial training.
As only a joint effort between academia and industry can lead to the release of modern paradigm-based programming languages, and subsequently to the deployment of robust and scalable software systems, the book mainly targets researchers in academia and industry who develop tools and applications for microservices.
Antonio Bucchiarone is a Senior Researcher at the Distributed Adaptive Systems research unit of Bruno Kessler Foundation (FBK) in Trento, Italy. His main research interests are self-adaptive (collective) systems, adaptive by-design service-based systems, AI-based service composition, and dynamic software architectures.
Nicola Dragoni is Associate Professor in Distributed Systems and Security at DTU Compute, Technical University of Denmark, and Professor in Computer Engineering at Centre for Applied Autonomous Sensor Systems, Örebro University, Sweden. His main research interests lie in the areas of pervasive computing and security, with a focus on domains like Internet-of-Things, fog computing, mobile systems and microservices.
Schahram Dustdar is a Full Professor of Computer Science and heads TU Wien's Distributed Systems Group. His research interests include distributed systems, the Internet of Things, and complex and autonomic software systems. He has received the ACM Distinguished Scientist award and the IBM Faculty Award. He is an elected member of Academia Europaea, where he is the Informatics Section Chairman, and is an IEEE Fellow.
Patricia Lago is a Full Professor in software engineering at the Vrije Universiteit Amsterdam, the Netherlands, where she leads the Software and Services (S2) research group. Her research interests are in software architecture, software and service-oriented design, software quality assessment and software sustainability.
Manuel Mazzara is a Professor of Computer Science at Innopolis University. His research interests include software engineering, service-oriented architecture and programming, concurrency theory, formal methods, and software verification.
Victor Rivera is an Assistant Professor of Computer Science at Innopolis University, Russia. His research interests include formal models for developing and verifying software, constraint satisfaction problems, and concurrent constraint programming.
Andrey Sadovykh is an innovation consultant, formerly the head of the research unit at SOFTEAM, France. He has ten years' experience in research projects in IT in a cross-cultural international context, as well as in R&D and software publishing. He successfully led several international consortia in collaborative projects involving large industries, SMBs and academic partners. Currently, he is a faculty at Innopolis University teaching in the software engineering program. His research interest are in model-driven engineering practices and methods applied to industry problems including multi-clouds and enterprise architectures.