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