《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > 基于Flex的電力營(yíng)銷(xiāo)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于Flex的電力營(yíng)銷(xiāo)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
來(lái)源:微型機(jī)與應(yīng)用2013年第22期
張亞明, 李秦偉
(貴州大學(xué) 計(jì)算機(jī)科學(xué)與信息學(xué)院,貴州 貴陽(yáng)550025)
摘要: 詳細(xì)介紹了基于Flex的電力營(yíng)銷(xiāo)系統(tǒng),重點(diǎn)論述了系統(tǒng)的設(shè)計(jì)原理和實(shí)現(xiàn)方法?;贔lex的企業(yè)應(yīng)用具有邏輯清晰、代碼簡(jiǎn)潔、擴(kuò)展性強(qiáng)、安全性高等特點(diǎn),極大地減輕了開(kāi)發(fā)人員編寫(xiě)靜態(tài)頁(yè)面的壓力。提出了業(yè)務(wù)組件化、服務(wù)化、應(yīng)用分層的設(shè)計(jì)思想,為實(shí)現(xiàn)該領(lǐng)域內(nèi)信息標(biāo)準(zhǔn)化奠定了基礎(chǔ),具有一定的科研和應(yīng)用價(jià)值。
Abstract:
Key words :

摘  要: 詳細(xì)介紹了基于Flex電力營(yíng)銷(xiāo)系統(tǒng),重點(diǎn)論述了系統(tǒng)的設(shè)計(jì)原理和實(shí)現(xiàn)方法。基于Flex的企業(yè)應(yīng)用具有邏輯清晰、代碼簡(jiǎn)潔、擴(kuò)展性強(qiáng)、安全性高等特點(diǎn),極大地減輕了開(kāi)發(fā)人員編寫(xiě)靜態(tài)頁(yè)面的壓力。提出了業(yè)務(wù)組件化、服務(wù)化、應(yīng)用分層的設(shè)計(jì)思想,為實(shí)現(xiàn)該領(lǐng)域內(nèi)信息標(biāo)準(zhǔn)化奠定了基礎(chǔ),具有一定的科研和應(yīng)用價(jià)值。
關(guān)鍵詞: Flex; WebServiceFreeMarker;富客戶(hù)端;電力營(yíng)銷(xiāo)

    隨著信息化的高速發(fā)展,新時(shí)期的電力系統(tǒng)面臨著許多挑戰(zhàn),這就要求電力系統(tǒng)必須加快自身信息化的腳步。新時(shí)期信息化建設(shè)的重中之重是以客戶(hù)為中心,提高用戶(hù)的滿(mǎn)意度;同時(shí)要對(duì)關(guān)鍵指標(biāo)、工作質(zhì)量、服務(wù)水平實(shí)施全過(guò)程管控,防范經(jīng)營(yíng)風(fēng)險(xiǎn),完善內(nèi)控機(jī)制,糾正工作偏差。
    本文通過(guò)借助Flex技術(shù)極大地提高了客戶(hù)端體驗(yàn), 實(shí)現(xiàn)了電力系統(tǒng)的信息共享, 提供了多方位的查詢(xún)與統(tǒng)計(jì)功能, 很大程度上方便了數(shù)據(jù)的日常管理工作[1],提高了整個(gè)電力生產(chǎn)流程的規(guī)范化管理。
