Elaborei esta nota técnica sobre o Camunda BPM com o intuito de classificar o atendimento de requisitos de desenvolvimento, instalação e operação do BPMS com base na versão 7.13 do Camunda BPM.
Veja também:
Nota Técnica Camunda – Modelagem
Nota Técnica Camunda – Desenvolvimento e Operações
Desenvolvimento
Formulários
A plataforma Camunda BPM tem boa flexibilidade para desenvolver formulários de diversas formas:
- Formulários de tarefa incorporados (Embedded Task Forms:): são formulários de tarefa baseados em HTML, exibidos incorporados na Lista de Tarefas (Tasklist). Você poderá construir os formulários arrastando e soltando (Drag & Drop) componentes com o Bootsnip Form Builder ou outro de sua preferência, por exemplo.
- Formulários de tarefas gerados (Generated Task Forms): como formulários de tarefas incorporados, mas gerados a partir de metadados XML do diagrama BPMN 2.0;
- Formulários de tarefas externas (External Task Forms): o usuário é direcionado para outro aplicativo para concluir a tarefa;
- Formulários de tarefas genéricos (Generic Task Forms): se não houver um formulário de tarefas, um formulário genérico será exibido para editar as variáveis do processo;
- Kit de desenvolvimento (Forms SDK): formulários em HTML5 com bibliotecas JavaScript;
- Qualquer estrutura de trabalho (Framework): utilizando a API REST da Camunda, você poderá criar a própria lista de trabalho utilizando React ou Angular, por exemplo.
- Desenhar formulários arrastando (Drag & Drop) componentes com o Bootsnip Form Builder para serem inforporados
A API da Camunda é vasta e muito bem documentada. A seguir algumas referências da documentação e fontes de exemplo:
Ambiente do Usuário
Os usuários finais podem utilizar a aplicação Camunda Tasklist para organizar e trabalhar nas Tarefas de Usuário de BPMN e Tarefas Humanas com Bloqueio de CMNN.
O Camunda Tasklist é uma aplicação 100% web e responsiva para dispositivos e tamanhos de tela variados.
Durante a execução do processo, o Camunda Engine criará tarefas com base no modelo BPMN ou CMMN predefinido. O mecanismo atribui essas tarefas aos usuários finais, conforme definido no modelo. Quando os usuários finais clicam em uma tarefa na Camunda Tasklist, eles verão um formulário de tarefa que exibe informações e solicita que eles insiram dados. Depois de concluir o trabalho no formulário da tarefa, ele é concluído clicando em um botão, solicitando que o motor de processos do Camunda continue a execução do modelo.
Dentre as principais características do Tasklist, podemos destacar:
- Criação de filtros de tarefas por várias chaves, usuários, grupos, prazos e variáveis. Estes filtros podem ter cores distintas e permissões para usuários e grupos.
- Pesquisa e ordenação de tarefas por vários critérios.
- Abas para apresentação do formulário, histórico de apropriação da tarefa, gráfico do processo com o contexto da tarefa e descrição da instrução de trabalho.
- Datas de acompanhamento, prazo de vencimento, grupos e usuários podem ser atribuídos por usuários.
Além da aplicação Camunda Tasklist, a API REST ou classes Java poderão ser utilizadas para construir uma aplicação Web ou aplicativos desktop e mobile.
Integrações
O motor de processo do Camunda BPM suporta duas maneiras de executar tarefas de serviço:
- Tarefas de Serviço Interno: Chamada síncrona de código implantado junto com um aplicativo de processo;
- Tarefas Externas: fornecendo uma unidade de trabalho em uma lista que pode ser pesquisada pelos task workers.
Tarefas de Serviço Interno
O Camunda Connect fornece uma API simples para conectar serviços Java Delegate, HTTP REST e SOAP Webservices. Dentre as principais vantagens das tarefas de serviço internas, podemos destacar:
- Abordagem simples e intuitiva de integração requisição/resposta;
- Fácil de configurar e de implementar resiliência ao processo automatizado;
- Composição o serviço síncrono
Tarefas Externas
As tarefas externas (External Tasks) funcionam de uma maneira que o mecanismo de processo publica uma unidade de trabalho (tópico) para um outro componente de software externo trabalhador (task worker) buscar a tarefa, concluir ou assinalar caminho de exceção. Dentre as principais vantagens das tarefas externas, podemos destacar:
- Os Task Workers (ou seja, os Serviços) são dissociados do Workflow Engine e podem ser desenvolvidos e dimensionados independentemente;
- Os Task Workers podem ser executados atrás de firewalls (por exemplo, o motor de fluxo de trabalho na nuvem pública e o Task Worker on-premise);
- Os Task Workers podem agrupar o trabalho com base em sua disponibilidade e capacidade;
- Tarefas de longa duração são fáceis de implementar.
- Permitem integração de aplicações com robô de software que imita as ações humanas em sistemas (RPA Robot Process Automation).
A seguir uma gravação da participação no encontro Implementando transações distribuídas em arquiteturas de microsserviços: um confronto entre orquestração e coreografia do Meetup do 8º Encontro do Arquitetura de TI POA que demonstra as diferenças entre as duas formas de integração do motor de processos.
Instalação
Estão relacionados aqui os requisitos de infraestrutura e administração necessários para a implantação e manutenção dos ambientes produtivo e não produtivo, garantindo também a sua disponibilidade, tais como a verificação da infraestrutura de hardware e software necessária para o funcionamento da ferramenta, assim como as funcionalidades para a administração do produto, estrutura de atendimento e de suporte que o fabricante disponibiliza.
Plataformas suportadas pelo Camunda BPM 7.13 conforme documentação Supported Environments instalado em servidor de aplicações ou com servidor de aplicações embutido.
Servidor de Aplicações
Instalado em Servidor de Aplicações
Servidor de aplicação para rodar o motor de fluxo de trabalho (workflow) e decisões juntamente com as aplicações Cockpit, Tasklist e Admin:
- Apache Tomcat
- JBoss EAP
- Wildfly Application Server
- IBM WebSphere Application Server
- Oracle WebLogic Server
Com Servidor de Aplicações Embutido
O Camunda Run é uma distribuição empacotada sem a necessidade de servidor de aplicações juntamente com as aplicações Cockpit, Tasklist e Admin:
Banco de Dados de Persistência
- MySQL
- MariaDB
- Oracle
- IBM DB2
- PostgreSQL
- Amazon Aurora PostgreSQL
- Microsoft SQL Server
- H2 (não recomendado para ambiente de produção)
Navegadores
- Google Chrome
- Mozilla Firefox
- Microsoft Edge
Java e Java Runtime
- Java (8 a 14)
- Oracle JDK (8 a 14)
- IBM JDK 8
- OpenJDK (8 a 14)
Camunda Modeler
- Windows 7 / 10
- Mac OS X 10
- Linux (Ubuntu, Fedora e Debian)
Operação
Cockpit
Com o Camunda Cockpit, você pode monitorar os fluxos de trabalho e as decisões na produção para descobrir, analisar e resolver problemas técnicos.
Descobrir Problemas
O Cockpit fornece um painel de execução de modelos de processo BPMN, decisões em DMN ou casos em CMMN, permitindo ver rapidamente o que está acontecendo e encontrar instâncias específicas com base em diferentes critérios.
Incidentes técnicos são destacados. Você pode inspecioná-los para entender a causa raiz. Exemplos típicos de incidentes são:
- Uma tarefa no fluxo de trabalho tentou chamar um serviço de API, mas recebeu um tempo limite ou a API respondeu com uma mensagem de erro técnico ou com dados corrompidos.
- Uma expressão técnica em um fluxo condicional (ramificação do gateway), um atributo de evento ou similar falhou devido à falta de dados.
- Um código Java executado que foi chamado de uma Tarefa de Serviço lançou uma exceção.
- Um evento de erro do BPMN foi lançado dentro de um subprocesso.
Analisar Problemas
Para obter um entendimento completo de um problema técnico, geralmente é necessário inspecionar o fluxo de execução do processo que ocorreu antes da ocorrência do erro. Por exemplo, uma expressão técnica em um gateway pode ter falhado 5 etapas antes desse gateway, uma variável foi preenchida com um valor errado devido a um erro de design em uma tabela de decisão da DMN que foi chamada a partir de uma tarefa de regra de negócios do BPMN.
Com o Cockpit, você pode descobrir rapidamente esse erro inspecionando
- Verificar o log de auditoria do BPMN, histórico detalhado das etapas executadas e gráficos de mapa de calor (Heatmap) do processo.
- Analisar maneira como as variáveis de processo foram alteradas durante essas etapas
- Inspecionar as execuções históricas da tabela de decisão para ver quais regras foram aplicadas na execução específica desse processo.
Resolver Problemas
Depois de entender o problema, você pode:
- Suspender o processo para impedir uma execução adicional enquanto você corrige a causa raiz;
- Adicionar, editar ou excluir variáveis de processo;
- Modificar o status atual de uma ou várias instâncias do processo, por exemplo mover o estado de execução para uma etapa diferente;
- Migrar uma ou várias instâncias de processo para uma versão mais recente do modelo de processo;
- Alterar a lógica da tabela de decisão diretamente no Cockpit;
- Cancelar uma ou várias instâncias do processo;
- Tentar novamente a execução de uma ou várias instâncias do processo.
Admin
Gerenciamento de Usuários e LDAP
Os administradores usam a aplicação Admin para gerenciar seus usuários, organizá-los em grupos e conceder permissões. Camunda desacopla a identificação de usuários de sua autorização para executar determinadas ações.
Para concluir a identificação, você pode usar o sistema de gerenciamento de usuários que acompanha o Camunda ou o sistema de gerenciamento de usuários existente que pode ser integrado ao Camunda via LDAP (ou Microsoft AD Active Directory). Depois que um usuário se identifica (por exemplo, enviou a tela de login em um aplicativo da Web Camunda), o Camunda os autoriza com base nas permissões definidas no Camunda Admin.