李彥斌,潘妍虹,顧航,王雷,史兵,孫晨,夏帆,董啟文,宋樹彬
(1.華東師范大學(xué)數(shù)據(jù)科學(xué)與工程學(xué)院,上海200062; 2.華東師范大學(xué)研究生院,上海200062)
研究生學(xué)籍系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
李彥斌1,潘妍虹1,顧航1,王雷1,史兵1,孫晨1,夏帆1,董啟文1,宋樹彬2
(1.華東師范大學(xué)數(shù)據(jù)科學(xué)與工程學(xué)院,上海200062; 2.華東師范大學(xué)研究生院,上海200062)
近十幾年,隨著高校研究生招生規(guī)模的不斷擴(kuò)大,相應(yīng)的研究生管理業(yè)務(wù)模式也發(fā)生了較大的變化,這使得現(xiàn)有的研究生學(xué)籍系統(tǒng)很難適應(yīng)新的業(yè)務(wù)需求變化.從業(yè)務(wù)角度來看,華東師范大學(xué)的現(xiàn)有研究生學(xué)籍系統(tǒng)不支持學(xué)籍異動的申請與流程審批管理等業(yè)務(wù);另一方面,從系統(tǒng)角度來看,現(xiàn)有的研究生學(xué)籍系統(tǒng)存在著瀏覽器兼容性差,系統(tǒng)響應(yīng)速度慢,難以支持對新業(yè)務(wù)的二次開發(fā),不支持基于移動端的服務(wù)訪問等問題.為了支持新的學(xué)籍業(yè)務(wù)需求、提升系統(tǒng)性能和改進(jìn)系統(tǒng)的易用性等,華東師范大學(xué)采用自主研發(fā)模式,基于流行的開源框架AngularJS和Spring Boot設(shè)計(jì)并實(shí)現(xiàn)了新一代研究生院信息系統(tǒng),旨在解決現(xiàn)有招生、學(xué)籍、培養(yǎng)和學(xué)位四大子系統(tǒng)的平臺不統(tǒng)一等問題,為將來招生、培養(yǎng)和學(xué)位子系統(tǒng)的遷移做準(zhǔn)備.新一代研究生學(xué)籍系統(tǒng)具備良好的性能,支持移動端的服務(wù)訪問,通過基于敏捷開發(fā)與部署的模式來實(shí)現(xiàn)系統(tǒng)功能的快速更新,而且通過構(gòu)建自主研發(fā)團(tuán)隊(duì)確保了系統(tǒng)未來不斷升級改造的目標(biāo).
學(xué)籍管理;AngularJS;Spring Boot
隨著信息化技術(shù)的迅猛發(fā)展,為了提升研究生管理的質(zhì)量,全國高等院校都搭建了符合各自研究生管理業(yè)務(wù)規(guī)范的研究生信息系統(tǒng)[1].近幾年來,隨著教育部對研究生招生與培養(yǎng)等政策的不斷調(diào)整[2-3],以及高校研究生招生規(guī)模的不斷擴(kuò)大,原有的研究生管理業(yè)務(wù)也隨之發(fā)生了大量的變化與調(diào)整.華東師范大學(xué)(簡稱華東師大)于2005年開始構(gòu)建現(xiàn)有的研究生系統(tǒng),前后經(jīng)歷了三期歷時6年的系統(tǒng)研發(fā).在系統(tǒng)開發(fā)之初在校研究生數(shù)量為7千人左右,而目前已達(dá)1萬6千人,并且專業(yè)學(xué)位的學(xué)生數(shù)量和種類增加迅速,系統(tǒng)業(yè)務(wù)量也隨之增大.隨著研究生管理制度的不斷完善和管理需求的不斷變化,當(dāng)初系統(tǒng)的功能設(shè)計(jì)的局限性和各種弊端逐漸暴露出來,給日常的研究生管理工作帶來了很大的影響.經(jīng)調(diào)研,華東師大現(xiàn)有研究生信息系統(tǒng)存在如下問題:
?元數(shù)據(jù)和學(xué)籍模型不完整或缺失,很難便利地與國家研招網(wǎng)和學(xué)信網(wǎng)等進(jìn)行信息交換,不得不依賴大量的手工數(shù)據(jù)映射和數(shù)據(jù)補(bǔ)全等操作來完成國家教育部所要求的研究生管理業(yè)務(wù);
?不提供對學(xué)籍異動的申請與流程審批管理;
?不提供基于業(yè)務(wù)可配置的角色權(quán)限管理,無法靈活地為各個院系負(fù)責(zé)不同年級或?qū)I(yè)的研究生秘書或分管領(lǐng)導(dǎo)配置相應(yīng)的權(quán)限;
?缺乏與華東師大其他職能部門之間的信息交換接口,不僅無法提供準(zhǔn)確的統(tǒng)計(jì)數(shù)據(jù),而且也無法為現(xiàn)有的新業(yè)務(wù)場景提供數(shù)據(jù)分析與報(bào)表等功能,需要研究生院的管理人員直接在數(shù)據(jù)庫上編寫SQL統(tǒng)計(jì)查詢;
?招生系統(tǒng)、學(xué)籍系統(tǒng)、培養(yǎng)系統(tǒng)和學(xué)位系統(tǒng)的功能界面和交互設(shè)計(jì)各異,完成一個業(yè)務(wù)需要多步操作,信息查詢與更新的響應(yīng)速度慢,瀏覽器的兼容性差;
?不支持移動端的業(yè)務(wù)與信息訪問.
基于上述分析,可以看出:從業(yè)務(wù)角度來看,現(xiàn)有的研究生院信息系統(tǒng)已經(jīng)無法有效地支持從國家教育部到華東師大自身研究生管理的新需求,造成了大量的信息缺失與不一致,使得研究生院教職工不得不花費(fèi)大量的時間與精力以人工輔助的方式完成研究生的信息維護(hù)與業(yè)務(wù)流程管理;從技術(shù)角度來看,與現(xiàn)代基于移動互聯(lián)的系統(tǒng)設(shè)計(jì)思維[4-5]相比,現(xiàn)在使用的研究生院信息系統(tǒng)所采用的系統(tǒng)框架與軟件產(chǎn)品比較落后,這在現(xiàn)實(shí)使用中帶來了諸如用戶體驗(yàn)差,系統(tǒng)響應(yīng)速度緩慢以及瀏覽器兼容性差等問題.因此,無論從業(yè)務(wù)角度還是技術(shù)角度,研究生院必須以新業(yè)務(wù)需求為導(dǎo)向,基于互聯(lián)網(wǎng)時代的一些先進(jìn)軟件設(shè)計(jì)理念,采用能滿足一定業(yè)務(wù)流變更的系統(tǒng)框架,實(shí)現(xiàn)信息系統(tǒng)的換代,達(dá)到提升系統(tǒng)效率和降低運(yùn)維成本的目標(biāo).
經(jīng)過充分調(diào)研,華東師大于2016年8月組建了研發(fā)團(tuán)隊(duì),依托與印孚瑟斯技術(shù)中國有限公司聯(lián)合成立的實(shí)驗(yàn)室項(xiàng)目,采用自主研發(fā)模式,啟動了下一代信息平臺的研發(fā).本文重點(diǎn)研究如何將基于Web 3.0的技術(shù)框架應(yīng)用于華東師大研究生院的學(xué)籍業(yè)務(wù)中,支持基于傳統(tǒng)PC端瀏覽器和移動端的研究生管理,使得全校師生可以隨時隨地訪問與學(xué)籍相關(guān)的業(yè)務(wù).目前新一代學(xué)籍系統(tǒng)正處于上線測試階段,覆蓋了現(xiàn)有研究生院學(xué)籍管理的大部分業(yè)務(wù)規(guī)范.具體而言,本文主要工作如下:
第一,重新梳理了華東師大研究生院的學(xué)籍業(yè)務(wù)需求,在學(xué)籍子系統(tǒng)中增加了元數(shù)據(jù)和學(xué)籍異動管理,提供了與其他職能部門進(jìn)行信息交互的數(shù)據(jù)接口,完善了角色與權(quán)限管理,使得學(xué)籍管理員可以方便地為負(fù)責(zé)不同年級和專業(yè)的研究生秘書配置相應(yīng)的業(yè)務(wù);
第二,基于AngularJS與Bootstrap重新設(shè)計(jì)系統(tǒng)功能界面和用戶交互模式,不僅支持基于傳統(tǒng)PC端瀏覽器的訪問,而且還允許教職工和研究生通過移動端實(shí)現(xiàn)隨時隨地的訪問學(xué)籍業(yè)務(wù),達(dá)到了改善用戶體驗(yàn)和改善瀏覽器兼容性的目標(biāo);
第三,基于Spring Boot框架實(shí)現(xiàn)了基于RESTful接口的業(yè)務(wù)邏輯,不僅便于實(shí)現(xiàn)當(dāng)前學(xué)籍業(yè)務(wù)的研發(fā)以及未來業(yè)務(wù)功能升級和改造,還通過Spring Boot提供的各種組件(如安全組件,緩存組件和數(shù)據(jù)訪問組件等)達(dá)到提升系統(tǒng)性能的目標(biāo).
隨著IT技術(shù)的發(fā)展,信息管理系統(tǒng)主要經(jīng)歷了三種架構(gòu)模式.第一種是客戶端/服務(wù)器(C/S)架構(gòu)[6],主要涉及到瘦客戶端與胖客戶端的設(shè)計(jì),中間件和基于組件的設(shè)計(jì),以及基于可視化組件拖拽為主的開發(fā)模式,采用的典型開發(fā)語言和框架包括Dephi的PowerBuilder,微軟的VB或MFC等基于C/S的信息管理系統(tǒng).
隨著互聯(lián)網(wǎng)技術(shù)的興起[7],出現(xiàn)了基于瀏覽器/服務(wù)器(B/S)技術(shù)架構(gòu)的信息系統(tǒng)[8-9],如微軟的ASP技術(shù),J2EE,JSP,Ajax和Web服務(wù)與框架等技術(shù).近幾年,隨著JavaScript語言和瀏覽器內(nèi)核技術(shù)的成熟與壯大,甚至出現(xiàn)了基于Chrome V8引擎的服務(wù)器框架,這極大地促進(jìn)了基于B/S架構(gòu)的開源框架的發(fā)展.例如,前端的流行框架包括Reative,AngularJS和NodeJS,而后端的流行框架則有Spring Boot,Django和Struts2.
隨著智能手機(jī)的普及和移動互聯(lián)網(wǎng)的興起,傳統(tǒng)的信息系統(tǒng)正在向基于移動端的方向發(fā)展.除了采用Android和iOS的手機(jī)應(yīng)用開發(fā)模式,HTML5的出現(xiàn)有希望將更多信息管理系統(tǒng)的前端推向移動端,使得終端用戶可以隨時隨地的辦公或訪問系統(tǒng)服務(wù).不同于傳統(tǒng)基于C/S架構(gòu)或基于B/S架構(gòu)的信息管理系統(tǒng),新的研究生學(xué)籍系統(tǒng)充分考慮到未來面向移動端的業(yè)務(wù)實(shí)現(xiàn)[10-11],采用了基于AngularJS前端框架和基于HTML5的自適應(yīng)屏幕的Bootstrap風(fēng)格樣式,使得研究生、研究生院和各個院系的管理人員可以方便地使用手機(jī)上的瀏覽器來訪問學(xué)籍系統(tǒng)的各種服務(wù),這將會給研究生管理業(yè)務(wù)的使用提供極大的便利.
新一代華東師大研究生院信息系統(tǒng)的第一期研發(fā)工作主要是依據(jù)新的學(xué)籍業(yè)務(wù)需求,在統(tǒng)一信息平臺之上重構(gòu)現(xiàn)有學(xué)籍子系統(tǒng),為招生子系統(tǒng)、培養(yǎng)子系統(tǒng)和學(xué)位子系統(tǒng)的系統(tǒng)重構(gòu)與遷移進(jìn)行技術(shù)驗(yàn)證.圖1展示了學(xué)籍子系統(tǒng)的四個主要業(yè)務(wù)功能模塊:新生模塊,在校生模塊,異動模塊和畢(結(jié))業(yè)模塊.
圖1 學(xué)籍系統(tǒng)整體業(yè)務(wù)圖Fig.1 The overall service of the graduate management system
對于新生而言,每年暑期研招辦會對招生系統(tǒng)中的研究生信息進(jìn)行學(xué)號編制,以及基于學(xué)籍系統(tǒng)的元數(shù)據(jù)對相關(guān)的招生數(shù)據(jù)進(jìn)行轉(zhuǎn)換后,批量導(dǎo)入到學(xué)籍系統(tǒng)中,完成新生學(xué)籍入庫的操作.接下來,在新生入學(xué)之后,研究生院會要求所有新生完成兩個基本入學(xué)操作:入學(xué)測試和個人信息修改.其中,入學(xué)測試會以問卷的形式幫助新生了解華東師大的一些基本學(xué)籍管理規(guī)定(例如,如何申請轉(zhuǎn)專業(yè)等學(xué)籍異動的申請以及相應(yīng)的申請條件),而個人信息修改則是幫助新生完善個人學(xué)籍信息.在入學(xué)測試和個人信息修改都完成后,學(xué)籍管理員會在新生入學(xué)后的90 d內(nèi)完成新生的入籍操作,將符合入籍條件的新生轉(zhuǎn)為正式在校生.
另一方面,新生模塊和在校生模塊會共用學(xué)籍注冊,刷卡報(bào)到與繳費(fèi)三種操作.對于每個研究生而言,如果不能順利完成學(xué)籍注冊,則無法在培養(yǎng)系統(tǒng)中進(jìn)行選課等操作.具體而言,研究生(包括新生和在校生)每學(xué)年都必須繳納學(xué)費(fèi),學(xué)籍系統(tǒng)每年會從財(cái)務(wù)處把繳費(fèi)信息導(dǎo)入學(xué)籍系統(tǒng),每學(xué)期會從信息辦把刷卡報(bào)到信息導(dǎo)入學(xué)籍系統(tǒng);如果完成了刷卡報(bào)到和繳費(fèi)這兩個操作,才算完成了學(xué)籍注冊.此外,對于一些特殊情況,學(xué)籍系統(tǒng)允許學(xué)籍管理員或者院系秘書進(jìn)行手工學(xué)籍注冊操作.需要注意的是,學(xué)工部每年會提供一個助困生名單,學(xué)籍系統(tǒng)會對助困生提供一個綠色注冊通道.
相比于現(xiàn)有的學(xué)籍系統(tǒng),新系統(tǒng)的優(yōu)點(diǎn)主要包括三方面:第一,新系統(tǒng)提供了豐富的數(shù)據(jù)接口,便于與其他職能部門之間的數(shù)據(jù)交換;第二,基于新的業(yè)務(wù)需求,新系統(tǒng)提供了入學(xué)測試與正式入籍等功能,旨在改善新生入籍管理;第三,由于新生導(dǎo)入是學(xué)籍系統(tǒng)的入口點(diǎn),新系統(tǒng)完善了全部學(xué)籍業(yè)務(wù)的元數(shù)據(jù),達(dá)到了提升學(xué)籍信息質(zhì)量的目標(biāo).
現(xiàn)有的研究生院學(xué)籍系統(tǒng)不具備學(xué)籍異動的業(yè)務(wù)功能,主要原因是當(dāng)時的學(xué)籍異動業(yè)務(wù)管理僅支持少數(shù)常見類型(如休學(xué)等)且無法支持基于流程的審批模式.此外,借鑒教育部學(xué)信網(wǎng)和其他兄弟院校的學(xué)籍異動管理,華東師大研究生院已經(jīng)完成了新版學(xué)籍異動的業(yè)務(wù)管理規(guī)范,且對于每一種學(xué)籍異動都規(guī)定了申請條件和審批流程.
在學(xué)籍異動的業(yè)務(wù)調(diào)研中,我們發(fā)現(xiàn)三個重要的功能需求:第一,異動審批流程會隨著業(yè)務(wù)需求的變化而相應(yīng)的調(diào)整.例如,轉(zhuǎn)專業(yè)的異動審批流程可能會從兩個步驟變成三個步驟.第二,異動審批流程與角色權(quán)限管理聯(lián)系緊密.例如,異動審批流程的每一步都需配置不同的審批角色,且不同角色的用戶僅能審批該角色所定義的審批范圍(即該角色可以查看并審批哪些院系研究生的異動申請).第三,新系統(tǒng)必須提供方便的查詢接口使得申請人和審批人可以隨時隨地的查詢審批進(jìn)度.
基于上述需求,新系統(tǒng)必須為每一種學(xué)籍異動類型提供對應(yīng)的可配置的流程管理,能夠?qū)崟r查詢申請的審批進(jìn)度,便于申請者與中間環(huán)節(jié)的審批者了解審批的整體進(jìn)展?fàn)顩r.具體而言,新系統(tǒng)的異動模塊包含學(xué)籍異動的審批流程配置和異動審批兩部分功能.
2.2.1 流程配置
學(xué)籍異動的審批流程配置主要包括異動類型配置和審批步驟配置.圖2展示了學(xué)籍異動的審批流程配置圖.
圖2 審批流程配置圖Fig.2 The con fi guration diagram of approval process
對于異動類型配置而言,學(xué)籍異動分為異動大類和異動小類,即每種異動大類可以包括若干種異動小類.新系統(tǒng)包括延期、休學(xué)、復(fù)學(xué)、退學(xué)、結(jié)業(yè)和肄業(yè)等17種常見大類.對于延期來說,異動小類包含碩士延期和博士延期,復(fù)學(xué)包含休學(xué)復(fù)學(xué)和推遲入學(xué)復(fù)學(xué),其他異動大類也類似,系統(tǒng)中總共包含了28種小類.
對于審批步驟配置而言,新系統(tǒng)允許學(xué)籍管理員根據(jù)大類和小類為每個具體的學(xué)籍異動配置審批步驟,可以依據(jù)未來的業(yè)務(wù)變更對已有的審批流程進(jìn)行增加或者刪除審批步驟的操作,并對審批人的角色和權(quán)限進(jìn)行配置(即配置審批屬性).
2.2.2 異動審批
圖3展示了一種異動審批流程的泳道圖.從圖中我們可以看出不同的審批階段需要不同角色和權(quán)限的用戶對學(xué)籍異動申請進(jìn)行瀏覽并執(zhí)行相應(yīng)的審批操作.
例如,一名研究生首先發(fā)起一個學(xué)籍異動的申請,然后系統(tǒng)會通知該研究生所在的院系秘書;院系秘書執(zhí)行審批操作并提交審批理由后,系統(tǒng)會通知申請者當(dāng)前審批狀態(tài).如果院系秘書否決了該申請,審批立即終止;如果審批通過,則該申請會被系統(tǒng)提交到下一個審批環(huán)節(jié),即被系統(tǒng)推送給該院系的分管領(lǐng)導(dǎo),院系分管領(lǐng)導(dǎo)可以查閱院系秘書的審批意見以及申請人的申請理由執(zhí)行審批操作.如果審批通過,系統(tǒng)則將該申請繼續(xù)推送給下一階段的審批人,即學(xué)籍管理員;如果審批未通過,則系統(tǒng)會通知申請人審批被否決及其原因.學(xué)籍管理員是整個異動審批流程的最后一個步驟,與前兩級的審批流程一樣,學(xué)籍管理員會參考申請人申請理由,以及院系秘書和院系分管領(lǐng)導(dǎo)的審批理由后進(jìn)行審批;如果通過,該學(xué)籍異動申請最終順利通過;否則,將駁回申請的狀態(tài)并將理由反饋給申請人.
圖3 一個異動流程的泳道圖Fig.3 The swim lane diagram of a status change work fl ow
畢(結(jié))業(yè)模塊包括預(yù)畢(結(jié))業(yè)和離校兩個業(yè)務(wù)功能.對于預(yù)畢(結(jié))業(yè),學(xué)籍系統(tǒng)會對符合畢(結(jié))業(yè)條件的研究生提前半年開放學(xué)籍信息審核的功能頁面,便于這些研究生提前對個人學(xué)籍信息中的重要信息(如身份證號)進(jìn)行核實(shí)確認(rèn).一旦發(fā)現(xiàn)任何學(xué)籍信息的錯誤,研究生可以通過提交學(xué)籍信息的變更申請,通過學(xué)籍管理員的審核,以流程審批的模式完成學(xué)籍信息的變更操作.對于處于畢業(yè)離校狀態(tài)的研究生,學(xué)籍系統(tǒng)會為華東師大各個職能部門提供研究生的離校狀態(tài)審核操作.例如,圖書館會審核每個申請畢業(yè)離校的研究生是否已經(jīng)完成了借閱圖書的歸還操作:如果完成了,則會同意其離校申請;否則,系統(tǒng)會幫助圖書館管理員通知該研究生歸還所借圖書.每個申請畢業(yè)離校的研究生都可以查詢各個職能部門的離校審批狀態(tài)和通知,以便于了解自己的離校手續(xù)辦理進(jìn)度.
相比于現(xiàn)有的學(xué)籍系統(tǒng),新系統(tǒng)的優(yōu)點(diǎn)主要包括兩方面:第一,新系統(tǒng)實(shí)現(xiàn)了基于信息平臺提供的流程引擎的預(yù)畢(結(jié))業(yè)和離校的流程申請與審批,使得學(xué)籍管理員能夠依據(jù)業(yè)務(wù)需求的變更,通過新系統(tǒng)提供的流程配置快速實(shí)現(xiàn)業(yè)務(wù)功能變更;第二,預(yù)畢(結(jié))業(yè)允許學(xué)籍管理員根據(jù)每年教育部的要求對不同類型的學(xué)籍信息設(shè)置相應(yīng)的流程審批操作,使得新系統(tǒng)可以在不改變?nèi)魏未a的情況下,實(shí)現(xiàn)審批流程的變更操作.
新一代華東師大研究生院信息系統(tǒng)采用了基于瀏覽器/服務(wù)器(B/S)的系統(tǒng)架構(gòu),如圖4所示,主要分為負(fù)載均衡器,前端展示層,業(yè)務(wù)邏輯層以及數(shù)據(jù)庫.對于前端展示層和業(yè)務(wù)邏輯層之間,系統(tǒng)采用基于JSON數(shù)據(jù)格式的RESTful接口機(jī)制,通過面向契約的軟件設(shè)計(jì)原則,實(shí)現(xiàn)了前后端開發(fā)的分離,使開發(fā)人員在修改前端展示風(fēng)格的同時無需擔(dān)心對后端業(yè)務(wù)邏輯的影響.
圖4 系統(tǒng)架構(gòu)圖Fig.4 The system architecture
在系統(tǒng)研發(fā)中,Web前端采用了谷歌AngularJS框架和Bootstrap風(fēng)格樣式,后端應(yīng)用采用了Spring Boot框架來實(shí)現(xiàn)具體業(yè)務(wù)邏輯,而業(yè)務(wù)數(shù)據(jù)則存儲在關(guān)系模型中.在實(shí)際部署中,采用Nginx服務(wù)器作為整個系統(tǒng)的訪問入口,按照前端展示層與后端業(yè)務(wù)邏輯層的實(shí)際負(fù)載情況來處理訪問請求,并結(jié)合基于Docker[12]的應(yīng)用部署模式,有效地實(shí)現(xiàn)了系統(tǒng)處理能力的水平擴(kuò)展.具體而言,Nginx首先會接受每個用戶訪問請求,并將該請求路由給當(dāng)前工作負(fù)載最低的Web前端服務(wù)器;Web前端服務(wù)器分析并驗(yàn)證用戶請求是否有效,然后調(diào)用業(yè)務(wù)邏輯的RESTful接口;基于安全性考慮,業(yè)務(wù)邏輯服務(wù)器會分析并再次驗(yàn)證從Web前端發(fā)過來的請求,調(diào)用相應(yīng)的業(yè)務(wù)邏輯并將結(jié)果以JSON格式返回給Web前端;Nginx最后把Web前端的展示結(jié)果返回給用戶.
負(fù)載均衡是改善系統(tǒng)響應(yīng)吞吐量和速度的有效途徑,而且通過負(fù)載均衡器的訪問請求日志還可以記錄用戶訪問系統(tǒng)的行為,再結(jié)合ELK等開源日志分析框架,可以進(jìn)一步解決系統(tǒng)訪問優(yōu)化等問題.在實(shí)現(xiàn)中,我們采用了開源的Nginx負(fù)載均衡器,結(jié)合基于Docker的應(yīng)用部署模式,使得每個訪問的系統(tǒng)的請求都可以被路由給當(dāng)前負(fù)載最輕的服務(wù)器,達(dá)到提升響應(yīng)速度的目的.此外,基于Nginx還可以很方便的增加或減少Docker實(shí)例,幫助系統(tǒng)方便的實(shí)現(xiàn)按需的水平擴(kuò)展.
前端展示層采用了Google的AngularJS框架,主要原因是AngularJS框架對Web服務(wù)開發(fā)的組件支持,以及采用了MVVM的編程模式.AngularJS是基于JavaScript構(gòu)建的一套優(yōu)秀的開源Web應(yīng)用程序框架,可以有效地改進(jìn)前端代碼的開發(fā)質(zhì)量和維護(hù)成本,加速軟件開發(fā)周期.另一方面,在展示風(fēng)格方面,系統(tǒng)采用了Bootstrap,使得基于AngularJS的前端展示層頁面不但擁有良好的瀏覽器兼容性,還可以方便的支持移動端的瀏覽器,解決了現(xiàn)有學(xué)籍系統(tǒng)的瀏覽器兼容性差的問題.圖5展示了新系統(tǒng)的主界面,包括常用功能,學(xué)籍管理,培養(yǎng)管理和系統(tǒng)管理.
圖5 展示層頁面Fig.5 The page of presentation
對于業(yè)務(wù)邏輯層,本系統(tǒng)采用Spring Boot的后臺框架構(gòu)建基于RESTFUL的Web服務(wù),Spring Boot框架為各種領(lǐng)域提供了各種通用組件,如安全組件,數(shù)據(jù)訪問組件,會話管理組件等.這些組件不僅保證了系統(tǒng)開發(fā)的敏捷性,保證了系統(tǒng)服務(wù)與功能的高可靠性和高擴(kuò)展性[7],同時還考慮了實(shí)際部署的便捷性.采用面向數(shù)據(jù)接口的編程模式,使得前端和后端的服務(wù)完全分開.方便開發(fā)人員更好的設(shè)計(jì)和開發(fā)瀏覽器和移動端的展示與功能.
對于用戶認(rèn)證與權(quán)限管理,系統(tǒng)采用了基于Spring Security的安全模型,通過單點(diǎn)登錄(SSO),可以有效地支持華東師大校園統(tǒng)一用戶身份認(rèn)證以及用戶權(quán)限管控,使得整個系統(tǒng)具備高可靠和高安全性.對于權(quán)限控制方面,既要實(shí)現(xiàn)對各業(yè)務(wù)系統(tǒng)的統(tǒng)一授權(quán)管理,降低權(quán)限管理模塊與各業(yè)務(wù)系統(tǒng)之間的耦合度,同時還要實(shí)現(xiàn)對權(quán)限的粒度控制.系統(tǒng)為學(xué)籍管理員提供了權(quán)限管理模塊來幫助管理員定義不同的角色,以及為每個角色定義可以信息訪問范圍,即可以訪問哪些院系和專業(yè)的研究生.
新系統(tǒng)采用Oracle的MySQL關(guān)系型數(shù)據(jù)庫作為學(xué)籍?dāng)?shù)據(jù)的存儲系統(tǒng).在實(shí)現(xiàn)中,我們采用了Spring Data JPA組件以O(shè)RM(對象關(guān)系映射)的開發(fā)模式,不僅可以有效地以基于實(shí)體對象的模式對數(shù)據(jù)表進(jìn)行各種操作,而且還可以通過懶加載等優(yōu)化策略和基于Redis的緩存機(jī)制來緩存各種元數(shù)據(jù)以減少不必要的數(shù)據(jù)庫訪問請求.
本節(jié)將以學(xué)籍異動流程管理為案例,對學(xué)籍業(yè)務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行詳細(xì)說明.由于篇幅所限,對其他功能模塊的設(shè)計(jì)與實(shí)現(xiàn)不做介紹.
學(xué)籍異動流程管理要求系統(tǒng)為學(xué)籍管理員提供為每一個學(xué)籍異動類型設(shè)置審批流程的功能界面,這存在三個技術(shù)挑戰(zhàn).第一,審批流程的步驟可以隨需增加或減少;第二,每一步審批流程的審批人需要按照角色進(jìn)行配置;第三,不同類型的異動申請?jiān)谧罱K通過后,該申請需要按照學(xué)籍異動管理規(guī)范更新學(xué)籍表中相關(guān)的字段值.對于前兩個需求,我們設(shè)計(jì)了圖6所示的學(xué)籍異動ER圖;對于最后一個需求,目前我們采用了硬編碼的模式,在未來會對這一步采用配置文件的方式以適應(yīng)未來業(yè)務(wù)變化的需求.
圖6 學(xué)籍異動模塊類圖Fig.6 The ER model of student status change
從圖6中可以看到,學(xué)籍異動模型的實(shí)現(xiàn)由兩個實(shí)體類AuditRecord(審批記錄)和ApplyRequest(異動申請)組成,其中ApplyRequest類的每個實(shí)例對應(yīng)于研究生的每個具體的學(xué)籍異動申請,包括了學(xué)生申請學(xué)籍異動時的各種申請條件:applyDate(申請日期),reason(申請理由),auditState(審批狀態(tài))和editable(學(xué)生是否可以修改申請);AuditRecord類的每個實(shí)例則用于存放審批過程及其每個步驟的審批狀態(tài),包括每個異動申請(auditRequestID),該申請的審批流程的每步審批的標(biāo)識(auditStepID),審批人(auditor),審批日期(auditDate),審批理由(comment)和每個審批步驟的審批狀態(tài)(auditState).AuditRecord和ApplyRequest之間的關(guān)系為多對一,即對于每一個學(xué)籍異動的申請實(shí)例,會有多個不同部門的人員對該申請的不同步驟進(jìn)行審批,且每個部門的審核結(jié)果都會生成一條審核記錄,從而也就會生成多條審核記錄.
為了實(shí)現(xiàn)學(xué)籍異動的可配置性,即依據(jù)不同類別的學(xué)籍異動提供可配置的異動流程管理,學(xué)籍異動模型又在實(shí)體類AuditRecord和ApplyRequest的基礎(chǔ)上增加了用于配置審批流程的實(shí)體類AuditFlowStep(審批步驟).AuditRecord和AuditFlowStep之間的關(guān)系為多對一,即同一個審批步驟可以對應(yīng)多條審批記錄.這種設(shè)計(jì)的好處在于最大程度的復(fù)用不同學(xué)籍異動審批流程中相同的審批步驟.
最后,對于一名發(fā)起申請學(xué)籍異動的研究生而言,系統(tǒng)通過實(shí)體類StudentApplyRequest(學(xué)籍異動申請)記錄該申請,以及具體的異動類型;而實(shí)體類StateChangeRequest則定義了學(xué)籍系統(tǒng)中提供了哪些類型的學(xué)籍異動,并供研究生在申請學(xué)籍異動時通過Web功能界面進(jìn)行選擇.
對于學(xué)籍異動模型的實(shí)現(xiàn)分為兩部分:Web功能界面和業(yè)務(wù)邏輯.對于業(yè)務(wù)邏輯的實(shí)現(xiàn),系統(tǒng)采用了Spring Boot提供的Data JPA組件實(shí)現(xiàn)了相應(yīng)的實(shí)體類.采用Spring Data JPA的好處在于:第一,Spring Boot可以自動將實(shí)體類轉(zhuǎn)換為對應(yīng)的關(guān)系表,并在數(shù)據(jù)庫中將這些表創(chuàng)建出來;第二,通過擴(kuò)展Spring Data JPA的數(shù)據(jù)訪問接口的模式,可以很方便的增加自定義的數(shù)據(jù)訪問接口,并通過基于實(shí)體類的中間查詢語言實(shí)現(xiàn)基于分頁等數(shù)據(jù)庫查詢,而不需要像傳統(tǒng)的編程方式一樣書寫大量數(shù)據(jù)訪問代碼,不僅大大地提升了開發(fā)效率,而且使得數(shù)據(jù)訪問接口獨(dú)立于不同廠商提供的數(shù)據(jù)庫系統(tǒng),便于在不同的關(guān)系數(shù)據(jù)庫系統(tǒng)之間進(jìn)行遷移.
對于Web功能界面,我們實(shí)現(xiàn)了如圖7和圖8所示的學(xué)籍異動流程管理,其中圖7為學(xué)籍異動申請流程的配置界面,而圖8則展示了一個處于審批中的申請示例.基于學(xué)籍異動模型,流程配置引擎可以為每一種類別的學(xué)籍異動申請?jiān)O(shè)置具體的審批流程,其中每一步審批都包括審批序號,顯示名稱,拒絕策略,審批角色,步驟可選和默認(rèn)理由.
審批序號定義了當(dāng)前審批步驟在審批流程中的審批順序.多個審批步驟可以具有相同的審批序號,這是因?yàn)樵趯?shí)際的學(xué)籍異動審批流程中,同一院系中可能存在多個角色的教職工都可以審批該申請且只需要一個教職工審批通過后,該申請即可進(jìn)入到下一個審批步驟.此外,如果步驟可選的取值為假,則表明當(dāng)前步驟必須通過審批流程才能進(jìn)入下一序號對應(yīng)的審批步驟;否則,同一序號中只要有一個通過流程即進(jìn)入下一序號.步驟可選是學(xué)籍異動模型的新穎之處,其便捷之處在于,對于擁有相同審批序號的審批步驟,可以由一個或多個職能部門進(jìn)行審批,既增加了審批的靈活性,同時又可以將審批業(yè)務(wù)分配給多個教職工,實(shí)現(xiàn)業(yè)務(wù)負(fù)載均衡.
圖7 學(xué)籍異動流程管理Fig.7 The process management of student status change
圖8 異動審批流程Fig.8 The approval work fl ow of student status change
顯示名稱規(guī)定了申請人在查看當(dāng)前審批狀態(tài)時所能看到的名稱,可以使用單位或者部門名稱.拒絕策略包括:學(xué)生修改重新審批、拒絕申請和允許拒絕,其中學(xué)生修改重新審批規(guī)定了如果申請被拒絕,申請人可以修改已有申請并提交審批,審批重新開啟.拒絕申請規(guī)定了申請被審批人拒絕以后,整個審批流程終止,允許拒絕是一種待審批狀態(tài),申請者被拒絕并重新提交申請后無需從頭開始審批,直接提交到之前拒絕的角色下繼續(xù)審批.審批角色定義了審批人的所屬角色,包括常見的導(dǎo)師,學(xué)籍管理員等;默認(rèn)理由的設(shè)置方便管理員預(yù)先設(shè)置好常用的審批理由,避免審批時輸入審批理由,提升了系統(tǒng)易用性.
綜上所述,可配置學(xué)籍異動流程管理可以滿足華東師大研究生院潛在的業(yè)務(wù)需求變更,在最大程度上解耦業(yè)務(wù)變化與系統(tǒng)實(shí)現(xiàn).對于其他業(yè)務(wù)流程管理,如預(yù)畢(結(jié))業(yè)和離校,我們也采用了相似的模型設(shè)計(jì),以應(yīng)對研究生管理系統(tǒng)中的業(yè)務(wù)變更需求.
性能測試環(huán)境為一臺Centos7服務(wù)器,配備了8個主頻為2.40 GHz的Intel Xeon CPU E5-2630芯片,內(nèi)存為16 GB,磁盤容量為4 TB,轉(zhuǎn)速為7 200 r/s.實(shí)驗(yàn)數(shù)據(jù)包括華東師大40 000名研究生的學(xué)籍信息,以及華東師大一部分教職工的賬號(約600名).
我們測試了七種不同訪問請求的響應(yīng)時間:用戶登錄,激活角色,獲取授權(quán)頁面,獲取用戶角色,獲取角色列表,學(xué)生分頁查詢與單個學(xué)生查詢.之所以選取上述七種訪問請求是因?yàn)檫@些請求類型是系統(tǒng)最常處理的請求,具備代表性,能反映出系統(tǒng)的真實(shí)業(yè)務(wù)處理水平.在實(shí)驗(yàn)中,每種訪問請求被隨機(jī)執(zhí)行了10次,實(shí)驗(yàn)結(jié)果為10次訪問請求的平均響應(yīng)時間.圖9展示了對于實(shí)驗(yàn)中不同請求的響應(yīng)時間.從實(shí)驗(yàn)結(jié)果中可以看到,不同訪問請求的響應(yīng)時間基本維持在100 ms以內(nèi),確保了用戶訪問系統(tǒng)服務(wù)的良好體驗(yàn).
從業(yè)務(wù)設(shè)計(jì)角度來看,新一代研究生院信息系統(tǒng)充分考慮了新的學(xué)籍業(yè)務(wù)需求,旨在解決現(xiàn)有研究生院系統(tǒng)不支持學(xué)籍異動功能,用戶體驗(yàn)不好,以及瀏覽器兼容性差等問題;從系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)角度看,新一代研究生院信息系統(tǒng)首先采用了基于負(fù)載均衡與Docker部署的B/S系統(tǒng)架構(gòu),通過基于JSON數(shù)據(jù)格式的RESTful服務(wù)設(shè)計(jì)原則,使得Web前端與后端服務(wù)的設(shè)計(jì)與開發(fā)相分離;其次,Web前端采用了基于AngularJS框架和Bootstrap樣式的開發(fā)模式,使得系統(tǒng)不僅支持PC端的瀏覽器,而且還支持移動端的自適應(yīng)訪問;再次,后端業(yè)務(wù)邏輯采用Spring Boot框架,通過數(shù)據(jù)訪問組件和安全組件,不僅簡化了業(yè)務(wù)邏輯的開發(fā)與維護(hù),而且還實(shí)現(xiàn)了基于Docker部署的敏捷開發(fā)和部署.
圖9 請求的響應(yīng)時間Fig.9 Response time of request
目前新系統(tǒng)還處于上線測試階段,基于院系秘書和學(xué)籍管理員的實(shí)際測試反饋,新的學(xué)籍系統(tǒng)在用戶體驗(yàn)和業(yè)務(wù)功能等方面性能良好,可以有效地改善基于華東師大簽報(bào)系統(tǒng)的學(xué)籍異動管理所面臨的無法定義審批流程,以及系統(tǒng)響應(yīng)速度慢等問題.此外,新系統(tǒng)還充分考慮了與華東師大其他職能部門之間的數(shù)據(jù)交換問題,設(shè)計(jì)了豐富的數(shù)據(jù)訪問接口,極大地方便了研究生院與信息辦、學(xué)工部和財(cái)務(wù)處之間的信息共享.
[1]金芳芳,李興國,鐘金宏.面向數(shù)字化校園的學(xué)位和研究生教育信息系統(tǒng)[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2003(S1): 879-882.
[2]武海平,顧良飛,趙偉.下一代研究生教育信息系統(tǒng)的建設(shè)模型探討[J].學(xué)位與研究生教育,2006(12):27-30.
[3]武海平,顧良飛,趙偉.對我國高校研究生教育信息化建設(shè)的思考[J].清華大學(xué)教育研究,2004(4):111-115.
[4]滕永富,孫振龍,田麗軍,等.基于Web的研究生管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].齊齊哈爾大學(xué)學(xué)報(bào)(自然科學(xué)版),2010(3): 32-34.
[5]達(dá)明莉.基于Web Services的研究生綜合管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:華東師范大學(xué),2009.
[6]惠卉.研究生教育信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子商務(wù),2012(8):7073.
[7]李蕓,瞿偉.研究生教育體制改革對信息化建設(shè)的啟示[J].技術(shù)與創(chuàng)新管理,2010(5):601-604.
[8]李中華,彭濤,張泳.研究生教育網(wǎng)絡(luò)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].重慶郵電學(xué)院學(xué)報(bào)(社會科學(xué)版),2005(3):442-444.
[9]史新華,劉小兵,趙剛.研究生管理信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].新教育時代,2015(4):58-59.
[10]閆飛,王鵬.基于NET研究生教育信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].長春理工大學(xué)學(xué)報(bào),2010(1):174-177.
[11]陳熙,李金.基于J2EE的研究生教務(wù)管理系統(tǒng)研究與設(shè)計(jì)[J].軟件導(dǎo)刊,2010,9(3):87-88.
[12]史兵,夏帆,宋樹彬,等.研究生信息平臺中運(yùn)維系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].華東師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2017(5):225-235.
(責(zé)任編輯:李萬會)
Design and implementation of graduate student system
LI Yan-bin1,PAN Yan-hong1,GU Hang1,WANG Lei1,SHI Bing1, SUN Chen1,XIA Fan1,DONG Qi-wen1,SONG Shu-bin2
(1.School of Data Science and Engineering,East China Normal University, Shanghai 200062,China; 2.Graduate School,East China Normal University,Shanghai 200062,China)
In the recent decade,with the increase of the number of enrolled graduate students,the corresponding requirements of the graduate student management also continue changing,which incurs the problem of the existing graduate student management systems cannot match the practical requirement changes.From the business viewpoint,the current graduate student management system at ECNU does not provide a workf l ow-basedstatus change management.On the other side,from the system viewpoint,the existing graduate student management system has the problems of browser compatibility and slow system response time and cannot support mobile-side service access and secondary development on the original code base.To enable the new requirements,boost system performance and improve system usability,the school of graduate management at ECNU organizes a development team and the popular open source frameworks like AngularJS and Spring Boot are used to design and implement the next generation graduate student management system.This system aims to solve the problem of the platform is not unif i ed for dif f erent subsystems.The implementation of the next generation graduate student management system has the advantages of good response time,supporting mobile-side service access and the most important thing is that the self-organized development team can make sure the secondary development for the appearance of the new requirements, with the agile development and deployment mode.
enrollment status;AngularJS;Spring Boot
TP317.1
A
10.3969/j.issn.1000-5641.2017.05.019
1000-5641(2017)05-0213-12
2017-05-01
國家重點(diǎn)研發(fā)計(jì)劃(2016YFB1000905);國家自然科學(xué)基金廣東省聯(lián)合重點(diǎn)項(xiàng)目(U1401256);國家自然科學(xué)基金(61672234,61402177);華東師范大學(xué)信息化軟課題
李彥斌,男,碩士研究生,研究方向?yàn)閿?shù)據(jù)科學(xué)技術(shù)應(yīng)用.
夏帆,男,博士后,研究方向?yàn)樯缃幻襟w分析.E-mail:fxia@sei.ecnu.edu.cn.