one.world CSE 490dp
Distributed and Pervasive Applications
490dp covers how to build distributed or pervasive computing
applications. The focus of the course are the student projects, for
which students design, implement, and evaluate their own applications.
Lectures highlight system technologies that aid in building
490dp, SLN 8744, meeting Tuesday and
Thursday, 4:30 - 6:00, Mary Gates Hall, room 284.
Experience building systems and
proficiency with Java are strongly recommended; 451 or 461 are useful;
permission of instructor is required.
Instructor: Robert Grimm, firstname.lastname@example.org,
Please direct all questions regarding the course to Robert
Grimm, Eric Lemar, or Adam MacBeth.
Office hours are held in the 4th floor hallway of Sieg. They are:
- Monday, 2:30 - 3:30, Adam MacBeth
- Wednesday, 12:30 - 1:30, Robert Grimm
- Friday, 11:30 - 12:30, Eric Lemar
Class Email List
Group Web Pages
Each group maintains its own set of web pages:
The syllabus defines the goals and
objectives for 490dp and presents the schedule. Lecture slides will be
made available as lectures are given.
The course is an experimental offering. Students will work in teams of
four or six to complete their projects. Each team chooses a
distributed or pervasive computing application and, as a first
milestone, creates a design proposal. The design proposal outlines the
features of the application, describes the overall design, and
identifies difficult problems as well as how to evaluate the
Each team then splits into sub-teams of two. Each sub-team
implements the application in Java. One sub-team uses outside
distributed computing technologies, such as Jini, JavaSpaces,
T Spaces, or JDBC. The other sub-team
implements the application within one.world, a
pervasive computing architecture being developed here at UW CSE.
Each team produces a final report, which reflects on their
experiences and compares the two approaches. Each team also presents
its results to the class and demonstrates its applications. A
preliminary version of the report will be due two weeks before the
A set of approximately seven lectures at the beginning of the
quarter will highlight the distributed computing technologies students
can use to implement their applications on. After that, regular group
meetings with the instructors will replace lectures.
Some Ideas for Applications
Below is a list of some ideas for applications. This list is neither
exhaustive nor binding. Feel free to come up with your own ideas. To
be flip, if the application interacts with other computers, it is
distributed, and, if the application follows you around, it is
A few application scenarios are described in detail on
one.world's scenario page.
PIM. The idea is to make a person's personal information
generally available and automate the interaction with other people's
PIMs. For example, meetings between several people should be scheduled
Chat. It's been done before, but it still is a great
application. Especially, if the chat system can seamlessly interact
with other, existing chat systems (has been done) and follow you
around (has not been done before).
The universal inbox. The idea is to use email to not
only send human-readable messages, but to also send control messages
to automatic services that are registered with the universal
inbox. For example, a calendar service could receive messages about
upcoming meetings and automatically place them on a person's
Donate cycles. SETI@home makes it possible to donate cycles
to a single project. What would it take to create a general
infrastructure that could be used by many different projects?
The personal jukebox. The idea is to make a person's
favorite music available at the current location of the person,
including that person's home, office, or car. To be generally useful,
this application needs to make prudent use of available network
connectivity and cannot assume that the person's current device is
always connected (think airplanes).
Instead of music, similar services could move/distribute documents,
presentations, source code, etc.
The global website. What would it take to serve a
website from more than one location, while also making it easy to
update the site and making those updates visible as fast as