26-07-2023
BPEL (англ. Business Process Execution Language) — язык на основе XML для формального описания бизнес-процессов и протоколов их взаимодействия между собой. BPEL расширяет модель взаимодействия веб-служб и включает в эту модель поддержку транзакций.
В общем виде конфигурация BPEL-проекта выглядит следующим образом:
Основные файлы BPEL-проекта:
Содержание |
Фирмы Web Services BPEL Technical Committee. Хотя проголосовал 14 сентября 2004 назвать спецификацию WS-BPEL 2.0. Это изменение было сделано, чтобы выровнять BPEL с другими стандартами веб-сервисов, которые по соглашению об именовании начинаются на WS-.
В июне 2007, Active Endpoints, Adobe, BEA, IBM, Oracle и SAP опубликовали спецификации BPEL4People и WS-HumanTask, где описывалось как может быть реализовано в BPEL взаимодействие с людьми.
О дальнейшем направлении разработки BPEL разгорается жаркая дискуссия. Необходимость добавить семантику в BPEL в форме WS-HumanTask и прочего только подчёркивает тот факт, что BPEL никогда не был полноценным языком.
Гипотетический пример. BPEL-последовательность mathProcess принимает переменную $numIn возводит её в квадрат и возвращает результат в переменной $numOut.
<process name="mathProcess" targetNamespace="http://example.com/ws-bp/math" xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:math="http://manufacturing.org/wsdl/math"> <partnerLinks> <partnerLink name="Math" partnerLinkType="math:exampleMath" myRole="mathService" /> </partnerLinks> <variables> <variable name="numIn" messageType="math:unsignedInt"/> <variable name="numOut" messageType="math:unsignedInt"/> <variable name="num" type="xsd:unsignedInt"/> </variables> <sequence> <receive partnerLink="Math" portType="math:mathPort" operation="secondDegree" variable="numIn" createInstance="yes"/> <assign name="LoopCounterIncrement"> <copy> <from>$numIn.request</from> <to variable="num"/> </copy> <copy> <from>$num * $num</from> <to variable="numOut" part="response"/> </copy> </assign> <reply operation="secondDegree" partnerLink="Math" portType="math:mathPort" variable="numOut"/> </sequence> </process>
Это заготовка статьи о компьютерных языках. Вы можете помочь проекту, исправив и дополнив её. |
BPEL.