Зачем нужна служебная шина, когда у вас есть WCF? - PullRequest
2 голосов
/ 20 ноября 2010

Я читаю темы WCF и Service Bus, но в некоторых темах я не использую Service Bus.Проверьте это изображение использования служебной шины:

http://ecn.channel9.msdn.com/o9/learn/Azure/Labs/IntroServiceBus/Lab.html/html/images/4a0aa8f8-f4d1-49b6-b950-cf954402c599.png

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

Я понимаю, что вы не хотите удалять брандмауэр для всей вашей сети, но вы можете создать общедоступный веб-сервер с IIS и запустить на нем свою службу.Или я что-то упустил?

Ответы [ 3 ]

6 голосов
/ 20 ноября 2010

WCF - это способ настройки и управления интерфейсами связи. Это не заботится о содержании ваших сообщений.

A служебная шина отличается тем, что отвечает за маршрутизацию сообщений.

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

5 голосов
/ 21 ноября 2010

Сервисная шина помогает вам улучшить архитектуру ваших сервисов.

Во многих организациях есть то, что называют «точка-точка» или интеграция спагетти. Это не хорошо. Сервисная шина поможет вам иметь единую точку интеграции. например в образе, который вы связали (архитектура Azure Service BUS), добавив службу в ESB, вы можете объединить проверку подлинности службы с помощью контроля доступа, даже если они находятся за брандмауэром, а не каждая служба отвечает за аутентификацию. Кроме того, даже если адрес службы изменился, вам нужно будет изменить его только в одном месте (ESB) вместо всех приложений, которые на него ссылаются.

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

2 голосов
/ 06 ноября 2013

Service Bus - это сервис ретрансляции, поэтому все клиенты будут указывать в облаке.Хакеры будут атаковать службу ретрансляции в облаке, а не службу WCF.Все аспекты безопасности обеспечиваются службой ретрансляции.

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

Я настоятельно рекомендую Juval Lowy's эту статью .

Выдержка из статьи:

Служба ретрансляции - это служба, находящаяся в облаке, чья работадолжен помочь в соединении, ретранслируя клиентские вызовы к услуге.Такое ретрансляционное решение требует, чтобы как клиентские, так и сервисные интрасети разрешали подключения к облаку, но поскольку облако представляет собой нейтральную территорию как для клиента, так и для службы, большинство сред допускают вызовы в Интернет.Во-первых, и служба, и клиент должны установить соединения и пройти проверку подлинности с помощью службы ретрансляции.На этом этапе ретранслятор также записывает, где находится сервис и как лучше всего перезвонить ему.Когда клиент вызывает службу ретрансляции, служба ретрансляции перенаправляет вызов (сообщение клиента) в службу.Хотя последовательность кажется простой, на практике она включает в себя значительное количество запутанного сетевого программирования, обмена сообщениями и ноу-хау в области стандартов, экспертизы безопасности и многого другого.Такое решение просто недоступно для подавляющего большинства приложений. Это именно тот пробел, который призвана заполнить служебная шина Microsoft .NET.Это готовая служба ретрансляции, размещенная и управляемая в центре обработки данных Microsoft. .NET Service Bus действует как облачная сеть периметра, предоставляя единое место для управления учетными данными клиента и служб..NET Service Bus является внешним интерфейсом службы;он инкапсулирует и изолирует службу от злоумышленников, скрывающихся в Интернете, и отвечает за отражение различных атак от отказа в обслуживании до повторных атак, скрывая при этом личность и истинное местоположение фактической службы. Основное отличие между подключением к обычной службе Windows Communication Foundation (WCF) и использованием службы ретрансляции вращается вокруг хостинга. В случае ретрансляции служба должна подключиться к .NET Service Bus, выполнить аутентификацию ипрослушивайте вызовы от службы ретрансляции, прежде чем клиент отправит свои запросы.Это означает, что вы должны либо явно запустить хост, либо использовать службу NT в качестве хоста, и вы не сможете воспользоваться хостингом в службе активации Windows (WAS) (или IIS), поскольку WAS запустит хост только после того, как поступит первый запрос.и этого никогда не произойдет, потому что хост не подключен к .NET Service Bus в первую очередь..NET Service Bus поддерживает модель программирования, удобную для WCF, предлагая набор выделенных привязок и поведений.В целом, за исключением нескольких незначительных изменений в модели программирования, работа со службой ретрансляции ничем не отличается от работы с любой другой службой WCF..NET Service Bus поддерживает основные функции WCF: надежный обмен сообщениями, безопасность сообщений и безопасность транспорта.

...