Skip to end of metadata
Go to start of metadata

概述

众所周知,DMS是Document Management System的简称,即文档管理系统。BDF中也提供了一个DMS的模块,但它却算不上是一个完整的文档管理系统,这里我更愿意称BDF中的DMS为Document Management&Service,即文档的管理与服务,从字面上看,“管理”相对于“服务”业务色彩更浓一些,所以在开发BDF的DMS时,我们将重点放在服务上,这些服务包既含基于两种协议的远程文件服务,同时也包含各种本地的基础文件管理服务;文件的可视化管理往往与业务紧密相关,所以BDF的DMS涉及文件的可视化管理的内容并不是很多,基于这个定位,我们开发了现在的BDF的DMS模块。

对于大多数系统而言,上传文件的管理都是业务系统当中必不可少的一块功能,如果我们的系统部署时采用的是单实例模式,那么上传文件的管理可能还比较简单,我们只需要定义一个文件目录来存储这些系统上传的文件;但如果我们开发的应用部署时采用多实例集群模式的话,特别是集群时不同的实例位于不同的物理服务器上,那么之前的那种上传文件直接存储到某服务器的文件系统上的做法就存在很大问题,我们不得不实时同步各个实例下系统上传的文件;当然对于这种多实例集群部署的应用,我们还有一种做法就是将上传的文件存储到数据库表中,这样就避免了文件同步操作,但因为将文件存储到数据库表中,随之而来的就是随着上传文件数量的增加,数据库尺寸迅速暴增。这时我们的架构师可能会想到,如果的有一个可以提供文件上传下载服务的系统,那么这种多实例集群部署应用所面临的文件存储问题也就迎刃而解,BDF的DMS模块就是在这种情况下崔生的。

BDF的DMS模块分两部分,一部分就是DMS服务端,也就是核心的文件服务和管理,另外一部分就是访问BDF DMS的客户端,使用客户端中提供的工具类,我们可以快速简单的将文件上传到BDF DMS中,或从BDF DMS中下载、删除文件。对于BDF DMS而言,提供了两种协议的远程文件服务:Http和WebService,我们可以根据项目需要,灵活选择使用Http服务或者WebService服务。无论Http服务还是WebService服务,都可以实现文件的远程上传、下载和删除,再配合BDF DMS提供的客户端工具类,可以快速实现将文件提交到BDF DMS,同时实现对DMS中存储的文件进行远程管理。

安装与配置

与BDF其它安装方式相同,对于DMS模块服务端的安装需要执行BDF发行包中com.bstek.bdf.dms-[version]目录中的dbschema下数据库建表脚本,同时将其中bin/server下bdf-dms-server-[version].jar包以及所依赖的第三方jar包复制到项目当中。这里需要指出的是BDF DMS服务端运行时依赖BDF的权限与WebService模块,所以安装时BDF这两个模块也需要安装(如果没有安装的话)。

如果你要在应用中使用BDF DMS的客户端工具,那比较简单,唯一需要做的就是将BDF发行包bin/client下bdf-dms-client-[version].jar以及所依赖的第三方jar包复制到项目当中。

对于BDF DMS服务端在使用时提供如下表所示的可选参数可在工程的WEB-INF/dorado-home下的bdf.properties中配置使用。

属性名描述
bdf.dms.svn.urlDMS服务端文件存储如果采用SVN进行文件版本管理的话,那么这个属性就为svn服务器的地址,默认为空,表示不采用SVN进行文件管理
bdf.dms.svn.usernameDMS服务端在使用SVN进行文件版本管理时,访问SVN服务器的用户名,默认为空
bdf.dms.svn.passwordDMS服务端在使用SVN进行文件版本管理时,访问SVN服务器的密码,默认为空
bdf.dms.local.dirDMS服务端存储文件的目录,默认值为"/dmsdir",表示将文件存储于DMS服务所在应用的所在目录下的dmsdir目录下,如果要使用绝对路径,可设置为一直真实存在路径即可,比如D:/dmsdir,表示存储于当前服务器的D盘下dmsdir目录中
bdf.dms.repositoryServiceDMS服务端文件管理方式,默认值为bdf.dms.nullRepositoryService,表示直接采用文件系统方式,不运行版本控制功能,如果要使用文件版本控制管理,比如SVN,那么该值需要设置为bdf.dms.svnRepositoryService,同时需要定义好bdf.dms.svn.url、bdf.dms.svn.usernamebdf.dms.svn.password三个属性值
bdf.dms.useAuthentication文件上传到DMS或从DMS下载、删除文件时,是否需要认证,默认为true,表示需要认证
bdf.dms.usePasswordSalt文件上传到DMS或从DMS下载、删除文件用户认证时,对于密码是否进行加料认证,默认为false,表示不需要,直接比较提交上来的用户密码
bdf.dms.userCache文件上传到DMS或从DMS下载、删除文件需要用户认证时,如果不想直接访问userService来获取用户信息(要访问数据库),而是想固定一批用户用于文件服务的认证操作,那么就可以定义该属性值,该属性值需要的是一个配置在spring当中,实现了org.springframework.security.core.userdetails.UserCache接口的bean的ID,如果不定义该属性,那么每次用户认证时,都需要通过userService来提取用户进行认证。
Labels
  • No labels