Архитектура и функциональность Библиотечной Подсистемы ИСИР РАН

Курив П.М.,
Математический институт им. В.А.Стеклова РАН

Котеров Д.В.,
МГУ

Калёнов Н.Е.,
БЕН РАН


В статье рассматриваются проблемы и задачи, возникающие при проектировании и реализации цифровой библиотечной подсистемы Интегрированной Системы Информационных Ресурсов РАН [ИСИР]. Анализируются основные требования к подсистеме, описывается роль этой подсистемы в новой версии системы ИСИР. Приводится структура репозитория хранимых данных и необходимые расширения RDF-схемы данных ИСИР [RDFSA]. Приводятся сведения об интеграции и взаимодействии БП и ИСИР.

Введение

Система ИСИР РАН – это информационная система, относящаяся к классу электронных библиотек ([ИСИР], [ИЦБ]). Среди ресурсов, поддержку которых должна обеспечивать ИСИР РАН, значительная доля приходится на информацию, в той или иной мере связанную с публикациями научных результатов, с которой традиционно оперируют библиотеки разного уровня, входящие в состав институтов, отделений или непосредственно подчиняющиеся Президиуму РАН. Научные результаты представляют собой данные о различных монографиях, журналах и трудах конференций. Такие данные постоянно вводятся, а также пакетно загружаются в ИСИР РАН [ИБС].

Использование системы ИСИР РАН как информационной системы отдельного института РАН, позволяет хранить и поддерживать в системе информацию о сотрудниках и организационной структуре института, о публикациях сотрудников и подразделений института. Для такого подразделения института как библиотека всех сотрудников института можно рассматривать как читателей библиотеки, а публикации – как электронный каталог библиотеки. Семантика взаимосвязи типизированных ресурсов “Персона” и “Публикация” зависит от выбранного библиотечного сервиса.

Именно поэтому логическим продолжением развития системы ИСИР РАН стало создание Библиотечной Подсистемы, которая будет обеспечивать не только хранение библиотечных метаданных и возможность работы с ними (поиск, просмотр и редактирование), но и будет автоматизировать ряд функций обычной библиотеки (регистрация выдачи и возврата изданий, работа с читательскими формулярами и т.д.) [РБС].

Библиотечная Подсистема, представляя собой, интегрированное решение в рамках ИСИР РАН, основана на модели данных и технологиях ИСИР.

Расширение модели данных ИСИР РАН

Модель данных ИСИР РАН построена на концепции взаимосвязанных типизированных ресурсов [RDFSP] таким образом, что она в заданной предметной области инкорпорирует достаточно большой класс электронных коллекций. Она содержит основные сущности и их атрибуты из предметной области, а также основные связи между ними. Модель данных содержит ресурсы следующих типов: Юнит (уточняющаяся сущностями Организация или Подразделение), Персона, Проект, Публикация [ИИК]. Технологии ИСИР предоставляют пользователю навигацию между различными видами ресурсов и единый механизм доступа ко всем ресурсам через стандартный браузер. Используя такое интегрированное решение, нам удалось избежать трудностей, возникающих при интеграции традиционных автоматизированных библиотечных технологий и интернет-технологий [JSP].

Анализ модели данных ИСИР, показал, что для реализации сервисных функций Библиотечной Подсистемы необходимо дополнительно поддержать библиотечные данные и расширить семантику отношений между ресурсами Юнит, Публикация и Персона. Среди основных библиотечных данных, поддержка (хранение и использование) которых была реализована в Библиотечной Подсистеме, следует отметить:

Расширение отношений

Т.к. в репозитории ИСИР фактически уже присутствует значительное число существующих организаций-библиотек (а также подразделений-библиотек), принято решение ввести полностью новый ресурс — Библиотека, связав его с ресурсом Юнит посредством ассоциации 1:1 (а не уточнения). Достоинством такого подхода также является и то, что библиотека может быть как отдельной Организацией, так и Подразделением, а значит, связывать ее нужно именно с Юнитом (являющимся общей частью сущностей Организация и Подразделение). Кстати, в ИСИР уже сейчас представлены оба вида библиотек.

