Организация корпоративной библиотечной системы филиалов БЕН РАН на основе ЕНИП РАН
Якшин М.М.
(Библиотека по естественным наукам РАН)
С 1997 года ВЦ РАН ведутся работы по созданию Единого Научного Информационного Пространства (ЕНИП) РАН (ранее - Интегрированной Системы Информационных Ресурсов (ИСИР) РАН, затем – единой информационной системы – ЕИС РАН). Основная цель разработки ЕНИП РАН - объединение информационных ресурсов различного типа, имеющихся в учреждениях РАН и предоставление к ним унифицированного доступа. В основе концепции построения ЕНИП РАН лежит современная технология открытых систем, предполагающая использование единой метаинформации, описывающей ресурсы различного типа [1].
Достаточно важным классом информационных ресурсов, отражаемых в ЕНИП РАН, является информация, генерируемая и предоставляемая академическими библиотеками. Эта информация обладает определенной спецификой, в связи с чем в рамках ЕНИП разрабатывается специальный библиотечный узел (разработка поддерживается РФФИ – грант 08-07-00088а). При разработке библиотечного узла в существующей структуре ЕНИП были выявлены определенные недостатки, связанные с проблемами актуализации данных, несоответствием терминологии, заложенной в интерфейс ядра ЕНИП, общепринятым понятиям и терминам библиотечной практики, трудностями реализации технологии поддержки централизованного управления распределенными библиотечными ресурсами (что характерно для академической библиотечной системы). В соответствии с этим в 2007 году была проведена формализация, направленная на построение системы, которая была бы лишена этих недостатков [2].
В 2008-2009 годах можно выделить несколько направлений работ:
Реализация регистрации читателей/пользователей
Уточнена и видоизменена схема регистрации читателей и пользователей в ЕНИП РАН для обеспечения возможности пакетной загрузки читателей, зарегистрированных в централизованной базе данных системы БЕН РАН (БД включает сведения о более чем 20 тысячах читателей отделений БЕН в 51-м НИИ РАН Москвы и московской области).
Список читателей БЕН был получен в виде таблицы Excel со следующими полями:
В ЕНИП читатели являются пользователям и поэтому задаются более сложной схемой:
Таким образом, на каждую строку в таблице читателей БЕН, нам необходимо сгенерировать 4 различных сущности в ЕНИП. Механизмы сериализации информации ЕНИП в БД используют парадигму сквозных идентификаторов для всех сущностей (с тем, чтобы возможно было всегда извлечь объект по одному только идентификатору). Идентификатор представляет собой целое число. Была предложена следующая схема генерации этих сущностей: выбирается некий диапазон ID, которые точно не заняты (id1-id2), затем резервируются тройки идентификаторов по модулю 3 и импортируются сущности:
В рамках этой схемы загружены все пользователи БЕН.
Реализация нового поискового интерфейса
Встроенный пользовательских интерфейс ЕНИП РАН для поиска публикаций спроектирован как общий интерфейс для всех компонентов ЕНИП РАН и является достаточно ограниченным для использования библиотекарями в процессе обслуживания читателей и самими читателями. В этом интерфейсе представлены следующие поисковые поля:
Кроме этого, поддерживается возможность задания символа подстановки (*) для поиска вхождения подстроки и возможность задания порядка сортировки найденных публикаций при выводе.
Для обеспечения более гибкого поиска был разработан более сложный интерактивный интерфейс, соответствующий представлению книг в технологической БД БЕН РАН «Библиобус».
В новом интерфейсе представлены поля:
В отличие от интерфейса по умолчанию, в котором поля заданы жестко, новый интерфейс предоставляет возможность гибко формировать поисковые условия в виде троек (поле, оператор, значение), связанных логическими операторами «и», «или», «и не». В качестве операторов поддерживаются:
Для строковых полей:
|
Для числовых полей:
|
Для облегчения формирования запроса и повышения интерактивности системы в целом все действия по конструированию выполняются с использованием JavaScript и не требуют перезагрузки страницы с сервера. Рядом с каждым полем есть кнопка «Выбор», которую пользователь может использовать для выбора правильно и полностью сформированных поисковых термов из списка имеющихся в системе, зная только приблизительное написание терма (например, фамилии автора или названия книги).
Автоматизированное тестирование
Юнит-тестирование (англ. unit testing) — процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы. Это позволяет достаточно быстро проверить, не привело ли очередное изменение кода к регрессии, то есть к появлению ошибок в уже написанных и оттестированных местах программы, а также облегчает локализацию и устранение таких ошибок.
ЕНИП представляет собой достаточно сложную систему с множеством компонентов и взаимосвязей и, следовательно, вносимые изменения в один компонент могут повлиять на множество других компонентов. Для предотвращения регрессий необходимо применение процедур автоматизированного тестирования ПО.
В качестве средства автоматизированного тестирования был выбран программный комплекс Selenium [3], работающий с любыми веб-приложениями и предоставляющий мощные средства тестирования на уровне пользовательского интерфейса.
Selenium представляет собой объектно-ориентированное JavaScript приложение, которое может анализировать файлы определенной структуры для того, чтобы находить в них команды для манипуляции браузером и команды для выполнения определенных действий и проверок. Selenium поддерживает большинство современных браузеров и является кросс-платформенным инструментом.
В рамках проекта Selenium также выпускается инструмент Selenium IDE представляющий собой версию достаточно популярной библиотеки Selenium в GUI-обвязке. Реализовано это в виде расширения к браузеру Firefox. Этот инструмент позволяет записывать и воспроизводить скрипты, представляющие собой обычные HTML-страницы с одной таблицей, содержащей команды.
Для целей автоматизированного тестирования ЕНИП были выделены отдельные части проекта, по которым проводилось создание тестирующих модулей Selenium. Иерархический план реализованного тестирования выглядит следующим образом:
Подобное тестирование показало свою жизнеспособность и его можно рекомендовать для тестирования иных частей системы.
Литература