Developing Remote Method Invocation Applications

A must for any serious RMI developer. Expensive and falls short of exploring the topic more comprehensively.


One of the big opportunities brought to light by the Internet is the growing field of Distributed Application Development. There are numerous development vehicles to pick from today, ranging from muti-tiered database applications using open or proprietary protocols to object solutions like Microsoft’s DCOM and the consortium-defined CORBA technology. Depending on your needs, DCOM my not be sufficiently platform-independent and CORBA may be overkill for what you really want to accomplish. If your application uses Java on both clients and servers, RMI is an interesting option.

That I know of, this is the only book that focusses exclusively on RMI. RMI represent an extension to Sun’s pre-Java Remote Procedure Calls (RPC) model which is nearly ubiquitous in today’s computing world. Adapted for Java and the object-oriented model, RMI allows you to interoperate between classes on multiple systems. This, combined with Java’s serialization mechanisms, make this technology worth reviewing, even if only to understand its strengths and weaknesses.

Java RMI by Troy Bryian Downing is not a stellar book, but it is practical and provides a solid foundation in RMI technology. The book is divided into four parts. Part I provides an overview of RMI, covers the registry and explores the basics of getting up and running. Part I expands the foundation and talks about remote calls and related issues, along with design considerations when developing with RMI. Part III develops a pair of client/server communication and database applications. Part IV provides a set of references to the RMI API.

The first half of the book is critical to understanding and using RMI. I though the Communication client/server application in Part III was a rather unimaginative choice, though if this is an area of interest for you, it may be more on the mark than I thought. I’m simply tired of reading about how to write chat applications. At least this one has a shared drawing area that extends the concept enough to make it a little more interesting. The database application wasn’t very interesting to me, for the same basic reasons, but it does explore important issues that tend to affect a large number of developers considering RMI development. I also though the reference section was handy but not a very significant listing.

At $39.99 for less than 300 pages, this might be a tough call. If you are working or expect to work on a project that makes heavy use of RMI you’ll almost certainly want to pick this up. RMI is typically covered in distributed application books, of which there are already a handful in the Java domain, but their coverage is typically limited to only one or a few chapters. This book’s tight focus provides an avenue for communicating a number of issues you won’t encounter in other related literature. That alone makes it a good investment if you’re serious about RMI. I think much more could have been done with this book, but this is a good start. I look forward to any enhanced second edition the publisher might consider.