以文档为中心的系统的基本原理是什么?

时间:2009-05-28 06:14:14

标签: sharepoint document couchdb blogs lotus-notes

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

可用性

检索效果

搜索效果/质量

可扩展性/集成

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

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

3 个答案:

答案 0 :(得分:7)

Lotus Notes将所有数据存储在NSF文件中。 NSF文件是Notes文档的容器,它是非结构化记录。每个文档中可以包含任意数量的项目,类似于关系数据库的表和列的项目。但是,与关系数据库不同,数据模型级别对文档必须具有的项目没有约束,因此每个单独的文档可能包含非常不同的数据。

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

Notes的优势在于它可以轻松地通过Forms捕获数据,并通过Views,XML,HTML,Java Servlet等输出数据。它通过强大的复制系统轻松管理分布式数据。它的内置安全性也非常受欢迎。

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

单词文档可能会导致Lotus Notes世界出现混淆。诸如PDF,Word文档,Excel文件等文件文档作为非结构化数据的一部分存储在Lotus Notes文档中。

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

SharePoint列表很像平面表,但与Lotus Notes不同,该列表确实对其数据有约束。

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

可用性:对于最终用户,这里都排名很高。 SharePoint是基于Web的,最终用户只需很少的培训即可轻松管理SharePoint站点。 Lotus Notes需要Notes客户端,或者需要构建Domino应用程序以通过Web进行曝光。对于开发人员来说,Notes更易于使用,但是很古怪并且使用专有语言 - Notes Formula语言和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和各种开发人员博客。

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:0)

好吧,Sharepoint将其数据/列表/文档/任何内容存储在关系数据库(SQL Server,毫不奇怪......)中,以及元数据的“装饰”。基于谣言(我自己没有看过),数据模型是如此复杂,你必须使用提供的C#API来处理数据(这可能是好事还是坏事,取决于你的偏好和目标)。