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

Приведенный ниже рисунок иллюстрирует основные уровни архитектуры Windows Communication Foundation (WCF).The following graphic illustrates the major layers of the Windows Communication Foundation (WCF) architecture.

Архитектура WCFWCF Architecture

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

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

Контракты определяют различные аспекты системы сообщений.Contracts define various aspects of the message system. Контракты данных описывают каждый параметр, составляющий каждое сообщение, которое может быть создано или использовано службой.The data contract describes every parameter that makes up every message that a service can create or consume. Параметры сообщения определены документами языка определения схемы XML (XSD), тем самым позволяя обрабатывать документы любой системе, которая воспринимает XML.The message parameters are defined by XML Schema definition language (XSD) documents, enabling any system that understands XML to process the documents. Контракт сообщения определяет конкретные части сообщения, использующие протокол SOAP, и позволяет более точно управлять частями сообщения, когда такая точность требуется при взаимодействии.The message contract defines specific message parts using SOAP protocols, and allows finer-grained control over parts of the message, when interoperability demands such precision. Контракт службы задает фактические подписи методов службы и распространяется в качестве интерфейса в одном из поддерживаемых языков программирования, например Visual Basic и Visual C#.The service contract specifies the actual method signatures of the service, and is distributed as an interface in one of the supported programming languages, such as Visual Basic or Visual C#.

Политики и привязки задают условия, необходимые для взаимодействия со службой.Policies and bindings stipulate the conditions required to communicate with a service. Например, привязка должна (как минимум) указывать используемый транспорт (например, HTTP или TCP) и кодирование.For example, the binding must (at a minimum) specify the transport used (for example, HTTP or TCP), and an encoding. Политики содержат требования к безопасности и другие условия, которые должны быть удовлетворены для взаимодействия со службой.Policies include security requirements and other conditions that must be met to communicate with a service.

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

Уровень среды выполнения службы содержит поведения, возникающие только в процессе выполнения самой операции службы, то есть поведения среды выполнения службы.The service runtime layer contains the behaviors that occur only during the actual operation of the service, that is, the runtime behaviors of the service. Регулирование управляет количеством обрабатываемых сообщений, которое может изменяться, если запросы к службе возрастают до заранее установленного предела.Throttling controls how many messages are processed, which can be varied if the demand for the service grows to a preset limit. Поведение при ошибке указывает, что происходит при возникновении внутренней ошибки в службе, например управляя тем, какая информация передается клиенту.An error behavior specifies what occurs when an internal error occurs on the service, for example, by controlling what information is communicated to the client. (Слишком много сведений могут помочь злоумышленнику в осуществлении атаки.) Поведение метаданных управляет тем, будут ли метаданные доступны внешнему миру и как это сделать.(Too much information can give a malicious user an advantage in mounting an attack.) Metadata behavior governs how and whether metadata is made available to the outside world. Поведение экземпляра указывает, какое число экземпляров службы может выполнятся (например, одноэлементный задает один экземпляр для обработки всех сообщений).Instance behavior specifies how many instances of the service can be run (for example, a singleton specifies only one instance to process all messages). Поведение транзакции включает откат транзакционных операций при сбое.Transaction behavior enables the rollback of transacted operations if a failure occurs. Поведение диспетчера-это управление обработкой сообщения инфраструктурой WCF.Dispatch behavior is the control of how a message is processed by the WCF infrastructure.

Расширяемость позволяет настраивать процессы среды выполнения.Extensibility enables customization of runtime processes. Например, инспекция сообщений предоставляет возможность инспектировать части сообщений, а фильтрация параметров позволяет выполнять заранее установленные действия, возникающие в зависимости от применения фильтров к заголовкам сообщений.For example, message inspection is the facility to inspect parts of a message, and parameter filtering enables preset actions to occur based on filters acting on message headers.

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

