Abstract: Uncontrolled and unintended nondeterminism has been a persistent problem for concurrent, parallel, and distributed software. Recent trends have improved the situation by replacing threads and remote procedure calls with publish-and-subscribe busses, actors, and service-oriented architectures, but even these admit nondeterminism and make building deterministic programs difficult. One approach is to abandon determinism, recognizing that software has to handle unpredictable events, communication networks with varying reliability and latencies, unpredictable execution times, and hardware and software failures. In this talk, I will argue to the contrary, that determinism becomes even more valuable in unpredictable environments. Among its many benefits, determinism enables systematic testing, shifts complexity from application logic to infrastructure, enables fault detection, facilitates composability, and more. The key is to understand that determinism is a property of models, not of physical realizations. In engineering, our primary goal is to coerce the physical world to match our models. In contrast, in science, the primary goal is to coerce the models to match the physical world. In this talk, I will examine what we mean by “determinism” in engineering, science, and a bit in philosophy. Whether a model is deterministic or not depends on how one defines the inputs and behavior of the model. I will conclude by outlining a practical deterministic model well suited for concurrent, parallel, and distributed software. I will describe a realization of this model in a coordination language called Lingua Franca.
Short biography: Edward A. Lee has been working on embedded software systems for 40 years. After studying and working at Yale, MIT, and Bell Labs, he landed at Berkeley, where he is now Professor of the Graduate School in EECS. His research is focused on cyber-physical systems. He is the lead author of the open-source software system Ptolemy II, author of textbooks on embedded systems and digital communications, and has recently been writing books on philosophical and social implications of technology. His current research is focused on a polyglot coordination language for distributed real-time systems called Lingua Franca that combines features of discrete-event modeling, synchronous languages, and actors.
Title: Software Architecture for a Digital Age
Abstract: The COVID-19 pandemic has increase the pace of digitisation of many areas of our lives, but this is a process that has been underway for some years. We really are living in a “digital age” where many companies outside the traditional technology area, such as John Deere and GE, are building intelligent, connected digital “platforms” for their customers or their entire industry segments. Building these platforms is a very different process to building traditional enterprise applications and has to accommodate constant change, constant learning based on rapid feedback from the operational use of the platform. So software architecture needs to change too, in order to meet the challenges of building intelligent, connected platforms that are constantly in use. In this talk I will explain the challenges that software architects face in the era of digital platform development, the techniques that we are using today to meet those challenges and suggest how I think software architecture will evolve further as a result of the experience we are gaining.
Short biography: Eoin Woods is the CTO of Endava, a technology company that delivers projects in the areas of digital, agile and automation. Prior to joining Endava, Eoin has worked in the software engineering industry for 20 years developing system software products and complex applications in the capital markets domain. His main technical interests are software architecture, distributed systems and computer security. He is a former editor of the IEEE Software “Pragmatic Architect” column, co-author of the well known software architecture book “Software Systems Architecture” and was the recipient of the 2018 Linda M. Northrup Award for Software Architecture, awarded by the SEI at Carnegie Mellon University.