Distributed systems : principles and paradigms
Author(s)
Bibliographic Information
Distributed systems : principles and paradigms
Pearson Prentice Hall, c2007
2nd ed
- : pbk (International ed)
Available at 25 libraries
  Aomori
  Iwate
  Miyagi
  Akita
  Yamagata
  Fukushima
  Ibaraki
  Tochigi
  Gunma
  Saitama
  Chiba
  Tokyo
  Kanagawa
  Niigata
  Toyama
  Ishikawa
  Fukui
  Yamanashi
  Nagano
  Gifu
  Shizuoka
  Aichi
  Mie
  Shiga
  Kyoto
  Osaka
  Hyogo
  Nara
  Wakayama
  Tottori
  Shimane
  Okayama
  Hiroshima
  Yamaguchi
  Tokushima
  Kagawa
  Ehime
  Kochi
  Fukuoka
  Saga
  Nagasaki
  Kumamoto
  Oita
  Miyazaki
  Kagoshima
  Okinawa
  Korea
  China
  Thailand
  United Kingdom
  Germany
  Switzerland
  France
  Belgium
  Netherlands
  Sweden
  Norway
  United States of America
Note
Includes bibliographical reference (p. 623-668) and index
Description and Table of Contents
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
by "Nielsen BookData"