複製鏈接
請複製以下鏈接發送給好友

分佈式系統

(建立在網絡之上的軟件系統)

鎖定
分佈式系統(distributed system)是建立在網絡之上的軟件系統。正是因為軟件的特性,所以分佈式系統具有高度的內聚性和透明性。因此,網絡和分佈式系統之間的區別更多的在於高層軟件(特別是操作系統),而不是硬件。 [1] 
中文名
分佈式系統
外文名
distributed system
類    型
軟件系統
特    點
內聚性和透明性

分佈式系統簡介

分佈式系統示例 分佈式系統示例
在一個分佈式系統中,一組獨立的計算機展現給用户的是一個統一的整體,就好像是一個系統似的。系統擁有多種通用的物理和邏輯資源,可以動態的分配任務,分散的物理和邏輯資源通過計算機網絡實現信息交換。系統中存在一個以全局的方式管理計算機資源的分佈式操作系統。通常,對用户來説,分佈式系統只有一個模型或範型。在操作系統之上有一層軟件中間件(middleware)負責實現這個模型。一個著名的分佈式系統的例子是萬維網(World Wide Web),在萬維網中,所有的一切看起來就好像是一個文檔(Web頁面)一樣。 [1] 
計算機網絡中,這種統一性、模型以及其中的軟件都不存在。用户看到的是實際的機器,計算機網絡並沒有使這些機器看起來是統一的。如果這些機器有不同的硬件或者不同的操作系統,那麼,這些差異對於用户來説都是完全可見的。如果一個用户希望在一台遠程機器上運行一個程序,那麼,他必須登陸到遠程機器上,然後在那台機器上運行該程序。 [1] 
分佈式系統和計算機網絡系統的共同點是:多數分佈式系統是建立在計算機網絡之上的,所以分佈式系統與計算機網絡在物理結構上是基本相同的。 [1] 
他們的區別在於:分佈式操作系統的設計思想網絡操作系統是不同的,這決定了他們在結構、工作方式和功能上也不同。網絡操作系統要求網絡用户在使用網絡資源時首先必須瞭解網絡資源,網絡用户必須知道網絡中各個計算機的功能與配置、軟件資源、網絡文件結構等情況,在網絡中如果用户要讀一個共享文件時,用户必須知道這個文件放在哪一台計算機的哪一個目錄下;分佈式操作系統是以全局方式管理系統資源的,它可以為用户任意調度網絡資源,並且調度過程是“透明”的。當用户提交一個作業時,分佈式操作系統能夠根據需要在系統中選擇最合適的處理器,將用户的作業提交到該處理程序,在處理器完成作業後,將結果傳給用户。在這個過程中,用户並不會意識到有多個處理器的存在,這個系統就像是一個處理器一樣。 [1] 
內聚性是指每一個數據庫分佈節點高度自治,有本地的數據庫管理系統。透明性是指每一個數據庫分佈節點對用户的應用來説都是透明的,看不出是本地還是遠程。在分佈式數據庫系統中,用户感覺不到數據是分佈的,即用户不須知道關係是否分割、有無副本、數據存於哪個站點以及事務在哪個站點上執行等。 [1] 

分佈式系統分類

分佈式計算機系統體系結構可用處理機之間的耦合度為主要標誌來加以描述。耦合度是系統模塊之間互聯的緊密程度,它是數據傳輸率響應時間、並行處理能力等性能指標的綜合反映,主要取決於所選用體系結構的互聯拓撲結構通信鏈路的類型。 [2] 
地理環境衡量耦合度,分佈式系統可以分為機體內系統、建築物內系統、建築物間系統和不同地理範圍的區域系統等,它們的耦合度依次由高到低按應用領域的性質決定耦合度,可以分成三類: [2] 
第一種是面向計算任務的分佈並行計算機系統和分佈式多用户計算機系統,它們要求儘可能高的耦合度,以便發展成為能分擔大型計算機和分時計算機系統所完成的工作。 [2] 
第二種是面向管理信息分佈式數據處理系統。耦合度可以適當降低。 [2] 
第三種是面向過程控制的分佈式計算機控制系統。耦合度要求適中,當然對於某些實時應用,其耦合度的要求可能很高。 [2] 

