彭勇 陳俞強



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