Бизнес-процессы и web-сервисы

Отдельным действиям бизнес-процесса могут соответствовать определенные программные компоненты, в том числе и распределенные в сети. Тогда бизнес-процесс оказывается общим алгоритмом, связывающим их в единое целое и предоставляющим клиентам некоторый компьютеризированный сервис. Например, сервис по бронированию гостиниц через Интернет может включать в себя поиск отеля по критериям, сформулированным клиентом, по разным сайтам отелей.

С бизнес-процессами тесно связны web-сервисы. Так, язык BPMN имеет исполняемые проекции в язык BEPL, а последний описывает бизнес-процессы как набор взаимодействующих web-сервисов.

Web-сервисом, называется программная система, идентифицируемая строкой URI, чьи открытые интерфейсы и привязки определены и описаны посредством языка XML. Ее описание может быть найдено другими программными системами, которые могут взаимодействовать с ней посредством сообщений, описанных на XML и передаваемых через Интернет-протоколы. URI-строка (Uniform Resource Indicator) состоит из унифицированного указателя информационного ресурса - URL (Uniform Resource Locator) - и унифицированного имени ресурса - URN (Uniform Resource Name). URN - это имя, которое не ссылается на физический ресурс.

Вокруг web-сервисов существует большое количество стандартов, и в целом мировое сообщество здесь движется к созданию автоматизированных и интегрированных через Интернет бизнес-процессов, реализующих многочисленные B2B (Business to Business) связи. Однако в настоящий момент существует большое количество параллельных стандартов, крупные производители, пользуясь этой парадигмой, продвигают свои системы и платформы и т. д. Одним словом, реализация этой идеи - пока дело будущего.

Обзор BPMN

