Что такое Windows Communication FoundationWhat Is Windows Communication Foundation

Windows Communication Foundation (WCF) — это платформа для создания приложений, ориентированных на службы.Windows Communication Foundation (WCF) is a framework for building service-oriented applications. С помощью WCF можно передавать данные в виде асинхронных сообщений из одной конечной точки службы в другую.Using WCF, you can send data as asynchronous messages from one service endpoint to another. Конечная точка службы может входить в постоянно доступную службу, размещаемую в IIS, или представлять службу, размещаемую в приложении.A service endpoint can be part of a continuously available service hosted by IIS, or it can be a service hosted in an application. Конечная точка может быть клиентом службы, которая запрашивает данные от конечной точки службы.An endpoint can be a client of a service that requests data from a service endpoint. Сообщения могут представлять одиночный символ или одно слово, отправляемое в формате XML, или иметь вид сложного потока двоичных данных.The messages can be as simple as a single character or word sent as XML, or as complex as a stream of binary data. Далее представлено несколько образцов сценариев.A few sample scenarios include:

  • Защищенная служба для обработки бизнес-транзакций.A secure service to process business transactions.

  • Служба, передающая другим объектам текущие данные, такие как отчет о трафике, или другая служба наблюдения.A service that supplies current data to others, such as a traffic report or other monitoring service.

  • Служба бесед, которая позволяет двум пользователям общаться и обмениваться данными в реальном времени.A chat service that allows two people to communicate or exchange data in real time.

  • Приложение панели мониторинга, которая опрашивает одну или несколько служб и дает логическое представление полученных данных.A dashboard application that polls one or more services for data and presents it in a logical presentation.

  • Предоставление доступа к рабочему процессу, реализованному с помощью Windows Workflow Foundation, в виде службы WCF.Exposing a workflow implemented using Windows Workflow Foundation as a WCF service.

  • Приложение Silverlight для запроса последних каналов данных в службе.A Silverlight application to poll a service for the latest data feeds.

Хотя создание таких приложений было возможным до появления WCF, WCF упрощает разработку конечных точек, чем когда-либо.While creating such applications was possible prior to the existence of WCF, WCF makes the development of endpoints easier than ever. В целом, WCF призвана обеспечить управляемый подход к созданию веб-служб и клиентов веб-служб.In summary, WCF is designed to offer a manageable approach to creating Web services and Web service clients.

Возможности WCFFeatures of WCF

