Next: Distributed Adaptation in CANS
Up: CANS Components
Previous: Communication Adapters
Support for Legacy Applications
The CANS infrastructure supports both CANS-aware and
CANS-oblivious applications. The former just hook into the driver
and service interfaces described earlier. The latter require more
support but are easily integrable because of our focus on
stream-based transformations on the data path. Our solution
relies on an interception layer that is transparently
inserted into the application and virtualizes its existing
network bindings. The interception layer is injected using a
technique known as API interception [11], which relies
on a run-time rewrite of portions of the memory image of the
application.
Figure 4:
Architecture of the interception layer.
|
The general architecture of the interception layer is shown in
Figure 4. The interception layer provides the
application with an illusion of a TCP socket which can be bound to
various interfaces (CANS or native network) for actual data
transmission. An application specific policy responds to events
(such as connect requests) delivered to it by the interception
layer, which in turn influences the binding. Thus, enabling CANS
support for a new legacy application would require only writing a
specific policy for that application. Finally, although our
current implementation virtualizes the TCP layer, the technique
can as easily support other well-known protocols, such as HTTP.
Next: Distributed Adaptation in CANS
Up: CANS Components
Previous: Communication Adapters
Weisong Shi
2001-01-08