基于Web的文档管理系统的设计与实现

2019-11-17 04:05杨永利
电脑知识与技术 2019年26期
关键词:系统开发管理系统

杨永利

摘要:通过调研,对比分析了传统FTP服务器与市场上各类文档管理系统的优势与不足。确立以中小型企业为系统使用者,以满足企业的特定需求为设计原则,为其设计一个灵活、高效的轻便型文档管理系统。系统设计方面,首先整体开发以Akka-http为框架;凭借Scala与java的互操作性;其次开发过程合理地运用了java功能强大的库函数,再结合Scala语言易扩展、高并发的后台服务架构,最终开发出以Scala为基础语言的系统程序。

关键词:Web文档; 管理系统;系统开发; Scala; java

中图分类号:TP311        文献标识码:A

文章编号:1009-3044(2019)26-0071-04

开放科学(资源服务)标识码(OSID):

Abstract:Through the research, this thesis compares and analyzes the advantages and disadvantages of traditional FTP servers and various document management systems on the market. Establishing a small and medium-sized enterprise as a system user to meet the specific needs of the enterprise as a design principle, design a flexible and efficient portable document management system. As for system design, the overall development is based on Akka-http. With the interoperability of Scala and Java, the development process makes reasonable use of Java's powerful library functions, combined with Scala's easy-to-expand, high-concurrency background service architecture, and develops Scala-based system programs.

Key words:Web; document management; system development; Scala; java

1引言

随着信息处理技术和网络技术的快速发展,人们获取信息的能力与速度大大提升,面对与日俱增的各类文档,如何高效存放与管理成为人们亟待解决的问题。随着电子文档的形式和数量日益增多,我们对文档管理的需求也在日益提高、改变。人们需要一个安全可靠的网上系统,来替我们保存整理那些对我们有用的文件[1]。

对于个人文档管理而言,我们所需要的不仅仅是将它们安全存放起来,更要在我们需要浏览相应的信息内容时,能够方便快捷的获取。另一方面,经济快速发展,兴起了许多创业公司与SoHo办公企业,对于公司内部的文档,进行合理配置与管理,以此将公司积攒沉淀的知识文档构建出该企业的知识储备体系,能够帮助企业更好更快发展。由此,越来越多的办公团体、事业单位、科研机构甚至个人文件都已开始迈向信息化的管理模式,企业中的文档资料已从纸质存储转变为电子存储,并通过文档管理系统来管理部署电子文档[2]。

最为大家的熟知的是FTP(File Transfer Protocol),它不仅是一种HTTP协议,同时也是一个应用程序[3]。它满足了对于文档管理而言基本的上传与下载功能。但是对于用户权限的管理过于单一,且对文档的归档分类需要人力操控,非常麻烦。从使用上来说,想要使用该程序,需要安装和运行FTP客户端,但是该程序是字符界面而不是图形界面,这就必须以命令提示符的方式进行操作,这对于普通用户来说,无疑是增添负担,很不方便。若是通过ie浏览器进行操作,速度较慢,且容易暴露密码,不够安全。因此,现在很少有团体、企业使用这种方式来对文档进行存放与管理[4-6]。

目前市场已开发的比较成熟的文档管理系统大致可以分为三类;第一类为公有云盘,就是廠家提供云端的存储和运维服务,用户只需要注册账号,安装客户端就可以登录使用,费用按照厂家给出的套餐价格来收取,较适合一二十人的小团队,如果需要较大的云端存储空间或者有上百人需要使用,费用会比较昂贵[7]。这类文档的权限管理通常较为宽松。比较熟知的有:亿方云,坚果云,够快,燕麦云等。第二类为私有云盘,这类软件产品,一般分为服务器端和客户端,需在公司内部的服务器上先安装服务器端,用户通过内网访问,这类系统适合在企业内部部署私有的文件管理系统的用户,用户数也能够支持几百到上千不等;存储空间可以根据需求对服务器硬盘进行配置。比较熟知的有:开始云,seafile、云盒子、优米云盘等。第三类为NAS阵容,也就是定制硬件+文件管理软件,这些产品很多针对的是个人和家庭用户,部分中小企业用户也会选择NAS。但因为他们与硬件绑定,不是太灵活,总体成本也更高。

2系统的需求分析

文档管理系统的作用是为某一个组织所有的文档进行统一存放与管理。文档的有效集群并对其进行合理的归档分类,能帮助该组织构建自身的知识库体系,使其核心文化与知识能够得到良好集成与发展,对于绝大多数的中小企业来说,一个合适其内部使用的文档管理系统是十分必要的。

