摘要:本文結(jié)合Struts框架、Hibernate框架以及Spring框架這三種框架的特點(diǎn),借助Extjs框架的界面美觀優(yōu)勢(shì),對(duì)油田物資管理系統(tǒng)進(jìn)行了開發(fā)設(shè)計(jì)。多層架構(gòu)的應(yīng)用在很大程度上提高了油田物資管理系統(tǒng)的穩(wěn)定性,解決了可移植性及代碼復(fù)用等問題,既實(shí)現(xiàn)了油田數(shù)據(jù)的共享,又方便了對(duì)油田的協(xié)同管理。
關(guān)鍵詞:多層架構(gòu) 油田物資管理系統(tǒng) 框架 系統(tǒng)設(shè)計(jì)
近年來,隨著我國(guó)石油業(yè)的發(fā)展,眾多石油企業(yè)在得到了更大發(fā)展機(jī)遇的同時(shí),也面臨著更多的挑戰(zhàn)。油田物資管理是石油企業(yè)管理控制的核心,科學(xué)的油田物資管理系統(tǒng)有助于提升石油企業(yè)的綜合競(jìng)爭(zhēng)力。隨著信息網(wǎng)絡(luò)技術(shù)的發(fā)展,傳統(tǒng)系統(tǒng)架構(gòu)中的種種問題和缺陷不斷顯現(xiàn)出來,在此背景下,基于B/S的多層架構(gòu)受到了人們的廣泛重視。以B/S模式為基礎(chǔ)的MVC設(shè)計(jì)模式實(shí)現(xiàn)了數(shù)據(jù)的控制與表現(xiàn)的分離,從而更加適應(yīng)多層Web應(yīng)用系統(tǒng)的復(fù)雜設(shè)計(jì)要求。應(yīng)用Struts+Hibernate+Spring三大框架及Extjs框架結(jié)合所形成的多層框架能夠有效降低傳統(tǒng)系統(tǒng)架構(gòu)的缺陷,提高代碼的可移植性和可重用性。
一、相關(guān)框架簡(jiǎn)介
1. Struts框架
Struts框架是MVC框架的一種常見類型,該框架主要應(yīng)用了Servlet技術(shù)和JSP技術(shù),利用它無(wú)須再通過自己編碼對(duì)MVC模式進(jìn)行編寫,就能夠完成相關(guān)開發(fā),可謂既省時(shí)又省力。MVC模式主要包括了三種層,分別是:模型層、視圖層及控制層。其中,模型層主要為JavaBean,視圖層主要為JSP、ext等,控制層則主要為核心控制器和用戶實(shí)現(xiàn)的業(yè)務(wù)邏輯控制器。
2. Hibernate框架
Hibernate框架具有強(qiáng)大的對(duì)象關(guān)系映射功能,并且它的源代碼是開放的。該框架對(duì)JDBC進(jìn)行了極其輕量級(jí)的對(duì)象封裝,從而通過一種對(duì)象編程思維,實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)任意的操控。同時(shí),通過HSQL也實(shí)現(xiàn)了對(duì)數(shù)據(jù)的簡(jiǎn)單增、刪、改、查,從而在很大程度上簡(jiǎn)化了操作程序,節(jié)省了人力和時(shí)間。Hibernate框架的基礎(chǔ)代碼主要有HBM映射文件、POJO類以及數(shù)據(jù)庫(kù)定義,在任何場(chǎng)合中,只要使用了JDBC,就可以應(yīng)用Hibernate框架。
3. Spring框架
Spring框架的核心是輕量級(jí)容器,它是一種以控制反轉(zhuǎn)為基本原則的低入侵性輕量級(jí)的開放源代碼框架,主要目標(biāo)是實(shí)現(xiàn)全方位的整合框架。該框架總共由七個(gè)模塊組成,七個(gè)模塊雖然均構(gòu)建在核心容器之上,但是每個(gè)模塊都是可以單獨(dú)存在的,并且還可以與其他模塊聯(lián)合進(jìn)行應(yīng)用。另外,通過setter的方法,Spring框架可以根據(jù)配置文件對(duì)其它對(duì)象的引用進(jìn)行設(shè)定。由于依賴注入機(jī)制的存在,使得無(wú)須對(duì)調(diào)用者與被調(diào)用者做出任何要求就能夠輕易實(shí)現(xiàn),同時(shí)還更加便于管理POJO之間的依賴關(guān)系,從而大大降低了組合之間的耦合,以及令代碼變得可重復(fù)使用。
4. Extjs框架
Extjs框架是一種以HTML為控件的骨干、以CSS為樣式的表現(xiàn)以及以JavaScript為粘合語(yǔ)言的AJAX UI組件庫(kù),它可以應(yīng)用于IE等各種瀏覽器之上。Extjs框架最大的特點(diǎn)是界面美觀,利用該框架所設(shè)計(jì)開發(fā)出來的客戶端外觀極其大方、美觀、華麗。另外,利用Extjs框架還可以定制一些用于裝點(diǎn)用戶界面的小部件,以及設(shè)計(jì)一些漂亮直觀的組成部件模型和應(yīng)用程序接口,從而輕松地打造出功能更加強(qiáng)大、界面更加美觀的客戶端及網(wǎng)頁(yè)。
二、基于多層架構(gòu)的油田物資管理系統(tǒng)的設(shè)計(jì)
1. 功能模塊設(shè)計(jì)
通過調(diào)查各石油企業(yè)物資供應(yīng)部門的需求,根據(jù)實(shí)際情況,確定該油田物資管理系統(tǒng)主要包括計(jì)劃管理模塊、采購(gòu)管理模塊、合同管理模塊、物資編碼管理、倉(cāng)儲(chǔ)管理模塊、審批管理模塊、質(zhì)量管理模塊、供應(yīng)商管理模塊、價(jià)格管理模塊、勞保管理模塊、廢料管理模塊、結(jié)算管理模塊、綜合查詢模塊、綜合統(tǒng)計(jì)模塊以及系統(tǒng)管理模塊等幾大功能模塊。
2. 系統(tǒng)總體架構(gòu)
Struts框架的應(yīng)用增強(qiáng)了系統(tǒng)的維護(hù)性與靈活性,但是卻對(duì)模型的支持尚有不足。Hibernate框架實(shí)現(xiàn)了對(duì)象關(guān)系映射及對(duì)JDBC的輕量級(jí)的對(duì)象封裝,但缺點(diǎn)在于其無(wú)法有效分離流程控制與視圖,從而使系統(tǒng)的耦合性較高。而Spring框架則是一個(gè)具有松耦合特點(diǎn)的框架,利用它可以在多層架構(gòu)系統(tǒng)中起到穿針引線之作用。簡(jiǎn)單來說,利用Struts框架降低MVC的耦合性,利用Hibernate框架降低開發(fā)難度,利用Extjs框架設(shè)計(jì)美觀的界面外觀,最后再利用Spring框架直接集成Hibernate,即可完成整個(gè)油田物資管理系統(tǒng)總體架構(gòu)的設(shè)計(jì)。
3. 多層架構(gòu)設(shè)計(jì)
該油田物資管理系統(tǒng)的多層架構(gòu)主要包括表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層以及域模型層。其中,表現(xiàn)層的主要功能是對(duì)用戶請(qǐng)求進(jìn)行管理及做出相應(yīng)的響應(yīng)和顯示;業(yè)務(wù)邏輯層是整個(gè)油田物資管理系統(tǒng)的核心所在,其主要功能是處理系統(tǒng)的業(yè)務(wù)邏輯;數(shù)據(jù)持久層的主要功能是實(shí)現(xiàn)數(shù)據(jù)的持久化和對(duì)象關(guān)系的映射;域模型層由實(shí)際需求中的業(yè)務(wù)對(duì)象所組成,主要功能是提高系統(tǒng)的性能。
三、基于多層架構(gòu)的油田物資管理系統(tǒng)的實(shí)現(xiàn)
結(jié)合JSP技術(shù)與ExtJS技術(shù),在視圖層頁(yè)面中進(jìn)行表現(xiàn)層視圖的創(chuàng)建。利用ExtJS組件,能夠完成處理多列表聯(lián)動(dòng)查詢、樹狀結(jié)構(gòu)顯、多頁(yè)顯示等操作,而再結(jié)合css樣式表,可以將顯示變得更加大方美觀。Spket IDE是一種非常出色的支持ExtJS的IDE,在應(yīng)用ExtJS之時(shí),一般需要先引入ExtJS的樣式和庫(kù)文件,其中,樣式文件為resources/css/ext-all.css ,庫(kù)文件為adapter/ext/ext-base.js,完成以上兩種文件后再進(jìn)行ExtJS的操作。業(yè)務(wù)邏輯層的實(shí)現(xiàn)需要先引用 ITermInfoDAO 接口,而該接口的引用則是通過調(diào)用findBean來實(shí)現(xiàn)的。為了保證松散耦合,接口 ITermInfoDAO 的實(shí)現(xiàn)由 Spring 框架通過設(shè)值注入來進(jìn)行動(dòng)態(tài)加載。對(duì)于數(shù)據(jù)持久層,首先要建立數(shù)據(jù)庫(kù)表與對(duì)象的映射關(guān)系,同時(shí)要實(shí)現(xiàn)持久化 ITermInfoDAO 。通過Hibernate Template模板類可免除顯式打開和關(guān)閉HibernateSession,只需獲得SessionFactory的引用即可。在域模型中,通過@Entity 來標(biāo)識(shí)此類需被Hibernate 框架持久化,通過“name”來指明此域模型對(duì)應(yīng)數(shù)據(jù)庫(kù)中的 HT_CONTRACTINFO 表,而id是其的主鍵。
綜上所述,當(dāng)前我國(guó)正大力促進(jìn)石油業(yè)的信息化發(fā)展,油田物資管理系統(tǒng)的設(shè)計(jì)是首要問題?;诙鄬蛹軜?gòu)的油田物資管理系統(tǒng)可以解決傳統(tǒng)油田物資管理的種種問題,從而實(shí)現(xiàn)管理的高效化。因此,我們必須要進(jìn)一步加強(qiáng)對(duì)油田物資管理系統(tǒng)的研究,爭(zhēng)取更好地實(shí)現(xiàn)系統(tǒng)的架構(gòu)。
參考文獻(xiàn)
[1]王建文,韓李鵬,張俊明.基于多層架構(gòu)的油田物資管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2011(1):162-165,292
[2]羅曉彤.基于多層架構(gòu)的物資管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].物流技術(shù),2015(14):174-177
[3]甘臘梅.某油田物資管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)石油和化工標(biāo)準(zhǔn)與質(zhì)量,2012(2):197
[4]劉改玲.淺議油田物資管理信息系統(tǒng)建設(shè)[J].經(jīng)濟(jì)師,2012(11):237,239
作者簡(jiǎn)介:俞洋,1983—,男 浙江紹興人,經(jīng)濟(jì)師,本科,主要從事油田的計(jì)劃采購(gòu)工作。