Фактически, в Библиотечной Подсистеме сущность Библиотека является представителем некоторого ресурса Юнит с ассоциацией 1:1. В дальнейшем мы неоднократно полагаемся на этот факт и иногда говорим о Библиотеке, как об уточнении Юнита, хотя в техническом плане это и не так.

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

Семантика отношения “Юнит” – “Персона” (в действительности “Библиотека” – “Персона”, см. предыдущий абзац) расширена следующим образом:

Семантика отношения “Персона” – “Публикация” расширена следующим образом:

Семантика отношения “Публикация” – “Юнит” (те же замечания насчет Юнита, что были выше) расширена следующим образом:

Поддержка вышеприведенных библиотечных данных и отношений между ресурсами была реализована следующим образом:

Функциональность

Поддержка библиотечных данных позволяет расширить поисковые возможности подсистемы за счет увеличения перечня поисковых полей и изменения логики формирования поискового предписания и предоставить следующие библиотечные сервисы научным сотрудникам институтов и организаций РАН – целевой аудитории, пользующейся ИСИР РАН:

Таким образом, Библиотечная Подсистема решает следующие задачи:

В рамках данного проекта планируется генерировать и поддерживать следующие информационные ресурсы:

Следует отметить, что предоставление доступа к автоматизированным библиотечным сервисам через Интернет уже осуществляется в ряде отечественных (БЕН, ГПНТБ) и зарубежных библиотечных систем. Однако существующие в настоящее время автоматизированные библиотечные системы предоставляют возможность работы только с электронным каталогом и автоматизированными библиотечными сервисами, но при этом не предоставляют сервисов, использующих концепцию взаимосвязанных типизированных ресурсов, например, навигацию между различными видами ресурсов, характерных для крупных информационных систем, как это сделано в системе ИСИР РАН.

Работа по реализации библиотечной подсистемы ведется совместно с Библиотекой по естественным наукам (БЕН) РАН [ИБС]. БЕН РАН  возглавляет одну из самых крупных и наиболее развитых централизованных библиотечных систем России, которая включает более 200 библиотек научно-исследовательских учреждений РАН. В ближайшее время планируется развернуть Библиотечную Подсистему ИСИР в БЕН РАН и загрузить в нее сводный электронный каталог библиотек, входящих в систему БЕН РАН, что позволит повысить уровень сервиса читателей и в частности реализовать возможность удаленного заказа литературы из фондов библиотек системы БЕН РАН.

Архитектура

Библиотечная Подсистема ИСИР РАН разрабатывается с использованием современных технологий создания web-приложений. Были рассмотрены различные языки программирования (ASP, PHP, CGI, JSP) их возможности и недостатки. Для разработки БП ИСИР РАН была выбрана технология Java 2 Enterprise Edition, включающая JavaServer Pages, Java Servlets, JDBC, в силу следующих причин:

Web-framework ИСИР Portal

Все описанные выше технологии объединяет в себе технология ИСИР Portal. Portal представляет собой многоцелевой набор библиотек и подсистем, разрабатываемый в Вычислительном Центре РАН и дополнительно включающий следующие технологии [RDFSA]:

Система Portal специально разрабатывалась как база для построения различных информационных (в том числе портальных) систем ВЦ РАН. Portal обладает возможностью быстрой настройки на необходимую схему ресурсов объектного репозитория. В частности, это позволяет легко использовать данную технологию для реализации библиотечной компоненты. Ядро предоставляет все возможности для облегчения этого процесса. Сначала дизайнер описывает на RDFS объектную схему данных. Далее создается база данных со схемой, соответствующей RDFS. Составляется mapping-файл, задающий объектно-реляционное отображение. Наконец, специальный генератор создает по RDFS Java-классы. После этого ядро Portal может работать с новыми типами объектов.

Фактически, при независимой реализации библиотечной компоненте приходится дублировать все эти сервисы и средства, что нежелательно. В результате применения готовых библиотек сроки реализации проекта на базе Portal сильно сокращаются.

Концептуальная модель

Основные ресурсы Библиотечной Подсистемы и связи между ними показаны на следующем далее рисунке. Второстепенные ресурсы и сущности на схеме не отображены. Ресурсы ИСИР отображены в прямоугольниках, для ресурсов Библиотечной Подсистемы использованы пиктограммы. Для упрощения схемы отношения «один ко многим» в некоторых случаях отображены в виде простых стрелок, без указания арности.

