Um Guia para jBPM com Java
1. Introdução
Neste tutorial, discutiremos o sistema de gerenciamento de processos de negócios (BPM) e sua implementação em Java como sistemajBPM.
2. Sistema de Gerenciamento de Processos de Negócios
Podemos definirBusiness Process Management como um daqueles campos cujo escopo se estende além do desenvolvimento para todos os aspectos de uma empresa.
O BPM fornece visibilidade dos processos funcionais da empresa. Isso nos permite encontrar um fluxo ideal, representado por um fluxograma, usando melhorias iterativas. O fluxo aprimorado aumenta os lucros e reduz os custos.
O BPM define seus próprios objetivos, ciclo de vida, práticas e uma linguagem comum entre todos os seus participantes, ou seja, processos de negócios.
3. O sistema jBPM
jBPM is the implementation of a BPM System in Java. It allows us to create a business process flow, execute it, and monitor its life cycle. O núcleo do jBPM é um mecanismo de fluxo de trabalho, escrito em Java, que nos fornece uma ferramenta para criar e executar um fluxo de processo usando as especificações de Business Process Modeling Notation (BPMN) 2.0 mais recentes.
O jBPM se concentra principalmente no processo de negócios executável. Esses processos têm detalhes suficientes para que possam ser executados no mecanismo de fluxo de trabalho.
Aqui está um exemplo de fluxograma gráfico da ordem de execução do nosso modelo de processo BPMN para ajudar no nosso entendimento:
-
Começamos a executar o fluxo usando o contexto inicial, indicado pelo nó inicial verde
-
Primeiro, a Tarefa 1 executará
-
Na conclusão da Tarefa 1, prosseguiremos com a Tarefa 2
-
A execução é interrompida ao encontrar o nó final vermelho
4. Plugins IDE para o projeto jBPM
Vamos ver como instalar plug-ins para criar um projeto jBPM e um processo BPMN 2.0 no Eclipse e no IntelliJ IDEA.
4.1. Eclipse Plugin
Precisamos instalar um plugin para criar projetos jBPM. Vamos seguir as etapas abaixo:
-
Na seçãoHelp, clique emInstall New Software
-
Adicione oDrools and jBPM update site
-
Aceite os termos do contrato de licença e conclua a instalação do plug-in
-
Reinicie o Eclipse
Depois que o Eclipse for reiniciado, precisaremos ir paraWindows → Preferences → Drools → Drools Flow Nodes:
Após selecionar todas as opções, podemos clicar em "Aplicar e Fechar". Agora, estamos prontos para criar nosso primeirojBPM Project.
4.2. IntelliJ IDEA Plugin
O IntelliJ IDEA tem o plugin jBPM instalado por padrão, mas está presente apenas no Ultimate e não na opção Comunidade.
Só precisamos habilitá-lo clicando emConfigure → Settings → Plugins → Installed → JBoss jBPM:
Atualmente, não há um designer de processo BPMN 2.0 para este IDE, embora possamos importar os arquivos*.bpmn de qualquer outro designer e executá-los.
5. Hello World Example
Vamos sujar as mãos ao criar um projeto simples Hello World.
5.1. Crie um projeto jBPM
Para criar um novo projeto jBPM no Eclipse, iremos paraFile → New → Other → jBPM Project (Maven). Depois de fornecer o nome do nosso projeto, podemos concluir. O Eclipse fará todo o trabalho duro por nós e fará o download das dependências necessárias do Maven para criar um projeto de jBPM de amostra para nós.
Para criar o mesmo no IntelliJ IDEA, podemos ir paraFile → New → Project → JBoss Drools. O IDE irá baixar todas as dependências necessárias e colocá-las na pastalib do projeto.
5.2. Crie o modelo de processo Hello World
Vamos criar um pequeno modelo de processo de BPM que imprima "Hello World" no console.
Para isso, precisamos criar um novo arquivo BPMN emsrc/main/resources:
A extensão do arquivo é.bpmn e abre no designer BPMN:
O painel esquerdo do designer lista os nós que selecionamos anteriormente ao configurar o plug-in do Eclipse. Vamos usar esses nós para criar nosso modelo de processo. O painel do meio é a área de trabalho, onde criaremos os modelos de processo. O lado direito é a guia de propriedades, onde podemos definir as propriedades de um processo ou nó.
Neste modeloHelloWorld, estaremos usando:
-
Evento inicial - necessário para iniciar a instância do processo
-
Tarefa de script - ativa trechos de Java
-
Evento Final - necessário para finalizar a instância do processo
Como mencionado anteriormente, o IntelliJ IDEA não tem um designer BPMN, mas podemos importar os arquivos.bpmn projetados no Eclipse ou um designer da web.
5.3. Declarar e criar a base de conhecimento (kbase)
Todos os arquivos BPMN são carregados emkbase como processos. Precisamos passar o respectivo processoids para o mecanismo jBPM para executá-los.
Vamos criar okmodule.xml sob oresources/META-INF com nossa declaração de pacote de arquivokbasee BPMN:
Assim que a declaração for feita, podemos usar oKieContainer para carregar okbase:
KieServices kService = KieServices.Factory.get();
KieContainer kContainer = kService.getKieClasspathContainer();
KieBase kbase = kContainer.getKieBase(kbaseId);
5.4. Crie o jBPM Runtime Manager
Usaremos oJBPMHelper present no pacoteorg.jbpm.test para construir um ambiente de tempo de execução de amostra.
Precisamos de duas coisas para criar o ambiente: primeiro, uma fonte de dados para criarEntityManagerFactory e, segundo, nossokbase.
JBPMHelper has métodos para iniciar um servidor H2 na memória e definir a fonte de dados. Usando o mesmo, podemos criar oEntityManagerFactory:
JBPMHelper.startH2Server();
JBPMHelper.setupDataSource();
EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnit);
Assim que tivermos tudo pronto, podemos criar nossoRuntimeEnvironment:
RuntimeEnvironmentBuilder runtimeEnvironmentBuilder =
RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder();
RuntimeEnvironment runtimeEnvironment = runtimeEnvironmentBuilder.
entityManagerFactory(emf).knowledgeBase(kbase).get();
UsandoRuntimeEnvironment, podemos criar nosso gerenciador de tempo de execução jBPM:
RuntimeManager runtimeManager = RuntimeManagerFactory.Factory.get()
.newSingletonRuntimeManager(runtimeEnvironment);
5.5. Executar instância do processo
Finalmente, usaremosRuntimeManager para obter oRuntimeEngine:
RuntimeEngine engine = manager.getRuntimeEngine(initialContext);
UsarRuntimeEngine, we criará uma sessão de conhecimento e iniciará o processo:
KieSession ksession = engine.getKieSession();
ksession.startProcess(processId);
O processo irá iniciar e imprimirHello World on o console IDE.
6. Conclusão
Neste artigo, apresentamos o Sistema BPM, usando sua implementação Java -jBPM.
Este foi um guia rápido para iniciar um projeto jBPM. O exemplo demonstrado aqui usa o processo mínimo para dar uma breve compreensão da execução de um processo e pode ser encontrado emGitHub.
Para executar o processo, simplesmente precisamos executar o método principal no sclassWorkflowProcessMain .