New to Java? We'll help you get started with our revised beginner's tutorial, or our free online textbook.

Get the latest Java books
h t t p : / /w w w . j a v a c o f f e e b r e a k . c o m /

Java Coffee Break

Distributed Programming with Java

Author Qusay H. Mahmoud
Publisher Manning
ISBN 1-884-77765-1
Experience level Intermediate - Expert

Read an interview with the author

Distributed Programming with Java aims to teach the reader how to build distributed services using a variety of technologies, including sockets, remote-method invocation (RMI), and the Common Object Request Broker Architecture (CORBA). While many programmers will be familiar with sockets, the other two technologies are incredibly powerful tools for creating distributed applications. RMI is for execution of Java methods remotely, similar to the old remote-procedure call technology, but with an object-orientated twist. CORBA is a more universal system, which allows object methods written in any language (such as C++, Java or Ada) to be called remotely. Incredible stuff, but incredibly complex.

That's where Distributed Programming with Java comes in. It teaches the theory of remote-method invocation and CORBA, and gives you practical examples in Java. There are also chapters on socket programming and mobile agency. The socket chapters are good as a refresher course for those who have already done network programming, but are a poor substitute for the coverage offered by other books, such as the excellent Java Network Programming (also published by Manning). As for the Mobile Agents chapters, while they are interesting reading, they may not be generally applicable to all developers. If you're buying the book, you're really buying it for the RMI and CORBA coverage.

The author clearly knows his remote-method invocation - showing you how to digitally sign your RMI code, to create distributed services with callbacks, and how to use Secure Sockets Layer (SSL) to protect your RMI applications from prying eyes. The later requires the new Java 2 platform, which includes SSL support. 

When it comes to the CORBA chapters, however, I'm a little disappointed. The author chooses to use the VisiBroker CORBA implementation, and completely ignores the CORBA IDL support in the new Java 2 platform. I suspect that these chapters may have been written prior to the release of the Java 2 platform, and there is explanation for the choice of VisiBroker. Nor, for that matter, is there much help in downloading or installing the VisiBroker software (a copy on CD along with source would certainly have been nice). However, the technical coverage of CORBA theory is very well done, and the chapters on basic CORBA theory, IDL-to-Java mapping, and IDL inheritance could be used no matter what choice of CORBA implementation you make.

For its mobile agent coverage, the author chose ObjectSpace's Voyager system. There are a couple of paragraphs on alternate mobile agent systems, such as Telescript/Odyssey and Aglets, but the coverage of these is superficial to say the least. However, it does give very good coverage of mobile agents using Voyager, and how to integrate Voyager with CORBA.

If you're interested in distributed systems using remote-method invocation or CORBA, then Distributed Programming with Java makes a great guide to the subject. It's filled with practical examples, and good coverage of the theory. However, the sections on socket and mobile agent programming aren't designed for beginners, and won't suit all tastes. Nonetheless, the RMI and CORBA coverage alone makes it worthwhile as a reference, and if you have an interest in mobile agents that comes as a bonus.

Distributed Programming with Java
Buy the Book
Get this title at