Что такое servicebus и когда он мне нужен?

Я слышал о NServiceBus, но я не совсем понял, что это такое. Они утверждают, что они являются "самой популярной служебной шиной с открытым исходным кодом для .net".

Итак, что такое "служебная шина", и когда мне это нужно?

Ответ 1

Вы можете представить служебную шину как Ethernet SOA.

В первую очередь, он вводит язык идентификации вещей, например IP-адрес в Ethernet. Это имя не является по своей сути физическим.

Затем у вас есть что-то физическое, участвующее в каждом node, например, очередь в случае шины для поддержки полусвязной связи или карта Ethernet в метафоре.

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

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

В частности, вы обнаружите, что NServiceBus будет достаточно легким и простым в использовании, когда вы согласитесь с использованием технологии очередей - ваш выбор RabbitMQ, MSMQ, очередей хранения Azure и шины Azure Service.

Ответ 2

Этот термин был введен с SOA, который в какой-то мере является преемником (как слово buzz) EAI.

Когда вам это нужно? Это хороший вопрос. Это связано с большой сложностью.

Эмпирическое правило может быть выполнено, если оно решает больше проблем, чем оно вызывает.

Быть серьезным, если у вас гетерогенная среда и вы хотите использовать (отличные) приложения (используя разные технологии) с бизнес-процессами. Тогда было бы полезно использовать BPEL (но это вводит проблемы с помощью migraton) для оркестровки и хореография

РЕДАКТОР: Что не в википедии, это практика: ESB может, например, адаптироваться с использованием специальных разъемов, старых терминальных приложений для использования с Corba или Java Enterprise, что подразумевает взаимодействие. Недостатком является более 100 "Стандартов" вокруг SOAP, которые не работают без огромных усилий.

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

Ответ 3

Ознакомьтесь со статьей Википедии Enterprise Service Bus.

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

Если вы не знаете, почему вам нужно что-то подобное, я бы предложил прочитать, что делает хорошую сервис-ориентированную архитектуру. Книга, которая действительно открыла мне глаза и доказала разницу между тем, что у вас есть веб-службы и с настоящей сервис-ориентированной архитектурой, был Thomas Erl Service-Oriented Architecture: Concepts, Technology, и дизайн