Top.Mail.Ru
Заказать консультацию
специалиста 1С
Отправить заявку

Нажимая на кнопку, вы даете согласие на обработку своих персональных данных и соглашаетесь с политикой конфиденциальности.

1С:Шина - интеграции

Кадочникова Алена Посмотреть все статьи >> Консультант по внедрению 1С франчайзинговой сети "ИнфоСофт".
10.11.2022
3160
Время прочтения - 7 мин.
Заказать консультацию

Часто встречаются ситуации, когда корпоративные информационные комплексы состоят из информационных систем различных производителей (Рисунок 1), написанных на разных платформах и использующие разные протоколы обмена данными. В такой ситуации очевидным и естественным желанием является связать все системы, чтобы быстро и эффективно передавать информацию между ними.

1.jpg

Рисунок 1

 

Способы передачи данных между системами

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

  • Обмен файлами;

  • Использование отдельной общей базы данных, где хранится полная информация (Microsoft SQL Server, IBM Db2, PostgreSQL, Oracle Database, MySQL);

  • Вызов (в том числе удаленный) методов программного интерфейса одной системы из другой системы (API);

  • Обмен сообщениями систем класса сервисная шина предприятия (Enterprise Service Bus, сокращенно ESB или СШП). В марте 2020 года фирма 1С анонсировала новый продукт такого класса - «1С:Шина».

Почему не всегда устраивают первые три способа передачи данных?

Обмен файлами. При файловом обмене оперативность, с которой передаются данные, зависит от расписания выгрузки и загрузки. Интенсивная работа с большим количеством файлов может привести потере производительности. Файловый обмен позволяет выполнить интеграцию данных, но не позволяет выполнить функциональную интеграцию, то есть сами данные передаются, но системы при этом не взаимодействуют, и существует вероятность, что информация потеряется по дороге.

Наглядно такую информацию можно представить на картинке-паззле или детских кубиках. Когда мы отправляем объемный файл, он передается по частям в строгой последовательности, как кубики с нарисованной картинкой. Если в процессе перемещения кубиков с одного места на другой, кубик потерялся, перевернулся или переместился, картинка получится неполная или не будет понятно, что на ней. Так случается потеря данных при обменах между конфигурациями 1С, например, 1С:Бухгалтерия (БП) и 1С:Зарплата и управлением персоналом (ЗУП). Например, в ЗУП внесли данные нового сотрудника, и по регламентному заданию ЗУП выгружает их в БП, однако, из-за разницы в релизах или ошибке при передаче, БП данные не сохраняет. В итоге для синхронизации обеих баз, требуется полностью выгрузить справочник сотрудников из ЗУП в БП, что приводит к дополнительным нагрузкам на сервер и затратам времени.

Использование СУБД. При организации взаимодействия систем через прямое обращение к СУБД (Система управления базами данных) работоспособность интеграции может нарушиться из-за изменений в схеме передачи данных, например, из-за переноса программы на другой сервер, или изменений в протоколе передачи данных – такое может случиться, например, при обновлении одного из компонентов системы. Также могут возникнуть сложности с использованием лицензий СУБД, в случае запрета их использования сторонними системами или ограничения числа используемых подключений. Кроме того, нужно понимать, что в реальной жизни создание дополнительной базы данных для обмена с различными системами требует покупки дополнительных лицензий, проектирования архитектуры сети и даже покупки нового оборудования, что приводит к финансовым затратам и отражается на информационной безопасности компании.

Вызов методов программного интерфейса одной системы из другой (API) обеспечивает функциональную интеграцию, так как одна система непосредственно обращается к другой. API обеспечивает простоту использования, экономит время и средства, так как можно использовать один и тот же готовый протокол для большого числа приложений, понимающих его, и позволяет видеть актуальную информацию во всех связанных системах. Однако новые данные не сразу попадают к адресату. Передача данных тоже работает по регламентному заданию.

API – это способ передачи, он не хранит данные. Например, чтобы рассказать, что за дверью сидит кошка, можно написать словами «За дверью сидит кошка», можно нарисовать картинку с кошкой за дверью, можно изобразить кошку, как она сидит за дверью – и в принципе информация передана одна и та же, только способы разные, но сама кошка от этого в комнате не окажется. И если спросить у API про кошку сейчас – сидит ли она за дверью? API даст ответ в прошедшем времени, если его информация еще не обновилась. Кроме того, API одинаков для всех и набор его функций ограничен, поэтому индивидуальные задачи он не решает: например, он не ответит, какого цвета кошка за дверью, потому что этот функционал отсутствует в его программе.

Подпишитесь на дайджест!
Подпишитесь на дайджест, и получайте ежемесячно подборку полезных статей.

Нажимая на кнопку, вы даете согласие на обработку своих персональных данных и соглашаетесь с политикой конфиденциальности.

Сервисная шина предприятия «1С:Шина»

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

  1. дает возможность частого и быстрого взаимодействия небольшими сообщениями;

  2. сообщения при необходимости могут быть трансформированы для возможности получения другой системой без участия и уведомления отправителя и получателей;

  3. предоставляет возможность доставить одно сообщение множеству получателей в оригинальном или измененном виде без изменения логики работы отправителя;

  4. отправитель не должен ожидать ответа на свое сообщение, а должен быть готовым в любой момент времени принять сообщение и адекватно на него отреагировать.

В основе работы «1С:Шины» лежит принцип асинхронного обмена сообщениями. Асинхронность подразумевает, что система-отправитель не взаимодействует с системами-получателями, а взаимодействует только с посредником — «1С:Шиной». В свою очередь «1С:Шина» взаимодействует с получателями по мере их доступности и готовности. «1С:Шина» позволяет настраивать маршрутизацию передаваемых через нее сообщений, то есть по содержимому сообщения определять, какие из взаимодействующих систем должны получить это сообщение.

Если вернуться к примеру с кошкой, то можно представить, что в шину загружается несколько кошек для разных хозяев, которые хранятся в шине, как в питомнике, и раздаются хозяевам, по мере того, как они приходят. При этом для некоторых хозяев кошек могут трансформировать: подстричь, покрасить, изменить породу – чтобы хозяин точно узнал свою кошку и забрал. Все это позволяет сделать сервисная шина «1С:Шина».

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

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

«1С:Шина» гарантирует, что данные не потеряются при транспортировке. Это обеспечивается тем, что отправляемое сообщение сохраняется в информационной базе до тех пор, пока от внешнего сервиса интеграции (системы) не будет получено подтверждение того, что сообщение получено. Если в системе «1С:Шина» есть неполученные сообщения, она будет выполнять попытки доставить сообщения до тех пор, пока не будет получено подтверждение получения сообщения или сообщение не устареет. Подтверждение о получении сообщения происходит только после того, как информация сохраняется в базе получателя. Если во время процесса подтверждения произойдет сбой, то после восстановления работоспособности, система повторно отправит сообщение, поэтому важно, чтобы обработчик получения сообщений позволял получать одно и то же сообщение более одного раза. Если сообщение отправлено удачно ‑ оно удаляется из очереди сообщений. Если отправка не удалась ‑ сообщение остается в очереди до тех пор, пока не будет отправлено или не устареет, при этом оправка остальных сообщения в канал не выполняется, пока не будет выполнена отправка первого сообщения.

При настройке интеграции с «1С:Шиной» внешних сервисов интеграции (других систем) в конфигурации создается нужное количество объектов сервиса интеграции. Один объект – один сервис интеграции. Для каждого созданного сервиса интеграции создается список каналов, указываются имена каналов, направления их использования (входящий, исходящий) и их адреса. Для исходящих каналов необходимо реализовать программный код, для входящих каналов реализуется обработчик, который будет срабатывать при получении сообщения в конкретном канале конкретного сервиса интеграции. Каждая система имеет настройки интеграции, которые можно устанавливать или из встроенного языка 1С, или с помощью стандартной обработки 1С - «Управление сервисами интеграции».

«1С:Шина» работает в файловом режиме, однако это все же решение, предназначенное для клиент-серверного режима работы. В файловом варианте фоновые задания всегда выполняются последовательно. При работе клиент-серверного варианта все фоновые задания для каждого сервиса интеграции запускаются одновременно. Администратор может управлять его работой в удобном графическом интерфейсе (Рисунок 2, источник). 

