Автоматизированная библиотечно-информационная система "Руслан-Нео"


Модуль "Аудит"


Руководство программиста

ООО "Открытые библиотечные системы"

Рустам Усманов

Версия 1.3.0


Аннотация

В данном документе приведены сведения о назначении и условиях применения модуля "Аудит". Описаны характеристики модуля, а также входные и выходные данные.

Глава 1. Назначение и условия применения программы

Модуль "Аудит" АБИС "Руслан-Нео" предназначен для сбора и сохранения сведений о различных событиях, происходящих в АБИС "Руслан-Нео". Поддерживается обработка следующих типов событий:

  • События хранилища данных (репозитория контента JCR)

    • Создание узла (базы данных или записи)

    • Удаление узла (базы данных или записи)

    • Перемещение узла (базы данных или записи)

    • Создание свойства базы данных или записи

    • Изменение свойства базы данных или записи

    • Удаление свойства базы данных или записи

    • Добавление списка управления доступом (ACL)

    • Удаление списка управления доступом (ACL)

    • Выдача пользователю полномочий для работы с базами данных или записями

    • Отзыв у пользователя полномочий для работы с базами данных или записями

  • События web-интерфейса ресурсов

    • Создание сеанса

    • Изменение идентификатора сеанса

    • Завершение сеанса

    • Вызов метода

  • События интерфейса 3M™ SIP v. 2.00

Хранение сведений о событиях осуществляется сервером Solr, используемым сервером "Руслан-Нео". Поэтому поиск, извлечение и иную обработку этих сведений следует производить при помощи соответствующих интерфейсов взаимодействия с Solr.

Модуль "Аудит" может функционировать на любых технических средствах под управлением сервера приложений WildFly версии 10.*.

Необходимыми условиями для работы модуля "Аудит" являются:

  • наличие в конфигурации сервера WildFly следующих очередей сообщений:

    • java:/jms/topic/ruslan/createUpdateRecord - очередь сообщений хранилища данных

    • java:/jms/topic/ruslan/wsOperations - очередь сообщений web-интерфейса ресурсов

  • наличие в конфигурации сервера WildFly следующих общих параметров базовых сервисов АБИС "Руслан-Нео":

    • java:global/ruslan/config/{сигла библиотеки}/solrURL

    • java:global/ruslan/config/{сигла библиотеки}/license

  • наличие лицензионного файла с указанием на лицензирование модуля "Аудит" в месте, заданном при помощи вышеуказанного параметра java:global/ruslan/config/{сигла библиотеки}/license

  • возможность взаимодействия с сервером Solr версии 6.3.0

  • наличие коллекции rneo-audit на сервере Solr

Глава 2. Характеристики программы

Модуль "Аудит" работает в автоматическом режиме. Обработка событий заключается в чтении данных о событиях из вышеуказанных очередей сообщений, преобразовании их в документы Solr и сохранении этих документов на сервере Solr.

Правильность работы модуля можно контролировать посредством генерации событий, указанных в Главе 1 и последующего поиска сведений о них на сервере Solr. Указание на причины неправильной работы следует искать в журналах WildFly и Solr.

Глава 3. Обращение к программе

Модуль "Аудит" запускается автоматически при развёртывании на сервере приложений WildFly. Неявное обращение к модулю осуществляется автоматически при появлении сведений о событиях в вышеуказанных очередях сообщений.

Глава 4. Входные и выходные данные

4.1. Входные данные

Входными данными являются сообщения о событиях, направляемые в соответствующие очереди сообщений.

В таблице 4-1 приведены сведения об элементах сообщений хранилища данных.

Таблица 4-1. Элементы сообщения хранилища данных

НазваниеТипНазначение
orgIdjava.lang.StringИдентификатор организации, в хранилище которой произошло событие
subjectjava.lang.String

Тип объекта, с которым произошло событие:

  • collection - база данных

  • record - запись

  • ACL - список управления доступом

  • privileges - полномочия пользователя

userIdjava.lang.String

Идентификатор пользователя, осуществившего операцию, приведшую к генерации события

timestampjava.lang.Long

Время фиксации события

pathjava.lang.String

Путь к объекту, с которым произошло событие

srcAbsPathjava.lang.String

Исходный путь к объекту, который был удалён или перемещён

typejava.lang.Integer

Тип события:

  • 1 - добавление узла

  • 2 - удаление узла

  • 4 - добавление свойства

  • 8 - удаление свойства

  • 16 - изменение свойства

  • 32 - перемещение узла


В таблице 4-2 приведены сведения об элементах сообщений web-интерфейса ресурсов.

Таблица 4-2. Элементы сообщения web-интерфейса ресурсов

НазваниеТипНазначение
orgIdjava.lang.StringИдентификатор организации, в хранилище которой произошло событие
userIdjava.lang.String

Идентификатор пользователя, осуществившего операцию, приведшую к генерации события

sessionIdjava.lang.String

Идентификатор сеанса

remoteAddrjava.lang.String

Адрес web-клиента

methodjava.lang.String

Идентификатор операции, приведшей к генерации события

NCIPjava.lang.String

Тип сообщения NCIP, если идентификатор операции имеет значение ncip

NCIP_itemIdjava.lang.String

Идентификатор документа, если идентификатор операции имеет значение ncip

NCIP_itemLocationjava.lang.String

Идентификатор отдела/коллекции постоянного местонахождения документа, если идентификатор операции имеет значение ncip

NCIP_userIdjava.lang.String

Идентификатор читателя, если идентификатор операции имеет значение ncip

NCIP_POCjava.lang.String

Идентификатор точки выдачи, если идентификатор операции имеет значение ncip

NCIP_dateDuejava.lang.Long

Время ожидаемого возврата документа, если идентификатор операции имеет значение ncip

NCIP_useRestrictionjava.lang.String

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

NCIP_extentjava.lang.String

Сведения о пространственном охвате ограничений на использование документа, выданного во временное пользование, если идентификатор операции имеет значение ncip

NCIP_problemjava.lang.String

Сведения о препятствиях, не позволивших успешно выполнить операцию, если идентификатор операции имеет значение ncip

SIPjava.lang.String

Тип сообщения SIP

SIP_itemIdjava.lang.String

Идентификатор документа в сообщени SIP

SIP_patronIdjava.lang.String

Идентификатор читателя в сообщени SIP

timestampjava.lang.Long

Время фиксации события

durationjava.lang.Long

Продолжительность выполнения метода

parameterjava.lang.String

Набор параметров, использованных при вызове метода

resultjava.lang.String

Результат выполнения метода

oldSessionIdjava.lang.String

Прежний идентификатор сеанса, если идентификатор операции имеет значение sessionIdChanged


4.2. Выходные данные

Выходными данными являются документы Solr.

В таблице 4-3 приведены сведения о полях выходных документов Solr.

Таблица 4-3. Поля выходных документов Solr

НазваниеНазначение
idИдентификатор события
ra.timestamp_dtВремя фиксации события
ra.subject_s

Тип объекта, с которым произошло событие:

  • collection - база данных

  • record - запись

  • ACL - список управления доступом

  • privileges - полномочия пользователя

  • WS - web-интерфейс ресурсов

  • SIP - интерфейс 3M™ SIP v. 2.00

ra.actor_s

Идентификатор пользователя, осуществившего операцию, приведшую к генерации события

ra.org_s

Идентификатор организации, в хранилище которой произошло событие

ra.action_s

Тип события:

  • UNKNOWN - неизвестное

  • ADDED - добавление

  • CHANGED - изменение

  • REMOVED - удаление

  • MOVED - перемещение

  • sessionCreate - создание сеанса (тип объекта имеет значение WS)

  • sessionDestroy - завершение сеанса (тип объекта имеет значение WS)

  • sessionIdChanged - изменение идентификатора сеанса (тип объекта имеет значение WS)

  • {метод} - Идентификатор операции, приведшей к генерации события (тип объекта имеет значение WS)

ra.location_s

Путь к объекту, с которым произошло событие.

ra.src_s

Исходный путь к объекту, который был перемещён.

ra.remoteAddr_s

Адрес web-клиента (тип объекта имеет значение WS).

ra.duration_l

Продолжительность выполнения операции (тип объекта имеет значение WS)

ra.parameter_ss

Набор параметров операции (тип объекта имеет значение WS)

ra.result_s

Результат выполнения операции (тип объекта имеет значение WS)

ra.NCIP_s

Тип сообщения NCIP (идентификатор операции имеет значение ncip, а тип объекта имеет значение WS)

ra.NCIP.itemId_s

Идентификатор документа (идентификатор операции имеет значение ncip, а тип объекта имеет значение WS)

ra.NCIP.itemLocation_s

Идентификатор отдела/коллекции постоянного местонахождения документа (идентификатор операции имеет значение ncip, а тип объекта имеет значение WS)

ra.NCIP.userId_s

Идентификатор читателя (идентификатор операции имеет значение ncip, а тип объекта имеет значение WS)

ra.NCIP.POC_s

Идентификатор точки выдачи (идентификатор операции имеет значение ncip, а тип объекта имеет значение WS)

ra.NCIP.dateDue_dt

Время ожидаемого возврата документа (идентификатор операции имеет значение ncip, а тип объекта имеет значение WS)

ra.NCIP.useRestriction_ss

Сведения об ограничениях на использование документа, выданного во временное пользование (идентификатор операции имеет значение ncip, а тип объекта имеет значение WS)

ra.NCIP.extent_ss

Сведения об ограничениях на использование документа, выданного во временное пользование (идентификатор операции имеет значение ncip, а тип объекта имеет значение WS)

ra.NCIP.problem_ss

Сведения о препятствиях, не позволивших успешно выполнить операцию (идентификатор операции имеет значение ncip, а тип объекта имеет значение WS)

ra.SIP_s

Тип сообщения 3M™ SIP v. 2.00 (тип объекта имеет значение SIP)

ra.SIP.itemId_s

Идентификатор документа (тип объекта имеет значение SIP)

ra.SIP.patronId_s

Идентификатор читателя (тип объекта имеет значение SIP)

ra.session_s

Идентификатор сеанса (тип объекта имеет значение WS)

ra.oldSessionId_s

Прежний идентификатор сеанса (идентификатор операции имеет значение sessionIdChanged, а тип объекта имеет значение WS)

ra.tag_{X}_before_s

Значения поля X служебной записи до изменения записи (тип события имеет значение CHANGED, а тип объекта имеет значение record)

ra.tag_{X}_after_s

Значения поля X служебной записи после изменения записи (тип события имеет значение CHANGED, а тип объекта имеет значение record)


Глава 5. Сообщения

Диагностические сообщения выводятся в журнал WildFly.

Перечень сокращений

ACL

Access Control List

JCR

Java Content Repository

NCIP

NISO Circulation Interchange Protocol

NISO

National Information Standards Organization

SIP

Standard Interchange Protocol

АБИС

Автоматизированная библиотечно-информационная система