Facta Univ. Ser.: Elec. Energ., vol. 15, No. 1, April 2002, 140-142

Andrew S. Tanenbaum and Maarten van Steen
DISTRUBUTED SYSTEMS:
Principles and Paradigms
Prentice Hall, Upper Saddle River, New Jersey 07458, 2002
Hardcover, pp. 803, plus XXII, $ 55,99
ISBN 0-13-088893-1
http://www.pearsoneduc.com

In general about the book

The computing industry is one of the fastest growing industries and it is fueled by the rapid development in the areas of computer hardware and software. Numerous advances in computer hardware and communication technologies have revolutionized our modern society, and the usage of computer in managing information and automation become a customary and an integral part of our daily life. Systems with many smaller, cost-effective, flexible, and potentially independent computers, such as workstations and PC machines, connected through communication channels, in order to facilitate information sharing and cooperative work, are commonplace. A distributed system (DS), as a typical representative of such systems, is viewed as a collection of tightly coupled heterogeneous computing machines connected via a network in order to accomplish a common goal. A goal of a distributed operating system (DOS), as a computer's project manager that runs on several machines, is to provide a useful set of services. Typically DOS makes the collection of machines to behave more like a single machine, i.e. to provide a common, consistent global view of the file system, name space, time, security, and access to resources. The objective of this book is to describe in detail each major aspect of distributed system (DS) from a conceptual and practical viewpoint. This book is structured into two major parts: principles and paradigms. The first part of the book (chapters 2-8) covers the important concepts of DOSs, while the second (chapters 9-12) is devoted to different paradigm and describes several systems that use that paradigm. Chapter 1 is introductory, and Chapter 13 contains an annotated bibliography. At the end, an Index and information About the Authors are added.

Chapter content

Chapter 1 introduces the reader with definition of DSs, hardware organization of various types of multiple computer systems, distinction between distributed- and network-operating-systems, and the client-server computing-model. DOSs are designed to support distributed computations, while cooperating processes run on different nodes. The processes cooperate by exchanging information, which in turn implies a need for interprocess communications (IPCs) services. Different implementations of familiar IPC services, such as remote procedure call, remote object invocation, message-, and stream-oriented-communication are considered in Chapter 2. Chapter 3 deals with concurrent process as basic computational units in operating systems (OSs). The concept of thread as a lightweight, or small granular, process is involved. Multithreaded client/server process paradigm is presented. Moving processes between different machines, i.e. code migration, and software agents as another type of process are involved. Names play an important role in OSs. Many OSs support several distinct name spaces for different purpose. In Chapter 4 the authors concentrate on three different ways, that names are used in OSs. The first name space describes the organization and implementation of human-friendly name, the second name is used to locate mobile entity, and the third deals with the organization of names. Chapter 5 concentrates on how processes can synchronize. The discussion covers important algorithms in distributed synchronization, distributed election, mutual exclusion and distributed transactions. Chapter 6 demonstrates the need for replication of data and keeping replica consistent. The main topics, discussed here, relate to data- and client-consistency- models, comparison of different distribution protocols, and various alternatives for implementing consistency protocols. DOSs are more prone to partial failure. Therefore DSs provide special facilities for recovery. The DS itself must have internal mechanisms that handle failure problems. Chapter 7 takes a closer look at techniques for making DSs fault tolerant. Reliable client-server- and reliable-group- communications, distributed commit protocols, and recoveries from failure approaches are considered. Chapter 8 addresses security issues in distributed environment. These issues are divided into two areas: authentication and access control. In addition security management is described too. The second part of the textbook discusses actual DSs organized around some paradigm. The paradigms covered are object-based systems, distributed file systems, document-based systems, and coordination- based systems. The discussion is intended to give the reader understanding of common problems and solution techniques. Chapter 9 concentrates on object-oriented model that implements a transparent service request across an interconnected heterogeneous multiple objects DS. The distributed object-based systems (CORBA, Microsoft's DCOM and Globe), each with own merits and disadvantages, are considered. Chapter 10 mainly focuses the discussion on two more representative implementations of file systems. The first example is the NFS while the second one is Coda. Also three additional systems, Plan 9, XFS and SFS, are briefly covered. Chapter 11 focuses on distributed document-based systems. Two more important developed systems for exchanging information, the World Wide Web (WWW) and Lotus Notes, are presented. Chapter 12 considers a newer generation of DS, distributed coordination-based systems that are based on the coordination activities between various components of a system. Two representative examples, TIBCO's Rendezvous Bus and Sun Microsystems's, are discussed.

The readers as a starting point for additional study in this subject can use Chapter 13. This chapter is divided into two sections. The first gives a list of suggested readings, while the second is a list of books and articles cited in this book. The book has a good Index.

Useful for senior-level or a graduate course in computer science

Overall, the book covers a broad spectrum of topics related tom design of distributed systems. I find it well written, interesting, quite readable, and appropriate. This book provides a comprehensive and clear treatment of the treated subject, and focuses on the concepts, theory and practices in distributed operating systems. It is primarily written for senior-level or graduate students, and researchers interested in the field of distributed systems. However it is also suitable for practitioners in industry and government laboratories. In conclusion, this is an excellent text. Therefore, I highly recommend this book to be used as a reference textbook for the course covering area including design of distributed systems

Mile Stojcev
Faculty of Electronic Engineering
Beogradska 14, P.O. Box 73
18000 Nish, Yugoslavia