REVIEW - Java Distributed Computing


Title:

Java Distributed Computing

Author:

Jim Farley

ISBN:

Publisher:

O'Reilly, Incorporated (1998)

Pages:

384pp

Reviewer:

Mark Kuschnir

Reviewed:

February 1999

Rating:

★☆☆☆☆


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.

Book cover image courtesy of Open Library.





Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED


By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED



Settings can be changed at any time from the Cookie Policy page.