




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、學(xué)校代號(hào)10536 學(xué)號(hào)0810803550 分類號(hào)TP391 密級(jí)公開 碩士學(xué)位論文AFC系統(tǒng)通信中間件的研究與設(shè)計(jì)學(xué)位申請(qǐng)人姓名張良春培養(yǎng)單位長沙理工大學(xué)導(dǎo)師姓名及職稱龍鵬飛教授學(xué)科專業(yè)計(jì)算機(jī)應(yīng)用技術(shù)研究方向人工智能及應(yīng)用論文提交日期2011年3月學(xué)校代號(hào):10536學(xué)號(hào):0810803550密級(jí):公開長沙理工大學(xué)碩士學(xué)位論文AFC系統(tǒng)通信中間件的研究與設(shè)計(jì)學(xué)位申請(qǐng)人姓名張良春導(dǎo)師姓名及職稱龍鵬飛教授培養(yǎng)單位長沙理工大學(xué)專業(yè)名稱計(jì)算機(jī)應(yīng)用技術(shù)論文提交日期2011年3月論文答辯日期2011年5月答辯委員會(huì)主席車生兵教授Research and Design of Communication
2、Middlewareon AFC SystembyZhang LiangchunB.E.( Hunan City University 2008A thesis submitted in partial satisfaction of theRequirements for the degree ofMaster of EngineeringinComputer Application TechnologyinChangsha University of Science & TechnologySupervisorProfessor Long PengfeiMarch, 2011長沙理
3、工大學(xué)學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。作者簽名:日期:年月日學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)長沙理工大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本
4、學(xué)位論文。本學(xué)位論文屬于1、保密,在_年解密后適用本授權(quán)書。2 (請(qǐng)?jiān)谝陨舷鄳?yīng)方框內(nèi)打“”作者簽名:日期:年月日導(dǎo)師簽名:日期:年月日摘要隨著城市化進(jìn)程的加速,城市人口暴增,城市交通壓力越來越嚴(yán)重。中國各大城市都在想方設(shè)法解決這方面的問題,其中就投入了大量人力物力財(cái)力進(jìn)行城市軌道交通的建設(shè),因此城市軌道交通智能化和信息化的發(fā)展空間巨大。自動(dòng)售檢票(Automatic Fare Collection, AFC系統(tǒng)作為軌道交通智能化設(shè)備的重要組成部分,其信息化建設(shè)一直備受重視。中間件技術(shù)作為一種前沿的軟件應(yīng)用技術(shù),在各種軟件系統(tǒng)中發(fā)揮著集成度高、可復(fù)用性強(qiáng)和提高應(yīng)用開發(fā)效率的優(yōu)勢(shì)。本文通過對(duì)中間件
5、,特別是通信中間件的研究,闡述了一種通過通信中間件來提高AFC系統(tǒng)軟件可靠性、降低開發(fā)成本、縮短開發(fā)周期的開發(fā)體制。本文根據(jù)通用性和易維護(hù)性原則設(shè)計(jì)了一種基于消息的通信中間件,同時(shí)利用具備兼容性的C+和socket開發(fā)技術(shù),封裝了一套為各種系統(tǒng)應(yīng)用軟件提供統(tǒng)一接口的通信模式。該通信中間件屏蔽網(wǎng)絡(luò)連接,不再考慮通信方面的細(xì)節(jié)問題。在具體實(shí)現(xiàn)過程中,運(yùn)用了以下幾點(diǎn)技術(shù)來優(yōu)化通信中間件的性能:采用多線程技術(shù)并發(fā)通信,提高了數(shù)據(jù)傳輸效率,降低了CPU的占用率;對(duì)緊急信息開辟實(shí)時(shí)的通道,對(duì)其做專門的處理,盡可能減少這類消息的延時(shí);對(duì)所有消息實(shí)行優(yōu)先級(jí)控制,建立數(shù)據(jù)緩沖機(jī)制,應(yīng)用程序在輪詢消息隊(duì)列時(shí),優(yōu)先
6、檢測級(jí)別高的消息隊(duì)列;提供了加密過程,確保數(shù)據(jù)傳輸過程中的安全。根據(jù)實(shí)際應(yīng)用情況,使用通信中間件后,簡化了AFC系統(tǒng)的開發(fā),提高了應(yīng)用軟件的開發(fā)效率,使開發(fā)人員更加專注于對(duì)具體業(yè)務(wù)的研究。關(guān)鍵詞:中間件;消息隊(duì)列;并發(fā)處理;SocketIABSTRACTWith the acceleration of urbanization process and the explosion of urban population, pressure on urban transport becomes more and more intense. Many big cities in China are
7、trying to solve this problem through investments of a great deal of human, material and financial resources in the construction of urban rail transit system, so the intelligence and information technology development of urban rail transit has a great potential; AFC (Automatic Fare Collection system
8、acting as an important part of intelligent rail transportation equipment and its information construction has always been given priority. Middleware, as a cutting-edge software application technology, in a variety of software systems has a lot of advantages such as a high integration, a high reusabi
9、lity, and a better application development efficiency. Through studying the middleware, the communication middleware in particular, this paper describes the development system which can improve AFC systems software reliability, lower development costs and shorten development cycle with its help.Acco
10、rding to the principles of commonality and easy-maintainability, a message based communication middleware is designed, while taking advantages of C+ and Socket technologies, a communication pattern of unified interface for different systems and applications is designed.The communication middleware c
11、an shield the network connection and thus it is needless to consider the communication details. In practical implementation, several techniques are used to improve the performance: the multi-thread technology for simultaneous communication to improve the data transmission efficiency as to reduce the
12、 occupancy rate of CPU; the real-time channel for emergence messages as to reduce the delay; the priority control and data buffer for all messages as to give priority to higher priority message in polling message sequence; encryption procedure of data transmission as to guarantee the security.The re
13、search shows that the application of communication middleware can simplify the development of AFC system, improve the development efficiency of application software and enable the developers to give a higher focus on the specific business.Key words:Middleware ; Message Queue ; Concurrent Process ; S
14、ocket目錄摘要. I ABSTRACT . II 第一章緒論1.1 研究背景及意義 (11.2 國內(nèi)外研究現(xiàn)狀 (21.3 本文所做的工作 (31.4 本文的內(nèi)容組織 (3第二章中間件技術(shù)分析2.1中間件的概述 (52.2 通信中間件的幾種形式 (62.3 面向消息的中間件技術(shù) (72.4 網(wǎng)絡(luò)通信協(xié)議 (15第三章AFC系統(tǒng)通信中間件的分析與設(shè)計(jì)3.1 AFC系統(tǒng)簡介 (183.2 通信中間件總體設(shè)計(jì) (213.3 通信管理器設(shè)計(jì) (213.4 用戶接口設(shè)計(jì) (24第四章AFC系統(tǒng)中間件實(shí)現(xiàn)4.1 Socket技術(shù) (264.2 自定義通信協(xié)議 (294.3 通信中間件的消息處理機(jī)制 (
15、314.4 通信中間件的具體實(shí)現(xiàn) (354.5 仿真實(shí)驗(yàn) (40結(jié)論與展望 (43參考文獻(xiàn) (44致謝 (47附錄(攻讀碩士學(xué)位期間發(fā)表錄用論文 (48第一章緒論1.1 研究背景及意義隨著城市化進(jìn)程的加速,城市人口暴增,城市交通壓力越來越嚴(yán)重。中國各大城市都在想方設(shè)法解決這方面的問題,其中就投入了大量人力物力財(cái)力進(jìn)行城市軌道交通的建設(shè)。與公路運(yùn)輸,水運(yùn)等交通方式相比,軌道交通用地面積省、運(yùn)輸能力大、環(huán)境污染小等特點(diǎn)更適宜于經(jīng)濟(jì)實(shí)力相對(duì)雄厚的大中城市交通發(fā)展。目前,國內(nèi)像北京、廣州、上海等大城市已經(jīng)擁有較為完善的軌道交通網(wǎng)絡(luò),就廣州來看,至2010年底開通運(yùn)營的地鐵線路就達(dá)到8條,其他城市已經(jīng)批
16、準(zhǔn)開工建設(shè)城市軌道交通項(xiàng)目達(dá)到23個(gè),據(jù)統(tǒng)計(jì),全國“十一五”期間建設(shè)城市軌道交通1500公里左右,總投資額在40005000億左右1??梢哉f,中國的城市軌道交通行業(yè)隨著經(jīng)濟(jì)建設(shè)的飛速發(fā)展和科學(xué)技術(shù)的不斷進(jìn)步,已經(jīng)步入一個(gè)跨越式發(fā)展的新階段,城市軌道交通智能化和信息化的發(fā)展空間也因此巨大。自動(dòng)售檢票AFC(Automatic Fare Collection系統(tǒng)作為軌道交通智能化設(shè)備的重要組成部分,其信息化建設(shè)當(dāng)前備受關(guān)注。中間件技術(shù)3作為一種面向?qū)ο蟮募夹g(shù)是伴隨網(wǎng)絡(luò)的快速發(fā)展而起來的。最初的計(jì)算機(jī)系統(tǒng)沒有分布式網(wǎng)絡(luò)的概念,多是通過聯(lián)機(jī)終端來訪問的獨(dú)立系統(tǒng)。隨著網(wǎng)絡(luò)的普及,服務(wù)器端/客戶端的網(wǎng)絡(luò)服
17、務(wù)模式被建立起來3,多個(gè)客戶端可以共同訪問打印服務(wù)器和數(shù)據(jù)庫服務(wù)器等等。隨著各種網(wǎng)絡(luò)的進(jìn)一步發(fā)展,許多軟件系統(tǒng)需要在不同廠家的硬件平臺(tái)、通信協(xié)議、通信產(chǎn)品等不同結(jié)構(gòu)環(huán)境下運(yùn)行,從局域網(wǎng)到廣域網(wǎng)的應(yīng)用規(guī)模也在不斷擴(kuò)大。在這種情況下,服務(wù)器端/客服端模式兼容性不強(qiáng)等局限性也就顯現(xiàn)出來了,就此中間件應(yīng)運(yùn)而生。中間件是一類連接應(yīng)用和軟件組件的計(jì)算機(jī)軟件,中間件包括一系列的服務(wù),以便于運(yùn)行在網(wǎng)絡(luò)中的多個(gè)軟件進(jìn)行交互。中間件技術(shù)所提供的互操作性,通常支持用于分布式應(yīng)用程序的分布式體系架構(gòu)的推進(jìn)。中間件技術(shù)在連接管理、調(diào)度和負(fù)載平衡方面起了很大的作用,同時(shí)滿足了關(guān)鍵業(yè)務(wù)的需求,大幅提升了企業(yè)級(jí)應(yīng)用的性能。城
18、市軌道交通自動(dòng)售檢票(AFC系統(tǒng)是一個(gè)集信息管理和控制于一體的綜合管理系統(tǒng)。在終端設(shè)備、車站系統(tǒng)、中央計(jì)算機(jī)系統(tǒng)和城市軌道交通票務(wù)清分系統(tǒng)之間的網(wǎng)絡(luò)通信,直接影響自動(dòng)售檢票系統(tǒng)數(shù)據(jù)傳輸?shù)姆€(wěn)定性和可靠性4。中間件,特別是通信中間件是很多大型軟件系統(tǒng)中的重要組成部分,它對(duì)簡化系統(tǒng)、降低成本、提高軟件的魯棒性和使得系統(tǒng)易于移植都有很大的好處。AFC系統(tǒng)作為一個(gè)網(wǎng)絡(luò)化的系統(tǒng),在實(shí)際應(yīng)用中,通信中間件能夠?yàn)樽詣?dòng)售檢票系統(tǒng)提供提高其系統(tǒng)性能的很多服務(wù),如監(jiān)控服務(wù)、通信服務(wù)、并發(fā)服務(wù)等。1.2 國內(nèi)外研究現(xiàn)狀在國外經(jīng)濟(jì)比較發(fā)達(dá)城市,軌道交通己經(jīng)發(fā)展到比較先進(jìn)的技術(shù)水平,并普遍應(yīng)用到了AFC系統(tǒng)。我國城市軌道
19、交通發(fā)展比較晚,最初車站的自動(dòng)售檢票設(shè)備,自己還不能生產(chǎn),基本上是來自國外,不過近年來我國針對(duì)軌道交通信息化已進(jìn)行了大量的研究開發(fā)工作,并實(shí)際生產(chǎn)出了多種形式的產(chǎn)品,無論是硬件還是軟件技術(shù)水平都在不斷提高。隨著線網(wǎng)的形成和發(fā)展和軌道交通資源的大量投入,許多信息化企業(yè)和集成公司都開始開發(fā)和研制AFC系統(tǒng),為此必然會(huì)需要將不同公司的產(chǎn)品集成進(jìn)來。國內(nèi)目前城市軌道交通AFC系統(tǒng)軟件開發(fā)商已經(jīng)具有一定的規(guī)模,但都不是很成熟,具體原因就在于開發(fā)商必須具備一般只是運(yùn)營商熟悉的豐富的票卡業(yè)務(wù)管理經(jīng)驗(yàn),才能更好的將其理念融入到程序設(shè)計(jì)中。目前國內(nèi)這方面的專家還較少,所以國內(nèi)的專業(yè)廠家對(duì)國外軟件設(shè)計(jì)的依賴性還很
20、強(qiáng),用戶在自動(dòng)售檢票系統(tǒng)的維護(hù)和升級(jí)方面,暫時(shí)往往也只能從國外廠家得到很有效的幫助。通過分析這種情況,為了彌補(bǔ)AFC系統(tǒng)開發(fā)能力不足的缺陷,國內(nèi)開發(fā)相關(guān)系統(tǒng)的集成商和設(shè)備廠家應(yīng)主動(dòng)尋找合作機(jī)會(huì),使軌道交通自動(dòng)售檢票系統(tǒng)國產(chǎn)化得以全面實(shí)現(xiàn)。國內(nèi)這些相關(guān)的系統(tǒng)集成商和研發(fā)廠家通過聘請(qǐng)國際上經(jīng)驗(yàn)豐富的自動(dòng)售檢票系統(tǒng)設(shè)計(jì)專家,參與和指導(dǎo)AFC系統(tǒng)軟件設(shè)計(jì),建立實(shí)用、全面、嚴(yán)謹(jǐn)、高效的程序庫,逐步實(shí)現(xiàn)AFC系統(tǒng)國產(chǎn)軟件的標(biāo)準(zhǔn)化。隨著軌道交通的不斷普及,線網(wǎng)中各種系統(tǒng)將越來越多的與AFC系統(tǒng)進(jìn)行聯(lián)系和交互,軟硬件的維保工作量加大,技術(shù)難度也會(huì)提高,因此AFC系統(tǒng)的發(fā)展工作重心將逐步轉(zhuǎn)移到獲得最高效率和最佳
21、質(zhì)量的維護(hù)方式。AFC系統(tǒng)作為一個(gè)分布式系統(tǒng),將中間件技術(shù)應(yīng)用到其中在當(dāng)前也有了一定的研究。中間件技術(shù)從開始研究到現(xiàn)在的日趨成熟,已經(jīng)有二十多年。中間件產(chǎn)品多種多樣,這是由于需求廣泛性及應(yīng)用復(fù)雜性所決定的。中間件的開發(fā)針對(duì)某一領(lǐng)域逐步細(xì)分,既保障了其通用性,有可充分發(fā)揮其優(yōu)勢(shì),并可避免軟件資源的浪費(fèi)。當(dāng)前,集成化中間件產(chǎn)品的企業(yè)級(jí)應(yīng)用已經(jīng)上線,這種中間件通過研究、設(shè)計(jì)與開發(fā)等一系列的過程支持了其他大型應(yīng)用系統(tǒng)的開發(fā),取得了很好的效果。國際上IBM和微軟等公司通過在中間件產(chǎn)品中集成模型驅(qū)動(dòng)架構(gòu)(Model Driven Architecture,MDA工具為信息系統(tǒng)的網(wǎng)絡(luò)應(yīng)用層、業(yè)務(wù)邏輯層、前臺(tái)
22、顯示層提供全方位的支撐。國內(nèi)金蝶等公司也已經(jīng)研究開發(fā)出了功能強(qiáng)大的中間件產(chǎn)品,應(yīng)用在我國大型的信息化建設(shè)項(xiàng)目上。目前,中間件也已經(jīng)成為分布式系統(tǒng)應(yīng)用全生命周期支撐工具。中間件不是一個(gè)完整的系統(tǒng),它只能作為一個(gè)應(yīng)用系統(tǒng)開發(fā)和運(yùn)行的支撐平臺(tái),它和很多軟件構(gòu)件一樣,為軟件工程的效率優(yōu)化等帶來方便,所以當(dāng)前軟件構(gòu)件庫管理平臺(tái)隨著中間件的發(fā)展將更加受到關(guān)注。中間件等軟件構(gòu)件等到迅速的發(fā)展,進(jìn)行構(gòu)件的獨(dú)立開發(fā)商已經(jīng)出現(xiàn),基于構(gòu)件的軟件開發(fā)成為軟件開發(fā)的主流。AFC系統(tǒng)作為一個(gè)分布式網(wǎng)絡(luò)系統(tǒng),它的硬件和操作系統(tǒng)平臺(tái)具有多樣性,如何簡化其應(yīng)用軟件的開發(fā)也成為當(dāng)前軌道交通信息化建設(shè)研究的熱點(diǎn)。1.3 本文所做的
23、工作本文設(shè)計(jì)和實(shí)現(xiàn)了應(yīng)用于AFC系統(tǒng)的通信中間件,力爭做成一種安全性能高與各平臺(tái)兼容的通信中間件,其中所做主要工作如下:1、通過對(duì)中間件,特別對(duì)基于消息的通信中間件進(jìn)行分析,并對(duì)通信協(xié)議以及各平臺(tái)下的Socket通信原理的分析,提出了AFC系統(tǒng)的通信中間件的設(shè)計(jì)方法。2、提出本通信中間件的通信模型,并對(duì)該模型下的通信管理器、客戶通信接口、通信協(xié)議等進(jìn)行了具體的設(shè)計(jì)。3、通過C+編程實(shí)現(xiàn)中間件,模擬AFC系統(tǒng)環(huán)境測試其功能,基本達(dá)到應(yīng)有效果。1.4 本文的內(nèi)容組織本文通過對(duì)AFC系統(tǒng)的通信要求和特點(diǎn)分析,設(shè)計(jì)和實(shí)現(xiàn)了一款基于AFC系統(tǒng)的通信中間件,全文的內(nèi)容組織結(jié)構(gòu)為:第一章介紹了本論文課題的研
24、究背景及意義,接著敘述了AFC系統(tǒng)和中間件的研究現(xiàn)狀,然后描述了本論文所做的主要工作和內(nèi)容組織。第二章對(duì)通信中間件的消息隊(duì)列、網(wǎng)絡(luò)協(xié)議等關(guān)鍵技術(shù)進(jìn)行了比較和分析。第三章對(duì)AFC系統(tǒng)中各級(jí)終端的通信特點(diǎn)進(jìn)行分析,對(duì)通信中間件進(jìn)行總體的設(shè)計(jì)和模塊功能分析。第四章利用Socket技術(shù)實(shí)現(xiàn)通信中間件的通信功能,并通過實(shí)驗(yàn)驗(yàn)證其功能和性能要求。論文最后針對(duì)本文所設(shè)計(jì)的中間件結(jié)合AFC系統(tǒng)作了一個(gè)總結(jié),提出了幾點(diǎn)展望。第二章中間件技術(shù)分析2.1中間件的概述二十世紀(jì)八十年代初,人們開始研究并開發(fā)中間件產(chǎn)品,最初它僅僅用于管理事物以及消息通信。直到九十年代,隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展以及企業(yè)中實(shí)際應(yīng)用的需要,人們
25、對(duì)于中間件的需求越來越多樣化,中間件技術(shù)的劃分也越來越細(xì),與此同時(shí)各企業(yè)也開發(fā)出了了各種各樣的中間件產(chǎn)品。九十年代末期,中間件已經(jīng)被明確的分成了五大類,即消息、遠(yuǎn)程調(diào)用、數(shù)據(jù)訪問、事務(wù)處理以及對(duì)象請(qǐng)求代理等中間件7。從此以后,隨著電子商務(wù)行業(yè)的不斷發(fā)展以及企業(yè)信息化建設(shè)的要求越來越高,由于各種各樣類型的需求影響,中間件產(chǎn)品的類型越來越豐富,中間件的內(nèi)涵以及外延也得到了更大的擴(kuò)展。中間件平臺(tái)的主流技術(shù)主要是面向?qū)ο蟮闹虚g件技術(shù),主要代表是Sun公司研發(fā)的EJB/J2EE、Microsoft研發(fā)的COM+DNA以及OMG研發(fā)的CORBA+OMA14。面向?qū)ο蟮闹虚g件技術(shù)的研究重點(diǎn)主要是建立規(guī)范的對(duì)
26、象請(qǐng)求代理,對(duì)網(wǎng)絡(luò)中的計(jì)算機(jī),操作系統(tǒng),編程語言以及網(wǎng)絡(luò)協(xié)議的異構(gòu)性和復(fù)雜性進(jìn)行屏蔽,促使網(wǎng)絡(luò)中的各種應(yīng)用系統(tǒng)可以共同協(xié)作,為各種網(wǎng)絡(luò)應(yīng)用提供共同服務(wù),如先進(jìn)網(wǎng)絡(luò)管理服務(wù)、一些應(yīng)用領(lǐng)域的增值服務(wù)等。由于中間件技術(shù)的發(fā)展速度非???產(chǎn)生了一些變化,所以研究者們對(duì)中間件技術(shù)進(jìn)行了再次分類,分別是以下幾種:通信中間件、直用服務(wù)器、數(shù)據(jù)集成中間件、應(yīng)用集成中間件、流程集成中間件和B2B應(yīng)用集成中間件。其中,通信中間件基本包括了傳統(tǒng)中間件中的所有分類。通信中間件一般用來解決不同應(yīng)用或系統(tǒng)間的通信問題,安全可靠的為上層提供來自下層的消息傳遞服務(wù)。用數(shù)據(jù)表述抽象的表示應(yīng)用接口,對(duì)分布式系統(tǒng)中隱藏的通信傳輸進(jìn)
27、行抽象化,為了處理各種集成問題準(zhǔn)備了特定的通信模式,保證在一定條件下能夠達(dá)到事務(wù)處理的目的。為了使客戶能夠隔離底層進(jìn)行通信,中間件還提供了一個(gè)接口,因此不同系統(tǒng)之間的用戶可以使用該接口進(jìn)行通訊,對(duì)于編程技術(shù)人員也是相當(dāng)便利的。它既不需要網(wǎng)絡(luò)平臺(tái)中的硬件條件一致,也允許操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議存在差異,可以在不同的網(wǎng)絡(luò)平臺(tái)之間進(jìn)行通信,在分布式系統(tǒng)之間實(shí)現(xiàn)了跨平臺(tái)通信的可靠性、高效性以及實(shí)時(shí)性,使得各種應(yīng)用程序可以在不同的網(wǎng)絡(luò)平臺(tái)上順利運(yùn)行,真正達(dá)到了互相通信的目的。通信中間件的通信模型主要分為以下兩種:請(qǐng)求/響應(yīng)、消息傳送。前者對(duì)通信模式的主體進(jìn)行了限制,即限于請(qǐng)求或者是響應(yīng)的雙方。由于請(qǐng)求通信的一
28、方差不多都會(huì)被阻塞,直到接收到另一方的響應(yīng),因此以請(qǐng)求/響應(yīng)模式為基礎(chǔ)的應(yīng)用更接近單一進(jìn)程的應(yīng)用。但是以消息傳遞為基礎(chǔ)的應(yīng)用則對(duì)自身與外界進(jìn)程之間的通信很清楚,因此它們?cè)S可希望通信的進(jìn)程無論何時(shí)都可以發(fā)送請(qǐng)求,并且設(shè)計(jì)的風(fēng)格非常明顯。2.2 通信中間件的幾種形式通信中間件的形式一般分為以下三種:遠(yuǎn)程過程調(diào)用、會(huì)話編程以及消息隊(duì)列中間件。下面分別對(duì)這三種形式的基本思想以及特點(diǎn)進(jìn)行討論。遠(yuǎn)程過程調(diào)用作為同步的對(duì)話方式模型,當(dāng)本地應(yīng)用程序提出請(qǐng)求時(shí),遠(yuǎn)程過程調(diào)用提供服務(wù)是通過遠(yuǎn)程應(yīng)用程序來實(shí)現(xiàn)的。主調(diào)者與被調(diào)者之間存在一條專用邏輯連接,遠(yuǎn)程過程調(diào)用利用該連接為應(yīng)用程序提供了一種“調(diào)用-返回”的同步通
29、信機(jī)制。此時(shí)主調(diào)程序一直被阻塞,直到被調(diào)程序完成且返回一個(gè)信號(hào)為止。基于遠(yuǎn)程過程調(diào)用通信的應(yīng)用程序一般分為兩種,即主調(diào)與被調(diào)程序,雙方之間基于“客戶機(jī)/服務(wù)器”模型進(jìn)行通信。遠(yuǎn)程過程調(diào)用的主調(diào)程序的結(jié)構(gòu)非常簡單,通常是基于連接的且同步的。由于被調(diào)者與服務(wù)器相當(dāng),必須支持大量主調(diào)程序,且需要執(zhí)行很多功能與服務(wù),因此遠(yuǎn)程過程調(diào)用的被調(diào)程序雖然也是基于連接的、同步的,結(jié)構(gòu)卻非常復(fù)雜。遠(yuǎn)程調(diào)用過程與常規(guī)的過程調(diào)用非常相似,但是其執(zhí)行過程在遠(yuǎn)程系統(tǒng)發(fā)生而非本地。會(huì)話編程的對(duì)話通信模式是同步的。應(yīng)用程序之間提供了以應(yīng)用程序?yàn)榛A(chǔ)的一條私有邏輯連接,會(huì)話通信方案就是利用該邏輯連接進(jìn)行通信。在整個(gè)通信期間,只
30、有參與通信的應(yīng)用程序雙方能夠擁有該邏輯連接。私有對(duì)話存在于兩兩進(jìn)行通信的應(yīng)用程序之間,而且其中每個(gè)單獨(dú)的應(yīng)用程序都同時(shí)能夠參加多個(gè)對(duì)話?;跁?huì)話編程的應(yīng)用程序的操作方式往往是同步的,并且結(jié)構(gòu)比較單一。若程序邏輯比較單一,需要專用的邏輯連接,比方說信息交換序列比較長時(shí),通常使用會(huì)話編程的方式。會(huì)話編程的使用方與提供方在對(duì)方的通信系統(tǒng)中具有一個(gè)等價(jià)的邏輯單元。當(dāng)兩個(gè)應(yīng)用程序在進(jìn)行對(duì)話時(shí),這兩個(gè)邏輯單元及其之間的邏輯連接將為應(yīng)用程序準(zhǔn)備特定的網(wǎng)絡(luò)通信。在會(huì)話通信方案中,應(yīng)用程序之間可以互相通信,為了使應(yīng)用程序之間的相關(guān)度進(jìn)一步提高,需要在系統(tǒng)底層進(jìn)行通信編程的工作量比較大。消息隊(duì)列中間件作為一種應(yīng)用
31、程序之間異步的通信方式,它是利用消息隊(duì)列為程序提供接口。在消息隊(duì)列中間件中,應(yīng)用程序與網(wǎng)絡(luò)、遠(yuǎn)程應(yīng)用程序之間的相關(guān)度不必很高,通信的應(yīng)用程序雙方也不必同時(shí)運(yùn)行。消息隊(duì)列管理器作為消息隊(duì)列的容器及處理單元,是在消息中間件中處于核心地位的。消息隊(duì)列中間件支持應(yīng)用程序向消息隊(duì)列傳入或者獲取消息,應(yīng)用程序之間傳遞消息能夠利用共享隊(duì)列來進(jìn)行?;谙㈥?duì)列中間件的應(yīng)用程序邏輯上是沒有聯(lián)系的,應(yīng)用程序僅僅使用隊(duì)列組成多種方法互相聯(lián)系。目前一種比較流行的通信模型是隊(duì)列化消息傳遞,它的簡要特點(diǎn)就是不需要接口用戶之間具備邏輯上的連接。消息隊(duì)列中間件的使用者與提供者的聯(lián)系簡要描述為:消息的發(fā)送者或者接收者與消息傳遞
32、者、消息排隊(duì)的關(guān)系??蛻魴C(jī)/服務(wù)器模式下的分布式系統(tǒng)適用于隊(duì)列化消息傳遞,其基本思想是通過消息隊(duì)列對(duì)通信雙方的請(qǐng)求及相應(yīng)進(jìn)行統(tǒng)一處理,把客戶端與服務(wù)器隔離開來。消息隊(duì)列中間件使用的編程接口比較簡單,基于消息隊(duì)列中間件的應(yīng)用程序也并不復(fù)雜,并且應(yīng)用程序的完整性、可移植性、一致性易于實(shí)現(xiàn)。2.3 面向消息的中間件技術(shù)面向消息的中間件是一種把不同系統(tǒng)或應(yīng)用的軟件相互聯(lián)系起來的支撐平臺(tái),這種平臺(tái)是通過消息的發(fā)送和接收并處理,使用程序接口或者比較靈活的方式來集成應(yīng)用程序。面向消息的中間件在進(jìn)行消息緩存和轉(zhuǎn)發(fā)的基礎(chǔ)上還能解決應(yīng)用程序間信息的非同步傳送和在異構(gòu)平臺(tái)之間的通信,從而支持分布式系統(tǒng)中穩(wěn)定的、效率
33、高的數(shù)據(jù)交互。在分布式應(yīng)用中,不同的應(yīng)用進(jìn)程之間傳遞的信息統(tǒng)稱為消息。消息一般包含兩個(gè)部分:數(shù)據(jù)和描述。數(shù)據(jù)庫查詢或應(yīng)用程序數(shù)據(jù)等組成了消息的數(shù)據(jù)部分;消息格式和數(shù)據(jù)長度等的定義等組成了消息的描述部分。消息的接收者和提供者在進(jìn)行消息定義的時(shí)候需要相互討論,得出消息的內(nèi)容和具體格式,這樣才能有效的按照規(guī)則進(jìn)行消息傳遞解析,最終得到需要的數(shù)據(jù)。消息的形式不一定,既可以是一個(gè)簡單的數(shù)據(jù)包,也可以是一個(gè)大的文件。消息的收發(fā)和傳遞方式以及消息在中間件與應(yīng)用程序之間轉(zhuǎn)發(fā)傳送都有多種形式。1消息的收發(fā)方式(1阻塞方式所謂阻塞方式就是一種同步的消息收發(fā)方式,它需要用戶進(jìn)程在進(jìn)行消息發(fā)送或接收過程中等待單個(gè)過程
34、的完成,在進(jìn)程未結(jié)束當(dāng)此發(fā)送或接收過程時(shí)將會(huì)阻塞。如果是比較長的消息,阻塞過程就會(huì)相對(duì)較長,所以如果是應(yīng)用場景中長消息較少,需要傳送大量的短消息時(shí),可以使用此種方式。(2輪詢方式所謂輪詢方式就是用戶進(jìn)程設(shè)定一個(gè)定時(shí)器或者死循環(huán)方式不斷的查詢消息的發(fā)送和接收情況,等到檢測到收發(fā)完畢就進(jìn)行下一次消息的收發(fā)。在此之前,用戶進(jìn)程在調(diào)用發(fā)送或接收過程后,立即返回。這種消息收發(fā)方式不會(huì)使某一段程序過程的阻塞,但是實(shí)現(xiàn)的時(shí)候需要增加輪詢的代碼,消息的收發(fā)和處理函數(shù)也將結(jié)合起來,增加了這方面的難度。(3回調(diào)方式所謂回調(diào)方式就是用戶進(jìn)程在進(jìn)行消息的收發(fā)和處理過程中結(jié)合多線程技術(shù)分別處理消息收發(fā)和處理的各個(gè)過程。
35、作為具有收發(fā)功能的主線程在調(diào)用消息收發(fā)過程后,立刻返回,主線程可以繼續(xù)執(zhí)行下面的其他程序,把消息的處理轉(zhuǎn)交給事先編寫好的消息處理線程,同時(shí)利用回調(diào)函數(shù)獲取相應(yīng)的收發(fā)處理情況,這種收發(fā)方式適合于比較大的消息傳遞。這種方式保障了主程序的效率,但開發(fā)難度比較高。2消息的傳遞方式(1同步方式所謂同步方式就是消息交互時(shí),消息的接收者和發(fā)送者雙方必須同時(shí)在線,把接收和收發(fā)過程統(tǒng)一為一個(gè)整體,一個(gè)接收需要與一個(gè)發(fā)送匹配,不然會(huì)發(fā)生消息傳遞錯(cuò)亂。(2異步方式所謂異步方式就是消息交互時(shí),消息的收發(fā)雙方不必同時(shí)在線,當(dāng)發(fā)送方發(fā)送完數(shù)據(jù)后,數(shù)據(jù)進(jìn)入到一個(gè)數(shù)據(jù)緩沖區(qū),發(fā)送方可以繼續(xù)自己的過程,而不必關(guān)心發(fā)送后具體的處
36、理過程。消息中間件通過將消息的發(fā)送和接收分離開來,并建立內(nèi)部的消息緩沖區(qū),使消息的發(fā)送和接收成為相對(duì)獨(dú)立的過程。具體在發(fā)送方,只需將消息傳入緩沖隊(duì)列就可以,接收方設(shè)定一個(gè)定時(shí)器對(duì)消息隊(duì)列進(jìn)行輪詢,如果隊(duì)列中有消息,即做出相應(yīng)的處理。3消息的轉(zhuǎn)發(fā)傳送消息在傳輸過程中可能需要經(jīng)過多次轉(zhuǎn)發(fā),在使用消息中間件時(shí),消息中間件與底層系統(tǒng)隔離了應(yīng)用程序,因此對(duì)于應(yīng)用程序來說消息的傳遞是透明的。消息在進(jìn)行多次轉(zhuǎn)發(fā)的過程中形成了一個(gè)消息路由,這種路由就像一個(gè)消息鏈。消息的開始發(fā)送端應(yīng)用程序被稱為消息源,消息鏈的每個(gè)結(jié)點(diǎn)被稱為消息轉(zhuǎn)發(fā)站,最后接收消息的應(yīng)用程序被稱為消息接收終端。但是消息在傳送過程中出現(xiàn)了一個(gè)問題
37、,那就是消息在何時(shí)銷毀,是在每個(gè)消息轉(zhuǎn)發(fā)站傳完消息后即消除還是等整個(gè)傳遞過程完成再消除,因此轉(zhuǎn)發(fā)傳送可分為兩種:接力應(yīng)答轉(zhuǎn)發(fā)傳送和循環(huán)應(yīng)答轉(zhuǎn)發(fā)傳送。(1接力應(yīng)答轉(zhuǎn)發(fā)傳送接力應(yīng)答轉(zhuǎn)發(fā)傳送是指消息傳送過程中每個(gè)參與消息傳遞的結(jié)點(diǎn)在收到消息時(shí),主動(dòng)向緊鄰的發(fā)送方返回確認(rèn)消息。當(dāng)緊鄰的發(fā)送方在收到確認(rèn)消息后,就可以認(rèn)為消息已經(jīng)到達(dá)接收方,因而發(fā)送方可將此消息清除。通過這種方式,消息的傳送結(jié)點(diǎn)就只需向前一個(gè)結(jié)點(diǎn)發(fā)送確認(rèn)消息即可,接力應(yīng)答轉(zhuǎn)發(fā)傳送其傳遞方式如圖2.1所示。 圖2.1 消息的接力應(yīng)答轉(zhuǎn)發(fā)傳送消息的接力轉(zhuǎn)發(fā)傳送這種技術(shù)不能有效的保證消息在傳遞過程中不被篡改,而且要求每一級(jí)消息中轉(zhuǎn)者保存消息的副
38、本,因此對(duì)中轉(zhuǎn)者的性能要求高。(2循環(huán)應(yīng)答轉(zhuǎn)發(fā)傳送循環(huán)應(yīng)答轉(zhuǎn)發(fā)傳送跟接力應(yīng)答轉(zhuǎn)發(fā)傳送方式在形式上的區(qū)別在于消息在傳送過程中,每個(gè)消息轉(zhuǎn)發(fā)消息結(jié)點(diǎn)無需向前一個(gè)發(fā)送結(jié)點(diǎn)返回確認(rèn)消息。消息接收終端在接收到消息后,生成一個(gè)確認(rèn)消息,經(jīng)過消息鏈發(fā)送到消息的開始發(fā)送端,開始發(fā)送端在接收到確認(rèn)消息后就將此消息進(jìn)行清除。如果經(jīng)過一定的時(shí)間還沒收到確認(rèn)消息,消息開始發(fā)送端將重發(fā)消息。其傳遞方式如圖2.2所示。 圖 2.2 消息的循環(huán)應(yīng)答轉(zhuǎn)發(fā)傳送消息循環(huán)應(yīng)答轉(zhuǎn)發(fā)傳送對(duì)消息中轉(zhuǎn)者的要求不高,因?yàn)樵谶@種傳送過程的消息鏈中中間節(jié)點(diǎn)不需要保存消息的副本。但是,消息鏈中任意中轉(zhuǎn)者一旦消息丟失,都將導(dǎo)致在一定時(shí)間內(nèi)消息的重發(fā)
39、,在特殊情況下嚴(yán)重影響系統(tǒng)的性能,加大網(wǎng)絡(luò)的負(fù)擔(dān)。消息接收者在此時(shí)將需要處理比較復(fù)雜的消息重發(fā)程序。1客戶服務(wù)器結(jié)構(gòu)基于客戶/服務(wù)器結(jié)構(gòu)的消息中間件是由用戶利用客戶端進(jìn)行通信,簡單的過程為:客戶將消息傳送給服務(wù)器端,服務(wù)器端對(duì)消息進(jìn)行路由和轉(zhuǎn)發(fā)。微軟的MSMQ(Microsoft Message Queue41即是一種客戶服務(wù)器結(jié)構(gòu)的消息中間件產(chǎn)品,MSMQ有四種不同的服務(wù)器安裝:主企業(yè)控制器、主站點(diǎn)控制器、備用站點(diǎn)控制器、路由器17。(1主企業(yè)控制器主企業(yè)控制器是微軟消息隊(duì)列結(jié)構(gòu)的底層,它可以使消息中間件實(shí)現(xiàn)基本的功能。對(duì)于每個(gè)企業(yè)內(nèi)部網(wǎng)絡(luò)來說,都必須包含一個(gè)主企業(yè)控制器。這個(gè)控制器往往安裝
40、在公司的核心部門,這是由于所有其他的服務(wù)器都應(yīng)該可以訪問和注冊(cè)主企業(yè)控制器。假設(shè)公司的內(nèi)網(wǎng)只是建立在一個(gè)簡單的局域網(wǎng)之上,那么需要的服務(wù)器僅是主企業(yè)控制器,而且它可以與IIS結(jié)合在一起使用。在大型企業(yè)中,主企業(yè)控制器用于其它MSMQ服務(wù)器的位置和用戶信息的存儲(chǔ),并可以在各個(gè)服務(wù)器之間路由消息。(2主站點(diǎn)控制器公司城域網(wǎng)的遠(yuǎn)程分支或站點(diǎn)中往往存在一個(gè)主站點(diǎn)控制器。主站點(diǎn)控制器能與遠(yuǎn)程局域網(wǎng)上的本地客戶通信,并將信息反饋給主企業(yè)控制器。每個(gè)分支或站點(diǎn)都分配一個(gè)主站點(diǎn)控制器,提供返回主企業(yè)控制器的單點(diǎn)通信。這對(duì)遠(yuǎn)程站點(diǎn)是重要的,在網(wǎng)速較慢的網(wǎng)絡(luò)中,這種服務(wù)器有利于節(jié)省系統(tǒng)資源。(3備用站點(diǎn)控制器主站
41、點(diǎn)控制器中的只讀信息副本就是使用備用站點(diǎn)控制器來存儲(chǔ)的,往往每個(gè)分支站點(diǎn)都安裝一個(gè)備用站點(diǎn)控制器。如果主站點(diǎn)控制器崩潰或者失效,它可以提供相應(yīng)的支持。(4路由器路由器為消息的傳遞提供有效途徑,服務(wù)器利用路由器可以使用不同的網(wǎng)絡(luò)協(xié)議進(jìn)行相互通信。MSMQ路由服務(wù)器并不會(huì)存儲(chǔ)通信消息,它只能確定所需傳送消息的最佳路徑。這種路由服務(wù)器在網(wǎng)絡(luò)斷開時(shí)能夠發(fā)揮很好的作用,它會(huì)嘗試查找到達(dá)目的端的其他路徑。各個(gè)分支站點(diǎn)都要求包含主站點(diǎn)服務(wù)器或者主企業(yè)站點(diǎn)服務(wù)器,所以路由器也就綁定在每個(gè)站點(diǎn)。獨(dú)立客戶和從屬客戶作為MSMQ中的兩種客戶,分別具有不同屬性和用途。A 獨(dú)立客戶獨(dú)立客戶具備給其他消息隊(duì)列中間件服務(wù)器
42、發(fā)送消息和從其他消息隊(duì)列中間件服務(wù)器中讀取消息的能力。此中間件的獨(dú)立客戶往往安裝在應(yīng)用程序服務(wù)器或網(wǎng)絡(luò)服務(wù)器上。獨(dú)立客戶還可以存儲(chǔ)本地消息,所以它們不會(huì)依賴于目標(biāo)機(jī)器上的中間件服務(wù)。對(duì)于COM組件或網(wǎng)頁腳本來說,中間件服務(wù)器不能使用,但需要發(fā)送消息的時(shí)候,獨(dú)立客戶就能夠發(fā)揮其有效的作用。此時(shí),獨(dú)立客戶能夠在當(dāng)前本地工作隊(duì)列中存儲(chǔ)消息,直到中間件服務(wù)器變?yōu)榭捎?才繼續(xù)轉(zhuǎn)發(fā)消息。獨(dú)立客戶能夠利用文件和注冊(cè)表等存放消息到本地隊(duì)列。B 從屬客戶從屬客戶不能像獨(dú)立客戶那樣可以存儲(chǔ)本地消息,也不可以在其他服務(wù)器上組建隊(duì)列和從消息隊(duì)列中異步讀取消息。當(dāng)從屬客戶訪問消息隊(duì)列中間件服務(wù)器時(shí),只能發(fā)送和讀取消息。
43、終端用戶對(duì)消息處理的響應(yīng)處理需求不大,所以從屬客戶往往安裝在終端用戶平臺(tái)中。2多級(jí)節(jié)點(diǎn)結(jié)構(gòu)節(jié)點(diǎn)是指一種應(yīng)用程序運(yùn)行環(huán)境,由中間件支撐起來的虛擬計(jì)算機(jī)平臺(tái)。一個(gè)節(jié)點(diǎn)能夠相當(dāng)于一個(gè)業(yè)務(wù)處理終端。不同節(jié)點(diǎn)也可以同時(shí)位于相同的一臺(tái)計(jì)算機(jī)上運(yùn)行。在分布式網(wǎng)絡(luò)中應(yīng)用消息中間件,與本地節(jié)點(diǎn)直接通信的上一層節(jié)點(diǎn),即接收本地消息的節(jié)點(diǎn)叫做中心節(jié)點(diǎn)又被稱為消息開始發(fā)送端的上級(jí)節(jié)點(diǎn)。當(dāng)作為客戶進(jìn)程的一端請(qǐng)求消息,服務(wù)進(jìn)程經(jīng)過相應(yīng)處理生成回復(fù)消息應(yīng)答客戶方。與本地節(jié)點(diǎn)直接通信的下一層節(jié)點(diǎn),即發(fā)送消息到本地的節(jié)點(diǎn)被稱作該本地節(jié)點(diǎn)的下級(jí)節(jié)點(diǎn)。對(duì)于大部分的實(shí)際應(yīng)用,在處理相關(guān)細(xì)節(jié)和業(yè)務(wù)問題時(shí),上級(jí)節(jié)點(diǎn)比下級(jí)節(jié)點(diǎn)發(fā)揮了更大的
44、作用。如圖2.3更加明了的描述了多個(gè)節(jié)點(diǎn)中間的關(guān)系,其中設(shè)立三個(gè)節(jié)點(diǎn),分別為X,Y,Z。在X節(jié)點(diǎn)上運(yùn)行應(yīng)用程序x,用于向相鄰節(jié)點(diǎn)傳遞消息。Y節(jié)點(diǎn)上運(yùn)行應(yīng)用程序y,它用于從X節(jié)點(diǎn)上接收消息,再將消息轉(zhuǎn)發(fā)到Z節(jié)點(diǎn)上。在Z節(jié)點(diǎn)上運(yùn)行應(yīng)用程序z用于傳遞與Y等節(jié)點(diǎn)交互的消息。發(fā)送消息發(fā)送消息 接收消息接收消息圖 2.3節(jié)點(diǎn)間消息傳遞圖下面設(shè)立當(dāng)前三個(gè)節(jié)點(diǎn)的相關(guān)系數(shù):X節(jié)點(diǎn),上級(jí)節(jié)點(diǎn)Y;X節(jié)點(diǎn),上級(jí)節(jié)點(diǎn)Z和下級(jí)節(jié)點(diǎn)X;Z節(jié)點(diǎn),下級(jí)節(jié)點(diǎn)Y。TongLINK/Q就是國內(nèi)東方通科技公司開發(fā)的一種多級(jí)節(jié)點(diǎn)結(jié)構(gòu)的消息中間件產(chǎn)品。計(jì)算機(jī)在使用TongLINK/Q后能夠組成支持的網(wǎng)絡(luò)結(jié)構(gòu)可以是總線型等。這樣一來便簡化了
45、實(shí)際網(wǎng)絡(luò)復(fù)雜的拓?fù)浣Y(jié)構(gòu)。的隊(duì)列。應(yīng)用程序只管向相應(yīng)隊(duì)列中寫入或讀取消息即可,而不必關(guān)注消息發(fā)送方的具體位置等。 圖2.4 程序間的傳統(tǒng)通信 圖2.5 使用消息隊(duì)列通信消息中間件內(nèi)部可保存有多個(gè)各種類型的消息隊(duì)列,對(duì)消息根據(jù)其目的地進(jìn)行路由,在網(wǎng)絡(luò)中多個(gè)節(jié)點(diǎn)的隊(duì)列中存儲(chǔ)轉(zhuǎn)發(fā),如果節(jié)點(diǎn)之間的鏈路失敗,消息將一直保留到鏈路恢復(fù),或者等到操作員或程序重定向該消息。IBM MQSeries42是IBM公司的消息中間件產(chǎn)品,它給應(yīng)用程序提供了一種基于消息隊(duì)列的通信機(jī)制。作為存儲(chǔ)消息的數(shù)據(jù)結(jié)構(gòu),MQSeries隊(duì)列利用隊(duì)列管理器或者是應(yīng)用程序?qū)﹃?duì)列實(shí)現(xiàn)放入或取出消息操作。隊(duì)列與使用該隊(duì)列的應(yīng)用程序之間并不存
46、在聯(lián)系。隊(duì)列一般在主存儲(chǔ)器、輔助存儲(chǔ)器或者磁盤中存在,要么同時(shí)在其中兩個(gè)地方存在。一個(gè)隊(duì)列不能同時(shí)存在于兩個(gè)隊(duì)列管理器中,隊(duì)列管理器主要負(fù)責(zé)所有隊(duì)列的維護(hù)工作,并把新接收的消息置于合適的隊(duì)列之中。雖然消息隊(duì)列對(duì)應(yīng)用邏輯進(jìn)行了簡化,帶來了很多好處,但是利用消息隊(duì)列對(duì)應(yīng)用程序進(jìn)行設(shè)計(jì)以及實(shí)現(xiàn),中間件還必須考慮其他很多因素。恰如上文中一般應(yīng)用流程中所述,基于消息隊(duì)列的應(yīng)用程序不是直接進(jìn)行通訊的,并且也不記錄任何有關(guān)狀態(tài)信息,雙方進(jìn)行通訊時(shí)連接可能隨時(shí)中斷(并且應(yīng)用程序也許對(duì)該情況的發(fā)生并不了解。因此設(shè)計(jì)應(yīng)用程序時(shí)必須對(duì)各種可能發(fā)生的情況進(jìn)行充分的考慮。與此同時(shí),設(shè)計(jì)應(yīng)用程序時(shí),還要考慮很多其他方面的
47、因素,例如:當(dāng)消息隊(duì)列已滿、應(yīng)用程序的請(qǐng)求超時(shí)、需要傳遞的消息在規(guī)定期限內(nèi)不能到達(dá)目的地等情況發(fā)生時(shí)系統(tǒng)怎樣操作,到底是大量應(yīng)用進(jìn)程對(duì)同一消息隊(duì)列進(jìn)行訪問還是為每一個(gè)應(yīng)用進(jìn)程指定專屬的消息隊(duì)列。很明顯,使用消息隊(duì)列有很多優(yōu)點(diǎn),但是也要付出一定的代價(jià)。消息中間件的一個(gè)重要功能就是消息路由功能17。當(dāng)一個(gè)消息從開始結(jié)點(diǎn)發(fā)出后,消息在消息中間件當(dāng)中按照自己的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)傳輸。數(shù)據(jù)包可能要經(jīng)過許多中間結(jié)點(diǎn)才能夠到達(dá)目標(biāo)結(jié)點(diǎn),中間結(jié)點(diǎn)中也可能有數(shù)條路徑,因此必須對(duì)消息包進(jìn)行路由,才能保證數(shù)據(jù)有效到達(dá)目標(biāo)結(jié)點(diǎn)。路由是消息發(fā)送節(jié)點(diǎn)和消息接收節(jié)點(diǎn)之間的鏈接途徑,這種途徑分為兩種方式:一種是只有兩個(gè)節(jié)點(diǎn)的時(shí)候,
48、連接相對(duì)比較直接和單一,另一種就可以是多個(gè)消息發(fā)送和接收節(jié)點(diǎn)的聯(lián)結(jié),這些節(jié)點(diǎn)分布在比較復(fù)雜的網(wǎng)狀應(yīng)用系統(tǒng)中,并且這些節(jié)點(diǎn)不需要直接的物理連接,而實(shí)現(xiàn)消息的動(dòng)態(tài)傳輸。在網(wǎng)絡(luò)結(jié)構(gòu)的環(huán)境下,兩個(gè)節(jié)點(diǎn)之間的消息傳遞路徑就會(huì)對(duì)整個(gè)消息系統(tǒng)的傳遞效率產(chǎn)生影響,所以如何設(shè)計(jì)合理的路徑,使得網(wǎng)絡(luò)消息的傳遞對(duì)路徑的負(fù)載均衡,就成為了路由器的主要功能。1缺省路由協(xié)議缺省路由協(xié)議是消息傳送中間件最基本的協(xié)議,其思想是當(dāng)找不到一條明確的消息傳送路徑時(shí),就將需要傳送的消息交給上級(jí)節(jié)點(diǎn)。此時(shí),如果上下級(jí)節(jié)點(diǎn)相連通,消息中間件就會(huì)認(rèn)為路由是存在的17。2靜態(tài)路由協(xié)議靜態(tài)路由協(xié)議就是事先把路由信息表保存到文件當(dāng)中,然后按照此
49、表進(jìn)行消息的路由處理。靜態(tài)其實(shí)就是一種固定的格式,如果沒有網(wǎng)絡(luò)管理員的重新設(shè)置,靜態(tài)路由就不會(huì)改變。靜態(tài)路由的缺點(diǎn)就是不能對(duì)網(wǎng)絡(luò)的變化做出相應(yīng)調(diào)整,所以一般用于拓?fù)浣Y(jié)構(gòu)比較固定,網(wǎng)絡(luò)規(guī)模比較小的網(wǎng)絡(luò)。在這種環(huán)境下就能夠充分發(fā)揮其簡單、高效、可靠的優(yōu)點(diǎn)。3動(dòng)態(tài)樹型路由協(xié)議顧名思義,動(dòng)態(tài)樹型路由協(xié)議是應(yīng)用于樹型拓?fù)渚W(wǎng)絡(luò)當(dāng)中,它規(guī)定消息在兩個(gè)不相鄰的節(jié)點(diǎn)間傳遞路徑是可以動(dòng)態(tài)調(diào)整的。接收消息的上級(jí)節(jié)點(diǎn)可以通過這個(gè)動(dòng)態(tài)協(xié)議接收到變化的下級(jí)節(jié)點(diǎn)路由信息,并維護(hù)下級(jí)節(jié)點(diǎn)傳遞給其的路由信息。這種情況可能發(fā)生在某個(gè)節(jié)點(diǎn)能夠?qū)⑾⑼ㄟ^多條路徑傳送給上層的目標(biāo)節(jié)點(diǎn)的時(shí)候或者發(fā)送信息的節(jié)點(diǎn)在自己傳送消息的路由發(fā)生改變
50、時(shí)。4子網(wǎng)路由協(xié)議在實(shí)際使用過程中,缺省路由協(xié)議和靜態(tài)路由協(xié)議等在規(guī)模比較小的應(yīng)用系統(tǒng)中具有不錯(cuò)的效果。但隨著應(yīng)用系統(tǒng)的擴(kuò)大,業(yè)務(wù)需求也就隨著增多,前面的這些路由協(xié)議已經(jīng)不能滿足需要。所以,子網(wǎng)路由協(xié)議產(chǎn)生了,所謂子網(wǎng)就是一個(gè)消息傳輸網(wǎng)絡(luò)中的一部分,它由整個(gè)網(wǎng)絡(luò)中的若干個(gè)相鄰,而且相互具有某種直接或間接連接關(guān)系的節(jié)點(diǎn)組成,子網(wǎng)中還可以包含子網(wǎng)。子網(wǎng)的路由協(xié)議是通過節(jié)點(diǎn)的命名規(guī)則來將網(wǎng)絡(luò)內(nèi)的若干節(jié)點(diǎn)組織成子網(wǎng)絡(luò),個(gè)子網(wǎng)絡(luò)內(nèi)的所有節(jié)點(diǎn)使用相同的網(wǎng)關(guān)向網(wǎng)外發(fā)送消息。如果一個(gè)發(fā)送消息的節(jié)點(diǎn)屬于多個(gè)層次的子網(wǎng),在消息發(fā)送的時(shí)候,必須經(jīng)過每個(gè)層次的子網(wǎng)網(wǎng)關(guān),在一個(gè)子網(wǎng)中的節(jié)點(diǎn),其地址(節(jié)點(diǎn)名具有某些相同的
51、特征,例如,子網(wǎng)中的某些部分相同,不同的子網(wǎng)這一特征必須不同。2.4 網(wǎng)絡(luò)通信協(xié)議網(wǎng)絡(luò)上的計(jì)算機(jī)之間如何交換信息,其實(shí)就像我們說話用某種語言一樣,在網(wǎng)絡(luò)上的各臺(tái)計(jì)算機(jī)之間也有一種語言,這就是網(wǎng)絡(luò)協(xié)議,不同的計(jì)算機(jī)之間必須使用相同的網(wǎng)絡(luò)協(xié)議才能進(jìn)行通信。以下就對(duì)常見的通信中間件需要考慮到的協(xié)議:TCP協(xié)議、UDP協(xié)議等進(jìn)行分析。在TCP/IP網(wǎng)絡(luò)協(xié)議模型中,TCP是一種面向連接的、可靠的、基于字節(jié)流的傳輸層協(xié)議。兩個(gè)使用TCP的應(yīng)用在彼此交換信息之前必須先建立一個(gè)有效連接,這個(gè)連接需要使用到三次握手協(xié)議。如圖2.6表達(dá)了三次握手過程。第一次握手,客戶端發(fā)送SYN包到服務(wù)器,并進(jìn)入同步發(fā)送狀態(tài),等
52、待服務(wù)器確認(rèn)建立連接。第二次握手,服務(wù)器收到SYN包,必須確認(rèn)客戶的SYN(ACK=x+1,同時(shí)自己也送一個(gè)SYN包,即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài)。第三次握手,客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK,此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入連接建立狀態(tài),完成三次握手。用這種方式建立連接,能夠有效避免出現(xiàn)連接錯(cuò)誤。當(dāng)建立連接完成時(shí),客戶端與服務(wù)器的狀態(tài)變換為收發(fā)數(shù)據(jù),若收發(fā)數(shù)據(jù)完成則關(guān)閉該連接,當(dāng)這種建立連接的方法可以防止產(chǎn)生錯(cuò)誤的連接。在建立連接后,服務(wù)器和客戶端進(jìn)入收發(fā)數(shù)據(jù)狀態(tài),然后在收發(fā)完后該連接被關(guān)閉,若需要發(fā)送或接收數(shù)據(jù),再次建立三次握手連接。分
53、析該連接發(fā)現(xiàn),TCP提供的服務(wù)具有以下特點(diǎn): 圖 2.6 TCP的三次握手1、在發(fā)送數(shù)據(jù)之間,通信雙方共經(jīng)歷三次握手,因此傳輸是面向連接的。2、非常嚴(yán)格的客戶端服務(wù)器通信模型,通信方式是端到端的。3、具有較高的可靠性,可以保證數(shù)據(jù)傳送時(shí)不發(fā)生丟失或亂序等現(xiàn)象。4、數(shù)據(jù)傳輸?shù)姆绞綖槿p工方式,通信雙方能夠同時(shí)進(jìn)行收發(fā)數(shù)據(jù)。5、數(shù)據(jù)傳輸方式為字節(jié)流,當(dāng)字節(jié)流過長時(shí),能夠?qū)ζ溥M(jìn)行分段。與TCP相同,UDP網(wǎng)絡(luò)協(xié)議模型中也使用了一種傳輸層協(xié)議。經(jīng)過研究,UDP具有以下特點(diǎn):1、UDP協(xié)議是無連接的,即源端與終端在數(shù)據(jù)傳送前并不需要建立連接。當(dāng)發(fā)送端需要傳送數(shù)據(jù)時(shí),不需要請(qǐng)求接收端建立連接,直接把應(yīng)用程
54、序中的數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)中。因此只有傳輸帶寬、應(yīng)用程序中數(shù)據(jù)生成的速度以及計(jì)算機(jī)的性能對(duì)UDP發(fā)送端發(fā)送數(shù)據(jù)的速度造成影響,而UDP在隊(duì)列中存放了各消息段,接收端的應(yīng)用程序直接讀取一個(gè)隊(duì)列中的消息段。2、因?yàn)閭鬏敂?shù)據(jù)是面向無連接的,所以對(duì)連接狀態(tài)(收發(fā)狀態(tài)等不必進(jìn)行維護(hù),每臺(tái)服務(wù)器能夠?qū)⑼粋€(gè)消息同時(shí)傳送給若干個(gè)客戶端。3、與TCP信息包的標(biāo)題包含20個(gè)字節(jié)不同,UDP的標(biāo)題只有8字節(jié),因此其額外開銷比較小。4、擁擠控制算法不對(duì)吞吐量造成影響,后者僅受到下面幾個(gè)因素的影響:傳輸帶寬、應(yīng)用程序中數(shù)據(jù)生成的速度、兩端主機(jī)的性能。5、UDP采用盡最大努力而不保證完全可靠的方式進(jìn)行交付,所以主機(jī)不必花費(fèi)更
55、多的資源對(duì)鏈接狀態(tài)表進(jìn)行維護(hù)。6、UDP傳輸過程中是面向報(bào)文的,即發(fā)送端在接收到上層傳下來的報(bào)文時(shí),不必將報(bào)文進(jìn)行任何處理只需將首部增加到報(bào)文中,然后直接交給下層。由于UDP 不對(duì)報(bào)文進(jìn)行拆分或合并,所以應(yīng)用程序事先選擇報(bào)文大小必須適合UDP傳輸。第三章AFC系統(tǒng)通信中間件的分析與設(shè)計(jì)3.1 AFC系統(tǒng)簡介AFC系統(tǒng)是一種基于計(jì)算機(jī)、網(wǎng)絡(luò)、通信、自動(dòng)控制等的技術(shù),實(shí)現(xiàn)軌道交通的售票、檢票、統(tǒng)計(jì)、計(jì)費(fèi)、收費(fèi)、清分、管理等一系列全過程的自動(dòng)化系統(tǒng)46。對(duì)城市軌道交通的自動(dòng)售檢票系統(tǒng)(Automatic Fare Collection, 簡稱AFC結(jié)構(gòu)進(jìn)行層次劃分,分為車站終端設(shè)備、車票、車站計(jì)算機(jī)
56、系統(tǒng)、線路中央計(jì)算機(jī)系統(tǒng)及清分系統(tǒng)這五個(gè)層次。層次結(jié)構(gòu)的運(yùn)行方式是全封閉,采用計(jì)程收費(fèi)模式為基礎(chǔ),通過非接觸式的IC卡為車票介質(zhì)的組成原則,以各層次設(shè)備與子系統(tǒng)的各自的功能、管理職能以及所處的位置進(jìn)行劃分的。根據(jù)我國的基本國情與我國城市發(fā)展現(xiàn)狀所采取的五層結(jié)構(gòu)型式,是綜合考慮到軌道交通建設(shè)的特點(diǎn)(如建設(shè)周期較長、線路多且復(fù)雜、多個(gè)業(yè)主與施工單位等而設(shè)置的,其結(jié)構(gòu)具有較好的可伸縮性與穩(wěn)定性。其系統(tǒng)結(jié)構(gòu)如圖3.1所示。AFC系統(tǒng)中的計(jì)算機(jī)和使用到的操作系統(tǒng)根據(jù)終端設(shè)備和需要的功能各有不同,有各式不同配置的工控機(jī),操作系統(tǒng)有Windows XP、Window XP Enbeded和Linux等。 A
57、FC系統(tǒng)是一個(gè)具有分布式特性系統(tǒng),主要由各層分工負(fù)責(zé)各自的業(yè)務(wù)、系統(tǒng)相互協(xié)作。其主要功能包括通信功能與業(yè)務(wù)管理功能。1業(yè)務(wù)管理功能各層次需要實(shí)現(xiàn)的功能和要求有如下規(guī)定:第一層:車票是乘客所持的一種乘車費(fèi)用的支付媒介,其規(guī)定了單程票與儲(chǔ)值卡二種類型的電氣特性、物理特性、安全機(jī)制以及應(yīng)用文件組織等技術(shù)支持第二層:在各車站的站廳中安裝的車站終端設(shè)備,直接為乘客提供便捷的售檢票服務(wù)設(shè)施,并規(guī)定了車站的終端設(shè)備與其運(yùn)營管理等技術(shù)支持;第三層:車站計(jì)算機(jī)系統(tǒng),其主要功能是對(duì)第二層車站終端設(shè)備進(jìn)行狀態(tài)監(jiān)控、以及收集本站產(chǎn)生的交易和審計(jì)數(shù)據(jù),規(guī)定了系統(tǒng)的數(shù)據(jù)管理、運(yùn)營管理及系統(tǒng)維護(hù)管理的技術(shù)支持;第四層:線路中央計(jì)算機(jī)系統(tǒng),主
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 云南省昆明市盤龍區(qū)2024-2025學(xué)年三年級(jí)數(shù)學(xué)第二學(xué)期期末質(zhì)量檢測試題含解析
- 田陽縣2025年小升初總復(fù)習(xí)數(shù)學(xué)測試題含解析
- 2025租房合同應(yīng)該注意的事情 資料
- 2025版標(biāo)準(zhǔn)貿(mào)易合同模板
- 2025裝卸設(shè)備維護(hù)保養(yǎng)承包合同范文
- 2025品牌連鎖店合同模板
- 2025年普法知識(shí)競賽題庫及答案(共60題)
- 2025標(biāo)準(zhǔn)物業(yè)管理服務(wù)合同
- 2025年高考?xì)v史概括題解題策略
- 2025智能家居電器安裝工程合同范本
- 急性闌尾炎中醫(yī)護(hù)理查房
- (高清版)DB12∕T 934-2020 公路工程資料管理技術(shù)規(guī)程
- 【羅蘭貝格】2025全球醫(yī)療器械報(bào)告-創(chuàng)新與效率平衡之道
- 居間費(fèi)用分配協(xié)議
- 比亞迪入職考試題及答案
- 2025年杭州萬向職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案1套
- 2023-2024學(xué)年福建省福州市四年級(jí)(下)期中數(shù)學(xué)試卷
- 2024年天津醫(yī)科大學(xué)眼科醫(yī)院自主招聘筆試真題
- 船舶錨泊與系泊系統(tǒng)
- 幼兒園獲獎(jiǎng)公開課:大班語言《遇見春天》課件
- 影像學(xué) 泌尿系統(tǒng)-朱葉青學(xué)習(xí)課件
評(píng)論
0/150
提交評(píng)論