摘 要: 詳細(xì)介紹了基于Flex的電力營銷系統(tǒng),重點論述了系統(tǒng)的設(shè)計原理和實現(xiàn)方法?;贔lex的企業(yè)應(yīng)用具有邏輯清晰、代碼簡潔、擴(kuò)展性強(qiáng)、安全性高等特點,極大地減輕了開發(fā)人員編寫靜態(tài)頁面的壓力。提出了業(yè)務(wù)組件化、服務(wù)化、應(yīng)用分層的設(shè)計思想,為實現(xiàn)該領(lǐng)域內(nèi)信息標(biāo)準(zhǔn)化奠定了基礎(chǔ),具有一定的科研和應(yīng)用價值。
關(guān)鍵詞: Flex; WebService; FreeMarker;富客戶端;電力營銷
隨著信息化的高速發(fā)展,新時期的電力系統(tǒng)面臨著許多挑戰(zhàn),這就要求電力系統(tǒng)必須加快自身信息化的腳步。新時期信息化建設(shè)的重中之重是以客戶為中心,提高用戶的滿意度;同時要對關(guān)鍵指標(biāo)、工作質(zhì)量、服務(wù)水平實施全過程管控,防范經(jīng)營風(fēng)險,完善內(nèi)控機(jī)制,糾正工作偏差。
本文通過借助Flex技術(shù)極大地提高了客戶端體驗, 實現(xiàn)了電力系統(tǒng)的信息共享, 提供了多方位的查詢與統(tǒng)計功能, 很大程度上方便了數(shù)據(jù)的日常管理工作[1],提高了整個電力生產(chǎn)流程的規(guī)范化管理。
1 Flex技術(shù)簡介
Flex是一種支持RIA開發(fā)和部署的技術(shù),主要面向企業(yè)級的應(yīng)用。借助于Flex強(qiáng)大的功能,能夠開發(fā)出更富有交互性和標(biāo)簽的用戶界面。Flex框架的基本模型如圖1所示。
從圖1中可以看出,F(xiàn)lex應(yīng)用是由多層結(jié)構(gòu)組成的。Flex編譯器可以把MXML、ActionScript以及一些Flex類庫編譯成SWF文件,由FlashPlayer在客戶端執(zhí)行SWF文件,實現(xiàn)對應(yīng)用的訪問。在企業(yè)級應(yīng)用中,F(xiàn)lex可以將表示邏輯從業(yè)務(wù)邏輯中分離出來,控制器負(fù)責(zé)處理用戶交互邏輯, 服務(wù)器端業(yè)務(wù)邏輯控制器負(fù)責(zé)業(yè)務(wù)邏輯的處理[2]。
RIA(Rich Internet Application)是豐富互聯(lián)網(wǎng)應(yīng)用程序。RIA的目標(biāo)是將桌面程序的表現(xiàn)力與瀏覽器的程序方便、快捷地結(jié)合在一起。開發(fā)者可以在瀏覽器程序上部署C/S客戶端的程序,得到比傳統(tǒng)HTML更強(qiáng)大的表現(xiàn)力。
RIA有多樣的數(shù)據(jù)模型和豐富的界面元素兩個主要特點。RIA將部分原本需要在后臺程序處理的問題轉(zhuǎn)移到客戶端,同時提供了比HTML更豐富的界面表現(xiàn)元素,密集、響應(yīng)速度快和圖形豐富的頁面元素與數(shù)據(jù)模型結(jié)合在一起,為用戶提供更好的使用體驗[3]。
2 系統(tǒng)設(shè)計
系統(tǒng)設(shè)計主要分為數(shù)據(jù)庫設(shè)計和系統(tǒng)功能設(shè)計兩個部分。數(shù)據(jù)庫設(shè)計的核心是做到海量空間數(shù)據(jù)與屬性數(shù)據(jù)的無縫組織[4];功能模塊設(shè)計的關(guān)鍵是建立科學(xué)、高效、開放的電力營銷展示系統(tǒng), 以滿足電力部門日常管理的業(yè)務(wù)需求。
2.1 數(shù)據(jù)庫設(shè)計
本系統(tǒng)支持對用電歷史信息的查詢,支持對電量、電價、電費、線損等服務(wù)信息的查詢以及編輯、添加和刪除等操作??紤]到今后功能的擴(kuò)充,建議采用 Oracle 10g作為系統(tǒng)的數(shù)據(jù)庫,在物理部署上為獨立的數(shù)據(jù)庫[5]。
系統(tǒng)數(shù)據(jù)部署如圖2所示。
2.2 系統(tǒng)總體架構(gòu)
為了對現(xiàn)有營銷等相關(guān)業(yè)務(wù)的監(jiān)控,保證各單位按照相關(guān)要求提供滿意的服務(wù),系統(tǒng)利用Flex技術(shù)構(gòu)建了基于Internet的業(yè)務(wù)數(shù)據(jù)展示系統(tǒng)。
在整個系統(tǒng)中,表現(xiàn)層占據(jù)了至關(guān)重要的位置,因為它是直接面向最終用戶的。本系統(tǒng)通過采用Flex富客戶端的表現(xiàn)形式,致力于提升用戶交互體驗的感受。
在中間層,Web服務(wù)器層通過調(diào)用WebService響應(yīng)客戶請求,實現(xiàn)用戶登錄與管理、數(shù)據(jù)統(tǒng)計與展示以及日志記錄管理等功能。
數(shù)據(jù)層是由Oracle數(shù)據(jù)庫組織管理的數(shù)據(jù)。
系統(tǒng)總體架構(gòu)如圖3所示。
2.3 功能模塊設(shè)計
根據(jù)系統(tǒng)功能架構(gòu),功能性需求主要分為關(guān)鍵指標(biāo)展示、監(jiān)控管理、工作質(zhì)量評價、系統(tǒng)管理、數(shù)據(jù)集成及標(biāo)準(zhǔn)化五部分,如圖4所示。
2.3.1關(guān)鍵指標(biāo)展示功能
關(guān)鍵指標(biāo)展示包括電量指標(biāo)展示、電價指標(biāo)展示、電費指標(biāo)展示、線損指標(biāo)展示、服務(wù)指標(biāo)展示五部分。在關(guān)鍵指標(biāo)展示部分,主頁展示全省供電人口、供電范圍等基本信息以及相關(guān)主題關(guān)鍵的、匯總的指標(biāo),通過各維度的穿透鉆取功能向下鉆取得到次要的、細(xì)節(jié)的指標(biāo),系統(tǒng)主次分明,層次逐級展開。
2.3.2監(jiān)控管理功能
監(jiān)控管理包括主題監(jiān)控、綜合管理兩部分。主題監(jiān)控包括負(fù)荷電量監(jiān)控、線損管理監(jiān)控、抄核收監(jiān)控、客戶服務(wù)監(jiān)控、業(yè)擴(kuò)報裝監(jiān)控、用電檢查監(jiān)控、客戶停電監(jiān)控、計量管理監(jiān)控、信息數(shù)據(jù)監(jiān)控、營銷稽查監(jiān)控10個主題;綜合管理是對營銷監(jiān)控工作本身的管理,包括監(jiān)控人員在線情況、整改情況及信息發(fā)布等功能。
2.3.3 工作質(zhì)量評價功能
工作質(zhì)量評價是根據(jù)監(jiān)控結(jié)果對營銷與服務(wù)工作質(zhì)量進(jìn)行評價并生成評價報告。
2.3.4系統(tǒng)管理功能
系統(tǒng)管理主要是針對功能節(jié)點資源、用戶和權(quán)限進(jìn)行設(shè)計。主要內(nèi)容包括功能節(jié)點管理、用戶管理和權(quán)限管理三部分內(nèi)容[6],由于使用本系統(tǒng)的用戶不多,故而弱化角色管理模塊。
2.3.5 數(shù)據(jù)集成及標(biāo)準(zhǔn)化
數(shù)據(jù)集成及標(biāo)準(zhǔn)化是將數(shù)據(jù)從業(yè)務(wù)應(yīng)用數(shù)據(jù)庫中提取、轉(zhuǎn)換并加載到營銷數(shù)據(jù)中心,是實現(xiàn)數(shù)據(jù)中心的重要步驟。同時它還是實現(xiàn)將數(shù)據(jù)中心中的數(shù)據(jù)向數(shù)據(jù)倉庫、數(shù)據(jù)集市遷移的主要方式。
3 系統(tǒng)實現(xiàn)
3.1 系統(tǒng)關(guān)鍵技術(shù)
3.1.1 WebService的創(chuàng)建與調(diào)用
WebService是支持使用基于XML的標(biāo)準(zhǔn)(如SOAP、WSDL、UDDI和其他標(biāo)準(zhǔn))進(jìn)行B2B集成的一種全新范式。
WebService作為一種基本的數(shù)據(jù)通信方式,其最大優(yōu)點就是可以消除不同組件模型之間存在的差異,協(xié)同異構(gòu)系統(tǒng)為單個計算機(jī)網(wǎng)絡(luò)服務(wù)。
可以先在eclipse中創(chuàng)建并發(fā)布服務(wù),然后在Flex的應(yīng)用工程中調(diào)用此Web服務(wù)。通過Flex builder中自帶的WebService工具即可解析wsdl文檔,從而生成本地調(diào)用類,或者ActionScript中WebService類和<WebService>組件3種方法來實現(xiàn)服務(wù)的調(diào)用[7]。
此系統(tǒng)采用WebService類的方式,下面為首頁關(guān)鍵指標(biāo)展示功能中的一段調(diào)用WebService的代碼:
Protected function
application1_creationCompleteHandler(event:FlexEvent):void
{
ws=new WebService();
ws.wsdl=config.ws;
ws.loadWSDL();
ws.getMainPage.addEventListener(ResultEvent.
RESULT,data_resultHandler);
ws.getMainPage("mainPage");
private function
OnGetCity(event:ResultEvent ):void{
var xml:XML=new XML(event.result);
}
上面代碼中,首先使用語句:ws=new WebService();創(chuàng)建了一個WebService對象ws。然后通過語句:ws.wsdl=config.ws;/ws.loadWSDL();將配置文件config中的ws屬性值賦予ws對象,這是一個WebService的地址。這樣前臺Flex就已經(jīng)通過WebService連接上了后臺的服務(wù)方法。接下來使用語句:ws.getMainPage.addEventListener(ResultEvent.RESULT,data_resultHandler);/ws.getMainPage("mainPage");調(diào)用WebService的接口, 如果接口有返回值則監(jiān)聽結(jié)果。
3.1.2 FreeMarker模板引擎的使用
FreeMarker是一個模板引擎。它使用純 Java 編寫,是一個可用來生成基于模板的文本的工具。FreeMarker在生成頁面上面更有實效,尤其是那些遵從MVC模式的應(yīng)用程序[8]。
FreeMarker通過在模板中密封HTML,允許應(yīng)用程序的邏輯與圖形設(shè)計分離。模板用servlet提供的數(shù)據(jù)動態(tài)地生成 HTML,通常由Java程序準(zhǔn)備要顯示的數(shù)據(jù),由FreeMarker生成頁面,通過模板顯示準(zhǔn)備的數(shù)據(jù)。
下面為首頁模板的規(guī)則,模板是xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<page>
<area>
<item>
<content>
</content>
</item>
</area>
</page>
簡要解釋一下規(guī)則:<page>是最高級,區(qū)分系統(tǒng)的不同頁面;<area>區(qū)分不同的地區(qū)局頁面;<item>區(qū)分不同的系統(tǒng)服務(wù)內(nèi)容;<content>區(qū)分每種服務(wù)內(nèi)容里不同的項目。
下面為freemarker利用模板生成首頁頁面的代碼:
public String getMainPage(String params) {
try { freeMarkerConfigurer.getConfiguration().setObject
Wrapper(ObjectWrapper.BEANS_WRAPPER);
Template t =
freeMarkerConfigurer.getConfiguration().
getTemplate("temp-mainpage.xml");
Map<String, Object> root = new HashMap<String,
Object>();
}catch (Exception e) {
e.printStackTrace();
}
}
上面代碼中,temp-mainpage.xml即為首頁頁面的模板文件。通過使用代碼:Template t = freeMarkerConfigurer.getConfiguration().getTemplate("temp-mainpage.xml"); 加載模板文件。最后通過代碼:Map<String, Object> root = new HashMap<String, Object>();定義數(shù)據(jù)。
3.2 系統(tǒng)運行效果
通過采用Flex以及RIA富客戶端的技術(shù),本系統(tǒng)可以在瀏覽器端快速地輸出高質(zhì)量的電力信息展示畫面,用戶可以靈活、高效地查詢電力部門的數(shù)據(jù)信息,從而感受到豐富的交互體驗。
系統(tǒng)首頁的運行效果如圖5所示。
在數(shù)字信息化快速發(fā)展的今天,電力信息能否高效管理和利用極大地關(guān)系到電力行業(yè)的發(fā)展?;贔lex的電力營銷系統(tǒng)屬于先進(jìn)的電力行業(yè)管理系統(tǒng)的范疇, 它對電力部門日常工作有著實際意義。
參考文獻(xiàn)
[1] 周曦,武小軍.基于Flex的數(shù)字測繪檔案業(yè)務(wù)管理系統(tǒng)的設(shè)計與實現(xiàn)[J].城市勘測,2010(z1):28-30.
[2] 胡丹瑞.基于Flex的Web應(yīng)用系統(tǒng)開發(fā)探索[J].電信交換,2009(3):34-41.
[3] 王嘯.基于J2EE的財務(wù)核算系統(tǒng)的設(shè)計與實現(xiàn)[D].天津:南開大學(xué),2011.
[4] 柴敏, 范況生,張超,等. 基于GIS的數(shù)字農(nóng)業(yè)空間信息管理平臺設(shè)計與實現(xiàn)[J].農(nóng)業(yè)網(wǎng)絡(luò)信息, 2006(2):45-47.
[5] 曾皓.多語種軟件構(gòu)件庫的分類與檢索[D].北京:中國科學(xué)院研究生院,2008.
[6] 管仁煌.基于Web Services的電力計算信息平臺構(gòu)建方法的研究[D].北京:北方工業(yè)大學(xué),2008.
[7] 毛震.基于SOA和WebService的數(shù)字圖書館系統(tǒng)研究與應(yīng)用[D].沈陽:東北大學(xué),2009.
[8] 姜英,王嘉.基于Struts2+Spring+Freemarker的自定義框架研究[J].電腦編程技巧與維護(hù),2013(12):4-5,12.