中間件基本概念專題培訓(xùn)課件_第1頁
中間件基本概念專題培訓(xùn)課件_第2頁
中間件基本概念專題培訓(xùn)課件_第3頁
中間件基本概念專題培訓(xùn)課件_第4頁
中間件基本概念專題培訓(xùn)課件_第5頁
已閱讀5頁,還剩143頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

中間件基本概念中間件基本概念12教材與參考書目教材:

《中間件技術(shù)原理與應(yīng)用》

張云勇清華大學(xué)出版社參考書:

《COM原理與應(yīng)用》

潘愛民清華大學(xué)出版社

《CORBA原理及應(yīng)用》

朱其亮北京郵電大學(xué)出版社

《精通EJB》[美]EdRoman電子工業(yè)出版社2教材與參考書目教材:23第1章中間件產(chǎn)生背景及分布式計算環(huán)境主要內(nèi)容開放系統(tǒng)互操作性中間件3第1章中間件產(chǎn)生背景及分布式計算環(huán)境主要內(nèi)容341.1開放系統(tǒng)與互操作性概述計算模式的發(fā)展過程基于主機(jī)的系統(tǒng)(分時共享、資源共享)兩層Client/Server系統(tǒng)三層(n層)體系架構(gòu)表示層——用戶層業(yè)務(wù)邏輯層——應(yīng)用層數(shù)據(jù)層——數(shù)據(jù)庫服務(wù)器基于Web的三層(N層)體系結(jié)構(gòu)41.1開放系統(tǒng)與互操作性概述計算模式的發(fā)展過程451.1續(xù)開放系統(tǒng)基本組成硬件

包括PC,工作站,大中型機(jī),各式各樣的嵌入式設(shè)備,移動設(shè)備;軟件

各類操作系統(tǒng)、應(yīng)用軟件;網(wǎng)絡(luò)

各類網(wǎng)絡(luò)結(jié)構(gòu)、網(wǎng)絡(luò)協(xié)議。開放系統(tǒng)面臨的問題

⑴遠(yuǎn)程性⑵并發(fā)行⑶無全局狀態(tài)⑷部分失?、僧惒叫寓十愘|(zhì)性⑺自主性⑻聯(lián)合型⑼伸縮性⑽發(fā)展性⑾移動性51.1續(xù)開放系統(tǒng)基本組成561.1續(xù)開放系統(tǒng)特點⑴開放的:提供可移植性和協(xié)同工作;⑵集成的:有助于對付異質(zhì)性;⑶靈活的:有助于對付移動性;⑷模塊化的:靈活性的基礎(chǔ);⑸可聯(lián)合的⑹可管理的⑺安全的⑻透明的:支撐軟件和硬件的異質(zhì)性;⑼滿足服務(wù)質(zhì)量需求61.1續(xù)開放系統(tǒng)特點671.1續(xù)開放系統(tǒng)必具特性可移植性(Portability)可互操作性(Interoperability)可伸縮性(Scalability)易獲得性(Availability)開放系統(tǒng)構(gòu)造用輪廓勾劃;輪廓由AUSPICE七個成分組成;對輪廓的各成分標(biāo)準(zhǔn)化,即成開放系統(tǒng)。71.1續(xù)開放系統(tǒng)必具特性781.1續(xù)開放系統(tǒng)開放程度表81.1續(xù)開放系統(tǒng)開放程度表891.1續(xù)互操作性本質(zhì):從異質(zhì)環(huán)境(異種體系結(jié)構(gòu)、異種操作系統(tǒng)、異種網(wǎng)絡(luò)等)中獲得資源的透明動用能力。⑴面向計算資源的互操作性⑵面向信息資源的互操作性(如數(shù)據(jù)庫)定義:在一個由異質(zhì)實體構(gòu)成的網(wǎng)絡(luò)環(huán)境中,當(dāng)應(yīng)用在網(wǎng)絡(luò)的結(jié)點上運(yùn)行時,它可以透明地動用網(wǎng)中其他結(jié)點上的資源,并借助這些資源與本結(jié)點上的資源共同來完成某個或某組任務(wù)。91.1續(xù)互操作性9101.1續(xù)互操作性定義:在一個由異質(zhì)實體構(gòu)成的網(wǎng)絡(luò)環(huán)境中,當(dāng)應(yīng)用在網(wǎng)絡(luò)的結(jié)點上運(yùn)行時,它可以透明地動用網(wǎng)中其他結(jié)點上的資源,并借助這些資源與本結(jié)點上的資源共同來完成某個或某組任務(wù)。本質(zhì):從異質(zhì)環(huán)境(異種體系結(jié)構(gòu)、異種操作系統(tǒng)、異種網(wǎng)絡(luò)等)中獲得資源的透明動用能力。⑴面向計算資源的互操作性⑵面向信息資源的互操作性(如數(shù)據(jù)庫)101.1續(xù)互操作性10111.2中間件概述現(xiàn)代應(yīng)用系統(tǒng)的基本特征分布

任務(wù)已不只是在單機(jī)上運(yùn)行,而是由網(wǎng)絡(luò)中多臺計算機(jī)上的相關(guān)應(yīng)用共同協(xié)作完成,需考慮網(wǎng)絡(luò)傳輸、數(shù)據(jù)安全、數(shù)據(jù)一致性、同步等諸多問題;異構(gòu)

計算機(jī)硬件、操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議、數(shù)據(jù)庫系統(tǒng)以及開發(fā)工具種類繁多,需考慮數(shù)據(jù)表示、調(diào)用接口、處理方式等諸多問題;動態(tài)協(xié)作

參與協(xié)作的應(yīng)用允許位置透明性、遷移透明性、負(fù)載平衡性等需求。111.2中間件概述現(xiàn)代應(yīng)用系統(tǒng)的基本特征11121.2續(xù)應(yīng)用1應(yīng)用2應(yīng)用3服務(wù)器1服務(wù)器2服務(wù)器3121.2續(xù)應(yīng)用1應(yīng)用2應(yīng)用3服務(wù)器1服務(wù)器2服務(wù)器312131.2續(xù)應(yīng)用1應(yīng)用2應(yīng)用3服務(wù)器1服務(wù)器2服務(wù)器3中間件131.2續(xù)應(yīng)用1應(yīng)用2應(yīng)用3服務(wù)器1服務(wù)器2服務(wù)器3中間件13141.2續(xù)應(yīng)用軟件中間件網(wǎng)絡(luò)軟件操作系統(tǒng)應(yīng)用軟件中間件網(wǎng)絡(luò)軟件操作系統(tǒng)可協(xié)同工作利用中間件進(jìn)行協(xié)同工作的系統(tǒng)141.2續(xù)應(yīng)用軟件中間件網(wǎng)絡(luò)軟件操作系統(tǒng)應(yīng)用軟件中間件網(wǎng)絡(luò)14151.2續(xù)*中間件定義中間件(Middleware)是一種軟件,處于系統(tǒng)軟件(操作系統(tǒng)和網(wǎng)絡(luò)軟件)與應(yīng)用軟件之間,它能使處于應(yīng)用層中的各應(yīng)用成分之間實現(xiàn)跨網(wǎng)絡(luò)的協(xié)同工作(也就是互操作),這時允許各應(yīng)用軟件之下所涉及的“系統(tǒng)結(jié)構(gòu)、操作系統(tǒng)、通信協(xié)議、數(shù)據(jù)庫和其它應(yīng)用服務(wù)”各不相同。151.2續(xù)*中間件定義1516應(yīng)用軟件中間件網(wǎng)絡(luò)協(xié)議操作系統(tǒng)硬件平臺應(yīng)用軟件中間件網(wǎng)絡(luò)協(xié)議操作系統(tǒng)硬件平臺DBMS兩者內(nèi)含有進(jìn)行協(xié)同工作的應(yīng)用成分中間件定義1.2續(xù)16應(yīng)用軟件中間件網(wǎng)絡(luò)協(xié)議操作系統(tǒng)硬件平臺應(yīng)用軟件中間件網(wǎng)絡(luò)16171.2續(xù)*中間件組成1.執(zhí)行環(huán)境(ExecutionEnvironment)軟件

