劉芳 徐昊 林錦州 郝樹新
摘 要:該文主要講述基于NHibernate的雙燃料汽車業(yè)務信息管理系統(tǒng)的設計。該設計采用四層架構(gòu),應用UML建模語言進行系統(tǒng)分析和設計,在持久層采用NHibernate,用以實現(xiàn)數(shù)據(jù)存儲和業(yè)務邏輯的分離,以便提高系統(tǒng)的擴展性和可移植性。詳細介紹了系統(tǒng)設計結(jié)構(gòu)、功能模塊劃分;分析了對象關(guān)系映射(ORM)組件——NHibernate的特性。該文所研究的NHibernate技術(shù)可以應用在不同數(shù)據(jù)庫平臺下,靈活性高,提高了應用系統(tǒng)的開發(fā)效率。
關(guān)鍵詞:信息管理系統(tǒng)設計 NHibernate 持久化
Abstract:This article mainly describes the design of dual-fuel vehicle business information management system based on NHibernate.The design uses a four-tier architecture,and adopts UML modeling language for systemic analysis, encapsulates the NHibernate as data persistence layer, impoves system scalability and portability. The paper introduces in detail the design structure, and the divison of system function, analyzes the Object Relational Mapping(ORM) compont —— NHibernate. The NHibernate technology studied in this article can be applied to different database platforms with high flexibility improving the development efficiency of the application system.
Key words:information management system design, NHibernate, object persistence
1 引言
加速改革車用天然氣動力改裝轉(zhuǎn)換工作對推進節(jié)能減排、凈化空氣質(zhì)量及提升人民幸福指數(shù)有著重要的意義,這不僅能夠大大降低車輛運營上的成本,為企業(yè)降本增效,對社會的發(fā)展也將會產(chǎn)生巨大的推動力。并且伴隨著國家對新能源汽車企業(yè)優(yōu)惠政策力度的加持,市場正在加速啟動汽車油改汽的工作。
企業(yè)在實際工作開展中必須調(diào)整產(chǎn)品結(jié)構(gòu)來應對發(fā)展的需要,新能源企業(yè)在實現(xiàn)燃油改汽的道路上任重道遠,已經(jīng)投入大量的成本進行研發(fā)和推廣來貫徹落實國家的政策。
在企業(yè)油改汽的過程中數(shù)據(jù)的管理是至關(guān)重要的。企業(yè)需要一套輔助管理信息系統(tǒng)來統(tǒng)一對數(shù)據(jù)進行記錄及管理,實際改造過程中也需要對過程數(shù)進行存儲、分類及統(tǒng)計,致力于對數(shù)據(jù)可追溯、可管理,來為各級生產(chǎn)管理人員解決生產(chǎn)經(jīng)營上的信息管理工作。
綜上所述,該設計總體目標是創(chuàng)建一套面向企業(yè)生產(chǎn)經(jīng)營的管理信息系統(tǒng),對企業(yè)生產(chǎn)經(jīng)營的全過程進行管理,在滿足企業(yè)對數(shù)據(jù)管理的目標和要求的同時來提高企業(yè)的經(jīng)濟效益。
2 系統(tǒng)總體設計
企業(yè)對交互型事務處理的期望集中在實時性、安全性。現(xiàn)在市面上的應用較為固定,面向用戶維度范圍也較窄,并且界面體驗不好,用戶操作繁重。本系統(tǒng)將針對此都做了進一步優(yōu)化和改進,主體采用獨立子系統(tǒng)的方案-Client/Server,利用不同使用權(quán)限設置記錄相應的簽署文件和表單,這樣不僅提高數(shù)據(jù)查詢的實時性,也保障了數(shù)據(jù)的安全性。
該系統(tǒng)是一個應用NHibernate作為數(shù)據(jù)持久層來封裝對數(shù)據(jù)庫操作的輔助系統(tǒng),采用SQL Server 2008數(shù)據(jù)庫且基于.NET框架實現(xiàn)的C/S系統(tǒng)。系統(tǒng)設計依據(jù)強內(nèi)聚、弱耦合的原則,以及劃分功能模塊要求設計簡單、權(quán)限分配方便,便于用戶理解的原則[1]。系統(tǒng)總共分為四層,表示層是展現(xiàn)給用戶層面用來操作及管理的層面;業(yè)務邏輯層用NHibernate技術(shù)來實現(xiàn)業(yè)務邏輯處理;數(shù)據(jù)持久層采用封裝NHibernate進行對象關(guān)系映射也是最核心的層面,實現(xiàn)對象持久化;數(shù)據(jù)存儲層即底層數(shù)據(jù)庫,負責數(shù)據(jù)存儲和管理。
3 系統(tǒng)流程設計及功能劃分
3.1 流程設計
該系統(tǒng)流程如圖1所示。由于企業(yè)的生產(chǎn)是由合同訂單組織的,所以首先銷售人員錄入客戶及車輛信息,技術(shù)人員錄入前檢信息,完成后由銷售人員擬定改裝合同,審批通過后由技術(shù)人員派料,生產(chǎn)人員派工,錄入裝車流轉(zhuǎn)表、調(diào)試報告,車輛入庫,開始改裝,完成后通知銷售部門發(fā)貨,車輛車庫,銷售負責記錄客戶回訪信息。
3.2 系統(tǒng)功能模塊劃分
該系統(tǒng)設計為以下幾個功能模塊,如圖2所示。
銷售管理模塊,包括客戶信息管理以及合同信息管理,銷售人員通過此模塊來管理對應客戶的數(shù)據(jù)信息,包括對數(shù)據(jù)的常見操作例如增、刪、改、查,客戶信息包括客戶的基本信息以及改裝過程中的車輛信息。合同信息管理針對合同信息的增、刪、改、查及相關(guān)審批狀態(tài)和統(tǒng)計信息的記錄。合同審批采用逐級審批流程,由銷售負責人、總經(jīng)理依次審批。
生產(chǎn)管理模塊,操作員可通過生產(chǎn)管理模塊查找待處理的訂單信息,根據(jù)情況制定訂單,并進行派工選擇。工作組組長可以查看待領(lǐng)派工單,填寫修改安裝檢驗流轉(zhuǎn)表,記錄壞件,丟失件。檢驗人員填寫、修改重卡調(diào)試報告。
庫存管理模塊,庫管人員錄入貨物信息,可根訂單信息收集貨物出庫信息,嚴格把控質(zhì)量情況,經(jīng)過審核確認到下一節(jié)點即生成人員。并按照分來打印入庫和出庫信息單。記錄損壞件售后情況,查看損壞件申請記錄及處理情況,并記錄通過不同操作入庫的數(shù)據(jù),例如編輯、添加的數(shù)據(jù)來管理數(shù)據(jù)類別,也可通過導入或者導出excel的方式來記錄數(shù)據(jù)類別。
通過對存放物品的類別及限度做管理,對超過設置的限度對倉庫保管員做預警提示,來做相應的應調(diào)整措施。還需對供貨商信息、供貨類型做統(tǒng)一管理,對歷史的報價記錄及合同執(zhí)行情況可追溯。
質(zhì)檢管理模塊,包括車輛檢驗和維修管理。檢驗人員將檢驗結(jié)果錄入到客戶車輛信息中,管理操作檢驗記錄表。
報表統(tǒng)計模塊,通過此模塊可以瀏覽和綜合掌握各部門的生產(chǎn)工作情況統(tǒng)計表和匯總信息表。主要包括客戶信息統(tǒng)計、入庫單,出庫單統(tǒng)計、庫存信息統(tǒng)計。
系統(tǒng)管理模塊,用戶通過此模塊完成雙燃料改裝生產(chǎn)信息管理系統(tǒng)用戶以及部門的管理,包括系統(tǒng)用戶的操作權(quán)限的設置、企業(yè)用戶及相關(guān)部門的信息操作等。當用戶登陸時,系統(tǒng)根據(jù)其菜單的使用權(quán)限,使其有權(quán)限的菜單可見,使用戶操作界面更加直觀。
4 數(shù)據(jù)庫設計
首先根據(jù)系統(tǒng)的數(shù)據(jù)流圖進行數(shù)據(jù)分析,導出系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu),利用關(guān)系數(shù)據(jù)庫模型分析各表之間的對應關(guān)系,設計數(shù)據(jù)表和定義數(shù)據(jù)表中的數(shù)據(jù)類型[2]。系統(tǒng)用到的數(shù)據(jù)表主要有客戶信息表、改裝合同信息表、車輛信息表、銷售合同記錄表、庫存貨物基本信息表、派工單信息表、調(diào)試信息表、維修信息表、入庫單、出庫單、采購信息表等,利用SQL Server2005數(shù)據(jù)庫集中建立在同一個庫中。根據(jù)各模塊的需求設計各表的主鍵、外鍵、索引、觸發(fā)器、存儲過程等,便于不同模塊對共同數(shù)據(jù)表的統(tǒng)一引用,并保證數(shù)據(jù)的完整性。
5 關(guān)鍵技術(shù)
NHibernate技術(shù)是面向.NET環(huán)境的對象/關(guān)系數(shù)據(jù)庫映射工具,不僅管理.NET類到數(shù)據(jù)庫表的映射,還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度減少開發(fā)時間和使用SQL和ADO.NET處理數(shù)據(jù)的時間[3]。NHibernate具有以下特性:
(1)擴展性:以對象的方式管理業(yè)務邏輯類到關(guān)系型表的映射,支持對象之間的關(guān)聯(lián),例如繼承、關(guān)聯(lián)、聚合的關(guān)系,并通過XML文件完成相應的數(shù)據(jù)映射。(2)可移植性:采用將業(yè)務邏輯層和數(shù)據(jù)層分離的持久化技術(shù),實現(xiàn)了數(shù)據(jù)庫平臺無關(guān)性,可以進行隨時隨地移植。(3)支持對象查詢:提供了面向?qū)ο蟮牟樵冋Z言(HQL)和條件查詢,可以根據(jù)條件查詢復合對象以及對象集合[4]。(4)批量處理:能夠?qū)崿F(xiàn)三種批量處理,包括批量寫入、批量讀與多重查詢和批量集合加載三種。批量寫入是指批量的在系統(tǒng)里讀入數(shù)據(jù),并通過設定相關(guān)NHibernate的技術(shù)參數(shù)來做交互,只通過一次交互就能在系統(tǒng)讀入多條數(shù)據(jù)。這樣避免了每保存一條數(shù)據(jù)數(shù)據(jù)庫就被訪問一次。批量讀與多重查詢類似于批量寫原理,只是將寫的操作命令變成讀的操作命令。批量的集合加載是指系統(tǒng)在訪問數(shù)據(jù)庫,在代碼中添加延遲加載時效,在執(zhí)行一次命令之后,把相關(guān)數(shù)據(jù)集合和與某個實體相關(guān)同時載入,提高系統(tǒng)的執(zhí)行效率。
6 總結(jié)
隨著軟件開發(fā)技術(shù)的不斷發(fā)展,數(shù)據(jù)持久化方法的逐步完善,會出現(xiàn)許多持久化規(guī)范,在未來的發(fā)展中,ORM技術(shù)將廣泛運用于實際開發(fā)項目應用中。系統(tǒng)將采用NHibernate實現(xiàn)對象-關(guān)系的映射,從對象檢索方式上節(jié)約了大量的內(nèi)存,尤其當系統(tǒng)中進行大量數(shù)據(jù)查詢時最為明顯[5]。同時也將引入對象關(guān)系映射技術(shù),開發(fā)時候可以采用成熟的面向?qū)ο蠹夹g(shù),通過編輯配置文件的方式去修改數(shù)據(jù)庫,從而降低了程序維護和更新的成本,縮短了開發(fā)時間,提高了程序可靠性。該設計也實現(xiàn)了數(shù)據(jù)存儲和業(yè)務邏輯的分離,使得各層能夠獨立開發(fā)、跟蹤及優(yōu)化。但是,NHibernate也存在明顯的缺點,需要編寫復雜的XML映射文件且容易出錯;需要學習HQL語言,增加學習成本;NHibernate體系結(jié)構(gòu)復雜,使用難度大;不支持存儲過程、不具備事務處理等數(shù)據(jù)庫高級功能[6]。這些都需要進一步探討與研究。
參考文獻:
[1]崔玉連,楊新鋒.數(shù)據(jù)庫開發(fā)框架NHibernate應用研究[J].微型電腦用,2013,29(9):12-14.
[2]李強,周曉慧.基于C/S體系結(jié)構(gòu)的電器生產(chǎn)企業(yè)管理信息系統(tǒng)[J].計算機工程與用,2001,10(10):127-129.
[3]趙廣利.基于NHibernate的數(shù)據(jù)持久化方案[J].計算機工程,2009,35(20):53-55.
[4]范郡.基于.NET環(huán)境的對象/關(guān)系映射技術(shù)研究與應用[D].湖北:武漢理工大學,2008.
[5]秦澤葉、高改梅.NHibernate在實驗室信息管理系統(tǒng)中的應用研究[J].科技之友,2010,40-42.
[6]徐長盛,戴超,謝立.J2EE 數(shù)據(jù)持久化技術(shù)的研究[J].計算機應用與軟件,2006,23(4):56-58.