Проект

Общее

Профиль

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

Rustam Usmanov, 16.02.2016 15:41

1 1 Rustam Usmanov
h1. Руководство системного програмиста
2
3
{{toc}}
4
5
h2. Аннотация
6
7
В данном документе приведены общие сведения о программе "Web-сервисы Руслан", ее структура. Описаны порядок настройки и проверки программы, дополнительные возможности.
8
9 26 Rustam Usmanov
h2. Глава 1. Общие сведения о программе
10 1 Rustam Usmanov
11 16 Rustam Usmanov
Программа "Web-сервисы Руслан" предназначена для обеспечения простого и удобного доступа удалённых пользователей к ресурсам АБИС "Руслан". Удалёнными пользователями могут являться любые пользователи сервера приложений "WildFly":http://wildfly.org, на базе которого функционирует программа. Ресурсами АБИС "Руслан" являются БД, поддерживаемые сервером "Руслан" и записи, содержащиеся в этих базах данных. Доступ к ресурсам заключается в выполнении над ними следующих операций:
12 11 Rustam Usmanov
* Поиск (по протоколу "SRU 2.0":http://www.loc.gov/standards/sru/sru-2-0.html)
13 15 Rustam Usmanov
* Извлечение, модификация, создание, удаление (по протоколу "WebDAV":http://tools.ietf.org/html/rfc4918)
14 16 Rustam Usmanov
* Заказ услуги (бронирование, копия) по найденному библиографическому описанию (по протоколу "NCIP v. 2.0.2":http://www.ncip.info/)
15 1 Rustam Usmanov
16 11 Rustam Usmanov
Операции, связанные с чтением данных с ограниченным доступом и записью данных, требуют наличия соответствующих прав у пользователя, а следовательно и идентификации пользователя. Идентификация пользователя осуществляется при помощи провайдера идентификации по протоколу SAML 2.0.
17 1 Rustam Usmanov
18 11 Rustam Usmanov
Взаимодействие с сервером "Руслан" осуществляется по протоколу Z39.50.
19
20 12 Rustam Usmanov
Ресурсы представляются в двух форматах: XML и JSON, в зависимости от предпочтений пользователя.
21 1 Rustam Usmanov
22 17 Rustam Usmanov
Программа может функционировать на любых технических средствах под управлением сервера приложений *WildFly 8.**. Обязательным требованием для выполнения программы является возможность сетевого взаимодействия с сервером "Руслан" и с сервером *Oracle*, используемым АБИС "Руслан".
23 12 Rustam Usmanov
24 26 Rustam Usmanov
h2. Глава 2. Структура программы
25 1 Rustam Usmanov
26 12 Rustam Usmanov
Программа "Web-сервисы Руслан" состоит из следующих компонентов:
27
28 14 Rustam Usmanov
# @jrzs-ear*.ear@ - Z39.50-клиент, реализованный в виде EJB.
29 12 Rustam Usmanov
# @ridp*.war@ - провайдер идентификации.
30
# @rrs-web*.war@ - Web-интерфейс ресурсов АБИС "Руслан"
31
32 26 Rustam Usmanov
h2. Глава 3. Настройка программы
33 1 Rustam Usmanov
34 26 Rustam Usmanov
h3. 3.1. Установка программы
35 19 Rustam Usmanov
36 16 Rustam Usmanov
Установка программы заключается в "развёртывании компонентов программы на сервере приложений WildFly":https://docs.jboss.org/author/display/WFLY8/Application+deployment.
37 1 Rustam Usmanov
38 26 Rustam Usmanov
h3. 3.2. Настройка программы
39 19 Rustam Usmanov
40 26 Rustam Usmanov
h4. 3.2.1. Настройка сервера приложений WildFly
41 21 Rustam Usmanov
42 26 Rustam Usmanov
h5. 3.2.1.1. Настройка источников данных
43 21 Rustam Usmanov
44 32 Rustam Usmanov
Все источники данных Oracle, используемые сервером Руслан, должны быть "включены в конфигурацию сервера приложений WildFly":https://docs.jboss.org/author/display/WFLY8/DataSource+configuration. Следует обратить внимание на то, что настройка источников данных предусматривает "установку":https://docs.jboss.org/author/display/WFLY8/Application+deployment "JDBC драйвера Oracle":http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html. Пример результата настройки источников данных, отражённого в конфигурационном файле сервера приложений WildFly, приведён в [[Руководство системного програмиста#Источники данных|Приложении 1]].
45 20 Rustam Usmanov
46 29 Rustam Usmanov
h5. 3.2.1.2 Настройка доменов безопасности
47 28 Rustam Usmanov
48 33 Rustam Usmanov
В "подсистему безопасности сервера приложений WildFly":https://docs.jboss.org/author/display/WFLY8/Security+subsystem+configuration необходимо "добавить два домена безопасности":https://docs.jboss.org/author/display/WFLY8/Security+subsystem+configuration#Securitysubsystemconfiguration-securitydomains с именами @idp@ и @sp@. Первый используется провайдером идентификации, второй - Web-интерфейсом ресурсов АБИС "Руслан".
49
50
Аутентификацию в домене безопасности @idp@ необходимо настроить с использованием модуля входа Z39.50 (класс @com.ols.auth.Z3950LoginModule@). В Таблице 3-1 представлены параметры модуля входа Z39.50.
51
52
|=. Таблица 3-1. Параметры модуля входя Z39.50
53
|_.Параметр|_.Назначение|_.Значение|
54
|orgId|||
55
|zHost|||
56
|zPort|||
57
|zClientBinding|||
58
|debug|||
59
60
Пример результата настройки доменов безопасности, отражённого в конфигурационном файле сервера приложений WildFly, приведён в [[Руководство системного програмиста#Домены безопасности|Приложении 1]].
61 28 Rustam Usmanov
62 4 Rustam Usmanov
h2. Перечень сокращений
63 1 Rustam Usmanov
64
table{border:none}.
65 18 Rustam Usmanov
|EJB|Enterprise JavaBeans|
66 1 Rustam Usmanov
|JSON|JavaScript Object Notation|
67 16 Rustam Usmanov
|NISO|National Information Standards Organization|
68
|NCIP|NISO Circulation Interchange Protocol|
69 1 Rustam Usmanov
|XML|The Extensible Markup Language|
70 19 Rustam Usmanov
|АБИС|Автоматизированная библиотечно-информационная система|
71 1 Rustam Usmanov
|БД|База данных|
72 23 Rustam Usmanov
73
h2. Приложение 1. Конфигурационный файл сервера приложений WildFly
74
75
h3. Источники данных
76 31 Rustam Usmanov
77 23 Rustam Usmanov
<pre><code class="xml">
78
<subsystem xmlns="urn:jboss:domain:datasources:2.0">
79
  <datasources>
80
    <datasource jta="false" jndi-name="java:jboss/datasources/ruslan" pool-name="ruslan" enabled="true" use-ccm="false">
81
      <connection-url>jdbc:oracle:thin:@oracle.test.org:1521/ORA11</connection-url>
82
      <driver-class>oracle.jdbc.OracleDriver</driver-class>
83
      <driver>ojdbc6.jar</driver>
84
      <security>
85
        <user-name>libmgr</user-name>
86
        <password>libmgr_pwd</password>
87
      </security>
88
      <validation>
89
        <validate-on-match>false</validate-on-match>
90
        <background-validation>false</background-validation>
91
      </validation>
92
      <statement>
93
        <share-prepared-statements>false</share-prepared-statements>
94
      </statement>
95
    </datasource>
96
    <datasource jta="false" jndi-name="java:jboss/datasources/lib1" pool-name="lib1" enabled="true" use-ccm="false">
97
      <connection-url>jdbc:oracle:thin:@oracle.test.org:1521/ORA11</connection-url>
98
      <driver-class>oracle.jdbc.OracleDriver</driver-class>
99 27 Rustam Usmanov
      <new-connection-sql>alter session set current_schema=lib1</new-connection-sql>
100 23 Rustam Usmanov
      <driver>ojdbc6.jar</driver>
101
      <security>
102
        <user-name>lib1</user-name>
103
        <password>lib1_pwd</password>
104
      </security>
105
      <validation>
106
        <validate-on-match>false</validate-on-match>
107
        <background-validation>false</background-validation>
108
      </validation>
109
      <statement>
110
        <share-prepared-statements>false</share-prepared-statements>
111
      </statement>
112
    </datasource>
113 1 Rustam Usmanov
  </datasources>
114 30 Rustam Usmanov
</subsystem>
115
</code></pre>
116
117
h3. Домены безопасности
118 31 Rustam Usmanov
119 30 Rustam Usmanov
<pre><code class="xml">
120
<subsystem xmlns="urn:jboss:domain:security:1.2">
121
  <security-domains>
122
    <security-domain name="idp" cache-type="default">
123
      <authentication>
124
        <login-module code="com.ols.auth.Z3950LoginModule" flag="required">
125
          <module-option name="orgId" value="1"/>
126
          <module-option name="zHost" value="testbed.ruslan.ru"/>
127
          <module-option name="zPort" value="210"/>
128
          <module-option name="zClientBinding" value="java:global/jrzs/jrzs-ejb/ZClient"/>
129
          <module-option name="debug" value="false"/>
130
        </login-module>
131
      </authentication>
132
    </security-domain>
133
    <security-domain name="sp" cache-type="default">
134
      <authentication>
135
        <login-module code="org.picketlink.identity.federation.bindings.wildfly.SAML2LoginModule" flag="required"/>
136
      </authentication>
137
    </security-domain>
138
  </security-domains>
139 23 Rustam Usmanov
</subsystem>
140
</code></pre>