YAWL
YAWL (Yet Another Workflow Language) — язык на основе XML для формального описания бизнес-процессов. Подразумевает использование специальной платформы, включающей механизм исполнения, графический редактор (для обеспечения визуального программирования процессов), а также обработчик рабочего списка. Реализация платформы для YAWL доступна в исходных кодах под лицензией LGPL.
Основные отличительные возможности языка: поддержка шаблонов потоков операций (англ. workflow pattern); поддержка расширенных систем распределения ресурсов, включая «принцип четырёх глаз» и «событийную цепочку процессов»; поддержка динамической адаптации моделей потоков операций (с использованием пониятия worklet), интеллектуальных функций проверки моделей потоков операций (например, обнаружение тупиковой ситуации во время разработки). Язык целиком XML-центричен, в частности, в нём предусмотрена XML-модель для определения и обработки данных на основе XML-схемы, XPath и XQuery, реализованы XML-интерфейсы для мониторинга и управления экземплярами потоков операций, а также для доступа к журналам выполнения операций, платформой предусматривается автоматическое формирование форм из XML-схемы.
История
Язык YAWL и его система поддержки были изначально разработаны исследователями Технического университета Эйдховена. Впоследствии к этой инициативе присоединились несколько организаций, в том числе, конечные пользователи, в частности InterContinental Hotels Group.
Первоначально ядро YAWL должно было определять язык рабочего процесса, который поддерживал бы все (или большинство) шаблонов потоков операций и имел бы формальную семантику. Обнаружив, что средствами сетей Петри возможно описать большинство шаблонов потоков операций, разработчики YAWL решили их использовать в качестве основы и распространить этот формализм на три основные конструкции, а именно: дизъюнктивное слияние (or-join), множества отказов (cancellation sets) и многоэкземплярные активности (multi-instance activities). Эти три конструкции нацелены на поддержку пяти шаблонов потоков операций, которые не были напрямую поддержаны сетями Петри (синхронное слияние, дискриминатор, слияние N из M, множество экземпляров без априорного знания времени выполнения, отмена ветвления).
Впоследствии в YAWL были добавлены некоторые синтаксические элементы, не присутствующие в сетях Петри, для более интуитивной реализации простых шаблонов потоков операций, среди таковых простой выбор (xor-split), простое слияние (xor-join) и множественный выбор (or-split). Однако во время разработки языка выяснилось, что некоторые расширения, которые были добавлены в сети Петри, были сложными или даже невозможными для повторного кодирования обратно в простые сети Петри. Поэтому исходная формальная семантика YAWL определяется как модель состояний и переходов (англ. transition system), а не в терминах сетей Петри. Тот факт, что YAWL основан на формальной семантике, позволил реализовать несколько методов анализа процессов YAWL. В частности, система YAWL включает в себя инструмент статического анализа WofYAWL.