Для хранения схемы ресурсов используется RDFS-репозиторий. Все классы Библиотечной Подсистемы содержатся в отдельном пространстве имен (пакете) ru.ccas.isir.lc, в то время как основные ресурсы ИСИР хранятся в пакете ru.ccas.isir.core. Для связи объектной и реляционной схем используется технология объектно-реляционных отображений и система Castor, интегрированная в ИСИР Portal.

Основные ресурсы Библиотечной Подсистемы

Библиотечная Подсистема разрабатывалась как полностью заменяемая часть ИСИР. Она является сервером по отношению к пользователю и клиентом — по отношению к ИСИР. Соответственно, недопустимо вносить изменения в структуру основного репозитория ИСИР, и на практике данные библиотечной системы могут храниться в отдельном репозитории.

Ресурсы Библиотечной Подсистемы ссылаются на ресурсы ИСИР по их уникальным идентификаторам (URI). Это единственно допустимый способ ссылки, потому что только он может поддерживать распределенную архитектуру ИСИР и независимость БП.

Ресурс Библиотека (Library)

Главный ресурс БП — ресурс Библиотека. Все остальные ресурсы Библиотечной Подсистемы связаны с одной, и только одной Библиотекой. Например, Читатель может принадлежать лишь к одной библиотеке. Такой способ позволяет лучше разграничить объекты предметной области, и в случае, если какая-то из библиотек «переедет» на другую машину, перенос произойдет без осложнений. Подобная архитектура также позволяет в будущем реализовать распределенную версию библиотечной компоненты, работающей на нескольких машинах, как единое целое.

Принадлежность Библиотеки к некоторой организации (Юниту) выражается в виде ассоциации: Библиотека — Юнит. (Напомним, что ресурсы ИСИР Организация и Подразделение являются разновидностями (подклассами) Юнита.)

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

Ресурс Библиотекарь (Librarian)

Каждая Библиотека должна иметь по крайней мере одного Библиотекаря — человека, имеющего повышенные права в системе, способного осуществлять библиотечные функции (например, выдачу издания, ксерокопирования и т.д.).

Для того чтобы иметь возможность входа в систему с использованием логина и пароля, Библиотекарь наследует поведение от базового класса User, доступного в системе Portal.

Ресурс Клиент (Client)

Клиентом библиотеки могут быть: физические лица (в терминологии ИСИР — Персоны) или же организации (Юниты). Данные сущности предметной области представлены в системе классами Reader (Читатель) и Abonent (Абонент).

Для получения доступа к библиотеке Клиент должен пройти авторизацию — ввести свой логин и пароль в системе. Эту функциональность обеспечивает наследование от базового класса kernel.User, который предоставляется системой Portal.

Как показано на рисунке, Клиент всегда принадлежит одной, и только одной Библиотеке.

Ресурс Клиент, как и большинство ресурсов ИСИР, не может быть удален, в противном случае нарушилась бы структура ссылок в истории операций библиотеки, и информация оказалась бы потерянной. Предусмотрено поле статуса, которое может содержать, например, значения "активен", "удален", "временно заблокирован" и т.д.

Библиотечная подсистема организована таким образом, что разные пользователи могут иметь в ней разные права. О Библиотекарях — пользователях с повышенными привилегиями — мы уже говорили. Но даже в пределах ресурса Клиент возможно разграничение прав доступа. Для каждого Клиента существуют ограничений на каналы, по которым возможна выдача изданий. Например, некоторым пользователям можно запретить резервирование Публикаций или же запросы на ксерокопирование. Разрешением и запрещением услуг заведует библиотекарь.

Читатель (Reader)

