Software Systems and Infrastructure for IoT

Photo of a stack of smart phones
Refactoring Code for Asynchronous Execution on Mobile IoT (Video) (Overview slide)
Danny Dig

Asynchronous programming is in demand today because responsiveness is especially important on mobile and wearable devices. One contemporary development task is refactoring long-running, blocking synchronous code (e.g., accessing the web, cloud, database, or file system) into non-blocking asynchronous code. In this talk I present our research on program analysis and transformation together with our useful toolset that enables app developers to retrofit asynchrony.

Photo of a utility meter
Securing Advanced Metering Infrastructures (AMI) a Precursor to IoT (Video) (Overview slide)
Rakesh Bobba

Advanced Metering Infrastructures (AMI) which have thousands to millions of limited capability smart meters connected by local and wide-area networks are a pre-cursor to IoT with many of the same challenges. In this talk we discuss some of the security challenges and proposed solutions in the AMI context, and then look ahead to upcoming challenges in IoT which will be much larger and heterogenous.

Photo of Margaret Burnett and students
The People in the IoT (Video) (Overview slide)
Margaret Burnett

The Internet of Things is inherently about people — helping to improve their safety or their experiences in their homes, jobs, and in the world. For example, we can warn people of dangerous situations near their current location, recommend the next painting to look at in a museum, or enable them to remotely "program" objects in their smart homes to cooperate with each other. My work will focus on two aspects of this: (1) enabling ordinary users to do this sort of "programming," and (2) doing so in ways that allow IoT systems to be inclusive to both males and females.

Photo of a student at a computer in a lab
CASS: Your Implementation Partner (Video) (Overview slide)
Carlos Jensen

In order for the promise of IoT to be realized, devices produced by different vendors must be able to communicate reliably and seamlessly with each other. And while vendors can test that their own devices correctly support one or more of the rapidly evolving IoT protocols, it is impractical for them to build a test bed with a wide array of other reference devices that support the same protocol. The IoT Test & Compatibility lab will be a membership driven organization where members send their IoT devices for testing in a variety of situations containing a wide array of other products and ensure that their product interacts correctly and as expected. This talk will give an overview of our plans to build the IoT Test & Compatibility lab and make it an effective partner in supporting the vision of an interconnected world.

Photo of a student with sensors on his fingers
CreateIT Collaboratory (Video) (Overview slide)
Don Heer

This joint university-industry lab develops innovative projects designed by and targeted to millennials. Spidey Sense, a wearable haptic feedback device, allows navigation indoors without seeing. Music Sense senses emotional reaction to music for analyzing how music affects people. The Smart Helmet developed in partnership with Intel performs the function of the airplane black box for bicyclists.

Programming in PexPipe: Draw a diagram, which PexPipe compiles and deploys to devices, servers, and browsers for you
Systems-Level Programming Tools for Distributed Code (Overview slide)
Christopher Scaffidi

Today, creating an IoT system requires writing multiple different programs, such as those that run on sensors, mobile devices, web servers, and other cloud-based backend servers. To simplify the creation and reuse of IoT systems, we are collaborating with National Instruments on a new approach supporting system-level programming. An engineer uses our new visual programming language to draw a picture of the entire system as a whole, from which a compiler generates the collaborating programs and deploys the resulting binaries in a single step across distributed and cloud-based machines.

Diagram of algorithm for devices
Secure Computations on Private Data (Overview slide)
Mike Rosulek

Tools from cryptography allow mutually distrusting parties to carry out complex computations on data while at the same time keeping the inputs to the computation private. In the Internet of things, these secure computation techniques can be used for achieving consensus in an ad-hoc network of devices, or for computing aggregate sensor data while keeping the individual measurements private. Intense work over the past decade has reduced the overhead of these these cryptographic techniques by many orders of magnitude, finally making this powerful technology practical for many applications.

Graphic illustrating secure internet connections for vehicles
Towards Secure and Reliable Internet of Vehicles (IoV) (Overview slide)
Attila A. Yavuz

Modern vehicles are being equipped with advanced sensing and communication technologies, which enable them to support innovative services in the Internet of Vehicles (IoV) era such as autonomous driving. These services can be effective through the spatial and temporal synchronization of the vehicle with the other entities in the environment. Hence, the communication in IoVs must be delay-aware, reliable, scalable and secure to (a) prevent an attacker from injecting/manipulating messages; (b) minimize the impact (e.g., delay, communication overhead) introduced by crypto operations. However, existing crypto mechanisms introduce significant computation and bandwidth overhead, which creates critical safety problems. To address this need, we are developing a new suite of cryptographic mechanisms, supported with time-valid framework and hardware-acceleration, to ensure secure and reliable operation IoVs.

Photo of computer chips
Error Correcting Codes for Flash Memories (Overview slide)
Bella Bose

Flash memories are nonvolatile, high density and low cost memories. Flash memories find applications in cell phones, digital cameras, embedded systems, data centers, etc. In order to improve the density of flash memories, multi-level (q-levels) memory cells are used so that each cell stores log_2(q) bits. After many rewrites the flash is prone to errors, mostly of limited magnitude errors. We are developing some efficient new classes of error correcting codes applicable to flash memories.

Abstract graphic
Developing Software for a Diversity of Devices (Overview slide)
Eric Walkingshaw

Software developed for the IoT must run on a wide variety of devices with different hardware and feature sets. To avoid repeating work and decrease time-to-market for new devices, developers create and maintain massively configurable software systems. Our research focuses on languages, algorithms, and methods for effectively managing the complexity inherent in massively configurable software. For example, we have developed verification techniques for statically ensuring that all configurations of a software system are type correct, and editing models that minimize the complexity and clarify the impact of programmers working on a particular subset of configurations.

Abstract graphic
Domain-Specific Network Optimization (Overview slide)
Glencora Borradaile and Amir Nayyeri

The optimization problems that arise from an IoT will push our computational resources. We will need to relay messages faster, more reliably and with lower power and computational overhead. The information we are able to derive from an IoT will be bound by the computational complexity of the network optimization problems, but we can push beyond these limitations by designing algorithms that are specific to the localized, mesh structure that an IoT will have.