Моделирование WORKFLOW с помощью WS-BPEL

Preview:

DESCRIPTION

Моделирование WORKFLOW с помощью WS-BPEL. Керівник. Відповідальний виконавець. П.І. Перконос. С.В. Суботін. Назначение и цели языка. интра- интеграция разнородных приложений. интеграция B2B приложений. обеспечение взаимодействия в гетерогенной среде. - PowerPoint PPT Presentation

Citation preview

Моделирование Моделирование 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

Recommended