Моделирование workflow с помощью ws-bpel
DESCRIPTION
Моделирование WORKFLOW с помощью WS-BPEL. Керівник. Відповідальний виконавець. П.І. Перконос. С.В. Суботін. Назначение и цели языка. интра- интеграция разнородных приложений. интеграция B2B приложений. обеспечение взаимодействия в гетерогенной среде. - PowerPoint PPT PresentationTRANSCRIPT
Моделирование Моделирование WORKFLOW WORKFLOW с помощью с помощью WS-BPEL.WS-BPEL.
Відповідальний виконавецьКерівникП.І. Перконос С.В. Суботін
Назначение и цели языка
• интра- интеграция разнородных приложений
• интеграция B2B приложений
• обеспечение взаимодействия в гетерогенной среде
• поддержка сервис-ориентированной архитектуры
• основан на взаимодействии партнеров и процессов с помощью Web сервисов
Концептуальные основы WS BPEL
• Способность поддерживать длительные процессы с сохраняемым состоянием
• управление последовательностью, определяемое данными
• транзакционность• способность обработки исключений
Отношение к другим спецификациям
XPATH,XSLT
Базовый словарь языка и средства его расширения
ХМL Синтаксическая основа WS-BPEL
пространства именК базовым пространствам имен
•xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
•xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"•xmlns:xsd="http://www.w3.org/2001/XMLSchema">•xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/
Могут быть добавлены проблемно ориентированные
•xmlns:wsdl="http://science.org/wsdl/runge_kutt_method ………………………………………..
В спецификацию WS_BPEL могут включаться внешние спецификации
<import namespace=«URI идентификатор пространства имен"? location=" URI адрес включаемой спецификации"? importType=" URI адрес xsd схемы включаемой спецификации " />*
Структура WS-BPEL документа
<wsdl:definitions …..>Спецификация WEB сервисов которые используются в описываемом workflow и партнеров которые в нем участвуют
</wsdl:definitions >
<process …>……..
………….
</process >
<структурный подпроцесс::= sequence|if|while|repeatUntil|forEach|pick|flow|scope|compensate|.. ><variables> …… </variables><assign> …XPATH,XSLT выражения… </assign>
…….
………
…….</структурный подпроцесс>
<activity::=receive|reply|invoke|assign|throw| rethrow| exit|wait|empty|validate..></ activity >
<activity> … </ activity ><activity> … </ activity >
< структурный подпроцесс > … </ структурный подпроцесс >
Определение WEB сервисов и партнеров
<wsdl:definitions xmlns:wsdl="http://science.org/xsd/runge_kutt_method …..>
</wsdl:definitions >
<wsdl:types> <xsd:schema> <xsd:import namespace=..., schemalocation=…/> </xsd:schema></wsdl:types>
…..
<wsdl:message name=..> <wsdl:part name =..,type= “ссылка на тип в wsdl”/> </wsdl:message>
<wsdl:porttype name=..> <wsdl:operation name=..> <wsdl:input message=…/> <wsdl:output message=…/> <wsdl:fault name=.,message=…/> </wsdl:operation> </wsdl:porttype>
…..
<plnk:partnerLinkType name=..> <plnk:role name=..., portType=.., EPR=..> <plnk:role name=..., portType=..,EPR=></plnk:partnerLinkType>
Переменные и манипулирование данными
<wsdl:definitions > …….. </wsdl:definitions >
<variables > <variable> name= .. messageType=.. |type=...| element </variable > ……..</variables >
WSDLmessage
XML schema
EII of XML schema
<process > xlmns:ext .. <validate> variablenames =“v1 v2 … ” </ validate > ……..<assign> <copy> <from >XPATh expression </from> <to> XPATh query </to> </copy></assign> <assign> <copy> <from >DoXslTransformation(«что»,«как») </from> <to> XPATh query </to> </copy></assign>
</process>
Основная функциональность
Ожидает определенное
сообщение Отправляет
ответное сообщениеИнициирует выполнение
сервиса
Манипулирование данными
Проверка данных на соответствие
схемы
Пустая операция
Возбуждает исключительную
ситуацию Проталкивает исключительную
ситуацию в вышестоящий
структурный блок
Заверщает Workflow
Ожидание указанного момента
Откат транзакции
Доопределенная функциональность
Выполнение сервиса
<process > <invoke partnerLink=… portType=.. operation=.. inputVariable=.. outputVariable=..> <catch faultName=..| faultVariable=.. faultMessageType=..| faultElement=..> activity </catch> <catchAll> activity </catchAll> <compensationHandler> activity </compensationHandler> <toParts> <toPart part=.. fromVariable=.. /> </toParts> <fromParts> <fromPart part=.. toVariable=.. /> </fromParts> </invoke>
</process>
<wsdl:definitions > …….. </wsdl:definitions >
<variables >……..</variables >
Обмен сообщениями
<process > <receive partnerLink=… portType=.. operation=.. Variable=.. MessageExchange=.. > <fromParts> <fromPart part=.. toVariable=.. /> </fromParts> </ receive>
<reply partnerLink=.. portType=.. operation=.. Variable=.. MessageExchange=.. > <toParts> <toPart part=.. toVariable=.. /> </toParts> </reply>
</process>
Структурная функциональность
Параллельное выполнение входящих действий
Последовательное выполнение входящих действий
Циклическое выполнение
цепочки действий
Циклическое выполнение
цепочки действий
Ожидание определенного события
Циклическое выполнение цепочки
действий
Условное выполнение действий
Структурирование контекста выполнения
Последовательность выполнения
<sequence> activity ……. </sequence >
<if> <condition> expression </condition> activity <elseif> <condition> expression </condition> activity </elseif> <else> activity </else> </if >
<Flow> <links> <link name=../> .. </links> < activity> <source> linkName=.. <transitionCondition> expr </ transitionCondition > </source> <target> linkName=.. <joinCondition> expr </joinCondition > </ target > < /activity> ……. </Flow>
Циклы <While> <condition> expression </condition> activity</ While>
<Foreach counterName=.. Parallel=yes|no>
<startCounterValue> expr </startCounterValue > <finalCounterValue> expr </finalCounterValue >
<Completioncondition> <branches successfulBranchesOnly="yes|no"> expression </ branches > </Completioncondition> <scope> ……. < / scope >
</ Foreach >
<RepeatUntil> activity <condition> expression </condition></ RepeatUntil >
Обработка исключений
<scope isolated="yes|no” exitOnStandardFault="yes|no"? > …….. <scope > <variables> …. </ variables > <partnerLinks> …. </ partnerLinks > <EventHandlers> …. </ EventHandlers > <FaultHandlers> …. </FaultHandlers > <CompensationHandler> …. </CompensationHandler> <TerminationHandlers> …. </ TerminationHandlers >
ACTIVITY <if> … <throw/> </if> </scope > ……..</scope >
<CompensationHandler> ACTIVITY </CompensationHandler>
<FaultHandlers> <Catch faultName=.. Faultvariable=.. > ACTIVITY </Catch > <CatchAll > ACTIVITY </CatchAll ></FaultHandlers>
Default faulthandler <CatchAll > <sequence> <compensate/> <rethrow/> </sequence> </CatchAll >
<EventHandlers> <Onevent PartnerLink=.. Operation=.. > <scope >…. </scope > </Onevent>
<OnAlarm > <for> duration_expr </for> <Until> duration_expr </ Until > <repeatevery> duration_expr </ repeatevery > <scope >…. </scope > </OnAlarm> </EventHandlers>
Выполнение
5
Застосування
Застосування
Застосування замовника
SAP
Пакети застосувань
Компоненти
Сервіси (атомарні,
композитні)
Потоки бізнес-
процесів
Користувачі сервісів
В2ВПортали .NET
Платформи
UnixOS/390
Сполучне ПО
MQ DB2
1
2
3
4
Операційні
системи
Жизненный цикл WORKFLOW c использованием WS-BPEL в
WEBРеинжениринг бизнеспроцессов
проектирование
WSDL
Abstract WS-BPEL
CASE
UddI портал
разработка
Бизнес аналитик
Executable WS-BPEL
Системный аналитик
Программист
Пользователь
Программные
платформы
WEB сервер
WSBPEL Engine
SOAP
UddI реестры
Выполнение
5
Застосування
Застосування
Застосування замовника
SAP
Пакети застосувань
Компоненти
Сервіси (атомарні,
композитні)
Потоки бізнес-
процесів
Користувачі сервісів
В2ВПортали .NET
Платформи
UnixOS/390
Сполучне ПО
MQ DB2
1
2
3
4
Операційні
системи
Жизненный цикл WORKFLOW c использованием WS-BPEL в
WEBРеинжениринг бизнеспроцессов
проектирование
WSDL
Abstract WS-BPEL
CASE
SPARQL engine
разработка
Бизнес аналитик
Executable WS-BPEL Системный
аналитик
Программист
Пользователь
Программные
платформы
WEB сервер
WSBPEL Engine
SOAP
UddI реестры
RDF OWL
SPAR
QL en
gine