惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threatpost
aimingoo的专栏
aimingoo的专栏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
J
Java Code Geeks
博客园_首页
Google Online Security Blog
Google Online Security Blog
Hugging Face - Blog
Hugging Face - Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
Intezer
P
Palo Alto Networks Blog
V
Vulnerabilities – Threatpost
雷峰网
雷峰网
O
OpenAI News
SecWiki News
SecWiki News
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
N
News | PayPal Newsroom
Project Zero
Project Zero
Forbes - Security
Forbes - Security
IT之家
IT之家
A
Arctic Wolf
WordPress大学
WordPress大学
Jina AI
Jina AI
T
Tor Project blog
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
Google DeepMind News
Google DeepMind News
Attack and Defense Labs
Attack and Defense Labs
博客园 - 聂微东
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Privacy International News Feed
Cloudbric
Cloudbric
G
GRAHAM CLULEY
博客园 - 叶小钗
H
Hacker News: Front Page
腾讯CDC
量子位
Help Net Security
Help Net Security
人人都是产品经理
人人都是产品经理
C
Cyber Attacks, Cyber Crime and Cyber Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
爱范儿
爱范儿
L
Lohrmann on Cybersecurity
Hacker News - Newest:
Hacker News - Newest: "LLM"
Recorded Future
Recorded Future
C
CERT Recently Published Vulnerability Notes

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Процессы: чего до сих пор не хватало обычным BPM (Часть 2)
stas_makarov · 2026-05-21 · via Все публикации подряд на Хабре

Уровень сложностиПростой

Время на прочтение9 мин

Охват и читатели121

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

Откуда в организациях процессы

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

Организации это давно поняли, и сегодня практически все находятся на какой-то фазе автоматизации своих процессов, но делают это по-разному.

Процессы проникают в корпоративный ландшафт различными путями:

  • Они могут быть зашиты в ERP/CRM и другие корпоративные системы.

  • Вместе с лоукод-платформой, где они являются неотъемлемой частью функциональности.

  • Через BPM-движки, которые интегрируется в различные приложения или выступают внешним оркестратором.

Первый и второй вариант рассматривать не будем, эти платформы обычно закрыты и без вендора там ничего особо не сделаешь. Что выросло, то выросло.

А вот третий вариант оставляет достаточно гибкости, чтобы что-то изменить.
Реализуется он обычно так:

  • BPMN-модель деплоится в BPM-движок

  • Происходит запуск экземпляров процессов (вручную или автоматически)

  • Выполняются сервисные и пользовательские задачи

  • По окончании — запись в историю

Вроде бы все окей, все привыкли так делать, но чувствуется, что чего-то не хватает. А все от того, что ощущается разрыв этого сугубо инженерного подхода с процессной методологией.

Процесс как сущность

Для бизнеса процесс это не просто BPMN-модель, задеплоенная на сервер. Бизнесу надо знать цель и смысл существования этого процесса, кому он принадлежит, каков его жизненный цикл, кто в нем участвует.

Иначе говоря, бизнесу нужен репозиторий процессов — это централизованное хранилище, где живут не только схемы BPMN, но и все, что нужно, чтобы процесс был управляемым: версии моделей, регламенты, роли, метрики, связи с ИТ-системами и история изменений. Его главная задача — сделать процессы единым источником истины, чтобы бизнес, аналитики, разработчики и владельцы процессов работали с одной актуальной картиной. Например, в качестве такого репозитория может выступать Stornbpmn или Business Studio.

Но это все для аналитиков. А как быть на стадии исполнения, в проде? — Пробрасывать сюда все данные из аналитического репозитория было бы избыточно, но какой-то порядок навести все-таки стоит, чтобы видеть процесс как сущность, а не только как диаграмму.

С этой целью был реализован объект Business Process, который несет дополнительные атрибуты, позволяющие организовать удобную навигацию по множеству процессов и задать бизнес-контекст — область действия (scope), какой организации процесс принадлежит, к какой категории относится. Если потребуется, можно добавить более детальную бизнес-классификацию, но на первом этапе и этого достаточно.

Также, поддерживается версионность BPMN-моделей, у одого процессам может быть несколько диаграмм. Кроме того, теперь процесс знает, на каком конкретно BPM-сервере он живет и какая задеплоенная версия считается актуальной. Потому что в реальном ландшафте у вас может быть более десятка процессных серверов.

