Брандмауэр «БиблиоКербер» для защиты электронных ресурсов библиотеки

Брандмауэр «БиблиоКербер» для защиты электронных ресурсов библиотеки

15 июля 2015

БиблиоКербер — межсетевой экран хранилища оцифрованных книг и документов. Реализованная в виде веб-приложения система призвана вести статистику использования и контролировать доступ к оцифрованным книгам и документам второй по величине фондов библиотеки России. БиблиоКербер совместим с сетью электронных библиотек Vivaldi в части просмотра документов.

Структура БиблиоКербер

  • Подсистема программного интерфейса. Доступ клиентов к документам организован в виде веб-сервиса, работающего по протоколу HTTP, а взаимодействие с сервисом осуществляется по защищённому протоколу HTTPS.
  • Подсистема библиографических описаний. Для каждого идентификатора документа подсистема получает библиографическое описание из источника, настроенного для системы. Подсистема имеет возможность кешировать библиографические записи локально для обеспечения высокого быстродействия и сокращения нагрузки на смежные системы.
  • Подсистема доступа к полным текстам обеспечивает работу с электронными документами в PDF. Реализованы следующие функции работы с документами.
    • Получение информации о документе (количество страниц).
    • Получение размеров страниц документа.
    • Получение содержимого текстовой подложки документа.
    • Получение списка слов на странице с координатами слов на странице.
    • Растеризация страницы с заданным dpi. Обеспечена возможность наложения водяного знака при растеризации страницы.
    • Извлечение страницы из документа в виде отдельного PDF-файла.
  • Подсистема статистики. Каждый запрос со всеми параметрами заносится в базу данных статистики доступа к документам. Фиксируется идентификатор клиента, выполняющего запрос. Ежедневно выполняется расчёт агрегированной статистики, чтобы интерфейс отображения статистики работал с высокой производительностью. Интерфейс просмотра статистики позволяет выбрать период, для которого выводятся основные показатели статистики: сколько документов было открыто; сколько страниц было просмотрено и сколько распечатано. В интерфейсе можно включить фильтр по идентификаторам клиентов либо по идентификаторам документов. Выводится график по выбранному параметру за каждый день выбранного периода, и выводятся все показатели доступа в разрезе по клиентам и документам.

Схема работы БиблиоКербер

Схема БиблиоКербер

Подсистема программного интерфейса предоставляет возможность клиентам подключаться и выполнять запросы к документам библиотеки. Для выполнения запросов система обращается к подсистемам хранилища документов и хранилища библиографических описаний. Система разработана с учётом требований методики разделения кода и низкой связности компонентов. Все обращения клиентов передаются в подсистему статистики для занесения информации в базу данных.

Четыре подсистемы взаимодействуют по заданным интерфейсам (контрактам). Прямые зависимости между функциональными блоками отсутствуют, все зависимости установлены посредством интерфейсов и инъекции зависимостей.

Административный интерфейс и аутентификация

Административный интерфейс БиблиоКербер является web-ориентированным и содержит следующие разделы.

  • Раздел управления клиентами представляет собой список клиентов. Каждый клиент характеризуется следующими данными:
    • название;
    • идентификатор;
    • API-ключ;
    • признак включенности.
  • Раздел статистики.

Доступ в административный интерфейс осуществляется посредством федеративной аутентификации на базе протокола WS-Federation Passive Requestor Profile. Система выдачи документов в терминологии протокола WS-Federation выступает в качестве Relying Party.

Основные характеристики

БиблиоКербер работает на следующем оборудовании:

  • процессор 4 х 2.5 GHz 64-bit;
  • оперативная память 8 Gb;
  • дисковое пространство 1 Tb;
  • скорость доступа к сетевым ресурсам 1 Gbps.

БиблиоКербер работает в программном окружении:

  • Windows Server 2008 R2;
  • Microsoft SQL Server 2008 R2;
  • Microsoft Internet Information Services 7.5.

Релизы

БиблиоКербер был создан в январе 2013 года. С момента разработки были выпущены три релиза программы. Библиокербер внедрен в Российской национальной библиотеке.

Релиз 1.0

В релизе, вышедшем в декабре 2014 года, реализован базовый API для работы с документами.

  • Система обладала следующими функциями.
    • Получение информации о количестве страниц документа.
    • Получение библиографического описания документа в формате MODS.
    • Получение информации о размерах страниц документа.
    • Получение изображения страницы документа.
    • Полнотекстовый поиск по документу.
  • Аутентификация вызывающей стороны к сервису реализована с помощью специальных API-ключей. Ключи выдаются администратором сервиса.
  • Все события обращения к страницам документа сохраняются в базе данных. В дальнейшем они используются для просмотра статистики доступа к документам. Статистика доступна за любой промежуток времени в разрезе по документам, коллекциям или читальным залам.

Релиз 2.0

В январе 2015 года в API был добавлен метод Download, который отдает исходный PDF, но только для тех документов, которые открыты. Добавлен водяной знак с названием библиотеки. Также добавлена возможность отключения отображения водяного знака через конфигурацию.

Релиз 3.0

В релизе 3.0 (июнь 2015 года) был доработан метод получения PDF-файла на предмет получения не всего файла, а только его части. С такого-то по такой-то байт. Параметры заменены на стандартный заголовок Range. Пример заголовка: Range: bytes = 0-10.

  • Добавлен метод в API для получения признака защищённости документа. При обращении к методам для работы с документами информация об этом сохраняется в таблице DocumentEvent базы данных.
  • Удалены все 32-битные зависимости из сервера для того, чтобы сервер мог занимать всю доступную память сервера, а не только 4 Гб.