Lotus Notes的开发始于20多年前,已有version 1 released in 1989个.它是由微软现任首席软件架构师Ray Ozzie开发的.
Lotus Notes(客户端)和Domino(服务器)已经存在很长时间了,它们是功能完善的成熟产品.它有:
向后兼容一直是Notes Domino的一个强大特性,为版本3开发的数据库在最新版本中完美运行的情况并不少见.IBM在这方面投入了大量精力,这对该产品目前的运行方式有很大影响.
-
CouchDB是由Damien Katz创建的,从2004年开始开发.他之前在IBM的Notes Domino上工作过,开发过模板,并最终完全重写了ND6的核心特性之一-公式引擎.
CouchDB与Notes Domino的视图共享面向文档数据库的基本概念.
在此模型中,"文档"只是以某种方式存储的值的任意集合.在CouchDB中,文档是任意复杂的JSON对象.在Notes中,值是简单的名称值对,其中的值可以是字符串、数字、日期或它们的array.
视图是数据库中文档的索引,显示特定的值,计算其他值,并排除不需要的文档.一旦构建了索引,当数据库中的任何文档发生更改(创建、更新或删除)时,它们都会以增量方式更新.
在CouchDB中,视图是通过在数据库中的每个文档上运行映射函数来构建的.映射函数为要为给定文档创建的每个索引项调用带有JSON对象的emit方法.该JSON对象可以是任意复杂的.然后,CouchDB可以在视图的映射索引上运行第二个缩减函数.
在Notes中,Domino视图是通过对数据库中的每个文档运行SELECT函数(用Notes Domino公式语言编写)来构建的.SELECT函数只是定义文档是否应该在视图中.Notes Domino视图设计还为视图定义了许多列.每列都有一个公式,该公式针对选定的文档运行,以确定该列的值.
CouchDB能够生成比Notes Domino复杂得多的视图索引.
CouchDB也有一个复制系统.
-
Summary(TL;DR):CouchDB是一款全新的软件,它正在开发一个核心,其概念与Lotus Notes Domino中使用的类似,但设计要复杂得多.Lotus Notes Domino是一款成熟的功能齐全的产品,现在可以部署.CouCHDB正从零开始,为future 的特色发展打下坚实的基础.Lotus Notes Domino正在继续开发新功能,但它是在一个有20年历史的平台上开发的,该平台致力于保持向后兼容性.Notes Domino中有一些功能,您可能希望它们是在CouchDB中,但Notes Domino中也有一些功能在当今世界是不合时宜的.