【问题标题】:What is the rationale for document-centric systems?以文档为中心的系统的基本原理是什么?
【发布时间】:2009-05-28 06:14:13
【问题描述】:

我知道两个著名的以文档为中心的系统:Sharepoint 服务器和 Lotus Notes。必须有其他人。例如,我听说过 CouchDB。主要的实现差异是什么,它们如何影响:

可用性

检索性能

搜索性能/质量

可扩展性/集成

如果您能详细说明为什么会或不会将这些文档存储在关系数据库中并在适当的模式中使用元数据存储来装饰它们,那么您将获得奖励。我很难相信这些系统与论坛和博客有很大不同,它们本身是基于关系数据库的,业务代码位于顶部。

额外奖励:Lotus Notes 上的文档很难找到有什么原因吗?我会很感激一些指示。

【问题讨论】:

    标签: sharepoint document couchdb blogs lotus-notes


    【解决方案1】:

    Lotus Notes 将所有数据存储在 NSF 文件中。 NSF 文件是 Notes 文档的容器,它们是非结构化记录。每个 Document 中可以包含任意数量的 Item,类似于关系数据库的表和列。然而,与关系数据库不同的是,在数据模型级别对 Document 必须具有哪些 Items 没有限制,因此每个单独的 Document 内部可能包含截然不同的数据。

    Notes 视图用于查看 Documents 内的数据,通常过滤具有相似 Items 的 Documents。 Notes 代理、页面和更多工具可用于轻松从 NSF 中获取数据。

    Notes 的优势在于它易于通过表单捕获数据,并通过视图、XML、HTML、Java Servlet 等输出数据。它通过强大的复制系统轻松管理分布式数据。它还因其内置的安全性而备受推崇。

    由前 Iris/Lotus/IBM 员工 Damien Katz 创建的 CouchDB 具有许多相同的优势,而且没有 Lotus Notes 的开销和成本。

    word 文档可能会在 Lotus Notes 世界中引起混乱。 PDF、Word 文档、Excel 文件等文件文档作为非结构化数据的一部分存储在 Lotus Notes Documents 中。

    SharePoint 将数据存储在 SQL Server 中。它的数据非常基于列表,并具有在服务器上存储文件文档并维护它们的元信息的额外能力。

    SharePoint 列表很像一个平面表格,但与 Lotus Notes 不同的是,该列表确实对其数据有限制。

    SharePoint 数据主要通过其基于 Web 的界面收集和公开,但有多种方法可以访问数据,例如 SharePoint API、Web 服务、XML,甚至直接从 SQL 服务器(不推荐)。

    可用性:对于最终用户来说,两者都在这里排名靠前。 SharePoint 都是基于 Web 的,最终用户无需培训即可轻松地自行管理 SharePoint 网站。 Lotus Notes 需要 Notes 客户端或需要构建 Domino 应用程序以通过 Web 公开。对于开发人员来说,Notes 更容易使用,但很古怪,并且使用专有语言——Notes 公式语言和 LotusScript。 SharePoint 根本不需要对一些基本工作流和网站操作进行编码,但要获得严格的控制,您需要成为 .NET 开发人员,而且代码可能非常复杂。

    检索性能:对于小型项目,Lotus Notes 做得很好。具有超过 10,000 个文档的超大型数据库往往会开始性能下降。 SharePoint 使用 SQL Server,因此它可以轻松处理其数据存储中的大量列表或文件。

    搜索性能/质量:两者都具有良好的搜索功能,但如果您尝试搜索大量文档,SharePoint 会胜出。

    可扩展性/集成:SharePoint 更具可扩展性。然而,两者都可以很容易地与使用 XML 的其他系统集成。 Notes 还可以使用 Java 代理/servlet 和 Web 服务进行集成。 SharePoint 有其 Web 服务 API 和第三方插件用于集成。

    奖励:Lotus Notes 目前还没有 SharePoint 流行。有一些重要的文档位置,例如 www.notes.net 和各种开发者博客。

    【讨论】:

    • 关于 Lotus Notes 的另外一个非常重要的说明(双关语)。 RAD 的能力是惊人的。如果您有幸拥有完整的 Notes 客户端基础架构,则可以在数小时(有时是几分钟)内推出全新的、功能齐全、高度安全且高效的协作型 Notes 应用程序——在未来几年内几乎不需要维护.
    【解决方案2】:

    Sharepoint 完全按照您所说的去做。它建立在关系数据库之上,并提供了一些看起来有点像带有 Web 界面的文件系统的东西。此文档存储主要用于与 Office 集成,并且只是 Sharepoint 的一小部分。

    基于文档的数据库系统。像 CouchDB 或 Amazon S3 是不同的野兽。它们以比关系数据库更少结构化的方式存储数据。主要以密钥-文档对的形式。您可以通过键或查询来检索文档,但由于文档的结构不统一,例如关系数据库中表中的行,查询可能会更加困难。这些数据库并不是真的要像关系数据库那样使用,它们更适合大型 Web 后端等的可扩展性。

    Lotus Notes 实际上结合了这两者。您可以将它用于文档管理(以及电子邮件等等),它建立在自己的文档数据库之上。

    【讨论】:

      【解决方案3】:

      嗯,Sharepoint 将其数据/列表/文档/任何内容存储在关系数据库(SQL Server,不出所料......)中,以及元数据的“装饰”。根据谣言(我自己还没有研究过),数据模型非常复杂,您必须使用提供的 C# API 来处理数据(这可能是好事也可能是坏事,具体取决于您的偏好)和目标)。

      【讨论】:

        最近更新 更多