陳小奎
(安徽理工大學 理學院,安徽 淮南 232001)
隨著計算機網絡技術的高速發展,網絡傳輸速度的提升,B/S架構系統以其高效、易開發、易維護等特點被應用到實時監測領域.但是,傳統B/S架構采用的獨占請求模式和整體頁面刷新機制致使服務器與客戶端之間頁面刷新所需傳輸的數據冗余量大,頁面響應速度慢,網絡帶寬占用大,系統交互效率低,用戶瀏覽體驗差[1].這給煤礦井下人員定位系統的在線實時監測帶來了困難.通過將Ajax技術和Web Services技術應用到B/S架構實時定位系統,使用胖客戶端——瘦服務端模式,并利用Ajax技術繪制SVG矢量圖形,在確保監測系統的實時性、準確性、數據傳輸連續性的同時,應用Web Services技術指定查詢周期后,將查詢結果集轉儲為XML對象,通過網絡可以傳輸給多個監控端,減少了在線監測系統服務器與瀏覽器之間的數據信息交互量,實現了客戶端頁面的數據圖表和矢量圖形實時顯示,無刷新的多端監控,并且圖形可以不失真地放大或縮小,大大提高了B/S定位系統的整體性能[2].
Ajax是“Asynchronous JavaScript and XML”(異步JavaScript和XML)的簡稱,是一種使用客戶端腳本,并能與Web服務器交換數據的客戶端Web開發技術.Ajax技術能夠以異步方式與服務器進行信息交互.異步是指客戶端的請求——響應與用戶的行為是異步進行的,客戶端在等待服務器的響應時不需要阻塞用戶,用戶可以繼續進行其他工作[3].客戶端在接收到服務器響應后自動刷新頁面數據,進而無需刷新整個頁面便可更新頁面內容,這被稱作“無刷新更新頁面”.可以減少用戶的等待時間,改善軟件的友好度.
煤礦井下人員定位系統是一種集無線數據傳輸、信息采集、網絡傳輸與自動控制等技術為一體的動態目標監控定位系統.該系統可以實時觀測動態目標的移動情況,查詢目標的歷史數據確定動態目標的當前位置,有利于加強煤礦管理層對煤礦井下人員與車輛的管理.當事故發生時,救援人員可根據井下人員定位系統提供的數據、圖形迅速了解有關人員的位置情況,及時采取相應的救援措施,提高應急救援工作的效率[4].基于Ajax技術的煤礦井下人員定位系統采用無刷新更新數據具有快速反應、交互性好的優點.系統結構圖如圖1所示.
地下信息采集子系統通過無線射頻獲取人員位置信息,傳送給地上的數據分析子系統,數據分析子系統對數據判斷后得到報警信息和位置信息存入數據庫,基于Ajax的信息管理子系統,對數據進行圖形化顯示,并提供給監控人員[5].

圖1 基于Ajax的煤礦井下人員定位系統結構圖
XmlHttpRequest是Ajax核心的JavaScript對象.是一種支持異步請求的技術.XmlHttpRequest可以使用JavaScript向服務器提出請求并處理響應,而不阻塞用戶.Ajax的工作原理相當于在用戶和服務器之間加了一個中間層,使用戶操作與服務器響應異步化.這樣把以前由服務器負擔的部分工作轉嫁到客戶端,利于客戶端閑置的處理能力來處理,減輕服務器和帶寬的負擔,從而達到節約ISP的空間及帶寬的目的.煤礦井下人員定位系統的客戶端使用Ajax技術定時向網絡服務器的CGI模塊發送異步請求,CGI模塊處理請求并返回數據,當XmlHttpRequest獲得數據后,在頁面不刷新的情況下使用DOM技術動態地更新頁面數據.基于Ajax煤礦井下人員定位系統服務器——客戶端之間只需要傳輸網頁需要更新的少部分數據,因可變數據量特別小,故大大提高了網絡響應速度,從而實現實時數據圖表的顯示,網絡客戶端只需使用通用的瀏覽器,用戶修改參數、設置數值或顯示實時數據時,只需打開標準網頁瀏覽器即可完成系統的操作和顯示,這就實現了B/S結構模式的監測.基于Ajax的信息管理子系統結構圖如圖2所示.

