0

Любите ли вы BPEL как люблю его я?

Andrey Lapin
24 августа 2010 года

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

Покопавшись по форумам, я обнаружил, что нас спасет патч к нашей
версии. Патч ставился странно, в документации по установке патча
были описаны какие-то папки, которых у меня просто не было. What's
the f**ck? После долгих танцев с бубном меня почему-то озарила идея
зайти снова на сайт с файлами для скачивания. Для меня было
откровением, что изначально я ставил не то. Нужно было скачать файл
с похожим длинным именем, но без слова BPEL, т.е. решить задачу от противного.

Эта штука называлась просто SOA — Service Oriented Application, она
содержала BPEL и даже кое-что еще (я устанавливал раньше SOA BPEL).
Установив новый продукт и патч, я обрадовался, увидев начальную
страницу в браузере. Но не тут-то было. Задачи после запуска куда-то
пропадали. Потыкав мышкой туда-сюда и их обнаружил, но с ними ничего
нельзя было сделать.

Опять приуныв, начал танцы с бубном и обнаружил ругань на NLS —
National Language Settings. Я попытался заставить систему забыть
навсегда о русском языке, но она не хотела, русские корни давали о
себе знать. Пришлось устанавливать английскую версию windows. Как я
и ожидал, это помогло, но не до конца. Почему-то система ругалась на
отсутствие памяти, хотя памяти было достаточно. Пришлось разрешить
использовать памяти побольше.

После таких мытарств Oracle BPEL стал работать. Думаете, это конец?
Вовсе нет. Дальше начались проблемы с API. Очень бедная документация
заставляет обращаться на форум Oracle за поиском нужной информации.
Часто я наталкивался на аналогичные проблемы, что и у меня и часто
там не было ответа.

Что можно сказать об Oracle BPEL, если он все-таки у вас
заработает как нужно? Это язык для настоящих программистов. Вы
должны знать XPath, и разбираться в вызовах веб-сервисов. Нельзя делать произвольные переходы между задачами. Видимо
BPEL писали люди, которые очень любят структурное программирование и
ненавидят оператор GOTO. А нормальный workflow как раз должен иметь хитрые
переходы типа goto.

В BPEL приходится делать много, чтобы сделать простые вещи. BPEL
изначально создавался как язык по работе с сервисами и плохо подходит
под роль workflow-движка. Зачем-то авторы BPEL сделали так, что при
любой ошибке весь процесс падает. А в реальной жизни бизнес-процессы
могут длиться месяцы и восстанавливать процесс в прежнее состояние —
задача непростая. При таких ошибках логично было бы останавливаться на
проблемном шаге, чтобы иметь возможность исправить ошибку без
перезапуска процесса.

Вдобавок система в целом нестабильна и по ходу работы обнаруживаются
ошибки, которые решаются путем перезапуска, либо переустановки. Возможно
это происходило из-за того, что я использовал Oracle Express Edition
вместо обычного Oracle Server.
Еще забыл сказать, что есть возможность ставить Oracle Lite, но с ним пропатченный BPEL вообще не работает.

При работе были использованы версии:
Oracle SOA Suite 10g 10.1.3.1, patch 10.1.3.5
Oracle Express Edition 10.2.0.1

Всем успехов в изучении Oracle.

Метки: , ,

Оставить комментарий