«1С:Шина» — это программный продукт класса «Сервисная шина предприятия» (англ. Enterprise Service Bus, ESB), который обеспечивает асинхронный обмен сообщениями между различными информационными системами, работающими как на платформе «1С:Предприятие», так и на других платформах.
Назначение и принцип работы
1С:Шина выступает в роли централизованного посредника, который перенаправляет обмены данными между различными системами через себя, предоставляя единую точку входа и выхода для всех информационных систем, а также единый инструмент управления и мониторинга.
Асинхронность обмена означает, что система-отправитель не взаимодействует напрямую с системой-получателем, а взаимодействует только с посредником — 1С:Шиной. Такой подход позволяет отправлять сообщения, даже когда их адресат временно недоступен или не готов обрабатывать сообщения.
Под сообщением понимается произвольный набор данных, передаваемых между участниками обмена. В общем случае посредник — 1С:Шина — может не знать, что содержится в сообщении, какова его структура, формат данных и т.д..
Сценарии интеграции
1С:Шина позволяет реализовать различные сценарии интеграции информационных систем:
Интеграция по данным — интегрируемые системы обмениваются данными, которые они умеют обрабатывать. Каждая система получает данные в нужном ей формате и использует их в своих бизнес-процессах.
Интеграция по функциональности — одни информационные системы используют функционал других систем, передавая им данные для обработки и получая результат по принципу «запрос — ответ».
В обоих сценариях 1С:Шина передаёт сообщения от места их возникновения всем заинтересованным системам.
Основные возможности
1С:Шина предоставляет широкий набор функциональных возможностей:
Асинхронный обмен сообщениями:
- Передача данных от источника к приёмнику в любой момент времени
- Сообщения не ожидают завершения предыдущей передачи, а передаются немедленно
- Отправитель не блокируется в ожидании ответа получателя
Гарантированная доставка сообщений:
- Сообщения хранятся в специальном персистентном хранилище на физическом диске сервера 1С:Шины
- Сообщение хранится в приложении до тех пор, пока 1С:Шина не получит подтверждение о том, что получатель его принял
- Даже при сбое электропитания или выключении сервера сообщения сохраняются и будут доставлены после восстановления работоспособности
- Недоставленные сообщения хранятся в специальном канале недоставленных сообщений для последующего анализа и повторной отправки
Маршрутизация сообщений:
- Система динамически определяет, каким системам нужно доставить конкретное сообщение
- Одно сообщение может быть направлено в несколько систем-приёмников, обеспечивая параллельную передачу данных
- Возможность автоматического определения маршрута «на лету» в зависимости от содержания сообщения
Трансформация сообщений:
- Возможность преобразовывать сообщения из одного формата в другой в процессе обмена
- Полученные от системы-источника сообщения можно изменить перед передачей в систему-приёмник
- Адаптация данных в соответствии с требованиями системы-приёмника, включая изменение структуры данных, переименование полей, преобразование форматов
Поддержка различных способов подключения:
- Прямое подключение к базам данных, включая базы 1С:Предприятие через механизм сервисов интеграции
- Запросы к СУБД (системам управления базами данных)
- HTTP-протокол для взаимодействия с веб-сервисами
- RabbitMQ — популярный брокер сообщений с открытым исходным кодом
- Протокол AMQP (Advanced Message Queuing Protocol) для обмена с внешними брокерами сообщений
- Стандарт JMS (Java Message Service)
- Передача данных через файлы — обмен данными через файловую систему
- FTP-протокол для файловых операций
- SOAP веб-сервисы — возможность вызывать внешние SOAP-сервисы и обрабатывать полученные ответы
Архитектура и компоненты системы
Система 1С:Шина состоит из нескольких ключевых компонентов:
Сервер 1С:Шины:
- Основной компонент, который исполняет приложения
- Каждое приложение передаёт сообщения от одной или нескольких информационных систем-источников к одной или нескольким системам-приёмникам
- Использует внешнюю СУБД для хранения служебных данных (значения параметров процесса интеграции, списки пользователей и т.д.)
- Поддерживает файловую СУБД (по умолчанию), MS SQL Server и PostgreSQL
Среда разработки:
- Компонент, позволяющий создавать, модифицировать и отлаживать проекты
- Веб-среда разработки, доступная через браузер
- Декларативное создание схем интеграции
- Написание и отладка кода на встроенном языке 1С:Элемент
- Поддержка групповой разработки и совместной работы над проектами
- Визуальный редактор схем процессов интеграции
Панель управления:
- Графический веб-интерфейс для взаимодействия с сервером
- Доступна по адресу
localhost:9090/console - Позволяет настраивать и обслуживать сервер
- Создавать и обслуживать приложения
- Загружать проекты
- Управлять пользователями
- Выполнять административные задачи, такие как обновление конфигураций и изменение различных настроек
- Мониторинг состояния компонентов системы
Хранилище сообщений:
- Сообщения хранятся в специальном хранилище на физическом диске компьютера, на котором установлен сервер 1С:Шины
- После получения сообщение помещается в персистентное хранилище и удаляется только после получения подтверждения о доставке
Процесс интеграции и проекты
Важнейшим понятием 1С:Шины является проект:
- Проект полностью описывает всю логику приложения, которое будет исполняться сервером
- Имеет имя и версии (например, «Личный кабинет, версия 1»)
- Разработчик создаёт и изменяет проект в среде разработки, затем запускает и отлаживает его на сервере
- После готовности версия проекта публикуется на сервере
Процесс интеграции — центральный элемент проекта:
- Основная часть процесса интеграции — схема — состоит из узлов и связей
- Наглядно показывает движение сообщений от информационных систем-источников к информационным системам-назначениям
- Узлы схемы представляют различные типы операций: каналы источников, каналы назначений, трансформации, маршрутизаторы и т.д.
- Группы участников объединяют информационные системы для совместной обработки сообщений
Контроль и мониторинг
1С:Шина предоставляет развитые средства контроля и мониторинга:
- Контроль обмена сообщениями — отслеживание статуса каждого сообщения в процессе передачи
- Метрики производительности — статистика по количеству обработанных сообщений, времени доставки и т.д.
- Журналы событий — подробные логи всех операций для анализа и отладки
- Журналы сервера — системные события и ошибки сервера
- Хранение недоставленных сообщений — возможность расследования ошибки и ручной отправки
Практические примеры применения
1С:Шина используется в различных сценариях:
Централизованный буфер транспорта данных:
- 1С:Шина находится в центре, и через неё осуществляется обмен данными всех информационных систем
- Единое окно управления информационными потоками
- Упрощённая техническая поддержка и прозрачность правил маршрутизации
Внедрение MDM-системы (Master Data Management):
- Создание отдельной «мастер-системы» для управления нормативно-справочными данными
- Автоматическое распространение данных из «мастер-системы» на связанные системы
Интеграция разнородных систем:
- Интернет-магазин и 1С — информация о новом заказе сразу появляется в 1С
- CRM и 1С — данные о новом клиенте моментально становятся доступны для выставления счетов
- Склад и 1С — информация о поступлении товара оперативно отражается в учёте
- ERP-система, CRM-система и внешняя система для отслеживания поставок
Постепенное внедрение 1С:ERP по функциональным блокам:
Производительность
Производительность 1С:Шины зависит от множества факторов: оборудования, сетевого окружения, размера сообщений, сложности трансформации и условий маршрутизации. В тестовых условиях через механизм сервисов интеграции удавалось отправлять в 1С:Шину около 20 000 сообщений размером 256 КБ каждую минуту, с чем система успешно справлялась.
Преимущества использования
Гибкость и масштабируемость:
- Легко настраивать правила маршрутизации сообщений
- Просто добавлять новые приложения и системы в интеграционный ландшафт
- Снижение сложности и затрат на интеграцию
Надёжность:
- Гарантированная доставка сообщений даже при сбоях
- Защита от потери данных благодаря персистентному хранилищу
Централизованное управление:
- Все настройки маршрутов, правил безопасности и трансформаций сконцентрированы в одном месте
- Упрощённое сопровождение и поддержка
Минимизация прямых связей:
- Системы взаимодействуют не напрямую, а через шину, что минимизирует количество точек интеграции
- Обеспечивает гибкость и упрощает добавление новых систем
Современные инструменты разработки:
- Веб-среда разработки на основе технологии 1С:Элемент
- Визуальное проектирование схем интеграции
- Поддержка совместной разработки
Отличия от других ESB-продуктов
1С:Шина использует механизм сервисов интеграции для работы с системами 1С. Типовые конфигурации 1С могут дорабатываться минимально для подключения к шине благодаря встроенной поддержке этого механизма.
1С:Шина создана на базе технологии 1С:Предприятие.Элемент, что обеспечивает использование современного языка программирования 1С:Элемент для написания логики интеграции.


