Distributed Systems
Book information
Description
For this third edition of "Distributed Systems," the material has been thoroughly revised and extended, integrating principles and paradigms into nine chapters:1. Introduction 2. Architectures 3. Processes 4. Communication 5. Naming 6. Coordination 7. Replication 8. Fault tolerance 9. SecurityA separation has been made between basic material and more specific subjects. The latter have been organized into boxed sections, which may be skipped on first reading.To assist in understanding the more algorithmic parts, example programs in Python have been included. The examples in the book leave out many details for readability, but the complete code is available through the book's Website, hosted atwww.distributed-systems.net.A personalized digital copy of the book is available for free, as well as a printed version through Amazon.com. Preface Introduction What is a distributed system? Characteristic 1: Collection of autonomous computing elements Characteristic 2: Single coherent system Middleware and distributed systems Design goals Supporting resource sharing Making distribution transparent Being open Being scalable Pitfalls Types of distributed systems High performance distributed computing Distributed information systems Pervasive systems Summary Architectures Architectural styles Layered architectures Object-based and service-oriented architectures Resource-based architectures Publish-subscribe architectures Middleware organization Wrappers Interceptors Modifiable middleware System architecture Centralized organizations Decentralized organizations: peer-to-peer systems Hybrid Architectures Example architectures The Network File System The Web Summary Processes Threads Introduction to threads Threads in distributed systems Virtualization Principle of virtualization Application of virtual machines to distributed systems Clients Networked user interfaces Client-side software for distribution transparency Servers General design issues Object servers Example: The Apache Web server Server clusters Code migration Reasons for migrating code Migration in heterogeneous systems Summary Communication Foundations Layered Protocols Types of Communication Remote procedure call Basic RPC operation Parameter passing RPC-based application support Variations on RPC Example: DCE RPC Message-oriented communication Simple transient messaging with sockets Advanced transient messaging Message-oriented persistent communication Example: IBM's WebSphere message-queuing system Example: Advanced Message Queuing Protocol (AMQP) Multicast communication Application-level tree-based multicasting Flooding-based multicasting Gossip-based data dissemination Summary Naming Names, identifiers, and addresses Flat naming Simple solutions Home-based approaches Distributed hash tables Hierarchical approaches Structured naming Name spaces Name resolution The implementation of a name space Example: The Domain Name System Example: The Network File System Attribute-based naming Directory services Hierarchical implementations: LDAP Decentralized implementations Summary Coordination Clock synchronization Physical clocks Clock synchronization algorithms Logical clocks Lamport's logical clocks Vector clocks Mutual exclusion Overview A centralized algorithm A distributed algorithm A token-ring algorithm A decentralized algorithm Election algorithms The bully algorithm A ring algorithm Elections in wireless environments Elections in large-scale systems Location systems GPS: Global Positioning System When GPS is not an option Logical positioning of nodes Distributed event matching Centralized implementations Gossip-based coordination Aggregation A peer-sampling service Gossip-based overlay construction Summary Consistency and replication Introduction Reasons for replication Replication as scaling technique Data-centric consistency models Continuous consistency Consistent ordering of operations Eventual consistency Client-centric consistency models Monotonic reads Monotonic writes Read your writes Writes follow reads Replica management Finding the best server location Content replication and placement Content distribution Managing replicated objects Consistency protocols Continuous consistency Primary-based protocols Replicated-write protocols Cache-coherence protocols Implementing client-centric consistency Example: Caching and replication in the Web Summary Fault tolerance Introduction to fault tolerance Basic concepts Failure models Failure masking by redundancy Process resilience Resilience by process groups Failure masking and replication Consensus in faulty systems with crash failures Example: Paxos Consensus in faulty systems with arbitrary failures Some limitations on realizing fault tolerance Failure detection Reliable client-server communication Point-to-point communication RPC semantics in the presence of failures Reliable group communication Atomic multicast Distributed commit Recovery Introduction Checkpointing Message logging Recovery-oriented computing Summary Security Introduction to security Security threats, policies, and mechanisms Design issues Cryptography Secure channels Authentication Message integrity and confidentiality Secure group communication Example: Kerberos Access control General issues in access control Firewalls Secure mobile code Denial of service Secure naming Security management Key management Secure group management Authorization management Summary Bibliography
Similar books
Distributed Systems
2023 · PDF
Distributed Systems: Principles and Paradigms
2023 · PDF
Distributed Systems: Principles and Paradigms
2006 · PDF
Sistemas distribuidos: principios y paradigmas
2008 · PDF
Distributed Systems - 3rd Edition
Distributed Systems
2017 · PDF
Distributed Systems: Principles and Paradigms
2002 · PDF
Distributed Systems: Principles and Paradigms (2nd Edition)
2006 · PDF