李鴿朋 張紹川



摘 要 針對電力野外作業(yè)人員在弱網(wǎng)絡環(huán)境下使用電力線路巡檢管理系統(tǒng)時數(shù)據(jù)采集難的問題進行深入研究,利用Android系統(tǒng)的信息通訊技術平臺,結合GPS定位系統(tǒng),提出了將離線緩存管理與數(shù)據(jù)云同步技術相結合的全天候數(shù)據(jù)采集方案,并率先在眉山供電公司輸電線路的野外作業(yè)現(xiàn)場得到了成功驗證,下一步可在林業(yè)、國土、地質(zhì)等多個有類似應用場景的行業(yè)部門進行復制推廣。
【關鍵詞】輸電線路 野外作業(yè) GPS定位系統(tǒng) 離線緩存管理 Handle機制 數(shù)據(jù)云同步 差量文件
1 引言
電力線路巡檢管理系統(tǒng)是為了解決使用傳統(tǒng)工作方法開展電力線路巡檢工作時容易出現(xiàn)的巡視不到位、作業(yè)不規(guī)范和檢查取證難等問題而定制開發(fā)的信息化管理工具。其設計思路通常是:巡檢人員在作業(yè)現(xiàn)場使用PDA終端進行數(shù)據(jù)采集(包括GPS坐標和現(xiàn)場照片),并通過無線網(wǎng)絡將數(shù)據(jù)實時上傳到服務器上。如果在強網(wǎng)絡環(huán)境下應用該系統(tǒng),效果確實很好。然而在弱網(wǎng)絡環(huán)境下(2G/3G/4G網(wǎng)絡信號都不好的野外現(xiàn)場),由于PDA與服務器連接不暢會導致數(shù)據(jù)同步困難,出現(xiàn)管理盲區(qū),甚至產(chǎn)生安全隱患。
針對這個課題,我們提出以下解決思路:在強網(wǎng)絡環(huán)境下繼續(xù)沿用實時采集上傳模式;在弱網(wǎng)絡環(huán)境下自動通過Handle異步下載切換為離線緩存模式;當網(wǎng)絡信號由弱變強時,自動切換至Cloudsync數(shù)據(jù)云同步模式進行數(shù)據(jù)上傳。這種全天候數(shù)據(jù)采集技術能夠不受網(wǎng)絡條件的限制,通過無縫覆蓋消除管理盲區(qū)。
2 技術架構
開發(fā)平臺采用java開發(fā)框架,數(shù)據(jù)庫采用mysql,web服務器采用tomcat。整個系統(tǒng)的邏輯架構采用經(jīng)典三層架構的方式,即表示層、業(yè)務邏輯層、數(shù)據(jù)層。如圖1。
表示層是用戶看到并與之交互的界面。對PC端的用戶來說,Web應用程序的表示層就是展現(xiàn)在IE客戶端中的通過HTML元素組成的界面;對于移動終端用戶來說表示層就是裝載在移動終端中的客戶端界面,這些客戶端也是由類似的XML語言編寫,通過優(yōu)化處理來提高客戶端的好用性和易用性。
業(yè)務邏輯層在系統(tǒng)中用于做一些有效性驗證的工作,以更好的保證程序運行的健壯性。如完成數(shù)據(jù)添加、修改和查詢業(yè)務等;不允許指定的文本框中輸入空字符串,數(shù)據(jù)格式是否正確以及數(shù)據(jù)類型驗證;用戶權限的合法性判斷等;通過以上的諸多判斷以決定是否將操作繼續(xù)向后傳遞,盡量保證程序的正常運行。它的關注點主要集中在業(yè)務規(guī)則的制定、業(yè)務流程的實現(xiàn)等與業(yè)務需求有關的系統(tǒng)設計,也即是說它是與系統(tǒng)所應對的邏輯有關。
數(shù)據(jù)層主要是用于定義封裝數(shù)據(jù)模型,存放說有的數(shù)據(jù)元素。數(shù)據(jù)層是整個系統(tǒng)的數(shù)據(jù)來源。在此次巡檢系統(tǒng)中,數(shù)據(jù)層的由本系統(tǒng)的數(shù)據(jù)庫中來,也可以由企業(yè)原IT系統(tǒng)對接獲得。
該平臺的移動終端基于Android平臺開發(fā),Android的系統(tǒng)架構和其操作系統(tǒng)一樣,采用了分層的架構。從架構圖看,Android分為四個層,從高層到低層分別是應用程序?qū)印贸绦蚩蚣軐印⑾到y(tǒng)運行庫層和Linux內(nèi)核層。
系統(tǒng)管理PC端和服務器端采用基于B/S的J2EE三層體系架構(Browser/Server,瀏覽器/服務器模式),該架構是WEB興起后的一種網(wǎng)絡結構模式,WEB瀏覽器是客戶端最主要的應用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實現(xiàn)的核心部分集中到服務器上,簡化了系統(tǒng)的開發(fā)、維護和使用。客戶機上只要安裝一個瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務器安裝Oracle、Sybase、Informix或 SQL Server等數(shù)據(jù)庫。瀏覽器通過Web Server 同數(shù)據(jù)庫進行數(shù)據(jù)交互。
B/S最大的優(yōu)點就是可以在任何地方進行操作而不用安裝任何專門的軟件。只要有一臺能上網(wǎng)的電腦就能使用,客戶端零維護。系統(tǒng)的擴展非常容易。
3 關鍵技術
3.1 離線緩存管理
針對文本數(shù)據(jù)和圖片數(shù)據(jù)占用資源情況的不同,提出兩種離線緩存管理方法,以解決弱網(wǎng)絡環(huán)境下客戶端與服務器之間數(shù)據(jù)連接不暢的問題。
(1)文本離線緩存管理。在強網(wǎng)絡環(huán)境下自動下載基礎數(shù)據(jù)文件(如線路和桿塔屬性),在PDA客戶端上生成一份相同的拷貝,同時會把鏈接地址、下載時間和數(shù)據(jù)有效期等相關信息一起存放到離線數(shù)據(jù)庫中。以后需要調(diào)用相同類型的數(shù)據(jù)時,程序會首先根據(jù)鏈接地址從數(shù)據(jù)庫中查詢,如果查詢到的當前時間并未超出數(shù)據(jù)有效期,就直接加載PDA客戶端上的離線數(shù)據(jù)。
這里提到的基礎數(shù)據(jù)下載模式是利用Handler機制通知UI線程處理消息,啟動異步線程執(zhí)行下載操作,獲取到服務器資源后再通過Handler Message更新UI線程。如圖3。
在主線程和新線程之間會使用MessageQueue隊列,供Handler方法從中調(diào)用相關消息進行處理。如圖4。
當完成離線緩存步驟后需要調(diào)用數(shù)據(jù)時,客戶端與服務器之間的交互模式如圖5。
這種方法可以靈活存放文件的屬性(通常存放在/data/
(2)圖片離線緩存管理。現(xiàn)場照片可以根據(jù)當前日期和時間命名后緩存到SD卡中的指定圖片緩存目錄,同時在數(shù)據(jù)庫中做好相應記錄,對應兩個關鍵字段,分別是該圖片的下載地址和本機地址。讀取圖片時首先使用Picture.lastModified()方法得到圖片文件的最后修改時間,并與當前時間比較判斷是否過期,然后根據(jù)比較結果選擇是根據(jù)本地地址在SD卡中檢索緩存文件,還是根據(jù)下載地址連接服務器進行下載。
由于圖片資源會占用較大的內(nèi)存空間,所以在離線緩存時要做適當?shù)膬?yōu)化。有兩種方法:
第一種方法是將圖片直接存入SD卡并采用LRU(最少頁面置換)算法保證SD卡僅被占用少量空間,以提高加載速度。
第二種辦法是在內(nèi)存中開辟兩個緩存區(qū),按照一定規(guī)則將圖片分類存放,然后設置過期時間和LRU規(guī)則。通常是把常用數(shù)據(jù)放入緩存A,不常用數(shù)據(jù)放入緩存B。當要獲取數(shù)據(jù)時先從A中查詢,如果A中沒有再去B中查詢。B中的數(shù)據(jù)主要是A中LRU出來的數(shù)據(jù),這里的內(nèi)存回收主要針對B內(nèi)存,從而保持A中的數(shù)據(jù)絕大部分是經(jīng)常被調(diào)用的有效數(shù)據(jù)。
另外由于作業(yè)現(xiàn)場圖片較多(每個作業(yè)現(xiàn)場都要拍攝1-2張照片且存儲在終端設備中),如果對圖片的緩存管理不當,會造成圖片文件冗余、消耗極大存貯空間,調(diào)用時內(nèi)存占用率高造成系統(tǒng)運行不流暢,這對系統(tǒng)架構的設計提出了嚴峻的考驗。相應的解決方案為:
一是完成拍照后,首先要在保證圖片清晰的前提下利用壓縮算法處理成更先進的PNG文件格式,然后再做緩存。PNG格式圖片因其高保真性、透明性及文件體積較小等特性,被廣泛應用于網(wǎng)頁設計、移動應用程序開發(fā)中,以此保證圖片文件在高保真的前提下體積最小。
二是將各個PNG文件進行MD5算法唯一性驗證,對比相同的圖片文件,針對每項電力設備讓系統(tǒng)始終只保存一個PNG文件,以此保持圖片文件不冗余。
三是在設計軟件架構時采用符合ISRM(Improve Software Resource Manage 優(yōu)化軟件資源管理)的設計標準,建立圖片堆棧緩存(Images Stack Cache),將圖片在調(diào)用前就預讀到以堆棧形式保存的內(nèi)存地址空間中,以此保證大量圖片并發(fā)調(diào)用時系統(tǒng)依然運行流暢。
3.2 數(shù)據(jù)云同步
數(shù)據(jù)云同步Cloudsync技術是一套涉及移動終端和服務器端的異構系統(tǒng)解決方案。為保證數(shù)據(jù)的一致性,不但終端設備要向服務器同步作業(yè)現(xiàn)場采集的數(shù)據(jù),而且服務器也要向終端同步線路與桿塔屬性數(shù)據(jù)。
云同步系統(tǒng)包括以下功能實體(如圖8):
(1)終端客戶端:安裝在用戶手機終端上,與主同步模塊交互,完成終端數(shù)據(jù)和云端同步。
(2)PC客戶端:安裝在用戶PC上,與主同步模塊交互,完成PC數(shù)據(jù)和云端同步。
(3)用戶Web門戶:運行在平臺側(cè),向用戶提供己經(jīng)同步到云端數(shù)據(jù)的瀏覽、增加,刪除、修改等操作。
(4)主同步模塊:運行在平臺側(cè),接收所有終端客戶端的同步請求,與客戶端交互完成數(shù)據(jù)與文件同步。
(5)用戶及業(yè)務數(shù)據(jù)庫:關系型數(shù)據(jù)庫,用于保存用戶、業(yè)務數(shù)據(jù)以及同步的記錄型數(shù)據(jù)。
(6)對象存儲系統(tǒng):對象存儲用于保存同步的文件型數(shù)據(jù)。
數(shù)據(jù)在云端和客戶端傳輸可采用全量和差量的方法。全量文件上傳采用 HTTP POST方法,全量文件下載采用直接通過URL(Uniform Resource Location) 下載的方式。對于可編輯性的文件,為了在文件同步時減少文件的傳輸數(shù)據(jù)量, 降低占用帶寬,考慮在客戶端和云端之間使用文件差異同步算法(差量同步算 法)。目前針對同步服務提出了多種快速文件同步算法;主要分為單輪和多輪同步,單輪與多輪指的是在同步過程中需要進行數(shù)據(jù)交互的輪數(shù)。
下面通過流程圖來展示云端和客戶端之間的交互過程(如圖9):
圖9所示流程說明如下:
(1)終端發(fā)送文件同步請求消息到云端。
(2)服務端收到同步請求消息后進行同步類型判斷,需要判斷請求文件的操作是新增,刪除還是更新,并返回請求消息。
(3)終端收到服務端的請求消息之后,發(fā)送hash文件續(xù)傳請求消息。
(4)服務端收到續(xù)傳請求消息之后在判斷沒有其它同步請求消息之后,從系統(tǒng)的臨時文件中獲取hash文件總長,并返回給終端。
(5)終端收到hash文件長度后上傳剩余的數(shù)據(jù)片到服務端。
(6)當云端接收上傳物理文件后,獲取該文件的哈希值。將物理文件信息入庫, 并在存儲介質(zhì)上存儲文件實體;為了能對物理文件分散存儲,采用文件哈希值獲取到文件分散值(取哈希值前兩位,或者用哈希值整除100獲取余 數(shù))。
(7)發(fā)送傳輸成功消息到終端。
上述流程描述的是對于差量文件的同步文件傳輸過程,不僅大大減少了網(wǎng)絡傳輸?shù)臄?shù)據(jù)流量,而且提高了傳輸效率。
另外,通過數(shù)據(jù)云同步技術提供的客戶端可視化配置界面,只需在終端設備中對服務器中心數(shù)據(jù)庫(Center DataBase)服務器地址、中心數(shù)據(jù)庫授權使用的用戶名和密碼進行配置便可完成數(shù)據(jù)庫同步參數(shù)設置。配置一次,系統(tǒng)自動保存配置信息,之后的每次操作都不用再關心配置問題。
中心數(shù)據(jù)庫需要部署一臺Apache Tomcat、MySQL數(shù)據(jù)庫,通過在 Cloudsync提供的中心數(shù)據(jù)庫可視化配置界面輸入JDBC 驅(qū)動地址,數(shù)據(jù)庫用戶名,數(shù)據(jù)庫密碼和Tomcat服務器地址中心數(shù)據(jù)庫即可正式工作了。中心數(shù)據(jù)庫配置完成后,即可通過瀏覽器登錄中心數(shù)據(jù)庫提供的配置,管理界面對客戶端數(shù)據(jù)庫同步進行配置和授權。
4 結束語
此項成果通過離線緩存管理與數(shù)據(jù)云同步相結合的模式,能夠?qū)崿F(xiàn)在弱網(wǎng)絡環(huán)境下的全天候數(shù)據(jù)采集與及時上傳功能,不僅提高了工作效率,而且在很大程度上杜絕了野外作業(yè)現(xiàn)場人員考勤難、執(zhí)行不到位,出工不出力所導致的管理盲區(qū)和安全風險,可廣泛應用于電力、測繪、國土、環(huán)境、水利、農(nóng)業(yè)、林業(yè)等所有需要依靠移動GIS終端協(xié)助進行精準數(shù)據(jù)采集、快速數(shù)據(jù)傳輸和高效數(shù)據(jù)管理的行業(yè)。
作者簡介
李鴿朋(1981-),男,四川省綿陽市人。碩士研究生學歷。現(xiàn)為國網(wǎng)眉山供電公司工程師。主要研究方向是電子技術及通信技術的研究。
張紹川(1983-),男,湖南省懷化市人。大專學歷。現(xiàn)為國網(wǎng)眉山供電公司助理工程師。主要研究方向是發(fā)電廠及電力系統(tǒng)的研究。
作者單位
國網(wǎng)眉山供電公司 四川省眉山市 610032