2011-05-31 267 views
5

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

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

我已经明确了我想要使用的技术。我将使用Sring MVC,Hibernate和关系数据库(很可能是MYSQL)。

有一点我不是很清楚,如果我需要使用webdav,因为我只能上传或下载文档。我必须要做的事情,因为我需要完成第2点,尤其是第3点。这是正确的路吗?

任何与此有关的例子或经验将非常方便:)。可能米尔顿不是选择webdav的最佳图书馆吗?

+0

Okey我看到我更新我的问题,由DMS我的意思是文件管理。 – Eduard 2011-06-02 08:24:15

回答

3

@Eduard,关于对第三方的依赖 - 是你是做这种大学/大学演习还是会影响生产环境中的真实用户?

冒着听起来很冒昧的风险;不要重新实现轮子!我肯定会再次打电话来使用JCR,这种方式你依赖于标准而不是第三方实现。

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

查看您将获得的即用即用功能,我相信99-110%的功能需要通过JCR实现提供。此外,您将从实际使用的代码在数百个人的真实世界中得到测试。

在哪里我会从不同bmscomp在暗示JackRabbit用http://jackrabbit.apache.org/

+0

你让我相信:)因为你都在说同样的事情+1。 – Eduard 2011-06-02 12:00:20

+0

很高兴听到它=)。 如果一种非现成的产品提供了您所需要的80%(并且从一开始就被设计为一个可扩展的API),那么您将获得更多的进展,并有可能将您的更具体的扩展贡献回更广泛的社区(通过代码提交,博客或wiki帖子) 在webdav正面:http://jackrabbit.apache.org/jackrabbit-webdav-library.html 祝你好运和快乐编码 – earcam 2011-06-02 22:38:55

+0

编辑:看着JackRabbit接近一点我认为它提供了99.99%以上的效果(这是一个活跃的项目,并且在邮件列表和Jira上会有很多支持)。从你列出的四点来看,所有内容都被覆盖了,如果合作锁定不是你可以插入后的内容:http://jackrabbit.apache.org/api/2.1/org/apache/jackrabbit/core/util/ RepositoryLockMechanism.html和http://wiki.apache.org/jackrabbit/RepositoryLock – earcam 2011-06-02 22:45:24

3

选项1:

我不知道有关WebDAV,它没有实际的经验。但我强烈建议你使用像MongoDB这样的文档数据库。

随着MongoDB中,您可以:
1. Handle document versions
2. MongoDB的具有atomic operations,您可以添加文件锁定的逻辑。

这会给你一些搜索你的文档商店的额外好处。

选项2:

Apache Jackrabbit:内容库

内容存储库是一个层次 内容存储与结构的 支持和非结构化内容, 全文搜索,版本控制, 交易,观察等等。

+0

这听起来不错,而且我看着它。但可能我正在寻找更多的答案,这将使我更多地了解如何自行开发此功能。 MogoDB是太具体的数据库 - 我需要我的应用程序不是如此特定于数据库。而当我只需要存储文档时,使用内容存储库似乎过度。 – Eduard 2011-06-02 08:49:32

2

考虑使用JCR Java内容存储库 http://en.wikipedia.org/wiki/Content_repository_API_for_Java或者你可以看看在露天或和外框架所做的工作,他们的工作做得很好

+1

是的,他们做得很好,但他们的解决方案对我而言太复杂了。我只需要存储文档版本就可以锁定它们并搜索它们。另一件事是我不想依赖第三方解决方案太多。所以我更喜欢自己开发这个。 – Eduard 2011-06-02 08:51:48

2

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

  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是功能强大的可扩展的文档管理系统(DMS)。 OpenKM使用Jboss + J2EE + Ajax web(GWT)+ Jackrabbit(lucene)开源技术。 http://www.openkm.com/

1

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

虽然webdav看起来像是一个简单的交叉平台文件传输协议的自然选择,但我从来没有过很好的体验。客户端或服务器不能正常工作(konqueror,Internet Explorer,zope 2,...)。所以从协议中抽象出来并提供多种访问文件的方式。

+0

+1我认为当我开始搜索这个主题时,webdav比我想象中的更麻烦。 – Eduard 2011-06-06 08:49:30