Distributed Systems
Distributed systems are becoming increasingly complex and are perhaps more accurately described as (distributed) systems of systems, encompassing areas of technological innovation including cloud computing, multi-core architectures, the Internet of Things and mobile computing. The Distributed Systems research group is interested in the fundamental challenges related to managing such complex distributed systems including: i) how to achieve the key property of interoperability in complex, highly heterogeneous distributed systems; ii) overlay management in such environments to achieve end-to-end quality of service properties (including the dimension of energy efficiency); iii) programmability to ease the burden of developing applications and services; iv) software engineering techniques more generally to tame this complexity.
The group also carries out more applied work, examining the role of distributed systems in addressing some of the grand challenges facing society today. In particular, we work with the Environmental Sciences community in providing distributed systems support to scientists to enable a new kind of integrative, open and collaborative science as required to address, for example climate change. This includes i) the role of cloud computing in supporting this new kind of science; ii) the role of the Internet of Things in providing real-time data streams on different facets of the natural environment to facilitate holistic environmental management strategies; iii) examination of techniques to simplify the execution of (potentially complex) environmental models in the cloud. We also address the role of complex distributed systems in underpinning smart cities research looking in particular at issues around 'in the wild' deployment of distributed systems technologies.
Members and Interests
Prof. Gordon Blair (Group Leader)
Complex Distributed Systems: Examining fundamental distributed systems principles for the highly complex, heterogeneous and dynamic distributed systems of today, including novel approaches to interoperability (e.g. emergent middleware) and to software engineering (e.g. models@run.time).
Cloud Computing: Investigating techniques for multi-cloud management, more flexible and adaptable cloud services (focusing mainly on PaaS), and the integration of cloud computing with the Internet of Things.
Prof. Geoff Coulson
IoT Infrastructure: The design of robust and scalable distributed systems infrastructure to underpin the Internet of Things. The combining of distinct areas of infrastructure (such as geographically-separate wireless sensor networks) into an integrated system of systems is of especial interest.
Smart Cities Deployment: The deployment of experimental systems of systems in real-world environments. A recent example of this work is the EU-funded SmartSantander project which deployed large-scale networks of heterogeneous sensors and actuators (~20K) in the city of Santander, Spain.
Dr Barry Porter
Self-adaptive Systems: We research methods of online self-cognition and self-adaptation in modular computer software, enabling future software to become an active part of its own development. Our research includes runtime component models, autonomous learning / cognition techniques and goal specification.
IoT Systems: We explore novel applications of IoT technology with a particular focus on how this technology can be made easy to use with "app store"-like semantics. We also examine how IoT systems can be integrated with large-scale cloud systems and how computation can best be distributed between the two.
Dr Zheng Wang
Parallel Compiler Design: Researching novel techniques to automatically tune compiler heuristics for (heterogeneous) many-cores, allowing compilers to automatically catch up with fast evolving parallel architectures to deliver scalable performance without the need for years of compiler developers' time.
Energy-efficient Parallel Computing: Investigating software techniques to optimise energy efficiency and performance for parallel and distributed computing systems from systems as small as the individual smartphone in the pocket to as big as the ultra large scale data centre.
Dr Yehia Elkhatib
Cross-Cloud Computing: I work to enable distributed applications to traverse different sorts of infrastructural boundaries. In the context of cloud computing, this entails looking into API interoperability and migration technologies, composing systems of systems, as well as related decision support issues.
Network-awareness: I strive to make applications use the network in a smarter way, and not to treat it as a set of dumb pipes. This includes work on intent-driven network systems, information centric network architectures, measuring networked systems, and evaluating network protocols.