Является ли NServiceBus ESB вообще?

Является ли NServiceBus ESB или облегченной ESB? или это больше похоже на WCF с надежным/надежным обменом сообщениями? Мне кажется, это больше похоже на фреймворк для обмена сообщениями, чем на ESB.

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


person Eatdoku    schedule 31.05.2012    source источник


Ответы (5)


NServiceBus определенно является ESB. Полная остановка.

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

Противоположностью автобуса является брокер. Брокер представляет собой единую точку отказа в системе. Такие вещи, как MS BizTalk, являются брокерами, а не ESB.

ОБНОВЛЕНИЕ
Чтобы немного рассказать о корпоративной поддержке в NSB
, поддерживается шаблоны обмена сообщениями — это односторонняя отправка и забвение (надежное и срочное), коррелированный запрос-ответ, публикация-подписка. Все остальное можно построить поверх этого.
 – транзакционная обработка сообщений и автоматическая повторные попытки
— балансировка нагрузки с помощью дистрибьютор
— настраиваемый аудит и мониторинг с помощью счетчиков производительности
— встроенный длительный процесс управления
списком продолжается... превращая NServiceBus в ESB

Некоторые продукты брокера сообщений могут быть развернуты в «федеративном режиме», что делает эти развертывания децентрализованными. Тип децентрализованного развертывания хорошо согласуется со стилем архитектуры шины. Так что, думаю, зависит. Однако централизованное развертывание — это всего лишь брокер корпоративных служб, а не шина.

person Chris Bednarski    schedule 01.06.2012
comment
Я в корне не согласен. Сказать, что существуют брокеры и ESB, не только сильно упрощенно, но и неверно. Служебная шина обеспечивает независимые от платформы и транспорта опосредованные соединения между службами и потребителями. Сервисная шина предприятия делает это на уровне предприятия. - person tom redfern; 06.06.2012
comment
Одним из примеров, который очень хорошо соответствует вашему определению служебной шины, является Ethernet. Однако я не понимаю, как можно развернуть Ethernet на одном центральном сервере (брокере) и обеспечить взаимодействие всех остальных служб без предварительного развертывания Ethernet локально на каждом сервере, подключенном к системе. - person Chris Bednarski; 06.06.2012
comment
Я согласен с различием между простой служебной шиной и корпоративной служебной шиной. Качества, которые делают шину ESB, — это именно то, что вы сказали в своем обновлении. Однако автобус всегда будет распределенным, а не централизованным. Автобус – антиброкер. - person Chris Bednarski; 06.06.2012
comment
Я полностью понимаю, откуда вы пришли, и я согласен с тем, что иметь централизованную точку, через которую проходят все сообщения, а также управлять подписками и т. д., — плохая идея. Однако многие модели брокеров поддерживают высокую доступность, что означает, что они распределены в определенном смысле. Просто, как вы говорите, шина имеет централизованное проявление, а не распределенное. Я предпочитаю неброкерскую модель, я просто не вижу, что она делает продукт недействительным при использовании его в качестве автобуса. - person tom redfern; 06.06.2012
comment
распределенный != высокая доступность - person Chris Bednarski; 06.06.2012
comment
Распределенный в этом контексте в основном означает разделенный, что ничего не говорит о доступности. - person Chris Bednarski; 06.06.2012
comment
Дело принято. Убрано голосование против и добавлено голосование за. «Федеративный» — гораздо лучшее слово, и именно его я имел в виду под «распределенным» в определенном смысле. - person tom redfern; 06.06.2012
comment
Наличие корпоративной поддержки не делает NSB ESB. Это по-прежнему не помогает мне внедрить решение EAI для подключения моих сервисов. В EAI есть нечто большее, чем обмен сообщениями: маршрутизация, трансляция/преобразование/преобразование, политики, правила. Например, такие продукты, как Mule, Tibco, OpenESB, поставляются с множеством адаптеров ootb, правил и инструментов оркестровки, которые специально облегчают жизнь в широком диапазоне сценариев EAI (SAP, Siebel, WS-*, SFTP). Поэтому, пока NSB не предлагает эти функции интеграции, трудно думать об этом в контексте EAI. - person Sheepy; 11.11.2014
comment
@Sheepy - я тоже не уверен, как бы я использовал NSB для сценариев интеграции. Шина в данном случае является компонентом гораздо более низкого уровня, который используется для доставки сообщений и их обработки. Он изначально распространяется, что противоречит обычной архитектуре брокера. Глядя на en.wikipedia.org/wiki/Enterprise_application_integration, можно заметить, что система EAI выступает в качестве отправной точки. между несколькими приложениями или посредником между ними. EAI использует брокера для связи с использованием различных технологий. Шина может быть одной из таких технологий и определенно не заменяет брокера EAI. - person Chris Bednarski; 12.11.2014
comment
Я считаю, что шинная архитектура подразумевает распределенное развертывание инфраструктуры и логики. Архитектурный стиль брокера централизует инфраструктуру и логику. Речь идет скорее о централизованности или децентрализации и архитектурном стиле, а не о конкретном продукте или имени. - person Chris Bednarski; 12.11.2014
comment
Я не думаю, что различие между шиной и брокером имеет отношение к тому, является ли NSB ESB. Автобус и боркер не обязательно должны быть одним или другим: обычно есть и то, и другое. Большинство реализаций ESB обычно (но не обязательно) используют брокеры сообщений (например, AMQP) либо в качестве транспортного уровня, либо в качестве одной из конечных точек интеграции. - person Sheepy; 12.11.2014
comment
Возможно, вы имели в виду посредника интеграции, который действительно очень похож на ESB. Согласно википедии (en.wikipedia.org/wiki/), ESB позволяет функции, которые должны быть разбиты на составные части и развернуты отдельно. Однако на практике это различие может означать очень мало (многие брокеры интеграции, например WIMB от IBM, были переименованы в ESB: WESB). Обратите внимание, что IBM приобрела изобретателя ESB: Candle's Roma. Во всяком случае, ни один из них не имеет отношения к NSB, который так или иначе не является интеграционным программным обеспечением. - person Sheepy; 12.11.2014
comment
Вероятно, существуют разные определения термина ESB (как и любого другого термина в информатике и смежных областях), но эта цитата из блога Уди Дахана (автора NServiceBus) и тот факт, что он помечает свои сообщения в блоге как ESB, предполагает, что он считает NServiceBus в качестве ESB: NServiceBus был выбран в качестве ESB для одной из наших основных систем страхования (udidahan.com/2012/03/30/nservicebus-in-insurance-testimonial) - person Niklas Peter; 07.12.2016

