《技术平台介绍》
从技术的角度介绍易度文档管理,适合IT经理阅读
章节索引
本文从技术的角度介绍易度文档管理系统,以便让企业IT部门技术人员更加全面的认识系统。
1. 润普:开源背景的技术公司
上海润普网络信息技术有限公司 (http://zopen.cn)是易度文档管理系统的开发商。
公司 成立于2002年,立足于开放源代码内容管理系统专业技术开发与服务,为客户提供基于 Zope/Plone等开放源代码软件的企业内容管理产品和解决方案。中国Zope用户组(http://czug.org)是润普公司组织的开源技术社区。润普公司是国内python/zope/plone开源技术的领军人物,在国内外社区做出了大量的贡献。
润普的客户包括 网易、上海航空、上海电信、南海发展、珠江投资、文化部、解放军某军区、光大银行、长沙威胜等大型客户。
易度网 (http://everydo.com) 是润普公司近几年在互联网软件方面进军的主要产品。
2. 系统架构
易度系统采用开源技术架构,整个系统的架构采用的业界最优秀的一批开源系统。开源产品产品质量更高,价格成本更低,维护速度更快,可跨平台(windows/linux)部署,对浏览器、操作系统没有限定。
整个系统架构如下:

- 账户管理模块
- 账户管理模块是独立的一个模块,可以用任何语言编写,和现有的数据库进行集成。目前支持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文本格式,直接存放在文件系统中。
与传统其他供应商的存取方式相比,易度这种存储方式,可保证文档存储的风险最低:
- 文档的存取不依赖于任何数据库系统,不会因数据库系统的故障而导致数据丢失;
- 文档的存取不依赖易度文档管理系统,即便易度系统出现故障,仍然可通过传统的途径管理文档库。
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比较多,在大量用户使用的时候,可能导致性能的瓶颈。
随着用户使用人数的增加,系统能够在如下方面平滑扩展,按需适应:
- 使用多台计算机、开启更多的服务进程来提供服务,利用apache的负载均衡功能来分配请求。
- 将耗时的操作串行化,在后台执行。这样可以避免冲突,提升响应速度。比如索引、pdf转换、预览转换等。我们采用zc.async组件来实现此操作。
10.3. 套件产品
易度文档是易度在线工作套件的一个模块。 通过简单的激活,就可以开启其他的功能,如项目管理、客户、流程、任务、计划等。所有模块完全集成。
10.4. 定制开发平台
易度工作套件有一个特殊的模块:“易度应用”。
使用这个模块,可以通过利用平台的强大特性,在浏览器上进行平台的脚本开发,定制开发自己需要的应用。
10.5. 完整的API接口提供企业级应用集成
易度工作平台提供API,供其他系统整合。根据需求,润普可以进行定制,整合其他的系统。
系统支持LDAP/AD/数据库等接口的用户集成。可以与企业其他现有应用进行整合(例如CRM、ERP、OA等)。
11. 总结
易度文档管理系统采用大量的开源技术,运用了一些创新的技术理念,有良好的开发性,较好的性能,并拥有良好的可扩展性。
在线客服

常见问题列表





