Пример использования BPEL

Аналогом бизнес-процесса в терминологии BizTalk является оркестровка. Рассмотрим пример описания бизнес-процесса при помощи оркестровки BizTalk. В задачи этого бизнес-процесса входит получение определенного сообщения и дальнейшая его пересылка в десяти экземплярах. Полученная диаграмма процесса будет выглядеть в редакторе Visual Studio следующим образом:

Рис. 6.1. Диаграмма бизнес-процесса.

 

Как можно заметить, на ней определено два порта: Receive Port с операцией получения сообщения и Send Port с операцией его отправки. Сообщение получает элемент Receive, свойство Activate которого выставлено в true. Затем запускается цикл Loop с условием: «Variable > 0». Значение переменное Variable задается при ее инициализации при помощи свойства InitialValue, которое выставляется равное 10. Значение переменной изменяется при помощи скрипта Expression, где в качестве выражения введено: «Variable = Variable - 1;».

Переменные и сообщения задаются и редактируются в окне Orchestration View, которое выглядит следующим образом:

Рис. 6.2. Структура оркестровки.

 

Для задания порта в проект был добавлен файл XML-схемы, в котором был определен формат используемых сообщений. В качестве шаблона взаимодействия (Communication Pattern) был использован шаблон One-Way, позволяющий задать только одну операцию: получение или отправка. Привязки у портов в рассматриваемом примере не задавались. Таким образом, их необходимо будет задать при установке полученного приложения на сервер, указав при этом используемый адаптер и адрес в формате выбранного адаптера.

Откомпилированное приложение может быть загружено на сервер BizTalk, настроено и после этого запущено. Откомпилированное приложение для сервера BizTalk представляет собой библиотеку на .NET 2.0. Однако редактор в Visual Studio позволяет получить его и в формате BPEL. Для этого необходимо выставить свойства Module Exportable и Orchestration Exportable в true, не забыв указать при этом требуемое пространство имен. После этого становится возможным произвести экспорт оркестровки в BPEL через пункт контекстного меню Export To BPEL, которое появляется при клике по правой кнопке мыши на соответствующей оркестровке. Для рассмотренного выше примера BPEL описание выглядит так:

<?xml version="1.0"?>

<bpel:process xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:q1="BPEL"

xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

name="BPEL.Orchestration"

targetNamespace="BPEL"

xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/">

<bpel:partnerLinks>

<bpel:partnerLink name="ReceivePort"

partnerLinkType="q1:ReceivePortType"

myRole="portRole" />

<bpel:partnerLink name="SendPort"

partnerLinkType="q1:SendPortType_0"

partnerRole="portRole" />

</bpel:partnerLinks>

<bpel:variables>

<bpel:variable name="Message"

messageType="q1:__messagetype_BPEL_Input" />

<bpel:variable name="Variable"

element="q1:int" />

</bpel:variables>

<bpel:sequence>

<bpel:receive partnerLink="ReceivePort"

portType="q1:RecivePortType"

operation="ReceiveOperation"

variable="Message"

createInstance="yes" />

<bpel:assign>

<bpel:copy>

<bpel:from>

<int xmlns="BPEL">10</int>

</bpel:from>

<bpel:to variable="Variable" />

</bpel:copy>

</bpel:assign>

<bpel:while condition=" bpel:getVariableData( 'Variable') &gt; 0">

<bpel:sequence>

<bpel:invoke partnerLink="SendPort"

portType="q1:SendPortType"

operation="SendOperation"

inputVariable="Message" />

<bpel:assign>

<bpel:copy>

<bpel:from expression=" bpel:getVariableData('Variable') - 1" />

<bpel:to variable="Variable"

query="/*[local-name()='int' and namespace-uri()='BPEL']" />

</bpel:copy>

</bpel:assign>

</bpel:sequence>

</bpel:while>

</bpel:sequence>

</bpel:process>








Дата добавления: 2015-02-28; просмотров: 1487;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.