ENGLISH

Distributed Systems

Book information

Publisher
CreateSpace Independent Publishing Platform
Year
2017
ISBN
1543057381, 9781543057386
Language
english
Format
PDF
Filesize
12 MB (12405265 bytes)
Edition
3.01
Pages
596\596
Time added
2020-09-14 00:32:47

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