Сервисы интеграции

Сервисы интеграции

Для организации взаимодействия различных информационных систем можно использовать, в том числе, обмен сообщениями систем класса сервисная шина
предприятия (Enterprise Service Bus, сокращенно ESB или СШИ). Под термином "сервисная шина предприятия" понимается программное обеспечение, обеспечивающее централизованный и унифицированный событийно-ориентированный обмен сообщениями между различными информационными системами на принципах сервисно-ориентированной архитектуры.

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

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

  • Внешний сервис интеграции ‑ продукт класса ESB, к которому выполняется подключение системы "1С:Предприятие". "1С:Предприятие" подключается к внешнему сервису интеграции с помощью протокола AMQP (https://www.amqp.org/ [https://www.amqp.org/]). Адаптером для внешнего сервиса интеграции в объектной модели "1С:Предприятие" является объект Сервис интеграции.
  • Канал ‑ логический адрес в системе обмена сообщениями. Канал предназначен для передачи сообщений определенного типа. Канал может быть:
  • Входящим ‑ используется для получения сообщений от внешнего сервиса интеграции.
  • Исходящим ‑ используется для отправки сообщений внешнему сервису интеграции.
  • Канал не может быть двунаправленным (одновременно и входящим и исходящим).
  • Сообщение ‑ это минимальный и неделимый элемент обмена. Сообщение включает в себя собственно данные (в любом поддерживаемом формате) и заголовок сообщения, который используется внешним сервисом интеграции. Сообщение имеет определенное время жизни, которое используется сервисом интеграции во время доставки сообщения.
  • При работе с сообщениями следует помнить о следующих особенностях:

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

    Внимание! Внешний сервис интеграции не входит в комплект поставки "1С:Предприятия" и распространяется отдельно.

    Взаимодействие с внешним сервисом интеграции выполняется с гарантированной доставкой сообщения, что означает:

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

    Для использования внешнего сервиса интеграции необходимо:

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