Apache Camel - это библиотека, реализующая шаблоны корпоративной интеграции (EIP). Хотя он может использовать Spring в качестве своей среды IOC, он даже не зависит от Spring, поэтому он полностью независим от платформы. Это просто библиотека. Так что вы можете запустить его в любой среде JVM, например, простой jvm, сервлет, ejb, osgi. Это не приносит никаких преимуществ (или накладных расходов) контейнера, такого как Мул. На мой взгляд, в этой области четкое разделение интересов.
Mule также может быть встроен в различные среды, но я думаю, что Mule имеет как преимущества, так и недостатки при подключении своей библиотеки EIP к своему контейнеру. Когда вы развертываете Mule в среде сервлетов или ejb, действительно ли вы хотите нести весь этот багаж контейнера Mule? Я не эксперт по Mule, и я думаю, что вы, вероятно, можете потратить относительно скромные усилия и избавиться от лишних возможностей. (Обратите внимание, что это не плохая возможность во всех случаях, она просто избыточна, если вы работаете встроенным в другой контейнер.)
Apache ServiceMix - это контейнер OSGI, который использует Camel для реализации EIP в качестве основы ESB. Хотя ServiceMix изначально начинался с JBI, он отошел от JBI и превратился в (IMO) красивую многоуровневую архитектуру, сочетающую в себе лучшие в своем классе Apache CXF, Camel и ActiveMQ в контейнере OSGI. Основное значение здесь на самом деле не в ServiceMix и его поддержке JBI, а в базовом контейнере OSGI стандарт в сочетании с проверенными транспортными средствами Apache, такими как CXF для веб-служб и ActiveMQ для JMS. OSGI является зрелым стандартом, который предлагает контейнер, предназначенный для тех же типов «DLL», которые преследовали Microsoft до появления .NET. Хотя ни .NET, ни OSGI не решают существенную сложность основной проблемы, они, по крайней мере, предоставляют средства для ее решения. У OSGI есть и другие преимущества, но с точки зрения выбора продукта контейнер, основанный на стандартах , является основным, и его существенная особенность, к которой не обращается Mule (и Java в целом), - это управление зависимостями.
Некоторые важные вещи, которые следует отметить при сравнении Mule с сообществами Apache. Мул похож на Redhat в том смысле, что хотя это лицензия с открытым исходным кодом, на мой взгляд, на самом деле это не открытое сообщество. Любой может участвовать в Apache, в то время как MuleSoft владеет сообществом Mule и окончательной дорожной картой. Во-вторых, хотя сообщество Mule, возможно, довольно активно, я думаю, что сообщество Apache намного больше (и, естественно, так как оно не является закрытым сообществом). Оба подхода имеют как плюсы, так и минусы. Одним из положительных моментов в подходе Apache является то, что есть несколько поставщиков ESB на основе Camel, CXF, ActiveMQ и OSGI. Например, Talend предлагает ESB на тех же основных технологиях без истории ServiceMix JBI. Это имеет как плюсы, так и минусы в сообществе Apache, но реальная цель состоит в том, чтобы подчеркнуть разницу между Apache и Mule. В сообществе Mule вы не найдете нескольких поставщиков. Таким образом, IMO - Apache ESB, такой как Talend или ServiceMix, - более широкое и более инклюзивное и в конечном итоге конкурентное сообщество, чем закрытое сообщество, такое как Mule.
Эд Ост