Computing devices become increasingly heterogeneous and span from low-resource battery-driven embedded systems (Internet of Things) to high-performance computers. These devices are collaborating with each other through communication and application software, which is heterogenous as well. Collectively, the devices and the software they are operating form distributed software systems, which must be reliable, secure, energy-efficient, and flexible. They also must fulfill stringent application requirements such as high throughput and low delay, e.g., in virtual and augmented reality applications, autonomous driving and public transportation, data-centric business applications, or scientific computing.
The challenges that arise with emerging distributed software systems are manifold. Networks can be wired or wireless with distinctive characteristics in terms of bandwidth and error rates that can vary over time, also caused by the high mobility of users and their personal devices. Softwarization concepts (e.g., network function virtualization, software-defined networking, network slicing) are important in emerging and future mobile communication systems as well as the Future Internet. Software complexity arises from the need to integrate heterogeneous data models, programming languages and standards, the challenge to deal with uncertainty in open and networked ecosystems, and the reality of continuously changing requirements, short development cycles and fast time-to-market. At the same time, software often needs to be developed in interdisciplinary teams involving domain experts from various fields.
The track picks up these needs and challenges, and focuses on the specification, design, implementation, test, maintenance, and evolution of distributed and networked software systems, covering both established methods and techniques and a research-oriented perspective on a dynamic, emerging, and forward-looking area of computer science.
Machine Learning (ML) is also becoming increasingly important in distributed software systems. On the one hand, with the increasing availability of development and operational data, classical rule-based procedures for automating design decisions or software optimizations will increasingly be supplemented or replaced by ML-supported methods, e.g., to automatically adapt the behavior of communication system software. On the other hand, modern software and systems engineering must deal with emerging challenges such as assuring the quality of ML-heavy applications or fostering distributed and federated ML as a solution to provide energy-efficiency and privacy. The track also picks up these challenges and investigates these relationships of distributed software systems and ML in both directions.