Entendida a idéia inicial de um evento, vamos repassar esta definição para o mundo dos processos de negócios. Imaginando um processo como uma série de atividades encadeadas, temos que imaginar os eventos ocorrendo em diferentes etapas dentro de uma atividade. Por exemplo, ao se invocar um determinado serviço, pelo menos dois eventos poderiam acontecer: um no início da atividade e outro no término da atividade. Se um processo contém várias atividades em cadeia, pode-se, então, prever que diversos eventos podem ser identificados e capturados por cada instância de execução. Se pensarmos agora que, em um projeto, precisamos saber o tempo médio de execução de um processo, bastará capturarmos o primeiro evento do processo (ex: start da primeira atividade) e o último evento (ex: exit da última atividade). A ligação de um “cronômetro” entre o primeiro evento e o último nos mostrará em quanto tempo o processo foi concluído. Se criarmos uma média de tempo de execução, podemos colocar este valor médio sob um critério de KPI e, com isso, avaliar seu desempenho.
O raciocínio do analista de TI, responsável pela construção dos indicadores a serem exibidos no painel, deve ser idêntico ao exemplo colocado acima. Supondo uma camada de coreografia de serviços que permeia uma série de sistemas e pessoas, a lógica para montagem das métricas e indicadores fica restrita a variáveis exibidas nesta coreografia. Se não há esta camada, será de responsabilidade dos desenvolvedores e analistas dos sistemas legados a geração de logs e/ou eventos relevantes na execução de seus sistemas. Esses logs serão as informações iniciais e fundamentais para o responsável pela definição técnica das métricas, KPIs e tudo mais previsto no painel de monitoramento.
O que uma solução de monitoramento pode prover
São inúmeras as funcionalidades que podemos imaginar para uma solução de monitoramento. Pensando na solução como um framework aberto, possível de se implementar praticamente qualquer controle em um processo de negócio, vamos procurar listar o que uma solução de monitoramento de processos deve prover, de forma gráfica e amigável:
• Monitoramento “durante o vôo” – O painel de monitoramento deve prover informações das instâncias (ativas e/ou concluídas) de todos os processos controlados.
• Tomada de ações – A partir de um painel operacional de monitoramento é possível prover opções de ações automáticas ou manuais para invocação de tratamentos de exceção ou contingência. Por exemplo, se um gestor do processo percebe uma parada numa instância (por exemplo, alguém que não executou ainda uma atividade humana), ele pode envolver uma terceira pessoa e/ou invocar uma ação alternativa (normalmente prevista no desenho do processo);
• Detecção de situações de anormalidade, exceção ou contingência – Assim como um gestor de processos pode interferir na execução dos mesmos, procedimentos automáticos podem ser invocados no caso da identificação de uma situação de anormalidade. Por exemplo, um processo controlado e medido por SLAs pode ter um tratamento automático de contingência quando o tempo total do processo atingir 70% do tempo previsto em contrato;
• Análise consolidada – A solução de monitoramento deve ser capaz de consolidar as execuções dos processos para apresentação através de gráficos, possibilitando o detalhamento (drill-down) de dados para análise de tendências. Neste caso, ferramentas de Business Intelligence podem ser úteis e simplificar o desenvolvimento;
• Indicadores de performance (KPIs) – Esse, com certeza, é o principal requerimento de um painel de monitoramento de processos de negócios. A solução deve mostrar, a partir das instâncias executadas, indicadores gráficos de desempenho com faixas consideradas ótimas, razoáveis ou ruins, por exemplo;
• Comparação de resultados real x simulado – Imaginando que uma solução de monitoramento pode estar inserida no contexto de um ciclo completo de BPM (da modelagem à monitoração), tal solução deve prover funcionalidades de exportação de resultados reais para futura comparação com dados simulados (ainda em tempo de análise). Isso será de grande valia para a melhoria contínua de um processo;
Considerações e pontos de atenção em um projeto
Um ponto muito reforçado por especialistas em arquitetura orientada a serviço é o envolvimento das áreas de negócio em todas as principais fases de uma iniciativa BPM/SOA na empresa. A implementação de um painel de monitoramento não será muito diferente. Projetos de monitoramento de processos envolvem, fundamentalmente, processos descritos pela área de negócios (usualmente, em ferramentas de modelagem BPMN) e indicadores de performance “ao alcance da mão” requeridos por gestores. Nós de TI, como responsáveis pelos cálculos das métricas para implementação dos indicadores, faremos, tão somente, tais medições em cima do processo já desenvolvido. Se as iniciativas de BPM na organização já consideraram o uso de uma camada de coreografia BPEL, excelente! A preparação do ambiente de monitoramento será uma derivação do que já estará sendo tratado pelo BPEL. O esforço será apontar nas atividades descritas no processo onde ocorrem os eventos relevantes e os cálculo/métricas que devem ser criados a partir dos eventos capturados. No cenário em que ainda não há uma camada de coreografia e um barramento de serviços bem definido, o grande sucesso do projeto estará na capacidade dos sistemas legados gerarem informações que poderão ser mapeadas como eventos de negócios. Uma vez bem estabelecido este mapeamento (ou seja, de logs ou traces gerados pelo sistema origem para eventos de negócios), o processo de construção do painel será similar ao modelo com BPEL.
Conclusões
Soluções de monitoramento de processos costumam encantar e encher de expectativas os gestores das áreas de negócio da empresa. A possibilidade de ter, ao alcance da mão, resultados operacionais e consolidados apontando tendências de mercados mostra a muitos o valor agregado de uma solução como essa e, normalmente, estes gestores serão os grandes patrocinadores de um projeto desta natureza. Ainda que seu projeto comece com a implementação de um painel de monitoramento, a partir de resultados e/ou logs de sistemas em produção, monte seu projeto com todas as etapas de um BPM, tendo sempre uma arquitetura orientada a serviços em vista. Naturalmente, as próximas ondas desta iniciativa passarão por redesenho de processos e implementação de uma camada de coreografia.
Luiz Phelipe Souza