劉曉琳,鄭成賀,章晶晶,黃盛亮,張 薇,褚 淵
(1.國網(北京)節能設計研究院有限公司,北京,100032;2.國網信通億力科技有限責任公司,福建福州,350003)
基于Flex和Java技術的工業能效監測管理系統設計與實現
劉曉琳1,鄭成賀2,章晶晶1,黃盛亮2,張 薇1,褚 淵1
(1.國網(北京)節能設計研究院有限公司,北京,100032;2.國網信通億力科技有限責任公司,福建福州,350003)
本文主要對基于Flex和Java的RIA技術進行探討,針對當前工業能耗的建設和發展趨勢,構建工業能效監測管理系統,闡述了本系統的設計過程和如何運用Blazeds集成Flex和Java技術開發RIA的企業級應用系統。
Flex;Java;工業能耗
本文論述的基于Flex和Java框架技術的工業能效監測管理系統,主要實現對各種能源介質進行集中監控、統一調度;通過監控臺對各類供能用能環節進行監控管理;提供能源調度高級決策支持信息等。集動力能源監控、調度和信息管理于一體,保證能源可以科學合理地調度,從而達到提高利用率的效果。對系統的開發設計過程做了全面的介紹,比如如何使用Blazeds集成Flex和Java技術開發一個基于RIA的企業級應用,達到節約能源、提高利用率、實現信息共享的效果。
1.1 RIA技術分析
所謂RIA,又叫作富網絡應用,是一種網絡應用,可以像桌面程序一樣操作。而在RIA問世前,許多網絡應用的構建,都使用了靜態頁面。
RIA通過網絡發布,對于用戶來說,功能十分強大。而Ajax技術使RIA進入了新的使用時代,不用刷新,就可以將用戶請求發送給服務器。軟件開發人員正是運用這些技術來構建系統框架,設計出相應的應用程序,如微軟Silverlight、JavaScript庫、AdobeFlash4、ICEfaces,以及HTML5等。其中AdobeFlashBuilder4兼容性和實用性是最強的,它可以跨平臺運行,用可安裝于任何瀏覽器之中。在所有的瀏覽器和操作系統上都可以完美地地運行。瀏覽器擁有不同的處理代碼和引擎管理和處理的代碼,可以對JavaScript進行管理,而Adobe的Flash引擎僅有一個,用戶只有使用AdobeFlash瀏覽器插件才能進行安裝使用。AdobeFlashPlayer作為一種功能強大的架構,能滿足軟件設計和運行,并可進行RIA的創建,為用戶提供直觀的在線體驗。
1.2 Flex前端UI設計技術
Flex技術采用的是可視化的開發方式,這種技術是基于一種XML語言的衍生版本MXML來實現的。Flex技術中有著多種組件,通過對這些組件進行使用能夠實現web應用等一些程序,包含的內容有:WebServervice、列表中的字段排序,圖標形式的數據統計等功能。在Flex中內建有許多種動畫效果,可以對這些動畫效果進行靈活的運用,實現一個美觀間接地人機交互界面。Flex技術,和一些傳統基于HTML語言的一些應用架構,如PHP、JSP、ASP等,有著許多模板,在進行頁面的postback過程中,可以對這些模板進行調用,實現一次載入。使用這一方式,Flex應用的工作流程被大大簡化,并且就Flex文件結構來看,也是一種代碼與頁面設計相分開的模式。
1.3 Blazeds集成Flex和Java
針對Java技術開發的服務器端應用,一般通過集成Blazeds,再充分利用AMF協議并能輕易與Flex技術開發之下的前段應用進行數據信息的交互。
BlazeDS本質上是一種運行于系統服務器的一種java遠程調用,承擔著web信息傳遞的技術,在這兩部分中,包含了對于AMF以JAVA形式進行實現的部分,通過這樣一種情結構,能夠方便地來對遠程服務器端上的一些JAVA對象進行數據交互,并且同時也依靠著一技術能夠實現在客戶端之間的信息交流。BlazeDS遠程調用技術,通過對POJO,spring等服務進行使用,BlazeDS的作用近似等于JAVA程序中的RMI,通過對BlazeDS的配置,能夠為Flex應用程序提供相應的JAVA接口程序類,對JAVA方式進行調用。
在一個完整的BlazeDS應用架構中,一般包含著兩個方面的內容:前段由客戶端程序組成,后臺則有J2EE程序組成。圖1中所示為其架構示意圖。

圖1 BlazeDs架構
在J2EE中對BlazeDS進行使用,需要進行一些預處理操作,具體的操作內容有以下幾個步驟。
(1)復制BlazeDS對應的jar文件包,復制在WEB-INF/lib目錄之下。
(2)對 WEB-INF/flex目 錄 BlazeDS的config文件進行修改配置。
(3)在WEB-INF/web.xml文 件對BlazeDS相關組件進行定義,主要 包 括MessageBrokerServlet與sessionlistener。

