The introduction of Java by Sun Microsystems has made it possible to place platform-independent executable programs called applets on the Web, so that Internet users can execute them on their own machines without needing anything more than a Java-capable browser. Applets are being used by an increasingly large number of people and organizations to enhance their web pages with such features as animation, interactive demos, user-friendly forms, etc. So far, however, most of these uses have only concentrated on providing local usefulness - that is, additional functionality or ease-of-use for the client user, but few additional benefits for anyone else. The potential for applets to be used for doing cooperative computation has largely been unused
In this paper, we present and discuss one way to exploit this underutilized potential of Java - volunteer computing. The idea behind volunteer computing is to allow users from anywhere on the Internet to join in the solving of a parallel problem by simply using a Java-capable browser and visiting a web site. Because it requires no prior human contact and very little technical knowledge on the part of the client user, volunteer computing makes it possible to build very large parallel computing networks very easily. Potentially, such a network can involve thousands, even millions of computers distributed around the world, and make it possible to achieve performance levels far beyond that of any current supercomputer. And, since volunteer computing does not require new hardware to be purchased, it can provide affordable supercomputing capabilities even to financially-constrained organizations such as small universities and universities and companies in developing countries. In fact, since volunteer computing makes it easy for organizations to pool their resources, it opens new possibilities for collaborative research between institutions around the world.
This paper discusses these potential benefits of volunteer computing, as well as the issues and hurdles that must be addressed when implementing volunteer computing systems. It also presents a brief overview of the current work being done in the Bayanihan volunteer computing project. Sections2 and 3 describe the motivations for implementing volunteer computing, including the disadvantages of current systems and the potential advantages of volunteer computing. Section4 describes the current state of Project Bayanihan, presenting key research issues, and a framework designed to address them. Finally, Sect.5 concludes with a brief summary.