1 Flex技術(shù)簡(jiǎn)介
    Flex是一種支持RIA開(kāi)發(fā)和部署的技術(shù),主要面向企業(yè)級(jí)的應(yīng)用。借助于Flex強(qiáng)大的功能,能夠開(kāi)發(fā)出更富有交互性和標(biāo)簽的用戶(hù)界面。Flex框架的基本模型如圖1所示。
 從圖1中可以看出,F(xiàn)lex應(yīng)用是由多層結(jié)構(gòu)組成的。Flex編譯器可以把MXML、ActionScript以及一些Flex類(lèi)庫(kù)編譯成SWF文件,由FlashPlayer在客戶(hù)端執(zhí)行SWF文件,實(shí)現(xiàn)對(duì)應(yīng)用的訪(fǎng)問(wèn)。在企業(yè)級(jí)應(yīng)用中,F(xiàn)lex可以將表示邏輯從業(yè)務(wù)邏輯中分離出來(lái),控制器負(fù)責(zé)處理用戶(hù)交互邏輯, 服務(wù)器端業(yè)務(wù)邏輯控制器負(fù)責(zé)業(yè)務(wù)邏輯的處理[2]。

    RIA(Rich Internet Application)是豐富互聯(lián)網(wǎng)應(yīng)用程序。RIA的目標(biāo)是將桌面程序的表現(xiàn)力與瀏覽器的程序方便、快捷地結(jié)合在一起。開(kāi)發(fā)者可以在瀏覽器程序上部署C/S客戶(hù)端的程序,得到比傳統(tǒng)HTML更強(qiáng)大的表現(xiàn)力。
    RIA有多樣的數(shù)據(jù)模型和豐富的界面元素兩個(gè)主要特點(diǎn)。RIA將部分原本需要在后臺(tái)程序處理的問(wèn)題轉(zhuǎn)移到客戶(hù)端,同時(shí)提供了比HTML更豐富的界面表現(xiàn)元素,密集、響應(yīng)速度快和圖形豐富的頁(yè)面元素與數(shù)據(jù)模型結(jié)合在一起,為用戶(hù)提供更好的使用體驗(yàn)[3]。
2 系統(tǒng)設(shè)計(jì)
 系統(tǒng)設(shè)計(jì)主要分為數(shù)據(jù)庫(kù)設(shè)計(jì)和系統(tǒng)功能設(shè)計(jì)兩個(gè)部分。數(shù)據(jù)庫(kù)設(shè)計(jì)的核心是做到海量空間數(shù)據(jù)與屬性數(shù)據(jù)的無(wú)縫組織[4];功能模塊設(shè)計(jì)的關(guān)鍵是建立科學(xué)、高效、開(kāi)放的電力營(yíng)銷(xiāo)展示系統(tǒng), 以滿(mǎn)足電力部門(mén)日常管理的業(yè)務(wù)需求。
2.1 數(shù)據(jù)庫(kù)設(shè)計(jì)
    本系統(tǒng)支持對(duì)用電歷史信息的查詢(xún),支持對(duì)電量、電價(jià)、電費(fèi)、線(xiàn)損等服務(wù)信息的查詢(xún)以及編輯、添加和刪除等操作。考慮到今后功能的擴(kuò)充,建議采用 Oracle 10g作為系統(tǒng)的數(shù)據(jù)庫(kù),在物理部署上為獨(dú)立的數(shù)據(jù)庫(kù)[5]。
    系統(tǒng)數(shù)據(jù)部署如圖2所示。

2.2 系統(tǒng)總體架構(gòu)
    為了對(duì)現(xiàn)有營(yíng)銷(xiāo)等相關(guān)業(yè)務(wù)的監(jiān)控,保證各單位按照相關(guān)要求提供滿(mǎn)意的服務(wù),系統(tǒng)利用Flex技術(shù)構(gòu)建了基于Internet的業(yè)務(wù)數(shù)據(jù)展示系統(tǒng)。
    在整個(gè)系統(tǒng)中,表現(xiàn)層占據(jù)了至關(guān)重要的位置,因?yàn)樗侵苯用嫦蜃罱K用戶(hù)的。本系統(tǒng)通過(guò)采用Flex富客戶(hù)端的表現(xiàn)形式,致力于提升用戶(hù)交互體驗(yàn)的感受。
    在中間層,Web服務(wù)器層通過(guò)調(diào)用WebService響應(yīng)客戶(hù)請(qǐng)求,實(shí)現(xiàn)用戶(hù)登錄與管理、數(shù)據(jù)統(tǒng)計(jì)與展示以及日志記錄管理等功能。
    數(shù)據(jù)層是由Oracle數(shù)據(jù)庫(kù)組織管理的數(shù)據(jù)。
    系統(tǒng)總體架構(gòu)如圖3所示。

2.3 功能模塊設(shè)計(jì)
 根據(jù)系統(tǒng)功能架構(gòu),功能性需求主要分為關(guān)鍵指標(biāo)展示、監(jiān)控管理、工作質(zhì)量評(píng)價(jià)、系統(tǒng)管理、數(shù)據(jù)集成及標(biāo)準(zhǔn)化五部分,如圖4所示。

