文/展 鵬
山東大學(xué)學(xué)術(shù)與科研服務(wù)平臺的設(shè)計與實現(xiàn)
文/展 鵬
隨著高校學(xué)術(shù)的不斷發(fā)展,教師的學(xué)術(shù)成果越來越多,在高校的年度考核、崗位聘任、碩/博導(dǎo)遴選等工作中,學(xué)術(shù)成果的重要性尤其突出。每年在進(jìn)行諸如考核、遴選等工作時,老師需要到多個職能部門簽字、蓋章,尤其是有多個校區(qū)的高校,情況更為突出。為了提高學(xué)術(shù)成果的利用效率,加強(qiáng)科研服務(wù)能力,依托科研管理系統(tǒng),開發(fā)一個學(xué)術(shù)與科研服務(wù)平臺,與校內(nèi)其他系統(tǒng)實現(xiàn)數(shù)據(jù)共享,以實現(xiàn)網(wǎng)上考核、遴選等工作。該平臺減少了教師的工作量,同時提高了管理效率,該平臺的實現(xiàn)是非常有必要的。
本文基于成熟的SSH(Spring+Struts+Hibernate)框架結(jié)構(gòu)構(gòu)建學(xué)術(shù)與科研服務(wù)平臺,Spring作為平臺核心框架,負(fù)責(zé)管理數(shù)據(jù)源、業(yè)務(wù)Bean等,Struts作為平臺表現(xiàn)層,負(fù)責(zé)前臺展現(xiàn)以及請求處理,Hibernate作為平臺數(shù)據(jù)持久層,采用成熟的MVC分層結(jié)構(gòu),大大提升了系統(tǒng)的高可維護(hù)性、高可拓展性、高穩(wěn)定性。
平臺架構(gòu)設(shè)計
本文設(shè)計的平臺采用如圖1所示的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),教師、管理人員可隨時通過電腦、筆記本、平板等上網(wǎng)終端設(shè)備訪問本平臺,完成數(shù)據(jù)獲取、編輯、審核等工作。

圖1 學(xué)術(shù)與科研服務(wù)平臺網(wǎng)絡(luò)拓?fù)?/p>
本學(xué)術(shù)與科研服務(wù)平臺基于SSH框架進(jìn)行封裝、整合,形成了一套完整的技術(shù)架構(gòu)模型,包括數(shù)據(jù)資源層、基礎(chǔ)框架層、核心組件層以及業(yè)務(wù)模塊。如圖2所示。

圖2 學(xué)術(shù)與科研服務(wù)平臺技術(shù)架構(gòu)
數(shù)據(jù)資源層包含平臺數(shù)據(jù)庫和文件資源服務(wù)。考慮到并發(fā)量、數(shù)據(jù)容量等實際需求,采用MySQL作為系統(tǒng)數(shù)據(jù)庫。文件資源服務(wù)包含用戶上傳的附件、平臺配置文件等。
基礎(chǔ)框架層包含平臺使用Spring、Struts、Hibernate框架以及POI、FastJson、Log4j、Dom4j等常用工具包,以實現(xiàn)對文檔、XML、JSON數(shù)據(jù)、日志等的管理。
核心組件層是本架構(gòu)的重點開發(fā)模塊。其包含了一系列的代碼封裝,包括Action封裝、業(yè)務(wù)Bean封裝、DAO封裝、工具類封裝以及擴(kuò)展模塊。通過代碼封裝,使得開發(fā)過程符合既定約束,以實現(xiàn)開發(fā)過程可控,同時能夠提高代碼質(zhì)量以及可維護(hù)性。
業(yè)務(wù)模塊層是平臺實現(xiàn)的功能模塊。主要包括教師的項目、論文、獎勵、專利、著作等成果的瀏覽、管理、審核、統(tǒng)計等功能,同時對外與人事系統(tǒng)、財務(wù)系統(tǒng)、國際部出入境等實現(xiàn)數(shù)據(jù)對接,以滿足不同部門對學(xué)術(shù)成果的數(shù)據(jù)需求。

