MxsDoc文档管理系统 - 中小型企业和个人用户最好的选择

一个文档管理系统是否好用,不是简单数据安全、界面好看以及功能强大,还要考虑它的使用群体,对于中小型企业和个人而言,系统的安装和维护也将会是非常重要的因素。

  一个系统的安装和维护是否简单,主要是看系统对于第三方软件(系统、服务)的依赖程度,以及是否具备日常维护功能。

对于文件管理系统而言,最难实现的功能主要是关于文件管理(包括文件节点和电子书内容管理)、历史版本管理、Office文件编辑和预览、全文搜索,如果不依赖第三方软件,那么实现会更加的困难。

MxsDoc这些功能的实现都不依赖任何第三放软件,因此安装也极其简单,解压运行即可完成安装,另外MxsDoc支持本地和异地自动备份、一键系统迁移,即使是不具备任何专业技能的用户,也可以自行完成安装和日常维护。

另外,MxsDoc还支持FTP、SFTP、SMB(共享文件)、SVN、GIT以及基于HTTP协议的文件存储系统的远程访问,用户可以将MxsDoc当作客户端来远程管理这些服务器上的文件,也可以将文件存储在远程文件服务器上。

1、文件管理  

  文件管理是文档管理系统的基本功能,主要是指文件节点管理和电子书内容存储管理,传统的解决方案是通过数据库来管理文件节点和电子书内容,这样可以利用数据库的功能,实现文件节点和电子内容的快速存储和查询。

但这个方案的最大问题就是对数据库有强依赖,换句话说,相当于需要基于数据库实现一个稳定的文件系统,难度是可想而知的,而且一旦数据库的字段发生变化将出现兼容性的问题。

早期的MxsDoc采用的也是这个方案,可能因为我在2007年曾经写过一个嵌入式文件系统​​​​,以至于对自己迷之自信​​​,但在经历了多次数据库升级和异常之后导致的电子书内容的丢失以及文件节点的丢失,就彻底废弃了。FlatFS: FlatFS是参考Linux早期的minix文件实现的一个可以在嵌入式系统或单片机系统上使用的文件系统,采用平面式的文件目录组织结构,代码空间小,速度快,可作为数据库使用,能基于任意块设备和存储设备上进行移植。 (gitee.com)正在上传…重新上传取消​https://gitee.com/RainyGao/FlatFShttps://gitee.com/RainyGao/FlatFS目前很多文档管理系统(包括很多知名的文档管理系统)仍然使用的这个方案,毕竟修修补补总比重构来的方便,另外只要有专业的维护团队在,并做好数据库备份,大部分情况下还是可以恢复的(除了时间久一点而已),当然也有最后只能恢复一部分的数据的情况(这个是我亲身经历,具体就不点名了),但对于规模不大的企业和个人来说,实在是没有这个资金和资源做这件事情。

MxsDoc的文件节点管理是基于文件系统本身的节点实现的,电子书的内容也是存储在文件里,通过哈希算法也文件节点进行映射,性能上要比基于数据库的更快,同时电子书的内容大小也不受数据库的约束,目前而言是最稳定的实现方案,也就是说,只要文件还在,MxsDoc系统就随时能够恢复访问。

2、历史版本管理         

历史版本管理的传统解决方案是自己实现一套版本管理机制,可以按照修改时间来保存文件,缺点就是非增量控制,而且不过稳定和通用。

MxsDoc的历史版本管理是基于SVN和GIT通用方案实现的,当时是考虑了给用户足够的自由度,即使不想使用MxsDoc系统,用户仍能通过SVN和GIT客户端工具来访问文件的历史版本。

MxsDoc使用的是svnkit和jgit的底层接口实现的,使用底层接口的好处在于,系统有更强的灵活性,当然也给自己找了不少麻烦,从某种意义上需要实现了一套版本管理机制,只不过在存储上使用了SVN和GIT的增量管理,这部分功能的实现花费了将近两年时间。

但好处也是显而易见的,系统不需要依赖任何外部软件,而且通用性和扩展性也更强,性能上也有了更大的突破。

3、Office文件编辑和预览

3.1 Office文件预览

Office文件预览相对于Office文件编辑,实现相对较简单一些,只要将Office文件转换成pdf文件,在浏览器上显示即可。

离线转换方案有:OnlyOffice、OpenOffice、aspose(收费)

在线转换方案有:Office Web 365、永中Office、OfficeLive…

    在线转换方案需要将文档上传至外网进行转换,实在是不够安全,而且要求系统必须连通外网,对于一个私有的文档管理系统而言是非常不合适的。

    MxsDoc早期是支持OpenOffice方案的,但是需要额外安装OpenOffice,而且经常因为各种原因无法启动,转换出来的文档还经常有问题,因此最终放弃了支持。

    Aspose据说是很好用的,但在开源的软件里集成一个收费的方案在里面,终究是不伦不类。

    MxsDoc最终使用的OnlyOffice方案。

3.1 Office文件编辑

    Office文件编辑做的最好的是微软、WPS和OnlyOffice,其他的实在是上不了台面,但微软、WPS虽然很强,但支持私有部署支持上实在是不怎么样,只提供了在线编辑方案,和在线预览方案一样恶劣,所以OnlyOffice绝对是最好的选择。

    OnlyOffice不仅开源,最重要的是真的好用,目前很多国外知名的文档管理系统用的都是OnlyOffice,不过OnlyOffice的安装之困难真的令人发指,不过好在MxsDoc只把OnlyOffice当作前端使用,所以并不需要安装OnlyOffice服务,但这个实现方案确实有一点点复杂,花费了我不少时间。

4、全文搜索

大部分文档管理系统的全文搜索是使用Elasticsearch,也就是经常说的ES,是基于Lucene搜索引擎之上实现的搜索系统,但实在是杀鸡用牛刀。

    MxsDoc是基于Lucene底层接口实现的,虽然工作量大了点,但好歹还是很强悍的。

5、开发语言的选择

    MxsDoc采用纯Java开发的,选择Java开发主要是考虑到了Java强大的开源库的支持,包括svnkit\jgit\lucene等。

    我曾经也是世界上最好的语言PHP的使用者,曾经基于bugfree开发了一套研发管理系统,这里面的美妙经历,让我实在不想再用它。TracSystem: TracSystem是基于bugfree框架开发的开发管理系统,实现了需求、开发、评审、测试四个环节的闭环管理,其中需求不是单指传统意义的产品新功能需求,产品缺陷、文档修改需求都可以作为需求进行管理。 (gitee.com)https://gitee.com/RainyGao/TracSystem

你可能感兴趣的:(文件管理系统,文档管理系统,Office编辑,DocSys,MxsDoc,文档管理系统,文件管理系统,私有云盘)