构建文档管理系统的想法

时间:2009-06-18 20:16:01

标签: architecture scalability

客户需要document managment system,我正在构建有关此信息。

我知道sharepoint&露天,但在这种情况下,我正在评估从头开始构建它的必要信息,所以请不要建议使用任何这些(我们正在分别对它们进行评估,这是关于开发,而不是实现存在溶液)。

这是要求:

  • 对我们当地政府特有的文件的法律管理有一个非常具体的要求,但除此之外:
  • 从最终用户的角度来看类似于Google文档的操作
  • 需要来自200多个最终用户的商店信息(更新:真的是+700最终用户)
  • 主要是办公室文件,pdf,文字。我已经从这个二进制文件中提取了纯文本。
  • 没有wiki,没有门户创建,几乎没有工作流程,但很简单,只是文件的管理
  • 中央存储库,在整个公司内共享,与Active Directory集成
  • 快速搜索
  • 透明桌面集成
  • 网络界面
  • 多平台,如果可能

所以,这就是我头脑中的事情:

  • 存储:我知道sharepoint会在db中保存所有内容(Alfresco也是如此?)。这是一场噩梦,恕我直言。我更喜欢将元数据放在数据库中,将文件放在磁盘上。

我想在这种情况下强制使用ZFS&利用他们的功能进行版本控制,快照和缩放。或者也许使用git作为存储后端(git可以正常工作吗?)

那么,我可以在ZFS或任何常规文件系统中更多地了解如何处理大量文档?例如,如何将文件夹结构布局为易于管理&快速响应,轻松备份等。

  • 元数据:我认为在这里的常规数据库中,但是想知道是否有更多优点保存Lucene中的所有内容(我对Lucene有一些经验,但担心因为Lucene不能联合,严格?)。

如果我使用搜索引擎作为元数据数据库,我可以保存一些工作(不需要第二遍索引),但常规数据库引擎更标准。

  • Tech:我可能会在Django,PyLucene,Postgress中构建它,并为windows进行shell集成(我没有问题)。

我将提供有关如何正确实施此解决方案的任何提示或信息。

4 个答案:

答案 0 :(得分:1)

  1. SharePoint和Alfresco是您可以进行大量自定义的平台,因此即使使用它们也意味着您正在构建一些东西。

  2. 默认情况下,SharePoint会将数据库存储在数据库中,but has ways to put them on a filesystem

  3. 如果您自己制作,请支持Office应用用于与SharePoint和Alfresco通信的首页扩展,并使用正确的标题提供文档,告诉IE启动应用。这样,您可以获得与SharePoint具有的Office应用程序相同的集成(用户真的喜欢此功能) - 它只是一个简单的HTTP协议

  4. 如果您使用SharePoint,我的公司可以free document previewer查看PDF,很快就会拥有Office文档。我们销售底层技术,但它只是Windows。

  5. 我喜欢Django,并将其用于所有个人项目,但我确实认为.NET和Java将为您需要的东西提供更多第三方支持,并且您的大部分代码都可以移植到SharePoint或Alfresco,如果你决定稍后这样做。

  6. 编辑:根据要求提供有关#3的更多信息

    http://blogs.msdn.com/mikefitz/archive/2005/03/14/395112.aspx http://blogs.msdn.com/stcheng/archive/2008/12/17/wss-use-rpc-protocol-to-access-wss-v3-site.aspx 官方文档: http://msdn.microsoft.com/en-us/library/ms442469.aspx

答案 1 :(得分:1)

我个人认为“类似Google Docs”和“透明桌面集成”的要求有点模糊,恕我直言。但从这个问题来看,你更关注后端和文档存储,并且更多地关注使用更开源的堆栈(与AD集成)?

无论如何,我个人使用KnowledgeTree作为我们的文档管理系统,它们的实现是所有文件都驻留在文件目录中,数据库将跟踪路径,相应的元数据,访问日志和版本信息。如果文档已经更新,他们基本上保留了同一文件的几个版本 - 考虑到Microsoft Office文档主要是二进制文件(直到2003年),我认为这是一个公平的想法实现。

您可能想要了解他们目前拥有多少文档以及他们希望每天流入此系统的文档数量。 (或者从不同的角度来看,他们计划存储什么样的文档通常会给你提示服务器应该处理什么样的负载)

我的猜测是,除非您确定系统每天都要处理大量文档,否则您很可能会放弃使用本地文件系统和数据库存储元数据的设置(想象一下是Flickr对于文件;))。

答案 2 :(得分:0)

Alfresco应该是一个很好的解决方案。除政府事务外,它支持您的每个要求清单。

但是,如果你是“从头开始”建立,也许至少可以从中获取想法吗?

存储:文件内容保存在文件系统中。易于管理,存储,备份和填充。文件不保留名称,只是它们的内容以二进制格式保存,文件被命名为哈希(我猜是内容的哈希值?)

元数据:放在数据库中。快速访问,更改,更新和填充。每个节点都有属性 - 名称,标题,描述,日期,审核信息,无论您需要什么。它只是信息,它全部保存在“属性”表中。

搜索:Alfresco使用Solr进行搜索,它曾经是Lucene。我有相当大的安装,如果你把lucene索引放在SSD上,它的速度非常快。 (无论如何,lucene很快)。它会对文件内容和属性进行索引 - 因此您可以非常快速地获取节点ID。

Alfresco实施了CIFS,以及webdav,ftp等等。关键是,您可以将其作为文件夹或磁盘安装到用户的桌面上。

Web界面就在那里,中央回购管理器就在那里,所有需求。由于它是开源的,您可以获得一些源并在您的项目中使用它。虽然如果你感觉还好,可以选择Alfresco社区并做一些贡献。

答案 3 :(得分:0)

您是否正在尝试构建文档管理系统? Alfresco&的SharePoint? Alfresco& SharePoint是项目管理解决方案而不是文档管理解决方案。 Alfresco是某种DMS解决方案,但不是那么好。是!对于项目管理解决方案,它是一个很好的软件。

我建议您购买文件管理解决方案,该解决方案是文件的合法管理,也是特定于当地政府的。有一些文档管理系统提供商,如Laserfiche& OnBase,他们的工作类似于Google Docs。您可以为公司或业务的每位员工创建一个帐户。

是的,所有文件都是MS Office格式,如Ms-Word,Ms-excel,PDF& PPT

使用文档管理系统的工作流程非常高效且易于处理

使用DMS可以在几分钟内轻松找到文件(Laserfiche Software需要10分钟才能解压缩文件或文件夹) Laserfiche DMs是网络界面软件。您可以登录软件轻松访问不同位置的文件或文件夹

存储

在DMS系统中,所有数据都受到保护并存储在云存储中。只需登录您的帐户即可轻松访问该文档。如果丢失或任何畸形,您可以从公司获取丢失的数据。

元数据

DMs系统是常规数据库引擎,因为所有业务数据都定期在云存储中受到保护

技术

没有必要建造任何东西;您只需要购买DMS软件。我建议您使用Laserfiche,因为我们正在使用他们的服务