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

下載本文檔

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

文檔簡介

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

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

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

《COM原理與應用》

潘愛民清華大學出版社

《CORBA原理及應用》

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

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

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

各類操作系統、應用軟件;網絡

各類網絡結構、網絡協議。開放系統面臨的問題

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

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

計算機硬件、操作系統、網絡協議、數據庫系統以及開發工具種類繁多,需考慮數據表示、調用接口、處理方式等諸多問題;動態協作

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

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

callworkreturnServerProcessOP2Server-stub

OP3RPCRoutinereceivetransmit45678LocalreturnLocalcallClientProcessOP4Client-stub

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

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

CORBA的IIOPMTS的DCOMJava的sockets——應用級協議的編碼交換

EJB?—〉RMI(JavaRemoteMethodProtocol)優點:方便地實現不同平臺之間的數據轉換。

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

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

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

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

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

《COM原理與應用》

潘愛民清華大學出版社

《CORBA原理及應用》

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

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

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

各類操作系統、應用軟件;網絡

各類網絡結構、網絡協議。開放系統面臨的問題

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

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

計算機硬件、操作系統、網絡協議、數據庫系統以及開發工具種類繁多,需考慮數據表示、調用接口、處理方式等諸多問題;動態協作

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

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

callworkreturnServerProcessOP2Server-stub

OP3RPCRoutinereceivetransmit45678LocalreturnLocalcallClientProcessOP4Client-stub

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

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

CORBA的IIOPMTS的DCOMJava的sockets——應用級協議的編碼交換

EJB?—〉RMI(JavaRemoteMethodProtocol)優點:方便地實現不同平臺之間的數據轉換。

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

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

溫馨提示

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

評論

0/150

提交評論