.NET

13 ago, 2007

Windows Workflow Foundation – Parte 01

Publicidade

Olá leitor. Primeiramente peço desculpas por ficar um bom tempo sem escrever um artigo. Prometo ser mais presente na comunidade a partir de hoje.

Bom, antes de começarmos, gostaria de dizer os motivos que me levaram a escrever sobre esse assunto. O primeiro deles é porque estou estudando-o, o segundo é que percebi que terei mais uma vez que quebrar o paradigma para a construção de um software e o terceiro e último motivo é pelo simples prazer em compartilhar um pouco da minha experiência.

A partir de agora iremos trocar figurinhas sobre Windows Workflow Foundation, WWF ou somente WF. Este artigo ainda não sei quantas partes terá, o que posso adiantar é que nesta primeira parte eu decidi fazer uma breve introdução ao conceito de workflow e nos próximos iremos arregaçar as mangas e codificar. Combinado?

Espero que o texto esteja bem claro e fácil de entender. Então vamos ao que interessa.

O que é um Workflow?

O conceito de workflow tem um significado diferente para pessoas diferentes. Como o próprio nome indica, workflow define um fluxo de um processo ou uma combinação de tarefas que produz um determinado resultado. Embora esta seja uma definição muito genérica, um workflow é algo bem próximo disso, podendo ter algumas nuances como um fluxo de aprovação por exemplo.

O conceito de workflow geralmente é discutido no contexto de software como um modelo que irá ajudar a gerenciar informações com políticas ou regras de controle do fluxo de informações e/ou tarefas.

Uma das características de um workflow é a sua representação gráfica, normalmente são mostrados através de caixas com setas indicando o fluxo de execução de cada tarefa, apesar desta representação ser muito importante para caracterizá-lo. Um workflow é muito mais que isso.

Antes de aprofundarmos no conceito do WWF, precisamos entender primeiramente qual a importância de um workflow. Atualmente a área de tecnologia tem falado muito sobre BPM (Business Process Management) que é uma estrutura que tem como objetivo ajudar as empresas a atingirem seus objetivos controlando melhor seus processos, e quando queremos visualizar uma forma de como ter um melhor controle sobre os processos logo imaginamos um workflow.

Se uma organização tem total domínio dos seus processos podemos afirmar que ela tem uma maior capacidade de assertividade na elaboração de um requisito de software e com isso maior produtividade no seu desenvolvimento, redução de custo operacional e seguindo essa linha poderíamos listar vários ganhos com esse domínio, assim concluímos que o conceito de workflow é muito mais que um simples desenho, ele é estratégico.

Business Process Management

BPM é a sigla da vez na área de tecnologia, como o foco desse artigo é fazer uma breve introdução ao WWF portanto não irei aprofundar muito no assunto e sim ressaltar que BPM está fortemente ligado ao conceito de workflow, abaixo cito as etapas que comprovam esta afirmação.

1. Design

Durante a fase de design, a empresa direciona todo o seu esforço em analisar os processos que fazem a base do seu negócio. Uma maior atenção é dada na compreensão individual de cada processo. Isso pode parecer óbvio, mas para compreender inteiramente um processo e determinar onde pode obter ganhos de eficiência essa etapa é fundamental.

2. Execução / Implantação

Normalmente a etapa seguinte do ciclo de vida do BPM é a execução dos processos que foram documentados na fase anterior. Isso acontece fazendo as modificações necessárias, atualizando e executando as soluções técnicas.

3. Gerenciamento / Monitoramento

O monitoramento do processo é a fase onde os processos são seguidos e examinados durante as operações cotidianas. Esta é uma etapa muito importante no BPM porque se você não pode monitorar o que está passando pelos processos, as métricas geradas não irão ajudar a empresa a melhorar. Monitorar ajuda a expor as condições não identificadas na fase de design.

4. Melhorias / Otimizações

A otimização irá acontecer naturalmente, com a base de conhecimento gerada pelo monitoramento a tomada de decisão será muito mais assertiva.

Como você pôde perceber, a junção das etapas citadas formam um workflow e dentro de cada etapa pode existir um ou mais workflows. O BPM é um ótimo exemplo porque além de ser um assunto da atualidade no mundo corporativo ele está vinculado a processos, nos próximos artigos veremos a importância dos processos dentro do conceito do WWF.

Tipos de Workflow

Existem dois tipos mais conhecidos de workflow:

  • Ordered
  • Event-Driven

Cada tipo oferece funcionalidades distintas e são usados em situações diferentes dependendo das exigências de um determinado sistema.

Ordered Workflow

Quando as pessoas pensam em workflow logo pensam em um “Ordered Workflow”. Este tipo de workflow representa um processo que inicia com um determinado disparador e as etapas fluem sequencialmente com alguns “if-else” e se necessário alguns laços.

Event-Driven

Os workflows deste tipo são chamados de estado de máquina ou estado finito. São baseados na idéia de transição de estados dentro de uma determinada atividade ou um evento específico.

Os tipos de workflows serão abordados com maior profundidade quando começarmos a criar nossas aplicações.

Workflow – Interação (Cenários)

Interação Humano-Sistema

Podemos entender até agora em cima de tudo que já foi escrito a importância da interação humana com o workflow, mesmo assim não podemos assumir que este é o melhor dos mundos, muito menos tomar isso como verdade. A interação humana é importante, mas nem tanto.

Interação entre Sistemas

Está interação é muito importante. Arrisco a dizer que mais importante do que a anterior, trata-se de uma interação com um workflow pré-definido onde sistemas externos participam de uma espécie de “jogo” onde cada um contribui com a sua especialidade em uma determinada etapa do processo. Quem já ouviu falar em orquestração sabe muito bem como funciona esse tipo de “jogo”.

Esse tipo de workflow geralmente é associado à arquitetura orientada a serviços (SOA).

Bom, esta primeira parte finalizo aqui, espero que tenha sido interessante e agregador, no próximo artigo iremos fazer nossa primeira (e pequena…vamos com calma!) implementação baseada em workflow!

Abraços e até a próxima.