计算机应用技术的进步,使期刊编辑流程信息化和网络化成为主要趋势。在线审稿、投稿系统缩短了作者的投稿周期,加快了编辑和专家的审稿流程,为作者与编辑进行即时沟通架设了桥梁,方便读者、作者在线阅读稿件。
目前出现的在线投稿、审稿系统采用ASP技术。ASP是微软推出的一种技术,只能在Windows操作系统上运行,Windows本身的所有问题都会一成不变地累加到了它的身上。安全性、稳定性、跨平台性都会因为与Windows的捆绑而显现出来。由于ASP程序采用非编译语言,大大降低了程序源代码的安全性,如果黑客侵入站点,就可以获得ASP源代码;每当客户端打开一个ASP网页时,服务器都必须将该ASP程序从头到尾重读一遍,并加以编译执行,最后送出标准的HTML格式文件给客户端,因而影响了运行速度。而JSP是跨平台的,可以在所有的服务器操作系统上运行。JSP源程序不大可能被下载,一些程序完全可以放到不对外的目录中。JSP在执行以前先被编译成字节码(byte code),字节码由Java虚拟机(Java Virtual Machine)解释执行,比源码解释的效率高;服务器上还有字节码的Cache机制,能提高字节码的访问效率。并且JSP结合MVC模式将数据和业务规则从表示层分开,可以最大化地重用代码,具有易维护性。综上所述本系统采用JSP[1]技术。
1 系统功能需求概述
投稿、审稿系统的主要目标是为了简化传统手工工作流程,缩短稿件在传递过程中的时间,使投稿人审稿人的交流便利顺畅,缩短论文发表的时滞[2]。
本系统分为投稿模块与审稿模块。投稿模块包含了以下5个功能:用户注册、用户登陆、在线投稿、稿件状态查询、修改个人信息。在线投稿功能包括填写稿件信息,上传稿件,稿件信息存储在数据库中,稿件上传到系统指定的硬盘目录中,投稿系统自动给每个稿件唯一的编号,以便编辑人员对稿件正确处理。审稿模块包含以下7个功能:权限管理、用户登录、查看稿件、稿件转发、稿件审理、在线退修、拟录稿件、退稿。权限管理功能:管理员对各个使用者的权责给予其所需的权限来浏览相应的页面,使用相应的操作,此系统的管理员是编辑;查看稿件功能:审稿模块的功能是可以查看稿件的基本信息,并可以下载原稿;稿件审理功能:评价稿件,将评价录入到数据库中。
2 系统设计
2.1 系统总体设计
本文根据传统手工流程建立作者、编务、编辑、副主编、主编、专家6个角色,系统方案图如图1。这些角色可以通过编辑部网站远程访问编辑部的数据库。其中编辑角色相当于一个中部枢纽,查看编务发来的稿件,评价稿件,把稿件转发给副主编、专家,查看副主编、专家对稿件的评价,决定对稿件进行退稿、退修、录用等操作。编辑具有角色管理的权限,删除、添加、修改各个角色及其功能等。
本文设置两个相对独立的数据库(投稿数据库、工作数据库),这样,可把来自作者的垃圾数据和带病毒数据挡在外面。其中,投稿数据库可以限制作者的稿件文件的大小和数量,并把作者投稿以临时文件形式存放,同时进行自动杀毒。在投稿数据库与工作数据库之间,单独提供一个工具程序,由编辑人工参与实现数据的过滤和导入。
2.2 处理流程
本系统的业务流程如图2所示,编务收到作者来稿后先进行查阅,删除一些垃圾稿件,并把不同栏目的稿件分配给不同的编辑;编辑初审稿件可以直接退稿,可以把稿件转发给副主编和相关的专家审稿;副主编可以把稿件转发给主编审理;编辑收到副主编和专家的审稿反馈后可以决定稿件的处理结果(退稿、退修、拟录);最后作者可以在系统上查看已投稿件的状态。
2.3 数据库设计
本系统采用的数据库是MySQL[3],数据表有register、caogaoxiang、tougao、functions、module、role、role_function、user_role、userinfo、category。表register用来存储作者注册的个人信息;表caogaoxiang是还未上传稿件的情况下存储作者投稿时填写的稿件的相关信息,并且作者可以在草稿箱看到此稿件的信息;表tougao是作者上传稿件成功后存储稿件信息;表category是存储编辑部人员对稿件操作的有关信息,表tougao、表category通过公共关键字contributionNo关联,关键字contributionNo是表tougao的主键,是category的外键;表functions、module、role、role_function、user_role、userinfo用来实现权限管理功能,由编辑角色操作。表tougao和表category部分内容如表1、表2所示。
3 系统实现
3.1 MVC模式简介
MVC架构是“Model-View-Controller”的缩写,即“模型-视图-控制器”。运用这种模块化“分离”的思想,MVC设计模式实现了业务逻辑和显示的分离,大大提高了软件的质量和代码可维护性。同时,降低了各层之间的耦合,提供了应用的可扩展性。
3.2 Struts2+Spring+JPA架构
基于MVC模式,本投稿和审稿系统分为持久层、数据对象层、业务层、控制层、表现层。Struts2框架用来实现页面跳转,Spring框架用来实现该系统业务逻辑的服务层,JPA框架则用来操作实现持久层和控制事务[4]。
(1)表示层:展现给作者、编辑人员、审稿专家等用户的状态界面,此处采用包含Struts2标签的JSP页面,Struts2标签简化了JSP代码。
(2)控制层:Struts2中的action,把用户的请求转发给不同的业务逻辑进行处理,并把处理后的信息反馈到表现层。
(3)业务逻辑层:此系统的业务逻辑包含该系统的业务需求,用户的每个业务请求都提供一个与之对应的业务逻辑方法。
(4)持久层:DAO层,负责与持久化对象交互,封装了数据的增、删、查、改操作。
(5)领域对象层:通过JPA作为O/R MapPINg的映射工具,将关系型数据库映射成对象,实现以面向对象方式操作数据库。
各个模块采用的Struts2+Spring+JPA架构的系统结构图如图3所示。