NSF (Notes Storage Facility)
NSF (Notes Storage Facility) — это формат файла, используемый для хранения данных в приложениях Lotus Notes и IBM Domino (впоследствии — HCL Notes). NSF представляет собой структурированную базу данных, предназначенную для хранения документов, форм, представлений, агентов и других объектов, необходимых для работы корпоративных информационных систем, построенных на платформе Lotus Notes/Domino.
История
Формат NSF был разработан корпорацией Lotus Development Corporation (впоследствии — подразделение IBM, затем — HCL Technologies) в конце 1980-х годов. Первая версия Lotus Notes, выпущенная в 1989 году, уже использовала NSF для хранения всей информации: от электронной почты до документов совместной работы.
На протяжении 1990-х и 2000-х годов формат эволюционировал вместе с платформой. Каждая новая версия Lotus Notes и Domino (от 1.0 до 9.0) вносила изменения в структуру NSF: увеличивался максимальный размер файла (с 4 ГБ в ранних версиях до 64 ГБ и более в современных), добавлялась поддержка сжатия, шифрования, полнотекстового поиска, репликации и других функций.
В 2018 году, после приобретения IBM подразделения Lotus Software компанией HCL Technologies, формат NSF продолжил развитие в составе HCL Notes и HCL Domino. Актуальная версия (по состоянию на 2024 год) поддерживает файлы размером до 256 ГБ и включает механизмы защиты от повреждений данных.
Структура и устройство
Файл NSF представляет собой нереляционную (документо-ориентированную) базу данных. В отличие от реляционных СУБД (например, MySQL, PostgreSQL), данные в NSF хранятся не в таблицах со строками и столбцами, а в виде набора документов, каждый из которых может содержать произвольный набор полей различных типов (текст, числа, даты, вложения, Rich Text).
Основные компоненты NSF
- Документы — основные единицы хранения. Каждый документ имеет уникальный идентификатор (Note ID) и может содержать до нескольких десятков тысяч полей.
- Формы — шаблоны для создания и отображения документов. Определяют, какие поля доступны пользователю, их типы и визуальное оформление.
- Представления (Views) — отсортированные или отфильтрованные списки документов. Позволяют быстро находить нужные данные без выполнения запросов.
- Агенты — автоматизированные скрипты (на языках LotusScript, Java, Formula Language), которые выполняются по расписанию, при наступлении события или вручную.
- Стандартные поля — служебные поля, автоматически добавляемые в каждый документ (например,
$UpdatedBy,$Revisions,$Created).
Физическая организация
Файл NSF разделён на страницы фиксированного размера (обычно 4 КБ или 8 КБ). Каждая страница содержит заголовок, данные и ссылки на другие страницы. Для ускорения доступа используется B-дерево (сбалансированное дерево) для индексации представлений и полнотекстового поиска.
Классификация
По назначению NSF-файлы делятся на несколько типов:
- Почтовые файлы (Mail NSF) — хранят электронную почту, календарь, задачи и контакты одного пользователя. Обычно имеют имя
mail.boxилиusername.nsf. - Прикладные базы (Application NSF) — содержат данные корпоративных приложений: системы документооборота, CRM, базы знаний, форумы.
- Системные базы (System NSF) — используются сервером Domino для хранения конфигурации, журналов, сертификатов и других служебных данных. Примеры:
names.nsf(каталог пользователей),admin4.nsf(администрирование). - Архивные базы (Archive NSF) — создаются автоматически или вручную для хранения старых документов, выгруженных из рабочих баз.
Применение
Формат NSF является основным для платформы HCL Notes/Domino, которая используется в крупных и средних организациях по всему миру. Основные области применения:
- Корпоративная электронная почта — Notes/Domino предоставляет полнофункциональный почтовый клиент с поддержкой календаря, задач, встреч и совместного доступа.
- Документооборот и workflow — на базе NSF строятся системы согласования, утверждения и маршрутизации документов.
- Базы знаний и порталы — Notes/Domino позволяет создавать структурированные хранилища документов с разграничением прав доступа и версионированием.
- Совместная работа — поддержка дискуссионных баз, форумов, опросов и общих календарей.
- Интеграция с другими системами — через ODBC, JDBC, REST API и утилиту LEI (Lotus Enterprise Integrator) NSF-файлы могут обмениваться данными с реляционными базами, ERP-системами и веб-сервисами.
Особенности и ограничения
- Неструктурированность данных — в отличие от реляционных баз, NSF не требует заранее определённой схемы. Это упрощает разработку, но усложняет анализ данных с помощью стандартных SQL-инструментов.
- Репликация — NSF поддерживает двустороннюю синхронизацию между серверами и клиентами (репликацию), что позволяет работать с данными в офлайн-режиме.
- Производительность — при большом количестве документов (свыше 100 000) и отсутствии регулярной дефрагментации производительность может снижаться.
- Безопасность — поддерживается шифрование на уровне документа, поля или всего файла (с использованием сертификатов X.509). Разграничение доступа осуществляется через списки контроля доступа (ACL).
- Размер файла — максимальный размер зависит от версии: до 4 ГБ в Notes 4.x, до 64 ГБ в Notes 8.x, до 256 ГБ в HCL Notes 12.x.
Конкурирующие форматы и аналоги
Несмотря на широкое распространение в корпоративном сегменте, формат NSF не является открытым стандартом. Альтернативами для хранения документо-ориентированных данных являются:
- Microsoft Exchange / PST — проприетарный формат для хранения почты и календарей в экосистеме Microsoft.
- MongoDB — документо-ориентированная NoSQL СУБД с открытым исходным кодом.
- CouchDB — документо-ориентированная база данных, поддерживающая репликацию (аналогично NSF).
- JSON / XML — текстовые форматы для хранения структурированных данных, часто используемые в веб-приложениях.
Критика
Основные претензии к формату NSF связаны с его закрытостью и зависимостью от платформы HCL Notes/Domino. Миграция данных из NSF в другие системы (например, на Microsoft Exchange или облачные сервисы) требует использования специализированных инструментов (например, Dell Migrator for Notes to Exchange) и может быть трудоёмкой. Кроме того, отсутствие стандартных SQL-интерфейсов усложняет интеграцию с современными аналитическими платформами.
Сторонники формата отмечают его надёжность, встроенные механизмы репликации и возможность работы в офлайн-режиме, что особенно важно для организаций с распределённой филиальной структурой.
Источники
- HCL Notes и Domino: документация разработчика (HCL Software)
- Lotus Notes и Domino: архитектура и администрирование (IBM Redbooks)
- «The Domino Defense: Security in Lotus Notes and the Internet» (IBM Press)
- «Lotus Notes and Domino 6 Programming Bible» (Wiley)
- Материалы конференций Lotusphere / HCL Connections (2000–2023)
- Справочник администратора HCL Domino 12 (HCL Software)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →