Олег Шорин

Vivaldi

Система управления доступом к документам Вивальди - основа функционирования Национальной электронной библиотеки Российской Федерации

Посетить сайт проекта
Статистика использования Вивальди в Российской национальной библиотеке

Vivaldi — распределённая система электронных библиотек

Vivaldi — один из наиболее технологически продвинутых и масштабных проектов, которые я создавал как CDTO и системный архитектор. Это комплексная платформа для защищённого доступа к электронным фондам крупнейших библиотек, вузов и государственных организаций.

Её ключевая идея — предоставить читателям удобный и быстрый доступ к цифровым копиям, при этом обеспечив высокий уровень защиты авторских прав и масштабируемость на федеральный уровень.

Под моим руководством Vivaldi превратилась из концепции в полнофункциональную экосистему: от инфраструктуры серверов и механизмов защиты — до клиентских приложений, административных панелей и инструментов работы с большими массивами контента.

Платформа была внедрена в ведущих учреждениях — Российская государственная библиотека, Российская национальная библиотека, Российская государственная библиотека для молодёжи, РГБИ, СПбГИК, МГИК, ВГУ, РЭУ, госструктуры и корпоративные организации. Это стало возможным благодаря стратегическому продуктово-технологическому подходу и правильно выстроенной архитектуре.

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

Автореферат моей кандидатской диссертации доступен всем с использованием платформы Vivaldi: https://vivaldi.nlr.ru/bd000350046/view/


Моя роль в этом проекте — создатель идеи, лидер и архитектор проекта

Стратегическое лидерство

  • Определил продуктовое видение системы и сформировал долгосрочную дорожную карту развития.
  • Превратил Vivaldi из узкого технического решения в масштабную платформу, способную обслуживать тысячи пользователей и десятки организаций.
  • Установил стандарты качества, безопасности и производительности, которыми руководствовалась команда.

Архитектурное управление

  • Разработал архитектуру распределённой системы с высокой доступностью и отказоустойчивостью.
  • Спроектировал механизм безопасного рендеринга документов из PDF в защищённые изображения.
  • Определил принципы интеграции с каталогами, внешними информационными системами и корпоративными сервисами.

Техническое лидерство

  • Сформировал инженерную культуру: код-ревью, процессы разработки, DevOps-практики, стандарты качества.
  • Решал критические задачи производительности, безопасности и масштабирования.
  • Управлял разработкой серверов документов, кластеров, механизмов кеширования и резервирования.

Управление командой и стейкхолдерами

  • Вёл переговоры с федеральными учреждениями, университетами и госорганами.
  • Обеспечивал баланс между юридическими требованиями, продуктовой логикой и технологическими ограничениями.
  • Курировал работу распределённой команды разработки, аналитики, QA и поддержки.

Свидетельство о государственной регистрации системы управления доступом к документам Vivaldi


Основные достижения

  • Создал масштабируемую распределённую архитектуру, выдерживающую тысячи параллельных сессий просмотров.
  • Внедрил уникальный механизм защиты контента: страницы документов рендерятся на сервере и передаются в виде защищённых изображений.
  • Обеспечил интеграцию с крупнейшими библиотеками страны — включая РНБ и РГБ.
  • Разработал кроссплатформенную экосистему клиентских приложений (Windows, macOS, Linux, iOS, Android).
  • Реализовал административную панель для библиотек и правообладателей: загрузка документов, управление доступами, аналитика.
  • Сформировал гибкую модель разграничения прав: роли, организации, типы документов, география, временные ограничения.
  • Обеспечил высокую устойчивость системы за счёт кластеризации серверов и горизонтального масштабирования.
  • Оркестрировал работу разработки, QA, DevOps и поддержки — обеспечивая устойчивый жизненный цикл продукта.
  • Создал стратегию развития Vivaldi как платформы электронных библиотек и виртуальных читальных залов.
  • Оптимизировал инфраструктуру и процессы — снизив стоимость владения платформой.

Технические подробности проекта

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

1. Central Management Server

  • Управление пользователями, организациями и читальными залами.
  • Маршрутизация запросов к серверам документов.
  • Управление правами доступа (ACL + policy engine).
  • Интеграция с внешними каталогами (Z39.50, REST, SOAP).
  • Аналитика и журналирование всех событий.

2. Document Processing Cluster

  • Конвертация PDF в изображения страниц «на лету».
  • Генерация водяных знаков и сигнатур доступа.
  • Исключение возможности скачивания исходных документов.
  • Кеширование и prefetching страниц.
  • Горизонтальное масштабирование под нагрузку.

3. Secure Viewer (клиентские приложения)

  • Отображение защищённых изображений страниц.
  • Ограничение копирования, печати и локального сохранения.
  • Оптимизация рендера под слабые устройства и сети.
  • Поддержка Windows, macOS, Linux, Android, iOS.

4. Access Control & Security Layer

  • Роли пользователей: читатель, сотрудник, администратор.
  • Ограничение доступа по типам документов.
  • Географическое разграничение: читальный зал, VPN, сеть организации.
  • Тарифы: бесплатные, подписки, платные пакеты.
  • Политики доступа с приоритетами и fallback-логикой.

5. Administrative Panel

  • Загрузка документов и метаданных.
  • Управление доступами и аудитом.
  • Аналитика просмотров и отчёты по коллекциям.
  • Управление организациями, филиалами и читальными залами.

6. Integrations & External APIs

  • Протоколы библиотечных систем: Z39.50, SRU, REST.
  • Интеграция с системами аутентификации: LDAP, AD, SSO.
  • Взаимодействие с корпоративными и государственными информационными системами.

7. High Availability & DevOps

  • Горизонтальное масштабирование.
  • Кластеризация серверов документов.
  • Мониторинг нагрузки и health-checks.
  • CI/CD-процессы обновления клиентских модулей.
  • Логирование и распределённая диагностика.