《技术平台介绍》

从技术的角度介绍易度文档管理,适合IT经理阅读

本文从技术的角度介绍易度文档管理系统,以便让企业IT部门技术人员更加全面的认识系统。

1.   润普:开源背景的技术公司

上海润普网络信息技术有限公司 (http://zopen.cn)是易度文档管理系统的开发商。

公司 成立于2002年,立足于开放源代码内容管理系统专业技术开发与服务,为客户提供基于 Zope/Plone等开放源代码软件的企业内容管理产品和解决方案。中国Zope用户组(http://czug.org)是润普公司组织的开源技术社区。润普公司是国内python/zope/plone开源技术的领军人物,在国内外社区做出了大量的贡献。

润普的客户包括 网易、上海航空、上海电信、南海发展、珠江投资、文化部、解放军某军区、光大银行、长沙威胜等大型客户。

易度网 (http://everydo.com) 是润普公司近几年在互联网软件方面进军的主要产品。

2.   系统架构

易度系统采用开源技术架构,整个系统的架构采用的业界最优秀的一批开源系统。开源产品产品质量更高,价格成本更低,维护速度更快,可跨平台(windows/linux)部署,对浏览器、操作系统没有限定。

整个系统架构如下:

img/系统构建图.png
账户管理模块
账户管理模块是独立的一个模块,可以用任何语言编写,和现有的数据库进行集成。目前支持LDAP和ZODB这2中数据库。独立的账户管理,可方便和企业现有账户模块进行集成。
Python开发语言
Python是最优秀的动态语言之一,语言简单,开发效率高。Python在Google的搜索引擎中大量使用,并被选位google的云计算语言。最大的视频网站youtube.com采用python开发完成。python在国内最大的的互联网公司和游戏公司中被广泛使用。
Apache为web服务器
Apache是最成熟、功能最强大的Web服务器,我们使用Apache提供对静态文件的快速高效服务。同时也是有Apache提供HTTPS安全传输服务。通过mod_wsgi,和Zope3进行连接。
Zope3应用服务器
Zope应用服务是基于Python历史最悠久的服务器,是唯一的重量级企 业应用服务器。最优秀的开源内容管理系统Plone,是基于Zope开发的。Zope应用服务在国外,包括美国中情局、联合国都在使用。
Memcached缓存服务器
为提升系统的性能,系统采用了Memcached作为缓存服务器,对一些耗时的操作进行了缓存,确保系统的高性能。特别是对用户信息访问进行了缓存加速。
ZODB对象数据库
对象数据库更适合对内容数据的管理,ZODB和zope一起诞生,有悠久的历史,是python社区最成熟的对象数据库存储方案,拥有大量商业部署案例。
FRS文件库
FRS是一个开放的文件存储库格式,有开源的访问库,由润普公司提出。

3.   界面和交互

3.1.   支持多种浏览器

整个界面采用标准的HTML/CSS/Javascript开发,不需安装任何特殊插件, 可在IE、firefox、chrom、opera等浏览器中流畅使用,甚至支持手机浏览器的访问。

3.2.   Ajax页面局部刷新技术

易度文档管理系统的操作界面,采用Ajax页面局部刷新技术,操作响应速度很快,能提供良好的用户体验。

在内部采用了兼容各种浏览器的KSS框架(kssproject.com)来实现Ajax效果, 使用KSS技术可以在非常复杂的Ajax交互的情况下,仍然保持保持很高的页面操作速度。 即便用户使用性能较差的IE6,也能够很好的支持。

3.3.   消息主动推出

采用ajax技术,如果用户收到消息,可在web界面上主动弹出消息推送给用户,实现消息的即时通知。

3.4.   高用户体验的产品设计

易度软件的设计,是由专业的软件产品设计师结合web 2.0的用户体验原理设计而成, 界面和功能组织设计精细。

软件的设计感强,用户使用舒畅。

4.   文件的存储

FRS(http://code.google.com/p/zopen-frs)是一个开源的文件库存放格式。 易度文档管理系统采用此格式存储文件。

4.1.   简单存储

文件存储越复杂,获取文件依赖的组件越多,导致文件获取失败的风险就越大。

易度采用FRS存储文件, 文件系统文件在物理文件系统中的存储结构, 和通过浏览器所管理的文件结构完全相同。 同时,文档的附加的元数据信息也以json文本格式,直接存放在文件系统中。

与传统其他供应商的存取方式相比,易度这种存储方式,可保证文档存储的风险最低:

  1. 文档的存取不依赖于任何数据库系统,不会因数据库系统的故障而导致数据丢失;
  2. 文档的存取不依赖易度文档管理系统,即便易度系统出现故障,仍然可通过传统的途径管理文档库。

4.2.   缓存数据管理

文件在使用的时候,会生成的各种转换格式,比如生成的pdf格式、html预览格式。

这些格式一次生成后,可存放在FRS文件库的缓存区,避免反复生成。

文件缓存区属于可再生数据,可放置在不可靠磁盘中,无需进行数据备份。

4.3.   回收站方式的安全删除

不小心的错误操作,导致数据致命的丢失。易度文档管理系统支持回收站功能,可实现对文档的安全删除,可恢复删除的数据。

回收站实际上是文件系统的一个文件夹,所有文件删除后,转移在这里。系统定期自动对这里的数据进行清理。

4.4.   可扩展的虚拟文件系统

FRS通过一个配置文件,来定义文件的实际存放位置。可灵活配置扩展硬盘扩容,更可方便和NAS磁盘设备结合。

4.5.   自动增量备份

易度采用rsync备份软件,通过定时脚本,对文件进行自动增量备份。

ZODB数据库的备份,也是通过定时脚本,自动增量备份。

系统默认可恢复至最近2周任何一天的数据。

5.   文件的安全性

5.1.   授权委托管理

可单独针对各个文件夹,指定文件夹管理员。文件夹管理员在该文件夹下拥有全部管理权限,可实现真正的权限委托管理。

权限委托管理,实现内容管理员和系统管理员的分离,减轻管理员的负担,增强系统的可管理性。

5.2.   成组授权

可针对某个部门、某个岗位进行授权。这样新人到岗,只需指定所在岗位,便可自动得到相应的文档访问权限。

成组授权,可大大减轻管理的负担。

5.3.   “负授权”

系统支持“负授权”,也就是可以禁止某个人的权限。

这个技术结合群组授权,可实现如下的逻辑:开发部除了了张三都能够查看某个文件。

“负授权”技术,使授权更灵活,更实用。

5.4.   文档使用痕迹检视

每一个文档的所有操作都会记录进操作历史。可对单个文件、某个文件夹、或者整个系统,进行操作历史查询。

一旦出现安全事故,可进行追查,追究事故责任人。

5.5.   支持HTTPS安全传输

可使用apache的安全传输https的功能,采用网上银行相同的技术,实现文件的安全传输。

5.6.   ClamAV病毒扫描防护

系统自带ClamAV(http://www.clamav.net/)作为病毒扫描引擎。

上传文件,均会进行病毒扫描,如果发现病毒,会通知管理员进行处理。

6.   文件的使用

6.1.   文档在线预览

系统支持常见文档转换为html格式,直接在网页上进行预览,用户无须安装任何桌面软件,便可查看文档内容。

具体包括: Office文件(.doc、.xls、.ppt、.pps),最新的office 2007, .txt、.rtf,PDF文件, mht文件等。

word文档转换,采用了wvWare开源转换工具。如果需要得到更好的预览效果,可激活openoffice转换.

系统采用插件架构,可方便扩展支持其他的格式。

6.2.   图纸的在线预览

对于AutoCAD图纸,系统可自动生成一个图片,方便用户快速在线预览查看。

系统采用插件架构,可方便扩展支持其他的格式。

6.3.   图片自动缩略预览

用户上传的图片,可以自动生成缩略图显示。避免图片过大导致下载速度缓慢,影响查看的感受。

系统采用PIL (www.pythonware.com/products/pil/) 实现。支持各种常用的图片格式, 如.jpg 、.gif、.png, tif, bmp等。

6.4.   自动生成PDF

所有可在线预览的文件,都可自动生成PDF格式的文件。

系统内部采用一个开源的pdf的生成引擎(),实现这个转换。

6.5.   流媒体播放技术

系统支持各种流媒体格式,只需安装浏览器flash插件,便可支持对流媒体(音频、视频)文件的播放。

易度采用标准的http1.1文件传输协议中的range数据传输控制命令,来实现按需的数据传输,实现即时播放。

系统支持avi、wmv、flv、ogg、mp3、mov、mpeg等各种格式文件的播放。

7.   文档的搜索

  • 中文分词:采用二元分词CJKSplitter,有润普公司自行开发
  • 全文索引技术: 采用工业级别的 Xapian (http://xapian.org) 全文搜索引擎,支持海量文档的全文搜索
  • 其他组合索引:采用z3c.indexer进行索引
  • 分类技术: 标签组参照faceted tag标准: http://facetag.org 设计,是类似百度百科的一种可管理的标签分类管理方法

8.   文件上传

  • webdav批量上传: webdav是http协议的扩展,是ftp的一个升级协议。简单的说,他可让web可写。

    windows等操作系统的资源管理器,天然支持webdav协议。 通过资源管理器,可通过鼠标拖放,实现批量文件的上传和下载。

9.   文档协作编写

  • 在线编写文档的编辑器:采用开源的TinyMEC编辑器,直接在浏览器上编写格式丰富的文档。
  • 外部编辑: 外部编辑采用了外部编辑插件,外部编辑插件是润普根据开源的Zope External Editor改进而成。
  • 自动修改锁管理: 采用webdav锁机制来实现修改锁的管理,避免多人同时修改发生冲突
  • 版本差异比较: 采用开源的htmldiff组件,来实现不同版本的差异比较
  • 文档发布流程: 润普基于一个简单的状态流程引擎(http://svn.repoze.org/repoze.workflow/)改进而成
  • 我们支持短信通知,现在短信通知采用的是奥软(http://ensms.com)的服务

10.   定制、集成和可扩展性

10.1.   文档管理流程的自定义

根据ISO文控标准,企业可能存在文档编号规则,审核发布制度,文档删除流程,这样一些个性化非常强的要求。

这通常要求对系统进行部分定制,满足企业自己的需要。

易度文档可和易度流程(http://paas.everydo.com)进行整合,利用易度流程的高可定制性,来实现文档的流程定义。

10.2.   高负载支持

系统部分功能占用cpu比较多,在大量用户使用的时候,可能导致性能的瓶颈。

随着用户使用人数的增加,系统能够在如下方面平滑扩展,按需适应:

  1. 使用多台计算机、开启更多的服务进程来提供服务,利用apache的负载均衡功能来分配请求。
  2. 将耗时的操作串行化,在后台执行。这样可以避免冲突,提升响应速度。比如索引、pdf转换、预览转换等。我们采用zc.async组件来实现此操作。

10.3.   套件产品

易度文档是易度在线工作套件的一个模块。 通过简单的激活,就可以开启其他的功能,如项目管理、客户、流程、任务、计划等。所有模块完全集成。

10.4.   定制开发平台

易度工作套件有一个特殊的模块:“易度应用”。

使用这个模块,可以通过利用平台的强大特性,在浏览器上进行平台的脚本开发,定制开发自己需要的应用。

10.5.   完整的API接口提供企业级应用集成

易度工作平台提供API,供其他系统整合。根据需求,润普可以进行定制,整合其他的系统。

系统支持LDAP/AD/数据库等接口的用户集成。可以与企业其他现有应用进行整合(例如CRM、ERP、OA等)。

11.   总结

易度文档管理系统采用大量的开源技术,运用了一些创新的技术理念,有良好的开发性,较好的性能,并拥有良好的可扩展性。