Таким образом, мы получаем не только process management, но в перспективе и process governance, чтобы поддержать регламент работы с процессами и их жизненный цикл.

Модели процесса

А что насчет собственно BPMN-модели? И как быть с их версионностью? — Вопрос не простой.

С одной стороны, BPM-движок сам считает версии, автоматически увеличивая номер при каждом деплое. То есть даже малейшая правка влечет за собой создание новой версии.

С другой стороны, версии выпускают аналитики, когда в процессе есть изменения со стороны бизнеса.

По-любому получается, что к объекту Business Process может относится множество версий BPMN-моделей. Но какую из них считать актуальной?

Чтобы разрулить эту ситуацию, пришлось добавить жизненный цикл модели от черновика до архива — при этом считать актуальной только одну версию. Чтобы не возникло рассинхрона с тоем что задеплоено на сервер, в атрибутах опубликованной версии сохраняется deploymentId. Теперь если кто-то задеплоит новую версию помимо системы напрямую в движок, мы это сразу увидим.

Процессные роли

Процессные роли обычно трактуются сугубо утилитарно — какие задачи та или иная роль исполняет (что часто моделируется дорожками).

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

Однако, мы ведь вышли за рамки этого ограничения, да? — Теперь у нас есть объект Business Process, и, соответственно, процессные роли привязываются к нему.

Также, стоит вспомнить, что в фундаменте у нас лежит оргмодель — значит, мы можем назначать сотрудников на процессные роли через организационный контекст.

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

Таким образом, мы получим конкретного исполнителя из оргмодели и дадим ему необходимые полномочия через процессную роль.

Механизм назначений

Что делать, когда подходящих кандидатов много, а исполнитель нужен только один?

Например, у вас пять менеджеров по продажам и нужно кому-то дать в работу запрос от нового клиента.

BPM-движки предлагают простое решение — давайте кинем задачу на всех кандидатов и пусть кто-то ее заберет.

При таком подходе возможны две конфликтные ситуации:

  • Нездоровая конукуренция — когда от этого зависит зарплата сотрудников и каждый старается ухватить новый заказ первым.

  • Игнор — когда зарплата от количества задач не зависит и никто не торопится взять на себя еще одну.

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

Работает это так:

  • Через оргконтекст система резолвит потенциальных исполнителей

  • Дополнительно подключается один из методов, который уже определяет кто именно будет назначен на задачу

  • На выходе мы получаем username, который и нужен BPM-движку для корректной работы

Небольшое пояснение по методам:

  • Все — когда нам все-таки нужна групповая задача или мульти-инстанс

  • Руководитель — это понятно, руководитель подразделения

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

  • Случайный — тоже понятно

  • Round robin — назначение по кругу; но это не так просто, как кажется, логику надо тщательно прорабатывать

  • Наименее загруженный — в первом приближении тот, у кого меньше активных задач; но тоже можно усовершенствовать, например, учитывать суммарную длительность задач

Помните DSL-правила из первой части? Для процессов добавляется еще метод назначения, а в остальном все так же.

Например, рандомный инженер со знанием Java:

select:
  organization: ACME
  position: JAVA_DEV
  skills:
    - JAVA
assign: RANDOM
sourceSystem: LOCAL

Пусть неявное станет явным: контракт процесса

Что говорит нам теория? — В стандарте ISO 9001 процесс прямо определяется как совокупность взаимосвязанных действий, преобразующих входы в выходы, это базовый принцип всего процессного управления.

Но как из BPMN-модели понять, что процесс получает на вход и что отдает на выходе? — Никак. Модель начинается со стартового события и заканчивается конечным событием, насчет данных или состояний объектов ничего не говорится, это надо выяснять отдельно.

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

В классических движках Camunda и Flowable этого нет от слова совсем, можно только неявно определить через стартовые формы для входных данных, а выходные пытаться понять по конечным событиям, коих может быть множество.

Чуть ближе к этому Appian, где можно зайти в процесс и увидеть его data model, иногда даже интерфейс (SAIL), где видны входные параметры и Pega Platform — там есть структура кейса и данные, которые можно воспринимать как вход/выход. Но и там это не оформлено как явный контракт процесса.

В BPM-мире вход/выход процесса почти везде существуют неявно, через переменные и формы; явное, визуально выделенное представление “это вход, это выход” — это отсутствующая концепция, никак не стандартная фича.

