Использование 1С: Шина для обмена

1.

Использование
1С:Шина для
обмена
Scrum - серебряной
пули
не
данными в распределенной базе 1С
существует
из 120 узлов
Дмитрий Кирилкин
Дмитрий Кирилкин
Ведущий разработчик 1С
Аптечная
сеть
«OVITA.RU»,
Владивосток
Торговая сеть Реми, Владивосток

2.

Дисклеймер
Технология о которой рассказывается в
докладе находится в состоянии
«Доказательство возможности
работы».Все вопросы о скорости и
стабильности работы скорее всего
останутся без ответа.

3.

О проекте
Обмен данными разрабатывается в рамках создания на
базе платформы 1С Предприятие 8.3 решения для
автоматизации большой аптечной сети.
Конфигурация 1С создается с «нуля».

4.

Требования к системе обмена данными
Топология обмена данными "Звезда".
Условием выгрузки данных в определенную подчиненную базу является
"Подразделение».
Подчиненная информационная база может обслуживать несколько
подразделений.
Все справочники и документы поступают в подчиненные базы только из
центральной.
Документы выгружаются вместе с движениями.
Обмен данными (в большинстве случаев) должен корректно работать в случае
отличающихся метаданных объектов в центральной базе и подчиненных.
Надежная и быстрая работа обмена данными в системе более чем с 100 узлами.
Планируемая емкость системы >200 узлов.

5.

Возможные варианты реализации
Платформенный механизм распределенных информационных баз (РИБ)
Конвертация данных 2/3
Бит.Адаптер
Полностью самописный обмен
XDTO и 1С:Шина данных

6.

Платформенный механизм распределенных
информационных баз (РИБ)
Плюсы
Готовое решение из коробки.
Платформенная сериализация при выгрузке/загрузке данных.
Минусы
Обмен данными работает только в полностью идентичных конфигурациях.
Плохая масштабируемость. Ожидания на блокировках.

7.

Конвертация данных 2/3
Плюсы
Знакомая и проверенная технология.
Возможность конвертации данных при выгрузке. Конфигурации могут
отличаться.
Минусы
Необходимо поддерживать правила в актуальном состоянии.
Плохая масштабируемость. Ожидания на блокировках.

8.

Бит.Адаптер
Плюсы
Высокая скорость работы.
Использование брокера сообщений RabbitMQ.
Возможность конвертации данных при выгрузке. Конфигурации могут
отличаться.
Возможность адаптации под свои нужды.
Минусы
Не стабильная работа внешней компоненты для взаимодействия с RabbitMQ.
Необходимо поддерживать правила в актуальном состоянии.
Не умеет выгружать движения.
Дорого. Нужна сертификация специалиста для покупки продукта.

9.

Самописный обмен
Минусы
Длительные сроки разработки, большие риски.

10.

1С:Шина данных
Плюсы
Транспортная система и маршрутизация вынесены в отдельное ПО.
Нативная поддержка в платформе.
Событийная интеграция.
Гарантированная доставка сообщений. Планы обмена больше не нужны.
Минусы
1С:Шина это только транспортная система. Выгрузку и загрузку данных нужно
разрабатывать самостоятельно.
Цена.
Новый продукт.

11.

1С:Шина данных.Нативная поддержка в платформе

12.

1С:Шина данных.Нативная поддержка в платформе
Если метод ОтправитьСообщение() вызван внутри транзакции, то реальная отправка сообщения произойдет
только после фиксации этой транзакции.

13.

14.

1С:Шина данных.Нативная поддержка в платформе

15.

1С:Шина данных.Что может?
Взаимодействие с:
1С Предприятие
Отправка и чтение сообщений из файловой системы.
Отправка и чтение сообщений из FTP.
Отправка и чтение из RabbitMQ.
Можно выполнять HTTP-запросы для получения или отправки данных, для
вызовов их REST API или WEB-сервисов
JMS-брокеры Apache ActiveMQ Artemis
AMQP-системы.
Чтение и запись из СУБД MsSQL.

16.

1С:Шина данных.Что может?
Маршрутизация сообщений по алгоритму написанному на языке 1С:Исполнитель
Трансформация сообщений. Например XML->JSON
Гарантированная доставка

17.

1С:Шина данных.Что может?

18.

1С:Шина данных.Что может?

19.

1С:Шина данных.IDE

20.

Концепция обмена данных
Обмен данными по объектный, каждое сообщение всегда содержит только один
объект данных.
Обмен выполняется через платформенный механизм сериализации XDTO с
использованием в качестве модели данных XDTO схемы конфигурации.
Для регистрации объектов подлежащих выгрузке используется служебный план
обмена с одним узлом.
Объект выгружается в шину всегда в одном экземпляре. Шина данных
осуществляет распространение объекта всем узлам получателям самостоятельно.

21.

Каналы данных сервиса интеграции
Каналы данных позволяют разделить получаемую информацию по видам и
обрабатывать ее независимо. Это приводит к увеличению скорости обмена
данными и повышению его отказоустойчивости, а также независимости потоков
данных друг от друга.
Маршрутизацией сообщений по каналам занимается 1С:Шина.

22.

Каналы данных сервиса интеграции

23.

Сериализация данных при их отправке в шину
Используется механизм платформенной сериализации.
При отправке данных в заголовке сообщения указывается версия конфигурации
отправителя.

24.

Десериализация данных с учетом разных версий
конфигурации отправителя и получателя
Типой механизм десериализации использует текущую конфигурацию к качестве
модели данных XDTO. Это приводит к тому, что при изменении реквизитов в
конфигурации отправителе, объект не сможет загрузиться в получателе.
Для решения этой проблемы:
Центральная база всегда обновляется на новый релиз первой.
Центральная база рассылает версию модели данных конфигурации всем
подчиненным базам через канал «модель». Сообщение с моделью данных
содержит номер версии конфигурации по которой построена модель.
Подчиненные базы сохраняют себе модель и используют ее при
десериализаци сообщений.

25.

Десериализация данных с учетом разных версий
конфигурации отправителя и получателя
Выгрузка модели данных конфигурации в XML

26.

Десериализация данных с учетом разных версий
конфигурации отправителя и получателя

27.

Десериализация данных с учетом разных версий конфигурации
отправителя и получателя. Последовательность загрузки.

28.

Процесс отправки данных на стороне платформы 1С

29.

Процесс получения данных на стороне платформы 1С

30.

Scrum - серебряной пули не
Спасибо
существует
за внимание!
Дмитрий
ДмитрийКирилкин
Кирилкин
Ведущий
разработчик

Аптечная
сеть «OVITA.RU»,
Владивосток
@Dumsik
ТорговаяТелеграм:
сеть Реми,
Владивосток
English     Русский Правила