A Framework for the Development of Wide Area Distributed Applications
The growth in popularity of the World Wide Web has resulted in the development of a new generation of tools tailored to Internet computing activities. Prominent examples include the Java programming language and Java capable Web browsers. These Web spinoffs are having a profound impact on the field of distributed computing. Whereas distributed computing has traditionally focused on improving the functionality of local clusters of computers, technology is progressing such that wide area computing networks are now becoming a popular target environment for research in distributed computing. With wide area distributed computing environments, geographically distributed resources such as workstations, personal computers, supercomputers, graphic rendering engines, and scientific instruments will be available for use in a seamless fashion by parallel applications. Many envision that it will be possible to transport application code to remote sites in the wide area virtual computer where it may be executed in the presence of needed resources. The area of research devoted to bringing this vision to reality in the context of scientific applications is referred to as metacomputing. Metacomputing environments are useful for a variety of distributed and parallel applications, particularly those which need access to remote resources or applications that are able to effectively utilize a substantial number of computing resources that the Internet may easily provide. Moreover, other wide area distributed computing domains such as electronic commerce home service applications require more advanced capabilities than those provided by a standard web browser. Such capabilities must address issues such as heterogeneity, object sharing, and failure resilience in wide area environments. In this thesis, we investigate the design and implementation of a Java based middleware infrastructure system to enable wide area applications. We then provide an empirical evaluation of our prototype system for local area, wide area, and home service network environments. We also illustrate the system1s ability to support the development of several classes of applications which include electronic commerce home service applications, failure resilient scientific applications, and traditional computer supported cooperative work applications. Finally, we present a design for the monitoring and visual presentation of activities associated with wide area distributed computing.