Sign up
Forgot password?
FAQ: Login

Van Steen M., Tanenbaum A.S. Distributed Systems: Principles and Paradigms

  • pdf file
  • size 31,69 MB
Van Steen M., Tanenbaum A.S. Distributed Systems: Principles and Paradigms
4th Edition, Version 01. — Maarten van Steen, 2023. — 685 p. — ISBN: 978-90-815406-4-3.
This is the fourth edition of “Distributed Systems.” We have stayed close to the setup of the third edition, including examples of (part of) existing distributed systems close to where general principles are discussed. For example, we have included material on blockchain systems and discussed their various components throughout the book. We have, again, used special boxed sections for material that can be skipped at first reading.
The text has been thoroughly reviewed, revised, and updated. In particular, all the Python code has been updated to Python3, while at the same time, the channel package has been almost completely revised and simplified.
From networked systems to distributed systems.
Distributed versus decentralized systems.
Why making the distinction is relevant.
Studying distributed systems.
Design goals.
Resource sharing.
Distribution transparency.
Openness.
Dependability.
Security.
Scalability.
A simple classification of distributed systems.
High-performance distributed computing.
Distributed information systems.
Pervasive systems.
Pitfalls.
Architectures.
Architectural styles.
Layered architectures.
Service-oriented architectures.
Publish-subscribe architectures.
Middleware and distributed systems.
Middleware organization.
Modifiable middleware.
Layered-system architectures.
Simple client-server architecture.
Multitiered Architectures.
Example: The Network File System.
Example: The Web.
Symmetrically distributed system architectures.
Structured peer-to-peer systems.
Unstructured peer-to-peer systems.
Hierarchically organized peer-to-peer networks.
Example: BitTorrent.
Hybrid system architectures.
Cloud computing.
The edge-cloud architecture.
Blockchain architectures.
Processes.
Threads.
Introduction to threads.
Threads in distributed systems.
Virtualization.
Principle of virtualization.
Containers.
Comparing virtual machines and containers.
Application of virtual machines to distributed systems.
Clients.
Networked user interfaces.
Virtual desktop environment.
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.
Models for code migration.
Migration in heterogeneous systems.
Communication.
Foundations.
Layered Protocols.
Types of Communication.
Remote procedure call.
Basic RPC operation.
Parameter passing.
RPC-based application support.
Variations on RPC.
Message-oriented communication.
Simple transient messaging with sockets.
Advanced transient messaging.
Message-oriented persistent communication.
Example: Advanced Message Queuing Protocol (AMQP).
Multicast communication.
Application-level tree-based multicasting.
Flooding-based multicasting.
Gossip-based data dissemination.
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.
Example: Simple locking with ZooKeeper.
Election algorithms.
The bully algorithm.
A ring algorithm.
Example: Leader election in ZooKeeper.
Example: Leader election in Raft.
Elections in large-scale systems.
Elections in wireless environments.
Gossip-based coordination.
Aggregation.
A peer-sampling service.
Gossip-based overlay construction.
Secure gossiping.
Distributed event matching.
Centralized implementations.
Secure publish-subscribe solutions.
Location systems.
GPS: Global Positioning System.
When GPS is not an option.
Logical positioning of nodes.
Naming.
Names, identifiers, and addresses.
Flat naming.
Simple solutions.
Home-based approaches.
Distributed hash tables.
Hierarchical approaches.
Secure flat naming.
Structured naming.
Namespaces.
Name resolution.
The implementation of a namespace.
Example: The Domain Name System.
Example: The Network File System.
Attribute-based naming.
Directory services.
Hierarchical implementations: LDAP.
Decentralized implementations.
Named-data networking.
Basics.
Routing.
Security in named-data networking.
Consistency and replication.
Reasons for replication.
Replication as a scaling technique.
Data-centric consistency models.
Consistent ordering of operations.
Eventual consistency.
Continuous consistency.
Client-centric consistency models.
Monotonic reads.
Monotonic writes.
Read your writes.
Writes follow reads.
Example: client-centric consistency in ZooKeeper.
Replica management.
Finding the best server location.
Content replication and placement.
Content distribution.
Managing replicated objects.
Consistency protocols.
Sequential consistency: Primary-based protocols.
Sequential consistency: Replicated-write protocols.
Cache-coherence protocols.
Implementing continuous consistency.
Implementing client-centric consistency.
Example: Caching and replication in the Web.
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.
Consensus in blockchain systems.
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.
Scalability in reliable multicasting.
Atomic multicast.
Distributed commit.
Recovery.
Checkpointing.
Message logging.
Security.
Introduction to Security.
Security threats, policies, and mechanisms.
Design issues.
Cryptography.
Basics.
Symmetric and asymmetric cryptosystems.
Hash functions.
Key management.
Authentication.
Introduction to authentication.
Authentication protocols.
Trust in distributed systems.
Trust in the face of Byzantine failures.
Trusting an identity.
Trusting a system.
Authorization.
General issues in access control.
Attribute-based access control.
Delegation.
Decentralized authorization: an example.
Monitoring.
Firewalls.
Intrusion detection: basics.
Collaborative intrusion detection.
  • Sign up or login using form at top of the page to download this file.
  • Sign up
Up