鄭偉鴻 林 珠
(1.廣東省科技基礎條件平臺中心,廣東 廣州 510033;2.廣東省高性能計算重點實驗室,廣東 廣州 510033)
基于SSH架構的重點實驗室信息統(tǒng)計管理系統(tǒng)設計
鄭偉鴻1,2林珠1,2
(1.廣東省科技基礎條件平臺中心,廣東廣州510033;2.廣東省高性能計算重點實驗室,廣東廣州510033)
在SSH框架技術的基礎上,設計出實驗室體系管理信息統(tǒng)計系統(tǒng),該系統(tǒng)可提高對省重點實驗室和省企業(yè)重點實驗室的管理信息的收集、統(tǒng)計的工作效率。
實驗室;統(tǒng)計;Strust;Spring;Hibernate
全省實驗室體系管理信息統(tǒng)計的開展,對省重點實驗室和省企業(yè)重點實驗室的運行狀況、人力資源、儀器設備和經濟效益等進行調查并統(tǒng)計,不僅有利于對實驗室體系的深化管理,而且為進一步統(tǒng)計分析省重點實驗室和省企業(yè)重點實驗室各項指標的分布情況提供數(shù)據(jù)依據(jù),為省科技廳制定相關政策提供參考。隨著信息技術的發(fā)展,運用信息化技術實現(xiàn)能夠代替人工繁瑣的統(tǒng)計方式的信息化系統(tǒng),是提高全省實驗室體系管理信息統(tǒng)計工作效率、節(jié)約人力和物力資源的必由之路。經過調查分析,該系統(tǒng)需提供:(1)操作直觀,方便簡潔的信息填報功能;(2)分類統(tǒng)計功能;(3)用戶權限管理和信息安全。
SSH框架是由Strust+Spring+Hibernate集成的框架,是目前較為流行的web應用程序開發(fā)框架。SSH繼承了J2EE的分層架構模式,分別為表示層、業(yè)務邏輯層和數(shù)據(jù)持久層。
2.1Strust實現(xiàn)表示層
Strust主要解決表示層的實現(xiàn)問題,以WebWork為核心,采用攔截器的機制來處理用戶的請求,使得業(yè)務邏輯控制器與Servlet API完全脫離開[1],可以有效地提高開發(fā)人員的效率。Strust的工作原理為:(1)用戶通過使用瀏覽器客戶端發(fā)送HTTP協(xié)議的請求。(2)HTTP請求到達服務器后,經過控制器,使用框架結構填充Form Bean。(3)經過填充的數(shù)據(jù)請求通過框架中控制器的Action組件進行數(shù)據(jù)業(yè)務處理。(4)經過控制器處理過的業(yè)務數(shù)據(jù)調用Struts的基礎部件實現(xiàn)業(yè)務邏輯。(5)將業(yè)務邏輯經過轉換形成JSP業(yè)務進行處理,并將處理結果返回。(6)用戶在客戶端或者瀏覽器上得到HTTP請求的響應。
2.2Spring實現(xiàn)業(yè)務邏輯層
Spring是一種輕量級J2EE開源框架,它產生的主要目的就是提出一個EJB的簡化替代品。這種應用程序開發(fā)過程和測試的簡化是Spring的關鍵特征。它基于MVC結構,以控制反轉(inversion of control,IoC)或依賴注入(dependency injection,DI)原則和面向方面編程(aspect-oriented programming,AoP)思想為基礎,提供管理業(yè)務對象服務[2]。
IoC/DI是Spring的核心,即組件的關系由容器來控制,而非傳統(tǒng)的程序代碼,從而極大地改善了代碼的可重用性。IoC通過一些外部管理器,在它產生的時候可以向Bean注入所有依賴。Bean僅需要通過編碼和改變對象屬性的方法定義需求的特性。DI機制,可以在運行期為組件配置所需資源,而無需在編寫組件代碼時就加以指定,在相當程度上降低了組件之間的耦合,實現(xiàn)了組件真正意義上的即插即用。AOP是對面向對象編程(OOP)的補充,將程序分解為各個關注點,從而能夠模塊化管理這種橫切多個對象的關注點[3]。
2.3Hibernate實現(xiàn)數(shù)據(jù)持久化
Hibernate是一個優(yōu)秀的Java持久化層解決方案,是當今主流的對象——關系映射(Object Relation Mapping,簡稱ORM)工具。在面向對象程序設計中,關系數(shù)據(jù)庫中的表間關系有對象間關系沒有有效的轉換機制來完成匹配,Hibernate的出現(xiàn)很好地完成了二者之間的匹配問題。Hibernate可以將對象間關系按照一定的邏輯與數(shù)據(jù)庫中表之間的關系進行高耦合度的匹配。Hibernate的使用可以減少原來面向對象程序設計時大量的程序與數(shù)據(jù)庫之間SQL的轉換,有效提高開發(fā)效率[4]。
整合Strust、Spring和Hibernate的架構是輕量級java EE框架,其具備了多種優(yōu)勢,如(1)分離了Java代碼和JSP代碼,降低對開發(fā)人員要求的復合度。(2)系統(tǒng)以分層的模式實現(xiàn),層與層之間相對獨立,耦合度低。(3)具有良好的可拓展性和可移植性。
圖1 SSH架構工作原理圖
3.1開發(fā)工具與開發(fā)語言
本系統(tǒng)使用Java語言在Eclipse3.6平臺上進行研發(fā)。應用上述的輕量級框架SSH框架,并綜合應用JSP、Javascript技術,使用DIV/CSS布局,實現(xiàn)動態(tài)顯示,加強系統(tǒng)的人機交互。
3.2系統(tǒng)業(yè)務
廣東省實驗室體系管理信息統(tǒng)計系統(tǒng)面向全省范圍的重點實驗室和企業(yè)重點實驗室的相關管理人員,以及廣東省科學技術廳負責該部分工作的相關人員,主要用于全省實驗室管理信息的填報和對實驗室管理信息數(shù)據(jù)的統(tǒng)計,具體業(yè)務流程如圖2所示:
圖2 業(yè)務流程
3.3系統(tǒng)結構
根據(jù)分析和業(yè)務發(fā)展的需要,現(xiàn)給出了實驗室體系管理信息統(tǒng)計系統(tǒng)結構圖,如圖3所示:
圖3 實驗室體系管理信息統(tǒng)計系統(tǒng)結構圖
整個系統(tǒng)在分布式企業(yè)開發(fā)平臺(J2EE)框架基礎之上搭建,具備了建立現(xiàn)代企業(yè)級分布式應用系統(tǒng)的必要前提條件。本系統(tǒng)開發(fā)選擇在Windows操作平臺下開發(fā),但最終部署在Linux系統(tǒng)上。
提供服務的部署環(huán)境的應用服務器,我們將選用開源的Tomcat WEB應用服務器,既可以為客戶節(jié)約很大一部分成本,同樣可以完成需要的功能。
在業(yè)務邏輯的實現(xiàn)上,充分結合J2EE基礎架構。使用Java Bean技術實現(xiàn)業(yè)務邏輯層面的功能。在業(yè)務邏輯層之上,是抽象程度更高、粒度更大的Web服務層服務,實現(xiàn)客戶服務。
經過需求分析和系統(tǒng)設計分析后,可以明確實驗室體系管理信息統(tǒng)計系統(tǒng)中所需的實體類及其所包含的屬性方法。然后使用Power Designer設計出數(shù)據(jù)庫的概念模型和物理模型,并畫出類圖,分析實體類之前的關聯(lián)關系。最后根據(jù)分析結果在Native工具中創(chuàng)建數(shù)據(jù)庫表、序列、索引等數(shù)據(jù)對象。數(shù)據(jù)庫設計時盡量減少數(shù)據(jù)冗余,堅決反對低級冗余,即重復性冗余。提倡高級冗余,即派生性冗余,目的是為了提高數(shù)據(jù)處理的速度,減少數(shù)據(jù)訪問時間。為了在盡量減少數(shù)據(jù)冗余的同時又提高數(shù)據(jù)的訪問速度,我們采用的策略是在概念數(shù)據(jù)模型設計階段遵守第三范式,而在物理數(shù)據(jù)模型設計時考慮降低范式標準,增加一些常用的派生字段,用來保證數(shù)據(jù)訪問時間達到最小,提高數(shù)據(jù)的處理速度。
5.1系統(tǒng)管理
系統(tǒng)管理主要是實現(xiàn)對系統(tǒng)用戶的權限分配管理。
系統(tǒng)采用用戶申請注冊,審核員或管理員審核并分配權限,帳號密碼登錄的形式進入系統(tǒng)。主要功能包括:(1)用戶注冊:系統(tǒng)登陸界面中點擊相應鏈接進入用戶注冊界面,填寫用戶基本信息并提交,等待審核。(2)用戶審核:由審核員或管理員在系統(tǒng)內部進行,審核通過的用戶即可登陸使用。(3)搜索:根據(jù)輸入用戶帳號進行條件查詢。(4)重置:清除查詢條件。(5)編輯:進入編輯用戶信息界面(編輯角色信息界面)。(6)刪除:刪除相應的用戶(角色)。(7)角色分配:對相應用戶進行角色分配。(8)權限分配:對相應角色進行模塊的權限設置,進入修改權限界面,選中在所需要操作的模塊前的勾選框。
5.2數(shù)據(jù)填報
通過審核的錄入員根據(jù)其所在實驗室的實際情況,進行數(shù)據(jù)填報操作。為后續(xù)的數(shù)據(jù)統(tǒng)計分析提供依據(jù)。錄入員選擇不同的大類標簽,對相應數(shù)據(jù)進行填報。數(shù)據(jù)填報后,錄入員可以根據(jù)需要選擇保存或提交,選擇保存,則數(shù)據(jù)可以再次編輯修改,選擇提交,則無法再次編輯修改。
5.3實驗室總覽
實驗室總覽用于對各實驗室填報的信息進行管理。該模塊根據(jù)實驗室的類型分為“省重點實驗室”與“省企業(yè)重點實驗室”兩大類。管理員通過該模塊,可以查看各實驗室填報的數(shù)據(jù)與信息,從而清晰地知道各實驗室填報的進度和狀態(tài)。并可以對填報不合格的實驗室數(shù)據(jù)進行駁回重填。
為了保障填報數(shù)據(jù)的安全性和完整性,以及保證數(shù)據(jù)統(tǒng)計的真實性和準確性,需要對實驗室體系管理信息統(tǒng)計系統(tǒng)做充分的安全保障。
首先是對系統(tǒng)模塊的安全控制。用戶登錄后,只有用戶具有操作權限的模塊才會顯示給用戶使用。否則將不會顯示在界面上。
其次,通過對界面上的原子操作的控制,用戶沒有權限的原子操作將不會顯示在界面上。
最后,即使用戶通過非法途徑可以登錄無權限的界面進行操作,在數(shù)據(jù)提交時,服務器將對提交數(shù)據(jù)進行嚴格權限檢查,對于無操作權限的提交,將會禁止。
[1]杜素芳.SSH框架技術分析[J].科技廣場,2014(5):76-78.
[2]Craig walls,Ryan Breidenbach.Spring in Action中文版[M].北京:人民郵電出版社,2006.
[3]Johnson R,Hoeller J.Expert one-on-one J2EE development without EJB[M].America:Wrox,2004.
[4]藺小清.基于SSH框架的高等職業(yè)院校畢業(yè)管理平臺的研究與設計[J].價值工程,2014(17):216-217.
Design on the Information Statistics Management System of Key Laboratory Based on SSH Framework
Zheng Weihong1,2Lin Zhu1,2
(1.Guangdong Computing Center,Guangzhou 510033,Guangdong; 2.Guangdong Key Laboratory of High Performance Computing,Guangzhou 510033,Guangdong)
Based on the SSH framework technology,this paper designs a laboratory management information statistics system, which can improve the efficiency of information collection and statistics for provincial key laboratories and enterprise key laboratories.
laboratory;statistics;Strust;Spring;Hibernate
TP311.52
A
1008-6609(2016)06-0013-03
鄭偉鴻,男,廣東饒平人,雙學士,工程師,研究方向:虛擬化技術、軟件研發(fā)。
科技基礎條件資源數(shù)據(jù)共享平臺建設,項目編號:2013B061800011;廣東省高性能計算重點實驗室運行經費,項目編號:粵科財字[2013] 82號;科技資源數(shù)據(jù)分析與開放共享服務平臺建設,項目編號:2014B070706004;基于高性能計算的廣東沿海風暴潮災害預報關鍵技術研發(fā),項目編號:粵科規(guī)財字[2014]116號。