Сервис обмена сообщениями, управляемый процессами

Сервис обмена сообщениями, управляемый процессами (англ. process driven messaging service, PDMS) — это сервис, ориентированный на процессы и предназначенный для обмена сообщениями или данными. В таком сервисе задачи (jobs) и триггеры могут объединяться для создания рабочего процесса (workflow) передачи сообщения[1].[2] В отличие от традиционных систем обмена сообщениями, которые функционируют как пассивные каналы для передачи данных, PDMS является процессно-ориентированным, и логика перемещения данных изначально заложена в самом сервисе[1].

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

Сервис обмена сообщениями, управляемый процессами, осуществляет обмен сообщениями и данными между системами, приложениями или людьми на основе событийно-управляемых цепочек процессов[3].

Структура

Сервис обмена сообщениями, управляемый процессами, — это сервис, в котором задачи и триггеры объединяются для создания рабочего процесса для сообщения; этот рабочий процесс можно рассматривать как отдельный процесс.

Рабочий процесс (workflow) исполняется при срабатывании триггера. Триггер активирует одну или несколько задач, которые в свою очередь могут запускать другие задачи. Даже если все задачи выполнены, рабочий процесс остаётся активным и ожидает повторного срабатывания[4]

Рабочие процессы

Рабочий процесс (workflow) в рамках PDMS служит «обёрткой» для триггеров и задач, обеспечивая последовательность действий и событий, которую можно многократно запускать без необходимости повторно её настраивать. Такой процесс выступает в роли контейнера: он группирует статусы и действия — например, переводит запись из одного состояния в другое.[5]. Помимо триггеров и задач контейнер может содержать группы или артефакты. Все элементы внутри рабочего процесса становятся доступны для всех его триггеров и задач.

Понятие рабочего процесса может рассматриваться как шаблон части или всего бизнес-процесса. Запуск workflow может происходить по самым разным причинам — например, при наступлении события в домене или при явном вызове.

Для стандартизации логики процессов применяется нотация BPMN (стандарт ISO 19510), определяющая семантику элементов рабочих процессов. В конвейерах обработки медиа используется стандарт ISO/IEC 23090-8, который определяет объекты рабочих процессов и документы их описания[6].

Когда рабочий процесс, его триггеры и задачи активны, он находится в состоянии ожидания исполнения.

При создании workflow последняя задача добавляется первой, то есть задачи перечисляются в обратном порядке их исполнения. Аналогичным образом триггеры и задачи должны указываться в обратном порядке выполнения[7].

Реализация рабочих процессов может осуществляться через паттерны оркестрации и хореографии. Оркестрация предполагает централизованное управление единым сервисом-координатором и оптимальна для сложных процессов, требующих строгого контроля. Хореография основана на децентрализованном асинхронном обмене сообщениями и применяется для систем малого масштаба[8][9].

Задачи

Задача (job) выполняет конкретное действие, например отправку сообщения или изменение объекта — например, изменение метаданных в определённой единице. Это описание того, что система должна выполнить: задачей может быть самый разный набор действий. После активации задача может запускать другие задачи (например, для доставки сообщения). Она определяет, как система работает с данными, и является деятельностью в пределах домена системы.

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

Механизмы обеспечения отказоустойчивости и обработки исключений при выполнении задач включают автоматические повторы (RetryPolicy) с экспоненциальной задержкой для устранения временных ошибок. Для изоляции сбоев применяется ограничение по времени выполнения (TimeoutPolicy), которое отменяет текущую попытку при превышении лимита или отсутствии прогресса. В случае исчерпания лимита повторов процесс переходит к специальному обработчику ошибок, который выполняет компенсирующие действия (паттерн Saga), отменяя ранее успешно завершённые шаги[10].

Триггеры

Триггер — это механизм, который инициирует или запускает рабочий процесс, активируя выполнение соответствующих действий. Компоненты, определяющие бизнес-логику и поведение, называются триггерами. Можно создать и настроить любое количество триггеров для автоматической или программируемой проверки, уведомлений, обработки данных и других операций в момент создания, изменения или удаления записи[11]. В современных событийно-ориентированных архитектурах, помимо базовых CRUD-операций, для инициации рабочих процессов применяются следующие типы триггеров[12]:

  • вебхуки (HTTP-колбэки от сторонних провайдеров);
  • подписки на шину сообщений (подключение к системам pub/sub);
  • запланированный опрос (клиентский pull-запрос по расписанию);
  • CDC на уровне логов (чтение журнала транзакций базы данных).