Как было замечено выше, в системе могут существовать клиенты двух видов, представленные в предметной области персонами и организациям. Рассмотрим подробнее, что собой представляет, например, ресурс Читатель (Reader). Этот ресурс также часто называют Читательским формуляром, потому что для каждой библиотеки существуют отдельные копии сущности Reader, и несколько библиотек не могут разделять один и тот же экземпляр. Задача ресурса — идентификация пользователя библиотеки, а также хранение истории операций, производимых этим пользователем за все время его существования (реальные данные хранятся не в самом формуляре, а в специальном ресурсе Услуга (Service), который мы рассмотрим ниже). Имеется также поле для хранения дополнительной информации в произвольном формате (например, записок библиотекаря о данном читателе).

Читательский формуляр имеет ссылку на ресурс ИСИР Персона (на рисунке не отображена). Необходимо еще раз заметить, что Читатель нельзя сделать производным от класса ИСИР Персона, потому что один и тот же пользователь может иметь сразу несколько независимых формуляров в различных библиотеках.

Абонент (Abonent)

Ресурс Абонент имеет почти ту же самую структуру, что и Читатель. Это и не удивительно — ведь он наследует основные свои свойства от базового класса Клиент. Однако существуют и отличия. Вместо ссылки на Персону ИСИР ресурс Абонент ссылается на Юнит (т.е. Организацию или Подразделение).

Ресурс Абонент также хранит несколько ссылок на персон (ресурс ИСИР Персона), занимающихся в организации работой с библиотекой. В случае необходимости библиотекарь может с ними связаться для выяснения срочных вопросов.

Ресурс Единица Хранения (Item)

Связь между Публикациями и ресурсом библиотечной подсистемы Библиотека осуществляется при помощи ресурса Единица Хранения (Item).

В предметной области единице хранения соответствует бумажная копия, или экземпляр, некоторой Публикации. Например, если в библиотеке имеется 25 книг некоторого научного труда в твердом переплете, библиотека будет содержать 25 экземпляров ресурса Единица хранения, ссылающихся на один и тот же ресурс Публикация.

Каждая Единица Хранения имеет персональные атрибуты: например, инвентарный номер, шифр хранения (полочный номер) и т.д. Кроме того, указывается, по каким каналам доступна выдача данного издания (например, выдача только в читальном зале, возможность заказа и т.д.).

При выдачи экземпляра на руки его статус меняется на "выдана". Это позволяет библиотекарю легко отследить, какие публикации есть в наличии в библиотеке и в каком состоянии они находятся. Другие типичные статусы Единицы Хранения — "свободна", "заказана", "на ксерокопировании" и т.д. При возврате книги библиотекарь проставляет ее статус в значение "свободна".

Для каждой Единицы Хранения можно указать временные или денежные ограничения, накладываемые на нее. Они задаются в виде множества пар ("тип", "значение") и определяются библиотекарем (в свободном формате).

Ресурс Услуга (Service)

Данный ресурс предназначен для того, чтобы вести учет всех действий, производимых библиотекарем с единицами хранения или публикациями. Можно рассматривать его как «хранителя» истории операций над единицами хранения, а также их текущего статуса (например, для выданных изданий). Ресурс Услуга образует связующее звено между Клиентом и Единицей Хранения (или Публикацией).

Любое действие библиотекаря, будь то выдача, возврат издания, отправка на ксерокопирование и т.д., сопровождается записью или изменением того или иного экземпляра ресурса Услуга.

Общая часть всех ресурсов Услуга — это:

Как показано на рисунке, для клиентов существует несколько видов библиотечных сервисов, представленных различными классами, производными от общего предка Service. Рассмотрим их подробнее.

Ресурс Выдача (Loan) создается, когда тот или иной Клиент берет Единицу Хранения на руки. Дополнительно он хранит дату возврата, не позже которой необходимо вернуть книгу.

Ресурс Заказ (Order) создается при бронировании Единицы Хранения пользователем. Забронированная копия не может быть выдана другим Клиентам до даты окончания брони.

Ресурс Copy (Копирование) создается, когда Клиент заказывает копирование (на ксероксе, микропленке и т.д.) некоторой Единицы Хранения. Привязка к Единице Хранения, а не к Публикации, обуславливается тем, что допустимо заказать копирование не всей публикации, а только отдельных ее страниц. Копированием занимается отдельно взятый библиотекарь; ссылка на него также записывается в ресурс Копирование.

