Введение в WCF 4.0. Паттерны взаимодействия с WCF.

Для того чтобы нырнуть в дебри WCF глубже, как мне кажется нужно понять как вся эта система работает.Потому сегодня я бы хотел немного поговорить о паттернах взаимодействия с WCF сервисами.

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

Итак:

А.Request — Response

Собственно самый просто тип запроса — вопрос — ответ. Клиент посылает сирвису сообщение, и в течении определенного периода времени ждет ответ от сервиса. Клиент четко представляет структуру ответа, который можна ожидать от сервиса: это может быть примитивный тип, такой как: строчка, число, и т.д, или же комплексный тип (заказчик, сотрудник) и т.д
Если в течении выполения действия на сервисе произошла ошибка, клиенту возвращается описание ошибки.

Б. One-Way
Это крик в бездну:) В данном случае, клиент который обращается к сервису не ожидает получения ответа. Это сделанно для того чтобы клиент мог работать с сервисом асинхронно, при этом у клиента возникает ощущение быстродейтсвия, хотя операция все ещё выполняется на стороне сервиса.

В.Duplex Messaging
Достаточно интересный шаблон. В данном шаблоне, клиент посылает запрос на сторону сервиса. Сервис в тоже время может попросить больше информации у клиента, перед тем как отправить ответ на первоначальный запрос. Сервис в данном случае может делать несколько запросов. В данном паттерне , сервисный код в течении выполнения запроса может вести себя как клиент, а клиент в этоже время ведет себя как сервис.

Г.Streaming
Все из нас смотрели Youtube. Как Вы, наверное, заметили — чтобы просмотреть видео, не обязательно его вначале загрузить полностью, видео грузится небольшими кусочками, и начинает выполняться даже полностью не загрузившись. Так и здесь, клиент посылает сервису запрос, сервис анализирует запрос, и получившиеся данные разбивает на много маленьких кусочков, и начинает потихоньку отдавать данные клиенту. Надо помнить, что в данном паттерне на один запрос последует огромное количество ответов.

Д.Pub — Sub
ТОже достаточно инетерсный паттерн. Вы когда — нибудь видели фильмы в которых показывают биржу: куча брокеров стоят в одной комнате, и прислушиваются или присматриваются к экрану. После того как данные про ставки на бирже обновляются кто-то падает в обморок, а кто-то радуется. Так и здесь — сервисы и аппликации деляться на так называетмые две группы — подписчик и издатель. Издателю все равно кто его подписчик, в какой то определенный момет издатель выдает своим подписчикам определеную информацию, которые подписавшиеся клиенты получают и обрабатывают.

Е.Implied Order Invocation
Иногда бывают случаи когда вам нужно выполнить несколько операций, при чем вам действительно важен порядок выполнения операции. Такое может быть возможно, когда один из методово зависит от состояния созданного другим методом. Например, представим ситуацию покупки билета в кино:
1. Клиент дает деньги кассиру
2. Кассир проверяет свободные места.
3. Кассир выдает билет.

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

 

В следующем посте я опишу архитектуру WCF.

3 комментария на “Введение в WCF 4.0. Паттерны взаимодействия с WCF.

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

  2. Уведомление: ??????????? ????????? ?? ????????? ? ???????? Microsoft ?? ??????? ????? – ?????? 2011 - MSDN Blogs

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

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