BPEL - Business Process Execution Language
Доклад, 14 Декабря 2014, автор: пользователь скрыл имя
Описание работы
На сегодняшний день создано огромное количество технологий и продуктов, которые решают задачи автоматизации бизнес-процессов предприятия. При этом главными проблемами в контексте предприятия в целом были и остаются задачи взаимодействия приложений от разных производителей и возможности динамического создания новых бизнес цепочек на основе существующих модулей автоматизации.
Файлы: 1 файл
BPEL (Business Process Execution Language).docx
— 195.93 Кб (Скачать файл)Обязательными для всех трех
действий являются атрибуты partnerLink, portType и operation, определяющие взаимодействие
с партнером. Атрибуты inputVariable и outputVariable в действии <invoke> определяют переменные для
входного и выходного сообщений; для двух
других действий задается только один
атрибут - variable.
Вложенный элемент <correlations> задает во всех трех действиях
корреляционные наборы для соотнесения
сообщения с определенным экземпляром
сервиса. Вложенные элементы <catch> и<cathAll>, а также <compensationHandler> применяются только в действии <invoke>.
Кроме того, в действии <recive> может задаваться также атрибут createInstance, определяющий создание нового экземпляра процесса, а в действии <replay> - атрибут faultName, если процесс отправляет сообщение об ошибке.
Другими примитивными действиями являются:
присваивание - элемент <assign>, в который вкладывается один или несколько элементов <copy>;
генерация ошибки - элемент <throw> с атрибутом faultName (имя ошибки), возможно также задание имени переменной (атрибут faultVariable), в которую помещаются расширенные данные об ошибке;
ожидание - элемент <wait> с атрибутом for, значением которого является выражение длительности, или until, значением которого является выражение задержки (дата или дата-время);
прекращение - элемент <terminate>, определяющий немедленное завершение процесса без обработки ошибок и компенсации;
пустое действие - элемент <empty>.
Структурированные действия определяют порядок выполнения действий бизнес-процесса.
Последовательность - элемент <sequence> определяет выполнение вложенных в него элементов действий в том порядке, в каком они перечислены.
Переключение - элемент <switch> определяет разветвление процесса; в этот элемент вкладывается один или несколько элементов <case>. В элемент <case> вкладываются элементы, определяющие действия ветви, а его атрибут condition задает условие выполнение ветви. Необязательный элемент <otherwise> определяет действия для случая, если ни одно из условий не выполняется.
Цикл - элемент <while>. В него вкладываются элементы, определяющие тело цикла, а атрибут condition задает условие выполнения цикла.
Выбор - элемент <pick>. В этот элемент вкладывается
несколько элементов <onMessage>. Атрибуты элемента <onMessage> - такие же, как у элемента <recive>. В элемент <onMessage>вкладывается также элемент <correlations> и элементы действий. Действие
выбора задает ожидание одного из определенных
в нем сообщений (любого) и после прихода
такого сообщения выполняет определенные
для него действия. В элемент <pick> может быть вложен также элемент <onAlarm> с такими же атрибутами, как
и у элемента <wait>, определяющий действия, которые
должны быть выполнены, если сообщение
не будет получено в указанный срок.
Поток - элемент <flow>. Действия, вложенные в элемент <flow>, выполняются в отдельном потоке выполнения, параллельно с другими потоками. В элемент <flow> может быть также вложен элемент <links>, задающий имена связей. Эти связи используются для синхронизации выполнения потоков. В любой элемент действия может быть вложено любое число элементов <source> и<target>, определяющих связи, для которых данное действие является источником или приемником соответственно. Аргумент linkName этих элементов определяет имя связи, у элемента<source> может быть еще аргумент transitionCondition, задающий логическое выражение. Действие, являющееся приемником связи, инициируется только после того, как выполнится (с выполнением условия) действие-источник. Элемент действия, являющегося приемником связи, может также иметь атрибут joinCondition, задающий условие, при выполнении которого связь срабатывает.
Пример применения BPEL.
Рассмотрим пример использования BPEL при решении довольно обычной задачи: транспортное агентство получает от клиента запрос на приобретение билетов по некоторому маршруту, заказывает билеты в авиакомпании и получает их от нее (для упрощения примера мы не рассматриваем последующие действия - оплату билетов, доставку их клиенту и т. д.). Потоковая диаграмма действий такого бизнес-процесса представлена на рис. 3, а в листинге содержится соответствующий программный код, демонстрирующий основные элементы BPEL.
|
Рис. 3. Бизнес-процесс заказа авиабилетов. |
Программа начинается с описания бизнес-процесса, названного ticketOrder (тег). Далее идет блок описания партнеров, участвующих в этом процессе (ограниченный тегом). В данном случае их два - клиент (customer) и авиакомпания (airline). Для подключения партнеров к процессу служит двусторонний указатель, называемый serviceLinkType и содержащий две коллекции Web-сервисов, ссылки на которые выполняются с помощью ролей. В частности, указатель buyerLink включает две роли, в каждой из которых имеется описание соответствующего порта:
<serviceLinkType name="buyerLink"> <role name="ticketRequester"> <portType name="itineraryPT"/> </role> <role name="ticketService"> <portType name="ticketOrderPT"/> </role> </serviceLinkType> |
Соответственно партнер airline, который использует описание buyerLink, указывает две роли: для владельца процесса (myRole) и внешнего партнера (partnerRole).
Описание WSDL-сообщений, отправляемых между Web-сервисами, приведено в блоке, ограниченном тегами
<containers>.
Эта информация будет использоваться в последующем коде.
Логика самого бизнес-процесса, который состоит из операций, называемых действиями (activity), заключена внутри тегов
<flow>.
В начале этого блока находятся конструкции, называемые links, которые указывают направления связей при выполнении последующих операций.
Далее приведен код самих операций, которых в данном случае три. В этом примере мы используем две наиболее часто встречающихся операции activity -
<receive> и <invoke>.
Первая, receive - это просто ожидание получения сообщения от партнера. Как видно из листинга, выполнение процесса начинается с ожидания получения запроса от клиента, при этом используется сообщение типа itineraryMessage, приведенное в контейнере itinerary. Более мощный вариант такого действия может быть представлен тегом
<pick>, который позволяет принимать целый набор сообщений от нескольких партнеров.
Действие invoke может применяться в синхронном режиме для выполнения операции "отправить-принять". В нашем случае invoke работает только на отправку запроса на приобретение билета, для получения заказа служит последующее действие receive.
BPEL-описание бизнес-процесса приобретения авиабилета <process name="ticketOrder"> <partners> <partner name="customer" serviceLinkType="agentLink" myRole="agentService"/> <partner name="airline" serviceLinkType="buyerLink" myRole="ticketRequester" partnerRole="ticketService"/> </partners> <containers> <container name="itinerary" messageType="itineraryMessage" <container name="tickets" messageType="ticketsMessage"/> </containers> <flow> <links> <link name="order-to-airline"/> <link name="airline-to-agent"/> </links> <receive partner="customer" portType="itineraryPT" operation="sendItinerary" container="itinerary" <source linkName"order-to-airline"/> </receive> <invoke partner="airline" portType="ticketOrderPT" operation="requestTickets" inputContainer="itinerary" <target linkName"order-to-airline"/> <source linkName"airline-to-agent"/> </invoke> <receive partner="airline" portType="itineraryPT" operation="sendTickets" container="tickets" <target linkName"airline-to-agent"/> </receive> </flow> </process> |
BPEL и BPMN.
Business Process Modeling Notation (BPMN) была разработана для того, чтобы дать возможность бизнес-пользователям создавать легко понимаемые графические представления бизнес-процессов. Графические объекты BPMN поддерживаются набором атрибутов, которые могут непосредственно отображаться в язык BPEL. Таким образом, создается возможность генерации BPEL, и BPMN в связи с BPEL представляет собой инструмент перехода от бизнес-процесса к его исполнению.
Пример процесса «Проверить кредитную карту»(«Check Credit Card»).
BPEL код для задания «Check Credit Card»
Сферы применения BPEL.
Основная сфера применения BPEL - это интеграция систем автоматизации в рамках общих бизнес-процессов. На сегодняшний день, BPEL признан лучшим интеграционным решением не только для XML и Web-сервисов, но также Java, JCA и JMS и широко зарекомендовал себя, как средство сокращения затрат на реализацию корпоративных интеграционных проектов, уменьшения их сложности и повышения гибкости.
Предположим, что речь идет о создании новой масштабной системы автоматизации, охватывающей несколько предприятий или подразделений холдинга. Бизнес-процессы в рамках этого приложения в любом случае должны быть согласованы и формализованы с помощью каких-либо средств. Использование BPEL даст большую гибкость при внесении изменений в эти процессы в будущем, а также дополнительные возможности по расширяемости системы. Кроме того, в этом случае необязательно, чтобы все участники использовали общую платформу интеграции, поскольку BPEL ориентирован на взаимодействие разнородных платформ и приложений.
Для распределенных корпоративных приложений, которые состоят из большого количества компонент, BPEL может быть использован в качестве языка описания бизнес-логики или workflow самого приложения. Сложные готовые продукты, такие как, например, SAP, имеющие в своем составе собственные встроенные инструменты для настройки бизнес процессов, уже в ближайшем будущем будут также поддерживать и BPEL. А чтобы обеспечить "совместимость" текущих инсталляций с BPEL, сами производители рекомендуют использование продуктов третьих фирм, которые публикуют функции данного приложения в виде web-сервисов.
Глоссарий.
- BPEL (Business Process Execution Language) - язык описания бизнес-процессов, который был создан с целью облегчить интеграцию корпоративных приложений.
- BPMN (Business Process Modeling Notation) - система условных обозначений (нотация) для моделирования бизнес-процессов.
- CRM (Customer Relationship Management - Cистема управления взаимоотношениями с клиентами) - прикладное программное обеспечение для организаций, предназначенное для автоматизации стратегий взаимодействия с заказчиками (клиентами), в частности, для повышения уровня продаж, оптимизации маркетинга и улучшения обслуживания клиентов путём сохранения информации о клиентах и истории взаимоотношений с ними, установления и улучшения бизнес-процедур и последующего анализа результатов.
- ERP (Enterprise Resource
Planning) - организационная стратегия
интеграции производства и опер
аций, управления трудовыми ресурсами,финансового менеджмента и управления активами, ориентированная на непрерывную балансировку и оптимизацию ресурсов предприятия посредством специализированного интегрированного пакета прикладного программного обеспечения, обеспечивающего общую модель данных и процессов для всех сфер деятельности. - FDML (Flow Definition Markup Language) – язык описания бизнес-процессов, используемый IBM.
- Java - объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle).
- JCA (Java Cryptography Architecture) - это криптографический фреймвор
к, входящий в состав платформы Java. - JMS (Java Message Service) - стандарт промежуточного ПО для рассылки сообщений, позволяющий приложениям, выполненным на платформе Java EE, создавать, посылать, получать и читать сообщения.
- SAP - немецкая компания, производитель программного обеспечения для организаций.
- Web-Сервис - идентифицируемая веб-адресом п
рограммная система со стандартизированными интерфейсами. - Workflow (Поток работ) - графическое представление потока задач в процессе и связанных с ним подпроцессов, включая специфические работы, информационные зависимости и последовательность решений и работ.
- WSDL (Web Service Definition Language) - язык описания веб-сервисов и доступа к ним, основанный на языке XML.
- WSFL (Web Services Flow Language) - язык потоков данных Web-сервисов.
- XLANG - язык бизнес-процессов на базе XML, используемый в Microsoft BizTalk Server для управления приложениями и Web-сервисами XML.
- XML (eXtensible Markup Language) - рекомендованный Консорциумом Всемирной паутины (W3C) язык разметки.
- XML Schema - язык описания структуры XML-документа.
- Xpath (XML Path Language) — язык запросов к элементам XML-документа.
- Автоматизация бизнес-процесса - реализация бизнес-процесса с помощью информационных технологий.
- Алгоритм - набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий.
- Аппаратная платформа – уровень, образованный микроархитектурой, микропрограммой управления ядром микропроцесса и архитектурой набора команд на аппаратной базе конкретных микросхем процессора, чипсета, других физических компонентов, которые в совокупности представляют аппаратную модель вычислительной системы..
- Артефакт - явление, процесс, предмет, свойство предмета или процесса, появление которого в наблюдаемых условиях по естественным причинам невозможно или маловероятно.
- Архитектура предприятия - это наиболее общее и всестороннее представление предприятия, как хозяйствующего субъекта, имеющего краткосрочные и долгосрочные цели ведения своей основной деятельности, определенные миссией на региональном и мировом рынке, и стратегией развития, внешние и внутренние ресурсы, необходимые для выполнения миссии и достижения поставленных целей, а также сложившиеся правила ведения основной деятельности (бизнеса).
- Асинхронность - характеристика процессов, не совпадающих по времени.
- Атрибут - существенный, неотъемлемый признак предмета или процесса, его фундаментальное свойство; ассоциированные с бизнес-объектом элементы данных или объекты.
- Бизнес-компонент - любая составляющая из совокупности сред, объектов, ресурсов, условий, алгоритмов, (взаимо-) действий, рисков, определений и др., участвующих в процессе достижения цели.
- Бизнес-логика - совокупность правил, принципов, зависимостей поведения объектов предметной области (области человеческой деятельности, которую система поддерживает).
- Бизнес-процесс - совокупность различных видов деятельности, в рамках которой "на входе" используется один или более видов ресурсов, и в результате этой деятельности "на выходе" создается продукт, представляющий ценность для потребителя.
- Блочная структура программы - организация программы в виде последовательности смежных или вложенных блоков программы.
- Булевское выражение - это выражение, которое принимает значение True или False (применяются в условиях).
- Вложенный элемент - это тип информации, например, о человеке или организации.
- Выражения задержки и длительности – выражение, приостанавливающее дальнейшее выполнение задачи, по крайней мере, на длительность, заданную вычисленным значением (применяются в действиях, связанных с ожиданием).
- Действие - каждый шаг процесса.
- Интеграционная платформа - программно-аппаратная инфраструктура, позволяющая организовать обмен данными между распределёнными приложениями и информационными системами, для поддержки, мониторинга и управления композитными (составными) бизнес-процессами предприятия.
- Интеграция корпоративных приложений - подход, предусматривающий связывание приложений, приобретенных или разработанных внутри самой компании, с тем чтобы они наилучшим образом поддерживали бизнес-процессы.
- Интерфейс - совокупность возможностей,
способов и методов взаимодействия двух си
стем, специалистов, устройств или программ для обм ена информацией между ними - Координация потоков – наиболее эффективное управление потоками для достижения каких-либо целей с минимальными ошибками.
- Корреляция – статистическая взаимосвязь двух или нескольких случайных величин.
- Кроссплатформенность - это возможность беспроблемного переноса и последующей работы программы на иную программную и аппаратную платформу.
- Мультивендорность – наличие нескольких продавцов.
- Общие выражения - выражения, используемые операторами присваивания.
- Пакетная обработка данных - компьютерный метод обработки данных, предполагающий, что подлежащие выполнению программы для обработки группируются в пакеты.
- Параллельный поток - объект, выполняемый параллельно с основным потоком приложения и с другими параллельными потоками.
- Поток – последовательность машинных команд, выполняющих определенные действия или текущее состояние процесса.
- Программная платформа - аппаратный и/или программный комплекс, служащий основой для различных вычислительных систем.
- Элемент – мельчайшая, неделимая часть чего-либо.