分佈式系統特徵

分佈式系統是多個處理機通過通信線路互聯而構成的鬆散耦合的系統。從系統中某台處理機來看,其餘的處理機和相應的資源都是遠程的,只有它自己的資源才是本地的。至今,對分佈式系統的定義尚未形成統一的見解。一般認為,分佈式系統應具有以下四個特徵: [3] 
(1)分佈性。分佈式系統由多台計算機組成,它們在地域上是分散的,可以散佈在一個單位、一個城市、一個國家,甚至全球範圍內。整個系統的功能是分散在各個節點上實現的,因而分佈式系統具有數據處理的分佈性。 [3] 
(2)自治性。分佈式系統中的各個節點都包含自己的處理機和內存,各自具有獨立的處理數據的功能。通常,彼此在地位上是平等的,無主次之分,既能自治地進行工作,又能利用共享的通信線路來傳送信息,協調任務處理 [3] 
(3)並行性。一個大的任務可以劃分為若干個子任務,分別在不同的主機上執行。 [3] 
(4)全局性。分佈式系統中必須存在一個單一的、全局的進程通信機制,使得任何一個進程都能與其他進程通信,並且不區分本地通信與遠程通信。同時,還應當有全局的保護機制。系統中所有機器上有統一的系統調用集合,它們必須適應分佈式的環境。在所有CPU上運行同樣的內核,使協調工作更加容易。 [3] 

分佈式系統優缺點

分佈式系統優點

(1)資源共享。若干不同的節點通過通信網絡彼此互聯,一個節點上的用户可以使用其他節點上的資源,如分佈式系統允許設備共享,使眾多用户共享昂貴的外部設備,如彩色打印機;允許數據共享,使眾多用户訪問共用的數據庫;可以共享遠程文件,使用遠程特有的硬件設備(如高速陣列處理器),以及執行其他操作。 [3] 
(2)加快計算速度。如果一個特定的計算任務可以劃分為若干個並行運行的子任務,則可把這些子任務分散到不同的節點上,使它們同時在這些節點上運行,從而加快計算速度。另外,分佈式系統具有計算遷移功能,如果某個節點上的負載太重,則可把其中一些作業移到其他節點去執行,從而減輕該節點的負載。這種作業遷移稱為負載平衡 [3] 
(3)可靠性高。分佈式系統具有高可靠性。如果其中某個節點失效了,則其餘的節點可以繼續操作,整個系統不會因為一個或少數幾個節點的故障而全體崩潰。因此,分佈式系統有很好的容錯性能 [3] 
系統必須能夠檢測節點的故障,採取適當的手段,使它從故障中恢復過來。系統確定故障所在的節點後,就不再利用它來提供服務,直至其恢復正常工作。如果失效節點的功能可由其他節點完成,則系統必須保證功能轉移的正確實施。當失效節點被恢復或者修復時,系統必須把它平滑地集成到系統中。 [3] 
(4)通信方便、快捷。分佈式系統中各個節點通過一個通信網絡互聯在一起。通信網絡由通信線路、調制解調器和通信處理器等組成,不同節點的用户可以方便地交換信息。在低層,系統之間利用傳遞消息的方式進行通信,這類似於單CPU系統中的消息機制。單CPU系統中所有高層的消息傳遞功能都可以在分佈式系統中實現,如文件傳遞、登錄、郵件、Web瀏覽和遠程過程調用( Remote Procedure call,RPC)。 [3] 
分佈式系統實現了節點之間的遠距離通信,為人與人之間的信息交流提供了很大方便不同地區的用户可以共同完成一個項目,通過傳送項目文件遠程登錄進入對方系統來運行程序,如發送電子郵件等,協調彼此的工作。 [3] 

