彭勇 陳俞強
摘 要:隨著實驗室大型設(shè)備增多,出現(xiàn)了校企共建共用等各種新型實驗方式,使得現(xiàn)有高校實驗室信息管理系統(tǒng)不能滿足不斷變化的實驗室共享功能和新需求。為此研究了利用SSM框架開發(fā)應(yīng)用系統(tǒng)的一般步驟,分析了高校實驗室管理的功能需求,設(shè)計了系統(tǒng)的主要功能模塊和業(yè)務(wù)流程,并利用SSM框架實現(xiàn)了系統(tǒng)的功能。
關(guān)鍵詞:實驗室管理; 管理信息系統(tǒng); SSM框架; Web項目
中圖分類號: TP319
文獻標志碼: A
Abstract:As the amount of large equipment is increasing, new experimental methods appear, such as college and enterprise co-construction and sharing. It lead that the existing university laboratory information management system cannot meet the actual needs of the laboratory management. In this paper, the relevant technologies of enterprise application development are studied, the functional requirements of laboratory management are analyzed. The main functional modules and business processes of the system are designed. The main function modules of the system are realized based on SSM framework.
Key words:Laboratory management; MIS; SSM Framework; Web project
0 引言
實驗室信息管理系統(tǒng)(Laboratory Information Management System,LIMS)是以數(shù)據(jù)庫技術(shù)為核心,將現(xiàn)代信息技術(shù)與實驗室管理需求相結(jié)合的管理信息系統(tǒng)。實驗室管理的對象很多,主要包括與實驗室有關(guān)的設(shè)備、師生、各類信息,各種耗材,實驗經(jīng)費等,非常復雜。實驗室管理主要包括:實驗室設(shè)備管理、實驗人員管理、實驗信息管理、實驗耗材管理、實驗室故障管理、實驗室共享等[1]。
高校實驗室管理系統(tǒng)整合了實驗室管理所需的全部功能,依托學校內(nèi)網(wǎng)和用戶手機端,采取服務(wù)器端、Web端和移動端相結(jié)合的方式,將實驗人員、實驗設(shè)備、實驗室共享、實驗耗材、實驗數(shù)據(jù)、實驗標本、實驗信息、管理制度等內(nèi)容融為一體,與高校大型設(shè)備共享預(yù)約平臺實現(xiàn)無縫對接[2]。
1 SSM框架
SSM (Spring+SpringMVC+MyBatis)是由Spring、MyBatis兩個開源框架整合而成(SpringMVC是Spring中的部分內(nèi)容)。
Spring是一個輕量級的JAVA開發(fā)框架,主要解決業(yè)務(wù)邏輯層和其他層之間的松耦合問題,使用基本的Javabean來完成以往只有EJB完成的企業(yè)應(yīng)用功能[3]。
SpringMVC是Spring實現(xiàn)的一個Web層,實現(xiàn)了Web MVC設(shè)計模式,請求驅(qū)動類型的輕量級Web框架,即使用了MVC架構(gòu)模式的思想,將Web層進行職責解耦。
Mybatis是一個持久層的框架,在使用上相比Hibernate更加靈活,可以控制SQL的編寫,使用 XML或注解進行相關(guān)的配置。
1.1 Spring
Spring的核心包括IoC (Inversion of Control,控制反轉(zhuǎn)) 和 AOP(Aspect Oriented Programming,面向切面編程),IoC促進了低耦合,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創(chuàng)建或者查找依賴對象[4];AOP促進了高內(nèi)聚,可以方便的實現(xiàn)對程序進行權(quán)限攔截、運行監(jiān)控等功能。
1.2 Spring MVC
Spring MVC是Spring的一個子模塊,分離了控制器、模型對象、分派器以及處理程序?qū)ο蟮慕巧?,這種分離讓它們更容易進行定制,其具體工作流程如圖1所示。
前端控制器實際就是DispatcherServlet;應(yīng)用控制器其實拆為處理映射器(Handler Mapping)進行處理器管理和視圖解析器(View Resolver)進行視圖管理;頁面控制器/動作/處理器為Controller接口(僅包含ModelAndView handleRequest(request, response) 方法)的實現(xiàn)(也可以是任何的POJO類);支持本地化(Locale)解析、主題(Theme)解析及文件上傳等[5];提供了非常靈活的數(shù)據(jù)驗證、格式化和數(shù)據(jù)綁定機制;提供了強大的約定大于配置(慣例優(yōu)先原則)的契約式編程支持。
1.3 MyBatis
MyBatis是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的基于Java的持久層框架。使用MyBatis,程序員無需書寫JDBC代碼,不用進行參數(shù)的手工設(shè)置以及結(jié)果集的檢索,只通過XML文件或注解用于配置以及原始映射,就能夠?qū)⒔涌诤蚃ava的POJOs(Plain Old Java Objects,簡單的Java對象)映射成數(shù)據(jù)庫中的記錄。
2 系統(tǒng)的需求分析
隨著高校實驗室建設(shè)規(guī)模的擴大,各種新型實驗教學模式的出現(xiàn),實驗中心的管理和維護工作量迅速增加,教學對實驗室的標準也越來越高,根據(jù)市場調(diào)研和走訪座談,提出的主要功能需求如下[6]:
1)提供實驗室設(shè)備管理功能,具體包括現(xiàn)有實驗室設(shè)備登記、新設(shè)備出入庫管理功能、設(shè)備折舊報廢、耗材入庫領(lǐng)用管理、設(shè)備資料的查詢和修改、設(shè)備使用記錄管理,手機App還能掃描設(shè)備二維碼,查詢設(shè)備的基本情況,并預(yù)留與后勤固定資產(chǎn)管理系統(tǒng)以及財務(wù)系統(tǒng)對接的數(shù)據(jù)接口;
2)針對為維護人員不足,為提高實驗設(shè)備的可用性,鼓勵每個師生安裝移動客戶端,當設(shè)備出現(xiàn)故障時,掃描設(shè)備二維碼可以進行保修,并對故障現(xiàn)象進行拍照上傳,方便維護人員快捷準確的維護設(shè)備,同時,也減輕實驗室維護人員的工作量;
3)為提高儀器設(shè)備的使用率,提升重點建設(shè)實驗室的投資效益,將實驗室的儀器設(shè)備向校內(nèi)外用戶提供預(yù)約共享使用,軟件能夠提供分享實驗室功能,并降低實驗室的設(shè)備管理難度和管理成本;
4)提供儀器設(shè)備資產(chǎn)統(tǒng)計,實驗設(shè)備使用情況登記統(tǒng)計,實驗設(shè)備維修登記統(tǒng)計、設(shè)備報廢信息統(tǒng)計等數(shù)據(jù)統(tǒng)計功能,跟蹤了解使用人員的工作痕跡,做到全程可追溯。
3 設(shè)計與實現(xiàn)
3.1 系統(tǒng)設(shè)計
高校實驗室管理系統(tǒng)的系統(tǒng)架構(gòu)如圖3所示。
整個系統(tǒng)包括服務(wù)器端、Web客戶端和移動客戶端。其中服務(wù)器端主要提供一個通用服務(wù)平臺,Web客戶端和移動App端負責展現(xiàn)數(shù)據(jù)和處理用戶交互,所需要的數(shù)據(jù)來自于服務(wù)器端的工作流引擎[7];工作流引擎負責業(yè)務(wù)邏輯處理,生成核心數(shù)據(jù)發(fā)送到數(shù)據(jù)存儲模塊,工作流引擎還可以聚合數(shù)據(jù)存儲模塊查詢到的數(shù)據(jù)返回給客戶端;數(shù)據(jù)存儲模塊負責核心數(shù)據(jù)的增刪改查;
實時通訊模塊是服務(wù)器消息服務(wù)的基礎(chǔ)。可以為Web應(yīng)用和App應(yīng)用加入實時消息等功能,還能實現(xiàn)協(xié)同實驗等實時互動功能;
消息推送服務(wù),可以即時的通過客戶端向用戶推送預(yù)約結(jié)果或者邀請實驗的通知,用戶之間可以保持溝通,從而有效地提高用戶留存率,提升用戶體驗。
部分具體業(yè)務(wù)流程如下:
3.2 系統(tǒng)實現(xiàn)
根據(jù)軟件的需求,Web端在前端使用easyUI框架,方便設(shè)計出功能豐富并且美觀的UI界面進行頁面展示,管理員在Web頁面上進行相關(guān)操作,發(fā)送用戶請求[8]。系統(tǒng)通過SpringMVC提供的前端控制器DispatcherServlet攔截用戶請求,并對請求URL(統(tǒng)一資源定位符)進行解析,得到URI(統(tǒng)一資源標識符),根據(jù)URI調(diào)用HandlerMapping獲得Handler對象,控制器根據(jù)Handler選擇相應(yīng)的HandlerAdapter,HandlerAdapter將調(diào)用實際處理用戶請求Controller接口,在實例化DeviceController的時候,注入DeviceServiceImpl。在實例化DeviceServiceImpl的時候,又注入DeviceMapper, 根據(jù)ApplicationContext.xml中的配置信息,將DeviceMapper和Device.xml關(guān)聯(lián)起來了,這樣拿到了實例化好了的DeviceController,并調(diào)用 list 方法,從而進入對應(yīng)的DeviceService處理業(yè)務(wù)邏輯,引用相應(yīng)的Dao操作數(shù)據(jù)庫,而數(shù)據(jù)庫的具體操作通過Mybatis映射文件,處理完后返回用戶響應(yīng)。
下面僅列舉本系統(tǒng)中設(shè)備管理模塊的設(shè)備明細列表實現(xiàn)的部分代碼:
1)jQuery+easyUI 搭建前端界面:
$("#tableDevice").datagrid({url:'device',{…});
2)服務(wù)端通過注解配置 Handler,注解@Controller 表示該方法是一個控制器,@RequestMapping 表示映射請求和請求的方法:
@Controller
public class DeviceController {
@Autowired
private DeviceService deviceService;
@RequestMapping (value="device",method=RequestMethod.POST)
@ResponseBody
public datagrid device(int page, int rows,HttpServletRequest request){…}
3)進入相應(yīng)的 service 進行業(yè)務(wù)邏輯處理:
@Service("deviceService")
@Transactional (timeout=60, propagation =Propagation.REQUIRES_NEW)
public class IDeviceService implements DeviceService{…}
4)通過 Dao 與數(shù)據(jù)庫交互:
public interface DeviceMapper {List
5)通過 Mybatis 映射實現(xiàn)具體數(shù)據(jù)庫的操作,需手動編寫 SQL 語句:
4 總結(jié)
文中對高校實驗室管理系統(tǒng)的需求進行了分析,提出了采用SSM框架來設(shè)計該系統(tǒng),并設(shè)計了系統(tǒng)的整體架構(gòu),體現(xiàn)了分層開發(fā)的設(shè)計理念,最后實現(xiàn)了該系統(tǒng),系統(tǒng)的建立有利于高校實驗室的管理改進,達到了系統(tǒng)的設(shè)計目標和整體要求,并同時也為采用SSM 框架開發(fā)應(yīng)用程序提供可供借鑒的實例。
參考文獻
[1] 喻晗,劉威. 實驗室管理系統(tǒng)的設(shè)計與實現(xiàn)[J], 電子設(shè)計工程,2017,25(1):1-5.
[2] 楊健. 高校開放式實驗室管理系統(tǒng)的設(shè)計[J], 微型電腦應(yīng)用,2018,34(12):102-104.
[3] 曹珍,楊帆.基于SSM框架的商戶管理平臺設(shè)計與實現(xiàn)[J]. 計算技術(shù)與自動化,2018,36(4):119-121.
[4] 向露.基于SSM的智能停車場管理系統(tǒng)的設(shè)計與實現(xiàn)[J].電子設(shè)計工程,2018,26(13):24-27.
[5] 鄒紅霆. 基于SSM框架的Web系統(tǒng)研究與應(yīng)用[J]. 湖南理工學院學報(自然科學版),2017,30(1):39-43.
[6] 魏志軍,楊云峰. 智能綜合實驗室管理系統(tǒng)設(shè)計[J], 現(xiàn)代電子技術(shù),2018,41(24):90-93.
[7] 劉昆鑫,卜慶凱. 基于SSM框架的WEB系統(tǒng)秒殺優(yōu)化設(shè)計[J]. 青島大學學報(工程技術(shù)版),2017,32(4):114-119.
[8] 蒙杰,楊生舉,施韶亭. 基于SSM輕量級復合框架的科技創(chuàng)新券管理系統(tǒng)研究與實現(xiàn)[J].蘭州文理學院學報(自然科學版),2018,32(2):67-70.
(收稿日期: 2019.03.20)