Введение
система потоков работы YAWL (Yet Another Workflow Language) - это язык потоков работы, основанный на шаблонах потоков работы. Он поддерживается программной системой, которая включает в себя движок выполнения, графический редактор и обработчик списка работ. Он доступен в качестве программного обеспечения с открытым исходным кодом по лицензии LGPL. Внедрение YAWL на производственном уровне включает в себя развертывание first:utility и first:telecom в Великобритании для автоматизации процессов обслуживания фронтена, а также австралийской кинотелевизионной и радиошколы для координации процессов съемок фильмов. Он также используется для преподавания в более чем 20 университетах.
YAWL (Yet Another Workflow Language) is a workflow language based on workflow patterns. It is supported by a software system that includes an execution engine, a graphical editor and a worklist handler. It is available as open source software under the LGPL license. Production level implementations of YAWL include deployment by first:utility and first:telecom in the UK to automate frontend service processes, and by the Australian film television and radio school to coordinate film shooting processes. It has also been used for teaching in more than 20 universities.
Особенности
Всесторонняя поддержка шаблонов рабочего процесса. Поддержка передовых политик распределения ресурсов, включая принцип "четырех глаз" и цепное исполнение. Поддержка динамической адаптации моделей рабочих процессов посредством понятия worklets. Усложненные функции проверки модели рабочего процесса (например, обнаружение глубоких замыканий во время проектирования). Модель на основе XML для определения и манипулирования данными на основе XML Schema, XPath и XQuery. Интерфейсы на основе XML для мониторинга и управления инстанциями рабочего процесса и для доступа к журналам выполнения. XML-интерфейсы для подключения веб-сервисов третьих сторон к системе, включая сторонние обработчики рабочих списков/задач. Автоматическое создание формы из XML-схемы.
История
Язык и его поддерживающая система были первоначально разработаны исследователями из Технологического университета Эйндховена и Технологического университета Квинсленда. Впоследствии к инициативе присоединились несколько организаций, таких как InterContinental Hotels Group, first:telecom и ATOS Worldline. Первоначальные движущие силы YAWL заключались в том, чтобы определить язык рабочего процесса, который поддерживал бы все (или большинство) шаблонов рабочего процесса и имел бы формальную семантику. Наблюдая, что сети Петри почти поддерживают большинство шаблонов рабочего процесса, дизайнеры YAWL решили взять сети Петри в качестве отправной точки и расширить этот формализм тремя основными конструкциями, а именно or join, cancellation sets и multi instance activities. Эти три концепции направлены на поддержку пяти моделей рабочего процесса, которые не поддерживались непосредственно в сетях Петри, а именно синхронизирующее слияние, дискриминатор, N из M присоединение, множественный экземпляр без априорных знаний о времени выполнения и случай отмены. Кроме того, YAWL добавляет некоторые синтаксические элементы в сети Петри, чтобы интуитивно улавливать другие шаблоны рабочего процесса, такие как простой выбор (xor split), простое объединение (xor join) и множественный выбор (или 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.