2010-04-27 3 views
84

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

So; что такое «служебная шина», и когда мне это нужно?

+0

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

+2

@ Wardy Я бы не согласился с вашим заявлением. Тот факт, что вы что-то не понимаете или не знаете, что это такое, не означает, что это не поможет вам узнать об этом. –

+0

Это не было оправданием невежества, но более важно отметить, что служебная шина - это термин брошенный вокруг много, когда вы сталкиваетесь с проблемой, которую он решает, поэтому вам это понадобится, иначе вы не будете и, следовательно, никогда не будете беспокоиться об этом. – War

ответ

63

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

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

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

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

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

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

+0

Thx! Думаю, я получил картину сейчас! Фактически задал этот вопрос немного подготовленным к сеансу, который вы держите сегодня вечером, но это не похоже на то, что я это сделаю. – stiank81

9

Просмотрите статью Википедии для Enterprise Service Bus.

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

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

+0

Итак, я могу использовать его для обмена данными между настольным клиентским приложением и сервером? Где находится сервер, то есть. – stiank81

+0

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

10

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

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

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

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

EDIT: Что не на википедии, является практика: ESB может i.g. адаптироваться с использованием специальных разъемов, старых терминальных приложений для использования с Corba или Java Enterprise, что подразумевает взаимодействие. Недостатком является более 100 «Стандартов» вокруг SOAP, которые не работают без огромных усилий.

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

+0

Так что - в моем настольном приложении, которое имеет «простую» связь с серверной стороной, нет необходимости ходить с шиной обслуживания? Может ли это помочь мне реализовать модель push с сервера? Или это будет больнее, чем выигрыш в этом сценарии? – stiank81

+0

@ stiank81 жаль, что я прочитал (Enterprise) служебную шину и синапсы. Я проверил вашу ссылку на NServiceBus, они нацелены на то же самое, вам не нужно что-то подобное в приложении клиентского сервера. Это подразумевается под понятием для нескольких приложений, участвующих в одном бизнес-процессе. Если бы это сработало для вас? Если это решает больше проблем, чем это вызывает. – stacker

+0

Thx. Нет, не похоже на то, что я хотел бы использовать для своего текущего приложения. – stiank81

 Смежные вопросы

  • Нет связанных вопросов^_^