initial public commit
BIN
documentation/connectors/Message.png
Normal file
After Width: | Height: | Size: 60 KiB |
203
documentation/connectors/create_new_connectors.adoc
Normal file
@ -0,0 +1,203 @@
|
||||
= План создания коннектора
|
||||
|
||||
Для создания полноценного коннектора необходимо создать bundle с такой структурой:
|
||||
|
||||
. _src/main/resource/template/<название endpoint>-in-connector.ftl_
|
||||
. _src/main/resource/template/<название endpoint>-out-connector.ftl_
|
||||
. _src/main/resource/OSGI-INF/blueprint/camel-context.xml_
|
||||
. _pom.xml_
|
||||
|
||||
== Создание шаблона входного коннектора(in-connector)
|
||||
|
||||
_Входной коннектор_ - это коннектор, который получает сообщения из вне Entaxy.
|
||||
|
||||
_Шаблон входного коннектора_ - ftl файл, на основе которого шина будет создавать индивидуальные входные коннекторы для каждой системы, с помощью подстановки параметров, полученных от пользователя.
|
||||
|
||||
Пример созданного шаблона, где название endpoint - _example_:
|
||||
_src/main/resource/template/example-in-connector.ftl_
|
||||
[source,xml]
|
||||
----
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
|
||||
|
||||
<bean id="inConnector" class="ru.entaxy.esb.system.profile.commons.connectors.in.QueueInConnectorImpl">
|
||||
<property name="endpointName" value="example"/>
|
||||
<property name="systemName" value="[=systemName]"/>
|
||||
</bean>
|
||||
<service ref="inConnector" auto-export="interfaces">
|
||||
<service-properties>
|
||||
<entry key="endpointName" value="example"/>
|
||||
<entry key="systemName" value="[=systemName]"/>
|
||||
</service-properties>
|
||||
</service>
|
||||
|
||||
<camelContext id="example-in-connector-[=systemName]-context" xmlns="http://camel.apache.org/schema/blueprint">
|
||||
<route id="example-[=systemName]-connector">
|
||||
<from uri="direct-vm:example-in-connector-[=systemName]"/>
|
||||
<setHeader name="ESB.Endpoint.Name">
|
||||
<constant>example</constant>
|
||||
</setHeader>
|
||||
<to uri="direct-vm:profile-[=systemName]-exit-dispatcher"/>
|
||||
</route>
|
||||
</camelContext>
|
||||
|
||||
</blueprint>
|
||||
----
|
||||
|
||||
Создание и публикация бина: для связи коннектора с профилем, возможности получить весь список коннекторов определенного типа.
|
||||
[source, xml]
|
||||
----
|
||||
<bean id="inConnector" class="ru.entaxy.esb.system.profile.commons.connectors.in.QueueInConnectorImpl">
|
||||
<property name="endpointName" value="example"/>
|
||||
<property name="systemName" value="[=systemName]"/>
|
||||
</bean>
|
||||
<service ref="inConnector" auto-export="interfaces">
|
||||
<service-properties>
|
||||
<entry key="endpointName" value="example"/>
|
||||
<entry key="systemName" value="[=systemName]"/>
|
||||
</service-properties>
|
||||
</service>
|
||||
----
|
||||
|
||||
Маршрут коннектора, который полученные сообщения отправляет на выходную точку профиля, к которой прикрепляется сгенерированный пользователем route.
|
||||
[source, xml]
|
||||
----
|
||||
<route id="example-[=systemName]-in-connector">
|
||||
<from uri="direct-vm:example-in-connector-[=systemName]"/>
|
||||
<setHeader name="ESB.Endpoint.Name">
|
||||
<constant>example</constant>
|
||||
</setHeader>
|
||||
<to uri="direct-vm:profile-[=systemName]-exit-dispatcher"/>
|
||||
</route>
|
||||
----
|
||||
|
||||
Начало маршрута входного коннектора может начинаться не с _"direct-vm:example-in-connector-[=systemName]"_, а получать сообщения, например, через определенную папку на диске.
|
||||
|
||||
Для того чтобы отправить сообщение в коннектор необходимо, получить все коннекторы определенного типа (example):
|
||||
[source,xml]
|
||||
----
|
||||
<bean id="inConnectorRegistry" class="ru.entaxy.esb.system.profile.commons.ConnectorRegistry" activation="eager"/>
|
||||
|
||||
<reference-list id="inConnector" interface="ru.entaxy.esb.system.profile.commons.connectors.in.InConnector"
|
||||
filter="(endpointName=example)" availability="optional">
|
||||
<reference-listener ref="inConnectorRegistry"
|
||||
bind-method="register" unbind-method="unregister"/>
|
||||
</reference-list>
|
||||
----
|
||||
|
||||
И отправлять сообщения с помощью:
|
||||
[source,xml]
|
||||
----
|
||||
<bean ref="inConnectorRegistry" method="send"/>
|
||||
----
|
||||
|
||||
== Создание шаблона выходного коннектора(out-connector)
|
||||
|
||||
_Выходной коннектор_ - это коннектор, который отправляет сообщения из Entaxy в систему (вне Entaxy).
|
||||
|
||||
_Шаблон выходного коннектора_ - ftl файл, на основе которого шина будет создавать индивидуальные выходные коннекторы для каждой системы, с помощью подстановки параметров, полученных от пользователя.
|
||||
|
||||
Пример созданного шаблона, где название endpoint - _example_:
|
||||
_src/main/resource/template/example-out-connector.ftl_
|
||||
[source,xml]
|
||||
----
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
|
||||
|
||||
<reference id="pooledConnectionFactory" interface="javax.jms.ConnectionFactory"/>
|
||||
<bean id="jms" class="org.apache.camel.component.jms.JmsComponent">
|
||||
<property name="connectionFactory" ref="pooledConnectionFactory"/>
|
||||
</bean>
|
||||
|
||||
<bean id="exampleConnector" class="ru.entaxy.esb.system.profile.commons.connectors.out.QueueOutConnectorImpl">
|
||||
<property name="endpointName" value="example"/>
|
||||
<property name="systemName" value="[=systemName]"/>
|
||||
</bean>
|
||||
<service ref="exampleConnector" auto-export="interfaces">
|
||||
<service-properties>
|
||||
<entry key="endpointName" value="example"/>
|
||||
<entry key="systemName" value="[=systemName]"/>
|
||||
</service-properties>
|
||||
</service>
|
||||
|
||||
<camelContext id="example-out-connector-[=systemName]-context" xmlns="http://camel.apache.org/schema/blueprint"
|
||||
errorHandlerRef="commonErrorHandler">
|
||||
|
||||
<errorHandler id="commonErrorHandler" redeliveryPolicyRef="noRedelivery"
|
||||
type="DeadLetterChannel" deadLetterUri="direct-vm:commonErrorEndpoint"/>
|
||||
<redeliveryPolicyProfile id="noRedelivery" disableRedelivery="true"/>
|
||||
|
||||
<route id="example-out-connector">
|
||||
<from uri="direct-vm:example-out-connector-[=systemName]"/>
|
||||
<log message="Message ${headers} send to system" loggingLevel="TRACE"/>
|
||||
<toD uri="jms:queue:example-[=systemName]?exchangePattern=InOnly&priority=${headers.SOAPJMS_HEADER_priority}"/>
|
||||
</route>
|
||||
</camelContext>
|
||||
|
||||
</blueprint>
|
||||
----
|
||||
|
||||
Создание и публикация бина: для связи коннектора с профилем, возможности получить весь список коннекторов определенного типа.
|
||||
[source, xml]
|
||||
----
|
||||
<bean id="exampleOutConnector" class="ru.entaxy.esb.system.profile.commons.connectors.out.QueueOutConnectorImpl">
|
||||
<property name="endpointName" value="example"/>
|
||||
<property name="systemName" value="[=systemName]"/>
|
||||
</bean>
|
||||
<service ref="exampleOutConnector" auto-export="interfaces">
|
||||
<service-properties>
|
||||
<entry key="endpointName" value="example"/>
|
||||
<entry key="systemName" value="[=systemName]"/>
|
||||
</service-properties>
|
||||
</service>
|
||||
----
|
||||
|
||||
Маршрут выходного коннектора *должен* стартовать с:
|
||||
[source,xml]
|
||||
----
|
||||
<from uri="direct-vm:example-out-connector-[=systemName]"/>
|
||||
----
|
||||
|
||||
== Публикация созданных шаблонов
|
||||
|
||||
Необходимо опубликовать osgi сервис с информацией об созданных шаблонах для того, чтобы механизм создания коннекторов увидел их.
|
||||
|
||||
_src/main/resource/OSGI-INF/blueprint/camel-context.xml_
|
||||
[source,xml]
|
||||
----
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
|
||||
|
||||
<!--template in connector-->
|
||||
<bean id="inTemplate" class="ru.entaxy.esb.system.core.template.TemplateImpl">
|
||||
<property name="bundleContext" ref="blueprintBundleContext"/>
|
||||
<property name="templateName" value="example-in-connector"/>
|
||||
<property name="params">
|
||||
<map>
|
||||
<entry key="param" value="false"/>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
<service interface="ru.entaxy.esb.system.core.template.Template" ref="inTemplate"/>
|
||||
|
||||
<!--template out connector-->
|
||||
<bean id="outTemplate" class="ru.entaxy.esb.system.core.template.TemplateImpl">
|
||||
<property name="bundleContext" ref="blueprintBundleContext"/>
|
||||
<property name="templateName" value="example-out-connector"/>
|
||||
<property name="params">
|
||||
<map>
|
||||
<entry key="param" value="false"/>
|
||||
</map>
|
||||
</property>
|
||||
</bean>
|
||||
<service interface="ru.entaxy.esb.system.core.template.Template" ref="outTemplate"/>
|
||||
</blueprint>
|
||||
----
|
||||
|
||||
xref:../core/system-managment/Users-manual-System-management.adoc[Информация о создании коннекторов со стороны пользователя]
|
BIN
documentation/connectors/db-connector/deployment_schema.png
Normal file
After Width: | Height: | Size: 169 KiB |
86
documentation/connectors/naming_service_headers.adoc
Normal file
@ -0,0 +1,86 @@
|
||||
= Используемые служебные заголовки Entaxy
|
||||
|
||||
ENTAXY_ - глобальный формат заголовков, который используется не только в рамках коннектора. Используется во всём процессе прохождения пакета, так же может быть принят извне.
|
||||
|
||||
NTX_ - внутренний формат заголовков в конкретном коннекторе, носит служебный характер.
|
||||
Например _NTX_Origin_ - служит для идентификации имени контура шины при прохождении пакета через мост.
|
||||
|
||||
|===
|
||||
|Имя заголовка |Описание |Возможные значения |Обязательность
|
||||
|
||||
|X-ForwardedUser
|
||||
|логин аккаунта, проставляется с помощью _nginx_
|
||||
|
|
||||
|true
|
||||
|
||||
|X-ForwardedUserId
|
||||
|внутренний id аккаунта, проставляется с помощью _ru.entaxy.esb.system.auth.basic.interceptor.SystemInterceptor_
|
||||
|
|
||||
|true
|
||||
|
||||
|X-SystemName
|
||||
|имя системы, полученное при авторизации с помощью _ru.entaxy.esb.system.auth.basic.interceptor.SystemInterceptor_
|
||||
|
|
||||
|true
|
||||
|
||||
|X-SystemUuid
|
||||
|uuid системы, полученное при авторизации с помощью _ru.entaxy.esb.system.auth.basic.interceptor.SystemInterceptor_
|
||||
|
|
||||
|true
|
||||
|
||||
|X-SystemId
|
||||
|внутренний id системы, полученное при авторизации с помощью _ru.entaxy.esb.system.auth.basic.interceptor.SystemInterceptor_
|
||||
|
|
||||
|true
|
||||
|
||||
|ENTAXY_EndpointName
|
||||
|Имя коннектора, через который было получено сообщение
|
||||
|US-SOAP, US-File, US-JMS, ....
|
||||
|true
|
||||
|
||||
|ENTAXY_ConnectorType
|
||||
|Тип коннектора, через который было получено сообщение
|
||||
|uniform-service
|
||||
|true
|
||||
|
||||
|ENTAXY_ConnectorName
|
||||
|Имя коннектора, через который было получено сообщение
|
||||
|
|
||||
|true
|
||||
|
||||
|ENTAXY_Source
|
||||
|Имя отправителя
|
||||
|
|
||||
|true
|
||||
|
||||
|ENTAXY_SourceType
|
||||
|Tип отправителя
|
||||
|system.name, system-group.name, queue.name, topic.name
|
||||
|false
|
||||
|
||||
|ENTAXY_Destination
|
||||
|Имя получателя
|
||||
|
|
||||
|false
|
||||
|
||||
|ENTAXY_DestinationType
|
||||
|Tип получателя
|
||||
|system.name, system-group.name, queue.name, topic.name
|
||||
|false
|
||||
|
||||
|ENTAXY_Priority
|
||||
|Приоритет сообщения
|
||||
|0-9
|
||||
|false
|
||||
|
||||
|ENTAXY_ContentType
|
||||
|Тип сообщения
|
||||
|application/xml, message/external-body
|
||||
|false
|
||||
|
||||
|ENTAXY_EmptyContent
|
||||
|Является ли сообщение пустым
|
||||
|true; false
|
||||
|false
|
||||
|===
|
||||
|
BIN
documentation/connectors/uniform-exchange-service/US-active.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
documentation/connectors/uniform-exchange-service/US.png
Normal file
After Width: | Height: | Size: 44 KiB |
@ -0,0 +1,76 @@
|
||||
= Активный режим коннектора
|
||||
|
||||
image::US-active.png[]
|
||||
|
||||
== Сервис для отладки активного коннектора
|
||||
|
||||
Поднимается на endpoint _/active_connector_test_consumer_
|
||||
при выставленной настройке _active.mode.dev=true_ в файле конфигураций _uniform.service.support.cfg_
|
||||
|
||||
|
||||
== Requests Examples
|
||||
|
||||
POST http://192.168.122.83:8181/cxf/uniform-exchange
|
||||
|
||||
==== SEND MESSAGE:
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.entaxy.ru/ExchangeTypes/1.0">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ns:packets>
|
||||
<ns:packet>
|
||||
<ns:header>
|
||||
<ns:messageUUID>b7e6aab7-8f02-443c-8f67-e2d638dd4da0</ns:messageUUID>
|
||||
<ns:source>
|
||||
<ns:id>s1</ns:id>
|
||||
</ns:source>
|
||||
<ns:destination>
|
||||
<ns:id>s2</ns:id>
|
||||
</ns:destination>
|
||||
</ns:header>
|
||||
<ns:content>
|
||||
<test>
|
||||
<hello_world/>
|
||||
</test>
|
||||
</ns:content>
|
||||
</ns:packet>
|
||||
</ns:packets>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>
|
||||
----
|
||||
|
||||
==== GET MESSAGE:
|
||||
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.entaxy.ru/ExchangeTypes/1.0">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ns:request>
|
||||
<ns:destination>
|
||||
<ns:id>s2</ns:id>
|
||||
<ns:type>system.name</ns:type>
|
||||
</ns:destination>
|
||||
<ns:limitCount>1</ns:limitCount>
|
||||
<ns:limitSize>0</ns:limitSize>
|
||||
</ns:request>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>
|
||||
----
|
||||
|
||||
==== ACK MESSAGE:
|
||||
|
||||
[source,xml]
|
||||
----
|
||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.entaxy.ru/ExchangeTypes/1.0">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ns:uuids>
|
||||
<ns:uuid>{{message_uuid}}</ns:uuid>
|
||||
</ns:uuids>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>
|
||||
----
|
@ -0,0 +1,35 @@
|
||||
= IGNITE
|
||||
|
||||
IgniteAggregationRepository сделано на основе JdbsAggregationRepository
|
||||
документация https://help.talend.com/reader/Uc2IlRuFVfGrjaFPdRI7kA/fBdqK2kf6iIkLHQf9nLh6g
|
||||
|
||||
Есть некоторые внутренние баги karaf, которые не позволяют установить некоторые ignite фичи в караф
|
||||
https://github.com/apache/ignite/blob/fd921a233d35408883695419b6f9979ac674d1b9/modules/osgi-karaf/src/main/resources/features.xml#L87
|
||||
|
||||
В карафе поднимается ignite, с рабочей директорией, прописанной в ru.entaxy.esb.ignite.cfg,
|
||||
в параметре ignite.work.directory.path. Это место, где игнайт
|
||||
создает для себя все, что нужно, и будет хранить данные.
|
||||
|
||||
Ignite настроен с сохранением персисетнтности данных(сохранением их на диск) и
|
||||
созданием реплицации(бэкапов) на других узлах кластера.(при потере одной ноды,
|
||||
другие восстановят данные, которе хранились на текущем узле)
|
||||
|
||||
IGNITE_QUIET=false - параметр необходимый для того, чтобы игнайт не писал информацию о себе в лог,
|
||||
для того что бы параметр применился, необходимо выставить setGridLogger,
|
||||
смогла установить в караф только JclLogger.
|
||||
|
||||
**AggregationProcessor**
|
||||
|
||||
AggregationProcessor стандартный, не расчитан на работу в кластере из-за чего пришлось вытаскивать исходники
|
||||
и редактировать сам процессор.(AggregationProcessorWithRestoreTimeout)
|
||||
Т к теперь AggregationProcessor вызывается как bean, а не как стандартный камеловский процессор,
|
||||
то процесс старта и остановки происходит в отличном порядке.
|
||||
|
||||
Для работы к кластере:
|
||||
- добавлен механизм восстановления работы таймаутов на других нодах,
|
||||
- отредактирован механизм удаления сообщения из репозитория(возникало состояние гонки и появлялись дубликаты),
|
||||
- исправлен механизм продолжения работы с "застрявшими" сообщениями (recoverTask из таблицы _completed)
|
||||
- добавлен безопасный механизм забора сообщений из очереди(восстановление сообщения в очереди, если не пришло подтверждение)
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 51 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 81 KiB |
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 78 KiB |
@ -0,0 +1,89 @@
|
||||
= Инструкция для работы с шиной через универсальный коннектор
|
||||
|
||||
=== Преднастройка окружения
|
||||
|
||||
. Скачать и установить postman(https://www.postman.com/downloads/).
|
||||
. Импортировать коллекцию запросов и окружение в postman
|
||||
|
||||
Далее показано как импортироваться коллекцию запросов и окружение в postman Version 8.11.1, если стоит другая версия и возникли сложности с инструкцией, то обратитесь к документации postman(https://learning.postman.com/docs/getting-started/importing-and-exporting-data/).
|
||||
|
||||
=== Импорт коллекции запросов и окружения в postman
|
||||
|
||||
* Если вы на домашней странице postman, то нажмите _Import file_, как показано ниже на скрине.
|
||||
|
||||
image::img/photo5298499320133302025.jpg[]
|
||||
|
||||
* Если вы не на домашней странице postman, то нажмите _File_, _Import..._, как показано ниже на скрине.
|
||||
|
||||
image::img/photo5298499320133302031.jpg[]
|
||||
|
||||
* Далее откроется окно с импортом файла, где нужно нажать на _Upload Files_ и импортировать файлы, по одному или сразу оба(xref:postman/uniform-connector.postman_environment.json[Окружение], xref:postman/uniform-connector.postman_collection.json[Коллекция запросов])
|
||||
|
||||
image::img/photo5298499320133302028.jpg[]
|
||||
|
||||
* Или можно импортировать сразу всю папку с файлами(xref:postman/uniform-connector.postman_environment.json[Окружение], xref:postman/uniform-connector.postman_collection.json[Коллекция запросов])
|
||||
|
||||
image::img/photo5298499320133302034.jpg[]
|
||||
|
||||
image::img/photo5298499320133302035.jpg[]
|
||||
|
||||
* Далее мы увидим импортированную коллекцию запросов слева и необходимо выбрать импортированное ранее окружение
|
||||
|
||||
image::img/photo5298499320133302038.jpg[]
|
||||
image::img/photo5298499320133302039.jpg[]
|
||||
|
||||
* Есть возможность настраивать параметры запросов, документация на данную тему(https://learning.postman.com/docs/sending-requests/managing-environments/)
|
||||
|
||||
image::img/photo5298499320133302041.jpg[]
|
||||
|
||||
* Коллекция запросов и окружение были успешно импортированы в postman и готовы к использованию, можно запустить все запросы в автоматическом режиме или запускать их в ручную по очереди
|
||||
|
||||
=== Запуск всех запросов в автоматическом режиме
|
||||
|
||||
* Необходимо нажать на _Run Collection_ в меню коллекции, как показано ниже
|
||||
|
||||
image::img/photo5298499320133302042.jpg[]
|
||||
image::img/photo5298499320133302043.jpg[]
|
||||
|
||||
* Можно увидеть успешное прохождение коллекции. При успешном прохождении коллекции тестов шина будет очищена. Если не подразумевалось данное поведение, то необходимо снять выделение с запросов(_Remove profile system1_, _Remove profile system2_, _Remove Account system1_, _Remove Account system2_)
|
||||
|
||||
image::img/photo5298499320133302044.jpg[]
|
||||
image::img/photo5298499320133302046.jpg[]
|
||||
|
||||
=== Запуск запросов в ручную по очереди
|
||||
|
||||
* Для запуска конкретного запроса нужно нажать на него в меню слева, затем откроется меню редактирования запроса, где можно посмотреть все параметры запроса и настроить его как необходимо и нажимая на кнопку _Send_ запрос отправляется на шину
|
||||
|
||||
image::img/photo5298499320133302047.jpg[]
|
||||
|
||||
=== Описание окружения
|
||||
|
||||
... _base_url_ - если запросы будут запускаться с машины находящейся с шиной, то данный параметр не нужно менять(http://localhost:8181/cxf), иначе заменить localhost:8181 на необходимый
|
||||
... _system1_id_ - имя/идентификатор системы, то как будет представлена система в шине(по умолчанию s1)
|
||||
... _system1Login_ - логин системы, то как будет аутентифицироваться система в шине(по умолчанию s1)
|
||||
... _system1Password_ - пароль системы, то как будет аутентифицироваться система в шине(по умолчанию s1)
|
||||
... _system2_id_ - имя/идентификатор системы, то как будет представлена система в шине(по умолчанию s1)
|
||||
... _system2Login_ - логин системы, то как будет аутентифицироваться система в шине(по умолчанию s1)
|
||||
... _system2Password_ - пароль системы, то как будет аутентифицироваться система в шине(по умолчанию s1)
|
||||
... _adminLogin_ - админская учетная запись, для произведения настроек в шине(по умолчанию admin)
|
||||
... _adminPassword_ - админская учетная запись, для произведения настроек в шине(по умолчанию admin)
|
||||
|
||||
=== Содержимое тестов
|
||||
. Коллекция запросов содержит следующие шаги:
|
||||
.. _Create profile system1_ - создание профиля системы 1, которая будет отправлять сообщения в шину
|
||||
.. _Create profile system2_ - создание профиля системы 2
|
||||
.. _Add Account system1_ - создание учетной записи для системы 1
|
||||
.. _Add Account system2_ - создание учетной записи для системы 2
|
||||
.. _Create uniform-service-in-connector_ - создание входящего коннектора к универсальному сервису для системы 1
|
||||
.. _Create uniform-service-out-connector_ - создание исходящего коннектора к универсальному сервису для системы 1
|
||||
.. _Create uniform-service-in-connector_ - создание входящего коннектора к универсальному сервису для системы 2
|
||||
.. _Get profile system1_ - запросы для проверки на корректное создания профиля системы1 и коннекторов к нему(uniform-service-in-connector)
|
||||
.. _Get profile system2_ - запросы для проверки на корректное создания профиля системы1 и коннекторов к нему(uniform-service-in-connector, uniform-service-out-connector)
|
||||
.. _Create permission_ - создание разрешения для отправки сообщений из системы 1 в систему 2
|
||||
.. _SEND_ - отправка тестового сообщения из системы 1 в систему 2
|
||||
.. _GET_ - получение тестового сообщения из системы 1 системой 2
|
||||
.. _ACK_ - отправка подтверждения получения сообщения системы 2(иначе сообщение будет восстановлено)
|
||||
.. _Remove profile system1_ - удаление из шины профиля системы 1 и всех связанных с ней коннекторов
|
||||
.. _Remove profile system2_ - удаление из шины профиля системы 2 и всех связанных с ней коннекторов
|
||||
.. _Remove Account system1_ - удаление учетной записи системы 1 из шины
|
||||
.. _Remove Account system2_ - удаление учетной записи системы 2 из шины
|
@ -0,0 +1,54 @@
|
||||
{
|
||||
"id": "527e5257-25b4-4246-ac5a-26b88e06eec8",
|
||||
"name": "uniform-connector",
|
||||
"values": [
|
||||
{
|
||||
"key": "base_url",
|
||||
"value": "http://localhost:8181/cxf",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "system1_id",
|
||||
"value": "s1",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "system2_id",
|
||||
"value": "s2",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "adminLogin",
|
||||
"value": "admin",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "adminPassword",
|
||||
"value": "admin",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "system1Login",
|
||||
"value": "s1",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "system1Password",
|
||||
"value": "s1",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "system2Login",
|
||||
"value": "s2",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"key": "system2Password",
|
||||
"value": "s2",
|
||||
"enabled": true
|
||||
}
|
||||
],
|
||||
"_postman_variable_scope": "environment",
|
||||
"_postman_exported_at": "2021-08-24T14:43:46.375Z",
|
||||
"_postman_exported_using": "Postman/7.36.5"
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
= Универсальный сервис(US)
|
||||
|
||||
Универсальный сервис разработан для корректного и единообразного взаимодействия с _Entaxy_ из _1С интеграции_.
|
||||
|
||||
image::US.png[]
|
||||
|
||||
=== US endpoint
|
||||
|
||||
Универсальный сервис выставлен с помощью soap (может быть заменен на любой другой способ обмена сообщения, например rest, с сохранением схемы), в котором 3 метода _sendPackets_, _getPackets_ и _confirmPackets_. US endpoint включает в себя: выставленный soap сервис, проверку на существование коннектора и отправку в коннектор(что верно и для uniform-service-service-endpoint)
|
||||
|
||||
=== US connector
|
||||
|
||||
Коннектор занимается обработкой полученного пакета.
|
||||
|
||||
- _sendPackets_ - шина анализирует пакет, создавая служебную информацию(такую как имя системы отправителя, имя и тип получателя и т д) и отправляет в выходную точку профиля.
|
||||
|
||||
- _getPackets_ - шина делает проверку служебной информации(такую как имя системы отправителя, имя и тип получателя и т д) и забирает сообщение из очереди, дополнительно отправляя его в агрегатор. Агрегатор необходим для гарантированной доставки пакета, если в течение заданного таймаута (по умолчанию - 10 минут) не придет подтверждение, то пакет будет считаться не доставленным и будет восстановлен в очереди.
|
||||
|
||||
- _confirmPackets_ - шина делает проверку служебной информации(такую как имя системы отправителя, имя и тип получателя и т д), достает пакет из соответствующего источника (если оно есть) и отдает его системе, дополнительно отправляя в агрегатор, который если собирает пару(пакет и подтверждение) считает его доставленным и удаляет из шины.
|
||||
|
||||
_Агрегатор_ может хранить сообщения в ignite и базе данных, для переключения режима работы агрегатора необходимо установить необходимый параметр acknowledge.aggregation.repository (по умолчанию - jdbcAggregationRepository) в uniform.service.support.cfg
|
||||
|
||||
https://help.talend.com/r/Bejd_\~iSyuyc~nF9XIgDIw/fBdqK2kf6iIkLHQf9nLh6g[Информация по jdbcAggregationRepository]
|
||||
|
||||
xref:ignite.adoc[Информация по igniteAggregationRepository]
|
||||
|
||||
=== US support
|
||||
|
||||
Необходим как вспомогательный элемент. Содержит в себе: настройку агрегатора, маршруты работы агрегатора, маршрут связанный с отправкой в систему в активном режиме коннектора.
|
||||
|
||||
== Режимы универсального сервиса:
|
||||
|
||||
- _Пассивный_ выражен в поднятом на стороне шины сервисе, который "пассивно" ждет запроса от системы.
|
||||
|
||||
- _Активный_ выражен в поднятом на стороне системы сервисе, который с некоторой периодичностью (настраивается при создании коннектора, по умолчанию 1m) опрашивает шина на предмет подготовленных сообщений, и, отправляет полученные сообщения в систему как только они пришли.
|
||||
|
||||
xref:active-mode.adoc#_активный_режим_коннектора[Информация по активному режиму работы универсального сервиса]
|
||||
|