Skip to Content
Distributed systems: principles and paradigms

Distributed systems: principles and paradigms

Tanenbaum, Andrew S., 1944- author; Steen, Maarten van, author

For courses on Distributed Systems, Distributed Operating Systems, and Advanced Operating Systems focusing on distributed systems, found in departments of Computer Science, Computer Engineering and Electrical Engineering.   Very few textbooks today explore distributed systems in a manner appropriate for university students. In this unique text, esteemed authors Tanenbaum and van Steen provide full coverage of the field in a systematic way that can be readily used for teaching. No other text examines the underlying principles – and their applications to a wide variety of practical distributed systems – with this level of depth and clarity

Book. English.
Second edition.
All formats and editions (2)
Published Harlow, Essex, England: Pearson Education Limited, [2014]
Rate this

Available at all branches.

This item is not reservable because:

  • There are no reservable copies for this title. Please contact a member of library staff for further information.
  • National College Library – Four available in Main Lending 004.36

    Barcode Shelfmark Loan type Status
    39006010609149 Main Lending 004.36 Main Lending Available
    39006010583682 Main Lending 004.36 Main Lending Available
    39006010583708 Main Lending 004.36 Main Lending Available
    39006010583690 Main Lending 004.36 Main Lending Available
    39006010609131 Main Lending 004.36 Main Lending Due back 18th December

Details

Statement of responsibility: Andrew S. Tanenbaum, Maarten Van Steen
ISBN: 1292025522, 9781292025520
Note: Includes bibliographical references and index.
Note: Second edition originally published, 2007; previous edition, 2002.
Note: "Pearson new international edition".
Physical Description: II, 633 pages : illustrations (black and white) ; 28 cm.
Series: Pearson custom library
Subject: Distributed operating systems (Computers); Electronic data processing Distributed processing.
Series Title: Pearson custom library.