В состав WCF входит следующий набор функций.WCF includes the following set of features. Дополнительные сведения см. в разделе сведения о функции WCF.For more information, see WCF Feature Details.

  • Сервис-ориентированностьService Orientation

    Одним из последствий использования стандартов WS является то, что WCF позволяет создавать приложения, ориентированные на службы .One consequence of using WS standards is that WCF enables you to create service oriented applications. Сервисноориентированная архитектура (SOA) подразумевает применение веб-служб для отправки и получения данных.Service-oriented architecture (SOA) is the reliance on Web services to send and receive data. Общим преимуществом служб является слабая связанность вместо жесткой запрограммированности для различных приложений.The services have the general advantage of being loosely-coupled instead of hard-coded from one application to another. Слабая связь означает, что любой клиент, созданный на любой платформе, может подключаться к любой службе при условии, что выполняются необходимые контракты.A loosely-coupled relationship implies that any client created on any platform can connect to any service as long as the essential contracts are met.

  • ВзаимодействиеInteroperability

    WCF реализует современные отраслевые стандарты для взаимодействия веб-служб.WCF implements modern industry standards for Web service interoperability. Дополнительные сведения о поддерживаемых стандартах см. в статье взаимодействие и интеграция.For more information about the supported standards, see Interoperability and Integration.

  • Несколько шаблонов сообщенийMultiple Message Patterns

    Обмен сообщениями выполняется по одному из нескольких шаблонов.Messages are exchanged in one of several patterns. Чаще всего используется шаблон «запрос-ответ», когда одна конечная точка запрашивает данные от другой конечной точки.The most common pattern is the request/reply pattern, where one endpoint requests data from a second endpoint. Вторая конечная точка отвечает.The second endpoint replies. Существуют и другие шаблоны, например одностороннее сообщение, когда одна конечная точка отправляет сообщение, не ожидая ответа.There are other patterns such as a one-way message in which a single endpoint sends a message without any expectation of a reply. Более сложным является шаблон дуплексного обмена, когда две конечные точки устанавливают соединение и отправляют данные в обоих направлениях подобно программе обмена мгновенными сообщениями.A more complex pattern is the duplex exchange pattern where two endpoints establish a connection and send data back and forth, similar to an instant messaging program. Дополнительные сведения о реализации различных шаблонов обмена сообщениями с помощью WCF см. в разделе контракты.For more information about how to implement different message exchange patterns using WCF see Contracts.

  • Метаданные службыService Metadata

    WCF поддерживает публикацию метаданных службы с использованием форматов, указанных в отраслевых стандартах, таких как WSDL, XML Schema и WS-Policy.WCF supports publishing service metadata using formats specified in industry standards such as WSDL, XML Schema and WS-Policy. Эти метаданные можно использовать для автоматического создания и настройки клиентов для доступа к службам WCF.This metadata can be used to automatically generate and configure clients for accessing WCF services. Метаданные могут публиковаться через HTTP и HTTPS или с использованием стандарта обмена метаданными веб-служб.Metadata can be published over HTTP and HTTPS or using the Web Service Metadata Exchange standard. Дополнительные сведения см. в разделе Метаданные.For more information, see Metadata.

  • Контракты данныхData Contracts

    Поскольку WCF построена с использованием .NET Framework, она также включает удобные в коде методы предоставления контрактов, которые необходимо применить.Because WCF is built using the .NET Framework, it also includes code-friendly methods of supplying the contracts you want to enforce. Одним из универсальных типов контрактов является контракт данных.One of the universal types of contracts is the data contract. Если код службы создается на языке Visual C# или Visual Basic, то самым простым способом обработки данных фактически является создание классов, которые представляют сущность данных со свойствами, принадлежащими сущности данных.In essence, as you code your service using Visual C# or Visual Basic, the easiest way to handle data is by creating classes that represent a data entity with properties that belong to the data entity. WCF включает в себя комплексную систему для работы с данными с помощью этого простого способа.WCF includes a comprehensive system for working with data in this easy manner. После создания классов, представляющих данные, служба автоматически создает метаданные, которые позволяют клиентам обеспечивать соответствие заданным типам данных.Once you have created the classes that represent data, your service automatically generates the metadata that allows clients to comply with the data types you have designed. Дополнительные сведения см. в разделе Использование контрактов данных.For more information, see Using Data Contracts.

  • БезопасностьSecurity

    Сообщения можно шифровать для защиты конфиденциальности и требовать от пользователей проходить проверку подлинности перед приемом сообщений.Messages can be encrypted to protect privacy and you can require users to authenticate themselves before being allowed to receive messages. Можно реализовать широко известные стандарты безопасности, такие как SSL и WS-SecureConversation.Security can be implemented using well-known standards such as SSL or WS-SecureConversation. Дополнительные сведения см. в статье Безопасность.For more information, see Security.

  • Несколько транспортов и кодировокMultiple Transports and Encodings

    Сообщения могут отправляться по любому из нескольких встроенных транспортных протоколов в различных кодировках.Messages can be sent on any of several built-in transport protocols and encodings. Наиболее распространенный протокол и кодировка — это отправка сообщений SOAP, закодированных в виде текста, с использованием протокола HTTP для использования в Интернете.The most common protocol and encoding is to send text encoded SOAP messages using the HyperText Transfer Protocol (HTTP) for use on the World Wide Web. Кроме того, WCF позволяет отсылать сообщения по протоколу TCP, именованным каналам или MSMQ.Alternatively, WCF allows you to send messages over TCP, named pipes, or MSMQ. Сообщения можно кодировать в виде текста или использовать оптимизированный двоичный формат.These messages can be encoded as text or using an optimized binary format. Двоичные данные можно эффективно отправлять с использованием стандарта MTOM.Binary data can be sent efficiently using the MTOM standard. Если ни один из предоставляемых транспортов и кодировок не подходит к текущим требованиям, вы можете создать собственный пользовательский транспорт или кодировку.If none of the provided transports or encodings suit your needs you can create your own custom transport or encoding. Дополнительные сведения о транспортах и кодировках, поддерживаемых WCF, см. в статье транспорты.For more information about transports and encodings supported by WCF see Transports.

  • Надежные сообщения и сообщения в очередиReliable and Queued Messages

    WCF поддерживает надежный обмен сообщениями, используя надежные сеансы, реализованные с помощью WS-надежного обмена сообщениями и MSMQ.WCF supports reliable message exchange using reliable sessions implemented over WS-Reliable Messaging and using MSMQ. Дополнительные сведения о поддержке надежных и очередных сообщений в WCF см. в статье очереди и надежные сеансы.For more information about reliable and queued messaging support in WCF see Queues and Reliable Sessions.

  • Устойчивые сообщенияDurable Messages

    Устойчивые сообщения не теряются в случае перебоев связи.A durable message is one that is never lost due to a disruption in the communication. Сообщения, передаваемые по устойчивому шаблону, всегда сохраняются в базе данных.The messages in a durable message pattern are always saved to a database. Если происходит перебой связи, база данных позволяет возобновить обмен сообщениями после восстановления соединения.If a disruption occurs, the database allows you to resume the message exchange when the connection is restored. Вы также можете создать устойчивое сообщение с помощью Windows Workflow Foundation (WF).You can also create a durable message using the Windows Workflow Foundation (WF). Дополнительные сведения см. в разделе службы рабочих процессов.For more information, see Workflow Services.

  • ТранзакцииTransactions

    WCF также поддерживает транзакции с использованием одной из трех моделей транзакций: WS-Атомиктрансактионс, API-интерфейсы в System.Transactions пространстве имен и Microsoft координатор распределенных транзакций.WCF also supports transactions using one of three transaction models: WS-AtomicTransactions, the APIs in the System.Transactions namespace, and Microsoft Distributed Transaction Coordinator. Дополнительные сведения о поддержке транзакций в WCF см. в разделе транзакции.For more information about transaction support in WCF see Transactions.

  • Поддержка AJAX и RESTAJAX and REST Support

    REST - это пример развития технологии Web 2.0.REST is an example of an evolving Web 2.0 technology. WCF можно настроить для обработки «обычных» XML-данных, которые не упакованы в конверт SOAP.WCF can be configured to process "plain" XML data that is not wrapped in a SOAP envelope. Кроме того, WCF можно расширить для поддержки конкретных форматов XML, таких как ATOM (популярный RSS-стандарт), и даже для форматов, отличных от XML, таких как нотация объектов JavaScript (JSON).WCF can also be extended to support specific XML formats, such as ATOM (a popular RSS standard), and even non-XML formats, such as JavaScript Object Notation (JSON).

  • РасширяемостьExtensibility

    Архитектура WCF имеет ряд точек расширения.The WCF architecture has a number of extensibility points. Если требуются дополнительные возможности, поддерживаются точки входа, посредством которых можно настроить поведение службы.If extra capability is required, there are a number of entry points that allow you to customize the behavior of a service. Дополнительные сведения о доступных точках расширения см. в разделе Расширение WCF.For more information about available extensibility points see Extending WCF.

