Научная статья на тему 'Технологии бизнес-моделирования и разработка дополнительной функциональности языка bpel'

Технологии бизнес-моделирования и разработка дополнительной функциональности языка bpel Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
213
33
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кадан Александр Михайлович, Кадан Мария Александровна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Технологии бизнес-моделирования и разработка дополнительной функциональности языка bpel»

Кадан А.М.,

УО «Гродненский государственный университет имени Янки

Купалы», Гродно, Беларусь, заведующий кафедрой системного программирования и

компьютерной безопасности [email protected]

Кадан М.А.

компания ЭПАМ Системз, Беларусь, ведущий программист

[email protected]

Технологии бизнес-моделирования и разработка дополнительной функциональности языка BPEL

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

Введение

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

С внедрением в Гродненском государственном университете им. Янки Купалы системы менеджмента [1], регламентирующей основные бизнес процессы подразделений, сроки предоставления документов, определяющей ответственность руководителей за своевременное предоставление достоверной и подтвержденной информации, объем как входящих, так и исходящих документов, связанных с работой подразделении университета (отделов, деканатов факультетов, кафедр) и время, необходимое на их обработку и подготовку, не имеют тенденции к снижению. Это явилось стимулом для поиска решений и технологий информатизации управления, вызвало попытки внедрения средств бизнес-моделирования и элементов систем управления бизнес-процессами на уровне отдельных подразделений, не дожидаясь появления подобной

системы в масштабе университета.

Технологии и средства бизнес-моделирования.

Понятие «бизнес-моделирование» вошло в обиход вместе с появлением программных систем, направленных на достижение комплексной автоматизации предприятий. Разработка и внедрение подобных систем предполагает комплексное обследование деятельности организации, описание ее архитектуры, реинжиниринг ее бизнес-процессов, аудит и сертификацию деятельности.

Решение всех этих задач предполагают использования средств бизнес-моделирования. Основное назначение средств бизнес-моделирования - обеспечение взаимопонимания на всех уровнях организации, устранение разрыва между стратегическим видением бизнеса и практической его реализацией [2]. Для представления бизнес-моделей в специализированных системах бизнес-моделирования используются специальные языки, понятные и руководителям высшего уровня, и аналитикам, и работникам нижнего звена. Бизнес-процессы представляются в виде графических моделей, которые иерархически и пошагово представляют взаимодействие подразделений и исполнителей. То есть современные средства бизнес-моделирования - это средства проектирования и анализа, управления знаниями организации, а не средства информационных технологий.

Главное назначение бизнес-модели - дать целостную картину функционирования организации. Можно утверждать, что и само по себе описание бизнес-процессов весьма важно, даже если оно не рассматривается как начальная стадия проекта по разработке или внедрению сложной информационной системы. Ценность бизнес-модели определяется тем, в какой степени она помогает отвечать на актуальные вопросы, стоящие перед организацией, насколько реально затрагивает каждого сотрудника организации.

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

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

Среди технологий бизнес-моделирования заметную роль играет Business Process Management (BPM) [3]. В отличие от технологий реинжиниринга, ориентированных на однократное радикальное преобразование бизнес-процессов, использование BPM направлено на непрерывные усовершенствования. А применительно к сфере программного обеспечения - связано со специализированным программным обеспечением, предназначенным для непосредственного исполнения бизнес-процессов

Такое программное обеспечение называют Business Process Management System (BPMS) или BPM-системой, или просто BPM. Важной компонентой BPM-системы являются средства визуальной разработки и специализированные графические языки, обеспечивающие среду и средства описания для создания схем бизнес-процессов. Работа организована таким образом, чтобы бизнес-аналитик мог самостоятельно, без привлечения программистов, вносить изменения в схему бизнес-процесса.

Средства проектирования информационных систем и соответствующие им языки описания предназначены для решения важных, но все же вспомогательных задач. Как обычно, сначала следует понять, что нужно автоматизировать в архитектуре организации, и только потом приступать к осуществлению такой автоматизации. В таком контексте главное назначение бизнес-модели - дать целостную картину функционирования организации, согласовать разные точки зрения на постоянно развивающиеся и меняющиеся отношения. Ценность бизнес-модели определяется тем, в какой степени она помогает отвечать на актуальные вопросы, стоящие перед организацией, насколько реально затрагивает каждого сотрудника организации.

BPEL - язык исполнения процессов.

BPM-система не является только средством графического описания бизнес-процессов. Рисование схемы бизнес-процесса является начальным этапом работы. Разработанная схема бизнес-процесса в виде XML-файла загружается в средство исполнения бизнес процессов, модуль BPM-engine, который хранит информацию об экземплярах бизнес-процесса: кем и когда он запущен, на каком шаге сейчас находится и кто отвечает за его выполнение. Второй стандартный компонент BPM-системы - модуль мониторинга, который накапливает информацию о том, как часто запускается тот или иной бизнес-процесс, сколько времени занимает его выполнение, кто из сотрудников участвует в работе, на каком шаге происходят задержки и т.д. Эти сведения позволяют разработать объективные критерии, позволяющие оценивать эффективность работы организации, ее подразделений и отдельных сотрудников.

В области интеграции технология BPM пересекается с SOA (Service Oriented Architecture) [4, 5]. В таком тандеме SOA обеспечивает стандарт на интерфейсы и среду, в которой подобные интерфейсы могут публиковаться

и вызываться, а BPM - смысловую нагрузку и правила, согласно которым системы должны передавать друг другу информацию и управление.

Предметом исследования в данной работе является язык исполнения бизнес-процессов BPEL, стандарт де-факто в современном компьютерном бизнес-моделировании. Целью исследования - разработка дополнительной функциональности языка BPEL, облегчающей его использование пользователями без профессиональной подготовки.

BPEL [6, 7] (англ. Business Process Execution Language) - язык на основе XML для формального описания бизнес-процессов и протоколов их взаимодействия между собой. BPEL расширяет модель взаимодействия веб-служб и включает в эту модель поддержку транзакций.

BPEL использует вебсервисы в качестве универсального способа интеграции приложений [8]. И с этой точки зрения его можно рассматривать как описание последовательности вызовов вебсервисов. Наряду с традиционными элементами, принятыми в workflow-моделях, в BPEL используются такие специфические методы, как асинхронные вызовы вебсервисов, «длинные» транзакции и связанные с ними механизмы обработки ошибок.

Дополнительная функциональность языка BPEL

BPEL в «чистом» виде довольно сложен в использовании неподготовленным пользователем [4]. Если такой пользователь и сможет создать простой бизнес-процесс, то более сложные процессы, включающие например кросспроцессную синхронизацию, будут для него недоступны.

Поэтому внимание было направлено на исследование возможности улучшения и облегчения процесса оркестрации сервисов в BPEL-процесс и взаимодействия между различными BPEL-процессами [5], были реализованы веб-сервисы и пользовательские компоненты, осуществляющие эти улучшения.

Основной областью для улучшений было выбрано кросспроцессное взаимодействие, так как, во-первых, эта функциональность востребована в подавляющем большинстве практических BPEL-процессов, а во-вторых, в языке BPEL нет простых возможностей обеспечить кросспроцессное взаимодействие. Было принято решение о реализации этой дополнительной функциональности на основании стандартных средств BPEL и Web-Services, не используя специфические особенности серверов исполнения BPEL-процессов (или используя специальные native-прослойки). Это дало такое важное преимущество как переносимость разработанной дополнительной функциональности на любой сервер исполнения BPEL-процессов, а значит гораздо более широкое поле для ее применения.

Реализация этих особенностей использует стандартные средства BPEL, и, следовательно, является независимой от конкретной реализации BPEL-сервера.

Среди выделенных особенностей можно отметить:

• «Запускающий» BPEL-процесс (launcher), который используется для начальной настройки BPEL-процесса и его «регистрации» в дополнительных системных сервисах.

• Отработка кросспроцессных событий (event management).

