Проект

Общее

Профиль

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

Rustam Usmanov, 16.02.2016 15:14

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 25 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. Конфигурационный файл сервера приложений WildFly|Приложении 1]].
45 20 Rustam Usmanov
46 29 Rustam Usmanov
h5. 3.2.1.2 Настройка доменов безопасности
47 28 Rustam Usmanov
48 30 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@. Пример результата настройки доменов безопасности, отражённого в конфигурационном файле сервера приложений WildFly, приведён в [[Руководство системного програмиста#Приложение 1. Конфигурационный файл сервера приложений WildFly|Приложении 1]].
49 28 Rustam Usmanov
50 4 Rustam Usmanov
h2. Перечень сокращений
51 1 Rustam Usmanov
52
table{border:none}.
53 18 Rustam Usmanov
|EJB|Enterprise JavaBeans|
54 1 Rustam Usmanov
|JSON|JavaScript Object Notation|
55 16 Rustam Usmanov
|NISO|National Information Standards Organization|
56
|NCIP|NISO Circulation Interchange Protocol|
57 1 Rustam Usmanov
|XML|The Extensible Markup Language|
58 19 Rustam Usmanov
|АБИС|Автоматизированная библиотечно-информационная система|
59 1 Rustam Usmanov
|БД|База данных|
60 23 Rustam Usmanov
61
h2. Приложение 1. Конфигурационный файл сервера приложений WildFly
62
63
h3. Источники данных
64 31 Rustam Usmanov
65 23 Rustam Usmanov
<pre><code class="xml">
66
<subsystem xmlns="urn:jboss:domain:datasources:2.0">
67
  <datasources>
68
    <datasource jta="false" jndi-name="java:jboss/datasources/ruslan" pool-name="ruslan" enabled="true" use-ccm="false">
69
      <connection-url>jdbc:oracle:thin:@oracle.test.org:1521/ORA11</connection-url>
70
      <driver-class>oracle.jdbc.OracleDriver</driver-class>
71
      <driver>ojdbc6.jar</driver>
72
      <security>
73
        <user-name>libmgr</user-name>
74
        <password>libmgr_pwd</password>
75
      </security>
76
      <validation>
77
        <validate-on-match>false</validate-on-match>
78
        <background-validation>false</background-validation>
79
      </validation>
80
      <statement>
81
        <share-prepared-statements>false</share-prepared-statements>
82
      </statement>
83
    </datasource>
84
    <datasource jta="false" jndi-name="java:jboss/datasources/lib1" pool-name="lib1" enabled="true" use-ccm="false">
85
      <connection-url>jdbc:oracle:thin:@oracle.test.org:1521/ORA11</connection-url>
86
      <driver-class>oracle.jdbc.OracleDriver</driver-class>
87 27 Rustam Usmanov
      <new-connection-sql>alter session set current_schema=lib1</new-connection-sql>
88 23 Rustam Usmanov
      <driver>ojdbc6.jar</driver>
89
      <security>
90
        <user-name>lib1</user-name>
91
        <password>lib1_pwd</password>
92
      </security>
93
      <validation>
94
        <validate-on-match>false</validate-on-match>
95
        <background-validation>false</background-validation>
96
      </validation>
97
      <statement>
98
        <share-prepared-statements>false</share-prepared-statements>
99
      </statement>
100
    </datasource>
101 1 Rustam Usmanov
  </datasources>
102 30 Rustam Usmanov
</subsystem>
103
</code></pre>
104
105
h3. Домены безопасности
106 31 Rustam Usmanov
107 30 Rustam Usmanov
<pre><code class="xml">
108
<subsystem xmlns="urn:jboss:domain:security:1.2">
109
  <security-domains>
110
    <security-domain name="idp" cache-type="default">
111
      <authentication>
112
        <login-module code="com.ols.auth.Z3950LoginModule" flag="required">
113
          <module-option name="orgId" value="1"/>
114
          <module-option name="zHost" value="testbed.ruslan.ru"/>
115
          <module-option name="zPort" value="210"/>
116
          <module-option name="zClientBinding" value="java:global/jrzs/jrzs-ejb/ZClient"/>
117
          <module-option name="debug" value="false"/>
118
        </login-module>
119
      </authentication>
120
    </security-domain>
121
    <security-domain name="sp" cache-type="default">
122
      <authentication>
123
        <login-module code="org.picketlink.identity.federation.bindings.wildfly.SAML2LoginModule" flag="required"/>
124
      </authentication>
125
    </security-domain>
126
  </security-domains>
127 23 Rustam Usmanov
</subsystem>
128
</code></pre>