|
Java RMI by William Grosso is a good effort by the author as it covers all the detailed aspects of Java RMI technology. For a beginner, it’s a quick learning experience while experts can gain valuable experience for constructing their own enterprise and distributed systems. The book effectively traverses through streams and sockets working its way through the basics of building scalable client-server architectures using RMI.
Grosso had provided sufficient experience in designing and implementing Java's Remote Method Invocation framework. This book is intended mainly for Java developers who want to build the distributed applications. Author had reflected RMI as a robust and effective way to build distributed applications in which all the participating programs are written in Java. RMI had been presented as a simple and easy to use framework for various applications here.
|
|
|
|
The book starts with an introduction to some of the essential features of RMI including Java's stream classes, wrapping of one stream into another, compressing of files etc. The discussion then moves on to the socket and socket-based applications. The author had not only explained the socket basics as to what sockets are, their creation, customization but had also taken into account building of socket-based distributed applications. In order to cover the entire topic of building RMI applications socket-based distributed application had been rebuild using RMI.
The book also presents a fairly detailed analysis of how introducing a network, changes the various aspects of application design. It highlights principles for partitioning an application into clients and servers. Next the author discusses how to make the server scale i.e. discussing the implementation decisions that must be made in order to build scalable and secure distributed applications. The concept of Serialization and Threading had been extensively explained. Various guidelines for thread implementation along with its usage for reduction in Response-Time had also been taken care of.
Recognizing the significance of testing the author had also provided guidelines for building an efficient testing framework. Issues related to the RMI Registry including its working, usage, its implementation in RMI server etc had been taken care of in a nice way. Some RMI limitations as well as security issues are also discussed. The focus then turns towards the Naming Services and the RMI Runtime functionalities. The author had not only explained the Naming Services usage, its requirements along with the Federation and Threading concept but had also talked about The Java Naming and Directory Interface (JNDI).
Talking about the RMI Runtime author had effectively covered the concepts of distributed garbage collector, configuration of RMI at runtime along with the Factories and the Activation Framework. From here the discussion moves on to various advanced features of RMI hence providing a smooth transition from providing essential material for building a sophisticated RMI application to some useful and important but not very essential advanced topics .It includes how to use Custom Sockets, how to replace standard sockets that RMI uses with other sockets along with some Dynamic Class loading related issues making the deployment of a distributed application easier.
The book also discusses some Security Policies and Tunneling concepts of Java2 in the later part of the book. Setting up of a security policy, Multithreaded Clients, Firewalls etc had also been explained in the best of the possible ways. The book ends with a useful coverage of The Common Object Request Broker Architecture (or CORBA) and The Enterprise JavaBeans (EJB) specification along with the comparison of CORBA to RMI.
Overall this is a good book for developers giving them all the necessary information about the Java RMI technology. It helps to present RMI as not only a useful tool for building distributed applications, but also as an ideal environment for Java programmers to learn how to build a distributed application.
|
You can share your information about this topic using the form below!
Please do not post your questions with this form! Thanks.