IceT: Distributed Computing and Java

Metacomputing, or distributed processing on networks (local networks, intranets, or the Internet), has re-emerged as a technology with tremendous promise and potential, owing in part to the emergence of the Java language and programming system. Java both innuences and is innuenced by the requisite and dynamic aspects of network programming. However, its viability as a programming language for the scientiic community is yet to be established. This paper describes IceT, a novel framework for collaborative and high-performance distributed computing which has been built upon a Java substrate. The IceT system exploits the portability and scripting advantages of Java and incorporates well established distributed and concurrent computing techniques into the framework, while retaining the ability to access specialized processing capabilities and precompiled code. The result is a dynamic and eecient distributed computing environment upon which data and processes are highly portable amongst heterogeneous platforms and multiple users. 1 The IceT Objective There are many contrasts to be found when comparing Internet programming and high-performance distributed computing. Consider, for example, Internet programming as it relates to the World Wide Web. Users are able to anonymously access processes and data at remote locations for remote execution (e.g. a cgi-bin Perl script) or download processes for local execution (e.g. a Java applet). In such settings, issues that need to be addressed include the consequences and implications of executing processes remotely, anonymously, and securely. On the other hand, in high-performance distributed computing, where users' programs are local and executed on local or organization-wide machines, security is less of an issue and users typically have access privileges (i.e. anonymity is not a factor). The aim of the IceT project has been to mutually incorporate approaches and techniques found in Internet programming with established and evolving distributed computing paradigms. Necessarily, this includes the ideas of harnessing geographically-remote resources for anonymous utilization, portability of processes and data, in addition to security issues that naturally arise. For a good discussion of some other considerations that need to be made when addressing such a goal, see 2]. The integration of Internet and distributed programming techniques would lead to a natural environment for collaborative computing and an extension to the traditional distributed computing environment. Examples of extended features incorporated into IceT are: dynamic merging and splitting of virtual machines, multiuser awareness, portability of processes and data across multiple virtual machines, and a provisional framework for multiuser programs. This paper describes some …