Стоит ли изучать интеграцию ESB (ServiceMix / Mule)?[закрыто]

StackOverflow https://stackoverflow.com/questions/1365357

Вопрос

Я рассматриваю возможность интеграции ESB в существующий веб-продукт на базе Java / Maven.В частности, я смотрю на ServiceMix и Mule.Продукт будет подключаться к нескольким различным сервисам, включая электронную почту, Quartz, веб-сервисы RESTful по протоколу HTTP, SMS и IM.Я лишь бегло просмотрел документацию, и два варианта кажутся довольно тяжеловесными и довольно сложными.Это похоже на хрестоматийный пример того, когда следует использовать ESB, но я не хочу тратить много времени на простое изучение той или иной системы.

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

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

Это было полезно?

Решение

Mule довольно прост в использовании с точки зрения подключения сервисов вместе с XML, и у них есть множество видео-примеров, которые я нашел действительно полезными.

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

Я постараюсь ответить на все ваши вопросы:

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

Есть ли простой способ интегрировать их в существующее приложение без его полной реструктуризации? Короткий ответ - нет.Вам потребуется некоторая доработка для интеграции с большинством сторонних библиотек / фреймворков.

Существуют ли другие, более легкие варианты веса? Мул на самом деле довольно прост.Возможно, вы сможете использовать MQ для выполнения HTTP, SMS и мгновенных сообщений.Возможно, ActiveMQ или RabbitMQ.

Есть ли какие-то аспекты, которые я должен рассмотреть, которые сделали бы их использование целесообразным? Да, ESB предназначены для предприятий, где часто добавляются новые службы и конфигурация, скорее всего, изменится.Наличие всего этого в формате XML немного упрощает это изменение.Так что, если вы просто создаете одноразовое программное обеспечение, возможно, это неправильный путь.Но если вы будете добавлять новые позже и постоянно подключать различные сервисы, это может оказаться лучшим маршрутом.

Другие советы

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

Росс Мейсон, основатель проекта Mule, написал действительно хорошую статью на эту тему, К ESB или не к ESB.Я рекомендовал взглянуть на это.Кроме того, вы, возможно, захотите проверить Мул Ибеан который предлагает гораздо более простую модель, если вы создаете это как веб-приложение и просто хотите выполнить некоторую облегченную интеграцию и не заинтересованы в посредничестве.

Я советую не тратить свое драгоценное время на МУЛА.Мой опыт до сих пор не очень хорош.Я бы не стал использовать его ни для какой критической системы.Это далеко не зрелый продукт.Кроме того, сервисы RESTful определенно обещают большую простоту и имеют реальные варианты использования.

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

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

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

Что касается кривой обучения, я обнаружил, что Mule ESB довольно прост в освоении и, безусловно, будет намного более низкой кривой обучения, чем попытка изучить все необходимые API для взаимодействия с несколькими сервисами, к которым вы пытаетесь подключиться.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top