Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

Разработка Lotus Notes началась более 20 лет назад, с версия 1, выпущенная в 1989 году. Он был разработан Ray Ozzie, в настоящее время главный архитектор программного обеспечения для Microsoft.

Lotus Notes (клиент) и Domino (сервер) существуют уже давно и являются зрелыми, хорошо продуманными продуктами. Он имеет:

  • Полный стек сервера клиентов с быстрым дизайном приложений и развертыванием ориентированных на документ баз данных.
  • Полная инфраструктура открытого ключа для обеспечения безопасности и шифрования.
  • Прочная модель репликации и активная активная кластеризация на гетерогенных платформах (кто-то однажды показал кластер домино с xbox и огромный сервер AIX).
  • Встроенный собственный каталог для управления пользователями, к которым также можно получить доступ через LDAP.
  • Встроенная система почтовых рассылок, которая может масштабироваться для управления миллионами пользователей с несколькими почтовыми файлами в формате GB, с возможностью прямого доступа к серверу или реплицироваться локально для автономного доступа. Это может взаимодействовать со стандартной электронной почтой через SMTP, а также иметь доступ к POP и IMAP. Почтовая инфраструктура - это основная функция, доступная всем приложениям, построенным на Notes Domino (любой документ в базе данных можно отправлять по почте в любую другую базу данных, простая команда doc.send()).
  • Встроенный стек HTTP, позволяющий доступ к серверным базам данных через Интернет.
  • Множество вариантов интеграции для доступа, передачи и взаимодействия с системами РСУБД и ERP с тесно связанной интеграцией с DB2, позволяющей резервировать базы данных Notes, если это необходимо, реляционным хранилищем.

Обратная совместимость всегда была сильной особенностью Notes Domino, и нетрудно найти базы данных, которые были разработаны для версии 3, безупречно работающие в самых современных версиях. IBM прилагает к этому огромные усилия и имеет большое влияние на то, как работает данный продукт.

-

CouchDB был создан Дэмиеном Кацем, начиная разработку в 2004 году. Ранее он работал в IBM по Notes Domino, разрабатывал шаблоны и, в конечном итоге, полностью переписывал одну из основных функций - движок формулы для ND6.

CouchDB использует базовую концепцию ориентированной на документ базы данных с представлениями, которые Notes Domino имеет.

В этой модели "документы" - это просто произвольные коллекции значений, которые каким-то образом сохраняются. В CouchDB документами являются объекты JSON произвольной сложности. В заметках значения - это простые пары значений имени, где значения могут быть строками, числами, датами или массивами.

Представления - это индексы документов в базе данных, отображающие определенное значение, вычисление других и исключение нежелательных документов. После создания индекса они обновляются по мере изменения любого документа в базе данных (созданного обновленным или удаленным).

В представлениях CouchDB создаются путем запуска функции сопоставления для каждого документа в базе данных. Функция сопоставления вызывает метод emit с объектом JSON для каждой записи индекса, которую он хочет создать для данного документа. Этот объект JSON может быть сколь угодно сложным. CouchDB может затем запустить вторую функцию уменьшения на отображаемом индексе представления.

В представлениях Notes Domino создаются путем запуска функции выбора (написанной на языке формулы Notes Domino) для каждого документа в базе данных. Функция select просто определяет, должен ли документ быть в представлении или нет. Примечания. Конструкция представления Domino также определяет количество столбцов для представления. Каждый столбец имеет формулу, которая выполняется против выбранного документа, чтобы определить значение для этого столбца.

CouchDB может создавать гораздо более сложные индексы просмотра, чем Notes Domino.

CouchDB также имеет систему репликации.

-

Резюме (TL; DR): CouchDB - это новое программное обеспечение, которое разрабатывает ядро, имеющее аналогичный концептуальный, но гораздо более сложный дизайн, используемый в Lotus Notes Domino. Lotus Notes Domino - это зрелый полнофункциональный продукт, способный к развертыванию сегодня. CouchDB начинается с нуля, создавая прочную основу для разработки будущих функций. Lotus Notes Domino продолжает разрабатывать новые функции, но делает это на 20-летней платформе, которая стремится поддерживать обратную совместимость. В Notes Domino есть функции, которые вы, возможно, пожелаете, были в CouchDB, но есть также функции Notes Domino, которые являются анахроничными в современном мире.

Ответ 2

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

Ответ 3

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

Ответ 4

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

"Без поддержки транзакций" - Domino имеет транзакционное протоколирование. Если вам требуется более сложное ведение журнала транзакций, которое также доступно в кодировке.

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

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

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

"lotus script не является объектно-ориентированным" - Да, там вы делаете хорошие моменты. Однако это не означает, что язык испорчен. Кроме того, они сделали большое количество улучшений с 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 Клиент конструктора теперь можно загрузить, если вы хотите его проверить.

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

Ответ 5

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

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

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

Ответ 6

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

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

Ответ 7

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

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

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

Ответ 8

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

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

CouchDB не доказал, что сосать.

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

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

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

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

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

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

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

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

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

Прохладные вещи о CouchDB:

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

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

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

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