B. Gold-Bernstein and D. Marca Prentice Hall, Upper Saddle River, NJ, 1998, 360 pp. ISBN 0-13-890195-3, $45.00 Client/servers systems represent the vast majority of enterprise software. Yet over 80% of these projects fail. This book presents a concrete design method that provides for reliable design and implementation of multi-tier client/server systems. This book is organized into five basic parts: Context for Understanding Distributed Client/Server Systems Business Components—The Essential Model Software Components—The Implementation Model Organizational Enablers Case Study In Part 1, Chapter 1 answers the question: Why build client/server systems? by giving a general context roadmap, discussing why businesses are under pressure to change, how legacy systems inhibit change, why client/server systems enable change. What is new and not new in client/server systems, and the importance of good design and modeling are also presented. Chapter 2 discusses all aspects of models and modeling in general, including a definition of the basic structure of a model. Chapter 3 presents the Illumisys Design Method, a specific event- and object-based method for developing distributed client/server systems. In Part 2, the first stage of the Illumisys Design Method, the business requirements, are covered. Chapter 4 provides an overview on a rigorous and formal model for business requirements, termed the Essential Model. Chapter 5 discusses the Environmental Aspect—how a system interacts with the outside world and how boundaries are defined. The organization of the rules which drive the business are encompassed in the Information Aspect and are discussed in Chapter 6. This chapter is careful to note the differences between the Information Aspect and a Database Model. Chapter 7 describes the Bridge Aspect, which is a consistency component that insures that the Environmental Aspect and the Information Aspect are describing a single system. The Behavioral Aspect, as described in Chapter 8, brings together further all previously defined aspects and provides detailed descriptions of responses to specific events. Chapter 9 discusses the Event Distribution Aspect, which describes the geographical distribution of the business events—where business events actually occur. However, there are additional factors that can affect system partitioning, such as performance goals and processing volumes. Chapter 10 describes the Component Measurement Aspect, which encapsulates the natural rhythms and cycles of the business. In Part 3, the design of the distributed architecture implementation is described. Chapter 11 presents an overview of the Implementation Model, which maps the business events and responses defined in the Essential Model to the distributed architecture. A Statement of Design Metrics, which determines design tradeoffs and is used to partition the essential requirements across the distributed processor architecture, is discussed in Chapter 12. The Multi-Tier Partitioning Aspect is described in Chapter 13. Multi-tier partitioning enables: data encapsulation, granular business rules, component application architecture, and scalability. Selecting the appropriate technology, such as processors and tools, is a critical aspect of distributed architecture design. Chapter 14 defines five steps of the Technical Architecture Design that is appropriate for enterprise architecture planning. The Processor Distribution Aspect, as described in Chapter 15, provides the specifications of the software granules that will operate on each processor, and these specifications are used to build the software components. Having defined the processing and data distribution design, Chapter 16 describes the Geographical Distribution Aspect, which maps processors to geographical location. Chapter 17 defines Traffic Analysis, which measures the message traffic between processors as well as the contention on individual processors. In Part 4, an overall plan to enable change to the system is described. Organizational enablers are used and include: organizational architecture, process management, and organizational transformation. Chapter 18 describes an Organizational Architecture that easily adapts to changes in the business environment. Designing client/server systems requires a strategy for identifying and managing concurrent activities. Process Management, as described in Chapter 19, synchronizes all concurrent activities and ensures that the system delivers the required functionality. The last aspect of the Organizational enablers deals with the transformation required by business. Chapter 20 deals with Organizational Transformation—a process required to enable business change. In Part 5, all of the models are brought together to show, from beginning to end, how the Illumisys Design Method is applied to a specific business situation. This is accomplished via a case study (Fleury Market). Chapter 21 provides necessary background for the case study. Chapters 22 and 23 contain, respectively, all components for the Essential Model and the Implementation Model for the case study. Overall, the book is well written and easy to understand. This book would be an important addition for anyone interested in designing and implementing a client/server system in a business environment. This book would also be appropriate for an advanced database or special topics course. James P. Buckley Department of Computer Science University of Dayton