Share to: share facebook share twitter share wa share telegram print page

 

BPEL

BPEL
Орган стандартизации OASIS
Создан апрель 2003
Опубликован апрель 2003
Логотип Викисклада Медиафайлы на Викискладе

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

См. также

Стандарты

Information related to BPEL

Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya