分布式系統正在經曆巨大的變化,這可追溯到一系列有影響力的趨勢:
出現了泛在聯網技術;
出現了無處不在計算,它伴随着分布式系統中支援使用者移動性的意願;
對多媒體裝置的需求增加;
把分布式系統作為一個設施。
現代網際網路是一個巨大的由多種類型計算機網絡互連的集合,網絡的類型一直在增加,現在包括多種多樣的無線通信技術,如wifi、wimax、藍牙(參見第3章)和第三代行動電話網絡。最終結果是聯網已成為一個泛在的資源,裝置可以在任何時間、任何地方被連接配接(如果願意)。
圖1-3舉例說明了網際網路的部分典型組成。網際網路上的計算機程式通過傳遞消息進行互動,采用了一種公共的通信手段。網際網路通信機制(網際網路協定)的設計和構造是一項重大的技術成果,它使得一個在某處運作的程式能給另一個地方的程式發送消息。
網際網路也是一個超大的分布式系統。它使得世界各地的使用者都能利用諸如網際網路、電子郵件和檔案傳送等服務。(有時,web被不正确地等同于網際網路。)服務集是開放的,它能夠通過伺服器計算機和新的服務的增加而被擴充。圖1-3還展示了許多企業内部網——由公司和其他組織操作的子網,通常受防火牆的保護。防火牆的作用是保護企業内部網,防止未授權的消息進出網絡。8防火牆是通過過濾到達消息和外發消息來實作的。可以在源或目的地進行過濾,或者防火牆可以僅允許與電子郵件和web通路相關的消息進出它保護的企業内部網。網際網路服務提供商(internet service provider,isp)是給個體使用者和小型組織提供寬帶連結和其他類型連接配接的公司,使他們能獲得網際網路上任何地方的服務;同時提供諸如電子郵件和web托管等本地服務。企業内部網通過主幹網實作互相連結。主幹網是具有高傳送能力的網絡連結,通常采用衛星連接配接、光纜和其他高帶寬線路。
一些組織并不希望将他們的内部網絡連接配接到網際網路。例如,警察局與其他安全和法律執行機構可能至少有一些内部網與外部世界隔離(沒有與網際網路的任何實體連接配接——可能是最有效的防火牆)。當内部使用者和外部使用者之間需要資源共享時,對服務的合法通路受到防火牆的阻礙,也會在分布式系統中出現問題。是以,必須經常用更細粒度的機制和政策(見第11章的讨論)作為防火牆的補充。
網際網路和其支援的服務的實作,使得必須開發實用解決方案來解決分布式系統中的許多問題(包括在1.5節中定義的大多數問題)。本書将着重闡述這些解決方案,并在适當的時候說明它們的适用範圍和局限性。9
裝置小型化和無線網絡方面的技術進步已經逐漸使得小型和便攜式計算裝置內建到分布式系統中。這些裝置包括:
筆記本電腦。
手持裝置,包括行動電話、智能電話、gps裝置、傳呼機、個人數字助理(pda)、錄影機和數位相機。
可穿戴裝置,如具有類似pda功能的智能手表。
嵌入在家電(如洗衣機、高保真音響系統、汽車和冰箱)中的裝置。
這些裝置大多數具有可攜帶性,再加上它們可以在不同地方友善地連接配接到網絡的能力,使得移動計算成為可能。移動計算是指使用者在移動或通路某個非正常環境時執行計算任務的性能。在移動計算中,遠離其本地的企業内部網(指工作環境或其住處的企業内部網)的使用者也能通過他們攜帶的裝置通路資源。他們能繼續通路網際網路,繼續通路在他們本地内部企業網上的資源。為使用者在其移動時提供資源(如列印機)或友善地利用附近的銷售點的情形也在不斷增加。後者也稱為位置感覺或上下文感覺的計算。移動性為分布式系統引入了一系列的挑戰,包括需要處理變化的連接配接甚至斷連、需要在裝置移動時維持操作(見1.5.7節關于移動透明性的讨論)。
無處不在計算是指對在使用者的實體環境(包括家庭、辦公室和其他自然環境)中存在的多個小型、便宜的計算裝置的利用。術語“無處不在”意指小型計算裝置最終将在不會引人注意的日常物品中普及。也就是說,它們的計算行為将透明地緊密捆綁到這些日常物品的實體功能上。
各處的計算機隻有在它們能互相通信時才變得有用。例如,如果使用者能通過電話或一個“通用遠端控制”裝置控制家裡的洗衣機和娛樂系統,那麼使用者會覺得很友善。而洗衣機在完成洗衣後能通過一個智能徽章或電話通知使用者,也會讓人覺得很友善。
無處不在計算和移動計算有交叉的地方,因為從原理上說,移動使用者能受益于遍布各處的計算機。但一般而言,它們是不同的。無處不在計算能讓待在家裡或醫院這樣單一的環境中的使用者受益。類似地,即使移動計算隻涉及常見的、分立的計算機和裝置(如筆記本電腦和列印機),它還是有優勢的。
圖1-4顯示了一個正在通路一個組織的使用者。該圖顯示出使用者本地的内部網和使用者正在通路的内部網。兩個企業内部網都連接配接到網際網路。
使用者可以使用三種無線連接配接。筆記本電腦可以連接配接到被通路組織的無線lan。無線lan覆寫方圓幾百米的範圍(即建築物的一層)。10它通過網關或通路點連接配接到被通路組織的企業内部網。使用者還有一部連到網際網路的行動電話,電話可以通路web和其他網際網路服務,隻是所顯示的内容受限于小的顯示螢幕,電話也可以通過内置的gps功能提供位置資訊。最後,使用者攜帶一台數位相機,它能通過一個個域無線網絡(其覆寫範圍大約為10m)與列印機這樣的裝置通信。
利用适當的系統基礎設施,使用者能在其通路地用他們攜帶的裝置完成一些簡單的任務。當使用者到達其通路的地方時,他能通過行動電話從web伺服器上取得最新的股票價格,也能使用内置的gps和路由尋找軟體來獲得到達目标位置的方向。在與通路機關開會時,通過把數位相機的照片直接發送到會議室的一台可用的(本地)列印機或投影機上,使用者就能展示最近的照片。這僅僅要求相機和列印機或投影機之間具有無線連接配接。原則上,使用者可以利用無線lan或有線的以太網連結從筆記本電腦上把檔案發送到同一台列印機。
這個場景說明了支援自發互操作的需求,依靠自發互操作,裝置之間的關聯被例行地建立和拆除,定位和使用所通路地的裝置(如列印機)是一個這方面的例子。這種情況下的最大挑戰是讓互操作快速和友善(即自發),即使使用者可能在一個他們以前從來沒有通路過的環境。這意味着,要讓通路者的裝置在通路地的網絡上通信,并将裝置與合适的本地裝置相關聯——這個過程稱為服務發現。
移動和無處不在計算是一個熱門的研究領域,上面提到的多個方面将在第19章深入讨論。11
另一個重要的趨勢是在分布式系統中支援多媒體服務的需求。多媒體支援可以定義為以內建的方式支援多種媒體類型的能力。人們可以期望分布式多媒體系統支援離散類型媒體(如圖檔或正文消息)的存儲、傳輸和展示。分布式多媒體系統應該能對連續類型媒體(如音頻和視訊)完成相同的功能,即它應該能存儲和定位音頻或視訊檔案,并通過網絡傳輸它們(可能需要以實時的方式,因為流來自錄影機),進而能向使用者展示多種媒體類型,以及在一組使用者中共享多種類型的媒體。
連續媒體的重要特點是它們包括一個時間次元,确實,媒體類型的完整性從根本上依賴于在媒體類型的元素之間保持實時關系。例如,在視訊展示中,保持給定的吞吐量是必要的,它以幀/秒計,而對實時流來說,是給定幀傳遞的最大延遲。(這是服務品質的一個例子,詳細讨論見1.5.8節。)
分布式多媒體計算的好處是相當大的,因為能在桌面環境提供大量的新(多媒體)服務和應用,包括通路實況或預先錄下的電視廣播、通路提供視訊點播服務的電影資料庫、通路音樂資料庫、提供音頻和視訊會議設施、提供內建的電話功能(包括ip電話或相關的技術,例如ip電話的一個對等方案skype,對skype底層的分布式系統基礎設施的讨論見4.5.2節)。注意,該項技術對于制造商重新思考消費類裝置方面是革命性的。例如,什麼是将來核心的家庭娛樂裝置——計算機、電視或遊戲控制台?
網絡播放(webcasting)是分布式多媒體技術的應用。網絡播放是在網際網路上廣播連續媒體(典型的是音頻或視訊)的能力,現在常見以這種方式廣播主要的體育或音樂事件,它經常吸引大量的觀看者(例如,2005年的live8音樂會在其高峰同時吸引了大約170000名使用者)。
分布式多媒體應用(例如網絡播放)對底層的分布式基礎設施提出了大量的要求,包括:
提供對一系列(可擴充的)編碼和加密格式的支援,例如mpeg系列标準(包括如流行的mp3标準,也稱mpeg-1音頻第三層)和hdtv;
提供一系列機制來保障所需的服務品質能得到滿足;
提供相關的資源管理政策,包括合适的排程政策,來支援所需的服務品質;
提供适配政策來處理在開放系統中不可避免的場景,即服務品質不能得到滿足或維持。
這些機制的進一步讨論可以在第20章找到。12
随着分布式系統基礎設施的不斷成熟,不少公司在推廣這樣的觀點:把分布式資源看成一個商品或公共設施,把分布式資源和其他公用設施(例如水或電)進行類比。采用這個模型,資源通過合适的服務提供者提供,能被最終使用者有效地租賃而不是擁有。這種模型可以應用到實體資源和更多的邏輯服務上。
聯網的計算機可用諸如存儲和處理這樣的實體資源,進而無須自己擁有這樣的資源。從一個次元看,使用者可以為其檔案存儲(例如,照片、音樂或視訊等多媒體資料的存儲)需求和/或檔案備份需求選擇一個遠端存儲設施。類似地,利用這個方法,使用者能租用一個或多個計算結點,進而滿足他們的基本計算需求或者完成分布式計算。從另一個次元看,使用者現在能用像amazon和google之類的公司提供的服務通路複雜的資料中心(網絡化的設施,為使用者或機構提供對擁有大量資料的資料倉庫的通路)或計算基礎設施。作業系統虛拟化是該方法關鍵的使能技術,它意味着實際上可以通過一個虛拟的而不是實體的結點為使用者提供服務。這從資源管理角度給服務提供者提供了更大的靈活性(關于作業系統虛拟化的詳細讨論見第7章)。
用這種方法,軟體服務(其定義見1.4節)也能跨全球網際網路使用。确實,許多公司現在提供一整套服務用于租賃,包括諸如電子郵件和分布式月曆之類的服務。例如,google将其旗下的一系列業務服務捆綁成google apps[www.google.com i]。軟體服務所遵循的标準,例如web服務(見第9章)提供的标準,使得這類開發成為可能。
關于計算作為公共設施,術語雲計算(cloud computing)被用來刻畫其前景。雲被定義成一組基于網際網路的應用,并且足以滿足大多數使用者需求的存儲和計算服務的集合,這使得使用者能大部分或全部免除本地資料存儲和應用軟體的使用(見圖1-5)。
圖1-5 雲計算該術語也推廣“把每個事物看成一個服務”的觀點,從實體或虛拟基礎設施到軟體,這樣,服務經常根據使用而非購買來支付費用。注意,雲計算減少了對使用者裝置的需求,允許非常簡單的桌面或便攜式裝置來通路可能很廣範圍内的資源和服務。
通常,雲實作在叢集計算機上,進而提供每個服務所要求的必要的伸縮性和性能。叢集計算機(cluster computer)是互連的計算機集合,它們緊密協作提供單一的、內建的高性能計算能力。在諸如berkeley的now(network of workstations)項目[anderson et al.1995,now.cs.berkeley.edu]和nasa的beowulf項目[www.beowulf.org]的基礎上,現在的趨勢是計算機和互連網絡都朝着利用商用硬體的方向發展。13大多數叢集由商用pc組成,這些pc運作作業系統(如linux)的标準版本(有時是縮減版),并通過區域網路互聯。諸如hp、sun和ibm等公司提供了刀片解決方案。刀片伺服器(blade server)是最小的包含處理和(主存)存儲能力的計算元素。刀片系統由包含在一個刀片機架中的大量刀片伺服器組成。其他元素例如電源、冷卻、持久存儲(磁盤)、聯網和顯示,或是由機架提供或是通過虛拟化解決方案提供(相關讨論見第7章)。通過這個解決方案,單個刀片伺服器比商用pc更小,也更便宜。
叢集伺服器的總目的是提供一系列的雲服務,包括高性能計算能力、大容量存儲(例如通過資料中心)、豐富的應用服務(如web搜尋——google依賴大容量叢集計算機體系結構來實作其搜尋引擎和其他服務,相關讨論見第21章)。
網格計算(相關讨論見第9章9.7.2節)也能被看成是一種雲計算。大量的術語是同義的,偶爾定義得不清楚,但網格計算通常被看成是雲計算這種更通用模式的先驅,它隻是偏重于支援科學計算。