Что такое служебный автобус и когда он мне нужен?

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

Что такое служебный автобус и когда он мне нужен?


person stiank81    schedule 27.04.2010    source источник
comment
Я действительно опаздываю на вечеринку, я не буду публиковать это в качестве ответа, потому что это не так, а короче говоря, если вы не знаете, зачем он вам нужен, скорее всего, вы этого не сделаете ... он решает конкретный проблема, которой у вас, вероятно, нет, связана с подключением приложений и предоставлением вашему бизнесу централизованного API.   -  person War    schedule 30.05.2014
comment
@Wardy Я не согласен с вашим утверждением. Тот факт, что вы чего-то не понимаете или не знаете, что это, не означает, что это не поможет вам узнать об этом.   -  person Cristian Toma    schedule 23.06.2015
comment
Это не было оправданием невежества, но больше указывало на то, что служебная шина - это термин, который часто используют, когда вы сталкиваетесь с проблемой, которую он решает, поэтому вам она либо понадобится, либо не будет, и, следовательно, никогда не придется беспокоиться о Это.   -  person War    schedule 24.06.2015
comment
Я бы добавил это как правку, но это в корне изменило бы вопрос ... NServiceBus теперь известен как Платформа особого обслуживания, и его можно найти по адресу specific.net (куда NServiceBus.com все равно перенаправляется сейчас).   -  person Dan Atkinson    schedule 02.09.2015
comment
Если вы не знаете названия или концепции уже существующей вещи, скорее всего, вы напишете свое собственное. Поэтому полезно знать о них, чтобы вы могли их использовать (при необходимости).   -  person noelicus    schedule 07.02.2019


Ответы (3)


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

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

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

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

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

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

person Udi Dahan    schedule 28.04.2010
comment
Спасибо! Думаю, теперь у меня есть общая картина! На самом деле задавал этот вопрос, чтобы немного подготовиться к сеансу, который вы проводите сегодня вечером, но не похоже, что я его выдержу ... - person stiank81; 28.04.2010

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

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

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

person Justin Niessner    schedule 27.04.2010
comment
Значит, я могу использовать его для связи между настольным клиентским приложением и сервером? То есть там, где сервер находится внутри компании. - person stiank81; 28.04.2010
comment
Вы могли. Вы также можете использовать его для связи между различными службами, разными версиями разных служб и т. Д. (Включая ситуации, когда службы используют разные протоколы). - person Justin Niessner; 28.04.2010

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

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

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

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

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

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

person stacker    schedule 27.04.2010
comment
Итак - в моем настольном приложении, которое имеет простую связь со стороной сервера, нет необходимости расширять служебную шину? Может ли это помочь мне реализовать модель push с сервера? Или в этом сценарии будет больше боли, чем пользы? - person stiank81; 28.04.2010
comment
@ stiank81, извините, я прочитал служебную шину (Enterprise) и сработали синапсы. Я проверил вашу ссылку на NServiceBus, они нацелены на одно и то же, вам не нужно что-то подобное в приложении клиент-сервер. Это означает концепцию нескольких приложений, задействованных в одном бизнес-процессе. Если бы это сработало для вас? Если он решает больше проблем, чем вызывает. - person stacker; 28.04.2010
comment
Используйте его, если он решает больше проблем, чем вызывает ... люблю его. - person noelicus; 07.02.2019