梁金荣 (安徽工业大学计算机学院,安徽 马鞍山243032;滁州职业技术学院基础部,安徽 滁州239000)
方木云 (安徽工业大学计算机学院,安徽 马鞍山243032)
王善勤,吴昌雨 (滁州职业技术学院信息工程系,安徽 滁州239000)
协同文档管理系统对于工作的日常运行来说是很重要的,然而当前许多企业的文档管理仍处在纸质的手工处理阶段。先进的文档管理信息系统在国外应用已相当广泛[1],但是目前非常缺乏与国内企业需求相匹配的基于协同工作模式的文档管理系统。近年来,国内外众多学者对协同文档管理产生了浓厚的研究兴趣,在版本控制、数据一致性等方面展开了深入的研究工作[2]。协同文档管理系统基于B/S的开发模式,使用Grails敏捷开发框架进行系统实现,极大的提高了企业的工作效率。但是国内使用Grails框架进行Web应用开发还不是很广泛,目前北京交通大学穆利伟对基于Grails的Web应用进行研究[3],天津大学孙志刚对基于Grails框架的银保通管理系统进行研究与构建[4]等。下面,笔者研究如何利用Grails框架开发“协同文件管理系统”,着重解决了协同文档管理系统设计与实践相结合的问题。
系统以某企业员工通过网络上传下载工作任务书及相应图纸等,大大简化了人和人、人与物的接触,通过协同文档管理系统来实现部门和部门协调工作,实时监控管理中的各个环节。数据文档集中管理,对企业各级人员,根据不同权限设置最大程度的文档共享,避免管理漏洞的产生。依据模块化开发思想,该系统分成多个子系统,各个子系统可以独立运行,也可以实现数据共享;采用该结构,方便升级部分模块。系统将用户根据不同的权限划分为几类用户,每类用户只能在其级别的管理集合中操作,不能越权使用。用户登录时对密码进行加密操作,保障了系统数据库的安全性和易用性。结合协同文档管理系统特点,选择Tomcat 6.0作为该系统的 WEB服务器,后台数据库使用MySQL Server 5.0。该系统可以在任何安装IE、Mozilla Firefox等浏览器的设备上使用。
用户与用户间不存在彼此隶属关系,它只能属于某个角色,角色可以隶属其他角色且可以为多重隶属关系。系统以某企业需求为背景,设计系统的角色。
1)企业管理者,对项目文件进行监管、审核、查询、了解统计数据等。
2)项目经理,负责具体项目立项、撰写项目设计方案、实施项目驱动、项目协调等。
3)设计工程师,负责设计项目图纸并编写相应技术文档等。
4)采购管理员,负责外购件采购,对采购数据文件进行管理等。
5)装配工程师,根据图纸负责将项目零件组装为项目成品,并修改文件状态等。
6)产品最终客户,了解当前项目进度、查询既往项目、提供项目建议等。
7)系统管理员,设置、管理系统,即执行添加用户账户等基础功能并进行定期备份等系统维护工作。
通过对某企业所涉及的文档管理流程的分析、调研、跟班作业,又与企业各部门代表进行深入交流、讨论,分析协同文档管理系统的功能需求。
1)项目文档管理包括立项文档管理、审批文档管理、结项文档管理。立项文档管理,通过选型基本明确项目框架及范围,在选型基础上由项目经理负责立项,并上传与项目相关文件;审批文档管理,审批通过则标志一个项目正式纳入工作流程;结项文档管理,通过内部验收及客户端验收后,由项目经理撰写结项报告并伴随售后的进行,可以不断的添加售后服务报告。
2)设计文档管理包括设计方案管理、设计图纸管理、装配图纸管理。设计方案管理是指由项目经理指定设计工程师设计项目立项方案,上传立项方案,并可进行相应版本、完成状态等修改操作;设计图纸管理是指设计工程师接收到任务后应在指定时间内上传项目设计图纸及相关文档,进行相应文档操作;装配图纸管理是指设计工程师在指定时间内上传项目装配图纸及相关文档,进行相应文档操作。
3)生产文档管理包括任务书管理、检验报告管理、质量报告管理。任务书管理是指生产车间根据生产任务书,按照设计图纸进行生产,根据完成情况修改任务书相应状态等,对相应文档进行操作;检验报告管理是指检验部门根据产品检验情况,编写体验报告,对其进行相应操作;质量报告管理是指根据产品检验情况,编写产品质量报告,对其进行相应操作。
4)文档类别管理包括文档查询、文档类型设置。文档查询是指对系统中已有各类资源实现智能查询,根据输入的查询关键字查找项目、设计图、小结等各类相关资源,为使用者提供帮助;文档类型设置是指对各类项目进行有效分类,添加文档类别、修改等操作。
5)文档库对不同类型进行归类管理,方便查询操作,分类类别根据手动添加自动更新显示。
6)管理员管理包括添加管理员、用户管理、发文统计。添加管理员由系统管理员添加系统用户,分配登录账户及密码,用户选择角色并继承角色权限等;用户管理是指超级管理员具有添加系统用户功能,可以设置用户的角色等操作;发文统计是指超级管理员具有对上传文档进行统计的权限,方便企业决策层对各部门工作进行监控、统计分析等操作。
7)系统设置包括更改密码、修改系统参数。更改密码,修改当前登录系统用户的密码;修改系统参数,设置使用该系统进行文档协同工作的企业相关信息等。
图1 用例图
参与者是协同文档管理系统的具体用例的驱动者,经分析研究,确定该系统的参与者由普通用户、普通管理员、超级管理员组成,参与者隶属于相关角色。用例图如图1所示。
普通用户主要涉及到相关查询功能,主要是公司各部门一线工人需要上网查看相应图纸文档等,从而开展相应工作,利用网络随时随地进行学习。普通管理员具备项目文档、设计文档、生产文档、文档查询、文档类别设置、密码修改等操作。超级管理员除具备普通管理员功能权限外,还具备发文统计、添加管理员、用户管理等操作。
根据前面所述功能需求的分析,协同文档管理系统划分具体模块的功能结构图如图2所示。
图2 系统功能模块结构图
协同文档管理系统设计中数据库设计有着重大意义,数据库系统结构的设计直接影响系统的实现和运行效率[5]。由此,通过对协同文档管理系统的分析、研究,设计出系统数据库的实体-关系图,如图3所示。
经过对协同文档管理系统的数据库系统分析和逻辑设计后,数据库的结构已经比较清晰。在数据库管理工具中创建一个数据库,将其命名为“collaboration”,再向该数据库中添加6个表:converts, document, document_class,enclosure,sys_log,users,添加相应视图、存储过程等。
图3 系统数据库的E-R图
1)域模型类层。在面向对象的Web应用程序开发中,经常会用到对象关系映射(ORM)来将对象映射到关系数据库中。Hibernate对象关系映射框架在众多的ORM产品中是比较成功且应用比较广泛的。Grails使用了Hibernate作为底层,从而使Grails支持对象关系映射,在Grails中这一特性被称之为GORM。Grails工程的域模型类都放在grails-app/domain目录下。域模型类会遵照“约定”实现与数据库中的表间的关联。具体约定如下:将类名中的各个单词的第一个字母变为小写,并在单词之间用下划线“-”连接,就生成与之相匹配的表名;属性与表中的列是一一对应的,属性名和列名间的转换与类名和表名间的转换相同;域模型类会默认自动添加id属性且会在表中生成出来;域模型类也会默认创建一个版本(version)属性,在数据库中会自动添加相匹配的字段。
系统中比较重要的域模型类有Converts、Document、DocumentClass、Enclosure、SysLog、Users。该类对应数据库中的用户表document,该类中共定义了8个属性,分别对应表中的8个字段,并通过Grails的约束生成器(Constraints)对相应字段设定约束条件。
2)控制器类层。控制器作为一个主动者在Grails MVC中处于核心地位,负责接收来自客户端请求并依据请求进行业务逻辑处理。Grails会为每个请求创建一个新的控制器实例。常用几种处理请求的方式如下[6]:委托给一个匹配的视图;操作域模型,将它在视图上显示;直接写入Response的writer对象中;重定向到另一个操作(Action)或另一个控制器中的操作。Grails中的控制器类位于grails-app/controllers目录中,类名都是以Controller结尾。
系统中比较关键的控制器有DocumentController、DocumentClassController、EnclosureController、LoginContoller、UploadController、UsersController。
3)视图类层。Grails提供了一种新的视图技术,即GSP,与JSP一样有很多直接可以使用的对象。在GSP页面中可以方便地编写Groovy代码。GSP页面文件都是存放在Grails中的grails-app/view目录中,每个控制器都在view目录中对应一个与控制器名相同的文件夹,每个文件夹下会产生该控制器有关的gsp页面。每个gsp页面常常对应着控制器类中的一个方法。
系统的grails-app/view目录中,默认情况下可以生成6个文件夹,每个文件夹对应一个控制器类,每个文件夹下的一个gsp文件对应控制器类中的一个方法。可以根据自身需要进行灵活修改。Grails在view目录下自动创建“layout”文件夹,该文件夹为系统默认布局器,其中会自动生成“main.gsp”文件作为默认布局文件,如果使用默认布局,只需在gsp文件head节点中加入:<meta name=“layout”content=“main”/>即可。开发人员也可根据需要自定义新的布局。定义“admin.gsp”文件作为布局文件,按以上修改相应代码,使用自定义的布局文件。
用户管理与文档管理是整个系统的基础,要实现生产流程管理,必须以文档为载体。下面重点介绍系统的用户管理、文档管理、文档查询功能实现效果等。由于篇幅有限,其他功能在这里就不再赘述。
1)用户管理分为用户登录、添加用户、修改用户、查询用户、发文统计等基本操作。当用户登录成功后进入系统主界面,效果如图4所示。
2)文档管理包括文档类别设置、发布文档、文档查询等主要功能。当所有的文档上传完毕后点击“保存”按钮完成文档的发布,页面跳转的文档查看页,用于查看刚才发布完成的文档,上传的附件服务器也会自己将其转换成swf文件,文档查看页面如图5所示。
图4 系统主界面效果图
随着理论研究和信息技术的不断深入和发展,协同文档管理系统将在社会的各个领域获得广泛的应用。笔者研究了协同文档管理系统的关键技术,分析了企业协同文档管理工作,建立了协同文档管理系统的模型;在分析了Grails框架的基础上,针对B/S结构模式的优越性,完成了系统的设计、实现、测试。实践证明该系统能够为企业提供网络环境下的文档管理协同工作环境,使各种文档信息得以充分利用,有效地提高了工作效率。但今后仍需继续关注先进开发技术并将其应用到协同文档管理系统中,为企业提供更加智能、高效的协同文档管理系统。同时也为运用Grails框架开发Web应用系统提供一定参考。
图5 文档查看页面
[1] 赵剑颖 .一个CSCW系统应用的研究-报纸的实时协同编辑系统 [J].计算机工程与应用,2000(11):148-150.
[2] 汪黎祥 .基于ASP的分布式协同文档管理系统的研究 [D].杭州:浙江大学,2005.
[3] 穆利伟 .基于Grails的Web应用进行研究 [D].北京:北京交通大学,2010.
[4] 孙志刚 .基于Grails框架的银保通管理系统进行研究与构建 [D].天津:天津大学,2010.
[5] 王锋,阎艳,赵博 .基于Struts的KBE系统设计与开发 [J].兵工学报,2008,29(6):735-737.
[6] (美)Thomas D,Hansson D H.Web开发敏捷之道一应用Rails进行敏捷开发 [M].第2版 .林芷薰译 .北京:电子工业出版社,2007:223-241.