2.3.1關(guān)鍵指標(biāo)展示功能
    關(guān)鍵指標(biāo)展示包括電量指標(biāo)展示、電價(jià)指標(biāo)展示、電費(fèi)指標(biāo)展示、線(xiàn)損指標(biāo)展示、服務(wù)指標(biāo)展示五部分。在關(guān)鍵指標(biāo)展示部分,主頁(yè)展示全省供電人口、供電范圍等基本信息以及相關(guān)主題關(guān)鍵的、匯總的指標(biāo),通過(guò)各維度的穿透鉆取功能向下鉆取得到次要的、細(xì)節(jié)的指標(biāo),系統(tǒng)主次分明,層次逐級(jí)展開(kāi)。
2.3.2監(jiān)控管理功能
 監(jiān)控管理包括主題監(jiān)控、綜合管理兩部分。主題監(jiān)控包括負(fù)荷電量監(jiān)控、線(xiàn)損管理監(jiān)控、抄核收監(jiān)控、客戶(hù)服務(wù)監(jiān)控、業(yè)擴(kuò)報(bào)裝監(jiān)控、用電檢查監(jiān)控、客戶(hù)停電監(jiān)控、計(jì)量管理監(jiān)控、信息數(shù)據(jù)監(jiān)控、營(yíng)銷(xiāo)稽查監(jiān)控10個(gè)主題;綜合管理是對(duì)營(yíng)銷(xiāo)監(jiān)控工作本身的管理,包括監(jiān)控人員在線(xiàn)情況、整改情況及信息發(fā)布等功能。
2.3.3 工作質(zhì)量評(píng)價(jià)功能
    工作質(zhì)量評(píng)價(jià)是根據(jù)監(jiān)控結(jié)果對(duì)營(yíng)銷(xiāo)與服務(wù)工作質(zhì)量進(jìn)行評(píng)價(jià)并生成評(píng)價(jià)報(bào)告。
2.3.4系統(tǒng)管理功能
   系統(tǒng)管理主要是針對(duì)功能節(jié)點(diǎn)資源、用戶(hù)和權(quán)限進(jìn)行設(shè)計(jì)。主要內(nèi)容包括功能節(jié)點(diǎn)管理、用戶(hù)管理和權(quán)限管理三部分內(nèi)容[6],由于使用本系統(tǒng)的用戶(hù)不多,故而弱化角色管理模塊。
2.3.5 數(shù)據(jù)集成及標(biāo)準(zhǔn)化
    數(shù)據(jù)集成及標(biāo)準(zhǔn)化是將數(shù)據(jù)從業(yè)務(wù)應(yīng)用數(shù)據(jù)庫(kù)中提取、轉(zhuǎn)換并加載到營(yíng)銷(xiāo)數(shù)據(jù)中心,是實(shí)現(xiàn)數(shù)據(jù)中心的重要步驟。同時(shí)它還是實(shí)現(xiàn)將數(shù)據(jù)中心中的數(shù)據(jù)向數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)集市遷移的主要方式。
3 系統(tǒng)實(shí)現(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)點(diǎn)就是可以消除不同組件模型之間存在的差異,協(xié)同異構(gòu)系統(tǒng)為單個(gè)計(jì)算機(jī)網(wǎng)絡(luò)服務(wù)。
 可以先在eclipse中創(chuàng)建并發(fā)布服務(wù),然后在Flex的應(yīng)用工程中調(diào)用此Web服務(wù)。通過(guò)Flex builder中自帶的WebService工具即可解析wsdl文檔,從而生成本地調(diào)用類(lèi),或者ActionScript中WebService類(lèi)和<WebService>組件3種方法來(lái)實(shí)現(xiàn)服務(wù)的調(diào)用[7]。
    此系統(tǒng)采用WebService類(lèi)的方式,下面為首頁(yè)關(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);
     }
    上面代碼中,首先使用語(yǔ)句:ws=new WebService();創(chuàng)建了一個(gè)WebService對(duì)象ws。然后通過(guò)語(yǔ)句:ws.wsdl=config.ws;/ws.loadWSDL();將配置文件config中的ws屬性值賦予ws對(duì)象,這是一個(gè)WebService的地址。這樣前臺(tái)Flex就已經(jīng)通過(guò)WebService連接上了后臺(tái)的服務(wù)方法。接下來(lái)使用語(yǔ)句:ws.getMainPage.addEventListener(ResultEvent.RESULT,data_resultHandler);/ws.getMainPage("mainPage");調(diào)用WebService的接口, 如果接口有返回值則監(jiān)聽(tīng)結(jié)果。
3.1.2  FreeMarker模板引擎的使用
    FreeMarker是一個(gè)模板引擎。它使用純 Java 編寫(xiě),是一個(gè)可用來(lái)生成基于模板的文本的工具。FreeMarker在生成頁(yè)面上面更有實(shí)效,尤其是那些遵從MVC模式的應(yīng)用程序[8]。
    FreeMarker通過(guò)在模板中密封HTML,允許應(yīng)用程序的邏輯與圖形設(shè)計(jì)分離。模板用servlet提供的數(shù)據(jù)動(dòng)態(tài)地生成 HTML,通常由Java程序準(zhǔn)備要顯示的數(shù)據(jù),由FreeMarker生成頁(yè)面,通過(guò)模板顯示準(zhǔn)備的數(shù)據(jù)。
    下面為首頁(yè)模板的規(guī)則,模板是xml文件:
  <?xml version="1.0" encoding="UTF-8"?>
  <page>
    <area>
      <item>
        <content>
        </content>
      </item>
    </area>
  </page>
  簡(jiǎn)要解釋一下規(guī)則:<page>是最高級(jí),區(qū)分系統(tǒng)的不同頁(yè)面;<area>區(qū)分不同的地區(qū)局頁(yè)面;<item>區(qū)分不同的系統(tǒng)服務(wù)內(nèi)容;<content>區(qū)分每種服務(wù)內(nèi)容里不同的項(xiàng)目。
     下面為freemarker利用模板生成首頁(yè)頁(yè)面的代碼:
     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即為首頁(yè)頁(yè)面的模板文件。通過(guò)使用代碼:Template t = freeMarkerConfigurer.getConfiguration().getTemplate("temp-mainpage.xml");    加載模板文件。最后通過(guò)代碼:Map<String, Object> root = new HashMap<String, Object>();定義數(shù)據(jù)。
3.2 系統(tǒng)運(yùn)行效果
    通過(guò)采用Flex以及RIA富客戶(hù)端的技術(shù),本系統(tǒng)可以在瀏覽器端快速地輸出高質(zhì)量的電力信息展示畫(huà)面,用戶(hù)可以靈活、高效地查詢(xún)電力部門(mén)的數(shù)據(jù)信息,從而感受到豐富的交互體驗(yàn)。
    系統(tǒng)首頁(yè)的運(yùn)行效果如圖5所示。

 

 

    在數(shù)字信息化快速發(fā)展的今天,電力信息能否高效管理和利用極大地關(guān)系到電力行業(yè)的發(fā)展?;贔lex的電力營(yíng)銷(xiāo)系統(tǒng)屬于先進(jìn)的電力行業(yè)管理系統(tǒng)的范疇, 它對(duì)電力部門(mén)日常工作有著實(shí)際意義。
參考文獻(xiàn)
[1] 周曦,武小軍.基于Flex的數(shù)字測(cè)繪檔案業(yè)務(wù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].城市勘測(cè),2010(z1):28-30.
[2] 胡丹瑞.基于Flex的Web應(yīng)用系統(tǒng)開(kāi)發(fā)探索[J].電信交換,2009(3):34-41.
[3] 王嘯.基于J2EE的財(cái)務(wù)核算系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].天津:南開(kāi)大學(xué),2011.
[4] 柴敏, 范況生,張超,等. 基于GIS的數(shù)字農(nóng)業(yè)空間信息管理平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].農(nóng)業(yè)網(wǎng)絡(luò)信息, 2006(2):45-47.
[5] 曾皓.多語(yǔ)種軟件構(gòu)件庫(kù)的分類(lèi)與檢索[D].北京:中國(guó)科學(xué)院研究生院,2008.
[6] 管仁煌.基于Web Services的電力計(jì)算信息平臺(tái)構(gòu)建方法的研究[D].北京:北方工業(yè)大學(xué),2008.
[7] 毛震.基于SOA和WebService的數(shù)字圖書(shū)館系統(tǒng)研究與應(yīng)用[D].沈陽(yáng):東北大學(xué),2009.
[8] 姜英,王嘉.基于Struts2+Spring+Freemarker的自定義框架研究[J].電腦編程技巧與維護(hù),2013(12):4-5,12.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。