Далее будет рассмотрен известный язык визуального моделирования бизнес-процессов - BPMN (Business Process Management Notation). Исходно он был стандартизован международным комитетом BPMI (Business Process Modeling Initiative, http://www.bpmi.org), первая версия стандарта вышла в 2004 году. Позднее этот стандарт перешел под эгиду комитета OMG и в 2006 году была выпущена первая OMG-версия этого стандарта .

Процесс с точки зрения бизнеса - это отдельная деятельность (часть бизнес-процесса), выполняемая компанией или организацией. В терминологии BPMN процесс является сложным действием, которое, в свою очередь, состоит из действий, переходов между ними и т. д. Процесс можно вызывать, приостанавливать, прерывать, также он может завершаться сам, процессы могут выполняться параллельно и обмениваться сообщениями.

Итак, процесс в BPMN может состоять из следующих конструкций:

  • сущности (flows objects):
    • действие (activity);
    • порт (gateway);
    • событие (event);
  • связи (connecting objects) - соединяют разные действия и данные в единый поток исполнения, могут быть следующих видов:
    • поток исполнения (sequence flow) - переход от одного действия к другому;
    • поток сообщений (message flow) - обмен сообщениями между разными участниками процесса;
    • ассоциация (association) - опредяет переход между действиями в особенных ситуациях (например, при возникновении исключений); может использоваться для "прикрепления" комментариев, данных и пр.;
  • участники (swimlanes) процесса:
    • внешние (pools);
    • внутренние (lanes);
  • артефакты (artifacts) процесса: данные (data object), группы (groups), комментарии (annotations).

Рассмотрим эти конструкции подробнее.

Действия (activities)

Процесс состоит из цепочки действий. Действия бывают следующих видов:

  • задача –рис.11.4, а и б ;
  • свернутый подпроцесс –рис.11.4, в и г ;
  • развернутый подпроцесс –рис.11.4, д.

Бизнес-процессы и web-сервисы - student2.ru


Рис. 11.4. Виды действий

Задача (task) - это атомарное действие процесса, неделимое на более элементарные части. На диаграмме задача изображается, как показано на рис.11.4a. На рис.11.4б приводится три вида задач, которые могут быть заданы в BPMN - циклическая задача, множественная задача и откат.

Циклическая задача (loop) - это задача, которая выполняется в цикле. В параметрах этой задачи можно указать, какой цикл имеется в виду - с пред- или постусловием, определить это условие и указать некоторые дополнительные свойства цикла.

Множественная задача (multiple instance) - это циклическая задача, которая выполняет в цикле целый набор однотипных задач. Текстовыми параметрами можно задать условие цикла, количество однотипных задач, а также порядок их выполнения (последовательный или параллельный).

Откат (compensation) - задача, которая вызывается в случае отмены другой задачи, например, клиент отказался от забронированного отеля - тогда система должна освободить соответствующую бронь; пример приводится на рис.11.5.

Бизнес-процессы и web-сервисы - student2.ru


Рис. 11.5. Пример задачи с откатом

Кроме того, у задачи есть атрибут, который может иметь одно из следующих значений:

  • Service – задача является сторонним программным сервисом, вызываемым WE (это значение имеют по умолчанию все задачи); например, вызывается Web-сервис, вычисляющий погоду, курс валюты или еще что-нибудь;
  • Receive – задача является ожиданием внешнего для данного бизнес-процесса события, часто является началом бизнес-процесса;
  • Send – задача является посылкой сообщения во внешний для данного бизнес-процесса контекст;
  • User – задача выполняется человеком или группой, при этом используется некоторая сторонняя IT-технология или сервис; в параметрах можно задать как исполнителей так и используемую ими ПО;
  • Script – задача является скриптом, который WE выполняет полностью автоматически;
  • Manual – задача, которая выполняется без помощи WE или другой IT- технологии или сервиса, например, посредством личного общения менеджера с заказчиком;
  • Reference – задача является ссылкой на другую задачу;
  • None – значение данного атрибута не задано.

Эти значения не имеют графического представления и могут быть отражены, например, в имени задачи. Список этих атрибутов может быть расширен.

Еще одним типом действия является подпроцесс (subprocess). Он позволяет разбить сложные процессы на более мелкие. Подпроцессы бывают свернутые (collapsed subprocesses) - см.рис.11.4 в и г - и развернутые (expanded subprocesses) - см. рис.11.4д. Так же как и задачи, подпроцессы могут быть циклическими, множественными и с откатом, но кроме того, могут иметь еще маркер произвольный (ad hoc) - см.рис.11.4г. Он означает, что задачи и другие подпроцессы, входящие в состав данного, исполняются в произвольном порядке.

Свернутый подпроцесс является ссылкой на другую диаграмму, где он определяется в виде задач и, возможно, других подпроцессов.

Развернутый подпроцесс позволяет задать на диаграмме второй этаж (а, возможно, третий и т. д. - все зависит от того, насколько модель "глубока"). Это означает, что прямо на родительской диаграмме один или несколько процессов детализированы, как показано на рис.11.6.

Бизнес-процессы и web-сервисы - student2.ru


Рис. 11.6. Пример развернутого подпроцесса

Связи (connecting objects)

На рис.11.7 показаны связи разного вида, существующие в BPMN:

  • поток исполнения (sequence flow) –рис.11.7а; это самый распространенный вид связи, с его помощью обозначается порядок выполнения действий процесса;
  • поток сообщений (message flow) –рис.11.7б; с помощью этой связи определяются сообщения, которыми обмениваются действия; многие сущности бизнес-процесса могут обмениваться сообщениями - конструкции pools друг с другом, задачи, подпроцессы и т. д.; сообщения являются способом общения между собой параллельно работающих сущностей, поэтому сущности могут обмениваться сообщениями, лишь находясь в разных pools ;
  • ассоциации (association) - это способ отобразить различные вспомогательные связи в модели бизнес-процессов; на рис.11.7в представлена ассоциация отката; на рис.11.7г показана ассоциация исключения; другие виды ассоциаций представлены на рис.11.1, рис.11.2: с их помощью данные (data objects) соединяются с задачами и связями, а комментарии - с произвольными элементами диаграммы.

Бизнес-процессы и web-сервисы - student2.ru


Рис. 11.7. Виды связей

Наши рекомендации