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