Distributed Systems: Concepts and Design / Edition 5

Distributed Systems: Concepts and Design / Edition 5

ISBN-10:
0132143011
ISBN-13:
9780132143011
Pub. Date:
04/27/2011
Publisher:
Pearson Education
ISBN-10:
0132143011
ISBN-13:
9780132143011
Pub. Date:
04/27/2011
Publisher:
Pearson Education
Distributed Systems: Concepts and Design / Edition 5

Distributed Systems: Concepts and Design / Edition 5

$233.32
Current price is , Original price is $233.32. You
$233.32 
  • SHIP THIS ITEM
    Qualifies for Free Shipping
  • PICK UP IN STORE
    Check Availability at Nearby Stores
$88.06 
  • SHIP THIS ITEM

    Temporarily Out of Stock Online

    Please check back later for updated availability.

    • Condition: Good
    Note: Access code and/or supplemental material are not guaranteed to be included with used textbook.

Overview

Broad and up-to-date coverage of the principles and practice in the fast moving area of Distributed Systems.

Distributed Systems provides students of computer science and engineering with the skills they will need to design and maintain software for distributed applications. It will also be invaluable to software engineers and systems designers wishing to understand new and future developments in the field.

From mobile phones to the Internet, our lives depend increasingly on distributed systems linking computers and other devices together in a seamless and transparent way. The fifth edition of this best-selling text continues to provide a comprehensive source of material on the principles and practice of distributed computer systems and the exciting new developments based on them, using a wealth of modern case studies to illustrate their design and development. The depth of coverage will enable readers to evaluate existing distributed systems and design new ones.


Product Details

ISBN-13: 9780132143011
Publisher: Pearson Education
Publication date: 04/27/2011
Edition description: New Edition
Pages: 1080
Product dimensions: 7.80(w) x 9.45(h) x 1.75(d)

About the Author

George Coulouris is a Senior Visiting Fellow in the Computer Laboratory at the University of Cambridge. Jean Dollimore was, until her retirement, Senior Lecturer in computer science at Queen Mary College, University of London. Tim Kindberg is a Senior Researcher at Hewlett-Packard Laboratories in Bristol. Gordon Blair is a Professor in the Lancaster University Computing Department.

Read an Excerpt

Preface:

The second edition of our textbook appears almost six years after publication of the first edition. In the interval distributed systems have become a major topic in computer science teaching and research, and their development and use has become a key activity in many companies.

This edition constitutes a comprehensive revision and expansion of the book, bringing it up-to-date and encompassing a wider range of topics. There is now a substantial body of knowledge on the sound design and construction of general -purpose distributed systems and their applications. The development of the field has been so rapid that it has necessitated a major re-write. Virtually every chapter has been re-written and with the help of an extra author seven chapters have been added, to produce a book almost twice the size of the previous edition.

Like the first edition, this book is intended to provide knowledge of the principles and practice of distributed system design. We have set out to convey this knowledge in sufficient depth to allow readers to evaluate existing systems and design new ones. We have retained the approach of the first edition, using case studies to illustrate the design concepts related to each major topic.

The book reflects the openness of distributed systems, which are largely constructed from open services built around a standard communication framework. In the first chapter we introduce distributed systems through a set of simple exemplars and a discussion of the basic underlying concepts. We identify design issues and motivate the study of their solutions in the second chapter. In the following pair of chapters wedescribe remote procedure calling and multicast communication between groups of processes, the most important communication methods needed for open systems. We then build upon these foundations a thorough and, as far as possible, orthogonal coverage of each of the sub-fields of distributed computing, from kernel facilities to open services such as file management, naming and clock synchronization. We include transactional services for shared data, and advanced operating system services such as distributed shared memory. In addition, we cover techniques for enhancing services, including security and replication.

Purposes and readership

The book is intended as a text for undergraduate and postgraduate study. It can equally be used for self-study. We assume that readers have a knowledge of programming and elementary computer architecture, together with a familiarity with basic operating system concepts. We cover the field with sufficient depth and breadth to enable readers to tackle most non-theoretical research papers in distributed systems.

Programs are written either in Modula-2 or, where more appropriate in the light of actual implementations, ANSI C. Only a small and self-explanatory subset of each language is used. The reader need not be familiar with networks, since the book provides sufficient coverage of the most important aspects of networking relevant to distributed systems, including local area network technology and internetworks.

How to use the book

The following diagram is intended to provide a guide to the book's structure, indicating navigation routes for teachers wishing to provide, or readers wishing to achieve, an understanding in various subfields of distributed system design. The diagram is organized under seven main topic areas that group chapters or subsections of chapters:

(In this ASCII version, the diagram is linearized. The actual diagram indicates that a study of the Foundations group of chapters can be immediately followed by any of the other groups shown below).

Foundations:
1: Characterization of DS
2: Design Goals
3: Networking and Internetworking
4: Interprocess Communication
5: Remote Procedure Calling
Distributed Operating Systems:
6*: Distributed Operating Systems
10*: Time and Coordination (10.3-4)
17*: Distributed Shared Memory
18*: DOS: Case Studies
File Services:
7: File Service: a Model
8: File Service: Case Studies
Highly Available Services:
10*: Logical Time (10.2)
11*: Replication
15*: Fault Tolerance (15.3-4)
Shared Data:
12: Shared Data and Transactions
13: Concurrency Control
14: Distributed Transactions
15: Recovery (15.1-2)
Security:
16*: Security
Name Services:
9*: Name Services

The chapters that are new or have been substantially re-written since the first edition are indicated by asterisks in the diagram. In addition, nearly all the case studies have been replaced by a wider range of more up-to-date systems.

Undergraduate and postgraduate courses may be based on one or more of the topic areas shown in the diagram. At Queen Mary and Westfield College, we use the material in this book for an undergraduate course taken in the second or third year, which has as a prerequisite an introductory course on concurrency and basic computer resource management in operating systems. We also use a larger part of the book for a one-year course at masters level, in which students apply their knowledge in a substantial practical project. We use the material as follows:

Undergraduate teaching: (25 hours lectures)
Foundations: Chapters 1, 2 and parts of 5.
File services: Chapter 7 and Sun NFS case study from Chapter 8.
Distributed operating systems: parts of Chapter 6 and 10 and a case study from Chapter 18 (e.g. Mach).
Shared data: Chapter 12 and Section 13.1(on locking).
Postgraduate teaching: We give courses on distributed operating systems and on distributed data, preceded by a foundation course, all taught in seminar style.

Foundations (20 hours):
A thorough study of all the material in Chapters 1-5.

Distributed Operating Systems (30 hours):
DOS principles: Chapters 6 and 10; case studies from Chapter 18 (e.g. Mach, UNIX Emulation and Clouds); Chapters 9, 11, 16 and 17, covering name services, replication, security and distributed shared memory.

Distributed Data and Algorithms (30 hours):
File services: Chapter 7 and case studies on Sun NFS, Andrew File System and Coda from Chapter 8; shared data and transactions: Chapters 12-15.
The book supports the seminar style of teaching with extensive illustrations and exercises designed for class discussion. In our courses, students are asked to prepare and present short discussions based around their solutions to selected exercises. Page numbers appended to the exercises refer the reader to the context in which they are set.

Individual study:
Readers who have studied Chapters 1 and 2 should be able to pursue individual study in a several ways. For example, they could then proceed to study any of the following topics:
Internetworking: Read Chapter 3.
File services: Read Chapter 7 followed by an appropriate case study from Chapter 8, using Chapters 4 and 5 as reference material.
Mach, Chorus or Amoeba: Read the relevant case study from Chapter 18, using Chapters 4- 6 as reference material.
Name services: Read Chapter 9, using Chapter 5 as reference material. Security: Read Chapter 16.

Support for Instructors and Readers

Instructor's guide: An instructor's guide, giving solutions to selected exercises, viewgraph transparency masters and other teaching material will be available in late 1994. Some parts of the instructors' guide are available for anonymous FTP, the details can be found below.

Network support: Two network mailing lists and an Internet FTP service are available for readers to use. You can mail the authors by addressing messages to DSBookAuthors@qmw.ac.uk.

DSBookReaders is an open subscription list. You should subscribe to it if you want to be informed about errata, updates and additional material available for FTP. Readers can also use the DSBookReaders list to communicate with other readers. To subscribe to the DSBookReaders list send a message to:

listserv@qmw.ac.uk
containing the line:
subscribe DSBookReaders (your name).

For further information about using the list, send a message to listserv@qmw.ac.uk with a body containing the word help.

We have also established an anonymous FTP directory to enable readers with Internet access to obtain errata, updates and additional material. The details needed to access our FTP directory are below. host: ftp.dcs.qmw.ac.uk (currently at IP number: 192.135.231.4)
name: anonymous
password: (your email address)
directory: distrib/dsbook

Acknowledgements

We are grateful to several classes of students studying for the MSc in Distributed and Parallel Systems at Queen Mary and Westfield College who have studied from earlier drafts of this edition of the book. Their efforts to present the material in seminar classes have helped us to produce what is, we hope, a useful textbook.