• Автоматический отложенный запуск BPEL-процессов на основании задекларированных каскадных зависимостей (declared dependencies).

• Автоматической начальной конфигурации экземпляров BPEL-процессов на основании параметров запуска процесса.

• Некоторые пользовательские компоненты BPEL-процессов для облегчения реализации BPEL-процессов. Среди них можно отметить, например, компоненты опроса состояния BPEL-процессов и синхронизации процессов различными методами (1/1, 1/*).

«Запускающий» BPEL-процесс (Launcher)

Служит для начальной инициализации других BPEL-процессов непосредственно перед началом их работы. Так как «запускающий» процесс сам является BPEL-процессом, он допускает простое изменение своей функциональности (например, добавление логирования определенных операций инициализации).

«Запускающий» BPEL-процесс может вызываться двумя способами: прямо и косвенно. При прямом вызове в качестве параметра ему передается BPEL-интерфейс (т.е. идентификатор типа BPEL-процесса), экземпляр которого необходимо создать и инициализировать. При косвенном вызове запускается сразу необходимый нам BPEL-процесс через фиктивную точку входа (которую пользователь, однако, считает реальной), который затем асинхронно вызывает «запускающий» процесс (передавая в качестве параметра свой интерфейс и точку входа) и приостанавливает свою работу. Дальнейшая работа происходит также как и при прямом вызове. WS-Registry

Этот веб-сервис предназначен для централизованного хранения свойств экземпляров BPEL-процессов. Среди этих свойств: уникальный идентификатор процесса (pid), идентификатор интерфейса процесса (описывался ранее), параметры запуска данного экземпляра процесса.

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

Вызов данного сервиса происходит в «запускающем» процессе после получения уникального идентификатора. Таким образом все экземпляры BPEL-процессов регистрируются в реестре. WS-Events (Event Management)

Служит средством коммуникации между BPEL-процессами. Основной концепцией является рассылка процессами бродкаст-событий и их прием другими процессами, подписавшимися на эти события. Существуют две

основных стратегии получения событий:

• С использование callback-вызовов.

• С опросом пула событий на наличие подходящих событий.

При использовании callback-вызова BPEL-процесс должен предоставить точку входа, поддерживающую событие, на которое она подписана. При появлении события в пуле веб-сервис произведет callback для процесса, идентифицируемого pid (указывается при подписывании), на данную точку.

При использовании стратегии опроса пула событий производится асинхронный циклический опрос пула и при наличии там события процесс получает уведомление об этом.

WS-DD (Declared Dependencies)

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

• Отложенный запуск - запуск процесса невозможен без предварительного запуска других процессов.

• Каскадный запуск - при запуске процесса должны запуститься несколько вспомогательных процессов.

Причем эти особенности могут любым образом комбинироваться. Указание специфики запуска процесса производится декларативно (т.е. описательно). Специфика запуска передается в «запускающий» процесс среди свойств экземпляра. Таким образом она может быть как общей для всего BPEL-интерфейса, так и модифицироваться для каждого конкретного экземпляра процесса, чем достигается необычайная гибкость применения сервиса.

Специфика запуска включает следующие разделы:

• Необходимые для запуска процессы (описание отложенного запуска) - список интерфейсов процессов, которые должны быть активны (системное состояние Running) для того чтобы данный процесс также перешел в состояние Running. Допускается задание дополнительной информации для интерфейсов, например можно указать конкретные pid процессов, фильтр по их свойствам (из сервиса реестра), фильтр по их состоянию, нужно ли дожидаться пользовательского запуска необходимых процессов или же запускать их автоматически, и т.д.

• Каскадные процессы (описание каскадного запуска) - список интерфейсов процессов, экземпляры которых должны быть созданы после запуска данного процесса. Допускается задание дополнительной информации для интерфейсов, например можно добавить экземплярам дополнительные свойства, указать, при каком

состоянии исходного процесса они должны быть запущены, и т.д. WS-Configurator

Используется для начальной настройки экземпляра процесса. Устанавливает процессу дополнительные свойства из персистентного хранилища, а также сохраняет их там после завершения процесса. Работает с идентификатором конфигурации cid, которые можно опционально указать в свойствах процесса при его запуске. Таким образом каждый cid обеспечивает персистентное сохранение уникальной конфигурации.

Использование дополнительной функциональности.

Синхронизация процессов

Типичной особенностью сложного BPEL-процесса является его синхронизация с другими BPEL-процессами. Мы выделяем два спосба такой синхронизации.

Первый способ. По количеству процессов при синхронизации:

• 1/1 - процесс ждет определенного состояния другого процесса, после чего он продолжает свою работу.

• 1/* - процесс ждет определенного состояния нескольких других процессов (состояния могут быть как одинаковыми, так и задаваться для каждого отдельного процесса), после чего он продолжает свою работу.

• Второй способ. По виду запроса на синхронизацию:

• Клиентский - запрос на синхронизацию происходит на стороне процесса, который должен ждать синхронизации с другим процессом. Реализуется на основании данных WS-Registry, а именно получения состояния процесса по pid.

• Серверный - через WS-Events процесс бродкастит событие изменения своего состояния, а все процессы, подписанные на это событие, получают либо callback-вызов, либо запись события в пул (в зависимости от вида подписки).

На основании разработанных улучшений BPEL были разработаны пользовательские компоненты, отвечающие за синхронизацию BPEL-процессов всех четырех типов.

Использование дополнительной функциональности.

Отложенный запуск процессов

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

используется такая функциональность WS-DD как отложенный запуск процессов.

Заключение

В ходе проведенных исследований были проанализированы возможности улучшения функциональности языка BPEL в аспекте простоты создания и изменения сложных бизнес-процессов неподготовленным пользователем. Спроектированы и реализованы улучшения функциональности языка BPEL в области работы с XML-данными, включающие компоненты для создания, редактирования и чтения XML-данных, а также компоненты для создания XPATH-выражений. Спроектированы и реализованы улучшения функциональности языка BPEL в области настройки межпроцессных коммуникаций, включающие разнообразные веб-сервисы и системные BPEL-процессы, обеспечивающие поддержку реестра экземпляров бизнес-процессов, обработки кросспроцессных событий и автоматического и отложенного запуска экземпляров бизнес-процессов. Разработанная дополнительная функциональность языка BPEL позволяет носителям знаний о бизнес-процессах напрямую вкладывать свои знания в бизнес-модель организации, исключая такое промежуточное искажающее звено как специалист по компьютерному бизнес-моделированию.

Литература

1. Система менеджмента ГрГУ [Электронный ресурс] - Гродно, 2010. - Режим доступа: http://smu.grsu.by. Дата доступа: 05.10.2012.

2. «Подход к моделированию управляющих бизнес-процессов» [Электрон. ресурс] -Режим доступа: http://www.vernikov.ru/content/view/555/160/ Дата доступа: 05.10.2012

3. «Системы управления бизнес-процессами» [Электрон. ресурс] - Режим доступа: http://www.bpms.ru/intro/index.html Дата доступа: 05.10.2012.

4. «BPM and SOA. Where does one end and the other begin?» [Electronic resource] -Access mode: http://www.bptrends.com Access date: 05.10.2012.

5. «SOA - шаг за горизонт» [Электрон. ресурс] - Режим доступа: http://www.uddi-russia.org/wspapers/paper35.htm Дата доступа: 05.10.2012

6. «BPM and SOA. Where does one end and the other begin?» [Electronic resource] -http://www.bptrends.com Access date: 05.10.2012

7. «Business Process Execution Language for Web Services Specification, Version 1.1» [Electronic resource] - http://xml.coverpages.org/BPELv11-May052003Final.pdf Access date: 05.10.2012

8. «Web Services Business Process Execution Language Specification, Version 2.0» [Electronic resource] - Access mode: http://www.oasis-open.org/committees/ download.php/14616/wsbpel-specification-draft.htm Access date: 05.10.2012

i Надоели баннеры? Вы всегда можете отключить рекламу.