Программирование >>  Программирование с использованием ajax 

1 ... 372 373 374 [ 375 ] 376 377 378 ... 396


чем Web-службы, и гораздо более простой в плане использования, чем удаленное взаимодействие. С применением WCF можно создавать прможения самой разной степени сложности, начиная от простых приложений и заканчивая прможениями с ориентированной на службы архитектурой (Service-Oriented Acrchitecture - SOA). Такая архитектура подразумевает децентрализацию обработки и использование распределенной обработки за счет подключения к службам и данным по мере возникновения в них необходимости через локальную сеть или Internet.

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

□ Что собой представляет WCF.

□ Концепции WCE

□ Программирование с использованием WCF.

Создавать WCF-службы в VCE нельзя, их можно создавать только в полной версии VS, В версии Visual Web Developer 2008 Express Edition, правда, еще можно создавать службы WCF с сервером lis в роли хоста, но в этой главе для охвата всех возможных вариантов будет применяться полная версия VS.

Что собой представляет WCF

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

Как и в случае Web-служб, функциональные возможности, которые предлагают WCF-службы, инкапсулируются в отдельные предоставляемые службой методы. Каждый такой метод - или, согласно терминологии WCF, каждая такая операция - обладает конечной точкой (endpoint), с которой нужно взаимодействовать для того, чтобы использовать данный метод. В этом моменте службы WCF и Web-службы отличаются. В случае Web-служб взаимодействовать с конечной точкой можно только по протоколу SOAP поверх HTTP. В случае WCF-служб на выбор доступно несколько протоколов. Допускается даже иметь конечные точки, способные работать посредством более одного протокола, в зависимости от сети, через которую осуществляется подключение к службе, и специфических требований.

В WCF у конечной точки может быть несколько привязок (bindings), в каждой из которых указываются применяемые средства коммуникации. В привязках может также указываться и дополнительная информация, вроде требований, соблюдение которых является обязательным для взаимодействия с данной конечной точкой. Привязка может требовать, например, аутентификации имени пользователя и пароля или маркера (token) учетной записи пользователя Windows. При подключении к конечной точке протокол, на который ссылается привязка, влияет на используемый адрес, как будет показано чуть позже.

После подключения с конечной точкой можно взаимодействовать через SOAP-сообщения. Внешний вид этих сообщений зависит от того, какая операция используется, и какие структуры данных требуются для отправки и получения сообщений в и из этой операции. В WCF для указания всего это применяются контракты (contracts), обнаруживать которые можно посредством обмена метаданными со службой. Они напоминают WSDL-документы, которые применяются в Web-службах для описания их



Концепции WCF

В этом разделе рассматриваются следующие понятия WCF.

□ Коммуникационные протоколы WCF.

□ Адреса, конечные точки и привязки.

□ Контракты.

□ Шаблоны передачи сообщений.

□ Механизмы поведения.

□ Хостинг.

Коммуникационные протоколы

Как уже упоминалось ранее, взаимодействие с WCF-службами может осуществляться посредством нескольких различных транспортных протоколов. В частности, в .NET 3.5 Framework для этого предусмотрены четыре следующих протокола.

□ HTTP. Позволяет взаимодействовать с WCF-службами из любого места, включая Internet. Его можно использовать для создания WCF-служб, предназначенных для работы в Web.

□ TCP. Позволяет взаимодействовать с WCF-службами как по локальной сети, так и по Internet при условии соответствующей настройки брандмауэра. Более эффективен, чем протокол HTTP, и имеет больше,возможностей, но его может быть труднее конфигурировать.

функциональных возможностей. На самом деле информацию о WCF-службах тоже можно получать в формате WSDL, хотя для описания их функциональности доступны и другие способы.

После определения службы и конечной точки, которую требуется использовать, а также привязки и контрактов, которых нужно придерживаться, с WCF-службой можно взаимодействовать так же легко, как и с объектом, который был определен локальным образом. Процессы взаимодействия с WCF-службами могут иметь вид как простых, односторонних транзакций или сообщений с запросами и ответами, так и полнодуплексных сеансов связи, инициируемых на одном из концов канала связи. Еще также можно применять и технологии оптимизации связанных с передачей сообщений показателей полезной нагрузки, вроде механизма МТОМ (Message Transmission Optimization Mechanism - механизм оптимизации процессов передачи сообщений), для упаковки данных, если таковая требуется.

Сама служба WCF может выполняться на компьютере-хосте (т.е. на компьютере, где она размещается) в одном из ряда различных процессов. В отличие от Web-служб, которые всегда выполняются в процессе IIS, для WCF-служб можно выбирать для хостинга такой процесс, который больше всего подходит в данной ситуации.

Для хостинга WCF-служб можно применять IIS, но еще также можно использовать и службы Windows или исполняемые файлы. В случае применения TCP для взаимодействия с WCF-службой по локальной сети нет никакой необходимости даже устанавливать lis на том компьютере, который отвечает за хостинг данной службы.

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

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



□ Именованный канал (named pipe). Позволяет взаимодействовать с WCF-служ-бами на том же компьютере, на котором находится вызывающий код, но только в отдельном процессе.

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

Эти протоколы часто позволяют устанавливать безопасные соединения. Например, протокол HTTP позволяет применять для установки безопасного SSL-соединения по Internet протокол HTTPS. Что касается протокола TCP, то он предлагает обширные возможности для обеспечения безопасности в локальной сети за счет применения системы безопасности Windows.

На рис. 35.1 показано, как эти транспортные протоколы могут подключать приложение к WCF-службам в разных месторасположениях. В настоящей главе описываются все эти протоколы, кроме MSMQ, который является более сложной темой и требует более глубокого рассмотрения.

Локальная сеть

Процесс

WCF-служба

ГПроцесс I

Именованны!! канал

Очередь MSMQ

Процесс

WCF-служба

Процесс

Internet

Web-сервер

Процесс

WCF-служба

Web-сервер

Процесс

WCF-служба

Рис. 35.1. Подключение приложения к WCF-сяужбам

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

Адреса, конечные точки и привязки

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



1 ... 372 373 374 [ 375 ] 376 377 378 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика