Проект

Общее

Профиль

Действия

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

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


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

Аннотация

В данном документе приведены общие сведения о программе "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
zHost
zPort
zClientBinding
debug

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

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

EJB Enterprise JavaBeans
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 года назад · 33 изменени(я, ий)