вторник, 11 марта 2014 г.

Создание BPEL процессов в JDeveloper (часть 1.Установка, описание компонентов)

     Часто при разработке приложений возникает необходимость во взаимодействии различных сервисов, баз-данных и других протоколов.Для этого существует язык BPEL.

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

     В этой статье я хочу  рассказать о установке расширений для работы с BPEL и о компонентах BPEL в JDeveloper.

     Примечание: Работать с BPEL\BPM процессами можно  только в  версиях  Oracle JDeveloper 11g Release 1 (11.1.1.x).

     Начнем.
1. Установите и запустите  JDeveloper   версии 11.1.1.x
2. Подключите расширения SOA  как указано на рисунках ниже :
     






3. Создайте BPM приложение





     После выполненных действий, JDeveloper сгенерировал следующие  файлы:
  • <Название процесса>.bpel - алгоритм исполнения бизнес-процесса.
  • <Название процесса>.wsdl - описание интерфейсов для обмена сообщениями
  • <Название процесса>.xsd - описание структур данных проекта (XML Schema).
  •  composite.xml  -описание всей композитной сборки служб, сервисных компонентов, и ссылок .

composite.xml


     В графическом режиме файл  composite.xml разделяется на три секции:

  • Exposed services (в этой секции отображаются сервисы и JCA адаптеры, которые обеспечивают точку входа для будущего композитного SOA приложения .)
  • Components (в этой секции отображаются добавленные нами  компоненты(в нашем случае нам нужен только Bpel Process)
  • External References (в этой секции отображаются добавленные нами внешние сервисы и JCA адаптеры( к БД, FTP, BAM и др.)).


                                                         -<Название процесса>.bpel


     В графическом режиме файл  <Название процесса>.bpel разделяется на  2 секции:

  • Partner links (отображение сервисов и JCA адаптеров)
  • Блок схема процесса(собственно  самая важная секция в которой происходит разработка bpel процесса)






     Коротко об основных компонентах:

  1. Invoke - компонент для вызова сервиса(partner link).Имеет входящие и исходящие переменные.
  2. Receive -  компонент для принятия данных из сервиса(partner link).Имеет только входящие переменные
  3.  Reply -  компонент для принятия отправки данных в сервис (используется в синхронных bpel процессах для формирования ответа сервиса)
  4. Assign - компонент для работы с  данными(копирование и изменение их при помощи xpath)
  5. Wait - компонент останавливает выполнение процесса на установленное время
  6.  Flow - компонент для распараллеливания процесса
  7. Switch - компонент для разветвления процесса
  8. While  - цикл повторяет вложенные компоненты  до того как логическое условие в  "Condition" не станет false. Он похож на цикл в любом другом языке, как C, C + +, Java и т.д.