КОММУНИКАЦИОННЫЕ ПРИВЯЗКИ В 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поможет создать заказную привязку.

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

Комментарии
Для того, чтобы добавить комментарий необходимо
войти на сайт
Пока материал никто не комментировал.
Новости
ИАА TelecomDaily: LTE стабильно ловит более чем на 70% протяженности автодорог на Сахалине
Свежие данные о качестве мобильной связи на Сахалине: кто лидирует в покрытии 4G? Команда специалистов ИАА TelecomDaily завершила масштабное исследование, которое выявило реальную картину покрытия сетей LTE на ключевых автомобильных маршрутах крупнейшего российского острова.
Дата публикации: 30.10.2026
«Почта Mail» добавила возможность назначать ответственных за письма
«Почта Mail» внедрила удобный инструмент для командной работы Команда «Почты Mail» представила долгожданное нововведение, которое должно сделать совместную работу значительно комфортнее. Теперь пользователи могут назначать ответственных за конкретные письма! Это решение призвано превратить общий почтовый ящик из хаотичного потока сообщений в четко структурированную систему управления задачами.
Дата публикации: 30.10.2026
1234...
Статьи
МегаФон стал партнёром финансовой платформы Банки.ру
1 июня 2023 МегаФон и финансовая платформа Банки.ру (АО «Цифровые технологии») запускают партнёрство. Первый совместный проект позволит предоставить клиентам доступ к финансовым предложениям любого российского банка?участника платформы, независимо от наличия его отделения поблизости.
Автор: prteammf
Дата публикации: 30.07.2023
«МегаФон Облако» поможет учебным заведениям совершенствовать образовательный процесс
14 июня 2023 МегаФон предоставил виртуальную инфраструктуру Институту развития образования Свердловской области. Преподаватели, сотрудники и слушатели образовательного учреждения получили дополнительные возможности для развития дистанционных программ в безопасной облачной среде.
Автор: prteammf
Дата публикации: 30.07.2023
МегаФон разработает систему экомониторинга морской акватории Камчатского края
23 июня 2023 МегаФон стал партнёром Правительства Камчатского края в области обеспечения экологической безопасности морской среды. Оператор поможет внедрить технологии мониторинга для сохранения и восстановления морской экосистемы, а также предотвращения возможных природных и техногенных катастроф.
Автор: prteammf
Дата публикации: 30.07.2023
1234...
Вопросы
Отзывы
Информация
Разработка программ и автоматизация вашего бизнеса это основные направления нашей компании. Наше основное отличие это доступность и качество автоматизации.

Copyright © 2026
www.softbusiness.net
Контакты
Написать в отдел технической поддержки пользователей