490dp Introduction

Download Report

Transcript 490dp Introduction

490dp
Introduction
Robert Grimm
The Computer for the 21st Century
“The most profound technologies are those
that disappear. They weave themselves into
the fabric of everyday life until they are
indistinguishable from it.”
Mark Weiser
Pervasive Computing
• Vision: Shift in focus to users and their tasks
– Embodied virtuality
• Enabled by ubiquitous smart devices
– Tabs, pads, boards
• Required technology
– Cheap, low-power computers
– Software for ubiquitous applications
– Network to tie them all together
Our Focus
• We assume
– Computers
– Network
• We build applications
Attending a Meeting
• Shared repository
– Exchange notes etc. during the meeting
– Capture audio and video
– Provide archive after meeting
• Functionality highlights
– List of participants based on their devices
– Newly added documents sent to repository
– Archive distributed to participants
Attending a Meeting
• Technical issues
– Location of repository
• One location vs. replicated locations
• In infrastructure vs. on participants’
devices
– Routing of documents
• To repository
• To all participants
Attending a Meeting
• Change in focus
– During the meeting, functionality counts
– After meeting, the artifact counts
490dp – Goals and Objectives
• Design, build, and evaluate
distributed / pervasive applications
– Build a working application
– Gain experience with complex systems
– Work together in groups
– Communicate clearly
– Consistently work towards a goal
How to get there
• Two teams
– One application per team
– Two sub-teams per team
• One implementation per sub-team
–Java, RMI, Jini, JavaSpaces,
T Spaces, JDBC
–one.world
How to get there
• Seven lectures
– Jump-start application building process
• Design report and presentation
– Your plan
• Weekly meetings
– Your status updates
– Q&A
• Final report and presentation
– Your results
Lectures
• Challenges
– Why is it so hard to build
distributed or pervasive applications?
• Java object serialization
– How to turn objects into bytes
• Tuples
– How to represent, store, and communicate
data
Lectures
• Synchronous vs. asynchronous invocation
– How to get things done
• Remote invocation
– How to get things done on another node
• Resource control
– How to keep track of consumed resources
• Check-pointing and migration
– How to save and move entire applications
Lectures
• Required readings
– You must read them before lecture
– We will send out a summary
one or two days before lecture
• Background readings
– Additional background or context
• Reference readings
– Useful for actually building applications
Two Platforms
• Java etc.
– Established systems
– Fully implemented
– Loosely integrated
– Lots of outside users
• one.world
– Research system
– Incomplete, buggy
– Highly integrated
– Local experts
• Common abstractions and services
– Tuples
– Events
– Leases
– Transactions
– Discovery
Qualitative Evaluation
• What was easy / hard?
• What worked / what didn’t work?
• Why?
– Help others learn from you
Quantitative Evaluation
• Time spent
– Track from beginning
– Break down by activity
• Design, implementation, debugging, write-up
• Code statistics
– Source code
• Total # of lines
• Non-commenting source statements
– Abstractions
• # of methods; # of classes
– Binaries
Quantitative Evaluation
• Performance
– Basic operations
– Scalability
• Over users
• Over nodes
Rules of Engagement
• Attendance mandatory
• By team
– Design, write-up
• By sub-team
– Implementation, debugging, demo
• Help each other with
– Set-up
– Pointers to technical resources
– General questions
Resources
• People
– Robert Grimm, Eric Lemar, Adam Macbeth
– Other students
• Books
– Oaks & Wong. Jini in a Nutshell. O’Reilly 2000.
• Internet
– java.sun.com
– www.jini.org
– one.cs.washington.edu
This course is experimental!
• You have a great opportunity
– Use cutting edge system technologies
– Build real pervasive applications
• The ride will not always be smooth
– We need your feedback early and often
• You need to take initiative
– Work through tutorials, specs on your own
– Help each other
Break
Administrivia
• Signup
• Office hours
– Monday, Wednesday, Friday
– What times work for you?
• Final
Teams and Applications
• Introductions
• Discussion