Contents

  1. CONTENTS
  2. 1 INTRODUCTION
  3. 1.1 DEFINITION OF A DISTRIBUTED SYSTEM
  4. 1.2 GOALS
  5. 1.2.1 Making Resources Accessible
  6. 1.2.2 Distribution Transparency
  7. 1.2.3 Openness
  8. 1.2.4 Scalability
  9. 1.2.5 Pitfalls
  10. 1.3 TYPES OF DISTRIBUTED SYSTEMS
  11. 1.3.1 Distributed Computing Systems
  12. 1.3.2 Distributed Information Systems
  13. 1.3.3 Distributed Pervasive Systems
  14. 1.4 SUMMARY
  15. 2 ARCHITECTURES
  16. 2.1 ARCHITECTURAL STYLES
  17. 2.2 SYSTEM ARCHITECTURES
  18. 2.2.1 Centralized Architectures
  19. 2.2.2 Decentralized Architectures
  20. 2.2.3 Hybrid Architectures
  21. 2.3 ARCHITECTURES VERSUS MIDDLEWARE
  22. 2.3.1 Interceptors
  23. 2.3.2 General Approaches to Adaptive Software
  24. 2.3.3 Discussion
  25. 2.4 SELF-MANAGEMENT IN DISTRIBUTED SYSTEMS
  26. 2.4.1 The Feedback Control Model
  27. 2.4.2 Example: Systems Monitoring with Astrolabe
  28. 2.4.3 Example: Differentiating Replication Strategies in Globule
  29. 2.4.4 Example: Automatic Component Repair Management in Jade
  30. 2.5 SUMMARY
  31. 3 PROCESSES
  32. 3.1 THREADS
  33. 3.1.1 Introduction to Threads
  34. 3.1.2 Threads in Distributed Systems
  35. 3.2 VIRTUALIZATION
  36. 3.2.1 The Role of Virtualization in Distributed Systems
  37. 3.2.2 Architectures of Virtual Machines
  38. 3.3 CLIENTS
  39. 3.3.1 Networked User Interfaces
  40. 3.3.2 Client-Side Software for Distribution Transparency
  41. 3.4 SERVERS
  42. 3.4.1 General Design Issues
  43. 3.4.2 Server Clusters
  44. 3.4.3 Managing Server Clusters
  45. 3.5 CODE MIGRATION
  46. 3.5.1 Approaches to Code Migration
  47. 3.5.2 Migration and Local Resources
  48. 3.5.3 Migration in Heterogeneous Systems
  49. 3.6 SUMMARY
  50. 4 COMMUNICATION
  51. 4.1 FUNDAMENTALS
  52. 4.1.1 Layered Protocols
  53. 4.1.2 Types of Communication
  54. 4.2 REMOTE PROCEDURE CALL
  55. 4.2.1 Basic RPC Operation
  56. 4.2.2 Parameter Passing
  57. 4.2.3 Asynchronous RPC
  58. 4.2.4 Example: DCE RPC
  59. 4.3 MESSAGE-ORIENTED COMMUNICATION
  60. 4.3.1 Message-Oriented Transient Communication
  61. 4.3.2 Message-Oriented Persistent Communication
  62. 4.3.3 Example: IBM’s WebSphere Message-Queuing System
  63. 4.4 STREAM-ORIENTED COMMUNICATION
  64. 4.4.1 Support for Continuous Media
  65. 4.4.2 Streams and Quality of Service
  66. 4.4.3 Stream Synchronization
  67. 4.5 MULTICAST COMMUNICATION
  68. 4.5.1 Application-Level Multicasting
  69. 4.5.2 Gossip-Based Data Dissemination
  70. 4.6 SUMMARY
  71. 5 NAMING
  72. 5.1 NAMES, IDENTIFIERS, AND ADDRESSES
  73. 5.2 FLAT NAMING
  74. 5.2.1 Simple Solutions
  75. 5.2.2 Home-Based Approaches
  76. 5.2.3 Distributed Hash Tables
  77. 5.2.4 Hierarchical Approaches
  78. 5.3 STRUCTURED NAMING
  79. 5.3.1 Name Spaces
  80. 5.3.2 Name Resolution
  81. 5.3.3 The Implementation of a Name Space
  82. 5.3.4 Example: The Domain Name System
  83. 5.4 ATTRIBUTE-BASED NAMING
  84. 5.4.1 Directory Services
  85. 5.4.2 Hierarchical Implementations: LDAP
  86. 5.4.3 Decentralized Implementations
  87. 5.5 SUMMARY
  88. 6 SYNCHRONIZATION
  89. 6.1 CLOCK SYNCHRONIZATION
  90. 6.1.1 Physical Clocks
  91. 6.1.2 Global Positioning System
  92. 6.1.3 Clock Synchronization Algorithms
  93. 6.2 LOGICAL CLOCKS
  94. 6.2.1 Lamport’s Logical Clocks
  95. 6.2.2 Vector Clocks
  96. 6.3 MUTUAL EXCLUSION
  97. 6.3.1 Overview
  98. 6.3.2 A Centralized Algorithm
  99. 6.3.3 A Decentralized Algorithm
  100. 6.3.4 A Distributed Algorithm
  101. 6.3.5 A Token Ring Algorithm
  102. 6.3.6 A Comparison of the Four Algorithms
  103. 6.4 GLOBAL POSITIONING OF NODES
  104. 6.5 ELECTION ALGORITHMS
  105. 6.5.1 Traditional Election Algorithms
  106. 6.5.2 Elections in Wireless Environments
  107. 6.5.3 Elections in Large-Scale Systems
  108. 6.6 SUMMARY
  109. 7 CONSISTENCY AND REPLICATION
  110. 7.1 INTRODUCTION
  111. 7.1.1 Reasons for Replication
  112. 7.1.2 Replication as Scaling Technique
  113. 7.2 DATA-CENTRIC CONSISTENCY MODELS
  114. 7.2.1 Continuous Consistency
  115. 7.2.2 Consistent Ordering of Operations
  116. 7.3 CLIENT-CENTRIC CONSISTENCY MODELS
  117. 7.3.1 Eventual Consistency
  118. 7.3.2 Monotonic Reads
  119. 7.3.3 Monotonic Writes
  120. 7.3.4 Read Your Writes
  121. 7.3.5 Writes Follow Reads
  122. 7.4 REPLICA MANAGEMENT
  123. 7.4.1 Replica-Server Placement
  124. 7.4.2 Content Replication and Placement
  125. 7.4.3 Content Distribution
  126. 7.5 CONSISTENCY PROTOCOLS
  127. 7.5.1 Continuous Consistency
  128. 7.5.2 Primary-Based Protocols
  129. 7.5.3 Replicated-Write Protocols
  130. 7.5.4 Cache-Coherence Protocols
  131. 7.5.5 Implementing Client-Centric Consistency
  132. 7.6 SUMMARY
  133. 8 FAULT TOLERANCE
  134. 8.1 INTRODUCTION TO FAULT TOLERANCE
  135. 8.1.1 Basic Concepts
  136. 8.1.2 Failure Models
  137. 8.1.3 Failure Masking by Redundancy
  138. 8.2 PROCESS RESILIENCE
  139. 8.2.1 Design Issues
  140. 8.2.2 Failure Masking and Replication
  141. 8.2.3 Agreement in Faulty Systems
  142. 8.2.4 Failure Detection
  143. 8.3 RELIABLE CLIENT-SERVER COMMUNICATION
  144. 8.3.1 Point-to-Point Communication
  145. 8.3.2 RPC Semantics in the Presence of Failures
  146. 8.4 RELIABLE GROUP COMMUNICATION
  147. 8.4.1 Basic Reliable-Multicasting Schemes
  148. 8.4.2 Scalability in Reliable Multicasting
  149. 8.4.3 Atomic Multicast
  150. 8.5 DISTRIBUTED COMMIT
  151. 8.5.1 Two-Phase Commit
  152. 8.5.2 Three-Phase Commit
  153. 8.6 RECOVERY
  154. 8.6.1 Introduction
  155. 8.6.2 Checkpointing
  156. 8.6.3 Message Logging
  157. 8.6.4 Recovery-Oriented Computing
  158. 8.7 SUMMARY
  159. 9 SECURITY
  160. 9.1 INTRODUCTION TO SECURITY
  161. 9.1.1 Security Threats, Policies, and Mechanisms
  162. 9.1.2 Design Issues
  163. 9.1.3 Cryptography
  164. 9.2 SECURE CHANNELS
  165. 9.2.1 Authentication
  166. 9.2.2 Message Integrity and Confidentiality
  167. 9.2.3 Secure Group Communication
  168. 9.2.4 Example: Kerberos
  169. 9.3 ACCESS CONTROL
  170. 9.3.1 General Issues in Access Control
  171. 9.3.2 Firewalls
  172. 9.3.3 Secure Mobile Code
  173. 9.3.4 Denial of Service
  174. 9.4 SECURITY MANAGEMENT
  175. 9.4.1 Key Management
  176. 9.4.2 Secure Group Management
  177. 9.4.3 Authorization Management
  178. 9.5 SUMMARY
  179. 10 DISTRIBUTED OBJECT-BASED SYSTEMS
  180. 10.1 ARCHITECTURE
  181. 10.1.1 Distributed Objects
  182. 10.1.2 Example: Enterprise Java Beans
  183. 10.1.3 Example: Globe Distributed Shared Objects
  184. 10.2 PROCESSES
  185. 10.2.1 Object Servers
  186. 10.2.2 Example: The Ice Runtime System
  187. 10.3 COMMUNICATION
  188. 10.3.1 Binding a Client to an Object
  189. 10.3.2 Static versus Dynamic Remote Method Invocations
  190. 10.3.3 Parameter Passing
  191. 10.3.4 Example: Java RMI
  192. 10.3.5 Object-Based Messaging
  193. 10.4 NAMING
  194. 10.4.1 CORBA Object References
  195. 10.4.2 Globe Object References
  196. 10.5 SYNCHRONIZATION
  197. 10.6 CONSISTENCY AND REPLICATION
  198. 10.6.1 Entry Consistency
  199. 10.6.2 Replicated Invocations
  200. 10.7 FAULT TOLERANCE
  201. 10.7.1 Example: Fault-Tolerant CORBA
  202. 10.7.2 Example: Fault-Tolerant Java
  203. 10.8 SECURITY
  204. 10.8.1 Example: Globe
  205. 10.8.2 Security for Remote Objects
  206. 10.9 SUMMARY
  207. 11 DISTRIBUTED FILE SYSTEMS
  208. 11.1 ARCHITECTURE
  209. 11.1.1 Client-Server Architectures
  210. 11.1.2 Cluster-Based Distributed File Systems
  211. 11.1.3 Symmetric Architectures
  212. 11.2 PROCESSES
  213. 11.3 COMMUNICATION
  214. 11.3.1 RPCs in NFS
  215. 11.3.2 The RPC2 Subsystem
  216. 11.3.3 File-Oriented Communication in Plan
  217. 11.4 NAMING
  218. 11.4.1 Naming in NFS
  219. 11.4.2 Constructing a Global Name Space
  220. 11.5 SYNCHRONIZATION
  221. 11.5.1 Semantics of File Sharing
  222. 11.5.2 File Locking
  223. 11.5.3 Sharing Files in Coda
  224. 11.6 CONSISTENCY AND REPLICATION
  225. 11.6.1 Client-Side Caching
  226. 11.6.2 Server-Side Replication
  227. 11.6.3 Replication in Peer-to-Peer File Systems
  228. 11.6.4 File Replication in Grid Systems
  229. 11.7 FAULT TOLERANCE
  230. 11.7.1 Handling Byzantine Failures
  231. 11.7.2 High Availability in Peer-to-Peer Systems
  232. 11.8 SECURITY
  233. 11.8.1 Security in NFS
  234. 11.8.2 Decentralized Authentication
  235. 11.8.3 Secure Peer-to-Peer File-Sharing Systems
  236. 11.9 SUMMARY
  237. 12 DISTRIBUTED WEB-BASED SYSTEMS
  238. 12.1 ARCHITECTURE
  239. 12.1.1 Traditional Web-Based Systems
  240. 12.1.2 Web Services
  241. 12.2 PROCESSES
  242. 12.2.1 Clients
  243. 12.2.2 The Apache Web Server
  244. 12.2.3 Web Server Clusters
  245. 12.3 COMMUNICATION
  246. 12.3.1 Hypertext Transfer Protocol
  247. 12.3.2 Simple Object Access Protocol
  248. 12.4 NAMING
  249. 12.5 SYNCHRONIZATION
  250. 12.6 CONSISTENCY AND REPLICATION
  251. 12.6.1 Web Proxy Caching
  252. 12.6.2 Replication for Web Hosting Systems
  253. 12.6.3 Replication of Web Applications
  254. 12.7 FAULT TOLERANCE
  255. 12.8 SECURITY
  256. 12.9 SUMMARY
  257. 13 DISTRIBUTED COORDINATION-BASED
  258. SYSTEMS
  259. 13.1 INTRODUCTION TO COORDINATION MODELS
  260. 13.2 ARCHITECTURES
  261. 13.2.1 Overall Approach
  262. 13.2.2 Traditional Architectures
  263. 13.2.3 Peer-to-Peer Architectures
  264. 13.2.4 Mobility and Coordination
  265. 13.3 PROCESSES
  266. 13.4 COMMUNICATION
  267. 13.4.1 Content-Based Routing
  268. 13.4.2 Supporting Composite Subscriptions
  269. 13.5 NAMING
  270. 13.5.1 Describing Composite Events
  271. 13.5.2 Matching Events and Subscriptions
  272. 13.6 SYNCHRONIZATION
  273. 13.7 CONSISTENCY AND REPLICATION
  274. 13.7.1 Static Approaches
  275. 13.7.2 Dynamic Replication
  276. 13.8 FAULT TOLERANCE
  277. 13.8.1 Reliable Publish-Subscribe Communication
  278. 13.8.2 Fault Tolerance in Shared Dataspaces
  279. 13.9 SECURITY
  280. 13.9.1 Confidentiality
  281. 13.9.2 Secure Shared Dataspaces
  282. 13.10 SUMMARY
  283. INDEX

Description

For courses on Distributed Systems, Distributed Operating Systems, and Advanced Operating Systems focusing on distributed systems, found in departments of Computer Science, Computer Engineering and Electrical Engineering.

 

Very few textbooks today explore distributed systems in a manner appropriate for university students. In this unique text, esteemed authors Tanenbaum and van Steen provide full coverage of the field in a systematic way that can be readily used for teaching. No other text examines the underlying principles – and their applications to a wide variety of practical distributed systems – with this level of depth and clarity.