Почему ситуация такова? — Я полагаю, что это из-за магии нотации BPMN. Разработчики продуктов следуют букве стандарта, который выглядит безупречным и совершенным. (По крайней мере, не нашего ума дело дорабатывать нотацию, думают они.)

Максимум, на что можно рассчитывать, — это что грамотный аналитик опишет входы и выходы в документации процесса. Но на этапе выполнения этого никто не увидит: ни люди, ни другие процессы, ни агенты.

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

Во-первых, непонятно, что именно процесс принимает и что гарантирует на выходе — каждая система и каждый разработчик трактуют это по-своему, и возникает рассинхрон.

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

В-третьих, страдает эволюция — любое изменение переменных может незаметно “сломать” потребителей, потому что нет формализованного контракта и версионирования.

И наконец, это бьёт по управляемости: невозможно нормально измерять, тестировать и обсуждать процесс на уровне бизнеса, потому что вместо понятной трансформации “было → стало” у нас есть просто некие исторические данные, которые еще надо как-то интепретировать.

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

В отсутствие контракта вы видите просто несколько десятков переменных и не понимаете, что из них относится к управлению поведением модели, а что к бизнесу. Без этого понимания никакая аналитика не возможна.

Для практически любого процесса уровня энтерпрайз картина будет еще сложнее. А еще учтите, что процессы могут быть иерархическими, вызывать call activity... Явное определение входов и выходов могло бы снять часть этой головной боли.

Входные и выходные схемы

Строго говоря, контракт процесса это не только про входы и выходы. Это и триггеры, которые его запускают, это и SLA и многое другое.

Но надо же с чего-то начинать! Наиболее практичным шагом будет реализация входов и выходов процесса в виде JSON-схем. Такой формат приемлем для людей и идеален для машинной обработки.

Входные и выходные JSON-схемы могут генериться полуавтоматически:

  • Для входной схемы из BPMN-модели считываются все стартовые события процесса и ассоциированные с ним переменные или поля формы.

  • Для выходной — автоматически подтягиваются только описания конечных событий, а переменные надо добавить вручную (поскольку в BPMN конечные события свойств не имеют и переменные к ним не привяжешь).

Вы также можете добавить в схемы любые произвольные свойства — но тогда на вас будет и их интерпретация.

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

Для примера возьмем простейший тестовый процесс, который выполняет суммирование двух чисел.

Его выходные и выходные схемы будут выглядеть так:

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

Результат процесса

"Что остается от сказки потом, после того, как ее рассказали?" — так же и от процесса, только воспоминание, что он был. Да россыпь значений переменных в истории, которые еще надо собрать.

Так было раньше, но теперь у нас есть входные и выходные схемы. Далее логично сделать следующий шаг — заполнить эти схемы реальными значениями.

Кроме того, для каждого экземпляра процесса создается отдельный объект Process Result — в него записываются реальные входные и выходные данные согласно JSON-схемам. Теперь вам не надо копаться в сырых логах BPM-движка, чтобы узнать, что получил на вход и отдал на выходе каждый запущенный процесс.

Например вот так:

А если какие-то результаты процесса нельзя просто взять и положить в переменную, то можно сохранить их в файл и прикрепить к результирующему объекту.

Таким образом, вы получаете полную картину того, как процесс отработал, причем без необходимости строить сложные запросы к истории в BPM-движке.

Кроме того, вовсе необязательно, что все, что процесс сделал отражается в его переменных. Например, в ходе процесса изменились статусы каких-то сущностей. Из стандартной истории вы это вообще никак не поймете. Но это можно явно прописать в результаты.

Собираем все вместе

Итак, процесс — это гораздо больше, чем BPMN-модель. Это бизнес-объект, погруженный в организационный контекст, для которого определены входная и выходная схемы и у которого может быть множество моделей, причем только одна из них считается актуальной.

Каждый экземпляр процесса получает входные данные согласно своей input-схеме, а по его окончании на основании output-схемы создается объект Process Result с реальными данными.

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

Ничто нам не мешает сохранять их сразу в Process Result — как JSON-поля или в виде attachment'ов. При этом и контекст не страдает, и история не растет.

Начало и продолжение:

Часть 1. Оргмодель, процессы и агенты

Часть 3. Агенты выходят на работу

Подпишитесь на канал Agentic Enterprise — про жизнь агентов в кровавом энтерпрайзе

Приходите на вебинар Агенты и процессы в корпоративном контуре