ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Google+ ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1918 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Title:
Java Distributed Computing
Author:
Jim Farley
ISBN:
1 56592 206 9
Publisher:
O'Reilly
Pages:
368pp
Price:
£24-50
Reviewer:
Mark Kuschnir
Subject:
java; CORBA and COM
Appeared in:
11-1
This book covers plenty of material related to distributed computing. Its main chapters include the following:
  • Networking in Java (basically java.net)
  • Distributing Objects (why do it?, RMI, CORBA)
  • Threads (multithreading applications)
  • Security
  • Message Passing Systems (fixed + adaptable protocols)
  • Databases (JDBC)
Overall I was disappointed with the book. There were many reasons for the disappointment. I would have liked to have seen more treatment of RMI. I sometimes felt that a flow diagram could have been used to elucidate rather lengthy explanations (there are few diagrams in the book). The explanations some-times seem to ramble on and become a bit wishy-washy.

The Threads chapter seems slightly inappropriate as the book assumes Java programming experience. I think it would be better referring to some other fuller treatment of multithreading.

The Message Passing chapter seems unnecessarily long. It also seems slightly dubious in advocating designing ones own protocol. The world seems full enough of protocols!

The Database chapter covers JDBC. The chapter explains how the programmer could simulate remote JDBC access using RMI if the JDBC driver does not support remote access. The JavaBeans specification seems to require that a JDBC driver should naturally provide access to remote databases. The chapter also mentions the programmer implementing his own caching mechanism. I find that slightly bizarre as the database and/or the JDBC driver should provide caching!

The examples are fair. However, there seem to be a lot of examples that fill the book up.

Niggles that I have with the coding style adopted in the book include:

there are no javadoc comments - I can't even remember an explanation explaining that all javadoc comments had been ripped out of the printed example for space reasons (unfortunately they are also missing from the online examples!) exceptions are sometimes caught and junked by use of:

  • catch (Exception e) {}


    I don't like this because I think exceptions should generally be reported in some way or other. Either they should be thrown or at least have a System.err.println for debug purposes.
  • the following line of code is used frequently:

    return success;


    so the operation is successful? No, because 'success' is a Boolean that may be true or false! At the least I'd rather see 'succeeded'.
  • System.out
    is sometimes used for error reporting rather than
    System.err
    .
  • some methods are marked
    throws IllegalArgumentException
    . As this exception is subclassed from
    RuntimeException
    these throws are both unnecessary and not idiomatic
  • some
    StreamTokenizer
    processing is not robust, as it doesn't handle incorrectly formatted messages
  • the use of
    System.out.println
    calls to explain what is going on at run time rather than suitable '//' comments
It is not really a bad book. It just doesn't identify its readership very well. It would probably be reasonable reading for a beginner or a low intermediate programmer.

I can't recommend the book in its current form.