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