Chapter 1
1. Types of Distributed System: a) Client-Server, b) Peer-to-Peer, c) Cluster Computing, d) Grid Computing, e) Cloud Computing.
2. Distributed Transparency: Hides complexity. Types: a) Access, b) Location, c) Migration, d) Replication, e) Concurrency, f) Failure.
Chapter 2
1. Three-tier Architecture: 1) Presentation (UI), 2) Logic (Processing), 3) Data (DB). Diagram: [Client]→[Server]→[DB].
2. Content Addressable Network (CAN): P2P DHT-based model, data stored in multi-dimension coordinate space.
3. Decentralized Architecture: No central control, e.g., BitTorrent, Blockchain.
4. Hybrid Architecture: Mix of centralized + decentralized. Example: Edge Server System (CDN).
Chapter 3
1. Virtualization: Creates virtual machines; abstracts OS/hardware for distributed efficiency.
2. X Window System: GUI system for UNIX; supports remote display of applications.
3. Cluster Server Organization: Set of computers (nodes) working as single system. Diagram: [Nodes]↔[Switch]↔[Users].
4. Code Migration: Moving code across systems. Types: Strong/Weak. E.g., Mobile Agent.
5. Multithreaded Server Architecture: i) Thread-per-request, ii) Thread pool, iii) Event-driven.
6. Process vs Thread: Process: Heavy, separate memory. Thread: Light, shared memory.
7. Thread in DS: Threads allow concurrency, better resource use in distributed apps.
Chapter 4
1. RPC: Remote Procedure Call: call functions on remote machines as local.
2. RMI Conversion: Remote Method Invocation: Java objects communicate remotely.
3. MPI Design: Message Passing Interface: standard for parallel computing.
4. a. UDP: Connectionless, fast, unreliable. b. TCP: Reliable, ordered.
5. Marshalling: Converting data into transmittable format.
6. RPC Mechanism: Stub, Marshalling, Communication, Demarshalling, Execution.
7. Multicast Communication: Send message to multiple receivers in a group.
8. Java RMI: Allows Java objects to invoke methods remotely.
9. Group Communication: Send messages to defined group of nodes.
10. Client-Server: Client requests, server responds with resources.
Chapter 5
1. Name Resolution: Mapping name to address. a) Iterative b) Recursive.
2. Namespace: Set of unique names in distributed systems.
3. LDAP: Lightweight Directory Access Protocol for name services.
4. Name Services: Support name resolution, binding, updates.
5. DNS: Domain Name System maps domain names to IP addresses.
Chapter 6
1. Christian’s Algorithm: Sync clocks using time from a time server.
2. Logical Clock: Tracks event order, e.g., Lamport timestamps.
3. Ricart-Agrawala: Distributed mutual exclusion using timestamped requests.
4. Bully Algorithm: Higher ID node becomes coordinator after crash.
5. Ring Algorithm: Tokens passed in ring to elect coordinator.
6. Ext/Internal Sync: External: sync with global clock. Internal: sync among nodes.
7. Logical Time/Clocks: Used to order events in DS without physical time.
Chapter 8
1. Arbitrary Failure: Byzantine Failure: node acts unpredictably.
2. Two-Phase Commit: Coordination protocol for atomic commit: 1) Prepare 2) Commit.
Chapter 9
1. Components of Security: a) Confidentiality, b) Integrity, c) Availability.
2. Cryptography: Secures data via encryption/decryption.
3. Cryptographic Algorithms: Symmetric (AES), Asymmetric (RSA), Hashing (SHA-256).