AppFabric in a Box : Tipos de workflows e recursos diversos

Olá pessoal, tudo certo?

Um dos projetos que estou acompanhando possui um cenário bem interessante para workflows. Esse assunto é muito comum em diversas empresas e não é raro encontrar times que confundem os cenários de aplicação para workflows.

Aplicações baseadas em workflows podem ser classificadas de diferentes formas. Podemos identificar duas categorias de aplicações de modo geral:
• System Workflow ou workflows baseados em sistemas.
• Human Workflow ou workflows baseados em interação humana (usuários).

Essas duas categorias são amplamente encontradas em diversos tipos de soluções e exigem funcionalidades e recursos próprios.
Ainda, seja para human workflows ou system workflows, podemos classificar as aplicações baseadas em workflows de acordo com o mecanismo de transporte de mensagens, como:

  • Sistemas de workflows baseados em arquivos – que funcionam através de armazenamento de arquivos, processamento de documentos, imagens e gerenciamento de formulários.
  • Exemplo: solução de workflow disparada automaticamente via monitoração de pastas ou repositórios de arquivos e formulários, para o tratamento de fluxos de aprovação ou processamento de dados via arquivos;
  • Sistemas de workflows baseados em mensagens - funcionam através de mensageria sobre sistemas de e-mail, permitindo manipulação de mensagens simples e de forma paralela.
  • Exemplo: solução de workflow implementada via interfaces de serviços, disparados através de links publicados em mensagens por e-mail;
  • Sistemas de workflows baseados em Web - são sistemas baseados em interfaces Web, que utilizam clientes Web e navegação de páginas HTML para a exposição de funcionalidades e fluxos de trabalho, que são disparados pelos usuários via browsers.
  • Exemplo: solução ASP.NET, AJAX ou MVC hospedada em servidor IIS, oferecendo links ou páginas para disparo de workflows implementados via interfaces de serviços Web Services;
  • Sistemas de workflows baseados em Suíte - categoria de soluções baseadas em suítes de mercado, como soluções de escritório, integração de portais, integração com sistemas de formulários, e-mails e gerenciamento de formulários e documentos.
  • Exemplo: soluções de colaboração e aprovação de documentos/formulários sobre plataforma Microsoft SharePoint Server e clientes Office;

Na plataforma Microsoft, podemos identificar 3 grandes cenários para o suporte de workflows:

  • WF – Windows Workflow Foundation, que é um framework de desenvolvimento para a construção de aplicações baseadas em workflows, para cenários de human workflow (workflows com interação de usuários) e system workflows (workflows com interação de sistemas).
  • SharePoint Server 2010, que é uma plataforma de colaboração, com recursos prontos para soluções baseadas em workflows e aprovação de documentos, fluxos de trabalhos baseados em formulários, repositório de documentos, workflows baseados em mensagens, entre outros recursos.
  • BizTalk Server 2010, que é uma plataforma de integração de aplicações, com recursos prontos para transformação de mensagens, orquestração de trabalhos e chamadas para web services, publicação e subscrição de mensagens e operações de integração entre plataformas. Assim como ocorre com o SharePoint Server 2010, a plataforma BizTalk Server 2010 permite a integração de workflows e serviços criados com o Windows Workflows Foundation, aproveitando os vários componentes criados na plataforma .NET.

Pensando em WF, esse framework foi publicado primeiramente no .NET 3.0, sofrendo atualizações e evoluções constantes nas versões posteriores do .NET Framework,.

A figura a seguir ilustra algumas dessas atualizações e componentes do .NET Framework ao longo do tempo, confira:

image

Dentro do Visual Studio 2010, um dos templates importantes para a construção de workflows é o WCF WORKFLOW SERVICE APPLICATION, que permite a construção de um workflow com uma interface de serviço WCF. Isso permite que clientes enviem requisições para o workflow da mesma forma que o fazem para Web Services com WCF.

Uma estrutura típica de WCF WORKFLOW SERVICE APPLICATION aparece na figura  a seguir:

image

Finalmente, pensando na plataforma SharePoint Server 2010, é possível a criação de human workflows e system workflows personalizados, assim como a utilização de workflows já prontos, disponíveis na plataforma.

A lista a seguir apresenta os principais workflows disponibilizados com a instalação do ambiente, sem necessidade de codificação:

  • Workflows de aprovação
  • Workflows para coleta de feedback sobre documentos
  • Workflows para coleta de assinaturas digitais
  • Workflows para controle de descarte de documentos
  • Workflows para geenciamento de eventos personalizados
  • Workflows para grupos de aprovação
  • Workflows para gerenciamento de traduções de documentos

Cada cenário de workflow acima apresenta características próprias, que definem o formato de dados, a interface com o usuário, o comportamento do workflow, assim como recursos necessários para sua execução. Por isso, quando estiver pensando em workflows para suas aplicações, faça uma análise criteriosa sobre quais características são realmente necessárias. Primeiramente, procure classificar sua necessidade entre Human Workflow e System Workflow.

Mas por que esse post fala tanto de workflows e tem o AppFabric in a Box em seu título? :)

A resposta é porque o Windows Server AppFabric oferece os principais recursos para persistência, monitoração, tracking e hospedagem para workflows na plataforma Microsoft, com o WF4.

No próximo post, vamos continuar falando sobre esses recursos do ambiente AppFabric para workflows. Não perca!

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

Waldemir.