圖2 基于Ajax的信息管理子系統結構圖
SVG即可縮放矢量圖形(Scalable Vector Graphics)是基于可擴展標記語言(XML),用于描述二維矢量圖形的一種圖形格式.SVG是國際互聯網標準組織在2000年8月制定的一種新的二維矢量圖形格式,也是規范中的網絡矢量圖形標準.SVG嚴格遵從XML語法,并用文本格式的描述性語言來描述圖像內容,因此是一種和圖像分辨率無關的矢量圖形格式.[6]W3C是作為一個國際性的工業聯盟而創建的,引領著整個互聯網協作的發展和創新,以實現科技的進步和共同發展.由于W3C聯盟關于SVG的開發工作組的成員都是一些知名廠商,如Adobe、蘋果、惠普、IBM、Macromedia、微軟等,所以SVG是一個開放的標準.也就是說,它并不是屬于任何個體的專利,而是一個通過協作、共同開發的工業標準.這也是SVG能夠得到更迅速的開發和應用的原因.SVG允許三種類型的圖形對象:矢量圖形的形狀、圖像和文字.SVG可以直接融入XML和XHTML網頁中,可以直接利用瀏覽器已有的技術,如CSS、DOM、JavaScript,達到動畫及DHTML般的動態效果,支持單向和多向鏈接等等.更重要的是SVG是W3C制定的網絡標準,不受單一的公司控制.基于此,客戶端的實時曲線采用SVG+Ajax的技術實現.將最新數據寫入頁面的關鍵代碼如下.
//將最新數據寫入頁面
function writeNewData(){
var xmlObject;
if (str=="")
{document.getElementById("captchas").innerHTML="";
return;}
if(window.XMLHttpRequest){ //IE7以上瀏覽器使用
xmlObject =new XMLHttpRequest();}
else{//IE5,IE6瀏覽器使用
xmlObject =new ActiveXObject("Microsoft.XMLHTTP");}
xmlObject.onreadystatechange=function(){
if(xmlObject.readyState==4&& xmlObject.status==200){
//獲取成功,設置刷新狀態為falsedocument.getElementById("txtPrompt").innerHTML=xmlObject.responseText;
}//將獲得的實時數據寫入頁面
} xmlObjectp.open("GET","writeBack.jsp?q="+str",true);
xmlObject.send();
}
應用SVG技術對查詢結果進行圖形化顯示,通過Ajax負責與用戶的交互,將查詢語句傳入服務器端,異步動態更新SVG的DOM表格數據,同時繪制實時曲線.應用Ajax技術定時向服務器發出更新實時曲線所需數據的請求,若數據更新了,則調用JavaScript腳本令SVG的曲線重新進行定位各監控點位置,即實現了監控圖表實時刷新[7].
Web Service是一個平臺獨立的、松耦合的、自包含的、基于可編程的Web的應用程序,可使用開放的XML標準描述、發布、發現、協調和配置這些應用程序,用于開發分布式、互操作的應用程序.[8]
Web Service優勢體現在以下兩個方面,第一,Web Service基于HTTP和TCP/IP協議進行傳輸,不受防火墻限制,克服了B/S模式系統中常見的數據被阻攔問題;第二,Web Service所傳輸的數據是包裝在XML文件中,XML文件傳輸占少量帶寬,易于建立,易于分析,另外XML是國際標準技術,既與平臺無關,又與廠商無關,兼容性強.
考勤子系統由中央數據庫、Web服務器、Web Service代理服務器和外部考勤子系統組成.Web服務器從中央數據庫獲取井下人員位置信息,并將數據轉儲為XML文件,XML文件傳輸到Web Service代理服務器,XML文件的傳輸避免了數據庫暴露在互聯網上.代理服務器上放置定義了考勤數據處理功能的Web Service,外部考勤子系統利用SOAP協議調用Web Service.應用XML和Web Services技術的考勤子系統的結構圖如圖3所示.

圖3 基于XML和Web Services的考勤子系統
井下人員定位系統通過Web Service代理服務器將定位信息發布成XML文件,考勤信息包含工號、姓名、部門、班次和上下井時間,定位考勤客戶端采用了ASP.NET設計,運行界面如圖4所示.

圖4 井下人員定位系統客戶端運行圖
基于Ajax的井下人員定位系統采用互聯網通信模式,CGI、Ajax和SVG的結合實現了過去用戶只有使用C/S軟件才可以實現的功能,該系統實現了實時監控的圖表.同傳統的煤礦定位系統相比,該系統具有易操作性和易維護性等特點.因為不需要客戶端軟件的安裝和維護,從而降低了開發、維護和升級成本,節省了人力、物力.
參考文獻:
[1]陳小奎.井下人員定位管理系統數據庫設計及優化[J].能源技術與管理,2007(6):33-34.
[2]郭挺,謝敏,劉明波.SVG和Ajax技術在電網分析與輔助決策支持系統中的應用[J].電力系統保護與控制,2012(04):113-115.
[3]劉懷志.煤礦安全生產管理模式[M].北京:煤炭工業出版社,1999:263-264.
[4]薛占儒.煤礦安全管理信息系統的開發與應用[J].煤礦安全,2004,35(6):69-71.
[5]宋正利.基于Web Services的煤礦安全計算網絡模式[J].工礦自動化,2005(5):91-94.
[6]Smullen C W,Smullen s A.Ajax application server performance[C].SoutheastCon.Proceedings.IEEE,2007:154-158.
[7]Tomokazu Fujino.SVG+Ajax+R: a new framework for WebGIS[J].Computational statistics,2007,22(4):511-520.
[8]Al-Marsri E.A crawler engine for large-scale discovery of Web Services[M].Salt Lake City:Institute of Electrical and Electronic Engineers,2012:114-117.