□單紅宇 林 琦 李培培
根據《國家電網公司“十二五”信息化規劃》的工作要求,借助于移動作業終端實現現場辦公,一方面通過移動終端方便現場人員及時采集信息,減少了聯合查勘帶來的人力資源浪費;另一方面及時將現場作業產生的數據及時登錄到系統,提高數據的正確性和及時性,為其他業務工作的開展提供了便利。
(一)系統部署圖。如圖1 所示,系統的數據在傳輸過程中需要通過無線網絡、防火墻、安全接入網關。同時與各類其他業務系統相連,包括營銷系統、生產系統、電力ERP、一體化平臺等各類系統,數據來源廣,傳輸路徑復雜。

圖1
(二)數據通信中出現的問題。系統需要在不同的業務場景、運行狀況下,即時地展現數據,現有移動終端中的數據大部分是通過在線請求業務系統獲取所需的數據信息,雖然實時性比較高,但是相對耗時較長,并且對業務系統依賴較大,系統未根據特定的功能需要進行數據分類和分級傳輸。
由于當前的通信轉發環節比較多,無線網絡信號相對不穩定,易造成網絡請求超時現象;并且終端的數據主要來源于業務系統,當業務系統出現異常時,移動終端中所對應的功能也就無法正常使用;目前系統的通信通道只有一個,并且受限于VPN安全客戶端,而VPN 安全客戶端很不穩定,經常造成移動終端通信通道的關閉。
(三)數據分級管理與處理。結合系統對數據進行分類、分級,將數據類型劃分為常量數據、緩存數據和實時數據;對不容易變化的數據常量,可以通過文件系統直接發布;緩存數據是將實時性較低的數據保存到本地,并通過空閑時段進行同步傳輸;召測數據是通過召測系統將用戶、變壓器等設備的電流電壓,可視化顯示出來,并定時將數據更新同步。
同時已上傳的各類數據也進行分類,分為即時上傳數據和空閑上傳數據,即時上傳數據是需要即時上傳的數據,這類數據可能影響下一步作業的流程,如到達現場、位置上報等信息。空閑上傳數據是指不需要實時上傳的數據,只在系統空閑時或者網絡情況比較好的情況下上傳,這類數據不影響系統的業務流程。
(一)常量數據和實時數據的處理。常量數據是指基本不會發生變化的數據,如組織機構、電壓等級、地市編碼等這類數據,寫在隨終端發布的文件中,系統可以直接從文件中讀取數據,不需要訪問網絡或者其它系統;實時數據是指需要實時從后臺業務系統中讀取的數據,仍然按照系統原有的方法,調取相關接口實時處理。
(二)緩存數據的處理。
1.緩存數據處理總體方案。緩存數據包括靜態數據和動態數據;靜態數據在服務器啟動時自動生成,以后不再自動檢查更新,由終端手動來檢查更新;動態數據包括基礎數據和增量數據。基礎數據在服務器啟動時自動生成;增量數據則定時獲取;定期清理垃圾數據。
2.緩存數據分類。如表1 所示。

表1
3.緩存方案邏輯結構圖。如圖2 所示,終端啟動應用后,通過用的部門ID 和班組ID 獲取緩存的數據文件。如果應用牌打開狀態,則每天早晨8 點獲取增量文件,如果終端關閉,則每天第一次啟動應用時獲取緩存數據文件。

