Review

This book is for developers who are developing large-scale applications in Java. It's easy to read, and includes code examples, (soft copies can be obtained from the publisher's web-site for the book) to demonstrate the concepts discussed.
4 Sep 2001
Brief Description of Contents
Part 1.
Database Access Using JDBC
Chap. 1.
An Introduction to Enterprise Computing and Java
Contains an introduction to,
- the aspects of Java that can be used in the corporate environment to increase a company's competitiveness,
- the Java APIs,
- corporate databases and JDBC,
- distributed computing in the enterprise.
Chap. 2.
JDBC Data Types
Reviews the common SQL data types, and provides help on how to chose then correct data type when designing new data bases. Details the mapping of SQL data types to Java and how to utilise built-in Java classes for converting custom and specialised SQL data types, (e.g. binary image data) to Java objects. (Contains a code example for creating an IMAGE instance from an SQL BLOB (Binary Large Object).
Chap. 3.
A Simple JDBC Application
Contains the code to create a framework from which subsequent modules in the book are launched; creating a database URL; how to handle a JDBC driver & the DriverManager
class; making a JDBC connection and using JDBC exceptions.
Chap. 4.
Executing SQL Statements
Contains descriptions and code examples on the details of executing SQL statements and how to handle the results returned. Details how to discover information about the returned results at runtime.
Chap. 5.
Prepared Statements and Stored Procedures
Details of, and how to use PreparedStatement
and CallableStatement
and the advantages and disadvantages associated with their use.
Chap. 6.
Retrieving Database Information
Details how to query information on a database using the DatabaseMetaData
class and how to check the level of support that the DBMS has available. 23 code examples, including a number of convenience methods are given.
Chap. 7.
Object/Relational Mapping
Covers the problem often encountered when developing enterprise applications; that of matching software objects to a database tables. Describes the use of object wrappers to solve the problem, and also covers some of the issues that need to be addressed using third party tools that are designed to keep application objects synchronised with relational tables.
Chap. 8.
Multithreaded applications
Provides an introduction to the use, benefits and problems associated with using threads. Code examples demonstrate the use of the Runnable
interface and a multithreaded JDBC example is given and code example using PipedStreams
is also included.
Chap. 9.
Using Object Databases
An introduction to the Object Database Management System (ODBMS), providing a review of the standards that exist in the area; the basic concepts, Object Definition Language (ODL) and Object Query Language (OQL).
Chap. 10.
Delivering the Application
Reviews the options for storing application code and models for running the applications. Pros and cons of each option are given. Code replication mechanisms are briefly discussed. Methods to reduce load times are discussed,(SplashScreens, Delayed Construction/BootStrap code, and Compression Techniques), and code examples are provided (See also Java Platform Performance Section 12.2, which contains additional information on using jar files). Delivery via the internet is discussed.
Chap. 11.
Securing Enterprise Information
Describes the Java security model, applet signing and decompiling Java byte-code. Instructions for signing an applet are included. Refer to Java Crytography; Chap. 8 for details on signing applets, and other pages deal with signing JAR files and JAR files in general. Mocha (a byte-code reverse engineering tool), Crema (a byte-code obfuscater) and the use of Release and Debug compiler modes are introduced.
Part 2.
Remote Method Invocation (RMI)
Chap. 12.
Introduction to Distributed Computing
Introduces distributed computing - what it is, its history and who are potential users. The chapter aims at being a starting point for preparing a business case if you're considering implementing distributed computing and introduces the advantages, complexities, and architectures (Sun & DCE RPC, COBRA IDL, Java RMI) of distributed computing.
Chap. 13.
Object Serialization
Describes how the contents and states of objects can be saved (object persistence) using the Serializable
and Externalizable
interfaces, and includes a review of streams, versioning and serialization Exceptions. The chapter also covers the advantages and disadvantages of using relational databases to store objects. Contains code examples for serialising and object and reading and writing it to a file, and to an RDMS as a BLOB.
Chap. 14.
Remote Objects
Contains an introduction to Remote Method Invocation (RMI) covering its benefits, drawbacks and guidelines for determining when it is needed. Describes the structure of an RMI application, and how this fits into JAVA. Contains a worked example through the steps required to build an RMI application. Covers RMI security and how RMI travels through firewalls using HTTP. Contains the RMI related code for a chat client and server using RMI to communicate, which includes the creating a custom RMISecurityManager
(see page 326 Chap 15 for the RMISecurityManager
restrictions and allowances.).
Chap. 15.
Advanced RMI Concepts
Builds on the concepts presented in chapter 14 to create a JDBC RMI application (includes code). The technique presented allows (for example) a client to connect to a remote database via a slow connection and have the processing work done by the RMI server (e.g. join, filter large tables), which is local to the database, and report back the results.
Introduced is; the concept of bootstrapping, (the ability to specify the location (URL) from which a client should load its associated classes); the LogStream
class (including code example), which provides a logging function; and exporting objects using an Interface
rather than extending the UnicastRemoteObject
class, (includes code example).
The chapter concludes with a review of the methods of the interfaces and classes that are used for RMI.
Chap. 16.
COBRA and Object Management Architecture (OMA)
An introduction to COBRA and OMA. Covers the Object Management Architecture, (COBRA, IDL and IIOP) and how the standard is managed via the Object Management Group (OMG), more information at their web-site www.omg.org.
The section on Common Object Request Broker Architecture (COBRA) cover how the object model relates to objects local to the application; the programming steps in the development of a COBRA application; static and dynamic invocation and their relative merits; and the interoperability of ORBs (Object Request Broker), i.e. the runtime passing of object references between different systems.
Chap. 17.
WWW Applications Development Using COBRA
Provides evaluation criteria for client/server architectures, and a summary and comparison of existing ones. Introduces the architecture of Java applications in COBRA; how distributed objects offer a new level of functionality for WWW application development and how COBRA can be used to integrate heterogeneous legacy servers. Introduces the problems that can be encountered when using ORBs in an Internet/Intranet environment. Introduces tools for developing COBRA based web applications in Java, Visigenic's Visibroker, and IONA Technologies' OrbixWeb. A brief overview of Sun's Java IDL completes the chapter.
Chap. 18.
Incorporating Java, JDBC and COBRA, a Sample Application
Starting with a checklist of development tools that must be obtained and installed, the chapter goes through the development of an IIOP (Internet Inter-ORB Protocol) application using a simple worked example (of a client/server that ultimately uses an RMDB to store the entered data).
Chap. 19.
Scaling up Web-Object Applications
Contains hints on how to make a business case, handling training needs, and manage the risks of introducing distributed-object technology. Provides an overview of the essential components of the distributed architecture, with a set of key tasks in building the architecture, and the software engineering methodologies and processes that will have to be enhanced to cater for distributed object programming.
B
Java/JDBC Resources
Contains developer e-mail addresses, mailing lists, mail list archives, www resources, newsgroup.
C
COBRA Resources
OMG Publications, Journal Papers and books, Internet Resources, (web-pages, vendors, newsgroups, mailing lists.
E
The JDBC API
Lists the JDBC classes provides in the java.sql
package. It is divided into Interfaces, Classes and exceptions. Provides method syntax and any variables and constants.
Back