|
Программирование >> Программирование с использованием ajax
чем 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-службой, прежде всего, необходимо знать, где она находится. На практике это означает, что необходимо знать адрес ее конечной точки. Адреса, конечные точки и привязки Формат адреса, который нужно использовать для подключения к службе, зависит от лежащего в основе протокола. Формат адресов служб, в основе которых лежат те три протокола, которые описываются в настоящей главе, выглядит следующим образом.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |