КОММУНИКАЦИОННЫЕ ПРИВЯЗКИ В WINDOWS COMMUNICATION FRAMEWORK (WCF)

Коммуникационные привязки в Windows Communication Framework (WCF)
Дата публикации: 17.04.2014

Привязки описывают соглашения между клиентом и сервером о порядке передачи данных по сети. В привязке задается способ транспортировки, кодирование и протоколы, участвующие в коммуникации. WCF с помощью привязок инкапсулирует конфигурацию в различных сценариях коммуникации. Для наиболее распространенных сценариев – Web-служб, служб REST/POX и приложений на основе очередей – имеются уже готовые привязки. Например, привязка basicHttpBinding предназназначена для работы с Web-службами, созданными в ASP.NET или совместимыми со спецификацией WSI Basic Profile 1.1. Привязки ws2007HttpBinding и wsHttpBinding похожи на basicHttpBinding, но поддерживают больше возможностей, в частности надежную доставку и транзакции, а также основаны на более современных стандартах, таких, как WSAddressing. В таблице 1 перечислены 12 привязок, применяемых в разных сценариях коммуникации.

Таблица 1. Коммуникационные привязки WCF

basicHttpBinding Привязка для Web-служб, совместимых с WSI Basic Profile 1.1, в частности для ASMX-служб
wsHttpBinding Привязка для Web-служб с дополнительными возможностями, в частности WSSecurity, WSTransactions и т.п.
wsDualHttpBinding Привязка для поддержки двусторонней коммуникации с использованием дуплексных контрактов
webHttpBinding Привязка для поддержки REST/POX служб с использованием сериализации в форматах XML и JSON
netTcpBinding Привязка для коммуникаций между двумя .NET-системами
netNamedPipeBinding. Привязка для коммуникаций в рамках одной машины или между несколькими .NET-системами
netMsmqBinding Привязка для асинхронных коммуникаций с использованием Microsoft Message Queue (MSMQ)
netPeerTcpBinding Привязка для построения приложений в пиринговых сетях
msmqIntegration Привязка для отправки и получения Binding сообщений приложениям с помощью очередей MSMQ
wsFederationHttp Привязка для продвинутых Binding Web-служб, совместимых со стандартами WS*, с помощью интегрированной идентификации (federated identity)
ws2007HttpBinding Привязка, производная от wsHttpBinding, с дополнительной поддержкой самых последних специ фикаций WS*, вышедших в 2007 году
ws2007Federation Привязка, производная HttpBinding от wsFederationHttpBinding, с дополнительной поддержкой самых последних спецификаций WS*, вышедших в 2007 году
Привязки, перечисленные в таблице 1, можно задавать как в коде, так и в конфигурационном файле. В листинге 1 показано, как привязка basicHttpBinding задается в конфигурационном файле. Задавая привязку таким образом, разработчик может затем заменить ее на другую или модифицировать параметры, не перекомпилируя приложение.

Листинг 1. Задание привязки в конфигурационном файле

?xml version="1.0" encoding="utf-8" ?

configuration

system.serviceModel

client

endpoint address="http://localhost/helloworld"

binding="basicHttpBinding"

contract="WCF.HelloWorld"

/endpoint

/client

/system.serviceModel

/configuration


В листинге 2 показано использование класса BasicHttpBinding. Задавая конкретную привязку в коде, разработчик не дает изменить ее впоследствии.

Листинг 2. Задание привязки в коде

using System;

using System.Collections.Generic;

using System.Net;

using System.Text;

using System.ServiceModel;

using System.ServiceModel.Channels;

namespace WCF

{

class Program

{

static void Main(string[] args)

{

BasicHttpBinding binding = new BasicHttpBinding();

using (HelloWorldClient client =

new HelloWorldClient(Binding,

"http://localhost/helloworld"))

client.SayHello("Habr");

Console.ReadLine();

}

}

}


Выбор подходящей привязки

В WCF существует девять готовых привязок. Каждая из них отвечает потребностям одного конкретного способа распределенных вычислений. На выбор привязки оказывают влияние несколько факторов, в том числе безопасность, интероперабельность, надежность, производительность и транзакционность. Чтобы выбрать привязку, вы должны изучить потребности приложения и решить, какая привязка наилучшим образом удовлетворяет требованиям. Так, если приложение должно обмениваться данными по ненадежной (к примеру, беспроводной) сети, то стоит подумать о привязке, поддерживающей надежные сеансы (reliable sessions – RS). На рис. 1 изображена блок-схема принятия решения о выборе привязки. При выборе привязки приходится рассматривать много разных факторов. Перечислить их все невозможно, поэтому будьте готовы к проведению дополнительного анализа. Каждая привязка поддерживает какой-то один сценарий коммуникаций, например: межмашинная, локальная или интероперабельная с использованием Web-служб.

Заключение

Архитектура каналов позволяет построить унифицированную модель разработки распределенных приложений. Службы можно создавать независимо от транспортных протоколов и кодировок, а, стало быть, они могут поддерживать различные виды коммуникации. Привязки – это заранее сконфигурированные стеки каналов для коммуникаций определенного вида. В комплекте с WCF по ставляются девять готовых привязок.

Ниже сформулированы основные принципы работы с привязками в WCF:

привязка netTcpBinding предназначена для межмашинных коммуникаций между .NETприложениями;

привязка netNamedPipeBinding предназначена для локальных коммуникаций между .NETприложениями – как между несколькими процессами, так и внутри одного процесса (междоменных и внутридоменных);

привязка basicHttpBinding служит для поддержки унаследованных Webслужб, основанных на спецификации WSI Basic Profile 1.1. Как правило, она используется для потребления ASMXслужб, созданных

в ASP.NET, но годится и для предоставления служб клиентам на платформе .NET 2.0, не нуждающимся в спецификациях WS*;

привязки ws2007HttpBinding и wsHttpBinding применяются для создания Web-служб, поддерживающих спецификации WS*. При создания новых служб в WCF рекомендуется применять привязку ws2007HttpBinding, поскольку она поддерживает новейшие стандарты в области безопасности,

надежной доставки сообщений и транзакционности;

есть еще три привязки, основанные на Webслужбах: wsDualHttpBinding, wsFederationHttpBinding иws2007FederationHttpBinding. Пользуйтесь ими, если возникает потребность в дуплексном обмене сообщениями по протоколу HTTP или интегрированной безопасности соответственно. Привязка ws2007FederationHttpBinding входит в состав .NET 3.5 и дополнительно поддерживает спецификацию WSS SAML Token Profile 1.1;

привязка netMsmqBinding применяется для разработки несвязанных приложений с помощью технологии Microsoft Message Queue (MSMQ);

привязка msmqIntegrationBinding служит для интеграции с существующими приложениями на базе MSMQ;

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

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

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

Рекомендуем:

Комментарии
Для того, чтобы добавить комментарий необходимо
войти на сайт
Пока материал никто не комментировал.
Новости
В России откроются 12 летних кинотеатров под открытым небом
«Триколор» совместно с парками «Россия - Моя история» запускает второй сезон проекта «Кино. Лето. Триколор». Летние показы под открытым небом запущены в Краснодаре, Волгограде, Тюмени и прочих городах и продлятся до финала лета. В афише - полнометражные фильмы, популярные сериалы и мультфильмы. Марафон бесплатных кинопоказов «Кино.
Дата публикации: 03.06.2025
Возраст подтвердит биометрия
Сервис подтверждения возраста по биометрии готовится к запуску в РФ. Об этом пишет «Интерфакс». Как сообщил вице-премьер РФ Дмитрий Григоренко на полях конференции «Цифровая индустрия промышленной России» (ЦИПР-2025), что использование биометрии будет добровольным.
Дата публикации: 03.06.2025
1234...
Статьи
МегаФон стал партнёром финансовой платформы Банки.ру
1 июня 2023 МегаФон и финансовая платформа Банки.ру (АО «Цифровые технологии») запускают партнёрство. Первый совместный проект позволит предоставить клиентам доступ к финансовым предложениям любого российского банка?участника платформы, независимо от наличия его отделения поблизости.
Автор: prteammf
Дата публикации: 30.07.2023
«МегаФон Облако» поможет учебным заведениям совершенствовать образовательный процесс
14 июня 2023 МегаФон предоставил виртуальную инфраструктуру Институту развития образования Свердловской области. Преподаватели, сотрудники и слушатели образовательного учреждения получили дополнительные возможности для развития дистанционных программ в безопасной облачной среде.
Автор: prteammf
Дата публикации: 30.07.2023
МегаФон разработает систему экомониторинга морской акватории Камчатского края
23 июня 2023 МегаФон стал партнёром Правительства Камчатского края в области обеспечения экологической безопасности морской среды. Оператор поможет внедрить технологии мониторинга для сохранения и восстановления морской экосистемы, а также предотвращения возможных природных и техногенных катастроф.
Автор: prteammf
Дата публикации: 30.07.2023
1234...
Вопросы
Отзывы
Информация
Разработка программ и автоматизация вашего бизнеса это основные направления нашей компании. Наше основное отличие это доступность и качество автоматизации.

Copyright © 2025
www.softbusiness.net
Контакты
Написать в отдел технической поддержки пользователей
По всем вопросам
обращаться
по телефону:
+7(918)3883-585