劉曉琳,鄭成賀,章晶晶,黃盛亮,張 薇,褚 淵
(1.國(guó)網(wǎng)(北京)節(jié)能設(shè)計(jì)研究院有限公司,北京,100032;2.國(guó)網(wǎng)信通億力科技有限責(zé)任公司,福建福州,350003)
基于Flex和Java技術(shù)的工業(yè)能效監(jiān)測(cè)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
劉曉琳1,鄭成賀2,章晶晶1,黃盛亮2,張 薇1,褚 淵1
(1.國(guó)網(wǎng)(北京)節(jié)能設(shè)計(jì)研究院有限公司,北京,100032;2.國(guó)網(wǎng)信通億力科技有限責(zé)任公司,福建福州,350003)
本文主要對(duì)基于Flex和Java的RIA技術(shù)進(jìn)行探討,針對(duì)當(dāng)前工業(yè)能耗的建設(shè)和發(fā)展趨勢(shì),構(gòu)建工業(yè)能效監(jiān)測(cè)管理系統(tǒng),闡述了本系統(tǒng)的設(shè)計(jì)過(guò)程和如何運(yùn)用Blazeds集成Flex和Java技術(shù)開(kāi)發(fā)RIA的企業(yè)級(jí)應(yīng)用系統(tǒng)。
Flex;Java;工業(yè)能耗
本文論述的基于Flex和Java框架技術(shù)的工業(yè)能效監(jiān)測(cè)管理系統(tǒng),主要實(shí)現(xiàn)對(duì)各種能源介質(zhì)進(jìn)行集中監(jiān)控、統(tǒng)一調(diào)度;通過(guò)監(jiān)控臺(tái)對(duì)各類供能用能環(huán)節(jié)進(jìn)行監(jiān)控管理;提供能源調(diào)度高級(jí)決策支持信息等。集動(dòng)力能源監(jiān)控、調(diào)度和信息管理于一體,保證能源可以科學(xué)合理地調(diào)度,從而達(dá)到提高利用率的效果。對(duì)系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)過(guò)程做了全面的介紹,比如如何使用Blazeds集成Flex和Java技術(shù)開(kāi)發(fā)一個(gè)基于RIA的企業(yè)級(jí)應(yīng)用,達(dá)到節(jié)約能源、提高利用率、實(shí)現(xiàn)信息共享的效果。
1.1 RIA技術(shù)分析
所謂RIA,又叫作富網(wǎng)絡(luò)應(yīng)用,是一種網(wǎng)絡(luò)應(yīng)用,可以像桌面程序一樣操作。而在RIA問(wèn)世前,許多網(wǎng)絡(luò)應(yīng)用的構(gòu)建,都使用了靜態(tài)頁(yè)面。
RIA通過(guò)網(wǎng)絡(luò)發(fā)布,對(duì)于用戶來(lái)說(shuō),功能十分強(qiáng)大。而Ajax技術(shù)使RIA進(jìn)入了新的使用時(shí)代,不用刷新,就可以將用戶請(qǐng)求發(fā)送給服務(wù)器。軟件開(kāi)發(fā)人員正是運(yùn)用這些技術(shù)來(lái)構(gòu)建系統(tǒng)框架,設(shè)計(jì)出相應(yīng)的應(yīng)用程序,如微軟Silverlight、JavaScript庫(kù)、AdobeFlash4、ICEfaces,以及HTML5等。其中AdobeFlashBuilder4兼容性和實(shí)用性是最強(qiáng)的,它可以跨平臺(tái)運(yùn)行,用可安裝于任何瀏覽器之中。在所有的瀏覽器和操作系統(tǒng)上都可以完美地地運(yùn)行。瀏覽器擁有不同的處理代碼和引擎管理和處理的代碼,可以對(duì)JavaScript進(jìn)行管理,而Adobe的Flash引擎僅有一個(gè),用戶只有使用AdobeFlash瀏覽器插件才能進(jìn)行安裝使用。AdobeFlashPlayer作為一種功能強(qiáng)大的架構(gòu),能滿足軟件設(shè)計(jì)和運(yùn)行,并可進(jìn)行RIA的創(chuàng)建,為用戶提供直觀的在線體驗(yàn)。
1.2 Flex前端UI設(shè)計(jì)技術(shù)
Flex技術(shù)采用的是可視化的開(kāi)發(fā)方式,這種技術(shù)是基于一種XML語(yǔ)言的衍生版本MXML來(lái)實(shí)現(xiàn)的。Flex技術(shù)中有著多種組件,通過(guò)對(duì)這些組件進(jìn)行使用能夠?qū)崿F(xiàn)web應(yīng)用等一些程序,包含的內(nèi)容有:WebServervice、列表中的字段排序,圖標(biāo)形式的數(shù)據(jù)統(tǒng)計(jì)等功能。在Flex中內(nèi)建有許多種動(dòng)畫(huà)效果,可以對(duì)這些動(dòng)畫(huà)效果進(jìn)行靈活的運(yùn)用,實(shí)現(xiàn)一個(gè)美觀間接地人機(jī)交互界面。Flex技術(shù),和一些傳統(tǒng)基于HTML語(yǔ)言的一些應(yīng)用架構(gòu),如PHP、JSP、ASP等,有著許多模板,在進(jìn)行頁(yè)面的postback過(guò)程中,可以對(duì)這些模板進(jìn)行調(diào)用,實(shí)現(xiàn)一次載入。使用這一方式,F(xiàn)lex應(yīng)用的工作流程被大大簡(jiǎn)化,并且就Flex文件結(jié)構(gòu)來(lái)看,也是一種代碼與頁(yè)面設(shè)計(jì)相分開(kāi)的模式。
1.3 Blazeds集成Flex和Java
針對(duì)Java技術(shù)開(kāi)發(fā)的服務(wù)器端應(yīng)用,一般通過(guò)集成Blazeds,再充分利用AMF協(xié)議并能輕易與Flex技術(shù)開(kāi)發(fā)之下的前段應(yīng)用進(jìn)行數(shù)據(jù)信息的交互。
BlazeDS本質(zhì)上是一種運(yùn)行于系統(tǒng)服務(wù)器的一種java遠(yuǎn)程調(diào)用,承擔(dān)著web信息傳遞的技術(shù),在這兩部分中,包含了對(duì)于AMF以JAVA形式進(jìn)行實(shí)現(xiàn)的部分,通過(guò)這樣一種情結(jié)構(gòu),能夠方便地來(lái)對(duì)遠(yuǎn)程服務(wù)器端上的一些JAVA對(duì)象進(jìn)行數(shù)據(jù)交互,并且同時(shí)也依靠著一技術(shù)能夠?qū)崿F(xiàn)在客戶端之間的信息交流。BlazeDS遠(yuǎn)程調(diào)用技術(shù),通過(guò)對(duì)POJO,spring等服務(wù)進(jìn)行使用,BlazeDS的作用近似等于JAVA程序中的RMI,通過(guò)對(duì)BlazeDS的配置,能夠?yàn)镕lex應(yīng)用程序提供相應(yīng)的JAVA接口程序類,對(duì)JAVA方式進(jìn)行調(diào)用。
在一個(gè)完整的BlazeDS應(yīng)用架構(gòu)中,一般包含著兩個(gè)方面的內(nèi)容:前段由客戶端程序組成,后臺(tái)則有J2EE程序組成。圖1中所示為其架構(gòu)示意圖。
圖1 BlazeDs架構(gòu)
在J2EE中對(duì)BlazeDS進(jìn)行使用,需要進(jìn)行一些預(yù)處理操作,具體的操作內(nèi)容有以下幾個(gè)步驟。
(1)復(fù)制BlazeDS對(duì)應(yīng)的jar文件包,復(fù)制在WEB-INF/lib目錄之下。
(2)對(duì) WEB-INF/flex目 錄 BlazeDS的config文件進(jìn)行修改配置。
(3)在WEB-INF/web.xml文 件對(duì)BlazeDS相關(guān)組件進(jìn)行定義,主要 包 括MessageBrokerServlet與sessionlistener。
圖2 系統(tǒng)功能層級(jí)圖
2.1 系統(tǒng)運(yùn)行環(huán)境
開(kāi)發(fā)平臺(tái):JDK1.6、AdobeFlexBui lder4、MyEclipse6.5、Tomcat7.0、Oracle數(shù)據(jù)庫(kù)。
發(fā) 布 平 臺(tái):JDK1.6、Windows2008 Server、Oracle數(shù)據(jù)庫(kù)。
客戶端:需要安裝FlashPlayer插件,瀏覽器可以是IE6,火狐,谷歌等常用主流瀏覽器。
2.2 具體要求
(1)以統(tǒng)一的技術(shù)平臺(tái)進(jìn)行構(gòu)建,確保工業(yè)能效監(jiān)測(cè)管理系統(tǒng)框架底層和功能設(shè)計(jì)方面進(jìn)行統(tǒng)一。
(2)為了使總體架構(gòu)能適應(yīng)將來(lái)的工業(yè)能效監(jiān)測(cè)管理系統(tǒng),在設(shè)計(jì)時(shí)必須堅(jiān)持以下幾種原則:靈活性、可擴(kuò)展性、先進(jìn)性。
(3)針對(duì)工業(yè)節(jié)能子系統(tǒng),實(shí)現(xiàn)對(duì)各種能源介質(zhì)(水、電、煤、油、氣等)進(jìn)行集中監(jiān)控;對(duì)于能源的供應(yīng)環(huán)節(jié),如水廠、供配電、電站,一定要通過(guò)監(jiān)控臺(tái)做重點(diǎn)管理,保證能源能科學(xué)地調(diào)度,最大限度得到利用,也使工業(yè)生產(chǎn)中對(duì)于能源的分配利用實(shí)現(xiàn)了最優(yōu)化,使工業(yè)生產(chǎn)能穩(wěn)定有序,實(shí)現(xiàn)效益的最大化,從而真正實(shí)現(xiàn)能源利用的最佳使用。
(4)采用目前最常見(jiàn)的B/S架構(gòu)模式,“一級(jí)部署,多級(jí)應(yīng)用”是該系統(tǒng)最大的特點(diǎn),而對(duì)于用戶來(lái)說(shuō),想要對(duì)系統(tǒng)進(jìn)行訪問(wèn)和登錄,只要通過(guò)瀏覽器就可以,而想要升級(jí),只能通過(guò)服務(wù)器端。
2.3 系統(tǒng)功能架構(gòu)設(shè)計(jì)
鑒于BlazeDS基于服務(wù)器端的應(yīng)用程序這一特點(diǎn),通過(guò)對(duì)實(shí)際情況進(jìn)行考察,所得出系統(tǒng)功能應(yīng)用圖層如下圖2所示。
3.1 系統(tǒng)總體架構(gòu)
依托國(guó)網(wǎng)節(jié)能公司能源服務(wù)運(yùn)營(yíng)管理系統(tǒng),工業(yè)能效監(jiān)測(cè)管理系統(tǒng)監(jiān)測(cè)工業(yè)企業(yè)能耗數(shù)據(jù),并將工業(yè)能耗數(shù)據(jù)上傳至能源運(yùn)維管理服務(wù)器中。下圖3所示為本系統(tǒng)的整體架構(gòu)。
3.2 功能架構(gòu)設(shè)計(jì)詳情
為了使系統(tǒng)更接近“高內(nèi)聚,低耦合”的目標(biāo),也為了更方便地完成 開(kāi)發(fā)、維護(hù),增強(qiáng)擴(kuò)展性,本文將系統(tǒng)分為表示層、業(yè)務(wù)邏輯層和持久層三層架構(gòu)。
圖3 系統(tǒng)總體架構(gòu)圖
(1)三層架構(gòu)之用戶表現(xiàn)層:在這一層中,主要負(fù)責(zé)一些交互界面的設(shè)計(jì)開(kāi)發(fā),能夠?qū)τ脩舻妮斎胼敵鲞M(jìn)行相應(yīng),本層主要采用的技術(shù)是Flex,使用MXML語(yǔ)言進(jìn)行編寫(xiě),能夠使得界面變得美觀易用,并且通過(guò)ActionScript腳本語(yǔ)言對(duì)一些處于表現(xiàn)層的客戶端邏輯進(jìn)行表現(xiàn),同時(shí)需要對(duì)一些第三方組件進(jìn)行應(yīng)用,提高整體開(kāi)發(fā)效率,并且在客戶易用性上得到一定的保障。
(2)三層架構(gòu)之業(yè)務(wù)層:在這一層中,主要是對(duì)用戶表現(xiàn)層中所接受到的數(shù)據(jù)信息等進(jìn)行業(yè)務(wù)上的處理,并且還承擔(dān)著對(duì)數(shù)據(jù)層進(jìn)行一些數(shù)據(jù)調(diào)用的作用。在這一層中,又可以分成控制層和服務(wù)層,控制層負(fù)責(zé)對(duì)用戶在表現(xiàn)層進(jìn)行的操作進(jìn)行響應(yīng),并且對(duì)這些操作進(jìn)行分類,將其通過(guò)服務(wù)層傳遞給數(shù)據(jù)層,從中取出想要的數(shù)據(jù)進(jìn)行使用。本系統(tǒng)中,將采用基于JAVA的一種框架技術(shù)Spring來(lái)進(jìn)行設(shè)計(jì)開(kāi)發(fā),其中將數(shù)據(jù)層進(jìn)行注入到系統(tǒng)的業(yè)務(wù)服務(wù)層種,通過(guò)控制層對(duì)其進(jìn)行調(diào)用后,將所得結(jié)果進(jìn)行一系列的處理,最終使用面向切面程序編程AOP技術(shù)來(lái)對(duì)業(yè)務(wù)層中的各項(xiàng)程序進(jìn)行分層。
(3)三層架構(gòu)之?dāng)?shù)據(jù)層:本層主要是對(duì)數(shù)據(jù)庫(kù)的一些操作進(jìn)行封裝,是一種與數(shù)據(jù)庫(kù)進(jìn)行信息交互的邏輯處理層,在本系統(tǒng)中,將使用Ibatis技術(shù)來(lái)及西寧實(shí)現(xiàn),通過(guò)SQL語(yǔ)言進(jìn)行使用,完成POJO與SQL之間的映射關(guān)系設(shè)計(jì),具有很強(qiáng)的靈活性。
3.3 系統(tǒng)通信框架
本系統(tǒng)將通過(guò)使用BlazeDs作為Flex與Java通信的基礎(chǔ)框架,下面就以本系統(tǒng)中對(duì)設(shè)備信息進(jìn)行獲取為例進(jìn)行簡(jiǎn)單的說(shuō)明,主要步驟有:
(1)編寫(xiě)JAVA服務(wù),將服務(wù)中所定義的函數(shù)方法類型設(shè)定為public。
(2)在services—config.xml中注冊(cè)SpringFacotry,配置如下:
(3)在remoting的配置文件中對(duì)destination屬性進(jìn)行定義,并且屬性每一項(xiàng)的具體值必須與服務(wù)器終端的一些屬性進(jìn)行對(duì)應(yīng),這樣就可以通過(guò)factory與soruce來(lái)把BlazeDs與Spring技術(shù)進(jìn)行結(jié)合:
(4)對(duì)Remote對(duì)象進(jìn)行實(shí)例化,并且將其對(duì)象中的result與fault屬性進(jìn)行注冊(cè)定義,將其設(shè)計(jì)成為事件處理的偵聽(tīng)器,通過(guò)設(shè)計(jì)方法內(nèi)容,通過(guò)這兩個(gè)值對(duì)異常和返回進(jìn)行響應(yīng)。
處理返回響應(yīng)的方法:
/**
*獲取設(shè)備列表的回調(diào)
**/
privatefunctiongetAssetsResult(event:ResultEvent):v oid{
vardevice:Device=event.resultasDevice;
在上述代碼中,Device變量為AS3類下的實(shí)例對(duì)象,通過(guò)[RemoteClass(alias="com.ylkj.pcsip.device.bo.Device")]進(jìn)行映射到Java端的Device對(duì)象,event.result將會(huì)進(jìn)行自動(dòng)轉(zhuǎn)化成為 AS3對(duì)象。
(5)ActionScript腳本文件中對(duì)JAVA遠(yuǎn)程方法進(jìn)行使用,并且將一些參數(shù)進(jìn)行傳遞,如deviceRO.getDeviceById(id);
這里getDeviceById對(duì)應(yīng)DeviceBean類中的getDevice ById方法,使用了異步調(diào)用方式,這樣處理使得,前臺(tái)的一些操作請(qǐng)求不會(huì)對(duì)后臺(tái)的線程進(jìn)行阻礙,使得系統(tǒng)反應(yīng)更加流暢。
本文基于Flex技術(shù)以及相關(guān)的JAVA程序應(yīng)用,實(shí)現(xiàn)了針對(duì)工業(yè)工程項(xiàng)目中的能效檢測(cè)系統(tǒng),該系統(tǒng)具備的優(yōu)點(diǎn)在于,繼承了傳統(tǒng)基于HTML的web項(xiàng)目基本特點(diǎn),而且在夜壺界面以及信息交互上有著更好地體驗(yàn),能夠進(jìn)一步提高系統(tǒng)的性能。通過(guò)實(shí)際項(xiàng)目的開(kāi)發(fā),證明RIA技術(shù)是目前而言的web應(yīng)用程序的發(fā)展方向,有著極好的發(fā)展前景。在系統(tǒng)開(kāi)發(fā)完成之后,對(duì)本系統(tǒng)進(jìn)行了一定的測(cè)試,結(jié)果表明:本系統(tǒng)初步完成了用戶的需求,并且能夠?qū)I(yè)監(jiān)管提高效率,系統(tǒng)穩(wěn)定性強(qiáng),交互能力強(qiáng),效果顯著。
[1]趙中樞.基于Flex與BlazeDs在企業(yè)開(kāi)發(fā)中的應(yīng)用[J].福建電腦,2010,26(9).
[2]何媛.基于BlazeDs實(shí)現(xiàn)Flex和Java通訊[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2012(11).
Design and Implementation of Industrial Energy Efficiency Monitoring Management System Based on Flex and Java Technology
Liu Xiaolin1,Zheng Chenghe2,Zhang Jingjing1,Huang Shengliang2,Zhang Wei1,Chu Yuan1
(1.State Grid (Beijing) energy saving design & Research Institute Co., Ltd., Beijing, 100032;2.China Xintong billion technology limited liability company,Fujian Fuzhou, 350003)
This paper mainly discusses the Flex and Java based on RIA technology, in view of the current construction and development trend of industrial energy consumption, construction of industrial energy efficiency monitoring and management system, describes the system design process and how to use Blazeds integrated Flex and Java technology development of RIA enterprise application system.
Flex;Java;industrial energy consumption
劉曉琳(1989--)女,山東煙臺(tái)人,主要從事配電網(wǎng)設(shè)計(jì)及節(jié)能改造研究工作。
鄭成賀(1989--)男,福建寧德人,工程師,主要從事電力信息化建設(shè)研究工作。
張薇(1991--)女,山東菏澤人,主要從事工業(yè)節(jié)能技術(shù)研究與工程實(shí)施工作。
黃盛亮(1988--)男,福建福州人,工程師,主要從事電力信息化建設(shè)研究工作。
章晶晶(1990--)女,安徽滁州人,主要從事工程項(xiàng)目管理工作。
褚淵(1989--)男,山西長(zhǎng)治人,主要從事質(zhì)量評(píng)審與技術(shù)標(biāo)準(zhǔn)管理工作。