分佈式系統缺點

儘管分佈式系統具備眾多優勢,但它也有自身的缺點,主要是可用軟件不足,系統軟件、編程語言應用程序以及開發工具都相對很少。此外,還存在通信網絡飽和或信息丟失和網絡安全問題,方便的數據共享同時意味着機密數據容易被竊取。雖然分佈式系統存在這些潛在的問題,但其優點遠大於缺點,而且這些缺點也正得到克服。因此,分佈式系統仍是人們研究、開發和應用的方向。

分佈式系統應用

分佈式系統被用在許多不同類型的應用中。以下列出了一些應用。對這些應用而言,使用分佈式系統要比其他體系結構處理機和共享存儲器多處理機更優越: [4] 

分佈式系統並行

原則上,並行應用也可以在共享存儲器多處理機上運行,但共享存儲器系統不能很好地擴大規模以包括大量的處理機。HPCC高性能計算和通信)應用一般需要一個可伸縮的設計,這種設計取決於分佈式處理 [4] 

分佈式系統容錯應用

因為每個PE是自治的,所以分佈式系統更加可靠。一個單元或資源(軟件或硬件)的故障不影響其他資源的正常功能。 [4] 

分佈式系統固有的應用

許多應用是固有分佈式的。這些應用是突發模式(burstmode)而非批量模式(bulk mode)。這方面的實例有事務處理和Internet Javad,程序。 [4] 
這些應用的性能取決於吞吐量(事務響應時間或每秒完成的事務數)而不是一般多處理機所用的執行時間。 [4] 
對於一組用户而言, 分佈式系統有一個特別的應用稱為計算機支持的協同工作(Computer Supported Cooperative Working,CSCW)或羣件(groupware), 支持用户協同工作。另一個應用是分佈式會議, 即通過物理的分佈式網絡進行電子會議。同樣,多媒體遠程教學也是一個類似的應用。 [4] 
為了達到互操作性,用户需要一個標準的分佈式計算環境,在這個環境裏,所有系統和資源都可用。 [4] 
DCE(分佈式計算環境)是OSF(開放系統基金會)開發的分佈式計算技術的工業標準集。它提供保護和控制對數據訪問的安全服務、容易尋找分佈式資源的名字服務、以及高度可伸縮的模型用於組織極為分散的用户、服務和數據。D C E可在所有主要的計算平台上運行, 並設計成支持異型硬件和軟件環境下的分佈式應用 [4] 
DCE已經被包括TRANSVARL在內的一些廠商實現。TRANSVARL是最早的多廠商組(multi vendor team)的成員之一,它提出的建議已成為DCE體系結構的基礎。在中可以找到利用DCE開發分佈式應用的指南。 [4] 
一些其它標準基於一個特別的模型,比如CORBA(公用對象請求代理程序體系結構),它是由OMG (對象管理組)和多計算機廠商聯盟開發的一個標準。CORBA使用面向對象模型實現分佈式系統中的透明服務請求。 [4] 
工業界有自己的標準,比如微軟的分佈式構件對象模型DCOM)和Sun Microsystem公司的Java Beans。 [4] 

分佈式系統與計算機網絡異同

分佈式計算機系統與計算機網絡既有類似之處又有不同點,其主要的異同如下: [5] 
(1)在計算機網絡中,每個用户或任務通常只使用一台計算機,若要利用網絡中的另一台計算機,則需要遠程註冊。在分佈式計算機系統中,用户進程在系統內各個計算機上動態調度,並根據運行情況由分佈式操作系統動態地、透明地將機器分配給用户進程或任務。 [5] 
(2)在計算機網絡中,用户知道它們的文件存放在何處,並用顯示的文件傳輸命令在機器之間傳送文件。在分佈式計算機系統中,文件的放置由操作系統管理,用户可用相同方式訪問系統中的所有文件而不管它們位於何處。 [5] 
(3)在計算機網絡中,各結點計算機均有自己的操作系統,資源歸局部所有並被局部控制,網絡內的進程調度是通過進程遷移數據遷移實現的。在分佈式計算機系統中,每個場點上運行一個局部操作系統,執行的任務可以是獨立的,可以是某任務的一個部分,也可以是其他場點上的(部分)任務,且各場點相互協同,合作平衡系統內的負載。 [5] 
(4)在計算機網絡中,系統幾乎無容錯能力。在分佈式計算機系統中有系統自動重構、適度降級使用及錯誤恢復功能。 [5] 
(5)兩者透明性的程度和級別不同。 [5] 
(6)就資源共享而言,計算機網絡和分佈式計算機系統是類似的。 [5] 

