Разработка Lotus Notes началась более 20 лет назад, с версии 1, выпущенной в 1989 . Он был разработан Рэй Оззи, в настоящее время главным архитектором программного обеспечения для Microsoft.
Lotus Notes (клиент) и Domino (сервер) существуют уже давно и представляют собой зрелые, хорошо оснащенные продукты. Имеет:
- Полный стек клиент-сервер с быстрым проектированием приложений и развертыванием ориентированных на документы баз данных.
- Полная инфраструктура открытых ключей для безопасности и шифрования.
- Надежная модель репликации и активная кластеризация на гетерогенных платформах (кто-то когда-то показал кластер домино с xbox и огромным сервером AIX ).
- Встроенный собственный каталог для управления пользователями, к которому также можно получить доступ через LDAP.
- Встроенная встроенная почтовая система, которая может масштабироваться для управления миллионами пользователей почтовыми файлами размером в несколько ГБ, с доступом к живому серверу или реплицированием локально для автономного доступа. Он может взаимодействовать со стандартной электронной почтой через SMTP, а также имеет встроенный доступ по протоколам POP и IMAP. Почтовая инфраструктура является основной функцией, доступной для всех приложений, созданных в Notes Domino (любой документ в базе данных может быть отправлен по почте в любую другую базу данных с простая команда doc.send ()).
- Встроенный стек HTTP, позволяющий осуществлять доступ к базам данных, размещенным на сервере, через Интернет.
- Множество опций интеграции для доступа, передачи и взаимодействия с системами RDBMS и ERP, с тесно связанной интеграцией с DB2, что позволяет базам данных Notes при необходимости поддерживать реляционное хранилище.
Обратная совместимость всегда была сильной чертой Notes Domino, и нередки случаи, когда базы данных, разработанные для версии 3, работали безупречно в самых современных версиях. IBM прилагает огромные усилия для этого, и это имеет большое значение для того, как продукт работает в настоящее время.
-
CouchDB был создан Дэмиеном Кацем, который начал разработку в 2004 году. Ранее он работал в IBM над Notes Domino, занимаясь разработкой шаблонов и в конечном итоге полностью переписав одну из основных функций - движок формул для ND6.
CouchDB разделяет базовую концепцию ориентированной на документы базы данных с представлениями Notes Domino.
В этой модели «документы» - это просто произвольные наборы значений, которые хранятся как-то. В CouchDB документы являются объектами JSON произвольной сложности. В Notes значения представляют собой простые пары имя-значение, где значения могут быть строками, числами, датами или их массивами.
Представления - это индексы документов в базе данных, отображающие определенное значение, вычисляющие другие и исключающие нежелательные документы. После построения индекса они постепенно обновляются при изменении любого документа в базе данных (созданного обновленным или удаленным).
В CouchDB представления создаются путем запуска функции сопоставления для каждого документа в базе данных. Функция отображения вызывает метод emit с объектом JSON для каждой записи индекса, которую она хочет создать для данного документа. Этот объект JSON может быть сколь угодно сложным. CouchDB может затем запустить вторую функцию сокращения для сопоставленного индекса представления.
В Notes Domino-представления создаются путем запуска функции выбора (написанной на языке формул Notes Domino) для каждого документа в базе данных. Функция выбора просто определяет, должен ли документ быть в представлении или нет. Примечания Дизайн представления Domino также определяет количество столбцов для представления. Каждый столбец имеет формулу, которая запускается для выбранного документа, чтобы определить значение для этого столбца.
CouchDB может создавать гораздо более сложные индексы представлений, чем Notes Domino.
CouchDB также имеет систему репликации.
-
Резюме ( TL; DR ): CouchDB - это новое программное обеспечение, которое разрабатывает ядро, которое имеет концептуальный, но гораздо более сложный дизайн, чем используется в Lotus Notes Domino. Lotus Notes Domino - это зрелый полнофункциональный продукт, который может быть развернут сегодня. CouchDB начинается с нуля, создавая прочную основу для дальнейшего развития функций. Lotus Notes Domino продолжает разрабатывать новые функции, но делает это на 20-летней платформе, которая стремится поддерживать обратную совместимость. В Notes Domino есть функции, которые вы могли бы пожелать использовать в CouchDB, но в Notes Domino также есть анахроничные функции в современном мире.