Product Cover Image

Distributed Systems: Principles and Paradigms, CourseSmart eTextbook, 2nd Edition

By Andrew S. Tanenbaum, Maarten Van Steen

Published by Prentice Hall

Published Date: Dec 6, 2006

More Product Info

Description

For courses on Distributed Systems, Distributed Operating Systems, and Advanced Operating Systems focusing on distributed systems, found in departments of Computer Science, Computer Engineering and Electrical Engineering.

 

Very few textbooks today explore distributed systems in a manner appropriate for university students. In this unique text, esteemed authors Tanenbaum and van Steen provide full coverage of the field in a systematic way that can be readily used for teaching. No other text examines the underlying principles – and their applications to a wide variety of practical distributed systems – with this level of depth and clarity.

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

Purchase Info ?

With CourseSmart eTextbooks and eResources, you save up to 60% off the price of new print textbooks, and can switch between studying online or offline to suit your needs.

Once you have purchased your eTextbooks and added them to your CourseSmart bookshelf, you can access them anytime, anywhere.

Buy Access

Distributed Systems: Principles and Paradigms, CourseSmart eTextbook, 2nd Edition
Format: Safari Book

$70.99 | ISBN-13: 978-0-13-613024-6