WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте

BPEL (англ. Business Process Execution Language) — язык на основе XML для формального описания бизнес-процессов и протоколов их взаимодействия между собой. BPEL расширяет модель взаимодействия веб-служб и включает в эту модель поддержку транзакций.

В общем виде конфигурация BPEL-проекта выглядит следующим образом:

  • BPEL-визуальный редактор;
  • Сервер управления бизнес-процессами.

Основные файлы BPEL-проекта:

  • .bpel — логический синтез и координация веб-служб. Фактически алгоритм исполнения бизнес-процесса. (его графическое представление напоминает блок-схему и диаграмму потоков данных в одном лице).
  • .wsdl — описание интерфейсов для обмена сообщениями. «Как достичь веб-службы» (WSDL).
  • .xsd — описание структур данных проекта (XML Schema).

История

Фирмы IBM и Microsoft определили два довольно схожих языка, WSFL и Xlang, соответственно. Рост популярности BPML, успех BPMI.org и открытое движение BPMS вынудили Intalio Inc., IBM и Microsoft принять решение объединить эти языки в новый язык — BPEL4WS. В апреле 2003, BEA Systems, IBM, Microsoft, SAP и Siebel Systems передали BPEL4WS 1.1 OASIS для стандартизирования по Web Services BPEL Technical Committee. Хотя BPEL4WS появился сразу в версиях 1.0 и 1.1, технический комитет WS-BPEL OASIS проголосовал 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

Гипотетический пример. 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>

Литература

  • Understanding SOA with Web Services. By Eric Newcomer, Greg Lomow. Addison Wesley Professional 2004
  • SOA for the Business Developer: Concepts, BPEL, and SCA. Ben Margolisand, Joseph Sharpe

См. также

Стандарты

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии