Academia.eduAcademia.edu

Multiparadigm communications in Java for grid computing

2001, Communications of the ACM

Abstract

The computational science community has long been at the forefront of advanced computing, because of its persistent need to solve problems that require resources beyond those provided by the most powerful computers of the day. Examples of such high-end applications range from financial modeling and vehicle simulation to computational genetics and weather forecasting. Over the years, such considerations have led computational scientists to become aggressive and innovative adopters of vector computers, parallel systems, clusters, and other novel computing technologies. Recently, the widespread availability of high-speed networks and a growing awareness of the new problem solving modalities, made possible when these networks are used to couple geographically distributed resources, have stimulated interest in so-called Grid computing . The term "the Grid" refers to an emerging persistent infrastructure providing security, resource access, information, and other services that enable controlled and coordinated resource sharing among "virtual organizations" formed dynamically from individuals and organizations sharing a common interest . A variety of ambitious projects are applying Grid computing concepts to such challenging problems as the distributed analysis of experimental physics data, community access to earthquake engineering facilities, and the creation of "science portals"-thin clients providing remote access to the collection of information sources and simulation systems supporting a particular scientific discipline. Underpinning both parallel and Grid computing is a common need for coordination and communication mechanisms that allow multiple resources to be applied in a concerted fashion to complex problems. Scientific and engineering applications have, for the most part, addressed this requirement in an ad hoc and low-level fashion, using specialized message-passing libraries within parallel computers and various communication mechanisms among networked computers. While low-level approaches have allowed users to meet performance goals, an unfortunate consequence is that the computational science community has not benefited to any great extent from the significant advances in software engineering that have occurred during the past ten years in industry. In particular, the various benefits of Java, which seems ideal for multiparadigm communication environments, are hardly exploited at all. Java's platform-independent bytecode can be executed securely on many platforms, making Java an attractive basis for portable Grid computing. In addition, Java's performance on sequential codes, which is a strong prerequisite for the development of such "Grande" applications (see sidebar on Java Grande), has increased substantially over the past years . Inspired originally by coffee house jargon, the buzzword "Grande" has become commonplace in order to distinguish this emerging type of high-end applications when written in Java. 1 Furthermore, Java provides a sophisticated graphical user interface framework, as well as a paradigm to