Про BPEL

Материал из YourcmcWiki
Перейти к: навигация, поиск
  • BPEL: Business Process Execution Language, XML-язык описания бизнес- и интеграционных процессов
    • (Ключевое различие: бизнес-процесс длителен и даже может требовать участия человека, интеграционный - краткий и автоматический)
  • Процессы описываются сервисами, преобразованиями и логическими блоками
  • Все обрабатываемые данные хранятся в произвольном количестве XML-типизированных переменных
  • Есть обработка ошибок, автоматические повторы, полный автоматический persistence и работа в active-active кластере
    • (большое преимущество BPEL и OpenESB)
  • Логические блоки стандартные - ветвления, циклы, параллельное выполнение, ожидание, ловля исключений
  • Простые преобразования производятся через XPath (для многого вполне достаточен), сложные - XSLT и даже JavaScript в случае необходимости
    • XPath редактируется визуально (BPEL Mapper), поэтому разработчик может даже не догадываться, что это именно XPath :)
  • Сервисы описываются WSDL и бывают In-only, Out-only и In-out. Взаимодействие с каждым сервисом осуществляется соответствующим JBI-компонентом OpenESB
    • Процесс всегда начинается с получения сообщения от какого-либо сервиса
    • Типы входных и выходных данных сервисов описываются XML Schema
  • Есть возможность визуальной отладки процесса, запущенного в экземпляре ESB, прямо из IDE с установкой контрольных точек, просмотром значений переменных и т.п.
  • BPEL вместе с описаниями сервисов собирается в типе проекта "BPEL модуль" и включается в проект типа "интеграционное приложение"
  • Интеграционное приложение разворачивается в OpenESB