投稿與審稿系統的設計與實(shí)現
計算機應用技術(shù)的進(jìn)步,使期刊編輯流程信息化和網(wǎng)絡(luò )化成為主要趨勢。在線(xiàn)審稿、投稿系統縮短了作者的投稿周期,加快了編輯和專(zhuān)家的審稿流程,為作者與編輯進(jìn)行即時(shí)溝通架設了橋梁,方便讀者、作者在線(xiàn)閱讀稿件。
目前出現的在線(xiàn)投稿、審稿系統采用ASP技術(shù)。ASP是微軟推出的一種技術(shù),只能在Windows操作系統上運行,Windows本身的所有問(wèn)題都會(huì )一成不變地累加到了它的身上。安全性、穩定性、跨平臺性都會(huì )因為與Windows的捆綁而顯現出來(lái)。由于A(yíng)SP程序采用非編譯語(yǔ)言,大大降低了程序源代碼的安全性,如果黑客侵入站點(diǎn),就可以獲得ASP源代碼;每當客戶(hù)端打開(kāi)一個(gè)ASP網(wǎng)頁(yè)時(shí),服務(wù)器都必須將該ASP程序從頭到尾重讀一遍,并加以編譯執行,最后送出標準的HTML格式文件給客戶(hù)端,因而影響了運行速度。而JSP是跨平臺的,可以在所有的服務(wù)器操作系統上運行。JSP源程序不大可能被下載,一些程序完全可以放到不對外的目錄中。JSP在執行以前先被編譯成字節碼(byte code),字節碼由Java虛擬機(Java Virtual Machine)解釋執行,比源碼解釋的效率高;服務(wù)器上還有字節碼的Cache機制,能提高字節碼的訪(fǎng)問(wèn)效率。并且JSP結合MVC模式將數據和業(yè)務(wù)規則從表示層分開(kāi),可以最大化地重用代碼,具有易維護性。綜上所述本系統采用JSP[1]技術(shù)。
1 系統功能需求概述
投稿、審稿系統的主要目標是為了簡(jiǎn)化傳統手工工作流程,縮短稿件在傳遞過(guò)程中的時(shí)間,使投稿人審稿人的交流便利順暢,縮短論文發(fā)表的時(shí)滯[2]。
本系統分為投稿模塊與審稿模塊。投稿模塊包含了以下5個(gè)功能:用戶(hù)注冊、用戶(hù)登陸、在線(xiàn)投稿、稿件狀態(tài)查詢(xún)、修改個(gè)人信息。在線(xiàn)投稿功能包括填寫(xiě)稿件信息,上傳稿件,稿件信息存儲在數據庫中,稿件上傳到系統指定的硬盤(pán)目錄中,投稿系統自動(dòng)給每個(gè)稿件唯一的編號,以便編輯人員對稿件正確處理。審稿模塊包含以下7個(gè)功能:權限管理、用戶(hù)登錄、查看稿件、稿件轉發(fā)、稿件審理、在線(xiàn)退修、擬錄稿件、退稿。權限管理功能:管理員對各個(gè)使用者的權責給予其所需的權限來(lái)瀏覽相應的頁(yè)面,使用相應的操作,此系統的管理員是編輯;查看稿件功能:審稿模塊的功能是可以查看稿件的基本信息,并可以下載原稿;稿件審理功能:評價(jià)稿件,將評價(jià)錄入到數據庫中。
2 系統設計
2.1 系統總體設計
本文根據傳統手工流程建立作者、編務(wù)、編輯、副主編、主編、專(zhuān)家6個(gè)角色,系統方案圖如圖1。這些角色可以通過(guò)編輯部網(wǎng)站遠程訪(fǎng)問(wèn)編輯部的數據庫。其中編輯角色相當于一個(gè)中部樞紐,查看編務(wù)發(fā)來(lái)的稿件,評價(jià)稿件,把稿件轉發(fā)給副主編、專(zhuān)家,查看副主編、專(zhuān)家對稿件的評價(jià),決定對稿件進(jìn)行退稿、退修、錄用等操作。編輯具有角色管理的權限,刪除、添加、修改各個(gè)角色及其功能等。
本文設置兩個(gè)相對獨立的數據庫(投稿數據庫、工作數據庫),這樣,可把來(lái)自作者的垃圾數據和帶病毒數據擋在外面。其中,投稿數據庫可以限制作者的稿件文件的大小和數量,并把作者投稿以臨時(shí)文件形式存放,同時(shí)進(jìn)行自動(dòng)殺毒。在投稿數據庫與工作數據庫之間,單獨提供一個(gè)工具程序,由編輯人工參與實(shí)現數據的過(guò)濾和導入。
2.2 處理流程
本系統的業(yè)務(wù)流程如圖2所示,編務(wù)收到作者來(lái)稿后先進(jìn)行查閱,刪除一些垃圾稿件,并把不同欄目的稿件分配給不同的編輯;編輯初審稿件可以直接退稿,可以把稿件轉發(fā)給副主編和相關(guān)的專(zhuān)家審稿;副主編可以把稿件轉發(fā)給主編審理;編輯收到副主編和專(zhuān)家的審稿反饋后可以決定稿件的處理結果(退稿、退修、擬錄);最后作者可以在系統上查看已投稿件的狀態(tài)。
2.3 數據庫設計
本系統采用的數據庫是MySQL[3],數據表有register、caogaoxiang、tougao、functions、module、role、role_function、user_role、userinfo、category。表register用來(lái)存儲作者注冊的個(gè)人信息;表caogaoxiang是還未上傳稿件的情況下存儲作者投稿時(shí)填寫(xiě)的稿件的相關(guān)信息,并且作者可以在草稿箱看到此稿件的信息;表tougao是作者上傳稿件成功后存儲稿件信息;表category是存儲編輯部人員對稿件操作的有關(guān)信息,表tougao、表category通過(guò)公共關(guān)鍵字contributionNo關(guān)聯(lián),關(guān)鍵字contributionNo是表tougao的主鍵,是category的外鍵;表functions、module、role、role_function、user_role、userinfo用來(lái)實(shí)現權限管理功能,由編輯角色操作。表tougao和表category部分內容如表1、表2所示。
3 系統實(shí)現
3.1 MVC模式簡(jiǎn)介
MVC架構是“Model-View-Controller”的縮寫(xiě),即“模型-視圖-控制器”。運用這種模塊化“分離”的思想,MVC設計模式實(shí)現了業(yè)務(wù)邏輯和顯示的分離,大大提高了軟件的質(zhì)量和代碼可維護性。同時(shí),降低了各層之間的耦合,提供了應用的可擴展性。
3.2 Struts2+Spring+JPA架構
基于MVC模式,本投稿和審稿系統分為持久層、數據對象層、業(yè)務(wù)層、控制層、表現層。Struts2框架用來(lái)實(shí)現頁(yè)面跳轉,Spring框架用來(lái)實(shí)現該系統業(yè)務(wù)邏輯的服務(wù)層,JPA框架則用來(lái)操作實(shí)現持久層和控制事務(wù)[4]。
(1)表示層:展現給作者、編輯人員、審稿專(zhuān)家等用戶(hù)的狀態(tài)界面,此處采用包含Struts2標簽的JSP頁(yè)面,Struts2標簽簡(jiǎn)化了JSP代碼。
(2)控制層:Struts2中的action,把用戶(hù)的請求轉發(fā)給不同的業(yè)務(wù)邏輯進(jìn)行處理,并把處理后的信息反饋到表現層。
(3)業(yè)務(wù)邏輯層:此系統的業(yè)務(wù)邏輯包含該系統的業(yè)務(wù)需求,用戶(hù)的每個(gè)業(yè)務(wù)請求都提供一個(gè)與之對應的業(yè)務(wù)邏輯方法。
(4)持久層:DAO層,負責與持久化對象交互,封裝了數據的增、刪、查、改操作。
(5)領(lǐng)域對象層:通過(guò)JPA作為O/R Mapping的映射工具,將關(guān)系型數據庫映射成對象,實(shí)現以面向對象方式操作數據庫。
各個(gè)模塊采用的Struts2+Spring+JPA架構的系統結構圖如圖3所示。
評論