Preface |
|
xvii | |
|
|
1 | (32) |
|
Definition of a Distributed System |
|
|
2 | (1) |
|
|
3 | (14) |
|
Making Resources Accessible |
|
|
3 | (1) |
|
Distribution Transparency |
|
|
4 | (3) |
|
|
7 | (2) |
|
|
9 | (7) |
|
|
16 | (1) |
|
Types of Distributed Systems |
|
|
17 | (13) |
|
Distributed Computing Systems |
|
|
17 | (3) |
|
Distributed Information Systems |
|
|
20 | (4) |
|
Distributed Pervasive Systems |
|
|
24 | (6) |
|
|
30 | (3) |
|
|
33 | (36) |
|
|
34 | (2) |
|
|
36 | (18) |
|
Centralized Architectures |
|
|
36 | (7) |
|
Decentralized Architectures |
|
|
43 | (9) |
|
|
52 | (2) |
|
Architectures Versus Middleware |
|
|
54 | (5) |
|
|
55 | (2) |
|
General Approaches to Adaptive Software |
|
|
57 | (1) |
|
|
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) |
|
|
66 | (3) |
|
|
69 | (46) |
|
|
70 | (9) |
|
|
70 | (5) |
|
Threads in Distributed Systems |
|
|
75 | (4) |
|
|
79 | (3) |
|
The Role of Virtualization in Distributed Systems |
|
|
79 | (1) |
|
Architectures of Virtual Machines |
|
|
80 | (2) |
|
|
82 | (6) |
|
Networked User Interfaces |
|
|
82 | (5) |
|
Client-Side Software for Distribution Transparency |
|
|
87 | (1) |
|
|
88 | (15) |
|
|
88 | (4) |
|
|
92 | (6) |
|
|
98 | (5) |
|
|
103 | (9) |
|
Approaches to Code Migration |
|
|
103 | (4) |
|
Migration and Local Resources |
|
|
107 | (3) |
|
Migration in Heterogeneous Systems |
|
|
110 | (2) |
|
|
112 | (3) |
|
|
115 | (64) |
|
|
116 | (9) |
|
|
116 | (8) |
|
|
124 | (1) |
|
|
125 | (15) |
|
|
126 | (4) |
|
|
130 | (4) |
|
|
134 | (1) |
|
|
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) |
|
|
163 | (3) |
|
|
166 | (9) |
|
Application-Level Multicasting |
|
|
166 | (4) |
|
Gossip-Based Data Dissemination |
|
|
170 | (5) |
|
|
175 | (4) |
|
|
179 | (52) |
|
Names, Identifiers, and Addresses |
|
|
180 | (2) |
|
|
182 | (13) |
|
|
183 | (3) |
|
|
186 | (2) |
|
|
188 | (3) |
|
|
191 | (4) |
|
|
195 | (22) |
|
|
195 | (3) |
|
|
198 | (4) |
|
The Implementation of a Name Space |
|
|
202 | (7) |
|
Example: The Domain Name System |
|
|
209 | (8) |
|
|
217 | (14) |
|
|
217 | (1) |
|
Hierarchical Implementations: LDAP |
|
|
218 | (4) |
|
Decentralized Implementations |
|
|
222 | (9) |
|
|
|
|
231 | (42) |
|
|
232 | (12) |
|
|
233 | (3) |
|
Global Positioning System |
|
|
236 | (2) |
|
Clock Synchronization Algorithms |
|
|
238 | (6) |
|
|
244 | (8) |
|
|
244 | (4) |
|
|
248 | (4) |
|
|
252 | (8) |
|
|
252 | (1) |
|
|
253 | (1) |
|
A Decentralized Algorithm |
|
|
254 | (1) |
|
|
255 | (3) |
|
|
258 | (1) |
|
A Comparison of the Four Algorithms |
|
|
259 | (1) |
|
Global Positioning of Nodes |
|
|
260 | (3) |
|
|
263 | (7) |
|
Traditional Election Algorithms |
|
|
264 | (3) |
|
Elections in Wireless Environments |
|
|
267 | (2) |
|
Elections in Large-Scale Systems |
|
|
269 | (1) |
|
|
270 | (3) |
|
Consistency and Replication |
|
|
273 | (48) |
|
|
274 | (2) |
|
|
274 | (1) |
|
Replication as Scaling Technique |
|
|
275 | (1) |
|
Data-Centric Consistency Models |
|
|
276 | (12) |
|
|
277 | (4) |
|
Consistent Ordering of Operations |
|
|
281 | (7) |
|
Client-Centric Consistency Models |
|
|
288 | (8) |
|
|
289 | (2) |
|
|
291 | (1) |
|
|
292 | (2) |
|
|
294 | (1) |
|
|
295 | (1) |
|
|
296 | (10) |
|
|
296 | (2) |
|
Content Replication and Placement |
|
|
298 | (4) |
|
|
302 | (4) |
|
|
306 | (11) |
|
|
306 | (2) |
|
|
308 | (3) |
|
Replicated-Write Protocols |
|
|
311 | (2) |
|
Cache-Coherence Protocols |
|
|
313 | (2) |
|
Implementing Client-Centric Consistency |
|
|
315 | (2) |
|
|
317 | (4) |
|
|
321 | (56) |
|
Introduction to Fault Tolerance |
|
|
322 | (6) |
|
|
322 | (2) |
|
|
324 | (2) |
|
Failure Masking by Redundancy |
|
|
326 | (2) |
|
|
328 | (8) |
|
|
328 | (2) |
|
Failure Masking and Replication |
|
|
330 | (1) |
|
Agreement in Faulty Systems |
|
|
331 | (4) |
|
|
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) |
|
|
348 | (7) |
|
|
355 | (8) |
|
|
355 | (5) |
|
|
360 | (3) |
|
|
363 | (10) |
|
|
363 | (3) |
|
|
366 | (3) |
|
|
369 | (3) |
|
Recovery-Oriented Computing |
|
|
372 | (1) |
|
|
373 | (4) |
|
|
377 | (66) |
|
|
378 | (18) |
|
Security Threats, Policies, and Mechanisms |
|
|
378 | (6) |
|
|
384 | (5) |
|
|
389 | (7) |
|
|
396 | (17) |
|
|
397 | (8) |
|
Message Integrity and Confidentiality |
|
|
405 | (3) |
|
Secure Group Communication |
|
|
408 | (3) |
|
|
411 | (2) |
|
|
413 | (15) |
|
General Issues in Access Control |
|
|
414 | (4) |
|
|
418 | (2) |
|
|
420 | (7) |
|
|
427 | (1) |
|
|
428 | (11) |
|
|
428 | (5) |
|
|
433 | (1) |
|
|
434 | (5) |
|
|
439 | (4) |
|
Distributed Object-Based Systems |
|
|
443 | (48) |
|
|
443 | (8) |
|
|
444 | (2) |
|
Example: Enterprise Java Beans |
|
|
446 | (2) |
|
Example: Globe Distributed Shared Objects |
|
|
448 | (3) |
|
|
451 | (5) |
|
|
451 | (3) |
|
Example: The Ice Runtime System |
|
|
454 | (2) |
|
|
456 | (10) |
|
Binding a Client to an Object |
|
|
456 | (2) |
|
Static versus Dynamic Remote Method Invocations |
|
|
458 | (2) |
|
|
460 | (1) |
|
|
461 | (3) |
|
|
464 | (2) |
|
|
466 | (4) |
|
|
467 | (2) |
|
|
469 | (1) |
|
|
470 | (2) |
|
Consistency and Replication |
|
|
472 | (5) |
|
|
472 | (3) |
|
|
475 | (2) |
|
|
477 | (4) |
|
Example: Fault-Tolerant Corba |
|
|
477 | (3) |
|
Example: Fault-Tolerant Java |
|
|
480 | (1) |
|
|
481 | (6) |
|
|
482 | (4) |
|
Security for Remote Objects |
|
|
486 | (1) |
|
|
487 | (4) |
|
|
491 | (54) |
|
|
491 | (10) |
|
Client-Server Architectures |
|
|
491 | (5) |
|
Cluster-Based Distributed File Systems |
|
|
496 | (3) |
|
|
499 | (2) |
|
|
501 | (1) |
|
|
502 | (4) |
|
|
502 | (1) |
|
|
503 | (2) |
|
File-Oriented Communication in Plan 9 |
|
|
505 | (1) |
|
|
506 | (7) |
|
|
506 | (6) |
|
Constructing a Global Name Space |
|
|
512 | (1) |
|
|
513 | (6) |
|
Semantics of File Sharing |
|
|
513 | (3) |
|
|
516 | (2) |
|
|
518 | (1) |
|
Consistency and Replication |
|
|
519 | (10) |
|
|
520 | (4) |
|
|
524 | (2) |
|
Replication in Peer-to-Peer File Systems |
|
|
526 | (2) |
|
File Replication in Grid Systems |
|
|
528 | (1) |
|
|
529 | (3) |
|
Handling Byzantine Failures |
|
|
529 | (2) |
|
High Availability in Peer-to-Peer Systems |
|
|
531 | (1) |
|
|
532 | (9) |
|
|
533 | (3) |
|
Decentralized Authentication |
|
|
536 | (3) |
|
Secure Peer-to-Peer File-Sharing Systems |
|
|
539 | (2) |
|
|
541 | (4) |
|
Distributed Web-Based Systems |
|
|
545 | (44) |
|
|
546 | (8) |
|
Traditional Web-Based Systems |
|
|
546 | (5) |
|
|
551 | (3) |
|
|
554 | (6) |
|
|
554 | (2) |
|
|
556 | (2) |
|
|
558 | (2) |
|
|
560 | (7) |
|
Hypertext Transfer Protocol |
|
|
560 | (6) |
|
Simple Object Access Protocol |
|
|
566 | (1) |
|
|
567 | (2) |
|
|
569 | (1) |
|
Consistency and Replication |
|
|
570 | (12) |
|
|
571 | (2) |
|
Replication for Web Hosting Systems |
|
|
573 | (6) |
|
Replication of Web Applications |
|
|
579 | (3) |
|
|
582 | (2) |
|
|
584 | (1) |
|
|
585 | (4) |
|
Distributed Coordination-Based Systems |
|
|
589 | (34) |
|
Introduction to Coordination Models |
|
|
589 | (2) |
|
|
591 | (10) |
|
|
592 | (1) |
|
Traditional Architectures |
|
|
593 | (3) |
|
Peer-to-Peer Architectures |
|
|
596 | (3) |
|
Mobility and Coordination |
|
|
599 | (2) |
|
|
601 | (1) |
|
|
601 | (3) |
|
|
601 | (2) |
|
Supporting Composite Subscriptions |
|
|
603 | (1) |
|
|
604 | (3) |
|
Describing Composite Events |
|
|
604 | (2) |
|
Matching Events and Subscriptions |
|
|
606 | (1) |
|
|
607 | (1) |
|
Consistency and Replication |
|
|
607 | (6) |
|
|
608 | (3) |
|
|
611 | (2) |
|
|
613 | (4) |
|
Reliable Publish-Subscribe Communication |
|
|
613 | (3) |
|
Fault Tolerance in Shared Dataspaces |
|
|
616 | (1) |
|
|
617 | (4) |
|
|
618 | (2) |
|
|
620 | (1) |
|
|
621 | (2) |
|
Suggestions for Further Reading and Bibliography |
|
|
623 | (46) |
|
Suggestions for Further Reading |
|
|
623 | (11) |
|
Introduction and General Works |
|
|
623 | (1) |
|
|
624 | (1) |
|
|
625 | (1) |
|
|
626 | (1) |
|
|
626 | (1) |
|
|
627 | (1) |
|
Consistency and Replication |
|
|
628 | (1) |
|
|
629 | (1) |
|
|
630 | (1) |
|
Distributed Object-Based Systems |
|
|
631 | (1) |
|
|
632 | (1) |
|
Distributed Web-Based Systems |
|
|
632 | (1) |
|
Distributed Coordination-Based Systems |
|
|
633 | (1) |
|
Alphabetical Bibliography |
|
|
634 | (35) |
Index |
|
669 | |