BPEL - Business Process Execution Language

Автор работы: Пользователь скрыл имя, 14 Декабря 2014 в 14:33, доклад

Описание работы

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

Файлы: 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-сервисов.

 

 

Глоссарий.

 

  1. BPEL (Business Process Execution Language) - язык описания бизнес-процессов, который был создан с целью облегчить интеграцию корпоративных приложений.
  2. BPMN (Business Process Modeling Notation) - система условных обозначений (нотация) для моделирования бизнес-процессов. 
  3. CRM (Customer Relationship Management - Cистема управления взаимоотношениями с клиентами) - прикладное программное обеспечение для организаций, предназначенное для автоматизации стратегий взаимодействия с заказчиками (клиентами), в частности, для повышения уровня продаж, оптимизации маркетинга и улучшения обслуживания клиентов путём сохранения информации о клиентах и истории взаимоотношений с ними, установления и улучшения бизнес-процедур и последующего анализа результатов.
  4. ERP (Enterprise Resource Planning) -  организационная стратегия интеграции производства и операций, управления трудовыми ресурсами,финансового менеджмента и управления активами, ориентированная на непрерывную балансировку и оптимизацию ресурсов предприятия посредством специализированного интегрированного пакета прикладного программного обеспечения, обеспечивающего общую модель данных и процессов для всех сфер деятельности.
  5. FDML (Flow Definition Markup Language) – язык описания бизнес-процессов, используемый IBM.
  6. Java - объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle).
  7. JCA (Java Cryptography Architecture) - это криптографический фреймворк, входящий в состав платформы Java.
  8. JMS (Java Message Service) - стандарт промежуточного ПО для рассылки сообщений, позволяющий приложениям, выполненным на платформе Java EE, создавать, посылать, получать и читать сообщения. 
  9. SAP - немецкая компания, производитель программного обеспечения для организаций.
  10. Web-Сервис - идентифицируемая веб-адресом программная система со стандартизированными интерфейсами.
  11. Workflow (Поток работ) -  графическое представление потока задач в процессе и связанных с ним подпроцессов, включая специфические работы, информационные зависимости и последовательность решений и работ.
  12. WSDL (Web Service Definition Language) - язык описания веб-сервисов и доступа к ним, основанный на языке XML.
  13. WSFL (Web Services Flow Language) - язык потоков данных Web-сервисов.
  14. XLANG - язык бизнес-процессов на базе XML, используемый в Microsoft BizTalk Server для управления приложениями и Web-сервисами XML.
  15. XML (eXtensible Markup Language) - рекомендованный Консорциумом Всемирной паутины (W3C) язык разметки.
  16. XML Schema - язык описания структуры XML-документа.
  17. Xpath (XML Path Language) — язык запросов к элементам XML-документа. 
  18. Автоматизация бизнес-процесса - реализация бизнес-процесса с помощью информационных технологий.
  19. Алгоритм - набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий.
  20. Аппаратная платформа – уровень, образованный микроархитектурой, микропрограммой управления ядром микропроцесса и архитектурой набора команд на аппаратной базе конкретных микросхем процессора, чипсета, других физических компонентов, которые в совокупности представляют аппаратную модель вычислительной системы..
  21. Артефакт - явление, процесс, предмет, свойство предмета или процесса, появление которого в наблюдаемых условиях по естественным причинам невозможно или маловероятно.
  22. Архитектура предприятия - это наиболее общее и всестороннее представление предприятия, как хозяйствующего субъекта, имеющего краткосрочные и долгосрочные цели ведения своей основной деятельности, определенные миссией на региональном и мировом рынке, и стратегией развития, внешние и внутренние ресурсы, необходимые для выполнения миссии и достижения поставленных целей, а также сложившиеся правила ведения основной деятельности (бизнеса).
  23. Асинхронность - характеристика процессов, не совпадающих по времени.
  24. Атрибут - существенный, неотъемлемый признак предмета или процесса, его фундаментальное свойство; ассоциированные с бизнес-объектом элементы данных или объекты.
  25. Бизнес-компонент - любая составляющая из совокупности сред, объектов, ресурсов, условий, алгоритмов, (взаимо-) действий, рисков, определений и др., участвующих в процессе достижения цели.
  26. Бизнес-логика - совокупность правил, принципов, зависимостей поведения объектов предметной области (области человеческой деятельности, которую система поддерживает).
  27. Бизнес-процесс - совокупность различных видов деятельности, в рамках которой "на входе" используется один или более видов ресурсов, и в результате этой деятельности "на выходе" создается продукт, представляющий ценность для потребителя.
  28. Блочная структура программы - организация программы в виде последовательности смежных или вложенных блоков программы.
  29. Булевское выражение - это выражение, которое принимает значение True или False (применяются в условиях).
  30. Вложенный элемент - это тип информации, например, о человеке или организации.
  31. Выражения задержки и длительности – выражение, приостанавливающее дальнейшее выполнение задачи, по крайней мере, на длительность, заданную вычисленным значением (применяются в действиях, связанных с ожиданием).
  32. Действие - каждый шаг процесса.
  33. Интеграционная платформа - программно-аппаратная инфраструктура, позволяющая организовать обмен данными между распределёнными приложениями и информационными системами, для поддержки, мониторинга и управления композитными (составными) бизнес-процессами предприятия.
  34. Интеграция корпоративных приложений - подход, предусматривающий связывание приложений, приобретенных или разработанных внутри самой компании, с тем чтобы они наилучшим образом поддерживали бизнес-процессы.
  35. Интерфейс - совокупность возможностей, способов и методов взаимодействия двух систем, специалистов, устройств или программ для обмена информацией между ними
  36. Координация потоков – наиболее эффективное управление потоками для достижения каких-либо целей с минимальными ошибками.
  37. Корреляция – статистическая взаимосвязь двух или нескольких случайных величин.
  38. Кроссплатформенность - это возможность беспроблемного переноса и последующей работы программы на иную программную и аппаратную платформу. 
  39. Мультивендорность – наличие нескольких продавцов.
  40. Общие выражения - выражения, используемые операторами присваивания.
  41. Пакетная обработка данных - компьютерный метод обработки данных, предполагающий, что подлежащие выполнению программы для обработки группируются в пакеты.
  42. Параллельный поток - объект, выполняемый параллельно с основным потоком приложения и с другими параллельными потоками. 
  43. Поток – последовательность машинных команд, выполняющих определенные действия или текущее состояние процесса.
  44. Программная платформа - аппаратный и/или программный комплекс, служащий основой для различных вычислительных систем.
  45. Элемент – мельчайшая, неделимая часть чего-либо.

 


Информация о работе BPEL - Business Process Execution Language