999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ACE架構(gòu)的前置采集軟件的設(shè)計和實現(xiàn)

2018-03-21 09:07:44張振華
電子技術(shù)與軟件工程 2018年2期
關(guān)鍵詞:服務(wù)

張振華

摘 要 由于操作系統(tǒng)及通信平臺的多樣性, 通信軟件開發(fā)者往往要面對諸多問題, 而利用軟件設(shè)計模式能夠幫助開發(fā)者成功完成任務(wù)并開發(fā)出高性能的通信軟件。本文首先闡述了傳統(tǒng)通信軟件的實現(xiàn)方式和存在的一些問題,接著介紹了ACE 框架以及使用ACE架構(gòu)構(gòu)建通信系統(tǒng)軟件的優(yōu)勢,然后詳細介紹了基于ACE架構(gòu)的前置采集軟件的設(shè)計,重點描述了軟件架構(gòu)中六個服務(wù)的功能。最后針對軟件中服務(wù)間通訊方式、守護進程和采集服務(wù)的實現(xiàn)方式做了詳細的介紹。

【關(guān)鍵詞】ACE架構(gòu) 前置采集

隨著國家節(jié)能減排工作的推進,軌道交通行業(yè)的節(jié)能減排工作得到了高度重視。軌道交通能源管理系統(tǒng)是針對軌道交通行業(yè)而開發(fā)的一套能源管理軟件平臺,其目的使軌道交通運營部門能夠科學(xué)的強化能源管理、降低能源消耗、提高能源利用效率。在軌道交通能源管理系統(tǒng)中,前置采集軟件起著最關(guān)鍵和最基本的作用,主要是進行全線車站及車輛段的能耗數(shù)據(jù)的采集和簡單處理,包括前置服務(wù)的監(jiān)控、終端數(shù)據(jù)的采集、解析、統(tǒng)計、補招等功能,因此前置采集軟件的設(shè)計和實現(xiàn)對在軌道交通能源管理系統(tǒng)中起到至關(guān)重要的作用。

傳統(tǒng)的前置采集軟件大多采用基于TCP/IP協(xié)議的Socket方式實現(xiàn)與終端設(shè)備的通信,雖然Socket具有很高的效率,但網(wǎng)絡(luò)編程人員通常從底層進行開發(fā),非常繁瑣且參數(shù)復(fù)雜,調(diào)用易出錯,異常處理容易遺漏,這些大大增加了軟件開發(fā)的難度和周期。另外前置采集軟件開發(fā)中通常采用模塊化設(shè)計,當(dāng)執(zhí)行任務(wù)時,需要通過其中不同的模塊進行協(xié)作完成,在這種情況下各模塊間的數(shù)據(jù)通信會變得異常繁瑣和復(fù)雜。為了提高系統(tǒng)的可靠性和實時性,使編程人員減少數(shù)據(jù)通訊編程的復(fù)雜度,重點關(guān)注于業(yè)務(wù)邏輯功能,本文提出了一種基于ACE架構(gòu)的前置采集軟件設(shè)計方案。

1 ACE架構(gòu)簡介

ACE(Adaptive Communication Environment)是一種面向?qū)ο蟮拈_放源碼的應(yīng)用框架,它封裝了底層API,屏蔽了系統(tǒng)間的差異,提供了一組豐富的可重用C++包裝外觀和框架組件,可跨多種平臺完成通用的通信軟件任務(wù)。

ACE體系機構(gòu)包括3個層次結(jié)構(gòu):

1.1 操作系統(tǒng)適配層

對操作系統(tǒng)并發(fā)機制和進程間通信機制進行封裝。采用模板技術(shù)對不同操作系統(tǒng)間的通信API進行封裝,對外提供統(tǒng)一的接口。消除了操作系統(tǒng)間的差異;

1.2 OO Wrappers層

應(yīng)用C++的面向?qū)ο筇匦院湍0鍖崿F(xiàn)內(nèi)存管理。多線程及多進程管理,消息隊列機制,動態(tài)服務(wù)配置,定時器隊列等。在具體應(yīng)用中可通過組合和聚合,選擇和包裝這些類完成具體的實現(xiàn)。

1.3 框架組件層

前攝器、反應(yīng)器、任務(wù)、連接接收器等框架組件。

ACE框架組件設(shè)計思想和設(shè)計模式是根據(jù)領(lǐng)域的特性來定制,其中具有針對通信系統(tǒng)特有的部分,將這種框架和設(shè)計模式應(yīng)用前置采集系統(tǒng)的設(shè)計中,消除系統(tǒng)底層通信編程的復(fù)雜性,使得網(wǎng)絡(luò)編程人員把大部分的精力集中于如何完成應(yīng)用系統(tǒng)軟件功能的實現(xiàn)上,將會大大縮短系統(tǒng)的開發(fā)周期。

2 前置采集軟件的設(shè)計

2.1 軟件設(shè)計原則

前置采集軟件的功能是采集整條地鐵線路的能源數(shù)據(jù)并進行統(tǒng)計分析,根據(jù)能源管理系統(tǒng)的特點,前置采集軟件具有較高的要求:

2.1.1 可靠性

軟件能夠長期可靠、穩(wěn)定的運行是軟件設(shè)計原則的首位。軟件應(yīng)具備主備切換功能,運行故障時能夠自動切換,保證系統(tǒng)能夠長期穩(wěn)定可靠的運行。

2.1.2 實時性

軟件能夠及時高效的采集各種能耗數(shù)據(jù),保證系統(tǒng)能夠?qū)崟r監(jiān)測各種能耗設(shè)備運行狀態(tài)和信息。

2.1.3 可維護性

軟件應(yīng)具有很好的易維護性,滿足多種通信方式、多種規(guī)約終端統(tǒng)一接入需求,并且能非常方便地擴充、維護通信規(guī)約和通信方式。

2.2 軟件架構(gòu)

前置采集軟件的主要功能進行能源數(shù)據(jù)的采集和數(shù)據(jù)的統(tǒng)計。前置采集的各個服務(wù)首先在啟動的時候,讀取對應(yīng)的配置文檔,加載并初始化各個服務(wù)。然后建立與現(xiàn)場各種采集終端通信,采用標準規(guī)約進行數(shù)據(jù)交互活動。前置采集軟件將采集后的數(shù)據(jù)經(jīng)過相關(guān)處理后存儲到相應(yīng)sqlite格式的文件中。

圖1為前置采集軟件的架構(gòu)圖,從圖中可以看出該軟件劃分為6部分,分別為監(jiān)控服務(wù),采集服務(wù)、解析服務(wù)、統(tǒng)計服務(wù)、補招服務(wù)和用戶服務(wù)。

監(jiān)控服務(wù):該服務(wù)主要有兩個作用,一個是控制前置采集軟件運行模式,前置采集軟件具有四種運行模式:單機模式、主備模式、負載均衡和負載分流。通過Web設(shè)置界面進行運行模式的設(shè)置;另一個是對軟件中其它的服務(wù)進行監(jiān)控,如其它服務(wù)運行中出現(xiàn)意外而崩潰,監(jiān)控模塊則重新開啟該服務(wù),以保證前置采集軟件的長期穩(wěn)定運行。

采集服務(wù):負責(zé)與終端的通信連接管理和數(shù)據(jù)收發(fā)和轉(zhuǎn)發(fā)。采集模塊首先獲取通道信息,然后根據(jù)通道類型創(chuàng)建通道對象(串口、TCP服務(wù)器、TCP客戶端和串口服務(wù)器等等),最后將所新建的通道對象依次打開并根據(jù)通道的類型依次對所關(guān)聯(lián)的終端進行連接。之后與終端進行報文通信,將從終端收到的報文轉(zhuǎn)發(fā)到解析服務(wù),將從解析服務(wù)接收到的報文根據(jù)所關(guān)聯(lián)終端的對應(yīng)通道發(fā)送到該終端。

解析服務(wù):主要包括解析模塊,任務(wù)模塊和對時模塊。其中解析模塊負責(zé)對從采集服務(wù)傳送來的報文數(shù)據(jù)和任務(wù)模塊傳送來的采集任務(wù)進行規(guī)約解析;任務(wù)模塊從數(shù)據(jù)庫中定時加載采集任務(wù)和模板,組織成采集任務(wù)后發(fā)送給解析模塊;對時模塊則通過自定義對時狀態(tài)機對終端時間進行控制。解析后的數(shù)據(jù)保存為sqlite格式的文件,以供其它服務(wù)使用。

統(tǒng)計服務(wù):主要是對從采集服務(wù)上傳來的數(shù)據(jù)進行統(tǒng)計分析。包括實時數(shù)據(jù)統(tǒng)計和曲線數(shù)據(jù)統(tǒng)計。其中統(tǒng)計實時數(shù)據(jù)分為流量統(tǒng)計、終端狀態(tài)和表計狀態(tài)統(tǒng)計。曲線數(shù)據(jù)統(tǒng)計分為終端歷史狀態(tài)統(tǒng)計,采集完整率統(tǒng)計和缺點統(tǒng)計。

補招服務(wù):負責(zé)對采集的數(shù)據(jù)項進行統(tǒng)計,如數(shù)據(jù)項在指定的時間點沒有采集到數(shù)據(jù)或采集到數(shù)據(jù)異常,則會生成補招任務(wù)下發(fā)給解析服務(wù)進行數(shù)據(jù)的補招。

用戶服務(wù):處理與用戶的任務(wù)交互。能源管理系統(tǒng)主要是由前臺和后臺兩部分組成,而用戶服務(wù)是前臺和后臺之間通訊的橋梁。用戶服務(wù)的功能主要是新建與前臺的路由,新建與解析服務(wù)的路由,對路由收到的數(shù)據(jù)進行相應(yīng)的處理等等。

3 前置采集軟件的實現(xiàn)

3.1 服務(wù)間的通訊方式

該軟件所包含的六個服務(wù)間通訊方式采用共享內(nèi)存方式,比如:解析服務(wù)和采集服務(wù)之間的通訊、補招服務(wù)和采集服務(wù)之間的通訊等。共享內(nèi)存就是允許多個不相關(guān)的進程訪問同一邏輯內(nèi)存來進行數(shù)據(jù)交換。當(dāng)網(wǎng)絡(luò)應(yīng)用擁有需要由多個進程來查看或操縱的數(shù)據(jù)時,共享內(nèi)存是非常有效的一種通信機制。

ACE提供兩個共享內(nèi)存機制:System V共享內(nèi)存和內(nèi)存映射文件,本軟件采用內(nèi)存映射文件機制。內(nèi)存映射文件機制是某個文件的部分或者全部都可以被映射到虛擬內(nèi)存的某一塊上,這部分虛擬內(nèi)存跨多進程共享,映射到內(nèi)存文件的內(nèi)容可被刷新到永久存儲器中,這種做法提供了一種便捷地保存和恢復(fù)跨程序執(zhí)行的信息的途徑。在這種機制中,操作系統(tǒng)都能夠讓多個進程把共享內(nèi)存區(qū)域映射到它們的地址空間中,如圖2,所有映射了共享內(nèi)存區(qū)域的進程都能夠直接對共享內(nèi)存進行讀寫操作。

本系統(tǒng)采用內(nèi)存映射文件機制的基礎(chǔ)是ACE_Mem_Map類,該類用來映射磁盤文件到內(nèi)存。而ACE_MMAP_Memory_Pool類則是為內(nèi)存映射文件分配內(nèi)存的內(nèi)存池。

3.2 守護進程的實現(xiàn)

在設(shè)計進程守護中使用ACE架構(gòu)中的ACE_Reactor模式來實現(xiàn)主動對象模式。在ACE_Reactor模式中,ACE_Event_Handler是所有事件處理器的基類。通過向ACE_Reactor注冊事件,并同時傳遞用以處理此事件的事件處理器的指針。ACE_Reactor自動在內(nèi)部維護一些表,將事件與事件處理器對象關(guān)聯(lián)起來,當(dāng)用戶注冊的事件發(fā)生時, ACE_Reactor發(fā)出對處理器中相應(yīng)方法的回調(diào)。

每個需要守護的進程定義一個服務(wù)對象,服務(wù)對象注冊一個定時器事件,定時來檢測需要守護的進程是否存在,如不存在則啟動該進程,如果存在則繼續(xù)守護。在實現(xiàn)服務(wù)類時,采取以下步驟:

(1)創(chuàng)建ACE_Event_Handler的子類。

(2)實現(xiàn)服務(wù)類的打開和關(guān)閉函數(shù):open函數(shù)用于對服務(wù)進行初始化;而close()函數(shù)則是釋放、關(guān)閉各種資源。

(3)創(chuàng)建定時時鐘,通過調(diào)用ACE_Reactor::instance()->schedule_timer()來定義時鐘。

(4)重寫時鐘超時的處理方法:handle_timeout(),當(dāng)時鐘超時后將自動調(diào)用該處理方法來處理。

3.3 采集服務(wù)的實現(xiàn)

采集服務(wù)是負責(zé)與終端的通信連接管理和數(shù)據(jù)收發(fā)和轉(zhuǎn)發(fā)的功能。該模塊采用異步I/O操作ACE_Proactor設(shè)計模式。首先采集服務(wù)注冊異步事件及相應(yīng)的回調(diào)函數(shù)注冊到完成分派器,然后發(fā)出異步I/O操作,完成分派器將在I/O操作完成時激活異步事件,并調(diào)用相應(yīng)的回調(diào)函數(shù)進行事件處理。前攝器設(shè)計模式允許單線程化應(yīng)用并發(fā)的執(zhí)行多個I/O操作,并且不會帶來與傳統(tǒng)的多線程化機制相關(guān)聯(lián)的開銷或設(shè)計復(fù)雜性。這樣做大大減少了 I/ O 處理時間。

采集服務(wù)的實現(xiàn)步驟如下:

(1)創(chuàng)建服務(wù)處理器。服務(wù)器處理均派生自ACE_Service_Handler類,并定義相應(yīng)的事件處理函數(shù);當(dāng)發(fā)生I/O操作完成事件時,會觸發(fā)相應(yīng)的事件完成回調(diào)函數(shù)。

(2)實現(xiàn)服務(wù)處理器I/O操作。ACE_Proactor框架中所有的I/O操作都由相應(yīng)的異步操作類來完成,如ACE_Asynch_Read_Stream用于在已連接的TCP/IP中進行異步的讀取操作,而ACE_Asynch_Write_Stream用于在已連接的 TCP/IP中進行異步寫操作。采集服務(wù)先將讀、寫操作注冊到服務(wù)處理器中,然后發(fā)出異步I/O操作請求,當(dāng)異步I/O操作完成后,系統(tǒng)自動調(diào)用服務(wù)處理器中的相關(guān)函數(shù)進行后續(xù)的處理工作。

(3)創(chuàng)建TCP/IP連接的接收器。本服務(wù)采用ACE_Asynch_Acceptor工廠類來創(chuàng)建TCP/IP連接的接收器,當(dāng)終端的連接到達時,接收器創(chuàng)建相應(yīng)的服務(wù)處理器對象來處理該連接。

(4)運行事件循環(huán),當(dāng)I/O事件發(fā)生時,調(diào)用事件處理器中的事件處理函數(shù)。

4 結(jié)論

ACE作為一種免費開源的架構(gòu),富含網(wǎng)絡(luò)與系統(tǒng)編程的實用設(shè)計模式,具有跨平臺等優(yōu)越特性,適合通信軟件的開發(fā)。

本文設(shè)計一種前置采集軟件架構(gòu),并應(yīng)用ACE框架組件完成軟件的開發(fā)工作。該軟件是軌道能源管理系統(tǒng)的重要組成部分,實現(xiàn)了能耗數(shù)據(jù)的采集和統(tǒng)計。對于軌道交通行業(yè)信息集中監(jiān)控管理未來發(fā)展的需求,本文可以為其提供通訊系統(tǒng)提供架構(gòu)設(shè)計和實現(xiàn)方式等方面的參考。

參考文獻

[1]Douglas C.Schmidt Stephen D.Huston. c++ Network Programming,Volumn2- Systematic Reuse with ACE and Frameworks[M].北京:電子工業(yè)出版社,2004.

[2]陶道,萬旺根.ACE框架在網(wǎng)絡(luò)游戲服務(wù)器中的設(shè)計與應(yīng)用[J].現(xiàn)代電子科技,2008.

