TY - BOOK AU - Ghosh,Ratan K. AU - Ghosh,Hiranmay TI - Distributed systems: theory and applications SN - 1119825954 AV - QA76.9.D5 G486 2023 U1 - 004/.36 23/eng/20221207 PY - 2023///] CY - Hoboken, New Jersey, Piscataway, NJ PB - John Wiley & Sons, Inc., IEEE Press KW - Electronic data processing KW - Distributed processing KW - Computer networks KW - Traitement r�eparti KW - R�eseaux d'ordinateurs KW - fast N1 - Includes bibliographical references and index; Preface xxi -- Acknowledgments xxvii -- Acronyms xxix -- 1 Introduction 1 -- 1.1 Advantages of distributed systems : : : : : : : : : : : : : : : : : 2 -- 1.2 Defining Distributed Systems : : : : : : : : : : : : : : : : : : : : 4 -- 1.3 Challenges of a Distributed System : : : : : : : : : : : : : : : : 7 -- 1.4 Goals of distributed system : : : : : : : : : : : : : : : : : : : : : 9 -- 1.4.1 Single System View : : : : : : : : : : : : : : : : : : : 10 -- 1.4.2 Hiding Distributions : : : : : : : : : : : : : : : : : : : 10 -- 1.4.3 Degrees and Distribution of Hiding : : : : : : : : : : 13 -- 1.4.4 Interoperability : : : : : : : : : : : : : : : : : : : : : : 14 -- 1.4.5 Dynamic reconfiguration : : : : : : : : : : : : : : : : 15 -- 1.5 Architectural Organization : : : : : : : : : : : : : : : : : : : : : : 16 -- 1.6 Organization of the book : : : : : : : : : : : : : : : : : : : : : : 17 -- Bibliography : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 19 -- 2 The Internet 21 -- 2.1 Origin and Organization : : : : : : : : : : : : : : : : : : : : : : : 22 -- 2.1.1 ISPs and the Topology of the Internet : : : : : : : : 24 -- v -- 2.2 Addressing the Nodes : : : : : : : : : : : : : : : : : : : : : : : : 25 -- 2.3 Network Connection Protocol : : : : : : : : : : : : : : : : : : : : 29 -- 2.3.1 IP Protocol : : : : : : : : : : : : : : : : : : : : : : : : 31 -- 2.3.2 Transmission Control Protocol : : : : : : : : : : : : : 32 -- 2.3.3 User Datagram Protocol : : : : : : : : : : : : : : : : 33 -- 2.4 Dynamic Host Control Protocol : : : : : : : : : : : : : : : : : : : 33 -- 2.5 Domain Name Service : : : : : : : : : : : : : : : : : : : : : : : : 35 -- 2.5.1 Reverse DNS Lookup : : : : : : : : : : : : : : : : : : 39 -- 2.5.2 Client Server Architecture : : : : : : : : : : : : : : : 44 -- 2.6 Content Distribution Network : : : : : : : : : : : : : : : : : : : : 47 -- 2.7 Conclusion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 50 -- Exercises : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 50 -- Bibliography : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 51 -- 3 Process to Process Communication 53 -- 3.1 Communication Types and Interfaces : : : : : : : : : : : : : : : 54 -- 3.1.1 Sequential type : : : : : : : : : : : : : : : : : : : : : 55 -- 3.1.2 Declarative type : : : : : : : : : : : : : : : : : : : : : 57 -- 3.1.3 Shared states : : : : : : : : : : : : : : : : : : : : : : : 58 -- 3.1.4 Message passing : : : : : : : : : : : : : : : : : : : : : 59 -- 3.1.5 Communication interfaces : : : : : : : : : : : : : : : 59 -- 3.2 Socket programming : : : : : : : : : : : : : : : : : : : : : : : : : 61 -- 3.2.1 Socket data structures : : : : : : : : : : : : : : : : : 62 -- 3.2.2 Socket calls : : : : : : : : : : : : : : : : : : : : : : : : 64 -- vi -- 3.3 Remote Procedure Call : : : : : : : : : : : : : : : : : : : : : : : : 70 -- 3.3.1 XML RPC : : : : : : : : : : : : : : : : : : : : : : : : 77 -- 3.4 Remote Method Invocation : : : : : : : : : : : : : : : : : : : : : 80 -- 3.5 Conclusion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 86 -- Exercises : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 86 -- Bibliography : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 89 -- 4 Microservices, Conterization and MPI 93 -- 4.1 Microservice Architecture : : : : : : : : : : : : : : : : : : : : : : 94 -- 4.2 REST Requests and APIs : : : : : : : : : : : : : : : : : : : : : : 97 -- 4.2.1 Weather Data Using REST API : : : : : : : : : : : : 99 -- 4.3 Cross Platform Applications : : : : : : : : : : : : : : : : : : : : : 101 -- 4.4 Message Passing Interface : : : : : : : : : : : : : : : : : : : : : : 114 -- 4.4.1 Process Communication Models : : : : : : : : : : : : 115 -- 4.4.2 Programming with MPI : : : : : : : : : : : : : : : : : 119 -- 4.5 Conclusion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 126 -- Exercises : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 128 -- Bibliography : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 129 -- 5 Clock Synchronization and Event Ordering 133 -- 5.1 The Notion of Clock Time : : : : : : : : : : : : : : : : : : : : : : 134 -- 5.2 External Clock Based Mechanisms : : : : : : : : : : : : : : : : : 136 -- 5.2.1 Cristian's Algorithm : : : : : : : : : : : : : : : : : : : 137 -- 5.2.2 Berkeley Clock Protocol : : : : : : : : : : : : : : : : 138 -- vii -- 5.2.3 Network Time Protocol : : : : : : : : : : : : : : : : : 139 -- 5.3 Events and Temporal Ordering : : : : : : : : : : : : : : : : : : : 143 -- 5.3.1 Causal Dependency : : : : : : : : : : : : : : : : : : : 145 -- 5.4 Definition of logical clock : : : : : : : : : : : : : : : : : : : : : : 146 -- 5.5 Causal Ordering of Messages : : : : : : : : : : : : : : : : : : : : 155 -- 5.6 Multicast Message Ordering : : : : : : : : : : : : : : : : : : : : : 157 -- 5.6.1 Implementing FIFO multicast : : : : : : : : : : : : : 162 -- 5.6.2 Implementing Causal Ordering : : : : : : : : : : : : : 164 -- 5.6.3 Implementing Total Ordering : : : : : : : : : : : : : 166 -- 5.6.4 Reliable multicast : : : : : : : : : : : : : : : : : : : : 167 -- 5.7 Interval events : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 169 -- 5.7.1 Conceptual neighborhood : : : : : : : : : : : : : : : : 172 -- 5.7.2 Spatial Events : : : : : : : : : : : : : : : : : : : : : : 174 -- 5.8 Conclusion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 176 -- Exercises : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 178 -- Bibliography : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 181 -- 6 Global States and Termination Detection 185 -- 6.1 Cuts and Global States : : : : : : : : : : : : : : : : : : : : : : : : 186 -- 6.1.1 Global states : : : : : : : : : : : : : : : : : : : : : : : 192 -- 6.1.2 Recording of global states : : : : : : : : : : : : : : : 196 -- 6.1.3 Problem in recording global state : : : : : : : : : : : 201 -- 6.2 Liveness and Safety : : : : : : : : : : : : : : : : : : : : : : : : : : 204 -- 6.3 Termination Detection : : : : : : : : : : : : : : : : : : : : : : : : 209 -- viii -- 6.3.1 Snapshot Based Termination Detection : : : : : : : 210 -- 6.3.2 Ring Method : : : : : : : : : : : : : : : : : : : : : : : 213 -- 6.3.3 Tree method : : : : : : : : : : : : : : : : : : : : : : : 217 -- 6.3.4 Weight Throwing Method : : : : : : : : : : : : : : : 221 -- 6.4 Conclusion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 225 -- Exercises : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 225 -- Bibliography : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 228 -- 7 Leader Election 231 -- 7.1 Impossibility Result : : : : : : : : : : : : : : : : : : : : : : : : : : 232 -- 7.2 Bully Algorithm : : : : : : : : : : : : : : : : : : : : : : : : : : : : 235 -- 7.3 Ring based algorithms : : : : : : : : : : : : : : : : : : : : : : : : 236 -- 7.3.1 Circulate IDs all the way : : : : : : : : : : : : : : : : 237 -- 7.3.2 As far as an ID can go : : : : : : : : : : : : : : : : : 240 -- 7.4 Hirschberg and Sinclair algorithm : : : : : : : : : : : : : : : : : : 241 -- 7.5 Distributed Spanning Tree Algorithm : : : : : : : : : : : : : : : 245 -- 7.5.1 Single Initiator Spanning Tree : : : : : : : : : : : : : 246 -- 7.5.2 Multiple Initiators Spanning Tree : : : : : : : : : : : 251 -- 7.5.3 Minimum Spanning Tree : : : : : : : : : : : : : : : : 259 -- 7.6 Leader election in trees : : : : : : : : : : : : : : : : : : : : : : : 260 -- 7.6.1 Overview of the algorithm : : : : : : : : : : : : : : : 260 -- 7.6.2 Activation Stage : : : : : : : : : : : : : : : : : : : : : 261 -- 7.6.3 Saturation Stage : : : : : : : : : : : : : : : : : : : : : 262 -- 7.6.4 Resolution Stage : : : : : : : : : : : : : : : : : : : : : 264 -- ix -- 7.6.5 Resolution Stage : : : : : : : : : : : : : : : : : : : : : 264 -- 7.6.6 Two Nodes Enter SATURATED State : : : : : : : : 266 -- 7.7 Leased Leader Election : : : : : : : : : : : : : : : : : : : : : : : : 269 -- 7.8 Conclusion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 272 -- Exercises : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 273 -- Bibliography : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 276 -- 8 Mutual Exclusion 281 -- 8.1 System Model : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 282 -- 8.2 Coordinator-based Solution : : : : : : : : : : : : : : : : : : : : : 285 -- 8.3 Assertion-Based Solutions : : : : : : : : : : : : : : : : : : : : : : 286 -- 8.3.1 Lamport's algorithm : : : : : : : : : : : : : : : : : : : 286 -- 8.3.2 Improvement to Lamport's Algorithm : : : : : : : : : 290 -- 8.3.3 Quorum based algorithms : : : : : : : : : : : : : : : : 291 -- 8.4 Token based solutions : : : : : : : : : : : : : : : : : : : : : : : : 301 -- 8.4.1 Suzuki and Kasami's algorithm : : : : : : : : : : : : 301 -- 8.4.2 Singhal's Heuristically-Aided Algorithm : : : : : : : : 304 -- 8.4.3 Raymond's tree-based algorithm : : : : : : : : : : : : 312 -- 8.5 Conclusion : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 313 -- Exercises : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 316 -- Bibliography : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 317 -- 9 Agreements and Consensus 321 -- 9.1 System Model : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 322 -- x -- 9.1.1 System Model : : : : : : : : : : : : : : : : : : : : : : 322 -- 9.1.2 Failures in Distributed System : : : : : : : : : : : : : 324 -- 9.1.3 Problem Definition : : : : : : : : : : : : : : : : : : : 325 -- 9.1.4 Agreement Problem and its Equivalence : : : : : : : 327 -- 9.2 Byzantine Gene N2 - "This book is organized around three aspects of distributed systems: networks middleware tools, and applications. The authors introduce the network issues and high level connection tools in the initial chapters of the book. The abstractions and the implementations of several middleware for distributed computing are described over following chapters of the book, which constitute the bulk of core foundational topics. Going further, the authors discuss P2P, coordinated architectures, and advanced middleware for building large modern distributed applications spread over six chapters. Very large distributed systems rely on Intelligent and autonomous behavior of its components. In this context, the authors present distributed knowledge management and distributed multi-agent systems in the final chapters of the book."-- UR - https://onlinelibrary.wiley.com/doi/book/10.1002/9781119825968 ER -