Virtual Active Networks

Distributed Computing and Communications (DCC) Lab, Columbia University

Brief Description of the VAN Project

Recent advance in computer network research has witnessed the emergence of a new breed of what we call multi-edged network applications (MENAs), such as web caching, multicasting, transcoding, and filtering, etc. MENAs present several distinguishing characteristics when compared to traditional network applications. First, MENAs have cooperative peer-peer (vs. client-server) service components deployed at network edge (vs. end) nodes. Second, MENAs need to be able to control and configure network topology and resources (vs. treat the network as a best-effort packet transport wire) to best support their needs. Third, MENAs may perform dynamic (vs. vendor pre-defined) application layer (vs. network layer) functions at edge nodes. As an illustrating example, a web caching application has many components deployed at edge nodes in order to provide coverage for certain network areas; it may configure its components with certain topology (e.g., a ring) for increased reliability and may require guaranteed node and link resources in order to process and transport cached contents; and it performs application level URL routing and cache management. MENAs thus represent a new class of applications requiring new network services difficult to accomplish with current network services and APIs (Application Program Interfaces).

The Virtual Active Network (VAN) architecture is an application middleware architecture to support the needs of multi-edged network computing. The VAN architecture allows MENAs, through abstractions, to deploy their service components in a VAN with desired service type (caching, filtering, etc.), topology feature (coverage and connectivity), resource constraint (processor cycle and link bandwidth), and reliability constraint (number of virtual links traversing a physical link). The VAN architecture dynamically construct the requested VAN by employing algorithms to map the specification to physical network (node and link) resources and protocols to acquire these resources. Creating a VAN is thus a distributed resource acquisition process and potential deadlocks may result from different VANs competing for shared network resources. The VAN architecture provides algorithms and protocols to resolve such conflicts. At runtime, the VAN architecture monitors underlying network condition and recovers from failures (e.g., a physical link fails and brings down all the virtual links traversing it) to best preserve the VAN service semantics.