WCF - Arquitetura

O WCF tem uma arquitetura em camadas que oferece amplo suporte para o desenvolvimento de vários aplicativos distribuídos. A arquitetura é explicada em detalhes abaixo.

Contratos

A camada de contratos fica próxima à camada de aplicativo e contém informações semelhantes às de um contrato do mundo real que especifica a operação de um serviço e o tipo de informação acessível que ele fará. Os contratos são basicamente de quatro tipos discutidos abaixo em breve -

  • Service contract - Este contrato fornece informações para o cliente e também para o mundo exterior sobre as ofertas do terminal e os protocolos a serem usados ​​no processo de comunicação.

  • Data contract- Os dados trocados por um serviço são definidos por um contrato de dados. Tanto o cliente quanto o serviço devem estar de acordo com o contrato de dados.

  • Message contract- Um contrato de dados é controlado por um contrato de mensagem. Ele faz principalmente a customização da formatação de tipo dos parâmetros de mensagem SOAP. Aqui, deve ser mencionado que o WCF emprega o formato SOAP para fins de comunicação. SOAP significa Simple Object Access Protocol.

  • Policy and Binding- Existem certas pré-condições para a comunicação com um serviço, e tais condições são definidas por política e contrato vinculativo. Um cliente precisa seguir este contrato.

Tempo de execução do serviço

A camada de tempo de execução do serviço está logo abaixo da camada de contratos. Ele especifica os vários comportamentos de serviço que ocorrem durante o tempo de execução. Existem muitos tipos de comportamentos que podem sofrer configuração e entrar no tempo de execução do serviço.

  • Throttling Behavior - Gerencia o número de mensagens processadas.

  • Error Behavior - Define o resultado de qualquer ocorrência de erro interno do serviço.

  • Metadata Behavior - Especifica a disponibilidade de metadados para o mundo externo.

  • Instance Behavior - Define o número de instâncias que precisam ser criadas para disponibilizá-las para o cliente.

  • Transaction Behavior - Permite uma mudança no estado da transação em caso de qualquer falha.

  • Dispatch Behavior - Controla a maneira como uma mensagem é processada pela infraestrutura do WCF.

  • Concurrency Behavior - Controla as funções que são executadas paralelamente durante uma comunicação cliente-servidor.

  • Parameter Filtering - Apresenta o processo de validação de parâmetros para um método antes de ser invocado.

Mensagens

Essa camada, composta por diversos canais, trata principalmente do conteúdo da mensagem a ser comunicada entre dois terminais. Um conjunto de canais forma uma pilha de canais e os dois principais tipos de canais que compõem a pilha de canais são os seguintes -

  • Transport Channels - Esses canais estão presentes na parte inferior de uma pilha e são responsáveis ​​pelo envio e recebimento de mensagens usando protocolos de transporte como HTTP, TCP, Ponto a Ponto, Pipes Nomeados e MSMQ.

  • Protocol Channels - Presente no topo de uma pilha, esses canais também conhecidos como canais em camadas, implementam protocolos de nível de fio modificando mensagens.

Ativação e Hospedagem

A última camada da arquitetura WCF é o local onde os serviços são realmente hospedados ou podem ser executados para fácil acesso pelo cliente. Isso é feito por vários mecanismos discutidos abaixo em breve.

  • IIS- IIS significa Internet Information Service. Ele oferece uma infinidade de vantagens usando o protocolo HTTP por um serviço. Aqui, não é necessário ter o código do host para ativar o código do serviço; em vez disso, o código de serviço é ativado automaticamente.

  • Windows Activation Service- Isso é conhecido popularmente como WAS e vem com o IIS 7.0. A comunicação baseada em HTTP e não HTTP é possível aqui usando os protocolos TCP ou Namedpipe.

  • Self-hosting- Este é um mecanismo pelo qual um serviço WCF fica auto-hospedado como um aplicativo de console. Esse mecanismo oferece uma flexibilidade incrível em termos de escolha dos protocolos desejados e configuração do próprio esquema de endereçamento.

  • Windows Service - Hospedar um serviço WCF com este mecanismo é vantajoso, pois os serviços então permanecem ativados e acessíveis ao cliente devido a nenhuma ativação em tempo de execução.