分布式系統(tǒng)概述
在一個分布式系統(tǒng)中,一組獨(dú)立的計算機(jī)展現(xiàn)給用戶的是一個統(tǒng)一的整體,就好像是一個系統(tǒng)似的。系統(tǒng)擁有多種通用的物理和邏輯資源,可以動態(tài)的分配任務(wù),分散的物理和邏輯資源通過計算機(jī)網(wǎng)絡(luò)實現(xiàn)信息交換。系統(tǒng)中存在一個以全局的方式管理計算機(jī)資源的分布式操作系統(tǒng)。通常,對用戶來說,分布式系統(tǒng)只有一個模型或范型。在操作系統(tǒng)之上有一層軟件中間件(middleware)負(fù)責(zé)實現(xiàn)這個模型。一個著名的分布式系統(tǒng)的例子是萬維網(wǎng)(World Wide Web),在萬維網(wǎng)中,所有的一切看起來就好像是一個文檔(Web頁面)一樣。 [1] 在計算機(jī)網(wǎng)絡(luò)中,這種統(tǒng)一性、模型以及其中的軟件都不存在。用戶看到的是實際的機(jī)器,計算機(jī)網(wǎng)絡(luò)并沒有使這些機(jī)器看起來是統(tǒng)一的。如果這些機(jī)器有不同的硬件或者不同的操作系統(tǒng),那么,這些差異對于用戶來說都是完全可見的。如果一個用戶希望在一臺遠(yuǎn)程機(jī)器上運(yùn)行一個程序,那么,他必須登陸到遠(yuǎn)程機(jī)器上,然后在那臺機(jī)器上運(yùn)行該程序。分布式系統(tǒng)和計算機(jī)網(wǎng)絡(luò)系統(tǒng)的共同點(diǎn)是:多數(shù)分布式系統(tǒng)是建立在計算機(jī)網(wǎng)絡(luò)之上的,所以分布式系統(tǒng)與計算機(jī)網(wǎng)絡(luò)在物理結(jié)構(gòu)上是基本相同的。
他們的區(qū)別在于:分布式操作系統(tǒng)的設(shè)計思想和網(wǎng)絡(luò)操作系統(tǒng)是不同的,這決定了他們在結(jié)構(gòu)、工作方式和功能上也不同。網(wǎng)絡(luò)操作系統(tǒng)要求網(wǎng)絡(luò)用戶在使用網(wǎng)絡(luò)資源時首先必須了解網(wǎng)絡(luò)資源,網(wǎng)絡(luò)用戶必須知道網(wǎng)絡(luò)中各個計算機(jī)的功能與配置、軟件資源、網(wǎng)絡(luò)文件結(jié)構(gòu)等情況,在網(wǎng)絡(luò)中如果用戶要讀一個共享文件時,用戶必須知道這個文件放在哪一臺計算機(jī)的哪一個目錄下;分布式操作系統(tǒng)是以全局方式管理系統(tǒng)資源的,它可以為用戶任意調(diào)度網(wǎng)絡(luò)資源,并且調(diào)度過程是“透明”的。當(dāng)用戶提交一個作業(yè)時,分布式操作系統(tǒng)能夠根據(jù)需要在系統(tǒng)中選擇最合適的處理器,將用戶的作業(yè)提交到該處理程序,在處理器完成作業(yè)后,將結(jié)果傳給用戶。在這個過程中,用戶并不會意識到有多個處理器的存在,這個系統(tǒng)就像是一個處理器一樣。 [1] 內(nèi)聚性是指每一個數(shù)據(jù)庫分布節(jié)點(diǎn)高度自治,有本地的數(shù)據(jù)庫管理系統(tǒng)。透明性是指每一個數(shù)據(jù)庫分布節(jié)點(diǎn)對用戶的應(yīng)用來說都是透明的,看不出是本地還是遠(yuǎn)程。在分布式數(shù)據(jù)庫系統(tǒng)中,用戶感覺不到數(shù)據(jù)是分布的,即用戶不須知道關(guān)系是否分割、有無副本、數(shù)據(jù)存于哪個站點(diǎn)以及事務(wù)在哪個站點(diǎn)上執(zhí)行等。
分布式計算機(jī)系統(tǒng)的體系結(jié)構(gòu)可用處理機(jī)之間的耦合度為主要標(biāo)志來加以描述。耦合度是系統(tǒng)模塊之間互聯(lián)的緊密程度,它是數(shù)據(jù)傳輸率、響應(yīng)時間、并行處理能力等性能指標(biāo)的綜合反映,主要取決于所選用體系結(jié)構(gòu)的互聯(lián)拓?fù)浣Y(jié)構(gòu)和通信鏈路的類型。按地理環(huán)境衡量耦合度,分布式系統(tǒng)可以分為機(jī)體內(nèi)系統(tǒng)、建筑物內(nèi)系統(tǒng)、建筑物間系統(tǒng)和不同地理范圍的區(qū)域系統(tǒng)等,它們的耦合度依次由高到低按應(yīng)用領(lǐng)域的性質(zhì)決定耦合度,可以分成三類: [2] 第一種是面向計算任務(wù)的分布并行計算機(jī)系統(tǒng)和分布式多用戶計算機(jī)系統(tǒng),它們要求盡可能高的耦合度,以便發(fā)展成為能分擔(dān)大型計算機(jī)和分時計算機(jī)系統(tǒng)所完成的工作。 [2] 第二種是面向管理信息的分布式數(shù)據(jù)處理系統(tǒng)。耦合度可以適當(dāng)降低。 [2] 第三種是面向過程控制的分布式計算機(jī)控制系統(tǒng)。耦合度要求適中,當(dāng)然對于某些實時應(yīng)用,其耦合度的要求可能很高。
分布式系統(tǒng)是多個處理機(jī)通過通信線路互聯(lián)而構(gòu)成的松散耦合的系統(tǒng)。從系統(tǒng)中某臺處理機(jī)來看,其余的處理機(jī)和相應(yīng)的資源都是遠(yuǎn)程的,只有它自己的資源才是本地的。至今,對分布式系統(tǒng)的定義尚未形成統(tǒng)一的見解。一般認(rèn)為,分布式系統(tǒng)應(yīng)具有以下四個特征: [3] (1)分布性。分布式系統(tǒng)由多臺計算機(jī)組成,它們在地域上是分散的,可以散布在一個單位、一個城市、一個國家,甚至全球范圍內(nèi)。整個系統(tǒng)的功能是分散在各個節(jié)點(diǎn)上實現(xiàn)的,因而分布式系統(tǒng)具有數(shù)據(jù)處理的分布性。 [3] (2)自治性。分布式系統(tǒng)中的各個節(jié)點(diǎn)都包含自己的處理機(jī)和內(nèi)存,各自具有獨(dú)立的處理數(shù)據(jù)的功能。通常,彼此在地位上是平等的,無主次之分,既能自治地進(jìn)行工作,又能利用共享的通信線路來傳送信息,協(xié)調(diào)任務(wù)處理。 [3] (3)并行性。一個大的任務(wù)可以劃分為若干個子任務(wù),分別在不同的主機(jī)上執(zhí)行。 [3] (4)全局性。分布式系統(tǒng)中必須存在一個單一的、全局的進(jìn)程通信機(jī)制,使得任何一個進(jìn)程都能與其他進(jìn)程通信,并且不區(qū)分本地通信與遠(yuǎn)程通信。同時,還應(yīng)當(dāng)有全局的保護(hù)機(jī)制。系統(tǒng)中所有機(jī)器上有統(tǒng)一的系統(tǒng)調(diào)用集合,它們必須適應(yīng)分布式的環(huán)境。在所有CPU上運(yùn)行同樣的內(nèi)核,使協(xié)調(diào)工作更加容易。