劉芳 徐昊 林錦州 郝樹新


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