版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、長春工業(yè)大學(xué)軟件學(xué)院中間件技術(shù)原理與應(yīng)用劉 冰長春工業(yè)大學(xué)長春工業(yè)大學(xué)軟件學(xué)院課程目標(biāo) 構(gòu)造大型的分布式軟件系統(tǒng)時(shí)將遇到 什么樣的問題 解決這些問題的原理與技術(shù):構(gòu)件技術(shù)與中間件技術(shù) 相關(guān)的工業(yè)標(biāo)準(zhǔn) 如 COM、CORBA、J2EE等長春工業(yè)大學(xué)軟件學(xué)院 1 1、操作系統(tǒng)、操作系統(tǒng) 2 2、計(jì)算機(jī)網(wǎng)絡(luò)、計(jì)算機(jī)網(wǎng)絡(luò) 3 3、數(shù)據(jù)庫原理、數(shù)據(jù)庫原理 4 4、軟件工程、軟件工程 5 5、Java/CJava/C相關(guān)課程長春工業(yè)大學(xué)軟件學(xué)院開放系統(tǒng)互操作性中間件123遠(yuǎn)地過程調(diào)用及其增強(qiáng)分布式計(jì)算環(huán)境45第1章 中間件產(chǎn)生背景及分布式計(jì)算環(huán)境長春工業(yè)大學(xué)軟件學(xué)院什么是分布式軟件 軟件面臨的問題軟件正變
2、得無處不在,同時(shí)軟件所面臨的挑戰(zhàn)也正在日益加劇 復(fù)雜度高 開發(fā)周期長 可靠性保證難長春工業(yè)大學(xué)軟件學(xué)院什么是分布式軟件 本課程關(guān)注分布式軟件系統(tǒng)的開發(fā)支撐隨著網(wǎng)絡(luò)與通信技術(shù)的發(fā)展,分布式軟件的應(yīng)用越來越廣泛,分布式軟件在計(jì)算機(jī)軟件應(yīng)用領(lǐng)域扮演者非常重要的角色。分布式軟件一般比集中式軟件規(guī)模大、復(fù)雜,是軟件開發(fā)復(fù)雜性的集中體現(xiàn)。長春工業(yè)大學(xué)軟件學(xué)院什么是分布式軟件 分布式軟件網(wǎng)絡(luò)環(huán)境:一群通過網(wǎng)絡(luò)互相連接的處理系統(tǒng),每個(gè)處理節(jié)點(diǎn)由處理機(jī)硬件、操作系統(tǒng)及基本通信軟件等組成。分布式軟件:運(yùn)行在網(wǎng)絡(luò)環(huán)境中的軟件系統(tǒng)。兩種典型的應(yīng)用途徑 將分布式軟件系統(tǒng)看做直接反映了現(xiàn)實(shí)世界中的分布性 用于改進(jìn)某些應(yīng)用
3、的運(yùn)行性能長春工業(yè)大學(xué)軟件學(xué)院計(jì)算模式的發(fā)展過程計(jì)算模式的發(fā)展過程基于主機(jī)的系統(tǒng)(分時(shí)共享、資源共享)基于主機(jī)的系統(tǒng)(分時(shí)共享、資源共享)兩層兩層Client/Server系統(tǒng)系統(tǒng)p客戶端負(fù)擔(dān)仍然比較重客戶端負(fù)擔(dān)仍然比較重p仍然需要客戶端進(jìn)行較復(fù)雜的數(shù)據(jù)處理仍然需要客戶端進(jìn)行較復(fù)雜的數(shù)據(jù)處理p客戶端的可移植性不好客戶端的可移植性不好p處理復(fù)雜必然牽涉更多的移植性問題處理復(fù)雜必然牽涉更多的移植性問題p每個(gè)客戶端上都要安裝數(shù)據(jù)庫驅(qū)動程序每個(gè)客戶端上都要安裝數(shù)據(jù)庫驅(qū)動程序p系統(tǒng)的可維護(hù)性不好系統(tǒng)的可維護(hù)性不好p客戶端包含過多的商業(yè)邏輯客戶端包含過多的商業(yè)邏輯p商業(yè)邏輯與人機(jī)交互界面交織在一起商業(yè)邏輯
4、與人機(jī)交互界面交織在一起p數(shù)據(jù)的安全性不好數(shù)據(jù)的安全性不好 1.1開放系統(tǒng)與互操作性概述長春工業(yè)大學(xué)軟件學(xué)院計(jì)算模式的發(fā)展過程計(jì)算模式的發(fā)展過程 三層(三層(n層)體系架構(gòu)層)體系架構(gòu)p表示層表示層 用戶層用戶層p業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層應(yīng)用層應(yīng)用層p數(shù)據(jù)層數(shù)據(jù)層數(shù)據(jù)庫服務(wù)器數(shù)據(jù)庫服務(wù)器 基于基于Web的三層(的三層(N層)體系結(jié)構(gòu)層)體系結(jié)構(gòu)1.1開放系統(tǒng)與互操作性概述長春工業(yè)大學(xué)軟件學(xué)院開放系統(tǒng)基本組成開放系統(tǒng)基本組成硬件硬件 包括包括PC,工作站,大中型機(jī),各式各樣的,工作站,大中型機(jī),各式各樣的 嵌入式設(shè)備,移動設(shè)備;嵌入式設(shè)備,移動設(shè)備;軟件軟件 各類操作系統(tǒng)、應(yīng)用軟件;各類操作系統(tǒng)、應(yīng)
5、用軟件;網(wǎng)絡(luò)網(wǎng)絡(luò) 各類網(wǎng)絡(luò)結(jié)構(gòu)、網(wǎng)絡(luò)協(xié)議。各類網(wǎng)絡(luò)結(jié)構(gòu)、網(wǎng)絡(luò)協(xié)議。開放系統(tǒng)面臨的問題開放系統(tǒng)面臨的問題 遠(yuǎn)程性遠(yuǎn)程性 并發(fā)行并發(fā)行 無全局狀態(tài)無全局狀態(tài) 部分失敗部分失敗 異步性異步性 異質(zhì)性異質(zhì)性 自主性自主性 聯(lián)合型聯(lián)合型 伸縮性伸縮性 發(fā)展性發(fā)展性 移動性移動性1.1續(xù)長春工業(yè)大學(xué)軟件學(xué)院開放系統(tǒng)特點(diǎn)開放系統(tǒng)特點(diǎn)開放的:提供開放的:提供可移植性可移植性和和協(xié)同協(xié)同工作;工作;集成的:有助于對付集成的:有助于對付異質(zhì)性異質(zhì)性;靈活的:有助于對付靈活的:有助于對付移動性移動性;模塊化的:模塊化的:靈活性靈活性的基礎(chǔ);的基礎(chǔ);可聯(lián)合的可聯(lián)合的可管理的可管理的安全的安全的透明的:支撐軟件和硬件的
6、透明的:支撐軟件和硬件的異質(zhì)性異質(zhì)性;滿足服務(wù)滿足服務(wù)質(zhì)量需求質(zhì)量需求1.1續(xù)長春工業(yè)大學(xué)軟件學(xué)院開放系統(tǒng)必具特性開放系統(tǒng)必具特性 可移植性可移植性(Portability) 可互操作性可互操作性(Interoperability) 可伸縮性可伸縮性(Scalability) 易獲得性易獲得性(Availability)1.1續(xù)長春工業(yè)大學(xué)軟件學(xué)院開放系統(tǒng)構(gòu)造開放系統(tǒng)構(gòu)造用輪廓勾劃;用輪廓勾劃;輪廓由輪廓由系統(tǒng)管理系統(tǒng)管理 用戶界面用戶界面 安全性安全性 編程服務(wù)編程服務(wù) 互操作服務(wù)互操作服務(wù) 通信服務(wù)通信服務(wù) 信息實(shí)體信息實(shí)體 七個(gè)成分組成;七個(gè)成分組成;對輪廓的各成分標(biāo)準(zhǔn)化,即成開放系統(tǒng)。
7、對輪廓的各成分標(biāo)準(zhǔn)化,即成開放系統(tǒng)。1.1續(xù)長春工業(yè)大學(xué)軟件學(xué)院開放系統(tǒng)開放程度表 1.1續(xù)長春工業(yè)大學(xué)軟件學(xué)院互操作性互操作性本質(zhì):本質(zhì):從異質(zhì)環(huán)境(異種從異質(zhì)環(huán)境(異種體系結(jié)構(gòu)體系結(jié)構(gòu)、異種、異種操作系統(tǒng)操作系統(tǒng)、異種、異種網(wǎng)絡(luò)網(wǎng)絡(luò)等等)中獲得資源的)中獲得資源的透明動用透明動用能力。能力。 面向面向計(jì)算資源計(jì)算資源的互操作性的互操作性 面向面向信息資源信息資源的互操作性(如數(shù)據(jù)庫)的互操作性(如數(shù)據(jù)庫)定義定義:在一個(gè)由在一個(gè)由異質(zhì)實(shí)體異質(zhì)實(shí)體構(gòu)成的網(wǎng)絡(luò)環(huán)境中,當(dāng)應(yīng)用在網(wǎng)絡(luò)的結(jié)構(gòu)成的網(wǎng)絡(luò)環(huán)境中,當(dāng)應(yīng)用在網(wǎng)絡(luò)的結(jié)點(diǎn)上運(yùn)行時(shí),它可以點(diǎn)上運(yùn)行時(shí),它可以透明地透明地動用網(wǎng)中其他結(jié)點(diǎn)上的動用網(wǎng)中其
8、他結(jié)點(diǎn)上的資源資源,并借助這些資源與本結(jié)點(diǎn)上的資源共同來完成某個(gè)或,并借助這些資源與本結(jié)點(diǎn)上的資源共同來完成某個(gè)或某組任務(wù)。某組任務(wù)。1.1續(xù)長春工業(yè)大學(xué)軟件學(xué)院互操作性互操作性定義定義:在一個(gè)由在一個(gè)由異質(zhì)實(shí)體異質(zhì)實(shí)體構(gòu)成的網(wǎng)絡(luò)環(huán)境中,當(dāng)應(yīng)用在網(wǎng)絡(luò)的結(jié)構(gòu)成的網(wǎng)絡(luò)環(huán)境中,當(dāng)應(yīng)用在網(wǎng)絡(luò)的結(jié)點(diǎn)上運(yùn)行時(shí),它可以點(diǎn)上運(yùn)行時(shí),它可以透明地透明地動用網(wǎng)中其他結(jié)點(diǎn)上的動用網(wǎng)中其他結(jié)點(diǎn)上的資源資源,并借助這些資源與本結(jié)點(diǎn)上的資源共同來完成某個(gè)或,并借助這些資源與本結(jié)點(diǎn)上的資源共同來完成某個(gè)或某組任務(wù)。某組任務(wù)。本質(zhì):本質(zhì):從異質(zhì)環(huán)境(異種從異質(zhì)環(huán)境(異種體系結(jié)構(gòu)體系結(jié)構(gòu)、異種、異種操作系統(tǒng)操作系統(tǒng)、異種、異種
9、網(wǎng)絡(luò)網(wǎng)絡(luò)等等)中獲得資源的)中獲得資源的透明動用透明動用能力。能力。 面向面向計(jì)算資源計(jì)算資源的互操作性的互操作性 面向面向信息資源信息資源的互操作性(如數(shù)據(jù)庫)的互操作性(如數(shù)據(jù)庫)1.1續(xù)長春工業(yè)大學(xué)軟件學(xué)院現(xiàn)代應(yīng)用系統(tǒng)的基本特征現(xiàn)代應(yīng)用系統(tǒng)的基本特征分布分布 任務(wù)已不只是在單機(jī)上運(yùn)行,而是由任務(wù)已不只是在單機(jī)上運(yùn)行,而是由網(wǎng)絡(luò)中網(wǎng)絡(luò)中多臺計(jì)算機(jī)上的相關(guān)應(yīng)用多臺計(jì)算機(jī)上的相關(guān)應(yīng)用共同協(xié)作共同協(xié)作完成,需考慮完成,需考慮網(wǎng)絡(luò)傳輸網(wǎng)絡(luò)傳輸、數(shù)據(jù)安全數(shù)據(jù)安全、數(shù)據(jù)一致性數(shù)據(jù)一致性、同步同步等等諸多問題;諸多問題;異構(gòu)異構(gòu) 計(jì)算機(jī)硬件、操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議、數(shù)據(jù)庫系統(tǒng)以及開發(fā)工具種類繁計(jì)算機(jī)硬件、操
10、作系統(tǒng)、網(wǎng)絡(luò)協(xié)議、數(shù)據(jù)庫系統(tǒng)以及開發(fā)工具種類繁多,需考慮多,需考慮數(shù)據(jù)表示數(shù)據(jù)表示、調(diào)用接口調(diào)用接口、處理方式處理方式等諸多問題;等諸多問題;動態(tài)協(xié)作動態(tài)協(xié)作 參與協(xié)作的應(yīng)用允許參與協(xié)作的應(yīng)用允許位置透明性位置透明性、遷移透明性遷移透明性、負(fù)載平衡性負(fù)載平衡性等需求。等需求。1.2 中間件概述長春工業(yè)大學(xué)軟件學(xué)院1.2續(xù)應(yīng)用應(yīng)用1應(yīng)用應(yīng)用2應(yīng)用應(yīng)用3服務(wù)器服務(wù)器1服務(wù)器服務(wù)器2服務(wù)器服務(wù)器3長春工業(yè)大學(xué)軟件學(xué)院1.2續(xù)應(yīng)用應(yīng)用1應(yīng)用應(yīng)用2應(yīng)用應(yīng)用3服務(wù)器服務(wù)器1服務(wù)器服務(wù)器2服務(wù)器服務(wù)器3中間件中間件長春工業(yè)大學(xué)軟件學(xué)院應(yīng)用軟件中間件網(wǎng)絡(luò)軟件操作系統(tǒng)應(yīng)用軟件中間件網(wǎng)絡(luò)軟件操作系統(tǒng)可協(xié)同工作利用
11、中間件進(jìn)行協(xié)同工作的系統(tǒng)1.2續(xù)長春工業(yè)大學(xué)軟件學(xué)院中間件定義中間件定義中間件中間件(Middleware)(Middleware)是一種是一種軟件軟件,處于,處于系統(tǒng)軟件系統(tǒng)軟件(操作系統(tǒng)和網(wǎng)絡(luò)軟件)與(操作系統(tǒng)和網(wǎng)絡(luò)軟件)與應(yīng)用軟件應(yīng)用軟件之間,它之間,它能使處于應(yīng)用層中的各應(yīng)用成分之間實(shí)現(xiàn)跨網(wǎng)能使處于應(yīng)用層中的各應(yīng)用成分之間實(shí)現(xiàn)跨網(wǎng)絡(luò)的協(xié)同工作(也就是絡(luò)的協(xié)同工作(也就是互操作互操作),這時(shí)允許各),這時(shí)允許各應(yīng)用軟件之下所涉及的應(yīng)用軟件之下所涉及的“系統(tǒng)結(jié)構(gòu)、操作系統(tǒng)系統(tǒng)結(jié)構(gòu)、操作系統(tǒng)、通信協(xié)議、數(shù)據(jù)庫和其它應(yīng)用服務(wù)、通信協(xié)議、數(shù)據(jù)庫和其它應(yīng)用服務(wù)”各不相各不相同。同。1.2 續(xù)長春工
12、業(yè)大學(xué)軟件學(xué)院應(yīng)用軟件中間件網(wǎng)絡(luò)協(xié)議操作系統(tǒng)硬件平臺應(yīng)用軟件中間件網(wǎng)絡(luò)協(xié)議操作系統(tǒng)硬件平臺DBMS兩者內(nèi)含有進(jìn)兩者內(nèi)含有進(jìn)行協(xié)同工作的行協(xié)同工作的應(yīng)用成分應(yīng)用成分中間件定義1.2 續(xù)長春工業(yè)大學(xué)軟件學(xué)院中間件組成中間件組成1 1執(zhí)行環(huán)境(執(zhí)行環(huán)境(Execution EnvironmentExecution Environment)軟件)軟件 如果一個(gè)網(wǎng)絡(luò)的各個(gè)節(jié)點(diǎn)上安裝了如果一個(gè)網(wǎng)絡(luò)的各個(gè)節(jié)點(diǎn)上安裝了EEEE軟件軟件,各節(jié)點(diǎn)上的應(yīng)用,各節(jié)點(diǎn)上的應(yīng)用軟件之間就可以實(shí)現(xiàn)軟件之間就可以實(shí)現(xiàn)相互合作相互合作。EEEE軟件使各節(jié)點(diǎn)的軟件使各節(jié)點(diǎn)的下層設(shè)下層設(shè)備備對應(yīng)用軟件對應(yīng)用軟件透明化透明化了,了,
13、EEEE軟件是中間件中的軟件是中間件中的主體部分主體部分。2 2應(yīng)用開發(fā)應(yīng)用開發(fā)(Application Development)(Application Development)工具工具ADAD工具用來幫助工具用來幫助開發(fā)內(nèi)含開發(fā)內(nèi)含“透明動用對方透明動用對方”成分的應(yīng)用軟件成分的應(yīng)用軟件,或,或改造原有的無透明動用能力的應(yīng)用軟件改造原有的無透明動用能力的應(yīng)用軟件。ADAD工具是中工具是中間件中的間件中的必備部分必備部分。1.2 續(xù)長春工業(yè)大學(xué)軟件學(xué)院合作方合作方 B 下層設(shè)備透明設(shè)施下層設(shè)備透明設(shè)施 T2 平臺平臺 網(wǎng)絡(luò)網(wǎng)絡(luò) 網(wǎng)絡(luò)網(wǎng)絡(luò) 平臺平臺 平臺平臺 合作方合作方 C 合作方合作方 A
14、 合作對象透明設(shè)施合作對象透明設(shè)施 T1 中間件的層次結(jié)構(gòu)1.2續(xù)長春工業(yè)大學(xué)軟件學(xué)院中間件基本框架中間件基本框架第四層第四層應(yīng)用接口(應(yīng)用接口(API)層)層中間件服務(wù)層中間件服務(wù)層(通信,控制,計(jì)算,管理,輸出,信息等)應(yīng)用平臺層應(yīng)用平臺層(Unix、NetWare、NT、VAX、OPENVMS等)傳輸協(xié)議層傳輸協(xié)議層(TCP/IP、IPX/SPX、NetBIOS、OSI等)第三層第三層第二層第二層第一層第一層中間件的基本功能框架結(jié)構(gòu)1.2續(xù)長春工業(yè)大學(xué)軟件學(xué)院基于中間件的軟件系統(tǒng)基本模型基于中間件的軟件系統(tǒng)基本模型1.2續(xù)長春工業(yè)大學(xué)軟件學(xué)院中間件工作原理中間件工作原理中間件服務(wù)器1服務(wù)
15、器2服務(wù)器n客戶機(jī)1客戶機(jī)2客戶機(jī)n服務(wù)器端客戶端同/異構(gòu)環(huán)境1.2 續(xù)長春工業(yè)大學(xué)軟件學(xué)院中間件的基本分類中間件的基本分類事務(wù)處理中間件事務(wù)處理中間件(交易中間件,(交易中間件,TPMTPM)原子性原子性 A A 一致性一致性 C C隔離性隔離性 I I 耐久性耐久性 D D消息中間件消息中間件(MOMMOM)消息隊(duì)列消息隊(duì)列發(fā)布發(fā)布- -預(yù)定預(yù)定分布式中間件分布式中間件1.2續(xù)長春工業(yè)大學(xué)軟件學(xué)院中間件的發(fā)展情況中間件的發(fā)展情況1.2續(xù)長春工業(yè)大學(xué)軟件學(xué)院中間件的主要廠商中間件的主要廠商第一梯隊(duì)第一梯隊(duì)OracleOracle(BEABEA)、)、IBMIBM、東方通科技,占、東方通科技,
16、占70%70%以上份額;以上份額;第二梯隊(duì)第二梯隊(duì)SunSun、中軟、中創(chuàng)、微軟等;、中軟、中創(chuàng)、微軟等;第三梯隊(duì)第三梯隊(duì)國內(nèi)若干中小軟件企業(yè)和系統(tǒng)集成企業(yè)。國內(nèi)若干中小軟件企業(yè)和系統(tǒng)集成企業(yè)。1.2 續(xù)長春工業(yè)大學(xué)軟件學(xué)院中間件的作用中間件的作用它提供了它提供了通道通道的功能,可保證應(yīng)用的功能,可保證應(yīng)用系統(tǒng)數(shù)據(jù)系統(tǒng)數(shù)據(jù)的可靠傳輸;的可靠傳輸;它起著它起著橋梁橋梁的作用,達(dá)成的作用,達(dá)成異構(gòu)應(yīng)用資源異構(gòu)應(yīng)用資源之間的互聯(lián)互通;之間的互聯(lián)互通;它是分布式應(yīng)用的集成它是分布式應(yīng)用的集成開發(fā)框架開發(fā)框架,促成企業(yè)分布式應(yīng)用的,促成企業(yè)分布式應(yīng)用的有機(jī)集成有機(jī)集成;作為作為平臺平臺,它可有效實(shí)現(xiàn)分布
17、應(yīng)用的,它可有效實(shí)現(xiàn)分布應(yīng)用的分階段分階段順利部署;順利部署;它起著它起著過濾網(wǎng)過濾網(wǎng)的作用,可有力保護(hù)的作用,可有力保護(hù)關(guān)鍵信息關(guān)鍵信息的安全。的安全。1.2 續(xù)長春工業(yè)大學(xué)軟件學(xué)院中間件的優(yōu)越性:中間件的優(yōu)越性:1.1.企業(yè)應(yīng)用方面企業(yè)應(yīng)用方面縮短應(yīng)用開發(fā)周期縮短應(yīng)用開發(fā)周期減少項(xiàng)目開發(fā)風(fēng)險(xiǎn)減少項(xiàng)目開發(fā)風(fēng)險(xiǎn)應(yīng)用程序質(zhì)量可維護(hù)性應(yīng)用程序質(zhì)量可維護(hù)性增加產(chǎn)品吸引力增加產(chǎn)品吸引力2.2.應(yīng)用程序方面應(yīng)用程序方面透明地同其他應(yīng)用程序交互透明地同其他應(yīng)用程序交互與運(yùn)行平臺提供的網(wǎng)絡(luò)通信與運(yùn)行平臺提供的網(wǎng)絡(luò)通信服務(wù)無關(guān)服務(wù)無關(guān)具有良好的可靠性和可用性具有良好的可靠性和可用性具有良好的可擴(kuò)展性具有良好的
18、可擴(kuò)展性1.2 續(xù)長春工業(yè)大學(xué)軟件學(xué)院中間件發(fā)展面臨的問題中間件發(fā)展面臨的問題不同廠商的實(shí)現(xiàn)很難不同廠商的實(shí)現(xiàn)很難互操作互操作只提供了一部分只提供了一部分平臺的實(shí)現(xiàn)平臺的實(shí)現(xiàn)應(yīng)用開發(fā)者要面臨設(shè)計(jì)應(yīng)用開發(fā)者要面臨設(shè)計(jì)選擇選擇過分追求中間件功能的全面性過分追求中間件功能的全面性過分強(qiáng)調(diào)選擇國外產(chǎn)品過分強(qiáng)調(diào)選擇國外產(chǎn)品不能準(zhǔn)確認(rèn)識中間件的作用不能準(zhǔn)確認(rèn)識中間件的作用1.2續(xù)長春工業(yè)大學(xué)軟件學(xué)院中間件技術(shù)發(fā)展趨勢中間件技術(shù)發(fā)展趨勢 中間件的發(fā)展需要中間件的發(fā)展需要規(guī)范化規(guī)范化 應(yīng)用需求導(dǎo)致技術(shù)應(yīng)用需求導(dǎo)致技術(shù)格局多樣化格局多樣化 構(gòu)件化和松散耦合構(gòu)件化和松散耦合 底層底層的中間件持續(xù)走穩(wěn)的中間件持續(xù)走
19、穩(wěn) 高層高層的中間件成為市場新寵的中間件成為市場新寵 新技術(shù)與產(chǎn)品的推出速度放緩新技術(shù)與產(chǎn)品的推出速度放緩 實(shí)用化實(shí)用化是重要的發(fā)展趨勢是重要的發(fā)展趨勢1.2 續(xù)長春工業(yè)大學(xué)軟件學(xué)院RPCRPC背景背景在傳統(tǒng)的編程概念中,在傳統(tǒng)的編程概念中,過程過程是只能局限在是只能局限在本地運(yùn)行本地運(yùn)行的一段代的一段代碼,碼,主程序和過程之間主程序和過程之間的運(yùn)行關(guān)系是的運(yùn)行關(guān)系是本地調(diào)用本地調(diào)用關(guān)系關(guān)系本本地過程調(diào)用地過程調(diào)用LPCLPC。LPCLPC模式無法充分利用網(wǎng)絡(luò)上其他主機(jī)的資源,也無法提高代模式無法充分利用網(wǎng)絡(luò)上其他主機(jī)的資源,也無法提高代碼在實(shí)體間的碼在實(shí)體間的共享共享程度,使得主機(jī)資源大量浪
20、費(fèi)。程度,使得主機(jī)資源大量浪費(fèi)。RPCRPC是對是對LPCLPC的擴(kuò)展。通過這種調(diào)用機(jī)制,程序員編寫客戶方的擴(kuò)展。通過這種調(diào)用機(jī)制,程序員編寫客戶方應(yīng)用時(shí),可根據(jù)需要應(yīng)用時(shí),可根據(jù)需要透明地調(diào)用透明地調(diào)用位于遠(yuǎn)端服務(wù)器上的過程位于遠(yuǎn)端服務(wù)器上的過程。1.3遠(yuǎn)程過程調(diào)用及其增強(qiáng)長春工業(yè)大學(xué)軟件學(xué)院main()main(). . . .調(diào)用調(diào)用A A. . . .退出退出A()A(). . . .調(diào)用調(diào)用B B. . . .退出退出B()B(). . . . . . . .退出退出主程序主程序過程過程A代碼代碼過程過程B代碼代碼機(jī)器機(jī)器1機(jī)器機(jī)器2機(jī)器機(jī)器3RPCRPC調(diào)用模型調(diào)用模型主程序主程序
21、子程序子程序子程序子程序1.3 續(xù)長春工業(yè)大學(xué)軟件學(xué)院遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用RPC概念概念RPC是從一臺是從一臺機(jī)器機(jī)器或一個(gè)或一個(gè)進(jìn)程進(jìn)程調(diào)用另一臺機(jī)器或另一個(gè)進(jìn)調(diào)用另一臺機(jī)器或另一個(gè)進(jìn)程的程的服務(wù)或方法。服務(wù)或方法。遠(yuǎn)程過程調(diào)用是創(chuàng)建遠(yuǎn)程過程調(diào)用是創(chuàng)建分布式應(yīng)用分布式應(yīng)用的一種方法,來源于的一種方法,來源于Unix操作系統(tǒng)操作系統(tǒng)的處理思想,被普遍認(rèn)為是創(chuàng)建分布式應(yīng)用的有的處理思想,被普遍認(rèn)為是創(chuàng)建分布式應(yīng)用的有效方法。效方法。從從程序員的角度程序員的角度,RPC采用常規(guī)的編程模式:采用常規(guī)的編程模式:程序代碼調(diào)程序代碼調(diào)用遠(yuǎn)端過程并將結(jié)果返回。用遠(yuǎn)端過程并將結(jié)果返回。當(dāng)使用當(dāng)使用RPC
22、時(shí),只需編寫很時(shí),只需編寫很少的網(wǎng)絡(luò)程序代碼,絕大部分代碼由少的網(wǎng)絡(luò)程序代碼,絕大部分代碼由IDL(Interface Define Language)生成。生成。1.3 續(xù)長春工業(yè)大學(xué)軟件學(xué)院IDL編譯器結(jié)構(gòu)編譯器結(jié)構(gòu)IDL規(guī)范規(guī)范IDL編譯器編譯器頭頭文件文件客戶客戶存根存根頭頭文件文件對象對象實(shí)現(xiàn)實(shí)現(xiàn)框架框架圖2-4 IDL編譯器結(jié)構(gòu)1.3 續(xù)長春工業(yè)大學(xué)軟件學(xué)院遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用中間件工作機(jī)理中間件工作機(jī)理用中間件中的用中間件中的IDL對對調(diào)用順序調(diào)用順序加以加以描述描述;利用利用IDL編譯器編譯器對這種定義和描述進(jìn)行編譯,從而生成支對這種定義和描述進(jìn)行編譯,從而生成支持客戶機(jī)和
23、服務(wù)器進(jìn)行持客戶機(jī)和服務(wù)器進(jìn)行通信的管道通信的管道;在在服務(wù)器端服務(wù)器端,被調(diào)用的遠(yuǎn)端過程需,被調(diào)用的遠(yuǎn)端過程需單獨(dú)編寫單獨(dú)編寫,并被置入,并被置入服服務(wù)器端框架務(wù)器端框架,同時(shí)要在遠(yuǎn)程過程調(diào)用中間件中進(jìn)行,同時(shí)要在遠(yuǎn)程過程調(diào)用中間件中進(jìn)行注冊,注冊,以備調(diào)用。以備調(diào)用。啟動本地啟動本地客戶端存根客戶端存根存根存根捆綁捆綁遠(yuǎn)端過程名和參數(shù)遠(yuǎn)端過程名和參數(shù)利用利用網(wǎng)絡(luò)傳輸網(wǎng)絡(luò)傳輸?shù)椒?wù)器端框架,從而實(shí)現(xiàn)到服務(wù)器端框架,從而實(shí)現(xiàn)數(shù)據(jù)格式的數(shù)據(jù)格式的轉(zhuǎn)換轉(zhuǎn)換和和參數(shù)的傳遞參數(shù)的傳遞采用采用調(diào)用調(diào)用/返回返回模式具體地完成遠(yuǎn)端過程調(diào)用。模式具體地完成遠(yuǎn)端過程調(diào)用。1.3 續(xù)長春工業(yè)大學(xué)軟件學(xué)院RPC工
24、作流程工作流程客戶運(yùn)行客戶繼續(xù)執(zhí)行服務(wù)調(diào)用過程調(diào)用服務(wù)過程執(zhí)行過程返回請求返回RPC調(diào)用RPC返回Network圖2-5 RPC工作流程RPCRPC一般采用一般采用調(diào)用調(diào)用/ /返回返回模式,多用于應(yīng)用程序之間的通信,采用模式,多用于應(yīng)用程序之間的通信,采用同步方式同步方式。RPCRPC程序之間的同步通信一般采用程序之間的同步通信一般采用Request-Wait-ReplyRequest-Wait-Reply方式,因此方式,因此RPCRPC更適應(yīng)更適應(yīng)小型小型簡單簡單而不需要采用異步通信方式的應(yīng)用。而不需要采用異步通信方式的應(yīng)用。1.3 續(xù)長春工業(yè)大學(xué)軟件學(xué)院ClientSend(remote
25、 call pi()(發(fā)送發(fā)送“請求服務(wù)請求服務(wù)”信息)信息)Receive(ans)接收回復(fù)信息接收回復(fù)信息server接收調(diào)用信息;接收調(diào)用信息;抽取參數(shù)并分析;抽取參數(shù)并分析;調(diào)用所指的過程調(diào)用所指的過程;執(zhí)行遠(yuǎn)程過程執(zhí)行遠(yuǎn)程過程返回執(zhí)行結(jié)果返回執(zhí)行結(jié)果Send(ans)發(fā)送回復(fù)信息發(fā)送回復(fù)信息等等待待回回復(fù)復(fù)請求服務(wù)請求服務(wù)等待等待調(diào)用調(diào)用繼續(xù)繼續(xù)返回調(diào)用結(jié)果返回調(diào)用結(jié)果RPCRPC的通信模型的通信模型1.3 續(xù)長春工業(yè)大學(xué)軟件學(xué)院3 call work returnServer ProcessOP2 Server-stub OP3RPC Routinereceive transmit
26、45678Local return Local callClient ProcessOP4 Client-stub OP1waitRPC Routinereceive transmit12910RPCRPC執(zhí)行過程執(zhí)行過程1.3 續(xù)長春工業(yè)大學(xué)軟件學(xué)院通信協(xié)議通信協(xié)議支持兩種傳輸協(xié)議:支持兩種傳輸協(xié)議:TCPTCP、UDPUDPTCPTCP:連接、可靠、連接、可靠、低效低效。保證要么把調(diào)用傳遞到遠(yuǎn)程。保證要么把調(diào)用傳遞到遠(yuǎn)程過程且過程且接受應(yīng)答接受應(yīng)答,要么報(bào)告通信,要么報(bào)告通信無法進(jìn)行無法進(jìn)行。UDPUDP:無連接、無連接、不可靠不可靠、高效。使用、高效。使用UDPUDP的遠(yuǎn)程過程調(diào)的遠(yuǎn)程過
27、程調(diào)用也許會用也許會丟失或重復(fù)丟失或重復(fù)。1.3 續(xù)長春工業(yè)大學(xué)軟件學(xué)院RPCRPC的語義的語義LastLast-of-many:-of-many:被調(diào)用的過程被調(diào)用的過程可能執(zhí)行若干次可能執(zhí)行若干次,但規(guī)定其,但規(guī)定其最后一次最后一次執(zhí)行的結(jié)果作為執(zhí)行的結(jié)果作為返回結(jié)果返回結(jié)果。At-mostAt-most-once:-once:若調(diào)用者收到了回復(fù)消息,則稱被調(diào)用的若調(diào)用者收到了回復(fù)消息,則稱被調(diào)用的過程正確地完成了它的一次(過程正確地完成了它的一次(僅僅一次僅僅一次)執(zhí)行。)執(zhí)行。At-leastAt-least-once:-once:遠(yuǎn)程調(diào)用過程至少執(zhí)行一次,回復(fù)消息可遠(yuǎn)程調(diào)用過程至少執(zhí)
28、行一次,回復(fù)消息可能能返回一次或多次返回一次或多次。ExactlyExactly-once:-once:若服務(wù)器正常,則遠(yuǎn)程過程恰好執(zhí)行一次若服務(wù)器正常,則遠(yuǎn)程過程恰好執(zhí)行一次,并返回一個(gè)調(diào)用結(jié)果。,并返回一個(gè)調(diào)用結(jié)果。1.3 續(xù)長春工業(yè)大學(xué)軟件學(xué)院遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用的特點(diǎn)的特點(diǎn)客戶客戶/服務(wù)器模式服務(wù)器模式客戶端的應(yīng)用調(diào)用一個(gè)位于遠(yuǎn)端服務(wù)器平臺的進(jìn)程或服務(wù),客戶端的應(yīng)用調(diào)用一個(gè)位于遠(yuǎn)端服務(wù)器平臺的進(jìn)程或服務(wù),RPC實(shí)際上是通過實(shí)際上是通過C/S方式方式實(shí)現(xiàn)的。實(shí)現(xiàn)的。數(shù)據(jù)封裝性數(shù)據(jù)封裝性遠(yuǎn)端過程調(diào)用負(fù)責(zé)遠(yuǎn)端過程調(diào)用負(fù)責(zé)捆綁參數(shù)捆綁參數(shù),實(shí)現(xiàn)不同平臺之間參數(shù)的傳遞,發(fā),實(shí)現(xiàn)不同平臺之間參
29、數(shù)的傳遞,發(fā)送參數(shù)到遠(yuǎn)端過程。送參數(shù)到遠(yuǎn)端過程。同步性同步性當(dāng)客戶機(jī)發(fā)出請求時(shí),服務(wù)器進(jìn)程處于當(dāng)客戶機(jī)發(fā)出請求時(shí),服務(wù)器進(jìn)程處于運(yùn)行狀態(tài)運(yùn)行狀態(tài)。復(fù)雜性復(fù)雜性遠(yuǎn)程調(diào)用的實(shí)現(xiàn)環(huán)境可能要用遠(yuǎn)程調(diào)用的實(shí)現(xiàn)環(huán)境可能要用系統(tǒng)級的任務(wù)系統(tǒng)級的任務(wù)來創(chuàng)建,但一旦完成來創(chuàng)建,但一旦完成,對程序員就是透明的了。,對程序員就是透明的了。1.3 續(xù)長春工業(yè)大學(xué)軟件學(xué)院遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用的特點(diǎn)的特點(diǎn)缺點(diǎn):需要進(jìn)行缺點(diǎn):需要進(jìn)行系統(tǒng)級的配置系統(tǒng)級的配置; RPC 并并不支持對象不支持對象。 CORBA的IIOP MTS的DCOM Java的 sockets應(yīng)用級協(xié)議的編碼交換 EJB?RMI (Java Remo
30、te Method Protocol)優(yōu)點(diǎn):方便地實(shí)現(xiàn)優(yōu)點(diǎn):方便地實(shí)現(xiàn)不同平臺不同平臺之間的之間的數(shù)據(jù)轉(zhuǎn)換數(shù)據(jù)轉(zhuǎn)換。 XDR(eXternal Data Representation) 1.3 續(xù)長春工業(yè)大學(xué)軟件學(xué)院RMIRMI環(huán)境環(huán)境RMIRMI(遠(yuǎn)程(遠(yuǎn)程方法方法激活):在分布式程序中,其遠(yuǎn)程激活):在分布式程序中,其遠(yuǎn)程對象對象的方法的方法能夠被運(yùn)行在不同主機(jī)上的其他能夠被運(yùn)行在不同主機(jī)上的其他JavaJava虛擬機(jī)的虛擬機(jī)的方法方法調(diào)用。調(diào)用。相對于相對于過程調(diào)用級過程調(diào)用級的的RPCRPC,RMIRMI可以實(shí)現(xiàn)可以實(shí)現(xiàn)編程級對象編程級對象之間之間的方法調(diào)用。的方法調(diào)用。本地與遠(yuǎn)程方法
31、調(diào)用本地與遠(yuǎn)程方法調(diào)用對象應(yīng)用程序本地調(diào)用機(jī)器A對象對象對象機(jī)器B網(wǎng)絡(luò)遠(yuǎn)程調(diào)用1.3 續(xù)長春工業(yè)大學(xué)軟件學(xué)院RMIRMI體系結(jié)構(gòu)體系結(jié)構(gòu)遠(yuǎn)程引用層遠(yuǎn)程引用層傳輸層傳輸層Java Virtual MachineClientStub遠(yuǎn)程引用層遠(yuǎn)程引用層傳輸層傳輸層Java Virtual MachineRemote ObjectSkeletonTCP1.3 續(xù)長春工業(yè)大學(xué)軟件學(xué)院RMIRMI系統(tǒng)的目標(biāo)系統(tǒng)的目標(biāo)支持對存在于支持對存在于不同不同JavaJava虛擬機(jī)虛擬機(jī)上對象的無縫的遠(yuǎn)程調(diào)上對象的無縫的遠(yuǎn)程調(diào)用。用。支持服務(wù)器對客戶的支持服務(wù)器對客戶的回調(diào)。回調(diào)。把把分布式對象模型分布式對象模型自然地集成到自然地集成到JavaJava語言里。語言里。把分布式對象模型和本地把分布式對象模型和本地JavaJava對象模型間的對象模型間的不同表面不同表面化?;J咕帉懣煽康姆植际綉?yīng)用程序使編寫可靠的分布式應(yīng)用程序簡單化簡單化。保留保留JavaJava運(yùn)行時(shí)環(huán)境提供的運(yùn)行時(shí)環(huán)境提供的安全性安全性。1.3 續(xù)長春工業(yè)大學(xué)軟件學(xué)院RMIRMI的體系結(jié)構(gòu)的體系結(jié)構(gòu)RMIRMI體系結(jié)構(gòu)有三層組成體系結(jié)構(gòu)有三層組成樁(也成為存根)/框架層(stub/skeleton)遠(yuǎn)程引用層(Remote R
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版東莞市供應(yīng)鏈管理合同
- 2024年稻谷期貨交易采購合同模板大全3篇
- 2024年股權(quán)激勵(lì)計(jì)劃協(xié)議書(公司內(nèi)部)
- 2024年投資借款聯(lián)絡(luò)協(xié)議書
- 2024年美食節(jié)期間場地租賃及管理合同
- 2024年汽車主題活動場地租賃合同版
- 2024年石料調(diào)配與物流合同3篇
- 2024年柴油批發(fā)供應(yīng)合同
- 2024年濕地公園施工工程協(xié)議模板
- 2024年草種研發(fā)與推廣應(yīng)用合作協(xié)議
- 醫(yī)療質(zhì)量管理工具課件
- 2023年上海市閔行區(qū)中心醫(yī)院住院醫(yī)師規(guī)范化培訓(xùn)招生(口腔科)考試參考題庫+答案
- 單肺通氣中的麻醉管理
- 建筑施工安全檢查標(biāo)準(zhǔn)jgj59-2023
- 2023-2024學(xué)年江蘇省高郵市小學(xué)數(shù)學(xué)六年級上冊期末通關(guān)考試題
- GB/T 7631.5-1989潤滑劑和有關(guān)產(chǎn)品(L類)的分類第5部分:M組(金屬加工)
- GB/T 40428-2021電動汽車傳導(dǎo)充電電磁兼容性要求和試驗(yàn)方法
- 中國人民大學(xué)組織行為管理學(xué)
- 七年級下冊道德與法治復(fù)習(xí)資料
- 奧齒泰-工具盒使用精講講解學(xué)習(xí)課件
- DB32T 4353-2022 房屋建筑和市政基礎(chǔ)設(shè)施工程檔案資料管理規(guī)程
評論
0/150
提交評論