Unit I Introduction Defining Distributed Systems, Characteristics, Middleware and Distributed Systems. Design goals : Supporting resource sharing, Making distribution transparent, Open, Scalable, Pitfalls. Types of Distributed Systems : High Performance Distributed Computing, Distributed Information Systems, Pervasive Systems. Architectural styles : Layered architectures, Object based architectures, Publish Subscribe architectures. Middleware organization : Wrappers, Interceptors, Modifiable middleware. System architecture : Centralized, Decentralized, Hybrid, Example architectures - Network File System, Web. (Chapter - 1) Unit IICommunication Introduction : Layered Protocols, Types of Communication, Remote Procedural Call- Basic RPC Operation, Parameter Passing, RPC-based application support, Variations on RPC, Example : DCE RPC, Remote Method Invocation. Message Oriented Communication : Simple Transient Messaging with Sockets, Advanced Transient Messaging, Message Oriented Persistent Communication, Examples. Multicast Communication : Application Level Tree-Based Multicasting, Flooding-Based Multicasting, Gossip-Based Data Dissemination. (Chapter - 2) Unit IIISynchronization Clock Synchronization : Physical Clocks, Clock Synchronization Algorithms. Logical Clocks - Lamport’s Logical clocks, Vector Clocks. Mutual Exclusion : Overview, Centralized Algorithm, Distributed Algorithm, Token-Ring Algorithm, Decentralized Algorithm. Election Algorithms : Bully Algorithm, Ring Algorithm. Location Systems : GPS, Logical Positioning of nodes, Distributed Event Matching. Gossip-Based Contribution : Aggregation, A Peer-Sampling Service, Gossip-Based Overlay Construction. (Chapter - 3) Unit IVNaming and Distributed File Systems Unit V Consistency and Replication Unit VIFault Tolerance