基于MVC模式的在线投稿与审稿系统的设计.pdf
504 0引言随着电脑的普及与网络技术的快速发展,计算机网络技术在期刊管理和编辑出版流程中的应用日益广泛,通过网络投稿与审稿已成为期刊管理的主要趋势和重要途径。在网络环境下,在线投稿与审稿系统通过 Browser/Server方式,实现作者、审稿者和编辑部之间稿件的交互反馈,实现作者、读者在互联网上的论文查询和阅读。与传统的手工流程相比,在线投稿、在线审稿、在线退修等新的手段解决了传统流程中信息交流不畅的问题,提高了稿件处理的速度,缩短了论文发表的时滞。本文基于 MVC 模式的 Strut 架构思想,讨论在线投稿与审稿系统的设计方案。1Struts 简介随着 J2EE 平台的日趋成熟,越来越多的开发人员使用JSP 技术开发基于 J2EE 平台的 Web 应用。传统的以 JSP 页面为核心的开发模式由于表示逻辑和业务逻辑的强耦合,不利于应用扩展和更新,已不能满足应用规模的进一步扩大。MVC设计模式(模型-视图-控制器)将应用程序分为模型、视图、控制器 3 个核心部分,它们各自处理各自的事务,很好地实现表示逻辑和业务逻辑的有机分离。按照 MVC 设计模式,Struts框架结构将系统分为表示层(JSP)、控制层(actionserv-let)、业务逻辑层、数据访问对象层(DAO)和数据库(DB),将系统有机地划分成 5 个层次,使系统层次逻辑清晰,功能明确,便于以后的修改、维护:(1)表示层:JSP 页面和表示组件。视图主要由 JSP 建立。Struts 自身包含了一组标记库,可以简化 JSP 页面的代码,大大提高开发效率。(2)控制层:控制数据的流动。在接收控制方面,根据用户发出的请求、提供的数据和需要的服务类型,调用系统提供的业务服务;在输出控制方面,将数据结果通过 JSP 动态产生出页面返回给用户。在 Struts 中,控制层的基本组件是一个 Ac-tionServlet类的Servlet。这个Servlet通过定义一组映射(由Java接口 ActionMapping 描述)来配置。每个映射定义一个与所请求的 URL 相匹配的路径和一个 Action 类的完整类名,这个类负责执行预期的业务逻辑,然后将控制分派给适当的表示层收稿日期:2007-03-01E-mail:作者简介:刘羽飞(1974),女,北京人,硕士,工程师,研究方向为计算机网络、软件架构设计;李健(1977),女,北京人,工程师,研究方向为面向对象设计、软件架构设计。基于 MVC 模式的在线投稿与审稿系统的设计刘羽飞1,李健2(1.北京科技大学 网络中心,北京 100083;2.太极计算机股份有限公司,北京 100083)摘要:计算机网络技术在期刊管理和编辑出版流程中的应用日益广泛,通过网络投稿与审稿已成为期刊管理的主要趋势和重要途径。通过分析科技期刊投稿与审稿的工作流程,基于 J2EE 平台,采用 MVC 模式 Struts 框架结构,分析并设计了在线投稿与审稿系统,实现了稿件作者在线投稿、期刊编辑在线审稿、在线退修等功能。该设计具有较强的适用性与可推广性,是 Struts 架构在稿件管理业务中的一个探索与尝试。关键词:J2EE 平台;在线投稿与审稿系统;MVC 模式;Struts 架构;面向对象的设计方法中图法分类号:TP311.52文献标识码:A文章编号:1000-7024(2008)02-0504-03Design of online contribution and peer review system based on MVC patternLIU Yu-fei1,LI Jian2(1.Net Center,University of Science and Technology,Beijing 100083,China;2.Taiji Computer Corporation Limited,Beijing 100083,China)Abstract:The calculator network technique manages to publish the application in the process with editor in the periodical increasinglyextensive,pass network contributions and review a draft to have become main trend and important path of periodical management.Passanalysis science and technology periodical contributions and peer review the workflow,adopt the MVC mode struts frame structure ac-cording to the structure of J2EE,analyze and designed on-line contributions and peer review system.This system carrying out to thefunction which auther contribute online and editor review online.As an explore and attempt of struts structure in manage of manuscript,that design,have strong applicability and can be expanded.Key words:J2EE platform;online contribution and peer review system;MVC pattern;structs structure;UML2008年 1月计算机工程与设计Jan.2008第 29 卷第 2 期Vol.29No.2Computer Engineering and Design 505 的组件来创建响应。(3)业务逻辑层:将可能提供给用户的操作拆分成具体的业务逻辑,再对数据对象进行增、删、改、查等基础操作(即将数据对象的元操作封装),方便控制层进行功能调用。(4)数据访问对象层:抽象和封装所有对数据源的访问、管理与数据源的连接,充当组件和数据源之间的适配器。该层实现了用来操作数据源的访问机制,向客户端隐藏了数据源的实现细节。由于当低层数据源实现变化时,该层向客户端提供的接口不会变化,因此系统调整到不同的存储模式,不会影响其客户端或者业务组件。它分离了业务逻辑层和数据访问层,同时支持多个数据库,数据库类型更换时,不涉及到业务逻辑代码的大量修改。(5)数据库:可采用不同的数据库保存业务数据。2需求概述在传统的手工流程中,作者手工递送来的稿件,由主编根据稿件内容分派给不同专业方向的编辑进行审稿,再由编辑将审稿结果告知作者,并联系退修事宜等。根据对手工流程的分析,本文将投稿与审稿系统分为 8 个功能模块(如图 1 所示):(1)用户登录:根据登录用户的权限判断登录者是作者、主编或者编辑,并根据其权限决定该用户有权操作的模块;(2)在线投稿:作者提交稿件的基本信息,并将稿件上传,论文上传或基本信息实时记录到数据库中,论文原始格式文件则上传到系统指定目录中;(3)稿件查询:作者可查询论文的收录、编辑处理状;(4)分派审稿任务:作者投稿后,主编根据稿件的基本信息,将稿件分派给不同专业方向的编辑;(5)在线审稿:编辑可下载或阅读由其负责审稿的稿件,并上传审稿意见。审稿意见和审稿时间记录到数据库中。(6)在线退修:如编辑审稿后,需要作者根据审稿意见修改文章,编辑可以通过留言、发送邮件等方式将审稿意见通知作者,并限期返回修改稿;(7)终审稿件:在线审稿后,由主编根据编辑的审稿意见决定稿件的采用与退稿;(8)数据备份:主编对已发表或退稿的稿件信息进行整理,备份数据。由于篇幅所限,本文仅对在线审稿模块进行struts架构的分析设计。3设计方案3.1业务对象模型设计业务对象模型,包含业务实体的核心功能,封装了业务实体的状态。它展现了业务对象以及它们之间的关系,从真实的或原型的角度建立、描述了事物的实例的静态映射。如图 2 所示,每个作者可投稿、查询多份稿件;每个编辑对多份稿件进行处理;主编作为编辑中的特殊一员,不仅具有编辑的审稿、退修稿件的功能,还具有如数据备份、统计查询等特殊功能。3.2处理流程本文仅对编辑在线审稿功能模块的处理流程进行详细分析设计。编辑用户登录后,系统显示出该用户有权限审阅的稿件,即由主编分派给该用户的稿件。编辑用户点击所需审阅的稿件名称,系统显示将稿件的基本信息和稿件原件。编辑用户审阅后,填写自己的审稿意见,提交审稿信息。(1)查阅稿件信息:编辑用户点击所需审阅的稿件名称,系统根据该稿件的ID查找该稿件,并将稿件的基本信息和稿件原件显示给编辑用户。(2)提交审稿信息:编辑用户审阅后,根据页面提示填写自己的审稿意见,点击页面上的“提交”按钮,系统将所填写的审稿意见,以及该编辑用户的基本信息一起保存到数据库中。并返回操作成功信息。3.3模块设计根据对业务对象模型的分析,结合 Struts 框架结构,我们将在线投稿与审稿系统分为View层、Action层、BO(businessob-ject)层、VO(valueobject)层。各层模块间的调用关系如图3所示。本文以“在线审稿”功能为例,定义各层模块进行分析设计。各层与 Struts 框架对应关系与主要功能如表 1 所示。(1)View 层与 Action 层的调用关系用户请求:View层页面发送请求给控制层EditAction:查阅稿件信息:请求由 ArticleList.jsp 页面发起,将所查阅的稿件ID 传给 EditAction,并将请求类型参数 func 置为 search;提交审稿信息:请求由 Edit.jsp 页面发起,将该编辑用户的 ID 及用图 1在线投稿与审稿系统的用例图在线投稿与审稿系统用户登录在线投稿稿件查询在线审稿在线退修分派审稿任务终审稿件数据备份主编作者编辑图 2业务对象模型作者稿件1*编辑主编1*图 3各层模块之间调用关系View 层1、用户请求6、返回菜单页面Action 层2、调用处理逻辑5、返回逻辑处理结果BO 层3、调用访问数据库方法4、返回数据库数据VO 层 506 户所填写的审稿信息传给 EditAction,并将请求类型参数 func置为 commit。处理结果:根据不同的请求类型参数func及返回值,转向不同的 View 页面:查阅稿件信息:如请求类型参数 func 为search,则转向 Edit.jsp 页面,并将所查到的稿件信息传入Edit.jsp页面;提交审稿信息:如请求类型参数func为commit,且提交成功,则转向 ArticleList.jsp 页面,否则提示错误信息。(2)Action 层与 BO 层的调用关系调用处理逻辑:EditAction 在处理 View 层的请求时将实际调用 EditBO 的处理逻辑。传入 request、DB 等参数;返回逻辑处理结果:EditBO 处理逻辑执行结束后将根据请求的不同返回不同的 EditBO 方法的数据类型(如 VOForm、Boolean 等)。(3)BO 层与 VO 层的调用关系调用访问数据库方法:EditBO 层根据不同的请求调用相应的 ArticleVO 方法,传入 VOForm、DB 参数。ArticleVOForm中将根据所调用的方法传入不同参数信息。返回数据库数据:返回ArticleVO方法在数据库中查找的结果,返回相应的数据或数据集。UML模型中的时序图是用来描述对象之间、模块之间的动态的交互关系,强调消息发送的顺序,同时显示它们之间的交互关系。根据以上分析与层次设计,我们可以用时序图表现各层的逻辑调用关系。图 4 和图 5 分别为查阅稿件信息和提交审稿信息时各模块之间调用逻辑的时序图。从序列图中可以总结出各层的属性、方法,以及传递参数的类型。由此可以进一步设计出类,并加以实现。表 1权限控制模块层次功能与Struts结构层次关系主要功能设计模块名称View 层表示层该层为用户使用的各业务界面,将用户的操作转化为相应请求发送给 Action。ArticleList.jspEdit.jspAction 层控制层该层接受用户请求,根据不同的请求调用 BO 层的相应方法;根据 BO 层方法的返回值,调用相应的 View 层页面,并将 BO 层方法的返回值传给 View 层,通过 View 层展示给操作用户。EditActionBO 层业务逻辑层供 Action 层调用,在本层实现了不同业务逻辑,在需要访问数据库时,调用 VO 层的相应方法。EditBOVO 层数据访问层本层提供访问数据库的方法(如从数据库中查找稿件基本信息、将审稿信息提交数据库);传递相应数据表数据的 Form 类,该类依据数据库表中字段定义了相应的属性和读、写属性的方法。ArticleVOArticleVOForm图 4查阅稿件信息时各层次模块间逻辑调用的时序图:ArticleList.jsp*1:execute(HttpServletrequest,HttpServletresponse):Edit.jsp:EditAction:EditVOForm:EditBO2:doShowEdit(HttpServletRequest,HttpServletResponse)4:EditVOForm5:doShowEdit(EditVOForm,DB)7:EditVOForm8:EditVOForm9:EditVOForm*func=search3:new EditVOForm(Request)6:doSelect(EditVOForm,DB)图 5提交审稿信息时各层次模块间逻辑调用的时序图:ArticleList.jsp:Edit.jsp:EditAction:EditVOForm:EditBO:EditVO1:execute(HttpServletrequest,HttpServletresponse)*2:doUpdateEdit(HttpServletRequest,HttpServletResponse)4:EditVOForm5:doUpdateEdit(EditVOForm,DB)8:int(0/1)7:booleanint=0:提交失败,返回上一页面int=1:提交成功,返回 ArticleList.jsp*9:int=0 history.goback(-1)10:int=13:new EditVOForm(Request)6:doUpdate(EditVOForm,DB)func=commit(下转第 509 页)509 图像压缩后所占的字节越多;图 5 是原始文本图像和压缩后的还原图像显示效果仿真,压缩图像的还原和原图原始图像相同、该图像压缩后的压缩率 24、该算法属于图像的无损压缩算法。3结束语这种压缩算法对基于文本的图像有较好的压缩率。由于该算法对文本图像进行压缩实现方法简单、计算量小、属于无损压缩,从而解决了LED控制系统的处理能力低下、RS232 及低速以太网通信方式传输速率低的难题;使 LED 控制系统的性能有了很大的提高、节省了大量的通讯线路时间。上面以 256 级灰度全彩的LED显示屏显示图像作为压缩对象,在实际应用中当然也有一些灰度比较低或者双基色(只有红色和黄色 LED 灯)及单基色(只有红色 LED 灯)的 LED 显示屏,针对这种 LED 显示屏就没有必要用 3 个字节进行一个像素点颜色的描述可以根据实际情况进行处理、这样会有更好的压缩率。上面的压缩算法是采用 2 个字节作为相同字节的长度表示、在 LED 显示屏较小的情况下图像的压缩率不是很高。作为一种改善措施,针对较小的显示屏幕,可以将图像相同颜色用1个字节表示或者合适的二进制位表示会有更好的压缩率。以上所讨论的压缩算法属于“一维行程编码”算法范畴,为进一步提高压缩效率,可以考虑采用“二维行程编码”算法。参考文献:1何斌,马天予,王运坚,等.Visual C+数字图像处理M.2 版.北京:人民邮电出版社,2002:567-664.2姚敏.数字图像处理M.北京:机械工业出版社,2006:137-183.3黄爱民,安向京,骆力,等.数字图像处理和分析基础M.北京:中国水利水电出版社,2005:200-230.4张益贞,刘滔.VisualC+实现 MPEG/JPEG 编解码技术M.北京:人民邮电出版社,2002:27-29.5Rafael C Gonzalez.数字图像处理M.2 版.阮秋琦,阮宇智,译.北京:电子工业出版社,2003:326-367.6常见的图像压缩技术及图像格式EB/OL.http:/,2005.7王咏刚.数据压缩技术简史.CSDN开发高手M.北京:电子工业出版社,2003.8孟君.文档图像压缩的 RLC 实现EB/OL.http:/ 506 页)图 4图像压缩后的解压流程开始退出压缩文件是否正确根据压缩文件描述信息设置解压图像大小扫描压缩文件记录当前颜色和重复次数根据颜色和重复次数序填充图像压缩文件扫描是否结束图像填充完毕NNYY图 5图像压缩与还原的效果仿真4结束语本文仅对在线投稿与审稿系统中的一个功能模块,即在线审稿模块进行了分析与设计。该设计基于 B/S 模式,采用了基于J2EE平台 MVC 模式的 Struts框架,将用户界面与业务逻辑分开,易于管理与扩展,大大提高了开发效率。同时,该设计作为 Struts 框架设计在编辑部稿件管理业务中的一个探索,为稿件管理的其它扩展业务的设计与开发打下了基础。参考文献:1胡异峰,左春.投稿考评及分析系统的设计与实现J.计算机工程与应用,2005,41(29):223-225.2于孜清,冉蜀阳,李胜.用Struts开发远程教材管理系统J.微计算机信息,2006,22(2-3):234-236.3付海艳,戴祖安,张诚一.基于B/S的网络编辑部系统的设计J.海南师范学院学报(自然科学版),2005,18(1):41-45.4李安娣.期刊稿件网络采编系统的建立J.冶金信息导刊,2006(5):45-46.5吕赛英,何先刚,王彰红,等.基于 WebService 的学报编辑出版新模式J.重庆邮电学院学报,2005(6):975-977.6张李义,李亚子.Struts开发在线考试系统J.武汉大学学报(工学版),2006,39(2):75-78.7杨勇,韩莉英.基于 MVC 模式的 Structs 框架在电子商务系统中的应用J.计算机应用研究,2006,23(5):172-174.8范会联,李献礼.基于 J2EE 的网上选课系统设计J.计算机应用研究,2006,23(9):172-174.9牛俊慧,张红光,牛会丽.基于 MVC 模式的电子商务平台构造技术研究J.计算机工程与设计,2006,27(23):4479-4481.