Mobile Computing and Distributed Systems Research (Internet of Things)
During the Spring of 2017, I completed a joint senior thesis with fellow CS undergraduate Shreyas Tirumala (Yale '18). Our thesis describes Command and Control, a programming model and system architecture for developing and deploying distributed Internet of Things (IoT) applications. As part of our project, we created a programming model centering around the abstraction of device groups, invented a programming language known as Borg, theorized an accompanying distributed system architecture inspired by the paradigm of Software Defined Networking (SDN), and developed static program analysis algorithms to load balance Borg program execution in our system architecture. We implemented a prototype of the system in Python, including the Borg compiler, static program analysis algorithms, and accompanying distributed system architecture. We then tested the system and prepared a 32 page thesis report on our efforts. We are in the process of submitting this project for publication.
Command and Control: A Scalable System and Programming Model for IoT Device Management
Authors: Nishant Jain and Shreyas Tirumala
Advisors: Professors Yang Richard Yang and Mahesh Balakrishnan
CPSC 490: Senior Thesis
Department of Computer Science, Yale University
Advisors: Professors Yang Richard Yang and Mahesh Balakrishnan
CPSC 490: Senior Thesis
Department of Computer Science, Yale University
Abstract:
Command and Control is a novel programming model and system architecture for creating scalable, event-driven Internet of Things (IoT) applications that center around the abstraction of device groups. As part of this programming model, We have designed a high-level language called Borg that allows application programmers to easily encode temporal and logical event dependencies between groups of IoT devices. The structure of Borg and the design of the programming model enable the implementation of powerful batch-processing data flows. We also present a scalable system architecture inspired by the Software Defined Networking (SDN) and MapReduce paradigms. Through two static program analysis algorithms described in this paper, we show that Borg programs can be easily partitioned to scale to large numbers of devices. The Command and Control system therefore presents the components necessary to design, program, and deploy robust, distributed IoT applications while abstracting away the complexity of bilateral device interactions.
Command and Control is a novel programming model and system architecture for creating scalable, event-driven Internet of Things (IoT) applications that center around the abstraction of device groups. As part of this programming model, We have designed a high-level language called Borg that allows application programmers to easily encode temporal and logical event dependencies between groups of IoT devices. The structure of Borg and the design of the programming model enable the implementation of powerful batch-processing data flows. We also present a scalable system architecture inspired by the Software Defined Networking (SDN) and MapReduce paradigms. Through two static program analysis algorithms described in this paper, we show that Borg programs can be easily partitioned to scale to large numbers of devices. The Command and Control system therefore presents the components necessary to design, program, and deploy robust, distributed IoT applications while abstracting away the complexity of bilateral device interactions.