Implementing a RESTful Software Architecture to Coordinate Heterogeneous Networked Embedded Devices
Davis, Jason Tyler
MetadataShow full item record
Modern embedded systems---autonomous vehicle-to-vehicle communication, smart cities, and military Joint All-Domain Operations---feature increasingly heterogeneous distributed components. As a result, existing communication methods, tightly coupled with specific networking layers and individual applications, can no longer balance the flexibility of modern data distribution with the traditional constraints of embedded systems. To address this problem, the investigation herein presents a domain-specific language, designed around the Representational State Transfer (REST) architecture, most famously used on the web. Our language, called the Communication Language for Embedded Systems (CLES), supports both traditional point-to-point data communication and management and allocation of decentralized distributed processing tasks. To meet the traditional constraints of embedded execution, CLES' novel runtime allocates processing tasks across a heterogeneous network of embedded devices, overcoming limitations from other modern distribution methods: centralized task management and limited operating system integration. CLES was evaluated with performance micro-benchmarks, implementation of distributed stochastic gradient descent, and application to the design of versatile stateless services for vehicle-to-vehicle communication and military Joint All-Domain Command and Control (JDAC). From this evaluation, it was determined that CLES meets the data distribution needs of realistic cyber-physical embedded systems.
General Audience Abstract
As computers become smaller, cheaper, more powerful, and energy efficient, they are increasingly used in cyber-physical systems such as planes, trains, and automobiles, as well as large-scale networks such as power plants and smart cities. The field of embedded computing is facing new challenges involving the communication and coordination of large numbers of different devices. Some of the software challenges within embedded device communications are: flexibility both in ability to run on different devices and use different communication links such as cellular, Wi-Fi, or Bluetooth, performance constraints of low-power embedded devices, latency and reliability to ensure safe operations, and the schedule and cost of development. To address these challenges, this thesis presents a new programming language, designed around the Representational State Transfer (REST) architecture, most famously used in HTTP to drive the web. Our language, called the Communication Language for Embedded Systems (CLES), supports both traditional point-to-point data communication designed to prioritize latency and reliability, as well as a standalone application or runtime that can be run on an embedded device to accept requests for processing tasks. CLES and its supporting Software Development Kit (SDK) is designed to allow for quick and cost effective development of flexible low-latency device to device communications and large scale distributed processing on embedded devices.
- Masters Theses