Привет! Меня зовут Владимир, я функциональный архитектор в SimbirSoft, работаю в проектах комплексной автоматизации предприятий на 1С. В этой статье хочу поделиться своими мыслями и выводами о программном продукте 1С:Шина: рассмотрим примеры ее применения, а также разберем плюсы и минусы.
Статья будет полезна техническим директорам или корпоративным архитекторам, которые рассматривают возможность использования 1С:Шина в своей IT-структуре.
Сейчас каждое предприятие либо уже находится в процессе цифровой трансформации, либо двигается в этом направлении, поэтому необходимо выбрать те программные продукты, которые позволяют эффективно решить определенные бизнес-задачи. В зависимости от конфигурации данных программных продуктов информационных систем (ИС) может быть довольно много, нередко больше десяти.
Компании со сложными IT-ландшафтами нуждаются в интеграции всех своих программных систем в единый информационный комплекс, к которому предъявляются следующие требования:
- Унификация интерфейса – обеспечение единого интерфейса для разных систем, что избавляет от необходимости разрабатывать уникальные интерфейсы для каждого приложения, а также упрощает и ускоряет разработку.
- Автоматизация интеграции новых членов – упрощение и ускорение процесса подключения различных систем и разработки новых приложений и сервисов предприятия.
- Администрирование IT-ландшафта предприятия – легкое обнаружение и разрешение ошибок в процессе интеграции.
- Простой мониторинг и управление – возможность администратора отслеживать и управлять процессами интеграции, а также быстро выявлять и устранять причины аварий.
- Масштабируемость и гибкость – легкая адаптируемость системы по мере роста компании, а также поддержание различных протоколов и форматов данных с множеством технологий интеграции.
- Возможность моделирования бизнес-процессов – автоматизация выполнения задач и улучшение эффективности организации.
- Управляемость системы за счет соединения всех потоков в единый центр для обработки и маршрутизации всем заинтересованным сторонам обмена.
- Контроль доступа и безопасность – надежный контроль доступа к данным при обмене и хранении данных.
Для интеграции всех систем очевидной становится проблема связи между ними, а именно управления потоками данных и обеспечение их надежного транспорта, как внутри предприятия, так и в случае связи с внешними источниками. Практически все системы на предприятии оперируют одними и теми же сущностями, либо порождают те, которые использует другая система.
Все эти условия и вызовы привели к появлению нового класса продуктов – шины данных, которые призваны: систематизировать управление связями между системой и их маршрутизацией, обеспечить качественный трансфер между системами и упростить интеграцию новых продуктов за счет универсальных коннекторов.
Исторически сложилось, что продукты от 1С широко распространены в СНГ. Логично, что фирма 1С, как один из наиболее крупных вендоров, не могла остаться в стороне. Активно развивая свою экосистему, она представила свое решение в классе ESB (Enterprise service bus). Продукт 1С:Шина способствует интеграции между собой как информационных баз 1С, используемых на предприятии, так и других ИС, в том числе и внешних.
Суть продукта и краткий технический разбор
Что же технически представляет из себя 1С:Шина? Это продукт класса «Сервисная шина предприятия» (ESB), который обеспечивает асинхронный обмен данных между различными ИС, созданными как на платформе 1С, так и поддерживающими распространенные технологии.
1С: Шина поддерживает интеграцию с такими известными и общепринятыми протоколами, как:
- JMS (Java Message Service), обеспечивающий интеграцию с SAP PI,
- AMQP c готовыми адаптерами для подключения к популярному брокеру сообщений Rabbit MQ,
- HTTPS, возможностью подключения к файловым хранилищам — сетевым дискам,
- FTP,
- веб-сервисами SOAP, JDBC (прямой обмен с внешними СУБД — MSSQL SERVER, PostgreSQL, возможность добавления JDBC-драйверов).
Давайте рассмотрим, как работает программа. В основе 1С:Шины лежит технология 1С:Элемент, являющаяся одной из последних и наиболее перспективных разработок компании.
После получения сообщения 1С:Шиной оно перемещается в хранилище на жестком диске и впоследствии удаляется из него только после получения подтверждения о доставке. Это гарантирует надежность доставки, например, при перебоях с электроэнергией. Сообщения остаются на диске и при возобновлении работоспособности 1С:Шины она будет пытаться доставить их получателю в соответствии с правилами интеграции.
Скорость обмена сообщениями зависит от множества факторов: производительности оборудования, сетевого окружения, на котором развернут сервер 1С:Шины, размера самого сообщения, условий трансформации и условий маршрутизации сообщений при передаче. Сценариев достаточно много, поэтому скорость может значительно отличаться, но в большинстве случаев это секунды или доли секунд.
Из существенных ограничений надо отметить, что коннекторы создают непосредственно разработчики вендора. Пользователи делятся на два основных вида: интерактивные и неинтерактивные. Если первая группа – это те, кто взаимодействует через интерфейс с системой, то вторая группа – это сами информационные системы, которые подключены к шине и обмениваются между собой сообщениями.
Предлагаю рассмотреть принцип работы 1С: Шина пошагово:
Рисунок 1. Схема работы с компонентами.
Для начала вам необходимо создать приложение, описать логику его работы в виде проекта. Приложение — это экземпляр одного прикладного решения «1С:Предприятие.Элемента». Оно представляет собой логически целостную систему, включающую проект (описание поведения прикладного решения), данные, а также дополнительную информацию, необходимую для администрирования. Приложение — это аналог информационной базы в платформе «1С:Предприятие». С помощью приложения организуется взаимодействие между информационными системами. В него включено все необходимое для функционирования интеграционных процессов. Для каждого приложения можно посмотреть статус, дату создания и перейти в среду разработки или консоль. В проект можно добавить элементы для описания функциональности его работы. Это могут быть:
И ряд других элементов, которые предназначены для решения конкретных прикладных задач. В приложении можно добавить участников интеграции, которые объединяются в группы — это члены информационного обмена, сформированные по принципу общности получения данных из интеграционной шины. Это могут быть как информационные базы 1С:Предприятие, так и любые приложения, поддерживающие протокол AMQP. К серверу 1С:Шины можно подключить внешние СУБД, в роли которых может выступать либо PostgreSQL или MSSQL Server. Для разработки такого приложения, как интеграционный механизм, вам требуется описать процесс интеграции в виде схемы, выбрав объекты и определив связи между ними, как на рисунке ниже:
Рисунок 2. Пример схемы интеграции
В инструменте поддерживается групповая разработка, есть возможность версионирования в Git, что стало стандартом в последнее время.
Наш опыт применения 1С:Шина
Теперь предлагаю рассмотреть применение инструмента на реальной практике. Поскольку мы работаем со многими крупными компаниями с большим количеством различных ИС, то в проектной деятельности часто используем решения ESB-класса.
В качестве примера предлагаю рассмотреть роль корпоративной шины в информационной системе компании.
Сложившийся пул систем в компании включал 1С:ERP, 1С:ЗУП, самописное решение для оперативного учета на 1С (более 50 отдельных баз), MDM-систему, корпоративный портал, сайт, клиентское мобильное приложение и внутреннее приложение для сотрудника.
Основной задачей было обеспечение гарантированной доставки информации при обмене между этими системами. При этом помимо довольно распространенных потоков, таких как получение НСИ из MDM-системы, требовалось организовать надежную передачу информации между мобильным приложением и базами оперативного учета. В результате мы внедрили шину и настроили процессы таким образом, чтобы многочисленные программные продукты на предприятии были синхронизированы между собой.
Для отражения в учете заработной платы между 1С:ERP и 1С:ЗУП важно было сохранить типовой вариант интеграции. Небольшая схема ниже иллюстрирует выбранный вариант внедрения, который позволил удовлетворить потребности компании. В дальнейшем после замены продукта на 1С на новый он безболезненно встраивается в текущую IT-архитектуру с помощью имеющихся коннекторов. Это подчеркивает удобство применения ESB-решения в корпоративном секторе, так как проекты изменений по продуктам могут идти параллельно и довольно долгое время.
Рисунок 3. Верхнеуровневая схема интеграции
В результате, помимо гарантированной доставки, появился единый центр управления всеми информационными потоками, а также значительно повысилось время отклика — крайне важное с точки зрения взаимодействия с клиентами и сотрудниками через мобильные приложения. Давайте рассмотрим сильные и слабые стороны 1С:Шины, чтобы лучше понять, нужно ли ее внедрять в вашу компанию.
Плюсы
- Надежность. Система гарантирует надёжный трансфер данных между системами, сводя к минимуму риски порчи или повреждения информации.
- Масштабируемость. Продукт легко масштабируется для работы с большими данными и большим количеством транзакций, что позволяет применять её в крупных организациях.
- Интеграция с другими продуктами 1С. Шина легко взаимодействует с остальными продуктами экосистемы 1С, (ERP/ЗУП/БП/КА и другие), что позволяет организовать консолидированную информационную систему.
- Простой и понятный интерфейс. Программа реализована на современной системе 1С Элемент, где интерфейс максимально упрощен и дает инструменты графического редактирования процессов.
- Большое количество коннекторов для связи с другими системами и форматов обмена данных. Система поддерживает различные форматы данных, такие как XML, JSON и прочие, что обеспечивает эластичность при обмене данными.
- Гибкая настройка. Пользователи могут настроить 1С:Шину под конкретные нужды предприятия, создавая собственные правила обмена данными.
- Открытый исходный код на русском языке. Большое количество разработчиков и развитое комьюнити позволяет снизить стоимость эксплуатации.
- Поддержка серьезного вендора. Продукт разрабатывается одним из лидеров рынка и регулярный выход релиз с добавлением функциональности.
Минусы
- Коннекторы с другими системами создаются только разработчиками решения. В сравнении с другими ESB, возможность создания новых коннекторов отсутствует, придется ждать новый релиз.
- Зависимость от экосистемы 1С. Для раскрытия потенциала решения необходимо использование наряду с другими системами продуктов 1С, что накладывает ограничения на стек. Если у вас нет 1С-систем, то многие преимущества продукта нереализуемы и другие решения выглядят более выигрышно.
- Трудоемкость интеграции с отдельными системами. Настройка связи с некоторыми информационными системами потребует определенных знаний и умений, что накладывает требования к квалификации персонала.
- Необходимость обучения. Несмотря на понятный и простой интерфейс, для полноценного и эффективного использования всех возможностей программного продукта потребуется обучение сотрудников, которые будут заниматься эксплуатацией системы.
1C:Шина в экосистеме 1С
- Коннекторы с другими системами создаются только разработчиками решения. В сравнении с другими ESB, возможность создания новых коннекторов отсутствует, придется ждать новый релиз.
- Зависимость от экосистемы 1С. Для раскрытия потенциала решения необходимо использование наряду с другими системами продуктов 1С, что накладывает ограничения на стек. Если у вас нет 1С-систем, то многие преимущества продукта нереализуемы и другие решения выглядят более выигрышно.
- Трудоемкость интеграции с отдельными системами. Настройка связи с некоторыми информационными системами потребует определенных знаний и умений, что накладывает требования к квалификации персонала.
- Необходимость обучения. Несмотря на понятный и простой интерфейс, для полноценного и эффективного использования всех возможностей программного продукта потребуется обучение сотрудников, которые будут заниматься эксплуатацией системы.
1C:Шина в экосистеме 1С
Из преимуществ мы знаем, что 1С обладает широкой линейкой решений для любых сфер бизнеса, и интеграция между ними была и остается сильной стороной. Традиционно 1С:Шину нельзя рассматривать в отрыве от поддерживающей его экосистемы.
Наиболее понятная визуализация представлена самой фирмой 1С:
Рисунок 4. Место продукта в экосистеме 1С
На текущий момент, пожалуй, это единственный пример работающей российской экосистемы софта для решения бизнес-задач.
Таким образом, в пространстве СНГ, где исторически учетные системы 1С сильно распространены, потенциал развития и применения 1С:Шина очень велик, ведь чем большее количество системы вы используете, тем больше выгода от внедрения решения.
Альтернативы
Конкурентная среда с 2022 года сильно изменилась, в связи с этим актуальными остались только отечественные решения, основанные на технологиях open source. Продуктов достаточно много и обзор рынка таких решений может стать отдельной темой, но я бы хотел выделить основных конкурентов:
Factor ESB – интеграционная шина, имеющая модульную архитектуру, которая включает брокер сообщений и менеджер очередей. Использует протокол FAR-P, разработана на основе решений с открытым исходным кодом (Java, Spring, Apache, HTML5)
UseBus – построена на OpenSource технологиях (Apache, Redis, MinioS3, Docker, Grafana etc). Имеет модульную архитектуру и более 100 адаптеров к различным системам, есть встроенные средства трансформации и конструктор интеграционных потоков.
Red Mule – продукт создан компанией ГенАйТи для высокоскоростного обмена данных в распределенных системах, использует Java в качестве интеграционного ядра, содержит шаблоны потоков данных для ETL, EDA, MDM, SOA. Есть готовые коннекторы к 1С, REST, MQ, SQL, консоль управления, редактор правил обмена.
Datareon – решение одноименной компании, построенное на .Net Core, является кросс-платформенным, развивается с 2014 года. В 2022 году вышла Datareon Platform, содержащая также MDM, ETL и EDW модули. Содержит готовые коннекторы и позволяет создавать свои.
Для всех решений характерна ориентация на высоконагруженные информационные системы, где важна скорость передачи сообщений и масштабируемость. Большая часть из них использует в своей основе компоненты open source-решений, но поддержкой такого крупного вендора как 1С похвастать не может, как и простотой конфигурирования за счет использования русского языка при разработке. Тем не менее, если в вашей IT-структуре нет продуктов от 1С и стоит задача напрямую заменить ESB-решение от покинувших РФ лидеров рынка, тогда можно обратить внимание на эти решения.
Нельзя не упомянуть практику использования в ИС предприятий брокеров сообщений в виде транспорта – наиболее популярными из них являются RabbitMQ и Kafka. Но важно помнить, что эти решения значительно проигрывают в функциональности решениям ESB-класса. А многие функции, например, маршрутизация, в зависимости от содержания, или трансформация сообщения, не осуществляются в принципе. Здесь стоит напомнить: интеграция с наиболее популярными брокерами RabbitMQ и Kafka в 1С:Шина доступна из коробки, что предоставляет возможность совместного использования продуктов и их достоинств.
Заключение
1С:Шина – это программный продукт, который предоставляет большие возможности для решения задачи интеграции между многочисленными информационными системами. Подходит для средних и крупных предприятий, имеющих или планирующих внедрить части экосистемы 1С, связав их с другими ИС. 1С:Шина активно развивается вендором, имеет развитое комьюнити специалистов и потенциал для широкого распространения. Все вышеперечисленные факторы отражаются на экономических выгодах использования продукта по сравнению с конкурентами.
Итак, резюмируем. Вам нужна 1С:Шина в следующих случаях:
- Если у вас несколько информационных систем на разных платформах, для которых нет готовых интеграций.
- В вашей организации несколько продуктов 1С и один или несколько из них требуется связать с системой на другой платформе.
- Системы используют одну и ту же информацию или пользуются преобразованной информацией из другой системы.
- Вам требуется преобразование или маршрутизация сообщений, включающих информацию, исходя из содержания (например, отправлять автоматически информацию о кадровом событии из источника кадровых данных (1С:ЗУП) в четыре другие системы, такие как 1С ERP, корпоративный сайт, WMS, MDM-система, которым требуется эта информация для обработки).
- У вас сформированы компетенции в части 1С для поддержки и настройки системы.
Спасибо за внимание!