Dynamic adaptation of the squid Web cache with Arachne

Authors: Marc Ségura-Devillechaise, Jean-Marc Menaud, Nicolas Loriant, Rémi Douence, Mario Südholt, Thomas Fritz, Egon Wuchner

The Arachne aspect-oriented programming system developers modularize changes to networking software with little perceptible performance overhead. Writing good software is often a challenge; writing adaptable software can be even more difficult. In legacy Web caches such as Squid, such adaptation interfaces are typically needed for functionalities that are applied across the legacy code, functionalities whose code is scattered and tangled in the Web cache code’s files and functions. An AOP system’s join point model defines the relevant basic execution events of a given base application. Pointcuts allow programmers to refer to all such events, at which a functionality of interest is applied across, or crosscuts, the base application. At the execution events matched by pointcuts, advice can be used to modify the base application’s execution. Arachne features two basic kinds of join points: C function calls and read/write accesses to global variables and their local aliases.

Full Paper