|
Distributed Systems: Concepts and Design
|
There is a comprehensive Instructor's Guide available for
downloading in the form of downloadable Acrobat (.pdf) or PostScript files ehich
are accessible via the links below. (The Guide comrises about 450 pages in all):
You are recommended to use the Acrobat files if you have an Acrobat Reader
(which is available free from
Adobe's web site
),
because it enables you to view and select individual pages for printing, copying
etc.
Once you have received the password, you can access the solutions by following one of the links below, giving the user name "dsbook" and the relevant password when prompted:
Copies of the Instructor's Guide are also available in hardcopy form from Addison Wesley Longman. Contact your local representative or Louise.Allen@pearsoned-ema.com
from IEEE Parallel amd Distributed Technology, May 1996
by Jan Madey, Warsaw University
This is a substantially improved and expanded edition of a popular
textbook for undergraduate and postgraduate study, published for the
first time in 1988. This new edition has more authors and chapters than
the previous one, as well as new case studies and a revised content. The
book aims to provide knowledge of the principles and practice of
distributed computer systems design. It includes 18 chapters, covering
seven main areas: foundations, distributed operating systems, file
services, highly available services, shared data, security, and name
services. Each chapter presents hands-on examples, a useful summary,
and a set of exercises (with references to particular pages).
There is no need to argue about the importance of research and teaching in the area of distributed computing. As K.P. Birman from Cornell University points out in the foreword to the book: "in 1994, the field is apparently about to reinvent itself." This means we need new, solid texts for students.
This well-written book covers a broad range of subjects pertaining to distributed systems without sacrificing depth. It is reasonably self-contained and covers not only pure distributed systems but also related issues (such as microkernels or digital signatures) regarding distributed-system structure and applications.
The authors use the material in this book for an undergraduate course taken in the second or third year (whose prerequisite is an introductory course on concurrency and classical operating systems). They also use it for a one-year masters-level course, where students apply their knowledge in substantial practical projects. The authors share their experience by specifying precisely which chapters or sections should be taught in a given course and how this book can be helpful as a reference text for individual study or more advanced research. I found these hints quite useful and have already used some of them in my own teaching.
The book covers most of the important recent research areas up to 1993. This includes advanced topics such as Bershad's lightweight remote procedure call (LRPC) or relaxed distributed shared memory (DSM) consistency models. There are a few omissions, however. The most important of them are Parallel Virtual Machine (PVM), Message-Passing Interface (MPI), and new networking hardware such as Fast Ethernet. These notions have become increasingly important in recent years, but perhaps they were too new to be included in this book (for instance, MPI became a message-passing standard after 1993). Because the book covers a lot of material from very diverse areas of computer systems, a bibliography after each chapter would have been better than the comprehensive one given at the end of the book. The book also has a few glitches. For example, Figure 17.10 (p.535) is misleading: two pointers per process are shown in part (b), while only one can exist; more importantly, (b) and (c) both follow directly from (a), while this figure suggests the sequence (a) ( (b) ( (c). [This error has been corrected in the 3rd and subsequent impressions and is recorded in the Errata sheet. GC]
Those flaws, however, do not change my favorable
opinion about this text. It is a clear, well-written book, suitable as
a text for both supervised and individual study of a modern and
important field, at different course levels. It is up-to-date with
well-chosen case studies. In fact, I do not know of a better book in
the area of distributed systems and can recommend this one without
hesitation.
From E. Douglas Jensen's
Annotated List of Recommended Distributed Computing System Books February
1996
from Computer Communications, vol 18, no. 7 July 1995
The second edition has addressed the issues involved in distributed computing
in simple yet comprehensive manner with a number of illustrations. It is very
well organised, and is now an excellent book to adopt as a textbook at
undergraduate and postgraduate level. The treatment of the subject in most parts
is
non-mathematical, and as such the book does not impose and special
mathematical pre-requisites.
[Description of contents and structure of the book omitted.]
Since the level of coverage is fairly deep, it may not be possible to cover
all of the chapters in one semester course. However, the topics have been
organised in such a way that one can pick and choose chapters to satisfy
oneีs own syllabus requirement.
[List of case studies omitted.]
These case studies provide a vital link between the theoretical concepts and
practical implementations, making it easier to understand the subject of
distributed systems.
The authors provide a mail-list address and also provide access to
view graphs, errata lists, etc. via ftp. This is a great service, particularly
to instructors. Nevertheless, it would have been useful if the book had a
list of ftp sites or http addresses where users can look for more specific
information on specific distributed systems like Mach, Chorus, Amoeba,
Clouds, Firefly RPC, etc.
From Bryan O'Sullivan's capsule review in the comp.os.research FAQ, January
1994
Illustrative examples taken from modern 'real world' systems such as Sun
RPC, the Andrew File System, and PGP are provided throughout the book, and
case studies of the Amoeba, Mach, Chorus, and Clouds systems appear towards
the end. Exercises are presented at the end of each chapter. The prose is
clear, and the layout pleasant. This is, by a narrow margin, the best
distributed systems textbook I have come across.
From Mary Thompson's comp.os.mach posting, Spring 1994.
Sape Mullender, The Computer Journal, Vol. 37, No. 8, 1994, p. 727
The book reflects a preference of the authors for breadth rather than depth.
It is very complete in its coverage of important experimental
distributed-systems research, but the price for this is that theory of
distributed systems is only marginally covered. The preface suggests that the
book can be used for undergraduate as well as for postgraduate teaching.
Although the volume of the material in the book certainly justifies this
(covering the whole book would take roughly 50 h of lecturing), I find the
level of presentation basically that of undergraduate teaching. The book
explains principles but not algorithms, it explains what but not how.
Chapter 3 ('Networking and Internetworking'), for example, presents the OSI
reference model and explains what each layer is supposed to achieve, but does
not discuss how this is done. I believe treatment of fault models and fault
tolerance is essential in a book on distributed systems and I find the
treatment of this subject too shallow. What I find especially missing is a
discussion of the fundamental possibilities and impossibilities for masking
faults under various fault methods.
In spite of this defect, I find the book very useful as a first introduction
to distributed systems. All the material on distributed systems I could ever
hope to teach in an undergraduate course is present and up to date. The
descriptions of systems discussed are balanced and clear. Questions, at the
end of each chapter, are useful for students to test their understanding of
the material.
Software World, September 1994
from Computing, 29 September 1994
Introductory chapters cover the characteristics of distributed systems and
the enabling technologies which they need. Further sections build on this
and discuss many of the topics raised in more detail. For example, several
chapters explore the technical problems of sharing data over distributed
systems and security gets a chapter of its own. A nice touch with this book
is that the authors have actually used the technology they describe to
provide a means whereby readers can send them queries and comments by email.
A network mailing list has also been set up to provide subscribers with
updates to the book and even allow readers to contact each other.
But if you've got the first edition do you need this one? Yes - the
fast-changing nature of the topic has meant that the book has been pretty
well rewritten and, with the help of an additional author, has been increased
to about twice its original size. The book is, admittedly, good value for
over 600 pages, but still quite expensive for today's debt-ridden students.
It contains material for both undergraduate and post-graduate courses and one
wonders at the fairness of this: undergraduates might prefer a smaller book
containing material relevant to them at a lower price.
Enough of students - would working IT professionals want to read the book?
If you want to take some time to find out about the technical foundation of
distributed systems, then this could be the book for you. By reading it you
may even get used to the idea that DOS stands for Distributed Operating
System and that an ATM network is not necessarily anything to do with cash
dispensers but Asynchronous Transfer Mode technology instead. You should not
let academic quirks, such as having coding examples in Modula-2, put you off
- but be warned that the emphasis of the book is on the structure of the
system hardware and software needed to support distributed systems. For
instance, while there are some references to user-oriented applications, the
case studies relate to examples of often esoteric distributed operating
systems.
From the Foreword to the book, by Ken Birman, Cornell University..
The book begins with the foundations for open distributed systems including
networking, interprocess communication, remote procedure calling, name
services, distributed time management and file services. It introduces new
technologies including ATM networking, internetworks, multicast protocols,
microkernel-based distributed operating systems and distributed shared
memory. It also covers the design of services supporting the sharing of
distributed data, including replication, concurrency control, recovery, fault
tolerance and security.
The material is supported by definitions of service interfaces and algorithms
and by copious case studies. The case studies provide an excellent insight
into the current state-of-the-art in distributed system design. They include:
George Coulouris, Jean Dollimore and Tim Kindberg have based this book on
courses at masters and undergraduate level given to students at Queen Mary
and Westfield College in the University of London.
This seems to me to be the best introductory distributed systems textbook, much
improved
over its first edition. It is broader in scope than Tannenbaum's Distributed
Operating
Systems book, and deeper than Tannenbaum's Distributed Systems book. A
conspicuous
hole in
its otherwise thorough coverage is real-time distributed systems.
This book provides the prerequisites for the deeper content in Mullender's and
Tal's
books. The authors have provided a wonderfully valuable web page with instructor
materials, errata for each printing, reviews, and the like. (I hope that more
book
authors
will soon follow this lead.)
by A.L. Ananda and G.S. Poo, Singapore National U.
The first edition of this book was published in 1988, since when a number of
changes have taken place in the area of networking resulting in widespread
applicability of distributed computing techniques. As Professor Kenneth P.
Birman has aptly said in the foreword to the book:
Yet, in 1994, the field
is apparently about to reinvent itself! Just as we thought we understood
distributed computing, ATM networks and novel presentations of computing
threaten a 100-fold scaling up of the numbers of components in distributed
systems, the performance demands, and the complexity of typical software
solutions.
'Distributed Systems: Concepts and Design', second edition, George
Coulouris, Jean Dollimore, and Tim Kindberg, Addison-Wesley 1994, ISBN
0-201-62433-8. This text treats a wide variety of issues at a level
suitable for advanced undergraduate and postgraduate teaching. Basic topics
covered include IPC, networking and RPC, upon which notions of distributed
operation and provision of services are built. Coverage of distributed
synchronisation leads on to a treatment of replication, simple transactions
and concurrency control. The final chapters include material on distributed
transactions, fault tolerance, security, and distributed shared memory.
For an overview of Mach 3 would especially recommend
Distributed Systems, Concepts and Design, 2nd Ed. by G. Coulouris, J. Dollimore,
T. Kindberg. It is the most up-to-date and seems to provide the amount of
information you need to understand the design of Mach. From there you can
jump
into the OSF Kernel Principles and reading source code.
The second edition of Distributed Systems-Concepts and Design is very
different from the first: it has an additional author and is more than twice
as thick. The book briefly puts distributed systems in a historical
perspective and then covers networking, IPC and RPC, structure of distributed
operating systems, file servers and name servers, time and coordination,
replication, centralized and distributed transactions, concurrency control,
recovery and fault tolerance, security, and distributed shared memory. The
book ends with the presentation of several case studies.
Although all those involved in creating distributed systems are well aware
that there are problems it is only when you see so many of these problems set
out and tackled in a methodical way that you realise that they can all be
mastered. This book is a student text and gives confidence that the next
batch of graduates should be able to provide real help in the working
environment.
by Bob Hughes, Senior Lecturer in computing at Brighton University
This book is the second edition of a textbook based on a course which the
authors have taught over a number of years at Queen Mary and Westfield
College. This sounds promising as the book's content should have been
knocked into reasonable shape by practical feedback from students - who are
rarely backwards at letting you know if they find material difficult. In
fact, although this book may not be as unputdownable as the latest Roddy
Doyle, say, it is very clearly written and the detailed technical material is
easy to follow.
"This new, much-revised and expanded edition [...] is an impressive testimony
to the state of the art today."
From the back cover..
"This second edition of the bestselling text on open distributed systems is
comprehensively updated and expanded to reflect recent advances in the field.
The approach is based on a uniform view of resources in distributed systems
using client-server and group communication models. Design approaches
emphasise openness, scalability, transparency, reliability and security.
Page maintained by:
George.Coulouris@dcs.qmw.ac.uk
Last updated: March 2000