Details

Distributed Systems


Distributed Systems

Theory and Applications
1. Aufl.

von: Ratan K. Ghosh, Hiranmay Ghosh

84,99 €

Verlag: Wiley
Format: PDF
Veröffentl.: 01.02.2023
ISBN/EAN: 9781119825944
Sprache: englisch
Anzahl Seiten: 560

DRM-geschütztes eBook, Sie benötigen z.B. Adobe Digital Editions und eine Adobe ID zum Lesen.

Beschreibungen

<b>Distributed Systems</b> <p><b>Comprehensive textbook resource on distributed systems—integrates foundational topics with advanced topics of contemporary importance within the field</b> <p><i>Distributed Systems: Theory and Applications</i> is organized around three layers of abstractions: networks, middleware tools, and application framework. It presents data consistency models suited for requirements of innovative distributed shared memory applications. The book also focuses on distributed processing of big data, representation of distributed knowledge and management of distributed intelligence via distributed agents. To aid in understanding how these concepts apply to real-world situations, the work presents a case study on building a P2P Integrated E-Learning system. Downloadable lecture slides are included to help professors and instructors convey key concepts to their students. <p>Additional topics discussed in <i>Distributed Systems: Theory and Applications </i>include: <ul><li> Network issues and high-level communication tools</li> <li> Software tools for implementations of distributed middleware.</li> <li> Data sharing across distributed components through publish and subscribe-based message diffusion, gossip protocol, P2P architecture and distributed shared memory.</li> <li> Consensus, distributed coordination, and advanced middleware for building large distributed applications</li> <li> Distributed data and knowledge management</li> <li> Autonomy in distributed systems, multi-agent architecture</li> <li> Trust in distributed systems, distributed ledger, Blockchain and related technologies.</li></ul> <p>Researchers, industry professionals, and students in the fields of science, technology, and medicine will be able to use <i>Distributed Systems: Theory and Applications </i>as a comprehensive textbook resource for understanding distributed systems, the specifics behind the modern elements which relate to them, and their practical applications.
<p>About the Authors xv</p> <p>Preface xvii</p> <p>Acknowledgments xxi</p> <p>Acronyms xxiii</p> <p><b>1 Introduction 1</b></p> <p>1.1 Advantages of Distributed Systems 1</p> <p>1.2 Defining Distributed Systems 3</p> <p>1.3 Challenges of a Distributed System 5</p> <p>1.4 Goals of Distributed System 6</p> <p>1.4.1 Single System View 7</p> <p>1.4.2 Hiding Distributions 7</p> <p>1.4.3 Degrees and Distribution of Hiding 9</p> <p>1.4.4 Interoperability 10</p> <p>1.4.5 Dynamic Reconfiguration 10</p> <p>1.5 Architectural Organization 11</p> <p>1.6 Organization of the Book 12</p> <p>Bibliography 13</p> <p><b>2 The Internet 15</b></p> <p>2.1 Origin and Organization 15</p> <p>2.1.1 ISPs and the Topology of the Internet 17</p> <p>2.2 Addressing the Nodes 17</p> <p>2.3 Network Connection Protocol 20</p> <p>2.3.1 IP Protocol 22</p> <p>2.3.2 Transmission Control Protocol 22</p> <p>2.3.3 User Datagram Protocol 22</p> <p>2.4 Dynamic Host Control Protocol 23</p> <p>2.5 Domain Name Service 24</p> <p>2.5.1 Reverse DNS Lookup 27</p> <p>2.5.2 Client Server Architecture 30</p> <p>2.6 Content Distribution Network 32</p> <p>2.7 Conclusion 34</p> <p>Exercises 34</p> <p>Bibliography 35</p> <p><b>3 Process to Process Communication 37</b></p> <p>3.1 Communication Types and Interfaces 38</p> <p>3.1.1 Sequential Type 38</p> <p>3.1.2 Declarative Type 39</p> <p>3.1.3 Shared States 40</p> <p>3.1.4 Message Passing 41</p> <p>3.1.5 Communication Interfaces 41</p> <p>3.2 Socket Programming 42</p> <p>3.2.1 Socket Data Structures 43</p> <p>3.2.2 Socket Calls 44</p> <p>3.3 Remote Procedure Call 48</p> <p>3.3.1 Xml RPC 52</p> <p>3.4 Remote Method Invocation 55</p> <p>3.5 Conclusion 59</p> <p>Exercises 59</p> <p>Additional Web Resources 61</p> <p>Bibliography 61</p> <p><b>4 Microservices, Containerization, and MPI 63</b></p> <p>4.1 Microservice Architecture 64</p> <p>4.2 REST Requests and APIs 66</p> <p>4.2.1 Weather Data Using REST API 67</p> <p>4.3 Cross Platform Applications 68</p> <p>4.4 Message Passing Interface 78</p> <p>4.4.1 Process Communication Models 78</p> <p>4.4.2 Programming with MPI 81</p> <p>4.5 Conclusion 87</p> <p>Exercises 88</p> <p>Additional Internet Resources 89</p> <p>Bibliography 89</p> <p><b>5 Clock Synchronization and Event Ordering 91</b></p> <p>5.1 The Notion of Clock Time 92</p> <p>5.2 External Clock Based Mechanisms 93</p> <p>5.2.1 Cristian’s Algorithm 93</p> <p>5.2.2 Berkeley Clock Protocol 94</p> <p>5.2.3 Network Time Protocol 95</p> <p>5.2.3.1 Symmetric Mode of Operation 96</p> <p>5.3 Events and Temporal Ordering 97</p> <p>5.3.1 Causal Dependency 99</p> <p>5.4 Logical Clock 99</p> <p>5.5 Causal Ordering of Messages 106</p> <p>5.6 Multicast Message Ordering 107</p> <p>5.6.1 Implementing FIFO Multicast 110</p> <p>5.6.2 Implementing Causal Ordering 112</p> <p>5.6.3 Implementing Total Ordering 113</p> <p>5.6.4 Reliable Multicast 114</p> <p>5.7 Interval Events 115</p> <p>5.7.1 Conceptual Neighborhood 116</p> <p>5.7.2 Spatial Events 118</p> <p>5.8 Conclusion 120</p> <p>Exercises 121</p> <p>Bibliography 123</p> <p><b>6 Global States and Termination Detection 127</b></p> <p>6.1 Cuts and Global States 127</p> <p>6.1.1 Global States 132</p> <p>6.1.2 Recording of Global States 134</p> <p>6.1.3 Problem in Recording Global State 138</p> <p>6.2 Liveness and Safety 140</p> <p>6.3 Termination Detection 143</p> <p>6.3.1 Snapshot Based Termination Detection 144</p> <p>6.3.2 Ring Method 145</p> <p>6.3.3 Tree Method 148</p> <p>6.3.4 Weight Throwing Method 151</p> <p>6.4 Conclusion 153</p> <p>Exercises 154</p> <p>Bibliography 156</p> <p><b>7 Leader Election 157</b></p> <p>7.1 Impossibility Result 158</p> <p>7.2 Bully Algorithm 159</p> <p>7.3 Ring-Based Algorithms 160</p> <p>7.3.1 Circulate IDs All the Way 161</p> <p>7.3.2 As Far as an ID Can Go 162</p> <p>7.4 Hirschberg and Sinclair Algorithm 163</p> <p>7.5 Distributed Spanning Tree Algorithm 167</p> <p>7.5.1 Single Initiator Spanning Tree 167</p> <p>7.5.2 Multiple Initiators Spanning Tree 170</p> <p>7.5.3 Minimum Spanning Tree 176</p> <p>7.6 Leader Election in Trees 176</p> <p>7.6.1 Overview of the Algorithm 176</p> <p>7.6.2 Activation Stage 177</p> <p>7.6.3 Saturation Stage 178</p> <p>7.6.4 Resolution Stage 179</p> <p>7.6.5 Two Nodes Enter SATURATED State 180</p> <p>7.7 Leased Leader Election 182</p> <p>7.8 Conclusion 184</p> <p>Exercises 185</p> <p>Bibliography 187</p> <p><b>8 Mutual Exclusion 189</b></p> <p>8.1 System Model 190</p> <p>8.2 Coordinator-Based Solution 192</p> <p>8.3 Assertion-Based Solutions 192</p> <p>8.3.1 Lamport’s Algorithm 192</p> <p>8.3.2 Improvement to Lamport’s Algorithm 195</p> <p>8.3.3 Quorum-Based Algorithms 196</p> <p>8.4 Token-Based Solutions 203</p> <p>8.4.1 Suzuki and Kasami’s Algorithm 203</p> <p>8.4.2 Singhal’s Heuristically Aided Algorithm 206</p> <p>8.4.3 Raymond’s Tree-Based Algorithm 212</p> <p>8.5 Conclusion 214</p> <p>Exercises 215</p> <p>Bibliography 216</p> <p><b>9 Agreements and Consensus 219</b></p> <p>9.1 System Model 220</p> <p>9.1.1 Failures in Distributed System 221</p> <p>9.1.2 Problem Definition 222</p> <p>9.1.3 Agreement Problem and Its Equivalence 223</p> <p>9.2 Byzantine General Problem (BGP) 225</p> <p>9.2.1 BGP Solution Using Oral Messages 228</p> <p>9.2.2 Phase King Algorithm 232</p> <p>9.3 Commit Protocols 233</p> <p>9.3.1 Two-Phase Commit Protocol 234</p> <p>9.3.2 Three-Phase Commit 238</p> <p>9.4 Consensus 239</p> <p>9.4.1 Consensus in Synchronous Systems 239</p> <p>9.4.2 Consensus in Asynchronous Systems 241</p> <p>9.4.3 Paxos Algorithm 242</p> <p>9.4.4 Raft Algorithm 244</p> <p>9.4.5 Leader Election 246</p> <p>9.5 Conclusion 248</p> <p>Exercises 249</p> <p>Bibliography 250</p> <p><b>10 Gossip Protocols 253</b></p> <p>10.1 Direct Mail 254</p> <p>10.2 Generic Gossip Protocol 255</p> <p>10.3 Anti-entropy 256</p> <p>10.3.1 Push-Based Anti-Entropy 257</p> <p>10.3.2 Pull-Based Anti-Entropy 258</p> <p>10.3.3 Hybrid Anti-Entropy 260</p> <p>10.3.4 Control and Propagation in Anti-Entropy 260</p> <p>10.4 Rumor-mongering Gossip 261</p> <p>10.4.1 Analysis of Rumor Mongering 262</p> <p>10.4.2 Fault-Tolerance 265</p> <p>10.5 Implementation Issues 265</p> <p>10.5.1 Network-Related Issues 266</p> <p>10.6 Applications of Gossip 267</p> <p>10.6.1 Peer Sampling 267</p> <p>10.6.2 Failure Detectors 270</p> <p>10.6.3 Distributed Social Networking 271</p> <p>10.7 Gossip in IoT Communication 273</p> <p>10.7.1 Context-Aware Gossip 273</p> <p>10.7.2 Flow-Aware Gossip 274</p> <p>10.7.2.1 Fire Fly Gossip 274</p> <p>10.7.2.2 Trickle 275</p> <p>10.8 Conclusion 278</p> <p>Exercises 279</p> <p>Bibliography 280</p> <p><b>11 Message Diffusion Using Publish and Subscribe 283</b></p> <p>11.1 Publish and Subscribe Paradigm 284</p> <p>11.1.1 Broker Network 285</p> <p>11.2 Filters and Notifications 287</p> <p>11.2.1 Subscription and Advertisement 288</p> <p>11.2.2 Covering Relation 288</p> <p>11.2.3 Merging Filters 290</p> <p>11.2.4 Algorithms 291</p> <p>11.3 Notification Service 294</p> <p>11.3.1 Siena 294</p> <p>11.3.2 Rebeca 295</p> <p>11.3.3 Routing of Notification 296</p> <p>11.4 MQTT 297</p> <p>11.5 Advanced Message Queuing Protocol 299</p> <p>11.6 Effects of Technology on Performance 301</p> <p>11.7 Conclusions 303</p> <p>Exercises 304</p> <p>Bibliography 305</p> <p><b>12 Peer-to-Peer Systems 309</b></p> <p>12.1 The Origin and the Definition of P2P 310</p> <p>12.2 P2P Models 311</p> <p>12.2.1 Routing in P2P Network 312</p> <p>12.3 Chord Overlay 313</p> <p>12.4 Pastry 321</p> <p>12.5 Can 325</p> <p>12.6 Kademlia 327</p> <p>12.7 Conclusion 331</p> <p>Exercises 332</p> <p>Bibliography 333</p> <p><b>13 Distributed Shared Memory 337</b></p> <p>13.1 Multicore and S-DSM 338</p> <p>13.1.1 Coherency by Delegation to a Central Server 339</p> <p>13.2 Manycore Systems and S-DSM 340</p> <p>13.3 Programming Abstractions 341</p> <p>13.3.1 MapReduce 341</p> <p>13.3.2 OpenMP 343</p> <p>13.3.3 Merging Publish and Subscribe with DSM 345</p> <p>13.4 Memory Consistency Models 347</p> <p>13.4.1 Sequential Consistency 349</p> <p>13.4.2 Linearizability or Atomic Consistency 351</p> <p>13.4.3 Relaxed Consistency Models 352</p> <p>13.4.3.1 Release Consistency 356</p> <p>13.4.4 Comparison of Memory Models 357</p> <p>13.5 DSM Access Algorithms 358</p> <p>13.5.1 Central Sever Algorithm 359</p> <p>13.5.2 Migration Algorithm 360</p> <p>13.5.3 Read Replication Algorithm 361</p> <p>13.5.4 Full Replication Algorithm 362</p> <p>13.6 Conclusion 364</p> <p>Exercises 364</p> <p>Bibliography 367</p> <p><b>14 Distributed Data Management 371</b></p> <p>14.1 Distributed Storage Systems 372</p> <p>14.1.1 Raid 372</p> <p>14.1.2 Storage Area Networks 372</p> <p>14.1.3 Cloud Storage 373</p> <p>14.2 Distributed File Systems 375</p> <p>14.3 Distributed Index 376</p> <p>14.4 NoSQL Databases 377</p> <p>14.4.1 Key-Value and Document Databases 378</p> <p>14.4.1.1 MapReduce Algorithm 380</p> <p>14.4.2 Wide Column Databases 381</p> <p>14.4.3 Graph Databases 382</p> <p>14.4.3.1 Pregel Algorithm 384</p> <p>14.5 Distributed Data Analytics 386</p> <p>14.5.1 Distributed Clustering Algorithms 388</p> <p>14.5.1.1 Distributed K-Means Clustering Algorithm 388</p> <p>14.5.2 Stream Clustering 391</p> <p>14.5.2.1 BIRCH Algorithm 392</p> <p>14.6 Conclusion 393</p> <p>Exercises 394</p> <p>Bibliography 395</p> <p><b>15 Distributed Knowledge Management 399</b></p> <p>15.1 Distributed Knowledge 400</p> <p>15.2 Distributed Knowledge Representation 401</p> <p>15.2.1 Resource Description Framework (RDF) 401</p> <p>15.2.2 Web Ontology Language (OWL) 406</p> <p>15.3 Linked Data 407</p> <p>15.3.1 Friend of a Friend 407</p> <p>15.3.2 DBpedia 408</p> <p>15.4 Querying Distributed Knowledge 409</p> <p>15.4.1 SPARQL Query Language 410</p> <p>15.4.2 SPARQL Query Semantics 411</p> <p>15.4.3 SPARQL Query Processing 413</p> <p>15.4.4 Distributed SPARQL Query Processing 414</p> <p>15.4.5 Federated and Peer-to-Peer SPARQL Query Processing 416</p> <p>15.5 Data Integration in Distributed Sensor Networks 421</p> <p>15.5.1 Semantic Data Integration 422</p> <p>15.5.2 Data Integration in Constrained Systems 424</p> <p>15.6 Conclusion 427</p> <p>Exercises 428</p> <p>Bibliography 429</p> <p><b>16 Distributed Intelligence 433</b></p> <p>16.1 Agents and Multi-Agent Systems 434</p> <p>16.1.1 Agent Embodiment 436</p> <p>16.1.2 Mobile Agents 436</p> <p>16.1.3 Multi-Agent Systems 437</p> <p>16.2 Communication in Agent-Based Systems 438</p> <p>16.2.1 Agent Communication Protocols 439</p> <p>16.2.2 Interaction Protocols 440</p> <p>16.2.2.1 Request Interaction Protocol 441</p> <p>16.3 Agent Middleware 441</p> <p>16.3.1 FIPA Reference Model 442</p> <p>16.3.2 FIPA Compliant Middleware 443</p> <p>16.3.2.1 JADE: Java Agent Development Environment 443</p> <p>16.3.2.2 MobileC 443</p> <p>16.3.3 Agent Migration 444</p> <p>16.4 Agent Coordination 445</p> <p>16.4.1 Planning 447</p> <p>16.4.1.1 Distributed Planning Paradigms 447</p> <p>16.4.1.2 Distributed Plan Representation and Execution 448</p> <p>16.4.2 Task Allocation 450</p> <p>16.4.2.1 Contract-Net Protocol 450</p> <p>16.4.2.2 Allocation of Multiple Tasks 452</p> <p>16.4.3 Coordinating Through the Environment 453</p> <p>16.4.3.1 Construct-Ant-Solution 455</p> <p>16.4.3.2 Update-Pheromone 456</p> <p>16.4.4 Coordination Without Communication 456</p> <p>16.5 Conclusion 456</p> <p>Exercises 457</p> <p>Bibliography 459</p> <p><b>17 Distributed Ledger 461</b></p> <p>17.1 Cryptographic Techniques 462</p> <p>17.2 Distributed Ledger Systems 464</p> <p>17.2.1 Properties of Distributed Ledger Systems 465</p> <p>17.2.2 A Framework for Distributed Ledger Systems 466</p> <p>17.3 Blockchain 467</p> <p>17.3.1 Distributed Consensus in Blockchain 468</p> <p>17.3.2 Forking 470</p> <p>17.3.3 Distributed Asset Tracking 471</p> <p>17.3.4 Byzantine Fault Tolerance and Proof of Work 472</p> <p>17.4 Other Techniques for Distributed Consensus 473</p> <p>17.4.1 Alternative Proofs 473</p> <p>17.4.2 Non-linear Data Structures 474</p> <p>17.4.2.1 Tangle 474</p> <p>17.4.2.2 Hashgraph 476</p> <p>17.5 Scripts and Smart Contracts 480</p> <p>17.6 Distributed Ledgers for Cyber-Physical Systems 483</p> <p>17.6.1 Layered Architecture 484</p> <p>17.6.2 Smart Contract in Cyber-Physical Systems 486</p> <p>17.7 Conclusion 486</p> <p>Exercises 487</p> <p>Bibliography 488</p> <p><b>18 Case Study 491</b></p> <p>18.1 Collaborative E-Learning Systems 492</p> <p>18.2 P2P E-Learning System 493</p> <p>18.2.1 Web Conferencing Versus P2P-IPS 495</p> <p>18.3 P2P Shared Whiteboard 497</p> <p>18.3.1 Repainting Shared Whiteboard 497</p> <p>18.3.2 Consistency of Board View at Peers 498</p> <p>18.4 P2P Live Streaming 500</p> <p>18.4.1 Peer Joining 500</p> <p>18.4.2 Peer Leaving 503</p> <p>18.4.3 Handling “Ask Doubt” 504</p> <p>18.5 P2P-IPS for Stored Contents 504</p> <p>18.5.1 De Bruijn Graphs for DHT Implementation 505</p> <p>18.5.2 Node Information Structure 507</p> <p>18.5.2.1 Join Example 510</p> <p>18.5.3 Leaving of Peers 510</p> <p>18.6 Searching, Sharing, and Indexing 511</p> <p>18.6.1 Pre-processing of Files 511</p> <p>18.6.2 File Indexing 512</p> <p>18.6.3 File Lookup and Download 512</p> <p>18.7 Annotations and Discussion Forum 513</p> <p>18.7.1 Annotation Format 513</p> <p>18.7.2 Storing Annotations 514</p> <p>18.7.3 Audio and Video Annotation 514</p> <p>18.7.4 PDF Annotation 514</p> <p>18.7.5 Posts, Comments, and Announcements 514</p> <p>18.7.6 Synchronization of Posts and Comments 515</p> <p>18.7.6.1 Epidemic Dissemination 516</p> <p>18.7.6.2 Reconciliation 516</p> <p>18.8 Simulation Results 516</p> <p>18.8.1 Live Streaming and Shared Whiteboard 517</p> <p>18.8.2 De Bruijn Overlay 518</p> <p>18.9 Conclusion 520</p> <p>Bibliography 521</p> <p>Index 525</p>
<p><b>Ratan K. Ghosh, PhD,</b> is formerly a Professor of the Department of CSE at IIT Kanpur. At present, he is affiliated to BITS-Mesra as an Adjunct Professor and to Kaziranga University-Jorhat as a Distinguished Visiting Professor, Mentor and Advisor. He is a Life Member of ACM. He authored the Springer Research Monograph titled <i>Wireless Networking and Mobile Data Management</i> (April 2017). <p><b>Hiranmay Ghosh, PhD,</b> is a former Adviser and Principal Scientist of TCS Research. He received his PhD degree from IIT-Delhi and his B.Tech. degree from Calcutta University. He is a Senior Member of IEEE, Life Member of IUPRAI, and a Member of ACM. He authored the Wiley title <i>Computational Models for Cognitive Vision</i> (2020) and co-authored of the CRC Press title <i>Multimedia Ontology: Representation and Applications</i> (2015).
<p><b>Comprehensive textbook resource on distributed systems—integrates foundational topics with advanced topics of contemporary importance within the field</b> <p><i>Distributed Systems: Theory and Applications</i> is organized around three layers of abstractions: networks, middleware tools, and application framework. It presents data consistency models suited for requirements of innovative distributed shared memory applications. The book also focuses on distributed processing of big data, representation of distributed knowledge and management of distributed intelligence via distributed agents. To aid in understanding how these concepts apply to real-world situations, the work presents a case study on building a P2P Integrated E-Learning system. Downloadable lecture slides are included to help professors and instructors convey key concepts to their students. <p>Additional topics discussed in <i>Distributed Systems: Theory and Applications </i>include: <ul><li> Network issues and high-level communication tools</li> <li> Software tools for implementations of distributed middleware.</li> <li> Data sharing across distributed components through publish and subscribe-based message diffusion, gossip protocol, P2P architecture and distributed shared memory.</li> <li> Consensus, distributed coordination, and advanced middleware for building large distributed applications</li> <li> Distributed data and knowledge management</li> <li> Autonomy in distributed systems, multi-agent architecture</li> <li> Trust in distributed systems, distributed ledger, Blockchain and related technologies.</li></ul> <p>Researchers, industry professionals, and students in the fields of science, technology, and medicine will be able to use <i>Distributed Systems: Theory and Applications </i>as a comprehensive textbook resource for understanding distributed systems, the specifics behind the modern elements which relate to them, and their practical applications.

Diese Produkte könnten Sie auch interessieren:

Symbian OS Explained
Symbian OS Explained
von: Jo Stichbury
PDF ebook
32,99 €
Symbian OS Internals
Symbian OS Internals
von: Jane Sales
PDF ebook
56,99 €
Parallel Combinatorial Optimization
Parallel Combinatorial Optimization
von: El-Ghazali Talbi
PDF ebook
120,99 €