Guest Editor's Introduction: Special Issue on Java on Clusters

The focus of this issue is the meeting of two technologies: Java and cluster computing. Java technology is maturing and is becoming the technology of choice in designing server middleware and enterprise applications. The phenomenal growth of the Internet and the demand for e-commerce and business over the Web has encumbered traditional server data resources and infrastructures. Moreover, the growing demands for reliable, highly available, and scalable solutions put forward by e-commerce make the use of clusters almost a mandatory requirement in the new e-commerce setup. The term single system image (SSI ) indicates that a given set of machines (a cluster) gives the impression of a single machine. The desired situation is that an application written for one machine executes on a cluster of n machines that presents a SSI, without modifications, yielding an n-fold increase of its throughput (or runs n times faster). It would be best if such a system also were highly available. Namely, it should continue to operate even when one of the n machines (cluster node) failed. The terms SSI and cluster are used freely by various computer vendors to help market their product. We refer the reader to the book by Greg Pfister [1] for a detailed discussion of the topic. SSI is usually discussed within a given context; i.e., we can say that a certain application presents a SSI to its users while itself explicitly utilizing the cluster resources (being cluster aware). It is generally accepted that an operating system level SSI is an extremely difficult and expensive problem to solve. Java provides several technologies to support distributed computing. These technologies include Remote Method Invocation (RMI ) [2], Enterprise Java Beans (EJB) [3], JavaSpaces [5], and Jini [4]. Some of the technologies support each other while others overlap in their capabilities. A common theme for these technologies is making distributed programming a simpler task. Thus, a programmer using RMI to write a distributed program does not have to know about sockets and the like. The domain expert that develops a Bean (EJB) can concentrate on the business logic and not worry about its distributive execution at all. The support for the distribution is provided by the EJB container and the deployment tools. doi:10.1006 jpdc.2000.1648, available online at http: www.idealibrary.com on