We are particularly grateful to Jean Bacon, who has reviewed both editions of the book with great energy and provided us many constructive comments and suggestions. We are also grateful to her for kind permission to include Figures 1.3 and 9.14.

We sho all of whom gave us input or feedback and comments on specific parts of the book: Ken Birman, Richard Bornat, Flaviu Cristian, Kurt Jensen, Daniel Julin, Steve Kille, Roger Needham, David Pick, David Mosberger, Harry Porter, Stephen Sedley, David Steer.

Finally, we should like to thank Simon Plumtree of Addison-Wesley, the anonymous reviewers, and the cohort of teachers using the first edition of the book who provided us with their comments through Addison-Wesley's survey.

George Coulouris
Jean Dollimore
Tim Kindberg,
London

Table of Contents

Foundations
1 Characterization of DS
2 System Models
3 Networking and Internetworking
4 Interprocess Communication
5 Remote Invocation
6 Indirect Communication
7 Operating System Support

Middleware
8 Dist. Objects and Components
9 Web Services
10Peer-to-Peer Systems

System services
11 Security
12 Distributed File Systems
13 Name Services

Distributed algorithms
14 Time and Global States
15 Coordination and Agreement

Shared data
16 Transactions and Concurrency Control
17 Distributed Transactions
18 Replication

New challenges
19 Mobile and Ubiquitous Computing
20 Distributed Multimedia Systems

Substantial Case Study

21 Designing Distributed Systems: Google Case Study

Preface

Preface:

The second edition of our textbook appears almost six years after publication of the first edition. In the interval distributed systems have become a major topic in computer science teaching and research, and their development and use has become a key activity in many companies.

This edition constitutes a comprehensive revision and expansion of the book, bringing it up-to-date and encompassing a wider range of topics. There is now a substantial body of knowledge on the sound design and construction of general -purpose distributed systems and their applications. The development of the field has been so rapid that it has necessitated a major re-write. Virtually every chapter has been re-written and with the help of an extra author seven chapters have been added, to produce a book almost twice the size of the previous edition.

Like the first edition, this book is intended to provide knowledge of the principles and practice of distributed system design. We have set out to convey this knowledge in sufficient depth to allow readers to evaluate existing systems and design new ones. We have retained the approach of the first edition, using case studies to illustrate the design concepts related to each major topic.

The book reflects the openness of distributed systems, which are largely constructed from open services built around a standard communication framework. In the first chapter we introduce distributed systems through a set of simple exemplars and a discussion of the basic underlying concepts. We identify design issues and motivate the study of their solutions in the second chapter. In the following pair of chapterswedescribe remote procedure calling and multicast communication between groups of processes, the most important communication methods needed for open systems. We then build upon these foundations a thorough and, as far as possible, orthogonal coverage of each of the sub-fields of distributed computing, from kernel facilities to open services such as file management, naming and clock synchronization. We include transactional services for shared data, and advanced operating system services such as distributed shared memory. In addition, we cover techniques for enhancing services, including security and replication.

Purposes and readership

The book is intended as a text for undergraduate and postgraduate study. It can equally be used for self-study. We assume that readers have a knowledge of programming and elementary computer architecture, together with a familiarity with basic operating system concepts. We cover the field with sufficient depth and breadth to enable readers to tackle most non-theoretical research papers in distributed systems.

Programs are written either in Modula-2 or, where more appropriate in the light of actual implementations, ANSI C. Only a small and self-explanatory subset of each language is used. The reader need not be familiar with networks, since the book provides sufficient coverage of the most important aspects of networking relevant to distributed systems, including local area network technology and internetworks.

How to use the book

The following diagram is intended to provide a guide to the book's structure, indicating navigation routes for teachers wishing to provide, or readers wishing to achieve, an understanding in various subfields of distributed system design. The diagram is organized under seven main topic areas that group chapters or subsections of chapters:

(In this ASCII version, the diagram is linearized. The actual diagram indicates that a study of the Foundations group of chapters can be immediately followed by any of the other groups shown below).

Foundations:
1: Characterization of DS
2: Design Goals
3: Networking and Internetworking
4: Interprocess Communication
5: Remote Procedure Calling
Distributed Operating Systems:
6*: Distributed Operating Systems
10*: Time and Coordination (10.3-4)
17*: Distributed Shared Memory
18*: DOS: Case Studies
File Services:
7: File Service: a Model
8: File Service: Case Studies
Highly Available Services:
10*: Logical Time (10.2)
11*: Replication
15*: Fault Tolerance (15.3-4)
Shared Data:
12: Shared Data and Transactions
13: Concurrency Control
14: Distributed Transactions
15: Recovery (15.1-2)
Security:
16*: Security
Name Services:
9*: Name Services

