Люди vs Машины: как не пропустить сообщение в BPNM 2.0 | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Backend-разработчик на PHP
-9%
Алгоритмы и структуры данных
-9%
Team Lead
-6%
Архитектура и шаблоны проектирования Разработчик IoT
-13%
C# Developer. Professional
-9%
HTML/CSS
-11%
C# ASP.NET Core разработчик
-5%
Kotlin Backend Developer
-8%
iOS Developer. Professional
-8%
Java Developer. Professional JavaScript Developer. Professional Базы данных Android Developer. Professional Framework Laravel Cloud Solution Architecture Highload Architect Reverse-Engineering. Professional Vue.js разработчик Agile Project Manager VOIP инженер Scala-разработчик Супер-практикум по использованию и настройке GIT Symfony Framework Java Developer. Basic Unity Game Developer. Professional Супер-интенсив Azure
Инфраструктура
Экспресс-курс «IaC Ansible»
-10%
Administrator Linux.Basic
-10%
Мониторинг и логирование: Zabbix, Prometheus, ELK
-10%
Экспресс-курс «CI/CD или Непрерывная поставка с Docker и Kubernetes»
-30%
Administrator Linux. Professional
-6%
Дизайн сетей ЦОД
-13%
NoSQL Основы Windows Server MS SQL Server Developer Инфраструктурная платформа на основе Kubernetes Cloud Solution Architecture Highload Architect Разработчик голосовых ассистентов и чат-ботов VOIP инженер Супер-практикум по работе с протоколом BGP Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes Супер-интенсив "Tarantool"
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Люди vs Машины: как не пропустить сообщение в BPNM 2.0

BA_Deep_12.11_site-5020-c8026d.png

Как известно бизнес-аналитикам, реальное исполнение бизнес-процессов в компании штука сложная, ведь процессы взаимодействуют между собой. Для описания таких взаимодействий в BPMN 2.0 часто применяются сообщения. Типичное описание такого взаимодействия выглядит так: БА_1-20219-f1e525.jpg«Процесс 1» шлёт сообщение «Процессу 2», при этом «Процесс 2» не пойдёт дальше «Задачи 23», пока не получит сообщение. Но что будет, если «Процесс 1» отправит сообщение раньше, чем «Процесс 2» будет готов его получить? Например, будет находиться на этапе выполнения «Задачи 22».

Нотация BPMN 2.0 прямого ответа на этот вопрос не даёт, оставляя его решение на откуп разработчикам процессных движков. А у разработчиков вариантов немного: хранить сообщение или не хранить.

Если хранить, то последовательность выполнения задач во взаимодействующих процессах неважна — сообщение из «Процесса 1» дождётся «своего часа» в «Процессе 2». А если не хранить, то сообщение, пришедшее раньше, просто потеряется и экземпляр «Процесса 2» навсегда зависнет на «Задаче 23».

Если мы хотим изобразить процесс, который будет точно исполним на любом BPMS, то можно самостоятельно организовать хранилище информации о сообщениях в базе данных и периодически (желательно автоматически) узнавать, не пришло ли данное сообщение. БА_2-20219-d55439.jpgСобственно, именно таким способом устроена обработка прерываний процессором, когда нам кажется, что компьютер мгновенно реагирует на мышь или клавиатуру (впрочем, не всегда мгновенно).

Но если вы разрабатываете описательный бизнес-процесс, который не предполагается «скармливать» процессному движку, а предполагается обсудить с исполнителями и изготовить на его основании регламент, то первый вариант сгодится лучше.

Во-первых, он более читаем, а во-вторых (и это главное отличие людей от компьютеров) — любой вменяемый человек обязательно проверит, не пришло ли сообщение раньше: получено ли письмо, пришла ли машина, поступал ли товар и т. п. Ему даже в голову не придёт остановить процесс, просто потому что письмо, на которое он должен ответить, пришло раньше, чем он закончил читать предыдущее.

Всем адекватных исполнителей бизнес-процесов и не забывайте оставлять комментарии!

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться