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