В этой статье вы узнаете, как настроить буферы в имитационном моделировании (DES-симуляции) Storm BPMN: сделать промежуточное событие буфером, задать ёмкость, дисциплину обслуживания и поведение при переполнении. Также описано, как читать вкладку «Буферы» в отчёте по симуляции и понимать потери от отклонённых заявок.
Буфер — это межоперационное хранилище с конечной ёмкостью: склад, зал ожидания или очередь между двумя задачами процесса. В модели он появляется там, где на схеме стоит промежуточное условное событие. Без буфера заявки проходят узел мгновенно; с буфером они могут накапливаться, ждать места или отклоняться — и именно это поведение вы настраиваете перед запуском симуляции.
Как сделать событие буфером
-
Откройте экран настройки симуляции (шаг 2, после создания). Справа находится панель «Свойства элемента».
-
В группе элементов выберите вкладку «События» и найдите нужное промежуточное условное событие. На схеме оно помечено подсказкой «Событие».
-
Включите тумблер «Сделать буфером». После этого в панели появятся поля настройки буфера.
Если на схеме нет промежуточного условного события, буфер создать нельзя — движок моделирует буферы только в этой позиции. Промежуточное событие без тумблера работает как простая задержка (поле «Время ожидания»).
Параметры буфера
После включения тумблера доступны следующие поля:
-
Ёмкость — максимальное количество единиц, которые буфер может удержать одновременно. Например, 50 документов на складе или 10 мест в зале ожидания.
-
При переполнении — что происходит, когда ёмкость исчерпана:
-
«Ждать места (BLOCK)» — процесс замедляется: следующая заявка не может пройти, пока в буфере не освободится место. Ничего не теряется, но время цикла растёт.
-
«Отклонять (REJECT)» — заявки сверх ёмкости отклоняются и считаются потерянными. Чтобы оценить финансовые потери, задайте стоимость привлечения заявки (CAC) в секции «Цель симуляции».
-
-
Дисциплина — порядок, в котором заявки покидают буфер:
-
«FIFO — очередь» — первая пришла, первая ушла (стандартная очередь).
-
«LIFO — стек» — последняя пришла, первая ушла (например, стопка документов, где берут верхний лист).
-
-
Таймаут ожидания — максимальное время, которое заявка может провести в буфере. По истечении таймаута заявка считается отказом (причина «Таймаут» в отчёте). Пустое значение — без ограничения.
-
Содержимое — текстовое описание того, что хранится в буфере: «документы», «люди», «кг» и т. д. Это подпись для читаемости отчёта, на расчёт не влияет.

Вкладка «Буферы» в отчёте
После завершения симуляции перейдите на вкладку «Результаты» и откройте вкладку «Буферы». Здесь отображается таблица «Статистика буферов» с колонками:
-
Буфер — название промежуточного события, которое вы настроили как буфер.
-
Ёмкость — заданное вами максимальное количество единиц.
-
Пик — максимальное количество единиц, которое одновременно находилось в буфере за весь прогон. Если пик равен ёмкости, буфер регулярно переполнялся.
-
Утилизация — доля времени, когда буфер был заполнен (или заполнен до определённого уровня). Высокая утилизация означает, что буфер работает на пределе.
-
Вошло — общее количество единиц, которые прошли через буфер за прогон.
-
Отклонено — количество заявок, отклонённых из-за переполнения (актуально только при режиме «Отклонять (REJECT)»). При режиме «Ждать места (BLOCK)» это значение равно нулю.
-
Ср. ожидание — среднее время, которое заявка провела в буфере до выхода.
-
Макс. ожидание — максимальное время ожидания в буфере за весь прогон.
Под таблицей отображается сводка: «заявок отклонено» и «потери (CAC)». Потери рассчитываются как количество отклонённых заявок, умноженное на стоимость привлечения заявки (CAC), заданную в секции «Цель симуляции». Если CAC не задан, потери не рассчитываются.
Если в модели нет ни одного настроенного буфера, вкладка покажет сообщение: «Буферы не настроены».
Как интерпретировать результат
-
Если пик близок к ёмкости, а отклонено больше нуля — буфер является узким местом. Рассмотрите увеличение ёмкости или переход на режим «Ждать места (BLOCK)», если потери неприемлемы.
-
Если среднее ожидание в буфере велико, а утилизация низкая — вероятно, дисциплина LIFO или неравномерный поток создают «завалы». Попробуйте переключить на FIFO.
-
Если потери (CAC) значительны — это прямые финансовые потери от отклонённых заявок. Сравните их с доходом от обработанных заявок на вкладке «Экономика».
-
Для оценки влияния буфера на время цикла смотрите вкладку «Сводка» (показатель «Среднее ожидание») и вкладку «Динамика и достоверность» (декомпозиция времени в системе).
Частые формулировки
«как сделать буфер в симуляции», «буфер переполняется, что делать», «FIFO или LIFO в буфере», «потери от отклонённых заявок в симуляции», «ёмкость буфера в DES», «вкладка буферы в отчёте симуляции», «таймаут ожидания в буфере», «потери по CAC из-за буфера».