仇云龍
(南京中醫(yī)藥大學(xué),江蘇 南京 210023)
中醫(yī)學(xué)屬于一級(jí)學(xué)科,根據(jù)教育部最新公布的學(xué)科專業(yè)目錄,中醫(yī)學(xué)學(xué)科有13 個(gè)二級(jí)學(xué)科,這13 個(gè)二級(jí)學(xué)科在中醫(yī)院校學(xué)院設(shè)置中一般分布在不同的學(xué)院和研究所中,以筆者所在單位——南京中醫(yī)藥大學(xué)為例,這些二級(jí)學(xué)科分散在第一臨床醫(yī)學(xué)院、第二臨床醫(yī)學(xué)院、基礎(chǔ)醫(yī)學(xué)院、護(hù)理學(xué)院、中醫(yī)文獻(xiàn)研究所中,從中醫(yī)學(xué)一級(jí)學(xué)科建設(shè)和管理的層面出發(fā),需要及時(shí)了解學(xué)科的現(xiàn)狀,不斷收集中醫(yī)學(xué)各學(xué)科、各專業(yè)的建設(shè)成果信息。本文針對(duì)此現(xiàn)狀,設(shè)計(jì)并開發(fā)了基于J2EE 和MVC 的中醫(yī)學(xué)學(xué)科信息瀏覽登記系統(tǒng),基于學(xué)科信息的梳理,本系統(tǒng)在設(shè)計(jì)時(shí)充分考慮系統(tǒng)的易用性、可移植性和擴(kuò)展性。
B/S 是Brower/Server 的英文首字母的縮寫,在這種結(jié)構(gòu)下,用戶界面完全通過瀏覽器由Web 頁面呈現(xiàn),不需要C/S(Client/Server)結(jié)構(gòu)在用戶端安裝客戶端的要求,通過瀏覽器可以很好地支持系統(tǒng)在多終端(PC,Phone,Pad 等)下的應(yīng)用,實(shí)現(xiàn)跨平臺(tái)的運(yùn)行(見圖1)。B/S 結(jié)構(gòu)的系統(tǒng)軟件只部署在服務(wù)器端,系統(tǒng)的維護(hù)和升級(jí)更為方便,系統(tǒng)也只要開發(fā)服務(wù)器端軟件,因此具有開發(fā)效率高、開發(fā)時(shí)間短、開發(fā)成本低的特點(diǎn)。
圖1 B/S 系統(tǒng)運(yùn)行
1.2.1 Web 頁面的設(shè)計(jì)
為了適應(yīng)目前多終端普及的狀況,提高系統(tǒng)的易用性,支持多終端下的用戶端界面自動(dòng)適應(yīng)顯示,系統(tǒng)開發(fā)時(shí)采用CSS+DIV 布局方式,力求避免絕對(duì)寬度的使用,采用流動(dòng)布局,系統(tǒng)開發(fā)在主要考慮PC 端應(yīng)用的同時(shí)兼顧其他終端下的使用,并為以后針對(duì)移動(dòng)端的定制打下了基礎(chǔ)。
1.2.2 Ajax 技術(shù)的使用
本系統(tǒng)中核心功能之一就是學(xué)科信息的收集,信息數(shù)據(jù)在收集時(shí)都有其具體要求,為了讓用戶在填寫數(shù)據(jù)時(shí)及時(shí)提醒其數(shù)據(jù)要求,避免用戶在數(shù)據(jù)提交后才驗(yàn)證數(shù)據(jù)是否符合要求帶來的不良使用體驗(yàn)感,系統(tǒng)應(yīng)用Ajax 技術(shù),采用jQuery 框架,運(yùn)用jQuery validate 插件完成大量數(shù)據(jù)的前端驗(yàn)證,提高了系統(tǒng)的易用性,保證了數(shù)據(jù)收集的準(zhǔn)確性。
1.3.1 J2EE 平臺(tái)
J2EE 是旨在為支持Java 語言服務(wù)器端部署而提供平臺(tái)無關(guān)的、可移植的、多用戶的、安全的、標(biāo)準(zhǔn)的企業(yè)級(jí)平臺(tái)[1],J2EE 平臺(tái)由一整套服務(wù)(Services)、應(yīng)用程序接口(APIs)和協(xié)議構(gòu)成,它對(duì)開發(fā)基于Web 的多層應(yīng)用提供了功能支持,本系統(tǒng)主要涉及JDBC,EJB,JSP,Java Servlet 技術(shù)。
1.3.2 MVC 模式
MVC 模式包括3 個(gè)部分:模型(Model)、視圖(View)和控制器(Controller),分別對(duì)應(yīng)于內(nèi)部數(shù)據(jù)、數(shù)據(jù)表示和輸入輸出控制部分[2]。MVC 設(shè)計(jì)模式分離了程序的表現(xiàn)、控制和數(shù)據(jù),具有設(shè)計(jì)清晰、易于擴(kuò)展、運(yùn)用可分布的特點(diǎn),因此在構(gòu)建Web 應(yīng)用中具有顯著的優(yōu)勢(shì),可適用于多用戶的、可擴(kuò)展的、可維護(hù)的、具有很高交互性的系統(tǒng)[3]。本系統(tǒng)中的視圖即呈現(xiàn)給用戶的Web 頁面,核心業(yè)務(wù)模型即學(xué)科信息的提交、瀏覽、修改、刪除,控制器接受用戶Web 頁面中輸入的數(shù)據(jù),通過調(diào)用相應(yīng)的模型組件去處理請(qǐng)求并通過相對(duì)應(yīng)的視圖來顯示模型返回的數(shù)據(jù)。
本系統(tǒng)采用IntelliJ IDEA 開發(fā)集成環(huán)境,基于Struts 框架實(shí)現(xiàn)MVC 模式下的系統(tǒng)開發(fā),Struts 采用EJB 作為模型,JSP和Struts Tag Library 配合作為View,使用Servlet 作為控制器,提供了對(duì)開發(fā)MVC 系統(tǒng)的底層支持[4-6]。
中醫(yī)學(xué)學(xué)科信息主要包含個(gè)人學(xué)科信息和團(tuán)隊(duì)學(xué)科信息,經(jīng)過對(duì)學(xué)科信息的梳理,學(xué)科信息主要包括相關(guān)人員的個(gè)人信息以及團(tuán)隊(duì)信息。其中,個(gè)人信息包括學(xué)術(shù)兼職、榮譽(yù)稱號(hào)、科研項(xiàng)目、教學(xué)研究項(xiàng)目、學(xué)術(shù)論文、論著、教材、科研及教學(xué)獲獎(jiǎng)(精品課程)、專利、指導(dǎo)研究生、優(yōu)碩優(yōu)博畢業(yè)論文、學(xué)術(shù)交流,團(tuán)隊(duì)信息包括重點(diǎn)學(xué)科(重點(diǎn)專科、重點(diǎn)專病)、重點(diǎn)實(shí)驗(yàn)室、重點(diǎn)研究室(工作室)、教學(xué)團(tuán)隊(duì)、科技創(chuàng)新團(tuán)隊(duì)、示范教學(xué)中心、研究基地。
系統(tǒng)結(jié)構(gòu)根據(jù)用戶角色區(qū)分為管理員和普通用戶2 大部分,系統(tǒng)的功能模塊主要有用戶信息管理模塊、學(xué)科信息的添加、修改及刪除模塊、學(xué)科信息的查詢管理模塊、學(xué)科信息的批量操作模塊。其中,學(xué)科信息添加和修改中實(shí)現(xiàn)對(duì)上傳文件類型、大小的限制,學(xué)科信息的查詢管理模塊要實(shí)現(xiàn)多重檢索,以方便學(xué)科信息管理者能獲得所需要的學(xué)科信息。
系統(tǒng)最主要的功能——學(xué)科信息登記的流程為:用戶登錄后,系統(tǒng)判斷用戶角色,進(jìn)入普通用戶界面或管理員界面,普通用戶首次登陸時(shí)需要完善個(gè)人相關(guān)材料,然后完成學(xué)科信息的提交,管理員用戶對(duì)普通用戶提交的學(xué)科信息進(jìn)行審查,審查通過后學(xué)科信息入庫,普通用戶提交的學(xué)科信息如有問題則打回給用戶修改或者直接刪除。
在中醫(yī)學(xué)學(xué)科瀏覽登記系統(tǒng)中面向的用戶是中醫(yī)學(xué)學(xué)科的師生以及學(xué)校附屬醫(yī)院中承擔(dān)教學(xué)和科研任務(wù)的醫(yī)生,這些用戶在提交科研項(xiàng)目、教學(xué)研究項(xiàng)目、論著、教材等信息時(shí)存在著提交數(shù)據(jù)重復(fù)的問題,如教師甲在某科研項(xiàng)目中排名第1,教師乙在該科研項(xiàng)目中排名第2,兩位教師都提交了數(shù)據(jù),系統(tǒng)要能識(shí)別出重復(fù)提交的信息并進(jìn)行有效的管理。針對(duì)該信息重復(fù)提交的問題,在系統(tǒng)開發(fā)過程中采取了在管理員端對(duì)重復(fù)信息進(jìn)行管理的策略,降低普通用戶在學(xué)科信息登記過程中的難度,提高了該系統(tǒng)的易用性。
系統(tǒng)需要收集的一些學(xué)科信息只是名稱不同,但基礎(chǔ)數(shù)據(jù)字段都一致,如何降低系統(tǒng)開發(fā)過程中的開發(fā)量,提升系統(tǒng)的易維護(hù)性也是本系統(tǒng)在開發(fā)過程中重視的一個(gè)環(huán)節(jié)。如科研項(xiàng)目和教學(xué)研究項(xiàng)目、重點(diǎn)實(shí)驗(yàn)室和重點(diǎn)研究室(工作室)等,這些需要登記的信息字段基本一致,在系統(tǒng)開發(fā)過程中,通過增加JAVA 類中方法參數(shù)的方式實(shí)現(xiàn)對(duì)具有重復(fù)字段的不同類別的學(xué)科信息的收集。另外,在學(xué)科信息瀏覽和管理過程中需要實(shí)現(xiàn)學(xué)科不同類別信息的批量導(dǎo)出,也需要實(shí)現(xiàn)帶參數(shù)性的適用于各類別學(xué)科信息批量導(dǎo)出的實(shí)現(xiàn)類和方法,本系統(tǒng)在實(shí)現(xiàn)批量導(dǎo)出數(shù)據(jù)過程中通過直接傳入數(shù)據(jù)庫名稱參數(shù)的形式將學(xué)科類別信息導(dǎo)出,減少了批量導(dǎo)出數(shù)據(jù)過程中需要設(shè)置較多參數(shù)的情況,讓用戶在導(dǎo)出的excel 表中在再進(jìn)行其他操作。
中醫(yī)學(xué)學(xué)科瀏覽登記系統(tǒng)基于J2EE 和MVC 實(shí)現(xiàn)系統(tǒng)的開發(fā),系統(tǒng)采用了B/S 結(jié)構(gòu),系統(tǒng)構(gòu)建基于在J2EE 平臺(tái)上,因此系統(tǒng)具有跨平臺(tái)性和很好的可移植性,系統(tǒng)在開發(fā)過程中采取的網(wǎng)頁前端技術(shù)路線以及編寫的服務(wù)端程序都有較好的可維護(hù)性、可擴(kuò)展性和可復(fù)用性。其次,由于采用MVC 設(shè)計(jì)模式,使業(yè)務(wù)邏輯和界面顯示界限清晰,降低了后期維護(hù)的難度。
基于J2EE 平臺(tái)和MVC 模式開發(fā)的中醫(yī)學(xué)科瀏覽登記系統(tǒng)采用J2EE 平臺(tái)帶來的跨平臺(tái)性、可移植性和MVC 模式帶來的系統(tǒng)易維護(hù)在當(dāng)前被越來越多的開發(fā)者所推崇,筆者在系統(tǒng)維護(hù)中深刻體驗(yàn)到這種架構(gòu)帶來的益處,通過對(duì)系統(tǒng)的不斷完善,發(fā)揮著中學(xué)學(xué)科瀏覽登記系統(tǒng)在學(xué)科建設(shè)中的作用。
[1]劉洋,高連生,王斌.基于J2EE 和MVC 設(shè)計(jì)模式分銷系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007(7):1655-1658.
[2]任中方,張華,閆明松,等.MVC 模式研究的綜述[J].計(jì)算機(jī)應(yīng)用研究,2004(10):1-3.
[3]董占球,范新弼.按模式記憶[J].計(jì)算機(jī)學(xué)報(bào),1991(4):316-318.
[4]陳苒,董占球.按模式記憶理論的記憶結(jié)構(gòu)刻畫[J].計(jì)算機(jī)研究與發(fā)展,2000(5):634-640.
[5]陸舟.Struts2 技術(shù)內(nèi)幕:深入解析Struts 架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理[M].北京:機(jī)械工業(yè)出版社,2012.
[6]張桂元.Struts 開發(fā)入門與項(xiàng)目實(shí)踐[M].北京:人民郵電出版社,2005.