Наконец, отдельно стоит ресурс Queue (Очередь), который относится не к Единице хранения, а к публикации. Если в настоящий момент в наличии нет ни одной единицы хранения некоторой Публикации, Клиент может встать в очередь на получение этой Публикации. Как только книга освободится, из Очереди будет выбран очередной Клиент, и библиотекарь осуществит требуемую операцию. Допустимо также указание даты аннулирования заказа: если к этому времени не будет ни одного свободного экземпляра, Клиент не будет обслужен.

Распределенная архитектура Библиотечной Подсистемы

Библиотечная Подсистема построена с использованием принципов компонентной технологии таким образом, что ее собственные данные и функциональность не зависят, но дополняют данные и функциональность системы ИСИР РАН. Такая компонентная технология позволяет использовать симметричную распределенную архитектуру библиотечной подсистемы.

Взаимодействие Библиотечной Подсистемы и ИСИР

Библиотечная Подсистема является сервером по отношению к пользователю, запрашивающему специфичную библиотечную информацию, и клиентом по отношению к узлу ИСИР, на котором она установлена.

Для взаимодействия Библиотечной подсистемы и ядра ИСИР необходимо реализовать два интерфейса ядра ИСИР: интерфейс обработки поискового запроса и интерфейс предоставления ресурса по уникальному идентификатору.

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

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

Интерфейс предоставления ресурса ядра ИСИР должен выдавать объект одного из 3-ти основных типов ресурсов ИСИР (“Юнит”, “Персона”, “Публикация”) по заданному уникальному идентификатору.

Такой набор интерфейсов полностью удовлетворяет потребности подсистемы в получении данных из основной системы.

Глоссарий

Сервисные средства – средства, ориентированные непосредственно на обслуживание читателей и других внешних пользователей системы.

Служебные средства – средства поддержки реализации “сервисных” задач.

Электронный каталог библиотеки организации/отдела – виртуальное понятие, совокупность единиц хранения изданий, имеющихся в данной библиотеке. Информация об издании частично хранится в сводном электронном каталоге ИСИР, а частично, например, регистрационные номера, шифры хранения или статус конкретного экземпляра, в таблицах, относящихся к конкретной библиотеке. Информация, хранящаяся в сводном каталоге ИСИР, является общей для всех библиотек и содержится в единственном экземпляре. Обычно эта информация – это ресурс “Публикация”.

Читательский формуляр –  виртуальное понятие, выражающее совокупность информации о читателе, об изданиях, которые он заказал или взял, об истории заказов и штрафах, наложенных на читателя, относящейся к конкретной библиотеке. Информация о читателе частично хранится в сводном электронном каталоге ИСИР, а частично, например, штрафы или заказы, в таблицах, связанных с конкретной библиотекой. Информация, хранящаяся в сводном каталоге ИСИР, является общей для читателя, зарегистрированного в разных библиотеках, и содержится в единственном экземпляре. Обычно эта информация – это ресурс “Персона”.

Единица хранения (ЕХ) – экземпляр издания.

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

Инвентарный номер ЕХ – значение, присваиваемое ЕХ, которое определяет ЕХ как материальную ценность. Присваивается только балансовым ЕХ (журналам не присваивается). Имеет уникальное значение в рамках конкретной библиотеки.

Выданная ЕХ –  экземпляр, находящийся на руках у читателя.

Заказанная ЕХ –  экземпляр, который читатель заказал по Интернет, но еще не забрал. Эта ЕХ не может быть выдана другому читателю или заказана им до истечения определенного срока, указанного администратором библиотеки.

Издание, находящееся в очереди – издание, все ЕХ которого уже выданы некоторым читателям, но на которое существует заказ при освобождении какой-нибудь ЕХ.

Пользователь – человек, имеющий права одного из следующих типов: гость, читатель, библиотекарь, администратор. Типы пользователей различаются правами на выполнение тех или иных действий, а также множеством доступных страниц и получаемой информации. До процедуры авторизации человек имеет права “гость”.

Текущий статус единицы хранения – состояние занятости единицы хранения.

Канал выдачи (местонахождение) – применительно к единице хранения – это канал выдачи, по которому может быть выдана, а, следовательно, и заказана единица хранения.

Литература


Материал опубликован на http://www.elbib.ru/