圖2
4.靜態數據緩存方案。接口服務器啟動時,首先檢查是否存在靜態數據文件,如果不存在,則生成靜態數據文件。
5.動態數據緩存方案。服務器啟動時或觸發定時器時,將結束時間設置為當前時間。判斷上次更新線路數據時間是否存在。
如果上次更新線路數據時間不存在,設置開始時間為空值,不作為檢索條件。
根據開始時間獲取線路的臺賬數據。如果獲取的線路臺賬數據為空,處理結束;如果獲取的線路臺賬數據不為空,以線路ID 為單位,做成線路基礎數據文件,文件名為base.db,存入serverpath/cache線路ID/ 目錄下。
根據開始時間和結束時間獲取線路下的設備臺賬數據。如果獲取的數據為空,處理結束;如果獲取的設備臺賬數據不為空,以線路為單位分組,將數據加入線路ID 對應的基礎數據文件base.db。
遍歷serverpath/cache 目錄,根據開始時間、結束時間和線路ID 獲取間隔下的設備臺賬數據。如果獲取的設備臺賬數據不為空,以線路為單位分組,將數據加入線路ID 對應的基礎數據文件base.db 文件中。
開始時間設置為結束時間-30 天(生產環境-365 天)。根據開始時間和結束時間,獲取運行記錄數據。
如果獲取到的運行記錄數據不為空,以線路ID 為單位分組,生成運行記錄基礎數據文件。文件名為runningBase.db,放入線路基礎數據所在的目錄。
如果上次更新線路數據時間存在,設置開始時間為上次更新時間。
根據開始時間獲取線路臺賬的增量數據。如果獲取的線路臺賬數據不為空,遍歷線路臺賬的增量數據。如果線路狀態不等于0、1、4 且存在線路ID 對應的基礎數據文件,刪除線路ID對應的基礎數據文件;如果線路狀態不等于0、1、4 且不存在線路ID 對應的基礎數據文件,繼續下一個線路;如果線路狀態等于0、1、4 且存在線路ID 對應的基礎數據文件,更新線路ID 對應的基礎數據文件;如果線路狀態等于0、1、4 且不存在線路ID對應的基礎數據文件,新建一個線路ID 對應的基礎數據文件。
根據開始時間和結束時間獲取線路下的間隔臺賬增量數據。如果獲取的間隔臺賬數據不為空,遍歷獲取到的間隔臺賬增量數據。如果間隔狀態不等于0、1、4 且存在間隔ID 對應的基礎數據,刪除間隔ID 對應的基礎數據;如果間隔狀態不等于0、1、4 且不存在間隔ID 對應的基礎數據,繼續下一個間隔;如果間隔狀態等于0、1、4 且存在間隔ID 對應的基礎數據,更新間隔ID 對應的基礎數據;如果間隔狀態等于0、1、4 且不存在間隔ID 對應的基礎數據,在基礎數據文件中增加一條間隔臺賬基礎數據。
遍歷serverpath/ache 目錄,根據開始時間、結束時間和線路ID 獲取間隔下的設備臺賬增量數據。如果獲取的設備臺賬增量數據不為空,遍歷設備臺賬增量數據。如果設備狀態不等于0、1、4 且存在設備ID 對應的基礎數據,刪除設備ID 對應的基礎數據;如果設備狀態不等于0、1、4 且不存在設備ID 對應的基礎數據,繼續下一個設備;如果設備狀態等于0、1、4 且存在設備ID 對應的基礎數據,更新設備ID 對應的基礎數據;如果設備狀態等于0、1、4 且不存在設備ID 對應的基礎數據,在基礎數據文件中增加一條設備臺賬基礎數據。
獲取開始時間和結束時間,獲取運行記錄增量數據。如果獲取的數據不為空,遍歷運行記錄增量數據。如果數據在基礎數據中存在,則更新基礎數據文件;如果數據在基礎數據中不存在;則在基礎數據文件中新增數據。將增量數據以線路ID 為單位分組,做成增量數據文件。
將上次更新時間設置為結束時間。
6.數據清理方案。和獲取緩存數據采用同一個定時器,在獲取緩存數據完成以后,做數據清理;數據清理內容:最近30 天(生產環境365 天)以外的運行記錄基礎數據和增量文件,還有被刪除的運行記錄數據。
7.工單記錄異步提交。在原有的填寫工單記錄直接提交,返回失敗或成功消息的業務處理邏輯基礎上,增加功能菜單顯示提交排隊任務信息,信息包括提交記錄類型、記錄內容(標題)、提交時間、提交進度條、操作按鈕。對提交工單記錄采取異步操作,將編輯提交的記錄進行本地化保存并生成提交隊列進行排隊提交,而界面仍可以做其它操作,不需要用戶長時間等待網絡處理響應,在提交任務信息欄中對提交失敗的任務進行提示,用戶可以進行干預(對其進行重新提交或者刪除操作)。
互聯網應用的不斷發展,給電力的生產也帶來了深遠的影響,為了充分利用新興的技術,提高工作效率,我們開發了配網移動搶修作業系統;與開發傳統的信息系統不同,在開發的過程中要充分考慮無線網絡的不確定性,對業務數據分類處理是一個很好的選擇;通過這一手段,可以提升用戶體驗,讓系統運行得更加流暢。