圖2 系統功能層級圖
2.1 系統運行環境
開發平臺:JDK1.6、AdobeFlexBui lder4、MyEclipse6.5、Tomcat7.0、Oracle數據庫。
發 布 平 臺:JDK1.6、Windows2008 Server、Oracle數據庫。
客戶端:需要安裝FlashPlayer插件,瀏覽器可以是IE6,火狐,谷歌等常用主流瀏覽器。
2.2 具體要求
(1)以統一的技術平臺進行構建,確保工業能效監測管理系統框架底層和功能設計方面進行統一。
(2)為了使總體架構能適應將來的工業能效監測管理系統,在設計時必須堅持以下幾種原則:靈活性、可擴展性、先進性。
(3)針對工業節能子系統,實現對各種能源介質(水、電、煤、油、氣等)進行集中監控;對于能源的供應環節,如水廠、供配電、電站,一定要通過監控臺做重點管理,保證能源能科學地調度,最大限度得到利用,也使工業生產中對于能源的分配利用實現了最優化,使工業生產能穩定有序,實現效益的最大化,從而真正實現能源利用的最佳使用。
(4)采用目前最常見的B/S架構模式,“一級部署,多級應用”是該系統最大的特點,而對于用戶來說,想要對系統進行訪問和登錄,只要通過瀏覽器就可以,而想要升級,只能通過服務器端。
2.3 系統功能架構設計
鑒于BlazeDS基于服務器端的應用程序這一特點,通過對實際情況進行考察,所得出系統功能應用圖層如下圖2所示。
3.1 系統總體架構
依托國網節能公司能源服務運營管理系統,工業能效監測管理系統監測工業企業能耗數據,并將工業能耗數據上傳至能源運維管理服務器中。下圖3所示為本系統的整體架構。
3.2 功能架構設計詳情
為了使系統更接近“高內聚,低耦合”的目標,也為了更方便地完成 開發、維護,增強擴展性,本文將系統分為表示層、業務邏輯層和持久層三層架構。

圖3 系統總體架構圖
(1)三層架構之用戶表現層:在這一層中,主要負責一些交互界面的設計開發,能夠對用戶的輸入輸出進行相應,本層主要采用的技術是Flex,使用MXML語言進行編寫,能夠使得界面變得美觀易用,并且通過ActionScript腳本語言對一些處于表現層的客戶端邏輯進行表現,同時需要對一些第三方組件進行應用,提高整體開發效率,并且在客戶易用性上得到一定的保障。
(2)三層架構之業務層:在這一層中,主要是對用戶表現層中所接受到的數據信息等進行業務上的處理,并且還承擔著對數據層進行一些數據調用的作用。在這一層中,又可以分成控制層和服務層,控制層負責對用戶在表現層進行的操作進行響應,并且對這些操作進行分類,將其通過服務層傳遞給數據層,從中取出想要的數據進行使用。本系統中,將采用基于JAVA的一種框架技術Spring來進行設計開發,其中將數據層進行注入到系統的業務服務層種,通過控制層對其進行調用后,將所得結果進行一系列的處理,最終使用面向切面程序編程AOP技術來對業務層中的各項程序進行分層。
(3)三層架構之數據層:本層主要是對數據庫的一些操作進行封裝,是一種與數據庫進行信息交互的邏輯處理層,在本系統中,將使用Ibatis技術來及西寧實現,通過SQL語言進行使用,完成POJO與SQL之間的映射關系設計,具有很強的靈活性。
3.3 系統通信框架
本系統將通過使用BlazeDs作為Flex與Java通信的基礎框架,下面就以本系統中對設備信息進行獲取為例進行簡單的說明,主要步驟有:
(1)編寫JAVA服務,將服務中所定義的函數方法類型設定為public。
(2)在services—config.xml中注冊SpringFacotry,配置如下:
(3)在remoting的配置文件中對destination屬性進行定義,并且屬性每一項的具體值必須與服務器終端的一些屬性進行對應,這樣就可以通過factory與soruce來把BlazeDs與Spring技術進行結合:
(4)對Remote對象進行實例化,并且將其對象中的result與fault屬性進行注冊定義,將其設計成為事件處理的偵聽器,通過設計方法內容,通過這兩個值對異常和返回進行響應。
處理返回響應的方法:
/**
*獲取設備列表的回調
**/
privatefunctiongetAssetsResult(event:ResultEvent):v oid{
vardevice:Device=event.resultasDevice;
在上述代碼中,Device變量為AS3類下的實例對象,通過[RemoteClass(alias="com.ylkj.pcsip.device.bo.Device")]進行映射到Java端的Device對象,event.result將會進行自動轉化成為 AS3對象。
(5)ActionScript腳本文件中對JAVA遠程方法進行使用,并且將一些參數進行傳遞,如deviceRO.getDeviceById(id);
這里getDeviceById對應DeviceBean類中的getDevice ById方法,使用了異步調用方式,這樣處理使得,前臺的一些操作請求不會對后臺的線程進行阻礙,使得系統反應更加流暢。
本文基于Flex技術以及相關的JAVA程序應用,實現了針對工業工程項目中的能效檢測系統,該系統具備的優點在于,繼承了傳統基于HTML的web項目基本特點,而且在夜壺界面以及信息交互上有著更好地體驗,能夠進一步提高系統的性能。通過實際項目的開發,證明RIA技術是目前而言的web應用程序的發展方向,有著極好的發展前景。在系統開發完成之后,對本系統進行了一定的測試,結果表明:本系統初步完成了用戶的需求,并且能夠對工業監管提高效率,系統穩定性強,交互能力強,效果顯著。
[1]趙中樞.基于Flex與BlazeDs在企業開發中的應用[J].福建電腦,2010,26(9).
[2]何媛.基于BlazeDs實現Flex和Java通訊[J].計算機光盤軟件與應用,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--)女,山東煙臺人,主要從事配電網設計及節能改造研究工作。
鄭成賀(1989--)男,福建寧德人,工程師,主要從事電力信息化建設研究工作。
張薇(1991--)女,山東菏澤人,主要從事工業節能技術研究與工程實施工作。
黃盛亮(1988--)男,福建福州人,工程師,主要從事電力信息化建設研究工作。
章晶晶(1990--)女,安徽滁州人,主要從事工程項目管理工作。
褚淵(1989--)男,山西長治人,主要從事質量評審與技術標準管理工作。