initial public commit

This commit is contained in:
2021-09-06 17:46:59 +03:00
commit b744b08829
824 changed files with 91593 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View 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&amp;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[Информация о создании коннекторов со стороны пользователя]

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

View 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
|===

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@ -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>
----

View File

@ -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)
- добавлен безопасный механизм забора сообщений из очереди(восстановление сообщения в очереди, если не пришло подтверждение)

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

View File

@ -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 из шины

View File

@ -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"
}

View File

@ -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#_активный_режим_коннектора[Информация по активному режиму работы универсального сервиса]