Вы находитесь на странице: 1из 60

Pervasive Computing

Sumi Helal
Richard Chapman
3 October 2002

Wireless Engineering
Pervasive Computing
WIRELESS ENGINEERING

1. What is Pervasive Computing


2. User Interactions
Context-Aware Decision Engine
3. Distributed Services
Jini,UPnP,Osgi,Bluetooth SDP
4. Infrastructures
5. MIT Oxygen Project
6. HP Cooltown Project
7. References
Ubiquitous Computing (1)
WIRELESS ENGINEERING

Ubiquitous, Invisible Computing (Mark Weiser [1]) :


Computers disappear into the background.

Computers embedded in walls, in tabletops, and in every day


objects
A person might interact with hundreds of computers at a
time, each invisibly embedded in the environment and
wirelessly communicating with each other.
Ubiquitous Computing (2)
WIRELESS ENGINEERING

PARCTAB System
- Doors open only to the right badge wearer.
- Rooms greet people by name.
- Receptionists actually know where people are.
- Telephone calls can be automatically forwarded.
- Computer terminal retrieve the preference of whoever is
sitting at them.
Technologies for Ubiquitous Computing :
Display, network, and ubiquitous software system
The Personal Motor
WIRELESS ENGINEERING

Popular at turn of 20th Century


One motor and lots of peripherals:
washing machine, woodworking tools,
sewing machine, grain milling
System of belts and pulleys to distribute
motive power
Similar to the PC situation today
Intel, Microsoft like it this way
The Invisible Computer
WIRELESS ENGINEERING

Embed the capability where it is needed


rather than centralize it
You know youve succeeded when the
technology becomes a fashion item
Wristwatches: definitely
Mobile phone: almost
Laptop PC: nope
Pervasive Computing (1)
WIRELESS ENGINEERING

A computing environment that seamlessly and ubiquitously supports users in


accomplishing their tasks and that renders the actual computing devices and
technology largely invisible [5].

Environments created when computing power and network connectivity are


embedded in virtually every device humans use. Anytime/anywhere, any
device, any network, any data [4].

Computation is freely available everywhere, like batteries and power sockets.


Anonymous devices, either handheld or embedded in the environment, will
bring computation to us, no matter where we are or in what circumstances.
These devices will personalize themselves in our presence by finding
whatever information and software we need [18].
Pervasive Computing (2)
WIRELESS ENGINEERING

Device as portal / Application as task / Physical


surroundings as computing Environment [2]
- A device is a portal into an application/data space.
- An application is a means by which a user perform a task,
not a piece of software to exploit a devices capability.
- The computing environment is the users information-
enhanced physical surroundings, not a virtual space to
store and run software.
Pervasive Computing (3)
WIRELESS ENGINEERING

It is all about access to your information, anytime,


anywhere, from any device.
Four major aspects [6]
- Computing is spread throughout the environment.
- Users are mobile.
- Information appliances are becoming increasingly
available.
- Communication is made easier -- between individuals,
between individuals and things, and between things.
Challenges [1-6]
WIRELESS ENGINEERING

User Interactions
- Different interface modalities and form factors
- Multiple user interfaces that rely upon user intent
Distributed Services
- Adaptable to users, to the environment, to change, to failure
- Dynamic service discovery, adaptation and composition
- Horizontally-layered network-based services
Infrastructures
- Dynamically configured proximity network of sensors, actuators, and
appliances.
- Limited network connectivity, intermittent & unpredictable
User Interactions (1)
WIRELESS ENGINEERING

Heterogeneous devices: different user interfaces, ranging from


window- and keyboard-based to pen-based to voice-based interaction.
Data from a variety of location and motion sensors, identification tags,
and on-line services.
Maintaining task-oriented consistency across physical devices while
managing the multiple interfaces in a coherent manner.
- e.g. newspaper service to home display and PDA
User Interactions (2)
WIRELESS ENGINEERING

New and novel interaction methods such as vocal, handwritten, video,


gestural, or olfactory interface
The application front-end should be device-neutral: no assumption
about the screen size or device capabilities, even no screen.
Allows mobile clients to discover a service interface suited to the
clients size, shape, abilities, or resource limitation.
- Berkeley IDL(Interface Definition Language) or a XML schema
- Motorola VoxML: integration of speech interfaces with web content
User Interactions (3)
WIRELESS ENGINEERING

From explicit commands and towards interfaces that implicitly take their
direction from peoples behavior/intent.
Make the UI fit so well into the environment that it becomes invisible
(Invisible interface and intuitive user interface)
Context aware computing attempts to coalesce knowledge of the users
task, emotions, location, and attention with other available data such as
the time and knowledge about other users.
- Georgia Techs CyberDesk
- Spatial location work at AT&T Laboratories Cambridge
- Xerox PARC
User Interactions (4)
WIRELESS ENGINEERING

Heterogeneous devices vs. Universal personal appliances

Universal personal appliances [18]


In response to user requests, they can reconfigure themselves through
software into many useful appliances such as a two-way radios, cell
phones, geographical positioning systems, and PDAs.
Context-Aware Decision Engine
WIRELESS ENGINEERING

University of Hong Kong, Lum and Lau


[19]
Problem: how to render content for a variety
of mobile devices?
Bad solution: store multiple representations
of the content on the servers
Better solution: proxy server, transcoding
Challenge: flexibility to handle wide variety
of evolving devices?
Context-Aware Decision Engine(2)
WIRELESS ENGINEERING

WAP phones are widespread but suffer


limitations
Limited bandwidth (9600 baud 2G, 56KB
2.5G, 114Kbps Verizon east-coast
CMDA1x)
Display size (92x74 = 5 Korean characters)
Conflicting Standards: HTML vs. WML,
JPEG vs. WBMP
Context-Aware Decision Engine(3)
WIRELESS ENGINEERING

What is the context?


User preferences
Device capabilities
Quality of service
Context-aware Decision Engine (4)
WIRELESS ENGINEERING

How to determine device capabilities


J2ME uses configuration (e.g. CLDC) and
profile (e.g. MIDP)
Composite Capability/Preference Profile:
user prefs within user agents set of
capabilities, retrieved via http over the
Internet rather than from the mobile device
Context-Aware Decision Engine(5)
WIRELESS ENGINEERING

Decision engine evaluates each possible


mode of presenting content
Mode characterized by quantized user
preferences, device capabilities
Search algorithm (various ones) finds a
mode that meets user preferences and
device capabilities
Mode scores for each user and device
precalculated
Distributed Services (1)
WIRELESS ENGINEERING

Building applications using composable, distributed component


services, rather than static application partitioning used for multi-tier
computing.
Service should not be explicitly named, but rather specified in an
abstract manner (intent-based access not through explicit
location/name, but characteristics)
Specify an abstract service description language: a means to express
the expected function of a service.
Create a task-based model for application structure:
- Tasks in a PIM calendaring application could be user authentication,
browsing the appointment, and entering a new appointment.
Distributed Services (2)
WIRELESS ENGINEERING

System must be able to dynamically discover and compose


the services that are available in the local vicinity.
The system needs to support dynamic selection of an
appropriate interface, based on the devices resources and
form-factor.
The system needs to seamlessly integrate the applications
and service found in the environment (e.g. a discovered
map application should be able to use a discovered GPS
service.)
Distributed Services (3)
WIRELESS ENGINEERING

At load-time, a device need to negotiate application


apportioning with a server (adaptation to the device
resource available).
Support handoff of task context from one environment(e.g.
newspaper service in office) to another (e.g. car):
adaptation to detect changes in environment and re-
apportioning.
Service deployment, dynamic upgrade, customization, and
consumer choice.
Distributed Services (4)
WIRELESS ENGINEERING

Mobile Agent technology. And active network allowing


the flexible integration of applets and servlets.
Persistent storage: an object store to 1) preserve the
structure of application data, 2) provide associative access
to this data, and 3) support atomic operations.
Service Framework [7 - 13] (1)
WIRELESS ENGINEERING

Dynamic discovery of functionality based on context.


Self-managing, as devices can join and leave as necessary.
OSGi, Jini (Sun) , UPnP (Microsoft), Bluetooth SDP, and HAVi
- Local service database vs. ARP-style request (announce-listen model)
- Query model: Java object, XML, or URI
- A resource name vs. an object written in Java or Otcl
Discovery Protocols (1)
WIRELESS ENGINEERING

Spontaneous discovery and configuration of network


devices and services
Selection of specific types of service
Low (preferably no) human administrative requirements
Automatically adaptation to mobile and sporadic
availability
Interoperability across manufactures and platforms
Jini
WIRELESS ENGINEERING

Bound to Java RMI


Multicast request/Multicast announcement/Unicast discovery
Service matching by service type and attributes
Lease enables robust system without manual intervention.
Remote event enables the run time composition of services.
What Jini is not
WIRELESS ENGINEERING

Jini is not a name server: lookup service is


similar, but does more than provide
references to objects
Jini is not Java Beans: beans
communication based on direct method
invocation, not remote. Also, beans do not
automatically become aware of each other
as do Jini objects
Strong typing is important
WIRELESS ENGINEERING

In Java, an RMI defines the interface, while


in CORBA, an IDL description is a wrapper
around the interface
Polymorphism works in RMI -- you can
define subinterfaces; you can pass an ojbect
of a subtype to remote server and the
subtype methods are appropriately used
(doesnt work in CORBA).
Discovery
WIRELESS ENGINEERING

Services=Devices or Software
Services collect themselves into communities
The resources available to a community are kept
track of by a lookup service
No one-to-one mapping between communities and
lookup services
Discovery=finding available lookup services
Lookup
WIRELESS ENGINEERING

Downloadable proxy provided with each


service item
When any entity wants to use your service it
downloads the proxy and runs it -- the
proxy handles sending the remote server the
necessary pieces
Proxy can be used as a secure, network-
aware device driver
Lookup contd
WIRELESS ENGINEERING

Lookup returns a service item when queried


successfully.
Service item contains proxy object (local
stub for remote object) and attributes that
describe the service
Lookup, contd
WIRELESS ENGINEERING

Service item

Proxy

attribute
attribute Service item

Lookup service
Proxy scenarios
WIRELESS ENGINEERING

Proxy may perform the service by itself,


without any remote method invocation
Proxy may be an RMI stub that knows how
to talk to a remote service (e.g. IMAP mail
server)
Proxy uses private communication protocol
to talk to legacy (non-Java) systems.
Using a Jini Service
WIRELESS ENGINEERING

Lookup service

Downloads proxy

Client communicates
with service via
proxy
Service Client
Universal Plug and Play (UPnP)
WIRELESS ENGINEERING

Microsoft-backed
UPnP is multistage protocol
- Discovery/Description/Control/Eventing/Presentation
Devices, Services, and Control Points
Based on Web technologies: IP/HTTP/XML/GENA/SOAP
SSDP(Simple Service Discovery Protocol)
- URI style query (similar to SLP) returns URL which points to an
XML file with an elaborate description of the service.
Similar functionality to Jini plus automatic IP configuration (AutoIP)
www.upnp.org
SSDP
WIRELESS ENGINEERING

ssdp:alive (like Jini registration with lookup


svc)
ssdp:discover (like Jini discovery)
Can work with/without control points
(lookup server) in contrast to Jini
UPnP Services
WIRELESS ENGINEERING

Description is stored as XML file


Control via SOAP messages: SOAP
developed for web service
Most every language/platform has
SOAP/XML libraries
Event notification with XML in General
Event Notification Architecture
Presentation URL can be supplied by device
Open Services Gateway Initiative
(OSGi)
WIRELESS ENGINEERING

Open, standards based, language/OS neutral


Consists of framework in which bundles of
services that register with a registry can run
On top of J2RE
OSGi Service Specifications
WIRELESS ENGINEERING

Three version 1
services Version two services
Logging service added:
Web server Configuration svc
Device access Preferences svc
User admin svc
Permission admin svc
Pkg admin svc
Framework
WIRELESS ENGINEERING

Allows the downloading, execution, and removal


of bundles
M anages bundle installation and updates
dynamically (scalably?)
Consistent programming model for bundle
developers
Bundles can select an available implementation at
runtime through the framework registry
Bundles
WIRELESS ENGINEERING

JAR files
May include other resources (html, help
files, icons, etc)
Contains manifest
States dependencies on other resources
Bundle activator class
Bundles, contd
WIRELESS ENGINEERING

Framework itself is a bundle (system bundle)


Management bundles implement policies (e.g. from what
location is a bundle to be loaded)
Each bundle has a classloader with it, providing bundle
with own namespace, permitting sharing of packages
between bundles
Time for the soapbox
WIRELESS ENGINEERING

Jini has seen little market acceptance -- no one


wants to be tied to Java, worried Sun will drop it
UPnP complies with standards++, but almost
gets it right
Why fool with all this -- you can write your own
without much fuss?
Because XML is the only way of doing RPC that
anyone can agree on
But wait and see what happens with OSGi
Infrastructures (1)
WIRELESS ENGINEERING

Environment populated by sensors, actuators, and appliances.


People control and monitor their environments by taking advantage of
freely-available computation throughout that environment.
Environment provides mobile devices with computational power,
because they are not limited neither by size nor by power source.
- For example, in order to improve speech recognition, use video
imaging of lip movement, or take into account an image-based
understanding of a persons gaze, expression, and intent.
Infrastructures (2)
WIRELESS ENGINEERING