2.jpg

Рисунок 2

Процесс настройки и эксплуатации продукта состоит из нескольких шагов, которые позволяют достаточно быстро и относительно просто выполнить настройку обмена сообщениями, а также контролировать уже запущенные к обмену потоки (Рисунок 3).

3.png

Рисунок 3

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

  • обмен сообщениями в виде файлов, сохраненных в файловой системе или на FTP-ресурсах;

  • обмен сообщениями, используя подключение к СУБД клиентской информационной системы по стандарту JDBC;

  • обмен данными по протоколу AMQP для подключения к внешним брокерам сообщений, например, Apache ActiveMQ Artemis, RabbitMQ;

  • выполнение HTTP-запросов к внешним системам для получения или отправки данных, вызовов REST API или WEB-сервисов.

Это снимает с IT-специалистов проблему несовместимости платформы 1С и других информационных систем. При этом обеспечивает высокую скорость работы (тысячи сообщений в минуту), высокую производительность за счет асинхронности обмена, и гарантирует сохранение данных на каждом отрезке пути от системы-отправителя до системы-получателя. 

Эти возможности позволяют одинаково успешно решать привычные задачи обмена данными и реализовывать более сложные сценарии взаимодействия между системами.

Со времени первого анонса сервиса «1С:Шина» прошло более 2-х лет, и за это время уже были осуществлены реальные интеграции продукта на предприятиях России. В 2021 году сервис «1С:Шина» был успешно интегрирован в корпоративную информационную систему на базе конфигурации «1С:Управление производственным предприятием» в нефтесервисной отрасли; использован для создания обменов между программными продуктами «1С:Университет», «1С:Бухгалтерия государственного учреждения» и «1С:Зарплата и кадры государственного учреждения» в образовательной деятельности. Также «1С:Шина» также выступила в качестве маршрутизатора и трансформатора сообщений из различных ИТ-систем, включающих информационные базы на платформе «1С:Предприятие», в финансовом секторе экономики. 

Использование финальной версии программного продукта «1С:Шина» доступно совместно с платформой «1С:Предприятие» версий 8.3.19.1399, 8.3.20.1590 и выше. С точки зрения лицензирования программный продукт «1С:Шина» имеет 3 вида электронной поставки:

  • 1С:Шина для 100 пользователей. Электронная поставка;

  • 1С:Шина для 500 пользователей. Электронная поставка;

  • 1С:Шина без ограничений на число пользователей. Электронная поставка.

Один экземпляр «1С:Шины» можно установить только на один сервер.

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

В состав программного продукта «1С:Шина» (электронная поставка) входят:

  • дистрибутив, содержащий сервер «1С:Шины» и среду разработки, а также документацию к программному продукту;

  • именное лицензионное соглашение на использование программного продукта указанным в документе юридическим лицом;

  • пин-код для регистрации программного продукта на портале информационно-технологического сопровождения 1С:ИТС portal.1c.ru;

  • купон для оформления договора информационно-технологического сопровождения 1С:ИТС на льготных условиях.

При покупке нескольких лицензий количество пользователей суммируется. При этом фирма «1С» предусмотрела льготный апгрейд для перехода на более емкие лицензии, когда при покупке лицензии, позволяющей подключать больше пользователей, можно получить скидку в размере ранее купленной лицензии, но не более 50%. Приобрести программный продукт «1С:Шина» в настоящее время можно только у официальных франчайзи 1С, выполняющих условия партнерского договора, к которым относится и франчайзинговая сеть «ИнфоСофт» (г.Новосибирск).


Заказать консультацию специалиста 1С
Оставьте заявку и наши эксперты проконсультируют вас по данной статье.
Отправить заявку

Нажимая на кнопку, вы даете согласие на обработку своих персональных данных и соглашаетесь с политикой конфиденциальности.

Рассказать друзьям
1C:ERP 1С:Бухгалтерия 1С:ЗУП 1С:УТ
Вам может быть интересно: