BPEL | это... Что такое BPEL? (original) (raw)
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возводитеёвквадративозвращаетрезультатвпеременнойnumIn возводит её в квадрат и возвращает результат в переменной numInвозводитеёвквадративозвращаетрезультатвпеременнойnumOut.
$numIn.request $num * $num
Литература
- 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