Unprecedented growth in sensing, data capture devices, communication, and computing technologies have enabled us to capture and analyze almost every aspect of our lives. Such a prospect has resulted in the development of a myriad of applications in the cyber-physical systems, and the Internet of Things domain. While limitless possibilities exist, their realization has led to the grand challenge of designing a new class of systems that can provideseamless support for efficient and easier to program sensor-based applications. Furthermore, as sensor data processing often consists of complex compiled code, expensive machine learning, and signal processing code, systems that can scale to data generated by a myriad of interconnected sensors and devices embedded in the environment are needed.
This thesis presents TippersDB, a middleware system designed to build sensor-based smart space analytical applications. The intended goal of TippersDB is to ease the task of developing complex smart space applications, to develop an extensible system that allows diverse/heterogeneous sensors (with possibly overlapping functionalities) to co-exist and to be seamlessly integrated into the system without requiring application redesign, and to exploit the semantics of the physical world, as well as, sensor capabilities to optimize the applications. TippersDB provides a powerful data model that decouples semantic data about the application domain from sensor data using which the semantic data is derived. By supporting mechanisms to translate data, concepts, and queries between the two levels, TippersDB relieves the application developers from having to know or reason about either the type or location of sensors or write sensor specific code. In addition, it allows for multiple optimizations based on smart space semantics to improve query processing.
In particular, in this thesis, first we introduce the SmartBench benchmark that we developed to analyze the existing database technologies in terms of their strength/weaknesses and suitability in supporting IoT applications. Next, we introduce the TippersDB data model and describe its query-driven translation of sensor data. We then provide a summary of the system implementation and show a performance evaluation of TippersDB using IoT benchmark queries. This is followed by the description of the progressive query processing techniques used in TippersDB to reduce wait time for the users by providing them with early results. Finally, we highlight the benefits of TippersDB through a case study.