后续所述的系统需求以及功能板块的设计与实现均是以中小企业的业务需求为基础,结合实际开发难度进行业务逻辑设计与功能扩展。

2.1功能需求分析

通过前叙研究,本系统围绕以下需求进行开发设计。

2.1.1 基础功能

1)用户能对文档进行上传、下载(各种常见类型文档均支持)。

2)用户能对部分文档进行预览,并且特定用户能将文档从系统中移除。

3)文档检索,通过关键字查询,快速定位文档,方便用户获取相关信息。

2.1.2 用户权限管理

1)设置系统管理员,能对系统进行部门的添加、移除。

2)对整个系统进行群组划分,为每一个群组设置一位管理员以方便组内管理与组间联系。

3)各部门管理員对其所属部门有最大权限来能管理所属部门文档,并且能对系统中的所有用户进行针对该群组的权限管理。

2.1.3 文档归类

1)根据文档类型进行自动分类。

2)以部门为单位进行文档存放。

3)对每个用户上传的文档进行划分。

2.1.4 文档权限管理

1)部门管理员可对其部门的文件进行权限管理,决定该文件对其余用户是否可见、可用、可取。

2)管理员能对文档进行全部操作,普通用户需要得到相应授权。

3)用户能越过管理员授权直接获取或删除自己所提供文件(自己的文件拥有最大使用权;对误传情况进行考虑,能够自行删除文件),但自身文件对于其余用户来说,仍需得到管理员授权。

2.1.5 系统鉴权

用户能通过注册获得账号(管理员能对每个账号进行权限管理),每一位用户通过登陆的方式使用该系统,用户所能执行操作均与个人信息(登陆时提供)有关。

系统需要一定手段来保障文档安全性(使得文档只能被有权利获取的人使用),所以需要对每一位用户进行鉴权,以区分不同用户(不同权限)。

2.2非功能需求分析

在基础功能和业务逻辑满足用户使用需求后,可对系统其他部分进行优化以提供用户使用体验。

2.2.1 实时性

用户的每一步操作都及时处理,对于信息的变化进行及时更新。

2.2.2 并发性

支持多个用户同时在线使用该文档管理系统,系统中部分内容的实时修改对用户可见,能对系统异常进行报错与相应抛出处理。

2.2.3 稳定性

系统具备长时间工作能力,对于出现的错误异常,能有明确错误指示,以保障用户的正常使用,并能对突发情况进行及时处理。

2.2.4 可维护性

系统采用客户端-服务器结构,核心业务逻辑均部署在服务器端,由此减轻了客户端的负载,方便维护。

2.2.5 易用性

用户无须额外安装软件或配置电脑环境,只需要用浏览器进行登陆即可使用该系统,符合现代人的使用习惯。

对文档进行合理排序,方便用户浏览;系统操作简单,界面友好美观,风格简洁,界面操作易于理解,降低用户误操作性,并为使用带来便利;符合正常逻辑,数据的呈现直白清晰[8]。

3系统设计

3.1 系统架构设计

本系统采用浏览器/服务器(Browser/Server)的结构设计,以浏览器为辅服务器为主的方式来支持业务逻辑设计与扩展。该结构主要包含三个层次:浏览器、服务器、数据库。通过三者之前的信息交互,实现系统功能。系统各功能模块之间的划分与联系如下图1所示:

本系统的业务逻辑主要由用户和文档两大板块组成。多级用户设定,为系统的角色权限带来多元化,为多级权限管理提供了更大的设计空间。文档的多维度划分,不仅依赖于自身特性,还与其关联的用户有关,多类别划分以及文件自身权限管理的多级融合,构成了整个系统的最终业务逻辑实现与应用[9]。

3.2数据库设计

在系统框架与功能需求拟定以后,需要对数据库结构、各数据表以及表内属性进行合理安排与设计,数据库的最终框架决定了系统业务逻辑能达到的上限。合理的数据库配置与设计,应能良好支持业务逻辑的修改与扩展,并能从编程难度、数据处理速度(系统运行速度)上得到简化与提升。

据此,本系统设置了五个关系实体:系统实体、管理员实体、用户实体、文件实体、群组关系实体。用以满足后台业务逻辑需求。

3.3系统流程设计

对于文档管理系统来说,除了系统本身提供的业务功能和系统安全性外。合理、方便、符合使用规范的系统使用流程也是一个重要的衡量。

每一个用户在浏览器上输入正确初始登录页面网址后,通过个人账号登录,方可使用该系统(系统提供的一切功能均有鉴权机制)。不同级别用户对应不同界面,能够对其他用户(普通用户除外)进行管理。不同用户对文档的权限管理和使用范围也有所不同。具体流程如图2:

3.4系统功能设计

3.4.1 注册与登录模块

由于权限需求,系统管理员与部门管理员不可被随意注册,系统管理员由系统发布时即指定,部门管理员可由系统管理员创建。普通用户通过注册账号后方可登录使用本系统。注册时,用户需在现有部门选择一个加入。此后该账号所上传的文件归属于该部门并由该部门管理员进行权限管理。(用户可被其他部门管理员拉入其管理的部门)

通过为用户设置session(通过cookie实现),使得不同级别用户登录后,进入的页面有所区别,能使用的系统功能也有所不同。这些区分都通过鉴权手段控制。在用户离开系统后,需注销用户,将系统为鉴别用户身份而创建的信息删除掉,保证文档安全性。

3.4.2 文档权限模块

文档的使用权限由两部分组成,一个来自文档与用户的关系,一个来自文档自身属性。

用户与文档关联性:每一个文档在上传时,都会根据上传者的所在部门,在数据库里添加一项“部门”属性。据此,文档的管理权限被赋予该部门管理员。只有属于该部门或者被该部门拉入群组的用户才能获取文档相关信息,并对文档进行相应操作。

文档自身属性:文档有一个“权限”属性,属性分为三级High、Middle、Low,分别对应不可被预览、下载,可预览不可下载,可预览与下载。权限属性可由管理员更改,通过按钮来切换文档权限属性,并将权限级别展现出来。

通过文档与用户之间关系的业务逻辑交叉以及文档属性的划分,为系统构建了多级别多粒度的权限管控。

3.4.3 文档分类模块

合理利用文檔的后台逻辑,对文档的存放进行分类划分,维护了数据存放的有序性、规则性。方便批量管理并提供了文档的可移植性。

文档的实际存放大致由三级划分:部门->类别->用户。

部门与用户会随着系统的使用,由系统管理员和部门管理员对其进行增添或修改,文档类型则维持初始几个分类。

可在服务器上分配出一块磁盘区来存放文档,设置好根目录以后,后续上传的文档将会以上图所示结构存入,在服务器上可通过此层级结构访问到对应文档。

3.4.4 核心功能模块

本系统最基本的功能是对文档进行存放与管理。因此,着重解决的部分就是通过web浏览,借助浏览器对文档管理实现上传、下载、删除、预览四个基本功能。除了对文档本身进行操作外,为了实现系统后台的业务逻辑,需要借助数据库存储文档及其存放相关的信息,涉及增、删、改、查四个基本数据库操作。合理的数据表设计能更好地支持后台业务实现并能减低编程复杂度。在制定好系统全局业务逻辑后,对数据库进行多次设计与修改,最后确定出几个关键属性,并将各表之间巧妙结合起来,最终以符合系统逻辑的方式实现了核心基础功能。

上传文件:设定同一部门的文档不可以重名,不同部门间的文档可以重名。文件上传时会根据其部门、文档类型、上传者去搜寻最终URL。因此,不同部门的同名文件存放在不同路径下,不会产生冲突,文件会以部门作为第一级区分。部门来自上传者的从属部门,为初始注册时选取的部门。

下载文件:所有文件的获取接口只提供给加入文档所属群组的用户,用户能对安全级别最低的文档进行下载。下载时会根据文件名、所属部门、上传者进行URL锁定,从而获取文件。上传者与部门管理员可以越过文档权限级别下载文档。

删除文件:文档安全性是文档管理系统要考虑的最重要的因素之一,所以对于文档的删除,需要严格的权限控制与责任追究。因此,只有上传者与部门管理员可对部门从属文档进行删除操作。这样做的目的是;对于上传者误传可以及时修正、防止他人误操作或者恶意操作导致文档的遗失、文档遗失能及时找到责任人并及时补救。

文件预览:用户可对图片类文档以及pdf类型文件进行预览。协助用户正确选择所需文档而不需反复多次下载查看,减少用户对未知文件的查找时间。同下载一样,预览需要对用户进行鉴权且需验证文档本身权限属性。

文档检索:随着部门人员的添加以及文档数的日积月累,虽然文档存储结构体系简明清晰,但仍需时间去遍历。若是在未知部门、上传者的情况下,文件获取速度会降低。因此,提供了文档检索功能。用户能够在输入框里输入关键字,即可筛选相关文件,只要部分字匹配即可,用户可灵活选择查询字句。

以上,实现了文档管理系统的几个基本功能模块,结合系统整体的业务逻辑,一个完备的文档管理系统就初步设计开发就完成了。

4 系统测试

经过多次系统业务逻辑调试与系统功能debug以后,系统最终测试结果如下所述。

4.1用户功能测试

1)用户注册:用户名不能为空、不能重名;两次输入密码一致方可成功注册,且不能是非法输入(空格、非常规字符),注册成功后会正确加入并显示所属部门。注册后会自动跳转至用户登录界面。

2)用户登录:各类用户有明确区分,对应级别账户只能在对应页面成功登录,不会出现账户错乱。登录后,成功记录后通过在cookie中置session存放用户信息(用户名、所属部门),若是没有登陆的情况下直接在浏览器中输入目标网址,将无法正常显示页面,无法使用系统功能。

3)用户管理:系统管理员可创建部门与其对应管理员,管理员不可重名,否则创建失败。部门管理员可将所有用户拉入或移出所管理的部门,并正确显示当前群组成员情况。

4)文档管理:部门管理员可对其部门的文档进行权限管理,分为三级。每点一次权限按钮将会提升一级权限、到顶后又会自动回到最低权限状态。文档权限会及时对所有用户更新,并在文档后显示,方便用户掌握文档信息(是否可用)。

5)用户退出:为了保证文档安全性,用户在使用完系统后需要进行注销操作。点击注销按钮后,会清除存留在客户端浏览器cookie中的session并跳转回初始登陆界面。注销后若不登陆,直接输入工作页面地址,将无法获取文档信息,使用系统功能。

4.2文档功能测试

1)上传文档:用户和管理员均可上传各种类型文档(大小不超过300M),系统会根据文档类型进行自动分类并在用户的使用界面正确区分展示。同一部门之间的文档不可重名(包含类型),但不同部门间可以。上传过程中,若仅是关闭浏览器,不影响传输。若是网络中断或服务器故障等导致传输失败,文档信息不会被存入数据库,存储区域里也不会有相应破损文档的残留。

2)下载、预览文档:管理员拥有部门所有文档的下载、预览权。用户需要参照文档权限,安全级别为Low的文档可以下载并预览,Middle可以预览不能下载,High不能下载和预览,只有管理员可获取。下载、预览不同部门的同名文件时,能正确找到对应文档,不会出现错乱。

3)删除文档:管理员和上传者可以对文档进行移除操作,只要有系统身份鉴权即可。点击删除按钮后会有弹框提示确认,防止误操作。删除后,文档将从磁盘中移除,且会清空相关数据库信息。

4)文档展示:文档展示根据部门、上传时间进行排序;分页无误,不会造成文档乱序导致部分被掩盖;可输入文件名关键词(部分匹配)进行查询,快速且无遗漏。

5 结论

本论文所开发的基于Web的文档管理系统,是在对比现有各类文档管理系统的优势与不足后,综合现有开发条件与开发难度,定位具体应用场景所做的一次优化开发,测试表明该系统具备功能更加强大,更安全稳定。同时,在文档管理系统的开发过程中,评价系统的指标不仅仅是单个功能的实现和业务逻辑的层叠,还要考虑多用户并发。当网络负载较大,访问量较高时,系统是否还能正常运作,是否会出现逻辑紊乱,是否会导致系统相应过慢,若有,如何提高运行效率等都是需要被重视的。

参考文献:

[1] 刘林.基于Web的企业文档管理系统的设计与实现[D].成都:电子科技大学,2012

[2] 王明月.企业知识文档检索管理系统的设计与实现[D].哈尔滨:哈尔滨工业大学,2017

[3] Cay S Horstmann. Scala for the Impatient[M].北京:電子工业出版社, 2012.

[4] David Pllak.BeginningScala[M].901 Grayson Street Suite 204 Berkely,CA USA:Apress,2009.

[5] Ted Neward.Scala programming livelessons(sneak peek video training)[M].USA:Addison-Wesley Professional,2011.

[6] PatrikNordwall. AkkaDocumentation[EB/OL].[2011-12-11] .http://akka.io/docs/.

[7] SébastienDoeraene. ScalaJsIntroduction[EB/OL].[2016-12-21]. http://www.scala-js.org/doc/.

[8] 黄磊.基于Web的项目管理平台的设计与实现[D]. 成都:电子科技大学,2016

[9] 刘丽,吴秋云,李军.基于web的分布式文档管理系统的设计与实现[J].计算机工程与科学,2007(1).

【通联编辑:唐一东】

猜你喜欢
系统开发管理系统
基于James的院内邮件管理系统的实现
基于LED联动显示的违停管理系统
海盾压载水管理系统
基于开源系统的综合业务数据采集系统的开发研究
基于RFID的仓储管理系统实现