Middleware for Edge Computing Applications

Contact: Kumseok Jung <kumseok@ece.ubc.ca>

Problem Motivation

Edge computing networks are highly dynamic and consist of a heterogeneous pool of computing devices. Accordingly, there is a diverse set of software and protocols catering to different platforms and networks. As a result, application developers often need to write extra glue code irrelevant to the core application logic, in order to provide interoperability between the APIs of interacting software.

Existing edge computing frameworks offer high-level programming models and cloud-hosted services to ease the overall development process. However, competing frameworks exacerbate the technology fragmentation problem as they introduce even more framework-specific APIs into the edge computing ecosystem.



Instead of introducing a high-level framework with its own API, we provide interoperability between distributed software through the standard POSIX API, taking a middleware-based approach. We present a distributed middleware named OneOS, which maintains a global view of the underlying computer network, presenting the same file system and process space to any user application running within the network. OneOS intercepts POSIX API calls and transparently handles the interaction with the corresponding I/O resource in the network. Using the OneOS Domain-Specific Language (DSL), users can distribute a legacy POSIX pipeline over the network. This invites developers to write applications as if they would run on a single system, making software components portable and reusable.


Since OneOS preserves the POSIX API, we are able to take a legacy UNIX pipeline and run it in a distributed fashion without requiring changes to the application code. The performance of the distributed pipeline is comparable to that of an analogous networked application running on an edge computing framework.

We evaluate the performance of OneOS against an open-source IoT Platform, ThingsJS, using an IoT stream processing benchmark suite, and a distributed video processing application. OneOS executes the programs about 3x faster than ThingsJS, and reduces the code size by about 25%.