分布式系统原理与范型(第2版)(大学计算机教育国外著名教材(影印版))
分類: 图书,计算机/网络,计算机理论,
作者: (美)特尼博姆 等著
出 版 社: 清华大学出版社
出版时间: 2008-5-1字数:版次: 1页数: 686印刷时间: 2008/05/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787302172772包装: 平装内容简介
本书是著名作者Tanenbaum关于分布式系统的最新力作,是分布式系统的权威教材。本书分成了两大部分。第2~9章讨论的是分布式系统的的原理、概念和技术,包括通信、进程、命名、同步化、一致性和复制、容错性以及安全性等,而分布式应用的开发方法(即范型)在第10~13章中进行了讨论。但是,与前一版不同的是,本书没有在讨论范型的章节中完整地介绍每个案例研究,而是通过一个有代表性的案例来解释原理。这种介绍方法不仅精简了素材,而且可以使得读者在阅读和学习时更愉快些。全书结构清晰,内容全面经典,系统性与先进性并茂。
本书适用对象广泛,不仅可以作为学习分布式计算机的本科生和研究生的教材,对于从事分布式计算研究和工程应用的科技人员和工程技术人员来说,本书也是一本优秀的读物。
目录
1 INTRODUCTION
1.1 DEFINITION OF A DISTRIBUTED SYSTEM
1.2 GOALS
1.2.1 Maing Resources Accessible
1.2.2 Distribution Transparency
1.2.3 Openness
1.2.4 Scalability
1.2.5 Pitfalls
1.3 TYPES OF DISTRIBUTED SYSTEMS
1.3.1 Distributed Compuhng Systems
1.3.2 Distributed information Systems
1.3.3 Distubuted Pervasive Systems
1.4 SUMMARY
2 ARCHITECTURES
2.1 ARCHITECTURAL STYLES
2.2 SYSTEM ARCHCTURES
2.2.1 Centralized Architectures
2.2.2 Decentralized ArcLitectures
2.2.3 Hybnd Architectures
2.3 ARCHITECTURES VERSUS MIDDLEWARE
2.3.1 Interceptors
2.3.2 General APPToaches to Adaptive Software
2.3.3 Discussion
2.4 SELF-MANAGEMENT IN DISTRIBUTED SYSTEMS
2.4.1 The reedbask Control Model
2.4.2 Example Systems Monitoring with Astrolabe
2.4.3 Example Differentiating Repocation Striltegles in Globule
2.4.4 Example Auionlahc Component Repair Management in Jade
2.5 SUMMARY
3 PROCESSES
3.1 THREADS
3.1.1 Introduction to Thieaus
3.1.2 Threads in Distributed Systems
3.2 VIRTUALIZATION
3.2.1 The Role of Virtualization in Dlstrihutcd Syslems
3.2.2 Architectures of Virtual Machlucs
3.3 CLIENTS
3.3.1 NetwOIked User interfaces
3.3.2 Client-Side Software forDistribuutin TTansparency
3.4 SERVERS
3.4.1 DeneraI Design Issues
3.4.2 Server Clusters
3.4.3 Managing Server Clusters
3.5 COIJE MIGRAIION
3.5.1 Approaches to Codc Migration
3.5.2 Mzgrahon and Local Resollrces
3.5.3 Mlgrahon in Heterogelleous Systems
3.6 SUMMARY
4 COMMUNICATION
4.1 FLINDAMENTALS
4.1.1 Layered Potocols
4.1.2 Types of Commllnicahon
4.2 REMOTE PROCEDURE CALL
4.2.1 Basic Rad operation
4.2.2 Parameter Passing
4.2.3 Asynchronous
4.2.4 EXample f DCE RPC
4.3 MESSAGE ORIENTED COMMUNICATION
4.3.1 Message Oriented Trallsient Communication
4.3.2 Message Oriented PeISistent Communication
4.3.3 Example: IBM's WehSphere Message-Queuing System
4.4 STREAM-ORIENTED COMMUNICATION 157
4.4.1 SuPPort for Continuous Media
4.4.2 Smiarns and Quality of Service
4.4.3 Sforaln Synchronizaiion
4.5 MULTICAST COMMUNICATION
4.5.1 Application-Leve1 Multicasting
4.5.2 Gossip Based Daal Dissemination
4.6 SIJMMARY
5 NAMING
5.1 NAMES, IDENTIFIERS, AND ADDRESSES
5.2 FLAT NAMJNG
5.2.1 Simple Soutions
5.2.2 Home Based Approaches
5.2.3 Distritiuted Hash Tables
5.2.4 HieTarchical Approaches
5.3 STRUCTURED NAMING
5.3.1 Name Spaces
5.3.2 Name Resolution
5.3.3 The Implementation of a Name Space
5.3.4 Example: The Domain Name Syrialy
5.4 ATTRIBUTE-BASSO NAMING
5.4.1 Directory Services
5.4.2 Hieralchial Implemcntattions: LDAP
5.4.3 Decentralized Implementations
5.5 SUMMARY
6 SYNCHRONIZATION
6.1 CLOCk SYNCHRONIZATION
6.1.1 Physical Clocks
6.1.2 Global Positioning System
6.1.3 Clock Synchronization Algorithms
6.2 LOGICAL CLOCKS
6.2.1 Lamport's Logical Clocks
6.2.2 Vector Clocks
6.3 MUTUAL EXCLUSION
6.3.1 Overmew 252
6.3.2 A Cenlralized Algorithm
6.3.3 A Decentralized Algorithm
6.3.4 A Distributed Algorithm
6.3.5 A Token bang AAlgorithm
6.3.6 A Comparison of the Four Algorithm
6.4 GLOBAL POSITIONING OF NODES
6.5 ELECTION ALGORIThmS
6.5.1 Tladitional Election Algonthins
6.5.2 Elections in Wireless Environments
6.5.3 Elections in Large-Scale Systems
6.6 SUMMARY
7 CONSISTENCY AND REPLICATION
7.1 INTRODUCTION
7.1.1 treasons for Replication
7.1.2 Replication as Scaling technique
7.2 DATA-CENTRJC CONSISTENCY MODELS
7.2.1 Continuous Collsistency
7.2.2 Consistent Ordering ofoperahons
7.3 CLIENT-CENTRIC CONSISTENCY MODELS
7.3.1 EVentual Consistency
7.3.2 Monotomc Reads
7.3.3 MOnotonic Writes
7.3.4 Read Yoke Writes
7.3.5 Writes Follow Reads
7.4 REPLICA MANAGemENT
7.4.1 Replica-Server Placcnlent
7.4.2 Content Repllication and Placemcnt
7.4.3 Content DistTibution
7.5 CONSISTENCY PROTOCOLS
7.5.1 Continuous Consistency
7.5.2 Primary Based Protocols
7.5.3 Replicated Write Protocols
7.5.4 Cache Coherence PProtocols
7.5.5 Implementing Client Centric Consisiellcy
7.6 SUMMARY
8 FAULT TOLERANCE
8.1 INTRODUCTJON TO FAULT TOIAXANCF
8.1.1 Basic Concepts
8.1.2 foiIure Models
8.1.3 Failure MaskIng by Redundancy
8.2 PROCESS RESILIENCE
8.2.1 Design issues
8.2.2 Failure Masking and Replication
8.2.3 Agreelncnt in Faulty Systems
8.2.4 Failure Detection
8.3 RELIABLE CLJENT-SERVER COMMUNICATION
8.3.1 Point to-Point Communication
8.3.2 RPC Selllantlcs in the Presence of Failllres
8.4 RruIA-BLE GROUP COMMUMCATION 343
8.4.1 Basic Reliatrle Muiticasiing Scnenics
8.4.2 Scalability in Reliable MuIhcasting
8.4.3 AtomIC MIIItICast
8.5 DISTRIBUTED COMMIT
8.5.1 Two-Phase commit
8.5.2 ThTec Phase commit
8.6 KECOVERY
8.6.1 Introduction
8.6.2 Checkpointing
8.6.3 massage Logging
8.6.4 Recovery-Onented Computing
8.7 SUMMARY
9 SECURITY
9.1 INTRODUCTION TO SECURITY
9 1.1 Security Threats, Policies, and Mechanisms
9.1.2 Design Issues
9.1.3 Cryptography
9.2 SECURE CHANNELS
9.2.1 Authentication
9.2.2 Message integnty and Confidentiality
9.2.3 Secure Group Cornmunlcatlon
9.2.4 Example: Kerbcros
9.3 ACCESS CONTROL
9.3.1 General Issues in Access Control
9.3.2 Firewalls
9.3.3 Secure Mobile Code
9.3.4 Denial of Service
9.4 SECURITY MANAGEMENT
9.4.1 Key Management
9.4.2 Secure Group Management
9.4.3 Allthorization Management
9.5 SUMMARY
10 DISTRIBUTED OBJECT-BASED SYSTEMS
10.1 ARCHITECTUre
10.1.1 DistrIbuted Otijccts
10.1.2 Example: Entmprise Java Beaus
10.1.3 EXample: GIOtre Distributed Shared Otijects
10.2 PROCESSES
10.2.1 Object Servers
10.2.2 EXample The Ice downtime System
10.3 COMMUNICATION
10.3.1 Binding a Client to an Object
10.3.2 Static vcrsus Dynamic Remote Method invocations
10.3.3 Parameter Passing
10.3.4 Example Java RMI
10.3.5 Object-Based Messaging
10.4 NAMING
10.4.1 CORBA Otiject References
10.4.2 GlObe Otrject References
10.5 SYNCHRONIZATION
10.6 CONSISTENCY AND REPLICATION
10.6.1 Entry Consistency
10.6.2 Replicated invocations
10.7 FAULT TOLERANCE
10.7.1 Example: Fault-Tolerant CORBA
10.7.2 Example: Fault-Tolerant Java
10.8 SECURITY
10.8.1 Example: Globe
10.8.2 Security for Remote Objects
10.9 SUMMARY
11 DISTRIBUTED FILE SYSTEMS
11.1 ARCHITECTURE
11.1.1 Client-Server Architectures
11.1.2 ClusteT-Based Distributed File Systems
11.1.3 Sylmnetnc Architectures
11.2 PROCESSES
11.3 COMMUNICATION
11.3.1 Rads in NFS
11.3.2 The RPCZ Subsystem
11.3.3 File-Oriented Communication in alang
11.4 NabING
11.4.1 Naming in NFS
11.4.2 Constructing a Global aams Space
11.5 SYNCHRONIZATION
11.5.1 Semalltics off Flle Sharing
11.5.2 File Locking
11.5.3 Sharing Files in Coda
11.6 CONSISTENCY AND REPLICATION
11.6.1 Client Side Caching
11.6.2 Server-Side Replication
11.6.3 Replicahon in Peer to Pcer File Systems
11.6.4 File Replication in Gbed Systems
11.7 FAULT TOLERANCE
11.7.1 Handling Byzantine Failures
11.7.2 High Availability in Peer-to-Peer Systems
11.8 SECURITY
11.8.1 Secunty in NFS
11.8.2 Decentralized Authentication
11.8.3 Secure Peer-to-Peer File-Shanng Systems
11.9 SUMMARY
12 DISTRIBUTED WEB-BASED SYSTEMS
12.1 ARCHITECTURE
12.1.1 Traditional Web Based Systems
12.1.2 Web System
12.2 PROCESSES
12.2.1 Clients
12.2.2 The Apachc Web Server
12.2.3 WCb SeTVer Clusters
12.3 COMMUNICATION
12.3.1 Hypcrtcxt Trilnsfel Protocol
12.3.2 Simple Object Access Protocol
12.4 NAMING
12.5 SYNCHRONIZATION
12.6 CONSISTENCY AND REPLICAnON
12.6.1 Web Proxy Caching
12.6.2 Replication for Web Hosting Systems
12.6.3 Replication of Web Anviicaiions
12.7 FAULT TOLERANCE
12.8 SECURITY
12.9 SUMMARY
13 DISTRIBUTED COORDINATION-BASED
13.1 INTRODUCTION TO COORDINATION MODELS
13.2 ARCHitECTURES
13.2.1 Overall Approach
13.2.2 Traditional Architestores
13.2.3 Peer-to-Peer Architectures
13.2.4 Mobility and Cooruination
13.3 PROCESSES
13.4 COMMUNICATION
13.4.1 Content-Based Routing
13.4.2 Supporting Composite Subscriptions
13.5 NAMJNG
13.5.1 Describing Composite Evellts
13.5.2 Matching Events and Subscriptiolls
13.6 SYNCHRONIZATION
13.7 CONSISTENCY AND REPLICATION
13.7.1 Static Apnroachcs
13.7.2 Dynunc Replicanon
13.8 FAt1T TOLERANCE
13.8.1 Reliable pobIish Subscribe COmmunicaiioIa
13.8.2 Fault Tolerance in Shared Dataspaces
13.9 SECURITY
13.9.1 Confidentiality
13.9.2 Secure Shared Dataspaces
13.10 SUMMARY
14 SUGGESTIONS FOR FURTHER READING AND BIBLIOGRAPHY
14.1 SUGGESTIONS FOR FURTHER READING
14.1.1 introduction and Genelal Works
14.1.2 Architectures
14.1.3 Oricesses
14.1.4 Commumcatlon
14.1.5 Naming
14.1.6 Synchronization
14.1.7 Consistency and ffepIication
14.1.8 Fault Tolerance
14.1.9 Secllnty
14.1.1O Distributed Onject-Based Systems
14.1.11 Distributed File Systems
14 1 12 Distributed Web-Based Systems
14 1.13 Distributed Coordination Based Systems
14.2 ALPHABETICAL BIBLIOGRAPHY
INDEX