Serviços e Workflows com AppFabric, WCF e WF

Olá pessoal, tudo certo?

Esses dias me perguntaram sobre exportação de workflows como serviços e seu impacto para soluções orientadas a serviços.

Respondi com um desenho conhecido de vocês, onde encapsulamos um workflow WF dentro de um serviços WCF Services.

Através da criação de endpoints diversos, nosso serviço pode responder em binding e endereços distintos, conforme a necessidade, além de ser possível o consumo de serviços externos, como vemos no desenho a seguir:

image 

Muito bem, até aqui, creio que não temos muitas novidades. Mas se pensarmos no ambiente corporativo, ou em cenários de mundo real, as dúvidas começam a surgir. Algo como:

  • Onde devemos hospedas serviços e workflows na plataforma Microsoft?
  • O IIS é o lugar mais indicado sempre para serviços WCF? E para workflows WF?
  • Meu cenário prevê um encadeamento de 3 a 5 serviços, que são envolvidos num caso de uso ou processo de negócio. Como faço para garantir a segurança, a autenticação e a autorização em serviços encadeados?
  • Em alguns cenários, tenho diversos dados envolvidos que poderiam ser persitidos em memória para ganhos de performance. Como posso implementar um cenário de cache para soluções baseadas em serviços e workflows?
  • Preciso pensar logo no início sobre um barramento de serviços?
  • Quando devo usar virtualização de serviços?
  • Minha área de negócios possui alguns processos muito bem documentados. Como faço para transformar esses processos e casos de negócio em serviços e workflows numa infraestrutura de real da minha TI?
  • Minha TI está parada no tempo, com tecnologias antigas e infraestrutura desatualizada. Um cenário de coordenação de serviços, com encadeamento de chamadas e workflows está fora das minhas possibilidades?
  • Já me falaram muito sobre REUSO e BAIXO CUSTO quando comentam sobre orientação a serviços. Que outros aspectos estão envolvidos quando pensamos em serviços, workflows e processos de negocio com agilidade?

Você já teve algumas dessas perguntas em sua pauta de reuniões? É muito provável de sim!

E é possível ainda que você tenha mais uma série de outras perguntas, relacionadas ao contexto de suas aplicações, necessidades especiais de seus negócios, demandas customizadas da área de usuários, ou ainda cenários específicos de sua TI. Toda pergunta é relvante pois cada cenário é de fato único.

A boa notícia é que muitas das perguntas acima já são tratadas diretamente com o .NET Framework 4.0, combinado com a infraestrutura Windows Server AppFabric.

E como vimos na semana passada, alguns cenários de autenticação distribuída e/ou baseada em declaraç ões começam a dar uma nova orientação para a segurança em serviços e soluções corporativas. Para completar, ainda temos tecnologias disponíveis como Entity Framework 4.0, PLINQ, WCF RIA Services, Silverlight 4.0, PRISM v2.2, MEF, ASP.NET MVC, entre outras. Essas tecnologias e frameworks implementando peças importantes de uma solução desacoplada, com grande flexibilidade para a composição de serviços, coordenação de chamadas, tratamento de eventos encadeados e exportação de informações críticas sobre a saúde e a operação de nossas soluções.

Em breve, espero consolidar algumas dessas discussões em um material mais organizado, para a leitura de vocês. Para o Tech-Ed Brasil 2010, o time de arquitetura aqui da Microsoft também está preparando belos cenários para discussões bem aderentes às necessidades de mundo real.

Assim, fique ligado. Algumas surpresas estão sendo preparadas para os próximos meses.

Por enquanto é só! Até o próximo post :)

Waldemir.