YAWL ( еще один язык рабочего процесса ) - это язык рабочего процесса, основанный на шаблонах рабочего процесса . Язык поддерживается программной системой, которая включает в себя механизм выполнения, графический редактор и обработчик рабочего списка. Система доступна как программное обеспечение с открытым исходным кодом по лицензии LGPL .
Использование системы YAWL на производственном уровне включает развертывание first: utility и first: Telecom в Великобритании для автоматизации процессов внешнего обслуживания, а также австралийской киношколой, теле- и радиовещанием для координации процессов съемок фильмов. Система YAWL также использовалась для обучения в более чем 20 университетах. [1]
Функции
- Всесторонняя поддержка шаблонов рабочего процесса.
- Поддержка расширенных политик распределения ресурсов , включая принцип четырех глаз и цепное выполнение.
- Поддержка динамической адаптации моделей рабочего процесса через понятие рабочих пакетов .
- Сложные функции проверки модели рабочего процесса (например, обнаружение взаимоблокировок во время разработки).
- Модель на основе XML для определения данных и обработки на основе схемы XML , XPath и XQuery .
- Интерфейсы на основе XML для мониторинга и управления экземплярами рабочих процессов, а также для доступа к журналам выполнения.
- Интерфейсы подключаемых модулей на основе XML для подключения сторонних веб-служб к системе, включая сторонние обработчики рабочих списков / задач.
- Автоматическая генерация форм из XML-схемы.
История
Язык и поддерживающая его система были первоначально разработаны исследователями из Технологического университета Эйндховена и Технологического университета Квинсленда . Впоследствии несколько организаций, таких как InterContinental Hotels Group , first: telecom и ATOS Worldline [2] , внесли свой вклад в эту инициативу.
Исходные драйверы YAWL должны были определить язык рабочего процесса, который поддерживал бы все (или большинство) шаблонов рабочего процесса и имел бы формальную семантику. Заметив, что сети Петри приблизились к поддержке большинства шаблонов рабочего процесса, разработчики YAWL решили взять сети Петри в качестве отправной точки и расширить этот формализм тремя основными конструкциями, а именно or-join, наборами отмены и многоэкземплярными действиями. . Эти три концепции нацелены на поддержку пяти шаблонов рабочего процесса, которые не поддерживались напрямую в сетях Петри, а именно синхронизирующее слияние , дискриминатор , соединение N-из-M , несколько экземпляров без априорного знания времени выполнения и случай отмены .
Кроме того, YAWL добавляет некоторые синтаксические элементы в сети Петри для интуитивно понятного захвата других шаблонов рабочего процесса, таких как простой выбор (xor-split), простое слияние (xor-join) и множественный выбор (or-split). Во время разработки языка выяснилось, что некоторые из расширений, которые были добавлены к сетям Петри, было трудно или даже невозможно перекодировать обратно в простые сети Петри. В результате исходная формальная семантика YAWL определяется как система помеченных переходов, а не в терминах сетей Петри. Тот факт, что YAWL основан на формальной семантике, позволил реализовать несколько методов анализа процессов YAWL. В частности, система YAWL включает инструмент статического анализа под названием WofYAWL.
YAWL против BPEL
YAWL иногда рассматривается как альтернатива BPEL [ кем? ] . Основным преимуществом BPEL является то, что он управляется комитетом по стандартизации, поддерживаемым несколькими игроками ИТ-индустрии. В результате BPEL поддерживается значительным количеством инструментов (как проприетарных, так и с открытым исходным кодом), в то время как YAWL в настоящее время имеет единственную реализацию. Кроме того, несколько исследователей уловили формальную семантику подмножеств BPEL в терминах различных формализмов, включая сети Петри , алгебру процессов и конечный автомат . Это проложило путь для разработки инструментов статического анализа для BPEL, которые могут конкурировать с возможностями статического анализа, предоставляемыми системой YAWL.
С другой стороны, это было отмечено [ кем? ], что стандартный BPEL не поддерживает человеческие задачи, то есть задачи, которые назначаются человеческим акторам и которые требуют от этих акторов выполнения действий, возможно, связанных с физической работой. Ряд движков BPEL уже предоставляют расширения BPEL для человеческих задач, но эти расширения еще не стандартизированы. Напротив, YAWL предоставляет унифицированный интерфейс для сервисов рабочего списка, основанный на стандартах веб-сервисов . Этот интерфейс позволяет разработчикам создавать собственные службы рабочего списка для поддержки человеческих задач в соответствии с их потребностями. Кроме того, система YAWL поставляется со службой рабочего списка по умолчанию, которая поддерживает несколько типов распределения и обработки неавтоматизированных задач. Еще одним преимуществом YAWL является поддержка шаблонов рабочего процесса, хотя разрыв между YAWL и BPEL в этом отношении может быть сокращен за счет новых конструкций, включенных в BPEL версии 2.0.