Motivation: The role of the Internet has undergone a
transition from simply being
a data repository to one providing access to a plethora of
sophisticated network-accessible services such as e-mail, banking,
on-line shopping and entertainment. Additionally, these services are
increasingly being accessed by mobile consumers using end devices such
as PDAs, Pocket/Handheld PCs, cellular phones and two-way pagers that
connect to the internet using a variety of wireless networking
options ranging from Bluetooth to Wireless 3G. The combination of these
two trends holds out
the possibility of providing a user with seamless, ubiquitous access to
a service irrespective of the user's end device and location.
Although compelling, achieving this goal requires coping with the
inherent mismatch between the low-bandwidth, limited resource
characteristics of wireless mobile devices and the high-bandwidth
expectations of many content-rich services.
Current day applications and services cope with the above problems essentially by providing differentiated service for different networks/end-devices. For example, most popular news, e-mail, and stock trading services today present a different front-end for mobile users. Although adequate in some scenarios, this approach suffers from the limitation that mobile users are classified into a small number of classes and may not receive performance commensurate with the capabilities of the device or network they are using. More importantly, such an approach cannot adequately cope with dynamically changing environments where there is a big variation in available bandwidth (e.g., a user on a wireless LAN who is at different distances from an access point). More promising are programmable infrastructures recently proposed by several researchers, which allow the dynamic injection of application-specific components in the network path; these components cope with device and network mismatches by handling activities such as protocol conversion and content transcoding at sites best suited for them.
Our approach: CANS (Composable Adaptive Network Services Infrastructure) is an application-level infrastructure for injecting application-specific components into the network path between a client and a service. Traditionally, the functionality of a data path is restricted to transmitting data between the end points. CANS infrastructure extends this notion to enable end services, client applications, or some other entity to dynamically inject application-specific components into the network; these components customize the data path with respect to the characteristics of the underlying physical network links and properties of the end device as well as dynamically adapt to any changes in these characteristics.
Figure 1: CANS view of network is comprised of services, applications, drivers, and the data path between them.
The CANS network view consists of applications, stateful services, and data paths between them built up from mobile soft-state objects called drivers. Drivers implement a restricted interface (for example, reading and writing data from an implementation-neutral data port interface), which permits 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. The CANS Execution Environment serves as the basic run-time environment on these hosts and consists
of several modules as shown in Figure 2. The plan manager implements the planning algorithm, and together with the other modules, supports dynamic creation, migration, and adaptation of drivers and services. CANS has been implemented on Windows 2000 clients and Java/RMI-capable intermediate hosts.
Figure 2: Basic diagram of CANS implementation.
CANS distinguishes itself from other infrastructures by
(a) supporting legacy applications and services,
(b) general type compatibility framework,
(c) polynomial-based planning algorithm,
(d) enabling configuration and distributed adaptation of injected components in response to system conditions.
More details can be found in our recent papers
CANS: Composable, Adaptive Network Services Infrastructure, USITS’01, March, 2001
Automatic Deployment of Transcoding Components for Ubiquitous, Network-Aware Access to Internet Services, NYU Technical Report, March 2001.
Automatic Network-Aware Service Access, submitted.
More updated information of CANS can be found at here