This is a partial list of available project topics.
For more information, please contact the students or faculty involved with
the projects:
Sahara project
Our goal is to understand how to create end-to-end telecommunications services
with desirable and predictable properties, such as
performance and reliability, when provisioned from multiple and independent
service providers. We are developing a new architecture for
future telecommunications services that supports the dynamic confederation
of sometimes collaborating and sometimes competing service
providers. Our first effort in this direction, the Clearinghouse Architecture,
provides a resource management system based on predictive
resource reservations, traffic-matrix admission control, and group
policing for detecting malicious flows. The Clearinghouse is focused on
dynamic trunking decisions within and across ISP clouds. It offers
a starting point for our investigation into the generalization of the concept
of service level agreement to multiple service providers and for properties
other than bandwidth, latency, and packet loss rates. It illustrates
the principles of improved scalability and predictability through aggregation,
and the use of hierarchy and cooperation among service
providers to make effective and agile resource allocation decisions.
We are extending this work in the direction of more general application
of economic mechanisms, such as dynamic auctions, for resource allocation
problems in multi-provider telecommunications service
architectures.
Project ideas
Tiny OS
Here are a collection of project ideas on systems issues related to TinyOS
and large, dense networks of wireless devices. They all have the
key requirements of significant background literature to obtain, new issues
generating important open problems, and opportunity to get some results
in short order. We will be happy to make collections of nodes, tutorial
material, and other support available to teams that want to run in this
area. Contact David Culler (culler AT cs) for more information.
-
Extending Active Badge Scenarios with two-way communication and multihop
routing capabilities
We have an elegant TinyOS device with full capability in the size of
a quarter. We've got components to do proximity detection and you
can go far beyond simply presenting an ID to conducting a negotiation with
devices in your environment. One can start by putting together the
kind of ubicomp scenario where when you walk up to a machine it responds
to you by putting up your desktop (via VNC) or going to a personalized
or even context sensitive web page. However, you can go much further because
your device can interact in a peer fashion with the environment, unlike
the traditional Active Badge work. UWash has run a long way with
LabScape on this. I would be very interested in seeing application
scenarios that bridge disconnected spaces, for example making it possible
to "see who's around" within a closely linked set of labs, that happen
to be physically remote.
-
Application Specific virtual machines. We've all got lots of experience
with JVMs.
They weigh in around a MB and fundamentally provide homogeniety as
a large cost. The idea here is to achieve tremendous coding density
over a range of applications by building tiny application specific virtual
machines. They capture the essential elements of a class of applications
as "instructions", allowing new applications to be deployed across the
network in very small capsules. I've got a prototype built on TinyOS
that can serve as an initial example.
-
High-fidelity wireless time synchronization of large numbers of devices.
The classic distributed systems results say you can synchronize two
nodes to half the variance in the round trip time. NTP builds a tree
from this. However, in a wireless context in order to transmit a
packet, the receivers must synchronize to the sender signal to a fraction
of a bit. We have demonstrated that this can be taken down to about .5
us. Since TinyOS does not impose a constrained message abstraction,
we can provide this synchronization info with every packet. The idea
would be to reexamine large scale time synchronization starting form these
primitives and in the context of a densely connected network.
-
Adversarial simulation.
We have seen lots of advance in simulation for a variety of systems
studies, as illustrated by the simOS work. Increasingly, we are employing
techniques from the verificatin world on complex systems problems. The
idea here is to take a simulator for a network of device, which is normally
used for developing an debugging distributed systems algorithms, and extend
it to serve as an adversary to try to stimulate bugs or problems in those
algorithms.
-
Robust aggregation operators.
On sensor networks it is essential to process data within the network,
aggregate it and deliver key results over the bandwidth constrained paths
to the outside world. It is also noise and prone to failure and attack.
Thus, an aggregation like MAX is very problematic, since a single errant
device can cause and arbitrary deviation. Ave, median, and 90% are
much more robust. Develop a set of robust aggregators for sensor
nets and rules of composition that preserve robustness.
-
Empirical analysis of localization techniques.
There are a bunch of algorithms developed to determine the locations
of a collection of devices given inter-device measurements and a set of
known markers. There needs to be a nice empirical test of these.
-
Self-stabilizing techniques for dense ad hoc networks.
There is a huge opportunity to bridge two classic areas of ad hoc discovery
or flooding algorithms, such as we use to dynamically discover the useful
network topology or to convey commands to collections of nodes despite
dynamic changes in connectivity, and self-stabilizing distributed algorithms.
What would come out of it would be a new class of algorithms for discovery,
routing, data acquisition and control over a network of devices that adpated
to changes in the environment and connectivity in a provably graceful fashion.
-
Applications of Dawson's systems analysis techniques to TinyOS.
You know what they accomplished for Magic and a bunch of other areas.
TinyOS provides even more structure. It should be possible to adapt
the techniques and pull out a bunch of really subtle bugs.
-
Incremental component loading of compile-time optimized tinyOS images
-
Collective communication operators on irregular ensembles of tiny networked
devices
-
Fine-grained tuple space abstractions for distributed systems
-
Analysis of impact of positive multipath interference on network discovery
-
We have just got access to a more powerful network sensor platform from
crossbow.
We have the chance to experiment with tinyos on armthumb with bluetooth.
Some porting work but lots of great experimentation and exploring tradeoffs.