Distributed Systems

  1. Inter-Process Communication
    1. Fundamentals of Communication
      1. Communication Models
        1. Message Passing
          1. Shared Memory
            1. Hybrid Approaches
            2. Communication Protocols
              1. Protocol Layers
                1. Protocol Design Principles
                2. Network Programming
                  1. Socket Programming
                    1. TCP Sockets
                      1. UDP Sockets
                        1. Socket Options and Configuration
                      2. Remote Procedure Calls
                        1. RPC Concepts
                          1. Procedure Call Semantics
                            1. Remote vs. Local Calls
                              1. Transparency Goals
                              2. RPC Implementation
                                1. Client Stubs
                                  1. Server Stubs
                                    1. RPC Runtime System
                                    2. Parameter Passing
                                      1. Call-by-Value
                                        1. Call-by-Reference
                                          1. Call-by-Copy-Restore
                                          2. Data Representation
                                            1. Marshalling
                                              1. Unmarshalling
                                                1. External Data Representation
                                                2. Interface Definition
                                                  1. Interface Definition Languages
                                                    1. Stub Generation
                                                      1. Automatic Code Generation
                                                      2. RPC Semantics
                                                        1. At-Least-Once Semantics
                                                          1. At-Most-Once Semantics
                                                            1. Exactly-Once Semantics
                                                            2. Failure Handling
                                                              1. Lost Requests
                                                                1. Lost Replies
                                                                  1. Server Failures
                                                                    1. Idempotency
                                                                    2. RPC Variants
                                                                      1. Asynchronous RPC
                                                                        1. Deferred Synchronous RPC
                                                                          1. One-Way RPC
                                                                        2. Message-Oriented Middleware
                                                                          1. Message Queuing Systems
                                                                            1. Queue Management
                                                                              1. Message Persistence
                                                                                1. Message Ordering
                                                                                2. Point-to-Point Messaging
                                                                                  1. Message Brokers
                                                                                    1. Queue-Based Communication
                                                                                      1. Delivery Guarantees
                                                                                      2. Publish-Subscribe Systems
                                                                                        1. Topic-Based Publish-Subscribe
                                                                                          1. Content-Based Publish-Subscribe
                                                                                            1. Subscription Management
                                                                                              1. Event Notification
                                                                                              2. Message Routing
                                                                                                1. Static Routing
                                                                                                  1. Dynamic Routing
                                                                                                    1. Content-Based Routing
                                                                                                  2. Stream-Oriented Communication
                                                                                                    1. Data Streaming Concepts
                                                                                                      1. Continuous Data Flows
                                                                                                        1. Stream Processing
                                                                                                        2. Real-Time Communication
                                                                                                          1. Quality of Service
                                                                                                            1. Latency Requirements
                                                                                                              1. Bandwidth Management
                                                                                                              2. Streaming Protocols
                                                                                                                1. Real-Time Transport Protocol
                                                                                                                  1. Stream Control Transmission Protocol
                                                                                                                  2. Multimedia Communication
                                                                                                                    1. Audio Streaming
                                                                                                                      1. Video Streaming
                                                                                                                        1. Synchronization Issues