Tutorial 1: Distributed Systems – What Every Software Architect Should Know
Presenter: Ian Gorton
Abstract: Modern software systems in every application domain are increasingly built as distributed systems. Business applications are structured as cooperating microservices, IoT devices communicate with cloud-based services over a network, and Web sites store data in globally dispersed data centers to support fast access in the localities in their users reside. Behind all of these systems lurk distributed computing infrastructures that architects and engineers must exploit to satisfy application service-level agreements. To be successful, it is essential that architects understand the inherent complexity of distributed systems.
In this half day tutorial, I’ll guide the attendees through the fundamental characteristics that distributed systems exhibit. Each characteristic will be related to the software architecture quality attributes that they directly impact. The topics I cover include communications reliability and latencies, message delivery semantics, state management, idempotence, data safety, consistency, time, distributed consensus, cascading failures and failover and recovery. I’ll introduce each concept using a ‘system game’ that the attendees participate in. Once I’ve explained a concept using the system, I’ll move on to show how the concept manifests itself in a software system and its effects on quality attributes requirements and inherent trade-offs.
The tutorial will be suitable for graduate students, engineers and architects who have no or minimal exposure to distributed systems concepts. The presentation format will be suitable for a mix of both in person and remote participants. It will combine interactive sessions with short technical explanations and examples to illustrate each distributed systems concept.
Presenter Bio: Ian Gorton has been working with scalable distributed systems for 30 years, working in the software industry, academia, and government research and development labs in the U.S. and Australia. His research and development expertise lies in software architectures and technologies for scalable, big data systems in various scientific, engineering, and health-related domains.
He was previously a senior member of the technical staff at the Carnegie Mellon University Software Engineering Institute. Prior to Carnegie Mellon, he served as a laboratory fellow at the U.S. Department of Energy’s Pacific Northwest National Lab.
He has published more than 150 research papers, 4 books and is a senior member of the IEEE Computer Society. He is the author of the recent book Foundations of Scalable Systems published by O’Reilly in 2022.
Tutorial 2: Blended Modelling for Software Architectures
Presenters: Federico Ciccozzi, Malvina Latifaj, Muhammad Waseem Anwar, Kousar Aslam and Ivano Malavolta
Abstract: Blended modelling is an emerging trend in Model-Driven Engineering for complex software architectures. It enables the modelling of diverse architectural aspects through multiple editing notations seamlessly, interchangeably, and collaboratively. Blended modelling is expected to significantly improve productivity and user experience for multiple stakeholders.
To manually architect and build a blended modelling environment is not trivial. To support architects in this task, in the scope of the ITEA3 BUMBLE project, we have designed and developed a blended modelling framework that aids architects in designing and semi-automatically generating blended modelling environments for architecting software.
In this tutorial we will demonstrate two major activities in modelling and designing software architectures:
- Given a domain-specific language at hand, we will show how to architect a blended modelling environment for it. From that, we will show how to leverage our framework to semi-automatically generate the blended modelling environment in the tool ecosystem (Eclipse Modeling Framework).
- Once the blended modelling environment is generated, we will show how to architect software systems by using the generated blended modelling environment, demonstrating its seamless synchronization capabilities across different modelling notations and collaborative editing features.
Tutorial 3: Architecting MLOps in the Cloud: From Theory to Practice
Presenters: Indika Kumara, Fabiano Pecorelli, Gemma Catolino, Rick Kazman, Damian Andrew Tamburri and Willem-Jan van den Heuvel
Abstract: ML operations (MLOps) refers to a set of practices and tools that automate and combine model development and model operation. MLOps can enable organizations to successfully deploy and manage their ML models in production. The MLOps landscape is increasingly expanding with technological choices, and most public cloud providers offer MLOps platforms with different degrees of maturity. However, this rapidly growing landscape makes designing and implementing an MLOps system in the cloud challenging as the practitioners need to make numerous architectural design decisions, select between different decision options, select between tools/services for realizing a particular decision option and configure and assemble the chosen tools/services. In this tutorial, we will present guidelines for designing and implementing MLOps for ML-enabled applications in the cloud. We will cover each phase in the MLOps lifecycle. In addition to design guidance, tutorial participants will be able to get hands-on experience in creating an MLOps solution using the Google Cloud Platform (GCP).
Presenter Bios: Indika Kumara is an Assistant Professor at the Jheronimus Academy of Data Science (JADS) and Tilburg University, the Netherlands. He received his PhD from Swinburne University of Technology, Australia. His research interests include service-oriented computing, cloud computing, software architecture, and ML engineering. He teaches data engineering, MLOps, microservices, and data architecture at JADS’s master program. In addition, he has been using the GCP cloud for the tutorials of his courses for the last six years.
Fabiano Pecorelli is a postdoctoral researcher at the Jheronimus Academy of Data Science (JADS) and Eindhoven University of Technology, the Netherlands. He received his Ph.D. in Computer Science from the University of Salerno, Italy. His research interests include software maintenance and evolution, empirical software engineering, ML engineering, and quantum software engineering. He serves and had served as a referee for various international journals in the field of software engineering.
Gemma Catolino is an Assistant Professor at the Jheronimus Academy of Data Science (JADS) and Tilburg University, the Netherlands. She received his Ph.D. in Computer Science from the University of Salerno, Italy. Her research includes social software engineering, software maintenance and evolution, empirical software engineering, and ML engineering.
Rick Kazman is a Professor at the University of Hawaii and a Research Scientist at the Software Engineering Institute of Carnegie Mellon University. His primary research interests are software architecture, design and analysis tools, software visualization, and software engineering economics. He is the author of over 200 publications and co-author of several books, including Software Architecture in Practice, Designing Software Architectures: A Practical Approach, and Evaluating Software Architectures: Methods and Case Studies.
Damian is an Associate Professor at the Eindhoven University of Technology, the Jheronimus Academy of Data Science, in s’Hertogenbosch, The Netherlands with a double-affiliation at Politecnico di Milano as well. At JADS he lectures the Big Data Engineering and Deep Learning courses, while lending a hand in the Machine-Learning pre-master course. His research interests rotate around Data-Intensive Services DevOps/DataOps, Social Software Engineering, and Artificial-Intelligence Software Engineering. Damian has published over 150+ papers in either top Journals or conferences in Software Engineering, Information Systems, as well as Services and AI Computing. Also, Damian has been an active contributor and lead research in many EU FP6, FP7, H2020, and HorizonEurope projects, such as S-Cube, MODAClouds, SeaClouds, DICE, ANITA, DossierCLOUD, ProTECT, RADON, SODALITE, DESTINI, and more. In addition, Damian is ACM TOSEM editorial board member, secretary of the OASIS TOSCA Standardisation TC as well as secretary of the IFIP TC2, TC6, and TC8 WG on “Service-Oriented Computing
Willem-Jan Van Den Heuvel is a full professor in Information Systems, Data Governance, and Data Analytics at the Jheronimus Academy of Data Science and Tilburg University, the Netherlands. He is the managing director of the European Research Institute of Services Science (ERISS). His research interests are at the cross-junction of software service systems and business process management with an emphasis on (global) networked enterprises.