BPEL - Business Process Execution Language

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

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

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

Файлы: 1 файл

BPEL (Business Process Execution Language).docx

— 195.93 Кб (Скачать файл)

Санкт-Петербургский Государственный Экономический Университет

(СПбГЭУ)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Доклад по дисциплине «Моделирование бизнес-процессов»

на тему: «BPEL - Business Process Execution Language».

 

 

 

 

 

 

 

 

Выполнила:

Студентка 1 курса группы

БИ 1301/27

Винокурова Мария

 

Проверил:

Колобов В.Л.

 

 

 

 

 

 

 

 

СПб, 2013

BPEL (Business Process Execution Language).

 

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

Язык BPEL (Business Process Execution Language) и концепция web-сервисов, с которой он тесно связан, представляет собой новый подход к описанию как собственно бизнес-процессов, так и механизмов их взаимодействия. Он открывает новые возможности для создания гибких, динамических бизнес цепочек, способных быстро адаптироваться к меняющимся требованиям. Главными преимуществами BPEL являются:

  • ориентация всех ведущих производителей программных технологий и тиражных решений на поддержку стандарта BPEL, а, следовательно, перспективность BPEL как будущего стандарта взаимодействия бизнес-процессов

  • гибкость настройки бизнес-процессов

  • возможность объединения в рамках бизнес-процессов как новых, так и уже существующих на предприятии приложений, тиражных и специализированных решений

  • прозрачное взаимодействие приложений, работающих на разных платформах и технологиях

  • минимальная стоимость и риски использования

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

 

Что такое BPEL?

Так что же все-таки такое BPEL - язык, стандарт или средство интеграции? На самом деле, правильными являются все три варианта ответа. BPEL - это язык описания бизнес-процессов, который был создан с целью облегчить интеграцию корпоративных приложений. Его прототипом послужили языки, разрабатываемые для этой цели более 10 лет компаниями Microsoft (язык XLANG) и IBM (WSFL, FDML). Сильной стороной BPEL выступает то, что он является специализированным, "интеграционным диалектом" XML, т.е. имеет все преимущества XML, например, такие как простота синтаксиса и кроссплатформенность. В языке BPEL описание бизнес-процесса - это XML файл, в котором взаимодействующие в рамках одного бизнес-процесса сервисы представлены в виде партнеров, обменивающихся сообщениями.

 

Три ключа к BPEL.

Основу BPEL составляют три ключевых свойства: асинхронность, координация потоков и управление исключительными ситуациями. Все они связаны с проблемами, с которыми сталкиваются разработчики, занимающиеся управлением интеграцией.

Asynchrony (Асинхронность). Асинхронность имеет дело с асинхронными

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

Flow coordination (Координация потоков). Координация потоков включает параллельный поток выполнения, образцы соединений и динамические потоки. В реальных приложениях бизнес-потоки могли бы включать образцы сложных взаимодействий, и с синхронными, и с асинхронными сервисами. Координация потока включает интерфейс с WSDL, действия потока, переменные XML и отвечает за компенсацию. BPEL использует WSDL для обращения к обмениваемым сообщениям, вызванным операциям и типам портов. Действия с потоком используют общие переменные XML, так что компенсационные обработчики (compensation handlers) должны сохранять снимки данных, которые могут быть использованы обработчиком. Компенсационные обработчики могут отменить шаги, которые были уже завершены.

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

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

 

BPEL и Web-сервисы.

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

Идея web-сервисов максимально проста. Под сервисами вообще понимается функция приложения, представленная в виде компоненты, которая может использоваться для построения бизнес-процесса. Сервис либо возвращает какую-либо информацию по запросу, либо меняет состояние приложения, например, заносит информацию в базу данных. В случае же web-сервисов дополнительно предполагается, что этот компонент имеет программный интерфейс, описанный на WSDL (Web Service Definition Language).

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

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

 

Партнеры, связи между партнерами, конечные точки.

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

Функциональность сервиса, обеспечиваемого партнером, описывается при помощи WSDL. Также и бизнес-процесс представляется для своего клиента Web-сервисом, функциональность которого представлена в WSDL. Участие сервиса в двустороннем взаимодействии с партнером описывается расширением WSDL - типом связи между партнерами. Тип связи между партнерами характеризует отношения между двумя сервисами путем определения ролей, которые каждый из них играет в диалоге, и заданием типа порта, предоставляемого каждым сервисом для получения сообщений в контексте диалога:

 

    <partnerLinkType name="имя_типа_связи">

      <role name="имя_роли">

          <portType="имя_типа порта">

      </role>

      . . .

    </partnerLinkType>

 

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

 

    <partnerLink name="имя_связи"

          partnerLinkType name="имя_типа_связи">

          myRole name="имя_роли">

          partnerRole name="имя_роли" />

 

Каждая связь именуется, и это имя используется для всех взаимодействий сервиса через данную связь. Роль самого бизнес-процесса показывается атрибутом myRole, а роль партнера – атрибутом partnerRole. В вырожденном случае связь имеет только одну роль. В таких сценариях один сервис выражает готовность связываться с любым другим сервисом без каких-либо требований к партнеру. (Например, для связи, определяющей получение самой первой заявки на обслуживание, может отсутствовать роль партнера.)

Для представления возможностей, требуемых от партнера, используется элемент <partner>. Партнер определяется как набор связей, в которых он может участвовать:

 

    <partner name="имя_партнера">

      <partnerLink name="имя_связи" />

      . . .

    </partner>

 

В WSDL существенно различаются элементы <portType> и <port>. Если <portType> описывает абстрактную функциональность, то <port> предоставляет действительную информацию, необходимую для доступа. Привязка выполняет отображение типа порта на конкретный порт. В BPEL определение роли использует ссылку на конечную точку - на тип порта. Это обеспечивает механизм для "отложенного" выполнения привязки - при развертывании бизнес-процесса или во время его выполнения.

 

Переменные и манипулирование данными.

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

Определение переменной (элемент <variable>) содержит атрибут, определяющий полное квалифицированное имя переменной, и один из атрибутов определения ее типа: type - для простого типа XML Schema, element - для сложного типа XML Schema, messageType - для типа сообщения WSDL.

Элемент присваивания имеет вид:

 

    <copy>

      <from .../>

      <to .../>

    <copy/>

 

В определении источника (элемент <from>) может задаваться имя переменной (если тип переменной - сообщение WSDL, то может выбираться часть сообщения) или имя копируемой связи партнера и роли, или свойство переменной, или выражение, или литерал. В определении приемника (элемент <to>) может задаваться имя переменной, имя связи партнера или свойство переменной.

Выражения в BPEL используются для обработки данных. Возможные типы выражений:

  • булевские выражения (применяются в условиях);

  • выражения задержки и длительности (применяются в действиях, связанных с ожиданием);

  • общие выражения (применяются в присваивании).

В BPEL заложен расширяемый механизм языка выражений: в элементе <process> предусмотрен атрибут expressionLanguage, определяющий язык выражений, но современные реализации BPEL применяют только язык выражений Xpath 1.0, расширенный несколькими специфичными для BPEL функциями.

 

Действия.

Процесс BPEL работает как запись алгоритма. Каждый шаг процесса называется действием. Имеется набор примитивных действий, при помощи которых выполняется обмен сообщениями, копирование данных, ожидание, генерация ошибки и т.д. Структурированные действия могут комбинировать примитивные и другие структурированные действия для выражения сложных, разветвленных алгоритмов. Все действия могут именоваться (атрибут name).

Примитивные действия, непосредственно отвечающие за обмен сообщениями - <recive>, <replay> и <invoke>. Первое из этих действий задает получение сообщение, второе - отправку сообщения, третье - вызов некоторого Web-сервиса с отправкой ему сообщения и получением его ответного сообщения. Для примера ниже приведена форма элемента <invoke>; формы двух других элементов подобны приведенной:

 

    <invoke partnerLink="связь"

        portType="тип_порта" operation="операция"

        inputVariable="переменная"?

        outputVariable="переменная"?>

      <correlations>?

        <correlation set="корреляционный_набор"

          initiate="yes|no"?

          pattern="in|out|out-in"/>+

      </correlations>

      <catch faultName="ошибка" faultVariable="переменная"?>*

        действие

      </catch>

      <catchAll>?

        действие

      </catchAll>

      <compensationHandler>?

        действие

      </compensationHandler>

    </invoke>

 

В приведенной выше форме символ "?" означает "ноль или один", символ "*" - "ноль или более", символ "+" - "один или более", символ "|" - "или".

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