AFC系統(tǒng)通信中間件的研究與設(shè)計_第1頁
AFC系統(tǒng)通信中間件的研究與設(shè)計_第2頁
AFC系統(tǒng)通信中間件的研究與設(shè)計_第3頁
AFC系統(tǒng)通信中間件的研究與設(shè)計_第4頁
AFC系統(tǒng)通信中間件的研究與設(shè)計_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學(xué)校代號10536 學(xué)號0810803550 分類號TP391 密級公開 碩士學(xué)位論文AFC系統(tǒng)通信中間件的研究與設(shè)計學(xué)位申請人姓名張良春培養(yǎng)單位長沙理工大學(xué)導(dǎo)師姓名及職稱龍鵬飛教授學(xué)科專業(yè)計算機(jī)應(yīng)用技術(shù)研究方向人工智能及應(yīng)用論文提交日期2011年3月學(xué)校代號:10536學(xué)號:0810803550密級:公開長沙理工大學(xué)碩士學(xué)位論文AFC系統(tǒng)通信中間件的研究與設(shè)計學(xué)位申請人姓名張良春導(dǎo)師姓名及職稱龍鵬飛教授培養(yǎng)單位長沙理工大學(xué)專業(yè)名稱計算機(jī)應(yīng)用技術(shù)論文提交日期2011年3月論文答辯日期2011年5月答辯委員會主席車生兵教授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)下獨立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻(xiàn)的個人和集體,均已在文中以明確方式標(biāo)明。本人完全意識到本聲明的法律后果由本人承擔(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 (請在以上相應(yīng)方框內(nèi)打“”作者簽名:日期:年月日導(dǎo)師簽名:日期:年月日摘要隨著城市化進(jìn)程的加速,城市人口暴增,城市交通壓力越來越嚴(yán)重。中國各大城市都在想方設(shè)法解決這方面的問題,其中就投入了大量人力物力財力進(jìn)行城市軌道交通的建設(shè),因此城市軌道交通智能化和信息化的發(fā)展空間巨大。自動售檢票(Automatic Fare Collection, AFC系統(tǒng)作為軌道交通智能化設(shè)備的重要組成部分,其信息化建設(shè)一直備受重視。中間件技術(shù)作為一種前沿的軟件應(yīng)用技術(shù),在各種軟件系統(tǒng)中發(fā)揮著集成度高、可復(fù)用性強(qiáng)和提高應(yīng)用開發(fā)效率的優(yōu)勢。本文通過對中間件

5、,特別是通信中間件的研究,闡述了一種通過通信中間件來提高AFC系統(tǒng)軟件可靠性、降低開發(fā)成本、縮短開發(fā)周期的開發(fā)體制。本文根據(jù)通用性和易維護(hù)性原則設(shè)計了一種基于消息的通信中間件,同時利用具備兼容性的C+和socket開發(fā)技術(shù),封裝了一套為各種系統(tǒng)應(yīng)用軟件提供統(tǒng)一接口的通信模式。該通信中間件屏蔽網(wǎng)絡(luò)連接,不再考慮通信方面的細(xì)節(jié)問題。在具體實現(xiàn)過程中,運用了以下幾點技術(shù)來優(yōu)化通信中間件的性能:采用多線程技術(shù)并發(fā)通信,提高了數(shù)據(jù)傳輸效率,降低了CPU的占用率;對緊急信息開辟實時的通道,對其做專門的處理,盡可能減少這類消息的延時;對所有消息實行優(yōu)先級控制,建立數(shù)據(jù)緩沖機(jī)制,應(yīng)用程序在輪詢消息隊列時,優(yōu)先

6、檢測級別高的消息隊列;提供了加密過程,確保數(shù)據(jù)傳輸過程中的安全。根據(jù)實際應(yīng)用情況,使用通信中間件后,簡化了AFC系統(tǒng)的開發(fā),提高了應(yīng)用軟件的開發(fā)效率,使開發(fā)人員更加專注于對具體業(yè)務(wù)的研究。關(guān)鍵詞:中間件;消息隊列;并發(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è)計3.1 AFC系統(tǒng)簡介 (183.2 通信中間件總體設(shè)計 (213.3 通信管理器設(shè)計 (213.4 用戶接口設(shè)計 (24第四章AFC系統(tǒng)中間件實現(xiàn)4.1 Socket技術(shù) (264.2 自定義通信協(xié)議 (294.3 通信中間件的消息處理機(jī)制 (

15、314.4 通信中間件的具體實現(xiàn) (354.5 仿真實驗 (40結(jié)論與展望 (43參考文獻(xiàn) (44致謝 (47附錄(攻讀碩士學(xué)位期間發(fā)表錄用論文 (48第一章緒論1.1 研究背景及意義隨著城市化進(jìn)程的加速,城市人口暴增,城市交通壓力越來越嚴(yán)重。中國各大城市都在想方設(shè)法解決這方面的問題,其中就投入了大量人力物力財力進(jìn)行城市軌道交通的建設(shè)。與公路運輸,水運等交通方式相比,軌道交通用地面積省、運輸能力大、環(huán)境污染小等特點更適宜于經(jīng)濟(jì)實力相對雄厚的大中城市交通發(fā)展。目前,國內(nèi)像北京、廣州、上海等大城市已經(jīng)擁有較為完善的軌道交通網(wǎng)絡(luò),就廣州來看,至2010年底開通運營的地鐵線路就達(dá)到8條,其他城市已經(jīng)批

16、準(zhǔn)開工建設(shè)城市軌道交通項目達(dá)到23個,據(jù)統(tǒng)計,全國“十一五”期間建設(shè)城市軌道交通1500公里左右,總投資額在40005000億左右1??梢哉f,中國的城市軌道交通行業(yè)隨著經(jīng)濟(jì)建設(shè)的飛速發(fā)展和科學(xué)技術(shù)的不斷進(jìn)步,已經(jīng)步入一個跨越式發(fā)展的新階段,城市軌道交通智能化和信息化的發(fā)展空間也因此巨大。自動售檢票AFC(Automatic Fare Collection系統(tǒng)作為軌道交通智能化設(shè)備的重要組成部分,其信息化建設(shè)當(dāng)前備受關(guān)注。中間件技術(shù)3作為一種面向?qū)ο蟮募夹g(shù)是伴隨網(wǎng)絡(luò)的快速發(fā)展而起來的。最初的計算機(jī)系統(tǒng)沒有分布式網(wǎng)絡(luò)的概念,多是通過聯(lián)機(jī)終端來訪問的獨立系統(tǒng)。隨著網(wǎng)絡(luò)的普及,服務(wù)器端/客戶端的網(wǎng)絡(luò)服

17、務(wù)模式被建立起來3,多個客戶端可以共同訪問打印服務(wù)器和數(shù)據(jù)庫服務(wù)器等等。隨著各種網(wǎng)絡(luò)的進(jìn)一步發(fā)展,許多軟件系統(tǒng)需要在不同廠家的硬件平臺、通信協(xié)議、通信產(chǎn)品等不同結(jié)構(gòu)環(huán)境下運行,從局域網(wǎng)到廣域網(wǎng)的應(yīng)用規(guī)模也在不斷擴(kuò)大。在這種情況下,服務(wù)器端/客服端模式兼容性不強(qiáng)等局限性也就顯現(xiàn)出來了,就此中間件應(yīng)運而生。中間件是一類連接應(yīng)用和軟件組件的計算機(jī)軟件,中間件包括一系列的服務(wù),以便于運行在網(wǎng)絡(luò)中的多個軟件進(jìn)行交互。中間件技術(shù)所提供的互操作性,通常支持用于分布式應(yīng)用程序的分布式體系架構(gòu)的推進(jìn)。中間件技術(shù)在連接管理、調(diào)度和負(fù)載平衡方面起了很大的作用,同時滿足了關(guān)鍵業(yè)務(wù)的需求,大幅提升了企業(yè)級應(yīng)用的性能。城

18、市軌道交通自動售檢票(AFC系統(tǒng)是一個集信息管理和控制于一體的綜合管理系統(tǒng)。在終端設(shè)備、車站系統(tǒng)、中央計算機(jī)系統(tǒng)和城市軌道交通票務(wù)清分系統(tǒng)之間的網(wǎng)絡(luò)通信,直接影響自動售檢票系統(tǒng)數(shù)據(jù)傳輸?shù)姆€(wěn)定性和可靠性4。中間件,特別是通信中間件是很多大型軟件系統(tǒng)中的重要組成部分,它對簡化系統(tǒng)、降低成本、提高軟件的魯棒性和使得系統(tǒng)易于移植都有很大的好處。AFC系統(tǒng)作為一個網(wǎng)絡(luò)化的系統(tǒng),在實際應(yī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ā)展比較晚,最初車站的自動售檢票設(shè)備,自己還不能生產(chǎn),基本上是來自國外,不過近年來我國針對軌道交通信息化已進(jìn)行了大量的研究開發(fā)工作,并實際生產(chǎn)出了多種形式的產(chǎn)品,無論是硬件還是軟件技術(shù)水平都在不斷提高。隨著線網(wǎng)的形成和發(fā)展和軌道交通資源的大量投入,許多信息化企業(yè)和集成公司都開始開發(fā)和研制AFC系統(tǒng),為此必然會需要將不同公司的產(chǎn)品集成進(jìn)來。國內(nèi)目前城市軌道交通AFC系統(tǒng)軟件開發(fā)商已經(jīng)具有一定的規(guī)模,但都不是很成熟,具體原因就在于開發(fā)商必須具備一般只是運營商熟悉的豐富的票卡業(yè)務(wù)管理經(jīng)驗,才能更好的將其理念融入到程序設(shè)計中。目前國內(nèi)這方面的專家還較少,所以國內(nèi)的專業(yè)廠家對國外軟件設(shè)計的依賴性還很

20、強(qiáng),用戶在自動售檢票系統(tǒng)的維護(hù)和升級方面,暫時往往也只能從國外廠家得到很有效的幫助。通過分析這種情況,為了彌補(bǔ)AFC系統(tǒng)開發(fā)能力不足的缺陷,國內(nèi)開發(fā)相關(guān)系統(tǒng)的集成商和設(shè)備廠家應(yīng)主動尋找合作機(jī)會,使軌道交通自動售檢票系統(tǒng)國產(chǎn)化得以全面實現(xiàn)。國內(nèi)這些相關(guān)的系統(tǒng)集成商和研發(fā)廠家通過聘請國際上經(jīng)驗豐富的自動售檢票系統(tǒng)設(shè)計專家,參與和指導(dǎo)AFC系統(tǒng)軟件設(shè)計,建立實用、全面、嚴(yán)謹(jǐn)、高效的程序庫,逐步實現(xiàn)AFC系統(tǒng)國產(chǎn)軟件的標(biāo)準(zhǔn)化。隨著軌道交通的不斷普及,線網(wǎng)中各種系統(tǒng)將越來越多的與AFC系統(tǒng)進(jìn)行聯(lián)系和交互,軟硬件的維保工作量加大,技術(shù)難度也會提高,因此AFC系統(tǒng)的發(fā)展工作重心將逐步轉(zhuǎn)移到獲得最高效率和最佳

21、質(zhì)量的維護(hù)方式。AFC系統(tǒng)作為一個分布式系統(tǒng),將中間件技術(shù)應(yīng)用到其中在當(dāng)前也有了一定的研究。中間件技術(shù)從開始研究到現(xiàn)在的日趨成熟,已經(jīng)有二十多年。中間件產(chǎn)品多種多樣,這是由于需求廣泛性及應(yīng)用復(fù)雜性所決定的。中間件的開發(fā)針對某一領(lǐng)域逐步細(xì)分,既保障了其通用性,有可充分發(fā)揮其優(yōu)勢,并可避免軟件資源的浪費。當(dāng)前,集成化中間件產(chǎn)品的企業(yè)級應(yīng)用已經(jīng)上線,這種中間件通過研究、設(shè)計與開發(fā)等一系列的過程支持了其他大型應(yīng)用系統(tǒng)的開發(fā),取得了很好的效果。國際上IBM和微軟等公司通過在中間件產(chǎn)品中集成模型驅(qū)動架構(gòu)(Model Driven Architecture,MDA工具為信息系統(tǒng)的網(wǎng)絡(luò)應(yīng)用層、業(yè)務(wù)邏輯層、前臺

22、顯示層提供全方位的支撐。國內(nèi)金蝶等公司也已經(jīng)研究開發(fā)出了功能強(qiáng)大的中間件產(chǎn)品,應(yīng)用在我國大型的信息化建設(shè)項目上。目前,中間件也已經(jīng)成為分布式系統(tǒng)應(yīng)用全生命周期支撐工具。中間件不是一個完整的系統(tǒng),它只能作為一個應(yīng)用系統(tǒng)開發(fā)和運行的支撐平臺,它和很多軟件構(gòu)件一樣,為軟件工程的效率優(yōu)化等帶來方便,所以當(dāng)前軟件構(gòu)件庫管理平臺隨著中間件的發(fā)展將更加受到關(guān)注。中間件等軟件構(gòu)件等到迅速的發(fā)展,進(jìn)行構(gòu)件的獨立開發(fā)商已經(jīng)出現(xiàn),基于構(gòu)件的軟件開發(fā)成為軟件開發(fā)的主流。AFC系統(tǒng)作為一個分布式網(wǎng)絡(luò)系統(tǒng),它的硬件和操作系統(tǒng)平臺具有多樣性,如何簡化其應(yīng)用軟件的開發(fā)也成為當(dāng)前軌道交通信息化建設(shè)研究的熱點。1.3 本文所做的

23、工作本文設(shè)計和實現(xiàn)了應(yīng)用于AFC系統(tǒng)的通信中間件,力爭做成一種安全性能高與各平臺兼容的通信中間件,其中所做主要工作如下:1、通過對中間件,特別對基于消息的通信中間件進(jìn)行分析,并對通信協(xié)議以及各平臺下的Socket通信原理的分析,提出了AFC系統(tǒng)的通信中間件的設(shè)計方法。2、提出本通信中間件的通信模型,并對該模型下的通信管理器、客戶通信接口、通信協(xié)議等進(jìn)行了具體的設(shè)計。3、通過C+編程實現(xiàn)中間件,模擬AFC系統(tǒng)環(huán)境測試其功能,基本達(dá)到應(yīng)有效果。1.4 本文的內(nèi)容組織本文通過對AFC系統(tǒng)的通信要求和特點分析,設(shè)計和實現(xiàn)了一款基于AFC系統(tǒng)的通信中間件,全文的內(nèi)容組織結(jié)構(gòu)為:第一章介紹了本論文課題的研

24、究背景及意義,接著敘述了AFC系統(tǒng)和中間件的研究現(xiàn)狀,然后描述了本論文所做的主要工作和內(nèi)容組織。第二章對通信中間件的消息隊列、網(wǎng)絡(luò)協(xié)議等關(guān)鍵技術(shù)進(jìn)行了比較和分析。第三章對AFC系統(tǒng)中各級終端的通信特點進(jìn)行分析,對通信中間件進(jìn)行總體的設(shè)計和模塊功能分析。第四章利用Socket技術(shù)實現(xiàn)通信中間件的通信功能,并通過實驗驗證其功能和性能要求。論文最后針對本文所設(shè)計的中間件結(jié)合AFC系統(tǒng)作了一個總結(jié),提出了幾點展望。第二章中間件技術(shù)分析2.1中間件的概述二十世紀(jì)八十年代初,人們開始研究并開發(fā)中間件產(chǎn)品,最初它僅僅用于管理事物以及消息通信。直到九十年代,隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展以及企業(yè)中實際應(yīng)用的需要,人們

25、對于中間件的需求越來越多樣化,中間件技術(shù)的劃分也越來越細(xì),與此同時各企業(yè)也開發(fā)出了了各種各樣的中間件產(chǎn)品。九十年代末期,中間件已經(jīng)被明確的分成了五大類,即消息、遠(yuǎn)程調(diào)用、數(shù)據(jù)訪問、事務(wù)處理以及對象請求代理等中間件7。從此以后,隨著電子商務(wù)行業(yè)的不斷發(fā)展以及企業(yè)信息化建設(shè)的要求越來越高,由于各種各樣類型的需求影響,中間件產(chǎn)品的類型越來越豐富,中間件的內(nèi)涵以及外延也得到了更大的擴(kuò)展。中間件平臺的主流技術(shù)主要是面向?qū)ο蟮闹虚g件技術(shù),主要代表是Sun公司研發(fā)的EJB/J2EE、Microsoft研發(fā)的COM+DNA以及OMG研發(fā)的CORBA+OMA14。面向?qū)ο蟮闹虚g件技術(shù)的研究重點主要是建立規(guī)范的對

26、象請求代理,對網(wǎng)絡(luò)中的計算機(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)生了一些變化,所以研究者們對中間件技術(shù)進(jìn)行了再次分類,分別是以下幾種:通信中間件、直用服務(wù)器、數(shù)據(jù)集成中間件、應(yīng)用集成中間件、流程集成中間件和B2B應(yīng)用集成中間件。其中,通信中間件基本包括了傳統(tǒng)中間件中的所有分類。通信中間件一般用來解決不同應(yīng)用或系統(tǒng)間的通信問題,安全可靠的為上層提供來自下層的消息傳遞服務(wù)。用數(shù)據(jù)表述抽象的表示應(yīng)用接口,對分布式系統(tǒng)中隱藏的通信傳輸進(jìn)

27、行抽象化,為了處理各種集成問題準(zhǔn)備了特定的通信模式,保證在一定條件下能夠達(dá)到事務(wù)處理的目的。為了使客戶能夠隔離底層進(jìn)行通信,中間件還提供了一個接口,因此不同系統(tǒng)之間的用戶可以使用該接口進(jìn)行通訊,對于編程技術(shù)人員也是相當(dāng)便利的。它既不需要網(wǎng)絡(luò)平臺中的硬件條件一致,也允許操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議存在差異,可以在不同的網(wǎng)絡(luò)平臺之間進(jìn)行通信,在分布式系統(tǒng)之間實現(xiàn)了跨平臺通信的可靠性、高效性以及實時性,使得各種應(yīng)用程序可以在不同的網(wǎng)絡(luò)平臺上順利運行,真正達(dá)到了互相通信的目的。通信中間件的通信模型主要分為以下兩種:請求/響應(yīng)、消息傳送。前者對通信模式的主體進(jìn)行了限制,即限于請求或者是響應(yīng)的雙方。由于請求通信的一

28、方差不多都會被阻塞,直到接收到另一方的響應(yīng),因此以請求/響應(yīng)模式為基礎(chǔ)的應(yīng)用更接近單一進(jìn)程的應(yīng)用。但是以消息傳遞為基礎(chǔ)的應(yīng)用則對自身與外界進(jìn)程之間的通信很清楚,因此它們許可希望通信的進(jìn)程無論何時都可以發(fā)送請求,并且設(shè)計的風(fēng)格非常明顯。2.2 通信中間件的幾種形式通信中間件的形式一般分為以下三種:遠(yuǎn)程過程調(diào)用、會話編程以及消息隊列中間件。下面分別對這三種形式的基本思想以及特點進(jìn)行討論。遠(yuǎn)程過程調(diào)用作為同步的對話方式模型,當(dāng)本地應(yīng)用程序提出請求時,遠(yuǎn)程過程調(diào)用提供服務(wù)是通過遠(yuǎn)程應(yīng)用程序來實現(xiàn)的。主調(diào)者與被調(diào)者之間存在一條專用邏輯連接,遠(yuǎn)程過程調(diào)用利用該連接為應(yīng)用程序提供了一種“調(diào)用-返回”的同步通

29、信機(jī)制。此時主調(diào)程序一直被阻塞,直到被調(dià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ā)生而非本地。會話編程的對話通信模式是同步的。應(yīng)用程序之間提供了以應(yīng)用程序為基礎(chǔ)的一條私有邏輯連接,會話通信方案就是利用該邏輯連接進(jìn)行通信。在整個通信期間,只

30、有參與通信的應(yīng)用程序雙方能夠擁有該邏輯連接。私有對話存在于兩兩進(jìn)行通信的應(yīng)用程序之間,而且其中每個單獨的應(yīng)用程序都同時能夠參加多個對話?;跁捑幊痰膽?yīng)用程序的操作方式往往是同步的,并且結(jié)構(gòu)比較單一。若程序邏輯比較單一,需要專用的邏輯連接,比方說信息交換序列比較長時,通常使用會話編程的方式。會話編程的使用方與提供方在對方的通信系統(tǒng)中具有一個等價的邏輯單元。當(dāng)兩個應(yīng)用程序在進(jìn)行對話時,這兩個邏輯單元及其之間的邏輯連接將為應(yīng)用程序準(zhǔn)備特定的網(wǎng)絡(luò)通信。在會話通信方案中,應(yīng)用程序之間可以互相通信,為了使應(yīng)用程序之間的相關(guān)度進(jìn)一步提高,需要在系統(tǒng)底層進(jìn)行通信編程的工作量比較大。消息隊列中間件作為一種應(yīng)用

31、程序之間異步的通信方式,它是利用消息隊列為程序提供接口。在消息隊列中間件中,應(yīng)用程序與網(wǎng)絡(luò)、遠(yuǎn)程應(yīng)用程序之間的相關(guān)度不必很高,通信的應(yīng)用程序雙方也不必同時運行。消息隊列管理器作為消息隊列的容器及處理單元,是在消息中間件中處于核心地位的。消息隊列中間件支持應(yīng)用程序向消息隊列傳入或者獲取消息,應(yīng)用程序之間傳遞消息能夠利用共享隊列來進(jìn)行?;谙㈥犃兄虚g件的應(yīng)用程序邏輯上是沒有聯(lián)系的,應(yīng)用程序僅僅使用隊列組成多種方法互相聯(lián)系。目前一種比較流行的通信模型是隊列化消息傳遞,它的簡要特點就是不需要接口用戶之間具備邏輯上的連接。消息隊列中間件的使用者與提供者的聯(lián)系簡要描述為:消息的發(fā)送者或者接收者與消息傳遞

32、者、消息排隊的關(guān)系??蛻魴C(jī)/服務(wù)器模式下的分布式系統(tǒng)適用于隊列化消息傳遞,其基本思想是通過消息隊列對通信雙方的請求及相應(yīng)進(jìn)行統(tǒng)一處理,把客戶端與服務(wù)器隔離開來。消息隊列中間件使用的編程接口比較簡單,基于消息隊列中間件的應(yīng)用程序也并不復(fù)雜,并且應(yīng)用程序的完整性、可移植性、一致性易于實現(xiàn)。2.3 面向消息的中間件技術(shù)面向消息的中間件是一種把不同系統(tǒng)或應(yīng)用的軟件相互聯(lián)系起來的支撐平臺,這種平臺是通過消息的發(fā)送和接收并處理,使用程序接口或者比較靈活的方式來集成應(yīng)用程序。面向消息的中間件在進(jìn)行消息緩存和轉(zhuǎn)發(fā)的基礎(chǔ)上還能解決應(yīng)用程序間信息的非同步傳送和在異構(gòu)平臺之間的通信,從而支持分布式系統(tǒng)中穩(wěn)定的、效率

33、高的數(shù)據(jù)交互。在分布式應(yīng)用中,不同的應(yīng)用進(jìn)程之間傳遞的信息統(tǒng)稱為消息。消息一般包含兩個部分:數(shù)據(jù)和描述。數(shù)據(jù)庫查詢或應(yīng)用程序數(shù)據(jù)等組成了消息的數(shù)據(jù)部分;消息格式和數(shù)據(jù)長度等的定義等組成了消息的描述部分。消息的接收者和提供者在進(jìn)行消息定義的時候需要相互討論,得出消息的內(nèi)容和具體格式,這樣才能有效的按照規(guī)則進(jìn)行消息傳遞解析,最終得到需要的數(shù)據(jù)。消息的形式不一定,既可以是一個簡單的數(shù)據(jù)包,也可以是一個大的文件。消息的收發(fā)和傳遞方式以及消息在中間件與應(yīng)用程序之間轉(zhuǎn)發(fā)傳送都有多種形式。1消息的收發(fā)方式(1阻塞方式所謂阻塞方式就是一種同步的消息收發(fā)方式,它需要用戶進(jìn)程在進(jìn)行消息發(fā)送或接收過程中等待單個過程

34、的完成,在進(jìn)程未結(jié)束當(dāng)此發(fā)送或接收過程時將會阻塞。如果是比較長的消息,阻塞過程就會相對較長,所以如果是應(yīng)用場景中長消息較少,需要傳送大量的短消息時,可以使用此種方式。(2輪詢方式所謂輪詢方式就是用戶進(jìn)程設(shè)定一個定時器或者死循環(huán)方式不斷的查詢消息的發(fā)送和接收情況,等到檢測到收發(fā)完畢就進(jìn)行下一次消息的收發(fā)。在此之前,用戶進(jìn)程在調(diào)用發(fā)送或接收過程后,立即返回。這種消息收發(fā)方式不會使某一段程序過程的阻塞,但是實現(xiàn)的時候需要增加輪詢的代碼,消息的收發(fā)和處理函數(shù)也將結(jié)合起來,增加了這方面的難度。(3回調(diào)方式所謂回調(diào)方式就是用戶進(jìn)程在進(jìn)行消息的收發(fā)和處理過程中結(jié)合多線程技術(shù)分別處理消息收發(fā)和處理的各個過程。

35、作為具有收發(fā)功能的主線程在調(diào)用消息收發(fā)過程后,立刻返回,主線程可以繼續(xù)執(zhí)行下面的其他程序,把消息的處理轉(zhuǎn)交給事先編寫好的消息處理線程,同時利用回調(diào)函數(shù)獲取相應(yīng)的收發(fā)處理情況,這種收發(fā)方式適合于比較大的消息傳遞。這種方式保障了主程序的效率,但開發(fā)難度比較高。2消息的傳遞方式(1同步方式所謂同步方式就是消息交互時,消息的接收者和發(fā)送者雙方必須同時在線,把接收和收發(fā)過程統(tǒng)一為一個整體,一個接收需要與一個發(fā)送匹配,不然會發(fā)生消息傳遞錯亂。(2異步方式所謂異步方式就是消息交互時,消息的收發(fā)雙方不必同時在線,當(dāng)發(fā)送方發(fā)送完數(shù)據(jù)后,數(shù)據(jù)進(jìn)入到一個數(shù)據(jù)緩沖區(qū),發(fā)送方可以繼續(xù)自己的過程,而不必關(guān)心發(fā)送后具體的處

36、理過程。消息中間件通過將消息的發(fā)送和接收分離開來,并建立內(nèi)部的消息緩沖區(qū),使消息的發(fā)送和接收成為相對獨立的過程。具體在發(fā)送方,只需將消息傳入緩沖隊列就可以,接收方設(shè)定一個定時器對消息隊列進(jìn)行輪詢,如果隊列中有消息,即做出相應(yīng)的處理。3消息的轉(zhuǎn)發(fā)傳送消息在傳輸過程中可能需要經(jīng)過多次轉(zhuǎn)發(fā),在使用消息中間件時,消息中間件與底層系統(tǒng)隔離了應(yīng)用程序,因此對于應(yīng)用程序來說消息的傳遞是透明的。消息在進(jìn)行多次轉(zhuǎn)發(fā)的過程中形成了一個消息路由,這種路由就像一個消息鏈。消息的開始發(fā)送端應(yīng)用程序被稱為消息源,消息鏈的每個結(jié)點被稱為消息轉(zhuǎn)發(fā)站,最后接收消息的應(yīng)用程序被稱為消息接收終端。但是消息在傳送過程中出現(xiàn)了一個問題

37、,那就是消息在何時銷毀,是在每個消息轉(zhuǎn)發(fā)站傳完消息后即消除還是等整個傳遞過程完成再消除,因此轉(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ā)傳送是指消息傳送過程中每個參與消息傳遞的結(jié)點在收到消息時,主動向緊鄰的發(fā)送方返回確認(rèn)消息。當(dāng)緊鄰的發(fā)送方在收到確認(rèn)消息后,就可以認(rèn)為消息已經(jīng)到達(dá)接收方,因而發(fā)送方可將此消息清除。通過這種方式,消息的傳送結(jié)點就只需向前一個結(jié)點發(fā)送確認(rèn)消息即可,接力應(yīng)答轉(zhuǎn)發(fā)傳送其傳遞方式如圖2.1所示。 圖2.1 消息的接力應(yīng)答轉(zhuǎn)發(fā)傳送消息的接力轉(zhuǎn)發(fā)傳送這種技術(shù)不能有效的保證消息在傳遞過程中不被篡改,而且要求每一級消息中轉(zhuǎn)者保存消息的副

38、本,因此對中轉(zhuǎn)者的性能要求高。(2循環(huán)應(yīng)答轉(zhuǎn)發(fā)傳送循環(huán)應(yīng)答轉(zhuǎn)發(fā)傳送跟接力應(yīng)答轉(zhuǎn)發(fā)傳送方式在形式上的區(qū)別在于消息在傳送過程中,每個消息轉(zhuǎn)發(fā)消息結(jié)點無需向前一個發(fā)送結(jié)點返回確認(rèn)消息。消息接收終端在接收到消息后,生成一個確認(rèn)消息,經(jīng)過消息鏈發(fā)送到消息的開始發(fā)送端,開始發(fā)送端在接收到確認(rèn)消息后就將此消息進(jìn)行清除。如果經(jīng)過一定的時間還沒收到確認(rèn)消息,消息開始發(fā)送端將重發(fā)消息。其傳遞方式如圖2.2所示。 圖 2.2 消息的循環(huán)應(yīng)答轉(zhuǎn)發(fā)傳送消息循環(huán)應(yīng)答轉(zhuǎn)發(fā)傳送對消息中轉(zhuǎn)者的要求不高,因為在這種傳送過程的消息鏈中中間節(jié)點不需要保存消息的副本。但是,消息鏈中任意中轉(zhuǎn)者一旦消息丟失,都將導(dǎo)致在一定時間內(nèi)消息的重發(fā)

39、,在特殊情況下嚴(yán)重影響系統(tǒng)的性能,加大網(wǎng)絡(luò)的負(fù)擔(dān)。消息接收者在此時將需要處理比較復(fù)雜的消息重發(fā)程序。1客戶服務(wù)器結(jié)構(gòu)基于客戶/服務(wù)器結(jié)構(gòu)的消息中間件是由用戶利用客戶端進(jìn)行通信,簡單的過程為:客戶將消息傳送給服務(wù)器端,服務(wù)器端對消息進(jìn)行路由和轉(zhuǎn)發(fā)。微軟的MSMQ(Microsoft Message Queue41即是一種客戶服務(wù)器結(jié)構(gòu)的消息中間件產(chǎn)品,MSMQ有四種不同的服務(wù)器安裝:主企業(yè)控制器、主站點控制器、備用站點控制器、路由器17。(1主企業(yè)控制器主企業(yè)控制器是微軟消息隊列結(jié)構(gòu)的底層,它可以使消息中間件實現(xiàn)基本的功能。對于每個企業(yè)內(nèi)部網(wǎng)絡(luò)來說,都必須包含一個主企業(yè)控制器。這個控制器往往安裝

40、在公司的核心部門,這是由于所有其他的服務(wù)器都應(yīng)該可以訪問和注冊主企業(yè)控制器。假設(shè)公司的內(nèi)網(wǎng)只是建立在一個簡單的局域網(wǎng)之上,那么需要的服務(wù)器僅是主企業(yè)控制器,而且它可以與IIS結(jié)合在一起使用。在大型企業(yè)中,主企業(yè)控制器用于其它MSMQ服務(wù)器的位置和用戶信息的存儲,并可以在各個服務(wù)器之間路由消息。(2主站點控制器公司城域網(wǎng)的遠(yuǎn)程分支或站點中往往存在一個主站點控制器。主站點控制器能與遠(yuǎn)程局域網(wǎng)上的本地客戶通信,并將信息反饋給主企業(yè)控制器。每個分支或站點都分配一個主站點控制器,提供返回主企業(yè)控制器的單點通信。這對遠(yuǎn)程站點是重要的,在網(wǎng)速較慢的網(wǎng)絡(luò)中,這種服務(wù)器有利于節(jié)省系統(tǒng)資源。(3備用站點控制器主站

41、點控制器中的只讀信息副本就是使用備用站點控制器來存儲的,往往每個分支站點都安裝一個備用站點控制器。如果主站點控制器崩潰或者失效,它可以提供相應(yīng)的支持。(4路由器路由器為消息的傳遞提供有效途徑,服務(wù)器利用路由器可以使用不同的網(wǎng)絡(luò)協(xié)議進(jìn)行相互通信。MSMQ路由服務(wù)器并不會存儲通信消息,它只能確定所需傳送消息的最佳路徑。這種路由服務(wù)器在網(wǎng)絡(luò)斷開時能夠發(fā)揮很好的作用,它會嘗試查找到達(dá)目的端的其他路徑。各個分支站點都要求包含主站點服務(wù)器或者主企業(yè)站點服務(wù)器,所以路由器也就綁定在每個站點。獨立客戶和從屬客戶作為MSMQ中的兩種客戶,分別具有不同屬性和用途。A 獨立客戶獨立客戶具備給其他消息隊列中間件服務(wù)器

42、發(fā)送消息和從其他消息隊列中間件服務(wù)器中讀取消息的能力。此中間件的獨立客戶往往安裝在應(yīng)用程序服務(wù)器或網(wǎng)絡(luò)服務(wù)器上。獨立客戶還可以存儲本地消息,所以它們不會依賴于目標(biāo)機(jī)器上的中間件服務(wù)。對于COM組件或網(wǎng)頁腳本來說,中間件服務(wù)器不能使用,但需要發(fā)送消息的時候,獨立客戶就能夠發(fā)揮其有效的作用。此時,獨立客戶能夠在當(dāng)前本地工作隊列中存儲消息,直到中間件服務(wù)器變?yōu)榭捎?才繼續(xù)轉(zhuǎn)發(fā)消息。獨立客戶能夠利用文件和注冊表等存放消息到本地隊列。B 從屬客戶從屬客戶不能像獨立客戶那樣可以存儲本地消息,也不可以在其他服務(wù)器上組建隊列和從消息隊列中異步讀取消息。當(dāng)從屬客戶訪問消息隊列中間件服務(wù)器時,只能發(fā)送和讀取消息。

43、終端用戶對消息處理的響應(yīng)處理需求不大,所以從屬客戶往往安裝在終端用戶平臺中。2多級節(jié)點結(jié)構(gòu)節(jié)點是指一種應(yīng)用程序運行環(huán)境,由中間件支撐起來的虛擬計算機(jī)平臺。一個節(jié)點能夠相當(dāng)于一個業(yè)務(wù)處理終端。不同節(jié)點也可以同時位于相同的一臺計算機(jī)上運行。在分布式網(wǎng)絡(luò)中應(yīng)用消息中間件,與本地節(jié)點直接通信的上一層節(jié)點,即接收本地消息的節(jié)點叫做中心節(jié)點又被稱為消息開始發(fā)送端的上級節(jié)點。當(dāng)作為客戶進(jìn)程的一端請求消息,服務(wù)進(jìn)程經(jīng)過相應(yīng)處理生成回復(fù)消息應(yīng)答客戶方。與本地節(jié)點直接通信的下一層節(jié)點,即發(fā)送消息到本地的節(jié)點被稱作該本地節(jié)點的下級節(jié)點。對于大部分的實際應(yīng)用,在處理相關(guān)細(xì)節(jié)和業(yè)務(wù)問題時,上級節(jié)點比下級節(jié)點發(fā)揮了更大的

44、作用。如圖2.3更加明了的描述了多個節(jié)點中間的關(guān)系,其中設(shè)立三個節(jié)點,分別為X,Y,Z。在X節(jié)點上運行應(yīng)用程序x,用于向相鄰節(jié)點傳遞消息。Y節(jié)點上運行應(yīng)用程序y,它用于從X節(jié)點上接收消息,再將消息轉(zhuǎn)發(fā)到Z節(jié)點上。在Z節(jié)點上運行應(yīng)用程序z用于傳遞與Y等節(jié)點交互的消息。發(fā)送消息發(fā)送消息 接收消息接收消息圖 2.3節(jié)點間消息傳遞圖下面設(shè)立當(dāng)前三個節(jié)點的相關(guān)系數(shù):X節(jié)點,上級節(jié)點Y;X節(jié)點,上級節(jié)點Z和下級節(jié)點X;Z節(jié)點,下級節(jié)點Y。TongLINK/Q就是國內(nèi)東方通科技公司開發(fā)的一種多級節(jié)點結(jié)構(gòu)的消息中間件產(chǎn)品。計算機(jī)在使用TongLINK/Q后能夠組成支持的網(wǎng)絡(luò)結(jié)構(gòu)可以是總線型等。這樣一來便簡化了

45、實際網(wǎng)絡(luò)復(fù)雜的拓?fù)浣Y(jié)構(gòu)。的隊列。應(yīng)用程序只管向相應(yīng)隊列中寫入或讀取消息即可,而不必關(guān)注消息發(fā)送方的具體位置等。 圖2.4 程序間的傳統(tǒng)通信 圖2.5 使用消息隊列通信消息中間件內(nèi)部可保存有多個各種類型的消息隊列,對消息根據(jù)其目的地進(jìn)行路由,在網(wǎng)絡(luò)中多個節(jié)點的隊列中存儲轉(zhuǎn)發(fā),如果節(jié)點之間的鏈路失敗,消息將一直保留到鏈路恢復(fù),或者等到操作員或程序重定向該消息。IBM MQSeries42是IBM公司的消息中間件產(chǎn)品,它給應(yīng)用程序提供了一種基于消息隊列的通信機(jī)制。作為存儲消息的數(shù)據(jù)結(jié)構(gòu),MQSeries隊列利用隊列管理器或者是應(yīng)用程序?qū)﹃犃袑崿F(xiàn)放入或取出消息操作。隊列與使用該隊列的應(yīng)用程序之間并不存

46、在聯(lián)系。隊列一般在主存儲器、輔助存儲器或者磁盤中存在,要么同時在其中兩個地方存在。一個隊列不能同時存在于兩個隊列管理器中,隊列管理器主要負(fù)責(zé)所有隊列的維護(hù)工作,并把新接收的消息置于合適的隊列之中。雖然消息隊列對應(yīng)用邏輯進(jìn)行了簡化,帶來了很多好處,但是利用消息隊列對應(yīng)用程序進(jìn)行設(shè)計以及實現(xiàn),中間件還必須考慮其他很多因素。恰如上文中一般應(yīng)用流程中所述,基于消息隊列的應(yīng)用程序不是直接進(jìn)行通訊的,并且也不記錄任何有關(guān)狀態(tài)信息,雙方進(jìn)行通訊時連接可能隨時中斷(并且應(yīng)用程序也許對該情況的發(fā)生并不了解。因此設(shè)計應(yīng)用程序時必須對各種可能發(fā)生的情況進(jìn)行充分的考慮。與此同時,設(shè)計應(yīng)用程序時,還要考慮很多其他方面的

47、因素,例如:當(dāng)消息隊列已滿、應(yīng)用程序的請求超時、需要傳遞的消息在規(guī)定期限內(nèi)不能到達(dá)目的地等情況發(fā)生時系統(tǒng)怎樣操作,到底是大量應(yīng)用進(jìn)程對同一消息隊列進(jìn)行訪問還是為每一個應(yīng)用進(jìn)程指定專屬的消息隊列。很明顯,使用消息隊列有很多優(yōu)點,但是也要付出一定的代價。消息中間件的一個重要功能就是消息路由功能17。當(dāng)一個消息從開始結(jié)點發(fā)出后,消息在消息中間件當(dāng)中按照自己的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)傳輸。數(shù)據(jù)包可能要經(jīng)過許多中間結(jié)點才能夠到達(dá)目標(biāo)結(jié)點,中間結(jié)點中也可能有數(shù)條路徑,因此必須對消息包進(jìn)行路由,才能保證數(shù)據(jù)有效到達(dá)目標(biāo)結(jié)點。路由是消息發(fā)送節(jié)點和消息接收節(jié)點之間的鏈接途徑,這種途徑分為兩種方式:一種是只有兩個節(jié)點的時候,

48、連接相對比較直接和單一,另一種就可以是多個消息發(fā)送和接收節(jié)點的聯(lián)結(jié),這些節(jié)點分布在比較復(fù)雜的網(wǎng)狀應(yīng)用系統(tǒng)中,并且這些節(jié)點不需要直接的物理連接,而實現(xiàn)消息的動態(tài)傳輸。在網(wǎng)絡(luò)結(jié)構(gòu)的環(huán)境下,兩個節(jié)點之間的消息傳遞路徑就會對整個消息系統(tǒng)的傳遞效率產(chǎn)生影響,所以如何設(shè)計合理的路徑,使得網(wǎng)絡(luò)消息的傳遞對路徑的負(fù)載均衡,就成為了路由器的主要功能。1缺省路由協(xié)議缺省路由協(xié)議是消息傳送中間件最基本的協(xié)議,其思想是當(dāng)找不到一條明確的消息傳送路徑時,就將需要傳送的消息交給上級節(jié)點。此時,如果上下級節(jié)點相連通,消息中間件就會認(rèn)為路由是存在的17。2靜態(tài)路由協(xié)議靜態(tài)路由協(xié)議就是事先把路由信息表保存到文件當(dāng)中,然后按照此

49、表進(jìn)行消息的路由處理。靜態(tài)其實就是一種固定的格式,如果沒有網(wǎng)絡(luò)管理員的重新設(shè)置,靜態(tài)路由就不會改變。靜態(tài)路由的缺點就是不能對網(wǎng)絡(luò)的變化做出相應(yīng)調(diào)整,所以一般用于拓?fù)浣Y(jié)構(gòu)比較固定,網(wǎng)絡(luò)規(guī)模比較小的網(wǎng)絡(luò)。在這種環(huán)境下就能夠充分發(fā)揮其簡單、高效、可靠的優(yōu)點。3動態(tài)樹型路由協(xié)議顧名思義,動態(tài)樹型路由協(xié)議是應(yīng)用于樹型拓?fù)渚W(wǎng)絡(luò)當(dāng)中,它規(guī)定消息在兩個不相鄰的節(jié)點間傳遞路徑是可以動態(tài)調(diào)整的。接收消息的上級節(jié)點可以通過這個動態(tài)協(xié)議接收到變化的下級節(jié)點路由信息,并維護(hù)下級節(jié)點傳遞給其的路由信息。這種情況可能發(fā)生在某個節(jié)點能夠?qū)⑾⑼ㄟ^多條路徑傳送給上層的目標(biāo)節(jié)點的時候或者發(fā)送信息的節(jié)點在自己傳送消息的路由發(fā)生改變

50、時。4子網(wǎng)路由協(xié)議在實際使用過程中,缺省路由協(xié)議和靜態(tài)路由協(xié)議等在規(guī)模比較小的應(yīng)用系統(tǒng)中具有不錯的效果。但隨著應(yīng)用系統(tǒng)的擴(kuò)大,業(yè)務(wù)需求也就隨著增多,前面的這些路由協(xié)議已經(jīng)不能滿足需要。所以,子網(wǎng)路由協(xié)議產(chǎn)生了,所謂子網(wǎng)就是一個消息傳輸網(wǎng)絡(luò)中的一部分,它由整個網(wǎng)絡(luò)中的若干個相鄰,而且相互具有某種直接或間接連接關(guān)系的節(jié)點組成,子網(wǎng)中還可以包含子網(wǎng)。子網(wǎng)的路由協(xié)議是通過節(jié)點的命名規(guī)則來將網(wǎng)絡(luò)內(nèi)的若干節(jié)點組織成子網(wǎng)絡(luò),個子網(wǎng)絡(luò)內(nèi)的所有節(jié)點使用相同的網(wǎng)關(guān)向網(wǎng)外發(fā)送消息。如果一個發(fā)送消息的節(jié)點屬于多個層次的子網(wǎng),在消息發(fā)送的時候,必須經(jīng)過每個層次的子網(wǎng)網(wǎng)關(guān),在一個子網(wǎng)中的節(jié)點,其地址(節(jié)點名具有某些相同的

51、特征,例如,子網(wǎng)中的某些部分相同,不同的子網(wǎng)這一特征必須不同。2.4 網(wǎng)絡(luò)通信協(xié)議網(wǎng)絡(luò)上的計算機(jī)之間如何交換信息,其實就像我們說話用某種語言一樣,在網(wǎng)絡(luò)上的各臺計算機(jī)之間也有一種語言,這就是網(wǎng)絡(luò)協(xié)議,不同的計算機(jī)之間必須使用相同的網(wǎng)絡(luò)協(xié)議才能進(jìn)行通信。以下就對常見的通信中間件需要考慮到的協(xié)議:TCP協(xié)議、UDP協(xié)議等進(jìn)行分析。在TCP/IP網(wǎng)絡(luò)協(xié)議模型中,TCP是一種面向連接的、可靠的、基于字節(jié)流的傳輸層協(xié)議。兩個使用TCP的應(yīng)用在彼此交換信息之前必須先建立一個有效連接,這個連接需要使用到三次握手協(xié)議。如圖2.6表達(dá)了三次握手過程。第一次握手,客戶端發(fā)送SYN包到服務(wù)器,并進(jìn)入同步發(fā)送狀態(tài),等

52、待服務(wù)器確認(rèn)建立連接。第二次握手,服務(wù)器收到SYN包,必須確認(rèn)客戶的SYN(ACK=x+1,同時自己也送一個SYN包,即SYN+ACK包,此時服務(wù)器進(jìn)入SYN_RECV狀態(tài)。第三次握手,客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK,此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入連接建立狀態(tài),完成三次握手。用這種方式建立連接,能夠有效避免出現(xiàn)連接錯誤。當(dāng)建立連接完成時,客戶端與服務(wù)器的狀態(tài)變換為收發(fā)數(shù)據(jù),若收發(fā)數(shù)據(jù)完成則關(guān)閉該連接,當(dāng)這種建立連接的方法可以防止產(chǎn)生錯誤的連接。在建立連接后,服務(wù)器和客戶端進(jìn)入收發(fā)數(shù)據(jù)狀態(tài),然后在收發(fā)完后該連接被關(guān)閉,若需要發(fā)送或接收數(shù)據(jù),再次建立三次握手連接。分

53、析該連接發(fā)現(xiàn),TCP提供的服務(wù)具有以下特點: 圖 2.6 TCP的三次握手1、在發(fā)送數(shù)據(jù)之間,通信雙方共經(jīng)歷三次握手,因此傳輸是面向連接的。2、非常嚴(yán)格的客戶端服務(wù)器通信模型,通信方式是端到端的。3、具有較高的可靠性,可以保證數(shù)據(jù)傳送時不發(fā)生丟失或亂序等現(xiàn)象。4、數(shù)據(jù)傳輸?shù)姆绞綖槿p工方式,通信雙方能夠同時進(jìn)行收發(fā)數(shù)據(jù)。5、數(shù)據(jù)傳輸方式為字節(jié)流,當(dāng)字節(jié)流過長時,能夠?qū)ζ溥M(jìn)行分段。與TCP相同,UDP網(wǎng)絡(luò)協(xié)議模型中也使用了一種傳輸層協(xié)議。經(jīng)過研究,UDP具有以下特點:1、UDP協(xié)議是無連接的,即源端與終端在數(shù)據(jù)傳送前并不需要建立連接。當(dāng)發(fā)送端需要傳送數(shù)據(jù)時,不需要請求接收端建立連接,直接把應(yīng)用程

54、序中的數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)中。因此只有傳輸帶寬、應(yīng)用程序中數(shù)據(jù)生成的速度以及計算機(jī)的性能對UDP發(fā)送端發(fā)送數(shù)據(jù)的速度造成影響,而UDP在隊列中存放了各消息段,接收端的應(yīng)用程序直接讀取一個隊列中的消息段。2、因為傳輸數(shù)據(jù)是面向無連接的,所以對連接狀態(tài)(收發(fā)狀態(tài)等不必進(jìn)行維護(hù),每臺服務(wù)器能夠?qū)⑼粋€消息同時傳送給若干個客戶端。3、與TCP信息包的標(biāo)題包含20個字節(jié)不同,UDP的標(biāo)題只有8字節(jié),因此其額外開銷比較小。4、擁擠控制算法不對吞吐量造成影響,后者僅受到下面幾個因素的影響:傳輸帶寬、應(yīng)用程序中數(shù)據(jù)生成的速度、兩端主機(jī)的性能。5、UDP采用盡最大努力而不保證完全可靠的方式進(jìn)行交付,所以主機(jī)不必花費更

55、多的資源對鏈接狀態(tài)表進(jìn)行維護(hù)。6、UDP傳輸過程中是面向報文的,即發(fā)送端在接收到上層傳下來的報文時,不必將報文進(jìn)行任何處理只需將首部增加到報文中,然后直接交給下層。由于UDP 不對報文進(jìn)行拆分或合并,所以應(yīng)用程序事先選擇報文大小必須適合UDP傳輸。第三章AFC系統(tǒng)通信中間件的分析與設(shè)計3.1 AFC系統(tǒng)簡介AFC系統(tǒng)是一種基于計算機(jī)、網(wǎng)絡(luò)、通信、自動控制等的技術(shù),實現(xiàn)軌道交通的售票、檢票、統(tǒng)計、計費、收費、清分、管理等一系列全過程的自動化系統(tǒng)46。對城市軌道交通的自動售檢票系統(tǒng)(Automatic Fare Collection, 簡稱AFC結(jié)構(gòu)進(jìn)行層次劃分,分為車站終端設(shè)備、車票、車站計算機(jī)

56、系統(tǒng)、線路中央計算機(jī)系統(tǒng)及清分系統(tǒng)這五個層次。層次結(jié)構(gòu)的運行方式是全封閉,采用計程收費模式為基礎(chǔ),通過非接觸式的IC卡為車票介質(zhì)的組成原則,以各層次設(shè)備與子系統(tǒng)的各自的功能、管理職能以及所處的位置進(jìn)行劃分的。根據(jù)我國的基本國情與我國城市發(fā)展現(xiàn)狀所采取的五層結(jié)構(gòu)型式,是綜合考慮到軌道交通建設(shè)的特點(如建設(shè)周期較長、線路多且復(fù)雜、多個業(yè)主與施工單位等而設(shè)置的,其結(jié)構(gòu)具有較好的可伸縮性與穩(wěn)定性。其系統(tǒng)結(jié)構(gòu)如圖3.1所示。AFC系統(tǒng)中的計算機(jī)和使用到的操作系統(tǒng)根據(jù)終端設(shè)備和需要的功能各有不同,有各式不同配置的工控機(jī),操作系統(tǒng)有Windows XP、Window XP Enbeded和Linux等。 A

57、FC系統(tǒng)是一個具有分布式特性系統(tǒng),主要由各層分工負(fù)責(zé)各自的業(yè)務(wù)、系統(tǒng)相互協(xié)作。其主要功能包括通信功能與業(yè)務(wù)管理功能。1業(yè)務(wù)管理功能各層次需要實現(xiàn)的功能和要求有如下規(guī)定:第一層:車票是乘客所持的一種乘車費用的支付媒介,其規(guī)定了單程票與儲值卡二種類型的電氣特性、物理特性、安全機(jī)制以及應(yīng)用文件組織等技術(shù)支持第二層:在各車站的站廳中安裝的車站終端設(shè)備,直接為乘客提供便捷的售檢票服務(wù)設(shè)施,并規(guī)定了車站的終端設(shè)備與其運營管理等技術(shù)支持;第三層:車站計算機(jī)系統(tǒng),其主要功能是對第二層車站終端設(shè)備進(jìn)行狀態(tài)監(jiān)控、以及收集本站產(chǎn)生的交易和審計數(shù)據(jù),規(guī)定了系統(tǒng)的數(shù)據(jù)管理、運營管理及系統(tǒng)維護(hù)管理的技術(shù)支持;第四層:線路中央計算機(jī)系統(tǒng),主

溫馨提示

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

評論

0/150

提交評論