Различия между Camel и BPEL
Понятие SOA легко понять, но я совсем не знаком с архитектурами и технологиями интеграции корпоративных сервисов, такими как BPEL и Apache Camel.
Я знаю, что BPEL помогает организовать сервисы, и что Camel является реализацией шаблонов корпоративной интеграции. В настоящее время я читаю хорошо известную книгу "Шаблоны интеграции предприятий".
Но граница между EIP и оркестровкой мне кажется очень тонкой. На мой взгляд, Camel также организует услуги по-своему. Кроме того, Camel предоставляет множество разъемов, поэтому можно легко использовать разные протоколы.
Верблюд лучше, чем BPEL?
Или это возможно сделать с BPEL то, что вы не можете сделать с Camel?
Какие?
О том, что я читал, кажется, что Camel лучше, чем BPEL, организовывать REST-сервисы: это правда?
2 ответа
Bpel - это больше язык / стандарт для реализации bpm и оркестровки сервисов. Это немного похоже на яблоко и груши, так как верблюд - реализация механизма интеграции. Возможно, вы захотите больше взглянуть на bpel (или bpmn) для автоматизации бизнеса высокого уровня (например, в дополнение к потоку закупок с несколькими системами, длительным процессам и бизнес-логике). В Camel вы обычно работаете с более техническими аспектами, такими как маршрутизация и преобразование проводного протокола. Как правило, довольно без гражданства.
Конечно, между ними есть что-то среднее - например, маршрутизация между гомогенными протоколами, где может подойти любое решение. Например, ваш пример отдыха. Также обратите внимание, что Camel можно запускать вместе с Orchestration engiens, такими как activti и apache ode.
Мы пытались ответить на этот вопрос много раз в моей предыдущей работе. Нашими продуктами были TIBCO BusinessWorks (что-то вроде Apache Camel) и TIBCO iProcess (что-то вроде Apache ServiceMix).
И мы пришли к простому выводу:
- Если ваш процесс является долгосрочным (вам обычно нужно приостановить и дождаться одобрения от менеджера), вам нужен BPEL.
- Если ваши процессы более краткосрочные, и никто не вовлечен, вам нужна интеграция (Camel).
Это не всегда применимо, и эти два мира не имеют сильных границ, но вы можете упростить это. И еще одно замечание - вы можете выполнять BPEL-подобные процессы с помощью интеграционных продуктов и наоборот. Это просто вопрос подхода. Но если вы будете придерживаться этих правил, вы сможете различать их. Есть еще много аспектов, но это, я думаю, самый важный.