[ Project Azure – The Session Posts – Part II ]


Fala pessoal!

No post anterior eu disse que hoje estaríamos preparando nosso ambiente para desenvolvermos com Azure, mas revisando o projeto final me deparei que estaríamos utilizando WCF, por este motivo achei mais prudente esticarmos mais um pouquinho e fazer um overview do que vem a ser SOA e WCF.

SOA

Service-oriented architecture (SOA) ou traduzindo Arquitetura Orientada a Serviços, nada mais é do que uma evolução natural da arquitetura de sistemas tradicional, esta evolução se deu devida a grande complexidade dos sistemas corporativos onde componentes são desenvolvidos para ligar dois pontos específicos e possuem alto acoplamento (interdependência, dependentes entre si) causando grande redundância de funcionalidades, sistemas eram desenvolvidos de forma semelhantes em si, com apenas alguns ajustes específicos para determinada situação o que acarretava em um maior tempo de desenvolvimento e de um alto custo para as empresas.

Com isso nasceu o SOA que é uma abordagem arquitetural corporativa onde é possível a criação de serviços de negócio interoperáveis que podem facilmente ser reutilizados e compartilhados e acessados por diferentes dispositivos sob a forma de serviço entre aplicações e empresas, sem precisarem ser reescritos .

A Arquitetura Orientada a Serviços é regida por 8 princípios básicos que são: reutilizáveis, compartilham um contrato formal, possuem baixo acoplamento, abstraem a lógica, são capazes de se compor, são autônomos, evitam alocação de recursos por longos períodos e devem possuir a capacidade de serem descobertos.

WCF

Windows Communication Foundation (WCF) é um modelo de programação unificado em ambiente de execução (Framework) criado pela Microsoft que visa a construção de aplicações orientadas a serviços (Service Oriented Architecture-SOA), e como principais benefícios temos: modelo de programação unificado, suporte a SOA, neutralidade de protocolo, interoperabilidade baseada em padrões de mercado, segurança integrada, arquitetura flexível e extensível, entre outras características. Ele foi lançado como parte do .NET Framework 3.0 e desenvolvido para consolidar e estender as APIs de versões anteriores do Framework (isto é, Web Services, .NET Remoting, Enterprise Services (COM+) e enfileiramento de mensagens).

A partir de agora veremos a estrutura básica de um WCF, descobriremos o que é um Service e suas principais classes.

Um Service do WCF é um programa que possui uma coleção de EndPoints, cada um deles possuem a função de uma porta que permite a comunicação com o mundo externo (outros sistemas, serviços).

O ServiceEndPoint basicamente é composto por 3 classes, chamadas de ABC ou Address (EndPointAddress), Binding e Description (ContractDescription).

WCF_Class

A classe EndpointAddress representa um Address do Endpoint do WCF, é um endereço de rede no qual reside o Endpoint.

Um EndpointAddress é basicamente composto por um URI (Uniform Resource Identifier é uma cadeia de caracteres compacta usada para identificar ou denominar um recurso na Internet) normalmente essa é sua identidade de segurança, uma Identity (em cenários mais avançados a identidade de segurança é declarada explicitamente na Identity independentemente da URI) e uma coleção de cabeçalhos (são usados para carregar informações adicionais de endereçamento como exemplo eles são usados para diferenciar EndPoints que utilizam a mesma URI).

Binding possui a função de definir como o Endpoint se comunica e é composto por três membro: Name, Namespaces (identificam exclusivamente nos metadados do serviço) e BindingElement (possui três elementos onde cada um descreve parte de como se comunicar com o EndPoint, como por exemplo: indicando qual protocolo será utilizado para a comunicação, indica se o Endpoint utiliza mensagens confiáveis para fornecer garantias de entrega de mensagens e por último se o Endpoint usa a segurança de mensagens SOAP).

Contract é o que o Endpoint comunica para o mundo exterior, cada operação é uma troca simples de mensagens.

A classe ContractDescription é usada para descrever os Contracts do WCF e suas operações. Assim como as Bindings, cada Contract tem um Name e um Namespace que o identifica de forma exclusiva nos metadados do Service, dentro da classe ainda existe o OperationDescription que descreve os aspectos da operação, como por exemplo se a operação é unidirecional ou solicitação/resposta, ela também descreve as mensagens que formam a operação usando uma coleção de MessageDescriptions, e por último existe o módulo ContractBehaviors que modificam ou extendem o comportamento do contrato.

REFERÊNCIAS

Grande abraço

Lucas A. Romão
Líder da Célula Acadêmica Microsoft USD.NET
Líder da Comunidade [INSIDE THE CODE]
www.insidethecode.com.br
Líder da Comunidade Azure Services Brasil
http://azureservbr.groups.live.com/

Anúncios
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: