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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

《中間件技術原理與應用》

張云勇清華大學出版社參考書:

《COM原理與應用》

潘愛民清華大學出版社

《CORBA原理及應用》

朱其亮北京郵電大學出版社

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

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

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

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

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

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

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

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

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

callworkreturnServerProcessOP2Server-stub

OP3RPCRoutinereceivetransmit45678LocalreturnLocalcallClientProcessOP4Client-stub

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

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

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

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

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

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

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

《中間件技術原理與應用》

張云勇清華大學出版社參考書:

《COM原理與應用》

潘愛民清華大學出版社

《CORBA原理及應用》

朱其亮北京郵電大學出版社

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

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

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

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

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

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

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

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

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

callworkreturnServerProcessOP2Server-stub

OP3RPCRoutinereceivetransmit45678LocalreturnLocalcallClientProcessOP4Client-stub

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論