国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Ext和SSH開發(fā)架構(gòu)的電力生產(chǎn)信息系統(tǒng)的研究與應(yīng)用

2014-11-20 03:08:08田建偉黎曦劉瀟瀟漆文輝
湖南電力 2014年1期
關(guān)鍵詞:客戶端信息系統(tǒng)架構(gòu)

田建偉,黎曦,劉瀟瀟,漆文輝

(國網(wǎng)湖南省電力公司電力科學(xué)研究院,湖南長沙410007)

隨著信息系統(tǒng)開發(fā)技術(shù)的快速發(fā)展,尤其是J2EE等主流框架和Ext等富客戶端技術(shù)的日益成熟〔1〕,如何利用先進(jìn)的信息化手段提升企業(yè)業(yè)務(wù)系統(tǒng)的用戶體驗成為備受關(guān)注的問題。電力生產(chǎn)信息系統(tǒng)作為電力企業(yè)工作任務(wù)和業(yè)務(wù)數(shù)據(jù)的管理平臺,其數(shù)據(jù)源種類多,數(shù)據(jù)量龐大,數(shù)據(jù)結(jié)構(gòu)多樣化。要做到業(yè)務(wù)的快速處理和數(shù)據(jù)的有效管理,對系統(tǒng)的體系結(jié)構(gòu)和用戶交互界面都提出了很高的要求,傳統(tǒng)的基于數(shù)據(jù)和展示的2層體系結(jié)構(gòu)已經(jīng)不能滿足現(xiàn)代電力企業(yè)生產(chǎn)信息系統(tǒng)的需要〔2〕。

結(jié)合國網(wǎng)湖南省電力公司電力科學(xué)研究院生產(chǎn)信息系統(tǒng)建設(shè)的實際,在基于 Struts,Spring和Hibernate開源J2EE框架的基礎(chǔ)上,充分利用Ext富客戶端技術(shù)〔3〕,構(gòu)建一個高效復(fù)用的電力生產(chǎn)系信息系統(tǒng)。該系統(tǒng)以技術(shù)監(jiān)督工作為導(dǎo)向,以智能化工作流為目標(biāo),實現(xiàn)生產(chǎn)信息的及時發(fā)布;實現(xiàn)各項年度計劃的填寫、審批、與生產(chǎn)動態(tài)的在線聯(lián)動以及計劃偏差考核;實現(xiàn)各類重點、創(chuàng)新項目等的填報、審批及在線管理;科研項目的在線管理;實現(xiàn)貫標(biāo)體系以及人資培訓(xùn)在線管理;技術(shù)報告和技術(shù)監(jiān)督文檔的在線管理;實現(xiàn)大修技改及物資采購的在線管理;實現(xiàn)員工生產(chǎn)活動的績效統(tǒng)計考核。本系統(tǒng)操作簡便快捷,操作提示到位。各項工作信息豐富,統(tǒng)計查詢功能完善,工作量化數(shù)據(jù)表展示全面,趨勢變化圖表準(zhǔn)確美觀。

1 J2EE和Ext框架介紹

J2EE(Java 2 Platform,Enterprise Edition)是SUN公司定義的一組開發(fā)企業(yè)級應(yīng)用的技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次。目前在J2EE框架的基礎(chǔ)上已開發(fā)出了很多開源的框架,基于這些成熟框架開發(fā)應(yīng)用系統(tǒng)可大大減輕開發(fā)人員的負(fù)擔(dān)??紤]到電力企業(yè)生產(chǎn)信息系統(tǒng)的用戶多、數(shù)據(jù)量大、分布點寬、數(shù)據(jù)結(jié)構(gòu)各異,以及存在個性化需求等特點,在構(gòu)建系統(tǒng)時,用戶的請求處理、頁面的表現(xiàn)形式、業(yè)務(wù)的邏輯處理以及數(shù)據(jù)的持久化都是必須考慮到的因數(shù)?;诖耍x擇使用最為廣泛框架的 Struts+Sping+Hibernate的J2EE框架作為開發(fā)平臺,構(gòu)建一個具有可擴(kuò)展性和健壯性的電力生產(chǎn)信息系統(tǒng),同時與Ext框架結(jié)合,滿足用戶個性化操作需求,提高界面使用體驗。

1.1 基于SSH的Web系統(tǒng)開發(fā)框架介紹

