關于我們
書單推薦
新書推薦
|
分布式系統(tǒng)概念與設計 讀者對象:可作為高等院校計算機及相關專業(yè)本科生及研究生的教材, 也可供廣大技術人員參閱
《分布式系統(tǒng):概念與設計(原書第5版)》旨在全面介紹互聯(lián)網(wǎng)及其他常用分布式系統(tǒng)的原理、體系結(jié)構(gòu)、算法和設計,內(nèi)容涵蓋分布式系統(tǒng)的相關概念、安全、數(shù)據(jù)復制、組通信、分布式文件系統(tǒng)、分布式事務、分布式系統(tǒng)設計等,以及相關的前沿主題,包括Web服務、網(wǎng)格、移動系統(tǒng)和無處不在系統(tǒng)等。
計算機領域經(jīng)典著作,被譽為是衡量所有其他分布式系統(tǒng)教材的標準,已被愛丁堡大學、伊利諾伊大學、卡內(nèi)基-梅隆大學、南加州大學、得克薩斯A&M大學、多倫多大學、羅切斯特理工學院、北京大學等名校采納為高級操作系統(tǒng)、計算機網(wǎng)絡、分布式系統(tǒng)課程的教材。華章從第3版就開始引進這本《分布式系統(tǒng):概念與設計(原書第5版)》,每個版本翻譯版印量約為7000冊,影印版約為5000冊。雖然由于屬于高級課程,銷量有局限性,但本書在高等院校的師生和研究人員中具有很高的知名度,對于華章教育品牌也具有較大的支撐作用,所以確定繼續(xù)做這本教材。
Distributed Systems:Concepts and Design,F(xiàn)ifth Edition
在互聯(lián)網(wǎng)和Web持續(xù)發(fā)展并且對我們社會的每個方面都產(chǎn)生影響的時候,這本教材的第5版問世了。本書的介紹性章節(jié)提到互聯(lián)網(wǎng)和Web對諸多(如金融、商業(yè)、藝術、娛樂等)應用領域的影響以及對信息社會的普遍影響。它還強調(diào)了諸如Web搜索和多人在線游戲等應用領域中的需求。從分布式系統(tǒng)的角度出發(fā),這些開發(fā)在應用的范圍、多個現(xiàn)代系統(tǒng)所支持的工作負載和系統(tǒng)大小等方面正在對底層系統(tǒng)架構(gòu)提出實質(zhì)性的新需求。重要的趨勢包括網(wǎng)絡技術上不斷增加的多樣性和普遍性(包括不斷增加的無線網(wǎng)絡的重要性)、移動和無處不在計算元素及分布式系統(tǒng)架構(gòu)的集成(這導致了相當不同的物理體系結(jié)構(gòu)),還包括支持多媒體服務的需求和云計算模式的出現(xiàn),這些都對分布式系統(tǒng)服務的觀點提出了挑戰(zhàn)。 本書旨在提供對互聯(lián)網(wǎng)和其他分布式系統(tǒng)原理的理解,提供這些系統(tǒng)的體系結(jié)構(gòu)、算法和設計,展示它們?nèi)绾螡M足當代分布式應用的需求。本書的前7章覆蓋分布式系統(tǒng)研究的基礎部分。前兩章提供對主題的概念性概述,介紹了分布式系統(tǒng)的特征和在系統(tǒng)設計中所必須解決的挑戰(zhàn):最重要的可伸縮性、異構(gòu)性、安全性和故障處理。這兩章還開發(fā)了用于理解交互過程、故障和安全性的抽象模型。隨后是其他基礎性章節(jié),這些章節(jié)介紹了網(wǎng)絡研究、進程間通信、遠程調(diào)用、間接通信和操作系統(tǒng)支持。 后續(xù)的章節(jié)涉及中間件這個重要的主題,考察了支持分布式應用的不同的方法,包括分布式對象和組件、Web服務和對等解決方案。接下來的章節(jié)涉及安全、分布式文件系統(tǒng)和分布式命名系統(tǒng)這些已被完善的主題,然后介紹了與數(shù)據(jù)相關的重要方面(包括分布式事務和數(shù)據(jù)復制)。與這些主題相關的算法也在它們出現(xiàn)時被論及,或者在專門論述定時、協(xié)調(diào)和協(xié)定等單獨的章節(jié)中介紹。 本書接著論述移動和無處不在計算以及分布式多媒體系統(tǒng)這些新出現(xiàn)的領域,然后給出了一個內(nèi)容充實的實例研究,從搜索功能和由Google提供的不斷擴展的附加服務(例如,Gmail和Google Earth)兩個角度,關注支持Google的分布式系統(tǒng)基礎設施的設計和實現(xiàn)。最后一章綜述了本書所介紹的所有這些體系結(jié)構(gòu)概念、算法和技術,詮釋了如何在一個給定應用領域的整體設計中將這些內(nèi)容組織在一起。 第5版新增部分 新的章節(jié) 間接通信(第6章),包括組通信、發(fā)布-訂閱,對JavaSpaces、JMS、WebSphere和Message Queues的實例研究。 分布式對象和組件(第8章),包括基于組件的中間件和對企業(yè)版JavaBeans、Fractal和CORBA的實例研究。 分布式系統(tǒng)設計:Google實例研究(第21章),專門針對Google基礎設施的新的大的實例研究。 新增到其他章節(jié)中的主題 云計算、網(wǎng)絡虛擬化、操作系統(tǒng)虛擬化、消息傳遞接口、無結(jié)構(gòu)的P2P、元組空間、與Web服務相關的松耦合。 其他新的實例研究 Skype、Gnutella、TOTA、L2imbo、BitTorrent、End System Multicast。 關于內(nèi)容更新的更詳細的情況,參見Ⅷ頁中的表。 目的和讀者群 本書可用做本科生教材和研究生的入門教材,也可作為自學教材。本書采用自頂向下的方法,首先敘述在分布式系統(tǒng)設計中要解決的問題,然后,通過抽象模型、算法和對廣泛使用的系統(tǒng)進行詳細的實例研究,描述成功開發(fā)系統(tǒng)的方法。本書覆蓋的領域有足夠的深度和廣度,以便讀者能繼續(xù)研究分布式系統(tǒng)文獻中大多數(shù)的研究論文。 本書針對具有面向?qū)ο缶幊獭⒉僮飨到y(tǒng)、初級計算機體系結(jié)構(gòu)等基礎知識的學生。本書覆蓋與分布式系統(tǒng)有關的計算機網(wǎng)絡,包括互聯(lián)網(wǎng)、廣域網(wǎng)、局域網(wǎng)和無線網(wǎng)的基本技術。本書中的算法和接口大部分用Java描述,小部分用ANSI C描述。為了表述上的簡潔明了,還使用一種從Java/C派生出來的偽碼。 本書的組織 下圖顯示的本書章節(jié)可歸在7個主要的主題領域。該圖提供了本書的結(jié)構(gòu)指南,也為教師、讀者提供了一個導航路徑,以便于他們理解分布式系統(tǒng)設計中的不同子領域。 與第4版相關的改變 在開始新版本寫作之前,我們針對使用第4版的教師做了一個調(diào)查,并根據(jù)調(diào)查結(jié)果識別出所需要的新材料和需要做的修改。此外,我們認識到不斷增加的分布式系統(tǒng)的多樣性,特別是從當前可用于分布式系統(tǒng)開發(fā)者的體系結(jié)構(gòu)方法的范圍來說。這些都要求本書做重要的改變,特別是前面(基礎性)的章節(jié)。 總之,這些使得我們編寫了全新的3章,對其他一些章節(jié)做了實質(zhì)性的修改,并在書中多處補充了新的內(nèi)容。對許多章節(jié)進行了改變以反映所描述系統(tǒng)的新的、可用的信息。這些修改總結(jié)在下面的表格中。為了幫助已使用過第4版的教師,只要可能,我們就保留了前一版本采用的結(jié)構(gòu)。對于已被刪除的材料,我們把它放在與書配套的Web網(wǎng)站上,并與以前版本中被刪除的材料放在一起。這些被刪除的材料包括關于ATM的實例研究、UNIX中的進程間通信、CORBA(其精減的版本仍然保留在第8章中)、Jini分布式事件規(guī)約和(以OGSA和Globus工具集為特色的)網(wǎng)格中間件,以及關于分布式共享內(nèi)存的章節(jié)(對它的簡明總結(jié)現(xiàn)在被包含在第6章中)。 在本書的一些章節(jié)中,例如新的關于間接通信的章節(jié)(第6章)包含了許多材料。教師在選擇2~3項技術做詳細的講解之前可以選擇廣泛的內(nèi)容(例如,組通信,假定它的基本角色,以及發(fā)布-訂閱或消息隊列,假定它們在商業(yè)分布式系統(tǒng)中的盛行)。 章節(jié)的順序已經(jīng)修改以容納新的材料,并反映對某些主題相對重要性的改變。為了完全理解某些主題,讀者可能發(fā)現(xiàn)附帶一個參考文獻是必要的。例如,如果第9章引用的第11章安全的章節(jié)被理解,那么第9章關于XML安全技術的內(nèi)容可以被更好地理解。 本書結(jié)構(gòu)變動如下表所示: 新增的章:第6章 間接通信 包括了第4版的事件和通知第8章 分布式對象和組件 全部包括了來自第4版的CORBA實例研究第21章 分布式系統(tǒng)設計:Google實例研究 包含一個新的關于Google的大的實例研究有實質(zhì)性改變的章:第1章 分布式系統(tǒng)的特征 重要材料的重構(gòu):新增1.2節(jié)和1.3.4節(jié)關于云計算的介紹第2章 系統(tǒng)模型 重要材料的重構(gòu):新增2.2節(jié),2.3節(jié)重寫以反映新書的內(nèi)容和相關的體系結(jié)構(gòu)觀點第4章 進程間通信 幾處更新:客戶-服務器通信移到了第5章;新增4.5節(jié)(包括了關于Skype的實例研究);新增4.6節(jié);刪除了對UNIX的IPC的實例研究第5章 遠程調(diào)用 重要材料的重構(gòu):客戶-服務器通信移到該章;介紹了從客戶-服務器通信到RPC以及RMI的發(fā)展;事件和通知移到了第6章增加了新內(nèi)容或刪除了內(nèi)容的章,但沒有結(jié)構(gòu)性改變:第3章 網(wǎng)絡和網(wǎng)際互連 幾處更新:3.5節(jié)刪除了ATM的材料第7章 操作系統(tǒng)支持 新增7.7節(jié)第9章 Web服務 9.2節(jié)新增了松耦合的討論第10章 對等系統(tǒng) 新增10.5.3節(jié)討論了非結(jié)構(gòu)化對等系統(tǒng)(包括了新的Gnutella實例研究)第15章 協(xié)調(diào)和協(xié)定 組通信的材料移到了第6章第18章 復制 組通信的材料移到了第6章第19章 移動和無處不在計算 19.3.1節(jié)增加了元組空間(TOTA和L2imbo)的材料第20章 分布式多媒體系統(tǒng) 20.6節(jié)補充了新的實例研究,增加了BitTorrent和End System Multicast 剩下的章節(jié)僅做了少量的修改。 致謝 我們非常感謝下列參加了我們調(diào)查的教師:Guohong Cao、Jose Fortes、Bahram Khalili、George Blank、Jinsong Ouyang、JoAnne Holliday、George K.Thiruvathukal、Joel Wein、Tao Xie和Xiaobo Zhou。 我們要感謝下列審閱新章節(jié)或提供其他實質(zhì)性幫助的人:Rob Allen、Roberto Baldoni、John Bates、Tom Berson、Lynne Blair、Geoff Coulson、Paul Grace、Andrew Herbert、David Hutchison、Laurent Mathy、Rajiv Ramdhany、Richard Sharp、Jean-Bernard Stefani、Rip Sohan、Francois Taiani、Peter Triantafillou、Gareth Tyson和已故的Maurice Wikes先生。我們還要感謝Google的員工,他們的見解剖析了Google基礎設施的設計合理性,他們是:Mike Burrow、Tushar Chandra、Walfredo Cirne、Jeff Dean、Sanjay Ghemawat、Andrea Kirmse和John Reumann。
George Coulouris,倫敦大學皇后瑪利學院榮譽教授,劍橋大學計算機實驗室訪問教授。
Jean Dollimore,倫敦大學皇后瑪利學院的高級講師。 Tim Kindberg,matter 2 media創(chuàng)新技術公司創(chuàng)始人,Pervasive Media Studio研究主任,英國布里斯托爾和美國帕洛阿爾托惠普實驗室高級研究員,英國巴斯大學計算機科學系訪問教授。 Gordon Blair,蘭卡斯特大學計算系分布式系統(tǒng)教授,挪威特羅姆瑟大學兼職教授。
Distributed Systems:Concepts and Design,F(xiàn)ifth Edition
出版者的話 譯者序 前言 第1章 分布式系統(tǒng)的特征 1.1 簡介 1.2 分布式系統(tǒng)的例子 1.2.1 Web搜索 1.2.2 大型多人在線游戲 1.2.3 金融交易 1.3 分布式系統(tǒng)的趨勢 1.3.1 泛在聯(lián)網(wǎng)和現(xiàn)代互聯(lián)網(wǎng) 1.3.2 移動和無處不在計算 1.3.3 分布式多媒體系統(tǒng) 1.3.4 把分布式計算作為一個公共設施 1.4 關注資源共享 1.5 挑戰(zhàn) 1.5.1 異構(gòu)性 1.5.2 開放性 1.5.3 安全性 1.5.4 可伸縮性 1.5.5 故障處理 1.5.6 并發(fā)性 1.5.7 透明性 1.5.8 服務質(zhì)量 1.6 實例研究:萬維網(wǎng) 1.7 小結(jié) 練習 第2章 系統(tǒng)模型 2.1 簡介 2.2 物理模型 2.3 體系結(jié)構(gòu)模型 2.3.1 體系結(jié)構(gòu)元素 2.3.2 體系結(jié)構(gòu)模式 2.3.3 相關的中間件解決方案 2.4 基礎模型 2.4.1 交互模型 2.4.2 故障模型 2.4.3 安全模型 2.5 小結(jié) 練習 第3章 網(wǎng)絡和網(wǎng)際互連 3.1 簡介 3.2 網(wǎng)絡類型 3.3 網(wǎng)絡原理 3.3.1 數(shù)據(jù)包的傳輸 3.3.2 數(shù)據(jù)流 3.3.3 交換模式 3.3.4 協(xié)議 3.3.5 路由 3.3.6 擁塞控制 3.3.7 網(wǎng)際互連 3.4 互聯(lián)網(wǎng)協(xié)議 3.4.1 IP尋址 3.4.2 IP協(xié)議 3.4.3 IP路由 3.4.4 IPv 3.4.5 移動IP 3.4.6 TCP和UDP 3.4.7 域名 3.4.8 防火墻 3.5 實例研究:以太網(wǎng)、WiFi、藍牙 3.5.1 以太網(wǎng) 3.5.2 IEEE 802.11無線LAN 3.5.3 IEEE 802.15.1藍牙無線PAN 3.6 小結(jié) 練習 第4章 進程間通信 4.1 簡介 4.2 互聯(lián)網(wǎng)協(xié)議的API 4.2.1 進程間通信的特征 4.2.2 套接字 4.2.3 UDP數(shù)據(jù)報通信 4.2.4 TCP流通信 4.3 外部數(shù)據(jù)表示和編碼 4.3.1 CORBA的公共數(shù)據(jù)表示 4.3.2 Java對象序列化 4.3.3 可擴展標記語言 4.3.4 遠程對象引用 4.4 組播通信 4.4.1 IP組播--組播通信的實現(xiàn) 4.4.2 組播的可靠性和排序 4.5 網(wǎng)絡虛擬化:覆蓋網(wǎng)絡 4.5.1 覆蓋網(wǎng)絡 4.5.2 Skype:一個覆蓋網(wǎng)絡的例子 4.6 實例研究:MPI 4.7 小結(jié) 練習 第5章 遠程調(diào)用 5.1 簡介 5.2 請求-應答協(xié)議 5.3 遠程過程調(diào)用 5.3.1 RPC的設計問題 5.3.2 RPC的實現(xiàn) 5.3.3 實例研究:Sun RPC 5.4 遠程方法調(diào)用 5.4.1 RMI的設計問題 5.4.2 RMI的實現(xiàn) 5.4.3 分布式無用單元收集 5.5 實例研究:Java RMI 5.5.1 創(chuàng)建客戶和服務器程序 5.5.2 Java RMI的設計和實現(xiàn) 5.6 小結(jié) 練習 第6章 間接通信 6.1 簡介 6.2 組通信 6.2.1 編程模型 6.2.2 實現(xiàn)問題 6.2.3 實例研究:JGroups工具箱 6.3 發(fā)布-訂閱系統(tǒng) 6.3.1 編程模型 6.3.2 實現(xiàn)問題 6.3.3 發(fā)布-訂閱系統(tǒng)的例子 6.4 消息隊列 6.4.1 編程模型 6.4.2 實現(xiàn)問題 6.4.3 實例研究:Java消息服務 6.5 共享內(nèi)存的方式 6.5.1 分布式共享內(nèi)存 6.5.2 元組空間通信 6.6 小結(jié) 練習 第7章 操作系統(tǒng)支持 7.1 簡介 7.2 操作系統(tǒng)層 7.3 保護 7.4 進程和線程 7.4.1 地址空間 7.4.2 新進程的生成 7.4.3 線程 7.5 通信和調(diào)用 7.5.1 調(diào)用性能 7.5.2 異步操作 7.6 操作系統(tǒng)的體系結(jié)構(gòu) 7.7 操作系統(tǒng)層的虛擬化 7.7.1 系統(tǒng)虛擬化 7.7.2 實例研究:系統(tǒng)虛擬化的Xen方法 7.8 小結(jié) 練習 第8章 分布式對象和組件 8.1 簡介 8.2 分布式對象 8.3 實例研究:CORBA 8.3.1 CORBA RMI 8.3.2 CORBA的體系結(jié)構(gòu) 8.3.3 CORBA遠程對象引用 8.3.4 CORBA服務 8.3.5 CORBA客戶和服務器實例 8.4 從對象到組件 8.5 實例研究:企業(yè)JavaBeans和Fractal 8.5.1 企業(yè)JavaBeans 8.5.2 Fractal 8.6 小結(jié) 練習 第9章 Web服務 9.1 簡介 9.2 Web服務 9.2.1 SOAP 9.2.2 Web服務與分布式對象模型的比較 9.2.3 在Java中使用SOAP 9.2.4 Web服務和CORBA的比較 9.3 Web服務的服務描述和接口定義語言 9.4 Web服務使用的目錄服務 9.5 XML安全性 9.6 Web服務的協(xié)作 9.7 Web服務的應用 9.7.1 面向服務的體系結(jié)構(gòu) 9.7.2 網(wǎng)格 9.7.3 云計算 9.8 小結(jié) 練習 第10章 對等系統(tǒng) 10.1 簡介 10.2 Napster及其遺留系統(tǒng) 10.3 對等中間件 10.4 路由覆蓋 10.5 路由覆蓋實例研究:Pastry和Tapestry 10.5.1 Pastry 10.5.2 Tapestry 10.5.3 從結(jié)構(gòu)化對等方法到非結(jié)構(gòu)化對等方法 10.6 應用實例研究:Squirrel、OceanStore和Ivy 10.6.1 Squirrel Web緩存 10.6.2 OceanStore文件存儲 10.6.3 Ivy文件系統(tǒng) 10.7 小結(jié) 練習 第11章 安全性 11.1 簡介 11.1.1 威脅和攻擊 11.1.2 保護電子事務 11.1.3 設計安全系統(tǒng) 11.2 安全技術概述 11.2.1 密碼學 11.2.2 密碼學的應用 11.2.3 證書 11.2.4 訪問控制 11.2.5 憑證 11.2.6 防火墻 11.3 密碼算法 11.3.1 密鑰(對稱)算法 11.3.2 公鑰(不對稱)算法 11.3.3 混合密碼協(xié)議 11.4 數(shù)字簽名 11.4.1 公鑰數(shù)字簽名 11.4.2 密鑰數(shù)字簽名--MAC 11.4.3 安全摘要函數(shù) 11.4.4 證書標準和證書權(quán)威機構(gòu) 11.5 密碼實用學 11.5.1 密碼算法的性能 11.5.2 密碼學的應用和政治障礙 11.6 實例研究:Needham-Schroeder、Kerberos、TLS和802.11 WiFi 11.6.1 Needham-Schroeder認證協(xié)議 11.6.2 Kerberos 11.6.3 使用安全套接字確保電子交易安全 11.6.4 IEEE 802.11 WiFi安全設計中最初的缺陷 11.7 小結(jié) 練習 第12章 分布式文件系統(tǒng) 12.1 簡介 12.1.1 文件系統(tǒng)的特點 12.1.2 分布式文件系統(tǒng)的需求 12.1.3 實例研究 12.2 文件服務體系結(jié)構(gòu) 12.3 實例研究:SUN網(wǎng)絡文件系統(tǒng) 12.4 實例研究:Andrew文件系統(tǒng) 12.4.1 實現(xiàn) 12.4.2 緩存的一致性 12.4.3 其他方面 12.5 最新進展 12.6 小結(jié) 練習 第13章 名字服務 13.1 簡介 13.2 名字服務和域名系統(tǒng) 13.2.1 名字空間 13.2.2 名字解析 13.2.3 域名系統(tǒng) 13.3 目錄服務 13.4 實例研究:全局名字服務 13.5 實例研究:X.500目錄服務 13.6 小結(jié) 練習 第14章 時間和全局狀態(tài) 14.1 簡介 14.2 時鐘、事件和進程狀態(tài) 14.3 同步物理時鐘 14.3.1 同步系統(tǒng)中的同步 14.3.2 同步時鐘的Cristian方法 14.3.3 Berkeley算法 14.3.4 網(wǎng)絡時間協(xié)議 14.4 邏輯時間和邏輯時鐘 14.5 全局狀態(tài) 14.5.1 全局狀態(tài)和一致割集 14.5.2 全局狀態(tài)謂詞、穩(wěn)定性、安全性和活性 14.5.3 Chandy和Lamport的“快照”算法 14.6 分布式調(diào)試 14.6.1 收集狀態(tài) 14.6.2 觀察一致的全局狀態(tài) 14.6.3 判定可能的? 14.6.4 判定明確的? 14.6.5 在同步系統(tǒng)中判定可能的?和明確的? 14.7 小結(jié) 練習 第15章 協(xié)調(diào)和協(xié)定 15.1 簡介 15.2 分布式互斥 15.3 選舉 15.4 組通信中的協(xié)調(diào)與協(xié)定 15.4.1 基本組播 15.4.2 可靠組播 15.4.3 有序組播 15.5 共識和相關問題 15.5.1 系統(tǒng)模型和問題定義 15.5.2 同步系統(tǒng)中的共識問題 15.5.3 同步系統(tǒng)中的拜占庭將軍問題 15.5.4 異步系統(tǒng)的不可能性 15.6 小結(jié) 練習 第16章 事務和并發(fā)控制 16.1 簡介 16.1.1 簡單的同步機制(無事務) 16.1.2 事務的故障模型 16.2 事務 16.2.1 并發(fā)控制 16.2.2 事務放棄時的恢復 16.3 嵌套事務 16.4 鎖 16.4.1 死鎖 16.4.2 在加鎖機制中增加并發(fā)度 16.5 樂觀并發(fā)控制 16.6 時間戳排序 16.7 并發(fā)控制方法的比較 16.8 小結(jié) 練習 第17章 分布式事務 17.1 簡介 17.2 平面分布式事務和嵌套分布式事務 17.3 原子提交協(xié)議 17.3.1 兩階段提交協(xié)議 17.3.2 嵌套事務的兩階段提交協(xié)議 17.4 分布式事務的并發(fā)控制 17.4.1 加鎖 17.4.2 時間戳并發(fā)控制 17.4.3 樂觀并發(fā)控制 17.5 分布式死鎖 17.6 事務恢復 17.6.1 日志 17.6.2 影子版本 17.6.3 為何恢復文件需要事務狀態(tài)和意圖列表 17.6.4 兩階段提交協(xié)議的恢復 17.7 小結(jié) 練習 第18章 復制 18.1 簡介 18.2 系統(tǒng)模型和組通信的作用 18.2.1 系統(tǒng)模型 18.2.2 組通信的作用 18.3 容錯服務 18.3.1 被動(主備份)復制 18.3.2 主動復制 18.4 高可用服務的實例研究:閑聊體系結(jié)構(gòu)、Bayou和Coda 18.4.1 閑聊體系結(jié)構(gòu) 18.4.2 Bayou系統(tǒng)和操作變換方法 18.4.3 Coda文件系統(tǒng) 18.5 復制數(shù)據(jù)上的事務 18.5.1 復制事務的體系結(jié)構(gòu) 18.5.2 可用拷貝復制 18.5.3 網(wǎng)絡分區(qū) 18.5.4 帶驗證的可用拷貝 18.5.5 法定數(shù)共識方法 18.5.6 虛擬分區(qū)算法 18.6 小結(jié) 練習 第19章 移動和無處不在計算 19.1 簡介 19.2 關聯(lián) 19.2.1 發(fā)現(xiàn)服務 19.2.2 物理關聯(lián) 19.2.3 小結(jié)和前景 19.3 互操作 19.3.1 易變系統(tǒng)的面向數(shù)據(jù)編程 19.3.2 間接關聯(lián)和軟狀態(tài) 19.3.3 小結(jié)和前景 19.4 感知和上下文敏感 19.4.1 傳感器 19.4.2 感知體系結(jié)構(gòu) 19.4.3 位置感知 19.4.4 小結(jié)和前景 19.5 安全性和私密性 19.5.1 背景 19.5.2 一些解決辦法 19.5.3 小結(jié)和前景 19.6 自適應 19.6.1 內(nèi)容的上下文敏感自適應 19.6.2 適應變化的系統(tǒng)資源 19.6.3 小結(jié)和前景 19.7 實例研究:Cooltown 19.7.1 Web存在 19.7.2 物理超鏈接 19.7.3 互操作和eSquirt協(xié)議 19.7.4 小結(jié)和前景 19.8 小結(jié) 練習 第20章 分布式多媒體系統(tǒng) 20.1 簡介 20.2 多媒體數(shù)據(jù)的特征 20.3 服務質(zhì)量管理 20.3.1 服務質(zhì)量協(xié)商 20.3.2 許可控制 20.4 資源管理 20.5 流自適應 20.5.1 調(diào)整 20.5.2 過濾 20.6 實例研究:Tiger視頻文件服務器、BitTorrent和端系統(tǒng)多播 20.6.1 Tiger視頻文件服務器 20.6.2 BitTorrent 20.6.3 端系統(tǒng)多播 20.7 小結(jié) 練習 第21章 分布式系統(tǒng)設計:Google實例研究 21.1 簡介 21.2 實例研究簡介:Google 21.3 總體結(jié)構(gòu)和設計理念 21.3.1 物理模型 21.3.2 總的系統(tǒng)體系結(jié)構(gòu) 21.4 底層通信范型 21.4.1 遠程調(diào)用 21.4.2 發(fā)布-訂閱 21.4.3 通信的關鍵設計選擇總結(jié) 21.5 數(shù)據(jù)存儲和協(xié)調(diào)服務 21.5.1 Google文件系統(tǒng) 21.5.2 Chubby 21.5.3 Bigtable 21.5.4 關鍵設計選擇總結(jié) 21.6 分布式計算服務 21.6.1 MapReduce 21.6.2 Sawzall 21.6.3 關鍵設計選擇總結(jié) 21.7 小結(jié) 練習 參考文獻 索引
第1章 分布式系統(tǒng)的特征
第1章 分布式系統(tǒng)的特征第1章Distributed Systems:Concepts and Design,F(xiàn)ifth Edition分布式系統(tǒng)的特征第1章 分布式系統(tǒng)的特征分布式系統(tǒng)是其組件分布在連網(wǎng)的計算機上,組件之間通過傳遞消息進行通信和動作協(xié)調(diào)的系統(tǒng)。該定義引出了分布式系統(tǒng)的下列重要特征:組件的并發(fā)性、缺乏全局時鐘、組件故障的獨立性。 我們看一下現(xiàn)代分布式系統(tǒng)的幾個例子,包括Web搜索、多人在線游戲和金融交易系統(tǒng),也考察今天推動分布式系統(tǒng)發(fā)展的關鍵趨勢:現(xiàn)代網(wǎng)絡的泛在特性,移動和無處不在計算的出現(xiàn),分布式多媒體系統(tǒng)不斷增加的重要性,以及把分布式系統(tǒng)看成一種實用系統(tǒng)的趨勢。接著本章強調(diào)資源共享是構(gòu)造分布式系統(tǒng)的主要動機。資源可以被服務器管理,由客戶訪問,或者它們被封裝成對象,由其他客戶對象訪問。 構(gòu)造分布式系統(tǒng)的挑戰(zhàn)是處理其組件的異構(gòu)性、開放性(允許增加或替換組件)、安全性、可伸縮性(用戶的負載或數(shù)量增加時能正常運行的能力)、故障處理、組件的并發(fā)性、透明性和提供服務質(zhì)量的問題。最后,以Web作為一個大規(guī)模分布式系統(tǒng)的例子進行了討論,并介紹了它的主要特征。 1.1 簡介 計算機網(wǎng)絡無處不在。互聯(lián)網(wǎng)也是其中之一,因為它是由許多種網(wǎng)絡組成的。移動電話網(wǎng)、協(xié)作網(wǎng)、企業(yè)網(wǎng)、校園網(wǎng)、家庭網(wǎng)、車內(nèi)網(wǎng),所有這些,既可單獨使用,又可相互結(jié)合,它們具有相同的本質(zhì)特征,這些特征使得它們可以放在分布式系統(tǒng)的主題下來研究。本書旨在解釋影響系統(tǒng)設計者和實現(xiàn)者的連網(wǎng)的計算機的特征,給出已有的可幫助完成設計和實現(xiàn)分布式系統(tǒng)任務的主要概念和技術。 我們把分布式系統(tǒng)定義成一個其硬件或軟件組件分布在連網(wǎng)的計算機上,組件之間通過傳遞消息進行通信和動作協(xié)調(diào)的系統(tǒng)。這個簡單的定義覆蓋了所有可有效部署連網(wǎng)計算機的系統(tǒng)。 由一個網(wǎng)絡連接的計算機可能在空間上的距離不等。它們可能分布在地球上不同的洲,也可能在同一棟樓或同一個房間里。我們定義的分布式系統(tǒng)有如下顯著特征: 并發(fā):在一個計算機網(wǎng)絡中,執(zhí)行并發(fā)程序是常見的行為。用戶可以在各自的計算機上工作,在必要時共享諸如Web頁面或文件之類的資源。系統(tǒng)處理共享資源的能力會隨著網(wǎng)絡資源(例如,計算機)的增加而提高。在本書的許多地方將描述有效部署這種額外能力的方法。對共享資源的并發(fā)執(zhí)行程序的協(xié)調(diào)也是一個重要和重復提及的主題。 缺乏全局時鐘:在程序需要協(xié)作時,它們通過交換消息來協(xié)調(diào)它們的動作。密切的協(xié)作通常取決于對程序動作發(fā)生的時間的共識。但是,事實證明,網(wǎng)絡上的計算機與時鐘同步所達到的準確性是有限的,即沒有一個正確時間的全局概念。這是通信僅僅是通過網(wǎng)絡發(fā)送消息這個事實帶來的直接結(jié)果。定時問題和它們的解決方案將在第14章描述。 故障獨立性:所有的計算機系統(tǒng)都可能出故障,一般由系統(tǒng)設計者負責為可能的故障設計結(jié)果。分布式系統(tǒng)可能以新的方式出現(xiàn)故障。網(wǎng)絡故障導致網(wǎng)上互連的計算機的隔離,但這并不意味著它們停止運行,事實上,計算機上的程序不能夠檢測到網(wǎng)絡是出現(xiàn)故障還是網(wǎng)絡運行得比通常慢。類似的,計算機的故障或系統(tǒng)中程序的異常終止(崩潰),并不能馬上使與它通信的其他組件了解。系統(tǒng)的每個組件會單獨地出現(xiàn)故障,而其他組件還在運行。分布式系統(tǒng)的這個特征所帶來的后果將是貫穿本書的一個反復提及的主題。 ……
你還可能感興趣
我要評論
|