




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 Page 1 Page 2 Page 2t中間件的概念及特點(diǎn)中間件的概念及特點(diǎn)t中間件技術(shù)分類中間件技術(shù)分類t 中間件舉例中間件舉例t 中間件的應(yīng)用中間件的應(yīng)用t 小結(jié)小結(jié)中間件中間件 Page 3 Page 3t中間件的概念及特點(diǎn)中間件的概念及特點(diǎn)t中間件技術(shù)分類中間件技術(shù)分類t 中間件舉例中間件舉例t 中間件的應(yīng)用中間件的應(yīng)用t 小結(jié)小結(jié)中間件中間件 Page 4 Page 4t 中間件是泛指能夠屏蔽操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議的差異,能夠?yàn)楫悩?gòu)系中間件是泛指能夠屏蔽操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議的差異,能夠?yàn)楫悩?gòu)系統(tǒng)之間提供通訊服務(wù)的軟件。統(tǒng)之間提供通訊服務(wù)的軟件。t 該術(shù)語最早出現(xiàn)在該術(shù)語最早出現(xiàn)在198
2、0年代后期,主要用于描述網(wǎng)絡(luò)連接管理軟年代后期,主要用于描述網(wǎng)絡(luò)連接管理軟件。在件。在1990年代中期,隨著網(wǎng)絡(luò)技術(shù)快速發(fā)展,中間件的概念日年代中期,隨著網(wǎng)絡(luò)技術(shù)快速發(fā)展,中間件的概念日益普及。益普及。什么是中間件?什么是中間件? .硬件操作系統(tǒng)硬件操作系統(tǒng)應(yīng)用應(yīng)用中間件(分布系統(tǒng)服務(wù)) Page 5 Page 5t Software that connects two otherwise separate applications.t IEEE: 中間件通過提供簡單、一致、集成的分布編程環(huán)境,簡化中間件通過提供簡單、一致、集成的分布編程環(huán)境,簡化分布應(yīng)用的設(shè)計(jì)、編程和管理。本質(zhì)上,中間件是一
3、個(gè)分布軟件層,分布應(yīng)用的設(shè)計(jì)、編程和管理。本質(zhì)上,中間件是一個(gè)分布軟件層,抽象了底層分布環(huán)境(網(wǎng)絡(luò)、主機(jī)、操作系統(tǒng)、編程語言)的復(fù)雜抽象了底層分布環(huán)境(網(wǎng)絡(luò)、主機(jī)、操作系統(tǒng)、編程語言)的復(fù)雜性和異構(gòu)性。性和異構(gòu)性。t OMG:中間件就是解決網(wǎng)絡(luò)環(huán)境下互操作問題的軟件,它同時(shí)還:中間件就是解決網(wǎng)絡(luò)環(huán)境下互操作問題的軟件,它同時(shí)還提供事務(wù)、目錄、時(shí)間等其他基本服務(wù)。提供事務(wù)、目錄、時(shí)間等其他基本服務(wù)。本質(zhì)上說,中間件主要解決異構(gòu)網(wǎng)絡(luò)環(huán)境下分布式應(yīng)用軟件的本質(zhì)上說,中間件主要解決異構(gòu)網(wǎng)絡(luò)環(huán)境下分布式應(yīng)用軟件的通信、互操作和協(xié)同問題,可屏蔽并發(fā)控制、事務(wù)管理和網(wǎng)絡(luò)通信通信、互操作和協(xié)同問題,可屏蔽并發(fā)
4、控制、事務(wù)管理和網(wǎng)絡(luò)通信等各種實(shí)現(xiàn)細(xì)節(jié),提高應(yīng)用系統(tǒng)的易移植性、適應(yīng)性和可靠性。不等各種實(shí)現(xiàn)細(xì)節(jié),提高應(yīng)用系統(tǒng)的易移植性、適應(yīng)性和可靠性。不少人將中間件和分布計(jì)算環(huán)境視為等同的概念。少人將中間件和分布計(jì)算環(huán)境視為等同的概念。中間件的定義中間件的定義 Page 6 Page 6t 左右之間的左右之間的“中中”:位于應(yīng)用系統(tǒng)間:位于應(yīng)用系統(tǒng)間, 提供通信服務(wù)提供通信服務(wù)t 上下之間的上下之間的“中中”:位于應(yīng)用系統(tǒng)和操作系統(tǒng)間:位于應(yīng)用系統(tǒng)和操作系統(tǒng)間,提供提供應(yīng)用編程接應(yīng)用編程接口口(抽象抽象)并管理計(jì)算資源并管理計(jì)算資源“中間中間”的理解的理解 Page 7 Page 7中間件的開放中間件的開
5、放 In an open middleware-based distributed systerm, the protocols used by each middleware layer should be the same, as well as the interfaces they offer to applications.1.23 Page 8 Page 8t 中間件的主旨是簡化分布系統(tǒng)的構(gòu)造:在構(gòu)造分布系統(tǒng)的過程中,中間件的主旨是簡化分布系統(tǒng)的構(gòu)造:在構(gòu)造分布系統(tǒng)的過程中,開發(fā)人員經(jīng)常會(huì)遇到網(wǎng)絡(luò)通信、同步、激活開發(fā)人員經(jīng)常會(huì)遇到網(wǎng)絡(luò)通信、同步、激活/去活、并發(fā)、可靠性、去活、并發(fā)
6、、可靠性、事務(wù)性、容錯(cuò)性、安全性、伸縮性、異構(gòu)性等問題,中間件正是事務(wù)性、容錯(cuò)性、安全性、伸縮性、異構(gòu)性等問題,中間件正是輔助應(yīng)用開發(fā)者解決這些問題的軟件系統(tǒng)輔助應(yīng)用開發(fā)者解決這些問題的軟件系統(tǒng)t 中間件的基本思想:抽取分布系統(tǒng)構(gòu)造中的共性問題,封裝這些中間件的基本思想:抽取分布系統(tǒng)構(gòu)造中的共性問題,封裝這些共性問題的解決機(jī)制,對(duì)外提供簡單統(tǒng)一的接口,從而減少開發(fā)共性問題的解決機(jī)制,對(duì)外提供簡單統(tǒng)一的接口,從而減少開發(fā)人員在解決這些共性問題時(shí)的難度和工作量。人員在解決這些共性問題時(shí)的難度和工作量。中間件的基本思想中間件的基本思想 Page 9 Page 9t 通信支持通信支持:大多數(shù)基于中間件
7、的系統(tǒng)包含有分布式操作,即系統(tǒng)需要與其它分布:大多數(shù)基于中間件的系統(tǒng)包含有分布式操作,即系統(tǒng)需要與其它分布式服務(wù)或系統(tǒng)進(jìn)行交互,中間件需要對(duì)此進(jìn)行支持式服務(wù)或系統(tǒng)進(jìn)行交互,中間件需要對(duì)此進(jìn)行支持n屏蔽現(xiàn)代屏蔽現(xiàn)代OS提供的網(wǎng)絡(luò)操作提供的網(wǎng)絡(luò)操作API(如套接字)這組底層、復(fù)雜的接口(如套接字)這組底層、復(fù)雜的接口消息、消息、RPC、RMIt 并發(fā)支持并發(fā)支持:分布式應(yīng)用系統(tǒng)一般需要具有較強(qiáng)的處理能力,即系統(tǒng)可以處理很多:分布式應(yīng)用系統(tǒng)一般需要具有較強(qiáng)的處理能力,即系統(tǒng)可以處理很多的客戶請(qǐng)求。一般需要采用并發(fā)技術(shù)(如多進(jìn)程或多線程),中間件需要對(duì)此提的客戶請(qǐng)求。一般需要采用并發(fā)技術(shù)(如多進(jìn)程或多
8、線程),中間件需要對(duì)此提供支持。供支持。n提供一種提供一種“單線程單線程”或或“單進(jìn)程單進(jìn)程”的編程模型的編程模型t 公共服務(wù)公共服務(wù):將應(yīng)用中的共性抽取出來以公共服務(wù)的形式由中間件實(shí)現(xiàn),減少了系:將應(yīng)用中的共性抽取出來以公共服務(wù)的形式由中間件實(shí)現(xiàn),減少了系統(tǒng)開發(fā)的工作量,并使得應(yīng)用開發(fā)者更能關(guān)注業(yè)務(wù)功能的需求、設(shè)計(jì)和實(shí)現(xiàn),有統(tǒng)開發(fā)的工作量,并使得應(yīng)用開發(fā)者更能關(guān)注業(yè)務(wù)功能的需求、設(shè)計(jì)和實(shí)現(xiàn),有助于提高軟件質(zhì)量。助于提高軟件質(zhì)量。n 名字和目錄服務(wù)、安全服務(wù)、事務(wù)服務(wù)、持久化服務(wù)名字和目錄服務(wù)、安全服務(wù)、事務(wù)服務(wù)、持久化服務(wù)中間件的主要功能中間件的主要功能 Page 10 Page 10GUI
9、應(yīng)用邏輯數(shù)據(jù)庫或其它資源客戶端應(yīng)用服務(wù)器數(shù)據(jù)服務(wù)器中間件中間件中間件中間件API中間件APISQL等網(wǎng)絡(luò)第一層第三層第二層采用了中間件的三層采用了中間件的三層C/SC/S模式模式 Page 11 Page 11中間件協(xié)議所處的層次中間件協(xié)議所處的層次 Page 12 Page 12Standish Group的研究報(bào)告的研究報(bào)告: (分析了分析了100個(gè)關(guān)鍵應(yīng)用系統(tǒng))個(gè)關(guān)鍵應(yīng)用系統(tǒng))t 應(yīng)用開發(fā):業(yè)務(wù)邏輯程序和應(yīng)用邏輯程序平均僅占總程序量的30,而基礎(chǔ)程序占了70 !若是采用新一代的中間件產(chǎn)品,同時(shí)配以可復(fù)用的商務(wù)對(duì)象構(gòu)件,則開發(fā)費(fèi)用可節(jié)省25 至60。t 系統(tǒng)運(yùn)行:沒有使用中間件的應(yīng)用系統(tǒng),
10、其初期的資金及運(yùn)行費(fèi)用的投入要比同規(guī)模的使用中間件的應(yīng)用系統(tǒng)多一倍。t 開發(fā)周期:基礎(chǔ)軟件的開發(fā)是一件極耗時(shí)的工作。若使用標(biāo)準(zhǔn)商業(yè)中間件則可縮短開發(fā)周期5075。t 減少項(xiàng)目開發(fā)風(fēng)險(xiǎn):沒有使用標(biāo)準(zhǔn)商業(yè)中間件的關(guān)鍵應(yīng)用系統(tǒng)開發(fā)項(xiàng)目的失敗率高于90。t 應(yīng)用集成:依靠標(biāo)準(zhǔn)的中間件可以將現(xiàn)有的應(yīng)用、新的應(yīng)用和購買的商務(wù)構(gòu)件融合在一起進(jìn)行應(yīng)用集成。中間件的優(yōu)越性中間件的優(yōu)越性 Page 13 Page 13t 系統(tǒng)維護(hù):基礎(chǔ)(中間件軟件)的自我開發(fā)是要付出很高代價(jià)的、此 外,每年維護(hù)自我開發(fā)的基礎(chǔ)(中間件)軟件的開支則需要當(dāng)初開發(fā)費(fèi)用的15-25,每年應(yīng)用程序的維護(hù)開支也還需要當(dāng)初項(xiàng)目總費(fèi)用的10-2
11、0左右。而在一般情況下,購買標(biāo)準(zhǔn)商業(yè)中間件每年只需付產(chǎn)品價(jià)格的15-20的維護(hù)費(fèi)。t 質(zhì)量:基于企業(yè)自我建造的基礎(chǔ)(中間件)軟件平臺(tái)上的應(yīng)用系統(tǒng),每增加一個(gè)新的模塊,就要相應(yīng)地在基礎(chǔ)(中間件)軟件之上進(jìn)行改動(dòng)。 Standish Group在調(diào)研過程中,曾在中間件的優(yōu)越性(中間件的優(yōu)越性(2 2) Page 14 Page 14t中間件的概念及特點(diǎn)中間件的概念及特點(diǎn)t中間件技術(shù)分類中間件技術(shù)分類t 中間件舉例中間件舉例t 中間件的應(yīng)用中間件的應(yīng)用t 小結(jié)小結(jié)中間件中間件 Page 15 Page 15t 由于中間件技術(shù)和產(chǎn)品正在快速的發(fā)展,要精確的給出其完整由于中間件技術(shù)和產(chǎn)品正在快速的發(fā)展,
12、要精確的給出其完整的分類目前尚有一定的困難。一種比較常見的分類方式:的分類目前尚有一定的困難。一種比較常見的分類方式:nRPC中間件中間件nORB中間件中間件n消息中間件消息中間件n數(shù)據(jù)庫中間件數(shù)據(jù)庫中間件n事務(wù)處理中間件事務(wù)處理中間件nWeb中間件中間件n企業(yè)應(yīng)用集成中間件企業(yè)應(yīng)用集成中間件nInternet資源共享中間件資源共享中間件n專用中間件專用中間件 報(bào)表制作與數(shù)據(jù)分析、安全、地圖應(yīng)用系統(tǒng)、工業(yè)生產(chǎn)管理中間件的分類中間件的分類 基礎(chǔ)通信中間基礎(chǔ)通信中間件件 Page 16 Page 16t中間件的概念及特點(diǎn)中間件的概念及特點(diǎn)t中間件技術(shù)分類中間件技術(shù)分類t 中間件舉例中間件舉例t 中
13、間件的應(yīng)用中間件的應(yīng)用t 小結(jié)小結(jié)中間件中間件 Page 17 Page 17t RPC中間件中間件t ORB中間件中間件t 消息中間件消息中間件t 數(shù)據(jù)庫中間件數(shù)據(jù)庫中間件t 事務(wù)處理中間件事務(wù)處理中間件t 應(yīng)用服務(wù)器中間件應(yīng)用服務(wù)器中間件t Web中間件中間件t 企業(yè)應(yīng)用集成企業(yè)應(yīng)用集成EAI中間件中間件中間件舉例中間件舉例 Page 18 Page 18t RPC中間件中間件t ORB中間件中間件t 消息中間件消息中間件t 數(shù)據(jù)庫中間件數(shù)據(jù)庫中間件t 事務(wù)處理中間件事務(wù)處理中間件t 應(yīng)用服務(wù)器中間件應(yīng)用服務(wù)器中間件t Web中間件中間件t 企業(yè)應(yīng)用集成企業(yè)應(yīng)用集成EAI中間件中間件中間件
14、舉例中間件舉例 Page 19 Page 19RPC(Remote Procedure Call)RPC(Remote Procedure Call):第一個(gè)得到廣泛認(rèn)可的通第一個(gè)得到廣泛認(rèn)可的通信中間件技術(shù)信中間件技術(shù)t 不少人認(rèn)為是最初由不少人認(rèn)為是最初由 Sun 微系統(tǒng)提出微系統(tǒng)提出 RFC,并應(yīng)用于,并應(yīng)用于Unix系統(tǒng)系統(tǒng)t IETF ONC 憲章重新修訂了憲章重新修訂了Sun版本,使得版本,使得ONC RPC協(xié)議成為協(xié)議成為IETF標(biāo)準(zhǔn)協(xié)議標(biāo)準(zhǔn)協(xié)議t 兩種主流標(biāo)準(zhǔn):兩種主流標(biāo)準(zhǔn): n OSF(Open System Foundation)/DCE (Distributed Comp
15、uting Environment)的RPC,n SUN/ONC(Open Network Computing)的RPCRPCRPC中間件中間件 Page 20 Page 20t 操作系統(tǒng):運(yùn)行調(diào)用和被調(diào)用進(jìn)程的計(jì)算機(jī)可能有明顯操作系統(tǒng):運(yùn)行調(diào)用和被調(diào)用進(jìn)程的計(jì)算機(jī)可能有明顯不同的體系結(jié)構(gòu)和數(shù)據(jù)表示格式不同的體系結(jié)構(gòu)和數(shù)據(jù)表示格式t 網(wǎng)絡(luò)通信:調(diào)用進(jìn)程和被調(diào)用進(jìn)程間的網(wǎng)絡(luò)比本地計(jì)算網(wǎng)絡(luò)通信:調(diào)用進(jìn)程和被調(diào)用進(jìn)程間的網(wǎng)絡(luò)比本地計(jì)算機(jī)有更復(fù)雜的特性。例如,它可能限制消息尺寸,并且機(jī)有更復(fù)雜的特性。例如,它可能限制消息尺寸,并且有丟失和重排消息的可能,安全問題有丟失和重排消息的可能,安全問題t 編程
16、語言:跨語言之間的互操作問題編程語言:跨語言之間的互操作問題RPCRPC的面臨的主要挑戰(zhàn)的面臨的主要挑戰(zhàn) Page 21 Page 21t 沿用用戶熟悉的編程模式,調(diào)用遠(yuǎn)端過程并將結(jié)果返沿用用戶熟悉的編程模式,調(diào)用遠(yuǎn)端過程并將結(jié)果返回。通信一般采用同步方式(回。通信一般采用同步方式(Request-Wait-ReplyRequest-Wait-Reply)n允許程序允許程序(Client)調(diào)用駐留在其他機(jī)器上的過程調(diào)用駐留在其他機(jī)器上的過程(Server),并且使遠(yuǎn)程的過程調(diào)用看起來和本地的過,并且使遠(yuǎn)程的過程調(diào)用看起來和本地的過程調(diào)用沒有區(qū)別程調(diào)用沒有區(qū)別t 基本方法:引入存根(基本方法:引
17、入存根(StubStub)的概念)的概念RPCRPC的基本思想的基本思想 Page 22 Page 22RPCRPC的工作機(jī)制的工作機(jī)制 t 在發(fā)送方的地址空間里創(chuàng)建一個(gè)遠(yuǎn)程組件在發(fā)送方的地址空間里創(chuàng)建一個(gè)遠(yuǎn)程組件( (如過程如過程) )的代理,在的代理,在接收方的地址空間里創(chuàng)建一個(gè)樁(接收方的地址空間里創(chuàng)建一個(gè)樁(StubStub)。)。發(fā)送方與代理通信,代發(fā)送方與代理通信,代理再和接收方側(cè)的理再和接收方側(cè)的StubStub通信。通信。t 在這種體系結(jié)構(gòu)下,組件間的遠(yuǎn)程通信封裝在代理在這種體系結(jié)構(gòu)下,組件間的遠(yuǎn)程通信封裝在代理StubStub通信通信中,它是由建立在中間件中,它是由建立在中間
18、件APIAPI基礎(chǔ)上的基礎(chǔ)上的IDLIDL編譯器生成的。發(fā)送方只編譯器生成的。發(fā)送方只和本地代理通信,接收方從本地和本地代理通信,接收方從本地StubStub得到所有的請(qǐng)求。得到所有的請(qǐng)求。 調(diào)用過程調(diào)用過程接收方接收方Stub遠(yuǎn)程過程遠(yuǎn)程過程發(fā)送方發(fā)送方Stub進(jìn)程邊界進(jìn)程邊界 Page 23 Page 23RPC的工作機(jī)制的工作機(jī)制(續(xù)續(xù)1)t Service interface: the procedures that are available for remote callingt Invocation semantics choice: at-least-once or at-mo
19、st-oncet Generally implemented over request-reply protocolt Building blocksnCommunication modulenClient stub procedure: marshalling, sending, unmarshallingnDispatcher: select one of the server stub proceduresnServer stub procedure: unmarshalling, calling, marshallingclient RequestReplyCommunicationC
20、ommunication module moduledispatcherservice client stub server stubprocedureprocedureclient process server process procedureprogram Page 24 Page 24PRC的參數(shù)傳遞的參數(shù)傳遞 Page 25 Page 25編寫客戶與服務(wù)器的步驟編寫客戶與服務(wù)器的步驟 Page 26 Page 26t 至少一次語義至少一次語義(at least one semantics):這種方法要求不斷這種方法要求不斷重試直至應(yīng)答消息到來。它保證重試直至應(yīng)答消息到來。它保證RPC
21、至少要執(zhí)行一次,但至少要執(zhí)行一次,但也有可能執(zhí)行多次。也有可能執(zhí)行多次。- 缺省值缺省值t 最多一次語義(最多一次語義(at most once semantics):若有問題立即放若有問題立即放棄并報(bào)告失敗。它確保棄并報(bào)告失敗。它確保RPC最多執(zhí)行一次,但可能沒有執(zhí)最多執(zhí)行一次,但可能沒有執(zhí)行行t 不作任何保證。不作任何保證。RPC可以不被執(zhí)行或執(zhí)行相當(dāng)多次。當(dāng)服可以不被執(zhí)行或執(zhí)行相當(dāng)多次。當(dāng)服務(wù)器崩潰時(shí),客戶得不到任何幫助和保證。這種方法最大務(wù)器崩潰時(shí),客戶得不到任何幫助和保證。這種方法最大的優(yōu)點(diǎn)是易實(shí)現(xiàn)的優(yōu)點(diǎn)是易實(shí)現(xiàn) t 這三種方法都不是成熟的方法。人們需要的是精確的執(zhí)行這三種方法都不是
22、成熟的方法。人們需要的是精確的執(zhí)行一次的語義一次的語義(exactly once semantics),但通常是不容易實(shí)現(xiàn)但通常是不容易實(shí)現(xiàn)的的RPCRPC消息的語義消息的語義 Page 27 Page 27Client側(cè)的側(cè)的stub如何定位如何定位servert 可能的解決方法:可能的解決方法:1.1. 當(dāng)系統(tǒng)生成與調(diào)用者對(duì)應(yīng)的當(dāng)系統(tǒng)生成與調(diào)用者對(duì)應(yīng)的stubstub時(shí),將遠(yuǎn)程過程的地址也時(shí),將遠(yuǎn)程過程的地址也并入其中。并入其中。 不靈活!不靈活!2.2. 在進(jìn)行調(diào)用之前,與調(diào)用者對(duì)應(yīng)的在進(jìn)行調(diào)用之前,與調(diào)用者對(duì)應(yīng)的stubstub向系統(tǒng)中的其他節(jié)向系統(tǒng)中的其他節(jié)點(diǎn)進(jìn)行組播,請(qǐng)求有關(guān)的節(jié)點(diǎn)
23、通報(bào)其地址。點(diǎn)進(jìn)行組播,請(qǐng)求有關(guān)的節(jié)點(diǎn)通報(bào)其地址。一系列的消息傳遞!一系列的消息傳遞!3.3.由系統(tǒng)管理一個(gè)表,其表項(xiàng)內(nèi)容為由系統(tǒng)管理一個(gè)表,其表項(xiàng)內(nèi)容為節(jié)點(diǎn)地址節(jié)點(diǎn)地址該節(jié)點(diǎn)上將運(yùn)行的遠(yuǎn)程過程的名字該節(jié)點(diǎn)上將運(yùn)行的遠(yuǎn)程過程的名字常用的方法!常用的方法! Page 28 Page 28t 目標(biāo)目標(biāo): 提供一個(gè)可以作為分布式應(yīng)用平臺(tái)的一致的、提供一個(gè)可以作為分布式應(yīng)用平臺(tái)的一致的、無縫環(huán)境。無縫環(huán)境。t 提供的環(huán)境由一組工具、服務(wù)以及使它們能夠有提供的環(huán)境由一組工具、服務(wù)以及使它們能夠有效工作的內(nèi)部結(jié)構(gòu)組成。效工作的內(nèi)部結(jié)構(gòu)組成。t DCE可運(yùn)行在許多不同的機(jī)器、操作系統(tǒng)以及網(wǎng)可運(yùn)行在許多不同的
24、機(jī)器、操作系統(tǒng)以及網(wǎng)絡(luò)上。絡(luò)上。t DCE可以在許多領(lǐng)域內(nèi)同現(xiàn)有的標(biāo)準(zhǔn)協(xié)同工作??梢栽谠S多領(lǐng)域內(nèi)同現(xiàn)有的標(biāo)準(zhǔn)協(xié)同工作。t 編程模式為客戶編程模式為客戶/服務(wù)器模式。服務(wù)器模式。RPCRPC中間件例:中間件例:DCEDCE Page 29 Page 29DCEDCE部分合成的大致思路部分合成的大致思路 硬件硬件主操作系統(tǒng)和網(wǎng)絡(luò)主操作系統(tǒng)和網(wǎng)絡(luò)DCE線程線程DCE遠(yuǎn)程過程調(diào)用、認(rèn)證遠(yuǎn)程過程調(diào)用、認(rèn)證文件服務(wù)文件服務(wù)時(shí)間服務(wù)時(shí)間服務(wù) 目錄服務(wù)目錄服務(wù)安全服務(wù)安全服務(wù)分布式應(yīng)用分布式應(yīng)用 Page 30 Page 30t DCE的主要目的:使系統(tǒng)中任何進(jìn)程都可以訪問所有資源t 目錄服務(wù):記錄所有資源位
25、置并提供它們的用戶友好名稱n資源:用戶、機(jī)器、信元、服務(wù)器、服務(wù)、文件、安全數(shù)據(jù)n每個(gè)資源有個(gè)獨(dú)立的名字n信元名:符合X.500 規(guī)范DCEDCE的目錄服務(wù)的目錄服務(wù) DCE名字可有五個(gè)部分名字可有五個(gè)部分 Page 31 Page 31DCEDCE中客戶到服務(wù)器的綁定中客戶到服務(wù)器的綁定 Page 32 Page 32t 假設(shè):拍賣期間只開放一個(gè)拍賣品給競拍者競價(jià),拍賣結(jié)假設(shè):拍賣期間只開放一個(gè)拍賣品給競拍者競價(jià),拍賣結(jié)束時(shí),拍賣者宣布拍賣結(jié)果。束時(shí),拍賣者宣布拍賣結(jié)果。t 參考實(shí)現(xiàn)方式:參考實(shí)現(xiàn)方式:n 拍賣程序?yàn)楦偱恼咛峁﹥蓚€(gè)遠(yuǎn)程過程:一個(gè)用于競拍賣程序?yàn)楦偱恼咛峁﹥蓚€(gè)遠(yuǎn)程過程:一個(gè)用于
26、競拍者注冊(cè),一個(gè)用于競拍者投標(biāo)。拍者注冊(cè),一個(gè)用于競拍者投標(biāo)。n每個(gè)競拍者程序均提供如下遠(yuǎn)程過程每個(gè)競拍者程序均提供如下遠(yuǎn)程過程: (1)允許拍賣者向)允許拍賣者向競拍者宣布拍賣開始;競拍者宣布拍賣開始; (2)允許拍賣者向)允許拍賣者向競拍者通告最新標(biāo)價(jià);競拍者通告最新標(biāo)價(jià); (3)允許拍賣者向)允許拍賣者向競拍者宣布拍賣結(jié)束。競拍者宣布拍賣結(jié)束。應(yīng)用例應(yīng)用例: : 基于基于RPCRPC的拍賣系統(tǒng)的拍賣系統(tǒng) Page 33 Page 33t 簡單的簡單的Call/Return語法,適合小型簡單的不需要采用異步語法,適合小型簡單的不需要采用異步通信方式的應(yīng)用。通信方式的應(yīng)用。t 不足:不足:n
27、 一對(duì)一通信方式。不太適合大型的關(guān)鍵型應(yīng)用。一對(duì)一通信方式。不太適合大型的關(guān)鍵型應(yīng)用。關(guān)鍵型應(yīng)用需考慮網(wǎng)絡(luò)或系統(tǒng)的故障、處理多個(gè)網(wǎng)關(guān)鍵型應(yīng)用需考慮網(wǎng)絡(luò)或系統(tǒng)的故障、處理多個(gè)網(wǎng)絡(luò)連接、可移植性、緩沖及流量控制、進(jìn)程之間的絡(luò)連接、可移植性、緩沖及流量控制、進(jìn)程之間的同步等多種問題。同步等多種問題。n只能建立分布式應(yīng)用之間的靜態(tài)連接關(guān)系。只能建立分布式應(yīng)用之間的靜態(tài)連接關(guān)系。一旦樁程序和一旦樁程序和C/S端的應(yīng)用編譯、連接在一起,則端的應(yīng)用編譯、連接在一起,則客戶端的功能就不能再改變)??蛻舳说墓δ芫筒荒茉俑淖儯?。RPCRPC中間件小結(jié)中間件小結(jié) Page 34 Page 34t RPC中間件中間件
28、t ORB中間件中間件t 消息中間件消息中間件t 數(shù)據(jù)庫中間件數(shù)據(jù)庫中間件t 事務(wù)處理中間件事務(wù)處理中間件t 應(yīng)用服務(wù)器中間件應(yīng)用服務(wù)器中間件t Web中間件中間件t 企業(yè)應(yīng)用集成企業(yè)應(yīng)用集成EAI中間件中間件中間件舉例中間件舉例 Page 35 Page 35ORB中間件中間件tORB中間件基于遠(yuǎn)程方法調(diào)用技術(shù)中間件基于遠(yuǎn)程方法調(diào)用技術(shù)t遠(yuǎn)程過程調(diào)用系統(tǒng)試圖使對(duì)另一臺(tái)機(jī)器上的過程進(jìn)行遠(yuǎn)程過程調(diào)用系統(tǒng)試圖使對(duì)另一臺(tái)機(jī)器上的過程進(jìn)行調(diào)用看起來像是對(duì)本地同一地址空間中過程進(jìn)行調(diào)用;調(diào)用看起來像是對(duì)本地同一地址空間中過程進(jìn)行調(diào)用;t遠(yuǎn)程方法調(diào)用技術(shù)把編程的級(jí)別從過程調(diào)用抬高到對(duì)遠(yuǎn)程方法調(diào)用技術(shù)把編程
29、的級(jí)別從過程調(diào)用抬高到對(duì)象的調(diào)用,其本質(zhì)上模仿象的調(diào)用,其本質(zhì)上模仿RPC技術(shù),但是多了對(duì)象引用技術(shù),但是多了對(duì)象引用的概念。的概念。 t著名的著名的ORB標(biāo)準(zhǔn):標(biāo)準(zhǔn):nOMG的的CORBA ORB (產(chǎn)品:產(chǎn)品: IONA的的Orbix, OrbixWeb, Borland 的的 VisiBroker)nMicrosoft 的的 DCOM ORBnJava 的的RMI Page 36 Page 36object Aobject BskeletonRequestproxy for BReplyCommunicationRemote Remote referenceCommunication m
30、odule modulereference module modulefor Bs class& dispatcherremoteclient servertranslates between local and remote object references and creates remote object references. Uses remote object tableThe architecture of RMIRMI software - between application level objects and communication and remote refer
31、ence modulesDispatcher - gets request from communication module and invokes method in skeleton (using methodID in message).carries out Request-reply protocolProxy - makes RMI transparent to client. Class implements remote interface. Marshals requests and unmarshals results. Forwards request.Skeleton
32、 - implements methods in remote interface. Unmarshals requests and marshals results. Invokes method in remote object. Page 37 Page 37t 與與RPC的區(qū)別:用面向?qū)ο蠓椒ㄈ〈诉^程。的區(qū)別:用面向?qū)ο蠓椒ㄈ〈诉^程。t 參考實(shí)現(xiàn)方式:參考實(shí)現(xiàn)方式:n 拍賣對(duì)象為競拍者提供兩個(gè)拍賣對(duì)象為競拍者提供兩個(gè)遠(yuǎn)程方法遠(yuǎn)程方法:一個(gè)用于競:一個(gè)用于競拍者注冊(cè),一個(gè)用于競拍者投標(biāo)。拍者注冊(cè),一個(gè)用于競拍者投標(biāo)。n每個(gè)競拍者對(duì)象均提供如下每個(gè)競拍者對(duì)象均提供如下遠(yuǎn)程方法遠(yuǎn)程方法:
33、 (1)允許拍賣者向)允許拍賣者向競拍者宣布拍賣開始;競拍者宣布拍賣開始; (2)允許拍賣者向)允許拍賣者向競拍者通告最新標(biāo)價(jià);競拍者通告最新標(biāo)價(jià); (3)允許拍賣者向)允許拍賣者向競拍者宣布拍賣結(jié)束。實(shí)現(xiàn)方式競拍者宣布拍賣結(jié)束。實(shí)現(xiàn)方式與與RMI方式類似方式類似。例:基于例:基于ORBORB的拍賣系統(tǒng)的拍賣系統(tǒng) Page 38 Page 38n每個(gè)對(duì)象每個(gè)對(duì)象(拍賣者和競拍者拍賣者和競拍者)必須在必須在ORB注冊(cè)注冊(cè)并接受并接受ORB請(qǐng)求。請(qǐng)求。n通過通過ORB競拍者競拍者向拍賣者對(duì)象發(fā)送注冊(cè)請(qǐng)求并參與投標(biāo);向拍賣者對(duì)象發(fā)送注冊(cè)請(qǐng)求并參與投標(biāo);拍賣者可調(diào)用每個(gè)競拍者對(duì)象的方法來宣布拍拍賣者可
34、調(diào)用每個(gè)競拍者對(duì)象的方法來宣布拍賣開始,通告最新標(biāo)價(jià),宣布拍賣結(jié)束。賣開始,通告最新標(biāo)價(jià),宣布拍賣結(jié)束。例:基于例:基于ORBORB的拍賣系統(tǒng)(續(xù))的拍賣系統(tǒng)(續(xù)) Page 39 Page 39t 基于面向?qū)ο蠹夹g(shù),利用軟件總線基于面向?qū)ο蠹夹g(shù),利用軟件總線ORB調(diào)用遠(yuǎn)端的對(duì)象。調(diào)用遠(yuǎn)端的對(duì)象。t 適用:對(duì)象接口變化不頻繁,不會(huì)導(dǎo)致代碼經(jīng)常被重新適用:對(duì)象接口變化不頻繁,不會(huì)導(dǎo)致代碼經(jīng)常被重新編譯及鏈接的情況。編譯及鏈接的情況。t 不足:主要采用同步、點(diǎn)對(duì)點(diǎn)通信方式。當(dāng)網(wǎng)絡(luò)層不可不足:主要采用同步、點(diǎn)對(duì)點(diǎn)通信方式。當(dāng)網(wǎng)絡(luò)層不可靠時(shí),很難定位錯(cuò)誤。靠時(shí),很難定位錯(cuò)誤。ORBORB中間件小結(jié)中間
35、件小結(jié) Page 40 Page 40t RPC中間件中間件t ORB中間件中間件t 消息中間件消息中間件t 數(shù)據(jù)庫中間件數(shù)據(jù)庫中間件t 事務(wù)處理中間件事務(wù)處理中間件t 應(yīng)用服務(wù)器中間件應(yīng)用服務(wù)器中間件t Web中間件中間件t 企業(yè)應(yīng)用集成企業(yè)應(yīng)用集成EAI中間件中間件中間件舉例中間件舉例 Page 41 Page 41t 大多采用同步通信:客戶發(fā)出調(diào)用后,必須等待服務(wù)對(duì)象完大多采用同步通信:客戶發(fā)出調(diào)用后,必須等待服務(wù)對(duì)象完成處理并返回結(jié)果后才能繼續(xù)執(zhí)行;成處理并返回結(jié)果后才能繼續(xù)執(zhí)行;t 客戶和服務(wù)對(duì)象的生命周期緊密耦合:客戶進(jìn)程和服務(wù)對(duì)象客戶和服務(wù)對(duì)象的生命周期緊密耦合:客戶進(jìn)程和服務(wù)對(duì)
36、象進(jìn)程都必須正常運(yùn)行;如果由于服務(wù)對(duì)象崩潰或者網(wǎng)絡(luò)故障進(jìn)程都必須正常運(yùn)行;如果由于服務(wù)對(duì)象崩潰或者網(wǎng)絡(luò)故障導(dǎo)致客戶的請(qǐng)求不可達(dá),客戶會(huì)接收到異常;導(dǎo)致客戶的請(qǐng)求不可達(dá),客戶會(huì)接收到異常;t 點(diǎn)對(duì)點(diǎn)通信:客戶的一次調(diào)用只發(fā)送給某個(gè)單獨(dú)的目標(biāo)對(duì)象。點(diǎn)對(duì)點(diǎn)通信:客戶的一次調(diào)用只發(fā)送給某個(gè)單獨(dú)的目標(biāo)對(duì)象。 t 當(dāng)然,現(xiàn)在的基于當(dāng)然,現(xiàn)在的基于ORB、EJB的應(yīng)用服務(wù)器等都支持基于消的應(yīng)用服務(wù)器等都支持基于消息的通信息的通信RPCRPC、ORBORB的一些問題的一些問題 Page 42 Page 42t 消息中間件消息中間件MOM (Message Oriented Middleware) 指的是利用高
37、指的是利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺(tái)無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進(jìn)行效可靠的消息傳遞機(jī)制進(jìn)行平臺(tái)無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進(jìn)行分布式系統(tǒng)的集成。分布式系統(tǒng)的集成。n主要通過消息傳遞和消息隊(duì)列模型,消息傳遞和消息隊(duì)列模型,來完成分布異構(gòu)環(huán)境下數(shù)據(jù)和控制的處理,采用多種機(jī)制來保證消息可靠n可在分布環(huán)境下擴(kuò)展進(jìn)程間的通信,并支持多通訊協(xié)議、語言、應(yīng)用程序、硬件和軟件平臺(tái)、高效、安全的傳輸。t 適用于需要在多個(gè)進(jìn)程之間進(jìn)行可靠的數(shù)據(jù)傳送的分布式環(huán)境,且適用于需要在多個(gè)進(jìn)程之間進(jìn)行可靠的數(shù)據(jù)傳送的分布式環(huán)境,且特別適合松耦合的系統(tǒng)間的通信。特別適合松耦合的系統(tǒng)間的通信。n常采用異步通信方式
38、,消息接收者和發(fā)送者的生命期可以是不一樣的n支持一對(duì)一、一對(duì)多,多對(duì)一、多對(duì)多通信消息中間件消息中間件MOMMOM Page 43 Page 43tCommunication using messagestMessages stored in message queuestOptional message server (broker) decouples client and server基本思想基本思想 Page 44 Page 44t 消息消息= 消息頭消息頭(路由信息路由信息) + 消息正文消息正文n支持異步發(fā)送支持異步發(fā)送n不指定格式不指定格式(松散約束松散約束)t 目的地目的地 可
39、可= 命名的消息存儲(chǔ)倉庫命名的消息存儲(chǔ)倉庫n解耦合消息的產(chǎn)生者與消費(fèi)者解耦合消息的產(chǎn)生者與消費(fèi)者n便于重定向或者改變調(diào)用流程便于重定向或者改變調(diào)用流程t 運(yùn)行環(huán)境運(yùn)行環(huán)境= 多樣化的發(fā)送方式多樣化的發(fā)送方式n服務(wù)質(zhì)量服務(wù)質(zhì)量: Reliable, transacted, prioritized, deadline-basedn通信方式通信方式: publish-and-subscribe、 MessageQueuing等等.t 消息交換模式消息交換模式nRequest-response, fire-and-forget, request-async response主要概念主要概念 Page
40、45 Page 45t 主要功能:主要功能: 消息隊(duì)列、觸發(fā)器功能、傳遞消息、數(shù)據(jù)格式翻譯、安全性消息隊(duì)列、觸發(fā)器功能、傳遞消息、數(shù)據(jù)格式翻譯、安全性(對(duì)隊(duì)列存取進(jìn)行權(quán)限控制)、數(shù)據(jù)廣播、錯(cuò)誤恢復(fù)、在網(wǎng)(對(duì)隊(duì)列存取進(jìn)行權(quán)限控制)、數(shù)據(jù)廣播、錯(cuò)誤恢復(fù)、在網(wǎng)絡(luò)中定位資源、基于成本的路由功能、消息及請(qǐng)求的優(yōu)先級(jí)絡(luò)中定位資源、基于成本的路由功能、消息及請(qǐng)求的優(yōu)先級(jí)設(shè)定、擴(kuò)展的調(diào)試功能、設(shè)定、擴(kuò)展的調(diào)試功能、.主要功能主要功能 Page 46 Page 46t MOM的幾種形式:的幾種形式:n消息傳遞消息傳遞(MessagePassing):面向連接,程序之間建立直接的邏輯連接面向連接,程序之間建立直接
41、的邏輯連接(主(主 要要 的的 模模 式式 是是 發(fā)布發(fā)布/ 訂訂 購購 (Publish-Subscribe) 方方 式。式。 )n消息隊(duì)列消息隊(duì)列(MessageQueuing):程序之間進(jìn)行非直接通信的非連接模型。程序之間進(jìn)行非直接通信的非連接模型。t 典型典型MOM產(chǎn)品:產(chǎn)品: nDEC的的MessageQ, IBM的的MQSeries, Microsoft的的MSMQ,TIBCO的的TIB/Rendezvous, 清華北美的清華北美的TH-MT, J2EE的的JMS。n不少產(chǎn)品可以同時(shí)支持上述兩種方式不少產(chǎn)品可以同時(shí)支持上述兩種方式MOMMOM的工作方式的工作方式 Page 47 P
42、age 47t 由在網(wǎng)絡(luò)上發(fā)布消息的應(yīng)用和訂購特定主題消息的應(yīng)用共同組成。當(dāng)消息由由在網(wǎng)絡(luò)上發(fā)布消息的應(yīng)用和訂購特定主題消息的應(yīng)用共同組成。當(dāng)消息由產(chǎn)生者按一定的主題發(fā)布后,消息的訂購者根據(jù)自己的需要,接收特定主題產(chǎn)生者按一定的主題發(fā)布后,消息的訂購者根據(jù)自己的需要,接收特定主題的消息。的消息。發(fā)布發(fā)布- -訂購方式的消息中間件訂購方式的消息中間件 Page 48 Page 48t 最大好處:提供了位置透明性,實(shí)現(xiàn)了應(yīng)用開發(fā)的松耦合性和企業(yè)體最大好處:提供了位置透明性,實(shí)現(xiàn)了應(yīng)用開發(fā)的松耦合性和企業(yè)體系結(jié)構(gòu)的高度靈活,適合于企業(yè)應(yīng)用的集成。系結(jié)構(gòu)的高度靈活,適合于企業(yè)應(yīng)用的集成。n消息的發(fā)送和
43、接收根據(jù)主題進(jìn)行,消息的生產(chǎn)者和接收者無需知道對(duì)方的存消息的發(fā)送和接收根據(jù)主題進(jìn)行,消息的生產(chǎn)者和接收者無需知道對(duì)方的存在、位置或狀態(tài),在、位置或狀態(tài), 處理過程簡單,簡化了應(yīng)用的開發(fā)處理過程簡單,簡化了應(yīng)用的開發(fā)n支持動(dòng)態(tài)的系統(tǒng)重新配置,新應(yīng)用的增加不會(huì)影響系統(tǒng)的正常運(yùn)行。參與系支持動(dòng)態(tài)的系統(tǒng)重新配置,新應(yīng)用的增加不會(huì)影響系統(tǒng)的正常運(yùn)行。參與系統(tǒng)的組件無需知道其它組件的內(nèi)部實(shí)現(xiàn)方式。統(tǒng)的組件無需知道其它組件的內(nèi)部實(shí)現(xiàn)方式。n任務(wù)的合理分布:事件訂閱者和事件發(fā)布者任務(wù)分組,各負(fù)其責(zé)。另外,不任務(wù)的合理分布:事件訂閱者和事件發(fā)布者任務(wù)分組,各負(fù)其責(zé)。另外,不同的訂閱者同的訂閱者 對(duì)事件采取的行動(dòng)
44、由各個(gè)訂閱者決定。對(duì)事件采取的行動(dòng)由各個(gè)訂閱者決定。t 它它 比比 較較 適適 合合 于于 對(duì)對(duì) 容容 錯(cuò)錯(cuò) 性性 和和 可可 靠靠 性性 要要 求求 較較 高高 的的 分分 布布 式式 應(yīng)應(yīng) 用。用。 但但 它它 的的 異異 步步 特特 性相對(duì)較弱,性相對(duì)較弱, 不不 太太 適適 合合 長長 時(shí)時(shí) 間間 網(wǎng)網(wǎng) 絡(luò)絡(luò) 斷斷 開開 的的 情情 況。況。發(fā)布發(fā)布- -訂購訂購MOMMOM的優(yōu)勢的優(yōu)勢 Page 49 Page 49t 參考實(shí)現(xiàn)方式:參考實(shí)現(xiàn)方式:n每個(gè)競拍者都訂閱一條每個(gè)競拍者都訂閱一條“開始拍賣(開始拍賣(begin-auction)”事件消息事件消息n拍賣者發(fā)送一條拍賣者發(fā)送一
45、條“begin-auction”事件消息事件消息n競拍者收到競拍者收到“begin-auction”事件消息后,就接著訂事件消息后,就接著訂閱閱“結(jié)束拍賣(結(jié)束拍賣(end-auction)”事件消息事件消息n拍賣者訂閱拍賣者訂閱“新報(bào)價(jià)(新報(bào)價(jià)(new-bid)”事件消息事件消息n要出價(jià)的競拍者發(fā)布一條要出價(jià)的競拍者發(fā)布一條“new-bid”事件消息,該事件消息,該消息被轉(zhuǎn)發(fā)給拍賣者消息被轉(zhuǎn)發(fā)給拍賣者n拍賣會(huì)結(jié)束時(shí),拍賣者發(fā)布一條拍賣會(huì)結(jié)束時(shí),拍賣者發(fā)布一條“end-auction”事事件消息,將拍賣結(jié)果通報(bào)給所有的競拍者。件消息,將拍賣結(jié)果通報(bào)給所有的競拍者。例:基于發(fā)布例:基于發(fā)布- -
46、訂購方式的拍賣系統(tǒng)訂購方式的拍賣系統(tǒng) Page 50 Page 50TIBCOTIBCO消息總線消息總線TIB/Rendezvous消息總線是世界上使用非常廣泛的發(fā)布消息總線是世界上使用非常廣泛的發(fā)布-訂訂購中間件。購中間件。t 采用分布式的體系結(jié)構(gòu)采用分布式的體系結(jié)構(gòu)t 應(yīng)用可選擇不同質(zhì)量的服務(wù),包括可靠的和可證實(shí)的服務(wù)應(yīng)用可選擇不同質(zhì)量的服務(wù),包括可靠的和可證實(shí)的服務(wù)t 消息交換基于請(qǐng)求消息交換基于請(qǐng)求/響應(yīng)的方式或發(fā)布響應(yīng)的方式或發(fā)布-訂購的方式訂購的方式t 消息傳輸可經(jīng)由廣域網(wǎng)或消息傳輸可經(jīng)由廣域網(wǎng)或Internett 消息是自描述的,具平臺(tái)無關(guān)性。支持消息是自描述的,具平臺(tái)無關(guān)性。支
47、持XML類型消息格式,具有可擴(kuò)展類型消息格式,具有可擴(kuò)展性性t 支持從支持從PC機(jī)到機(jī)到OS/390大型機(jī)的各種硬件平臺(tái)大型機(jī)的各種硬件平臺(tái)t 支持支持Java、C、C+、Perl和和COM等各種語言等各種語言t 提供了大量預(yù)建立的適配器,連接市場上各種主流的應(yīng)用軟件、數(shù)據(jù)庫提供了大量預(yù)建立的適配器,連接市場上各種主流的應(yīng)用軟件、數(shù)據(jù)庫軟件,并提供大量軟件,并提供大量API供應(yīng)用創(chuàng)建自己的客戶適配器供應(yīng)用創(chuàng)建自己的客戶適配器 。 Page 51 Page 51例:例:TIBCO TIBCO 運(yùn)行環(huán)境運(yùn)行環(huán)境 Page 52 Page 52point-to-point messagepoint-
48、to-point message 事先確定發(fā)送目標(biāo) 消息只能由唯一目標(biāo)機(jī)所接收 Eg. ATM取款, 遠(yuǎn)端DB查詢 Page 53 Page 53Publish/Subscribe InteractionPublish/Subscribe Interaction 按主題發(fā)布 Eg. 股市信息發(fā)布,物流管理隨時(shí)通告庫存 Page 54 Page 54Multicast Request/Reply Interaction兩種方式 指定接收者(但發(fā)消息時(shí)大家都能聽到)不具體指定接收者,真正接收者按一定條件選定 Eg. 分布計(jì)算分發(fā)子任務(wù),網(wǎng)管為測試發(fā)廣播消息 Page 55 Page 55t 一種比
49、較流行的發(fā)布一種比較流行的發(fā)布-訂購消息中間件訂購消息中間件, 是是J2EE的一個(gè)組成部分。的一個(gè)組成部分。t 確切的說,確切的說,JMS不是一種產(chǎn)品,而是一種標(biāo)準(zhǔn),它定義了一組標(biāo)不是一種產(chǎn)品,而是一種標(biāo)準(zhǔn),它定義了一組標(biāo)準(zhǔn)的準(zhǔn)的APIs,實(shí)現(xiàn)對(duì)各種消息系統(tǒng)的統(tǒng)一訪問。實(shí)現(xiàn)對(duì)各種消息系統(tǒng)的統(tǒng)一訪問。t JMS定義了不同方式的消息傳遞,包括請(qǐng)求定義了不同方式的消息傳遞,包括請(qǐng)求/響應(yīng),發(fā)布響應(yīng),發(fā)布/訂購,同訂購,同步步/異步等。異步等。t JMS與與SUN提供的其它企業(yè)技術(shù)緊密的綁定在一起提供的其它企業(yè)技術(shù)緊密的綁定在一起如如Java命命名服務(wù),名服務(wù),Java事務(wù)服務(wù)、事務(wù)服務(wù)、EJB等等。
50、等等。t 優(yōu)勢:為所有消息系統(tǒng)提供了一個(gè)標(biāo)準(zhǔn)的接口優(yōu)勢:為所有消息系統(tǒng)提供了一個(gè)標(biāo)準(zhǔn)的接口 t 不足:僅支持不足:僅支持Java一種語言。一種語言。 SUNSUN的的JMSJMS Page 56 Page 56t JMS is a set of interfaces and associated semantics that define how a JMS client accesses the facilities of an enterprise messaging productSUNSUN的的JMSJMS Page 57 Page 57一種特殊的發(fā)布一種特殊的發(fā)布-訂購消息中間件。它
51、訂購消息中間件。它在普通的消息在普通的消息-訂購中間件之訂購中間件之上提供了一些附加服務(wù)上提供了一些附加服務(wù),從而簡化了,從而簡化了EAI的建立過程。的建立過程。t 消息轉(zhuǎn)換:提供單獨(dú)的消息轉(zhuǎn)換層,將來自一個(gè)應(yīng)用的消息轉(zhuǎn)換為接收者所消息轉(zhuǎn)換:提供單獨(dú)的消息轉(zhuǎn)換層,將來自一個(gè)應(yīng)用的消息轉(zhuǎn)換為接收者所能理解的格式。能理解的格式。t 規(guī)則處理:提供規(guī)則處理引擎,通過規(guī)則控制消息的處理和分發(fā)。但不同的規(guī)則處理:提供規(guī)則處理引擎,通過規(guī)則控制消息的處理和分發(fā)。但不同的消息代理和廠商在處理規(guī)則上有極大的不同。消息代理和廠商在處理規(guī)則上有極大的不同。t 智能路由:能動(dòng)態(tài)的識(shí)別來自一個(gè)應(yīng)用的消息,并將其發(fā)送到
52、正確的目標(biāo)應(yīng)智能路由:能動(dòng)態(tài)的識(shí)別來自一個(gè)應(yīng)用的消息,并將其發(fā)送到正確的目標(biāo)應(yīng)用。用。t 消息倉庫。提供相應(yīng)的數(shù)據(jù)庫,存儲(chǔ)流經(jīng)整個(gè)企業(yè)的所有消息。消息倉庫。提供相應(yīng)的數(shù)據(jù)庫,存儲(chǔ)流經(jīng)整個(gè)企業(yè)的所有消息。t 圖形用戶接口圖形用戶接口:提供基于提供基于GUI的界面,進(jìn)行規(guī)則的創(chuàng)建、應(yīng)用的連接和轉(zhuǎn)換的界面,進(jìn)行規(guī)則的創(chuàng)建、應(yīng)用的連接和轉(zhuǎn)換邏輯的定義。邏輯的定義。t 目錄服務(wù):提供了網(wǎng)絡(luò)資源的定位、標(biāo)識(shí)、使用和驗(yàn)證功能。目錄服務(wù):提供了網(wǎng)絡(luò)資源的定位、標(biāo)識(shí)、使用和驗(yàn)證功能。消息代理消息代理 Page 58 Page 58t 消消 息息 隊(duì)隊(duì) 列:在列:在 程程 序序 間間 的的 通通 信信 中中 一一
53、 般般 要要 借借 助助 于于 隊(duì)隊(duì) 列列 來來 實(shí)實(shí) 現(xiàn)?,F(xiàn)。 它它 允允 許許 程程 序序 無無 需需 直直 接接 建建 立立 起起 連連 接接 即即 可可 發(fā)發(fā) 送送 和和 接接 收收 消消 息。息。 使使 用用 消消 息息 隊(duì)隊(duì) 列列 方方 式,式, 程程 序序 只只 需需 簡簡 單單 地地 將將 消消 息息 發(fā)發(fā) 送送 給給 消消 息息 隊(duì)隊(duì) 列,列, 由由 消消 息息 隊(duì)隊(duì) 列列 負(fù)負(fù) 責(zé)責(zé) 消消 息息 的的 傳傳 遞,遞, 對(duì)對(duì) 應(yīng)應(yīng) 用用 程程 序序 完完 全全 透透 明。明。n消消 息息 隊(duì)隊(duì) 列列 支支 持持 同同 步步 和和 異異 步步 通通 信,常采信,常采 用用 異異
54、 步步 方方 式,式, 為為 信信 息息 提提 供供 了了 一一 個(gè)個(gè) 安安 全全 的的 存存 儲(chǔ)儲(chǔ) 方方 式,式, 特特 別別 適適 用用 于于 不不 是是 直直 接接 連連 接接 的的 應(yīng)應(yīng) 用,用, 如如 移移 動(dòng)動(dòng) 用用 戶、戶、 發(fā)發(fā) 送送 方方 或或 接接 收收 方方 進(jìn)進(jìn) 程程 可可 能能 處處 于于 不不 活活 動(dòng)動(dòng) 狀狀 態(tài)態(tài) 的的 應(yīng)應(yīng) 用。用。 n消消 息息 隊(duì)隊(duì) 列列 方方 式式 的的 缺缺 點(diǎn)點(diǎn) 是是 需需 要要 一一 些些 配配 置置 工工 作,作, 性性 能能 不不 是是 很很 高,高, 而而 且且 如如 果果 隊(duì)隊(duì) 列列 丟丟 失,失, 整整 個(gè)個(gè) 系系 統(tǒng)統(tǒng)
55、將將 受受 到到 影影 響。響。 消息隊(duì)列消息隊(duì)列 Page 59 Page 59基于消息隊(duì)列的消息傳送基于消息隊(duì)列的消息傳送 Page 60 Page 60t 用戶隊(duì)列:用戶自己通過隊(duì)列管理器創(chuàng)建的,在一個(gè)消息中間件的節(jié)點(diǎn)用戶隊(duì)列:用戶自己通過隊(duì)列管理器創(chuàng)建的,在一個(gè)消息中間件的節(jié)點(diǎn)中用戶隊(duì)列可以有多個(gè);中用戶隊(duì)列可以有多個(gè);t 發(fā)送隊(duì)列:即傳輸隊(duì)列,是要發(fā)送消息的緩沖池;通信管理模塊從發(fā)送發(fā)送隊(duì)列:即傳輸隊(duì)列,是要發(fā)送消息的緩沖池;通信管理模塊從發(fā)送隊(duì)列取消息發(fā)送;隊(duì)列取消息發(fā)送;t 死信隊(duì)列:用來存放發(fā)送和接收失敗的消息;死信隊(duì)列:用來存放發(fā)送和接收失敗的消息;t 事件隊(duì)列:存放系統(tǒng)產(chǎn)生
56、的所有的事件,并等待事件處理器來處理。事件隊(duì)列:存放系統(tǒng)產(chǎn)生的所有的事件,并等待事件處理器來處理。n 系統(tǒng)事件:由操作系統(tǒng)硬件產(chǎn)生的事件,如系統(tǒng)調(diào)用失敗、系統(tǒng)被重啟系統(tǒng)事件:由操作系統(tǒng)硬件產(chǎn)生的事件,如系統(tǒng)調(diào)用失敗、系統(tǒng)被重啟n 核心事件。由消息中間件的核心處理模塊運(yùn)行過程中產(chǎn)生的事件,如隊(duì)列未核心事件。由消息中間件的核心處理模塊運(yùn)行過程中產(chǎn)生的事件,如隊(duì)列未定義或無法訪問等定義或無法訪問等n 用戶事件。由用戶定義的事件。如消息事件、訂閱發(fā)布事件、死信事件。用戶事件。由用戶定義的事件。如消息事件、訂閱發(fā)布事件、死信事件。消息隊(duì)列中的隊(duì)列種類消息隊(duì)列中的隊(duì)列種類 Page 61 Page 61t
57、 使用與使用與Internet郵件系統(tǒng)類似的兩級(jí)地址,在通訊中間件屏蔽網(wǎng)絡(luò)郵件系統(tǒng)類似的兩級(jí)地址,在通訊中間件屏蔽網(wǎng)絡(luò)底層的基礎(chǔ)上進(jìn)一步屏蔽了隊(duì)列機(jī)制,不了解隊(duì)列機(jī)制也可以編底層的基礎(chǔ)上進(jìn)一步屏蔽了隊(duì)列機(jī)制,不了解隊(duì)列機(jī)制也可以編寫分布式應(yīng)用。寫分布式應(yīng)用。t 通訊安全構(gòu)架內(nèi)置清華加密與身份驗(yàn)證算法。通訊安全構(gòu)架內(nèi)置清華加密與身份驗(yàn)證算法。t 內(nèi)置的路由數(shù)據(jù)庫,并提供路由數(shù)據(jù)庫的同步功能,易于進(jìn)行復(fù)內(nèi)置的路由數(shù)據(jù)庫,并提供路由數(shù)據(jù)庫的同步功能,易于進(jìn)行復(fù)雜網(wǎng)絡(luò)結(jié)構(gòu)的規(guī)劃。雜網(wǎng)絡(luò)結(jié)構(gòu)的規(guī)劃。t 擁有一個(gè)可視化開發(fā)平臺(tái),通過擁有一個(gè)可視化開發(fā)平臺(tái),通過MT的開發(fā)工具包,可高效的開發(fā)的開發(fā)工具包,可
58、高效的開發(fā)分布式應(yīng)用系統(tǒng)(常用的函數(shù)調(diào)用只有分布式應(yīng)用系統(tǒng)(常用的函數(shù)調(diào)用只有10幾個(gè))。幾個(gè))。t 可作為網(wǎng)絡(luò)通訊管理與監(jiān)控的平臺(tái),通過標(biāo)準(zhǔn)可作為網(wǎng)絡(luò)通訊管理與監(jiān)控的平臺(tái),通過標(biāo)準(zhǔn)瀏覽器瀏覽器對(duì)對(duì)MT通訊節(jié)通訊節(jié)點(diǎn)進(jìn)行遠(yuǎn)程管理與監(jiān)控。點(diǎn)進(jìn)行遠(yuǎn)程管理與監(jiān)控。消息隊(duì)列產(chǎn)品:消息隊(duì)列產(chǎn)品: 清華北美的清華北美的TH-MTTH-MT Page 62 Page 62TH-MTTH-MT的基本工作機(jī)制的基本工作機(jī)制 Page 63 Page 63t MOM適用范圍:適用范圍: MOM既支持同步、又支持異步通信方式,既支持同步、又支持異步通信方式, 故特別適合于事件故特別適合于事件驅(qū)動(dòng)的應(yīng)用場合。驅(qū)動(dòng)的應(yīng)
59、用場合。t MOM的不足:的不足: 需 要 開 發(fā) 者 學(xué) 習(xí) 新 的MOM API 編 程; 缺 乏 流 行 的 開 發(fā) 工 具 的 支 持 有 關(guān)MOM 的 標(biāo) 準(zhǔn) 還 未 形 成對(duì)訪問透明性的支持不是很好,因客戶用消息API進(jìn)行遠(yuǎn)程通信,而往往用其他機(jī)制進(jìn)行本地通信。消息中間件消息中間件( (MOM)MOM)小結(jié)小結(jié) Page 64 Page 64三類基礎(chǔ)通信中間件的發(fā)展情況三類基礎(chǔ)通信中間件的發(fā)展情況 Page 65 Page 65t RPC中間件中間件t ORB中間件中間件t 消息中間件消息中間件t 數(shù)據(jù)庫中間件數(shù)據(jù)庫中間件t 事務(wù)處理中間件事務(wù)處理中間件t 應(yīng)用服務(wù)器中間件應(yīng)用服務(wù)
60、器中間件t Web中間件中間件t 企業(yè)應(yīng)用集成企業(yè)應(yīng)用集成EAI中間件中間件中間件舉例中間件舉例 Page 66 Page 66t 允許應(yīng)用程序同本地或異地的數(shù)據(jù)庫進(jìn)行通信并對(duì)各種數(shù)據(jù)源使用統(tǒng)允許應(yīng)用程序同本地或異地的數(shù)據(jù)庫進(jìn)行通信并對(duì)各種數(shù)據(jù)源使用統(tǒng)一的數(shù)據(jù)存取方法。一的數(shù)據(jù)存取方法。 t 提供了一系列應(yīng)用程序接口提供了一系列應(yīng)用程序接口API,通過中間層而不考慮操作系統(tǒng)及網(wǎng)通過中間層而不考慮操作系統(tǒng)及網(wǎng)絡(luò)來訪問數(shù)據(jù)庫。絡(luò)來訪問數(shù)據(jù)庫。t 典型產(chǎn)品:典型產(chǎn)品:InformationBuilders公司的公司的EdaSQL,SUN的數(shù)據(jù)庫中間的數(shù)據(jù)庫中間件標(biāo)準(zhǔn)件標(biāo)準(zhǔn)JDBC,Microsoft
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專項(xiàng)學(xué)習(xí) 像工程師那樣 教學(xué)設(shè)計(jì)-2024-2025學(xué)年科學(xué)一年級(jí)上冊(cè)蘇教版
- 抗衰老面霜項(xiàng)目立項(xiàng)備案申請(qǐng)報(bào)告
- 專題21 寫作(任務(wù)驅(qū)動(dòng)類)- 2025年高考復(fù)習(xí)近十年之語文真題分項(xiàng)匯編 (解析卷)
- 租借道具行業(yè)深度研究報(bào)告
- 2025年度地產(chǎn)項(xiàng)目智能家居系統(tǒng)承包合同
- 2025年中國嬰兒奶瓶行業(yè)市場深度分析及投資策略研究報(bào)告
- 2025年抗肝片吸蟲病藥合作協(xié)議書
- 2019-2025年中國醫(yī)療器械制造市場供需預(yù)測及投資戰(zhàn)略研究咨詢報(bào)告
- 2025年軟件工程師職務(wù)行為規(guī)范及保密合同
- 商貿(mào)綜合服務(wù)中心項(xiàng)目可行性實(shí)施報(bào)告
- 中班美工區(qū)角活動(dòng)教案10篇
- 304不銹鋼管材質(zhì)證明書
- DBJ 46-027-2013 海南省建筑塔式起重機(jī)安裝使用安全評(píng)定規(guī)程
- SJG 103-2021 無障礙設(shè)計(jì)標(biāo)準(zhǔn)-高清現(xiàn)行
- 皇冠假日酒店智能化系統(tǒng)安裝工程施工合同范本
- 港口集裝箱物流系統(tǒng)建模與仿真技術(shù)研究-教學(xué)平臺(tái)課件
- 合肥市城市大腦·數(shù)字底座白皮書2020
- 杭州灣跨海大橋項(xiàng)目案例ppt課件
- (完整版)光榮榜25張模板
- 工業(yè)催化劑作用原理—金屬氧化物催化劑
- 優(yōu)秀教材推薦意見(真實(shí)的專家意見)
評(píng)論
0/150
提交評(píng)論