Global computing infrastructure, which spans different


organizations and smaller networks
- Autonomous administration.
Self-managing, ad-hoc, proximity network of people
(mobile devices) and things (environment).
- Bluetooth, HomeRF, USB, IEEE 1394
Location discovery
- Location beacon embedded in the walls
- GPS for outdoors
Infrastructures (3)
WIRELESS ENGINEERING

Intermittent connectivity due to power, cost, bandwidth, latency and


congestion limitations.
Bluetooth and HomeRF addresses small-proximity network,
intermittent connection environment, but not complex issues such as
hand-off and signal strength analysis.
Vertical handoffs to provide seamless and power efficient connectivity
across a wide range of areas
Active network infrastructure
Infrastructures (4)
WIRELESS ENGINEERING

Ubiquitous persistent storage


- Coda file system designed specifically for mobile clients
- The Bayou project using a distributed database approach
Disconnection: automatic migration and disconnected operation
Disconnection should be distinguished from failures.
Adapting traditional checkpoint strategies.
MIT Oxygen Project [18] (1)
WIRELESS ENGINEERING

Vision: In the future, computation will be freely available everywhere,


like batteries and power sockets, or oxygen in the air we breathe.

Goals:
- pervasive: it must be everywhere, with every portal reaching into the same
information base.
- embedded: it must live in our world, sensing and affecting it.
- nomadic: its users and computations must be free to move around according to
their needs.
- eternal: it must never shut down or reboot; components may come and go in
response to demand, errors, and upgrades, but Oxygen as a whole must be non-
stop and forever.
MIT Oxygen Project (2)
WIRELESS ENGINEERING

Foundation technologies
MIT Oxygen Project (3)
WIRELESS ENGINEERING

Knowledge access technologies offer improved access to information,


customized to the need of people, applications, and software systems.
They allow users to access their own knowledge bases, the knowledge
bases of friends and associates, and those on the web.

Automation technologies offer natural, easy-to-use, customizable, and


adaptive mechanisms for automating and tuning repetitive information
and control tasks. For example, they allow users to create scripts that
control devices such as doors or heating systems according to their
tastes.
MIT Oxygen Project (4)
WIRELESS ENGINEERING

Collaboration technologies enable the formation of spontaneous


collaborative regions that accommodate the needs of highly mobile
people and computations. They also provide support for archiving
speech/video fragments from meeting, and for linking these fragments
to issues, summaries, keywords, and annotations.

Speech and Vision technologies provides the main modes of interaction


in Oxygen. Multimodal integration increases the effectiveness of these
perceptual technologies, for example, by using vision to augment
speech understanding by recognizing facial expressions, lip movement,
and gaze.
MIT Oxygen Project (5)
WIRELESS ENGINEERING

Software environment is build to support change(adaptable). Change is


occasioned by anonymous devices customizing to users, by explicit user
requests, by the needs of applications, by current operating conditions,
by the availability of new software and upgrades, by failures, or by other
causes.

Networks, called N21s, connect dynamically changing configurations of


self-identifying mobile and stationary devices to form collaborative
regions. N21s support multiple communication protocols for low-power
point-to-point, building-wide, and campus-wide communication.
MIT Oxygen Project (6)
WIRELESS ENGINEERING
Intelligent Spaces are created by stationary devices, called
E21s, embedded in offices, buildings, homes, and vehicles.
E21s provide large amounts of embedded computation, as
well as interface to camera and microphone arrays, large area
displays, and other devices.

Mobile(Handheld) Devices, called H21s, provide mobile


points of interaction for users. H21s accept speech and visual
input, and they can reconfigure themselves to support multiple
communication protocols or to perform a wide variety of
useful functions (e.g., to serve as cellular phones, beepers,
radios, televisions, GPSs, cameras or PDAs). H21s can
conserve power by offloading communication and
computation onto nearby E21s.
HP CoolTown
WIRELESS ENGINEERING

Tim Kindberg, John Barton, HP labs (Palo


Alto) [19,20]
Link the physical presence of
people/places/things in the real world to the
logical presence of those
people/places/things on the web
You can click on things in the world
Example applications
WIRELESS ENGINEERING

Aim your mobile phone at a billboard and click on


it to get info about the product (actually this is
done with a BREW phone by KDDI in Korea, but
the spirit is similar to Cooltown), also similar to
U.Florida iGrocer
Get information on paintings with your PDA as
you explore an art museum (and pay to get a high
quality reproduction printed on an HP color large-
format printer at the gift shop :-)
Elders, children/education, repair/maintenance, etc
HTTP is everywhere
WIRELESS ENGINEERING

Use http/web servers/post strings to handle


the system -- anything can run a web server
Users are familiar with the idea of a
browser (and HP sells PDAs with
browsers)
Developers are familiar with developing
web applications, so leverage that
Infrastructure
WIRELESS ENGINEERING

Somehow must add at least tags to things


in the world
Examples: RFID, barcode, infrared
The web server for a thing doesnt have to
be on the thing, but the URL does
No configuration for users
Somehow must be able to infer the users
context
References
WIRELESS ENGINEERING
[1] Mark Weiser. The computer for the 21st century. Scientific American, 265(3):94--
104, September 1991.
[2] Guruduth Banavar, James Beck, Eugene Gluzberg, Jonathan Munson, Jeremy Sussman,
and Deborra Zukowski, "Challenges: An Application Model for Pervasive
Computing," MobiCom 00, August 2000, pp. 266 - 274
[3] M. Esler, J. Hightower, T. Anderson, and G. Borriello, Next century challenges:data-
centric networking for invisible computing. the portolano project at the university
of washington, MobiCom 99, August 1999.
[4] Thomas Agoston, Tatsuro Ueda, and Yukari Nisimura, Pervasive computing in a
networked world, In Proc. of INET 2000.
[5] Robert Grimm, Tom Anderson, Brian Bershad, and David Wetherall, A System
Architecture for Pervasive Computing, In Proceedings of the 9th ACM SIGOPS
European Workshop, pages 177-182, Kolding, Denmark, September 2000.
[6] Brent A. Miller, Bluetooth Applications in Pervasive Computing,
http://www.ibm.com/pvc.
[7] Robert E. McGrath, Discovery and Its Discontents: Discovery Protocols for
Ubiquitous Computing, UIUC 2K project, April 2000.
[8] Steven E. Czerwinski, Ben Y. Zhao, Todd D. Hodes, Anthony D. Joseph, and Randy H.
Katz, An Architecture for a Secure Service Discovery Service, MobiCom '99,
August, 1999, pages 24 - 35.
WIRELESS ENGINEERING
[ 9] Erik Guttman, Service Location Protocol: Automatic Discovery of IP Network Services, IEEE
Internet Computing, vol. 3, no. 4, July/August 1999.
[10] E. Guttman and C. Perkins, Service location protocol version 2, IETF RFC 2608, June 1999.
[11] Service Location Protocol Home Page, http://www.srvloc.org.
[12] Universal Plug and Play Device Architecture, http://www.upnp.org/resources.htm
[13] Jini specificaations v 1.1, http://www.sun.com/jini/specs
[14] Dey, A.K. et al, The Conference Assistant: Combining context-awareness with wearable
computing, Proceedings of the 3rd International Symposium on Wearable Computers (ISWC '99),
1999, pp. 21-28.
[15] Dey, A.K., Salber, D., & Abowd, G.D, A Context-based infrastructure for smart environments, In
Proceedings of the International Workshop on Managing Interactions in Smart Environments
(MANSE `99), pp. 114-128.
[16] S. D. Gribble and et al, The ninja architecture for robust internet-scale systems and services,
Special Issue of IEEE Computer Networks on Pervasive Computing, 2000.
[17] S. D. Gribble, M. Welsh, E. A. Brewer, and D. Culler, The MultiSpace: an Evolutionary Platform
for Infrastructure Services, In Proceedings of the Usenix Annual Technical Conference, June 1999.
[18] MIT Project Oxygen, http://oxygen.lcs.mit.edu
WIRELESS ENGINEERING

[19] Lum, Wai Yip, and Francis C.M. Lau, A Context-


Aware Decision Engine for Content Adaptation, Pervasive
Computing, IEEE Press, Vol. 1, No. 3, pp. 41-49.

[20] People, Places, Things: Web Presence for the Real


World, Tim Kindberg, John Barton, Jeff Morgan,
Gene Becker, Ilja Bedner, Debbie Caswell, Phillipe
Debaty, Gita Gopal, Marcos Frid, Venky Krishnan,
Howard Morris, Celine Pering, John Schettino, Bill Serra
and M. Spasojevic. In proceedings WMCSA2000. To appear in
MONET Vol. 7, No. 5 (October 2002).

[21] A Web-Based Nomadic Computing System.


Tim Kindberg & John Barton. In Computer Networks,
Elsevier, vol 35, no. 4, March 2001, pp. 443-456.