Hilfe Warenkorb Konto Anmelden
 
 
   Schnellsuche   
     zur Expertensuche                      
Reliable Distributed Systems. Technologies, Web Services, and Applications
  Großes Bild
 
Reliable Distributed Systems. Technologies, Web Services, and Applications
von: Kenneth P. Birman
Springer-Verlag, 2005
ISBN: 9780387276014
700 Seiten, Download: 5954 KB
 
Format:  PDF
geeignet für: Apple iPad, Android Tablet PC's Online-Lesen PC, MAC, Laptop

Typ: A (einfacher Zugriff)

 

 
eBook anfordern
Inhaltsverzeichnis

  Contents 5  
  Preface 17  
  Introduction 19  
  A User’s Guide to This Book 29  
  Trademarks 32  
  PART I Basic Distributed Computing Technologies 33  
     1 Fundamentals 35  
        1.1 Introduction 35  
        1.2 Components of a Reliable Distributed Computing System 39  
           1.2.1 Communication Technology 44  
           1.2.2 Basic Transport and Network Services 46  
           1.2.3 Reliable Transport Software and Communication Support 47  
           1.2.4 Middleware: Software Tools, Utilities, and Programming Languages 48  
           1.2.5 Distributed Computing Environments 49  
           1.2.6 End-User Applications 51  
        1.3 Critical Dependencies 52  
        1.4 Next Steps 54  
        1.5 Related Reading 55  
     2 Basic Communication Services 57  
        2.1 Communication Standards 57  
        2.2 Addressing 59  
        2.3 Network Address Translation 63  
        2.4 IP Tunnelling 65  
        2.5 Internet Protocols 65  
           2.5.1 Internet Protocol: IP layer 65  
           2.5.2 Transmission Control Protocol: TCP 66  
           2.5.3 User Datagram Protocol: UDP 66  
           2.5.4 Multicast Protocol 67  
        2.6 Routing 68  
        2.7 End-to-End Argument 69  
        2.8 OS Architecture Issues: Buffering and Fragmentation 71  
        2.9 Next Steps 73  
        2.10 Related Reading 75  
     3 High Assurance Communication 77  
        3.1 Notions of Correctness and High Assurance Distributed Communication 77  
        3.2 The Many Dimensions of Reliability 77  
        3.3 Scalability and Performance Goals 81  
        3.4 Security Considerations 82  
        3.5 Next Steps 83  
        3.6 Related Reading 84  
     4 Remote Procedure Calls and the Client/ Server Model 85  
        4.1 The Client/Server Model 85  
        4.2 RPC Protocols and Concepts 89  
        4.3 Writing an RPC-based Client or Server Program 92  
        4.4 The RPC Binding Problem 95  
        4.5 Marshalling and Data Types 97  
        4.6 Associated Services 99  
           4.6.1 Naming Services 99  
           4.6.2 Time Services 101  
           4.6.3 Security Services 102  
           4.6.4 Threads packages 103  
           4.6.5 Transactions 106  
        4.7 The RPC Protocol 107  
        4.8 Using RPC in Reliable Distributed Systems 110  
        4.9 Layering RPC over TCP 113  
        4.10 Related Reading 115  
     5 Styles of Client/Server Computing 117  
        5.1 Stateless and Stateful Client/Server Interactions 117  
        5.2 Major Uses of the Client/Server Paradigm 117  
        5.3 Distributed File Systems 124  
        5.4 Stateful File Servers 131  
        5.5 Distributed Database Systems 138  
        5.6 Applying Transactions to File Servers 145  
        5.7 Message-Queuing Systems 148  
        5.8 Related Topics 148  
        5.9 Related Reading 149  
     6 CORBA: The Common Object Request Broker Architecture 151  
        6.1 The ANSA Project 151  
        6.2 Beyond ANSA to CORBA 154  
        6.3 Web Services 156  
        6.4 The CORBA Reference Model 156  
        6.5 IDL and ODL 163  
        6.6 ORB 164  
        6.7 Naming Service 165  
        6.8 ENS—The CORBA Event Noti.cation Service 165  
        6.9 Life-Cycle Service 167  
        6.10 Persistent Object Service 167  
        6.11 Transaction Service 167  
        6.12 Interobject Broker Protocol 168  
        6.13 Properties of CORBA Solutions 168  
        6.14 Performance of CORBA and Related Technologies 169  
        6.15 Related Reading 172  
     7 System Support for Fast Client/Server Communication 173  
        7.1 Lightweight RPC 175  
        7.2 fbufs and the x-Kernel Project 178  
        7.3 Active Messages 179  
        7.4 Beyond Active Messages: U-Net 181  
        7.5 Protocol Compilation Techniques 186  
        7.6 Related Reading 187  
  PART II Web Technologies 189  
     8 TheWorld WideWeb 191  
        8.1 TheWorld WideWeb 191  
        8.2 TheWeb Services Vision 193  
        8.1 Web Applications 194  
        8.3 Web Security and Reliability 196  
        8.4 Computing Platforms 201  
        8.5 Related Reading 201  
     9 MajorWeb Technologies 203  
        9.1 Components of theWeb 203  
        9.2 HyperText Markup Language 205  
        9.3 Extensible Markup Language 206  
        9.4 Uniform Resource Locators 206  
        9.5 HyperText Transport Protocol 207  
        9.6 Representations of Image Data 211  
        9.7 Authorization and Privacy Issues 212  
        9.8 Web Proxy Servers 219  
        9.9 Web Search Engines andWeb Crawlers 220  
        9.10 Browser Extensibility Features: Plug-in Technologies 221  
        9.11 Future Challenges for theWeb Community 222  
        9.12 Consistency and theWeb 224  
        9.13 Related Reading 224  
     10 Web Services 225  
        10.1 What is aWeb Service? 225  
        10.2 Web Service Description Language: WSDL 229  
        10.3 Simple Object Access Protocol: SOAP 230  
        10.4 Talking to aWeb Service: HTTP over TCP 233  
        10.5 Universal Description, Discovery and Integration Language: UDDI 234  
        10.6 Other Current and ProposedWeb Services Standards 235  
           10.6.1 WS- RELIABILITY 235  
           10.6.2 WS- TRANSACTIONS 236  
           10.6.3 WS- RELIABILITY 238  
           10.6.4 WS- MEMBERSHIP 240  
        10.7 HowWeb Services Deal with Failure 240  
        10.8 The Future ofWeb Services 242  
        10.9 Grid Computing: A MajorWeb Services Application 243  
        10.10 Autonomic Computing: Technologies to ImproveWeb Services Con . guration Management 244  
        10.11 Related Readings 245  
     11 Related Internet Technologies 247  
        11.1 File Transfer Tools 247  
        11.2 Electronic Mail 248  
        11.3 Network Bulletin Boards (Newsgroups) 249  
        11.4 Instant Messaging Systems 251  
        11.5 Message-Oriented Middleware Systems (MOMS) 252  
        11.6 Publish-Subscribe and Message Bus Architectures 254  
        11.7 Internet Firewalls and Network Address Translators 257  
        11.8 Related Reading 258  
     12 Platform Technologies 259  
        12.1 Microsoft’s .NET Platform 260  
           12.1.1 .NET Framework 260  
           12.1.2 XMLWeb Services 261  
           12.1.3 Language Enhancements 262  
           12.1.4 Tools for Developing for Devices 262  
           12.1.5 Integrated Development Environment 262  
        12.2 Java Enterprise Edition 263  
           12.2.1 J2EE Framework 263  
           12.2.2 Java Application Veri.cation Kit (AVK) 264  
           12.2.3 Enterprise JavaBeans Speci.cation 264  
           12.2.4 J2EE Connectors 265  
           12.2.5 Web Services 265  
           12.2.6 Other Java Platforms 265  
        12.3 .NET and J2EE Comparison 265  
        12.4 Further Reading 266  
  PART III Reliable Distributed Computing 267  
     13 How and Why Computer Systems Fail 269  
        13.1 Hardware Reliability and Trends 269  
        13.2 Software Reliability and Trends 270  
        13.3 Other Sources of Downtime 272  
        13.4 Complexity 273  
        13.5 Detecting Failures 274  
        13.6 Hostile Environments 275  
        13.7 Related Reading 278  
     14 Overcoming Failures in a Distributed System 279  
        14.1 Consistent Distributed Behavior 279  
           14.1.1 Static Membership 281  
           14.1.2 Dynamic Membership 283  
        14.2 Formalizing Distributed Problem Speci.cations 285  
        14.3 Time in Distributed Systems 286  
        14.4 Failure Models and Reliability Goals 293  
        14.5 The Distributed Commit Problem 294  
           14.5.1 Two-Phase Commit 296  
           14.5.2 Three-Phase Commit 303  
           14.5.3 Quorum update revisited 306  
        14.6 Related Reading 307  
     15 Dynamic Membership 309  
        15.1 Dynamic Group Membership 309  
           15.1.1 GMS and Other System Processes 310  
           15.1.2 Protocol Used to Track GMS Membership 314  
           15.1.3 GMS Protocol to Handle Client Add and Join Events 316  
           15.1.4 GMS Noti.cations With Bounded Delay 318  
           15.1.5 Extending the GMS to Allow Partition and Merge Events 320  
        15.2 Replicated Data with Malicious Failures 322  
        15.3 The Impossibility of Asynchronous Consensus (FLP) 326  
           15.3.1 Three-Phase Commit and Consensus 329  
        15.4 Extending our Protocol into the Full GMS 332  
        15.5 Related Reading 334  
     16 Group Communication Systems 335  
        16.1 Group Communication 335  
        16.2 A Closer Look at Delivery Ordering Options 339  
           16.2.1 Nonuniform Failure-Atomic Group Multicast 343  
           16.2.2 Dynamically Uniform Failure-Atomic Group Multicast 345  
           16.2.3 Dynamic Process Groups 346  
           16.2.4 View-Synchronous Failure Atomicity 348  
           16.2.5 Summary of GMS Properties 350  
           16.2.6 Ordered Multicast 352  
        16.3 Communication from Nonmembers to a Group 365  
           16.3.1 Scalability 367  
        16.4 Communication from a Group to a Nonmember 368  
        16.5 Summary of Multicast Properties 368  
        16.6 Related Reading 370  
     17 Point to Point and Multi-group Considerations 373  
        17.1 Causal Communication Outside of a Process Group 374  
        17.2 Extending Causal Order to Multigroup Settings 376  
        17.3 Extending Total Order to Multigroup Settings 378  
        17.4 Causal and Total Ordering Domains 380  
        17.5 Multicasts to Multiple Groups 381  
        17.6 Multigroup View Management Protocols 381  
        17.7 Related Reading 382  
     18 The Virtual Synchrony Execution Model 383  
        18.1 Virtual Synchrony 383  
        18.2 Extended Virtual Synchrony 388  
        18.3 Virtually Synchronous Algorithms and Tools 394  
           18.3.1 Replicated Data and Synchronization 394  
           18.3.2 State Transfer to a Joining Process 399  
           18.3.3 Load-Balancing 401  
           18.3.4 Primary-Backup Fault Tolerance 403  
           18.3.5 Coordinator-Cohort Fault Tolerance 404  
        18.4 Related Reading 406  
     19 Consistency in Distributed Systems 407  
        19.1 Consistency in the Static and Dynamic Membership Models 408  
        19.2 Practical Options for Coping with Total Failure 416  
        19.3 General Remarks Concerning Causal andTotal Ordering 417  
        19.4 Summary and Conclusion 421  
        19.5 Related Reading 422  
  PART IV Applications of Reliability Techniques 423  
     20 Retrofitting Reliability into Complex Systems 425  
        20.1 Wrappers and Toolkits 426  
           20.1.1 Wrapper Technologies 428  
           20.1.2 Introducing Robustness in Wrapped Applications 434  
           20.1.3 Toolkit Technologies 437  
           20.1.4 Distributed Programming Languages 439  
        20.2 Wrapping a Simple RPC server 440  
        20.3 Wrapping aWeb Site 442  
        20.4 Hardening Other Aspects of theWeb 443  
        20.5 Unbreakable Stream Connections 447  
           20.5.1 Reliability Options for Stream Communication 448  
           20.5.2 An Unbreakable Stream That Mimics TCP 449  
           20.5.3 Nondeterminism and Its Consequences 451  
           20.5.4 Dealing with Arbitrary Nondeterminism 452  
           20.5.5 Replicating the IP Address 452  
           20.5.6 Maximizing Concurrency by Relaxing Multicast Ordering 453  
           20.5.7 State Transfer Issues 456  
           20.5.8 Discussion 456  
        20.6 Reliable Distributed Shared Memory 457  
           20.6.1 The Shared Memory Wrapper Abstraction 458  
           20.6.2 Memory Coherency Options for Distributed Shared Memory 460  
           20.6.3 False Sharing 463  
           20.6.4 Demand Paging and Intelligent Prefetching 463  
           20.6.5 Fault Tolerance Issues 464  
           20.6.6 Security and Protection Considerations 465  
           20.6.7 Summary and Discussion 465  
        20.7 Related Reading 466  
     21 Software Architectures for Group Communication 467  
        21.1 Architectural Considerations in Reliable Systems 468  
        21.2 Horus: A Flexible Group Communication System 471  
           21.2.1 A Layered Process Group Architecture 472  
        21.3 Protocol stacks 475  
        21.4 Using Horus to Build a Publish-Subscribe Platform and a Robust Groupware Application 477  
        21.5 Using Electra to Harden CORBA Applications 480  
        21.6 Basic Performance of Horus 482  
        21.7 Masking the Overhead of Protocol Layering 486  
           21.7.1 Reducing Header Overhead 487  
           21.7.2 Eliminating Layered Protocol Processing Overhead 489  
           21.7.3 Message Packing 490  
           21.7.4 Performance of Horus with the Protocol Accelerator 490  
        21.8 Scalability 491  
        21.9 Performance and Scalability of the Spread Toolkit 493  
        21.10 Related Reading 496  
  PART V Related Technologies 497  
     22 Security Options for Distributed Settings 499  
        22.1 Security Options for Distributed Settings 499  
        22.2 Perimeter Defense Technologies 503  
        22.3 Access Control Technologies 507  
        22.4 Authentication Schemes, Kerberos, and SSL 509  
           22.4.1 RSA and DES 510  
           22.4.2 Kerberos 512  
           22.4.3 ONC Security and NFS 515  
           22.4.4 SSL Security 516  
        22.5 Security Policy Languages 519  
        22.6 On-The-Fly Security 521  
        22.7 Availability and Security 522  
        22.8 Related Reading 524  
     23 Clock Synchronization and Synchronous Systems 525  
        23.1 Clock Synchronization 525  
        23.2 Timed-Asynchronous Protocols 530  
        23.3 Adapting Virtual Synchrony for Real-Time Settings 537  
        23.4 Related Reading 540  
     24 Transactional Systems 541  
        24.1 Review of the Transactional Model 541  
        24.2 Implementation of a Transactional Storage System 543  
           24.2.1 Write-Ahead Logging 543  
           24.2.2 Persistent Data Seen Through an Updates List 544  
           24.2.3 Nondistributed Commit Actions 545  
        24.3 Distributed Transactions and Multiphase Commit 546  
        24.4 Transactions on Replicated Data 547  
        24.5 Nested Transactions 548  
           24.5.1 Comments on the Nested Transaction Model 550  
        24.6 Weak Consistency Models 553  
           24.6.1 Epsilon Serializability 554  
           24.6.2 Weak and Strong Consistency in Partitioned Database Systems 555  
           24.6.3 Transactions on Multidatabase Systems 556  
           24.6.4 Linearizability 556  
           24.6.5 Transactions in Real-Time Systems 557  
        24.7 Advanced Replication Techniques 557  
        24.8 Related Reading 560  
     25 Peer-to-Peer Systems and Probabilistic Protocols 561  
        25.1 Peer-to-Peer File Sharing 563  
           25.1.1 Napster 564  
           25.1.2 Gnutella and Kazaa 565  
           25.1.3 CAN 566  
           25.1.4 CFS on Chord and PAST on Pastry 568  
           25.1.5 OceanStore 568  
        25.2 Peer-to-Peer Distributed Indexing 569  
           25.2.1 Chord 570  
           25.2.2 Pastry 573  
           25.2.3 Tapestry and Brocade 575  
           25.2.4 Kelips 575  
        25.3 Bimodal Multicast Protocol 578  
           25.3.1 Bimodal Multicast 581  
           25.3.2 Unordered pbcast Protocol 583  
           25.3.3 Adding CASD-style Temporal Properties and Total Ordering 584  
           25.3.4 Scalable Virtual Synchrony Layered Over Pbcast 586  
           25.3.5 Probabilistic Reliability and the Bimodal Delivery Distribution 586  
           25.3.6 Evaluation and Scalability 589  
           25.3.7 Experimental Results 590  
        25.4 Astrolabe 590  
           25.4.1 How it works 592  
           25.4.2 Peer-to-Peer Data Fusion and Data Mining 596  
        25.5 Other Applications of Peer-to-Peer Protocols 600  
        25.6 Related Reading 600  
     26 Prospects for Building Highly Assured Web Services 603  
        26.1 Web Services and Their Assurance Properties 603  
        26.2 High Assurance for Back-End Servers 610  
        26.3 High Assurance forWeb Server Front-Ends 614  
        26.4 Issues Encountered on the Client Side 615  
        26.5 Highly AssuredWeb Services Need Autonomic Tools! 616  
        26.6 Summary 619  
        26.7 Related Reading 620  
     27 Other Distributed and Transactional Systems 621  
        27.1 RelatedWork in Distributed Computing 621  
           27.1.1 Amoeba 622  
           27.1.2 BASE 622  
           27.1.3 Chorus 622  
           27.1.4 Delta-4 623  
           27.1.5 Ensemble 623  
           27.1.6 Harp 623  
           27.1.7 The Highly Available System (HAS) 624  
           27.1.8 The Horus System 625  
           27.1.9 The Isis Toolkit 625  
           27.1.10 Locus 626  
           27.1.11 Manetho 626  
           27.1.12 NavTech 627  
           27.1.13 Paxos 627  
           27.1.14 Phalanx 628  
           27.1.15 Phoenix 628  
           27.1.16 Psync 628  
           27.1.17 Rampart 629  
           27.1.18 Relacs 629  
           27.1.19 RMP 629  
           27.1.20 Spread 630  
           27.1.21 StormCast 630  
           27.1.22 Totem 631  
           27.1.23 Transis 632  
           27.1.24 The V System 632  
        27.2 Peer-to-Peer Systems 633  
           27.2.1 Astrolabe 633  
           27.2.2 Bimodal Multicast 634  
           27.2.3 Chord/CFS 634  
           27.2.4 Gnutella/Kazaa 634  
           27.2.5 Kelips 634  
           27.2.6 Pastry/PAST and Scribe 634  
           27.2.7 QuickSilver 635  
           27.2.8 Tapestry/Brocade 635  
        27.3 Systems That Implement Transactions 635  
           27.3.1 Argus 635  
           27.3.2 Arjuna 636  
           27.3.3 Avalon 636  
           27.3.4 Bayou 637  
           27.3.5 Camelot and Encina 637  
           27.3.6 Thor 638  
  Appendix: Problems 639  
  Bibliography 661  
  Index 693  
  More eBooks at www.ciando.com 0  


nach oben


  Mehr zum Inhalt
Kapitelübersicht
Kurzinformation
Inhaltsverzeichnis
Leseprobe
Blick ins Buch
Fragen zu eBooks?

  Medientyp
  eBooks
  eJournal
  alle

  Navigation
Belletristik / Romane
Computer
Geschichte
Kultur
Medizin / Gesundheit
Philosophie / Religion
Politik
Psychologie / Pädagogik
Ratgeber
Recht
Reise / Hobbys
Sexualität / Erotik
Technik / Wissen
Wirtschaft

  Info
Hier gelangen Sie wieder zum Online-Auftritt Ihrer Bibliothek
© 2008-2024 ciando GmbH | Impressum | Kontakt | F.A.Q. | Datenschutz