分布式系統(tǒng)和軟件利用計(jì)算機(jī)網(wǎng)絡(luò):網(wǎng)絡(luò)提供部分基礎(chǔ)結(jié)構(gòu)狭莱,供分布式系統(tǒng)在其上執(zhí)行,此外豌鹤,計(jì)算機(jī)網(wǎng)絡(luò)對(duì)于用戶而言就是一組能夠互相通信的計(jì)算設(shè)備。分布式系統(tǒng)通常提供一致的接口鸭廷,使得用戶將一組計(jì)算設(shè)備看作是單個(gè)的統(tǒng)一實(shí)體枣抱。
分布式處理系統(tǒng)有三項(xiàng)基本的特點(diǎn):
- 并發(fā): 在實(shí)際的分布式系統(tǒng)當(dāng)中,多個(gè)線程同時(shí)運(yùn)行靴姿。并發(fā)的復(fù)雜性在于處理對(duì)資源共享訪問(wèn)沃但,
- 在時(shí)間上同步:在實(shí)際的分布式程序當(dāng)中,組件和線程通常必須同步協(xié)調(diào)它們的活動(dòng)佛吓。在分布式系統(tǒng)中,處理時(shí)間問(wèn)題非常的關(guān)鍵垂攘。
- 失效:依賴于多個(gè)獨(dú)立組件的分布式系統(tǒng)當(dāng)中维雇,不幸的事實(shí)是這些組件會(huì)出現(xiàn)失效(例如:軟件中的錯(cuò)誤、硬件的故障晒他、外界的錯(cuò)誤輸入都可以倒置出現(xiàn)失效)吱型,而且,整個(gè)系統(tǒng)中對(duì)這些組件如何以及何時(shí)會(huì)失效幾乎都沒(méi)有控制陨仅。因此津滞,分布式系統(tǒng)的設(shè)計(jì)者的責(zé)任是預(yù)見(jiàn)組件會(huì)失效,并糾正整個(gè)系統(tǒng)中的潛在失效灼伤。
模型
- 客戶-服務(wù)器模型
- 對(duì)等模型:本質(zhì)上是一般化的C/S模型触徐,只不過(guò)在這種分布式系統(tǒng)中,所有的組件是同時(shí)充當(dāng)客戶機(jī)和服務(wù)器的狐赡,組件按照特殊的方式進(jìn)行連接來(lái)共享信息撞鹉。在純對(duì)等分布式系統(tǒng)當(dāng)中,通常沒(méi)有中央服務(wù)器颖侄,但是這些系統(tǒng)的一些變體會(huì)提供相對(duì)應(yīng)的結(jié)構(gòu)鸟雏,例如允許某些組件負(fù)責(zé)管理來(lái)自其他組件的信息。對(duì)等分布式系統(tǒng)的例子有Usenet览祖、基于BitTorrent協(xié)議的應(yīng)用和用于生物信息應(yīng)用的文件共享網(wǎng)絡(luò)孝鹊。
- 事務(wù)處理模型:經(jīng)常使用于需要使用數(shù)據(jù)庫(kù)來(lái)維護(hù)信息,使得信息處于一致?tīng)顟B(tài)展蒂。在這種模型下又活,對(duì)數(shù)據(jù)庫(kù)應(yīng)用的操作是單獨(dú)的和不可分割的;在執(zhí)行時(shí)玄货,這些操作不能夠被中斷皇钞,并運(yùn)行至結(jié)束,除非發(fā)生錯(cuò)誤松捉。換句話說(shuō)夹界,事務(wù)要么運(yùn)行至結(jié)束并成功,要么作為一個(gè)完整的單元失效。通常會(huì)回滾事務(wù)可柿,甚至可能會(huì)記錄事務(wù)以防突然出現(xiàn)變故鸠踪。
創(chuàng)建分布式系統(tǒng)面臨的挑戰(zhàn)
- 異構(gòu)性:分布式系統(tǒng)的各個(gè)部分通常具有不同的類(lèi)型和種類(lèi)(硬件,語(yǔ)言复斥,標(biāo)準(zhǔn)...)营密,有很多的技術(shù)用來(lái)確保異構(gòu)性不會(huì)出現(xiàn)問(wèn)題,而且尤其時(shí)采用公認(rèn)的標(biāo)準(zhǔn)目锭。
- 安全性:分布式系統(tǒng)使用和傳遞的信息需要受到安全性的約束评汰,而且必須符合這些要求。
- 可伸縮性:對(duì)于一個(gè)可伸縮的系統(tǒng)而言痢虹,即使試圖訪問(wèn)其資源的用戶數(shù)量大量的增加被去,也能夠給出有用的結(jié)果〗蔽ǎ可伸縮性的一個(gè)重要方面是確保資源沒(méi)有用盡并避免性能瓶頸惨缆。
- 自動(dòng)故障防護(hù): 對(duì)于一個(gè)分布式系統(tǒng)而言,如果系統(tǒng)中的一個(gè)或者是多個(gè)組件出現(xiàn)故障時(shí)丰捷,還能夠繼續(xù)提供服務(wù)坯墨,那么這個(gè)系統(tǒng)就具有自動(dòng)故障防護(hù)性能。由于分布式系統(tǒng)中的故障是部件性的病往,處理起來(lái)不容易捣染。需要先檢測(cè)故障,然后進(jìn)行減緩荣恐,例如液斜,通過(guò)啟用新的組件,或者是將服務(wù)請(qǐng)求轉(zhuǎn)到其他的組件叠穆。
- 透明性(即隱藏信息):分布式系統(tǒng)可以是很復(fù)雜的少漆,但復(fù)雜性對(duì)于用戶來(lái)說(shuō)是隱藏的。
- 擴(kuò)展性
第二章 : 并發(fā)的概念
并發(fā)系統(tǒng)有一個(gè)特別有意思的方面是定時(shí)處理硼被。如果一個(gè)系統(tǒng)具有許多需要使用硬性時(shí)限才能夠滿足的同步要求示损,就可以將系統(tǒng)作為并發(fā)系統(tǒng)實(shí)現(xiàn)。