Java Reference
In-Depth Information
client computers would be too slow. Another valid reason is the protection of
intellectual property contained in the server-side code or server-side databases.
Ye t another reason might be the existence of legacy software written in another
language, typically Fortran, that one does not wish to port to Java. Often, there
have been dozens of man-years poured into the development of a scientific code.
Rewriting the entire code in a modern language like Java would be extremely
time-consuming and expensive. Instead, the calculation can often be split into a
client portion and a server portion with most of the heavy calculations done on
the server with only minor modifications to the original code.
As mentioned in the introduction, for the distributing computing systems dis-
cussed here and the rest of Part II, the interactions between a client and server
across the network do not involve the programming of low-level socket commu-
nications as in Chapters 14 and 15. Instead, objects on one system invoke methods
in objects on other computers just as if they all were running in the same program
on the same local platform. This magic is accomplished by building the programs
on top of the Java RMI or CORBA frameworks, which do all the low level com-
munications work. We discuss how to set up these frameworks in Chapters 18
and 19.
16.3 Minimalist UML
The Unified Modeling Language (UML) has emerged as a powerful tool for
object-oriented analysis and design (OOAD). Unlike a traditional programming
language, UML is not really a “language” but rather a notation system for mod-
eling systems that use object-oriented concepts. The UML provides a way to
visualize the attributes and methods of, and interactions among, objects in an
object-oriented system. The full body of UML is very complete, with the capa-
bility to describe almost any set of objects and interactions imaginable. Because
of this rich capability, UML is also rather complex. Entire topics are devoted to
the subject, and the full capabilities are well beyond the scope or needs of this
chapter (see [11, 12]).
UML may not be an absolute necessity to produce a good object design, but it
is an invaluable aid in doing so. UML also serves in a collaborative environment
as an excellent vehicle for communicating an object design among the various
architects and developers who will be implementing the design. UML also pro-
vides an excellent way to illustrate and document designs. For a lone scientist
designing a system and writing his own code, perhaps a tool like UML is not
important. However, we feel that once a base level of proficiency with UML
is achieved, the language provides an excellent mechanism for organizing one's
thoughts. Often, illustrating a design in UML terms makes clear a deficiency in
the design that can be corrected early at the ground level with a simple design
change. The alternative of waiting until the design problem is discovered during
implementation will undoubtedly result in much greater repair effort. For these
Search WWH ::




Custom Search