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