Home > Store > Networking

Distributed Systems: Principles and Paradigms, 2nd Edition

Register your product to gain access to bonus material or receive a coupon.

Distributed Systems: Principles and Paradigms, 2nd Edition

Book

  • Sorry, this book is no longer in print.
Not for Sale

About

Features

• First part of the book dedicates one chapter to each of seven key principles of all distributed systems: communication, processes, naming, synchronization, consistency and replication, fault tolerance, and security.

– Gives students an understanding of the key principles, paradigms, and models on which all distributed systems are based.

• Second part of the book devoted to real-world distributed case studies:

– Includes examples of object-based, document-based, file-based, and coordination-based systems including Corba, DCOM, Globe, NFS v4, Coda, WWW, and Jini.

–    Because Part II is organized along the same seven key principles that are discussed in the first part, students not only learn how state-of-the-art real-world systems and middleware work, but are also able to compare the different systems easily.

Numerous end-of-chapter exercises – Explain how the various principles of distributed systems work in practice.

“Big picture” concepts and many technical details:

–    Presented in the clear, entertaining style unique to Tanenbaum and van Steen.

–    Helps students learn the foundation of distributed operating systems and how things work in the real world.

Excellent coverage of timely, advanced distributed systems topics – Examines security, payment systems, recent Internet and Web protocols, scalability, and caching and replication.

Description

  • Copyright 2007
  • Dimensions: 7" x 9-1/4"
  • Pages: 704
  • Edition: 2nd
  • Book
  • ISBN-10: 0-13-239227-5
  • ISBN-13: 978-0-13-239227-3

Virtually every computing system today is part of a distributed system. Programmers, developers, and engineers need to understand the underlying principles and paradigms as well as the real-world application of those principles. Now, internationally renowned expert Andrew S. Tanenbaum – with colleague Martin van Steen – presents a complete introduction that identifies the seven key principles of distributed systems, with extensive examples of each. KEY TOPICS: Adds a completely new chapter on architecture to address the principle of organizing distributed systems. Provides extensive new material on peer-to-peer systems, grid computing and Web services, virtualization, and application-level multicasting. Updates material on clock synchronization, data-centric consistency, object-based distributed systems, and file systems and Web systems coordination. MARKET: For all developers, software engineers, and architects who need an in-depth understanding of distributed systems.

Sample Content

Table of Contents

CONTENTS

1 INTRODUCTION

1.1 DEFINITION OF A DISTRIBUTED SYSTEM

1.2 GOALS

1.2.1 Making Resources Accessible

1.2.2 Distribution Transparency

1.2.3 Openness

1.2.4 Scalability

1.2.5 Pitfalls

1.3 TYPES OF DISTRIBUTED SYSTEMS

1.3.1 Distributed Computing Systems

1.3.2 Distributed Information Systems

1.3.3 Distributed Pervasive Systems

1.4 SUMMARY

2 ARCHITECTURES

2.1 ARCHITECTURAL STYLES

2.2 SYSTEM ARCHITECTURES

2.2.1 Centralized Architectures

2.2.2 Decentralized Architectures

2.2.3 Hybrid Architectures

2.3 ARCHITECTURES VERSUS MIDDLEWARE

2.3.1 Interceptors

2.3.2 General Approaches to Adaptive Software

2.3.3 Discussion

2.4 SELF-MANAGEMENT IN DISTRIBUTED SYSTEMS

2.4.1 The Feedback Control Model

2.4.2 Example: Systems Monitoring with Astrolabe

2.4.3 Example: Differentiating Replication Strategies in Globule

2.4.4 Example: Automatic Component Repair Management in Jade

2.5 SUMMARY

3 PROCESSES

3.1 THREADS

3.1.1 Introduction to Threads

3.1.2 Threads in Distributed Systems

3.2 VIRTUALIZATION

3.2.1 The Role of Virtualization in Distributed Systems

3.2.2 Architectures of Virtual Machines

3.3 CLIENTS

3.3.1 Networked User Interfaces

3.3.2 Client-Side Software for Distribution Transparency

3.4 SERVERS

3.4.1 General Design Issues

3.4.2 Server Clusters

3.4.3 Managing Server Clusters

3.5 CODE MIGRATION

3.5.1 Approaches to Code Migration

3.5.2 Migration and Local Resources

3.5.3 Migration in Heterogeneous Systems

3.6 SUMMARY

4 COMMUNICATION

4.1 FUNDAMENTALS

4.1.1 Layered Protocols

4.1.2 Types of Communication

4.2 REMOTE PROCEDURE CALL

4.2.1 Basic RPC Operation

4.2.2 Parameter Passing

4.2.3 Asynchronous RPC

4.2.4 Example: DCE RPC

4.3 MESSAGE-ORIENTED COMMUNICATION

4.3.1 Message-Oriented Transient Communication

4.3.2 Message-Oriented Persistent Communication

