Many prior research projects influence the design of the Active Cache scheme, in particular, mobile objects and agents. The evolution of Java as a mature language for mobile code makes the scheme possible.
Cache applets are similar to regular browser applets and servlets. Compared with regular browser applets, cache applets have a simple, uniform security interface, which greatly simplifies the security problem. Compared with servalets, cache applets run at proxy sites as ``guests'' and face many resource constraints.
There are many studies on Web proxy caching. However, few have addressed the caching of dynamic contents. Robinovich et al have proposed macro-encoded HTML documents that are expanded at the browser site. The work is similar to ours in the sense that both try to move the work away from the server. Indeed, a cache applet can easily implement the processing for macro-encoded documents. Compared with macro-ended HTML, cache applets are more flexible and powerful, and can support functions such as access control.
There are also similar research projects aimed at moving the load from servers to clients or from servers to other hosting services. For example, the ``Smart Clients'' approach (12, 12) lets individual clients download server-specific applets and uses the applets to do work on behalf of the server. The ``Rent-A-Server'' approach (10, 10) builds a framework to allow servers to replicate themselves to any chosen site, in a way that preserve hit counts and cgi programs. The mechanisms in these approaches and in Active Cache are similar. However, the concerns are quite different. The goal of these approaches is to increase server scalability. The goal of Active Cache is to increase the efficiency of the cache and reduce the outgoing Internet traffic from the cache. Thus, unlike these approaches, the design of Active Cache is centered around users; the proxy does not trust the cache applets and imposes constraints on them, it has complete control over its disk and computational resources, and it only executes cache applets when it is in the benefits of its user population to do so.
Finally, the principle of Active Cache is very similar to Active Networks, in that both treat packets as objects instead of datagrams. The difference is that Active Cache focuses on Web caching and proxies, while Active Networks focus on Internet evolution and routers. Proxies typically have full-fledged operating systems and less stringent performance requirements than routers, making Active Cache a somewhat easier research problem.