XIV PREFACE
only on the Web. They can be looked up in the reference list at the end of the book, but
the full URLs are given only in an online version of the reference list at the book’s web
site, www.cdk5.net/refs
where they take the form of clickable links. Both versions of the
reference list include a more detailed explanation of this scheme.
Changes relative to the fourth edition
Before embarking on the writing of this new edition, we carried out a survey of teachers
who used the fourth edition. From the results, we identified the new material required
and a number of changes to be made. In addition, we recognized the increasing diversity
of distributed systems, particularly in terms of the range of architectural approaches
available to distributed systems developers today. This required significant changes to
the book, especially in the earlier (foundational) chapters.
Overall, this led to our writing three entirely new chapters, making substantial
changes to a number of other chapters and making numerous insertions throughout the
book to fold in new material. Many of the chapters have been changed to reflect new
information that has become available about the systems described. These changes are
summarized in the table below. To help teachers who have used the fourth edition,
wherever possible we have preserved the structure adopted from the previous edition.
Where material has been removed, we have placed this on our companion web site
together with material removed from previous editions. This includes the case studies
on ATM, interprocess communication in UNIX, CORBA (a shortened version of which
remains in Chapter 8), the Jini distributed events specification and Grid middleware
(featuring OGSA and the Globus toolkit), as well as the chapter on distributed shared
memory (a brief summary of which is now included in Chapter 6).
Some of the chapters in the book, such as the new chapter on indirect
communication (Chapter 6), cover a lot of material. Teachers may elect to cover the
broad spectrum before choosing two or three techniques to examine in more detail (for
example, group communication, given its foundational role, and publish-subscribe or
message queues, given their prevalence in commercial distributed systems).
The chapter ordering has been changed to accommodate the new material and to
reflect changes in the relative importance of certain topics. For a full understanding of
some topics readers may find it necessary to follow a forward reference. For example,
there is material in Chapter 9 on XML security techniques that will make better sense
once the sections that it references in Chapter 11 Security have been absorbed.
Acknowledgements
We are very grateful to the following teachers who participated in our survey: Guohong
Cao, Jose Fortes, Bahram Khalili, George Blank, Jinsong Ouyang, JoAnne Holliday,
George K. Thiruvathukal, Joel Wein, Tao Xie and Xiaobo Zhou.
We would like to thank the following people who reviewed the new chapters or
provided other substantial help: Rob Allen, Roberto Baldoni, John Bates, Tom Berson,
Lynne Blair, Geoff Coulson, Paul Grace, Andrew Herbert, David Hutchison, Laurent
Mathy, Rajiv Ramdhany, Richard Sharp, Jean-Bernard Stefani, Rip Sohan, Francois