Software Development for Mobile Devices, the Internet-of-Things, and Cyber-Physical Systems
Permanent URI for this collection
1 - 5 of 5
ItemNeverlast: Towards the Design and Implementation of the NVM-based Everlasting Operating System( 2021-01-05)Novel non-volatile memory (NVM) technologies allow for the efficient implementation of ''intermittently-powered'' smart dust and edge computing systems in a previously unfamiliar way. Operating with rough environmental conditions where power-supply failures occur often requires adjustments to all parts of the system. This leads to an inevitable trade-off in the design of operating systems -- the overhead of persisting the achieved computation progress over power failures is detrimental to the possible amount of progress with the available energy budgets. It is, therefore, crucial to minimize the overhead of ensuring persistence. This paper presents the case that persistence should be provided as an operating-system service to achieve everlasting operating capabilities. Triggered by power-failure interrupts, an implicit persistence service for the processor status of a process preserves progress on the CPU-instruction level. This interrupt only triggers if necessary so that no power-state polling is needed. We outline architectures for everlasting systems and discuss their benefits and drawbacks compared to existing approaches. Thereby, the operating system provides persistence as a service at run-time to the application, with minimal overhead. Our approach enables the separation of the application from energy-supply state estimation, as well as state-preserving logic for software and hardware components.
ItemMuTent: Dynamic Android Intent Protection with Ownership-Based Key Distribution and Security Contracts( 2021-01-05)Intents are the plain-text based message object used for ICC by the Android framework. Hence the framework essentially lacks an inbuilt security mechanism to protect the visibility, accessibility, and integrity of Intent's data that facilitates adversaries to intercept or manipulate the data. In this work, we investigate the Intent protection mechanism and propose a security-enhanced Intent library MuTent that allows Android apps to securely exchange sensitive data during ICC. Differently from the existing mechanism, MuTent provides accessibility and visibility of Intent data by validating the receiver's capability and provides integrity by using encryption and the Arc security contract code. Especially, ICC is initiated by exchanging MuTent and follows a novel ownership-based key distribution model, that restricts the malware apps without permission from deciphering data. Through the evaluation, we show that MuTent can improve the security for popular Android apps with minimal performance overheads, demonstrated using F-Droid apps.
ItemA Simulation-based Performance Evaluation of Heuristics for Dew Computing( 2021-01-05)The evolution of smartphones allows the continuous exploitation of computing resources. This increasingly applies also to distributed environments as exemplified through utilization of network router loads in edge computing and fog computing. Combining cloud computing and mobile smart devices in dew computing contexts enables new techniques for resource utilization, data collection and data processing. However, new challenges regarding job scheduling arise. Smartphones may be used in ad-hoc networks in this context, but their heterogeneity and energy usage must be considered. We propose novel heuristics for performance measuring of distributed computing systems integrated with mobile devices and compare them with previous heuristics in a simulation environment. Our results show an overall improvement in job completion and load balancing metrics compared to previous approaches. They highlight the usefulness of pursuing this research stream for aiming at industrial implementation and evaluation.
ItemArchitectural Tactics for Energy Efficiency: Review of the Literature and Research Roadmap( 2021-01-05)The energy consequences of software are rapidly growing: at the high-end, server farms consume enormous amounts of energy; at the low-end there is ever-increasing emphasis on battery-powered mobile and Internet-of-Things (IoT) devices with equally increasing complex usage scenarios. Conversely, there has been little attention to how software architectures can be designed for energy efficiency. While other software qualities—--think of performance or availability--—have been extensively studied, there is little research on how to reason about energy-consumption as a first-class citizen. We provide a basis for reasoning about design decisions for energy efficiency by deriving a kit of reusable architectural tactics derived from literature. We use the well-known open-search and snowballing methodologies to attain primary studies, and subsequently used thematic coding of such studies to identify recurrences and commonalities among the design strategies presented. The result of this process is a set of 10 architectural tactics for energy efficiency. These tactics provide a rational basis for architectural design and analysis for energy efficiency.