Создание BPMLab.org
В процессе работы с системой BPMN возникла необходимость создания “стандартов соответствия BPMN”, которые бы определяли элементы, атрибуты и структуру информационных потоков, которые должны обеспечиваться для поддержки BPMN. Данная статья рассказывает о процессе создания спецификации и его основных действующих лицах.
На сегодняшний день существует ряд аспектов, которые мешают BPMN стать подлинным стандартом. Во-первых, как определил Брюс Силвер (Bruce Silver) семантика BPMN запутана и неясна, и поэтому требует разъяснений, особенно принимая во внимание элементы спецификации, которые должны отвечать за создание исполняемых процессов. Во-вторых, отсутствие стандартного формата обмена для BPMN диаграмм, который бы позволил использовать диаграмму, созданную одним инструментом, в среде других. В-третьих, если платформа BPMN используется как всеохватывающая архитектура для описания исполняемых процессов, все “аннотации” к спецификациям, с помощью которых красивую картинку можно превратить в исполняемый процесс, также должны также быть стандартизированы, как способ упорядочить (перевести в текст) все эти аннотации.
В определенном смысле вышеупомянутые аспекты связаны с мнением о важности “встроенных BPMN механизмов”, которое последнее время активно поддерживается вендорами. И хотя это мнение хорошо выглядит в теории, на практике оно совершенно игнорирует тот факт, что BPMN охватывает только одно измерение процесса - процедуру исполнения. А вот другое очень важное измерение - информацию - недооценивают. Ряд вопросов остаются без ответов: как информация проходит через весь процесс, как она переходит от одного процесса к другому, как она отвечает за исполнение бизнес-правил и т. д. Но добавить это информационное измерение к платформе BPMN, значит заново изобрести то, что называется BPEL. Поэтому, эффективнее использовать именно BPEL в качестве стандартной модели для исполняемых BPMN-процессов?
Разработанную таким образом систему стандартизации Брюс Силвер (Bruce Silver) и Девид Френч (David French) называют “стандартом соответствия BPMN,” а Исмаэль Халими (Ismael Ghalimi) именует ее “исполняемой спецификацией BPMN.” Эта система стандартизации в точности описывает все элементы, атрибуты и потоки, которые должны быть переведены на язык BPEL для того, чтобы обеспечить тщательное исполнение процесса. При работе с элементами, используемыми только для документирования процесса, спецификация должна точно описывать, какой BPEL-код для каких элементов, атрибутов и структур потока нужно сгенерировать. При таком подходе необходима тщательная и надежная формальная поддержка, например, в виде использования результатов последних научных докладов, чтобы обеспечить формальную семантику и анализ логики, управляющей процессом исполнения.
Параллельно с этим процессом необходимо работать над форматом упорядочивания стандартов для BPMN. Этот формат должен основываться на XML, четко отражать структуру BPMN графа, и быть достаточно открытым, чтобы вендоры могли вносить необходимые изменения (различные шрифты, цвета, иконы и т.д.). Но особую сложность представляет необходимость создания двух форматов упорядочивания: один для неисполняемых BPMN-процессов, а другой - для исполняемых. При этом первый должен быть элемент последнего. Формат упорядочивания неисполняемых BPMN-процессов может быть разработан на прямую, и иметь четкую структуру исполнения. Для этого необходимо провести тщательный анализ текущей BPMN-спецификации и организовать переговоры между вендарами, во время которых удастся определить тот инструментарий, с помощью которого спецификацию можно будет расширить, чтобы обеспечить поддержку внесенных изменений. Формат упорядочивания исполняемых BPMN-процессов не только предполагает выполнение первой спецификации (для неисполняемых BPMN-процессов), но и исполняемой спецификацией BPMN. Таким образом, получается единая спецификация.
Рекомендации:
Тщательно определить все компоненты уравнения
Если основная задача состоит в определении спецификации исполняемых BPMN-процессов, то для начала важно определить, что означает само понятие «исполняемый». Сделать это можно, выбрав язык исполнения из тех, что уже существуют. На сегодняшний день BPEL самый полный, самый точный и самый широко поддерживаемый язык, поэтому его следует рассматривать как самый подходящий вариант. Более того, если BPEL является языком исполнения по умолчанию, о других языках можно не беспокоиться. Как только происходит добавления других языков (например, XPDL), проект автоматически продолжает работать, необходимо только определить допустимый уровень абстракций. Чтобы решить данное уравнение важно определить все его компоненты, BPMN - с одной стороны и BPEL - с другой. Решение данного уравнения позволяет организовать весь процесс, внося изменения, можно проследить, подходит ли система для работы с другими целевыми моделями исполнения (например, XPDL).
Не уделять много внимания двустороннему перемещению объектов между BPMN и BPEL
Двустороннее перемещение объектов может оказаться бесполезным действием, если пытаться организовать его между двумя языками или нотациями, которые существенно отличаются друг от друга семантически, например, в случае с BPMN и любым другим языком исполнения процесса, оптимизированным для компьютера (например, BPEL). То же самое можно сказать и о UML и Java. Двустороннее перемещение объектов может быть основополагающей задачей только в случае, когда два языка или нотации представляют в сущности одно и то же, например, нотация BPMN и ее производные Значит, должен существовать способ, с помощью которого можно с одной стороны полностью упорядочить BPMN графы, а с другой - графически отобразить упорядоченные нотации BPMN. И этот процесс должен задаваться и прогнозироваться равномерно по всему инструментарию.
Неважно, что BPEL-код выглядит «некрасиво»
BPEL создается генератором кодов и используется виртуальной машиной, управляющей процессом, поэтому не стоит уделять много внимания уровню достоверности BPEL-кода, исходя из перевода исполняемого BPMN-процесса. Очевидно, что BPEL-код должен быть точным, грамотным и как можно более сжатым, чтобы его можно было быстро и просто проверить на правильность. При этом, не следует пытаться сделать его проще.
При необходимости улучшать BPEL
Многие специалисты отмечают, что структура BPMN-процесса не может быть переведена в BPEL язык. В некоторых случаях в этом вовсе нет смысла, так как BPMN граф выполнен неправильно. Грамотно построенный механизм моделирования BPMN процесса должен обнаружить ошибочные или неполноценные графы и предупредить бизнес-аналитика о том, что, несмотря на свою замысловатую и красивую форму, этот граф совершенно бесполезен. В других случаях BPMN граф попросту представляет процесс, который не может быть исполнен ни одной IT-системой и создавать BPEL-код нет никакой необходимости. Хотя бывают случаи, когда BPMN граф может быть переведен в BPEL, но получившийся BPEL-код будет «некрасивым». Тогда бизнес-аналитики могут немного изменить BPMN граф, чтобы генерация BPEL-кода была «чище». Грамотно построенный механизм моделирования BPMN процесса должен обнаружить такие неточности и подсказать, как можно улучшить и BPMN граф, и получившийся BPEL-код. Кроме того, иногда BPEL язык просто не может представить некоторые BPMN-структуры. В таких ситуациях необходимо отметить данное ограничивающее условие и отправить его авторам BPEL спецификации, которые, в свою очередь, могут учесть данную особенность при сознании последующих версий BPEL. При этом найденный неисполняемый шаблон будет добавлен в раздел неисполняемых BPMN-процессов, и отмечен как “еще неисполняемый”.
Теперь возникает закономерный вопрос, какого рода организация будет заниматься стандартизацией? Будет это уже существующая организация или необходимо создать новую? Основная проблема состоит в том, что для создания исполняемой BPMN-модели, необходимо преодолеть расхождения между двумя спецификациями, которые принадлежать двум различным компаниям: BPMN принадлежит компании OMG, а BPEL - компании OASIS. Кроме того, это слияние должно проходить отдельно от взаимодействия с другими спецификациями, интеграция с которыми приведет к провалу. Так была создана организация BPMLab. Это группа экспертов, занимающаяся совершенствованием исполняемых BPMN-процессов путем разработки соответствующих стандартов и поддержки активного взаимодействия между BPMN и BPEL.
Исмаэль Халими (Ismael Ghalimi)
Комментарии