分布式系統(tǒng)之2、通信1_第1頁
分布式系統(tǒng)之2、通信1_第2頁
分布式系統(tǒng)之2、通信1_第3頁
分布式系統(tǒng)之2、通信1_第4頁
分布式系統(tǒng)之2、通信1_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第二章 通信1概述進(jìn)程間通信分布式系統(tǒng)的核心分布式系統(tǒng)通信基于底層網(wǎng)絡(luò)提供的消息傳遞機(jī)制四種廣泛使用的模型:遠(yuǎn)程過程調(diào)用RPC遠(yuǎn)程方法(對象)調(diào)用RMI面向消息的中間件流2一、分層協(xié)議31、概念目標(biāo):進(jìn)程通信的基礎(chǔ)ISO OSI參考模型低層協(xié)議傳輸層協(xié)議高層協(xié)議TCP/IP協(xié)議族,互聯(lián)網(wǎng)的實(shí)際標(biāo)準(zhǔn)4OSI七層模型52、低層協(xié)議物理層定義網(wǎng)絡(luò)的物理特性,包括機(jī)械、電氣等特性數(shù)據(jù)鏈路層檢測并糾正物理層傳輸?shù)腻e(cuò)誤網(wǎng)絡(luò)層首要任務(wù)是最佳路徑選擇(路由選擇)6傳輸協(xié)議傳輸層的主要任務(wù):提供可靠的傳輸服務(wù)。客戶端服務(wù)器TCP7TCP連接過程a 正常的TCP握手過程 b 事務(wù)性TCP83、高層協(xié)議會話層和表示

2、層協(xié)議應(yīng)用層協(xié)議中間件協(xié)議中間件是一種應(yīng)用程序,它在邏輯上位于應(yīng)用層,但包含多個(gè)通用協(xié)議。為提供不同的中間件服務(wù),設(shè)計(jì)不同的中間件協(xié)議。例如:授權(quán)協(xié)議(授權(quán)與認(rèn)證)分布式提交協(xié)議(用于分布式事務(wù))分布式鎖協(xié)議(解決分布式并發(fā)訪問)9調(diào)整后的網(wǎng)絡(luò)通信參考模型10二、遠(yuǎn)程過程調(diào)用(RPC)111、RPC的目標(biāo)將消息傳遞的大部分復(fù)雜性隱藏起來理解RPC實(shí)現(xiàn)的復(fù)雜性分布式系統(tǒng)透明性的宗旨12許多分布式系統(tǒng)基于顯式消息交換,消息的發(fā)送和接收都無法隱藏通信的存在,而通信的隱藏對分布式系統(tǒng)的訪問透明性極其重要。RPC允許程序調(diào)用位于其他機(jī)器上的進(jìn)程。其原理描述如下:當(dāng)主機(jī)A上的進(jìn)程調(diào)用B上的進(jìn)程時(shí),A上的調(diào)

3、用進(jìn)程被掛起,B上的被調(diào)用進(jìn)程執(zhí)行。調(diào)用方通過參數(shù)將信息傳遞給被調(diào)用方,然后通過傳回的結(jié)果得到信息。整個(gè)過程用戶看不到消息的傳遞細(xì)節(jié)。BA調(diào)用傳回RPC原理2、RPC基本原理13RPC調(diào)用基本過程143、基本RPC操作常規(guī)調(diào)用(本地調(diào)用):參數(shù)壓棧例:count = read(fd, buf, nbytes);15基本RPC操作RPC的兩個(gè)概念:客戶端存根和服務(wù)器端存根,同一RPC過程在客戶端和服務(wù)器上的不同形式。完整的RPC步驟:客戶過程以正常方式調(diào)用客戶存根客戶存根生成一個(gè)消息,然后調(diào)用本地操作系統(tǒng)客戶端操作系統(tǒng)將消息發(fā)送給遠(yuǎn)程操作系統(tǒng),并阻塞客戶過程遠(yuǎn)程操作系統(tǒng)將消息交給服務(wù)器存根服務(wù)器

4、存根將參數(shù)提取出來,然后調(diào)用服務(wù)器服務(wù)器執(zhí)行要求的操作,操作完成后將結(jié)果返回給服務(wù)器存根服務(wù)器存根將結(jié)果打成消息包,然后調(diào)用本地操作系統(tǒng)服務(wù)器操作系統(tǒng)將消息發(fā)送回客戶端操作系統(tǒng)客戶端操作系統(tǒng)將消息交給客戶存根客戶存根將結(jié)果從消息中提取出來,返回給調(diào)用進(jìn)程16基本RPC流程174、參數(shù)傳遞1傳遞值參數(shù)第一種參數(shù)傳遞的方式:傳遞值參數(shù)把參數(shù)的值打包到消息中,并在消息中加入要調(diào)用的過程名稱或者編號。18傳遞值參數(shù)傳遞值參數(shù)的一個(gè)關(guān)鍵問題:各種系統(tǒng)的數(shù)據(jù)表示方式不一致。原始消息和逆轉(zhuǎn)后的消息。(方框中的數(shù)字表示字節(jié)地址)a、 奔騰處理器系統(tǒng)上的原始消息 b、 SPARC處理器系統(tǒng)接收的消息 c、逆轉(zhuǎn)后

