Similar presentations:
Использование 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С:Шина данных.IDE20.
Концепция обмена данныхОбмен данными по объектный, каждое сообщение всегда содержит только один
объект данных.
Обмен выполняется через платформенный механизм сериализации XDTO с
использованием в качестве модели данных XDTO схемы конфигурации.
Для регистрации объектов подлежащих выгрузке используется служебный план
обмена с одним узлом.
Объект выгружается в шину всегда в одном экземпляре. Шина данных
осуществляет распространение объекта всем узлам получателям самостоятельно.
21.
Каналы данных сервиса интеграцииКаналы данных позволяют разделить получаемую информацию по видам и
обрабатывать ее независимо. Это приводит к увеличению скорости обмена
данными и повышению его отказоустойчивости, а также независимости потоков
данных друг от друга.
Маршрутизацией сообщений по каналам занимается 1С:Шина.
22.
Каналы данных сервиса интеграции23.
Сериализация данных при их отправке в шинуИспользуется механизм платформенной сериализации.
При отправке данных в заголовке сообщения указывается версия конфигурации
отправителя.
24.
Десериализация данных с учетом разных версийконфигурации отправителя и получателя
Типой механизм десериализации использует текущую конфигурацию к качестве
модели данных XDTO. Это приводит к тому, что при изменении реквизитов в
конфигурации отправителе, объект не сможет загрузиться в получателе.
Для решения этой проблемы:
Центральная база всегда обновляется на новый релиз первой.
Центральная база рассылает версию модели данных конфигурации всем
подчиненным базам через канал «модель». Сообщение с моделью данных
содержит номер версии конфигурации по которой построена модель.
Подчиненные базы сохраняют себе модель и используют ее при
десериализаци сообщений.
25.
Десериализация данных с учетом разных версийконфигурации отправителя и получателя
Выгрузка модели данных конфигурации в XML
26.
Десериализация данных с учетом разных версийконфигурации отправителя и получателя
27.
Десериализация данных с учетом разных версий конфигурацииотправителя и получателя. Последовательность загрузки.
28.
Процесс отправки данных на стороне платформы 1С29.
Процесс получения данных на стороне платформы 1С30.
Scrum - серебряной пули неСпасибо
существует
за внимание!
Дмитрий
ДмитрийКирилкин
Кирилкин
Ведущий
разработчик
1С
Аптечная
сеть «OVITA.RU»,
Владивосток
@Dumsik
ТорговаяТелеграм:
сеть Реми,
Владивосток