Развертывание (deployment) Web-служб
Для того чтобы развернуть (установить) сервисы можно воспользоваться разработанными заданиями ant (см. Приложение Г. Задания Ant (Ant Targets)). Условно можно определить три типа заданий Ant, разработанных для данного проекта:
1. Для компилирования и сборки проекта;
2. Для развертывания проекта (установки web-служб и BPEL-процессов);
3. Для запуска тестов.
На этапе сборки проекта создается файл архива, который можно устанавливать в ActiveBPEL Engine: webseller/wsr/webseller.wsr - web-служба WebSellerDB. Архив BPEL-процесса WebSeller - webseller/bpr/webseller.bpr - создается при помощи ActiveWebflow Professional.
Для сборки проекта необходимо выполнить команду (webseller/ant/ - рабочий каталог):
ant build
Все, что нужно для развертывания - это скопировать файлы архивов служб в каталог %CATALINA_HOME%/bpr. Сделать это можно командой:
ant deploy


Для запуска тестов можно воспользоваться командами:
ant deploy-junit
ant test
Тестовые примеры
Для созданного BPEL-процесса в качестве эмуляции системы, в которую интегрирован этот сервис, разработан набор JUnit-тестов (класс net.sf.dmitrygusev.webseller.test.TestWebSeller).
Краткое описание тестов и результатов их работы
В классе TestWebSeller эмулируются три исхода вызова службы:
1. Нормальное завершение обработки заказа подтверждением от клиента (метод testOrderProcessingConfirm());
2. Отмена сделанного заказа (метод testOrderProcessingCancel());
3. Таймаут (метод testOrderProcessingTimeout()).
Пример выполнения теста с таймаутом


Рисунок 8 Пример выполнения BPEL-процесса в тесте с таймаутом


Рисунок 9 Глобальные обработчики исключительных ситуаций
Заключение
Сервис-ориентированные архитектуры (Service-Oriented Architectures, SOA) сегодня очень популярны. Хотя SOA не предполагает использование web-служб в качестве сервисов, на сегодняшний день преимущественно именно web-службы используются для построения SOA. В связи с этим на ряду с поддержкой разработки web-служб в языках ООП (JAX-RPC/SAAJ/JAXM, если рассматривать в контексте языка Java) появляются также специфические языки, которые позволяют создавать новые сервисы на основе уже существующих. Примером такого языка является рассмотренный в данной работе язык BPEL, который позволяет специалистам с квалификацией ниже, чем разработчики языков ООП, например, бизнес аналитикам, с легкостью описывать бизнес-процессы, работающие в реальных SOA, пользуясь графическими нотациями, предоставляющие более высокий уровень абстракции для описания сервиса. Используя BPEL, новые сервисы могут разрабатываться за считанные дни и недели, против месяцев и годов, которые пришлось бы потратить на их реализацию, используя технологии более низкого уровня, таких как JAX-RPC/SAAJ/JAXM.