分布式系統(tǒng)模型SystemModels課件_第1頁(yè)
分布式系統(tǒng)模型SystemModels課件_第2頁(yè)
分布式系統(tǒng)模型SystemModels課件_第3頁(yè)
分布式系統(tǒng)模型SystemModels課件_第4頁(yè)
分布式系統(tǒng)模型SystemModels課件_第5頁(yè)
已閱讀5頁(yè),還剩88頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、分布式系統(tǒng)系統(tǒng)模型(System Models) 結(jié)構(gòu)模型(Architectural model)基礎(chǔ)模型(Fundamental model) 第1頁(yè),共93頁(yè)。結(jié)構(gòu)模型(Architectural model)分布式系統(tǒng)的結(jié)構(gòu)模型是關(guān)于其各部分的布局及其相互間關(guān)系,它定義了系統(tǒng)的各組件之間相互交互的方式以及它們映射到下面的計(jì)算機(jī)網(wǎng)絡(luò)的方式。 Client/server模型 對(duì)等進(jìn)程(peer process)模型第2頁(yè),共93頁(yè)??蛻?服務(wù)器模型的擴(kuò)展 * 在(多個(gè))協(xié)作的服務(wù)器上劃分 (partition)和復(fù)制數(shù)據(jù); * 由代理服務(wù)器(proxy servers) 和客戶進(jìn)行數(shù)據(jù)緩存

2、(caching); * 使用移動(dòng)代碼和移動(dòng)代理; * 以方便的方式添加和刪除移動(dòng)設(shè)備。 第3頁(yè),共93頁(yè)?;A(chǔ)模型(Fundamental model)基礎(chǔ)模型是對(duì)所有結(jié)構(gòu)模型中公共屬性的更形式化的描述。交互模型(Interaction model) 交互模型處理分布式系統(tǒng)中性能以及設(shè)置時(shí)間限制的困難,例如對(duì)于消息傳遞(message delivery)。反映了進(jìn)程交互的方式。故障模型(failure model) 故障模型試圖給出可能由進(jìn)程和通信通道呈現(xiàn)出來(lái)的故障的一個(gè)精確的規(guī)格說(shuō)明(specification)。它定義可靠的通信和正確的進(jìn)程。安全模型(security model) 安全

3、模型討論對(duì)于進(jìn)程和通信通道可能存在的威脅,它引入了安全通道的概念,以抵御這些威脅。 第4頁(yè),共93頁(yè)。結(jié)構(gòu)模型 系統(tǒng)的結(jié)構(gòu)是關(guān)于其各個(gè)獨(dú)立指定的組件的結(jié)構(gòu)。 建筑物的結(jié)構(gòu)設(shè)計(jì)有類似的方面:不僅要確定它的外觀,而且要確定它的總體結(jié)構(gòu)和結(jié)構(gòu)風(fēng)格(哥特式,新古典主義,現(xiàn)代的)。 我們圍繞著進(jìn)程和對(duì)象的概念構(gòu)建我們的結(jié)構(gòu)模型。分布式系統(tǒng)的結(jié)構(gòu)模型首先簡(jiǎn)化和抽象分布式系統(tǒng)各個(gè)組件的功能,然后它考慮: 放置組件在一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)上,尋找定義數(shù)據(jù)和工作負(fù)載分布的有用的模式。 組件之間的相互關(guān)系,即它們的功能角色以及它們之間的通信模式。 第5頁(yè),共93頁(yè)。進(jìn)程分類服務(wù)器進(jìn)程 提供服務(wù)客戶進(jìn)程 請(qǐng)求服務(wù)對(duì)等進(jìn)程

4、指這樣的一類進(jìn)程,它們以一種對(duì)稱的方式協(xié)作和通信,以執(zhí)行一個(gè)任務(wù)。 第6頁(yè),共93頁(yè)??蛻?服務(wù)器模型的變種 某些更動(dòng)態(tài)的系統(tǒng)可以構(gòu)造為客戶/服務(wù)器模型的變種: * 從一個(gè)進(jìn)程到另一個(gè)進(jìn)程移動(dòng)代碼的可能性允許一個(gè)進(jìn)程委托任務(wù)到另一個(gè)進(jìn)程。例如,客戶可以從服務(wù)器下載代碼在本地運(yùn)行它。對(duì)象和存取它們的代碼能夠被移動(dòng)以減少訪問(wèn)延遲和最小化通信量。 * 某些分布式系統(tǒng)被設(shè)計(jì)以使計(jì)算機(jī)和其它移動(dòng)設(shè)備能無(wú)縫地添加或刪除,允許它們發(fā)現(xiàn)可用的服務(wù)并向其它設(shè)備提供它們的服務(wù)。 在一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)際的放置(布局、分布)組成分布式系統(tǒng)的進(jìn)程可能受到性能、可靠性、安全性和費(fèi)用的影響。 第7頁(yè),共93頁(yè)。軟件層(軟件

5、結(jié)構(gòu))原來(lái)在單一計(jì)算機(jī)中,軟件結(jié)構(gòu)是指把軟件結(jié)構(gòu)化為層或模塊;而近來(lái)則是用位于相同或不同的計(jì)算機(jī)里的進(jìn)程之間提供和請(qǐng)求的服務(wù)來(lái)定義。分布式系統(tǒng)中軟件硬件服務(wù)層: 第8頁(yè),共93頁(yè)。Middleware-based SystemsGeneral structure of a distributed system as middleware. Middleware提供部分Distributed Operating System服務(wù)。1-22第9頁(yè),共93頁(yè)。中間件(Middleware) 從中間件提出的初始動(dòng)因來(lái)看,是指網(wǎng)絡(luò)環(huán)境下處于操作系統(tǒng)等系統(tǒng)軟件和應(yīng)用軟件之間的一種起連接作用的分布式軟件,主

6、要解決異構(gòu)網(wǎng)絡(luò)環(huán)境下分布式應(yīng)用軟件的互連與互操作問(wèn)題,它可屏蔽實(shí)現(xiàn)細(xì)節(jié),提高應(yīng)用系統(tǒng)的易移植性從廣義的角度看,中間件代表了處于系統(tǒng)軟件和應(yīng)用軟件之間的中間層次的軟件,其主要目的是對(duì)應(yīng)用軟件的開(kāi)發(fā)和運(yùn)行提供更為直接和高效的支撐 第10頁(yè),共93頁(yè)。中間件(續(xù))中間件是一個(gè)軟件層,它的目的是屏蔽異構(gòu)性并向應(yīng)用程序員提供一個(gè)方便的編程模型。中間件通過(guò)在一組計(jì)算機(jī)里的進(jìn)程或?qū)ο髞?lái)表達(dá),它們相互交互以為分布式應(yīng)用實(shí)現(xiàn)通信和資源共享支持。 中間件技術(shù)已成為軟件技術(shù)的研究熱點(diǎn)主要中間件包括:數(shù)據(jù)訪問(wèn)中間件、遠(yuǎn)程過(guò)程調(diào)用中間件、事務(wù)中間件、消息中間件和面向?qū)ο笾虚g件等;遠(yuǎn)程過(guò)程調(diào)用包(例如Sun RPC)和組

7、通信系統(tǒng)(例如Isis)是最早、當(dāng)前最廣泛使用的中間件的實(shí)例。The BEA Tuxedo system is a middleware product that distributes applications across multiple platforms, databases, and operating systems using message-based communications and, if desired, distributed transaction processing. 第11頁(yè),共93頁(yè)。面向?qū)ο笾虚g件面向?qū)ο笾虚g件是對(duì)象技術(shù)和分布式汁算發(fā)展的產(chǎn)物,它提供種

8、通訊機(jī)制,透明地在異構(gòu)的分布計(jì)算環(huán)境中傳遞對(duì)象請(qǐng)求目前主要的面向?qū)ο笾虚g件產(chǎn)品和標(biāo)準(zhǔn)有OMG的CORBA、微軟的DCOM和Sun公司的Java RMI/EJB。它們的異構(gòu)性和開(kāi)放性各有不同,適用于異構(gòu)環(huán)境、開(kāi)放的CORBA是Internet與企業(yè)應(yīng)用事實(shí)上的工業(yè)標(biāo)準(zhǔn),而特定于Windows平臺(tái)、專有的COM則是桌面系統(tǒng)的首選EJB則兼具二者之優(yōu)勢(shì) 中間件也提供了供應(yīng)用程序使用的服務(wù),它們被緊密地綁定到由中間件提供的分布式編程模型。例如,CORBA提供了naming, security, transactions, persistent storage和event notification等服務(wù)

9、。 第12頁(yè),共93頁(yè)。Web Services 隨著軟件產(chǎn)業(yè)模式從以產(chǎn)品為中心的制造業(yè)轉(zhuǎn)變?yōu)橐钥蛻魹橹行牡姆?wù)業(yè),WWW從兩層體系轉(zhuǎn)變?yōu)槿龑芋w系,分布計(jì)算中間件從Intranet擴(kuò)展到Internet,上述中間件技術(shù)已不能適應(yīng)這些發(fā)展需求,因而導(dǎo)致新型中間件技術(shù)Web Services的產(chǎn)生。 Web Services以XML、SOAP、WSDL和UDDl為核心,致力于軟件在應(yīng)用層的互操作問(wèn)題Web Services不僅屏蔽了異構(gòu)的操作系統(tǒng)、網(wǎng)絡(luò)和編程語(yǔ)言,還屏蔽了傳統(tǒng)中間件之間的異構(gòu)性,并支持開(kāi)放、動(dòng)態(tài)的互操作模式,增強(qiáng)了服務(wù)動(dòng)態(tài)發(fā)布,查找和使用的能力因此,Web Services獲得了產(chǎn)

10、業(yè)界廣泛的支持和學(xué)術(shù)界的重視。第13頁(yè),共93頁(yè)。(發(fā)布服務(wù)的wsdl信息)(根據(jù)wsdl,生成訪問(wèn)服務(wù)的SOAP消息)第14頁(yè),共93頁(yè)。系統(tǒng)結(jié)構(gòu) Client-server模型 這是分布式系統(tǒng)最經(jīng)常被引用的體系結(jié)構(gòu),下圖闡述了這種簡(jiǎn)單的結(jié)構(gòu):客戶進(jìn)程與各服務(wù)器進(jìn)程(在分離的主計(jì)算機(jī)上)交互以訪問(wèn)它們所管理的共享資源。 第15頁(yè),共93頁(yè)。 由多個(gè)服務(wù)器提供的服務(wù) 服務(wù)可以被實(shí)現(xiàn)為在分離的主計(jì)算機(jī)上的多個(gè)服務(wù)器進(jìn)程,它們按需要交互來(lái)向客戶進(jìn)程提供一個(gè)服務(wù)。這些服務(wù)器可以劃分(partition)該服務(wù)所基于的對(duì)象集合,并在它們之間分布它們,或者在若干個(gè)主機(jī)上維護(hù)這些對(duì)象的復(fù)制副本。 第16頁(yè)

11、,共93頁(yè)。 代理服務(wù)器和緩存(Proxy servers and caches) Cache是近期使用了的數(shù)據(jù)對(duì)象的存儲(chǔ),它比對(duì)象本身更近。當(dāng)一個(gè)新的對(duì)象被接收到,它被添加到cache存儲(chǔ)中,如果需要的話,替換某個(gè)現(xiàn)有對(duì)象。當(dāng)客戶進(jìn)程需要一個(gè)一個(gè)對(duì)象的時(shí)候,caching服務(wù)首先檢查cache,如果最新的拷貝是可用的,則從那里提供該對(duì)象。否則,去獲取一個(gè)最新的拷貝。Cache可以布置在每一個(gè)客戶端,或位于代理服務(wù)器上,以便能夠被多個(gè)客戶共享。 第17頁(yè),共93頁(yè)。 對(duì)等進(jìn)程(peer processes) 在這種結(jié)構(gòu)中,所有進(jìn)程扮演類似的角色,作為對(duì)等者協(xié)同交互,在沒(méi)有任何客戶與服務(wù)器差別的

12、情況下執(zhí)行一個(gè)分布式活動(dòng)或計(jì)算。在這種模型中,對(duì)等進(jìn)程中的代碼維護(hù)應(yīng)用級(jí)(層)資源的一致性并按需要同步應(yīng)用級(jí)的行為(actions)。 通常,n個(gè)對(duì)等進(jìn)程可以相互交互,其通信模式取決于應(yīng)用需求。 協(xié)調(diào)代碼第18頁(yè),共93頁(yè)。應(yīng)用由大量的運(yùn)行在不同的計(jì)算機(jī)上的對(duì)等進(jìn)程組成第19頁(yè),共93頁(yè)。對(duì)等計(jì)算技術(shù)第20頁(yè),共93頁(yè)。P2P系統(tǒng)去掉了客戶/服務(wù)器的不對(duì)稱性, 客戶機(jī)也可以充當(dāng)服務(wù)器。第21頁(yè),共93頁(yè)。P2P網(wǎng)絡(luò)的分類P2P網(wǎng)絡(luò)根據(jù)節(jié)點(diǎn)信息存儲(chǔ)和資源查找的方式主要可以分為3種類型: (1)集中式P2P網(wǎng)絡(luò),利用中心索引服務(wù)器存儲(chǔ)數(shù)據(jù)的元數(shù)據(jù)信息,例如Napster1。 (2)非結(jié)構(gòu)化P2P網(wǎng)

13、絡(luò),借助泛洪廣播查詢請(qǐng)求,例如Gnutella2。 這兩種方案由于設(shè)計(jì)之初并沒(méi)有考慮運(yùn)行在大規(guī)模網(wǎng)絡(luò)環(huán)境下,因此擴(kuò)展能力有限。 (3)結(jié)構(gòu)化P2P網(wǎng)絡(luò),利用分布式哈希表(distributed hash table,DHT)技術(shù)來(lái)進(jìn)行資源定位,例如Chord3,CAN4, Pastry5和Tapestry6。 結(jié)構(gòu)化P2P網(wǎng)絡(luò)因其高效快速的資源定位方式成為P2P網(wǎng)絡(luò)發(fā)展的方向。第22頁(yè),共93頁(yè)。Napster文件共享系統(tǒng)允許用戶在其他Napster用戶的硬盤(pán)上搜索、下載音樂(lè)文件。(Index)File location request6. Index updatepeersFile requ

14、estFile delivered第23頁(yè),共93頁(yè)。peers洪泛:搜索請(qǐng)求被廣播到所有的鄰居及鄰居的鄰居上第24頁(yè),共93頁(yè)。網(wǎng)格計(jì)算技術(shù)網(wǎng)格俗稱下一代因特網(wǎng)、國(guó)際互聯(lián)網(wǎng)2、下一代萬(wàn)維網(wǎng)。網(wǎng)格計(jì)算系統(tǒng)具有高度的異構(gòu)性:其硬件、操作系統(tǒng)、網(wǎng)絡(luò)、管理域和安全策略等都不盡相同。網(wǎng)格是把地理位置上分散的資源集成起來(lái)的一種基礎(chǔ)設(shè)施,它是構(gòu)筑在互聯(lián)網(wǎng)上的的一組新興技術(shù)。通過(guò)這種基礎(chǔ)設(shè)施,用戶不需要了解這個(gè)基礎(chǔ)設(shè)施上資源的具體細(xì)節(jié)就可以使用自己需要的資源。網(wǎng)格上的資源包括計(jì)算機(jī)、集群、計(jì)算機(jī)池、儀器、設(shè)備、傳感器、存儲(chǔ)設(shè)施、數(shù)據(jù)、軟件等。第25頁(yè),共93頁(yè)。網(wǎng)格計(jì)算技術(shù)網(wǎng)格把用通信手段連接起來(lái)的資源無(wú)縫

15、集成為一個(gè)有機(jī)的整體。他給用戶提供一種基于國(guó)際互聯(lián)網(wǎng)的新型計(jì)算平臺(tái),在這個(gè)平臺(tái)上對(duì)來(lái)自客戶的請(qǐng)求和提供資源的能力之間進(jìn)行合理的匹配,為用戶的請(qǐng)求選擇合適的資源服務(wù),可實(shí)現(xiàn)廣域范圍的資源共享。網(wǎng)格把分布的資源集成為一臺(tái)能力巨大的超級(jí)計(jì)算機(jī),提供計(jì)算資源、存儲(chǔ)資源、數(shù)據(jù)資源、信息資源、知識(shí)資源、專家資源、設(shè)備資源的全面共享。資源共享是網(wǎng)格的根本特征,消除資源孤島是網(wǎng)格的奮斗目標(biāo)。第26頁(yè),共93頁(yè)。網(wǎng)格分層體系結(jié)構(gòu)應(yīng)用層匯聚層構(gòu)造層資源層連接層第27頁(yè),共93頁(yè)。網(wǎng)格分層體系結(jié)構(gòu)構(gòu)造層:面對(duì)具體的物理資源,其基本功能是控制局部的資源,并向上提供訪問(wèn)這些資源的接口。連接層:其基本功能是實(shí)現(xiàn)資源的相互

16、通信,為下層的物理資源提供安全的數(shù)據(jù)通信能力。該層定義了核心的通信和認(rèn)證協(xié)議,用于網(wǎng)格中的事務(wù)處理。第28頁(yè),共93頁(yè)。網(wǎng)格分層體系結(jié)構(gòu)資源層:負(fù)責(zé)管理單個(gè)資源,實(shí)現(xiàn)對(duì)單個(gè)資源的共享。它使用由連接層提供的功能,直接調(diào)用對(duì)構(gòu)造層可用的接口。匯聚層:該層負(fù)責(zé)處理對(duì)多個(gè)資源的訪問(wèn),通常由資源分派、把任務(wù)分配和調(diào)度到多個(gè)資源以及數(shù)據(jù)復(fù)制等服務(wù)組成。應(yīng)用層:由應(yīng)用程序組成,這些應(yīng)用程序在虛擬組織中運(yùn)行,它們可以充分利用網(wǎng)格計(jì)算環(huán)境。第29頁(yè),共93頁(yè)。開(kāi)放網(wǎng)格服務(wù)體系結(jié)構(gòu)OGSAOGSA是新一代的網(wǎng)格體系結(jié)構(gòu)以服務(wù)為中心如果說(shuō)分層體系結(jié)構(gòu)是以協(xié)議為中心的“協(xié)議結(jié)構(gòu)”,則OGSA就是以服務(wù)為中心的“服務(wù)結(jié)

17、構(gòu)”。在OGSA中,服務(wù)的概念更廣,包括各種計(jì)算資源、存儲(chǔ)資源、網(wǎng)絡(luò)、程序、數(shù)據(jù)庫(kù)等,一切都是服務(wù)。分層體系結(jié)構(gòu)強(qiáng)調(diào)資源共享,而OGSA強(qiáng)調(diào)服務(wù)共享。OGSA定義了“網(wǎng)格服務(wù)”(Grid Service)的概念,網(wǎng)格服務(wù)是一種Web Service,該服務(wù)提供了一組定義明確的接口,且遵守特定的慣例,解決服務(wù)發(fā)現(xiàn),動(dòng)態(tài)服務(wù)創(chuàng)建,生命周期管理和通知等問(wèn)題。由于在OGSA中,一切都是網(wǎng)格服務(wù),因此網(wǎng)格就是可擴(kuò)展的網(wǎng)格服務(wù)的集合。第30頁(yè),共93頁(yè)。開(kāi)放網(wǎng)格服務(wù)體系結(jié)構(gòu)OGSA采用統(tǒng)一的Web Service框架一個(gè)Web Service就是一個(gè)可以被URL識(shí)別的軟件應(yīng)用,它的接口和綁定可以被XML(

18、eXtensible Markup Language)描述與發(fā)現(xiàn),并且可以通過(guò)基于Internet的協(xié)議支持直接與其他的基于XML消息的軟件應(yīng)用進(jìn)行交互。Web Services定義了一種用來(lái)描述所訪問(wèn)的軟件組件、訪問(wèn)方法以及識(shí)別相關(guān)服務(wù)提供者的發(fā)現(xiàn)方法。OGSA完全符合標(biāo)準(zhǔn)的Web Services框架,后者解決了發(fā)現(xiàn)和啟動(dòng)永久服務(wù)的問(wèn)題。由于在網(wǎng)格中大量存在的是臨時(shí)服務(wù),因此OGSA對(duì)Web Services進(jìn)行了擴(kuò)展,提出網(wǎng)格服務(wù)的概念。該技術(shù)支持臨時(shí)服務(wù),并能實(shí)現(xiàn)其動(dòng)態(tài)創(chuàng)建和刪除。網(wǎng)格服務(wù)包含許多接口,其中Grid Service接口是不可少的,而其他的接口可根據(jù)需要進(jìn)行增減。 第31

19、頁(yè),共93頁(yè)。Globus ToolkitGlobus Toolkit是一種基于社團(tuán)的、開(kāi)放結(jié)構(gòu)、開(kāi)放源代碼的服務(wù)的集合,也是支持網(wǎng)格及其應(yīng)用的軟件庫(kù),他解決了安全、信息發(fā)現(xiàn)、資源管理、數(shù)據(jù)管理、通信、故障檢測(cè)和可移植性等問(wèn)題。該軟件包被世界上的的許多網(wǎng)格項(xiàng)目,包括幾百個(gè)地點(diǎn)所采用。GT3是OGSA的第一個(gè)實(shí)現(xiàn)。GT3工具集建立在SOAP、WSDL和WS-Inspection等萬(wàn)維網(wǎng)服務(wù)技術(shù)的基礎(chǔ)上。SOAP是基于XML的RPC協(xié)議;WSDL用于描述服務(wù),是Web Service的接口定義語(yǔ)言;WS-Inspection用于定位服務(wù)提供者發(fā)布的服務(wù);UDDI定義了Web Service的目錄結(jié)

