劉曉玲
( 大連市金融中專,遼寧 大連 116021)
引言:隨著經(jīng)濟(jì)的發(fā)展,國家對環(huán)保事業(yè)越來越重視,數(shù)字化在線監(jiān)測與控制技術(shù)已進(jìn)入環(huán)保行業(yè),并發(fā)揮重要作用。這些設(shè)備產(chǎn)生的數(shù)據(jù)進(jìn)行實時讀取和生成實時圖表的需求對原有在線監(jiān)測數(shù)據(jù)查詢WEB程序提出很高要求:原有基于瀏覽器的B/S模式完全依賴瀏覽器,具有網(wǎng)絡(luò)局限性;界面局限性:客戶端使用界面圖形簡單、功能不全,缺乏友好性,無法實現(xiàn)具有個性化的功能要求;版本更新局限性:版本的更新或升級步驟繁瑣,加大用戶的負(fù)擔(dān)。污染源在線監(jiān)測系統(tǒng)既要隨著社會的發(fā)展不斷完善,又要方便客戶使用,而要使上千甚至更多的桌面程序保持時時升級,不僅有巨大的工作量,還有復(fù)雜、困難的技術(shù)問題。在解決客戶端軟件部署、更新方面,雖然B/S或n層結(jié)構(gòu)技術(shù)曾被廣泛應(yīng)用,由于B/S或n層結(jié)構(gòu)技術(shù)是一種網(wǎng)頁發(fā)布技術(shù)[1],只能對簡單圖形進(jìn)行組件,無法滿足對文字、表格和圖象處理的復(fù)雜應(yīng)用,而且其服務(wù)器和網(wǎng)絡(luò)環(huán)境對其響應(yīng)速度有重大影響[2]。
JWS(JAVAWEBSTART)技術(shù)使應(yīng)用程序升級容易快捷,運行不受制于網(wǎng)絡(luò),在國外受到很多應(yīng)用軟件開發(fā)商的歡迎[3],在我國,有學(xué)者應(yīng)用于工業(yè)自動化、地理信息系統(tǒng)及校園網(wǎng)絡(luò)方面[4]。課題中運用JWS,SWING等技術(shù)構(gòu)建一種能快速部署并且能實現(xiàn)復(fù)雜用戶界面的WEB應(yīng)用。在完全繼承B/S模式優(yōu)點的同時解決了B/S模式的缺點,不依賴WEB瀏覽器,實現(xiàn)高度交互的用戶界面,同時支持脫機(jī)使用。
1 JWS技術(shù)
JWS是SUN公司為實現(xiàn)JNLP(JavaNetwork launchingProtocol,Java網(wǎng)絡(luò)加載協(xié)議)而開發(fā)的軟件[4],包含了 applet的可移植性[2]、Servlet和 Java ServerPages的可維護(hù)性以及類似XML和HTML標(biāo)記語言的簡易性。是一種基于Java的應(yīng)用程序部署技術(shù),JWS技術(shù)的優(yōu)點:(1)支持脫機(jī)使用。允許用戶在完全脫離Web的情況下運行和管理應(yīng)用程序,實現(xiàn)基于Web部署的應(yīng)用程序到本地應(yīng)用程序的轉(zhuǎn)換。(2)升級簡易。提供一次單擊激活應(yīng)用程序的簡易方法,保證始終運行應(yīng)用程序的最新版本,避免復(fù)雜的安裝或升級過程。(3)安全最大化。JWS自身是一個Java應(yīng)用程序,繼承了Java安全性的優(yōu)點,使得下載的程序受到j(luò)ava中的沙箱模型限制,不能占用本地的系統(tǒng)與資源,同時也支持?jǐn)?shù)字簽名來判別是否啟動應(yīng)用程序。(4)界面友好。支持字處理、表格以及圖象處理等復(fù)雜應(yīng)用,界面美觀友好。基于以上優(yōu)點,JWS技術(shù)可以為污染源在線監(jiān)測數(shù)據(jù)查詢系統(tǒng)軟件的實現(xiàn)提供技術(shù)支持和保證。
1.2 JWS工作原理
JWS應(yīng)用于連接客戶端和應(yīng)用程序,其工作流程如下:
圖1
步驟一:當(dāng)客戶通過瀏覽器鏈接或點擊應(yīng)用程序的快捷方式時,JWS即被啟動。步驟二:JWS鏈接提供應(yīng)用程序的Web服務(wù)器。步驟三:JWS判斷客戶端是否是第一次運行應(yīng)用程序,如果是,則自動從服務(wù)器下載JWS應(yīng)用程序的最新版本到客戶端,然后在客戶端啟動應(yīng)用程序;如果不是,則檢查客戶端緩存的JWS應(yīng)用程序是否是最新版本,如果是,則在客戶端啟動應(yīng)用程序,如果不是,當(dāng)Internet連接可用時,下載應(yīng)用程序更新部分,當(dāng)Internet不可用時,客戶端啟動應(yīng)用程序。
2 JWS在污染源在線監(jiān)測系統(tǒng)的應(yīng)用
2.1 系統(tǒng)功能
一、顯示實時數(shù)據(jù),環(huán)保實時數(shù)據(jù)是由各個環(huán)境信息采集點實時產(chǎn)生,通過無線通信傳輸(GPRS)到環(huán)境監(jiān)測中心,數(shù)據(jù)經(jīng)過系統(tǒng)后臺服務(wù)器整理、分析、處理后發(fā)送到系統(tǒng)前臺界面顯示。
二、顯示小時數(shù)據(jù),被監(jiān)控企業(yè)廢氣污染源自動監(jiān)測設(shè)備1個小時自動采樣一次,廢水污染源自動監(jiān)測設(shè)備2個小時自動采樣一次,數(shù)據(jù)經(jīng)過整小時進(jìn)行傳輸顯示。
三、顯示報警數(shù)據(jù),后臺服務(wù)器接收數(shù)據(jù)的時候,當(dāng)有一種污染如濃度超出了系統(tǒng)設(shè)定的范圍時,系統(tǒng)采用多種形式給予報警或者警示。
四、生成日、周、月、季、年報表,系統(tǒng)從多種角度和層面來統(tǒng)計分析監(jiān)測數(shù)據(jù),提供全面的報表和統(tǒng)計圖表。可以按轄區(qū)、按行業(yè)種類、按污染物種類等多種分類方式,生成統(tǒng)計報表和統(tǒng)計圖表。
五、顯示動態(tài)圖表,動態(tài)圖表主要以曲線圖的形式顯示。
2.2 項目框架模型:
系統(tǒng)分為四層:UI層:借助SwingStruts實現(xiàn)。用ActionForm類封裝與用戶互動的數(shù)據(jù)元素;用Action類實現(xiàn)業(yè)務(wù)邏輯、動作處理、鏈接轉(zhuǎn)向。實現(xiàn)MVC中的C;借助Struts標(biāo)簽來完成數(shù)據(jù)呈現(xiàn),實現(xiàn)MVC中的V。選擇SWING實現(xiàn)跨平臺使用,實現(xiàn)復(fù)雜用戶界面。業(yè)務(wù)層:在servlet中實現(xiàn)具體的業(yè)務(wù)邏輯,系統(tǒng)的UI層和業(yè)務(wù)層完全獨立,分成兩個獨立的系統(tǒng),他們之間通過可序列化對象進(jìn)行通信。數(shù)據(jù)持久層:借助Hibernate實現(xiàn)。實現(xiàn)數(shù)據(jù)庫訪問性能優(yōu)化和與數(shù)據(jù)庫交互的常用操作(CRUD),還將數(shù)據(jù)表與對象進(jìn)行關(guān)聯(lián),讓我們可以脫離數(shù)據(jù)表,而直接針對對象與數(shù)據(jù)庫交互,不再需要用字符串去描述表中字段,不需要組裝Sql語句。
2.3 系統(tǒng)部署實現(xiàn)
本系統(tǒng)采用JWS的D/S(DesktopApplication/ServerApplication)結(jié)構(gòu),客戶端用 Swing,服務(wù)器端可以使用SERVLE,采用Swing和SERVLE來交換數(shù)據(jù),采用標(biāo)準(zhǔn)的HTTP協(xié)議來通訊,交換數(shù)據(jù)。把做好的Swing UI打包成*.jar,簽名(javasinger)后放到WEBAPP目錄下。同時建立一個 *.jnlp(Java.NETwork LaunchingProtocol)文件,客戶端只要點擊JNLP文件的連接,就會激活客戶端JWS啟動,下載jar包后自動運行程序。這里的Swing和在JavaIDE(如Eclipse)里面運行的一樣,可以操作本地文件,其實就是把jar包下載到本地運行的,通過運行的SERVLE來交換數(shù)據(jù)。其系統(tǒng)部署實現(xiàn)的具體方法如下:
(1)JNLP文件。JNLP文件是JWS的核心,是一種為應(yīng)用程序提供基本元素和描述的XML文件[5]。JWS是與網(wǎng)絡(luò)瀏覽器相結(jié)合的應(yīng)用軟件,當(dāng)用戶點擊鏈接時會指向一個Java網(wǎng)絡(luò)啟動協(xié)議JNLP文件,然后瀏覽器自動啟動JWS,接著下載、緩存并運行軟件。在JWS背后的技術(shù)是JNLP及其API,JWS實際上是JNLP規(guī)范的一個參考實現(xiàn),JNLP技術(shù)定義了一個標(biāo)準(zhǔn)的文件格式,該格式描述了如何調(diào)用一個JNLP文件。JNLP是一個和JWS緊密相關(guān)的概念,它經(jīng)常可以和術(shù)語"網(wǎng)絡(luò)啟動"相互替代使用,實際上,JNLP是一個規(guī)定了JWS應(yīng)用軟件如何啟動的協(xié)議。JNLP中的包含了諸如JAR包文件的位置、應(yīng)用軟件主要類的名稱,以及程序的其它一些參數(shù)。
一個JNLP文件不包含任何二進(jìn)制數(shù)據(jù),實際上它包含的URL指向所有的二進(jìn)制數(shù)據(jù)和二進(jìn)制代碼資源。這些文件還可以指向其他的JNLP文件,它們被稱為擴(kuò)展描述符[8],一個擴(kuò)展描述符通常描述了運行軟件所必需的組件,在擴(kuò)展描述符中描述的資源將會成為應(yīng)用軟件類路徑的一部分,這樣,常用的功能只需要描述一次即可,同樣,污染源在線監(jiān)測系統(tǒng)也是基于這種文件,開發(fā)過程中JNLP文件略。
(2)在 web server中設(shè)定 MIME形態(tài),即:在TOMCAT_HOME﹨conf﹨web.xml中加入
(3)制作網(wǎng)頁,以鏈接JNLP文件,即
在網(wǎng)頁中加入。這樣,用戶點擊鏈接的時候就會指向一個Java網(wǎng)絡(luò)啟動協(xié)議JNLP文件,然后瀏覽器自動啟動JWS,接著下載、緩存并運行軟件。整個污染源在線監(jiān)測系統(tǒng)應(yīng)用程序在JWS下部署完畢。
3 污染源在線監(jiān)測系統(tǒng)的應(yīng)用
基于以上部署和算法技術(shù),當(dāng)通過Web瀏覽器啟動JWS,下載完成后,應(yīng)用程序的啟動可以選擇在線啟動和離線啟動,當(dāng)選擇在線啟動時,JWS先進(jìn)行應(yīng)用程序更新,后啟動應(yīng)用程序;當(dāng)選擇離線啟動時,JWS直接啟動應(yīng)用程序。該軟件可以通過修改配置文件來滿足不同用戶的要求,用戶操作不當(dāng)時,有相應(yīng)的提示信息,用戶幫助中歸納了用戶可能遇到的問題和解決方法,便于系統(tǒng)維護(hù)。以JWS技術(shù)部署本系統(tǒng)的優(yōu)點如下:
(1)采用多層結(jié)構(gòu)和JWS這兩種瘦客戶端技術(shù),解決了在企業(yè)級的局域網(wǎng)中部署軟件的問題,減少客戶端系統(tǒng)及硬件需求,降低了系統(tǒng)軟件成本。(2)業(yè)務(wù)和數(shù)據(jù)處理均在服務(wù)器端進(jìn)行,對網(wǎng)絡(luò)要求不高,穩(wěn)定性好。(3)來自JAVA技術(shù)的特點,該系統(tǒng)具有高度的通用性和跨平臺的特性。(4)系統(tǒng)的安全性高。用JWS部署軟件,該軟件至少有本系統(tǒng)部署單位的軟件簽名,方可部署;JWS能及時的更新或升級該軟件。(5)不依賴WEB瀏覽器。通過HTTP協(xié)議訪問WEB服務(wù)器,實現(xiàn)高度交互的用戶界面,同時支持脫機(jī)使用的在線監(jiān)測數(shù)據(jù)查詢。
結(jié)論:本系統(tǒng)不僅適用于污染源的在線監(jiān)測,還適用于水質(zhì)、水文、生態(tài)等各種環(huán)境要素的自動監(jiān)測。對環(huán)保企業(yè)污染物監(jiān)測數(shù)據(jù)查詢和統(tǒng)計分析工作有重要的意義。目前我國大部分污染源監(jiān)測系統(tǒng)不具備實時遠(yuǎn)程監(jiān)控功能。將自動控制、網(wǎng)絡(luò)通信等信息技術(shù)引入環(huán)境監(jiān)測領(lǐng)域,是環(huán)境監(jiān)測信息管理的時代潮流和必然趨勢。因此本系統(tǒng)還需要在這方面進(jìn)一步完善。
[1]龍瓊.用Java Web Star軟件進(jìn)行客戶端軟件部署[J].湖南工程學(xué)院學(xué)報,2004,(1):69-71.
[2]李文清,劉前進(jìn).基于Java Web Star技術(shù)的電網(wǎng)培訓(xùn)考核系統(tǒng)[J].電力系統(tǒng)保護(hù)與控制,2009年4月1日,第37卷第7期.
[3]金進(jìn).基于Java Web Star技術(shù)的應(yīng)用程序在工業(yè)自動化中的實現(xiàn) [J].微計算機(jī)信息,2005,(5):218-219.
[4]張素青.使用Java Web Star部署自己的Java應(yīng)用程序[J].新余高專學(xué)報,2005,(2):84-86.
[5]劉斌.基于Java Web Start的鐵路調(diào)度查詢系統(tǒng)研究[J].蘭州交通大學(xué)學(xué)報,2009年6月,第28卷第3期.