DISTRIBUTED SYSTEMS: Design Concepts involves multiple computers processing data and communicating the results to each other, such as in electronic banking or online gaming, where the users are geographically separated. The landscape of distributed systems has changed many times over the previous decades and it's become an integral part of everyday life, with the development of mobile and ubiquitous computing, web applications, social networks, peer-to-peer systems, wireless sensor networks and so on. Writing applications for such systems has become increasingly difficult. This book focuses on designing principles of distributed computing and communication networks. The topics discussed include design issues & challenges, models and protocols in communication networks, mobile computing and autonomous systems, design and analysis of distributed algorithms, distributed databases, distributed deadlock detection, design techniques for fault tolerance computing, distributed resource management, replication and other important concepts.