4.3.3 Example: IBM’s WebSphere Message-Queuing System

4.4 STREAM-ORIENTED COMMUNICATION

4.4.1 Support for Continuous Media

4.4.2 Streams and Quality of Service

4.4.3 Stream Synchronization

4.5 MULTICAST COMMUNICATION

4.5.1 Application-Level Multicasting

4.5.2 Gossip-Based Data Dissemination

4.6 SUMMARY

5 NAMING

5.1 NAMES, IDENTIFIERS, AND ADDRESSES

5.2 FLAT NAMING

5.2.1 Simple Solutions

5.2.2 Home-Based Approaches

5.2.3 Distributed Hash Tables

5.2.4 Hierarchical Approaches

5.3 STRUCTURED NAMING

5.3.1 Name Spaces

5.3.2 Name Resolution

5.3.3 The Implementation of a Name Space

5.3.4 Example: The Domain Name System

5.4 ATTRIBUTE-BASED NAMING

5.4.1 Directory Services

5.4.2 Hierarchical Implementations: LDAP

5.4.3 Decentralized Implementations

5.5 SUMMARY

 

6 SYNCHRONIZATION

6.1 CLOCK SYNCHRONIZATION

6.1.1 Physical Clocks

6.1.2 Global Positioning System

6.1.3 Clock Synchronization Algorithms

6.2 LOGICAL CLOCKS

6.2.1 Lamport’s Logical Clocks

6.2.2 Vector Clocks

6.3 MUTUAL EXCLUSION

6.3.1 Overview

6.3.2 A Centralized Algorithm

6.3.3 A Decentralized Algorithm

6.3.4 A Distributed Algorithm

6.3.5 A Token Ring Algorithm

6.3.6 A Comparison of the Four Algorithms

6.4 GLOBAL POSITIONING OF NODES

6.5 ELECTION ALGORITHMS

6.5.1 Traditional Election Algorithms

6.5.2 Elections in Wireless Environments

6.5.3 Elections in Large-Scale Systems

6.6 SUMMARY

7 CONSISTENCY AND REPLICATION

7.1 INTRODUCTION

7.1.1 Reasons for Replication

7.1.2 Replication as Scaling Technique

7.2 DATA-CENTRIC CONSISTENCY MODELS

7.2.1 Continuous Consistency

7.2.2 Consistent Ordering of Operations

7.3 CLIENT-CENTRIC CONSISTENCY MODELS

7.3.1 Eventual Consistency

7.3.2 Monotonic Reads

7.3.3 Monotonic Writes

7.3.4 Read Your Writes

7.3.5 Writes Follow Reads

7.4 REPLICA MANAGEMENT

7.4.1 Replica-Server Placement

7.4.2 Content Replication and Placement

7.4.3 Content Distribution

7.5 CONSISTENCY PROTOCOLS

7.5.1 Continuous Consistency

7.5.2 Primary-Based Protocols

7.5.3 Replicated-Write Protocols

7.5.4 Cache-Coherence Protocols

7.5.5 Implementing Client-Centric Consistency

7.6 SUMMARY

8 FAULT TOLERANCE

8.1 INTRODUCTION TO FAULT TOLERANCE

8.1.1 Basic Concepts

8.1.2 Failure Models

8.1.3 Failure Masking by Redundancy

8.2 PROCESS RESILIENCE

8.2.1 Design Issues

8.2.2 Failure Masking and Replication

8.2.3 Agreement in Faulty Systems

8.2.4 Failure Detection

8.3 RELIABLE CLIENT-SERVER COMMUNICATION

8.3.1 Point-to-Point Communication

8.3.2 RPC Semantics in the Presence of Failures

8.4 RELIABLE GROUP COMMUNICATION

8.4.1 Basic Reliable-Multicasting Schemes

8.4.2 Scalability in Reliable Multicasting

8.4.3 Atomic Multicast

8.5 DISTRIBUTED COMMIT

8.5.1 Two-Phase Commit

8.5.2 Three-Phase Commit

8.6 RECOVERY

8.6.1 Introduction

8.6.2 Checkpointing

8.6.3 Message Logging

8.6.4 Recovery-Oriented Computing

8.7 SUMMARY

9 SECURITY

9.1 INTRODUCTION TO SECURITY

9.1.1 Security Threats, Policies, and Mechanisms

9.1.2 Design Issues

9.1.3 Cryptography

9.2 SECURE CHANNELS

9.2.1 Authentication

9.2.2 Message Integrity and Confidentiality

9.2.3 Secure Group Communication

9.2.4 Example: Kerberos

9.3 ACCESS CONTROL

9.3.1 General Issues in Access Control

9.3.2 Firewalls

9.3.3 Secure Mobile Code

9.3.4 Denial of Service

9.4 SECURITY MANAGEMENT

9.4.1 Key Management

9.4.2 Secure Group Management

9.4.3 Authorization Management

9.5 SUMMARY