Уровень обмена сообщениями состоит из каналы.The messaging layer is composed of channels. Канал - это компонент, который обрабатывает сообщение некоторым образом, например путем проверки подлинности сообщения.A channel is a component that processes a message in some way, for example, by authenticating a message. Набор каналов называется также стек каналов.A set of channels is also known as a channel stack. Каналы оперируют сообщениями и их заголовками.Channels operate on messages and message headers. Это отличается от уровня среды выполнения служб, который, главным образом, занимается обработкой содержимого тел сообщений.This is different from the service runtime layer, which is primarily concerned about processing the contents of message bodies.

Существует два типа каналов: каналы транспорта и каналы протоколов.There are two types of channels: transport channels and protocol channels.

Каналы транспорта считывают и записывают сообщения по сети (или какой-либо другой точке связи с внешним миром).Transport channels read and write messages from the network (or some other communication point with the outside world). Некоторые транспорты используют кодировщик для преобразования сообщений (которые представлены в виде наборов сведений XML) в представление потока байтов, используемое в сети, и обратно.Some transports use an encoder to convert messages (which are represented as XML Infosets) to and from the byte stream representation used by the network. Примерами транспортов являются HTTP, именованные каналы, TCP и MSMQ.Examples of transports are HTTP, named pipes, TCP, and MSMQ. Примерами кодирования являются XML и оптимизированный двоичный тип.Examples of encodings are XML and optimized binary.

Каналы протоколов реализуют протоколы обработки сообщений, обычно при чтении или записи дополнительных заголовков в сообщения.Protocol channels implement message processing protocols, often by reading or writing additional headers to the message. Примерами таких протоколов являются WS-Security и WS-Reliability.Examples of such protocols include WS-Security and WS-Reliability.

Уровень обмена сообщениями демонстрирует возможные форматы данных и их шаблоны обмена.The messaging layer illustrates the possible formats and exchange patterns of the data. WS-Security является реализацией спецификации WS-Security, включающей безопасность на уровне обмена сообщениями.WS-Security is an implementation of the WS-Security specification enabling security at the message layer. Канал обмена сообщениями WS-Reliable обеспечивает гарантированную доставку сообщений.The WS-Reliable Messaging channel enables the guarantee of message delivery. Кодировщики предоставляют различные кодировки, которые могут использоваться в соответствии с потребностями сообщений.The encoders present a variety of encodings that can be used to suit the needs of the message. Канал HTTP указывает, что протокол транспортировки гипертекста (HyperText Transport Protocol) используется для доставки сообщений.The HTTP channel specifies that the HyperText Transport Protocol is used for message delivery. Таким же образом канал TCP задает протокол TCP.The TCP channel similarly specifies the TCP protocol. Канал потока транзакций управляет шаблонами сообщений транзакций.The Transaction Flow channel governs transacted message patterns. Именованный канал включает межпроцессное взаимодействие.The Named Pipe channel enables interprocess communication. Канал MSMQ взаимодействие с приложениями MSMQ.The MSMQ channel enables interoperation with MSMQ applications.

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

В своей конечной форме служба является программой.In its final form, a service is a program. Как и другие программы, служба должна выполняться в исполняемом файле.Like other programs, a service must be run in an executable. Этот процесс называется резидентным службы.This is known as a self-hosted service.

Службы также могут представлять размещенных, или выполняться в исполняемом управляется внешним агентом, например IIS или службе активации Windows (WAS).Services can also be hosted, or run in an executable managed by an external agent, such as IIS or Windows Activation Service (WAS). БЫЛА приложений WCF позволяет автоматически проходить активацию при развертывании на компьютере с ОС.WAS enables WCF applications to be activated automatically when deployed on a computer running WAS. Службы также могут быть вручную запущены как исполняемые файлы (EXE-файлы).Services can also be manually run as executables (.exe files). Их также можно автоматически запускать в виде служб Windows.A service can also be run automatically as a Windows service. Компоненты COM + могут размещаться как службы WCF.COM+ components can also be hosted as WCF services.

См. такжеSee also