CANS: Composable Adaptive Network Service Infrastructure

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