Title: Ensembles
1Ensembles
- Ubiquitous Computing
- Spring 2007
2Readings
- Device Ensembles
- By Bill N. Schilit and Uttam Sengupta
- What We Carry (sidebar)
- By Ken Anderson, Michele Chang, and Scott
Mainwaring - User Interfaces When and Where They are Needed
An Infrastructure for Recombinant Computing - By Mark W. Newman, Shahram Izadi, Keith Edwards,
Jana Sedivy, and Trevor Smith
3Device Ensembles Overview
- Problem
- People juggle a multitude of devices and they
dont interact well. - Goal
- Devices should work as an ensemble, playing
effortlessly with each other. -
- Future Usage
- In the future, people will have ensembles with
more than just their own personal devices.
4Problem Scenarios
- How do I get my cellular handset to share phone
numbers with my notebook computer? - How do I shuffle photos from my camera, when its
memory card fills up, to my digital camcorder? - How do I check incoming SMS messages on my game
console? - How do I network my PDA through my cell phones
GSM data channel?
5Why cant one device do everything?
- When one machine does everything, it in some
sense does nothing especially well, although its
complexity increases. -Don Norman
6Standards
- Digital Living Network Alliance providing
guidelines to improve interoperability among home
media devices. - Made progress in important ensemble usage
scenarios. - Lots more to do.
7Layers of interoperability
- Link layer low-power, short-range communication
- Network layer to route IP through the best
connected device - Data layer to share and sync information
- Application layer create apps that can span
multiple devices
8Link Layer
- Spans both LANs and PANs with properties
including low power, medium to high bandwidth,
and always-on connectivity.
9Link Layer examples
- Ubiquitous technologies
- Infrared
- Universal Serial Bus
- Firewire
10Link Layer examples
- Current technologies
- Bluetooth
- Wi-Fi
11Link Layer examples
- Emerging technologies
- Ultrawideband
- ZigBee
- Near Field Communication
12Network Layer examples
- Current technologies
- Jini
- Universal Plug n Play
- Personal Mobile Gateway
13Data Layer
- Data synchronization sync mobile devices with
desktop/server computers and other mobile devices - Data transfer send info when needed rather than
syncing across devices - Data formats have to translate data to
appropriate format to handle ensemble
interoperability
14Data Layer examples
- Data synchronization
- FastSync/SlowSync
- Open Mobile Alliance
- P2P synchronization
- Internet Suspend/Resume
15Data Layer examples
- Data transfer
- BlueFS
- Segank
16Application Layer
- Ensemble end-user services.
- E.g. devices that act as user interface
peripherals for another
17Application Layer examples
- Clicker application converts phone into remote
mouse - Email apps on notebook computer vs. BlackBerry
device - CrossWeaver system designers sketch interface
ideas for multiple devices and turn these into
working prototypes
18Device Ensembles Takeaways
- People now have a multitude of devices and move
between them depending on the task. - Need to clarify usage models to design standards
and solutions for ensembles. - Highlight Clear outline of four layers to
communicate the capabilities of ensemble
computing. Provided current, grounded examples of
these different layers. - Questions Integrate these layers into a single
technology?
19What We Carry
- Study of technosocial device ensembles and
usage models
20What We Carry User findings
- People carry cell phones, laptops, wallets, MP3
players, reading material - All possessions reflect different aspects of how
people represent themselves
21What We Carry Changes
- Macro changes vs. Micro changes
- There should be easy migration of information and
identity between devices.
22What We Carry Too many devices!
- Every device needs too many supporting devices to
work effectively. - User need people want simpler technology that
just works in order to fulfill their tasks - Example Wi-Fi makes life simpler.
23What We Carry Coordination
- Not just syncing information.
- Coordinating information isnt just an archiving
problem its a practical one that occurs in
real time. - Users need a seamless way to switch between and
coordinate devices
24What We Carry Takeaways
- People use multiple devices to fulfill a need for
bounding identity and function. - Mobile devices do not interact as seamless
ensembles yet. - Highlight Captured user needs within their
social context. - Question Do users feel the need to maintain
multiple devices so we need to enable that
coordination? Can we combine functionality in
some ways?
25User Interfaces When and Where They are Needed
An Infrastructure for Recombinant Computing
- Understanding the spontaneity of using and moving
between different technologies.
26What is recombinant computing?
- Recombinant computing enables devices/services
to recombine without planning. - Addresses current problems
- constrained by the difficulties in
interconnecting devices and services - need to plan in advance to overcome the
interoperability challenges.
27Speakeasy
- Infrastructure for recombinant computing. Users
can form new ad hoc combinations to meet their
needs. - Changes how devices discover each other and how
they transfer data between themselves.
28Principles of recombinant computing
- Small, fixed set of generic interfaces
- Mobile code to extend behavior to other
components at runtime - Allowing user to decide when and how components
will interact.
29Framework overview
- Application requests session object from source
- Passes session object copy to the sink.
- Sink uses session to ask source for type handler
to transfer data
30Speakeasy Requirement 1
- Component UIs must be able to find their way
across the network to the user that is using
them. - Interfaces need to be delivered from external
components to a remote client for users
31Speakeasy Requirement 2
- Applications should not need to have specialized
knowledge of every other component. - Apps should be able to use UIs for components
they have not seen before. - UI can be downloaded on demand along with
underlying logic
32Speakeasy Requirement 3
- Allow for the push and pull of UIs between
components and clients - Pull top level per-component UIs
- Push per-connection UIs
33Speakeasy Requirement 4
- Both applications and components have to detect
and recover from partial failures. - Is a remote peer down, just slow at responding,
or momentarily disconnected? - Need to detect these failures without explicit
disconnection signals
34Speakeasy Requirement 5
- Infrastructure should support different UIs,
aggregated from different sources in a connection.
35User Interfaces When and Where They are Needed
Takeaways
- Standardizing communication protocol is a good
way to enable effective device interaction - No need to predict interactions just follows
the push/pull of UIs at runtime. - Highlight an actual system framework developed
to facilitate device ensembles. - Questions What kind of problems can you foresee
with this framework? Would it work in all use
cases?