Pull to refresh

Oracle BPEL — опыт использования в качестве workflow-движка

Reading time 2 min
Views 5K
Все началось в один прекрасный день, когда я получил ссылку на 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.
Tags:
Hubs:
+4
Comments 2
Comments Comments 2

Articles