王超 河北農(nóng)業(yè)大學(xué)信息科學(xué)與技術(shù)學(xué)院
油田設(shè)備軟件通信中間件設(shè)計(jì)與優(yōu)化*
王超 河北農(nóng)業(yè)大學(xué)信息科學(xué)與技術(shù)學(xué)院
油田設(shè)備通信的目的是提供給設(shè)備管理員一個(gè)安全、友好的油田中間件顯示界面,以及一個(gè)簡(jiǎn)單、實(shí)用的管理平臺(tái)。通過客戶端信息管理,可以對(duì)文件內(nèi)核進(jìn)行處理,多個(gè)油田設(shè)備通信中間件顯示器客戶端通過統(tǒng)一的服務(wù)器端進(jìn)行通信,形成星狀的拓?fù)浣Y(jié)構(gòu)??蛻舳讼蚍?wù)器端請(qǐng)求資源,為服務(wù)器端提供管理接口;服務(wù)器端為客戶端提供資源,向客戶端發(fā)送配置請(qǐng)求。所以,油田設(shè)備通信中間件顯示器客戶端與服務(wù)器端之間是互為Client/Server式的結(jié)構(gòu)。
油田設(shè)備;通信;中間件;客戶端;???;優(yōu)化
油田設(shè)備通信目的是提供給設(shè)備管理員一個(gè)安全、友好的油田中間件顯示界面,以及一個(gè)簡(jiǎn)單、實(shí)用的管理平臺(tái)。通過客戶端信息管理,可以對(duì)文件內(nèi)核時(shí)進(jìn)行處理,多個(gè)油田設(shè)備通信中間件顯示器客戶端通過統(tǒng)一的服務(wù)器端進(jìn)行通信,形成星狀的拓?fù)浣Y(jié)構(gòu)。油田設(shè)備通信中間件管理員遠(yuǎn)程登陸顯示器服務(wù)器端,就可以遠(yuǎn)程管理顯示終端,對(duì)服務(wù)器端進(jìn)行配置,客戶端根據(jù)設(shè)備通信中間件管理員的具體配置進(jìn)行相應(yīng)的顯示[1]。遠(yuǎn)程登陸服務(wù)器端,需要管理員在遠(yuǎn)程下載管理服務(wù)器端的管理程序。
系統(tǒng)啟動(dòng)流程是系統(tǒng)在上電以后,產(chǎn)生Reset中斷,CPU將程序指針首先指向Reset中斷服務(wù)向量地址,執(zhí)行Reset開機(jī)流程,然后執(zhí)行bootloader程序。bootloader在完成CPU、內(nèi)存等設(shè)備硬件基本初始化后,設(shè)置好bootloader與內(nèi)核之間參數(shù),通過跳轉(zhuǎn),程序的指針指向內(nèi)核程序所在的地址處,接著Linux內(nèi)核來引導(dǎo)系統(tǒng)完成剩下的工作。初始化系統(tǒng)后,內(nèi)核加載根文件系統(tǒng),并運(yùn)行應(yīng)用程序[2]。一般的嵌入式Linux系統(tǒng)平臺(tái)可以參照系統(tǒng)啟動(dòng)的順序,包括bootloader、Linux內(nèi)核、根文件系統(tǒng)、驅(qū)動(dòng)模塊等部分來構(gòu)建。
1.1 交叉編譯環(huán)境搭建優(yōu)化
所謂交叉編譯就是在一個(gè)平臺(tái)上生成可在其他平臺(tái)上運(yùn)行的程序。由于嵌入式開發(fā)程序不同于通用計(jì)算機(jī)開發(fā)程序,嵌入式開發(fā)板上不能提供足夠的資源供開發(fā)人員編譯和調(diào)試。通常,開發(fā)人員首先在通用計(jì)算機(jī)上編寫目標(biāo)代碼;然后將目標(biāo)代碼編譯成目標(biāo)機(jī)上能夠運(yùn)行的指令格式二進(jìn)制代碼;再將目標(biāo)程序下載到嵌入式開發(fā)板上運(yùn)行,通過通用計(jì)算機(jī)和開發(fā)板外設(shè)查看相關(guān)的輸出結(jié)果。
1.2 客戶端的功能模塊設(shè)計(jì)優(yōu)化
根據(jù)油田設(shè)備通信中間件顯示器聯(lián)網(wǎng)系統(tǒng)客戶端的需求分析,客戶端軟件需要實(shí)時(shí)顯示中間件的運(yùn)行狀態(tài),動(dòng)態(tài)顯示咨詢信息,提供影音文件的播放。客戶端軟件在運(yùn)行周期內(nèi)需要維護(hù)全局的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)中包括中間件顯示器客戶端的顯示界面的整個(gè)對(duì)象,可以將此對(duì)象理解成為客戶端的數(shù)據(jù)模型層,無論是通過遠(yuǎn)程更改界面還是通過獲取的串口數(shù)據(jù)顯示中間件運(yùn)行信息,都是對(duì)當(dāng)前中間件顯示器對(duì)象進(jìn)行維護(hù)。
1.3 通信功能模塊設(shè)計(jì)優(yōu)化
油田設(shè)備通信中間件顯示器客戶端應(yīng)用程序模塊結(jié)構(gòu)由以下幾部分組成:
(1)主模塊。初始化全局?jǐn)?shù)據(jù)結(jié)構(gòu),啟動(dòng)服務(wù)子線程、數(shù)據(jù)采集子線程和系統(tǒng)時(shí)鐘子線程。
(2)服務(wù)模塊。與遠(yuǎn)程服務(wù)器進(jìn)行交互,監(jiān)聽遠(yuǎn)程服務(wù)器和現(xiàn)場(chǎng)設(shè)備的請(qǐng)求,獲取配置信息;發(fā)送當(dāng)前狀態(tài)信息給遠(yuǎn)程服務(wù)器。
(3)文件解析和下載模塊。對(duì)服務(wù)模塊接收到的配置文件進(jìn)行解析,并將解析結(jié)果傳遞給全局?jǐn)?shù)據(jù)對(duì)象,下載配置文件中包含的文件。
根據(jù)需求分析的結(jié)果,管理員通過瀏覽器遠(yuǎn)程訪問服務(wù)器端,對(duì)中間件顯示器客戶端進(jìn)行管理和維護(hù),這要求服務(wù)器端要有一定穩(wěn)定性和安全性[3];同時(shí),由于管理員的數(shù)量有限,服務(wù)器端不需要支持多用戶并發(fā)事件的處理,所以服務(wù)器端的成本應(yīng)該相對(duì)較低。依據(jù)以上分析,采用LAMP網(wǎng)站架構(gòu)構(gòu)建服務(wù)器端平臺(tái)。
2.1 服務(wù)器端架構(gòu)
LAMP是目前世界上最為流行的Web架構(gòu)之一,包括Linux操作系統(tǒng)、Apache網(wǎng)絡(luò)服務(wù)器、MySQL數(shù)據(jù)庫和Python腳本語言。LAMPStack使用的產(chǎn)品均為開源的軟件產(chǎn)品,而且非常多的商業(yè)應(yīng)用都在使用這個(gè)Web架構(gòu),已經(jīng)非常成熟。相對(duì)于J2EE架構(gòu)來說,LAMP架構(gòu)具有開發(fā)效率高、輕量級(jí)、網(wǎng)絡(luò)資源豐富等優(yōu)點(diǎn);相對(duì)于.NET架構(gòu)來說,LAMP架構(gòu)具有價(jià)格低廉、性能更強(qiáng)、良好的通用性和跨平臺(tái)性等優(yōu)勢(shì)。所以,使用LAMP架構(gòu)無論在性能、質(zhì)量還是價(jià)格上都是服務(wù)器端平臺(tái)的首選架構(gòu)。
2.2 平臺(tái)構(gòu)建過程優(yōu)化
LAMP架構(gòu)的搭建過程是首先安裝CentOS操作系統(tǒng),而后安裝Apache服務(wù)器、MySQL數(shù)據(jù)庫,再安裝PHP運(yùn)行環(huán)境。配置Apache服務(wù)器的詳細(xì)設(shè)置,然后通過瀏覽器進(jìn)行測(cè)試。一個(gè)基于模型的油田設(shè)備通信中間件由以下部分組成:
(1)狀態(tài)集合S是集合Σ上的一個(gè)映射,Σ上必須包含一個(gè)有限子集合V,且V中包含所有的狀態(tài)變量或動(dòng)態(tài)轉(zhuǎn)移函數(shù)。
(2)S上的一個(gè)非空子集Sinit稱作初始狀態(tài)集。
(3)S上的一個(gè)子集Sacc稱作可接受狀態(tài)集。
(4)操作集合Acts是Σ-V.中的項(xiàng),Acts是可控集合Ctrl和可觀測(cè)集合Obs的不相交并集。
(5)存在轉(zhuǎn)移關(guān)系,δ?S×Acts×S。
若存在狀態(tài)t,使得任意狀態(tài)t和操作a之間存在關(guān)系(s,a,t)∈δ,則稱M是確定的,記為δ(s,a)=t。在本文中所指的基于模型的油田設(shè)備通信中間件均為確定的。
服務(wù)器端是管理員管理中間件顯示器客戶端的接口,通過多臺(tái)客戶端連接同一臺(tái)服務(wù)器,形成星形的拓?fù)浣Y(jié)構(gòu)。管理員通過瀏覽器訪問服務(wù)器端,服務(wù)器端再和與之相連的客戶端交互。
設(shè)計(jì)的專用網(wǎng)關(guān)的最終實(shí)現(xiàn)形式是一個(gè)可執(zhí)行的應(yīng)用程序,運(yùn)行之后能夠?yàn)榻尤胨挠脩籼峁?shù)據(jù)業(yè)務(wù)[4-5]?,F(xiàn)從應(yīng)用程序的入口開始,以成功提供數(shù)據(jù)業(yè)務(wù)為結(jié)束,詳細(xì)描述一個(gè)完整的業(yè)務(wù)實(shí)現(xiàn)流程。
(1)配置系統(tǒng)參數(shù)。專用網(wǎng)關(guān)放置在局域網(wǎng)中,使用內(nèi)部IP地址,通過局域網(wǎng)網(wǎng)關(guān)連接到外網(wǎng)。因此,需要為專用網(wǎng)關(guān)配置相關(guān)的網(wǎng)絡(luò)參數(shù),如網(wǎng)卡名稱、IP地址、子網(wǎng)掩碼和SCTP端口號(hào)等;同時(shí)還需要配置數(shù)據(jù)庫參數(shù),如連接數(shù)據(jù)庫的IP地址、端口號(hào)、數(shù)據(jù)庫名稱、用戶名和密碼等。
(2)初始化各個(gè)模塊。由于移動(dòng)性管理、GPRS移動(dòng)性管理和會(huì)話管理三個(gè)模塊的信息都在專用網(wǎng)關(guān)維護(hù)的用戶信息中,所以只初始化與用戶信息相關(guān)的參數(shù)即可。如配置可以允許的最大用戶數(shù)、動(dòng)態(tài)申請(qǐng)維護(hù)用戶信息所需的內(nèi)存空間和一些需要使用的全局變量等。初始化SCTP和ROUTE模塊,完成專用網(wǎng)關(guān)與網(wǎng)絡(luò)層數(shù)據(jù)的收發(fā)和路由工作,其實(shí)現(xiàn)技術(shù)為網(wǎng)絡(luò)編程,過程基本固定。
(3)啟動(dòng)控制面過程。根據(jù)對(duì)專用網(wǎng)關(guān)協(xié)議棧的介紹可知,專用網(wǎng)關(guān)需要成功執(zhí)行控制面過程后,才可以為用戶建立用戶面連接。因此,運(yùn)行SCTP,開始偵聽網(wǎng)絡(luò)、建立連接和接收數(shù)據(jù)。
油田設(shè)備通信中間件服務(wù)器端程序包括前端和后端兩部分組成,前端主要是為管理員提供服務(wù),獲取管理員的請(qǐng)求信息并將結(jié)果存儲(chǔ)到數(shù)據(jù)庫或直接傳遞給后端部分;后端主要是與客戶端進(jìn)行交互,維護(hù)每臺(tái)與服務(wù)器端連接的設(shè)備的狀態(tài),并將前端的某些請(qǐng)求發(fā)送給客戶端??蛻舳讼蚍?wù)器端請(qǐng)求資源,為服務(wù)器端提供管理接口;服務(wù)器端為客戶端提供資源,向客戶端發(fā)送配置請(qǐng)求。所以,油田設(shè)備通信中間件顯示器客戶端與服務(wù)器端之間是互為Client/Server式的結(jié)構(gòu)。中間件顯示器聯(lián)網(wǎng)系統(tǒng)可作為替代現(xiàn)有油田設(shè)備通信中間件顯示技術(shù)的聯(lián)網(wǎng)解決方案。
[1]曹軍威,萬宇鑫,涂國(guó)煜,等.智能電網(wǎng)信息系統(tǒng)體系結(jié)構(gòu)研究[J].計(jì)算機(jī)學(xué)報(bào),2013(1):12-13.
[2]尤毅,劉東,于文鵬,等.主動(dòng)配電網(wǎng)技術(shù)及其進(jìn)展[J].電力系統(tǒng)自動(dòng)化,2012(18):35-36.
[3]袁新喜,談志遠(yuǎn),陶維青.IEC61850標(biāo)準(zhǔn)在微電網(wǎng)中的應(yīng)用探討[J].電測(cè)與儀表,2012(7):39-40.
[4]張佳斌,楊歡,趙榮祥,等.微電網(wǎng)通信系統(tǒng)研究綜述[J].華東電力,2011(10):67-68.
[5]周鄴飛,徐石明.智能變電站數(shù)據(jù)中心初探[J].電力系統(tǒng)自動(dòng)化,2011(18):89-90.
(欄目主持 關(guān)梅君)
10.3969/j.issn.1006-6896.2014.4.038
基金論文:河北省高等學(xué)校科學(xué)技術(shù)研究項(xiàng)目“基于本體的語義Web服務(wù)集成方法研究”(Z2012032);河北農(nóng)業(yè)大學(xué)非生命學(xué)科和新興學(xué)科科研發(fā)展項(xiàng)目“基于語義Web服務(wù)的系統(tǒng)集成方法研究”。