Apache Camel и другие продукты ESB - PullRequest
       71

Apache Camel и другие продукты ESB

72 голосов
/ 25 сентября 2010

Эй,
Если у нас есть Apache Camel, зачем использовать другие решения, такие как Apache ServiceMix и Mule?
Есть ли что-то, что Apache Camel не может сделать по сравнению с этими продуктами?
Когда использовать Mule / ServiceMix, а когда использовать Camel?

Ответы [ 7 ]

69 голосов
/ 15 января 2016

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

Стратегически говоря

  • Apache Camel остался верен своим корням и не превратился в мощную и полноценную платформу времени исполнения. Это универсальный и модульный, и может работать:

    1. Внедрено в любой тип Java-контейнера (контейнер сервлетов, сервер приложений, Spring Boot).
    2. Автономный как процесс Java.
    3. В среде OSGi ( Apache Karaf ).
  • Apache Camel продолжает развиваться и набирать обороты и активность ежемесячно, как показано на графике под этим пунктом, который я извлек из OpenHub . База пользователей также продолжает расти.

Apache Camel Contributors per Month

  • В 2012 году Red Hat приобрела FuseSource , одного из основных промоутеров и разработчиков Apache Camel, ActiveMQ, ServiceMix и CXF. В Red Hat сейчас работают несколько коммиттеров и членов PMC для работы над Apache Camel.

  • Mule ESB предлагает две версии своего продукта : Community (бесплатно по лицензии CPAL) и Enterprise (платно). Они определяют версию Community как:

Идеально подходит для оценки или предпроизводственного использования.

=> Это означает, что вы должны приобрести платную корпоративную подписку для производственного использования.

  • Фактически, Mule ESB Community Edition распространяется под лицензией CPAL . Это означает, что если вы все еще решите использовать эту версию, Mule ТРЕБУЕТ, ЧТО :

    • Каждый раз, когда исполняемый и исходный код или более крупная работа запускаются или первоначально запускаются, на графическом пользовательском интерфейсе, используемом конечным пользователем для доступа к такому покрытому коду, должно появляться заметное отображение информации об атрибутах Mulesoft. включить отображение на заставке), если таковые имеются. => Обычно вам нужно объявить , что все, что вы создали с помощью Mule, работает на Mule.

    • Если доступ к вашему развертыванию Mule ESB осуществляется по сети (так будет всегда, поскольку это платформа интеграции!), Вы также должны сделать доступным источник развертывания для любого, кто к нему обращается.

  • Как уже упоминалось выше, Apache Camel - это полностью открытый проект, управляемый сообществом для сообщества . Весь исходный код общедоступен, и всем рекомендуется присылать запросы на извлечение, добавлять компоненты и помогать или спрашивать на форумах. И наоборот, сообщество мулов - это закрытое сообщество .

  • Последнее, но не менее важное; пожалуй, самая важная часть. Вот что Google Trends может сказать о Mule ESB против Apache Camel . Обратите внимание, что я использую новое семантическое themes измерение для более высокой точности, а не стандартные ключевые слова запроса . Таким образом, мы измеряем не популярность животных (Mule vs Camel), а программного обеспечения! Интерпретация: Мул сильно снижался с 2007 по 2011 год, в то время как Apache Camel рос. С 2011 года Мул находится на плато, в то время как Apache Camel продолжает активно расти!

Mule vs Camel in Google Trends

Техническая эволюция Apache Camel

Просто хотел дать вам некоторые функциональные метрики эволюции Apache Camel с 25 сентября 2010 года, когда вы изначально задавали вопрос. В то время это было исходное дерево .

  • Тогда у Camel было 88 компонентов, теперь у него 220 компонентов, включая интеграцию с Facebook, Twitter, Salesforce, Apache Ignite , Apache Cassandra , AWS, Apache Kafka , MongoDB, Apache Spark и т. Д.
  • Множество технических улучшений: механизм асинхронной маршрутизации, история сообщений, EIP автоматического выключателя, множество улучшений и улучшений EIP, таких как агрегация, разбиение, динамическая маршрутизация и т. Д.
  • Экосистема выросла и теперь включает в себя Hawtio для мониторинга и управления, fabric8 для развертывания и т. Д.
  • С тех пор было решено более 5500 заявок , включая новые функции, улучшения, ошибки и т. Д.
  • И многое, многое другое!

Заключительные ноты

Оба продукта сильно изменились за последние 5,25 лет! Тем не менее, из-за различий в лицензиях и природы сообщества Mule ESB и Apache Camel, я не думаю, что они больше сопоставимы друг с другом.

Apache Camel является полностью открытым исходным кодом, а Сообщество Mule ESB требует, чтобы пользователи указывали атрибут Mulesoft и публиковали исходный код программного обеспечения, использующего Mule. Лицензия на программное обеспечение Apache - это лицензия для бизнеса : вы можете использовать Camel без каких-либо указаний или каких-либо других требований. Действительно бесплатно как в пиве !

Надеюсь, что это отражение последних лет поможет новым зрителям! :)


Отказ от ответственности: я являюсь коммиттером и членом PMC в проекте Apache Camel.

66 голосов
/ 27 октября 2011

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.

Эд Ост

8 голосов
/ 11 января 2012

Мой пост в блоге отвечает именно на этот вопрос: http://www.kai -waehner.de / blog / 2011/06/02 / когда использовать apache-camel / => Apache Camel - легкийинтегрированная среда, ServiceMix и т. д. являются полными ESB.

5 голосов
/ 29 сентября 2010

Camel - посреднический механизм, а Mule - легкая интеграционная платформа. Разница в том, что Mule предлагает все возможности ESB, включая контейнер для развертывания приложений, REST и веб-сервисы. Mule может быть встроен таким же образом, как Camel, чтобы позволить разработчикам приложений встраивать туда код приложения со своим кодом интеграции. Оба тесно интегрируются с Spring.

Мул не использует JBI по уважительным причинам , и теперь, когда спецификация JBI была расформирована (нет рабочей группы, принадлежащей Oracle, которая изначально передавала спецификацию JBI), нет хорошей профессиональной или технической причины использовать JBI.

4 голосов
/ 26 сентября 2010

В Apache Camel есть несколько записей FAQ, которые проливают некоторый свет на этот http://camel.apache.org/faq

и коллекцию ссылок в Apache Camel http://camel.apache.org/articles.html

Есть ссылки, где люди в сообществеговорит и сравнивает Camel с другими проектами.

0 голосов
/ 12 апреля 2015

Прежде всего, вы должны понимать, что Service Mix похож на контейнер, который может запускать код Apache Camel, а Mule ESB сам по себе является отдельным продуктом

Может быть много различий между продуктами ESB.

Вы должны знать несколько вещей, прежде чем смотреть на дифференциацию. Они

  1. Как разрабатывается продукция
  2. Его лицензирование
  3. Его функции поддержки
  4. с открытым исходным кодом или нет
  5. Если источник с открытым исходным кодом может быть изменен и использован и так далее.

Вышесказанное будет лучшим фактором, который вам нужно рассмотреть, прежде чем сделать выбор. Вышеуказанное является общим для большинства продуктов, и здесь также требуется особое внимание.

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

  1. Поддержка сообщества
  2. Товарный стек
  3. Расширяемость с точки зрения изменения вашего собственного кода
  4. Способность к обучению и удобство использования
  5. Поддержка продукта при покупке как предприятие

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

Когда речь идет о верблюде Apache или другом ESB. Разница будет

  1. Номер транспорта
  2. Apache Camel предоставляет вам разнообразие DSL по сравнению с Mule, а также то, что они не имеют нескольких DSL, как в Camel.
  3. Мул в своем стеке продуктов содержит управление API и собственные облачные коннекторы, в которых Apache Camel является платформой с учетом FUSE ESB. JBoss Stack предоставляет приличное количество других продуктов, которые могут дополнить ваш выбор.
0 голосов
/ 29 сентября 2010

Клаус, в FAQ по верблюду есть ряд ошибок, что неудивительно, ни одна из них не в нашу пользу:)

  • модель UMO в Mule больше не в Mule.Мы начали отходить от этой модели в Mule 2, и она полностью изменилась в Mule 3. Теперь у нас есть очень простая модель Message Processor, которая делает ваше утверждение об этом избыточным
  • Mule имеет явное преобразование типов дляНесколько лет назад это не является отличительным признаком для Camel
  • Mule лицензируется по одобренной OSI лицензии CPAL 1.0 .Это лицензия с открытым исходным кодом, а не коммерческая.Пожалуйста, обновите это как можно скорее
...