如果一個網(wǎng)絡(luò)的各個節(jié)點上安裝了EE軟件,各節(jié)點上的應(yīng)用軟件之間就可以實現(xiàn)相互合作。EE軟件使各節(jié)點的下層設(shè)備對應(yīng)用軟件透明化了,EE軟件是中間件中的主體部分。2.應(yīng)用開發(fā)(ApplicationDevelopment)工具AD工具用來幫助開發(fā)內(nèi)含“透明動用對方”成分的應(yīng)用軟件,或改造原有的無透明動用能力的應(yīng)用軟件。AD工具是中間件中的必備部分。171.2續(xù)*中間件組成17181.2續(xù)中間件的層次結(jié)構(gòu)181.2續(xù)中間件的層次結(jié)構(gòu)18191.2續(xù)中間件基本框架第四層應(yīng)用接口(API)層中間件服務(wù)層(通信,控制,計算,管理,輸出,信息等)應(yīng)用平臺層(Unix、NetWare、NT、VAX、OPENVMS等)傳輸協(xié)議層(TCP/IP、IPX/SPX、NetBIOS、OSI等)第三層第二層第一層中間件的基本功能框架結(jié)構(gòu)191.2續(xù)中間件基本框架第四層應(yīng)用接口(API)層中間件服19201.2續(xù)基于中間件的軟件系統(tǒng)基本模型201.2續(xù)基于中間件的軟件系統(tǒng)基本模型20211.2續(xù)中間件工作原理中間件服務(wù)器1服務(wù)器2服務(wù)器n客戶機(jī)1客戶機(jī)2客戶機(jī)n…………服務(wù)器端客戶端同/異構(gòu)環(huán)境211.2續(xù)中間件工作原理中間件服務(wù)器1服務(wù)器2服務(wù)器n客戶21221.2續(xù)*中間件的基本分類⑴數(shù)據(jù)訪問中間件(DAM)⑵遠(yuǎn)程過程調(diào)用中間件(RPC)⑶消息中間件(MOM)⑷對象請求代理中間件(ORB)⑸事務(wù)處理中間件(交易中間件,TPM)221.2續(xù)*中間件的基本分類2223中間件的發(fā)展情況1.2續(xù)23中間件的發(fā)展情況1.2續(xù)2324中間件的主要廠商第一梯隊Oracle(BEA)、IBM、東方通科技,占70%以上份額;第二梯隊Sun、中軟、中創(chuàng)、微軟等;第三梯隊國內(nèi)若干中小軟件企業(yè)和系統(tǒng)集成企業(yè)。1.2續(xù)24中間件的主要廠商1.2續(xù)24251.2續(xù)*中間件的作用⑴它提供了通道的功能,可保證應(yīng)用系統(tǒng)數(shù)據(jù)的可靠傳輸;⑵它起著橋梁的作用,達(dá)成異構(gòu)應(yīng)用資源之間的互聯(lián)互通;⑶它是分布式應(yīng)用的集成開發(fā)框架,促成企業(yè)分布式應(yīng)用的有機(jī)集成;⑷作為平臺,它可有效實現(xiàn)分布應(yīng)用的分階段順利部署;⑸它起著過濾網(wǎng)的作用,可有力保護(hù)關(guān)鍵信息的安全。251.2續(xù)*中間件的作用2526*中間件的優(yōu)越性:1.企業(yè)應(yīng)用方面縮短應(yīng)用開發(fā)周期減少項目開發(fā)風(fēng)險應(yīng)用程序質(zhì)量可維護(hù)性增加產(chǎn)品吸引力2.應(yīng)用程序方面透明地同其他應(yīng)用程序交互與運(yùn)行平臺提供的網(wǎng)絡(luò)通信服務(wù)無關(guān)具有良好的可靠性和可用性具有良好的可擴(kuò)展性1.2續(xù)26*中間件的優(yōu)越性:1.2續(xù)2627中間件發(fā)展面臨的問題⑴不同廠商的實現(xiàn)很難互操作⑵只提供了一部分平臺的實現(xiàn)⑶應(yīng)用開發(fā)者要面臨設(shè)計選擇①過分追求中間件功能的全面性②過分強(qiáng)調(diào)選擇國外產(chǎn)品③不能準(zhǔn)確認(rèn)識中間件的作用1.2續(xù)27中間件發(fā)展面臨的問題1.2續(xù)2728*中間件技術(shù)發(fā)展趨勢⑴中間件的發(fā)展需要規(guī)范化⑵應(yīng)用需求導(dǎo)致技術(shù)格局多樣化⑶構(gòu)件化和松散耦合⑷底層的中間件持續(xù)走穩(wěn)⑸高層的中間件成為市場新寵⑹新技術(shù)與產(chǎn)品的推出速度放緩⑺實用化是重要的發(fā)展趨勢1.2續(xù)28*中間件技術(shù)發(fā)展趨勢1.2續(xù)2829第2章五大類中間件的工作機(jī)理主要內(nèi)容2.1遠(yuǎn)程過程調(diào)用中間件(RPCM)2.2面向?qū)ο笾虚g件(OOM)2.3消息中間件(MOM)2.4數(shù)據(jù)庫訪問中間件(DAM)2.5交易中間件(DTPM)29第2章五大類中間件的工作機(jī)理主要內(nèi)容29302.1遠(yuǎn)程過程調(diào)用中間件RPC背景在傳統(tǒng)的編程概念中,過程是只能局限在本地運(yùn)行的一段代碼,主程序和過程之間的運(yùn)行關(guān)系是本地調(diào)用關(guān)系——本地過程調(diào)用LPC。LPC模式無法充分利用網(wǎng)絡(luò)上其他主機(jī)的資源,也無法提高代碼在實體間的共享程度,使得主機(jī)資源大量浪費。RPC是對LPC的擴(kuò)展。通過這種調(diào)用機(jī)制,程序員編寫客戶方應(yīng)用時,可根據(jù)需要透明地調(diào)用位于遠(yuǎn)端服務(wù)器上的過程。302.1遠(yuǎn)程過程調(diào)用中間件RPC背景3031main(…)...調(diào)用A...退出A(…)...調(diào)用B...退出B(…).......退出主程序過程A代碼過程B代碼機(jī)器1機(jī)器2機(jī)器3RPC調(diào)用模型2.1續(xù)主程序子程序子程序31main(…)A(…)B(…)主程序過程A代碼過程B代碼3132遠(yuǎn)程過程調(diào)用RPC概念RPC是從一臺機(jī)器或一個進(jìn)程調(diào)用另一臺機(jī)器或另一個進(jìn)程的服務(wù)或方法。遠(yuǎn)程過程調(diào)用是創(chuàng)建分布式應(yīng)用的一種方法,來源于Unix操作系統(tǒng)的處理思想,被普遍認(rèn)為是創(chuàng)建分布式應(yīng)用的有效方法。從程序員的角度,RPC采用常規(guī)的編程模式:程序代碼調(diào)用遠(yuǎn)端過程并將結(jié)果返回。當(dāng)使用RPC時,只需編寫很少的網(wǎng)絡(luò)程序代碼,絕大部分代碼由IDL(InterfaceDefineLanguage)生成。2.1續(xù)32遠(yuǎn)程過程調(diào)用RPC概念2.1續(xù)3233IDL編譯器結(jié)構(gòu)2.1續(xù)IDL規(guī)范IDL編譯器頭文件客戶存根頭文件對象實現(xiàn)框架圖2-4IDL編譯器結(jié)構(gòu)33IDL編譯器結(jié)構(gòu)2.1續(xù)IDL規(guī)范IDL編譯器頭文件客3334遠(yuǎn)程過程調(diào)用中間件工作機(jī)理①用中間件中的IDL對調(diào)用順序加以描述;②利用IDL編譯器對這種定義和描述進(jìn)行編譯,從而生成支持客戶機(jī)和服務(wù)器進(jìn)行通信的管道;③在服務(wù)器端,被調(diào)用的遠(yuǎn)端過程需單獨編寫,并被置入服務(wù)器端框架,同時要在遠(yuǎn)程過程調(diào)用中間件中進(jìn)行注冊,以備調(diào)用。④啟動本地客戶端存根——〉存根捆綁遠(yuǎn)端過程名和參數(shù)——〉利用網(wǎng)絡(luò)傳輸?shù)椒?wù)器端框架,從而實現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)換和參數(shù)的傳遞⑤采用調(diào)用/返回模式具體地完成遠(yuǎn)端過程調(diào)用。2.1續(xù)34遠(yuǎn)程過程調(diào)用中間件工作機(jī)理2.1續(xù)3435RPC工作流程2.1續(xù)客戶運(yùn)行客戶繼續(xù)執(zhí)行服務(wù)調(diào)用過程調(diào)用服務(wù)過程執(zhí)行過程返回請求返回RPC調(diào)用RPC返回Network圖2-5RPC工作流程RPC一般采用調(diào)用/返回模式,多用于應(yīng)用程序之間的通信,采用同步方式。RPC程序之間的同步通信一般采用Request-Wait-Reply方式,因此RPC更適應(yīng)小型簡單而不需要采用異步通信方式的應(yīng)用。35RPC工作流程2.1續(xù)客戶運(yùn)行客戶繼續(xù)執(zhí)行服務(wù)調(diào)用過程3536ClientSend(remotecallpi(…))(發(fā)送“請求服務(wù)”信息)Receive(ans)接收回復(fù)信息server接收調(diào)用信息;抽取參數(shù)并分析;調(diào)用所指的過程;執(zhí)行遠(yuǎn)程過程返回執(zhí)行結(jié)果Send(ans)發(fā)送回復(fù)信息等待回復(fù)請求服務(wù)等待調(diào)用繼續(xù)返回調(diào)用結(jié)果RPC的通信模型2.1續(xù)36ClientSend(remotecallpi(…)36373

callworkreturnServerProcessOP2Server-stub

OP3RPCRoutinereceivetransmit45678LocalreturnLocalcallClientProcessOP4Client-stub

OP1waitRPCRoutinereceivetransmit12910RPC執(zhí)行過程2.1續(xù)373callworkre3738通信協(xié)議支持兩種傳輸協(xié)議:TCP、UDPTCP:連接、可靠、低效。保證要么把調(diào)用傳遞到遠(yuǎn)程過程且接受應(yīng)答,要么報告通信無法進(jìn)行。UDP:無連接、不可靠、高效。使用UDP的遠(yuǎn)程過程調(diào)用也許會丟失或重復(fù)。

2.1續(xù)38通信協(xié)議2.1續(xù)3839RPC的語義Last-of-many:被調(diào)用的過程可能執(zhí)行若干次,但規(guī)定其最后一次執(zhí)行的結(jié)果作為返回結(jié)果。At-most-once:若調(diào)用者收到了回復(fù)消息,則稱被調(diào)用的過程正確地完成了它的一次(僅僅一次)執(zhí)行。At-least-once:遠(yuǎn)程調(diào)用過程至少執(zhí)行一次,回復(fù)消息可能返回一次或多次。Exactly-once:若服務(wù)器正常,則遠(yuǎn)程過程恰好執(zhí)行一次,并返回一個調(diào)用結(jié)果。2.1續(xù)39RPC的語義2.1續(xù)3940遠(yuǎn)程過程調(diào)用的特點①客戶/服務(wù)器模式客戶端的應(yīng)用調(diào)用一個位于遠(yuǎn)端服務(wù)器平臺的進(jìn)程或服務(wù),RPC實際上是通過C/S方式實現(xiàn)的。②數(shù)據(jù)封裝性遠(yuǎn)端過程調(diào)用負(fù)責(zé)捆綁參數(shù),實現(xiàn)不同平臺之間參數(shù)的傳遞,發(fā)送參數(shù)到遠(yuǎn)端過程。③同步性當(dāng)客戶機(jī)發(fā)出請求時,服務(wù)器進(jìn)程處于運(yùn)行狀態(tài)。④復(fù)雜性遠(yuǎn)程調(diào)用的實現(xiàn)環(huán)境可能要用系統(tǒng)級的任務(wù)來創(chuàng)建,但一旦完成,對程序員就是透明的了。2.1續(xù)40遠(yuǎn)程過程調(diào)用的特點2.1續(xù)4041遠(yuǎn)程過程調(diào)用的特點缺點:⑴需要進(jìn)行系統(tǒng)級的配置;⑵RPC并不支持對象。

CORBA的IIOPMTS的DCOMJava的sockets——應(yīng)用級協(xié)議的編碼交換

EJB?—〉RMI(JavaRemoteMethodProtocol)優(yōu)點:方便地實現(xiàn)不同平臺之間的數(shù)據(jù)轉(zhuǎn)換。

XDR(eXternalDataRepresentation)2.1續(xù)41遠(yuǎn)程過程調(diào)用的特點2.1續(xù)4142RMI環(huán)境RMI(遠(yuǎn)程方法激活):在分布式程序中,其遠(yuǎn)程對象的方法能夠被運(yùn)行在不同主機(jī)上的其他Java虛擬機(jī)的方法調(diào)用。相對于過程調(diào)用級的RPC,RMI可以實現(xiàn)編程級對象之間的方法調(diào)用。本地與遠(yuǎn)程方法調(diào)用對象應(yīng)用程序本地調(diào)用機(jī)器A對象對象對象機(jī)器B網(wǎng)絡(luò)遠(yuǎn)程調(diào)用2.1續(xù)42RMI環(huán)境本地與遠(yuǎn)程方法調(diào)用對象應(yīng)用程序本地調(diào)用機(jī)器A對4243RMI體系結(jié)構(gòu)遠(yuǎn)程引用層傳輸層JavaVirtualMachineClientStub遠(yuǎn)程引用層傳輸層JavaVirtualMachineRemoteObjectSkeletonTCP2.1續(xù)43RMI體系結(jié)構(gòu)遠(yuǎn)程引用層傳輸層JavaVirtual4344RMI系統(tǒng)的目標(biāo)⑴支持對存在于不同Java虛擬機(jī)上對象的無縫的遠(yuǎn)程調(diào)用。⑵支持服務(wù)器對客戶的回調(diào)。⑶把分布式對象模型自然地集成到Java語言里。⑷把分布式對象模型和本地Java對象模型間的不同表面化。⑸使編寫可靠的分布式應(yīng)用程序簡單化。⑹保留Java運(yùn)行時環(huán)境提供的安全性。2.1續(xù)44RMI系統(tǒng)的目標(biāo)2.1續(xù)4445軟件開發(fā)面臨的問題:軟件的開發(fā)、修改和維護(hù)變得更加困難。軟件開發(fā)常常超期和超出預(yù)算。由于沒有代碼重用,新軟件的開發(fā)都是從零開始。結(jié)構(gòu)化的軟件開發(fā)方式一種自頂向下的開發(fā)方法,將整個系統(tǒng)分解成獨立的模塊,然后逐一實現(xiàn)這些模塊的功能。缺點:完整的系統(tǒng)只能在開發(fā)完成后才能呈現(xiàn)全貌。如果在開始編程時發(fā)現(xiàn)設(shè)計中存在缺陷,那么整個設(shè)計將被重新構(gòu)造。2.2面向?qū)ο笾虚g件45軟件開發(fā)面臨的問題:2.2面向?qū)ο笾虚g件45462.2續(xù)面向?qū)ο蟮能浖_發(fā)方式以一種直觀的方法分析和構(gòu)造系統(tǒng);將整個系統(tǒng)抽象并模型化兩種開發(fā)方法的區(qū)別結(jié)構(gòu)化的方法:數(shù)據(jù)與功能是分離的;面向?qū)ο蠓椒ǎ簲?shù)據(jù)和相關(guān)的功能捆綁在一起。462.2續(xù)面向?qū)ο蟮能浖_發(fā)方式46472.2續(xù)開放式分布處理參考模型(ODP)起源ISO為了解決異種系統(tǒng)之間的互聯(lián)和互通,提出了OSI-RM。為使分布式系統(tǒng)能處理應(yīng)用的分布,實現(xiàn)應(yīng)用之間的互通和互操作而開發(fā)的各種標(biāo)準(zhǔn),如OSF的DCE、OMG的CORBA、UI的ALTAS和DEC的NAS。從1987年起,在ISO/IEC和ITU的共同努力下,于1995年發(fā)布了開放式分布處理參考模型RM-ODP。RM-ODP不僅是一個一般標(biāo)準(zhǔn),還是一個標(biāo)準(zhǔn)的標(biāo)準(zhǔn)。472.2續(xù)開放式分布處理參考模型(ODP)起源4748對象中間件(對象請求代理ORB)ORB提供一種通信機(jī)制透明地在異構(gòu)的通信環(huán)境中傳遞對象請求,各對象可以位于本地或遠(yuǎn)程機(jī)器,且對象之間的客戶機(jī)/服務(wù)器的角色是可以互換的。ORB可以看作和編程語言無關(guān)的面向?qū)ο蟮腞PC應(yīng)用,被視為從面向?qū)ο筮^渡到分布式計算的強(qiáng)大推動力量。兩大標(biāo)準(zhǔn):OMG的CORBA;Microsoft的COM/DCOM。產(chǎn)品:Borland公司的Visibroker、IBM公司的ComponentBroker和東方通科技公司的TongBrokerdeng。2.2續(xù)48對象中間件(對象請求代理ORB)2.2續(xù)48492.2續(xù)ODP通信模型相關(guān)概念通道(Channel):用于支持分布對象之間的透明交互。通道包括三部分:存根、綁定器和協(xié)議對象。①存根(Stub):解決交互過程中的信息的封裝和解封裝問題;②綁定器(Binder):維護(hù)計算對象之間的聯(lián)系;③協(xié)議對象(ProtocolObject):處理實際的通信。492.2續(xù)ODP通信模型相關(guān)概念49502.2續(xù)端系統(tǒng)資源相關(guān)概念結(jié)點(Node):在管理上獨立的物理機(jī)器;核(Nucleus):用來管理結(jié)點的機(jī)制;對象包(Capsule):對象的執(zhí)行環(huán)境;對象串(Cluster):受共管和被共操作的對象集合。502.2續(xù)端系統(tǒng)資源相關(guān)概念5051客戶基本工程對象客戶存根客戶綁定器客戶協(xié)議對象客戶方服務(wù)器基本工程對象服務(wù)器綁定器服務(wù)器存根服務(wù)器協(xié)議對象服務(wù)器方截-轉(zhuǎn)器客戶-服務(wù)器交互2.2續(xù)51客戶基本客戶客戶客戶協(xié)客戶方服務(wù)器基本服務(wù)器服務(wù)器服5152消息中間件產(chǎn)生傳統(tǒng)通信必備條件①發(fā)送和接收應(yīng)用程序同時在線;②通過網(wǎng)絡(luò)能同時通信,發(fā)送者和接受者需知道相互間程序的調(diào)用接口。實際情況:①應(yīng)用程序并不總是同時運(yùn)行;②網(wǎng)絡(luò)并不總是可用的和可靠的;③在所有者域?qū)?yīng)用程序的改變,要求在其他域也作相應(yīng)改變,不切實際。2.3消息中間件(MOM)52消息中間件產(chǎn)生2.3消息中間件(MOM)5253消息中間件定義MOM

(消息隊列中間件/通信中間件)依據(jù)消息傳送或消息隊列的原理來工作。MOM能夠簡化應(yīng)用之間數(shù)據(jù)的傳輸,提供可靠的、跨平臺的消息傳輸手段。MOM支持同步和異步兩種通信模式,其中異步通信模式是基于消息隊列轉(zhuǎn)發(fā)機(jī)制的。一般來說,消息隊列廣泛采用對等的分布式計算模型來實現(xiàn)分布式計算中的同步和異步交互。消息隊列一般提供多協(xié)議支持、高端服務(wù)和其他系統(tǒng)管理服務(wù),完成可靠的、可擴(kuò)展的異構(gòu)環(huán)境中的通信。2.3續(xù)53消息中間件定義2.3續(xù)5354消息消息實質(zhì)上是一個由用戶定義的數(shù)據(jù)結(jié)構(gòu),由頭信息和體信息組成。頭消息是對消息結(jié)構(gòu)的描述,對整條消息起控制作用,含消息的屬性及相關(guān)的系統(tǒng)信息,如消息標(biāo)識、消息類型、目的隊列名、日期時間等;其中目的隊列名可表示成“隊列名@隊列管理器名”的形式體信息主要是消息的應(yīng)用數(shù)據(jù),是應(yīng)用程序通信的數(shù)據(jù),其具體語義要由通信雙方事先約定,對中間件來說是一串毫無意義的二進(jìn)制字節(jié)串。種類:①請求消息②應(yīng)答消息③通知消息2.3續(xù)54消息2.3續(xù)5455消息中間件工作機(jī)理應(yīng)用之間以一系列消息的方式進(jìn)行通信。在發(fā)送者和接受者的傳送過程中,為了避免在傳遞過程中消息被丟失,消息保存在隊列中。MOM為消息接收者查看消息提供了一個緩沖區(qū)域,應(yīng)用把消息發(fā)送到與接收者相關(guān)的隊列中,如果發(fā)送者想及時得到反饋,它們就把接收返回消息的隊列名包含在所有它們發(fā)送的消息中。消息傳遞機(jī)制要保證將發(fā)送者的消息傳送到目的地。在消息傳遞中,應(yīng)用程序之間不必須建立直接的聯(lián)系,從而實現(xiàn)消息傳送的異步性。2.3續(xù)55消息中間件工作機(jī)理2.3續(xù)5556消息中間件消息中間件能夠簡化應(yīng)用之間數(shù)據(jù)的傳輸,提供可靠的、跨平臺的消息傳輸手段,實現(xiàn)應(yīng)用程序之間的協(xié)同。有兩種基本的工作模型:消息隊列消息傳遞(發(fā)布-訂閱)缺點:不支持程序控制的傳遞。產(chǎn)品:東方通科技的TongLINK/Q、BEA的elink、DEC的MessageQ、IBM的MQSeries、MicrosoftMSMQ等。2.3續(xù)56消息中間件2.3續(xù)5657消息中間件產(chǎn)生消息中間件一般把工業(yè)標(biāo)準(zhǔn)TCP/IP協(xié)議作為基礎(chǔ)。消息中間件還遵循X/Open的分布式事務(wù)處理模型,適應(yīng)于分布式計算環(huán)境多樣化、用戶數(shù)目規(guī)模化、業(yè)務(wù)邏輯復(fù)雜化的發(fā)展要求,實現(xiàn)消息位置無關(guān)性、用戶透明性。2.3續(xù)NAPTCPIPX.25SLIPPPP…應(yīng)用層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)接口層57消息中間件產(chǎn)生2.3續(xù)NAPTCPIPX.25SLIPP5758本地應(yīng)用程序中間件本地系統(tǒng)系統(tǒng)管理隊列管理器消息隊列接口消息路由和排隊消息通道代理網(wǎng)絡(luò)消息中間件體系結(jié)構(gòu)2.3續(xù)58本地應(yīng)用程序中間件本地系統(tǒng)系隊列管理器消息隊列接口消息路5859消息中間件的功能①無連接消息傳遞②消息優(yōu)先化③有保障的消息傳遞④事務(wù)處理消息⑤動態(tài)隊列創(chuàng)建⑥消息路由⑦不同硬件系統(tǒng)的集成⑧跨軟件平臺的支持2.3續(xù)59消息中間件的功能2.3續(xù)5960Internet上實現(xiàn)數(shù)據(jù)庫訪問的方式①公共網(wǎng)關(guān)接口CGI②專用API③JDBC與ODBC④數(shù)據(jù)庫引擎2.4數(shù)據(jù)庫訪問中間件60Internet上實現(xiàn)數(shù)據(jù)庫訪問的方式2.4數(shù)據(jù)庫訪問6061數(shù)據(jù)庫訪問中間件在分布式系統(tǒng)中,支持應(yīng)用程序和本地或異地的同構(gòu)或異構(gòu)數(shù)據(jù)源進(jìn)行通信。通過提供一系列的編程接口,屏蔽不同網(wǎng)絡(luò)協(xié)議,操作系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)平臺DBMS的差異,允許應(yīng)用程序一致地訪問數(shù)據(jù)源。技術(shù)最成熟,應(yīng)用最廣泛的一種中間件技術(shù)。典型例子—ODBC。缺點:需要大量的數(shù)據(jù)通信。產(chǎn)品:Oracle公司的SQLConnect、Sybase公司的OpenServer、BEA公司的Weblogic和中科院軟件所的DataAccess等。2.4續(xù)61數(shù)據(jù)庫訪問中間件2.4續(xù)6162三層結(jié)構(gòu)的缺陷①對連接沒有充分利用②對重復(fù)的數(shù)據(jù)庫操作沒有優(yōu)化③遠(yuǎn)程訪問不可靠

2.4續(xù)WWWServer數(shù)據(jù)存取中間件業(yè)務(wù)規(guī)則本地復(fù)制RemoteDBMSServerDBMSJDBCClientClient……AppletSQL62三層結(jié)構(gòu)的缺陷2.4續(xù)WWWServer數(shù)據(jù)存取中間6263數(shù)據(jù)庫訪問中間件主要功能①同時管理多個客戶機(jī)連接的多線程②可以接收不同的廠家中立協(xié)議③可以用一組管理數(shù)據(jù)操作的業(yè)務(wù)規(guī)則進(jìn)行編程④集中處理密集任務(wù)和將數(shù)據(jù)表達(dá)抽象到最高層⑤分開客戶機(jī)應(yīng)用程序與數(shù)據(jù)庫管理系統(tǒng)⑥可以異步提供當(dāng)前數(shù)據(jù)表或行的狀態(tài)給客戶機(jī)2.4續(xù)63數(shù)據(jù)庫訪問中間件主要功能2.4續(xù)6364數(shù)據(jù)庫訪問中間件數(shù)據(jù)庫訪問中間件專門負(fù)責(zé)和完成對數(shù)據(jù)庫訪問操作的優(yōu)化、用戶連接數(shù)的管理、保證訪問的安全性和可靠性,以及實現(xiàn)應(yīng)用對來自不同廠商的數(shù)據(jù)庫的訪問等,進(jìn)而提高對數(shù)據(jù)庫訪問的效率。簡而言之,數(shù)據(jù)庫訪問中間件指一切連接應(yīng)用程序和數(shù)據(jù)庫的軟件。與一般的中間件一樣,面向數(shù)據(jù)庫的中間件允許開發(fā)人員通過單一的、定義良好的API訪問另一臺計算機(jī)上的數(shù)據(jù)庫資源。2.4續(xù)64數(shù)據(jù)庫訪問中間件2.4續(xù)6465數(shù)據(jù)庫中間件訪問方式直接訪問應(yīng)用程序像訪問本地數(shù)據(jù)庫一樣可以直接訪問和更新位于遠(yuǎn)端的數(shù)據(jù)庫。數(shù)據(jù)庫復(fù)制客戶端緩存服務(wù)器端緩存2.4續(xù)65數(shù)據(jù)庫中間件訪問方式2.4續(xù)6566數(shù)據(jù)庫訪問中間件類型本地中間件本地中間件是為特定的數(shù)據(jù)庫設(shè)計的提供最佳的訪問性能。當(dāng)要改變數(shù)據(jù)庫時,需要對應(yīng)用程序進(jìn)行很大的修改。呼叫層接口呼叫層接口為多個數(shù)據(jù)庫提供了統(tǒng)一的界面。把一般通用的接口呼叫轉(zhuǎn)換成任意的數(shù)據(jù)庫本地語言,以便使對數(shù)據(jù)庫發(fā)出請求的應(yīng)用程序理解。數(shù)據(jù)庫網(wǎng)關(guān)完成不同數(shù)據(jù)庫模型的轉(zhuǎn)換,能提供對大型系統(tǒng)內(nèi)部數(shù)據(jù)的訪問。2.4續(xù)66數(shù)據(jù)庫訪問中間件類型2.4續(xù)6667幾種常見數(shù)據(jù)庫訪問中間件①ODBC②OLEDB③JDBC④數(shù)據(jù)庫引擎⑤數(shù)據(jù)庫網(wǎng)關(guān)2.4續(xù)應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n……ODBC驅(qū)動程序管理器可裝載的驅(qū)動程序OracleSQLServerParadox其他67幾種常見數(shù)據(jù)庫訪問中間件2.4續(xù)應(yīng)用程序1應(yīng)用程序2應(yīng)6768數(shù)據(jù)庫訪問中間件優(yōu)點移植性好中間件封裝了各種與平臺有關(guān)的細(xì)節(jié),使更換操作系統(tǒng)和通信協(xié)議等底層的配置無需改變應(yīng)用程序代碼。集成方便能非常容易地集成到應(yīng)用開發(fā)環(huán)境中,無需大的代碼改動。易于擴(kuò)充局部改進(jìn)和整體升級只要保持對外接口不變就不會影響到系統(tǒng)的其他部分,在功能上對應(yīng)用程序?qū)崿F(xiàn)了透明性。使用簡單對各種數(shù)據(jù)源使用統(tǒng)一的訪問方式,降低了用戶參與程度。2.4續(xù)68數(shù)據(jù)庫訪問中間件優(yōu)點2.4續(xù)6869一種數(shù)據(jù)庫訪問中間件原型的構(gòu)造方法2.4續(xù)DBDB……客戶客戶……遠(yuǎn)程訪問模塊安全控制模塊連接管理模塊操作評價模塊客戶交互模塊緩沖區(qū)中間件69一種數(shù)據(jù)庫訪問中間件原型的構(gòu)造方法2.4續(xù)DBDB6970事務(wù)一個完整的事務(wù)是指一個程序或程序段,在一個或多個資源上為完成某些功能的執(zhí)行過程。事務(wù)處理涉及操作系統(tǒng)、文件系統(tǒng)、編譯語言、數(shù)據(jù)通信、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用軟件等,是一個相當(dāng)艱巨的任務(wù),但是工作的任務(wù)可以通過事務(wù)管理系統(tǒng)來簡化,可大大減少事務(wù)管理系統(tǒng)應(yīng)用所需的編程量。系統(tǒng)中的所有事務(wù)由一個事務(wù)管理系統(tǒng)所管理,事務(wù)開始操作時被賦予一個唯一的標(biāo)識符TID,在一個事務(wù)的生命周期內(nèi)此標(biāo)識由事務(wù)管理系統(tǒng)唯一標(biāo)識一個事務(wù)。2.5交易中間件70事務(wù)2.5交易中間件7071交易中間件TPM在開放系統(tǒng)環(huán)境下提供保證交易完整性和數(shù)據(jù)一致性的一種環(huán)境平臺。針對復(fù)雜環(huán)境下分布式應(yīng)用的速度和可靠性要求而實現(xiàn)的。事務(wù)是對共享的系統(tǒng)資源所完成的一件工作,它通常是由一系列操作所組成。事務(wù)必須具有ACID(原子性、一致性、隔離性、耐久性)屬性。TPM通過API向用戶提供了一系列的服務(wù),可簡化應(yīng)用開發(fā)。產(chǎn)品:BEA公司的Tuxebo、IBM公司的CICS和東方通科技公司的TongEASY等。2.5續(xù)71交易中間件TPM2.5續(xù)7172事務(wù)管理系統(tǒng)2.5續(xù)應(yīng)用程序(AP)資源管理器(RM)通信資源管理器(CRM)事務(wù)管理器(TM)TMAPIXA+XARMAPICRMAPITCP/IP72事務(wù)管理系統(tǒng)2.5續(xù)應(yīng)用程序(AP)資源管理器通信資源7273交易中間件作用①提供高效的處理能力②簡化應(yīng)用系統(tǒng)開發(fā)③可以有效完成多服務(wù)進(jìn)程和負(fù)載均衡④能保證分布式交易的完整性⑤提高系統(tǒng)的容錯能力⑥減少系統(tǒng)的運(yùn)行、維護(hù)工作量2.5續(xù)73交易中間件作用2.5續(xù)7374交易中間件功能①進(jìn)程管理②交易優(yōu)先級管理③數(shù)據(jù)傳輸④均衡負(fù)載⑤權(quán)限控制、安全管理2.5續(xù)74交易中間件功能2.5續(xù)74中間件基本概念中間件基本概念7576教材與參考書目教材:

《中間件技術(shù)原理與應(yīng)用》

張云勇清華大學(xué)出版社參考書:

《COM原理與應(yīng)用》

潘愛民清華大學(xué)出版社

《CORBA原理及應(yīng)用》

朱其亮北京郵電大學(xué)出版社

《精通EJB》[美]EdRoman電子工業(yè)出版社2教材與參考書目教材:7677第1章中間件產(chǎn)生背景及分布式計算環(huán)境主要內(nèi)容開放系統(tǒng)互操作性中間件3第1章中間件產(chǎn)生背景及分布式計算環(huán)境主要內(nèi)容77781.1開放系統(tǒng)與互操作性概述計算模式的發(fā)展過程基于主機(jī)的系統(tǒng)(分時共享、資源共享)兩層Client/Server系統(tǒng)三層(n層)體系架構(gòu)表示層——用戶層業(yè)務(wù)邏輯層——應(yīng)用層數(shù)據(jù)層——數(shù)據(jù)庫服務(wù)器基于Web的三層(N層)體系結(jié)構(gòu)41.1開放系統(tǒng)與互操作性概述計算模式的發(fā)展過程78791.1續(xù)開放系統(tǒng)基本組成硬件

包括PC,工作站,大中型機(jī),各式各樣的嵌入式設(shè)備,移動設(shè)備;軟件

各類操作系統(tǒng)、應(yīng)用軟件;網(wǎng)絡(luò)

各類網(wǎng)絡(luò)結(jié)構(gòu)、網(wǎng)絡(luò)協(xié)議。開放系統(tǒng)面臨的問題

⑴遠(yuǎn)程性⑵并發(fā)行⑶無全局狀態(tài)⑷部分失?、僧惒叫寓十愘|(zhì)性⑺自主性⑻聯(lián)合型⑼伸縮性⑽發(fā)展性⑾移動性51.1續(xù)開放系統(tǒng)基本組成79801.1續(xù)開放系統(tǒng)特點⑴開放的:提供可移植性和協(xié)同工作;⑵集成的:有助于對付異質(zhì)性;⑶靈活的:有助于對付移動性;⑷模塊化的:靈活性的基礎(chǔ);⑸可聯(lián)合的⑹可管理的⑺安全的⑻透明的:支撐軟件和硬件的異質(zhì)性;⑼滿足服務(wù)質(zhì)量需求61.1續(xù)開放系統(tǒng)特點80811.1續(xù)開放系統(tǒng)必具特性可移植性(Portability)可互操作性(Interoperability)可伸縮性(Scalability)易獲得性(Availability)開放系統(tǒng)構(gòu)造用輪廓勾劃;輪廓由AUSPICE七個成分組成;對輪廓的各成分標(biāo)準(zhǔn)化,即成開放系統(tǒng)。71.1續(xù)開放系統(tǒng)必具特性81821.1續(xù)開放系統(tǒng)開放程度表81.1續(xù)開放系統(tǒng)開放程度表82831.1續(xù)互操作性本質(zhì):從異質(zhì)環(huán)境(異種體系結(jié)構(gòu)、異種操作系統(tǒng)、異種網(wǎng)絡(luò)等)中獲得資源的透明動用能力。⑴面向計算資源的互操作性⑵面向信息資源的互操作性(如數(shù)據(jù)庫)定義:在一個由異質(zhì)實體構(gòu)成的網(wǎng)絡(luò)環(huán)境中,當(dāng)應(yīng)用在網(wǎng)絡(luò)的結(jié)點上運(yùn)行時,它可以透明地動用網(wǎng)中其他結(jié)點上的資源,并借助這些資源與本結(jié)點上的資源共同來完成某個或某組任務(wù)。91.1續(xù)互操作性83841.1續(xù)互操作性定義:在一個由異質(zhì)實體構(gòu)成的網(wǎng)絡(luò)環(huán)境中,當(dāng)應(yīng)用在網(wǎng)絡(luò)的結(jié)點上運(yùn)行時,它可以透明地動用網(wǎng)中其他結(jié)點上的資源,并借助這些資源與本結(jié)點上的資源共同來完成某個或某組任務(wù)。本質(zhì):從異質(zhì)環(huán)境(異種體系結(jié)構(gòu)、異種操作系統(tǒng)、異種網(wǎng)絡(luò)等)中獲得資源的透明動用能力。⑴面向計算資源的互操作性⑵面向信息資源的互操作性(如數(shù)據(jù)庫)101.1續(xù)互操作性84851.2中間件概述現(xiàn)代應(yīng)用系統(tǒng)的基本特征分布

