\subsection*{\centering \emph{Abstract}}

Java in combination with Web browsers' abilities to load and execute
untrusted Java applets in a secure fashion has made computing over the
Web a possibility.  Now the challenge is to fully utilize this
potential, given the limitations imposed by browsers.  This paper
presents {\em {\kf}}, an infrastructure to facilitate Web-based
computing, which addresses this challenge.  It supports building
distributed applications, specifically those consisting of Java
applets executing in browsers.  It is composed of (1) a distributed
name service to assist users in locating other participants of a
distributed computation via standard browsers, (2) an embedded class
server to eliminate the need for external HTTP servers for serving
applet code, and (3) a technique for direct applet-to-applet
communication.

In this paper, we describe the design and implementation of {\kf} and
demonstrate its benefits by applying it to three distinct areas of
Web-based computing.  First, we apply our distributed name service to
a client/server architecture to enable RMI clients to locate servers
on unknown hosts.  Second, we use the embedded class server to extend
the capability of {\em Charlotte}, a parallel computing environment.
And finally, we build a collaborative application using our direct
applet-to-applet communication technique which does not require a
forwarding agent.  

