Database Research Group -- University of Michigan, Ann Arbor

Current Projects:


Intentional Networking

Mobile devices face a diverse and dynamic set of networking options. Using those options to the fullest requires knowledge of application intent. Intentional Networking is a simple but powerful mechanism for handling network diversity. Applications supply a declarative label for network transmissions, and the system matches transmissions to the most appropriate network. The system may also defer and re-order opportunistic transmissions subject to application-supplied mutual exclusion and ordering constraints.

Our recent work with Intentional Networking has involved porting the code to Android. This process has resulted in a number of "lessons learned the hard way" with regard to hacking on Android and modifying its internal compoments, some of which we document on this blog.

Systems for Challenged Network Environments

For most intents and purposes, there is plenty of storage and computational resources to go around, even in some of the most challenged environments in the world. Network connectivity and power, however, are in limited supply. This project focuses on building practical systems solutions to operate in environments where poor connectivity is the norm. We are interested in investigating ways to leverage available resources for improving user experience in accessing and consuming data under these circumstances. More generally, We are interested in distributed systems, ad-hoc and bundle transfer networks, mobility powered systems, market solutions, and abstractions for better utilizing constrained resources.

Transparent WiFi Switching

As the number of wireless hotspots has increased, the clients face signicant challenges in choosing the right access point with which to associate. What's more, the right choice changes over time as clients move, workloads vary, or the environment changes. Unfortunately, switching from one access point to another is a heavyweight operation, as connection state can be lost in the process. We are working on a system to handle these transitions automatically and to lower this friction, called elastic access, or EA.

BlueFS: A distributed file system for pervasive computing

BlueFS is a distributed storage solution that targets consumer electronics devices in the digital home. Our goal is to seamlessly link together all of a user's content (photos, music, documents, etc.) and all of their devices (computers, DVRs, cameras, MP3 players, and the like). BlueFS supports extensibility to allow users to inject type-specific functionality into the file-system itself to improve handling of new types of data and clients.

Our work with BlueFS is also investigating how to build energy-efficient distributed file systems for pervasive computing. By making energy conservation a first-class design goal from the outset, we will enable pervasive computers to maintain connectivity without compromising battery lifetime. This will allow pervasive computing devices to be incorporated into everyday activities.

Past Projects:


Self-tuning power management

Current timeout-based power management strategies often substantially degrades performance and may even increase overall energy usage when used with latency-sensitive applications. We are developing self-tuning power management algorithms that adapt to the access patterns and intent of applications, the characteristics of individual hardware components, and the energy usage of the computing platform. Our preliminary work implementing self-tuning power management for wireless networks shows considerable promise: we are able to substantially improve upon the performance and energy conservation provided by current 802.11b power management strategies.

Slingshot: support for mobile services

It is extremely difficult to execute demanding applications in pervasive computing environments. Size and weight restrictions make mobile clients resource-poor; they have less powerful processors, less storage capacity, and poorer network connectivity than corresponding desktop and server devices. Often, their resource capacity is insufficient to run demanding, interactive applications such as speech recognition, language translation, and augmented reality. Remote execution offers a solution: clients can partition such applications and execute the most demanding portions on remote servers located in the fixed infrastructure. This allows applications to simultaneously benefit from the mobility of small devices and the greater processing power of larger, fixed devices.

We are building a system, called Slingshot, that dynamically discovers servers in the pervasive infrastructure and opportunistically uses them to augment the capacities of resource-impoverished clients. Slingshot monitors the resources offered by servers and estimates application needs. It then dynamically partitions applications running on a client and executes components remotely to achieve better performance, superior quality, and reduced usage of battery energy. Slingshot supports latency-sensitive applications that require sub-second response time by migrating server components to follow the movement of mobiler clients.

© Mobility Research Group, University of Michigan, Ann Arbor, MI. Design from the Database group.