Открыть сервис

Domino Database

Domino Database (также известна как Domino) — это гибридная NoSQL-база данных и документно-ориентированная система управления базами данных (СУБД), разработанная американской компанией Lotus Development Corporation (позже — IBM, а затем HCL Technologies). Основная особенность системы заключается в сочетании реляционной модели (через встроенный SQL-доступ) и модели документов на основе технологии NSF (Notes Storage Facility). Domino Database является ключевым компонентом платформы HCL Domino (ранее — IBM Domino, Lotus Domino), используемой для создания корпоративных приложений, систем коллективной работы, электронной почты и управления документами.

Архитектура и модель данных

Документная модель NSF

Основной единицей хранения в Domino Database является документ, который представляет собой набор полей произвольного типа: текст, числа, даты, RTF-форматированный текст, вложения, ключевые слова и ссылки на другие документы. В отличие от традиционных реляционных СУБД, схема данных (набор полей) не фиксирована на уровне базы — каждый документ может иметь собственную структуру. Это обеспечивает гибкость при работе с полуструктурированными данными.

Документы группируются в базы данных (NSF-файлы). Каждая база данных представляет собой автономный файл с расширением .nsf, который содержит как сами документы, так и метаданные, дизайн (формы, виды, агенты) и индексы.

Роль форм и видов

Формы (forms) определяют визуальное представление документов при их создании, редактировании и просмотре. Форма включает поля, логику валидации и вычислений (на языке формул LotusScript или JavaScript), а также макет интерфейса. Однако форма не является жёсткой схемой хранения: документ может быть создан через одну форму, а просмотрен через другую.

Виды (views) — это индексированные представления данных, аналогичные представлениям (views) в реляционных БД, но с поддержкой иерархической (древовидной) группировки строк. Виды позволяют отображать документы, отсортированные по значениям полей, с фильтрацией и вычисляемыми колонками.

Иерархический контейнер баз данных

Domino Database поддерживает вложенные базы данных — так называемые «вкладки» (subdatabases) и «каталоги» системных баз. Однако в классической реализации каждый NSF-файл содержит только одну логическую базу данных. Иерархия может быть реализована через ссылки между документами (response documents) — механизм, при котором один документ является «родительским» для другого, формируя древовидную структуру (например, тема и ответы на неё в форуме).

Языки запросов и манипуляции

Domino Database поддерживает несколько способов извлечения и обработки данных:

Транзакции и согласованность

Domino Database не поддерживает стандартные ACID-транзакции в понимании реляционных СУБД. Операции модификации документов выполняются как атомарные изменения на уровне одного документа: сервер Domino фиксирует каждое действие как единицу работы с блокировкой документа на время записи. При обновлении нескольких документов в одном сценарии (например, в LotusScript-агенте) согласованность обеспечивается только программно — система не гарантирует целостности связей между ними. Это компромисс, характерный для документо-ориентированных NoSQL-систем.

Масштабирование и репликация

Ключевой особенностью Domino Database является асинхронная репликация между серверами и клиентами. Репликация работает по принципу «один ко многим»: изменения, внесённые в копию базы данных на одном сервере, автоматически переносятся на другие серверы по расписанию или вручную. Это позволяет создавать распределённые системы совместной работы, где пользователи могут работать с данными даже при временной потере связи с центральным сервером (офлайн-режим).

Масштабирование достигается за счёт разделения нагрузки между серверами и использования кластеризации (Domino Cluster). В кластере серверы синхронизируют данные и могут обслуживать запросы друг друга при отказе одного из узлов.

История разработки

Разработка технологии началась в 1984 году под названием Lotus Notes. Первая версия (Lotus Notes 1.0) вышла в 1989 году и представляла собой платформу для групповой работы с электронной почтой, календарём и общими документами. База данных NSF стала ядром системы.

Компания Lotus Development Corporation была приобретена компанией IBM в 1995 году. В 2000-х годах IBM переименовала продукт в IBM Lotus Domino (серверная часть) и IBM Lotus Notes (клиентская часть). В этот период была добавлена поддержка Java, XML, улучшенная веб-интеграция и SQL-доступ.

В 2018 году IBM продала своих пользователей и часть прав на продукт компании HCL Technologies. С 2019 года система развивается под названием HCL Domino и HCL Notes. HCL активно модернизирует платформу, добавляя поддержку JSON, REST API, интеграцию с современными средствами разработки и повышая производительность.

Применение

Domino Database традиционно используется в крупных корпорациях и государственных учреждениях для построения:

В России система применяется в ряде банков, промышленных предприятий и органов власти, хотя с середины 2010-х годов доля рынка Domino сокращается в пользу веб-ориентированных решений (SaaS, облачные сервисы). Тем не менее, платформа сохраняет устоявшуюся пользовательскую базу, особенно в тех организациях, где внедрение началось в 1990–2000-х годах и миграция требует значительных затрат.

Критика и ограничения

Основные недостатки Domino Database включают:

Интересные факты

Источники

  1. Документация HCL Domino (официальная справка по продукту).
  2. IBM Redbooks — "IBM Lotus Domino: Administration and Development" (2005).
  3. Lotus Notes and Domino 7 Developer's Bible (2006) — ISBN 978-0-470-04171-8.
  4. Материалы конференции Lotusphere (2000–2012).
  5. Статьи журнала "Byte" за 1987–1995 годы о архитектуре Lotus Notes.
  6. HCL Tech — официальный сайт компании (раздел HCL Domino).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →