Compras Nikon Bluetooth |
The chapter on Servlets could have been longer by providing simulated web-based transaction (i.e. two-player tic-tac-toe or even against the server, or a simple business transaction using a non-database source -> text file).
The bonus JavaMail chapter was superb! If you excel in AWT/SWING, then you could make a GUI-based e-mail client with this chapter!
In my opinion, the RMI and CORBA chapters could have provided a little background on distributed computing theory. While the book overall is clear and well-organized, those without distributed computing theory background (like me) would have trouble understanding these chapters (i.e. where did the words stub and skeleton come from?) I bought this book for the networking and not the distributed computing chapters, anyway, so don't let my inexperience with distributed computing make this book any less worthwhile.
I'm just being my own opinionated self but I found this book to be truly excellent and personally give it 4.5 stars!
I bought "Java Network Programming and Distributed Computing" for Sun's Developer certification exam which requires knowledge of the information given in every chapter, for example RMI, sockets, serialization, and threading.
The book progressively gives you information you need to understand how the different protocols work, when, where, why, and how to use them and gives good explanations of its source code examples.
I feel I received more than my money's worth and will be looking for more titles by David Reilly and Michael Reilly.
This book serves as an excellent companion to Stevens' book, so that you can get the feel for how Java accomplishes networking capabilities. I still prefer the TCP/IP detail that Stevens' book provides, but that's mainly because I like the language independent concept of networking.
I created a small client2client messaging applet, sent it to a couple of friends for testing, and enjoyed how quickly and easily it was to get it working. Java abstracts a lot of the detail away from the user, since it was designed from the get-go to include networking capabilities, and this book uses those abstractions to its advantage. I'll probably want to get my hands dirty and see how much hands-on control I can get with Java sometime later.
(Reilly*2)'s book is a great way to just jump into network programming without getting your head too tangled with TCP/IP intricacies. This is not to say that the book doesn't cover those details, but it doesn't delve into them as deeply as Stevens' book does. In my view, that's a drawback to it being an absolute reference, but for many who just want to start developing client/server apps, this may be just what you're looking for.
The book is easy to read. Most of the material is clearly explained and illustrated. Code examples (demos) are clean and complete. The demos are not contrived, but present to the reader interesting implementations that may be reused and give a good idea of how programs that are commonly used may work (SMTP, POP clients, HTTP server, etc.). Each of the demos is followed by a detailed explanation that focuses on how the demo works.
I like the book, although I think that the chapters covering Java language programming are extraneous: if you don't know Java, you should learn it from Java language specific books first, and only then venture into the advanced topics of Java network and distributed programming.
The book reminds me somewhat of the classic "Unix Network Programming" by Richard Stevens, which was a must for any C/Unix programmer more than a decade ago.
But there is a second great advantage of Java. It was
designed with Internet awareness from its inception. C
and C++, due to their earlier vintage, have to use
libraries that vary with the operating system. Java
gives you a consistent interface to network
programming, independent of the operating system. It
is to this exposition that this book from Addison-Wesley
is devoted. Written by two Queenslanders, it assumes
that you already know the rudiments of Java. This is not
a book for tyros. If you want to write a network client
(for example, a specialised mail reader), or a multiplayer
online game, or a software agent that trolls the Internet,
then this book can be very useful.
It describes how to use TCP sockets, UDP datagrams,
multithreading, HTTP and other topics. It expands on
CGI for building applets. For client-server
applications, it devotes entire chapters to servlets
and RMI (Remote Method Invocation). If you need to use
CORBA, maybe because you have some legacy code that
you want to write a Java program to interact with,
then you will find a chapter expounding on it.
If you have already been programming Java GUIs, then
this book will expose you to a more abstract class
of problems. There is no visual feedback from widget
layouts here. What feedback you get is from text-based
output. What you have to design against are problems
based on data flow across a network.
The authors have written clearly, and the code
examples are well done, illustrating simply the
desired concepts, without tangling you in the details.
The only slight critique I have is that there is no
comparative assessment of the network capabilities of
Java vis-a-vis C#/.NET. The latter pair is an even
newer language/programming environment that also has
networking built in. But this may be unfair and
straying from the book's scope. C# and .NET have just
been released by Microsoft, and it is not certain if
they will gain much traction. But if they do, you will
undoubtedly see many books arguing the relative
merits.
In spite of everything, I still believe that people are good at heart.
-- Ann Frank
Just because they are called 'forbidden' transitions does not mean that they
are forbidden. They are less allowed than allowed transitions, if you see
what I mean.
-- From a Part 2 Quantum Mechanics lecture.