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