did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780132392273

Distributed Systems Principles and Paradigms

by ;
  • ISBN13:

    9780132392273

  • ISBN10:

    0132392275

  • Edition: 2nd
  • Format: Paperback
  • Copyright: 2006-10-02
  • Publisher: Pearson

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $196.00 Save up to $78.40
  • Rent Book $117.60
    Add to Cart Free Shipping Icon Free Shipping

    TERM
    PRICE
    DUE
    USUALLY SHIPS IN 24-48 HOURS
    *This item is part of an exclusive publisher rental program and requires an additional convenience fee. This fee will be reflected in the shopping cart.

Supplemental Materials

What is included with this book?

Summary

Balanced, systematic coverage of principles, advanced concepts, and technologies of distributed systems. In this streamlined, updated edition of Tanenbaum and Van Steen's text, Distributed Systems: Principles and Paradigms, the authors present both the working details of distributed systems and the underlying technologies. Their presentation is clear, concise, and engaging, providing an excellent text for teachers and students alike.

Author Biography

Andrew S. Tanenbaum is currently Professor of Computer science at Vrije Universiteit in Amsterdam Maarten Van Steen is currently a professor at the Vrije Universiteit, Amsterdam

Table of Contents

Preface xvii
Introduction
1(32)
Definition of a Distributed System
2(1)
Goals
3(14)
Making Resources Accessible
3(1)
Distribution Transparency
4(3)
Openness
7(2)
Scalability
9(7)
Pitfalls
16(1)
Types of Distributed Systems
17(13)
Distributed Computing Systems
17(3)
Distributed Information Systems
20(4)
Distributed Pervasive Systems
24(6)
Summary
30(3)
Architectures
33(36)
Architectural Styles
34(2)
System Architectures
36(18)
Centralized Architectures
36(7)
Decentralized Architectures
43(9)
Hybrid Architectures
52(2)
Architectures Versus Middleware
54(5)
Interceptors
55(2)
General Approaches to Adaptive Software
57(1)
Discussion
58(1)
Self-Management in Distributed Systems
59(7)
The Feedback Control Model
60(1)
Example: Systems Monitoring with Astrolabe
61(2)
Example: Differentiating Replication Strategies in Globule
63(2)
Example: Automatic Component Repair Management in Jade
65(1)
Summary
66(3)
Processes
69(46)
Threads
70(9)
Introduction to Threads
70(5)
Threads in Distributed Systems
75(4)
Virtualization
79(3)
The Role of Virtualization in Distributed Systems
79(1)
Architectures of Virtual Machines
80(2)
Clients
82(6)
Networked User Interfaces
82(5)
Client-Side Software for Distribution Transparency
87(1)
Servers
88(15)
General Design Issues
88(4)
Server Clusters
92(6)
Managing Server Clusters
98(5)
Code Migration
103(9)
Approaches to Code Migration
103(4)
Migration and Local Resources
107(3)
Migration in Heterogeneous Systems
110(2)
Summary
112(3)
Communication
115(64)
Fundamentals
116(9)
Layered Protocols
116(8)
Types of Communication
124(1)
Remote Procedure Call
125(15)
Basic RPC Operation
126(4)
Parameter Passing
130(4)
Asynchronous RPC
134(1)
Example: DCE RPC
135(5)
Message-Oriented Communication
140(17)
Message-Oriented Transient Communication
141(4)
Message-Oriented Persistent Communication
145(7)
Example: IBM's WebSphere Message-Queuing System
152(5)
Stream-Oriented Communication
157(9)
Support for Continuous Media
158(2)
Streams and Quality of Service
160(3)
Stream Synchronization
163(3)
Multicast Communication
166(9)
Application-Level Multicasting
166(4)
Gossip-Based Data Dissemination
170(5)
Summary
175(4)
Naming
179(52)
Names, Identifiers, and Addresses
180(2)
Flat Naming
182(13)
Simple Solutions
183(3)
Home-Based Approaches
186(2)
Distributed Hash Tables
188(3)
Hierarchical Approaches
191(4)
Structured Naming
195(22)
Name Spaces
195(3)
Name Resolution
198(4)
The Implementation of a Name Space
202(7)
Example: The Domain Name System
209(8)
Attribute-Based Naming
217(14)
Directory Services
217(1)
Hierarchical Implementations: LDAP
218(4)
Decentralized Implementations
222(9)
Summary
Synchronization
231(42)
Clock Synchronization
232(12)
Physical Clocks
233(3)
Global Positioning System
236(2)
Clock Synchronization Algorithms
238(6)
Logical Clocks
244(8)
Lamport's Logical Clocks
244(4)
Vector Clocks
248(4)
Mutual Exclusion
252(8)
Overview
252(1)
A Centralized Algorithm
253(1)
A Decentralized Algorithm
254(1)
A Distributed Algorithm
255(3)
A Token Ring Algorithm
258(1)
A Comparison of the Four Algorithms
259(1)
Global Positioning of Nodes
260(3)
Election Algorithms
263(7)
Traditional Election Algorithms
264(3)
Elections in Wireless Environments
267(2)
Elections in Large-Scale Systems
269(1)
Summary
270(3)
Consistency and Replication
273(48)
Introduction
274(2)
Reasons for Replication
274(1)
Replication as Scaling Technique
275(1)
Data-Centric Consistency Models
276(12)
Continuous Consistency
277(4)
Consistent Ordering of Operations
281(7)
Client-Centric Consistency Models
288(8)
Eventual Consistency
289(2)
Monotonic Reads
291(1)
Monotonic Writes
292(2)
Read Your Writes
294(1)
Writes Follow Reads
295(1)
Replica Management
296(10)
Replica-Server Placement
296(2)
Content Replication and Placement
298(4)
Content Distribution
302(4)
Consistency Protocols
306(11)
Continuous Consistency
306(2)
Primary-Based Protocols
308(3)
Replicated-Write Protocols
311(2)
Cache-Coherence Protocols
313(2)
Implementing Client-Centric Consistency
315(2)
Summary
317(4)
Fault Tolerance
321(56)
Introduction to Fault Tolerance
322(6)
Basic Concepts
322(2)
Failure Models
324(2)
Failure Masking by Redundancy
326(2)
Process Resilience
328(8)
Design Issues
328(2)
Failure Masking and Replication
330(1)
Agreement in Faulty Systems
331(4)
Failure Detection
335(1)
Reliable Client-Server Communication
336(7)
Point-to-Point Communication
337(1)
RPC Semantics in the Presence of Failures
337(6)
Reliable Group Communication
343(12)
Basic Reliable-Multicasting Schemes
343(2)
Scalability in Reliable Multicasting
345(3)
Atomic Multicast
348(7)
Distributed Commit
355(8)
Two-Phase Commit
355(5)
Three-Phase Commit
360(3)
Recovery
363(10)
Introduction
363(3)
Checkpointing
366(3)
Message Logging
369(3)
Recovery-Oriented Computing
372(1)
Summary
373(4)
Security
377(66)
Introduction to Security
378(18)
Security Threats, Policies, and Mechanisms
378(6)
Design Issues
384(5)
Cryptography
389(7)
Secure Channels
396(17)
Authentication
397(8)
Message Integrity and Confidentiality
405(3)
Secure Group Communication
408(3)
Example: Kerberos
411(2)
Access Control
413(15)
General Issues in Access Control
414(4)
Firewalls
418(2)
Secure Mobile Code
420(7)
Denial of Service
427(1)
Security Management
428(11)
Key Management
428(5)
Secure Group Management
433(1)
Authorization Management
434(5)
Summary
439(4)
Distributed Object-Based Systems
443(48)
Architecture
443(8)
Distributed Objects
444(2)
Example: Enterprise Java Beans
446(2)
Example: Globe Distributed Shared Objects
448(3)
Processes
451(5)
Object Servers
451(3)
Example: The Ice Runtime System
454(2)
Communication
456(10)
Binding a Client to an Object
456(2)
Static versus Dynamic Remote Method Invocations
458(2)
Parameter Passing
460(1)
Example: Java RMI
461(3)
Object-Based Messaging
464(2)
Naming
466(4)
Corba Object References
467(2)
Globe Object References
469(1)
Synchronization
470(2)
Consistency and Replication
472(5)
Entry Consistency
472(3)
Replicated Invocations
475(2)
Fault Tolerance
477(4)
Example: Fault-Tolerant Corba
477(3)
Example: Fault-Tolerant Java
480(1)
Security
481(6)
Example: Globe
482(4)
Security for Remote Objects
486(1)
Summary
487(4)
Distributed File Systems
491(54)
Architecture
491(10)
Client-Server Architectures
491(5)
Cluster-Based Distributed File Systems
496(3)
Symmetric Architectures
499(2)
Processes
501(1)
Communication
502(4)
RPCs in NFS
502(1)
The RPC2 Subsystem
503(2)
File-Oriented Communication in Plan 9
505(1)
Naming
506(7)
Naming in NFS
506(6)
Constructing a Global Name Space
512(1)
Synchronization
513(6)
Semantics of File Sharing
513(3)
File Locking
516(2)
Sharing Files in Coda
518(1)
Consistency and Replication
519(10)
Client-Side Caching
520(4)
Server-Side Replication
524(2)
Replication in Peer-to-Peer File Systems
526(2)
File Replication in Grid Systems
528(1)
Fault Tolerance
529(3)
Handling Byzantine Failures
529(2)
High Availability in Peer-to-Peer Systems
531(1)
Security
532(9)
Security in NFS
533(3)
Decentralized Authentication
536(3)
Secure Peer-to-Peer File-Sharing Systems
539(2)
Summary
541(4)
Distributed Web-Based Systems
545(44)
Architecture
546(8)
Traditional Web-Based Systems
546(5)
Web Services
551(3)
Processes
554(6)
Clients
554(2)
The Apache Web Server
556(2)
Web Server Clusters
558(2)
Communication
560(7)
Hypertext Transfer Protocol
560(6)
Simple Object Access Protocol
566(1)
Naming
567(2)
Synchronization
569(1)
Consistency and Replication
570(12)
Web Proxy Caching
571(2)
Replication for Web Hosting Systems
573(6)
Replication of Web Applications
579(3)
Fault Tolerance
582(2)
Security
584(1)
Summary
585(4)
Distributed Coordination-Based Systems
589(34)
Introduction to Coordination Models
589(2)
Architectures
591(10)
Overall Approach
592(1)
Traditional Architectures
593(3)
Peer-to-Peer Architectures
596(3)
Mobility and Coordination
599(2)
Processes
601(1)
Communication
601(3)
Content-Based Routing
601(2)
Supporting Composite Subscriptions
603(1)
Naming
604(3)
Describing Composite Events
604(2)
Matching Events and Subscriptions
606(1)
Synchronization
607(1)
Consistency and Replication
607(6)
Static Approaches
608(3)
Dynamic Replication
611(2)
Fault Tolerance
613(4)
Reliable Publish-Subscribe Communication
613(3)
Fault Tolerance in Shared Dataspaces
616(1)
Security
617(4)
Confidentiality
618(2)
Secure Shared Dataspaces
620(1)
Summary
621(2)
Suggestions for Further Reading and Bibliography
623(46)
Suggestions for Further Reading
623(11)
Introduction and General Works
623(1)
Architectures
624(1)
Processes
625(1)
Communication
626(1)
Naming
626(1)
Synchronization
627(1)
Consistency and Replication
628(1)
Fault Tolerance
629(1)
Security
630(1)
Distributed Object-Based Systems
631(1)
Distributed File Systems
632(1)
Distributed Web-Based Systems
632(1)
Distributed Coordination-Based Systems
633(1)
Alphabetical Bibliography
634(35)
Index 669

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program