Atenção: esse artigo tem uma palestra complementar. Clique e assista!

De que se trata o artigo:

Demonstra como realizar a instalação e configuração do jBPM e JBoss Tools para uso sob ambiente Eclipse, através do exemplo da criação de uma loja virtual de discos.


Para que serve:

Fornece uma maneira de flexibilizar o código e mantê-lo inteligível para analistas de negócio e não-programadores em geral.


Em que situação o tema é útil:

Além de ser considerado uma boa prática de programação, provê uma interface de comunicação entre os analistas de negócio e o código propriamente dito, reduzindo o custo de tradução do contexto do negócio para o código do sistema.

Workflows com jBPM:

Um workflow é, basicamente, uma sequência de tarefas a ser seguida em determinado processo de negócio – algo que 99,999% dos sistemas possuem. Como o processo de tradução entre o processo de negócio e o código em si tende a ser caro, lento e com falhas, foi desenvolvida a técnica de modelagem de processos de negócio. Esta técnica consiste em desenvolver (quase sempre com editores gráficos) o processo de maneira que seja inteligível para os analistas de negócio e, ao mesmo tempo, seja interpretado diretamente pela máquina, reduzindo o gap da interpretação.

O jBPM aborda a modelagem de processos através de uma linguagem própria, facilitando muito o desenvolvimento de processos que envolvem cumprimento de tarefas, envio de e-mails e tomada de decisões.

As aplicações modernas têm seguido mais e mais a tendência de serem “orientadas a negócio”, ou seja, de serem desenvolvidas mantendo em mente sempre o produto final e deixando em segundo plano detalhes como linguagem de programação a utilizar, frameworks, etc. Seguindo esta linha, foi desenvolvida a Arquitetura Orientada a Serviços (SOA), que nada mais é do que descrever essa lógica de negócios por meio de padrões abertos, de maneira fracamente acoplada. No topo desta arquitetura existe o BPM (Business Process Modeling) – uma técnica cujo propósito é auxiliar no desenvolvimento de processos de negócio de uma maneira escalável, independente de plataforma e que seja inteligível tanto para analistas de negócio quanto para desenvolvedores. Esta técnica é descrita, geralmente, em uma notação chamada de BPMN (Business Process Modeling Notation), que fornece alguns dos elementos básicos que são utilizados pelos processos de negócio (ou seja, é a UML dos processos de negócio); entretanto, alguns fornecedores oferecem abordagens alternativas para implementação de BPM, como é o caso da JBoss. Confira mais detalhes no quadro “BPM com jBPM”.

BPM com jBPM

O jBPM é uma ferramenta de BPM que é representada pela jPDL (jBPM Process Definition Language). Trata-se de uma linguagem mais intimamente ligada ao Java (e, por conseguinte, abandonando o preceito de ser independente de linguagens). Mesmo sendo ligado a SOA, o jBPM não depende de um servidor de aplicação para ser executado, podendo ser executado na plataforma Java SE. Entretanto, o jBPM oferece alguns recursos voltados para ferramentas SOA, como a interligação (nativa) com ESB e a possibilidade de integração com BPEL.

Vale lembrar que o jBPM não possui interligação nativa com web services: caso seja necessário acessar um web service por uma aplicação jBPM, é necessário criar um cliente Java que o faça. A grande vantagem da implementação de fluxos jBPM está na implementação nativa de tarefas manuais, que precisam ser executadas por seres humanos (algo que algumas linguagens de execução de BPM, como o Oracle BPEL, possuem nativamente; entretanto, este recurso não é parte da especificação BPEL). Além disso, o jBPM possui integração nativa com Hibernate, de maneira que é possível salvar o estado de um processo em execução e retomá-lo a qualquer momento, fazendo com que o jBPM seja uma ferramenta ideal para implementação de workflows.

O que são workflows?

Um workflow pode ser traduzido diretamente como “fluxo de trabalho”, o que indica exatamente o que ele é. Basicamente, é uma sequência de passos que devem ser feitos para se alcançar algum objetivo do negócio. Estes passos podem ser realizados por uma ou mais pessoas ou sistemas, de acordo com algumas regras definidas pelo próprio negócio. Um exemplo de workflow é a linha de montagem de um veículo, por exemplo: primeiro, uma máquina é responsável por trabalhar o chassi e repassar o chassi para outra máquina, que será responsável por inserir a carroceria e assim por diante. Eventualmente, será necessária supervisão humana para garantir que todas as peças foram instaladas corretamente.

O jBPM possui uma estrutura de nomenclatura em que os responsáveis por cada passo da execução são chamados de atores. Cada passo é um nó, independente do tipo do nó. Para mais informações sobre os nós disponíveis, consulte o quadro “Os tipos de nó do jBPM”.

Os tipos de nó do jBPM

O processo jBPM é todo baseado nos nós. Estes podem ter diferentes tipos e especializações. Na versão do jBPM utilizada neste artigo, estavam disponíveis onze tipos de nós, a saber:

Start: Nó onde o processo começa;

End: Nó onde o processo é encerrado;

Fork: Nó que realiza uma separação na execução do processo, de maneira a criar duas correntes de execução separadas (semelhante às Threads Java);

Join: Nó que realiza o reagrupamento de correntes de execução;

Decision: Nó utilizado como uma maneira de realizar decisões entre caminhos a serem tomados, de maneira automática;

State: Tipo simples de nó, que pode ser configurado para realizar tarefas simples;

Node: “Evolução” de state; pode ser configurado para executar tarefas de maneira assíncrona;

Task node: Encapsula tarefas que são enviadas ao usuário. Estas tarefas, por sua vez, representam tarefas relacionadas ao contexto do negócio, como aprovação de férias de um empregado ou solicitação de mais peças em uma oficina;

Mail node: Nó utilizado para envio de e-mails;

ESB Service: Invoca um Enterprise Service Bus JBoss;

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