Мир вокруг нас является скорее "непрерывным", чем "дискретным": большинство наблюдаемых нами процессов - это непрерывные изменения во времени. Однако, для анализа этих процессов иногда имеет смысл абстрагироваться от их непрерывной природы и рассматривать только некоторые "важные моменты" ("события") в жизни моделируемой системы. Подход к построению имитационных моделей, предлагающий апроксимировать реальные процессы такими событиями и называется "дискретно-событийным" моделированием (discrete event modeling).
Вот некоторые примеры событий: покупатель вошел в магазин, на складе закончили разгружать фуру, конвейер остановился, в производство запущен новый продукт, уровень запрасов достиг некоего порога и т.д. В дискретно-событийном моделировании движение поезда из точки А в точку Б будет представлено двумя событиями: отправление и прибытие, а само движение станет "задержкой" (интервалом времени) между ними. (Это, однако, не означает, что вы не сможете показать поезд движущимся - как раз наоборот, AnyLogic позволяет создавать визуально непрерывные анимации для логически дискретных процессов).
Термин "дискретно-событийное моделирование", однако, обычно используется в более узком смысле для обозначения "процессного" моделирования, где динамика системы представляется как последовательность операций (прибытие, задержка, захват ресурса, разделение, ...) над некими сущностями (entities, по-русски - транзакты, заявки), представляющими клиентов, документы, звонки, пакеты данных, транспортные средства и т.п. Эти сущности пассивны, они сами не контролируют свою динамику, но могут обладать определёнными атрибутами, влияющими на процесс их обработки (например, тип звонка, сложность работы) или накапливающими статистику (общее время ожидания, стоимость). Процессное моделирование - это средне-низкий уровень абстракции: здесь каждый объект моделируется индивидуально, как отдельная сущность, но множество деталей "физического уровня" (геометрия, ускорения/замедления) обычно опускается. Такой подход широко используется в бизнес-процессах, производстве, логистике, здравоохранении.
Прежде, чем использовать этот подход мы советум Вам убедиться, что моделируемая система [с точки зрения целей проекта!] действительно естественно описывается как (возможно, иерархическая) последовательность операций. Вы всегда должны иметь в виду альтернативные подходы; например, если легче описать поведение каждого объекта индивидуально, чем пытаться загнать всех в общий процесс, решением может быть
агентное моделирование. Аналогично, если Вас интересуют только общие количественные оценки процессов, а не динамика отдельных объектов, воможно, Вам удасться описать сисиему в терминах
системной динамики. AnyLogic поддерживает все три подхода, так что Вы можете свободно экспериментировать с уровнем абстракции в очень широких пределах, оставаясь в рамках одного инструмента.
Библиотека AnyLogic Enterprise Library
Основное средство процессного моделирования в AnyLogic - это библиотека Enterprise Library. В эту библиотеку вошли объекты для определения "потока" процесса (process workflow): Source (источник), Sink (выход из системы), Delay (задержка), Queue (очередь), Service (обслуживание), SelectOutput (выбор пути), и т.д., а также задействованных в процессе ресурсов. Все объекты гибкие и настраиваемые: пераметры могут изменяться динамически, действия могут зависеть от атрибутов заявок, и т.д. Объекты имеют "точки расширения" типа onEnter/onExit - это места, где можно определить действия, производимые над заявками при их прохождении через объект. Базовый класс заявок Entity (на самом деле это Java-класс), в свою очередь, может быть расширен путём добавления полей и методов. Компоненты модели, построенные из блоков библиотеки Enterprise Library могут естественным образом взаимодействовать с компонентами системной динамики, с агентами или с низкоуровневыми примитивами AnyLogic - картами состояний и событиями.
Если моделируемая система сложна, имеет смысл разбить её модель на компоненты (подпроцессы) и поместить каждый из них в отдельный активный объект (Active Object). Вы можете определить входы и выходы из подпроцесса, поместить их на внешний интерфейс активного объекта и скрыть его реализацию. На верхнем уровне Вы будете оперировать такими объектами как блоками, соединяя их входы и выходы. Вы можете создать несколько экземпляров активного объекта с разными параметрами, в том числе и в других проектах.
Библиотека Enterprise Library тесно интегрирована с анимационными средствами AnyLogic и позволяет создавать анимации процессов любой степени сложности, в том числе иерархические и с несколькими перспективами. Например, Вы можете определить глобальный взгляд на процесс производства с несколькими агрегированными индикаторами, а также детальные анимации конкретных операций - и переключаться между ними.
Сетевое моделирование

В Enterprise Library также входят объекты, разработанные для моделирования процессов, происходящих в (и зависящих от) пространства: таких, где объекты-заявки и ресурсы перемещаются в некой сети. Это подмножество объектов значительно упрощает моделирование некоторых типов систем, например, производства, внуризаводской логистики, супермаркета, склада, госпиталя. Для использования этого подхода, называемого сетеывым моделированием (Network Based Modeling), Вы должны определить топологию сети (например, используя векторную графику AnyLogic поверх плана или чертежа здания или сооружения), множества ресурсов (статических, движущихся или перемещаемых), и собственно процесс. Процесс в данном случае - это комбинация объектов типа "переместиться туда-то" или "присоединить к себе ресурс" и обычных объектов Enterprise Library. Заявки и ресурсы автоматически анимируются движущимися по сегментам сети или находящимися в её узлах; эта анимация может также комбинироваться с обычной.