The World Wide Web has the potential of being used as an inexpensive and convenient metacomputing resource. This brings forward new challenges and invalidates many of the assumptions made in offering the same functionality for a network of workstations. We have designed and implemented Charlotte which goes beyond providing a set of features commonly used for a network of workstations: (1) a user can execute a parallel program on a machine she does not have an account on; (2) neither a shared file system nor a copy of the program on the local file system is required; (3) local hardware is protected from programs written by ``strangers''; (4) any machine on the Web can join or leave any running computation, thus utilizing the dynamic resources.
Charlotte combines many complementary but isolated research efforts. It comprises a virtual machine model which isolates the program from the execution environment, and a runtime system which realizes this model on the Web. Load balancing and fault masking are provided by the runtime system transparent to the programmer. Charlotte provides distributed shared memory without relying on operating system or compiler support. It is implemented soley in Java without any native code, thus providing the same level of security, heterogeneity, and portability as Java.
In this paper, we describe the design and implementation of Charlotte and present initial performance results.
Keywords: Metacomputing, Distributed Computing, Parallel Programming Environments, World Wide Web.