圖3 學(xué)術(shù)與科研服務(wù)平臺功能模塊
功能模塊設(shè)計
根據(jù)服務(wù)平臺的需求分析,將功能模塊按照角色劃分,主要包含教師、學(xué)院秘書、部門管理員、平臺管理員四種角色。教師主要查看、維護(hù)自己的學(xué)術(shù)成果。學(xué)院秘書主要查看本學(xué)院的學(xué)術(shù)成果,并可對學(xué)術(shù)成果進(jìn)行初審,根據(jù)某些業(yè)務(wù)需求,只有初審?fù)ㄟ^的成果才能用于考核、遴選之類的業(yè)務(wù)場景。部門管理員主要對學(xué)術(shù)成果進(jìn)行終審,根據(jù)某些業(yè)務(wù)需求,只有終審?fù)ㄟ^的成果才能用于某些業(yè)務(wù)場景。平臺管理員可設(shè)置數(shù)據(jù)篩選條件,如針對年度考核的成果需求,僅能獲取教師當(dāng)前考核年度的成果數(shù)據(jù)。平臺功能模塊示意圖如圖3所示。
數(shù)據(jù)接口設(shè)計
本文設(shè)計的服務(wù)平臺可與人事系統(tǒng)、財務(wù)系統(tǒng)、科研統(tǒng)計等實現(xiàn)數(shù)據(jù)交互,提供了RMI遠(yuǎn)程調(diào)用、WebService以及中間庫的數(shù)據(jù)交互方式,滿足多種調(diào)用需求。
RMI(Remote Method Invocation, 遠(yuǎn)程方法調(diào)用)是Java的一組開發(fā)分布式應(yīng)用程序的API。RMI充分發(fā)揮了Java的安全性與可移植性,其他系統(tǒng)(以Java為后臺語言開發(fā)的應(yīng)用系統(tǒng))可通過JRMP協(xié)議進(jìn)行通信,實現(xiàn)數(shù)據(jù)獲取。WebService通過SOAP協(xié)議實現(xiàn)異地調(diào)用,實現(xiàn)了跨平臺的數(shù)據(jù)交互。中間庫的交互形式適用于對數(shù)據(jù)操作要求較高的交互場景,如與財務(wù)系統(tǒng)對接,財務(wù)系統(tǒng)是嚴(yán)格內(nèi)網(wǎng)系統(tǒng),與其進(jìn)行數(shù)據(jù)交互必須通過中間庫的讀寫來實現(xiàn),數(shù)據(jù)交換雙方不直接進(jìn)行訪問,通過寫入、讀取中間庫的數(shù)據(jù)完成數(shù)據(jù)交換。本平臺的數(shù)據(jù)交互方式如圖4所示。

圖4 數(shù)據(jù)交互方式示意
數(shù)據(jù)庫設(shè)計
學(xué)術(shù)與科研服務(wù)平臺涉及到項目、論文、著作、獎勵、專利等成果,成果均與教師、學(xué)院進(jìn)行關(guān)聯(lián)。本平臺數(shù)據(jù)庫E-R圖設(shè)計如圖5所示。

圖5 數(shù)據(jù)庫E-R圖設(shè)計
以項目為例,主要包含基本信息表(project_info)、項目擴(kuò)展信息表(project_supply_info)、項目人員信息表(project_ person_info)、項目經(jīng)費(fèi)入賬信息表(project_fee_info)、項目合同信息表(project_contract_info)等、項目表結(jié)構(gòu)(核心字段)。
RMI技術(shù)功能配置
本平臺使用Java作為后臺開發(fā)語言,得力于Java語言的跨平臺、可移植等強(qiáng)大功能,尤其在開發(fā)網(wǎng)絡(luò)應(yīng)用時,遠(yuǎn)程方法調(diào)用(Remote Method Invocation, RMI)提供了有效的解決方案。基于學(xué)校主要業(yè)務(wù)系統(tǒng)大多采用Java語言開發(fā)的現(xiàn)實情況, RMI在分布式應(yīng)用開發(fā)中是非常便捷的。使用RMI,請求客戶端可以像訪問本地方法一樣調(diào)用遠(yuǎn)程服務(wù)器上的某個方法,同時可以序列化遠(yuǎn)程服務(wù)器對象到本地,在本地以對象的形式操作返回數(shù)據(jù)結(jié)果。
本平臺使用Spring框架的RMI支持,通過使用org. springframework.remoting.rmi.RmiServiceExporter,可以把系統(tǒng)服務(wù)類對象暴露為RMI對象,客戶端使用org.springframework. remoting.rmi.RmiProxyFactoryBean或普通的RMI調(diào)用來訪問服務(wù)。本平臺的RMI配置如下。
<!-- 平臺服務(wù)Remote接口實現(xiàn)類 配置 start -->
<bean id="sysService" class="cn.edu.sdu.framework.cs.SpringRmiSysService">
<property name="baseRuleManager">
<ref bean="baseRuleManager" /><!-- 業(yè)務(wù)處理Bean -->
</property>
</bean>
<!-- 平臺服務(wù)Remote接口實現(xiàn)類 配置 end -->
<!-- RMI方法調(diào)用 配置 start -->
<bean id="registry" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean">
<property name="port" value="20030" /><!-- 調(diào)用端口 -->
</bean>
<!-- RMI方法調(diào)用 配置 end -->
<!-- RMI服務(wù) 配置 start -->
<bean id="rmiServiceExporter" class="org.springframework.remoting.rmi.
RmiServiceExporter">
<property name="serviceName" value="SysService" />
<property name="service" ref="sysService" /><!-- Remote接口服務(wù)實現(xiàn)Bean -->
<property name="serviceInterface" value="cn.edu.sdu.framework.cs.SysServiceI" />
<property name="registry" ref="registry" /><!-- 調(diào)用注冊 -->
<property name="servicePort" value="20010" /><!-- RMI服務(wù)端口 -->
</bean>
<!-- RMI服務(wù) 配置 end -->
<!-- 業(yè)務(wù)管理類 配置 start -->
<bean id="baseRuleManager" class="cn.edu.sdu.framework.rulemanager.
BaseRuleManager">
<property name="logger">
<ref bean="baseLogger" /><!-- 日志記錄 -->
</property>
</bean>
<!-- 業(yè)務(wù)管理類 配置 end -->
數(shù)據(jù)對接實現(xiàn)
本平臺與校內(nèi)多個業(yè)務(wù)系統(tǒng)實現(xiàn)數(shù)據(jù)對接,綜合系統(tǒng)性質(zhì)、安全等級、系統(tǒng)框架等因素,有多種數(shù)據(jù)交互方式。
人員數(shù)據(jù)對接。平臺通過RMI遠(yuǎn)程方法調(diào)用人事系統(tǒng)方法,獲取教師基本信息,通過工號(校內(nèi)教師唯一識別碼)匹配人員,并更新本地教師基本信息。人事系統(tǒng)通過RMI遠(yuǎn)程調(diào)用平臺方法,通過教師工號,實時獲取教師的科研數(shù)據(jù),以便年度考核、崗位聘任等業(yè)務(wù)使用。
到賬經(jīng)費(fèi)對接。由于財務(wù)系統(tǒng)的安全等級較高,且運(yùn)行在財務(wù)內(nèi)網(wǎng),財務(wù)系統(tǒng)與校內(nèi)其他系統(tǒng)對接均通過中間庫的形式實現(xiàn)。本平臺將科研經(jīng)費(fèi)到賬明細(xì)發(fā)至中間庫,財務(wù)系統(tǒng)讀取中間庫的科研經(jīng)費(fèi)數(shù)據(jù),在財務(wù)系統(tǒng)中進(jìn)行入賬流程,入賬完成后,財務(wù)系統(tǒng)將該經(jīng)費(fèi)的處理結(jié)果狀態(tài)回寫至中間庫,平臺讀取中間庫的經(jīng)費(fèi)狀態(tài),將結(jié)果保存至本地。
經(jīng)費(fèi)結(jié)余對接。財務(wù)系統(tǒng)負(fù)責(zé)經(jīng)費(fèi)的支出管理,每月將經(jīng)費(fèi)支出、經(jīng)費(fèi)余額信息發(fā)送至中間庫,平臺讀取中間庫數(shù)據(jù),將結(jié)果保存至本地。
碩/博導(dǎo)對接。平臺通過RMI遠(yuǎn)程方法調(diào)用研究生系統(tǒng)方法,獲取教師的碩/博導(dǎo)身份信息,通過工號匹配教師,更新本地的碩/博導(dǎo)字段。研究生系統(tǒng)通過RMI遠(yuǎn)程調(diào)用平臺,通過教師工號,實時獲取教師的科研數(shù)據(jù),以便碩/博導(dǎo)評審使用。
平臺提供了科研數(shù)據(jù)的WebService獲取服務(wù),通過教師工號、數(shù)據(jù)類別可實時請求獲取教師的科研數(shù)據(jù)。不同平臺、不同開發(fā)語言都可以調(diào)用平臺發(fā)布的WebService服務(wù),更加具有通用性。
項目、成果查看實現(xiàn)
本平臺實現(xiàn)與人事系統(tǒng)對接,教師登錄人事系統(tǒng)后,可通過API調(diào)用訪問科研系統(tǒng)數(shù)據(jù),包括文字類成果(論文、著作)、項目、獎勵、專利、學(xué)術(shù)任職等。點擊成果名稱鏈接可從科研系統(tǒng)調(diào)取成果詳細(xì)信息數(shù)據(jù),并在頁面展示。
成果編輯實現(xiàn)
本平臺與人事系統(tǒng)對接,教師登錄人事系統(tǒng)后,在人事系統(tǒng)填寫成果信息,RMI遠(yuǎn)程請求科研系統(tǒng)業(yè)務(wù)保存成果數(shù)據(jù)。
年度考核與學(xué)術(shù)成果對接實現(xiàn)
本平臺通過API接口為人事年度考核提供科研成果數(shù)據(jù),通過數(shù)據(jù)過濾規(guī)則獲取當(dāng)前登錄教師當(dāng)前考核年度的成果數(shù)據(jù)。
項目經(jīng)費(fèi)認(rèn)領(lǐng)與財務(wù)對接
平臺通過中間庫的數(shù)據(jù)交互形式與財務(wù)入賬進(jìn)行對接,教師在科研系統(tǒng)獲取財務(wù)經(jīng)費(fèi)到賬信息,認(rèn)領(lǐng)后由財務(wù)審核通過,即可繼續(xù)完成科研入賬打印的相關(guān)工作。
平臺與其他系統(tǒng)實現(xiàn)對接的實施效果如表1所示。

表1 數(shù)據(jù)對接實現(xiàn)效果
現(xiàn)以2015年年度考核期間學(xué)術(shù)服務(wù)平臺提供的科研數(shù)據(jù)訪問為例,從圖中可以看出當(dāng)年度考核啟動時,學(xué)術(shù)科研數(shù)據(jù)請求量激增,最高達(dá)每日5.2萬次請求,隨著年度考核工作進(jìn)行,訪問量逐漸下降。在平臺運(yùn)行過程中,沒有出現(xiàn)宕機(jī)或訪問異常等事項的發(fā)生。本文實現(xiàn)了基于SSH框架的學(xué)術(shù)與科研服務(wù)平臺,具有良好的可維護(hù)性、可擴(kuò)展性。該平臺充分考慮信息化服務(wù)要求,致力于為學(xué)校其他系統(tǒng)提供數(shù)據(jù)服務(wù),大大提升了學(xué)校信息化服務(wù)水平,降低了學(xué)校工作的復(fù)雜度,提高了職能部門的工作效率以及教師滿意度。
(作者單位為山東大學(xué)信息化工作辦公室)