Версия 1.16.0
Авторские права © 2020, 2021, 2022, 2023, 2024, 2025 ООО "Открытые библиотечные системы"
В данном документе приведены общие сведения о компонентах серверной части AБИС "Руслан-Нео" . Описаны назначение, условия применения, решаемые задачи, входные и выходные данные.
Серверная часть "Руслан-Нео" предназначена для обеспечения доступа удалённых пользователей к ресурсам АБИС "Руслан-Нео". Удалёнными пользователями могут являться любые пользователи сервера приложений WildFly , на базе которого функционирует АБИС. Ресурсами АБИС "Руслан-Нео" являются коллекции записей (БД) и собственно записи, поддерживаемые сервером "Руслан-Нео". Доступ к ресурсам заключается в выполнении над ними следующих операций:
Программы серверной части могут функционировать на любых технических средствах под управлением сервера приложений WildFly версии 10.*.
Обязательными требованиями для выполнения программ серверной части являются:
наличие установленного статического модуля WildFly PicketLink версии 2.7.0.Final
наличие установленного статического модуля WildFly ModeShape версии 5.4.0.Final
Подсистема пакетных заданий АБИС "Руслан-Нео" реализуется на базе подсистемы пакетных заданий сервера приложений WildFly и соотетствует требованиям спецификации JSR-352: Batch Applications for the Java Platform.
Запуск пакетных заданий осуществляется следующими способами:
Контроль выполнения пакетных заданий может быть осуществлён при помощи Автоматизированного рабочего места администратора и журналов сервера приложений WildFly.
В таблице 3-1 представлены пакетные задания, их назначение, параметры (символом * отмечены обязательные параметры) и примеры их значений.
Таблица 3-1. Пакетные задания АБИС "Руслан-Нео"
| CopyRecords | |
| Назначение | Копирование записей из одной БД в другую |
| Параметры |
|
| Пример параметров |
database=BOOKS
dst=TEMP
query=dc.title any "физика"
|
| DeleteAllRecordsFromDatabase | |
| Назначение | Удаление всех записей из БД |
| Параметры | |
| Пример параметров |
database=BOOKS
|
| DeleteDatabase | |
| Назначение | Удаление БД |
| Параметры | |
| Пример параметров |
database=BOOKS
|
| DeleteRecords | |
| Назначение | Удаление записей из БД |
| Параметры | |
| Пример параметров |
database=BOOKS
query=dc.title any "физика"
|
| ExportRecordsISO2709 | |
| Назначение | Экспорт записей из БД в формате ISO 2709 |
| Параметры |
|
| Пример параметров |
database=BOOKS
query=dc.title any "физика"
url=ftp://user:password@host/path/to/file.iso
|
| ExportRecordsNative | |
| Назначение | Экспорт записей из БД в формате хранения (XML) |
| Параметры |
|
| Пример параметров |
database=BOOKS
query=dc.title any "физика"
url=http://user:password@host/path/to/file.xml
|
| GenerateVisitRecords | |
| Назначение | Создание записей на интервалы посещения отделов библиотеки |
| Параметры |
|
| Пример параметров |
database=VISITS
url=file:///usr/share/rneo/visits.xml
depth=7
|
| ImportRecordsISO2709 | |
| Назначение | Импорт записей в БД в формате ISO 2709 |
| Параметры |
|
| Пример параметров |
database=BOOKS
syntax=1.2.840.10003.5.28.1
url=file:///path/to/file.iso
|
| ImportRecordsNative | |
| Назначение | Импорт записей в БД в формате хранения (XML) |
| Параметры |
|
| Пример параметров |
database=BOOKS
url=file:///path/to/file.xml
|
| ImportRecordsSystemView | |
| Назначение | Импорт записей в БД в формате системного представления JCR |
| Параметры | |
| Пример параметров |
database=CIRC
url=file:///path/to/file.xml
|
| IndexDatabase | |
| Назначение | Индексирование записей БД |
| Параметры |
|
| Пример параметров |
database=BOOKS
delay=1000
reindex=false
|
| JCRReindex | |
| Назначение | Переиндексирование записей на уровне JCR |
| Параметры | |
| Пример параметров |
database=BOOKS
|
| MapACLPrincipal | |
| Назначение | Замена идентификаторов субъектов в списках управления доступом (ACL) к БД в соответствии с таблицей отображения |
| Параметры |
|
| Пример параметров |
database=BOOKS
map=file:///path/to/principalMap.properties
|
| Migrate | |
| Назначение | Миграция и индексирование данных из АБИС "Руслан" |
| Параметры |
|
| Пример параметров |
source=java:jboss/datasources/19013582/lib
|
| MigrateACLs | |
| Назначение | Миграция списков управления доступом БД АБИС "Руслан" |
| Параметры |
|
| Пример параметров |
source=java:jboss/datasources/19013582/mgr
|
| MigrateBibRecords | |
| Назначение | Миграция данных из библиографических БД АБИС "Руслан" |
| Параметры |
|
| Пример параметров |
source=java:jboss/datasources/19013582/lib
database=BOOKS
maxVersions=2
|
| MigrateDatabases | |
| Назначение | Миграция структуры БД АБИС "Руслан" |
| Параметры |
|
| Пример параметров |
source=java:jboss/datasources/19013582/lib
|
| MigrateServiceRecords | |
| Назначение | Миграция данных из служебных БД АБИС "Руслан" |
| Параметры |
|
| Пример параметров |
source=java:jboss/datasources/19013582/lib
database=BILLS
|
| MigrateUsers | |
| Назначение | Миграция пользователей и групп прав доступа АБИС "Руслан". Группы прав доступа АБИС "Руслан" отображаются в роли АБИС "Руслан-Нео". |
| Параметры |
|
| Пример параметров |
source=java:jboss/datasources/19013582/mgr
addRoles=foo,bar,baz
|
| MoveRecords | |
| Назначение | Перемещение записей из одной БД в другую |
| Параметры |
|
| Пример параметров |
database=BOOKS
dst=TEMP
query=dc.title any "физика"
|
| ReindexDatabase | |
| Назначение | Переиндексирование записей в БД |
| Параметры |
|
| Пример параметров |
database=BOOKS
query=dc.title any "физика"
|
| ReindexReferencedRecords | |
| Назначение | Переиндексирование записей, на которые ссылаются другие записи |
| Параметры |
|
| Пример параметров |
database=CIRC
dst=BOOKS.HOLDINGS
query=rec.id>abcd
|
| ReindexReferencingRecords | |
| Назначение | Переиндексирование записей, ссылающихся на другие записи |
| Параметры |
|
| Пример параметров |
database=BOOKS.HOLDINGS
delay=2000
query=ruslan.circulationStatus=lost
|
| RemoveACEForPrincipal | |
| Назначение | Удаление субъекта из списка управления доступом |
| Параметры |
|
| Пример параметров |
database=BOOKS
principal=ruslan-user
|
| RemoveJCRProperty | |
| Назначение | Удаление JCR-свойства из записи |
| Параметры |
|
| Пример параметров |
database=EBOOKS
property=jcr:uuid
query=rec.id=RU\\SPSTU\\edoc\\53043
|
| RemoveVersions | |
| Назначение | Удаление версий записей в соответствии с политикой хранения, определяемой бизнес-правилами модуля ruslan-retention-versions.drl |
| Параметры |
|
| RestoreVersions | |
| Назначение | Восстановление содержимого записи до версии, созданной до определённого момента времени. Другими словами - откат изменений (удаление всех версий), сделанных после опредёлённого момента времени |
| Параметры |
|
| Пример параметров |
database=EBOOKS
afterDate=2019-09-08T12:05:03Z
query=rec.id=RU\\SPSTU\\edoc\\53043
|
| UpdateLinkedRecords | |
| Назначение | Обновление связанных библиографических и авторитетных записей |
| Параметры |
|
| Пример параметров |
origin=jcr:SUBSCR/ru\spstu\subscr4957
xslt=vfs:/content/rneo.ear/lib/rneo-util.jar/
UpdateLinkedRecords.xsl
query=dc.relation="ru\\spstu\\subscr4957"
|
| UpdateOverdues | |
| Назначение | Обновление сведений о количестве документов, срок возврата которых истёк, в записях на читателей |
| Параметры | |
| Пример параметров |
database=LUSR
|
| XSLTransformRecords | |
| Назначение | Трансформация записей |
| Параметры |
|
| Пример параметров |
database=SERIAL.HOLDINGS
query=ruslan.relatedBibliographic=
"SERIAL/RU\\SPSTU\\books\\20083133"
xslt=file:///usr/share/rneo/RelinkHoldings.xsl
|
Миграция данных из АБИС "Руслан" осуществляется посредством выполнения следующих пакетных заданий:
Соответственно миграция может осуществляться по двум сценариям:
При объёме БД более 100000 записей рекомендуется осуществлять миграцию по второму сценарию, обеспечивающему большую управляемость процесса миграции. Кроме того, второй сценарий позволяет осуществлять одновременную миграцию библиографических и служебных БД (при одновременном выполнении заданий MigrateBibrecords и MigrateServiceRecords). Также следует заранее позаботиться о выделении серверу приложений WildFly достаточного количества оперативной памяти (не менее 8 ГБ при объёме БД более 400000 записей).
Ход процесса миграции можно контролировать при помощи Автоматизированного рабочего места администратора и журнала сервера приложений WildFly. По окончании процесса миграции данных следует проиндексировать БД. При аварийном завершении или ручной остановке задания его можно перезапустить и оно возобновится с того места, на котором было остановлено.
Миграцию нескольких БД одного типа (при указании параметра database)
можно осуществлять только последовательно. Это означает, что одновременно можно запускать не более одного задания
MigrateBibrecords и не более одного задания MigrateServiceRecords.
Бронирование документов осуществляется на основе идентификаторов библиографической записи, читателя и предпочтительного пункта обслуживания. Список пунктов обслуживания предлагается читателю в АРМ Читателя. Этот список формируется на основе сведений о местонахождении и доступности экземпляров бронируемого документа (записи на экземпляры), авторитетного файла отделов хранения и авторитетного файла пунктов обслуживания следующим образом.
Формируется множество сигл отделов хранения, в которых находится ненулевое количество свободных экземпляров.
Формируется множество авторитеных записей на пункты обслуживания, связанных с записями на отделы хранения, сиглы которых были определены на предыдущем шаге.
Таким образом, для формирования списка пунктов обслуживания требуется наличие связей записей на пункты обслуживания с записями на отделы хранения. Наличие такой связи указывает на возможность бронирования и последующей выдачи экземпляра документа из определённого отдела хранения в определённом пункте обслуживания.
Пример авторитетной записи на пункт обслуживания:
00593nx a2200169 450
001 SP-1
005 20240131131559.
017 8 $a АбонОНЛ
100 $a 20240131arusy01020304ca 50
152 $a RCR $b spstush
210 $a Абонемент отдела научной литературы
340 $f Пн-Пт 09:00-17:30 $p Политехническая, 29
510 02 $a Отдел научной литературы $3 COLLECTIONS/C-1
801 0 $a RU $b 19013582 $c 20240131 $g psbo
801 1 $a RU $b 19013582 $c 20240131 $g psbo
801 2 $a RU $b 19013582 $c 20240307 $g psbo
Пример авторитетной записи на отдел хранения:
00504nx a2200157 450
001 C-1
005 20240131124235.8
017 8 $a ОНЛ
100 $a 20240131arusy01020304ca 50
152 $a RCR $b spstush
210 02 $a Отдел научной литературы
801 0 $a RU $b 19013582 $c 20240131 $g psbo
801 1 $a RU $b 19013582 $c 20240131 $g psbo
801 2 $a RU $b 19013582 $c 20240131 $g psbo
856 4 $u http://library.spbstu.ru/ru/pages/ob_ibk/struktura/otdel_nauchnoi_literatury/
998 $a 000000о00000000000
Записи на пукты обслуживания и отделы хранения могут храниться в любых БД.
В конфигурационном файле АРМ Читателя можно указать название БД с записями на пункты обслуживания (по умолчанию SERVICE_POINTS).
Маршрутизация запросов на бронирование в конкретные отделы хранения для последующей обработки осуществляется при помощи бизнес-правил.
Автоматическое формирование счетов может осуществляться при помощи бизнес-правил,
регламентирующих возврат документов, выданных во временное пользование. При этом в БД EXTD
формируются соответствующие записи в формате fiscalTransaction.
Форматом хранения записей в АБИС "Руслан-Нео" является XML. Ниже приведёно DTD соответствующих документов XML.
<!ELEMENT record ((leader, field+) |
(bibliographicRecord?, holdingsData?) |
(tag+))>
<!ATTLIST record
syntax CDATA #REQUIRED>
<!ELEMENT leader (length, status, type,
leader07, leader08, leader09,
indicatorCount, identifierLength,
dataBaseAddress, leader17,
leader18, leader19, entryMap)>
<!ELEMENT length (#PCDATA)>
<!ELEMENT status (#PCDATA)>
<!ELEMENT type (#PCDATA)>
<!ELEMENT leader07 (#PCDATA)>
<!ELEMENT leader08 (#PCDATA)>
<!ELEMENT leader09 (#PCDATA)>
<!ELEMENT indicatorCount (#PCDATA)>
<!ELEMENT identifierLength (#PCDATA)>
<!ELEMENT dataBaseAddress (#PCDATA)>
<!ELEMENT leader17 (#PCDATA)>
<!ELEMENT leader18 (#PCDATA)>
<!ELEMENT entryMap (#PCDATA)>
<!ELEMENT field (#PCDATA | indicator | subfield)*>
<!ATTLIST field
id CDATA #REQUIRED>
<!ELEMENT indicator (#PCDATA)>
<!ATTLIST indicator
id CDATA #REQUIRED>
<!ELEMENT subfield (#PCDATA | field)*>
<!ATTLIST subfield
id CDATA #REQUIRED>
<!ELEMENT tag (#PCDATA | tag)*>
<!ATTLIST tag
tagType CDATA #IMPLIED
tagOccurrence CDATA #IMPLIED
tagValue CDATA #REQUIRED>
Используются следующие идентификаторы форматов (атрибут syntax):
Используются следующие идентификаторы схем служебных записей (элемент tag c атрибутами tagType="1" и tagValue="1"):
1.2.840.10003.13.1000.148.1 - генератор;
1.2.840.10003.13.1000.148.2 - справочник;
1.2.840.10003.13.1000.148.3 - экземпляр документа;
1.2.840.10003.13.1000.148.4 - событие книговыдачи;
1.2.840.10003.13.1000.148.5 - акт списания;
1.2.840.10003.13.1000.148.6 - счёт поступлления;
1.2.840.10003.13.1000.148.7 - читатель;
1.2.840.10003.13.1000.148.8 - подписка;
1.2.840.10003.13.1000.148.9 - заказ на комплектование;
1.2.840.10003.13.1000.148.10 - список экземпляров;
1.2.840.10003.13.1000.148.11 - время и место посещения;
1.2.840.10003.13.1000.148.12 - список библиографических записей.
Логический набор классов, предназначенный для загрузки классов и управления зависимостями в сервере приложений WildFly .
См. также Module .
Модуль
WildFly
, установленный в каталоге
modules
сервера приложений
WildFly
.
Access Control List
Contextual Query Language
Document Type Definition
Java Content Repository
JavaScript Object Notation
National Information Standards Organization
Uniform Resource Locator
The Extensible Markup Language
Extensible Stylesheet Language Transformations
Автоматизированная библиотечно-информационная система
Автоматизированное рабочее место
База данных
Система управления базами данных