Distributed Systems

Höfundur Sukumar Ghosh

Útgefandi Taylor & Francis

Snið ePub

Print ISBN 9780367659127

Útgáfa 2

Útgáfuár 2015

6.690 kr.

Description

Efnisyfirlit

  • Preface
  • Acknowledgments
  • Author
  • Section I – Background Materials
  • Chapter 1 – Introduction
  • 1.1 What Is a Distributed System?
  • 1.2 Why Distributed Systems
  • 1.3 Examples of Distributed Systems
  • 1.4 Important Issues in Distributed Systems
  • 1.5 Common Subproblems
  • 1.6 Implementing a Distributed System
  • 1.7 Parallel versus Distributed Systems
  • 1.8 Bibliographic Notes
  • Exercises
  • Chapter 2 – Interprocess Communication: An Overview
  • 2.1 Introduction
  • 2.1.1 Processes and Threads
  • 2.1.2 Client–Server Model
  • 2.1.3 Middleware
  • 2.2 Network Protocols
  • 2.2.1 Ethernet
  • 2.2.2 Wireless Networks
  • 2.2.3 OSI Model
  • 2.2.4 IP
  • 2.2.5 Transport Layer Protocols
  • 2.2.6 Interprocess Communication Using Sockets
  • 2.3 Naming
  • 2.3.1 Domain Name Service
  • 2.3.2 Naming Service for Mobile Clients
  • 2.4 Remote Procedure Call
  • 2.4.1 Implementing RPC
  • 2.4.2 Sun ONC/RPC
  • 2.5 Remote Method Invocation
  • 2.6 Messages
  • 2.6.1 Transient and Persistent Messages
  • 2.6.2 Streams
  • 2.7 Web Services
  • 2.8 Event Notification
  • 2.9 Virtualization: Cloud Computing
  • 2.9.1 Classification of Cloud Services
  • 2.9.2 MapReduce
  • 2.9.3 Hadoop
  • 2.10 Mobile Agents
  • 2.11 Basic Group Communication Services
  • 2.12 Concluding Remarks
  • 2.13 Bibliographic Notes
  • Exercises
  • Section II – Foundational Topics
  • Chapter 3 – Models for Communication
  • 3.1 Need for a Model
  • 3.2 Message-Passing Model for Interprocess Communication
  • 3.2.1 Process Actions
  • 3.2.2 Channels
  • 3.2.3 Synchronous versus Asynchronous Systems
  • 3.2.4 Real-Time Systems
  • 3.3 Shared Variables
  • 3.3.1 Linda
  • 3.4 Modeling Mobile Agents
  • 3.5 Relationship among Models
  • 3.5.1 Strong and Weak Models
  • 3.5.2 Implementing a FIFO Channel Using a Non-FIFO Channel
  • 3.5.3 Implementing Message Passing Using Shared Memory
  • 3.5.4 Implementing Shared Memory Using Message Passing
  • 3.5.5 Impossibility Result with Channels
  • 3.6 Classification Based on Special Properties
  • 3.6.1 Reactive versus Transformational Systems
  • 3.6.2 Named versus Anonymous Systems
  • 3.7 Complexity Measures
  • 3.8 Concluding Remarks
  • 3.9 Bibliographic Notes
  • Exercises
  • Chapter 4 – Representing Distributed Algorithms: Syntax and Semantics
  • 4.1 Introduction
  • 4.2 Guarded Actions
  • 4.3 Nondeterminism
  • 4.4 Atomic Operations
  • 4.5 Fairness
  • 4.6 Central versus Distributed Schedulers
  • 4.7 Concluding Remarks
  • 4.8 Bibliographic Notes
  • Exercises
  • Chapter 5 – Program Correctness
  • 5.1 Introduction
  • 5.2 Correctness Criteria
  • 5.2.1 Safety Properties
  • 5.2.2 Liveness Properties
  • 5.3 Correctness Proofs
  • 5.3.1 Quick Review of Propositional Logic
  • 5.3.2 Brief Overview of Predicate Logic
  • 5.4 Assertional Reasoning: Proving Safety Properties
  • 5.5 Proving Liveness Properties Using Well-Founded Sets
  • 5.6 Programming Logic
  • 5.7 Predicate Transformers
  • 5.8 Concluding Remarks
  • 5.9 Bibliographic Notes
  • Exercises
  • Chapter 6 – Time in a Distributed System
  • 6.1 Introduction
  • 6.1.1 Physical Time
  • 6.1.2 Sequential and Concurrent Events
  • 6.2 Logical Clocks
  • 6.3 Vector Clocks
  • 6.4 Physical Clock Synchronization
  • 6.4.1 Preliminary Definitions
  • 6.4.2 Clock Reading Error
  • 6.4.3 Algorithms for Internal Synchronization
  • 6.4.4 Algorithms for External Synchronization
  • 6.5 Concluding Remarks
  • 6.6 Bibliographic Notes
  • Exercises
  • Section III – Important Paradigms
  • Chapter 7 – Mutual Exclusion
  • 7.1 Introduction
  • 7.2 Solutions on Message-Passing Systems
  • 7.2.1 Lamport’s Solution
  • 7.2.2 Ricart–Agrawala’s Solution
  • 7.2.3 Maekawa’s Solution
  • 7.3 Token-Passing Algorithms
  • 7.3.1 Suzuki–Kasami Algorithm
  • 7.3.2 Raymond’s Algorithm
  • 7.4 Solutions on the Shared-Memory Model
  • 7.4.1 Peterson’s Algorithm
  • 7.5 Mutual Exclusion Using Special Instructions
  • 7.5.1 Solution Using Test-and-Set
  • 7.5.2 Solution Using Load-Linked and Store-Conditional
  • 7.6 Group Mutual Exclusion
  • 7.7 Concluding Remarks
  • 7.8 Bibliographic Notes
  • Exercises
  • Chapter 8 – Distributed Snapshot
  • 8.1 Introduction
  • 8.2 Properties of Consistent Snapshots
  • 8.2.1 Cuts and Consistent Cuts
  • 8.3 Chandy–Lamport Algorithm
  • 8.3.1 Two Examples
  • 8.3.1.1 Example 1: Counting of Tokens
  • 8.3.1.2 Example 2: Communicating State Machines
  • 8.4 Lai–Yang Algorithm
  • 8.5 Distributed Debugging
  • 8.5.1 Constructing the State Lattice
  • 8.5.2 Evaluating Predicates
  • 8.6 Concluding Remarks
  • 8.7 Bibliographic Notes
  • Exercises
  • Chapter 9 – Global State Collection
  • 9.1 Introduction
  • 9.2 Elementary Algorithm for All-to-All Broadcasting
  • 9.3 Termination-Detection Algorithms
  • 9.3.1 Dijkstra–Scholten Algorithm
  • 9.3.2 Termination Detection on a Unidirectional Ring
  • 9.3.3 Credit-Recovery Algorithm for Termination Detection
  • 9.4 Wave Algorithms
  • 9.4.1 Propagation of Information with Feedback
  • 9.5 Distributed Deadlock Detection
  • 9.5.1 Resource Deadlock and Communication Deadlock
  • 9.5.2 Detection of Resource Deadlock
  • 9.5.3 Detection of Communication Deadlock
  • 9.6 Concluding Remarks
  • 9.7 Bibliographic Notes
  • Exercises
  • Chapter 10 – Graph Algorithms
  • 10.1 Introduction
  • 10.2 Routing Algorithms
  • 10.2.1 Computation of Shortest Path
  • 10.2.1.1 Complexity Analysis
  • 10.2.1.2 Chandy–Misra Modification of the Shortest Path Algorithm
  • 10.2.2 Distance-Vector Routing
  • 10.2.3 Link-State Routing
  • 10.2.4 Interval Routing
  • 10.2.4.1 Interval Routing Rule
  • 10.2.5 Prefix Routing
  • 10.3 Graph Traversal
  • 10.3.1 Spanning Tree Construction
  • 10.3.2 Tarry’s Graph Traversal Algorithm
  • 10.3.3 Minimum Spanning Tree Construction
  • 10.3.3.1 Overall Strategy
  • 10.3.3.2 Detecting the Least Weight Outgoing Edge
  • 10.3.3.3 Message Complexity
  • 10.4 Graph Coloring
  • 10.4.1 (D + 1)-Coloring Algorithm
  • 10.4.2 6-Coloring of Planar Graphs
  • 10.5 Cole–Vishkin Reduction Algorithm for Tree Coloring
  • 10.6 Maximal Independent Set: Luby’s Algorithm
  • 10.7 Concluding Remarks
  • 10.8 Bibliographic Notes
  • Exercises
  • Chapter 11 – Coordination Algorithms
  • 11.1 Introduction
  • 11.2 Leader Election
  • 11.2.1 Bully Algorithm
  • 11.2.2 Maxima Finding on a Ring
  • 11.2.2.1 Chang–Roberts Algorithm
  • 11.2.2.2 Franklin’s Algorithm
  • 11.2.2.3 Peterson’s Algorithm
  • 11.2.3 Election in Arbitrary Networks
  • 11.2.4 Election in Anonymous Networks
  • 11.3 Synchronizers
  • 11.3.1 ABD Synchronizer
  • 11.3.2 Awerbuch’s Synchronizers
  • 11.3.2.1 α-Synchronizer
  • 11.3.2.2 β-Synchronizer
  • 11.3.2.3 γ-Synchronizer
  • 11.3.2.4 Performance of Synchronizer-Based Algorithms
  • 11.4 Concluding Remarks
  • 11.5 Bibliographic Notes
  • Exercises
  • Section IV – Faults and Fault-Tolerant Systems
  • Chapter 12 – Fault-Tolerant Systems
  • 12.1 Introduction
  • 12.2 Classification of Faults
  • 12.3 Specification of Faults
  • 12.4 Fault-Tolerant Systems
  • 12.4.1 Masking Tolerance
  • 12.4.2 Nonmasking Tolerance
  • 12.4.3 Fail-Safe Tolerance
  • 12.4.4 Graceful Degradation
  • 12.4.5 Detection of Failures in Synchronous Systems
  • 12.5 Tolerating Crash Failures
  • 12.5.1 Double and Triple Modular Redundancy
  • 12.6 Tolerating Omission Failures
  • 12.6.1 Stenning’s Protocol
  • 12.6.2 Sliding Window Protocol
  • 12.6.3 Alternating Bit Protocol
  • 12.6.4 How TCP Works
  • 12.7 Concluding Remarks
  • 12.8 Bibliographic Notes
  • Exercises
  • Chapter 13 – Distributed Consensus
  • 13.1 Introduction
  • 13.2 Consensus in Asynchronous Systems
  • 13.2.1 Bivalent and Univalent States
  • 13.3 Consensus in Synchronous Systems: Byzantine Generals Problem
  • 13.3.1 Solution with No Traitor
  • 13.3.2 Solution with Traitors: Interactive Consistency Criteria
  • 13.3.3 Consensus with Oral Messages
  • 13.3.3.1 Impossibility Result
  • 13.3.3.2 OM(m) Algorithm
  • 13.3.4 Consensus Using Signed Messages
  • 13.4 Paxos Algorithm
  • 13.4.1 Safety Properties
  • 13.4.2 Liveness Properties
  • 13.5 Failure Detectors
  • 13.5.1 Solving Consensus Using Failure Detectors
  • 13.5.1.1 Consensus Using P
  • 13.5.1.2 Consensus Using S
  • 13.5.1.3 Rationale
  • 13.5.1.4 Implementing a Failure Detector
  • 13.6 Concluding Remarks
  • 13.7 Bibliographic Notes
  • Exercises
  • Chapter 14 – Distributed Transactions
  • 14.1 Introduction
  • 14.2 Classification of Transactions
  • 14.2.1 Flat Transactions
  • 14.2.2 Nested Transactions
  • 14.2.3 Distributed Transactions
  • 14.3 Implementing Transactions
  • 14.4 Concurrency Control and Serializability
  • 14.4.1 Testing for Serializability
  • 14.4.2 Two-Phase Locking
  • 14.4.3 Concurrency Control via Time Stamp Ordering
  • 14.5 Atomic Commit Protocols
  • 14.5.1 One-Phase Commit
  • 14.5.2 Two-Phase Commit
  • 14.5.3 Three-Phase Commit
  • 14.6 Recovery from Failures
  • 14.6.1 Stable Storage
  • 14.6.2 Checkpointing and Rollback Recovery
  • 14.6.3 Message Logging
  • 14.7 Concluding Remarks
  • 14.8 Bibliographic Notes
  • Exercises
  • Chapter 15 – Group Communication
  • 15.1 Introduction
  • 15.2 Atomic Multicast
  • 15.3 IP Multicast
  • 15.3.1 Reverse Path Forwarding
  • 15.4 Application Layer Multicast
  • 15.5 Ordered Multicasts
  • 15.5.1 Implementing Total Order Multicast
  • 15.5.1.1 Implementation Using a Sequencer
  • 15.5.1.2 Distributed Implementation
  • 15.5.2 Implementing Causal Order Multicast
  • 15.6 Reliable Multicast
  • 15.6.1 Scalable Reliable Multicast
  • 15.6.2 Reliable Ordered Multicast
  • 15.7 Open Groups
  • 15.7.1 View-Synchronous Group Communication
  • 15.8 Overview of Transis
  • 15.9 Concluding Remarks
  • 15.10 Bibliographic Notes
  • Exercises
  • Chapter 16 – Replicated Data Management
  • 16.1 Introduction
  • 16.1.1 Reliability versus Availability
  • 16.2 Architecture of Replicated Data Management
  • 16.2.1 Passive versus Active Replication
  • 16.2.2 Fault-Tolerant State Machines
  • 16.3 Data-Centric Consistency Models
  • 16.3.1 Strict Consistency
  • 16.3.2 Linearizability
  • 16.3.3 Sequential Consistency
  • 16.3.4 Causal Consistency
  • 16.3.5 FIFO Consistency
  • 16.4 Client-Centric Consistency Protocols
  • 16.4.1 Eventual Consistency
  • 16.4.2 Consistency Models for Mobile Clients
  • 16.4.2.1 Read-After-Read Consistency
  • 16.4.2.2 Write-After-Write Consistency
  • 16.4.2.3 Read-After-Write Consistency
  • 16.4.2.4 Write-After-Read Consistency
  • 16.5 Implementation of Data-Centric Consistency Models
  • 16.6 Quorum-Based Protocols
  • 16.7 Replica Placement
  • 16.8 Brewer’s CAP Theorem
  • 16.9 Case Studies
  • 16.9.1 Replication Management in Coda
  • 16.9.2 Replication Management in Bayou
  • 16.9.3 Amazon Dynamo
  • 16.10 Concluding Remarks
  • 16.11 Bibliographic Notes
  • Exercises
  • Chapter 17 – Self-Stabilizing Systems
  • 17.1 Introduction
  • 17.2 Theoretical Foundations
  • 17.3 Stabilizing Mutual Exclusion
  • 17.3.1 Mutual Exclusion on a Unidirectional Ring
  • 17.3.2 Mutual Exclusion on a Bidirectional Array
  • 17.4 Stabilizing Graph Coloring
  • 17.5 Stabilizing Spanning Tree Protocol
  • 17.6 Stabilizing Maximal Matching
  • 17.7 Distributed Reset
  • 17.8 Stabilizing Clock Phase Synchronization
  • 17.9 Concluding Remarks
  • 17.10 Bibliographic Notes
  • Exercises
  • Section V – Real-World Issues
  • Chapter 18 – Distributed Discrete-Event Simulation
  • 18.1 Introduction
  • 18.1.1 Event-Driven Simulation
  • 18.2 Distributed Simulation
  • 18.2.1 Challenges
  • 18.2.2 Correctness Issues
  • 18.3 Conservative Simulation
  • 18.4 Optimistic Simulation and Time Warp
  • 18.4.1 Global Virtual Time
  • 18.5 Concluding Remarks
  • 18.6 Bibliographic Notes
  • Exercises
  • Chapter 19 – Security in Distributed Systems
  • 19.1 Introduction
  • 19.2 Security Mechanisms
  • 19.3 Common Security Attacks
  • 19.3.1 Eavesdropping
  • 19.3.2 Denial of Service
  • 19.3.3 Data Tampering
  • 19.3.4 Masquerading
  • 19.3.5 Man in the Middle
  • 19.3.6 Malicious Software
  • 19.3.6.1 Virus
  • 19.3.6.2 Worms
  • 19.3.6.3 Spyware
  • 19.4 Encryption
  • 19.5 Secret Key Cryptosystem
  • 19.5.1 Confusion and Diffusion
  • 19.5.2 DES
  • 19.5.3 3DES
  • 19.5.4 AES
  • 19.5.5 One-Time Pad
  • 19.5.6 Stream Ciphers
  • 19.5.7 Steganography
  • 19.6 Public Key Cryptosystems
  • 19.6.1 Rivest–Shamir–Adleman Cryptosystem
  • 19.6.2 ElGamal Cryptosystem
  • 19.7 Digital Signatures
  • 19.7.1 Signatures in Secret-Key Cryptosystems
  • 19.7.2 Signatures in Public-Key Cryptosystems
  • 19.8 Hashing Algorithms
  • 19.8.1 Birthday Attack
  • 19.9 Elliptic Curve Cryptography
  • 19.10 Authentication Server
  • 19.10.1 Authentication Service for Secret-Key Cryptosystems
  • 19.10.2 Authentication Server for Public-Key Systems
  • 19.11 Digital Certificates
  • 19.12 Case Studies
  • 19.12.1 Kerberos
  • 19.12.2 Pretty Good Privacy
  • 19.12.3 Secure Socket Layer
  • 19.13 Virtual Private Networks and Firewalls
  • 19.13.1 Virtual Private Network
  • 19.13.2 Firewall
  • 19.14 Sharing a Secret
  • 19.15 Concluding Remarks
  • 19.16 Bibliographic Notes
  • Exercises
  • Programming Exercises
  • Chapter 20 – Sensor Networks
  • 20.1 Vision
  • 20.2 Architecture of Sensor Nodes
  • 20.2.1 MICA Mote
  • 20.2.2 ZigBee-Enabled Sensor Nodes
  • 20.2.3 TinyOS® Operating System
  • 20.3 Challenges in Wireless Sensor Networks
  • 20.3.1 Energy Conservation
  • 20.3.2 Fault Tolerance
  • 20.3.3 Routing
  • 20.3.4 Time Synchronization
  • 20.3.5 Location Management
  • 20.3.6 Middleware Design
  • 20.3.7 Security
  • 20.4 Routing Algorithms
  • 20.4.1 Directed Diffusion
  • 20.4.2 Cluster-Based Routing
  • 20.4.2.1 LEACH
  • 20.4.2.2 PEGASIS
  • 20.4.3 Metadata-Based Routing: SPIN
  • 20.5 Time Synchronization Using Reference Broadcast
  • 20.5.1 Reference Broadcast
  • 20.6 Localization Algorithms
  • 20.6.1 RSSI-Based Ranging
  • 20.6.2 Ranging Using Time Difference of Arrival
  • 20.6.3 Anchor-Based Ranging
  • 20.7 Security in Sensor Networks
  • 20.7.1 SPIN for Data Security
  • 20.7.1.1 Overview of SNEP
  • 20.7.1.2 Overview of μTESLA
  • 20.7.2 Attacks on Routing
  • 20.7.2.1 Hello Flood
  • 20.8 Applications
  • 20.8.1 Health-Care Applications
  • 20.8.2 Environment Monitoring and Control
  • 20.8.3 Citizen Sensing
  • 20.8.4 Pursuer–Evader Game
  • 20.9 Concluding Remarks
  • 20.10 Bibliographic Notes
  • Exercises
  • Programming Exercises
  • Chapter 21 – Social and Peer-to-Peer Networks
  • 21.1 Introduction to Social Networks
  • 21.1.1 Milgram’s Experiment
  • 21.2 Metrics of Social Networks
  • 21.2.1 Clustering Coefficient
  • 21.2.2 Diameter
  • 21.3 Modeling Social Networks
  • 21.3.1 Erdös–Rényi Model
  • 21.3.2 Small-World Model
  • 21.3.3 Power-Law Graphs
  • 21.4 Centrality Measures in Social Networks
  • 21.4.1 Degree Centrality
  • 21.4.2 Closeness Centrality
  • 21.4.3 Betweenness Centrality
  • 21.5 Community Detection
  • 21.5.1 Girvan–Newman Algorithm
  • 21.6 Introduction to Peer-to-Peer Networks
  • 21.7 First-Generation P2P Systems
  • 21.7.1 Napster
  • 21.7.2 Gnutella
  • 21.8 Second-Generation P2P Systems
  • 21.8.1 KaZaA
  • 21.8.2 Chord
  • 21.8.3 Content-Addressable Network
  • 21.8.4 Pastry
  • 21.9 Koorde and De Bruijn Graph
  • 21.10 Skip Graph
  • 21.11 Replication Management
  • 21.12 BitTorrent and Free Riding
  • 21.13 Censorship Resistance, Anonymity
  • 21.14 Concluding Remarks
  • 21.15 Bibliographic Notes
  • Exercises
  • References
Show More

Additional information

Veldu vöru

Rafbók til eignar

Reviews

There are no reviews yet.

Be the first to review “Distributed Systems”

Netfang þitt verður ekki birt. Nauðsynlegir reitir eru merktir *

Aðrar vörur

0
    0
    Karfan þín
    Karfan þín er tómAftur í búð