Check out the new USENIX Web site. next up previous
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.
\begin{figure}
\centerline{\psfig{figure=figintercept.eps,height=2.0in}}
\end{figure}

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 up previous
Next: Distributed Adaptation in CANS Up: CANS Components Previous: Communication Adapters
Weisong Shi 2001-01-08