Я слышал о NServiceBus, но я не совсем понял, что это такое. Они утверждают, что они являются "самой популярной служебной шиной с открытым исходным кодом для .net".
Итак, что такое "служебная шина", и когда мне это нужно?
Я слышал о NServiceBus, но я не совсем понял, что это такое. Они утверждают, что они являются "самой популярной служебной шиной с открытым исходным кодом для .net".
Итак, что такое "служебная шина", и когда мне это нужно?
Вы можете представить служебную шину как Ethernet SOA.
В первую очередь, он вводит язык идентификации вещей, например IP-адрес в Ethernet. Это имя не является по своей сути физическим.
Затем у вас есть что-то физическое, участвующее в каждом node, например, очередь в случае шины для поддержки полусвязной связи или карта Ethernet в метафоре.
Помимо физического, существует "протокол" части сообщения, например, стек OSI для Ethernet. С шиной это клиентские библиотеки, используемые кодом приложения.
В конечном счете, вы можете просмотреть служебную шину как обеспечивающий следующий более высокий уровень абстракции для построения распределенных систем. Вы также можете использовать его для обмена данными между клиентом и сервером, чтобы обеспечить долговременную передачу сообщений в одностороннем порядке, а также для того, чтобы сервер выдавал уведомления клиенту.
В частности, вы обнаружите, что NServiceBus будет достаточно легким и простым в использовании, когда вы согласитесь с использованием технологии очередей - ваш выбор RabbitMQ, MSMQ, очередей хранения Azure и шины Azure Service.
Этот термин был введен с SOA, который в какой-то мере является преемником (как слово buzz) EAI.
Когда вам это нужно? Это хороший вопрос. Это связано с большой сложностью.
Эмпирическое правило может быть выполнено, если оно решает больше проблем, чем оно вызывает.
Быть серьезным, если у вас гетерогенная среда и вы хотите использовать (отличные) приложения (используя разные технологии) с бизнес-процессами. Тогда было бы полезно использовать BPEL (но это вводит проблемы с помощью migraton) для оркестровки и хореография
РЕДАКТОР: Что не в википедии, это практика: ESB может, например, адаптироваться с использованием специальных разъемов, старых терминальных приложений для использования с Corba или Java Enterprise, что подразумевает взаимодействие. Недостатком является более 100 "Стандартов" вокруг SOAP, которые не работают без огромных усилий.
Вам это действительно необходимо, если вам нужно подключить ИТ-системы в течение шести месяцев после слияния двух крупных компаний по страхованию.
Ознакомьтесь со статьей Википедии Enterprise Service Bus.
Сервисная шина выступает в качестве еще одного слоя абстракции в бесконечном квесте для реализации хорошей сервис-ориентированной архитектуры. Сервисная шина может справиться с некоторыми тяжелыми подъемами, наблюдаемыми за хорошей сервис-ориентированной архитектурой, такими как обмен сообщениями, маршрутизация и совместное использование сервисов.
Если вы не знаете, почему вам нужно что-то подобное, я бы предложил прочитать, что делает хорошую сервис-ориентированную архитектуру. Книга, которая действительно открыла мне глаза и доказала разницу между тем, что у вас есть веб-службы и с настоящей сервис-ориентированной архитектурой, был Thomas Erl Service-Oriented Architecture: Concepts, Technology, и дизайн