Введение в WCF 4.0.Биндинги. Начало

Вы когда нибудь отправяли письмо? Неважно по обычной или эклектронной почте! Если не ввести аддрес — то почтальен никогда не будет знать куда доставить письмо. Собственно если аддресат не зарегестрирован по введенному аддресу — письмо даже с аддресом врятли дойдет. Тоже самое и с сервисами — если клиент не знает где находиться сервис, то сообщения которые он ему отошлет — никогда не дойдут до сервиса, так же как и сервис — если он не знает где слушать — пропустит сообщение.

В одной из книг прочитал, что для сервисов есть три необходимые вещи, которые называются ABC of WCF:

A — Address , аддресс нашего сервиса, чтобы клиенты знали КУДА отправлять сообщения.
B — Bindings, определяют как сообщения отосланы или приняты.
C — Contracts — про них мы говорили в прошлых постах.

За что собственно отвечают биндинги:
1. За протокол который используется.
2. За формат сообщения которые принимается или отсылается..
3. Детали.

Address
Первая буква в ABC of WCF. Каждый аддресс сервиса ( далее ендпоинт ), должна иметь уникальный аддресс — расположение нашего сервиса. Точно так же как и веб сайты в интернете.Аддресс ендпоинта состоит их таких частей:

1. Схема протокола транспорта — определяет по какому протоколу передается сообщение, это есть начало аддреса нашего сервиса.
2. Аддрес сервиса — собственно положение сервиса, например localhost или thisismywebservice.com
3. Port — порт который наш сервис слушает:)
4. Path — путь ресурса на сервисе. Например *.svc файла.

Самое интересное среди перечесиленных — эт опротоколы транспорта. На них мне хотелось бы остановиться поподробнее:

Http & HttpS — самый обычный протокол, который чаще всего используется для коммуникации через интернет.
Примеры:
http://localhost:8080/CalculatorService
http://localhost/CalculatorService
https://localhost:83/CalculatorService

TCP — очень быстрый бинарный протокол, который позволяет организовывать связи, прекрасный выбор для сценариев в которых сервисы работают в интранете.
Примеры:
net.tcp://localhost:801/Service1

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

Примеры:
net.pipe://localhost/PipeCalculatorService1

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

Примеры:
net.msmq://localhost

Также вы можете написать свой протокол:)

Behavors — Поведения
С помощью задвания поведений вы можете контроллировать как себя поведет сервис в той или иной ситуации. Вы можете задавать 4 уровня поведений:
Поведение сервиса, поведения ендпоинта, поведение операции, поведение контракта.

В следующем посте мы поговорим про то какие типы биндингов существуют.

Полезные ссылки:

http://msdn.microsoft.com/en-us/library/ms733769.aspx — статья расскзывающая про преимущества разных типов протоколов.

http://www.jmedved.com/2010/03/named-pipes-in-wcf/ — статья рассказывающая об использованиее Named Pipes.

6 комментариев на “Введение в WCF 4.0.Биндинги. Начало

  1. Уведомление: Некоторые интересные ссылки (Март) | Александр Богатырев: сфера

  2. Уведомление: Технические материалы по продуктам и решениям Microsoft на русском языке – апрель 2011 | Alexander Knyazev: блог

  3. Уведомление: Ежемесячный дайджест технических материалов. | Тверской MCP-Клуб

  4. hh_day

    или я ошибаюсь, или «Каждый аддресс сервиса ( далее ендпоинт )» термин ендпоинт имеет свое определение, но никак нельзя его ставить в соответствие адресу. ABC — endpoint.

    Нравится

Оставьте комментарий