王登峰 李錚 李魁雨 劉丕洲 張少波
1. 國(guó)網(wǎng)寧夏電力有限公司 寧夏 銀川 750001;
2. 深圳市國(guó)電科技通信有限公司 廣東 深圳 518019
工業(yè)控制系統(tǒng)通常使用于電力,水利,石油和天然氣等行業(yè),數(shù)據(jù)采集是工控系統(tǒng)一種應(yīng)用類(lèi)別,相關(guān)功能一般可包括可視化的報(bào)表定義、審核關(guān)系的定義、報(bào)表的審批和發(fā)布、數(shù)據(jù)填報(bào)、數(shù)據(jù)預(yù)處理、數(shù)據(jù)評(píng)審、綜合查詢統(tǒng)計(jì)等。隨著目前物聯(lián)網(wǎng)技術(shù)不斷發(fā)展,工控類(lèi)數(shù)據(jù)量不斷增多,對(duì)數(shù)據(jù)處理的時(shí)效性要求不斷提高,同時(shí)工控系統(tǒng)作為底層數(shù)據(jù)獲取入口,又支撐了大量高級(jí)應(yīng)用系統(tǒng),是實(shí)現(xiàn)物聯(lián)網(wǎng)應(yīng)用的基礎(chǔ)性系統(tǒng),因此保障工控類(lèi)數(shù)據(jù)采集系統(tǒng)的可靠運(yùn)行尤為重要。但目前工控類(lèi)數(shù)據(jù)采集系統(tǒng)仍普遍采用傳統(tǒng)信息系統(tǒng)建設(shè)方式進(jìn)行系統(tǒng)建設(shè),對(duì)系統(tǒng)可靠性研究不夠深入,可靠性保障手段仍有所不足,主要體現(xiàn)在:①?zèng)]有篩選出系統(tǒng)中關(guān)鍵節(jié)點(diǎn)設(shè)備并對(duì)不同設(shè)備采用不同可靠性策略;②系統(tǒng)的軟、硬件架構(gòu)容錯(cuò)能力較差,當(dāng)工控類(lèi)數(shù)據(jù)采集系統(tǒng)出現(xiàn)故障時(shí),難以及時(shí)恢復(fù);③在系統(tǒng)出現(xiàn)處理壓力過(guò)高而不能提供全部服務(wù)時(shí),無(wú)法及時(shí)斷開(kāi)部分業(yè)務(wù)或?qū)I(yè)務(wù)進(jìn)行降級(jí)處理,以減輕系統(tǒng)壓力,保證核心業(yè)務(wù)不間斷。
工業(yè)控制系統(tǒng)涵蓋多種類(lèi)型的控制系統(tǒng),包括監(jiān)控和數(shù)據(jù)采集系統(tǒng),分布式控制系統(tǒng)等;針對(duì)數(shù)據(jù)采集類(lèi)系統(tǒng),數(shù)據(jù)在終端設(shè)備生成,通過(guò)公網(wǎng)或?qū)>W(wǎng)傳至通信前置服務(wù)器,后通過(guò)采集前置服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器、應(yīng)用服務(wù)器等完成數(shù)據(jù)采集入庫(kù)和數(shù)據(jù)應(yīng)用過(guò)程。承載各功能的服務(wù)器及網(wǎng)絡(luò)設(shè)備視為系統(tǒng)的邏輯節(jié)點(diǎn),基于邏輯節(jié)點(diǎn)的系統(tǒng)可靠性改造設(shè)計(jì),遵照保障業(yè)務(wù)不間斷運(yùn)行的原則,不考慮系統(tǒng)受攻擊以及安全設(shè)計(jì)等內(nèi)容,分為高可靠性保障、一般可靠性保障共兩個(gè)級(jí)別。將生產(chǎn)庫(kù)集群、應(yīng)用庫(kù)集群、接口庫(kù)集群、接口服務(wù)器、Web應(yīng)用服務(wù)器、數(shù)據(jù)挖掘庫(kù)集群等設(shè)備中可靠性要求高的設(shè)備節(jié)點(diǎn),采用高可靠性保障策略,中低要求的設(shè)備節(jié)點(diǎn),采用一般可靠性保障策略。對(duì)于一般可靠性保障要求設(shè)備,可根據(jù)系統(tǒng)狀況自定義可靠性保障策略;對(duì)于高可靠性保障要求設(shè)備,從節(jié)點(diǎn)可靠性及相關(guān)節(jié)點(diǎn)自適應(yīng)兩方面進(jìn)行設(shè)計(jì)。
系統(tǒng)經(jīng)優(yōu)化后,所提升的能力包括:防止網(wǎng)絡(luò)局部擁塞、防止信息網(wǎng)絡(luò)癱瘓、防止業(yè)務(wù)數(shù)據(jù)丟失、保證數(shù)據(jù)存儲(chǔ)的可靠性,防止關(guān)鍵節(jié)點(diǎn)冗余過(guò)低、防止單點(diǎn)故障、防止服務(wù)器負(fù)載過(guò)高、防止服務(wù)器時(shí)差過(guò)大,以確保系統(tǒng)服務(wù)不間斷運(yùn)行。
承載各功能的服務(wù)器及網(wǎng)絡(luò)設(shè)備視為系統(tǒng)的邏輯節(jié)點(diǎn),主要邏輯節(jié)點(diǎn)描述如下:
1.1.1 通信前置:通信前置集群是前置系統(tǒng)的重要組成部分,用于與終端保持連接和通信,負(fù)責(zé)與終端設(shè)備之間的通信鏈路管理和原始通訊報(bào)文的收發(fā),處理終端的登錄與心跳報(bào)文。
1.1.2 采集前置:采集前置集群負(fù)責(zé)處理通信前置機(jī)接收到的原始數(shù)據(jù),實(shí)現(xiàn)對(duì)原始數(shù)據(jù)的解析和數(shù)據(jù)加工并完成將采集數(shù)據(jù)寫(xiě)入系統(tǒng)數(shù)據(jù)庫(kù)。
1.1.3 主站密碼機(jī):主站密碼機(jī)為終端設(shè)備通信提供加密和證書(shū)服務(wù),只允許采集前置服務(wù)器訪問(wèn)。
1.1.4 任務(wù)服務(wù)器:負(fù)責(zé)發(fā)起和執(zhí)行系統(tǒng)各類(lèi)型的數(shù)據(jù)采集功能,如日采集數(shù)據(jù)任務(wù)、月采集數(shù)據(jù)任務(wù)。
1.1.5 數(shù)據(jù)庫(kù):數(shù)據(jù)采集系統(tǒng)一般使用Oracle數(shù)據(jù)庫(kù),根據(jù)數(shù)據(jù)存儲(chǔ)及業(yè)務(wù)開(kāi)展情況,將數(shù)據(jù)庫(kù)分為生產(chǎn)庫(kù)、應(yīng)用庫(kù)、數(shù)據(jù)挖掘庫(kù)、接口庫(kù)。
1.1.6 Web應(yīng)用服務(wù)。數(shù)據(jù)采集數(shù)據(jù)采集是工控系統(tǒng)一種應(yīng)用類(lèi)別,相關(guān)功能一般可包括可視化的報(bào)表定義、審核關(guān)系的定義、報(bào)表的審批和發(fā)布、數(shù)據(jù)填報(bào)、數(shù)據(jù)預(yù)處理、數(shù)據(jù)評(píng)審、綜合查詢統(tǒng)計(jì)等。
1.1.7 統(tǒng)一接口服務(wù)。接口區(qū)實(shí)現(xiàn)與其他系統(tǒng)交互的管理,承擔(dān)系統(tǒng)統(tǒng)一接口服務(wù)平臺(tái)任務(wù)。承擔(dān)系統(tǒng)發(fā)布數(shù)據(jù)接入、數(shù)據(jù)發(fā)布、數(shù)據(jù)訂閱等應(yīng)用[1]。
系統(tǒng)數(shù)據(jù)包括采集類(lèi)、設(shè)置類(lèi)、控制類(lèi)和數(shù)據(jù)應(yīng)用類(lèi)四大類(lèi)數(shù)據(jù)業(yè)務(wù)。
1.2.1 采集類(lèi)占據(jù)絕大多數(shù),具有數(shù)據(jù)量大、頻度高、實(shí)時(shí)性低等特點(diǎn),涉及每日、每周定時(shí)或不定時(shí)采集回來(lái)的基礎(chǔ)工控?cái)?shù)據(jù)等多方面。
1.2.2 設(shè)置類(lèi)主要涉及新裝設(shè)備的投入設(shè)置、終端設(shè)備運(yùn)行參數(shù)設(shè)置等方面。
1.2.3 控制類(lèi)具有實(shí)時(shí)性高、單點(diǎn)操作等特點(diǎn),對(duì)于終端進(jìn)行遠(yuǎn)程關(guān)閉、重啟等控制操作。
1.2.4 數(shù)據(jù)應(yīng)用類(lèi)主要是統(tǒng)計(jì)分析、報(bào)表及數(shù)據(jù)發(fā)布等方面。
1.3.1 通信前置出現(xiàn)故障時(shí),影響定時(shí)任務(wù)、事件采集、人工發(fā)起數(shù)據(jù)采集任務(wù)、參數(shù)設(shè)置、對(duì)時(shí)指令、控制數(shù)據(jù)采集設(shè)備、控制數(shù)據(jù)中轉(zhuǎn)設(shè)備等業(yè)務(wù)的開(kāi)展,造成數(shù)據(jù)缺失等重要業(yè)務(wù)中斷,故可靠性要求為高。
1.3.2 采集前置出現(xiàn)故障時(shí),影響報(bào)文解析、定時(shí)任務(wù)、事件采集、參數(shù)設(shè)置、對(duì)時(shí)指令、控制數(shù)據(jù)采集設(shè)備、控制數(shù)據(jù)中轉(zhuǎn)設(shè)備等業(yè)務(wù)的開(kāi)展,造成數(shù)據(jù)缺失等重要業(yè)務(wù)中斷,故可靠性要求為高。
1.3.3 任務(wù)服務(wù)器出現(xiàn)故障時(shí),影響定時(shí)任務(wù)、事件采集、人工發(fā)起數(shù)據(jù)采集任務(wù)、參數(shù)設(shè)置、對(duì)時(shí)指令、控制數(shù)據(jù)采集設(shè)備、控制數(shù)據(jù)中轉(zhuǎn)設(shè)備、統(tǒng)計(jì)計(jì)算、報(bào)表查詢、數(shù)據(jù)發(fā)布等業(yè)務(wù)的開(kāi)展,不影響核心業(yè)務(wù),故可靠性要求為中。
1.3.4 Web應(yīng)用服務(wù)器出現(xiàn)故障時(shí),影響人工發(fā)起數(shù)據(jù)采集任務(wù)、參數(shù)設(shè)置、對(duì)時(shí)指令、控制數(shù)據(jù)采集設(shè)備、統(tǒng)計(jì)計(jì)算、報(bào)表查詢等業(yè)務(wù)的開(kāi)展,造成業(yè)務(wù)人員無(wú)法進(jìn)行數(shù)據(jù)查詢、數(shù)據(jù)錄入、終端設(shè)備故障消缺、采集數(shù)據(jù)分析等業(yè)務(wù),不影響核心業(yè)務(wù),故可靠性要求為中。
1.3.5 密碼機(jī)出現(xiàn)故障時(shí),影響參數(shù)設(shè)置、對(duì)時(shí)指令、控制數(shù)據(jù)采集設(shè)備、控制數(shù)據(jù)中轉(zhuǎn)設(shè)備等業(yè)務(wù)的開(kāi)展,造成設(shè)備通信等重要工作無(wú)法執(zhí)行,故可靠性要求為高。
1.3.6 接口服務(wù)器出現(xiàn)故障時(shí),影響參數(shù)設(shè)置、控制數(shù)據(jù)采集設(shè)備、控制數(shù)據(jù)中轉(zhuǎn)設(shè)備等業(yè)務(wù)的開(kāi)展,影響高層級(jí)系統(tǒng)實(shí)時(shí)通過(guò)數(shù)據(jù)采集系統(tǒng)進(jìn)行的一些實(shí)時(shí)性、可靠性要求較高的業(yè)務(wù),故可靠性要求為高。
1.3.7 接口庫(kù)出現(xiàn)故障時(shí),影響高層級(jí)系統(tǒng)實(shí)時(shí)通過(guò)數(shù)據(jù)采集系統(tǒng)進(jìn)行的一些實(shí)時(shí)性、可靠性要求較高的業(yè)務(wù),故可靠性要求為高[2]。
節(jié)點(diǎn)可靠性:對(duì)于某一設(shè)備節(jié)點(diǎn),使用動(dòng)態(tài)負(fù)載均衡的,采用n+2原則(n為滿足正常業(yè)務(wù)開(kāi)展至少需使用設(shè)備臺(tái)數(shù)),適度增加冗余設(shè)備;或使用集群等高可用技術(shù),實(shí)現(xiàn)故障設(shè)備自動(dòng)切換或業(yè)務(wù)自動(dòng)接管。
2.1.1 通信前置服務(wù)器。采用動(dòng)態(tài)算法進(jìn)行動(dòng)態(tài)負(fù)載均衡的部署方式,服務(wù)器采用N+2原則進(jìn)行冗余。計(jì)算公式如下:通信前置機(jī)數(shù)量=全覆蓋終端總量(萬(wàn)臺(tái)) /單臺(tái)接入量(萬(wàn)臺(tái))+ 2(2臺(tái)冗余)。
2.1.2 采集前置服務(wù)器。采用動(dòng)態(tài)算法進(jìn)行動(dòng)態(tài)負(fù)載均衡的部署方式,服務(wù)器采用N+2原則進(jìn)行冗余。計(jì)算公式如下:采集前置機(jī)數(shù)量=每秒需要處理報(bào)文業(yè)務(wù)總量 /單臺(tái)秒處理量+2(2臺(tái)冗余)。
2.1.3 數(shù)據(jù)庫(kù)服務(wù)器。生產(chǎn)庫(kù)、應(yīng)用庫(kù)、數(shù)據(jù)挖掘庫(kù)、接口庫(kù)均為2節(jié)點(diǎn)集群部署,各數(shù)據(jù)庫(kù)使用獨(dú)立存儲(chǔ)。應(yīng)用庫(kù)進(jìn)行熱備,當(dāng)數(shù)據(jù)丟失時(shí),使用上述備份策略產(chǎn)生的備份文件進(jìn)行數(shù)據(jù)恢復(fù),可保證數(shù)據(jù)庫(kù)恢復(fù)到任意時(shí)間點(diǎn)。
2.1.4 Web應(yīng)用服務(wù)器。采用weblogic集群部署,通過(guò)F5進(jìn)行負(fù)載均衡。也可以用雙集群部署,每個(gè)服務(wù)器上可部署2個(gè)受管節(jié)點(diǎn),對(duì)應(yīng)部署2個(gè)管理節(jié)點(diǎn),做Weblogic雙集群處理,部署完成后可用的受管節(jié)點(diǎn)為服務(wù)器數(shù)量的2倍,可有效利用資源。服務(wù)器采用N+1原則進(jìn)行冗余。計(jì)算公式如下:Web服務(wù)器數(shù)量=最大用戶登錄數(shù) /單臺(tái)會(huì)話處理量 + 1(1臺(tái)冗余)。
2.1.5 接口服務(wù)器。部署方式:負(fù)載均衡集群部署,接口服務(wù)器集群部署,所有接口請(qǐng)求經(jīng)由負(fù)載均衡服務(wù)器派工至接口服務(wù)器處理。
相關(guān)節(jié)點(diǎn)自適應(yīng):主要通過(guò)相關(guān)節(jié)點(diǎn)自主調(diào)整業(yè)務(wù)來(lái)實(shí)現(xiàn)。通過(guò)對(duì)節(jié)點(diǎn)運(yùn)行的各項(xiàng)業(yè)務(wù)預(yù)先進(jìn)行分類(lèi)分級(jí),在節(jié)點(diǎn)性能壓力較大時(shí),采用延遲甚至?xí)和2糠值图?jí)別業(yè)務(wù)以保證更高級(jí)別業(yè)務(wù)正常運(yùn)行的策略[3]。
2.2.1 應(yīng)用庫(kù)異常。應(yīng)用庫(kù)發(fā)生異常時(shí),采用以下幾種方式縱向減小應(yīng)用庫(kù)的壓力。
降低來(lái)自生產(chǎn)庫(kù)的壓力。當(dāng)來(lái)自生產(chǎn)庫(kù)的數(shù)據(jù)同步壓力較大時(shí),可以暫停來(lái)自生產(chǎn)庫(kù)的數(shù)據(jù)同步工作,減少數(shù)據(jù)寫(xiě)入,減輕應(yīng)用庫(kù)的負(fù)荷。
降低來(lái)自應(yīng)用服務(wù)的壓力。當(dāng)來(lái)自應(yīng)用服務(wù)的壓力較大時(shí),可以通過(guò)以下幾種方式減輕應(yīng)用庫(kù)壓力:①限制部分重要性等級(jí)較低的角色登錄系統(tǒng);②限制較大批量數(shù)據(jù)庫(kù)查詢功能;③以上兩種方式不足以緩解生產(chǎn)庫(kù)壓力時(shí),可以考慮暫停應(yīng)用服務(wù),從而減輕應(yīng)用庫(kù)壓力。
降低來(lái)自接口服務(wù)的壓力。當(dāng)來(lái)自接口服務(wù)的壓力較大時(shí),可以臨時(shí)停止數(shù)據(jù)發(fā)布,減少數(shù)據(jù)查詢,從而減輕應(yīng)用庫(kù)壓力。
降低來(lái)自計(jì)算服務(wù)的壓力。當(dāng)來(lái)自計(jì)算服務(wù)的壓力較大時(shí),在可以臨時(shí)停止數(shù)據(jù)計(jì)算業(yè)務(wù),減少數(shù)據(jù)查詢和寫(xiě)入,從而減輕應(yīng)用庫(kù)壓力。
2.2.2 生產(chǎn)庫(kù)異常。發(fā)生生產(chǎn)庫(kù)異常時(shí),可考慮采用以下幾種方式縱向減少生產(chǎn)庫(kù)的壓力。
降低來(lái)自應(yīng)用庫(kù)的壓力。當(dāng)來(lái)自應(yīng)用庫(kù)的數(shù)據(jù)同步壓力較大時(shí),可以暫停來(lái)自應(yīng)用庫(kù)的數(shù)據(jù)同步工作,減少數(shù)據(jù)寫(xiě)入,從而減輕生產(chǎn)庫(kù)壓力。
降低來(lái)自入庫(kù)服務(wù)的壓力。當(dāng)來(lái)自入庫(kù)服務(wù)的壓力較大時(shí),可以通過(guò)以下幾種方式減輕應(yīng)用庫(kù)壓力:①進(jìn)行業(yè)務(wù)數(shù)據(jù)限制,根據(jù)重要性篩選,不進(jìn)行非重要數(shù)據(jù)的生產(chǎn)庫(kù)存儲(chǔ),從而減輕生產(chǎn)庫(kù)壓力。②進(jìn)行數(shù)據(jù)緩存,將數(shù)據(jù)先緩存到文件或者內(nèi)存數(shù)據(jù)庫(kù)中,待生產(chǎn)庫(kù)恢復(fù)之后再進(jìn)行存儲(chǔ),減少生產(chǎn)庫(kù)在異常階段的壓力。
降低來(lái)自調(diào)度服務(wù)、采集服務(wù)、通信服務(wù)的壓力。當(dāng)來(lái)自這三個(gè)服務(wù)的壓力過(guò)大時(shí),可以通過(guò)降低加載頻率的方式,減少三個(gè)服務(wù)對(duì)于生產(chǎn)庫(kù)的讀取,從而減輕生產(chǎn)庫(kù)的壓力[4]。
隨著物聯(lián)網(wǎng)時(shí)代的到來(lái),物聯(lián)終端設(shè)備越來(lái)越多、數(shù)據(jù)量越來(lái)越大,對(duì)數(shù)據(jù)采集實(shí)時(shí)性要求越來(lái)越高,對(duì)于工控類(lèi)數(shù)據(jù)采集系統(tǒng)而言,保證系統(tǒng)可靠性十分重要。本文中提出了一種提升系統(tǒng)可靠性的優(yōu)化方法,可實(shí)現(xiàn)如下目標(biāo):①針對(duì)不同的設(shè)備集群,采取不同的可靠性設(shè)計(jì)策略,在提升系統(tǒng)整體可靠性的同時(shí),避免資源浪費(fèi);②系統(tǒng)自身容錯(cuò)能力提升,從而提升指令下發(fā)正確率、系統(tǒng)年可用率,增加系統(tǒng)各類(lèi)設(shè)備平均無(wú)故障時(shí)間,降低系統(tǒng)故障發(fā)生頻次,減少系統(tǒng)故障恢復(fù)時(shí)間;③在業(yè)務(wù)高峰期,系統(tǒng)運(yùn)行壓力較大時(shí),可優(yōu)先保障重點(diǎn)業(yè)務(wù)正常運(yùn)行,降低重點(diǎn)業(yè)務(wù)中斷、出錯(cuò)風(fēng)險(xiǎn),避免造成較大損失。