10 DISTRIBUTED OBJECT-BASED SYSTEMS

10.1 ARCHITECTURE

10.1.1 Distributed Objects

10.1.2 Example: Enterprise Java Beans

10.1.3 Example: Globe Distributed Shared Objects

10.2 PROCESSES

10.2.1 Object Servers

10.2.2 Example: The Ice Runtime System

10.3 COMMUNICATION

10.3.1 Binding a Client to an Object

10.3.2 Static versus Dynamic Remote Method Invocations

10.3.3 Parameter Passing

10.3.4 Example: Java RMI

10.3.5 Object-Based Messaging

10.4 NAMING

10.4.1 CORBA Object References

10.4.2 Globe Object References

10.5 SYNCHRONIZATION

10.6 CONSISTENCY AND REPLICATION

10.6.1 Entry Consistency

10.6.2 Replicated Invocations

10.7 FAULT TOLERANCE

10.7.1 Example: Fault-Tolerant CORBA

10.7.2 Example: Fault-Tolerant Java

10.8 SECURITY

10.8.1 Example: Globe

10.8.2 Security for Remote Objects

10.9 SUMMARY

11 DISTRIBUTED FILE SYSTEMS

11.1 ARCHITECTURE

11.1.1 Client-Server Architectures

11.1.2 Cluster-Based Distributed File Systems

11.1.3 Symmetric Architectures

11.2 PROCESSES

11.3 COMMUNICATION

11.3.1 RPCs in NFS

11.3.2 The RPC2 Subsystem

11.3.3 File-Oriented Communication in Plan 9

11.4 NAMING

11.4.1 Naming in NFS

11.4.2 Constructing a Global Name Space

11.5 SYNCHRONIZATION

11.5.1 Semantics of File Sharing

11.5.2 File Locking

11.5.3 Sharing Files in Coda

11.6 CONSISTENCY AND REPLICATION

11.6.1 Client-Side Caching

11.6.2 Server-Side Replication

11.6.3 Replication in Peer-to-Peer File Systems

11.6.4 File Replication in Grid Systems

11.7 FAULT TOLERANCE

11.7.1 Handling Byzantine Failures

11.7.2 High Availability in Peer-to-Peer Systems

11.8 SECURITY

11.8.1 Security in NFS

11.8.2 Decentralized Authentication

11.8.3 Secure Peer-to-Peer File-Sharing Systems

11.9 SUMMARY

12 DISTRIBUTED WEB-BASED SYSTEMS

12.1 ARCHITECTURE

12.1.1 Traditional Web-Based Systems

12.1.2 Web Services

12.2 PROCESSES

12.2.1 Clients

12.2.2 The Apache Web Server

12.2.3 Web Server Clusters

12.3 COMMUNICATION

12.3.1 Hypertext Transfer Protocol

12.3.2 Simple Object Access Protocol

12.4 NAMING

12.5 SYNCHRONIZATION

12.6 CONSISTENCY AND REPLICATION

12.6.1 Web Proxy Caching

12.6.2 Replication for Web Hosting Systems

12.6.3 Replication of Web Applications

12.7 FAULT TOLERANCE

12.8 SECURITY

12.9 SUMMARY

13 DISTRIBUTED COORDINATION-BASED

SYSTEMS

13.1 INTRODUCTION TO COORDINATION MODELS

13.2 ARCHITECTURES

13.2.1 Overall Approach

13.2.2 Traditional Architectures

13.2.3 Peer-to-Peer Architectures

13.2.4 Mobility and Coordination

13.3 PROCESSES

13.4 COMMUNICATION

13.4.1 Content-Based Routing

13.4.2 Supporting Composite Subscriptions

13.5 NAMING

13.5.1 Describing Composite Events

13.5.2 Matching Events and Subscriptions

13.6 SYNCHRONIZATION

13.7 CONSISTENCY AND REPLICATION

13.7.1 Static Approaches

13.7.2 Dynamic Replication

13.8 FAULT TOLERANCE

13.8.1 Reliable Publish-Subscribe Communication

13.8.2 Fault Tolerance in Shared Dataspaces

13.9 SECURITY

13.9.1 Confidentiality

13.9.2 Secure Shared Dataspaces

13.10 SUMMARY

 

14 SUGGESTIONS FOR FURTHER READING

AND BIBLIOGRAPHY

14.1 SUGGESTIONS FOR FURTHER READING

14.1.1 Introduction and General Works

14.1.2 Architectures

14.1.3 Processes

14.1.4 Communication

14.1.5 Naming

14.1.6 Synchronization

14.1.7 Consistency and Replication

14.1.8 Fault Tolerance

14.1.9 Security

14.1.10 Distributed Object-Based Systems

14.1.11 Distributed File Systems

14.1.12 Distributed Web-Based Systems

14.1.13 Distributed Coordination-Based Systems

14,2 ALPHABETICAL BIBLIOGRAPHY

INDEX

Updates

Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership