以文档为中心的系统的基本原理是什么?
我知道两个著名的以文档为中心的系统:Sharepoint 服务器和 Lotus Notes。 一定还有其他人。 例如,我听说过 CouchDB。 主要的实现差异是什么,以及它们如何影响:
可用性
检索性能
搜索性能/质量
可扩展性/集成
如果您能详细说明为什么您愿意或不愿意将这些文档存储在关系数据库中并用元数据存储来装饰它们,那就更好了在适当的模式中。 我很难相信这些系统与论坛和博客有很大不同,它们基于关系数据库,业务代码位于顶部。
额外奖励:Lotus Notes 的文档如此难找到有什么原因吗? 我将不胜感激一些指点。
I know of two famous document-centric systems: Sharepoint server and Lotus Notes. There must be others. I've heard of CouchDB, for example. What are the main implementation differences, and how do they affect:
Usability
Retrieval performance
Search performance/quality
Extensability/ integration
Bonus if you can elaborate on why you would or wouldn't just store these documents in a relational database and decorate them with metadata stores in an appropriate schema. I find it hard to believe that these systems are very different from forums and blogs, which themaelves are based on relational databases with business code sitting on top.
Extra bonus: Is there any reason why Lotus Notes is so hard to find documentation on? I'd be grateful for some pointers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Lotus Notes 将所有数据存储在 NSF 文件中。 NSF 文件是 Notes 文档的容器,Notes 文档是非结构化记录。 每个文档中可以包含任意数量的项目,类似于关系数据库的表和列。 然而,与关系数据库不同的是,在数据模型级别上,文档必须具有哪些项目没有任何限制,因此每个单独的文档内部可能包含截然不同的数据。
注释视图用于查看文档内的数据,通常过滤具有相似项目的文档。 Notes Agent、Pages 和更多工具可用于轻松从 NSF 中获取数据。
Notes 的优势在于它可以轻松地通过表单捕获数据,并通过视图、XML、HTML、Java Servlet 等输出数据。它可以通过强大的复制系统轻松管理分布式数据。 它还因其内置的安全性而备受推崇。
CouchDB 由前 Iris/Lotus/IBM 员工 Damien Katz 创建,具有许多相同的优势,而且没有 Lotus Notes 的管理费用和成本。
文档一词可能会在 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 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 和各种开发人员博客。
Lotus Notes stores all data in NSF files. An NSF file is a container for Notes Documents, which are unstructured records. Each Document can have any number of Items in it, similar to that of a relational database's tables and columns. Unlike relational databases, however, there are no constraints at the data model level on what Items a Document must have, so each individual Document might contain vastly different data inside.
Notes Views are used to see the data inside Documents, usually filtering on Documents with similar Items. Notes Agents, Pages, and more tools are available to get the data out of an NSF easily.
Notes' strengths are its ease of capturing data via Forms, and outputing data via Views, XML, HTML, Java Servlets, etc. It manages distributed data easily via a powerful replication system. It is also highly touted for its built in security.
CouchDB, created by an ex-Iris/Lotus/IBM employee, Damien Katz, has many of those same strengths, without the overhead and cost of Lotus Notes.
The word document can cause confusion in the Lotus Notes world. File documents such as PDFs, Word docs, Excel files, etc are stored within Lotus Notes Documents as part of the unstructured data.
SharePoint stores data in SQL server. It's data is very list-based with the additional ability to store file documents on the server and maintain meta-information on them as well.
A SharePoint list is much like a flat table, but unlike Lotus Notes, that list does have constraints on its data.
SharePoint data is collected and exposed mostly via its Web-based interface, but there are mnay ways to access the data such as the SharePoint API, Web services, XML, and even directly from the SQL server (not recommended).
Usability: For end users, both rank high here. SharePoint is all Web-based and end-users can easily manage a SharePoint site themselves with little training. Lotus Notes requires a Notes client or requires a Domino application to be built for exposure via the Web. For developers, Notes is easier to use but is quirky and uses proprietary languages - the Notes Formula language and LotusScript. SharePoint requires no coding at all for some basic workflows and site manipulation, but to get serious control you need to be a .NET developer and the code can be very complex.
Retrieval performance: For small projects, Lotus Notes does very well. Very large databases with over 10,000 Documents tend to start to decline in performance. SharePoint uses SQL server so it can easily handle very large numbers of lists or files within its data store.
Search performance/quality: Both have good search capabilities, but SharePoint wins if you are trying to search a large number of documents.
Extensability/ integration: SharePoint is the more extensible. Both, however, can integrate easily with other systems using XML. Notes can also integrate using Java agents/servlets, and Web Services. SharePoint has its Web services API and third-party add-ons for integration.
Bonus: Lotus Notes just isn't as popular as SharePoint at the moment. There are key places for documentation such as www.notes.net, and various developer blogs.
Sharepoint 完全按照你说的做。 它构建在关系数据库之上,并提供了一些看起来有点像带有 Web 界面的文件系统的东西。 此文档存储主要用于与 Office 集成,只是 Sharepoint 的一小部分。
基于文档的数据库系统。 就像 CouchDB 或 Amazon S3 是不同的野兽。 与关系数据库相比,它们以不太结构化的方式存储数据。 主要以密钥-文档对的形式出现。 您可以通过键或查询来检索文档,但由于文档的结构不像关系数据库中表中的行那样统一,因此查询可能会更加困难。 这些数据库并不是真正要像关系数据库那样使用,它们更适合大型 Web 后端等的可扩展性。Lotus
Notes 实际上结合了这两者。 您可以将它用于文档管理(以及电子邮件等等),并且它构建在自己的文档数据库之上。
Sharepoint does exactly what you say. It's built on top of a relational database and offers something that looks a bit like a file-system with a web-interface. This document storage is primarilly geared towards integration with Office and is only a small part of Sharepoint.
Document based database systems. Like CouchDB or Amazon S3 are different beasts. They store data in a less structured way than relational databases. Mostly in the form of key-document pairs. You can retrieve documents by key or by querying but because documents are not uniformly structured like rows in a table in a relational database querying can be more difficult. These databases aren't really meant to be used like relational database, they're geared more toward scalability for large web-backends etc.
Lotus Notes actually combines these two. You can use it for document management (and email and much more) and it's built on it's own document-database.
好吧,Sharepoint 将其数据/列表/文档/任何内容以及元数据的“装饰”存储在关系数据库(SQL Server,毫不奇怪......)中。 根据谣言(我自己没有研究过),数据模型非常复杂,您必须使用提供的 C# API 来对数据执行任何操作(这可能是好事,也可能是坏事,具体取决于您的偏好)和目标)。
Well, Sharepoint stores its data/lists/documents/whatever in a relational database (SQL Server, unsurprisingly...), along with "decorations" of metadata. Based on rumours (haven't looked into it myself), the data model is so convoluted that you have to use the C# API supplied to do anything with the data (which can be a good thing or a bad thing, depending on your preferences and goals).