分佈式系統系統設計難點

雖然分佈式系統具有很多優點,然而由於分佈式系統自身的特點及應用環境的複雜性,分佈式系統設計有如下的很多難題需要解決: [6] 
1.部分失效問題
由於分佈式系統通常由若干部分組成,各個部分由於各種原因可能發生故障,如硬件故障、軟件錯誤及錯誤操作等。如果一個分佈式系統不對這些故障進行有效的處理,系統某一組成部分的故障可能導致整個系統的癱瘓。 [6] 
2.性能和可靠性過分依賴於網絡
由於分佈式系統是建立在網絡之上的,而網絡本身是不可靠的,可能經常發生故障,網絡故障可能導致系統服務的終止。另外,網絡超負荷會導致性能的降低,增加系統的響應時間。 [6] 
3.缺乏統一控制
一個分佈式系統的控制通常是一個典型的分散控制,沒有統一的中心控制。因此,分佈式系統通常需要相應的同步機制協調系統中各個部分的工作。設計與實現一個對用户來説是透明的且具有容錯能力的分佈式系統是一項具有挑戰性的工作,而且所需的機制和策略尚未成熟。因此什麼樣的程序設計模型、什麼樣的控制機制最適合分佈式系統仍是需要繼續研究的課題。 [6] 
4.難以合理設計資源分配策略
在集中式系統中,所有的資源都由操作系統管理和分配,但在分佈式系統中,資源屬於各節點,所以調度的靈活性不如集中式系統,資源的物理分佈可能與用户請求的分佈不匹配,某些資源可能空閒,而另一些資源可能超載。 [6] 
5.安全保密性問題
開放性使得分佈式系統中的許多軟件接口都提供給用户,這樣的開放式結構對於開發人員非常有價值,但同時也為破壞者打開了方便之門。 [6] 
針對分佈式系統存在的上述難點,要保證一個分佈式系統的正常運行,就必須對系統資源進行有效的管理,對計算機之間的通信、故障、安全等問題提供有效的處理手段和支持機制。 [6] 
用户對分佈式系統的要求是透明性、安全性、靈活性、簡單性、可靠性,也要求方便在局部失效時重構系統,以及集成不均勻子系統的能力。 [6] 
資源的分佈性、缺乏全局狀態信息傳輸延遲,意味着集中式操作系統的某些方法和技術不能應用於分佈式系統中。即使集中式系統中的某些技術滿足上面的要求,其實現通常也是要付出很大代價的。 [6] 
參考資料
  • 1.    陳培友,高太光著.分佈式決策環境下的多議題多相關自動談判及其應用:哈爾濱工程大學出版社,2013.06:第23頁
  • 2.    温靜主編;高翠芬,高霞副主編.計算機操作系統原理:武漢大學出版社,2014.07:第372頁
  • 3.    孟慶昌主編.操作系統:中央廣播電視大學出版社,2015.01:第216頁
  • 4.    [美]吳傑(Jie Wu)著 高傳善等譯.分佈式系統設計:機械工業出版社,2001
  • 5.    劉振鵬,張明,王煜編著.操作系統:中國鐵道出版社,2016.08第287頁:第287頁
  • 6.    邵淑霞,於潤眾,曹金玲主編.操作系統:東北師範大學出版社,2012.04:第218頁