NLU Meghalaya Library

Online Public Access Catalogue (OPAC)

Distributed systems : theory and applications /

Ghosh, Ratan K.,

Distributed systems : theory and applications / Ratan K. Ghosh, Hiranmay Ghosh. - 1 online resource (xxvii, 532 pages) : illustrations (some color)

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 ...

"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."--

1119825954 9781119825944 1119825946 9781119825968 1119825962 9781119825951

10.1002/9781119825968 doi

10044991 IEEE

2022055651


Electronic data processing--Distributed processing.
Computer networks.
Traitement r�eparti.
R�eseaux d'ordinateurs.
Computer networks
Electronic data processing--Distributed processing

QA76.9.D5 / G486 2023

004/.36