任務(wù)已不只是在單機(jī)上運(yùn)行,而是由網(wǎng)絡(luò)中多臺計算機(jī)上的相關(guān)應(yīng)用共同協(xié)作完成,需考慮網(wǎng)絡(luò)傳輸、數(shù)據(jù)安全、數(shù)據(jù)一致性、同步等諸多問題;異構(gòu)

計算機(jī)硬件、操作系統(tǒng)、網(wǎng)絡(luò)協(xié)議、數(shù)據(jù)庫系統(tǒng)以及開發(fā)工具種類繁多,需考慮數(shù)據(jù)表示、調(diào)用接口、處理方式等諸多問題;動態(tài)協(xié)作

參與協(xié)作的應(yīng)用允許位置透明性、遷移透明性、負(fù)載平衡性等需求。111.2中間件概述現(xiàn)代應(yīng)用系統(tǒng)的基本特征85861.2續(xù)應(yīng)用1應(yīng)用2應(yīng)用3服務(wù)器1服務(wù)器2服務(wù)器3121.2續(xù)應(yīng)用1應(yīng)用2應(yīng)用3服務(wù)器1服務(wù)器2服務(wù)器386871.2續(xù)應(yīng)用1應(yīng)用2應(yīng)用3服務(wù)器1服務(wù)器2服務(wù)器3中間件131.2續(xù)應(yīng)用1應(yīng)用2應(yīng)用3服務(wù)器1服務(wù)器2服務(wù)器3中間件87881.2續(xù)應(yīng)用軟件中間件網(wǎng)絡(luò)軟件操作系統(tǒng)應(yīng)用軟件中間件網(wǎng)絡(luò)軟件操作系統(tǒng)可協(xié)同工作利用中間件進(jìn)行協(xié)同工作的系統(tǒng)141.2續(xù)應(yīng)用軟件中間件網(wǎng)絡(luò)軟件操作系統(tǒng)應(yīng)用軟件中間件網(wǎng)絡(luò)88891.2續(xù)*中間件定義中間件(Middleware)是一種軟件,處于系統(tǒng)軟件(操作系統(tǒng)和網(wǎng)絡(luò)軟件)與應(yīng)用軟件之間,它能使處于應(yīng)用層中的各應(yīng)用成分之間實現(xiàn)跨網(wǎng)絡(luò)的協(xié)同工作(也就是互操作),這時允許各應(yīng)用軟件之下所涉及的“系統(tǒng)結(jié)構(gòu)、操作系統(tǒng)、通信協(xié)議、數(shù)據(jù)庫和其它應(yīng)用服務(wù)”各不相同。151.2續(xù)*中間件定義8990應(yīng)用軟件中間件網(wǎng)絡(luò)協(xié)議操作系統(tǒng)硬件平臺應(yīng)用軟件中間件網(wǎng)絡(luò)協(xié)議操作系統(tǒng)硬件平臺DBMS兩者內(nèi)含有進(jìn)行協(xié)同工作的應(yīng)用成分中間件定義1.2續(xù)16應(yīng)用軟件中間件網(wǎng)絡(luò)協(xié)議操作系統(tǒng)硬件平臺應(yīng)用軟件中間件網(wǎng)絡(luò)90911.2續(xù)*中間件組成1.執(zhí)行環(huán)境(ExecutionEnvironment)軟件

如果一個網(wǎng)絡(luò)的各個節(jié)點上安裝了EE軟件,各節(jié)點上的應(yīng)用軟件之間就可以實現(xiàn)相互合作。EE軟件使各節(jié)點的下層設(shè)備對應(yīng)用軟件透明化了,EE軟件是中間件中的主體部分。2.應(yīng)用開發(fā)(ApplicationDevelopment)工具AD工具用來幫助開發(fā)內(nèi)含“透明動用對方”成分的應(yīng)用軟件,或改造原有的無透明動用能力的應(yīng)用軟件。AD工具是中間件中的必備部分。171.2續(xù)*中間件組成91921.2續(xù)中間件的層次結(jié)構(gòu)181.2續(xù)中間件的層次結(jié)構(gòu)92931.2續(xù)中間件基本框架第四層應(yīng)用接口(API)層中間件服務(wù)層(通信,控制,計算,管理,輸出,信息等)應(yīng)用平臺層(Unix、NetWare、NT、VAX、OPENVMS等)傳輸協(xié)議層(TCP/IP、IPX/SPX、NetBIOS、OSI等)第三層第二層第一層中間件的基本功能框架結(jié)構(gòu)191.2續(xù)中間件基本框架第四層應(yīng)用接口(API)層中間件服93941.2續(xù)基于中間件的軟件系統(tǒng)基本模型201.2續(xù)基于中間件的軟件系統(tǒng)基本模型94951.2續(xù)中間件工作原理中間件服務(wù)器1服務(wù)器2服務(wù)器n客戶機(jī)1客戶機(jī)2客戶機(jī)n…………服務(wù)器端客戶端同/異構(gòu)環(huán)境211.2續(xù)中間件工作原理中間件服務(wù)器1服務(wù)器2服務(wù)器n客戶95961.2續(xù)*中間件的基本分類⑴數(shù)據(jù)訪問中間件(DAM)⑵遠(yuǎn)程過程調(diào)用中間件(RPC)⑶消息中間件(MOM)⑷對象請求代理中間件(ORB)⑸事務(wù)處理中間件(交易中間件,TPM)221.2續(xù)*中間件的基本分類9697中間件的發(fā)展情況1.2續(xù)23中間件的發(fā)展情況1.2續(xù)9798中間件的主要廠商第一梯隊Oracle(BEA)、IBM、東方通科技,占70%以上份額;第二梯隊Sun、中軟、中創(chuàng)、微軟等;第三梯隊國內(nèi)若干中小軟件企業(yè)和系統(tǒng)集成企業(yè)。1.2續(xù)24中間件的主要廠商1.2續(xù)98991.2續(xù)*中間件的作用⑴它提供了通道的功能,可保證應(yīng)用系統(tǒng)數(shù)據(jù)的可靠傳輸;⑵它起著橋梁的作用,達(dá)成異構(gòu)應(yīng)用資源之間的互聯(lián)互通;⑶它是分布式應(yīng)用的集成開發(fā)框架,促成企業(yè)分布式應(yīng)用的有機(jī)集成;⑷作為平臺,它可有效實現(xiàn)分布應(yīng)用的分階段順利部署;⑸它起著過濾網(wǎng)的作用,可有力保護(hù)關(guān)鍵信息的安全。251.2續(xù)*中間件的作用99100*中間件的優(yōu)越性:1.企業(yè)應(yīng)用方面縮短應(yīng)用開發(fā)周期減少項目開發(fā)風(fēng)險應(yīng)用程序質(zhì)量可維護(hù)性增加產(chǎn)品吸引力2.應(yīng)用程序方面透明地同其他應(yīng)用程序交互與運(yùn)行平臺提供的網(wǎng)絡(luò)通信服務(wù)無關(guān)具有良好的可靠性和可用性具有良好的可擴(kuò)展性1.2續(xù)26*中間件的優(yōu)越性:1.2續(xù)100101中間件發(fā)展面臨的問題⑴不同廠商的實現(xiàn)很難互操作⑵只提供了一部分平臺的實現(xiàn)⑶應(yīng)用開發(fā)者要面臨設(shè)計選擇①過分追求中間件功能的全面性②過分強(qiáng)調(diào)選擇國外產(chǎn)品③不能準(zhǔn)確認(rèn)識中間件的作用1.2續(xù)27中間件發(fā)展面臨的問題1.2續(xù)101102*中間件技術(shù)發(fā)展趨勢⑴中間件的發(fā)展需要規(guī)范化⑵應(yīng)用需求導(dǎo)致技術(shù)格局多樣化⑶構(gòu)件化和松散耦合⑷底層的中間件持續(xù)走穩(wěn)⑸高層的中間件成為市場新寵⑹新技術(shù)與產(chǎn)品的推出速度放緩⑺實用化是重要的發(fā)展趨勢1.2續(xù)28*中間件技術(shù)發(fā)展趨勢1.2續(xù)102103第2章五大類中間件的工作機(jī)理主要內(nèi)容2.1遠(yuǎn)程過程調(diào)用中間件(RPCM)2.2面向?qū)ο笾虚g件(OOM)2.3消息中間件(MOM)2.4數(shù)據(jù)庫訪問中間件(DAM)2.5交易中間件(DTPM)29第2章五大類中間件的工作機(jī)理主要內(nèi)容1031042.1遠(yuǎn)程過程調(diào)用中間件RPC背景在傳統(tǒng)的編程概念中,過程是只能局限在本地運(yùn)行的一段代碼,主程序和過程之間的運(yùn)行關(guān)系是本地調(diào)用關(guān)系——本地過程調(diào)用LPC。LPC模式無法充分利用網(wǎng)絡(luò)上其他主機(jī)的資源,也無法提高代碼在實體間的共享程度,使得主機(jī)資源大量浪費。RPC是對LPC的擴(kuò)展。通過這種調(diào)用機(jī)制,程序員編寫客戶方應(yīng)用時,可根據(jù)需要透明地調(diào)用位于遠(yuǎn)端服務(wù)器上的過程。302.1遠(yuǎn)程過程調(diào)用中間件RPC背景104105main(…)...調(diào)用A...退出A(…)...調(diào)用B...退出B(…).......退出主程序過程A代碼過程B代碼機(jī)器1機(jī)器2機(jī)器3RPC調(diào)用模型2.1續(xù)主程序子程序子程序31main(…)A(…)B(…)主程序過程A代碼過程B代碼105106遠(yuǎn)程過程調(diào)用RPC概念RPC是從一臺機(jī)器或一個進(jìn)程調(diào)用另一臺機(jī)器或另一個進(jìn)程的服務(wù)或方法。遠(yuǎn)程過程調(diào)用是創(chuàng)建分布式應(yīng)用的一種方法,來源于Unix操作系統(tǒng)的處理思想,被普遍認(rèn)為是創(chuàng)建分布式應(yīng)用的有效方法。從程序員的角度,RPC采用常規(guī)的編程模式:程序代碼調(diào)用遠(yuǎn)端過程并將結(jié)果返回。當(dāng)使用RPC時,只需編寫很少的網(wǎng)絡(luò)程序代碼,絕大部分代碼由IDL(InterfaceDefineLanguage)生成。2.1續(xù)32遠(yuǎn)程過程調(diào)用RPC概念2.1續(xù)106107IDL編譯器結(jié)構(gòu)2.1續(xù)IDL規(guī)范IDL編譯器頭文件客戶存根頭文件對象實現(xiàn)框架圖2-4IDL編譯器結(jié)構(gòu)33IDL編譯器結(jié)構(gòu)2.1續(xù)IDL規(guī)范IDL編譯器頭文件客107108遠(yuǎn)程過程調(diào)用中間件工作機(jī)理①用中間件中的IDL對調(diào)用順序加以描述;②利用IDL編譯器對這種定義和描述進(jìn)行編譯,從而生成支持客戶機(jī)和服務(wù)器進(jìn)行通信的管道;③在服務(wù)器端,被調(diào)用的遠(yuǎn)端過程需單獨編寫,并被置入服務(wù)器端框架,同時要在遠(yuǎn)程過程調(diào)用中間件中進(jìn)行注冊,以備調(diào)用。④啟動本地客戶端存根——〉存根捆綁遠(yuǎn)端過程名和參數(shù)——〉利用網(wǎng)絡(luò)傳輸?shù)椒?wù)器端框架,從而實現(xiàn)數(shù)據(jù)格式的轉(zhuǎn)換和參數(shù)的傳遞⑤采用調(diào)用/返回模式具體地完成遠(yuǎn)端過程調(diào)用。2.1續(xù)34遠(yuǎn)程過程調(diào)用中間件工作機(jī)理2.1續(xù)108109RPC工作流程2.1續(xù)客戶運(yùn)行客戶繼續(xù)執(zhí)行服務(wù)調(diào)用過程調(diào)用服務(wù)過程執(zhí)行過程返回請求返回RPC調(diào)用RPC返回Network圖2-5RPC工作流程RPC一般采用調(diào)用/返回模式,多用于應(yīng)用程序之間的通信,采用同步方式。RPC程序之間的同步通信一般采用Request-Wait-Reply方式,因此RPC更適應(yīng)小型簡單而不需要采用異步通信方式的應(yīng)用。35RPC工作流程2.1續(xù)客戶運(yùn)行客戶繼續(xù)執(zhí)行服務(wù)調(diào)用過程109110ClientSend(remotecallpi(…))(發(fā)送“請求服務(wù)”信息)Receive(ans)接收回復(fù)信息server接收調(diào)用信息;抽取參數(shù)并分析;調(diào)用所指的過程;執(zhí)行遠(yuǎn)程過程返回執(zhí)行結(jié)果Send(ans)發(fā)送回復(fù)信息等待回復(fù)請求服務(wù)等待調(diào)用繼續(xù)返回調(diào)用結(jié)果RPC的通信模型2.1續(xù)36ClientSend(remotecallpi(…)1101113

callworkreturnServerProcessOP2Server-stub

OP3RPCRoutinereceivetransmit45678LocalreturnLocalcallClientProcessOP4Client-stub

OP1waitRPCRoutinereceivetransmit12910RPC執(zhí)行過程2.1續(xù)373callworkre111112通信協(xié)議支持兩種傳輸協(xié)議:TCP、UDPTCP:連接、可靠、低效。保證要么把調(diào)用傳遞到遠(yuǎn)程過程且接受應(yīng)答,要么報告通信無法進(jìn)行。UDP:無連接、不可靠、高效。使用UDP的遠(yuǎn)程過程調(diào)用也許會丟失或重復(fù)。

2.1續(xù)38通信協(xié)議2.1續(xù)112113RPC的語義Last-of-many:被調(diào)用的過程可能執(zhí)行若干次,但規(guī)定其最后一次執(zhí)行的結(jié)果作為返回結(jié)果。At-most-once:若調(diào)用者收到了回復(fù)消息,則稱被調(diào)用的過程正確地完成了它的一次(僅僅一次)執(zhí)行。At-least-once:遠(yuǎn)程調(diào)用過程至少執(zhí)行一次,回復(fù)消息可能返回一次或多次。Exactly-once:若服務(wù)器正常,則遠(yuǎn)程過程恰好執(zhí)行一次,并返回一個調(diào)用結(jié)果。2.1續(xù)39RPC的語義2.1續(xù)113114遠(yuǎn)程過程調(diào)用的特點①客戶/服務(wù)器模式客戶端的應(yīng)用調(diào)用一個位于遠(yuǎn)端服務(wù)器平臺的進(jìn)程或服務(wù),RPC實際上是通過C/S方式實現(xiàn)的。②數(shù)據(jù)封裝性遠(yuǎn)端過程調(diào)用負(fù)責(zé)捆綁參數(shù),實現(xiàn)不同平臺之間參數(shù)的傳遞,發(fā)送參數(shù)到遠(yuǎn)端過程。③同步性當(dāng)客戶機(jī)發(fā)出請求時,服務(wù)器進(jìn)程處于運(yùn)行狀態(tài)。④復(fù)雜性遠(yuǎn)程調(diào)用的實現(xiàn)環(huán)境可能要用系統(tǒng)級的任務(wù)來創(chuàng)建,但一旦完成,對程序員就是透明的了。2.1續(xù)40遠(yuǎn)程過程調(diào)用的特點2.1續(xù)114115遠(yuǎn)程過程調(diào)用的特點缺點:⑴需要進(jìn)行系統(tǒng)級的配置;⑵RPC并不支持對象。

CORBA的IIOPMTS的DCOMJava的sockets——應(yīng)用級協(xié)議的編碼交換

EJB?—〉RMI(JavaRemoteMethodProtocol)優(yōu)點:方便地實現(xiàn)不同平臺之間的數(shù)據(jù)轉(zhuǎn)換。

XDR(eXternalDataRepresentation)2.1續(xù)41遠(yuǎn)程過程調(diào)用的特點2.1續(xù)115116RMI環(huán)境RMI(遠(yuǎn)程方法激活):在分布式程序中,其遠(yuǎn)程對象的方法能夠被運(yùn)行在不同主機(jī)上的其他Java虛擬機(jī)的方法調(diào)用。相對于過程調(diào)用級的RPC,RMI可以實現(xiàn)編程級對象之間的方法調(diào)用。本地與遠(yuǎn)程方法調(diào)用對象應(yīng)用程序本地調(diào)用機(jī)器A對象對象對象機(jī)器B網(wǎng)絡(luò)遠(yuǎn)程調(diào)用2.1續(xù)42RMI環(huán)境本地與遠(yuǎn)程方法調(diào)用對象應(yīng)用程序本地調(diào)用機(jī)器A對116117RMI體系結(jié)構(gòu)遠(yuǎn)程引用層傳輸層JavaVirtualMachineClientStub遠(yuǎn)程引用層傳輸層JavaVirtualMachineRemoteObjectSkeletonTCP2.1續(xù)43RMI體系結(jié)構(gòu)遠(yuǎn)程引用層傳輸層JavaVirtual117118RMI系統(tǒng)的目標(biāo)⑴支持對存在于不同Java虛擬機(jī)上對象的無縫的遠(yuǎn)程調(diào)用。⑵支持服務(wù)器對客戶的回調(diào)。⑶把分布式對象模型自然地集成到Java語言里。⑷把分布式對象模型和本地Java對象模型間的不同表面化。⑸使編寫可靠的分布式應(yīng)用程序簡單化。⑹保留Java運(yùn)行時環(huán)境提供的安全性。2.1續(xù)44RMI系統(tǒng)的目標(biāo)2.1續(xù)118119軟件開發(fā)面臨的問題:軟件的開發(fā)、修改和維護(hù)變得更加困難。軟件開發(fā)常常超期和超出預(yù)算。由于沒有代碼重用,新軟件的開發(fā)都是從零開始。結(jié)構(gòu)化的軟件開發(fā)方式一種自頂向下的開發(fā)方法,將整個系統(tǒng)分解成獨立的模塊,然后逐一實現(xiàn)這些模塊的功能。缺點:完整的系統(tǒng)只能在開發(fā)完成后才能呈現(xiàn)全貌。如果在開始編程時發(fā)現(xiàn)設(shè)計中存在缺陷,那么整個設(shè)計將被重新構(gòu)造。2.2面向?qū)ο笾虚g件45軟件開發(fā)面臨的問題:2.2面向?qū)ο笾虚g件1191202.2續(xù)面向?qū)ο蟮能浖_發(fā)方式以一種直觀的方法分析和構(gòu)造系統(tǒng);將整個系統(tǒng)抽象并模型化兩種開發(fā)方法的區(qū)別結(jié)構(gòu)化的方法:數(shù)據(jù)與功能是分離的;面向?qū)ο蠓椒ǎ簲?shù)據(jù)和相關(guān)的功能捆綁在一起。462.2續(xù)面向?qū)ο蟮能浖_發(fā)方式1201212.2續(xù)開放式分布處理參考模型(ODP)起源ISO為了解決異種系統(tǒng)之間的互聯(lián)和互通,提出了OSI-RM。為使分布式系統(tǒng)能處理應(yīng)用的分布,實現(xiàn)應(yīng)用之間的互通和互操作而開發(fā)的各種標(biāo)準(zhǔn),如OSF的DCE、OMG的CORBA、UI的ALTAS和DEC的NAS。從1987年起,在ISO/IEC和ITU的共同努力下,于1995年發(fā)布了開放式分布處理參考模型RM-ODP。RM-ODP不僅是一個一般標(biāo)準(zhǔn),還是一個標(biāo)準(zhǔn)的標(biāo)準(zhǔn)。472.2續(xù)開放式分布處理參考模型(ODP)起源121122對象中間件(對象請求代理ORB)ORB提供一種通信機(jī)制透明地在異構(gòu)的通信環(huán)境中傳遞對象請求,各對象可以位于本地或遠(yuǎn)程機(jī)器,且對象之間的客戶機(jī)/服務(wù)器的角色是可以互換的。ORB可以看作和編程語言無關(guān)的面向?qū)ο蟮腞PC應(yīng)用,被視為從面向?qū)ο筮^渡到分布式計算的強(qiáng)大推動力量。兩大標(biāo)準(zhǔn):OMG的CORBA;Microsoft的COM/DCOM。產(chǎn)品:Borland公司的Visibroker、IBM公司的ComponentBroker和東方通科技公司的TongBrokerdeng。2.2續(xù)48對象中間件(對象請求代理ORB)2.2續(xù)1221232.2續(xù)ODP通信模型相關(guān)概念通道(Channel):用于支持分布對象之間的透明交互。通道包括三部分:存根、綁定器和協(xié)議對象。①存根(Stub):解決交互過程中的信息的封裝和解封裝問題;②綁定器(Binder):維護(hù)計算對象之間的聯(lián)系;③協(xié)議對象(ProtocolObject):處理實際的通信。492.2續(xù)ODP通信模型相關(guān)概念1231242.2續(xù)端系統(tǒng)資源相關(guān)概念結(jié)點(Node):在管理上獨立的物理機(jī)器;核(Nucleus):用來管理結(jié)點的機(jī)制;對象包(Capsule):對象的執(zhí)行環(huán)境;對象串(Cluster):受共管和被共操作的對象集合。502.2續(xù)端系統(tǒng)資源相關(guān)概念124125客戶基本工程對象客戶存根客戶綁定器客戶協(xié)議對象客戶方服務(wù)器基本工程對象服務(wù)器綁定器服務(wù)器存根服務(wù)器協(xié)議對象服務(wù)器方截-轉(zhuǎn)器客戶-服務(wù)器交互2.2續(xù)51客戶基本客戶客戶客戶協(xié)客戶方服務(wù)器基本服務(wù)器服務(wù)器服125126消息中間件產(chǎn)生傳統(tǒng)通信必備條件①發(fā)送和接收應(yīng)用程序同時在線;②通過網(wǎng)絡(luò)能同時通信,發(fā)送者和接受者需知道相互間程序的調(diào)用接口。實際情況:①應(yīng)用程序并不總是同時運(yùn)行;②網(wǎng)絡(luò)并不總是可用的和可靠的;③在所有者域?qū)?yīng)用程序的改變,要求在其他域也作相應(yīng)改變,不切實際。2.3消息中間件(MOM)52消息中間件產(chǎn)生2.3消息中間件(MOM)126127消息中間件定義MOM

(消息隊列中間件/通信中間件)依據(jù)消息傳送或消息隊列的原理來工作。MOM能夠簡化應(yīng)用之間數(shù)據(jù)的傳輸,提供可靠的、跨平臺的消息傳輸手段。MOM支持同步和異步兩種通信模式,其中異步通信模式是基于消息隊列轉(zhuǎn)發(fā)機(jī)制的。一般來說,消息隊列廣泛采用對等的分布式計算模型來實現(xiàn)分布式計算中的同步和異步交互。消息隊列一般提供多協(xié)議支持、高端服務(wù)和其他系統(tǒng)管理服務(wù),完成可靠的、可擴(kuò)展的異構(gòu)環(huán)境中的通信。2.3續(xù)53消息中間件定義2.3續(xù)127128消息消息實質(zhì)上是一個由用戶定義的數(shù)據(jù)結(jié)構(gòu),由頭信息和體信息組成。頭消息是對消息結(jié)構(gòu)的描述,對整條消息起控制作用,含消息的屬性及相關(guān)的系統(tǒng)信息,如消息標(biāo)識、消息類型、目的隊列名、日期時間等;其中目的隊列名可表示成“隊列名@隊列管理器名”的形式體信息主要是消息的應(yīng)用數(shù)據(jù),是應(yīng)用程序通信的數(shù)據(jù),其具體語義要由通信雙方事先約定,對中間件來說是一串毫無意義的二進(jìn)制字節(jié)串。種類:①請求消息②應(yīng)答消息③通知消息2.3續(xù)54消息2.3續(xù)128129消息中間件工作機(jī)理應(yīng)用之間以一系列消息的方式進(jìn)行通信。在發(fā)送者和接受者的傳送過程中,為了避免在傳遞過程中消息被丟失,消息保存在隊列中。MOM為消息接收者查看消息提供了一個緩沖區(qū)域,應(yīng)用把消息發(fā)送到與接收者相關(guān)的隊列中,如果發(fā)送者想及時得到反饋,它們就把接收返回消息的隊列名包含在所有它們發(fā)送的消息中。消息傳遞機(jī)制要保證將發(fā)送者的消息傳送到目的地。在消息傳遞中,應(yīng)用程序之間不必須建立直接的聯(lián)系,從而實現(xiàn)消息傳送的異步性。2.3續(xù)55消息中間件工作機(jī)理2.3續(xù)129130消息中間件消息中間件能夠簡化應(yīng)用之間數(shù)據(jù)的傳輸,提供可靠的、跨平臺的消息傳輸手段,實現(xiàn)應(yīng)用程序之間的協(xié)同。有兩種基本的工作模型:消息隊列消息傳遞(發(fā)布-訂閱)缺點:不支持程序控制的傳遞。產(chǎn)品:東方通科技的TongLINK/Q、BEA的elink、DEC的MessageQ、IBM的MQSeries、MicrosoftMSMQ等。2.3續(xù)56消息中間件2.3續(xù)130131消息中間件產(chǎn)生消息中間件一般把工業(yè)標(biāo)準(zhǔn)TCP/IP協(xié)議作為基礎(chǔ)。消息中間件還遵循X/Open的分布式事務(wù)處理模型,適應(yīng)于分布式計算環(huán)境多樣化、用戶數(shù)目規(guī)?;I(yè)務(wù)邏輯復(fù)雜化的發(fā)展要求,實現(xiàn)消息位置無關(guān)性、用戶透明性。2.3續(xù)NAPTCPIPX.25SLIPPPP…應(yīng)用層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)接口層57消息中間件產(chǎn)生2.3續(xù)NAPTCPIPX.25SLIPP131132本地應(yīng)用程序中間件本地系統(tǒng)系統(tǒng)管理隊列管理器消息隊列接口消息路由和排隊消息通道代理網(wǎng)絡(luò)消息中間件體系結(jié)構(gòu)2.3續(xù)58本地應(yīng)用程序中間件本地系統(tǒng)系隊列管理器消息隊列接口消息路132133消息中間件的功能①無連接消息傳遞②消息優(yōu)先化③有保障的消息傳遞④事務(wù)處理消息⑤動態(tài)隊列創(chuàng)建⑥消息路由⑦不同硬件系統(tǒng)的集成⑧跨軟件平臺的支持2.3續(xù)59消息中間件的功能2.3續(xù)133134Internet上實現(xiàn)數(shù)據(jù)庫訪問的方式①公共網(wǎng)關(guān)接口CGI②專用API③JDBC與ODBC④數(shù)據(jù)庫引擎2.4數(shù)據(jù)庫訪問中間件60Internet上

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論