I am a co-investigator of a research project which aims to build an operating system known as Stardust that supports the deployment of services in the Cloud, with Prof Alan Dearle and Dr Jonathan Lewis. Stardust is a library operating system that permits a service to execute in a virtual, light-weight and secure environment on the Xen hypervisor. It also features a pre-emptive thread scheduler with multi-core support, and provides standard libraries including minimal TCP/IP stack and complete support for POSIX threads. Recently, we have started evaluating the implementation of Stardust in terms of security, performance, and scalability compared to Unix-like operating systems and modern software containers. This project is now being used in supporting the teaching and research activities at the University of St Andrews.
During my doctoral studies, I engineered a decentralised service orchestration system for managing workflows which represent precise specifications of computational tasks that can be executed based on the data flow dependencies between them. Using a heuristic approach that relies on real-time analysis of the network condition, this system provides the ability to split workflows into smaller parts which may then be transmitted to the most appropriate network locations (e.g., close to data sources) for execution. This approach reduces the overall data transfer between distributed resources and improves the execution time of workflows. It has been evaluated using resources from Amazon Web Services and Microsoft Azure. I was supervised by Prof Adam Barker and Prof Alan Dearle.
I designed a functional data coordination programming language called Orchestra that permits data flows between distributed services to be specified using high-level abstractions. The specification of a data flow application written in this language can be translated using a generative compiler into a highly scalable form of the application which consists of smaller executable components. The language compiler provides the ability to detect parallelism automatically by analysing the data flow dependencies between computational tasks. The design of this language has been published in peer-reviewed academic articles and documented in my doctoral thesis.
The Case for Unikernels. In the Fourth Annual UK System Research Challenges Workshop, United Kingdom, 2019.
Towards Unikernel Support for Distributed Microservices. Adobe Tech Summit, San Francisco, United States of America, 2019.
On Engineering Unikernels, Systems Seminars Series, University of St Andrews, United Kingdom, 2018.
Decentralised Orchestration of Service-oriented Workflows, Systems Seminar Series, University of St Andrews.
A Dataflow Language for Decentralised Orchestration of Web Service Workflows, Scottish
Programming Languages Seminar (SPLS), 2013.