Как стать автором
Обновить

Комментарии 18

Что выбрать? Универсального ответа нет.

Я бы выбрал чистый karaf без примесей :) Все остальное интегрируется один раз, небольшими усилиями, а в итоге практически ничем не отличается от решения из коробки.

Тоже хороший вариант.
Не все так просто. Karaf Cellar и рядом не стоял с fabric8 для деплоймента распределенных приложений, распределенного реестра и т.п.

Погодите, а разве fabric8 где-то привязан к ServiceMix или Fuse? Мне всегда казалось, что на чистый karaf его вполне можно прикрутить.

fabric8 под капотом содержит сконфигурированный karaf с предустановленными бандлами. Его так легко не установить на чистый karaf.

Да ладно. В karaf нет ровным счетом никакой магии. Все чем отличается Fuse от голого карафа — это сами некие бандлы в репозитории (папка system), и кое-что в etc (startup.properties, в основном).


Это все либо устанавливается путем копирования, либо делается сравнительно простой merge для конфигов. Один раз — а потом клонирование. Вот простой upgrade на более новые версии никто не обещал — и его так просто не сделать, да.


Можно конечно считать и наличие hawtio из коробки достоинством — но факт в том, что последняя версия ставится двумя командами и сразу работает. Также, как наличие из коробки Camel — но при этом текущая версия его вовсе не 2.16.3, а скорее 2.17.3 — т.е. решение из коробки отстает от новых версий, причем сильно.

Никто не мешает и fabric8 прикрутить.
А вообще мне сложно представить кластер ESB, такой большой, что мне понадобится вся мощь fabric8. Я, конечно, понимаю, что сейчас модно облака да контейнеры. Но в нашем кровавом энторпрайзе это всё пока где-то на горизонте чуть виднеется.

В нашем тоже. Типовой кластер — две-три машины. В пределах 1000 бандлов, может чуть больше. Мы пока и без cellar успешно обходимся.

Насчет BPM и транзакций — это вы кстати того, преувеличили…


Персистентность процессов и транзакции — вещи перпендикулярные, и друг от друга практически не зависят. Никто не мешает завести в camel route transaction manager (ровно так, как это описано в документации), и реализовать любой сценарий обработки ошибок, включая и откат транзакции, конечно. Никакой BPM движок для этого не нужен совершенно.

Ничего противоречащего вашим словам я не писал.
Если при использовании Apache Camel без Activiti происходит сбой, то все не отправленные данные будут потеряны, все транзакции откатятся.

А вот тут, по-вашему, об Activity зачем написано? Я не знаю, может вы имели в виду что-то другое, но читается это странно, и запутывает знатно.

Ну может быть запутанно. основная мысль такая, что у Camel нет механизма сохранения состояния. Соответственно, если произойдет сбой в тот момент когда обмен еще не закончится, то все данные этого обмена будут потеряны. Если мы имеем дело с транзакционными ресурсами, то транзакции откатятся.

А вот Activiti такой механизм персистентности предоставляет. Если на полпути процесса произойдет какой-нибудь сбой, то при восстановлении работы, процесс продолжится с этого места.

Впрочем, персистентности можно добиться с использованием БД и персистентных очередей сообщений. Но это уже от задачи зависит.
Activity полезен, когда аналитики могут рисовать BPMN2 диаграммы или принимающие проект, с радостью подписывают работы, если там больше диаграмм.

Это сарказм был, я надеюсь? )

У вас есть какие-то конкретные предложения по управлению бизнес-процессами? Ну или вот частный случай, оркестрации веб-сервисов?

У меня есть только печальный трехлетний опыт. К сожалению, BPMN в разработке — это скорее обуза, чем подмога. Как только вы начинаете делать что-то серьезное, вы почти со 100% вероятностью натыкаетесь на несколько врожденных недостатков диаграмм как средства для представления логики программы. Для простоты, упомяну лишь некоторые: 1. Диаграммы плохо комбинируются, и это известно со времен распространения блок-схем. 2. Диаграммы плохо версионируются, что делает их в некотором роде write once инструментом. 3. Мощность BPMN как языка недостаточна, поэтому приходится комбинировать с другими.


Activity, кстати, далеко не худший выбор в том случае, когда бизнес-процессы все-таки реально нужны.


Оркестрация — это область скорее BPEL, как мне кажется.

Не знаю чем вам так насолили диаграммы. Но у меня такое же мнение, что по возможности BPM'ов надо избегать. Хотя личном мне не нравятся реализации, а не сама концепция. Ни одна реализация мне не нравится. И Activiti — «далеко не худший выбор».

Насолили? Да ничем, кроме того, что мне пришлось их несколько лет делать. Реализации — почти все отстой. И это еще мягко говоря.


Что же до концепции… То если упростить скажем пункт 2, то все выглядит так — вы делаете в IDE диаграмму. Потом вы решаете сходить скажем в отпуск. Вернувшись, вы хотите понять, что же именно в диаграмме поменялось, пока вас не было. И тут вас ждет огорчение по полной программе. Вы этого не можете сделать, или это потребует столько времени, что просто ах.
На мой взгляд — это недостаток именно концепции.


Т.е. диаграммы не позволяют развивать проект. Вы не видите истории кода, вы не понимаете, откуда взялось то или иное изменение, вы не можете слить две разные ветки разработки процесса. Слить как диаграммы — конечно, вы можете залезть в XML, и покопаться там. Но это обычно ужас-ужас.


Т.е. у вас нет простейших вещей, которые в сегодняшней разработке являются привычными и обязательным. Привычными везде — кроме мира BPM.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории