实施简单的文档管理

我的问题是:您将如何根据以下要求继续实施简单的DMS(文档管理)?

  1. DMS shouls是分布式Web应用程序。
  2. 支持文档版本控制。
  3. 支持文档锁定。
  4. 文件搜索。

我已经清楚我想要使用什么技术。 我将使用Sring MVC,Hibernate和关系(最有可能是MYSQL)数据库。

我不太清楚的一件事是我是否需要使用webdav ,因为我可以上传或下载文档。 我必须这样做,因为我需要完成第2点,尤其是第3点。 这是正确的方法吗?

任何示例或经验都会非常方便:)。 可能是Milton不是webdav最好的图书馆吗?

@Eduard,关于第三方的依赖性 – 您是在做这个大学/大学练习还是会影响生产环境中的真实用户?

冒着听起来非常自命不凡的风险; 不要重新实现轮子! 我肯定是第二次使用JCR的电话,这样你依赖标准而不是第三方实现。

JCR是一个定义明确的标准(这意味着很多人投入商业努力(即大量现金和专业知识))。 我会认真考虑调查JCR – 将其视为第三方提供实施的API(无供应商锁定)。

看看你开箱即用的function,我相信99 – 110%的function是通过JCR实现提供的。 此外,您将受益于您将使用的代码已经过数百人在现实世界中的测试。

我与bmscomp的不同之处在于建议JackRabbit http://jackrabbit.apache.org/

选项1:

我不确定webdav,没有真正的经验。 但我强烈建议您使用像MongoDB这样的Document数据库。

使用mongodb,您可以:
1. 处理文档版本
2. MongoDB具有primefaces操作 ,可以添加文档锁定的逻辑。

这将为您提供搜索文档存储的一些非常好的附加好处。

选项2:

Apache Jackrabbit :内容存储库

内容存储库是分层内容存储库,支持结构化和非结构化内容,全文搜索,版本控制,事务,观察等。

考虑使用JCR Java内容存储库http://en.wikipedia.org/wiki/Content_repository_API_for_Java,或者您可以查看在Alfresco或Exo框架上完成的工作,他们做得很好

您可以使用这些开源项目来满足您的要求:

  1. http://sourceforge.net/projects/logicaldoc/ – LogicalDOC是一个现代化的文档管理系统,具有良好的界面,易于使用且速度非常快。 它使用开源Java技术,如GWT,Spring,Lucene,以提供灵活且可扩展的DMS平台。 http://www.logicaldoc.com

  2. http://sourceforge.net/projects/openkm/ – OpenKM文档管理 – DMS更新2011-05-25 OpenKM是function强大的可扩展文档管理系统(DMS)。 OpenKM使用Jboss + J2EE + Ajax web(GWT)+ Jackrabbit(lucene)开源技术。 http://www.openkm.com/

Spring MVC是一个不错的选择。 如果你想使用关系数据库,那么也可以检查Datanucleus。 至少JDO层(加上可能是JPA层)提供版本控制支持。 对于搜索,我推荐基于lucene的apache solr,它具有出色而强大的全文搜索function。

虽然webdav似乎是一个简单的交叉平台文件传输协议的自然选择,但我从未有过很好的体验。 客户端或服务器都运行不正常(konqueror,Internet Explorer,zope 2,…)。 如此抽象的协议,并提供了多种方式来访问该文件。

Interesting Posts