吳建平
[摘? ? ? ? ? ?要]? 隨著高職院?!半p高計(jì)劃”的實(shí)施,科研工作成為提高辦學(xué)質(zhì)量、培養(yǎng)高水平職業(yè)技術(shù)人才的重要內(nèi)容??蒲谢顒?dòng)的復(fù)雜性對科研管理工作提出了巨大挑戰(zhàn)。為提升科研項(xiàng)目管理效率,使用戶獲得友好界面和豐富的信息管理功能,基于ExtJS和SSH2框架,設(shè)計(jì)并實(shí)現(xiàn)了高職院校信息管理系統(tǒng)。系統(tǒng)充分利用ExtJS豐富的組件技術(shù)以及SSH2的MVC框架和企業(yè)級管理能力,采用數(shù)據(jù)驅(qū)動(dòng)、分級管理、組件化部署、模塊化組裝,有效提升了科研信息管理的自動(dòng)化,并為后續(xù)系統(tǒng)的遷移和擴(kuò)展提供了優(yōu)秀的架構(gòu)基礎(chǔ)。
[關(guān)? ? 鍵? ?詞]? ExtJS+SSH2框架;高職院校;信息管理系統(tǒng)
[中圖分類號]? G712? ? ? ? ? ? ? ? ? ?[文獻(xiàn)標(biāo)志碼]? A? ? ? ? ? ? ? ? ? ?[文章編號]? 2096-0603(2021)43-0092-02
2019年,教育部和財(cái)政部發(fā)布《關(guān)于實(shí)施中國特色高水平高職學(xué)校和專業(yè)建設(shè)計(jì)劃的意見》,提出集中力量建設(shè)一批中國特色高水平的高職學(xué)校和專業(yè)群的“雙高計(jì)劃”的意見。“雙高計(jì)劃”為高職院校的發(fā)展注入了新的活力,也提出了新的要求。其中,科研水平提升是提高辦學(xué)質(zhì)量、培養(yǎng)高水平職業(yè)技術(shù)人才的重要內(nèi)容。高職院??蒲泄ぷ鲄⑴c科研的機(jī)構(gòu)及人員眾多,涉及學(xué)科領(lǐng)域廣泛、科研項(xiàng)目類型復(fù)雜,使科研立項(xiàng)、科研成果、科研經(jīng)費(fèi)、科研流程監(jiān)督等科研管理工作變化快、復(fù)雜化程度高、工作量大、管理效率有待進(jìn)一步提升。為適應(yīng)“雙高計(jì)劃”的新要求,為高職院校開發(fā)一套界面友好、可定制化程度強(qiáng)、信息管理自動(dòng)化程度高、數(shù)據(jù)安全性好,同時(shí)兼具可移植性的科研管理系統(tǒng),將為高職院校科研管理工作帶來明顯的效率提升??紤]到高職院校的科研工作現(xiàn)狀以及開發(fā)周期、后續(xù)擴(kuò)展和移植等需求,本文采用ExtJS+SSH2的技術(shù)架構(gòu),設(shè)計(jì)并實(shí)現(xiàn)了一套適用于高職院??蒲行畔⒐芾硐到y(tǒng)。
一、系統(tǒng)總體設(shè)計(jì)
(一)系統(tǒng)架構(gòu)設(shè)計(jì)
本系統(tǒng)的總體架構(gòu)以ExtJS框架作為用戶接口和信息展示,以SSH2(Struts2.0+Spring3.2+Hibernate2.5)為后臺(tái),分為展示層、控制層、業(yè)務(wù)層和數(shù)據(jù)持久層。
展示層采用ExtJS,用JSON數(shù)據(jù)格式向后臺(tái)提交用戶請求,同時(shí)展示后臺(tái)返回的執(zhí)行結(jié)果。Struts在控制層根據(jù)接收到的請求調(diào)用業(yè)務(wù)層的業(yè)務(wù)邏輯組件,并將響應(yīng)執(zhí)行結(jié)果返回到展示層。業(yè)務(wù)層由Spring框架實(shí)現(xiàn),負(fù)責(zé)管理具體的業(yè)務(wù)對象和業(yè)務(wù)操作。Hibernate在數(shù)據(jù)持久層為實(shí)現(xiàn)屏蔽不同數(shù)據(jù)庫之間的差異,把數(shù)據(jù)庫的所有操作封裝在DAO中,把關(guān)系數(shù)據(jù)庫中的表映射為對象,以提供統(tǒng)一的訪問接口。前臺(tái)與后臺(tái)之間采用Spring Security框架實(shí)現(xiàn)基于角色的訪問控制。
本系統(tǒng)充分發(fā)揮了ExtJS在交互和展示方面的豐富性和可定制性以及SSH2架構(gòu)的可擴(kuò)展性、可維護(hù)性、解耦性等優(yōu)勢,為適應(yīng)不斷變化的高職院??蒲行畔⒐芾砉ぷ鞔蛳铝肆己玫幕A(chǔ)。
(二)系統(tǒng)功能設(shè)計(jì)
系統(tǒng)功能包括科研信息管理、業(yè)務(wù)管理、報(bào)表管理、系統(tǒng)管理四大功能。
1.信息管理。主要實(shí)現(xiàn)科研部門的項(xiàng)目、管理等信息發(fā)布,項(xiàng)目申報(bào)流程進(jìn)度提醒、科研群組內(nèi)部或科研人員與管理員之間的信息通信等。
2.業(yè)務(wù)管理。系統(tǒng)科研信息管理的核心模塊包括:(1)科研項(xiàng)目管理。實(shí)現(xiàn)項(xiàng)目立項(xiàng)、項(xiàng)目中期、結(jié)項(xiàng)等過程管理以及相關(guān)的文檔管理。(2)成果管理。實(shí)現(xiàn)科研人員的成果錄入和管理部門的成果確認(rèn)與統(tǒng)計(jì)以及從二級學(xué)院、科研團(tuán)隊(duì)、科研項(xiàng)目等多個(gè)角度進(jìn)行成果管理。(3)經(jīng)費(fèi)管理。實(shí)現(xiàn)與財(cái)務(wù)系統(tǒng)互通,按照項(xiàng)目預(yù)算管理項(xiàng)目經(jīng)費(fèi)。(4)科研活動(dòng)管理,包括學(xué)術(shù)交流活動(dòng)、項(xiàng)目相關(guān)設(shè)備與資源、常用科研文檔模板下載等。
3.報(bào)表管理。根據(jù)普通科研人員和管理員的不同角色,提供不同的報(bào)表管理方案。按照指定的統(tǒng)計(jì)項(xiàng)目查詢數(shù)據(jù)庫中的數(shù)據(jù),對數(shù)據(jù)進(jìn)行統(tǒng)計(jì),如項(xiàng)目數(shù)量、項(xiàng)目金額、項(xiàng)目進(jìn)度、項(xiàng)目成果等,同時(shí)根據(jù)所選統(tǒng)計(jì)項(xiàng)目生成和導(dǎo)出相應(yīng)的報(bào)表。此外,還應(yīng)提供按照預(yù)設(shè)計(jì)劃的自動(dòng)報(bào)表功能,定期生成匯總報(bào)表。
4.系統(tǒng)管理。這里主要是分配給管理員的功能,包括用戶的新增、修改和刪除,角色及用戶權(quán)限的配置,用戶密碼重置等功能。
二、系統(tǒng)關(guān)鍵技術(shù)
在技術(shù)架構(gòu)上,本文使用Apache2.4作為Web服務(wù)器,使用MySQL8.0作為持久化存儲(chǔ)數(shù)據(jù)庫?;贐/S體系使用MVC架構(gòu)設(shè)計(jì),使用JSON數(shù)據(jù)交互標(biāo)準(zhǔn)。前臺(tái)使用ExtJS6.6框架、TabPanel布局,以實(shí)現(xiàn)跨平臺(tái)的無縫開發(fā)。
(一)ExtJS框架技術(shù)
ExtJS是一個(gè)用JavaScript編寫的,與后臺(tái)開發(fā)技術(shù)無關(guān)的前端Ajax框架,支持所有現(xiàn)代瀏覽器,前后臺(tái)之間通過JSON/XML實(shí)現(xiàn)數(shù)據(jù)傳遞。從ExtJS6開始,可以通過統(tǒng)一的代碼,開發(fā)跨平臺(tái)(桌面和移動(dòng)應(yīng)用)程序。ExtJS為構(gòu)建Web應(yīng)用程序提供了豐富的UI,也可用來開發(fā)RIA(RichInternet Application,富客戶端)應(yīng)用程序。ExtJS擁有豐富的表單控件,整合CSS、XML等多項(xiàng)技術(shù),從實(shí)現(xiàn)的界面效果到數(shù)據(jù)解析及異常處理都非常出色。ExtJS不需要在客戶端安裝任何插件,使用ExtJS構(gòu)建的RIA應(yīng)用可與桌面程序媲美。
(二)JSON數(shù)據(jù)格式
在前后臺(tái)的數(shù)據(jù)交換上,考慮到系統(tǒng)承載能力,本文采用了JSON數(shù)據(jù)格式。JSON(Java Script Object Notation)是一種輕量級的數(shù)據(jù)交換格式,可以將Java Script對象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后將其在函數(shù)之間傳遞,或者在Ajax等異步應(yīng)用程序中將字符串從Web客戶機(jī)傳遞給服務(wù)器端程序。JSON可以表示比“鍵-值”更復(fù)雜的結(jié)構(gòu),如數(shù)組和復(fù)雜的對象。因此,當(dāng)需要傳遞的數(shù)據(jù)很復(fù)雜時(shí),JSON也能夠比較好地進(jìn)行處理。
(三)SpringSecurity框架技術(shù)
在安全性方面,由于后臺(tái)使用了Spring框架,因此,本文使用Spring Security框架實(shí)現(xiàn)用戶身份驗(yàn)證和授權(quán)。Spring Security是一個(gè)功能強(qiáng)大且高度可定制的身份驗(yàn)證和訪問控制框架,它是用于保護(hù)基于Spring的應(yīng)用程序的實(shí)際標(biāo)準(zhǔn)。
(四)SSH2框架技術(shù)
SSH是Struts+Spring+Hibernate的一個(gè)集成框架,能夠降低J2EE開發(fā)的復(fù)雜度。SSH的技術(shù)優(yōu)勢體現(xiàn)在四個(gè)方面:(1)分離了Java代碼和HTML代碼,降低了對開發(fā)人員要求的復(fù)合度。(2)系統(tǒng)的層與層之間的工作相對獨(dú)立,代碼耦合度低。(3)即使脫離了Spring環(huán)境的AOP機(jī)制,也不會(huì)妨礙AOP實(shí)現(xiàn)業(yè)務(wù)的功能。(4)Hibernate開源性極強(qiáng)。
三、核心功能模塊實(shí)現(xiàn)
(一)ExtJS展示層的數(shù)據(jù)通信請求
前后端數(shù)據(jù)通信上,本文采用ExtJS的Ext.Ajax.request方法,向服務(wù)器端發(fā)送http請求,傳遞參數(shù),調(diào)用MVC的action方法,返回JSON對象。
使用ExtJS的Ext.define組件將上述方法封裝在exRequest類中。利用組合技術(shù),將exRequest組合到業(yè)務(wù)類(如科研項(xiàng)目管理)中,同時(shí)注冊對事件“completed”的響應(yīng),以達(dá)到利用ExtJS的事件處理機(jī)制,實(shí)現(xiàn)頁面展示與Ajax請求分離。
(二)SSH實(shí)現(xiàn)
1.Struts控制層。在Struts控制器中,通過Struts.xml文件配置前后臺(tái)交互Action。Action的result以JSON類型定義在Struts.xml中。Action的操作方法根據(jù)請求調(diào)用業(yè)務(wù)邏輯處理類得到執(zhí)行結(jié)果對象后,轉(zhuǎn)換為JSON格式,接著調(diào)用json Object.toString()方法向HttpServletResponse里寫JSON格式內(nèi)容,并附帶成功success或失敗failure標(biāo)識,Ext的request函數(shù)根據(jù)Struts返回的標(biāo)識進(jìn)行相應(yīng)操作。
2.Spring業(yè)務(wù)層。Spring通過對DAO組件的調(diào)用和封裝,實(shí)現(xiàn)業(yè)務(wù)層的操作,分為兩步:(1)編寫Service業(yè)務(wù)邏輯接口,定義系統(tǒng)所要完成的業(yè)務(wù)邏輯方法。(2)將先前定義的業(yè)務(wù)邏輯接口的實(shí)現(xiàn),主要實(shí)現(xiàn)增、刪、查、改四種操作。
3.Hibernate持久層。持久層的Hibernate將Java實(shí)體類映射到數(shù)據(jù)庫表,實(shí)現(xiàn)與數(shù)據(jù)庫之間的通信。本文在實(shí)現(xiàn)持久層時(shí)先創(chuàng)建Hibernate映射文件和持久化類,再在application Context.xml文件中配置基礎(chǔ)組件,包括:(1)配置數(shù)據(jù)源DataSource,指向DBCP數(shù)據(jù)源類。(2)配置Session Factory,將Hibernate的數(shù)據(jù)庫連接對象提供給DAO層,同時(shí)注入已配置的DataSource對象。(3)將事務(wù)配置給組件增加到Session Factory對象,并將其注入。(4)配置DAO組件和事務(wù)。(5)編寫DAO類和業(yè)務(wù)層實(shí)現(xiàn)。
綜上所述,科研信息管理系統(tǒng)能夠極大提升科研管理工作的效率,為各層面的科研管理工作提供完善的數(shù)據(jù)依據(jù)。本文從科研信息管理的業(yè)務(wù)需求出發(fā),兼顧數(shù)據(jù)展示、數(shù)據(jù)持久化等要求,結(jié)合現(xiàn)有的成熟、穩(wěn)定的技術(shù)框架,以模塊化的方式實(shí)現(xiàn)核心業(yè)務(wù),并且保證了一定的技術(shù)冗余度,由于采用了ExtJS+SSH2框架,使系統(tǒng)具有較短的開發(fā)周期和較強(qiáng)的可維護(hù)性和擴(kuò)展性。經(jīng)過實(shí)際測試,系統(tǒng)功能和性能能夠達(dá)到預(yù)期目標(biāo),滿足科研信息管理工作的需求,具有較大的實(shí)際應(yīng)用價(jià)值。
參考文獻(xiàn):
[1]謝素萍,劉沐,尹世學(xué),等.基于ExtJS的高校預(yù)算管理系統(tǒng)的研究與實(shí)現(xiàn)[J].實(shí)驗(yàn)技術(shù)與管理,2011,28(4):288-291.
[2]喬淑夷.基于MVC模式的Web前端框架關(guān)鍵技術(shù)研究與實(shí)現(xiàn)[D].北京:中國海洋大學(xué),2014.
[3]鄭俊海.基于ExtJS與SSH2架構(gòu)的固定資產(chǎn)信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦與電信,2018(7):55-57.
[4]邱麗麗,陸源.基于ExtJS和SSH2架構(gòu)的網(wǎng)上報(bào)銷系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2016(9):76-79.
編輯 司 楠