Postagem em destaque

Procurando Profissional em Análise de Processos de Negócios, BPM, BPMS e Melhoria de Processos, para atuar na Região Metropolitana de Belo Horizonte?

Marco Gandra Brasileiro – Casado 41 anos - CNH B Nascido em Belo Horizonte e-mail gandraribeiro@gmail.com ...

Pesquisar neste blog

21 de ago de 2012

jBPM5 – Organizando seu processo de negócio

Por: Anderson Vasconcelos
Em: http://imasters.com.br/artigo/24799/gerencia-de-ti/jbpm5-organizando-seu-processo-de-negocio


Em todas as empresas existem processos de negócio ou fluxos de trabalhos. Pode ser uma sequência de passos utilizados para produção de um automóvel em uma indústria, os processos que levam à aprovação de um crédito financeiro de um cliente, ou as decisões e os fatores envolvidos na compra ou venda de ações no mercado de capitais, enfim, para qualquer lugar que se olhe é possível definir fluxos de negócio.
Toda vez que se inicia a construção de um projeto de software, o grande desafio é descobrir quais são estes fluxos e quais deles são relevantes para o projeto e, mais ainda, para o cliente que utilizará o software. Feita a definição de quais fluxos deverão ser desenvolvidos no projeto, é necessário se perguntar o quanto estes fluxos poderão ser alterados ao longo da vida do sistema. Esta pergunta é importante, porque não é sempre que um projeto deve ser desenvolvido orientado a workflow (fluxo de trabalho). Ele é mais recomendado quando se tem fluxos de negócio que são mutáveis com uma frequência relevante. Um exemplo clássico são os fluxos que dependem de lei ou regulamento. Uma mudança no texto tem um impacto grande no fluxo de negócio. Assim, para estes casos, desenvolver o projeto orientado a workflow passa a ser uma boa opção.
Mas o que quer exatamente dizer "desenvolver o projeto orientado a workflow"? Qual é a diferença dos projetos normais? A principal diferença é que a sua aplicação, ou pelo menos parte dela, ficará atrelada a um workflow. As decisões que forem tomadas sobre uma próxima tela que será exibida, sobre um e-mail que será disparado, ou sobre um documento que será disponibilizado, deverão obrigatoriamente passar pelo seu workflow. Em outras palavras, ao invés de você chamar um serviço para prosseguir ou validar algo, você delegará para o workflow que dará a resposta ou fará o devido redirecionamento dependendo da arquitetura do seu projeto.
Entendido o contexto onde melhor se encaixa uma engine de workflow, vamos conhecer um pouco mais sobre o jBPM5.

Conhecendo o jBPM5

Um dos projetos integrantes da plataforma Drools, o jBPM5 é um framework que possibilita a criação de processos de negócio (workflows) dentro do seu projeto de software. Seguindo os mesmos princípios da plataforma, com ele é possível separar um fluxo de negócio (com tarefas, junções, eventos, regras, entre outros) do restante da aplicação.
O jBPM5 provê uma série de recursos que auxiliam na criação do processo de negócio dentro do seu projeto de software. Ele uniu o antigo DroolsFlow com o jBPM, aproveitando o melhor do dois mundos.
A versão atual do jBPM5 inclue:

  • Uma engine leve de workflow que suporte BPMN 2.0;
  • Modelagem de processos BPMN 2.0 no Eclipse (para desenvolvedores) e via web (usuários corporativos);
  • Colaboração, monitoramento e gerenciamento através do Guvnor;
  • Recurso de interação humana nas tarefas;
  • Poderosa integração com regras (DroolsRules) e processamento de eventos.
Segue abaixo a descrição dos principais recursos do jBPM5:

Interface para criação da modelagem do fluxo

Para modelar o fluxo de negócio, o jBPM5 provê uma interface para desenvolvedores dentro do eclipse e uma interface web para não desenvolvedores. Cada uma possui suas vantagens, mas o grande diferencial da interface web é que o fluxo pode ser criado de maneira colaborativa, e o processo pode ser alterado e republicado pela própria interface.
Figura 1. Interface para criação de fluxo dentro do eclipse

Figura 2 Interface web para criação do fluxo

Integração com regras (Drools rules)

Com o jBPM é possível invocar regras dentro do fluxo para tomar uma decisão sobre qual caminho seguir, definir qual processo deverá ser invocado, alterar o comportamento do seu processo, entre outras possibilidades. A plataforma Drools facilita esta integração por trabalhar com uma plataforma única e uma API unificada. Assim, aprender a trabalhar com regras ou com fluxo fica transparente para quem está desenvolvendo uma aplicação. Desta forma, é como se regras e fluxos formassem uma base de conhecimento e a sua aplicação deixasse de ser orientada a workflow e passasse a ser orientada a conhecimento (knowledge-oriented). Segue abaixo a imagem da arquitetura unificada do jBPM5.

Tarefas humanas (Human task)

É muito comum nos fluxos de negócio haver uma interação com algum ator humano. Pode-se, por exemplo, necessitar que uma pessoa aprove um documento para que o fluxo prossiga. Ou que ela registre alguma informação no sistema. O jBPM5 provê os seguintes recursos para trabalhar com tarefas humanas:
  • Human task service: É um serviço disponibilizado para gerenciar o ciclo de vida de uma tarefa. A engine de processo, por padrão, não está amarrada a uma implementação, mas permite que seja plugada uma implementação baseada na especificação WS-HT. Esta especificação descreve qual o ciclo de vida de uma tarefa e como fazer para gerenciá-la: consultar as tarefas, mudar seu status, transferir para outro ator, escalar, associar a um grupo, entre outros;
  • Human task console: Trata-se de uma interface web que pode ser usada para carregar listas de tarefas, preencher formulários de tarefas, entre outros.

Depuração (Debugging)

Durante o desenvolvimento, eventualmente é necessário se depurar o código para entender melhor o que está acontecendo. Com o jBPM5, isto também é possível. Usando o Eclipse, pode-se disparar o fluxo e ir acompanhando graficamente em qual ponto do fluxo se está em um dado momento. Assim, é possível validar o que está acontecendo com uma regra, por exemplo, além de identificar mais rapidamente falhas que possam ter sido criadas na modelagem do fluxo de negócio. Usando a ferramenta de ProcessInstancesView, é possível acompanhar cada variável do fluxo.
Figura 3. Aba do ProcessInstancesView no Eclipse

Conclusão

O jBPM5 é uma simples e poderosa engine de workflow que deve ser usada nos projetos que possuam fluxos de negócio mutáveis. Pela sua facilidade no uso e flexibilidade, ele possibilita criar fluxos para infinitas situações de negócio sem gastar muito tempo de desenvolvimento. É uma das principais tendências em tecnologia a despontar no mercado de soluções de workflow.

Nenhum comentário:

Postar um comentário