- Подробные сведения о возможностях WCF WCF Feature Details
- в этом разделе In This Section
- Архитектура Windows Communication Foundation Windows Communication Foundation Architecture
- Архитектура WCF WCF Architecture
- Контракты и описания Contracts and Descriptions
- Среда выполнения службы Service Runtime
- Обмен сообщениями Messaging
- Размещение и активация Hosting and Activation
Подробные сведения о возможностях WCF WCF Feature Details
Windows Communication Foundation (WCF) обеспечивает обширный контроль над функциями обмена сообщениями приложения. Windows Communication Foundation (WCF) allows extensive control over the messaging functions of an application. В подразделах этого раздела подробно описываются имеющиеся возможности. The topics in this section go into detail about the available features. Дополнительные сведения о базовом программировании см. в разделе Basic WCF Programming. For more information about basic programming, see Basic WCF Programming.
в этом разделе In This Section
Службы рабочего процесса Workflow Services
Описывает создание и настройку служб рабочих процессов. Describes how to create and configure workflow services.
Конечные точки: адреса, привязки и контракты Endpoints: Addresses, Bindings, and Contracts
Описывает способ контроля нескольких аспектов службы. Describes how to control multiple aspects of your service.
Передача данных и сериализация Data Transfer and Serialization
Описывает способ настройки сериализации данных для совместной работы или будущей совместимости. Describes how serialization of data can be tailored for interoperation or future compatibility.
Сеансы, экземпляры и параллелизм Sessions, Instancing, and Concurrency
Описание режимов создания экземпляров и сеансов WCF, а также выбор правильного режима для приложения. Describes the instancing and session modes of WCF and how to select the right mode for your application.
Транспорты Transports
Описывает способ настройки транспортного уровня, нижнего уровня стека каналов. Describes how to configure the transport layer, the lowest level of the channel stack.
Очереди и надежные сеансы Queues and Reliable Sessions
Описывает очереди, хранящие сообщения отправляющего приложения от имени получающего приложения и позднее перенаправляющие эти сообщения получающему приложению. Describes queues, which store messages from a sending application on behalf of a receiving application and later forward these messages to the receiving application.
Транзакции Transactions
Объясняет, как создать транзакционные операции с возможностью отката при необходимости. Explains how to create transacted operations that can be rolled back if needed.
Безопасность Security
Описывает, как безопасность WCF помогает создавать приложения с конфиденциальностью и целостностью. Describes how WCF security helps you to create applications that have confidentiality and integrity. Кроме того, в качестве возможностей аудита имеются проверка подлинности и авторизация. Authentication and authorization are also available, as are auditing features.
Одноранговая сеть Peer-to-Peer Networking
Подробная информация о способе создания одноранговых служб и клиентов. Details how to create peer services and clients.
Метаданные Metadata
Описывает архитектуру и форматы метаданных. Describes metadata architecture and formats.
Клиенты Clients
Описывает способ создания различных клиентов для доступа к службам. Describes how to create a variety of clients that access services.
Размещение Hosting
Описывает размещение. Describes hosting. Служба может размещаться в другом приложении или быть резидентной (размещаться сама в себе). A service can be hosted by another application, or it can be self-hosted.
Взаимодействие и интеграция Interoperability and Integration
Описывает, как использовать WCF для расширения существующей логики, а не переписывать ее при наличии значительных вложений в логику приложений на основе компонентов, размещенных в COM+. Describes how to use WCF to extend your existing logic rather than having to rewrite it if you have a substantial investment in component-based application logic hosted in COM+.
Модель веб-программирования HTTP WCF WCF Web HTTP Programming Model
Описывает модель веб-программирования WCF, которая позволяет разработчикам предоставлять операции службы WCF конечным точкам, не являющимся SOAP. Describes the WCF Web Programming Model that allows developers to expose WCF service operations to non-SOAP endpoints.
Синдикация WCF WCF Syndication
Описание поддержки для простого предоставления веб-каналов синдикации из службы WCF. Describes support to easily expose syndication feeds from a WCF service.
Интеграция с AJAX и поддержка JSON AJAX Integration and JSON Support
Описание поддержки ASP.NET асинхронных сценариев JavaScript и XML (AJAX) и формата данных нотация объектов JavaScript (JSON), позволяющих службам WCF предоставлять операции клиентам AJAX. Describes support for ASP.NET Asynchronous JavaScript and XML (AJAX) and the JavaScript Object Notation (JSON) data format to allow WCF services to expose operations to AJAX clients.
Обнаружение WCF WCF Discovery
Описывает поддержку для включения обнаружения служб во время выполнения совместимым способом с помощью протокола WS-Discovery. Describes support to enable services to be discoverable at runtime in an interoperable way using the WS-Discovery protocol.
Маршрутизация Routing
Описывает службу маршрутизации. Describes the routing service.
Архитектура Windows Communication Foundation Windows Communication Foundation Architecture
На следующем рисунке показаны основные уровни архитектуры Windows Communication Foundation (WCF). The following graphic illustrates the major layers of the Windows Communication Foundation (WCF) architecture.
Архитектура WCF 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). 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.