В чем разница между CouchDB и Lotus Notes? - PullRequest
21 голосов
/ 03 октября 2008

Я изучал возможность использования CouchDB. Я слышал, что это похоже на Lotus Notes, который все любят ненавидеть. Это правда?

Ответы [ 8 ]

48 голосов
/ 21 ноября 2008

Разработка 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 также есть анахроничные функции в современном мире.

10 голосов
/ 06 октября 2008

Это приложение Notes и пользовательский интерфейс, которые обычно ненавидят. Не архитектура позади.

6 голосов
/ 07 ноября 2008

Дэмиен Кац работал в Iris (Lotus), но он не был парнем из базы данных Notes. Он хорошо известен в сообществе Lotus Notes по переработке механизма Notes Formula Engine .
. Определенно есть некоторые сходства между CouchDB и Lotus Notes, такие как их ориентированные на документы, нереляционные данные и возможности репликации, но они более разнородны, чем похожи. CouchDB - это сервер базы данных, а Lotus Notes - платформа для совместной работы на уровне предприятия.

5 голосов
/ 30 октября 2009

@ Lex, вы должны заранее сказать, над какой версией Notes / Domino вы работаете, потому что ваши комментарии неверны.

«Нет поддержки транзакций» - Domino имеет журналирование транзакций. Если вы хотите более сложное ведение журнала транзакций, которое также доступно в кодировании.

"не очень подходит для обработки множества транзакций данных" - на самом деле он отлично справляется с ними. У вас есть блокировка документов и разрешение конфликтов репликации. Многое зависит от того, как вы настроили свое приложение для обработки рабочего процесса.

«Нет разделения между производственной средой и средой разработки». - Ложь. Единственный способ, которым это может быть правдой, - это если у вас плохо развернутая среда. Разработчики обычно должны иметь 0 прав для развертывания изменений дизайна в производственной среде. Они будут работать с шаблоном, который не реплицируется на основные серверы. Как только обновления сделаны и утверждены, администратор развертывает их. Они делают это, беря шаблон и подписывая его контролируемой подписью, разрешенной для запуска в рабочей среде, а затем сбрасывают шаблон и обновляют дизайн связанных приложений.

«Чем больше данных в лотосе, тем больше будет просмотров» - этот комментарий не имеет никакого смысла. Я не верю, что вы использовали Notes / Domino для каких-либо профессиональных навыков.

«Лотосный скрипт не объектно-ориентированный» - да, вы делаете хорошие замечания. Однако это не значит, что язык несовершенен. Также было сделано большое количество улучшений с 8.x и с 8.5.1. Например, встроенная поддержка веб-сервисов (укажите на WSDL и LS код для вас). 8.5.1 Также имеется много новых дизайнерских функций, таких как шаблоны кода, автозаполнение, всплывающая подсказка LSDoc для ваших собственных функций и т. Д.

Вы также касаетесь только LotusScript. Тем не менее, вы также можете кодировать в: Java, SSJS / DOJO (XPages), Javascript, язык @Formula, веб-службы (SOAP / REST), C-API, плагины Eclipse (RCP). Вывод в формате JSON и XML.

8.5.1 Клиент Designer теперь можно загрузить бесплатно, если вы хотите протестировать его.

Так что, хотя я полагаю, что не могу комментировать CouchDb, вы, скорее всего, не в Notes / Domino.

1 голос
/ 03 октября 2008

Интервью с подкастом Яна Ленхардта из команды CouchDB здесь .

Не возвращаясь и не слушая его снова, я считаю, что Дэмиен Кац, который был инициатором и до сих пор является ведущим разработчиком CouchDB, также был парнем в базе данных Notes. Так что, в некотором смысле, CouchDB - лучшая база данных Notes. Он объясняет некоторые различия в своем блоге .

1 голос
/ 03 октября 2008

Клиент Lotus Notes / сервер Domino состоит из объекта («документ») - механизма хранения (не реляционного), имеет полностью интегрированную модель безопасности на основе сертификатов / управление пользователями и разрешение конфликтов для синхронизации автономных / онлайн-изменений данных - это платформа для распределенных приложений.

" CouchDB - это ориентированный на документы сервер управления нереляционными базами данных (NRDBMS)."

CouchDB доступен через API в стиле REST.

0 голосов
/ 05 июня 2009

В чем разница между CouchDB и Lotus Notes?

Хорошо известно, что Lotus Notes отстой.

CouchDB, как доказывали, не сосал.

Ладно, это личное мнение, но я бы сказал, что Lotus Notes - отстой для того, что меня интересует ... хранилище данных для бизнес-приложения с веб-интерфейсом.

Вот мой краткий список общих причин, почему Lotus Notes отстой:

  • Нет поддержки транзакций - если несколько задач должны быть выполнены как единое целое, а одна не выполнена, невозможно откатить изменения одной (нескольких) задач, которые были успешно выполнены

  • Lotus Notes по своему характеру основывается на документах, а не на отношениях, и не очень подходит для обработки множества транзакций данных. Это приводит к множеству дублирования данных, что увеличивает размер базы данных и создает потенциальные устаревшие несинхронизировать сценарии данных.

  • Нет разделения между производственной средой и средой разработки. Если вы ошиблись в конструкторе Lotus Notes, слишком легко скопировать те изменения, которые могут привести к удалению данных в рабочей среде

  • Чем больше данных о лотосах содержится в данных, тем больше будет создаваться представлений, что сделает приложение менее управляемым с точки зрения разработчика и пользователя.

  • Лотос-скрипт не является объектно-ориентированным:

    • Лотос-скрипт не поддерживает интерфейсы
    • скрипт lotus не поддерживает перегрузку методов >> нет полиморфизма >> делает кодирование многословным и более подверженным ошибкам
    • Лотос-скрипт не поддерживает множественное наследование
    • Лотос-скрипт основан на объектах, что означает, что вы можете создавать классы и создавать объекты
    • Скрипт лотоса не поддерживает замыкания, блоки / процедуры proc или любые конструкции метапрограммирования
  • Список может быть довольно длинным, особенно если учесть реализацию Lotus Notes по электронной почте.

CouchDB, с другой стороны, может быть достаточно эффективным, если в вашем приложении есть необходимость хранить ориентированные на документы данные.

Классные вещи о CouchDB:

  • Отлично подходит для приложений, которые должны управлять объектами с произвольными атрибутами данных

  • Производительность ... (хорошо для параллельной обработки)

  • Интерфейс REST / JSON

Слово предупреждения: Неправильное использование технологий повредило довольно много ИТ-проектов ... и плохое внедрение технологий продолжает причинять боль и страдания.

0 голосов
/ 07 ноября 2008

Это похоже на то, как Notes работает с данными в том, что все является документом произвольной структуры, и у вас есть представления над этими документами вместо таблиц и записей, как в реляционной базе данных. Репликация и т. Д. Также имеет некоторые сходства.

В архитектуре сервера Notes нет ничего плохого, люди не так сильно это ненавидят. Это больше реализация и раздувание, которое идет с Notes.

CouchDB также не имеет внешнего интерфейса, только серверный компонент. Клиент Notes отстой, и это то, что люди ДЕЙСТВИТЕЛЬНО ненавидят. Вы когда-нибудь пытались отправить по электронной почте э-э, я имею в виду "памятку" что-то из Notes? Не приятно: (

...