De que se trata o artigo

Neste arquivo serão apresentados recursos do .NET Framework para o desenvolvimento de soluções automatizando processos de negócio. Para isto serão empregadas as tecnologias WCF e Workflow Foundation, criando-se com isso um tipo de aplicação conhecida como Workflow Service. WCF (Windows Communication Foundation) é uma tecnologia do .NET Framework utilizada no desenvolvimento de soluções em que componentes de software são expostos como serviços. Estes últimos, por sua vez, são dotados de funcionalidades capazes de serem consumidas por outras aplicações. Importante ressaltar que o framework WCF é bastante abrangente, disponibilizando recursos como mecanismos de segurança, monitoramento, gerenciamento do ciclo de vida de um serviço, dentre outras características úteis para o controle de aplicações.

Windows Workflow Foundation (WF) é um mecanismo do .NET Framework que permite a automação de processos de negócio (workflows), focando para isso na especificação de atividades que componham tais processos, bem como nas interações entre as mesmas. A modelagem de um processo é feita graficamente através do Visual Studio, fato este que possibilita uma maior facilidade na especificação dos fluxos envolvidos, assim como uma melhor compreensão das atividades e suas interligações.

Em que situação o tema é útil

O desenvolvimento de soluções envolvendo processos automatizados (workflows) tende a ser uma tarefa complexa, sobretudo em situações nas quais a lógica de negócios está sujeita a mudanças frequentes ou, ainda, o processo em questão envolve a execução de atividades de longa duração. A construção e a manutenção deste tipo de estrutura tende a ser trabalhosa, com uma codificação extensa e cujo entendimento pode não ser dos mais simples num primeiro momento. Além disso, a adoção de uma solução de workflow (como o Workflow Foundation da Microsoft) pode não ser compatível com todos os ambientes utilizados por uma organização (Java e mainframe, por exemplo). Conforme será apresentado neste artigo, o desenvolvimento de um Workflow Service permite conciliar os benefícios oferecidos pelas tecnologias WCF e WF, obtendo-se como resultado uma solução mais simplificada do ponto de vista de modelagem de um processo, bem como focada no reuso e na interoperabilidade com outras plataformas.

Workflow Services - Utilizando WCF e Workflows para a automação de processos de negócio

A automação de um processo de negócio dentro de uma organização pode resultar, em muitas situações, na obtenção de uma solução de software complexa e de difícil manutenção. Além disso, é comum que se encontrem dificuldades em se reutilizar as funcionalidades inerentes a um procedimento que foi automatizado; isto se torna bastante perceptível quando novas aplicações de software necessitam consumir tais funcionalidades e, devido à ausência de uma melhor estruturação na aplicação construída anteriormente, acabam por duplicar todo um conjunto de regras de negócio e interações relacionadas. O desenvolvimento de aplicações conhecidas como Workflow Services permite combinar os diversos benefícios das tecnologias WCF e Workflow Foundation, conseguindo-se com isto processos com estruturas mais simplificadas (já que foram modelados graficamente), bem como passíveis de reutilização nas mais diferentes plataformas (por estarem sendo expostos como serviços).

O cotidiano de uma organização é caracterizado por diversos processos de negócio que são responsáveis, em seu conjunto, pela execução das tarefas necessárias ao funcionamento da companhia como um todo. O termo processo deve ser compreendido, por sua vez, como um agrupamento de atividades desempenhadas em atendimento a uma necessidade ou meta pré-estabelecida.

Considerando as características heterogêneas do meio empresarial, não é de se admirar a existência tanto de processos totalmente automatizados e que fazem uso extensivo de recursos computacionais, assim como de procedimentos constituídos exclusivamente de atividades desempenhadas por seres humanos e sem o auxílio de computadores. São possíveis ainda, considerando tudo isto, cenários nos quais soluções mistas combinam tarefas manuais e atividades automatizadas.

Nos dias atuais é grande a preocupação das áreas gerenciais de muitas companhias no intuito de melhorar a performance em diversos processos, aumentando ao máximo possível os níveis de eficiência dos mesmos. A automação de atividades é, normalmente, um dos meios empregados para se atingir tais objetivos. Isto é conseguido, via de regra, através da adoção de alguma solução de software que atenda às demandas do negócio com relação a algum aspecto específico.

Muitas das aplicações desenvolvidas objetivando automatizar um processo (ou mesmo partes deste) contam com uma codificação extensa e de difícil compreensão. Não é raro em tais circunstâncias, que surjam dificuldades quando da necessidade de se reutilizar elementos em uma nova aplicação a partir de algo concebido anteriormente. Diante disso e considerando ainda cenários de grande complexidade ou nos quais mudanças em regras são frequentes, diversas soluções foram propostas para a modelagem de atividades de um processo de negócio.

Um destes esforços culminou na criação da metodologia conhecida com BPM (Business Process Modeling), a qual propõe uma série de técnicas para a modelagem de processos. Diversas ferramentas presentes no mercado incorporam elementos desta metodologia, sendo dotadas de mecanismos que possibilitam a modelagem gráfica de um processo, bem como apresentando recursos para estabelecer as ligações e as trocas de informações entre as atividades identificadas.

Enxergando a necessidade do mercado por soluções deste gênero, a Microsoft disponibilizou alternativas como o BizTalk Server (plataforma centralizada para a integração e o gerenciamento de processos de negócio) e a tecnologia conhecida como Workflow Foundation. Estas duas ferramentas empregam uma notação gráfica chamada de workflow. Esta última nada mais é do que a representação esquemática das atividades pertencentes a um processo, além dos respectivos relacionamentos entre as mesmas.

O framework Workflow Foundation (atualmente na versão 4.0) é parte integrante da plataforma .NET. Logo, aplicações geradas em ambientes diferentes (ou mesmo em versões mais antigas do .NET) não conseguem consumir diretamente os recursos de um workflow. Um meio para se conseguir que as funcionalidades de um workflow possam estar acessíveis aos mais diversos tipos de softwares seria o uso da tecnologia WCF. Através desta última, um ou mais workflows poderiam ser expostos como serviços e se beneficiar, assim, do suporte que o WCF oferece para uma ampla gama de protocolos de comunicação (HTTP / HTTPS, TCP / IP, dentre outros).

O objetivo deste artigo é abordar a construção de aplicações conhecidas como Workflow Services. Tais soluções combinam as tecnologias WCF e Workflow Foundation, procurando deste modo maximizar o reuso de workflows que foram criados para automatizar processos de negócio. Para isto são gerados serviços possíveis de serem consumidos por aplicações desenvolvidas nas mais diversas plataformas (Java, mainframe ou mesmo .NET, por exemplo).

Nota do DevMan

BPM (sigla em inglês para Business Process Modeling) é uma metodologia que foca na modelagem de processos de negócio a partir do mapeamento das atividades que compõem os mesmos, assim como dos relacionamentos que estabelecem entre estas últimas.

Uma das linguagens disponíveis para a representação de fluxos de atividades é a BPMN (Business Process Model and Notation). Tal linguagem é, na verdade, uma especificação para a modelagem gráfica de processos de negócio, sendo mantida pela OMG (sigla em inglês para Object Management Group, consórcio formado por gigantes do mercado de tecnologia como Microsoft, Oracle e IBM e que está voltado para o estabelecimento de padrões).

Outra especificação que deve ser mencionada é a BPEL (Business Process Execution Language). Trata-se de uma linguagem para execução de modelos contendo processos de negócios, sendo mantida por um grupo conhecido como OASIS (Organization for the Advancement of Structured Information Standards).

Os padrões BPMN e BPEL são suportados por diversas ferramentas de modelagem e execução de processos presentes no mercado. Importante ressaltar que estas duas linguagens são suportadas pela ferramenta BizTalk Server da Microsoft.

Possíveis cenários para a utilização de workflows

O uso de workflows em .NET se justifica em situações nas quais o processo que se está considerando é de longa duração ou, ainda, modificações são frequentes na lógica de negócios envolvida. Além disso, pode pesar em tal escolha a necessidade de uma representação visual do processo que se está automatizando.

