Обзор архитектуры ELiS

ELiS построена на базе модулей, расширяющих стандартную CMS Drupal 7 функционалом по работе с книгами. Работа всего ПО осуществляется под управлением ОС Linux. Для полнотекстового поиска используется движок Sphinx, который работает лучше и существенно быстрее стандартного поискового механизма Drupal. Внешний вид системы построен на использовании CSS-фреймворка Twitter Bootstrap. Понимание работы системы тесно связано с принципами работы Drupal.

Прицип работы

При загрузке файла PDF генерируются нода книги (тип ebook) и по ноде на каждую страницу книги (тип материала ebookpage). Ноды страниц привязываются к книге при помощи полей Node Reference, а при помощи CCK-полей заполняются все основные параметры и ограничения книги, включая сети доступа, количество экземпляров, возможность просмотра PDF и т.п. 

Сразу при загрузке из книги достается текст и для каждой страницы текст помещается в соответствующее поле CCK, скрытое для просмотра обычными читателями, но которое индексирует Sphinx для полнотекстового поиска.

Когда пользователь открывает ноду книги или ноду страницы книги, он видит книгу в виде рисунков с меню навигации и т.п. Однако, само  тело ноды этого кода не содержит, а содержит специальную вики-разметку типа {{ книга:ebook | страница=34 }}. По этой вики-разметке специальный модуль генерирует AJAX-код отображения книги и открывает ее на запрошенной странице. 

Код отображения книги запрашивает каждую страницу книги по специальному URL в виде png, jpg, svg или pdf-файла. При отображении книги, система проверяет права пользователя на просмотр, достает нужную страницу из PDF-файла книги, накладывает водяной знак и другую защиту, отдает рисунок в браузер пользователя и записывает чтение страницы в таблицу статистики.

Такой подход позволяет: 

1) Обновить отображение книги не затрагивая содержимое сгенерированных страниц просто обновив код перевод вики-разметки в HTML-код.

2) Очень гибко управлять отображением книги, например, для заданной страницы можно над книгой или под книгой разместить любой валидный HTML-код, включающий в себя, к примеру, справочную, пояснительную или мультимедийную информацию.

3) Так как каждая страница книги является нодой, возможно использование постраничных комментариев из стандартной поставки Drupal.

Сам по себе факт использования Drupal и его стандартных систем означает:

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

2) Легко найти специалиста, доработающего за разумные деньги сайт под требования организации.

3) На одном сайте может размещаться не только ЭБС, но и сайт организации и, даже, социальная сеть.

Нагрузка

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