楊圓飛 田萱
摘 ? 要:論文、代碼及數(shù)據(jù)集是計算機科學領(lǐng)域的重要研究資源。但論文種類繁多,論文及其相關(guān)資源(如代碼和數(shù)據(jù)集)散落在個人電腦上難以查找和共享,導(dǎo)致資源管理效率低、成本高,并容易導(dǎo)致資源泄露或丟失。在當前信息時代,提高研究資源信息化水平具有重要現(xiàn)實意義。文章為北京林業(yè)大學信息學院文本挖掘與智能信息處理研究團隊設(shè)計開發(fā)了一套研究資源共享平臺,該系統(tǒng)旨在對團隊的論文、代碼及數(shù)據(jù)集資源進行統(tǒng)一管理,厘清資源之間的相互關(guān)系。該系統(tǒng)具有資源檢索、資源上傳和下載、數(shù)據(jù)統(tǒng)計功能,能夠幫助團隊提升研究效率,節(jié)約團隊成本。
關(guān)鍵詞:資源共享;信息管理系統(tǒng);Spring MVC(Spring Model-Viewer-Controller)框架
中圖分類號:TP315 文獻標志碼:A 文章編號:1673-8454(2020)11-0092-05
隨著我國科學研究工作如火如荼地進行,研究者面臨著大量的論文閱讀,而這些論文往往涉及許多附加資源。以計算機科學領(lǐng)域來說,論文中可能涉及算法代碼和實驗數(shù)據(jù)集,而這些資源作為科學研究的主要參考資料,具有難收集、不易管理等特點。事實上,目前這些研究資源的管理并沒有特別好的自動化管理方式,可能僅僅在需要某些論文或其附加資源時才會去檢索、下載、閱讀,并且在使用完后可能就被清理了。這種原始手工的資源管理方式帶來了大量重復(fù)勞動,而且效率低下。此外,在人工管理過程中,研究資源在硬盤文件系統(tǒng)中往往只保存為一對多的關(guān)系,例如一篇論文的代碼或數(shù)據(jù)集與該論文存放在一起,但如果另一篇論文引用了相同的數(shù)據(jù)集,則需要把數(shù)據(jù)集再拷貝一份與之一起存放,這就會帶來數(shù)據(jù)冗余。并且,如果僅僅通過電腦桌面上的文件資源管理器很難查看數(shù)據(jù)集、代碼和論文的引用關(guān)系,不利于研究資源的高效利用和管理。事實上,隨著研究工作的深入,相關(guān)研究資源數(shù)量越發(fā)龐大,如何高效管理和利用這些數(shù)量巨大的論文及其附加資源越來越成為研究人員面臨的難題。
一、研究資源管理存在的問題
筆者通過對北京林業(yè)大學信息學院文本挖掘與智能信息處理團隊的分析,發(fā)現(xiàn)目前研究資源的管理仍然存在以下問題。
第一,研究資源缺少管理方案,共享困難,需要的時候通過網(wǎng)絡(luò)渠道下載后保存在個人電腦的硬盤中,共享的時候直接通過網(wǎng)絡(luò)從一方的PC上發(fā)到另一方的PC上,步驟煩瑣,而且論文與代碼或數(shù)據(jù)集常常是相關(guān)的,這種直接發(fā)送文件的方式容易讓論文與代碼或數(shù)據(jù)的關(guān)系產(chǎn)生混亂。
第二,研究資源查找和共享效率低。如果團隊成員想要查找相關(guān)資源,需要自己再去查找,不能利用其他成員已經(jīng)做過的工作。如果想利用其他成員已經(jīng)查找的結(jié)果,則必須求助于其他團隊成員,如果團隊有10個成員,那么至多需要與9個成員溝通才能夠拿到需要的資源。
第三,團隊貢獻難以追蹤。當團隊成員離開團隊,其所閱讀的論文、整理的代碼及數(shù)據(jù)集無法得到有效評估和高效復(fù)用,因此無法精確衡量該成員在團隊期間所做的工作。
二、研究資源共享平臺的優(yōu)點
筆者結(jié)合成熟的Web系統(tǒng)開發(fā)技術(shù),依托北京林業(yè)大學信息學院文本挖掘與智能信息處理研究團隊的業(yè)務(wù)需求,針對團隊研究資源設(shè)計開發(fā)了一套集資源檢索、資源上傳和下載、數(shù)據(jù)統(tǒng)計為一體的Web系統(tǒng)。
該系統(tǒng)設(shè)計了一套研究資源的管理方案,將資源管理角色分為資源上傳者和資源管理者兩類。資源管理者是系統(tǒng)的管理員(下稱系統(tǒng)管理員),能夠管理用戶和資源。資源上傳者(下稱普通注冊用戶)是團隊的研究成員,能夠上傳、下載、檢索和評價資源。其中,普通用戶在對資源發(fā)表評論時,可以引用系統(tǒng)中的其它資源,這將給團隊的資源交流帶來極大便利。團隊用戶在檢索時,不僅可以按照資源領(lǐng)域進行分類檢索,還可以根據(jù)資源領(lǐng)域的不同、資源類型的不同及關(guān)鍵詞進行組合查詢。
本系統(tǒng)具有數(shù)據(jù)統(tǒng)計功能。為了使系統(tǒng)管理員了解系統(tǒng)資源情況及用戶使用情況,該系統(tǒng)會對系統(tǒng)中資源的數(shù)量、訪問量、下載量,普通用戶上傳資源的情況、評論的情況進行統(tǒng)計,并對這些數(shù)據(jù)進行可視化展示,以便管理員對其團隊成員的貢獻進行了解。
此外,本系統(tǒng)還具有消息提醒功能,當普通用戶上傳的資源被評論或附加資源時,系統(tǒng)會自動通知用戶,以便用戶能夠及時地了解自己所上傳資源的最新情況,用戶登錄后就能夠看到消息提醒。
三、Web系統(tǒng)的架構(gòu)
研究資源共享平臺底層,根據(jù)實際業(yè)務(wù)存儲論文及附加資源的基本信息,以及用戶的基本屬性。上層以流行的Web技術(shù)構(gòu)建系統(tǒng),為用戶提供良好的交互體驗。系統(tǒng)提供對研究資源的上傳和下載服務(wù),所有的研究資源都將被系統(tǒng)統(tǒng)一管理和存儲。
研究資源共享平臺為典型的B/S架構(gòu),以成熟的MVC(Model-View-Controller)架構(gòu)SpringMVC作為依托。該架構(gòu)由請求分發(fā)器(RequestDispatcher)、控制器(Controller)、視圖解析器(ViewResolver)三大核心組件組成,后臺還包括服務(wù)層(Service)、數(shù)據(jù)持久層,如圖1所示。
其中,請求分發(fā)器接收來自瀏覽器的請求,并根據(jù)請求路徑查找控制器。之后,將請求交付給控制器處理??刂破鲗邮窍到y(tǒng)的核心,主要負責業(yè)務(wù)代碼組織及控制頁面跳轉(zhuǎn)。每個控制器接收用戶請求,并調(diào)用一個或多個服務(wù)層提供的服務(wù)實現(xiàn)業(yè)務(wù)功能。處理完成后,控制器會向視圖解析器傳遞一個ModelAndView對象。該對象由Model和View組成。Model指的是數(shù)據(jù),View指的是視圖。一般地,視圖要呈現(xiàn)給瀏覽器HTML頁面,而Model要在HTML頁面上顯示數(shù)據(jù)。視圖解析器就是把HTML頁面和數(shù)據(jù)結(jié)合起來,構(gòu)造一個動態(tài)的網(wǎng)頁返回給用戶。數(shù)據(jù)訪問對象(DAO)和Mybatis共同構(gòu)成了系統(tǒng)的數(shù)據(jù)持久層。其中,Mybatis是一個對象關(guān)系映射框架,它可以將數(shù)據(jù)訪問對象的參數(shù)映射成關(guān)系數(shù)據(jù)庫中的關(guān)系,也可以將關(guān)系數(shù)據(jù)庫中的關(guān)系映射成對象。
四、Web系統(tǒng)的關(guān)鍵技術(shù)
1.存儲結(jié)構(gòu)設(shè)計
針對研究資源共享平臺的需求,按照數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計的一般原則,通過分析系統(tǒng)實體之間的聯(lián)系后,我們建立了實體-關(guān)系圖(E-R圖,Entity-Relation Model),如圖2所示。該系統(tǒng)涉及用戶、資源、評論等實體。其中,資源、資源聯(lián)系、用戶這三者是多對多的關(guān)系,即一個資源可以和多個資源建立聯(lián)系,一個用戶可以建立多個資源聯(lián)系,一個資源也可以被多個用戶建立聯(lián)系。評論和資源有兩個一對多的關(guān)系,一個是被引用關(guān)系,即表示一個資源可以被多個評論引用,另一個是被評論關(guān)系,表示一個資源可以有多個評論。 用戶和消息也有兩個一對多關(guān)系,一個是產(chǎn)生關(guān)系,一個是發(fā)送關(guān)系。一個用戶可以產(chǎn)生多個消息,一個用戶也可以接收多個消息。另外,一個資源也可以被多個消息引用。研究資源共享平臺將這些實體進行了關(guān)系模式化??偣苍O(shè)計了9張數(shù)據(jù)表。
2.功能模塊
研究資源共享平臺根據(jù)實際業(yè)務(wù)需求將用戶分為兩類,一類是普通注冊用戶,一類是系統(tǒng)管理員。這兩類用戶分別歸屬兩大功能,即普通用戶功能和管理員功能。如圖3、圖4所示。
(1)針對普通用戶
對于普通用戶,可以上傳資源。資源包括論文、代碼和數(shù)據(jù)集。論文以pdf形式上傳至系統(tǒng),數(shù)據(jù)集和代碼以壓縮包形式上傳至系統(tǒng)。壓縮包要求支持常用壓縮格式,包括rar、zip、7z、tar。但對于系統(tǒng)中已經(jīng)存在的資源,用戶將不能再上傳。
為了使用方便,為了能夠在查看論文時就找到論文對應(yīng)的代碼或數(shù)據(jù)集,普通用戶可以為論文附加代碼或者數(shù)據(jù)集。同理,也可以為數(shù)據(jù)集或代碼附加論文。無論是為論文附加代碼/數(shù)據(jù)集,還是為代碼/數(shù)據(jù)集附加論文,其所建立的聯(lián)系是雙向的。例如,為論文附加代碼后,即代表也為代碼附加了論文。
普通用戶可以對資源進行評論。即普通用戶可以為論文、代碼或數(shù)據(jù)集發(fā)表評論。在發(fā)表評論時,可以僅僅發(fā)表文字,也可以在發(fā)表評論時引用一個資源。引用的資源可以是系統(tǒng)中已經(jīng)存在的資源,也可以是臨時上傳的一個資源。此外,還支持用戶刪除評論,即對自己發(fā)表的評論進行刪除。
普通用戶可以下載系統(tǒng)中的資源。包括下載論文、下載代碼、下載數(shù)據(jù)集。
普通用戶可以瀏覽系統(tǒng)中的資源。包括瀏覽論文、瀏覽代碼、瀏覽數(shù)據(jù)集及評論。
(2)針對管理員
管理員在資源瀏覽上,具有和普通用戶一樣的權(quán)限。即管理員也可以瀏覽系統(tǒng)中的所有論文、所有代碼、所有數(shù)據(jù)集和所有評論。但是不能上傳資源和為資源建立聯(lián)系,亦不能發(fā)表評論。
管理員擁有修改資源信息的權(quán)限,即管理員可以修改資源的標題和資源的描述。
管理員可以刪除資源。管理員可以對不喜歡的資源進行刪除。但是刪除前需要解除資源所有的附加關(guān)系。只有在一個資源沒有被任何其它資源附加時,才能將該資源刪除。即,如果刪除的是論文,那么必須解除附加在論文上的所有代碼和數(shù)據(jù)集才能完成對論文的刪除。如果是代碼或數(shù)據(jù)集,必須刪除附加在其上的論文,才能將其刪除。刪除資源時,一并刪除與其有關(guān)的評論、消息及磁盤上的對應(yīng)文件。
管理員可以對用戶進行管理,包括通過用戶注冊、查看用戶信息、更改用戶信息和統(tǒng)計注冊用戶。通過用戶注冊,即通過需要審核的用戶。用戶只有通過管理員的審核才能使用賬號登錄系統(tǒng)。查看用戶信息,即查看用戶的賬號、密碼、郵箱信息。更改用戶信息,是對用戶的賬號、密碼、郵箱的更新。統(tǒng)計注冊用戶,是對用戶在系統(tǒng)中活動的統(tǒng)計,包括統(tǒng)計某個用戶上傳的論文數(shù)量、代碼數(shù)量、數(shù)據(jù)集數(shù)量,上傳了哪些論文、哪些代碼、哪些數(shù)據(jù)集以及用戶在系統(tǒng)中發(fā)表了多少評論。
管理員可以對系統(tǒng)資源進行統(tǒng)計。即管理員查看系統(tǒng)中資源數(shù)量,以及各個領(lǐng)域資源的分布情況。
3.基于SpringMVC的系統(tǒng)架構(gòu)實現(xiàn)
該系統(tǒng)為典型的瀏覽器服務(wù)器體系結(jié)構(gòu),其中服務(wù)器后臺基于SpringMVC和MySQL數(shù)據(jù)庫,每個部分具體實現(xiàn)如下:
(1)請求分發(fā)器。該部分由SpringMVC實現(xiàn),僅需要在web.xml中配置即可。配置后,Web容器將請求交由SpringMVC管理。
(2)視圖解析器??梢詾榭刂破髋渲靡粋€默認的視圖解析器,也可以使用注解指定視圖解析器,例如@ResponseBody。本平臺中同時將兩者結(jié)合使用。
(3)控制器。控制器包含多個實例,每一個控制器處理一個業(yè)務(wù)邏輯,例如登錄有對應(yīng)登錄的控制器,上傳資源有上傳資源的控制器。每個控制器是一個Java類中的成員函數(shù),配置控制器不僅要在類上使用@Controller注解以表明它是一個控制器類外,還要在成員函數(shù)上映射一個URL,一般由@RequestMapping指定,當前端訪問此URL時,就會調(diào)用相應(yīng)的控制器(成員函數(shù))去處理。
(4)服務(wù)層。服務(wù)層定義被多個控制器共同使用的功能,以便實現(xiàn)代碼的復(fù)用以及功能的靈活組合。一般地,在Java類上使用@Service注解以表明這是一個服務(wù)層類。研究資源管理平臺對服務(wù)層的實現(xiàn)甚少,僅實現(xiàn)了判斷資源是否重復(fù)的服務(wù)。
(5)數(shù)據(jù)持久層。數(shù)據(jù)持久層負責與數(shù)據(jù)庫進行交互,主要實現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的增、刪、改、查功能,實現(xiàn)了資源數(shù)據(jù)訪問對象ResourceDAO、資源聯(lián)系數(shù)據(jù)訪問對象ConnectDAO等,同時通過同名的xml文件配置了對Mabatis的映射。
以普通用戶資源上傳為例。用戶瀏覽資源上傳界面(例如代碼上傳), 瀏覽器通過POST訪問formUserJudge這個控制器??刂破髡{(diào)用resourceUtil,resourceUtil將計算上傳資源的“標題與描述”和系統(tǒng)中存在資源的“標題與描述”的余弦相似性,通過判斷相似性來決定上傳的資源是否與系統(tǒng)中已有的資源重復(fù)。如果資源沒有重復(fù),瀏覽器再次發(fā)送POST請求調(diào)用formUserUpload控制器將文件上傳至服務(wù)器,控制器會拷貝文件至服務(wù)器指定目錄中,之后控制器返回給瀏覽器一個唯一的物理文件名。資源上傳過程中,資源的邏輯文件名、資源標題、資源簡介等信息通過POST提交給fromUserResourceUpload控制器,控制器將會把這些信息插入數(shù)據(jù)庫中。普通用戶上傳資源的流程順序圖如圖5所示。
另外,非法訪問或傳遞非法參數(shù)可能使系統(tǒng)崩潰,為了系統(tǒng)安全,有必要在業(yè)務(wù)流程進入控制器之前,使用Interceptor和SpringAOP對訪問權(quán)限及訪問參數(shù)進行驗證。如圖6所示。
大部分業(yè)務(wù)過程都會判斷有沒有登錄,如果沒有登錄,則不能繼續(xù)訪問,并強制瀏覽器跳轉(zhuǎn)到登錄界面。如果登錄了,則會再次驗證是否有相應(yīng)的訪問權(quán)限。如果遇到?jīng)]有權(quán)限的情況,則認為是非法的訪問。為防止不合法的參數(shù)進入控制器造成處理異?;虼嫒霐?shù)據(jù)庫造成數(shù)據(jù)污染,在權(quán)限判定之后會進行參數(shù)的驗證,即驗證參數(shù)是否符合設(shè)定的格式、長度,例如判斷郵箱格式。只有通過了權(quán)限控制和參數(shù)驗證兩重關(guān)口,請求才會被傳送到控制器中繼續(xù)處理業(yè)務(wù)邏輯。
4.Web系統(tǒng)的運行效果
本文以北京林業(yè)大學信息學院文本挖掘與智能信息處理研究團隊為依托,設(shè)計并實現(xiàn)了一套研究資源共享平臺,系統(tǒng)運行效果如圖7、圖8所示。該系統(tǒng)實現(xiàn)了資源的上傳、下載,添加資源關(guān)聯(lián)性,解決團隊研究資源難以有效管理、高效共享的問題,提升了研究資源管理的效率。提供了較友好的人機交互界面,且易于上手使用。
目前,該系統(tǒng)已經(jīng)在文本挖掘與智能信息處理研究團隊的服務(wù)器上運行,獲得了團隊師生的肯定。該系統(tǒng)對推動我國高校研究團隊的研究資源信息化管理具有重大意義。
參考文獻:
[1]倪曉鋒.基于SSM和Shiro的火電SIS系統(tǒng)的設(shè)計與實現(xiàn)[J].工業(yè)控制計算機,2019(9):131-132,134.
[2]黃秀文.Web應(yīng)用系統(tǒng)中RBAC模型的研究與實現(xiàn)[J].武漢紡織大學學報,2015(3):90-94.
[3]張文龍,吳林輝,楊晨耀,蔣衛(wèi)祥.基于SSM框架+vue的Web網(wǎng)盤系統(tǒng)的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2019(34):62-63,65.
[4]韓銀鋒.JSP技術(shù)實現(xiàn)上傳壓縮文件及文件相關(guān)信息并解壓[J].電腦編程技巧與維護,2015(7):18-19.
[5]timvandermeij.PDF Reader in JavaScript.Mozilla Labs[EB/OL].https://github.com/mozilla/pdf.js, 2020-03-03/2020-03-04.
[6]張振亞,王進,程紅梅,王煦法.基于余弦相似度的文本空間索引方法研究[J].計算機科學,2005(9):160-163.
(編輯:王天鵬)