Distributed Systems: Concepts and Design 9780132143011, 9789332575226, 2292302322, 2792802812, 0132143011

Broad and up-to-date coverage of the principles and practice in the fast moving area of Distributed Systems. Distribute

594 74 26MB

English Pages 1047 [1065] Year 2011

Report DMCA / Copyright

DOWNLOAD FILE

Distributed Systems: Concepts and Design
 9780132143011, 9789332575226, 2292302322, 2792802812, 0132143011

Table of contents :
Cover......Page 1
Title Page......Page 4
Copyright......Page 5
CONTENTS......Page 6
PREFACE......Page 12
ACKNOWLEDGEMENTS......Page 17
CH. 1_CHARACTERIZATION OF DISTRIBUTED SYSTEMS......Page 18
1.1 Introduction......Page 19
1.2 Examples of distributed systems......Page 20
1.3 Trends in distributed systems......Page 25
1.4 Focus on resource sharing......Page 31
1.5 Challenges......Page 33
1.6 Case study: The World Wide Web......Page 43
1.7 Summary......Page 50
EXERCISES......Page 51
CH. 2_SYSTEM MODELS......Page 54
2.1 Introduction......Page 55
2.2 Physical models......Page 56
2.3 Architectural models......Page 57
2.4 Fundamental models......Page 78
2.5 Summary......Page 93
EXERCISES......Page 94
CH. 3_NETWORKING AND INTERNETWORKING......Page 98
3.1 Introduction......Page 99
3.2 Types of network......Page 103
3.3 Network principles......Page 106
3.4 Internet protocols......Page 123
3.5 Case studies: Ethernet, WiFi and Bluetooth......Page 145
3.6 Summary......Page 158
EXERCISES......Page 159
CH. 4_INTERPROCESS COMMUNICATION......Page 162
4.1 Introduction......Page 163
4.2 The API for the internet protocols......Page 164
4.3 External data representation and marshalling......Page 175
4.4 Multicast communication......Page 186
4.5 Network virtualization: Overlay Networks......Page 191
4.6 Case study: MPI......Page 195
4.7 Summary......Page 198
EXERCISES......Page 199
CH. 5_REMOTE INVOCATION......Page 202
5.1 Introduction......Page 203
5.2 Request-reply protocols......Page 204
5.3 Remote procedure call......Page 212
5.4 Remote method invocation......Page 221
5.5 Case study: Java RMI......Page 234
5.6 Summary......Page 242
EXERCISES......Page 243
CH. 6_INDIRECT COMMUNICATION......Page 246
6.1 Introduction......Page 247
6.2 Group communication......Page 249
6.3 Publish-subscribe systems......Page 259
6.4 Message queues......Page 271
6.5 Shared memory approaches......Page 279
6.6 Summary......Page 291
EXERCISES......Page 294
CH. 7_OPERATING SYSTEM SUPPORT......Page 296
7.1 Introduction......Page 297
7.2 The operating system layer......Page 298
7.3 Protection......Page 301
7.4 Processes and threads......Page 303
7.5 Communication and invocation......Page 320
7.6 Operating system architecture......Page 331
7.7 Virtualization at the operating system level......Page 335
7.8 Summary......Page 348
EXERCISES......Page 349
CH 8_DISTRIBUTED OBJECTS AND COMPONENTS......Page 352
8.1 Introduction......Page 353
8.2 Distributed objects......Page 354
8.3 Case study: CORBA......Page 357
8.4 From objects to components......Page 375
8.5 Case studies: Enterprise JavaBeans and Fractal......Page 381
8.6 Summary......Page 395
EXERCISES......Page 396
CH. 9_WEB SERVICES......Page 398
9.1 Introduction......Page 399
9.2 Web services......Page 401
9.3 Service descriptions and IDL for web services......Page 417
9.4 A directory service for use with web services......Page 421
9.5 XML security......Page 423
9.6 Coordination of web services......Page 428
9.7 Applications of web services......Page 430
9.8 Summary......Page 436
EXERCISES......Page 438
CH. 10_PEER-TO-PEER SYSTEMS......Page 440
10.1 Introduction......Page 441
10.2 Napster and its legacy......Page 445
10.3 Peer-to-peer middleware......Page 447
10.4 Routing overlays......Page 450
10.5 Overlay case studies: Pastry, Tapestry......Page 453
10.6 Application case studies: Squirrel, OceanStore, Ivy......Page 466
10.7 Summary......Page 475
EXERCISES......Page 476
CH. 11_SECURITY......Page 480
11.1 Introduction......Page 481
11.2 Overview of security techniques......Page 489
11.3 Cryptographic algorithms......Page 501
11.4 Digital signatures......Page 510
11.5 Cryptography pragmatics......Page 517
11.6 Case studies: Needham–Schroeder, Kerberos, TLS, 802.11 WiFi......Page 520
11.7 Summary......Page 535
EXERCISES......Page 536
CH. 12_DISTRIBUTED FILE SYSTEMS......Page 538
12.1 Introduction......Page 539
12.2 File service architecture......Page 547
12.3 Case study: Sun Network File System......Page 553
12.4 Case study: The Andrew File System......Page 565
12.5 Enhancements and further developments......Page 574
EXERCISES......Page 580
CH. 13_NAME SERVICES......Page 582
13.1 Introduction......Page 583
13.2 Name services and the domain name system......Page 586
13.3 Directory services......Page 601
13.4 Case study: The Global Name Service......Page 602
13.5 Case study: The X.500 Directory Service......Page 605
13.6 Summary......Page 609
EXERCISES......Page 610
CH. 14_TIME AND GLOBAL STATES......Page 612
14.1 Introduction......Page 613
14.2 Clocks, events and process states......Page 614
14.3 Synchronizing physical clocks......Page 616
14.4 Logical time and logical clocks......Page 624
14.5 Global states......Page 627
14.6 Distributed debugging......Page 636
14.7 Summary......Page 643
EXERCISES......Page 644
CH. 15_COORDINATION AND AGREEMENT......Page 646
15.1 Introduction......Page 647
15.2 Distributed mutual exclusion......Page 650
15.3 Elections......Page 658
15.4 Coordination and agreement in group communication......Page 663
15.5 Consensus and related problems......Page 676
15.6 Summary......Page 687
EXERCISES......Page 688
CH. 16_TRANSACTIONS AND CONCURRENCY CONTROL......Page 692
16.1 Introduction......Page 693
16.2 Transactions......Page 696
16.3 Nested transactions......Page 707
16.4 Locks......Page 709
16.5 Optimistic concurrency control......Page 724
16.6 Timestamp ordering......Page 728
16.7 Comparison of methods for concurrency control......Page 735
16.8 Summary......Page 737
EXERCISES......Page 738
CH. 17_DISTRIBUTED TRANSACTIONS......Page 744
17.2 Flat and nested distributed transactions......Page 745
17.3 Atomic commit protocols......Page 748
17.4 Concurrency control in distributed transactions......Page 757
17.5 Distributed deadlocks......Page 760
17.6 Transaction recovery......Page 768
17.7 Summary......Page 778
EXERCISES......Page 779
CH. 18_REPLICATION......Page 782
18.1 Introduction......Page 783
18.2 System model and the role of group communication......Page 785
18.3 Fault-tolerant services......Page 792
18.4 Case studies of highly available services: The gossip architecture, Bayou and Coda......Page 799
18.5 Transactions with replicated data......Page 819
18.6 Summary......Page 831
EXERCISES......Page 832
CH. 19_MOBILE AND UBIQUITOUS COMPUTING......Page 834
19.1 Introduction......Page 835
19.2 Association......Page 844
19.3 Interoperation......Page 852
19.4 Sensing and context awareness......Page 861
19.5 Security and privacy......Page 874
19.6 Adaptation......Page 883
19.7 Case study: Cooltown......Page 888
19.8 Summary......Page 895
EXERCISES......Page 896
CH. 20_DISTRIBUTED MULTIMEDIA SYSTEMS......Page 898
20.1 Introduction......Page 899
20.2 Characteristics of multimedia data......Page 903
20.3 Quality of service management......Page 904
20.4 Resource management......Page 914
20.5 Stream adaptation......Page 916
20.6 Case studies: Tiger, BitTorrent and End System Multicast......Page 918
EXERCISES......Page 930
CH. 21_DESIGNING DISTRIBUTED SYSTEMS: GOOGLE CASE STUDY......Page 932
21.1 Introduction......Page 933
21.2 Introducing the case study: Google......Page 934
21.3 Overall architecture and design philosophy......Page 939
21.4 Underlying communication paradigms......Page 945
21.5 Data storage and coordination services......Page 952
21.6 Distributed computation services......Page 973
21.7 Summary......Page 981
EXERCISES......Page 983
REFERENCES......Page 984
INDEX......Page 1042

Polecaj historie