Инструмент CPN IDE: моделирование и симуляция производственных процессов для студентов Tu/e в Нидерландах
Очень интересный проект попал к нам из Нидерландов. Команда учёных, специализирующихся на моделировании производственных процессов c помощью цветных сетей Петри, решила создать удобный графический интерфейс, который позволил бы студентам использовать математические модели в решении специфических задач. О деталях проекта и функциональных возможностях инструмента рассказали в материале.
О клиенте
К нам обратилась команда учёных Технического университета Эйндховена (Tu/e), основанного в 1956 году в Нидерландах.
О задаче
Нас попросили разработать решение, которое позволило бы студентам бакалавриата и магистратуры Tu/e использовать цветные сети Петри* для моделирования и симуляции производственных процессов. Создать продукт с открытым исходным кодом и собрать подробную проектную документацию, чтобы клиенту было проще масштабировать решение в дальнейшем.
На стороне клиента уже существовало подобное программное обеспечение, но оно устарело: студентам хотелось видеть более удобный интерфейс и работать в облаке, а не устанавливать ПО на компьютер.
Клиент предоставил нам высокоуровневые требования к системе, а также описание опыта пользователей. Серверную часть новый продукт должен был унаследовать от своего предшественника, остальное предстояло разработать нашим специалистам.
*Сети Петри — это математический инструмент для моделирования и анализа систем, которые состоят из процессов, взаимодействующих друг с другом. Цветные сети Петри (CPN, Colored Petri Nets) предоставляют расширенные возможности сетей Петри, позволяя использовать различные типы данных и моделировать более сложные системы.
Пример применения CPN: моделирование работы бургерной закусочной, где можно создавать элементы (точки) процесса: получение заказа, работа кухни, доставка заказа — и определять условия выполнения каждого шага. Также сети Петри позволяют симулировать выполнение процесса и выявлять возможные проблемы, такие как нехватка ингредиентов и задержки в обслуживании.
CPN широко применяются не только в производстве, но и в логистике, управлении запасами, обслуживании клиентов в общепите и аэропортах.
Наши решения
Выстроили рабочий процесс итеративно. Проводили еженедельные онлайн-конференции с клиентом: на каждой встрече демонстрировали и обсуждали промежуточные результаты, уточняли требования и дополнительные пожелания. Затем планировали последующие спринты.
Мы постарались максимально вовлечь клиента в процессы оценки промежуточных результатов, поскольку речь шла о нюансах работы сложных математических моделей, работа с которыми не терпит ошибок.
При создании продукта мы использовали Java, SpringBoot, JavaScript, Angular и фреймворк Electron, на котором были написаны такие известные решения, как Figma, Microsoft Teams, WordPress, Asana, Trello и пр.
С Electron можно, используя HTML, CSS и JavaScript, разрабатывать настольные приложения: таким образом мы упрощаем процесс, экономим время и деньги клиента, при этом добиваемся превосходного качества итогового продукта.
В результате запустили кроссплатформенное веб-приложение, главными компонентами которого являются:
- автономный сервер, решающий задачи валидации и симуляции моделей систем;
- графический интерфейс, способный реализовать новые функции инструмента CPN IDE и сделать процесс работы в нём максимально простым и удобным.
Так выглядит моделирование производственного процесса в CPN IDE:
Функциональные возможности продукта CPN IDE
- Инкрементальная проверка синтаксиса и генерация кода: работает в реальном времени по мере создания сети, это позволяет быстро выявлять и исправлять ошибки в моделировании процессов.
- Быстрый симулятор: эффективно обрабатывает как временные, так и невременные сети, обеспечивая высокую производительность при симуляции.
- Генерация и анализ состояний: поддерживает генерацию полных и частичных пространств состояний, а также анализ свойств ограниченности и живучести.
- Декларативные ограничения: позволяют задавать ограничения на модели.
- Поддержка сторонних расширений: предоставляют возможность интеграции с внешними инструментами и библиотеками.
- Упрощенное использование нецветных сетей: поддерживает работу с классическими сетями Петри.
- Экспорт в PNML: позволяет экспортировать модели в стандартный формат PNML для обмена данными с другими инструментами.
- Поддержка реальных и временных цветовых наборов: реализованы расширенные возможности для моделирования временных процессов.
- Улучшенная поддержка времени: включает временные интервалы и сокращение пространства состояний.
- Упрощенный анализ пространства состояний: облегчает анализ и интерпретацию результатов.
В NLABTEAM мы уже не впервые разрабатываем no-code веб-приложения, которые позволяют программировать сложные процессы, просто создавая графические схемы.
Если вам актуален такой подход, рекомендуем также ознакомиться с нашим кейсом по запуску no-code платформы для управления микроконтроллерами: благодаря новому решению, клиент может настраивать их, не прибегая к помощи С-программистов. Чтобы выполнить задачу, ему достаточно перемещать блоки в графическом редакторе. Код в этот момент пишется сам.
Результаты проекта
CPN IDE играет ключевую роль в обучении и исследовательской деятельности университета. Он позволяет студентам и преподавателям:
- Создавать детализированные модели производственных процессов, учитывая различные типы данных и условия выполнения.
- Симулировать процессы: динамическое моделирование позволяет «проигрывать» выполнение процессов и отслеживать их состояние в реальном времени, выявляя узкие места.
- Анализировать и улучшать процессы: инструмент предоставляет расширенные возможности аналитики — например, мониторинг состояния элементов и выявление проблем в модели.
Это open-source решение, поэтому университету удобно адаптировать его под свои нужды при появлении потребности, не привлекая нас.
Отзыв клиента
Дирк Фаланд, доцент Технического университета Эйндховена (Tu/e):
«Нашей целью было разработать новый интерфейс с современным UI/UX для существующего бэкенда. Интерфейс, поддерживающий большинство актуальных вариантов использования. Вся реализация — с открытым исходным кодом и документацией, которая помогла бы в дальнейшем легко масштабировать наш продукт.
Мы предоставили NLABTEAM доступ к устаревшему программному обеспечению, обозначили высокоуровневые требования и предоставили истории пути пользователей для разработки нового решения.
Решение, предоставленное NLABTEAM, полностью устранило все жалобы пользователей (студентов бакалавриата и магистратуры) на удобство использования инструментов моделирования. Решение работает безупречно, оно доступно в виде продукта с открытым исходным кодом: https://github.com/cpn-io/cpn-js
Примечательно, что продукт содержит в себе все унаследованные функции, при этом пользователям доступен современный интерфейс.»
*Источники иллюстраций: buildings.honeywell.com, cpnide.org