SSH是Struts+Spring+Hibernate的一個集成框架,從邏輯上分為表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層,如圖1所示。其中表示層中的Struts作為系統(tǒng)的整體基礎(chǔ)架構(gòu),提供模型-視圖-控制器框架(Model-View-Control,MVC),控制業(yè)務(wù)的跳轉(zhuǎn),可將程序的輸入、處理和輸出分開,有利于模塊化的開發(fā)。業(yè)務(wù)層中的Spring是一個為了解決企業(yè)級應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的應(yīng)用框架。Spring框架中使用最為廣泛的功能是其反轉(zhuǎn)機(jī)制,通過該機(jī)制將創(chuàng)建對象的任務(wù)用容器來實現(xiàn),即在運(yùn)行期間將對象的依賴關(guān)系注入到組件之中,使得應(yīng)用代碼可直接使用實例。通過控制反轉(zhuǎn)機(jī)制可降低組件之間的耦合性,有利于代碼的開發(fā)和測試。持久層中的Hibernate是一種對象持久層輕量級封裝框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,將數(shù)據(jù)庫表通過配置文件映射成對象。程序開發(fā)人員可以使用面向?qū)ο蟮乃枷雭聿僮鲾?shù)據(jù)庫資源,可以不關(guān)心數(shù)據(jù)庫的具體結(jié)構(gòu)和邏輯,完全使用面向?qū)ο蟮姆椒▉斫?yīng)用開發(fā)的數(shù)據(jù)庫模型。

圖1 基于SSH的Web系統(tǒng)開發(fā)框架

集成SSH框架的方法是將Struts架構(gòu)作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負(fù)責(zé)MVC的分離,控制業(yè)務(wù)跳轉(zhuǎn)。而在MVC的模型部分則利用Hibernate框架提供持久層支持,業(yè)務(wù)層用 Spring做管理,管理Struts和Hibernate。具體集成方法是:根據(jù)業(yè)務(wù)需求,使用面向?qū)ο蟮姆治龇椒ㄌ岢鰳I(yè)務(wù)模型,將模型實現(xiàn)為基本的Java對象,然后利用Hibernate編寫每個Java類對應(yīng)的DAO接口和DAO實現(xiàn),通過Hibernate的DAO類來實現(xiàn)Java類與數(shù)據(jù)庫表之間的轉(zhuǎn)換和訪問,最后由Spring管理struts和hibernate。

1.2 基于Ext的富客戶端技術(shù)

Ext是一個開源的Javascript富客戶端應(yīng)用程序框架,提供可定制用戶界面的控件,擁有可擴(kuò)展的組件模型。Ext同時包含應(yīng)用程序接口,交換格式采用靈活的JSON和XML,可大量減輕服務(wù)端的負(fù)擔(dān)。

Ext作為客戶端技術(shù)在程序開發(fā)過程中主要使用到 application,controller,viewport,view,store,model和data七大類,其邏輯關(guān)系如圖2所示。

圖2 Ext類邏輯關(guān)系圖

Application是應(yīng)用程序模塊的入口,用來告訴Ext到哪里去找對應(yīng)Controller與View等Javascript文件。Controller是用來處理業(yè)務(wù)邏輯的類,即View上的所觸發(fā)事件和操作都可在Controller中實現(xiàn),同時它也將對應(yīng)的View,Store以及Model關(guān)聯(lián)起來。Model和Store是模型數(shù)據(jù)類,主要是給View類提供數(shù)據(jù),其中Model與Hibernate框架中的java對象相對應(yīng),定義界面的數(shù)據(jù)模型;Store用于緩存從Struts返回的界面數(shù)據(jù)。View主要負(fù)責(zé)頁面展示,包含Grid,F(xiàn)orm和Panel等各種UI組件。

在電力生產(chǎn)信息系統(tǒng)中使用JSON機(jī)制,即客戶端接收來自服務(wù)器端的數(shù)據(jù)的格式要求是JSON格式。實現(xiàn)JSON數(shù)據(jù)緩存機(jī)制,首先需要定義客戶端數(shù)據(jù)對象,即客戶端Model對象的定義需要與服務(wù)器端的Hibernate數(shù)據(jù)對象一一對應(yīng)。其次建立數(shù)據(jù)解析器,其作用就是從JSON數(shù)據(jù)中解析出其中的數(shù)據(jù)對象實例。最后建立數(shù)據(jù)存儲器Store對象,存儲解析生成的數(shù)據(jù)對象。當(dāng)用戶發(fā)出數(shù)據(jù)請求時,客戶端首先查詢本地Store,如果Store中有對應(yīng)的數(shù)據(jù),則直接從Store中取得數(shù)據(jù),否則就發(fā)起與服務(wù)器端的數(shù)據(jù)請求,從服務(wù)器端取得對應(yīng)的數(shù)據(jù)。