[3]Schmidt DC.ACE自適配通信環(huán)境技術(shù)論文集[C].北京:電子工業(yè)出版社,2001.

[4]王繼剛,顧國昌,蘆東昕,黃燁明.構(gòu)架與模式在通信系統(tǒng)軟件中的應(yīng)用研究[J].計算機應(yīng)用,2003(11):43-45.

[5]陳雅芳,王曉東,陳德銘,陳建化.基于ACE框架的通信設(shè)備監(jiān)控系統(tǒng)的設(shè)計與應(yīng)用研究[J].福建電腦,2007(02):112-113,106.

[6]何青. ACE在開發(fā)健壯可靠的C++系統(tǒng)中的應(yīng)用研究[J].西安:微機發(fā)展,2005(05):43-45.

[7]馬學(xué)鵬,夏國臣.城市軌道交通能源管理系統(tǒng)研究[J]. 城市軌道交通研究,2014.

[8]劉勇,閆魯杰.基于物聯(lián)網(wǎng)、云計算和大數(shù)據(jù)的工業(yè)能源管理系統(tǒng)[J].供用電,2014(12):28-32.

作者單位

天津凱發(fā)電氣股份有限公司 天津市 300000

猜你喜歡
服務(wù)
自助取卡服務(wù)
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
高等教育為誰服務(wù):演變與啟示
招行30年:從“滿意服務(wù)”到“感動服務(wù)”
商周刊(2017年9期)2017-08-22 02:57:56
主站蜘蛛池模板: 亚洲欧美日韩另类在线一| 国产第八页| 国产综合精品日本亚洲777| 97综合久久| 欧洲高清无码在线| AV熟女乱| 久久综合九色综合97婷婷| AV不卡国产在线观看| 国产精品综合色区在线观看| 露脸国产精品自产在线播| 久久精品人妻中文系列| 久久成人免费| 色播五月婷婷| 精品一区国产精品| 亚洲国产欧美中日韩成人综合视频| 久久婷婷五月综合97色| 色婷婷成人网| 青青青国产精品国产精品美女| 国产亚洲精久久久久久久91| 真实国产乱子伦高清| 国产亚洲精品97在线观看| 真实国产乱子伦高清| 最新精品久久精品| 国产在线八区| 77777亚洲午夜久久多人| 无码aaa视频| 老司机aⅴ在线精品导航| 免费A∨中文乱码专区| 一区二区三区在线不卡免费| 国产成人1024精品下载| 欧美精品在线视频观看| 国产午夜不卡| 波多野结衣一区二区三视频| 欧美综合在线观看| 国产成人综合在线视频| 在线看片中文字幕| 狠狠v日韩v欧美v| 91精品国产91久久久久久三级| 99精品福利视频| 国产成本人片免费a∨短片| 国产成人高清在线精品| 日韩在线网址| 国产成人91精品免费网址在线 | 在线观看av永久| 国产丝袜第一页| 精品伊人久久久香线蕉 | 欧美日本激情| 亚洲免费黄色网| 狼友av永久网站免费观看| 视频一本大道香蕉久在线播放| 亚洲国产精品美女| 国产视频只有无码精品| 亚洲狼网站狼狼鲁亚洲下载| a毛片在线免费观看| 天堂岛国av无码免费无禁网站| 99视频在线精品免费观看6| 亚洲激情99| 五月天福利视频| 久久精品最新免费国产成人| 久久久久亚洲AV成人网站软件| 91啪在线| 呦女亚洲一区精品| 蜜芽国产尤物av尤物在线看| 毛片在线播放a| 中文字幕久久亚洲一区| aa级毛片毛片免费观看久| 9啪在线视频| 免费99精品国产自在现线| 97色婷婷成人综合在线观看| 在线播放91| 国产欧美在线观看精品一区污| 无码一区二区三区视频在线播放| 日本精品视频一区二区| 国产无套粉嫩白浆| 免费可以看的无遮挡av无码| 亚洲欧美精品一中文字幕| 中文字幕调教一区二区视频| 亚洲欧美一区在线| 国产成人亚洲精品色欲AV| 日韩福利视频导航| 小说 亚洲 无码 精品| 自拍中文字幕|