Проект

Общее

Профиль

Действия

Руководство системного программиста » История » Редакция 37

« Предыдущее | Редакция 37/58 (Разница(diff)) | Следующее »
Rustam Usmanov, 16.02.2016 16:19


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

Аннотация

В данном документе приведены общие сведения о программе "Web-сервисы Руслан", ее структура. Описаны порядок настройки и проверки программы, дополнительные возможности.

Глава 1. Общие сведения о программе

Программа "Web-сервисы Руслан" предназначена для обеспечения простого и удобного доступа удалённых пользователей к ресурсам АБИС "Руслан". Удалёнными пользователями могут являться любые пользователи сервера приложений WildFly, на базе которого функционирует программа. Ресурсами АБИС "Руслан" являются БД, поддерживаемые сервером "Руслан" и записи, содержащиеся в этих базах данных. Доступ к ресурсам заключается в выполнении над ними следующих операций:
  • Поиск (по протоколу SRU 2.0)
  • Извлечение, модификация, создание, удаление (по протоколу WebDAV)
  • Заказ услуги (бронирование, копия) по найденному библиографическому описанию (по протоколу NCIP v. 2.0.2)

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

Взаимодействие с сервером "Руслан" осуществляется по протоколу Z39.50.

Ресурсы представляются в двух форматах: XML и JSON, в зависимости от предпочтений пользователя.

Программа может функционировать на любых технических средствах под управлением сервера приложений WildFly 8.*. Обязательным требованием для выполнения программы является возможность сетевого взаимодействия с сервером "Руслан" и с сервером Oracle, используемым АБИС "Руслан".

Глава 2. Структура программы

Программа "Web-сервисы Руслан" состоит из следующих компонентов:

  1. jrzs-ear*.ear - Z39.50-клиент, реализованный в виде EJB.
  2. ridp*.war - провайдер идентификации.
  3. rrs-web*.war - Web-интерфейс ресурсов АБИС "Руслан"

Глава 3. Настройка программы

3.1. Установка программы

Установка программы заключается в развёртывании компонентов программы на сервере приложений WildFly.

3.2. Настройка программы

3.2.1. Настройка сервера приложений WildFly

3.2.1.1. Настройка источников данных

Все источники данных Oracle, используемые сервером Руслан, должны быть включены в конфигурацию сервера приложений WildFly. Следует обратить внимание на то, что настройка источников данных предусматривает установку JDBC драйвера Oracle. Пример результата настройки источников данных, отражённого в конфигурационном файле сервера приложений WildFly, приведён в Приложении 1.

3.2.1.2 Настройка доменов безопасности

В подсистему безопасности сервера приложений WildFly необходимо добавить два домена безопасности с именами idp и sp. Первый используется провайдером идентификации, второй - Web-интерфейсом ресурсов АБИС "Руслан".

Аутентификацию в домене безопасности idp необходимо настроить с использованием модуля входа Z39.50 (класс com.ols.auth.Z3950LoginModule). В Таблице 3-1 представлены параметры модуля входа Z39.50, их назначение и примеры значений.

Таблица 3-1. Параметры модуля входя Z39.50
Параметр Назначение Значение
orgId Уникальный идентификатор организации. Рекомендуется использовать национальный код библиотеки. Значение этого параметра должно совпадать со значением параметра Org899 сервера "Руслан" 19013582
zHost Адрес сервера Z39.50. Значение этого параметра должно совпадать со значением параметра Host сервера "Руслан". testbed.ruslan.ru
zPort Порт сервера Z39.50. Значение этого параметра должно совпадать со значением параметра Port сервера "Руслан". 210
zClientBinding JNDI-имя Z39.50-клиента, реализованного в виде EJB. java:global/jrzs/jrzs-ejb/ZClient
debug Управление выводом отладочных сообщений в журнал. true
false

Аутентификацию в домене безопасности sp необходимо настроить с использованием модуля входа SAML2 (класс org.picketlink.identity.federation.bindings.wildfly.SAML2LoginModule).

Пример результата настройки доменов безопасности, отражённого в конфигурационном файле сервера приложений WildFly, приведён в Приложении 1.

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

EJB Enterprise JavaBeans
JNDI Java Naming and Directory Interface
JSON JavaScript Object Notation
NISO National Information Standards Organization
NCIP NISO Circulation Interchange Protocol
XML The Extensible Markup Language
АБИС Автоматизированная библиотечно-информационная система
БД База данных

Приложение 1. Конфигурационный файл сервера приложений WildFly

Источники данных

<subsystem xmlns="urn:jboss:domain:datasources:2.0">
  <datasources>
    <datasource jta="false" jndi-name="java:jboss/datasources/ruslan" pool-name="ruslan" enabled="true" use-ccm="false">
      <connection-url>jdbc:oracle:thin:@oracle.test.org:1521/ORA11</connection-url>
      <driver-class>oracle.jdbc.OracleDriver</driver-class>
      <driver>ojdbc6.jar</driver>
      <security>
        <user-name>libmgr</user-name>
        <password>libmgr_pwd</password>
      </security>
      <validation>
        <validate-on-match>false</validate-on-match>
        <background-validation>false</background-validation>
      </validation>
      <statement>
        <share-prepared-statements>false</share-prepared-statements>
      </statement>
    </datasource>
    <datasource jta="false" jndi-name="java:jboss/datasources/lib1" pool-name="lib1" enabled="true" use-ccm="false">
      <connection-url>jdbc:oracle:thin:@oracle.test.org:1521/ORA11</connection-url>
      <driver-class>oracle.jdbc.OracleDriver</driver-class>
      <new-connection-sql>alter session set current_schema=lib1</new-connection-sql>
      <driver>ojdbc6.jar</driver>
      <security>
        <user-name>lib1</user-name>
        <password>lib1_pwd</password>
      </security>
      <validation>
        <validate-on-match>false</validate-on-match>
        <background-validation>false</background-validation>
      </validation>
      <statement>
        <share-prepared-statements>false</share-prepared-statements>
      </statement>
    </datasource>
  </datasources>
</subsystem>

Домены безопасности

<subsystem xmlns="urn:jboss:domain:security:1.2">
  <security-domains>
    <security-domain name="idp" cache-type="default">
      <authentication>
        <login-module code="com.ols.auth.Z3950LoginModule" flag="required">
          <module-option name="orgId" value="1"/>
          <module-option name="zHost" value="testbed.ruslan.ru"/>
          <module-option name="zPort" value="210"/>
          <module-option name="zClientBinding" value="java:global/jrzs/jrzs-ejb/ZClient"/>
          <module-option name="debug" value="false"/>
        </login-module>
      </authentication>
    </security-domain>
    <security-domain name="sp" cache-type="default">
      <authentication>
        <login-module code="org.picketlink.identity.federation.bindings.wildfly.SAML2LoginModule" flag="required"/>
      </authentication>
    </security-domain>
  </security-domains>
</subsystem>

Обновлено Rustam Usmanov почти 9 года назад · 37 изменени(я, ий)