Интеграция WCF с другими технологиями МайкрософтWCF Integration with Other Microsoft Technologies

WCF — это гибкая платформа.WCF is a flexible platform. Из-за такой крайней гибкости WCF также используется в нескольких других продуктах Майкрософт.Because of this extreme flexibility, WCF is also used in several other Microsoft products. Зная основы WCF, вы получаете мгновенное преимущество, если вы также используете любой из этих продуктов.By understanding the basics of WCF, you have an immediate advantage if you also use any of these products.

Первая технология, связанная с WCF, была Windows Workflow Foundationом (WF).The first technology to pair with WCF was the Windows Workflow Foundation (WF). Рабочие процессы упрощают разработку приложений, инкапсулирующие шаги в рабочем процессе как "действия".Workflows simplify application development by encapsulating steps in the workflow as "activities." В первой версии Windows Workflow Foundation разработчику пришлось создавать узел для рабочего процесса.In the first version of Windows Workflow Foundation, a developer had to create a host for the workflow. Следующая версия Windows Workflow Foundation была интегрирована с WCF.The next version of Windows Workflow Foundation was integrated with WCF. Это позволяло легко размещать любой рабочий процесс в службе WCF.That allowed any workflow to be easily hosted in a WCF service. Это можно сделать, автоматически выбрав тип проекта WF/WCF в Visual Studio 2012 или более поздней версии.You can do this by automatically choosing the WF/WCF project type in Visual Studio 2012 or later.

Microsoft BizTalk Server R2 также использует WCF в качестве коммуникационной технологии.Microsoft BizTalk Server R2 also utilizes WCF as a communication technology. BizTalk предназначен для получения и преобразования данных из одного стандартного формата в другой.BizTalk is designed to receive and transform data from one standardized format to another. Сообщения должны доставляться в центральный ящик, где сообщение может преобразовываться по строгому сопоставления или с использованием одной из функций BizTalk, таких как подсистема рабочих процессов.Messages must be delivered to its central message box where the message can be transformed using either a strict mapping or by using one of the BizTalk features such as its workflow engine. Теперь BizTalk может использовать бизнес-адаптер WCF для доставки сообщений в окно сообщения.BizTalk can now use the WCF Line of Business (LOB) adapter to deliver messages to the message box.

Платформа Microsoft Silverlight предназначена для создания многофункциональных веб-приложений широкой совместимости и дает разработчикам возможность создавать веб-узлы, интенсивно использующие мультимедиа-функции (например, потоковое видео).Microsoft Silverlight is a platform for creating interoperable, rich Web applications that allow developers to create media-intensive Web sites (such as streaming video). Начиная с версии 2, Silverlight внедряет WCF в качестве технологии связи для подключения приложений Silverlight к конечным точкам WCF.Beginning with version 2, Silverlight has incorporated WCF as a communication technology to connect Silverlight applications to WCF endpoints.

Функции размещения сервера приложений Windows Server AppFabric специально разработаны для развертывания приложений, использующих WCF для обмена данными, и управления ими.The hosting features of Windows Server AppFabric application server are specifically designed for deploying and managing applications that use WCF for communication. Функции размещения включают разнообразные средства и параметры конфигурации, специально разработанные для приложений с поддержкой WCF.The hosting features include rich tooling and configuration options specifically designed for WCF-enabled applications.

См. такжеSee also