摘? 要:針對(duì)傳統(tǒng)測(cè)控領(lǐng)域存在的測(cè)試效率低、測(cè)試復(fù)雜度高、測(cè)試資源利用不足等問(wèn)題,文章提出基于B/S架構(gòu)的分布式測(cè)控技術(shù)架構(gòu),利用SOA(面向服務(wù)架構(gòu))設(shè)計(jì)思想,并結(jié)合實(shí)時(shí)中間件和分布式數(shù)據(jù)庫(kù)實(shí)現(xiàn)設(shè)備間的互聯(lián)互通互操作,提高測(cè)試效率,降低測(cè)試復(fù)雜度,在分布式架構(gòu)下,充分利用測(cè)試資源。該文對(duì)當(dāng)前從事測(cè)控領(lǐng)域的設(shè)計(jì)人員和開(kāi)發(fā)人員具有一定的參考價(jià)值,是面向服務(wù)架構(gòu)設(shè)計(jì)思想的綜合應(yīng)用體現(xiàn)。
關(guān)鍵詞:B/S;分布式;測(cè)控技術(shù);遠(yuǎn)程過(guò)程調(diào)用
中圖分類號(hào):TP311? 文獻(xiàn)標(biāo)識(shí)碼:A ? 文章編號(hào):2096-4706(2021)05-0008-06
Research on Distributed Measurement and Control Technology Based on B/S Architecture
TAN Xiang
(Shanghai Cherub Information Technology Co.,Ltd.,Shanghai? 200240,China)
Abstract:Aiming at the problems of low test efficiency,high test complexity,and insufficient utilization of test resources in the traditional measurement and control field,this article proposes a distributed measurement and control technology architecture based on B/S architecture,using SOA(service oriented architecture)design ideas,and combining real-time middleware and distributed database to achieve interconnection and interoperability between devices,improve test efficiency,reduce test complexity,and make full use of test resources under a distributed architecture. The article has a certain reference value for designers and developers currently engaged in the field of measurement and control,and is a comprehensive application of service-oriented architecture design ideas.
Keywords:B/S;distributed;measurement and control technology;remote procedure call
0? 引? 言
工業(yè)現(xiàn)場(chǎng)通常存在測(cè)控點(diǎn)分散、測(cè)控范圍大、作業(yè)環(huán)境復(fù)雜的問(wèn)題,且工業(yè)現(xiàn)場(chǎng)對(duì)測(cè)控系統(tǒng)的數(shù)據(jù)傳輸實(shí)時(shí)性具有嚴(yán)格要求[1]?,F(xiàn)今,傳統(tǒng)測(cè)控領(lǐng)域逐漸暴露出測(cè)試效率低、測(cè)試復(fù)雜度高、測(cè)試資源利用不足等問(wèn)題。因此具有數(shù)據(jù)傳輸實(shí)時(shí)性高、可靠性好、系統(tǒng)結(jié)構(gòu)拓?fù)潇`活[2]等優(yōu)點(diǎn)的分布式測(cè)控系統(tǒng)成為現(xiàn)代測(cè)控領(lǐng)域的發(fā)展方向。
1? 系統(tǒng)概況
1.1? 系統(tǒng)組成
基于B/S架構(gòu)的分布式測(cè)控軟件平臺(tái)按照分層架構(gòu)思想設(shè)計(jì)開(kāi)發(fā),整個(gè)平臺(tái)框架包含應(yīng)用表現(xiàn)層、業(yè)務(wù)交互層、應(yīng)用邏輯層、組件資源層和操作支持層共五層。Web瀏覽器通過(guò)業(yè)務(wù)交互層可實(shí)現(xiàn)本地或遠(yuǎn)程兩種與后端應(yīng)用邏輯層的數(shù)據(jù)交互模式,并通過(guò)應(yīng)用表現(xiàn)層展現(xiàn)業(yè)務(wù)數(shù)據(jù)。組件資源層按照組件化設(shè)計(jì)思想,封裝服務(wù)模塊和邏輯設(shè)備,形成服務(wù)組件和設(shè)備組件,為平臺(tái)提供各類服務(wù)和服務(wù)執(zhí)行資源。組件資源層是一個(gè)開(kāi)放式的資源庫(kù),支持分布式部署,通過(guò)中間件互相訪問(wèn)。操作支持層為平臺(tái)運(yùn)行提供基礎(chǔ)操作環(huán)境。
1.2? 工作流程
系統(tǒng)平臺(tái)由五層構(gòu)成,針對(duì)具體應(yīng)用,其工作流程如圖1所示。
2? 系統(tǒng)設(shè)計(jì)
分布式智能測(cè)控軟件平臺(tái)采用上海求本信息技術(shù)有限公司自主研發(fā)的分層、開(kāi)放、跨平臺(tái)架構(gòu),根據(jù)組件化和分布式設(shè)計(jì)思想,利用SOA(面向服務(wù)架構(gòu))設(shè)計(jì)思想,并結(jié)合實(shí)時(shí)中間件和分布式數(shù)據(jù)庫(kù)實(shí)現(xiàn)設(shè)備間的互聯(lián)互通互操作,通過(guò)WEB方式實(shí)現(xiàn)人機(jī)交互,從而保證平臺(tái)上的應(yīng)用開(kāi)發(fā)和運(yùn)行高效、便捷、低成本,解決用戶在項(xiàng)目研制過(guò)程中碰到的開(kāi)發(fā)效率低、研制成本高、資源復(fù)用率低以及系統(tǒng)部署難度大等問(wèn)題。其整體軟件架構(gòu)如圖2所示。
平臺(tái)具備通用、開(kāi)放、靈活、高效以及智能等特性。
通用性主要從三個(gè)方面來(lái)體現(xiàn),其一是平臺(tái)采用分層化設(shè)計(jì)、開(kāi)發(fā),這是平臺(tái)通用性的內(nèi)在體現(xiàn),也是平臺(tái)通用性的前提條件;其二是平臺(tái)服務(wù)組件層的服務(wù)具備通用性,因?yàn)榛诮M件的服務(wù)為應(yīng)用層提供了統(tǒng)一規(guī)范接口和通信協(xié)議,能夠適用于不用的應(yīng)用開(kāi)發(fā);其三是邏輯設(shè)備層的邏輯設(shè)備通用,因?yàn)榻梃b吸收了軟件通信體系結(jié)構(gòu)相關(guān)技術(shù),采用標(biāo)準(zhǔn)接口封裝了底層硬件,從而為上層軟件提供了標(biāo)準(zhǔn)設(shè)備接口。
開(kāi)放性主要體現(xiàn)在兩個(gè)方面:其一是服務(wù)組件層即服務(wù)組件庫(kù),是基于開(kāi)放式設(shè)計(jì)的,可自由擴(kuò)充或裁剪;其二是邏輯設(shè)備層即邏輯設(shè)備庫(kù),也是基于開(kāi)放式設(shè)計(jì)的,可自由擴(kuò)充或裁剪。
靈活性體現(xiàn)在設(shè)備操作方式、分布特性以及系統(tǒng)部署上共三個(gè)方面。設(shè)備操作方式靈活指的是通過(guò)網(wǎng)絡(luò)層的中間件技術(shù)以及上層軟件框架的WEB技術(shù)能實(shí)現(xiàn)底層硬件的本地操作或遠(yuǎn)端操作;分布特性靈活指的是通過(guò)分層設(shè)計(jì)和中間件技術(shù),使平臺(tái)支持設(shè)備分布、網(wǎng)絡(luò)分布、服務(wù)分布和應(yīng)用分布;系統(tǒng)部署靈活指的是由于平臺(tái)采用B/S體系結(jié)構(gòu),因此,客戶端只需要標(biāo)準(zhǔn)的瀏覽器,服務(wù)端可根據(jù)業(yè)務(wù)需求動(dòng)態(tài)配置WEB服務(wù)器和應(yīng)用服務(wù)器,具備良好的系統(tǒng)擴(kuò)展性。
高效性主要體現(xiàn)在應(yīng)用開(kāi)發(fā)、用例執(zhí)行和碼流傳輸效率三個(gè)方面。對(duì)于應(yīng)用開(kāi)發(fā)來(lái)說(shuō),由于上層軟件框架采用Django框架[5]來(lái)開(kāi)發(fā),Django框架內(nèi)置的很多第三方插件能夠顯著加快應(yīng)用的開(kāi)發(fā);用例執(zhí)行方面,由于采用了并行以及自主調(diào)度執(zhí)行處理流程,所以為用例執(zhí)行提供了最高效率的執(zhí)行方式;在碼流傳輸效率方面,平臺(tái)的網(wǎng)絡(luò)層設(shè)計(jì)有兩種中間件,一種是基于控制流的中間件,另一種是基于數(shù)據(jù)流的中間件,基于控制流的中間件在控制數(shù)據(jù)、事件型數(shù)據(jù)傳輸方面效率要比基于數(shù)據(jù)流的中間件高,而基于數(shù)據(jù)流的中間件在傳輸實(shí)時(shí)、高帶寬數(shù)據(jù)方面效率很高。
智能化主要體現(xiàn)在三個(gè)方面:一是接口自動(dòng)適配,基于規(guī)范標(biāo)示符的接口在應(yīng)用執(zhí)行過(guò)程中能夠自動(dòng)識(shí)別、自動(dòng)連接和關(guān)閉;二是通道智能綁定,基于ICD的通道重構(gòu)策略能夠?qū)崿F(xiàn)通道的自動(dòng)綁定,當(dāng)前通道遇到故障時(shí),根據(jù)重構(gòu)策略能夠自動(dòng)轉(zhuǎn)換通道,重新綁定;三是故障監(jiān)測(cè),平臺(tái)能夠自動(dòng)識(shí)別系統(tǒng)故障,并輸出告警信息。
2.1? 功能設(shè)計(jì)
2.1.1? 平臺(tái)框架軟件設(shè)計(jì)
分布式智能測(cè)控軟件平臺(tái)的框架軟件基于B/S結(jié)構(gòu)進(jìn)行設(shè)計(jì),后端服務(wù)器軟件采用組件—框架設(shè)計(jì)思想,以達(dá)到通用性、靈活性、可移植、可復(fù)用以及分布式應(yīng)用等能力要求。后端服務(wù)器軟件的總體結(jié)構(gòu)如圖3所示。
平臺(tái)框架軟件定義了組件及應(yīng)用的接口規(guī)范和通信方式,是平臺(tái)內(nèi)各類軟硬件組件資源以及應(yīng)用資源的通用管理框架,負(fù)責(zé)組件及應(yīng)用的資源分配、加載、啟動(dòng)、裝配、配置等操作,是整個(gè)功能模塊的組織核心。組件是實(shí)現(xiàn)特定功能的獨(dú)立模塊,每個(gè)組件都可以單獨(dú)運(yùn)行,即能夠基于給定的輸入產(chǎn)生相應(yīng)的輸出,不依賴其他功能模塊,具備高內(nèi)聚低耦合的特點(diǎn);應(yīng)用用于滿足系統(tǒng)的功能要求,通過(guò)對(duì)已經(jīng)抽象成獨(dú)立功能的組件進(jìn)行裝配,形成不同的應(yīng)用功能。按照平臺(tái)框架所規(guī)定的接口規(guī)范和通信方式進(jìn)行組件及應(yīng)用開(kāi)發(fā),能夠?qū)崿F(xiàn)組件及應(yīng)用的可移植性和可復(fù)用性,達(dá)到即插即用的效果。平臺(tái)框架即是組件資源的管理者和應(yīng)用裝配的執(zhí)行者。通過(guò)對(duì)外提供應(yīng)用創(chuàng)建接口,用戶可以利用配置文件描述的方式,根據(jù)具體需求或資源分配策略進(jìn)行組件的靈活配置,無(wú)需對(duì)功能進(jìn)行重復(fù)開(kāi)發(fā),提高了開(kāi)發(fā)效率,降低了開(kāi)發(fā)成本。
平臺(tái)框架分為初始化、設(shè)備管理器、服務(wù)管理器、應(yīng)用管理器、配置文件管理器和對(duì)象管理六個(gè)功能模塊。始化功能模塊主要實(shí)現(xiàn)系統(tǒng)平臺(tái)初始化功能,包括上電自檢,內(nèi)部變量初始化賦值等;設(shè)備管理器功能模塊主要實(shí)現(xiàn)邏輯設(shè)備的注冊(cè)管理,分配設(shè)備唯一標(biāo)識(shí),設(shè)備組件的調(diào)用;服務(wù)管理器功能模塊主要實(shí)現(xiàn)服務(wù)的注冊(cè)管理,分配服務(wù)唯一標(biāo)識(shí),服務(wù)組件的調(diào)用;應(yīng)用管理器功能模塊主要實(shí)現(xiàn)應(yīng)用的注冊(cè)管理,分配應(yīng)用唯一標(biāo)識(shí),應(yīng)用組件的調(diào)用;配置文件管理器功能模塊主要實(shí)現(xiàn)配置文件的注冊(cè)管理,加載配置文件和解析配置文件;對(duì)象管理功能模塊主要實(shí)現(xiàn)中間件對(duì)象的管理,中間件數(shù)據(jù)的交互。系統(tǒng)整體接口方面主要有基本應(yīng)用接口、框架控制接口、服務(wù)組件接口、設(shè)備組件接口、應(yīng)用組件接口,如圖4所示。
2.1.2? 邏輯設(shè)備組件設(shè)計(jì)
邏輯設(shè)備組件主要在邏輯設(shè)備層,根據(jù)應(yīng)用場(chǎng)景,該系統(tǒng)中的邏輯設(shè)備組件主要包括AFDX邏輯設(shè)備、RS422邏輯設(shè)備、FC邏輯設(shè)備、1553B邏輯設(shè)備、A429邏輯設(shè)備。邏輯設(shè)備組件由邏輯設(shè)備管理器進(jìn)行管理。
邏輯設(shè)備組件主要完成設(shè)備組件的對(duì)象實(shí)例化,通過(guò)對(duì)象與命名上下文進(jìn)行綁定,將對(duì)象進(jìn)行發(fā)布,供平臺(tái)應(yīng)用進(jìn)行引用,并能完成設(shè)備的啟動(dòng)與停止,讀寫數(shù)據(jù),設(shè)備狀態(tài)配置信息的保存與查詢。
2.1.3? 服務(wù)組件設(shè)計(jì)
服務(wù)組件主要完成各組件的初始化功能,獲取ICD數(shù)據(jù)的結(jié)構(gòu),對(duì)數(shù)據(jù)進(jìn)行解析和封裝,返回給數(shù)據(jù)處理服務(wù)組件使用,并能對(duì)輸入的信息依據(jù)判斷標(biāo)準(zhǔn)給出判定結(jié)果。
服務(wù)組件主要在服務(wù)層,主要包括ICD處理服務(wù)組件、數(shù)據(jù)處理服務(wù)組件及符合性判定服務(wù)組件。其中ICD處理服務(wù)組件對(duì)ICD數(shù)據(jù)進(jìn)行解析與封裝,交由數(shù)據(jù)處理服務(wù)組件,數(shù)據(jù)處理服務(wù)組件將ICD數(shù)據(jù)打包成幀結(jié)構(gòu),交由相關(guān)的邏輯設(shè)備組件,同樣邏輯設(shè)備組件接收的數(shù)據(jù)也交由數(shù)據(jù)處理服務(wù)組件處理,按照ICD信息結(jié)構(gòu)解析,交由符合性判定服務(wù)組件,符合性判定服務(wù)組件依據(jù)判斷標(biāo)準(zhǔn)對(duì)數(shù)據(jù)給出判定結(jié)果。
2.2? 界面設(shè)計(jì)
基于B/S架構(gòu)的分布式測(cè)控軟件平臺(tái)界面是基于WEB技術(shù)設(shè)計(jì)開(kāi)發(fā)的,借助WEB的移動(dòng)互聯(lián)特性,使得用戶可以在任何一臺(tái)聯(lián)網(wǎng)的計(jì)算機(jī)上或移動(dòng)終端上,通過(guò)瀏覽網(wǎng)頁(yè)的形式登錄系統(tǒng),完成測(cè)試工作。
在具體的界面設(shè)計(jì)開(kāi)發(fā)過(guò)程中,主要用到了HTML5、CSS3和JS等技術(shù)。其中,HTML5用于設(shè)計(jì)頁(yè)面的布局,通過(guò)標(biāo)簽、屬性的設(shè)計(jì)開(kāi)發(fā),構(gòu)建頁(yè)面的結(jié)構(gòu),使得界面元素滿足用戶需求;CSS3(層疊樣式表)是為了解決界面內(nèi)容與表現(xiàn)形式的分離問(wèn)題,將頁(yè)面元素的展現(xiàn)形式放在CSS文件里設(shè)計(jì)開(kāi)發(fā),使得整個(gè)界面的開(kāi)發(fā)效率提高,并且具備良好的移植性;JS(JavaScript)是一種腳本語(yǔ)言,負(fù)責(zé)界面的行為動(dòng)作,通過(guò)編寫JS文件,使得前端可以與后臺(tái)服務(wù)器產(chǎn)生交互,能夠?qū)⒂脩粼谇岸私缑嫔系妮斎朕D(zhuǎn)換成相應(yīng)的數(shù)據(jù)或命令,并傳遞給服務(wù)器去執(zhí)行,同時(shí)也能接收服務(wù)器的數(shù)據(jù)信息,并展現(xiàn)在前端界面上。測(cè)控平臺(tái)界面如圖5所示。
2.3? 系統(tǒng)構(gòu)型
根據(jù)實(shí)際的應(yīng)用需求和使用場(chǎng)景,應(yīng)用系統(tǒng)將有兩種構(gòu)型。針對(duì)每種構(gòu)型,其軟硬件配置是不同的。
在圖6所示的構(gòu)型1中,服務(wù)器與目標(biāo)機(jī)部署在同一套硬件上,此時(shí)硬件組成包括一套主機(jī)和若干設(shè)備。主機(jī)內(nèi)運(yùn)行前端、應(yīng)用程序、服務(wù)組件、邏輯設(shè)備和硬件驅(qū)動(dòng)。因?yàn)樗蟹?wù)和設(shè)備都在本地化操作,無(wú)須中間件。
如圖7所示的構(gòu)型2是針對(duì)分布式應(yīng)用場(chǎng)景的。在分布式應(yīng)用場(chǎng)景中,服務(wù)器與客戶目標(biāo)機(jī)是分離的,同時(shí)瀏覽器也可與服務(wù)器進(jìn)行分離,所以,構(gòu)型2在實(shí)際應(yīng)用中有三種變型:一是瀏覽器與服務(wù)器分離,服務(wù)器與客戶目標(biāo)機(jī)部署在同一套設(shè)備上,這是B/S結(jié)構(gòu)形式;二是瀏覽器與服務(wù)器在同一套硬件上,客戶目標(biāo)機(jī)與服務(wù)器分離,這是C/S結(jié)構(gòu)形式;三是瀏覽器、服務(wù)器、客戶目標(biāo)機(jī)三者分離,實(shí)現(xiàn)最靈活的分布式部署,這是B/S和C/S混合結(jié)構(gòu)形式。
2.4? 系統(tǒng)驗(yàn)證
基于B/S架構(gòu)的分布式測(cè)控軟件平臺(tái)在航電系統(tǒng)集成測(cè)試中已經(jīng)運(yùn)用,如圖8所示,平臺(tái)在航電系統(tǒng)集成測(cè)試中可以正常執(zhí)行相關(guān)測(cè)試用例,并給出結(jié)果顯示。
3? 結(jié)? 論
將SOA設(shè)計(jì)思想應(yīng)用到分布式測(cè)控系統(tǒng)中,設(shè)計(jì)基于B/S架構(gòu)的分布式測(cè)控軟件平臺(tái),可以提高整個(gè)系統(tǒng)數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性和可靠性,且便于對(duì)系統(tǒng)結(jié)構(gòu)進(jìn)行擴(kuò)展。該文設(shè)計(jì)的基于B/S架構(gòu)的分布式測(cè)控技術(shù)可適用于工業(yè)、航空航天等多個(gè)領(lǐng)域,具有良好的應(yīng)用前景。目前本文所提出的軟件平臺(tái)應(yīng)用廣度不足,很多實(shí)際工程中可能出現(xiàn)的問(wèn)題發(fā)現(xiàn)不全,需要大量應(yīng)用于實(shí)際工程經(jīng)驗(yàn)中,以便提高軟件的可靠性和實(shí)用性。
參考文獻(xiàn):
[1] 茅勝榮.基于EtherCAT的分布式數(shù)據(jù)采集系統(tǒng)的研究與實(shí)現(xiàn) [D].蘇州:蘇州大學(xué),2018.
[2] EtherCAT Technology Group. EtherCAT-the Ethernet fieldbus [EB/OL].[2020-12-20].https://www.ethercat.org/en/technology.html#1.9.5.
[3] 徐冰霖,李戰(zhàn)懷.面向服務(wù)的航天測(cè)控軟件架構(gòu)設(shè)計(jì) [J].飛行器測(cè)控學(xué)報(bào),2012,31(6):47-51.
[4] 衛(wèi)翔,范學(xué)滿,于德新.面向服務(wù)的仿真實(shí)時(shí)中間件系統(tǒng)研究 [J].計(jì)算機(jī)仿真,2019,36(7):257-260+307.
[5] 汪洋,姜新通.MVC框架在Python與Django下的設(shè)計(jì)研究 [J].電腦與信息技術(shù),2021,29(1):55-57+63.
[6] 孟另偉,鄭永軍.基于EtherCAT的分布式測(cè)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [J].儀表技術(shù)與傳感器,2020(6):73-78.
作者簡(jiǎn)介:檀翔(1988—),男,漢族,安徽東至人,工程師,碩士研究生,研究方向:航電系統(tǒng)集成測(cè)試、信息化系統(tǒng)。