5、的消息19參數(shù)傳遞2傳遞引用參數(shù)既然有遠(yuǎn)程過程調(diào)用,能否傳遞指針參數(shù),因?yàn)閷芏噙^程,指針參數(shù)有著非常重要甚至無法替代的地位。最大難題:指針只有在使用該指針的進(jìn)程所在的地址空間內(nèi)才有意義。第一種解決辦法:禁止指針與引用(當(dāng)然不可?。?0傳遞引用參數(shù)第二種辦法:如果我們知道指針?biāo)竻^(qū)域的大小,很容易想到把該內(nèi)存區(qū)域的值整塊打包到消息中。服務(wù)器執(zhí)行完后把改動后的這塊區(qū)域復(fù)制到結(jié)果消息中,客戶存根再將它還原。這種方式實(shí)際上是用復(fù)制還原調(diào)用來代替引用(指針)調(diào)用??蛻魴C(jī)服務(wù)器21傳遞引用參數(shù)更進(jìn)一步,如果我們知道緩沖區(qū)是用作輸入還是輸出,就可以省略其中某些步驟而提高調(diào)用效率。如果為輸入緩沖區(qū),則沒必

6、要回傳,如果為輸出緩沖區(qū),則在調(diào)用時(shí)可以不傳遞。服務(wù)器客戶機(jī)服務(wù)器客戶機(jī)22參數(shù)說明與存根生成RPC協(xié)議:規(guī)定消息格式,以及各種簡單數(shù)據(jù)類型的一致表示方式。存根的實(shí)現(xiàn):用接口定義語言來說明。235、擴(kuò)展的RPC模型門:門是一類過程,這種過程位于某個(gè)服務(wù)器進(jìn)程的地址空間內(nèi),可由與該服務(wù)器進(jìn)程位于同一臺機(jī)器上的其他進(jìn)程調(diào)用。門使得分布式系統(tǒng)在通信中使用單一的機(jī)制,即過程調(diào)用當(dāng)客戶調(diào)用遠(yuǎn)程過程的時(shí)候,客戶將被阻塞,直到有應(yīng)答返回為止。但在沒有結(jié)果返回的情況下,這種方式是沒有必要的。異步RPC:客戶在發(fā)出RPC請求后立即繼續(xù)執(zhí)行。24異步RPC普通(同步)RPC交互過程和異步RPC交互過程比較25異步

7、RPC兩步異步RPC(延遲的同步RPC)交互過程26三、遠(yuǎn)程對象調(diào)用271、分布式對象分布式對象:實(shí)現(xiàn)對象的接口和對象本身的分離,即接口放在一臺機(jī)器上,但對象本身卻駐留在另一臺機(jī)器上。當(dāng)一個(gè)客戶綁定到一個(gè)分布式對象的時(shí)候,該對象接口的一種實(shí)現(xiàn)代理(proxy)被加載到客戶的地址空間中。代理與RPC中的客戶存根相類似。代理的作用是將對對象的方法調(diào)用編組成消息,并對應(yīng)答消息解編。與之相對應(yīng),在服務(wù)器上也有存根,也稱為骨架(skeleton),負(fù)責(zé)調(diào)用請求解編,以及應(yīng)答消息的編組。28分布式對象組織結(jié)構(gòu)29分布式對象分類編譯時(shí)對象和運(yùn)行時(shí)對象編譯時(shí)對象:直接與語言級對象相關(guān)聯(lián)運(yùn)行時(shí)對象:運(yùn)行時(shí)顯式生成對象持久對象和暫時(shí)對象持久對象不依賴于服務(wù)器是否運(yùn)行,服務(wù)器退出后,對象的狀態(tài)存儲到輔助存儲器上,服務(wù)器再次啟動后,對象可以接續(xù)以前狀態(tài)工作。暫時(shí)對象則相反,服務(wù)器退出后,對象就銷毀了。302、遠(yuǎn)程對象方法調(diào)用在將客戶綁定到對象之后,就可以通過代理來調(diào)用對象的方法,這種遠(yuǎn)程對象方法的調(diào)用稱為RMI(Remote Method Invocation)。靜態(tài)遠(yuǎn)程方法調(diào)用:使用預(yù)定義接口。即,在開發(fā)客戶程序的時(shí)候需要知道對象的調(diào)用接口。動態(tài)遠(yuǎn)程方法調(diào)用:運(yùn)行時(shí)建立對象方法的調(diào)用。最常見的形式如下:invoke(object, method, input_parameters, out

溫馨提示

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

評論

0/150

提交評論