Middleware for Shared and Always-on Embedded Devices Extending component models to ease development effort and improve resource efficiency
Author:
Keywords:
middleware, resource management, optimization, programming support
Abstract:
The current generation of Wireless Sensor and Actuator Networks (WSANs) must support multiple applications that are deployed and managed by different parties. As these WSANs are typically long-lived and always-on, application software must therefore be deployed, configured and reconfigured over time while the system is running. Re-configurable component models assist in this context by providing the basic mechanisms necessary to achieve reconfiguration at runtime. However, in scenarios where resource constrained environments are shared between multiple applications, todays generation of re-configurable component models provide a poor fit in terms of preserving application integrity during the deployment of new applications or their respective co-execution. Ensuring application integrity through existing component models typically results in increased developer efforts, less efficient resource usage, longer disruptions, or even faults. A second problem with contemporary component models is that they commonly only support specification of complete software compositions in terms of individual component instances and their interconnections. In addition, deployment of these compositions requires the listing of all low-level reconfiguration commands related with deployment, configuration, instantiation and interconnection of these individual component instances. Specifying applications in terms of only these lower level abstractions is known to be complex and error prone. This dissertation addresses these two problems through the use of middleware extensions to re-configurable component models. Our first contribution, the Resource Sharing Framework (RSF), proposes Composition-Swapping to ensure application integrity during the deployment of new applications and during their respective co-execution. Composition-Swapping is an extension to reconfigurable component models in which state management delegation, extended component meta-data and admission control are used to ensure application integrity, improve resource efficiency and reduce deployment efforts. Secondly, to reduce the effort incurred during the specification of applications we propose the Application Composition Service (ACS). The ACS offers the Sense-Process-React (SPR) specification and its supporting middleware. The SPR specification offers a data-flow driven declarative specification, allowing developers to specify applications in terms of logical application flows. Its supporting middleware automates the application assembly process, therefore reducing the effort incurred during the assembly of applications. Finally, additional to the two aforementioned contributions, this dissertation addresses a tangential issue. Due to the lack of appropriate test-bed infrastructure for evaluation and experimentation, we designed and built the DistriNet smart office test-bed. This in-house test-bed has been deployed inside two offices of our research facility and entails a fully functional approximation environment targeting future smart office scenarios. The test-bed infrastructure allowed us to perform in-depth research and experimentation with our solutions. We validated our solutions through a series of prototype implementations using embedded C and Java programming languages, targeting different embedded sensing platforms. We evaluated our middleware solutions through a series of reconfiguration cases, during which eight applications were incrementally deployed and reconfigured on the DistriNet smart office test-bed. Evaluation results demonstrate that our middleware reduce the human efforts incurred and the cost of reconfiguration during the specification and assembly of applications. Furthermore, our middleware eliminates disruption and faults, while demonstrating a more efficient use of resources.