The chapters that are new or have been substantially re-written since the first edition are indicated by asterisks in the diagram. In addition, nearly all the case studies have been replaced by a wider range of more up-to-date systems.

Undergraduate and postgraduate courses may be based on one or more of the topic areas shown in the diagram. At Queen Mary and Westfield College, we use the material in this book for an undergraduate course taken in the second or third year, which has as a prerequisite an introductory course on concurrency and basic computer resource management in operating systems. We also use a larger part of the book for a one-year course at masters level, in which students apply their knowledge in a substantial practical project. We use the material as follows:

Undergraduate teaching: (25 hours lectures)
Foundations: Chapters 1, 2 and parts of 5.
File services: Chapter 7 and Sun NFS case study from Chapter 8.
Distributed operating systems: parts of Chapter 6 and 10 and a case study from Chapter 18 (e.g. Mach).
Shared data: Chapter 12 and Section 13.1(on locking).
Postgraduate teaching: We give courses on distributed operating systems and on distributed data, preceded by a foundation course, all taught in seminar style.

Foundations (20 hours):
A thorough study of all the material in Chapters 1-5.

Distributed Operating Systems (30 hours):
DOS principles: Chapters 6 and 10; case studies from Chapter 18 (e.g. Mach, UNIX Emulation and Clouds); Chapters 9, 11, 16 and 17, covering name services, replication, security and distributed shared memory.

Distributed Data and Algorithms (30 hours):
File services: Chapter 7 and case studies on Sun NFS, Andrew File System and Coda from Chapter 8; shared data and transactions: Chapters 12-15.
The book supports the seminar style of teaching with extensive illustrations and exercises designed for class discussion. In our courses, students are asked to prepare and present short discussions based around their solutions to selected exercises. Page numbers appended to the exercises refer the reader to the context in which they are set.

Individual study:
Readers who have studied Chapters 1 and 2 should be able to pursue individual study in a several ways. For example, they could then proceed to study any of the following topics:
Internetworking: Read Chapter 3.
File services: Read Chapter 7 followed by an appropriate case study from Chapter 8, using Chapters 4 and 5 as reference material.
Mach, Chorus or Amoeba: Read the relevant case study from Chapter 18, using Chapters 4- 6 as reference material.
Name services: Read Chapter 9, using Chapter 5 as reference material. Security: Read Chapter 16.

Support for Instructors and Readers

Instructor's guide: An instructor's guide, giving solutions to selected exercises, viewgraph transparency masters and other teaching material will be available in late 1994. Some parts of the instructors' guide are available for anonymous FTP, the details can be found below.

Network support: Two network mailing lists and an Internet FTP service are available for readers to use. You can mail the authors by addressing messages to DSBookAuthors@qmw.ac.uk.

DSBookReaders is an open subscription list. You should subscribe to it if you want to be informed about errata, updates and additional material available for FTP. Readers can also use the DSBookReaders list to communicate with other readers. To subscribe to the DSBookReaders list send a message to:

listserv@qmw.ac.uk
containing the line:
subscribe DSBookReaders (your name).

For further information about using the list, send a message to listserv@qmw.ac.uk with a body containing the word help.

We have also established an anonymous FTP directory to enable readers with Internet access to obtain errata, updates and additional material. The details needed to access our FTP directory are below. host: ftp.dcs.qmw.ac.uk (currently at IP number: 192.135.231.4)
name: anonymous
password: (your email address)
directory: distrib/dsbook

Acknowledgements

We are grateful to several classes of students studying for the MSc in Distributed and Parallel Systems at Queen Mary and Westfield College who have studied from earlier drafts of this edition of the book. Their efforts to present the material in seminar classes have helped us to produce what is, we hope, a useful textbook.

We are particularly grateful to Jean Bacon, who has reviewed both editions of the book with great energy and provided us many constructive comments and suggestions. We are also grateful to her for kind permission to include Figures 1.3 and 9.14.

We sho all of whom gave us input or feedback and comments on specific parts of the book: Ken Birman, Richard Bornat, Flaviu Cristian, Kurt Jensen, Daniel Julin, Steve Kille, Roger Needham, David Pick, David Mosberger, Harry Porter, Stephen Sedley, David Steer.

Finally, we should like to thank Simon Plumtree of Addison-Wesley, the anonymous reviewers, and the cohort of teachers using the first edition of the book who provided us with their comments through Addison-Wesley's survey.

George Coulouris
Jean Dollimore
Tim Kindberg,
London

From the B&N Reads Blog

Customer Reviews