Client/server technology is increasingly becoming the alternative way to organize enterprise-level information systems. This is reflected in the amount of literature published on the subject. But the question is, do we need yet another introduction to this area?
The strength of this well-written, easy-to-read book is that it provides “a basic foundation of knowledge [and]…the information necessary for asking the correct questions and evaluating the answers” regarding client/server technology. It is intended for manager-level professionals with some background in “traditional,” mainframe-oriented information processing, who want to get an idea of the strengths and weaknesses of client/server architecture and who find academic textbooks on distributed operating systems too long and mostly missing the point. Most of the time, Hall targets his audience well.
Hall concentrates on the most important aspects of client/ server systems. Basic building blocks are described without too much technical detail. The main focus is on factors that affect the performance and general behavior of the system. In this respect, the first half of the book is especially well written. Hall manages to make concepts easy to understand and essential features easy to remember. Without delving too deeply into detail, Hall shows how crucial a performance design evaluation is with regard to distributed systems.
Chapters 1 through 3 present a general introduction to distributed systems and client/server architecture. Hall offers a good overview of the essentials in this area. Chapters 4, “File Servers,” and 5, “Database Servers,” concentrate on the most important application environment for client/server systems. The treatment is complemented with a case study (chapter 6, Appendix A), which gives a more concrete insight into decision alternatives.
In chapters 7 and 8, Hall presents the further evolution of client/server systems to real distributed applications. The presentation is mainly based on one real middleware platform, and it provides some natural coherence and concreteness. On the other hand, it may leave the reader feeling uncertain about what is general and what is case-specific.
The last chapters (“Help for Legacy Systems,” “Security in the Client/Server Environment,” “Skill Requirements,” and “Miscellaneous Topics”) leave the impression that they have not been treated with as much care as earlier chapters. Perhaps Hall wanted to say something about these important and interesting topics but was overwhelmed by the amount of material available.
Some practical information includes examples of off-the-shelf products; a dictionary of open system standards; and a glossary of important terms. The bibliography is surprisingly short, however, especially since the book is intended for those considering employment in the client/server industry.