Java Reference
In-Depth Information
Chapter 16
Distributed computing
16.1 Introduction
As has been demonstrated, Java is a very capable platform for many scientific
computing tasks. Yet Java is still sometimes perceived as slow. While this often
is a no-longer-deserved reputation, especially in Java 1.4 and later, there are
definitely times when the nature of the scientific calculation is so demanding
that typical desktop computing resources are insufficient. In such cases, moving
portions of the calculation to a heavy-duty remote server machine, perhaps even
a “supercomputer,” makes good sense. In this chapter, we introduce the concept
of distributed computing.
We continue with the client/server paradigm discussed in the previous chap-
ters, but rather than simply passing messages via socket connections, the client and
server objects directly invoke methods in each other over the network. This allows
for much more elaborate and productive interactions. The Java Remote Method
Invocation (RMI) or Common Object Request Broker Architecture (CORBA)
frameworks take care of the communications, and we do not need to create our
ownlow-level protocols as we did with sockets.
We first discuss just what distributed computing is and what form of dis-
tributed computing is of value to scientific calculations. We introduce just a little
Unified Modeling Language (UML) as a visual aid to understanding the various
components in a distributed application. This use of UML and the Design Pattern
approach allows us to describe client/server programs in a more formal manner
than in the previous chapters. We then lay out the design of a simple distributed
application, concentrating on the server side in this chapter. Later chapters dis-
cuss the client side and RMI, CORBA, and web services as tools to implement a
distributed application.
16.2 Distributed computing for scientific applications
There are several viewpoints as to just what constitutes distributed computing.
One well-known concept might better be called “distributed data processing,” in
which calculations are spread over many different computers distributed over a
471
Search WWH ::




Custom Search