Поделиться через


Архитектура Windows Communication Foundation

Следующее изображение иллюстрирует основные уровни архитектуры Windows Communication Foundation (WCF).

Архитектура WCF

Архитектура WCF

Контракты и описания

Контракты определяют различные аспекты системы сообщений. Контракты данных описывают каждый параметр, составляющий каждое сообщение, которое может быть создано или использовано службой. Параметры сообщения определены документами языка определения схемы XML (XSD), тем самым позволяя обрабатывать документы любой системе, которая воспринимает XML. Контракт сообщения определяет конкретные части сообщения, использующие протокол SOAP, и позволяет более точно управлять частями сообщения, когда такая точность требуется при взаимодействии. Контракт службы задает фактические подписи методов службы и распространяется в качестве интерфейса в одном из поддерживаемых языков программирования, например Visual Basic и Visual C#.

Политики и привязки задают условия, необходимые для взаимодействия со службой. Например, привязка должна (как минимум) указывать используемый транспорт (например, HTTP или TCP) и кодирование. Политики содержат требования к безопасности и другие условия, которые должны быть удовлетворены для взаимодействия со службой.

Среда выполнения службы

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

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

Обмен сообщениями

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

Существует два типа каналов: каналы транспорта и каналы протоколов.

Каналы транспорта считывают и записывают сообщения по сети (или какой-либо другой точке связи с внешним миром). Некоторые транспорты используют кодировщик для преобразования сообщений (которые представлены в виде наборов сведений XML) в представление потока байтов, используемое в сети, и обратно. Примерами транспортов являются HTTP, именованные каналы, TCP и MSMQ. Примерами кодирования являются XML и оптимизированный двоичный тип.

Каналы протоколов реализуют протоколы обработки сообщений, обычно при чтении или записи дополнительных заголовков в сообщения. Примерами таких протоколов являются WS-Security и WS-Reliability.

Уровень обмена сообщениями демонстрирует возможные форматы данных и их шаблоны обмена. WS-Security является реализацией спецификации WS-Security, включающей безопасность на уровне обмена сообщениями. Канал обмена сообщениями WS-Reliable обеспечивает гарантированную доставку сообщений. Кодировщики предоставляют различные кодировки, которые могут использоваться в соответствии с потребностями сообщений. Канал HTTP указывает, что протокол транспортировки гипертекста (HyperText Transport Protocol) используется для доставки сообщений. Таким же образом канал TCP задает протокол TCP. Канал потока транзакций управляет шаблонами сообщений транзакций. Именованный канал включает межпроцессное взаимодействие. Канал MSMQ взаимодействие с приложениями MSMQ.

Размещение и активация

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

Также службы могут размещаться или выполняться в исполняемом файле, который управляется внешним агентом, например IIS или службой активации Windows (WAS). WAS позволяет приложениям WCF автоматически проходить активацию при разработке на компьютере с установленной службой WAS. Службы также могут быть вручную запущены как исполняемые файлы (EXE-файлы). Их также можно автоматически запускать в виде служб Windows. Компоненты COM+ могут размещаться также, как и службы WCF.

См. также

Основные понятия

Что такое Windows Communication Foundation
Основные понятия Windows Communication Foundation