Um exemplo de processo de longa duração seriam os diversos passos que se sucedem dentro de uma cadeia de suprimentos: inicia-se pela requisição de novos materiais, passando ainda pelas etapas de cotação com diversos fornecedores, escolha de uma das propostas, realização do pedido de compra e posterior recebimento dos itens. As diversas atividades dentro de um processo produtivo representam outro exemplo deste tipo, sendo que por mais que exista uma sucessão de etapas, muitas vezes uma fase pode ser parada devido a reprogramações da produção ou pela dependência de matérias-primas ainda não entregues.

Diante disto, aplicações corporativas que busquem controlar tais processos precisam estar preparadas para a ocorrência de paradas entre diferentes etapas. A implementação deste tipo de comportamento não é tarefa das mais fáceis, sobretudo utilizando-se técnicas convencionais de construção de software. A tecnologia Workflow Foundation disponibiliza recursos para atender a demandas deste gênero.

Processos que dependam de aspectos legais constituem um cenário em que mudanças são bastante frequentes. O uso de workflows pode ser empregado neste caso como um meio que não apenas facilita a modelagem do processo, como também possibilita que muitas mudanças possam ser feitas rapidamente no workflow, dispensando com isto novos trechos extensos de código ao longo de um projeto.

Conceitos básicos sobre workflows no .NET Framework

A tecnologia Workflow Foundation pode ser descrita, em termos gerais, como sendo um framework para a construção de workflows destinados à implementação de partes ou, ainda, de todo um processo automatizado de negócio. A montagem de um workflow ocorre dentro do Visual Studio, o qual conta com um editor gráfico para a modelagem das interações entre diferentes tipos de atividade.

O elemento básico para a construção de um workflow é uma atividade. O .NET Framework disponibiliza dentro do namespace System.Activities uma série de tipos de atividades que podem ser facilmente configuradas para a construção de processos.

Basicamente, modelos criados através do framework Workflow Foundation podem ser classificados em dois tipos:

· Sequential workflow: o fluxo de execução das atividades ocorre passo-a-passo, sendo possível ainda o uso de desvios condicionais dentro da lógica que se está implementando. Seu uso é recomendado na modelagem de processos mais simplificados e sem intervenção humana, sendo equivalentes a rotinas escritas de maneira procedural dentro de uma linguagem de programação. Dentro deste modelo, as diversas atividades que constituem o processo são agrupadas dentro de uma atividade principal do tipo Sequence;

· Flowchart workflow: permite a modelagem de um processo num padrão gráfico similar a um diagrama de atividades UML. São úteis na representação de processos com uma estrutura sequencial, mas que, entretanto, também contam com loops que desviam o fluxo de execução para estados anteriores. Diferentemente de um Sequential workflow, este tipo é recomendável na modelagem de processos que também contêm interações humanas. Em um Flowchart workflow as diversas atividades que fazem parte de um processo são agrupadas dentro de uma atividade do tipo Flowchart.

As interações entre as atividades que compõem um workflow envolverão na grande maioria das vezes o fluxo de informações de um ponto a outro do processo em questão. Assim, procurando oferecer suporte ao intercâmbio de dados entre as partes que constituem um workflow, a tecnologia Workflow Foundation disponibiliza recursos como variáveis, argumentos e expressões, utilizando-se para isto dos mesmos conceitos presentes numa linguagem de programação convencional.

Variáveis possuem, dentro de um workflow, um escopo dentro do qual o uso das mesmas é válido. Pode-se especificar que tal escopo corresponda a todo o workflow ou, ainda, que a utilização de uma variável seja possível apenas dentro de um conjunto de atividades (as quais podem estar agrupadas sob a forma de uma atividade do tipo Sequence ou Flowchart).

De acordo com o objetivo a que se destinam, os diversos tipos de atividades nativos do framework .NET 4.0 podem ser classificados nas seguintes categorias:

· Control Flow: oferece construções para o controle de fluxo em modelos de processos do tipo Sequential workflow;

· Flowchart: permite gerenciar o fluxo de execução em modelos do tipo Flowchart workflow;

...
Quer ler esse conteúdo completo? Tenha acesso completo