#Este é um post fechado Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!
Artigo Java Magazine 71 - Workflows com jBPM
Aprenda como utilizar a ferramenta de BPM da JBoss para construir aplicações orientadas ao negócio
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Java Magazine 71
Workflows com jBPM
Uma aplicação baseada no jBPM
Aprenda como utilizar a ferramenta de BPM da JBoss para construir aplicações orientadas ao negócio
Alexandre Saudate
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”.
[1]
, 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.
Para conhecer mais recursos do jBPM vale a pena conferir a apresentação deste artigo.
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”.
· 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[2];
· Process State: Cria um sub-processo do processo corrente.
Configurando o jBPM
Para configurar o ambiente do jBPM você deve primeiro fazer o download do instalador (veja o endereço em Links). Dentre as opções de download, a que nos interessa é jBPM jPDL 3. Feito o download, execute o instalador e siga as instruções.
Configurando o Eclipse
Para trabalhar com o jBPM é altamente recomendável que você possua o Eclipse com o conjunto de plugins JBoss Tools. A instalação pode ser feita através do próprio Eclipse, acessando o menu Help>Software updates>Install. É possível selecionar, do conjunto, apenas os plugins que forem necessários; no nosso caso, somente os da família jBPM.
Instalado o plugin do jBPM, você pode verificar que, na opção de criação de novos projetos, apareceu uma opção para criação de processos jBPM, conforme observado na Figura 1.
Figura 1. Opção para criação de projeto jBPM
A aplicação
Nossa aplicação será baseada em uma loja de discos virtual, que conterá dois workflows: o primeiro, mais simples, será responsável por enviar um e-mail para o administrador do sistema e para o usuário quando este solicitar o cadastro na loja. O segundo workflow será mais elaborado, e será responsável por gerenciar o processo de compra de discos. Além do jBPM, utilizaremos um banco de dados MySQL para salvar o estado deste processo (lembrando que, por ser baseado em Hibernate, poderíamos utilizar vários outros SGBDs, não ficando restritos a este).
A criação da aplicação é feita de maneira simples, selecionando o Process Project sob a pasta do JBoss jBPM, no menu de criação de projetos (conforme visto na Figura 1). Um pequeno wizard deverá se abrir, perguntando, entre outras coisas, onde está o ambiente do jBPM. Na primeira vez que efetuamos este procedimento, o ambiente do jBPM ainda não está configurado no Eclipse (apenas os plugins dele), e o Eclipse solicita a localização do jBPM. Basta fornecer esta localização de acordo com a instalação. Ainda durante a configuração do novo projeto, existe uma opção para gerar um processo simples e um código para teste unitário deste processo. Deixe esta caixa desmarcada.
Feitos estes primeiros passos, o projeto será inicializado com algumas opções de configuração já instaladas; só precisamos configurar o arquivo de configuração do Hibernate (hibernate.cfg.xml) e o de configuração do jBPM (jbpm.cfg.xml), para que possamos acessar o servidor de e-mails e o banco de dados desejado. Assim, precisamos fazer algumas modificações nestes arquivos, conforme as Listagens 1
ATENÇÃO! A exibição deste artigo foi interrompida.
#Este é um post fechado Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!

Space do autor


Estudo comparativo entre banco de dados IBM Informix e Microsoft SQL


0
1
Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!