20、構(gòu)。GT3是采用Java語(yǔ)言開(kāi)發(fā)的,因此可以在不同環(huán)境下運(yùn)行。GT3軟件分為瀏覽器和服務(wù)器兩個(gè)部分。用戶通過(guò)瀏覽器和具體的服務(wù)器相連,可以查詢有關(guān)的信息,也可以訪問(wèn)該服務(wù)器上的服務(wù)和服務(wù)實(shí)例。第32頁(yè),共93頁(yè)。普適計(jì)算技術(shù)普適計(jì)算(Pervasive Computing)是指無(wú)處不在的,滲透到各個(gè)方面的計(jì)算。主要針對(duì)移動(dòng)設(shè)備,如汽車、手機(jī)、BP機(jī)、筆記本電腦、手表、智能卡和銷售機(jī)等新一代智能設(shè)備與國(guó)際互聯(lián)網(wǎng)連接,使用戶能夠隨時(shí)隨地獲取相關(guān)的信息。普適計(jì)算是一種新型的計(jì)算模式,在該模式下,計(jì)算以人為中心,人機(jī)交互類似于人與人之間的自然交流方式(如語(yǔ)言、姿勢(shì)、書(shū)寫(xiě)等),用于計(jì)算的設(shè)備無(wú)處不在,彌

21、漫在人們生活的環(huán)境中,并能夠隨時(shí)隨地為人們提供所需要的服務(wù),而使用計(jì)算設(shè)備的人則感知不到計(jì)算機(jī)的存在。分布式普適系統(tǒng)中的設(shè)備,往往具有體積小、由電池供電、可移動(dòng)以及只有一個(gè)無(wú)線連接等特征。第33頁(yè),共93頁(yè)??蛻?服務(wù)器模型的變種通過(guò)考慮下面的一些因素我們可以導(dǎo)出客戶/服務(wù)器模型的幾個(gè)變種: 使用移動(dòng)代碼和移動(dòng)代理; 用戶對(duì)于低價(jià)格(low-cost)計(jì)算機(jī) 的需要;(有限的硬件資源, 管理簡(jiǎn)單) 以方便的方式添加和刪除移動(dòng)設(shè)備的需 求。 第34頁(yè),共93頁(yè)。 移動(dòng)代碼(Mobile code)Applets是一種眾所周知和廣泛使用移動(dòng)代碼:用戶運(yùn)行瀏覽器選擇一個(gè)到Applet的鏈接(link

22、),Applet的代碼存儲(chǔ)在Web服務(wù)器上,代碼被下載到瀏覽器并在那兒運(yùn)行。下圖是其示例: 第35頁(yè),共93頁(yè)。移動(dòng)代碼 (續(xù)) 局部(本地)運(yùn)行下載的代碼的好處是,由于不會(huì)遭遇跟網(wǎng)絡(luò)通信相關(guān)的延遲或帶寬的變化(可變性),因此會(huì)得到好的交互式響應(yīng)。 例子:一個(gè)股票代理(stockbroker)可以提供一個(gè)定制服務(wù)來(lái)通知客戶股票價(jià)格的變化。為了使用這個(gè)服務(wù),每個(gè)客戶必須下載一個(gè)特別的Applet,它從代理服務(wù)器那里接收更新,顯示給用戶,也許還要執(zhí)行自動(dòng)的買和賣操作(根據(jù)客戶設(shè)置的條件)。 移動(dòng)代碼對(duì)于目的計(jì)算機(jī)里的本地資源有潛在的安全威脅,因此瀏覽器會(huì)限制Applet對(duì)本地資源的訪問(wèn)。 第36頁(yè)

23、,共93頁(yè)。 移動(dòng)代理(Mobile agents)移動(dòng)代理是一個(gè)包含代碼和數(shù)據(jù)的運(yùn)行程序(自治的軟件組件,能與其他代理通信),它在網(wǎng)絡(luò)中從一臺(tái)計(jì)算機(jī)移動(dòng)(travels)到另一臺(tái)計(jì)算機(jī),代表某人(someone)完成(執(zhí)行)一個(gè)任務(wù),例如收集信息,最終返回結(jié)果。移動(dòng)代碼在它訪問(wèn)的每一個(gè)場(chǎng)點(diǎn)可能作許多對(duì)本地資源(local resources)的調(diào)用請(qǐng)求,例如訪問(wèn)各個(gè)數(shù)據(jù)庫(kù)項(xiàng)。我們將這種結(jié)構(gòu)與靜態(tài)客戶(static client)做一個(gè)比較:靜態(tài)客戶要作對(duì)某些資源的遠(yuǎn)程調(diào)用,這樣可能會(huì)傳送大量的數(shù)據(jù),移動(dòng)代理結(jié)構(gòu)通過(guò)用本地調(diào)用代替遠(yuǎn)程調(diào)用減少(降低)了通信的費(fèi)用和時(shí)間。 第37頁(yè),共93頁(yè)。

24、移動(dòng)代理(續(xù))與移動(dòng)代碼一樣,移動(dòng)代理對(duì)它們所訪問(wèn)到計(jì)算機(jī)上的資源也有潛在的安全威脅。接收移動(dòng)代理的環(huán)境基于用戶的身份(移動(dòng)代理代表誰(shuí))應(yīng)該決定允許它使用哪些局部資源,其身份(identity)必須以一種安全的方式與移動(dòng)代理的代碼和數(shù)據(jù)包含在一起。此外,移動(dòng)代理本身可能是脆弱的,即如果它們被拒絕訪問(wèn)它們需要的信息,它們可能不能完成它們的任務(wù)。由移動(dòng)代理執(zhí)行的任務(wù)可以通過(guò)其它方式執(zhí)行。例如,需要訪問(wèn)Internet上Web服務(wù)器上資源的Web爬行者(crawlers)通過(guò)做對(duì)服務(wù)器進(jìn)程的遠(yuǎn)程調(diào)用(remote invocations),能夠相當(dāng)成功地工作。由于這些原因,移動(dòng)代理的應(yīng)用(適用性)可

25、能是有限的。 第38頁(yè),共93頁(yè)。移動(dòng)代理(續(xù))一個(gè)移動(dòng)代理系統(tǒng)應(yīng)該向代理程序員(the agent programmer)提供盡可能多的靈活性,來(lái)盡可能多地隱藏下面的網(wǎng)絡(luò)體系結(jié)構(gòu)。移動(dòng)代理系統(tǒng)的例子有:IBM 的Aglet以及Voyager,AgentTCL等。 移動(dòng)代理與移動(dòng)代碼的區(qū)別? 第39頁(yè),共93頁(yè)。移動(dòng)代理與移動(dòng)代碼的區(qū)別代理通常是“multi-hop”可移動(dòng)的,而Java applets是“single-hop”。即代理通常是要從網(wǎng)絡(luò)上的一個(gè)主機(jī)漫游到另一個(gè)主機(jī),在每一個(gè)訪問(wèn)點(diǎn)積聚狀態(tài),然后主動(dòng)地決定什么時(shí)候移動(dòng),以及應(yīng)該移動(dòng)到哪里。代理主動(dòng)地控制他們的移動(dòng),而Java app

26、lets則是被動(dòng)的。代理典型的應(yīng)用包括網(wǎng)絡(luò)管理,comparative service shopping等。代理在它們的旅行中是有狀態(tài)的,而Java applets通常是無(wú)狀態(tài)的。隨著代理訪問(wèn)經(jīng)過(guò)各個(gè)結(jié)點(diǎn),典型地它在每個(gè)結(jié)點(diǎn)上都要執(zhí)行一些工作,這會(huì)引起其內(nèi)部的狀態(tài)變換,并在其移動(dòng)過(guò)程中攜帶它們。第40頁(yè),共93頁(yè)。第41頁(yè),共93頁(yè)。第42頁(yè),共93頁(yè)。 網(wǎng)絡(luò)計(jì)算機(jī)(Network computers) 在桌面計(jì)算機(jī)環(huán)境中,操作系統(tǒng)和應(yīng)用軟件典型地需要大量的活動(dòng)代碼和數(shù)據(jù),它們位于在本地磁盤(pán)上。但是應(yīng)用文件的管理和本地軟件庫(kù)的維護(hù)都需要相當(dāng)?shù)募夹g(shù)工作,這對(duì)于大多數(shù)的用戶是不能勝任的。 網(wǎng)絡(luò)計(jì)算

27、機(jī)是對(duì)這個(gè)問(wèn)題的一個(gè)反應(yīng)。它按用戶的需要從遠(yuǎn)程文件服務(wù)器下載操作系統(tǒng)和任何應(yīng)用軟件。應(yīng)用在本地運(yùn)行,但文件由遠(yuǎn)程文件服務(wù)器管理。像Web browser這樣的網(wǎng)絡(luò)應(yīng)用也能夠運(yùn)行。由于所有的應(yīng)用數(shù)據(jù)和代碼都由文件服務(wù)器存儲(chǔ),用戶可以從一臺(tái)網(wǎng)絡(luò)計(jì)算機(jī)遷移到另一臺(tái)。網(wǎng)絡(luò)計(jì)算機(jī)的處理器和存儲(chǔ)器能力可以被限制以降低它的成本(cost)。 如果包含一個(gè)磁盤(pán),它僅僅保持最少的軟件,磁盤(pán)的其余部分被用做cache存儲(chǔ),以保持近期從服務(wù)器載入的軟件和數(shù)據(jù)文件的copies。 第43頁(yè),共93頁(yè)。瘦客戶(Thin clients) 瘦客戶是指一個(gè)軟件層,它支持用戶端的計(jì)算機(jī)上基于窗口的用戶界面,而在遠(yuǎn)程的計(jì)算機(jī)上

28、執(zhí)行應(yīng)用程序。 這種結(jié)構(gòu)與網(wǎng)絡(luò)計(jì)算機(jī)模式有同樣低的管理和硬件費(fèi)用。但它不是下載應(yīng)用代碼到用戶的計(jì)算機(jī),而是在計(jì)算服務(wù)器上運(yùn)行它們。 第44頁(yè),共93頁(yè)。移動(dòng)設(shè)備和自組網(wǎng)絡(luò)(Mobile devices and spontaneous networking)現(xiàn)在各種小的、便攜的計(jì)算設(shè)備越來(lái)越多,包括筆記本電腦、個(gè)人數(shù)字助理(PDAs)類的手持設(shè)備,移動(dòng)電話和數(shù)字照相機(jī)、可穿戴的計(jì)算機(jī)(如smart watch)、以及嵌入在日常裝置(如洗衣機(jī))里的設(shè)備。許多的這些設(shè)備能夠無(wú)線聯(lián)網(wǎng),范圍從大城市或更大的范圍(GSM, CDPD),到數(shù)百米(WaveLAN),或幾米(BlueTooth, infra-

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

30、這樣的便攜式設(shè)備讓用戶可以訪問(wèn)在他們當(dāng)前位置的服務(wù),也可以訪問(wèn)像Web這樣的全球服務(wù)。 第46頁(yè),共93頁(yè)。上圖給出了自組網(wǎng)絡(luò)的一個(gè)圖示,覆蓋一個(gè)酒店套房的無(wú)線網(wǎng)絡(luò)。套房的高保真系統(tǒng)提供音樂(lè)服務(wù),鬧鐘系統(tǒng)通過(guò)音樂(lè)服務(wù)提供叫醒服務(wù)。TV/PC(帶機(jī)頂盒的電視)既可用作電視也可用作計(jì)算機(jī),它(通過(guò)酒店的因特網(wǎng)網(wǎng)關(guān))提供對(duì)Web的訪問(wèn)。它還可以為用戶提供查看服務(wù),使用戶可以瀏覽存儲(chǔ)在相機(jī)或便攜式攝像機(jī)中的圖像。第47頁(yè),共93頁(yè)。 自組網(wǎng)絡(luò)的關(guān)鍵特征是: 易于連接到本地網(wǎng)絡(luò)(local network) 無(wú)線連接避免了預(yù)安裝電纜的需要 易于跟本地服務(wù)(local services)集成 設(shè)備插入到(

31、和移動(dòng)到)已有的設(shè)備網(wǎng)絡(luò),將自 動(dòng)發(fā)現(xiàn)那里提供什么服務(wù) 當(dāng)它們旅行(travel)的時(shí)候,移動(dòng)用戶可能 遭遇受限的連接(limited connectivity), 其連接的自主特性又引起了安全問(wèn)題: 有限的連接 用戶在移動(dòng)時(shí)并不總是保持連接 安全和私秘(Security and privacy) 如果酒店 客人或雇員以不受監(jiān)管的方式進(jìn)行無(wú)線連接, 酒 店及其客人應(yīng)對(duì)安全攻擊的能力是脆弱的。第48頁(yè),共93頁(yè)。發(fā)現(xiàn)服務(wù)(Discovery services) 我們需要的是客戶發(fā)現(xiàn)所連接的網(wǎng)絡(luò)上有什么服務(wù)可用以及查明它們屬性的方法。發(fā)現(xiàn)服務(wù)的目的是接受并存儲(chǔ)網(wǎng)上可用的服務(wù)細(xì)節(jié),對(duì)客戶關(guān)于這些的查

32、詢給出回應(yīng)。 注冊(cè)服務(wù)(registration service) 接受服務(wù)器注冊(cè)請(qǐng)求,記錄到發(fā)現(xiàn)服務(wù)的數(shù)據(jù)庫(kù)中 查找服務(wù)(lookup service) 查找數(shù)據(jù)庫(kù)中注冊(cè)的可用服務(wù) 第49頁(yè),共93頁(yè)。接口和對(duì)象(Interfaces and objects) 進(jìn)程中(無(wú)論是服務(wù)器或是對(duì)等進(jìn)程)可用于調(diào)用的功能函數(shù)的集合通過(guò)一個(gè)或多個(gè)接口定義來(lái)說(shuō)明。在基本的客戶/服務(wù)器結(jié)構(gòu)中,每一個(gè)服務(wù)器進(jìn)程被看作一個(gè)具有固定接口(定義了它里面能夠被調(diào)用的函數(shù))的單一的實(shí)體(entity)。 在面向?qū)ο笳Z(yǔ)言(例如C+和Java)中,通過(guò)適當(dāng)?shù)母郊又С?,分布式進(jìn)程能夠以更加面向?qū)ο蟮姆绞竭M(jìn)行構(gòu)造。許多對(duì)象能夠

