Chapter 12
What Next?
We've covered a lot of material in this
book, but there is still much more to know about object-oriented software and
Java. With the essentials of objects and how to use Java with objects we've
covered, you should be able to handle almost any related topic.
In this final chapter, we will briefly
list some other good books on object-oriented programming, and list some major
Java topics we have not covered. And finally, we will simply give definitions
of some terms and abbreviations you are likely to encounter as you read about
objects and Java.
Object Orientation
There are many books available with
"object-oriented" in their title, but a few stand out as the best available,
or as important classics that still have good information to offer. Consider
the following books:
Object-Oriented
Analysis and Design With Applications, Grady Booch, Addison-Wesley,
1994, ISBN 0-201-54435-0. Still the classic OOAD reference. Booch's notation
has been replaced with UML, but still easy to understand.
Fundamentals
of Object-Oriented Design in UML, Meilir Page-Jones, Addison-Wesley,
2000, ISBN 0-201-69946-X. Very readable. Not just a UML book.
Object-Oriented
Systems Design: An Integrated Approach, Edward Yourdon, Yourdon Press,
1994, ISBN 0-13-636325-3. One of my favorites. Includes some history of
software design, and helps put object-orientation into context. Topics covered
are relevant to any methodology.
Java
In this book, we've concentrated on how to
use Java to build objects. There are many important aspects of Java that we've
intentionally ignored. For example, we've not used exception handling code in
some places where it might be appropriate for production quality code. This
helps keep the code short and focused on the example at hand. The following is
a list of some important Java topics that you will need to know to become a
complete Java programmer:
- applets
- exceptions
- Java Beans
- Javadoc
- Java libraries and frameworks
- threads
- packages
- deployment
You probably now know enough Java to be able
to take advantage of almost any good Java reference. There is very good
material included with Sun's JDK distribution, for example. Here are some good
Java books to consider:
Object-Oriented
Software Development Using Java, Xiaoping Jia, Addison-Wesley, 2000,
ISBN 0-201-35084-X. A textbook. Covers Java, and keeps the focus on objects.
Java
in a Nutshell, David Flanagan, O'Reilly, 1999, ISBN 1-56592-487-8.
Comprehensive and brief. Be sure to get the latest version.
Java:
An Introduction to Computer Science & Programming, Walter Savitch,
Prentice Hall, 1999, ISBN 0-13-287426-1. A very readable introductory
textbook, great for getting started with Java and programming.
More Terms You Need To Know
Distributed Computing
Distributed computing software is meant to
run on an environment of different computers connected by a network. These
applications can run on an internal company network, or increasingly, on
computers connected by the World Wide Web. Java is playing a major role in
developing distributed computing applications.
While programming distributed applications
is beyond the scope of this book, you can hardly avoid encountering a vast
number of terms and abbreviations related to distributed computing when you
read a computer oriented magazine or article. The following definitions will
help you to get a better idea of what you are reading about.
Because Sun has so many Java related
products and terms, many related to distributed computing, Sun specific terms
are given in their own section.
application
server A server program that allows the installation of
application specific software components, in a manner so that they can
be remotely invoked, usually by some form of remote object method call.
|
COM
COM refers to standard developed by Microsoft Corporation which provides
a framework for integrating components. DCOM is the distributed
computing version. |
CORBA
Distributed computing standard maintained by the Object Management Group
(OMG), called the Common Object Request Broker Architecture. |
COS
Naming CORBA standard for object directories. |
DAP
Directory Access Protocol, a protocol for directory services, derived
from X.500. |
DCE
Distributed Computing Environment is a distributed computing standard
developed by the Open Software Foundation (OSF) with input from
industry. |
DCOM
Microsoft's Distributed Component Object Model. |
distributed
computing A computing environment where applications are composed
of various parts and objects that can be located on different computers
connected to a network. Distributed computing requires a set of
standards that specify how the parts running on different computers
communicate with each other. Currently, the two main standards are CORBA
and DCOM. |
IDL
Interface Description Language, CORBA's syntax for defining object
remote interfaces. (Another meaning of IDL is Interactive Data Language,
a programming tool for the interactive reduction, analysis, and
visualization of scientific data and images.) |
IIOP
Internet Inter-ORB Protocol, CORBA's wire protocol for transmitting
remote object method invocations. |
messaging
middleware Middleware that supports a publish-and-subscribe or
broadcast metaphor. |
middleware
Middleware is a software interface between the network and the
applications. It provides services such as identification,
authentication, authorization, directories, and security. The most
widespread middleware standards are the Open Software Foundation's DCE,
OMG's CORBA, and Microsoft's COM/DCOM. |
MOM
Message-Oriented Middleware. |
NSAPI
Netscape's C language API for adding application extensions to their Web
servers. |
ORB
Object Request Broker, a middleware technology that manages
communication and data exchange between distributed objects. It is the
primary message routing component in a CORBA product. |
POA
Portable Object Adapter, a CORBA standard for defining object lifecycle
and activation. |
servlet
Servlets are modules of Java code that run in a server application to
answer client requests. Servlets don't use a specific client-server
protocol, but they are usually used with HTTP.
|
Java Related Terms from Sun
Sun Microsystems is the originator of Java,
and remains one of the principle vendors of Java software products. Sun's
developers and marketing teams have produced a large number of products, and
most are known by their acronyms.
You will find advertisements for other
products such as IDEs and developments tools that promote that they are
compliant with this or that product from Sun. This section may help you wade
through Sun's alphabet soup.
EJB
Enterprise JavaBeans, a server component standard developed by Sun
Microsystems. |
J2EE
Java 2 Platform, Enterprise Edition, Sun's standard for developing
enterprise applications, especially targeted for distributed computing.
|
Java
Naming and Directory Interface The Java standard API for
accessing directory services, such as LDAP, COS Naming, and others.
|
Java
Transaction API Java API for coding client demarcated
transactions, and for building transactional data source drivers.
|
JDBC
Java database connectivity technology is the Sun API that implements the
X/Open SQL call-level interface specifications to provide cross-DBMS
connectivity to a wide range of SQL databases. This is the main Java
standard access to databases. |
JNDI
Java Naming and Directory Interface. |
JNI
Java Native Interface (JNI) is a standard programming interface for
writing Java native methods and embedding the Java virtual machine into
native applications. |
JSP
JavaServer Pages, a technology from Sun that to build dynamic web pages
using Java and XML-like tags to generate page content. |
JTA
Java Transaction API. |
JTS
Java Transaction Service, the Java binding for the CORBA Transaction
Service. |
JVM
Java Virtual Machine. |
RMI
Remote Method Invocation, the Java standard technology for building
distributed objects whose methods can be invoked remotely across a
network. |
SQLJ
An extended Java syntax for embedding SQL-like commands in a Java
program. |
Other Terms
The following are some other terms you are
likely to encounter when reading about Java or Web Programming.
HTTP
Hypertext Transfer Protocol, one of the main protocols for transferring
web pages. |
object
database An object-oriented database system. See ODMG and ODBMS.
|
ODBC
Open Database Connectivity (ODBC) is Microsoft's standard based on the
X/Open SQL call-level interface specifications. It does not work well
with Java. |
ODMG
Object Data Management Group, responsible for setting standards for
object databases. |
ODBMS
Object Database Management System, the result of integrating database
capabilities with object-oriented programming language capabilities.
|
OMG
Object Management Group, an organization that defines and promotes
object oriented programming standards. |
OODB
Object-Oriented Database. |
OODBMS
Object-Oriented Database Management System. |
RUP
Rational Unified Process, an object-oriented development methodology
from Rational Software. |
SQL
Structured Query Language, the most widely used standardized query
language for requesting information from a database. |
XMI
XML Metadata Interchange A new OMG standard combining UML and XML.
|
XML
XML is an open standard of the World Wide Web Consortium (W3C) designed
as a data format for structured document interchange on the web. For
example, it allows defining new operations when standard HTML is not a
good fit. |