Next: CANS Architecture
Up: CANS: Composable, Adaptive Network
Previous: CANS: Composable, Adaptive Network
Introduction
The emergence of new networking technologies such as broadband to the
home, Wireless 3G [18], and
Bluetooth [10], coupled with increasing numbers of
network-capable end devices holds the potential for future application
services that significantly enhance user experience by providing
seamless, ubiquitous access. To take an example, consider the
following scenario. Alice, a telecommuting employee, starts her day
by initiating a teleconference on her laptop connected to the internet
using a wired LAN. During the conference, a hub failure renders the
wired LAN unavailable. Fortunately, the service detects this, and
seamlessly switches data transmission to a local wireless network
while simultaneously degrading picture quality upon recognizing that
the wireless LAN has insufficient bandwidth for continuous video at
the original resolution and rate. Shortly after, Alice leaves her
office to meet a client. She shuts down her laptop, and resumes the
teleconference in her car using a PDA connected to a metro-area
wireless network. The service further downgrades the media
stream (say to only include audio), while recording the full stream at
a server that Alice can check offline.
Although the above scenario is compelling, its requirements -- rapid
creation and deployment of new services, application-aware computation
in the network, and dynamic and distributed adaptation -- are poorly
handled by current internet infrastructure. Moreover, the existing
view which hides network characteristics from the application and
treats services as standalone entities is incompatible with the large
variation in network and end-device characteristics. Current-day data
paths can include links with very different bandwidth, delay, and
error characteristics, ranging from serial links to wireless to
broadband to fiber. Hiding these differences from the application will
result in unsatisfactory application performance, and the alternative
of providing differentiated service for different networks/end-devices
cannot adequately cope with dynamically changing environments.
One solution to these problems is to inject additional functionality
into the network that can dynamically adapt to resource
characteristics of end-devices and network links by handling
activities such as protocol conversion, data transcoding, etc. Several
researchers have proposed infrastructures for achieving this goal,
ranging from end-point solutions [12,15] to more
distributed alternatives that introduce application-aware
functionality either at the network
level [17,3,20] or at the
application level [1,6,8]. Although these
systems have articulated a common set of high-level architectural
requirements, many challenges, particularly with respect to dynamic
services management and composition, remain before the infrastructures
see widespread deployment.
This paper describes Composable Adaptive Network
Services (CANS), an application-level infrastructure for
customizing the data path between client applications and services,
which focuses on three such challenges:
- Efficient and Dynamic Composition, enabling separately
defined components to be dynamically instantiated and
interconnected using efficient mechanisms (e.g., shared memory
within a host).
- Dynamic and Distributed Adaptation, enabling adaptation
to environment changes along the entire data path while incurring
low overhead and maintaining overall application semantics.
- Support for Legacy Applications and Services, enabling the
latter to be integrated into CANS with minimal effort. Requiring
rewrites of each application and service is neither practical nor
desirable.
CANS addresses these challenges by constructing networks that include
applications, stateful services, and data paths
between them built up from mobile soft-state objects called
drivers. Drivers implement a standard interface, permitting
efficient composition and semantics-preserving adaptation. Both
services and data paths can be dynamically created and reconfigured: a
planning and event propagation facility enables distributed
adaptation, and a flexible type-based composition model dictates how
new services and drivers are integrated with existing ones. CANS
provides three adaptation modes to permit cost-functionality
tradeoffs: intra-component, by reconfiguring data paths, and by
creating new services and data paths. Legacy components plug into
CANS using delegation and an interception layer that transparently
virtualizes network bindings, currently TCP sockets.
CANS has been implemented on Windows 2000 clients and Java/RMI-capable
intermediate hosts. Each node runs the CANS execution environment,
which supports dynamic creation, migration, and adaptation of drivers
and services. Experience with a case study involving a shrink-wrapped
application (Windows MediaPlayer) in a dynamically changing
network environment indicates the potential of our approach: CANS
permits dynamic deployment and distributed adaptation of
application-aware components to improve overall user experience.
The rest of this paper is organized as follows. Section 2
presents the CANS architecture, with details about its components and
distributed adaptation support appearing in
Sections 3 and 4.
Section 5 presents the CANS implementation and the
MediaPlayer case study. Section 6 discusses related
efforts, and Section 7 concludes.
Next: CANS Architecture
Up: CANS: Composable, Adaptive Network
Previous: CANS: Composable, Adaptive Network
Weisong Shi
2001-01-08