33、被封裝在服務(wù)器或?qū)Φ冗M(jìn)程中,對(duì)它們的引用(references)被傳遞到其它進(jìn)程以便它們的方法能夠通過(guò)遠(yuǎn)程調(diào)用(remote invocation)進(jìn)行(被)訪問(wèn)。這是CORBA和Java所采用的方法(采用遠(yuǎn)程方法調(diào)用RMI機(jī)制)。 第50頁(yè),共93頁(yè)。分布式結(jié)構(gòu)的設(shè)計(jì)需求(所有模型共享design requirements) 性能問(wèn)題(Performance issues) 服務(wù)質(zhì)量(Quality of Service) 使用caching和復(fù)制(Use of caching and replication) 可靠性問(wèn)題(dependability issues) 第51頁(yè),共93頁(yè)?;A(chǔ)

34、模型所有前面介紹的不同的系統(tǒng)模型共享某些基 礎(chǔ)特性。通常,一個(gè)模型僅僅包含我們需要考慮的基本要素,以便理解和推理關(guān)于系統(tǒng)行為的某些方面。一個(gè)系統(tǒng)模型必須表述這些問(wèn)題: 系統(tǒng)中主要的實(shí)體是什么? 它們?cè)鯓咏换ィ?影響其個(gè)體和集體行為的特征是什么? 第52頁(yè),共93頁(yè)。基礎(chǔ)模型 (續(xù)) 在基礎(chǔ)模型中我們希望捕捉的分布式系統(tǒng)的特性是想要幫助我們討論和理解: 交互(Interaction) 計(jì)算發(fā)生在進(jìn)程中。進(jìn)程通過(guò)傳遞信件(pass messages)交互,導(dǎo)致進(jìn)程之間的通信(即信息流)和協(xié)調(diào)(coordination,即同步和活動(dòng)定序ordering)。交互模型必須反映這樣的事實(shí):通信的發(fā)生是有延

35、遲的(這經(jīng)常具有相當(dāng)?shù)某掷m(xù)時(shí)間),并且協(xié)調(diào)獨(dú)立的進(jìn)程的準(zhǔn)確性(正確度)受限于這些延遲以及在分布式系統(tǒng)的所有計(jì)算機(jī)上維護(hù)相同的時(shí)間概念(notion)的困難性。第53頁(yè),共93頁(yè)。 故障(Failure) 無(wú)論什么時(shí)候當(dāng)任何的計(jì)算機(jī)里面或連接它們的網(wǎng)絡(luò)發(fā)生故障(包括軟件故障) 時(shí),分布式系統(tǒng)的正確操作都會(huì)受到威脅。故障模型定義和分類了故障,這提供了一個(gè)基礎(chǔ),使我們能夠分析其潛在的影響,并使得系統(tǒng)的設(shè)計(jì)能夠容忍每一種類型的故障,以繼續(xù)正確地運(yùn)行。 第54頁(yè),共93頁(yè)。 安全性(security) 分布式系統(tǒng)模塊化的特性及其開(kāi)放性暴露出它們?nèi)菀自獾酵獠亢蛢?nèi)部代理的攻擊。安全模型定義和分類了那樣的攻擊

36、可能采取的形式,這提供了一個(gè)基礎(chǔ),使得我們能夠分析對(duì)系統(tǒng)的威脅,以及設(shè)計(jì)出能夠抵御它們的系統(tǒng)。 第55頁(yè),共93頁(yè)。交互模型分布式系統(tǒng)由許多進(jìn)程組成,他們以復(fù)雜的方式交互。例如 :多個(gè)服務(wù)器進(jìn)程相互協(xié)作以提供一個(gè)服務(wù);前面提到的一個(gè)例子是Domain Name Service系統(tǒng), 他劃分和復(fù)制他的數(shù)據(jù)在整個(gè)Internet的服務(wù)器(servers)上。一組對(duì)等進(jìn)程可以相互協(xié)作以獲得一個(gè)共同的目標(biāo):例如,一個(gè)以類似的方式(但是具有嚴(yán)格的實(shí)時(shí)限制)分發(fā)音頻數(shù)據(jù)流的音頻會(huì)議系統(tǒng)。 第56頁(yè),共93頁(yè)。交互模型(續(xù))每一個(gè)進(jìn)程進(jìn)行的速度以及他們之間消息傳送的定時(shí)同步(timing)通常不能預(yù)知。由于

37、必須處理涉及到的一個(gè)或多個(gè)進(jìn)程的故障或消息傳送的故障,要描述分布式算法所有的狀態(tài)也是困難的。在分布式系統(tǒng)中,每個(gè)進(jìn)程有他自己的狀態(tài)(由他可以訪問(wèn)和更新的數(shù)據(jù)集組成),屬于每個(gè)進(jìn)程的狀態(tài)是完全私有的。在這一節(jié),我們討論影響分布式系統(tǒng)中交互進(jìn)程的兩個(gè)重要因素: 通信性能通常是一個(gè)限制特性(limiting characteristic) 不可能維護(hù)一個(gè)單一的全局時(shí)間概念第57頁(yè),共93頁(yè)。計(jì)算機(jī)時(shí)鐘和定時(shí)事件(timing events)分布式系統(tǒng)中每一臺(tái)計(jì)算機(jī)有其自己的內(nèi)部時(shí)鐘,可以被本地進(jìn)程用于獲得當(dāng)前時(shí)間的值,因此運(yùn)行在不同計(jì)算機(jī)上的兩個(gè)進(jìn)程能夠給他們的事件關(guān)聯(lián)一個(gè)時(shí)間戳(timestamp

38、s)。然而,即使兩個(gè)進(jìn)程在同一個(gè)時(shí)間讀取他們的時(shí)鐘,其局部時(shí)鐘也可能提供不同的時(shí)間值,這是因?yàn)橛?jì)算機(jī)時(shí)鐘與標(biāo)準(zhǔn)時(shí)間的偏移,更重要的是,不同計(jì)算機(jī)相互間的偏移率是不一樣的。即使分布式系統(tǒng)中所有計(jì)算機(jī)的時(shí)鐘在初始化的時(shí)候被設(shè)置成相同的時(shí)間,其時(shí)鐘最終也會(huì)變化得很大(除非采用校正措施)。 第58頁(yè),共93頁(yè)。計(jì)算機(jī)時(shí)鐘和定時(shí)事件(續(xù))有幾種方法來(lái)校正計(jì)算機(jī)時(shí)鐘的時(shí)間。例如,計(jì)算機(jī)可以使用無(wú)線電接收器來(lái)從GPS那里得到時(shí)間(具有大約一微秒的精度)。但是GPS接收器不能在建筑物內(nèi)操作,每臺(tái)計(jì)算機(jī)都配備在費(fèi)用上也是不合理的。一種替代的方法是,一臺(tái)具有精確時(shí)間源(例如GPS)的計(jì)算機(jī)向網(wǎng)絡(luò)中其他計(jì)算機(jī)發(fā)送定

39、時(shí)消息,結(jié)果各局部時(shí)鐘時(shí)間之間的一致性當(dāng)然受變化的消息延遲的影響。 第59頁(yè),共93頁(yè)。交互模型的兩個(gè)變種在分布式系統(tǒng)中很難對(duì)進(jìn)程執(zhí)行、消息傳遞或時(shí)鐘偏移的時(shí)間設(shè)置時(shí)間限制。有兩種簡(jiǎn)單的、相反的、極端的模型:第一種有非常強(qiáng)的時(shí)間假定,另一種沒(méi)有作任何關(guān)于時(shí)間的假定。 第60頁(yè),共93頁(yè)。同步分布式系統(tǒng)在Hadzilacos和Toueg的定義中,同步分布式系統(tǒng)具有下面的限制:進(jìn)程每一步執(zhí)行的時(shí)間有已知的下和上界;通道上傳送的每一封信在一個(gè)已知的有限的時(shí)間內(nèi)被接收到;每一個(gè)進(jìn)程有一個(gè)局部時(shí)鐘,其相對(duì)于標(biāo)準(zhǔn)時(shí)間的偏移率有一個(gè)已知的界限。第61頁(yè),共93頁(yè)。同步分布式系統(tǒng)(續(xù))能夠建議分布式系統(tǒng)中進(jìn)程

40、執(zhí)行時(shí)間、消息延遲和時(shí)鐘偏移率很可能的上和下界,但難于達(dá)到現(xiàn)實(shí)可行的值并提供這些選擇值的保證。除非這些界限值能夠被保證,否則任何基于這些選擇值的設(shè)計(jì)都不會(huì)是可靠的。然而,把一個(gè)算法建模為一個(gè)同步系統(tǒng)對(duì)于弄清楚它在真實(shí)的分布式系統(tǒng)中是如何工作的可能是有用的。在同步系統(tǒng)中,可以使用超時(shí)(timeouts),例如檢測(cè)進(jìn)程的故障。 同步分布式系統(tǒng)可以構(gòu)建。所需要的是進(jìn)程在已知的資源需求下執(zhí)行任務(wù),以便他們能夠保證(有)足夠的處理器周期和網(wǎng)絡(luò)容量,同時(shí)提供給進(jìn)程具有有限偏移率的時(shí)鐘。 第62頁(yè),共93頁(yè)。異步分布式系統(tǒng)許多分布式系統(tǒng)(例如Internet),是非常有用的,不能算是合格的同步系統(tǒng),因此我們

41、需要另一個(gè)模型。異步分布式系統(tǒng)沒(méi)有任何下面的限制:進(jìn)程執(zhí)行速度例如,一個(gè)進(jìn)程步(step)可能只花1 微微秒(picosecond),而另一個(gè)則要花一個(gè)世紀(jì);總之,每一步可能花任意長(zhǎng)的時(shí)間;消息傳送延遲例如,一封從進(jìn)程A到進(jìn)程B的信可能在零時(shí)間里被傳遞,而另一封信可能要花幾年。換句話說(shuō),一封信可以在任意長(zhǎng)的時(shí)間后被接受到;時(shí)鐘偏移率時(shí)鐘的偏移率是任意的。 第63頁(yè),共93頁(yè)。異步分布式系統(tǒng)(續(xù))異步模型對(duì)在任意執(zhí)行中涉及到的時(shí)間間隔不允許有任何假設(shè),這準(zhǔn)確地建模了Internet,在那里對(duì)服務(wù)器或網(wǎng)絡(luò)的負(fù)載沒(méi)有任何固有的限制,因此對(duì)于(例如,使用ftp傳送一個(gè)文件)要花多長(zhǎng)的時(shí)間也就沒(méi)有限制。

42、有時(shí)一封Email信可能要花數(shù)天的時(shí)間才能到達(dá)。Web不能總是在一個(gè)合理的時(shí)間限制之內(nèi)提供一個(gè)特定的響應(yīng)。 第64頁(yè),共93頁(yè)。異步分布式系統(tǒng)(續(xù))任何對(duì)于異步分布式系統(tǒng)有效的解決方案對(duì)于同步分布式系統(tǒng)來(lái)說(shuō)也是有效的。實(shí)際的分布式系統(tǒng)常常是異步的,因?yàn)樾枰M(jìn)程共享處理器以及通信通道共享網(wǎng)絡(luò)。例如,如果太多具有未知特性的進(jìn)程在共享一臺(tái)處理器,那么它們?nèi)魏我粋€(gè)結(jié)果的性能都不能得到保證。但是,有許多對(duì)于一個(gè)異步系統(tǒng)不能解決的設(shè)計(jì)問(wèn)題,當(dāng)使用某些方面的時(shí)間時(shí)就能夠被解決。對(duì)于要在一個(gè)最終期限前傳遞的多媒體數(shù)據(jù)流的每一個(gè)元素就是那樣的一個(gè)問(wèn)題。 第65頁(yè),共93頁(yè)。事件定序在許多情況下,我們想知道一個(gè)進(jìn)

43、程中的一個(gè)事件(發(fā)送或接收一個(gè)消息)是發(fā)生在另一個(gè)進(jìn)程中的另一個(gè)事件之前、之后或是并發(fā)地發(fā)生。一個(gè)系統(tǒng)的執(zhí)行可以用事件及其順序(ordering)來(lái)描述,盡管缺乏精確的時(shí)鐘。第66頁(yè),共93頁(yè)。Example我們考慮在一組email用戶X、Y、Z和A之間的一組如下的交換:用戶X發(fā)送一封具有主題Meeting的信;用戶Y和Z通過(guò)發(fā)送一封具有主題Re:Meeting的信進(jìn)行回答; 首先X的信被發(fā)送,Y讀取它并回答;Z讀取X的信和Y的回答,然后 發(fā)送另一封回答信(它引用了X和Y的信)。但是由于消息傳遞獨(dú) 立的延遲,這些信可能按下圖的方式被傳遞: 第67頁(yè),共93頁(yè)。Example (cont.)這樣

44、某些用戶可能以錯(cuò)誤的順序看到這些信,例如用戶A可能看見(jiàn):第68頁(yè),共93頁(yè)。如果X、Y、Z的計(jì)算機(jī)的時(shí)鐘能夠同步,那么每一封信在它被發(fā)送的時(shí)候,就能夠攜帶其局部計(jì)算機(jī)時(shí)鐘的時(shí)間。例如,信件m1,m2和m3將攜帶時(shí)間t1,t2和t3(t1t2t3)。接收到的信件將按照其時(shí)間順序顯示給用戶。如果這些時(shí)鐘是大致同步的,那么這些時(shí)間戳(timestamps)經(jīng)常具有正確的順序。 第69頁(yè),共93頁(yè)。邏輯時(shí)鐘因?yàn)樵诜植际较到y(tǒng)中這些時(shí)鐘不能完全地被同步,Lamport提出了一種邏輯時(shí)間模型,可以用來(lái)對(duì)運(yùn)行在分布式系統(tǒng)不同的計(jì)算機(jī)上的進(jìn)程中的事件提供一種定序(ordering)。邏輯時(shí)間不需要求助于時(shí)鐘而推

45、斷出消息(信件)出現(xiàn)的次序。第70頁(yè),共93頁(yè)。邏輯時(shí)鐘(續(xù))邏輯上,我們知道一封信在其被發(fā)送之后才被接收,因此我們可以聲明一些事件對(duì)的邏輯順序,例如我們僅僅考慮跟X、Y相關(guān)的事件: X sends m1 before Y receives m1; Y sends m2 before X receives m2.我們也知道在接受信件之后才發(fā)送回答,因此我們有下面的邏輯順序(對(duì)于Y): Y receives m1 before sending m2.邏輯時(shí)間進(jìn)一步采用這個(gè)思想,給每一個(gè)事件分配一個(gè)數(shù)值(相應(yīng)于其邏輯順序),以便后面的事件比早先的事件有更高的數(shù)值。例如,前面的圖中在X和Y的事件上顯

