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