Mid1 Topics CH1 - Introduction - DS definition Goals of Distributed Systems with examples Difficulties with DS Transparency in a Distributed System with examples What is scalability Scaling techniques with examples False assumptions made by first time developer of DS Types of Distributed Systems Distributed Pervasive Systems, types & examples CH2 - Architecture - Architectural Style, for DS Software architecture (Centralized & decentralized) client-server model, Application Layering The user-interface level, The processing level, The data level Multitiered Architectures: Two-tiered & Three-tiered Decentralized Architectures: Vertical distribution & Horizontal distribution peer-to-peer systems: Structured & Unstructured, Superpeers Hybrid Architectures Collaborative Distributed Systems: e.g. BitTorren, e,g, Globule SELF-MANAGEMENT IN DISTRIBUTED SYSTEMS: feedback control loops Example: Systems Monitoring with Astrolabe Ch3 – Processes - A process Threads - multithreading Benefits of multithreading two approaches to implement a thread package, advantages & disadvantages of each lightweight processes (LWP) Multithreaded Clients Multithreaded Servers VIRTUALIZATION Client-Side Software for Distribution Transparency A server is ways to organize servers: iterative, concurrent, multithreaded - where clients contact a server? Stateless & stateful server Server Clusters: how to implement Access transparency, scalability and availability TCP handoff How to solve problems with Server Clusters: idle & overload Managing Server Clusters Reasons for CODE MIGRATION How to implement CODE MIGRATION a process consists of three segments: how to handle each segment in code migration how to handle problems with code migration Weak Mobility & strong mobility process-to-resource bindings with examples resource-to-machine bindings with examples Ch4 - Communication - Interprocess communication - OSI model, the function of each layer, protocols implemented by each layer - Middleware - Types of Communication: discrete & Streaming communication with examples - Persistent - Transient - Synchronous - Asynchronous - REMOTE PROCEDURE CALL (RPC) - Client and Server Stubs - Parameter Passing: by value & by reference: difference & examples - Parameter Specification and Stub Generation - message format, encoding rules & actual exchange of messages examples - Asynchronous RPC - Distributed Computing Environment(DCE) - MESSAGE-ORIENTED COMMUNICATION: when to implement - Berkeley Sockets - Message-Passing Interface (MPI) - message-queuing systems, or Message-Oriented Middleware (MOM). - Message Brokers - STREAM-ORIENTED COMMUNICATION: Discrete or Continuous Media - Data Stream: simple or complex with examples - Stream Synchronization - MULTICAST COMMUNICATION