46、示數(shù)值14。第71頁(yè),共93頁(yè)。故障模型分布式系統(tǒng)中,進(jìn)程和通信通道都可能失效,故障模型定義了故障可能發(fā)生的方式,以便理解故障的影響。遺漏故障(Omission failures) 指一個(gè)進(jìn)程或通信通道不能執(zhí)行它被假定要做的活動(dòng)。 第72頁(yè),共93頁(yè)。遺漏故障進(jìn)程遺漏故障主要的進(jìn)程遺漏故障是崩潰(crash)。指進(jìn)程它停止了,并且不會(huì)再執(zhí)行其程序步驟。其他進(jìn)程當(dāng)發(fā)現(xiàn)這個(gè)進(jìn)程反復(fù)的不能響應(yīng)調(diào)用消息的時(shí)候,可以檢測(cè)到那樣的崩潰。然而,這種崩潰檢測(cè)方法依賴于timeouts的使用,在異步系統(tǒng)中,一個(gè)timeout僅能指示出進(jìn)程不響應(yīng)他可能崩潰了也可能是很慢,或者消息可能還沒(méi)有到達(dá)。如果其他進(jìn)程能確切

47、地檢測(cè)到進(jìn)程已經(jīng)崩潰,這樣的進(jìn)程崩潰稱為“fail-stop”。如果進(jìn)程使用timeouts來(lái)檢測(cè)什么時(shí)候其他進(jìn)程不能響應(yīng)并且保證信件被傳遞,那么在同步系統(tǒng)中可以產(chǎn)生Fail-stop行為。第73頁(yè),共93頁(yè)。遺漏故障通信遺漏故障考慮通信原語(yǔ)send和receive。進(jìn)程p通過(guò)在其outgoing消息緩沖區(qū)中插入消息m執(zhí)行一個(gè)send,通信通道傳送m到q的incoming消息緩沖區(qū),進(jìn)程q通過(guò)從其incoming消息緩沖區(qū)取m并傳遞它來(lái)執(zhí)行一個(gè)receive。Outgoing和incoming消息緩沖區(qū)典型地由操作系統(tǒng)提供。 第74頁(yè),共93頁(yè)。通信遺漏故障(續(xù))通信通道如果它不能把信件從p的

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

49、75頁(yè),共93頁(yè)。任意故障(Arbitrary failures)任意故障是用來(lái)描述最壞可能的故障語(yǔ)義,這里任何類型的錯(cuò)誤都可能發(fā)生。例如,一個(gè)進(jìn)程可以對(duì)它的數(shù)據(jù)項(xiàng)設(shè)置錯(cuò)誤的值,或者它也可以對(duì)一個(gè)調(diào)用返回一個(gè)錯(cuò)誤的值。進(jìn)程的任意故障是指,它任意地省略需要的處理步驟或者采取一些不需要的處理步驟。因此,進(jìn)程中的任意故障不能通過(guò)看是否進(jìn)程響應(yīng)調(diào)用來(lái)進(jìn)行檢測(cè),因?yàn)樗梢匀我獾厥÷曰卮稹5?6頁(yè),共93頁(yè)。任意故障(續(xù))通信通道可能遭遇任意故障,例如,信件內(nèi)容可能被破壞了或者不存在的信件可能被傳遞或者真實(shí)的信件被傳遞多于一次。通信通道的任意故障是稀少的,因?yàn)橥ㄐ跑浖軌蜃R(shí)別它們并拒絕這些錯(cuò)誤的信件。例如

50、,檢查和被用于檢測(cè)被破壞了的信件,而信件順序號(hào)(sequence numbers)可以用來(lái)檢測(cè)不存在的和復(fù)制的信件。第77頁(yè),共93頁(yè)。Omission and arbitrary failures 第78頁(yè),共93頁(yè)。定時(shí)故障(Timing failures)定時(shí)故障應(yīng)用于同步分布式系統(tǒng),那里時(shí)間限制被設(shè)置在進(jìn)程執(zhí)行時(shí)間、信件傳遞時(shí)間和時(shí)鐘偏移率。 第79頁(yè),共93頁(yè)。屏蔽故障(Masking failures)在分布式系統(tǒng)中,每一個(gè)組件通常是從其它一組組件進(jìn)行構(gòu)造,可以從有故障的組件(components)來(lái)構(gòu)造可靠的服務(wù)。例如,保持?jǐn)?shù)據(jù)復(fù)本的多個(gè)服務(wù)器在其中一個(gè)崩潰時(shí)可以繼續(xù)提供服務(wù)。一

51、個(gè)service屏蔽一個(gè)故障,或者通過(guò)隱藏它或者通過(guò)把它轉(zhuǎn)換成一個(gè)更可接受的故障類型。 第80頁(yè),共93頁(yè)。端到端通信的可靠性(Reliability of one-to-one communication)雖然基本的通信通道可能會(huì)呈現(xiàn)出上面描述的省略故障,但是可以使用它構(gòu)建一個(gè)屏蔽了某些那些故障的通信服務(wù)??煽康耐ㄐ虐凑沼行院屯暾远x如下: 有效性:在outgoing消息緩沖區(qū)中的任何 信件最終要被傳遞到incoming消息緩沖區(qū); 完整性:接收到的信件與發(fā)送的信件是相 同的,并且沒(méi)有信件被傳遞兩次。 第81頁(yè),共93頁(yè)。端到端通信的可靠性(續(xù))對(duì)完整性的威脅來(lái)自于兩個(gè)獨(dú)立的源:任何重傳

52、消息但是不拒絕到達(dá)兩次的消息的協(xié)議,協(xié)議可以通過(guò)給信件附加順序號(hào)來(lái) 檢測(cè)那些傳遞了兩次的信件。惡意的用戶可能插入偽造的(欺騙的)的信件,重放老的信件或篡改信件。在面對(duì)那樣的攻擊時(shí),可以采取安全性措施來(lái)維護(hù)完整性。第82頁(yè),共93頁(yè)。Security model we described their system architecture in terms of processes encapsulating objects and providing access to them through interactions with other processes. Protection is

53、described in terms of objects, although the concepts apply equally well to resources of all types. The security of a distributed system can be achieved by securing(保護(hù)) the processes and the channels used for their interactions and by protecting the objects that they encapsulate against unauthorized

54、access. 第83頁(yè),共93頁(yè)。Protecting objectsThe following figure shows 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 inv

55、ocation and sends the result to the client. 委托方(用戶)委托方(服務(wù)器)第84頁(yè),共93頁(yè)。Protecting objects (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 a

56、ccess rights. We do so by associating with each invocation and each result the authority on which it is issued. Such an authority is called a principal(委托方,指出其發(fā)出者). A principal may be a user or a process. 第85頁(yè),共93頁(yè)。Protecting objects (cont.)The server is responsible for verifying the identity of the

57、 principal behind each invocation and checking that they have sufficient access rights to perform 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 requi

58、red server. 第86頁(yè),共93頁(yè)。Securing processes and their interactionsProcesses interact by sending messages. The 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 inte

59、rfaces, enabling invocations to be sent to them by any other process.第87頁(yè),共93頁(yè)。The enemy To model security threats, 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. 第88頁(yè),共93頁(yè)。Defeating security threats Here we introduce the main techniques on which systems are based. Cryptogr

溫馨提示

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

評(píng)論

0/150

提交評(píng)論