面向?qū)ο笾虚g件課件_第1頁(yè)
面向?qū)ο笾虚g件課件_第2頁(yè)
面向?qū)ο笾虚g件課件_第3頁(yè)
面向?qū)ο笾虚g件課件_第4頁(yè)
面向?qū)ο笾虚g件課件_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1中間件技術(shù)

第2章面向?qū)ο笾虚g件ODP1中間件技術(shù)

第2章面向?qū)ο笾虚g件ODP1重點(diǎn):

面向?qū)ο笾虚g概念

消息中間件

數(shù)據(jù)庫(kù)訪問(wèn)中間件難點(diǎn):

數(shù)據(jù)庫(kù)訪問(wèn)中間件

消息中間件面向?qū)ο笾虚g件課件23軟件開發(fā)面臨的問(wèn)題:軟件的開發(fā)、修改和維護(hù)變得更加困難。軟件開發(fā)常常超期和超出預(yù)算。由于沒有代碼重用,新軟件的開發(fā)都是從零開始。結(jié)構(gòu)化的軟件開發(fā)方式一種自頂向下的開發(fā)方法,將整個(gè)系統(tǒng)分解成獨(dú)立的模塊,然后逐一實(shí)現(xiàn)這些模塊的功能。缺點(diǎn):完整的系統(tǒng)只能在開發(fā)完成后才能呈現(xiàn)全貌。如果在開始編程時(shí)發(fā)現(xiàn)設(shè)計(jì)中存在缺陷,那么整個(gè)設(shè)計(jì)將被重新構(gòu)造。2面向?qū)ο笾虚g件3軟件開發(fā)面臨的問(wèn)題:2面向?qū)ο笾虚g件34面向?qū)ο蟮能浖_發(fā)方式以一種直觀的方法分析和構(gòu)造系統(tǒng);將整個(gè)系統(tǒng)抽象并模型化兩種開發(fā)方法的區(qū)別結(jié)構(gòu)化的方法:數(shù)據(jù)與功能是分離的;面向?qū)ο蠓椒ǎ簲?shù)據(jù)和相關(guān)的功能捆綁在一起。4面向?qū)ο蟮能浖_發(fā)方式45開放式分布處理參考模型(ODP)起源ISO為了解決異種系統(tǒng)之間的互聯(lián)和互通,提出了OSI-RM。為使分布式系統(tǒng)能處理應(yīng)用的分布,實(shí)現(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不僅是一個(gè)一般標(biāo)準(zhǔn),還是一個(gè)標(biāo)準(zhǔn)的標(biāo)準(zhǔn)。5開放式分布處理參考模型(ODP)起源56對(duì)象中間件(對(duì)象請(qǐng)求代理ORB)ORB提供一種通信機(jī)制透明地在異構(gòu)的通信環(huán)境中傳遞對(duì)象請(qǐng)求,各對(duì)象可以位于本地或遠(yuǎn)程機(jī)器,且對(duì)象之間的客戶機(jī)/服務(wù)器的角色是可以互換的。ORB可以看作和編程語(yǔ)言無(wú)關(guān)的面向?qū)ο蟮腞PC應(yīng)用,被視為從面向?qū)ο筮^(guò)渡到分布式計(jì)算的強(qiáng)大推動(dòng)力量。兩大標(biāo)準(zhǔn):OMG的CORBA;Microsoft的COM/DCOM。產(chǎn)品:Borland公司的Visibroker、IBM公司的ComponentBroker和東方通科技公司的TongBrokerdeng。6對(duì)象中間件(對(duì)象請(qǐng)求代理ORB)67ODP通信模型相關(guān)概念通道(Channel):用于支持分布對(duì)象之間的透明交互。通道包括三部分:存根、綁定器和協(xié)議對(duì)象。①存根(Stub):解決交互過(guò)程中的信息的封裝和解封裝問(wèn)題;②綁定器(Binder):維護(hù)計(jì)算對(duì)象之間的聯(lián)系;③協(xié)議對(duì)象(ProtocolObject):處理實(shí)際的通信。7ODP通信模型相關(guān)概念78端系統(tǒng)資源相關(guān)概念結(jié)點(diǎn)(Node):在管理上獨(dú)立的物理機(jī)器;核(Nucleus):用來(lái)管理結(jié)點(diǎn)的機(jī)制;對(duì)象包(Capsule):對(duì)象的執(zhí)行環(huán)境;對(duì)象串(Cluster):受共管和被共操作的對(duì)象集合。8端系統(tǒng)資源相關(guān)概念89客戶基本工程對(duì)象客戶存根客戶綁定器客戶協(xié)議對(duì)象客戶方服務(wù)器基本工程對(duì)象服務(wù)器綁定器服務(wù)器存根服務(wù)器協(xié)議對(duì)象服務(wù)器方截-轉(zhuǎn)器客戶-服務(wù)器交互9客戶基本客戶客戶客戶協(xié)客戶方服務(wù)器基本服務(wù)器服務(wù)器服務(wù)910消息中間件產(chǎn)生傳統(tǒng)通信必備條件①發(fā)送和接收應(yīng)用程序同時(shí)在線;②通過(guò)網(wǎng)絡(luò)能同時(shí)通信,發(fā)送者和接受者需知道相互間程序的調(diào)用接口。實(shí)際情況:①應(yīng)用程序并不總是同時(shí)運(yùn)行;②網(wǎng)絡(luò)并不總是可用的和可靠的;③在所有者域?qū)?yīng)用程序的改變,要求在其他域也作相應(yīng)改變,不切實(shí)際。消息中間件(MOM)10消息中間件產(chǎn)生消息中間件(MOM)1011消息中間件定義MOM(消息隊(duì)列中間件/通信中間件)依據(jù)消息傳送或消息隊(duì)列的原理來(lái)工作。MOM能夠簡(jiǎn)化應(yīng)用之間數(shù)據(jù)的傳輸,提供可靠的、跨平臺(tái)的消息傳輸手段。MOM支持同步和異步兩種通信模式,其中異步通信模式是基于消息隊(duì)列轉(zhuǎn)發(fā)機(jī)制的。一般來(lái)說(shuō),消息隊(duì)列廣泛采用對(duì)等的分布式計(jì)算模型來(lái)實(shí)現(xiàn)分布式計(jì)算中的同步和異步交互。消息隊(duì)列一般提供多協(xié)議支持、高端服務(wù)和其他系統(tǒng)管理服務(wù),完成可靠的、可擴(kuò)展的異構(gòu)環(huán)境中的通信。11消息中間件定義1112消息消息實(shí)質(zhì)上是一個(gè)由用戶定義的數(shù)據(jù)結(jié)構(gòu),由頭信息和體信息組成。頭消息是對(duì)消息結(jié)構(gòu)的描述,對(duì)整條消息起控制作用,含消息的屬性及相關(guān)的系統(tǒng)信息,如消息標(biāo)識(shí)、消息類型、目的隊(duì)列名、日期時(shí)間等;其中目的隊(duì)列名可表示成“隊(duì)列名@隊(duì)列管理器名”的形式體信息主要是消息的應(yīng)用數(shù)據(jù),是應(yīng)用程序通信的數(shù)據(jù),其具體語(yǔ)義要由通信雙方事先約定,對(duì)中間件來(lái)說(shuō)是一串毫無(wú)意義的二進(jìn)制字節(jié)串。種類:①請(qǐng)求消息②應(yīng)答消息③通知消息12消息1213消息中間件工作機(jī)理應(yīng)用之間以一系列消息的方式進(jìn)行通信。在發(fā)送者和接受者的傳送過(guò)程中,為了避免在傳遞過(guò)程中消息被丟失,消息保存在隊(duì)列中。MOM為消息接收者查看消息提供了一個(gè)緩沖區(qū)域,應(yīng)用把消息發(fā)送到與接收者相關(guān)的隊(duì)列中,如果發(fā)送者想及時(shí)得到反饋,它們就把接收返回消息的隊(duì)列名包含在所有它們發(fā)送的消息中。消息傳遞機(jī)制要保證將發(fā)送者的消息傳送到目的地。在消息傳遞中,應(yīng)用程序之間不必須建立直接的聯(lián)系,從而實(shí)現(xiàn)消息傳送的異步性。13消息中間件工作機(jī)理1314消息中間件消息中間件能夠簡(jiǎn)化應(yīng)用之間數(shù)據(jù)的傳輸,提供可靠的、跨平臺(tái)的消息傳輸手段,實(shí)現(xiàn)應(yīng)用程序之間的協(xié)同。有兩種基本的工作模型:消息隊(duì)列消息傳遞(發(fā)布-訂閱)缺點(diǎn):不支持程序控制的傳遞。產(chǎn)品:東方通科技的TongLINK/Q、BEA的elink、DEC的MessageQ、IBM的MQSeries、MicrosoftMSMQ等。14消息中間件1415消息中間件產(chǎn)生消息中間件一般把工業(yè)標(biāo)準(zhǔn)TCP/IP協(xié)議作為基礎(chǔ)。消息中間件還遵循X/Open的分布式事務(wù)處理模型,適應(yīng)于分布式計(jì)算環(huán)境多樣化、用戶數(shù)目規(guī)?;?、業(yè)務(wù)邏輯復(fù)雜化的發(fā)展要求,實(shí)現(xiàn)消息位置無(wú)關(guān)性、用戶透明性。NAPTCPIPX.25SLIPPPP…應(yīng)用層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)接口層15消息中間件產(chǎn)生NAPTCPIPX.25SLIPPPP…應(yīng)1516本地應(yīng)用程序中間件本地系統(tǒng)系統(tǒng)管理隊(duì)列管理器消息隊(duì)列接口消息路由和排隊(duì)消息通道代理網(wǎng)絡(luò)消息中間件體系結(jié)構(gòu)16本地應(yīng)用程序中間件本地系統(tǒng)系隊(duì)列管理器消息隊(duì)列接口消息路1617消息中間件的功能①無(wú)連接消息傳遞②消息優(yōu)先化③有保障的消息傳遞④事務(wù)處理消息⑤動(dòng)態(tài)隊(duì)列創(chuàng)建⑥消息路由⑦不同硬件系統(tǒng)的集成⑧跨軟件平臺(tái)的支持17消息中間件的功能1718Internet上實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)的方式①公共網(wǎng)關(guān)接口CGI:CommonGatewayInterface,它提供一個(gè)計(jì)算機(jī)程序同HTTP協(xié)議或者WWW服務(wù)的接口,也就是人機(jī)交互接口;有了它,服務(wù)器可以提供交互式的站點(diǎn)以代替過(guò)去靜態(tài)的文本和圖象。常使用C/C++、DELPHI等進(jìn)行編寫。②專用API:(ApplicationProgrammingInterface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件得以訪問(wèn)一組例程的能力,而又無(wú)需訪問(wèn)源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。③JDBC與ODBC:JavaDataBaseConnectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的JavaAPI.ODBCAPI是微軟提供的基于windows平臺(tái),用于訪問(wèn)關(guān)系數(shù)據(jù)庫(kù)的編程接口.④數(shù)據(jù)庫(kù)引擎:是用于存儲(chǔ)、處理和保護(hù)數(shù)據(jù)的核心服務(wù)數(shù)據(jù)庫(kù)訪問(wèn)中間件18Internet上實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)的方式數(shù)據(jù)庫(kù)訪問(wèn)中間件1819數(shù)據(jù)庫(kù)訪問(wèn)中間件在分布式系統(tǒng)中,支持應(yīng)用程序和本地或異地的同構(gòu)或異構(gòu)數(shù)據(jù)源進(jìn)行通信。通過(guò)提供一系列的編程接口,屏蔽不同網(wǎng)絡(luò)協(xié)議,操作系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)平臺(tái)DBMS的差異,允許應(yīng)用程序一致地訪問(wèn)數(shù)據(jù)源。技術(shù)最成熟,應(yīng)用最廣泛的一種中間件技術(shù)。典型例子—ODBC。缺點(diǎn):需要大量的數(shù)據(jù)通信。產(chǎn)品:Oracle公司的SQLConnect、Sybase公司的OpenServer、BEA公司的Weblogic和中科院軟件所的DataAccess等。19數(shù)據(jù)庫(kù)訪問(wèn)中間件1920三層結(jié)構(gòu)的缺陷①對(duì)連接沒有充分利用②對(duì)重復(fù)的數(shù)據(jù)庫(kù)操作沒有優(yōu)化③遠(yuǎn)程訪問(wèn)不可靠

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

第2章面向?qū)ο笾虚g件ODP1中間件技術(shù)

第2章面向?qū)ο笾虚g件ODP33重點(diǎn):

面向?qū)ο笾虚g概念

消息中間件

數(shù)據(jù)庫(kù)訪問(wèn)中間件難點(diǎn):

數(shù)據(jù)庫(kù)訪問(wèn)中間件

消息中間件面向?qū)ο笾虚g件課件3435軟件開發(fā)面臨的問(wèn)題:軟件的開發(fā)、修改和維護(hù)變得更加困難。軟件開發(fā)常常超期和超出預(yù)算。由于沒有代碼重用,新軟件的開發(fā)都是從零開始。結(jié)構(gòu)化的軟件開發(fā)方式一種自頂向下的開發(fā)方法,將整個(gè)系統(tǒng)分解成獨(dú)立的模塊,然后逐一實(shí)現(xiàn)這些模塊的功能。缺點(diǎn):完整的系統(tǒng)只能在開發(fā)完成后才能呈現(xiàn)全貌。如果在開始編程時(shí)發(fā)現(xiàn)設(shè)計(jì)中存在缺陷,那么整個(gè)設(shè)計(jì)將被重新構(gòu)造。2面向?qū)ο笾虚g件3軟件開發(fā)面臨的問(wèn)題:2面向?qū)ο笾虚g件3536面向?qū)ο蟮能浖_發(fā)方式以一種直觀的方法分析和構(gòu)造系統(tǒng);將整個(gè)系統(tǒng)抽象并模型化兩種開發(fā)方法的區(qū)別結(jié)構(gòu)化的方法:數(shù)據(jù)與功能是分離的;面向?qū)ο蠓椒ǎ簲?shù)據(jù)和相關(guān)的功能捆綁在一起。4面向?qū)ο蟮能浖_發(fā)方式3637開放式分布處理參考模型(ODP)起源ISO為了解決異種系統(tǒng)之間的互聯(lián)和互通,提出了OSI-RM。為使分布式系統(tǒng)能處理應(yīng)用的分布,實(shí)現(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不僅是一個(gè)一般標(biāo)準(zhǔn),還是一個(gè)標(biāo)準(zhǔn)的標(biāo)準(zhǔn)。5開放式分布處理參考模型(ODP)起源3738對(duì)象中間件(對(duì)象請(qǐng)求代理ORB)ORB提供一種通信機(jī)制透明地在異構(gòu)的通信環(huán)境中傳遞對(duì)象請(qǐng)求,各對(duì)象可以位于本地或遠(yuǎn)程機(jī)器,且對(duì)象之間的客戶機(jī)/服務(wù)器的角色是可以互換的。ORB可以看作和編程語(yǔ)言無(wú)關(guān)的面向?qū)ο蟮腞PC應(yīng)用,被視為從面向?qū)ο筮^(guò)渡到分布式計(jì)算的強(qiáng)大推動(dòng)力量。兩大標(biāo)準(zhǔn):OMG的CORBA;Microsoft的COM/DCOM。產(chǎn)品:Borland公司的Visibroker、IBM公司的ComponentBroker和東方通科技公司的TongBrokerdeng。6對(duì)象中間件(對(duì)象請(qǐng)求代理ORB)3839ODP通信模型相關(guān)概念通道(Channel):用于支持分布對(duì)象之間的透明交互。通道包括三部分:存根、綁定器和協(xié)議對(duì)象。①存根(Stub):解決交互過(guò)程中的信息的封裝和解封裝問(wèn)題;②綁定器(Binder):維護(hù)計(jì)算對(duì)象之間的聯(lián)系;③協(xié)議對(duì)象(ProtocolObject):處理實(shí)際的通信。7ODP通信模型相關(guān)概念3940端系統(tǒng)資源相關(guān)概念結(jié)點(diǎn)(Node):在管理上獨(dú)立的物理機(jī)器;核(Nucleus):用來(lái)管理結(jié)點(diǎn)的機(jī)制;對(duì)象包(Capsule):對(duì)象的執(zhí)行環(huán)境;對(duì)象串(Cluster):受共管和被共操作的對(duì)象集合。8端系統(tǒng)資源相關(guān)概念4041客戶基本工程對(duì)象客戶存根客戶綁定器客戶協(xié)議對(duì)象客戶方服務(wù)器基本工程對(duì)象服務(wù)器綁定器服務(wù)器存根服務(wù)器協(xié)議對(duì)象服務(wù)器方截-轉(zhuǎn)器客戶-服務(wù)器交互9客戶基本客戶客戶客戶協(xié)客戶方服務(wù)器基本服務(wù)器服務(wù)器服務(wù)4142消息中間件產(chǎn)生傳統(tǒng)通信必備條件①發(fā)送和接收應(yīng)用程序同時(shí)在線;②通過(guò)網(wǎng)絡(luò)能同時(shí)通信,發(fā)送者和接受者需知道相互間程序的調(diào)用接口。實(shí)際情況:①應(yīng)用程序并不總是同時(shí)運(yùn)行;②網(wǎng)絡(luò)并不總是可用的和可靠的;③在所有者域?qū)?yīng)用程序的改變,要求在其他域也作相應(yīng)改變,不切實(shí)際。消息中間件(MOM)10消息中間件產(chǎn)生消息中間件(MOM)4243消息中間件定義MOM(消息隊(duì)列中間件/通信中間件)依據(jù)消息傳送或消息隊(duì)列的原理來(lái)工作。MOM能夠簡(jiǎn)化應(yīng)用之間數(shù)據(jù)的傳輸,提供可靠的、跨平臺(tái)的消息傳輸手段。MOM支持同步和異步兩種通信模式,其中異步通信模式是基于消息隊(duì)列轉(zhuǎn)發(fā)機(jī)制的。一般來(lái)說(shuō),消息隊(duì)列廣泛采用對(duì)等的分布式計(jì)算模型來(lái)實(shí)現(xiàn)分布式計(jì)算中的同步和異步交互。消息隊(duì)列一般提供多協(xié)議支持、高端服務(wù)和其他系統(tǒng)管理服務(wù),完成可靠的、可擴(kuò)展的異構(gòu)環(huán)境中的通信。11消息中間件定義4344消息消息實(shí)質(zhì)上是一個(gè)由用戶定義的數(shù)據(jù)結(jié)構(gòu),由頭信息和體信息組成。頭消息是對(duì)消息結(jié)構(gòu)的描述,對(duì)整條消息起控制作用,含消息的屬性及相關(guān)的系統(tǒng)信息,如消息標(biāo)識(shí)、消息類型、目的隊(duì)列名、日期時(shí)間等;其中目的隊(duì)列名可表示成“隊(duì)列名@隊(duì)列管理器名”的形式體信息主要是消息的應(yīng)用數(shù)據(jù),是應(yīng)用程序通信的數(shù)據(jù),其具體語(yǔ)義要由通信雙方事先約定,對(duì)中間件來(lái)說(shuō)是一串毫無(wú)意義的二進(jìn)制字節(jié)串。種類:①請(qǐng)求消息②應(yīng)答消息③通知消息12消息4445消息中間件工作機(jī)理應(yīng)用之間以一系列消息的方式進(jìn)行通信。在發(fā)送者和接受者的傳送過(guò)程中,為了避免在傳遞過(guò)程中消息被丟失,消息保存在隊(duì)列中。MOM為消息接收者查看消息提供了一個(gè)緩沖區(qū)域,應(yīng)用把消息發(fā)送到與接收者相關(guān)的隊(duì)列中,如果發(fā)送者想及時(shí)得到反饋,它們就把接收返回消息的隊(duì)列名包含在所有它們發(fā)送的消息中。消息傳遞機(jī)制要保證將發(fā)送者的消息傳送到目的地。在消息傳遞中,應(yīng)用程序之間不必須建立直接的聯(lián)系,從而實(shí)現(xiàn)消息傳送的異步性。13消息中間件工作機(jī)理4546消息中間件消息中間件能夠簡(jiǎn)化應(yīng)用之間數(shù)據(jù)的傳輸,提供可靠的、跨平臺(tái)的消息傳輸手段,實(shí)現(xiàn)應(yīng)用程序之間的協(xié)同。有兩種基本的工作模型:消息隊(duì)列消息傳遞(發(fā)布-訂閱)缺點(diǎn):不支持程序控制的傳遞。產(chǎn)品:東方通科技的TongLINK/Q、BEA的elink、DEC的MessageQ、IBM的MQSeries、MicrosoftMSMQ等。14消息中間件4647消息中間件產(chǎn)生消息中間件一般把工業(yè)標(biāo)準(zhǔn)TCP/IP協(xié)議作為基礎(chǔ)。消息中間件還遵循X/Open的分布式事務(wù)處理模型,適應(yīng)于分布式計(jì)算環(huán)境多樣化、用戶數(shù)目規(guī)模化、業(yè)務(wù)邏輯復(fù)雜化的發(fā)展要求,實(shí)現(xiàn)消息位置無(wú)關(guān)性、用戶透明性。NAPTCPIPX.25SLIPPPP…應(yīng)用層傳輸層網(wǎng)絡(luò)層網(wǎng)絡(luò)接口層15消息中間件產(chǎn)生NAPTCPIPX.25SLIPPPP…應(yīng)4748本地應(yīng)用程序中間件本地系統(tǒng)系統(tǒng)管理隊(duì)列管理器消息隊(duì)列接口消息路由和排隊(duì)消息通道代理網(wǎng)絡(luò)消息中間件體系結(jié)構(gòu)16本地應(yīng)用程序中間件本地系統(tǒng)系隊(duì)列管理器消息隊(duì)列接口消息路4849消息中間件的功能①無(wú)連接消息傳遞②消息優(yōu)先化③有保障的消息傳遞④事務(wù)處理消息⑤動(dòng)態(tài)隊(duì)列創(chuàng)建⑥消息路由⑦不同硬件系統(tǒng)的集成⑧跨軟件平臺(tái)的支持17消息中間件的功能4950Internet上實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)的方式①公共網(wǎng)關(guān)接口CGI:CommonGatewayInterface,它提供一個(gè)計(jì)算機(jī)程序同HTTP協(xié)議或者WWW服務(wù)的接口,也就是人機(jī)交互接口;有了它,服務(wù)器可以提供交互式的站點(diǎn)以代替過(guò)去靜態(tài)的文本和圖象。常使用C/C++、DELPHI等進(jìn)行編寫。②專用API:(ApplicationProgrammingInterface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件得以訪問(wèn)一組例程的能力,而又無(wú)需訪問(wèn)源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。③JDBC與ODBC:JavaDataBaseConnectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的JavaAPI.ODBCAPI是微軟提供的基于windows平臺(tái),用于訪問(wèn)關(guān)系數(shù)據(jù)庫(kù)的編程接口.④數(shù)據(jù)庫(kù)引擎:是用于存儲(chǔ)、處理和保護(hù)數(shù)據(jù)的核心服務(wù)數(shù)據(jù)庫(kù)訪問(wèn)中間件18Internet上實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)的方式數(shù)據(jù)庫(kù)訪問(wèn)中間件5051數(shù)據(jù)庫(kù)訪問(wèn)中間件在分布式系統(tǒng)中,支持應(yīng)用程序和本地或異地的同構(gòu)或異構(gòu)數(shù)據(jù)源進(jìn)行通信。通過(guò)提供一系列的編程接口,屏蔽不同網(wǎng)絡(luò)協(xié)議,操作系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)平臺(tái)DBMS的差異,允許應(yīng)用程序一致地訪問(wèn)數(shù)據(jù)源。技術(shù)最成熟,應(yīng)用最廣泛的一種中間件技術(shù)。典型例子—ODBC。缺點(diǎn):需要大量的數(shù)據(jù)通信。產(chǎn)品:Oracle公司的SQLConnect、Sybase公司的OpenServer、BEA公司的Weblogic和中科院軟件所的DataAccess等。19數(shù)據(jù)庫(kù)訪問(wèn)中間件5152三層結(jié)構(gòu)的缺陷①對(duì)連接沒有充分利用②對(duì)重復(fù)的數(shù)據(jù)庫(kù)操作沒有優(yōu)化③遠(yuǎn)程訪問(wèn)不可靠

WWWServer數(shù)據(jù)存取中間件業(yè)務(wù)規(guī)則本地復(fù)制RemoteDBMSServerDBMSJDBCClientClient……AppletSQL20三層結(jié)構(gòu)的缺陷WWWServer數(shù)據(jù)存取中間件業(yè)務(wù)規(guī)則5253數(shù)據(jù)庫(kù)訪問(wèn)中間件主要功能①同時(shí)管理多個(gè)客戶機(jī)連接的多線程②可以接收不同的廠家的協(xié)議③可以用一組管理數(shù)據(jù)操作的業(yè)務(wù)規(guī)則進(jìn)行編程④集中處理密集任務(wù)和將數(shù)據(jù)表達(dá)抽象到最高層⑤分開客戶機(jī)應(yīng)用程序與數(shù)據(jù)庫(kù)管理系統(tǒng)⑥可以異步提供當(dāng)前數(shù)據(jù)表或行的狀態(tài)給客戶機(jī)21數(shù)據(jù)庫(kù)訪問(wèn)中間件主要功能5354數(shù)據(jù)庫(kù)訪問(wèn)中間件數(shù)據(jù)庫(kù)訪問(wèn)中間件專門負(fù)責(zé)和完成對(duì)數(shù)據(jù)庫(kù)訪問(wèn)操作的優(yōu)化、用戶連接數(shù)的管理、保證訪問(wèn)的安全性和可靠性,以及實(shí)現(xiàn)應(yīng)用對(duì)來(lái)自不同廠商的數(shù)據(jù)庫(kù)的訪問(wèn)等,進(jìn)而提高對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的效率。簡(jiǎn)而言之,數(shù)據(jù)庫(kù)訪問(wèn)中間件指一切連接應(yīng)用程序和數(shù)據(jù)庫(kù)的軟件。與一般的中間件一樣,面向數(shù)據(jù)庫(kù)的中間件允許開發(fā)人員通過(guò)單一的、定義良好的API訪問(wèn)另一臺(tái)計(jì)算機(jī)上的數(shù)據(jù)庫(kù)資源。22數(shù)據(jù)庫(kù)訪問(wèn)中間件5455數(shù)據(jù)庫(kù)中間件訪問(wèn)方式直接訪問(wèn)應(yīng)用程序像訪問(wèn)本地?cái)?shù)據(jù)庫(kù)一樣可以直接訪問(wèn)和更新位于遠(yuǎn)端的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)復(fù)制客戶端緩存服務(wù)器端緩存23數(shù)據(jù)庫(kù)中間件訪問(wèn)方式5556數(shù)據(jù)庫(kù)訪問(wèn)中間件類型本地中間件本地中間件是為特定的數(shù)據(jù)庫(kù)設(shè)計(jì)的提供最佳的訪問(wèn)性能。當(dāng)要改變數(shù)據(jù)庫(kù)時(shí),需要對(duì)應(yīng)用程序進(jìn)行很大的修改。呼叫層接口呼叫層接口為多個(gè)數(shù)據(jù)庫(kù)提供了統(tǒng)一的界面。把一般通用的接口呼叫轉(zhuǎn)換成任意的數(shù)據(jù)庫(kù)本地語(yǔ)言,以便使對(duì)數(shù)據(jù)庫(kù)發(fā)出請(qǐng)求的應(yīng)用程序理解。數(shù)據(jù)庫(kù)網(wǎng)關(guān)完成不同數(shù)據(jù)庫(kù)模型的轉(zhuǎn)換,能提供對(duì)大型系統(tǒng)內(nèi)部數(shù)據(jù)的訪問(wèn)。24數(shù)據(jù)庫(kù)訪問(wèn)中間件類型5657幾種常見數(shù)據(jù)庫(kù)訪問(wèn)中間件①ODBC②OLEDB③JDBC④數(shù)據(jù)庫(kù)引擎⑤數(shù)據(jù)庫(kù)網(wǎng)關(guān)應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n……ODBC驅(qū)動(dòng)程序管理器可裝載的驅(qū)動(dòng)程序OracleSQLServerPa

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論