Partilhar via


Arquitetura do Windows Communication Foundation

O gráfico a seguir ilustra as principais camadas da arquitetura do Windows Communication Foundation (WCF).

Arquitetura WCF

The WCF Architecture

Contratos e Descrições

Os contratos definem vários aspetos do sistema de mensagens. O contrato de dados descreve todos os parâmetros que compõem cada mensagem que um serviço pode criar ou consumir. Os parâmetros de mensagem são definidos por documentos XSD (XML Schema Definition Language), permitindo que qualquer sistema que compreenda XML processe os documentos. O contrato de mensagem define partes específicas da mensagem usando protocolos SOAP e permite um controle mais refinado sobre partes da mensagem, quando a interoperabilidade exige tal precisão. O contrato de serviço especifica as assinaturas de método reais do serviço e é distribuído como uma interface em uma das linguagens de programação suportadas, como Visual Basic ou Visual C#.

Políticas e vinculações estipulam as condições necessárias para se comunicar com um serviço. Por exemplo, a associação deve (no mínimo) especificar o transporte usado (por exemplo, HTTP ou TCP) e uma codificação. As políticas incluem requisitos de segurança e outras condições que devem ser atendidas para se comunicar com um serviço.

Runtime do Serviço

A camada de tempo de execução do serviço contém os comportamentos que ocorrem somente durante a operação real do serviço, ou seja, os comportamentos de tempo de execução do serviço. A limitação controla quantas mensagens são processadas, o que pode ser variado se a demanda pelo serviço crescer até um limite predefinido. Um comportamento de erro especifica o que ocorre quando ocorre um erro interno no serviço, por exemplo, controlando quais informações são comunicadas ao cliente. (O excesso de informações pode dar a um usuário mal-intencionado uma vantagem na montagem de um ataque.) O comportamento dos metadados rege como e se os metadados são disponibilizados para o mundo exterior. O comportamento da instância especifica quantas instâncias do serviço podem ser executadas (por exemplo, um singleton especifica apenas uma instância para processar todas as mensagens). O comportamento da transação permite a reversão das operações transacionadas se ocorrer uma falha. O comportamento de despacho é o controle de como uma mensagem é processada pela infraestrutura WCF.

A extensibilidade permite a personalização de processos de tempo de execução. Por exemplo, a inspeção de mensagens é o recurso para inspecionar partes de uma mensagem, e a filtragem de parâmetros permite que ações predefinidas ocorram com base em filtros que atuam nos cabeçalhos das mensagens.

Mensagens

A camada de mensagens é composta por canais. Um canal é um componente que processa uma mensagem de alguma forma, por exemplo, autenticando uma mensagem. Um conjunto de canais também é conhecido como uma pilha de canais. Os canais operam em mensagens e cabeçalhos de mensagens. Isso é diferente da camada de tempo de execução do serviço, que se preocupa principalmente com o processamento do conteúdo dos corpos das mensagens.

Existem dois tipos de canais: canais de transporte e canais de protocolo.

Os canais de transporte leem e escrevem mensagens da rede (ou de algum outro ponto de comunicação com o mundo exterior). Alguns transportes usam um codificador para converter mensagens (que são representadas como XML Infosets) de e para a representação de fluxo de bytes usada pela rede. Exemplos de transportes são HTTP, pipes nomeados, TCP e MSMQ. Exemplos de codificações são XML e binário otimizado.

Os canais de protocolo implementam protocolos de processamento de mensagens, geralmente lendo ou gravando cabeçalhos adicionais para a mensagem. Exemplos de tais protocolos incluem WS-Security e WS-Reliability.

A camada de mensagens ilustra os possíveis formatos e padrões de troca dos dados. WS-Security é uma implementação da especificação WS-Security que permite a segurança na camada de mensagens. O canal WS-Reliable Messaging permite a garantia de entrega de mensagens. Os codificadores apresentam uma variedade de codificações que podem ser usadas para atender às necessidades da mensagem. O canal HTTP especifica que o Protocolo de Transporte de Hipertexto é usado para entrega de mensagens. O canal TCP especifica de forma semelhante o protocolo TCP. O canal Fluxo de Transações rege os padrões de mensagens transacionadas. O canal Named Pipe permite a comunicação entre processos. O canal MSMQ permite a interoperação com aplicativos MSMQ.

Alojamento e Ativação

Na sua forma final, um serviço é um programa. Como outros programas, um serviço deve ser executado em um executável. Isso é conhecido como um serviço auto-hospedado .

Os serviços também podem ser hospedados ou executados em um executável gerenciado por um agente externo, como o IIS ou o Serviço de Ativação do Windows (WAS). O WAS permite que os aplicativos WCF sejam ativados automaticamente quando implantados em um computador que executa o WAS. Os serviços também podem ser executados manualmente como executáveis (arquivos .exe). Um serviço também pode ser executado automaticamente como um serviço do Windows. Os componentes COM+ também podem ser hospedados como serviços WCF.

Consulte também