Кроме того, выделяют временные и условные триггеры[13][14]:

  • одноразовая задержка (активация в точно указанное время);
  • периодический cron (запуск по расписанию);
  • фиксированный интервал (регулярная активация через заданные промежутки времени);
  • условный триггер (срабатывание по расписанию с динамическим извлечением данных);
  • внешний API-триггер (запуск процесса по внешнему событию).

Процессы

Процесс начинается в определённый момент в системе — например, когда триггер запускает экземпляр рабочего процесса.

Сервис обмена сообщениями, управляемый процессами, обычно применяется для управления более или менее сложными бизнес-процессами.

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

Технологии и программирование

Сервис обмена сообщениями, управляемый процессами, основан на событийно-управляемой архитектуре, применимой при проектировании и реализации приложений и систем, которые передают события между слабо связанными программными компонентами и сервисами. В отличие от традиционных информационных систем, работающих по принципу запрос-ответ, событийные системы реагируют на события по мере их возникновения, позволяя системе динамически реагировать и отправлять персонализированные данные в зависимости от адресата и ситуации[4]. Для стандартизированного описания событийных данных применяется спецификация CloudEvents от CNCF, а для их фильтрации и выполнения запросов — CloudEvents SQL[15]. В качестве единой шины событий используется Apache EventMesh, обеспечивающий нативную поддержку спецификации CloudEvents[16].

Области применения

Сервисы данного класса применяются для обмена сообщениями между системами (System to System), для приложений класса Application to Person (A2P), с возможностью включения произвольных типов сообщений, обмена между приложениями (Application to Application), системами и пользователями (System to Person), для машинных взаимодействий (M2M), а также для любых сообщений или передачи данных между системами, приложениями и/или людьми, основанных на событийно-управляемых процессах. В финансовом секторе сервисы обмена сообщениями, управляемые процессами, используются с применением стандартов ISO 20022 и ISO 8583[17].. В логистике и управлении цепочками поставок применяются сценарии координации с поставщиками (A2A) и автоматизации оборудования (M2M) с использованием стандарта ISO 9506[17]..

Примечания

  1. 1 2 Process-Driven Messaging Services Workflow Architecture. Punku AI Blog. Дата обращения: 26 августа 2026.
  2. 1 2 Process Driven Messaging Service. Assignment Point. Дата обращения: 26 августа 2026.
  3. 1 2 Hommes, Lambertus Johannes. 7 // The evaluation of business process modeling techniques. — [S.l.] : s.n., 2004. — P. 138–187. — ISBN 90-9017698-5.
  4. 1 2 Opher Etzion, Peter Niblett. Event Processing in Action : [англ.]. — Гринвич, Коннектикут, США : Manning Publications Co, сентябрь 2007. — ISBN 978-1935182214.
  5. Progress Software Corporation. Rollbase in action (англ.). Chapter 10 6. Дата обращения: 26 августа 2026. Архивировано 22 апреля 2023 года.
  6. Process-Driven Messaging Services (PDMS) Workflow Architecture. Punku.ai. Дата обращения: 26 августа 2026.
  7. UWE, ZDUN; CARSTEN, SCHAHRAM (19 сентября 2007). “HENTRICH, DUSTDAR” (PDF). Modeling Process-Driven and Service-Oriented Architectures Using Patterns and Pattern Primitives [англ.]. New York: ACM, Inc. 1 (3): 23—27. Дата обращения 2026-08-26.
  8. Orchestration vs. Choreography in Event-Driven Architecture. Encore. Дата обращения: 26 августа 2026.
  9. Оркестрация и хореография микросервисов. TQuality. Дата обращения: 26 августа 2026.
  10. Fault Tolerance in LangGraph. LangChain Blog. Дата обращения: 26 августа 2026.
  11. 10 // Rollbase in Action : [англ.]. — Progress Software Corporation. — P. 266–289.
  12. Event-Driven vs Polling Architectures. Agent Blueprint. Substack. Дата обращения: 26 августа 2026.
  13. Delayed Message Scheduling with NATS JetStream. Synadia. Дата обращения: 26 августа 2026.
  14. Daily Trigger for Repository Dispatch. GitHub Community. Дата обращения: 26 августа 2026.
  15. CloudEvents. Cloud Native Computing Foundation. Дата обращения: 26 августа 2026.
  16. Apache EventMesh. Apache Software Foundation. Дата обращения: 26 августа 2026.
  17. 1 2 Process-Driven Messaging Services Workflow Architecture. Punku.ai. Дата обращения: 26 августа 2026.