Bringing Network Effects to Pervasive Spaces www.computer.org/pervasive Vol. 4, No. 3

advertisement
MOBILE AND UBIQUITOUS SYSTEMS
www.computer.org/pervasive
Bringing Network Effects to Pervasive Spaces
W. Keith Edwards, Mark W. Newman, Jana Z. Sedivy, and Trevor F. Smith
Vol. 4, No. 3
July–September 2005
This material is presented to ensure timely dissemination of scholarly and technical
work. Copyright and all rights therein are retained by authors or by other copyright
holders. All persons copying this information are expected to adhere to the terms and
constraints invoked by each author's copyright. In most cases, these works may not be
reposted without the explicit permission of the copyright holder.
© 2005 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for
creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained
from the IEEE.
For more information, please see www.ieee.org/portal/pages/about/documentation/copyright/polilink.html.
Standards & Emerging Technologies
Editor: Sumi Helal
■
University of Florida
■
helal@cise.ufl.edu
Bringing Network Effects
to Pervasive Spaces
W. Keith Edwards, Mark W. Newman, Jana Z. Sedivy, and Trevor F. Smith
I
n the January–March 2005 installment of this department, Sumi Helal
made a case for developing new
approaches to interoperability. In doing
so, he hit a strong chord with our
research group at the Palo Alto
Research Center (PARC).
Back in 2000, we began exploring
the human experience of richly networked and interconnected environments. We envisioned several application scenarios, which we then tried to
realize by creating a range of networked services and digital devices. We
wanted these services and devices to
freely interconnect with each other and
recombine to provide new functionality. However, we quickly realized the
impediments—many of which Helal
identified in his article—inherent in
actually trying to create such environments. Furthermore, we recognized
that the most dire impediment isn’t battery life, processing power, or low-level
network connectivity. It’s that devices
won’t work together unless you explicitly program each one to talk to every
other type of device it might encounter.
So, in addition to exploring the human experience of living in richly networked settings, we ended up exploring
the interoperability that might enable
such settings to exist in the first place.
In the course of our research, we developed the Obje Interoperability Framework, a middleware technology that lets
networked applications and services
coordinate with each another—even
when they know almost nothing about
one other.
THE COMBINATORIAL
COMPLEXITY OF
ONGOING INTEGRATION
Currently, developers must program
devices to recognize the specific protocols, standards, data formats, and operations of all the peer device types they
expect their devices to encounter. The
balance of work in this model is fundamentally wrong. If one new device type
Devices won’t work
together unless you
explicitly program each
one to talk to every
other type of device it
might encounter.
appears on the network, we must
update all existing devices. Integrating
device types becomes increasingly difficult as the number of existing devices in
need of upgrades, software installations,
or replacement continues to grow.
This property—the combinatorial
complexity of ongoing integration—
exists in virtually every widely available
infrastructure for interoperability today.
In the Universal Plug and Play world,
for instance, a device might be pro-
1536-1268/05/$20.00 © 2005 IEEE ■ Published by the IEEE CS and IEEE ComSoc
grammed to communicate with peers
that implement the UPnP MediaRenderer profile. These same devices, however, would have to be reprogrammed
to communicate with UPnP printers or
with new types of UPnP devices that
might appear in the future (including
new versions of the MediaRenderer
profile).
This need for detailed, device typespecific programming, built into each
peer device, is at the root of the problems Helal identified:
• Nonscalable integration. Every existing device must be updated to work
with new device types.
• Closed-world assumptions. Getting
two device types to work together
requires explicit programming, making adding support for new devices
difficult.
• Fixed-point concepts. Because developers program against the set of standards known at development time,
they can’t accommodate entirely new
classes of devices that don’t resemble
existing standards.
The end result is today’s limited interoperability, which in turn limits the network effects key to many visions of
ubiquitous computing. We need to
move toward a model of computing
where we can simply plug new device
types into the network and all existing
peers on the network will be able to use
PERVASIVE computing
15
STANDARDS & EMERGING TECHNOLOGIES
STANDARDS & EMERGING TECHNOLOGIES
them. In other words, we need to move
away from a model of combinatorial
complexity toward one of constant
complexity—where integrating each
new device is just as easy as integrating
the one before it.
and instead used a few simple abstractions that remain constant and that we
assume all peers on the network understand.
Obje, for example, represents only
four major classes of device capabilities. A device can
RECOMBINANT COMPUTING
The Obje infrastructure (formerly
known as Speakeasy) uses recombinant
computing to let devices interact without previous approaches’ limitations
and strictures. Recombinant computing recognizes that, fundamentally, communication between any two parties is
predicated on shared knowledge about
the terms of communication. As in
human communication, we must have
some shared language to be able to
understand each other.
In the case of systems such as UPnP,
this shared knowledge takes the form of
the underlying platform assumptions
(TCP/IP, HTTP, XML, or SSDP), as well
as the profiles that describe each device
type’s capabilities. The problem with
this “profile” approach is that it requires
prior knowledge of details specific to
each individual device type. A printer
profile, for example, represents information specific to printers and thus is
useless for other device types—information about stapling, duplicates, and
ink color. Because these profiles are so
specific, we usually can’t reuse them for
similar devices. (For example, in UPnP,
“MediaServers” and “Scanners” are different device profiles, even though both
produce media.) This specificity also
requires changing a profile if we can’t
retrofit a new device type’s capabilities
to work with the existing profile. (For
example, a new type of printer appears
with watermarking capabilities; we
must express access to these capabilities
in the profile for client devices to be able
to access them.)
The profile approach grows increasingly fragile over time. Profiles must
expand to encompass new device capabilities and proliferate to cover new
device types. With Obje, we moved
away from the profile-oriented model
16
PERVASIVE computing
•
•
•
•
connect to another device,
provide metadata about itself,
be controlled, and
provide references to other devices.
In this approach, we code a device’s
software against the generic abstractions the infrastructure defines rather
Obje lets devices declare
the formats they
can provide, and
recipients can declare
which formats they
can execute.
than the specifics of any peer device. So,
devices can interact with new device
types that appear on the network as
long as they represent their functionality using this base set of abstractions.
In essence, the Obje infrastructure maps
the various devices’ underlying functionality on the network into a simplified form designed to facilitate easier
interconnection and ensure compatibility with future devices.
Normally, such a generic and semantically neutral set of capabilities would
be hugely restrictive. Our approach
overcomes such restrictions by introducing the notion of dynamic extensibility. Rather than describing how a
device communicates with its peer,
these interfaces describe how a device
acquires new behavior from its peer
that allows communication. We use the
agreed-upon interfaces coded into software only as a generic bootstrapping
mechanism to acquire code that implements the specific communication
mechanisms any given device needs.
For example, an Obje-enabled display
device (such as a projector) can support
the ability to be connected to another
Obje-enabled device (such as a PDA, networked video camera, or laptop). Obje
neither dictates nor requires that the connection be established over HTTP, RealTime Transfer Protocol, or any other
fixed protocol. Nor does it dictate that
only JPEGs, GIFs, or MPEG-2 must be
transferred. Rather, it facilitates a mechanism by which the two devices can
exchange new behaviors that let them
communicate with each other, using
whatever protocols are appropriate for
the data being exchanged. They also let
the recipient render the received data. In
particular, the specific details of how to
receive or render data need not be built
into the display device up front; rather,
the receiving device acquires these details
from the sending device at runtime.
Our approach establishes the minimal
set of development-time agreements
required to defer all other agreements
until runtime. It then delivers these
agreements in the form of mobile code,
which can extend a recipient’s behavior
to make it compatible with a new peer.
Devices that enter the network carry the
code they need to let peers communicate
with them. This extension of behavior
is generally transient—the device adopts
the new behavior only when communicating with the peer that provided the
behavior. More importantly, because the
new devices’ developers are responsible
for creating the mobile code bundle, the
burden of bringing a new device onto
the network rests with them instead of
with the existing peers.
MINIMIZING AGREEMENTS
Our work on the Obje infrastructure has revolved around defining a
set of development-time agreements
that are as minimal as possible (thus
imposing the fewest requirements on
Obje-enabled devices), while allowing
the greatest possible flexibility. Thus,
mobile code can’t extend the behavior
of peers in completely arbitrary ways.
Rather, the platform dictates how a peer
can extend a device (in the form of operwww.computer.org/pervasive
STANDARDS & EMERGING TECHNOLOGIES
ations to acquire new code) and dictates
the interfaces that any received code
must integrate (the mechanisms for
object instantiation, operation invocation, and so forth). These mechanisms
offer runtime extensibility to new data
transfer protocols, new content-type
handling mechanisms, new control
interfaces, and new discovery protocols.
The other fixed agreements that must
be in place concern the underlying platform assumptions necessary to acquire
the code in the first place. The Obje bootstrapping protocol is a thin remote invocation protocol layered atop the Blocks
Extensible Exchange Protocol. BEEP is a
TCP/IP-based framing and messaging
protocol that’s easily portable and provides extensible security provisioning.
Thus, as part of the fixed agreement that
Obje devices must implement to participate, they must be TCP/IP-enabled and
contain an implementation of our lightweight messaging protocol, defined on
BEEP.
Likewise, when a device transmits
mobile code, it must be in a format that
the recipient can execute. Obje lets
devices declare the formats they can
provide (Java bytecodes and native x86
dynamic library code, for instance), and
recipients can declare which formats
they can execute. These optional agreements might limit the interoperability
achievable in practice, but they make
the core platform agnostic with regard
to the executable format.
USER-SUPPLIED SEMANTICS
An important implication in this move
away from a profile-oriented interoperability infrastructure is that devices in
abstraction-based infrastructures might
not understand the semantics of the
peers they encounter. For example, a
program coded to use UPnP MediaRenderers presumably knows what a MediaRenderer does: its developer understands the semantics of displaying
content, pausing, fast forwarding, and
so forth, and when it might be appropriate to do so. This semantic knowledge
is encoded into the software itself. In an
JULY–SEPTEMBER 2005
Obje world, on the other hand, the programming on each device only tells the
device how to interact with peers using
the abstract mechanisms outlined earlier. So, an Obje-enabled PDA might be
able to communicate with a new device,
but it might not know what that device
does, or when or whether it’s appropriate to communicate with it.
Such semantic ignorance is necessary
in a world designed for open-ended
interoperability. If each device must
know the semantics of the peers it
encounters, then we’re back in the same
closed-world situation as before. An
open-world approach asks devices to
The infrastructure’s role
is merely to ensure that
interoperability is
possible; the user must
decide which devices
make sense together.
developing pervasive spaces to explore
the human experience of pervasive computing. We currently have a half-dozen
Obje-enabled applications and several
dozen interoperable components using
the framework, including home media
components (Obje-enabled DVD players,
speakers, and media libraries) and office
components (projectors, plasma displays,
and whiteboard capture services).
We’ve deployed many of these components throughout PARC to help us understand how users work, live, and play in
pervasive spaces—how they use the
devices around them and recombine them
into new configurations. We’re now
developing tools to support easy end-user
composition by letting end users create
assemblages of devices and services that
can support them in their tasks.
W. Keith Edwards is an associate professor at the Georgia
interact with peers about which they
know little. Responsibility for determining appropriate interactions between
devices shifts from the developer to the
end user. The infrastructure’s role is
merely to ensure that interoperability is
possible; the user must decide which
devices make sense together.
Such a world will be characterized by
generic tools that let end-users compose
and configure devices within a space.
Users will be able to enter a pervasive
space, quickly assess device capabilities, and then assemble the devices into
a desired configuration.
Tech College of Computing.
Contact him at keith@cc.
gatech.edu.
Mark W. Newman is a research scientist at the Palo Alto
Research Center and a doctoral student in computer science at the University of California Berkeley. Contact him
at mnewman@parc.com.
Jana Z. Sedivy was a research
scientist at PARC until 2005,
and she contributed to the
development of the Obje
W
e’ve implemented the current
version of the Obje Framework
(version 4) in Java. It supports both
Java and native mobile code and can be
implemented in a variety of languages
and platforms. It also runs on several
platforms, including Windows, Mac
OS X, Linux, and Windows PocketPC.
Leveraging the Obje Framework, we
have been able to return to our focus of
Interoperability Framework.
Contact her at janasedivy@
yahoo.com.
Trevor F. Smith is a member of the ubicomp group
in the computing science
laboratory at the Palo Alto
Research Center. Contact
him at tfsmith@parc.com.
PERVASIVE computing
17
Download