Нет, я бы не стал рассматривать NServiceBus как продукт ESB, и в целом это не инструмент EAI.

Если нам нужно найти сравнение с другими инструментами, NServiceBus ближе к JMS API (например, spring-jms) и AMQP. Это платформа, помогающая вам взаимодействовать с очередями сообщений и реализовывать общие шаблоны обмена сообщениями в вашем приложении (например, публикация/подписка, запрос/ответ, недоставленные буквы, «сага») с использованием удобного синтаксиса программирования.

Принимая во внимание, что продукт ESB, традиционно известный в индустрии EAI, представляет собой платформу, которая облегчает интеграцию многих разнородных приложений в корпоративную среду. Хотя разные продукты ESB предлагают разные функции, все они имеют определенные общие функции, которые делают их полезными, основными из которых являются их широкий набор коннекторов для различных открытых и проприетарных протоколов и сервисов (включая очереди сообщений, а также другие вещи, например, WS). -*, sftp, SAP, Siebel, rdbms, xmpp, websockets/comet, corba, edi), а также полный набор готовых к использованию шаблонов корпоративной интеграции (согласно «черной книге»), чтобы у вас не было реализовать их самостоятельно, чтобы организовать сложную интеграционную логику, такую ​​как преобразования, преобразования, маршрутизация, приоритизация, бизнес-правила, применение политик, проверки, обнаружение дубликатов, ETL и обычное перемещение данных между приложениями.

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

person Sheepy    schedule 12.11.2014

Ну, я думаю, что nServicebus, безусловно, является ServiceBus, но не уверен, что вы можете назвать его «Enterprise» ServiceBus, не тратя на это сотни тысяч. А если серьезно, вам нужно подумать, действительно ли вам нужен ESB или нет. Большинство из них обещают богатство, но приносят много накладных расходов, и может быть очень трудно осознать ценность. Я использовал WSO2 на большом предприятии, где это был один из трех наших ESB. Очень предприимчивый, управляемый командой OPs, и настоящая боль, потому что нам пришлось иметь дело с другой командой, чтобы настроить и запустить нашу систему. Другие проблемы включают так называемые функции, такие как маршрутизация сообщений или перевод сообщений. Конечно, продукт может делать эти вещи, но он выводит вас из среды разработки и дает вам больше забот. Код и/или конфигурация распределяются по большему количеству мест, больше вещей для управления большим количеством вещей, которые могут пойти не так. Это то, что мне нравится в nServiceBus: он очень доступен для разработчиков. Еще одна реализация, которая мне нравится, — Azure ServiceBus. Очевидно, что он не такой полнофункциональный, и, вероятно, это не то, что вы ищете, но мне нравится доступность для разработчиков и характер самообслуживания, и это те черты, на которые я бы обратил внимание.

person Noel    schedule 13.06.2012

Служебная шина предприятия — это составной шаблон SOA. Если вы заглянете в книги Томаса Эрла, то увидите шаблоны, которые включает ESB.

  1. Брокер (связывание протоколов, преобразование формата данных и модели данных)
  2. Промежуточная маршрутизация
  3. Асинхронная организация очереди
  4. Надежный мессинг
  5. События
  6. Централизация политики
  7. Централизация правил

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

Важно помнить, что использование NServiceBus, Biztalk или чего-либо еще не делает вас SOA. На самом деле, при неправильном использовании вы можете оказаться привязанным к поставщику, нарушив первый принцип SOA — нейтральность поставщика.

person Bitmask    schedule 13.06.2014
comment
Да, Biztalk ближе к ESB, чем NServiceBus. Biztalk — очень удобный инструмент в контексте интеграции программного обеспечения. NServiceBus, с другой стороны, никоим образом не предназначен для использования в качестве промежуточного программного обеспечения для интеграции, например. первый пункт очень важен в любом инструменте интеграции (связывание протоколов, преобразование формата данных/модели) - person Sheepy; 18.02.2016
comment
NServiceBus решает другой набор проблем, например. децентрализация. Связывание протоколов, преобразование модели и формат данных остаются на усмотрение пользователя. - person Bitmask; 26.02.2016

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

ОБНОВЛЕНИЕ

Я кормлю, я должен обновить свой ответ в ответ на ответ Криса.

Хотя это удобно, ошибочно и бесполезно создавать две категории, Bus и Broker, как утверждает Крис.

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

Служебная шина корпоративного обеспечивает это подключение, но также может добавлять посредничество корпоративного уровня, например:

  • Встроенная поддержка шаблонов обмена сообщениями
  • Централизованный мониторинг
  • Балансировка нагрузки службы и создание экземпляров
  • Автоматизированное управление сбоями и исключениями
  • Возможность обнаружения метаданных службы
  • Повторить попытку в случае неудачи
  • ...и многое другое

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

person tom redfern    schedule 31.05.2012