Cenários de implementação de serviços com WCF - Parte 1 : Aspectos de SOA
Olá pessoal, tudo certo?
Vamos dar um tempinho no assunto ADO.NET Entity Framework e voltar para o mundo WCF - Windows Communication Foundation, pode ser?
Recentemente, em conversas com um time de arquitetos, voltamos a falar sobre os vários desafios na construção de arquiteturas orientadas para serviços. E como era de se esperar, WCF apareceu com destaque na reunião, considerando a plataforma Microsoft :)
De fato, o WCF foi construído com os aspectos de SOA (Service Oriented Architecture) em mente. Vamos citar alguns:
- O design e a implementação de serviços são naturalmente desacoplados da lógica de negócios da aplicação. Essa característica é que permite a migração das aplicações atuais para um modelo de serviços;
- Serviços expõem funcionalidades para clientes remotos através de contratos explícitos de serviços e de dados;
- Serviços são executados de forma autônoma, não havendo impacto entre serviços quando da ocorrência de uma falha, ou seja, o isolamento é uma condição obrigatória entre serviços, assim como as fronteiras de segurança;
- Serviços podem ser distribuídos através de diferentes protocolos, o que atende uma série de cenários presentes no ambiente corporativo. A interoperabilidade é uma exigência;
- Serviços são agnósticos ao transporte, ou seja, podem ser expostos diretamente na web, via intranet, ou usado como um backend no enterprise;
Para exemplificar um serviço WCF e seus principais elementos, temos o desenho a seguir:
Resumindo, serviços são orientados a mensagens, possuem contratos de serviços e de dados, são multi-protocolos e multi-hosts, com aspectos de segurança, isolamento, políticas, monitoração, comportamentos, etc. Todos esses aspectos são atendidos pelo modelo de programação do WCF.
Ainda, através do ABC do WCF (onde Endpoint = Addess + Binding + Contract) é possível uma grande flexibilidade na implantação e configuração de serviços em diversos ambientes de TI. Por exemplo, a tabela abaixo mostra a série de Bindings disponíveis para a configuração de nosso Endpoint. Cada combinação com diferentes propriedades para a comunicação entre clientes e serviços:
De fato, nem só de serviços vive uma arquitetura SOA. Precisamos pensar em questões de consumo, composição, orquestração, workflows, interação com o legado, etc. Nesse ponto, surge a necessidade de uma arquitetura de referência, que oriente nossa visão e a posição de cada componente nessa organização de infra-estrutura.
Porém, quando vamos para a implementação de projeto SOA de fato, descobrimos que para nosso mundo de serviços existem diversos cenários possíveis. Cada cenário possui aspectos de configuração e deployment com impacto direto na performance, no versionamento, na administração e na governança do ambiente de produção.
Uma primeira lista de cenários comuns para a implementação de serviços é dada abaixo:
Com certeza, pelo menos 1 dos cenários acima é uma realidade em sua empresa.
Por isso, vamos começar uma nova série aqui no blog: o desafio para os próximos posts será detalhar cada cenário acima, discutindo as diversas configurações e características principais envolvidas. Nosso template de estudo será:
- Tipo de hosting utilizado
- Protocolo de transporte
- Protocolo de mensagens
- Mecanismo de Autenticação
- Mecanismo de Autorização
- Garantia de Confiabilidade
- Proteção no Transporte ou Segurança;
Enquanto avançamos pelos cenários, teremos a oportunidade de entender um pouco mais do modelo de arquitetura WCF. Muito trabalho pela frente, mas será divertido. Fiquem ligados!
Por enquanto é só! Até o próximo post :)
Waldemir.
Comments
Anonymous
December 03, 2008
Há alguma informação sobre este assunto em outras línguas?Anonymous
December 04, 2008
Olá Green, Sim, existem diversas fontes falando sobre o assunto, envolvendo SOA e WCF, principalmente em inglês. Recomendo olhar alguns links interessante, como: http://www.regonline.com/Checkin.asp?EventId=628664 http://www.microsoft.com/soa/ []s Waldemir