投稿与审稿系统的设计与实现

2011-12-22 16:34:20来源: 电子产品世界

     计算机应用技术的进步,使期刊编辑流程信息化和网络化成为主要趋势。在线审稿投稿系统缩短了作者的投稿周期,加快了编辑和专家的审稿流程,为作者与编辑进行即时沟通架设了桥梁,方便读者、作者在线阅读稿件。
    目前出现的在线投稿、审稿系统采用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所示。

3.3 系统实现
3.3.1 投稿模块

 (1)填写稿件信息
 作者角色填写稿件信息:作者在表示层页面Modify.JSP中填写稿件信息,点击提交按钮时,页面信息通过form表单发送给控制层,控制层ModifyAction收到作者的请求,调用业务逻辑层处理逻辑Modify方法,业务层处理逻辑调用持久层update方法访问领域对象层的数据对象。数据对象与数据库中的数据对应,处理数据对象就相当于处理数据库中的数据。图4为作者填写稿件信息的逻辑时序图。

    部分代码如下:
     ModifyAction调用业务层逻辑方法的代码为:
     public String modify()
{    
    cf.modify(c);
       return Action.SUCCESS;
         }
     操作数据表的业务层接口代码:    public void modify (Caogao c);
     操作数据表业务逻辑层实现方法modify代码:public void modify (Caogao c) {
         cd.update(c);
     }
    操作数据表的持久层接口代码:public Caogao update(Caogao entity);
    操作数据表持久层实现方法update代码:
      public Caogao update(Caogao entity) {
    EntityManagerHelper.beginTransaction();
        try {
     Caogao result = getEntityManager().merge(entity);
             EntityManagerHelper.commit();
             return result;
         } catch (RuntimeException re) {
             EntityManagerHelper.rollback();
             throw re;
         }
     }
    (2)上传稿件
    作者角色上传稿件:采用在线文件上传组件Components-FileUPload上传稿件。作者在表示层页面Upload.jsp中选择要上传的稿件的路径,点击上传按钮,页面请求通过form表单发送给控制层UploadAction, form中的enctype属性用来设置上传数据的编码方式,应设为multipart/form-date。UploadActon中的execute()方法中首先创建一个字节型输入流来读取传送来的文件file。然后通过ServletAcrionContext.getRequest().getRealPath()获取存储问价的父目录,然后创建一个destFile文件。该文件用来做为输出流的目的文件。最后再创建一个关于destFile文件的输出流。创建完输入流和输出流后,就可以创建一个中间字节数组buffer来实现输入流与输出流的转换,从而实现文件的上传功能。实现上传功能,还要在struts.xml文件中对实现文件上的Action进行拦截器方面的配置,可以设置允许上传文件的大小,文件类型等等。上传成功后返回Uploadsuccess.jsp。
3.3.2 审稿模块
    (1)查阅稿件
    编辑角色查看稿件信息:稿件信息包括稿件的基本信息、稿件内容及编辑部工作人员和专家对其的评价。查看稿件内容需要下载稿件,实现方法也是采用Components-FileUPload组件,和上面讲到的上传稿件类似,这里就不再详述。在编辑角色的ViEW层页面Editor.jsp点击目标稿件的查看按钮,则通过URL链接到findSingleContribution.action,并把目标稿件的id传送给action,此action调用业务层处理逻辑findSingleContribution,业务层调用持久层findById方法查询数据对象, 查询完成后返回数据库结果,返回数据对象结果,返回逻辑处理结果,返回页面视图展现结果。
    (2)审理稿件
    编辑角色审理稿件:主要包括评价稿件,提交审理结果。评价稿件与作者角色填写稿件信息类似,调用持久层的update方法。审理结果有三种:拟录、退修、退稿、分别对应数据库flag中的1、2、3。提交审理结果就是修改flag的值。在Editor.jsp中选择目标稿件的三种稿件的任一种结果,调用控制层的review.action并传递目标稿件的id和稿件处理结果flag的值给action,调用业务层的review方法,调用持久层的update方法。返回处理结果。
4 系统测试
    把系统布置到tomcate6中,通过浏览器访问。按照注册、登陆、投稿、审稿的流程操作系统。测试结果表明基本实现了需求分析时的功能。并且该系统通过javascript实现了许多浏览器端数据输入验证功能,例如文题不能为空、验证邮箱格式、验证是否上传了稿件等等。 图5是投稿成功后,按照编辑人员审稿的流程操作的测试结果。

    本文设计的网站和系统是基于B/S结构,采用Dreamweaver制作静态网页,采用MVC模式Struts2+Spring+Jpa框架,Java语言和JSP技术,MySQL数据库实现的方案,完成了投稿和审稿功能。本系统具有如下优点:采用Java语言和JSP技术,具有跨平台的优点;基于B/S结构,系统运行更简易;采用MVC模式和Struts2+Spring+Jpa框架,易维护、易升级、易操作。本系统很好地解决了传统手工投审稿效率低、耗时长、交互性差的问题。
参考文献
[1] 李振捷. JSP网站开发典型模块与实例精讲[M].北京:电子工业出版社,2007.
[2] 胡异峰.投稿考评及分析系统的设计与实现[J].计算机工程与应用,2005(29):223-225.
[3] (荷)范德兰斯著. MySQL开发者SQL权威指南[M].许杰星,等译.北京:机械工业出版社,2008.
[4] 林永傍,刘伟平,黄红斌,等.EPON故障管理系统的设计与实现[J].光通信技术,2009,33(10):16-18.

关键字:投稿  审稿  系统  设计

编辑:eeleader 引用地址:http://www.eeworld.com.cn/gykz/2011/1222/article_9274.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
投稿
审稿
系统
设计

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved