Talend предлагает полный ESB.ESB использует Apache CXF для SOAP и REST, Apache ActiveMQ для JMS и Apache Camel для передачи и маршрутизации.Эти три модуля предоставляются в дистрибутиве, который включает в себя Apache Karaf.Караф - это контейнер OSGI.Однако, как указал Бодей, вы можете вместо этого запускать любой или все эти компоненты внутри сервлета, Java EE или даже простой JVM.
Так что это первое отличие, Talend гораздо более легкий и модульный .Эта модульность намного глубже, чем простое соответствие API Java EE.Вы можете выбрать, хотите ли вы, чтобы CXF, ActiveMQ, или какие компоненты Camel, в частности, включить.Если вы выберете вариант Karaf / OSGI, вы сможете использовать возможности управления пакетами OSGI.На первый взгляд это может показаться не важным, но в корпоративном контексте это очень важно.
OSGI управляет зависимостями на уровне package (а не jar).Это тот же стандарт, который используется в вашей Eclipse IDE.Когда вы устанавливаете пакет функций из Eclipse Marketplace (например, subclipse), вы используете управление функциями OSGI.Именно поэтому Talend включает в дистрибутив Apache Karaf.Таким образом, у вас есть одна подключаемая модульная структура для развертывания и управления зависимостями для корпоративных приложений.
Почему это важно?Потому что, когда у вас есть разные прикладные команды, развертывающие приложения на предприятии, вам нужно немного согнуть в своей шине.Вам нужно сделать несколько преобразований, немного корреляции сообщений, использовать несколько EIP-подобных идемпотентных потребителей.Хорошо, что все эти преобразования могут воздействовать на полезную нагрузку сообщения или использовать файлы jar, предоставленные проектными командами, которые создают интегрируемые приложения.И все эти проектные команды находятся на разных жизненных циклах.Это то, что Microsoft называет DLL адом, и именно поэтому изобретенные сборки .NET.Java не имеет эквивалентной функции, которая является частью JCP.Но есть очень зрелый стандарт , который обращается к этому.Это ОСГИ.Движок с открытым исходным кодом, реализующий OSGI, - это Equinox в Eclipse или Apache Felix.Оба подключаются в контейнере Карафа.
Так много для контейнера, как насчет сердца ESB, Apache Camel.Я уверен, что большинство читателей знают, но Кэмел понимает шаблоны корпоративной интеграции (EIP) из одноименной книги Грегора Хопе и Бобби Вульфа.Это просто библиотека, и она может работать в любом jvm, и фактически с или без контейнера DI, такого как Spring.Важно отметить, что Camel учитывает необходимость асинхронной, управляемой событиями интеграции, которая необходима для устранения ошибок распределенных вычислений .И он делает это совершенно гибким способом, который не требует развертывания серверов Java EE повсюду.Хотите иметь выделенный сервер интеграции, отлично используйте Talend ESB "из коробки" для сервера OSGI.Хотите, чтобы сервис включал управляемые конечные точки внутри Tomcat, отлично, разверните Camel, CXF и ActiveMQ внутри Tomcat, если хотите.Вы получаете гораздо большую независимость от платформы и гибкость архитектуры с помощью легкой модульной платформы интеграции, такой как Talend.
Еще одна особенность, о которой стоит упомянуть, заключается в том, что преобразования являются одной из тех мирских вещей, которые все еще действительно важны.Вы должны действительно подумать о том, как вы планируете управлять схемами сообщений и событий, которые размещаются на шине.Talend ESB предоставляет инструменты преобразования OTB.
(полное раскрытие - я технический директор Talend, но я надеюсь, что я акцентировал здесь аспекты Apache и OSS очень объективно)