分布式系統(tǒng)系統(tǒng)模型_第1頁
分布式系統(tǒng)系統(tǒng)模型_第2頁
分布式系統(tǒng)系統(tǒng)模型_第3頁
分布式系統(tǒng)系統(tǒng)模型_第4頁
分布式系統(tǒng)系統(tǒng)模型_第5頁
已閱讀5頁,還剩68頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、分布式系統(tǒng)系統(tǒng)模型(System Models) 結構模型(Architectural model)基礎模型(Fundamental model) 1結構模型(Architectural model)分布式系統(tǒng)的結構模型是關于其各部分的布局及其相互間關系,它定義了系統(tǒng)的各組件之間相互交互的方式以及它們映射到下面的計算機網(wǎng)絡的方式。 Client/server模型 對等進程(peer process)模型2客戶/服務器模型的擴展 * 在(多個)協(xié)作的服務器上劃分 (partition)和復制數(shù)據(jù); * 由代理服務器(proxy servers) 和客戶進行數(shù)據(jù)緩存(caching); * 使用移

2、動代碼和移動代理; * 以方便的方式添加和刪除移動設備。 3基礎模型(Fundamental model)基礎模型是對所有結構模型中公共屬性的更形式化的描述。交互模型(Interaction model) 交互模型處理分布式系統(tǒng)中性能以及設置時間限制的困難,例如對于消息傳遞(message delivery)。反映了進程交互的方式。故障模型(failure model) 故障模型試圖給出可能由進程和通信通道呈現(xiàn)出來的故障的一個精確的規(guī)格說明(specification)。它定義可靠的通信和正確的進程。安全模型(security model) 安全模型討論對于進程和通信通道可能存在的威脅,它引入

3、了安全通道的概念,以抵御這些威脅。 4結構模型 系統(tǒng)的結構是關于其各個獨立指定的組件的結構。 建筑物的結構設計有類似的方面:不僅要確定它的外觀,而且要確定它的總體結構和結構風格(哥特式,新古典主義,現(xiàn)代的)。 我們圍繞著進程和對象的概念構建我們的結構模型。分布式系統(tǒng)的結構模型首先簡化和抽象分布式系統(tǒng)各個組件的功能,然后它考慮: 放置組件在一個計算機網(wǎng)絡上,尋找定義數(shù)據(jù)和工作負載分布的有用的模式。 組件之間的相互關系,即它們的功能角色以及它們之間的通信模式。 5進程分類服務器進程 提供服務客戶進程 請求服務對等進程 指這樣的一類進程,它們以一種對稱的方式協(xié)作和通信,以執(zhí)行一個任務。 6客戶/服務

4、器模型的變種 某些更動態(tài)的系統(tǒng)可以構造為客戶/服務器模型的變種: * 從一個進程到另一個進程移動代碼的可能性允許一個進程委托任務到另一個進程。例如,客戶可以從服務器下載代碼在本地運行它。對象和存取它們的代碼能夠被移動以減少訪問延遲和最小化通信量。 * 某些分布式系統(tǒng)被設計以使計算機和其它移動設備能無縫地添加或刪除,允許它們發(fā)現(xiàn)可用的服務并向其它設備提供它們的服務。 在一個計算機網(wǎng)絡中實際的放置(布局、分布)組成分布式系統(tǒng)的進程可能受到性能、可靠性、安全性和費用的影響。 7軟件層(軟件結構)原來在單一計算機中,軟件結構是指把軟件結構化為層或模塊;而近來則是用位于相同或不同的計算機里的進程之間提供

5、和請求的服務來定義。分布式系統(tǒng)中軟件硬件服務層: 8Middleware-based SystemsGeneral structure of a distributed system as middleware. Middleware提供部分Distributed Operating System服務。1-229中間件(Middleware) 從中間件提出的初始動因來看,是指網(wǎng)絡環(huán)境下處于操作系統(tǒng)等系統(tǒng)軟件和應用軟件之間的一種起連接作用的分布式軟件,主要解決異構網(wǎng)絡環(huán)境下分布式應用軟件的互連與互操作問題,它可屏蔽實現(xiàn)細節(jié),提高應用系統(tǒng)的易移植性從廣義的角度看,中間件代表了處于系統(tǒng)軟件和應用軟件

6、之間的中間層次的軟件,其主要目的是對應用軟件的開發(fā)和運行提供更為直接和高效的支撐 10中間件(續(xù))中間件是一個軟件層,它的目的是屏蔽異構性并向應用程序員提供一個方便的編程模型。中間件通過在一組計算機里的進程或對象來表達,它們相互交互以為分布式應用實現(xiàn)通信和資源共享支持。 中間件技術已成為軟件技術的研究熱點主要中間件包括:數(shù)據(jù)訪問中間件、遠程過程調用中間件、事務中間件、消息中間件和面向對象中間件等;遠程過程調用包(例如Sun RPC)和組通信系統(tǒng)(例如Isis)是最早、當前最廣泛使用的中間件的實例。The BEA Tuxedo system is a middleware product tha

7、t distributes applications across multiple platforms, databases, and operating systems using message-based communications and, if desired, distributed transaction processing. 11面向對象中間件面向對象中間件是對象技術和分布式汁算發(fā)展的產物,它提供種通訊機制,透明地在異構的分布計算環(huán)境中傳遞對象請求目前主要的面向對象中間件產品和標準有OMG的CORBA、微軟的DCOM和Sun公司的Java RMI/EJB。它們的異構性和開

8、放性各有不同,適用于異構環(huán)境、開放的CORBA是Internet與企業(yè)應用事實上的工業(yè)標準,而特定于Windows平臺、專有的COM則是桌面系統(tǒng)的首選EJB則兼具二者之優(yōu)勢 中間件也提供了供應用程序使用的服務,它們被緊密地綁定到由中間件提供的分布式編程模型。例如,CORBA提供了naming, security, transactions, persistent storage和event notification等服務。 12Web Services 隨著軟件產業(yè)模式從以產品為中心的制造業(yè)轉變?yōu)橐钥蛻魹橹行牡姆諛I(yè),WWW從兩層體系轉變?yōu)槿龑芋w系,分布計算中間件從Intranet擴展到Int

9、ernet,上述中間件技術已不能適應這些發(fā)展需求,因而導致新型中間件技術Web Services的產生。 Web Services以XML、SOAP、WSDL和UDDl為核心,致力于軟件在應用層的互操作問題Web Services不僅屏蔽了異構的操作系統(tǒng)、網(wǎng)絡和編程語言,還屏蔽了傳統(tǒng)中間件之間的異構性,并支持開放、動態(tài)的互操作模式,增強了服務動態(tài)發(fā)布,查找和使用的能力因此,Web Services獲得了產業(yè)界廣泛的支持和學術界的重視。13系統(tǒng)結構 Client-server模型 這是分布式系統(tǒng)最經常被引用的體系結構,下圖闡述了這種簡單的結構:客戶進程與各服務器進程(在分離的主計算機上)交互以訪

10、問它們所管理的共享資源。 14 由多個服務器提供的服務 服務可以被實現(xiàn)為在分離的主計算機上的多個服務器進程,它們按需要交互來向客戶進程提供一個服務。這些服務器可以劃分(partition)該服務所基于的對象集合,并在它們之間分布它們,或者在若干個主機上維護這些對象的復制副本。 15 代理服務器和緩存(Proxy servers and caches) Cache是近期使用了的數(shù)據(jù)對象的存儲,它比對象本身更近。當一個新的對象被接收到,它被添加到cache存儲中,如果需要的話,替換某個現(xiàn)有對象。當客戶進程需要一個一個對象的時候,caching服務首先檢查cache,如果最新的拷貝是可用的,則從那里

11、提供該對象。否則,去獲取一個最新的拷貝。Cache可以布置在每一個客戶端,或位于代理服務器上,以便能夠被多個客戶共享。 16 對等進程(peer processes) 在這種結構中,所有進程扮演類似的角色,作為對等者協(xié)同交互,在沒有任何客戶與服務器差別的情況下執(zhí)行一個分布式活動或計算。在這種模型中,對等進程中的代碼維護應用級(層)資源的一致性并按需要同步應用級的行為(actions)。 通常,n個對等進程可以相互交互,其通信模式取決于應用需求。 17客戶/服務器模型的變種通過考慮下面的一些因素我們可以導出客戶/服務器模型的幾個變種: 使用移動代碼和移動代理; 用戶對于低價格(low-cost)

12、計算機 的需要;(有限的硬件資源, 管理簡單) 以方便的方式添加和刪除移動設備的需 求。 18 移動代碼(Mobile code)Applets是一種眾所周知和廣泛使用移動代碼:用戶運行瀏覽器選擇一個到Applet的鏈接(link),Applet的代碼存儲在Web服務器上,代碼被下載到瀏覽器并在那兒運行。下圖是其示例: 19移動代碼 (續(xù)) 局部(本地)運行下載的代碼的好處是,由于不會遭遇跟網(wǎng)絡通信相關的延遲或帶寬的變化(可變性),因此會得到好的交互式響應。 例子:一個股票代理(stockbroker)可以提供一個定制服務來通知客戶股票價格的變化。為了使用這個服務,每個客戶必須下載一個特別的A

13、pplet,它從代理服務器那里接收更新,顯示給用戶,也許還要執(zhí)行自動的買和賣操作(根據(jù)客戶設置的條件)。 移動代碼對于目的計算機里的本地資源有潛在的安全威脅,因此瀏覽器會限制Applet對本地資源的訪問。 20 移動代理(Mobile agents)移動代理是一個包含代碼和數(shù)據(jù)的運行程序(自治的軟件組件,能與其他代理通信),它在網(wǎng)絡中從一臺計算機移動(travels)到另一臺計算機,代表某人(someone)完成(執(zhí)行)一個任務,例如收集信息,最終返回結果。移動代碼在它訪問的每一個場點可能作許多對本地資源(local resources)的調用請求,例如訪問各個數(shù)據(jù)庫項。我們將這種結構與靜態(tài)客

14、戶(static client)做一個比較:靜態(tài)客戶要作對某些資源的遠程調用,這樣可能會傳送大量的數(shù)據(jù),移動代理結構通過用本地調用代替遠程調用減少(降低)了通信的費用和時間。 21 移動代理(續(xù))與移動代碼一樣,移動代理對它們所訪問到計算機上的資源也有潛在的安全威脅。接收移動代理的環(huán)境基于用戶的身份(移動代理代表誰)應該決定允許它使用哪些局部資源,其身份(identity)必須以一種安全的方式與移動代理的代碼和數(shù)據(jù)包含在一起。此外,移動代理本身可能是脆弱的,即如果它們被拒絕訪問它們需要的信息,它們可能不能完成它們的任務。由移動代理執(zhí)行的任務可以通過其它方式執(zhí)行。例如,需要訪問Internet上

15、Web服務器上資源的Web爬行者(crawlers)通過做對服務器進程的遠程調用(remote invocations),能夠相當成功地工作。由于這些原因,移動代理的應用(適用性)可能是有限的。 22移動代理(續(xù))一個移動代理系統(tǒng)應該向代理程序員(the agent programmer)提供盡可能多的靈活性,來盡可能多地隱藏下面的網(wǎng)絡體系結構。移動代理系統(tǒng)的例子有:IBM 的Aglet以及Voyager,AgentTCL等。 移動代理與移動代碼的區(qū)別? 23移動代理與移動代碼的區(qū)別代理通常是“multi-hop”可移動的,而Java applets是“single-hop”。即代理通常是要從

16、網(wǎng)絡上的一個主機漫游到另一個主機,在每一個訪問點積聚狀態(tài),然后主動地決定什么時候移動,以及應該移動到哪里。代理主動地控制他們的移動,而Java applets則是被動的。代理典型的應用包括網(wǎng)絡管理,comparative service shopping等。代理在它們的旅行中是有狀態(tài)的,而Java applets通常是無狀態(tài)的。隨著代理訪問經過各個結點,典型地它在每個結點上都要執(zhí)行一些工作,這會引起其內部的狀態(tài)變換,并在其移動過程中攜帶它們。24 網(wǎng)絡計算機(Network computers) 在桌面計算機環(huán)境中,操作系統(tǒng)和應用軟件典型地需要大量的活動代碼和數(shù)據(jù),它們位于在本地磁盤上。但是應

17、用文件的管理和本地軟件庫的維護都需要相當?shù)募夹g工作,這對于大多數(shù)的用戶是不能勝任的。 網(wǎng)絡計算機是對這個問題的一個反應。它按用戶的需要從遠程文件服務器下載操作系統(tǒng)和任何應用軟件。應用在本地運行,但文件由遠程文件服務器管理。像Web browser這樣的網(wǎng)絡應用也能夠運行。由于所有的應用數(shù)據(jù)和代碼都由文件服務器存儲,用戶可以從一臺網(wǎng)絡計算機遷移到另一臺。網(wǎng)絡計算機的處理器和存儲器能力可以被限制以降低它的成本(cost)。 如果包含一個磁盤,它僅僅保持最少的軟件,磁盤的其余部分被用做cache存儲,以保持近期從服務器載入的軟件和數(shù)據(jù)文件的copies。 25瘦客戶(Thin clients) 瘦客

18、戶是指一個軟件層,它支持用戶端的計算機上基于窗口的用戶界面,而在遠程的計算機上執(zhí)行應用程序。 這種結構與網(wǎng)絡計算機模式有同樣低的管理和硬件費用。但它不是下載應用代碼到用戶的計算機,而是在計算服務器上運行它們。 26移動設備和自組網(wǎng)絡(Mobile devices and spontaneous networking)現(xiàn)在各種小的、便攜的計算設備越來越多,包括筆記本電腦、個人數(shù)字助理(PDAs)類的手持設備,移動電話和數(shù)字照相機、可穿戴的計算機(如smart watch)、以及嵌入在日常裝置(如洗衣機)里的設備。許多的這些設備能夠無線聯(lián)網(wǎng),范圍從大城市或更大的范圍(GSM, CDPD),到數(shù)百米

19、(WaveLAN),或幾米(BlueTooth, infra-red and HomeRF)。更短范圍的網(wǎng)絡有直到10Mbps級的帶寬,GSM有望達到數(shù)百Kbps級。 27移動設備和自組網(wǎng)絡(續(xù))適當?shù)丶傻轿覀兊姆植际较到y(tǒng),這些設備提供了對移動計算(mobile computing)的支持,從而用戶能夠在網(wǎng)絡環(huán)境之間攜帶它們的移動設備,并利用本地和遠程的服務。集成移動設備和其它設備到一個給定的網(wǎng)絡的分布形式也許可以最好地用自組網(wǎng)絡(spontaneous networking)來描述。這個術語用于指這樣的應用:它涉及到以一種比現(xiàn)在可能的更加不正式的方式把移動和非移動設備連接成網(wǎng)絡。那些嵌入式

20、設備向用戶和其它的相鄰設備提供服務。像PDAs這樣的便攜式設備讓用戶可以訪問在他們當前位置的服務,也可以訪問像Web這樣的全球服務。 28 自組網(wǎng)絡的關鍵特征是: 易于連接到本地網(wǎng)絡(local network) 易于跟本地服務(local services)集成 當它們旅行(travel)的時候,移動用戶可能 遭遇受限的連接(limited connectivity), 其連接的自主特性又引起了安全問題: 有限的連接 安全和私秘(Security and privacy) 發(fā)現(xiàn)服務(Discovery services) 注冊服務(registration service) 查找服務(loo

21、kup service) 29接口和對象(Interfaces and objects) 進程中(無論是服務器或是對等進程)可用于調用的功能函數(shù)的集合通過一個或多個接口定義來說明。在基本的客戶/服務器結構中,每一個服務器進程被看作一個具有固定接口(定義了它里面能夠被調用的函數(shù))的單一的實體(entity)。 在面向對象語言(例如C+和Java)中,通過適當?shù)母郊又С?,分布式進程能夠以更加面向對象的方式進行構造。許多對象能夠被封裝在服務器或對等進程中,對它們的引用(references)被傳遞到其它進程以便它們的方法能夠通過遠程調用(remote invocation)進行(被)訪問。這是COR

22、BA和Java所采用的方法(采用遠程方法調用RMI機制)。 30分布式結構的設計需求(所有模型共享design requirements) 性能問題(Performance issues) 服務質量(Quality of Service) 使用caching和復制(Use of caching and replication) 可靠性問題(dependability issues) 31基礎模型所有前面介紹的不同的系統(tǒng)模型共享某些基 礎特性。通常,一個模型僅僅包含我們需要考慮的基本要素,以便理解和推理關于系統(tǒng)行為的某些方面。一個系統(tǒng)模型必須表述這些問題: 系統(tǒng)中主要的實體是什么? 它們怎樣交互

23、? 影響其個體和集體行為的特征是什么? 32基礎模型 (續(xù)) 在基礎模型中我們希望捕捉的分布式系統(tǒng)的特性是想要幫助我們討論和理解: 交互(Interaction) 計算發(fā)生在進程中。進程通過傳遞信件(pass messages)交互,導致進程之間的通信(即信息流)和協(xié)調(coordination,即同步和活動定序ordering)。交互模型必須反映這樣的事實:通信的發(fā)生是有延遲的(這經常具有相當?shù)某掷m(xù)時間),并且協(xié)調獨立的進程的準確性(正確度)受限于這些延遲以及在分布式系統(tǒng)的所有計算機上維護相同的時間概念(notion)的困難性。33 故障(Failure) 無論什么時候當任何的計算機里面或連

24、接它們的網(wǎng)絡發(fā)生故障(包括軟件故障) 時,分布式系統(tǒng)的正確操作都會受到威脅。故障模型定義和分類了故障,這提供了一個基礎,使我們能夠分析其潛在的影響,并使得系統(tǒng)的設計能夠容忍每一種類型的故障,以繼續(xù)正確地運行。 34 安全性(security) 分布式系統(tǒng)模塊化的特性及其開放性暴露出它們容易遭到外部和內部代理的攻擊。安全模型定義和分類了那樣的攻擊可能采取的形式,這提供了一個基礎,使得我們能夠分析對系統(tǒng)的威脅,以及設計出能夠抵御它們的系統(tǒng)。 35交互模型分布式系統(tǒng)由許多進程組成,他們以復雜的方式交互。例如 :多個服務器進程相互協(xié)作以提供一個服務;前面提到的一個例子是Domain Name Serv

25、ice系統(tǒng), 他劃分和復制他的數(shù)據(jù)在整個Internet的服務器(servers)上。一組對等進程可以相互協(xié)作以獲得一個共同的目標:例如,一個以類似的方式(但是具有嚴格的實時限制)分發(fā)音頻數(shù)據(jù)流的音頻會議系統(tǒng)。 36交互模型(續(xù))每一個進程進行的速度以及他們之間消息傳送的定時同步(timing)通常不能預知。由于必須處理涉及到的一個或多個進程的故障或消息傳送的故障,要描述分布式算法所有的狀態(tài)也是困難的。在分布式系統(tǒng)中,每個進程有他自己的狀態(tài)(由他可以訪問和更新的數(shù)據(jù)集組成),屬于每個進程的狀態(tài)是完全私有的。在這一節(jié),我們討論影響分布式系統(tǒng)中交互進程的兩個重要因素: 通信性能通常是一個限制特性(

26、limiting characteristic) 不可能維護一個單一的全局時間概念37計算機時鐘和定時事件(timing events)分布式系統(tǒng)中每一臺計算機有其自己的內部時鐘,可以被本地進程用于獲得當前時間的值,因此運行在不同計算機上的兩個進程能夠給他們的事件關聯(lián)一個時間戳(timestamps)。然而,即使兩個進程在同一個時間讀取他們的時鐘,其局部時鐘也可能提供不同的時間值,這是因為計算機時鐘與標準時間的偏移,更重要的是,不同計算機相互間的偏移率是不一樣的。即使分布式系統(tǒng)中所有計算機的時鐘在初始化的時候被設置成相同的時間,其時鐘最終也會變化得很大(除非采用校正措施)。 38計算機時鐘和定

27、時事件(續(xù))有幾種方法來校正計算機時鐘的時間。例如,計算機可以使用無線電接收器來從GPS那里得到時間(具有大約一微秒的精度)。但是GPS接收器不能在建筑物內操作,每臺計算機都配備在費用上也是不合理的。一種替代的方法是,一臺具有精確時間源(例如GPS)的計算機向網(wǎng)絡中其他計算機發(fā)送定時消息,結果各局部時鐘時間之間的一致性當然受變化的消息延遲的影響。 39交互模型的兩個變種在分布式系統(tǒng)中很難對進程執(zhí)行、消息傳遞或時鐘偏移的時間設置時間限制。有兩種簡單的、相反的、極端的模型:第一種有非常強的時間假定,另一種沒有作任何關于時間的假定。 40同步分布式系統(tǒng)在Hadzilacos和Toueg的定義中,同步

28、分布式系統(tǒng)具有下面的限制:進程每一步執(zhí)行的時間有已知的下和上界;通道上傳送的每一封信在一個已知的有限的時間內被接收到;每一個進程有一個局部時鐘,其相對于標準時間的偏移率有一個已知的界限。41同步分布式系統(tǒng)(續(xù))能夠建議分布式系統(tǒng)中進程執(zhí)行時間、消息延遲和時鐘偏移率很可能的上和下界,但難于達到現(xiàn)實可行的值并提供這些選擇值的保證。除非這些界限值能夠被保證,否則任何基于這些選擇值的設計都不會是可靠的。然而,把一個算法建模為一個同步系統(tǒng)對于弄清楚它在真實的分布式系統(tǒng)中是如何工作的可能是有用的。在同步系統(tǒng)中,可以使用超時(timeouts),例如檢測進程的故障。 同步分布式系統(tǒng)可以構建。所需要的是進程在

29、已知的資源需求下執(zhí)行任務,以便他們能夠保證(有)足夠的處理器周期和網(wǎng)絡容量,同時提供給進程具有有限偏移率的時鐘。 42異步分布式系統(tǒng)許多分布式系統(tǒng)(例如Internet),是非常有用的,不能算是合格的同步系統(tǒng),因此我們需要另一個模型。異步分布式系統(tǒng)沒有任何下面的限制:進程執(zhí)行速度例如,一個進程步(step)可能只花1 微微秒(picosecond),而另一個則要花一個世紀;總之,每一步可能花任意長的時間;消息傳送延遲例如,一封從進程A到進程B的信可能在零時間里被傳遞,而另一封信可能要花幾年。換句話說,一封信可以在任意長的時間后被接受到;時鐘偏移率時鐘的偏移率是任意的。 43異步分布式系統(tǒng)(續(xù))

30、異步模型對在任意執(zhí)行中涉及到的時間間隔不允許有任何假設,這準確地建模了Internet,在那里對服務器或網(wǎng)絡的負載沒有任何固有的限制,因此對于(例如,使用ftp傳送一個文件)要花多長的時間也就沒有限制。有時一封Email信可能要花數(shù)天的時間才能到達。Web不能總是在一個合理的時間限制之內提供一個特定的響應。 44異步分布式系統(tǒng)(續(xù))任何對于異步分布式系統(tǒng)有效的解決方案對于同步分布式系統(tǒng)來說也是有效的。實際的分布式系統(tǒng)常常是異步的,因為需要進程共享處理器以及通信通道共享網(wǎng)絡。例如,如果太多具有未知特性的進程在共享一臺處理器,那么它們任何一個結果的性能都不能得到保證。但是,有許多對于一個異步系統(tǒng)不

31、能解決的設計問題,當使用某些方面的時間時就能夠被解決。對于要在一個最終期限前傳遞的多媒體數(shù)據(jù)流的每一個元素就是那樣的一個問題。 45事件定序在許多情況下,我們想知道一個進程中的一個事件(發(fā)送或接收一個消息)是發(fā)生在另一個進程中的另一個事件之前、之后或是并發(fā)地發(fā)生。一個系統(tǒng)的執(zhí)行可以用事件及其順序(ordering)來描述,盡管缺乏精確的時鐘。46Example我們考慮在一組email用戶X、Y、Z和A之間的一組如下的交換:用戶X發(fā)送一封具有主題Meeting的信;用戶Y和Z通過發(fā)送一封具有主題Re:Meeting的信進行回答; 首先X的信被發(fā)送,Y讀取它并回答;Z讀取X的信和Y的回答,然后 發(fā)

32、送另一封回答信(它引用了X和Y的信)。但是由于消息傳遞獨 立的延遲,這些信可能按下圖的方式被傳遞: 47Example (cont.)這樣某些用戶可能以錯誤的順序看到這些信,例如用戶A可能看見:48如果X、Y、Z的計算機的時鐘能夠同步,那么每一封信在它被發(fā)送的時候,就能夠攜帶其局部計算機時鐘的時間。例如,信件m1,m2和m3將攜帶時間t1,t2和t3(t1t2t3)。接收到的信件將按照其時間順序顯示給用戶。如果這些時鐘是大致同步的,那么這些時間戳(timestamps)經常具有正確的順序。 49邏輯時鐘因為在分布式系統(tǒng)中這些時鐘不能完全地被同步,Lamport提出了一種邏輯時間模型,可以用來對

33、運行在分布式系統(tǒng)不同的計算機上的進程中的事件提供一種定序(ordering)。邏輯時間不需要求助于時鐘而推斷出消息(信件)出現(xiàn)的次序。50邏輯時鐘(續(xù))邏輯上,我們知道一封信在其被發(fā)送之后才被接收,因此我們可以聲明一些事件對的邏輯順序,例如我們僅僅考慮跟X、Y相關的事件: X sends m1 before Y receives m1; Y sends m2 before X receives m2.我們也知道在接受信件之后才發(fā)送回答,因此我們有下面的邏輯順序(對于Y): Y receives m1 before sending m2.邏輯時間進一步采用這個思想,給每一個事件分配一個數(shù)值(相應

34、于其邏輯順序),以便后面的事件比早先的事件有更高的數(shù)值。例如,前面的圖中在X和Y的事件上顯示數(shù)值14。51故障模型分布式系統(tǒng)中,進程和通信通道都可能失效,故障模型定義了故障可能發(fā)生的方式,以便理解故障的影響。遺漏故障(Omission failures) 指一個進程或通信通道不能執(zhí)行它被假定要做的活動。 52遺漏故障進程遺漏故障主要的進程遺漏故障是崩潰(crash)。指進程它停止了,并且不會再執(zhí)行其程序步驟。其他進程當發(fā)現(xiàn)這個進程反復的不能響應調用消息的時候,可以檢測到那樣的崩潰。然而,這種崩潰檢測方法依賴于timeouts的使用,在異步系統(tǒng)中,一個timeout僅能指示出進程不響應他可能崩潰

35、了也可能是很慢,或者消息可能還沒有到達。如果其他進程能確切地檢測到進程已經崩潰,這樣的進程崩潰稱為“fail-stop”。如果進程使用timeouts來檢測什么時候其他進程不能響應并且保證信件被傳遞,那么在同步系統(tǒng)中可以產生Fail-stop行為。53遺漏故障通信遺漏故障考慮通信原語send和receive。進程p通過在其outgoing消息緩沖區(qū)中插入消息m執(zhí)行一個send,通信通道傳送m到q的incoming消息緩沖區(qū),進程q通過從其incoming消息緩沖區(qū)取m并傳遞它來執(zhí)行一個receive。Outgoing和incoming消息緩沖區(qū)典型地由操作系統(tǒng)提供。 54通信遺漏故障(續(xù))通信

36、通道如果它不能把信件從p的outgoing 消息緩沖區(qū)傳送到q的incoming消息緩沖區(qū),則產生了一個遺漏故障。這就是我們所知道的“dropping messages”,并且這通常是由于在接收端或在介入的網(wǎng)關上缺乏緩沖空間,或者是由于網(wǎng)絡傳送錯誤(通過信件數(shù)據(jù)所攜帶的checksum進行檢測)引起的。Hadzilacos和Toueg把發(fā)送進程與outgoing消息緩沖區(qū)之間的信件丟失稱為send-omission failures;把incoming消息緩沖區(qū)與接收進程之間的信件丟失稱為receive-omission failures;把兩者之間的信件丟失稱為channel omissio

37、n failures。 55任意故障(Arbitrary failures)任意故障是用來描述最壞可能的故障語義,這里任何類型的錯誤都可能發(fā)生。例如,一個進程可以對它的數(shù)據(jù)項設置錯誤的值,或者它也可以對一個調用返回一個錯誤的值。進程的任意故障是指,它任意地省略需要的處理步驟或者采取一些不需要的處理步驟。因此,進程中的任意故障不能通過看是否進程響應調用來進行檢測,因為它可以任意地省略回答。56任意故障(續(xù))通信通道可能遭遇任意故障,例如,信件內容可能被破壞了或者不存在的信件可能被傳遞或者真實的信件被傳遞多于一次。通信通道的任意故障是稀少的,因為通信軟件能夠識別它們并拒絕這些錯誤的信件。例如,檢查

38、和被用于檢測被破壞了的信件,而信件順序號(sequence numbers)可以用來檢測不存在的和復制的信件。57Omission and arbitrary failures 58定時故障(Timing failures)定時故障應用于同步分布式系統(tǒng),那里時間限制被設置在進程執(zhí)行時間、信件傳遞時間和時鐘偏移率。 59屏蔽故障(Masking failures)在分布式系統(tǒng)中,每一個組件通常是從其它一組組件進行構造,可以從有故障的組件(components)來構造可靠的服務。例如,保持數(shù)據(jù)復本的多個服務器在其中一個崩潰時可以繼續(xù)提供服務。一個service屏蔽一個故障,或者通過隱藏它或者通過把

39、它轉換成一個更可接受的故障類型。 60端到端通信的可靠性(Reliability of one-to-one communication)雖然基本的通信通道可能會呈現(xiàn)出上面描述的省略故障,但是可以使用它構建一個屏蔽了某些那些故障的通信服務。可靠的通信按照有效性和完整性定義如下: 有效性:在outgoing消息緩沖區(qū)中的任何 信件最終要被傳遞到incoming消息緩沖區(qū); 完整性:接收到的信件與發(fā)送的信件是相 同的,并且沒有信件被傳遞兩次。 61端到端通信的可靠性(續(xù))對完整性的威脅來自于兩個獨立的源:任何重傳消息但是不拒絕到達兩次的消息的協(xié)議,協(xié)議可以通過給信件附加順序號來 檢測那些傳遞了兩次

40、的信件。惡意的用戶可能插入偽造的(欺騙的)的信件,重放老的信件或篡改信件。在面對那樣的攻擊時,可以采取安全性措施來維護完整性。62Security model we described their system architecture in terms of processes encapsulating objects and providing access to them through interactions with other processes. Protection is described in terms of objects, although the concept

41、s apply equally well to resources of all types. The security of a distributed system can be achieved by securing(保護) the processes and the channels used for their interactions and by protecting the objects that they encapsulate against unauthorized access. 63Protecting objectsThe following figure sh

42、ows a server that manages a collection of objects on behalf of some users. The users can run client programs that send invocations to the server to perform operations on the objects. The server carries out the operation specified in each invocation and sends the result to the client. 64Protecting ob

43、jects (cont.) Access rights specify who is allowed to perform the operations of an object-for example, who is allowed to read or to write its state. Thus we must include users in our model as the beneficiaries(受益人)of access rights. We do so by associating with each invocation and each result the aut

44、hority on which it is issued. Such an authority is called a principal(委托方). A principal may be a user or a process. 65Protecting objects (cont.)The server is responsible for verifying the identity of the principal behind each invocation and checking that they have sufficient access rights to perform

45、 the requested operation on the particular object invoked, rejecting those that do not. The client may check the identity of the principal behind the server to ensure that the result comes from the required server. 66Securing processes and their interactionsProcesses interact by sending messages. Th

46、e messages are exposed to attack because the network and the communication service that they use is open, to enable any pair of processes to interact. Servers and peer processes expose their interfaces, enabling invocations to be sent to them by any other process.67The enemy To model security threat

47、s, we postulate(假定) an enemy(sometimes also known as the adversary) that is capable of sending any message to any process and reading or copying any message between a pair of processes, as shown below. 68Defeating security threats Here we introduce the main techniques on which systems are based. Cry

48、ptography(密碼學) and shared secretsSuppose that a pair of processes (for example a particular client and a particular server) share a secret; that is they both know the secret but no other process in the distributed system knows it. 69Cryptography and shared secrets (cont.) Cryptography is the science of keeping

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論