1.3 基于Ext和SSH集成架構(gòu)的Web信息系統(tǒng)開發(fā)框架研究

Ext+SSH集成架構(gòu)保留了Spring+Hibemate的組合,從表示層、控制層和業(yè)務(wù)邏輯層入手,使用Ext實現(xiàn)Struts框架中的頁面表示和頁面跳轉(zhuǎn),架構(gòu)整合的基本原理如圖3所示。

圖3 Ext+SSH集成架構(gòu)基本原理

在表現(xiàn)層Ext提供Form,Panel,Grid等各種UI組件,提高程序員的開發(fā)效率。Ext還負(fù)責(zé)管理界面上的各種操作事件,同時做出相應(yīng)的響應(yīng),實現(xiàn)用戶業(yè)務(wù)邏輯的控制。Ext將表現(xiàn)層數(shù)據(jù)封裝為JSON數(shù)據(jù)格式,以Ajax的方式發(fā)送給業(yè)務(wù)層,并將返回的JSON數(shù)據(jù)解析后顯示給用戶。

在業(yè)務(wù)層Spring提供業(yè)務(wù)的邏輯處理,在表現(xiàn)層和持久層之間起到承上啟下的作用,將界面的負(fù)責(zé)邏輯和數(shù)據(jù)通過各種處理方法整合為持久層能夠接受的單一邏輯。同時Spring提供的注入機(jī)制可實現(xiàn)邏輯對象的自動關(guān)聯(lián),減輕程序員的代碼負(fù)擔(dān),提高應(yīng)用程序的模塊化程度。

在數(shù)據(jù)持久層Hibernate實現(xiàn)數(shù)據(jù)庫表到j(luò)ava類的映射,提供模塊化的數(shù)據(jù)操作方法,簡化數(shù)據(jù)庫事務(wù)管理。

2 電力生產(chǎn)信息系統(tǒng)的設(shè)計與實現(xiàn)

2.1 系統(tǒng)功能分析和數(shù)據(jù)邏輯設(shè)計

如圖4所示,電力生產(chǎn)信息系統(tǒng)包括生產(chǎn)計劃、生產(chǎn)動態(tài)、科研培訓(xùn)、項目管理、大修技改、技術(shù)監(jiān)督、技術(shù)報告、業(yè)績考核、設(shè)備采購、設(shè)備采購、質(zhì)量體系管理、綜合管理、通知發(fā)布、短信業(yè)務(wù)和系統(tǒng)配置15個功能模塊。系統(tǒng)的業(yè)務(wù)從生產(chǎn)計劃發(fā)起,經(jīng)過生產(chǎn)動態(tài)轉(zhuǎn)化為生產(chǎn)項目,并在項目的實施過程中編制技術(shù)報告和技術(shù)監(jiān)督文檔,經(jīng)過大修技改和物資采購模塊管理生產(chǎn)項目所需要購置的設(shè)備和材料,同時系統(tǒng)可實現(xiàn)對科研項目和教育培訓(xùn)工作的在線管理。通過對生產(chǎn)項目和科研項目的在線管理,可自動生成部門和個人的工作總結(jié),最終可實現(xiàn)對部門和個人業(yè)績的考核。

圖4 電力生產(chǎn)信息系統(tǒng)功能結(jié)構(gòu)

2.2 關(guān)鍵技術(shù)的研究與實現(xiàn)

Spring提供了對Sessionfactory的初始化,用戶不再關(guān)心Session的關(guān)閉和打開等操作。該集成配置需修改applicationContext.xml如下:

通過將 Hibernate整合入 Spring,輕松實現(xiàn)Hibernate的Session所提供的任何方法,并可大幅減少維護(hù)Session所需要的代碼工作。同時,將數(shù)據(jù)源中的表全部映射為hibernate中的模型,對表的操作全部交由hibernate對模型中對象的操作。

Struts要和Spring集成就必須能夠訪問Spring的上下文,Struts作為Web系統(tǒng)的框架,要保證系統(tǒng)在啟動前裝載了Spring的上下文。裝載Spring上下文需在web.xml文件作以下配置:

下面通過使用基于Ext和SSH開發(fā)架構(gòu)來實現(xiàn)一個生產(chǎn)任務(wù)發(fā)布功能,以說明該架構(gòu)的使用。

1)用戶填寫好生產(chǎn)任務(wù)表單信息后,通過“發(fā)布”按鈕發(fā)出Ajax異步請求,使用Ext框架中的Ext.Ajax.request全局方法將表單數(shù)據(jù)轉(zhuǎn)化JSON數(shù)據(jù)并發(fā)送到服務(wù)器。

2)服務(wù)器通過Struts配置文件struts.xml中定義路徑尋找處理該請求的類和方法。

3)通過Spring的注入機(jī)制@Controller("kjfzbScrwAction")找到處理kjfzbScrwAction類和pubOrEditKjfzbScrw方法。在 kjfzbScrwAction類中表單數(shù)據(jù)以Hibernate實體對象的形式存放。

4)并通過@Resource(name="kjfzbScrw Service")注入邏輯處理層并自動需找邏輯處理方法,在該方法中可實現(xiàn)對數(shù)據(jù)的轉(zhuǎn)化、計算等復(fù)雜的邏輯處理。

5)最后通過注入@Resource(name="kjfzbScrwDAO")找到數(shù)據(jù)保存方法,將表單數(shù)據(jù)保存到數(shù)據(jù)庫中。

從以上的實例分析可以看出,通過基于Ext和SSH架構(gòu)設(shè)計開發(fā)的電力生產(chǎn)信息系統(tǒng)層次分明,而且代碼比較簡潔。

3 結(jié)束語

文中將基于Ext+SSH的Web系統(tǒng)開發(fā)架構(gòu)運(yùn)用到電力生產(chǎn)信息系統(tǒng)開發(fā)中,簡化了開發(fā)人員的代碼量和開發(fā)難度,并且使得頁面開發(fā)和Java后臺程序達(dá)到有效分離,提高了系統(tǒng)的擴(kuò)展新,降低了維護(hù)成本?;谠摽蚣茈娏ιa(chǎn)信息系統(tǒng)代碼部署成本低,后期易于升級和維護(hù)。

〔1〕肖劍鋒,雷升印.基于Struts與Hibernate的MIS開發(fā)〔J〕.微計算機(jī)信息,2006(22):22-24.

〔2〕潘明惠.電力信息化工程的理論與應(yīng)用研究〔J〕.中國電機(jī)工程學(xué)報,2005(15):96-99.

〔3〕張功彬.基于ExtJs的富客戶端MIS設(shè)計與開發(fā)〔D〕.中國海洋大學(xué),2011.

〔4〕高秀慧,高建華.基于 J2EE框架的 Web應(yīng)用可靠性研究〔J〕.計算機(jī)工程與設(shè)計,2013(4):1 270-1 275.

〔5〕鄧偉成,范軼翔,夏翔,等.ExtJs框架下Grid組件的擴(kuò)展及應(yīng)用〔J〕.計算機(jī)應(yīng)用,2012,32(A01):80-82.

猜你喜歡
客戶端信息系統(tǒng)架構(gòu)
基于FPGA的RNN硬件加速架構(gòu)
企業(yè)信息系統(tǒng)安全防護(hù)
哈爾濱軸承(2022年1期)2022-05-23 13:13:18
功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
汽車工程(2021年12期)2021-03-08 02:34:30
基于區(qū)塊鏈的通航維護(hù)信息系統(tǒng)研究
電子制作(2018年11期)2018-08-04 03:25:54
縣級臺在突發(fā)事件報道中如何應(yīng)用手機(jī)客戶端
傳媒評論(2018年4期)2018-06-27 08:20:24
孵化垂直頻道:新聞客戶端新策略
傳媒評論(2018年4期)2018-06-27 08:20:16
基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
電子測試(2018年10期)2018-06-26 05:53:34
信息系統(tǒng)審計中計算機(jī)審計的應(yīng)用
LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
基于SG-I6000的信息系統(tǒng)運(yùn)檢自動化診斷實踐
上饶市| 南丹县| 台南市| 崇明县| 永和县| 香港 | 兴宁市| 龙门县| 洮南市| 南充市| 西丰县| 聂荣县| 宁晋县| 集贤县| 珠海市| 从江县| 安康市| 安龙县| 威远县| 保靖县| 辉县市| 盐城市| 石景山区| 阜城县| 中宁县| 同德县| 辉县市| 东台市| 丰台区| 赤壁市| 奉贤区| 梅州市| 栾城县| 永泰县| 从江县| 晋城| 十堰市| 罗甸县| 上思县| 修水县| 柘荣县|