Oracle BPM 11g
Análise à Plataforma
Maio de 2010 Tive o privilégio de ser convidado a participar no "EMEA BPM 11g beta bootcamp" em Abril de 2010, no qual tive contacto mais próximo com a última versão do Oracle BPM 11g. Desde a minha última avaliação Oracle BPEL vs BEA Aqualogic (plataformas de BPM), esta ultima adquirida pela Oracle há cerca de 2 anos, esperava pela total incorporação dos produtos como planeado no roadmap de ambas as plataformas.As versões 10g seguiram ainda caminhos relativamente separados devido às diferenças de abordagem, mas principalmente devido às diferenças de tecnologia que eram, como se sabe, imensas.
Para ilustrar dois casos de diferenças de base, com imenso risco e dificuldade na integração dos produtos, abordo a tecnologia de execução e as plataformas de desenvolvimento (JDeveloper e Eclipse). Outras existiam mas que de alguma forma de complementavam.
BPEL ou BPMN? E porque não ambos?
No mercado dos BPMS (Business Process Management Systems), quando falamos nas plataformas de topo (consultar Gartner Magic Quadrant for Business Process Management Suites 2009) verifica‐se a existência de duas tendências ligadas a dois dos standards existentes: BPEL (Business Process Execution Language ) e BPMN (Business Process Modelling Notation). Enquanto o primeiro, BPEL, sempre teve um foco maior nos aspectos de execução, ficando assim mais próximo da implementação, o BPMN, apesar de uma aceitação extremamente abrangente é, ou melhor, era apenas uma notação de representação de processos de negócio. O panorama mudou com a existência do BPMN 2.0 que, além da representação, também incorpora o standard de execução. A Oracle, como outros fabricantes, tem no seu leque de produtos, o suporte à execução do BPEL (SOA Suite 11g), sendo que, as aplicações mais orientadas ao negócio como o Oracle BPA (Oracle Business Process Analysis ), suportam, entre outras, a notação BPMN. É conhecido que, apesar de por vezes com muita dificuldade, a passagem de um fluxo desenhado em BPMN é passível de ser transformado em BPEL para a execução. Contudo, a lógica destes dois standards é bastante diferente. Sem entrar em detalhes técnicos podemos considerar que o desenho de um processo em BPMN é feito de uma forma lógica sem grandes limitações, enquanto que no processo em BPEL se enfrentam bastantes dificuldades para implementar estruturas mais complexas como alguns tipos loops frequentemente existentes em processos de negócio. No limite, e este ponto parece‐me ser um dos mais relevantes, com alguma probabilidade, um utilizador de negócio não irá reconhecer o seu processo desenhado em BPEL.
A plataforma Oracle BPM 11g suporta ambos os cenários, ou seja, é possível a execução de processos em BPEL (tal como na versão anterior) mas também possível a execução de processos em BPMN 2.0, que, de um modo simplista, faz a execução exactamente como foi desenhado pelo utilizador de negócio. Esta possibilidade trás inúmeras vantagens pois elimina as dificuldades de transformação dos processos de negócio em linguagens mais técnicas (e vice‐versa), permitindo, ao mesmo tempo, que se possa optar por complementaridade das duas tecnologias, isto é, poder‐se‐á ter um processo BPMN 2.0 cujo foco é a interacção humana com blocos ou partes constituídas por processos BPEL, neste caso de orquestração de serviços. Tudo isto é possível pela arquitectura de base que assenta na lógica de composição e serviços.
Suporte ao BPMN 2.0
Com o suporte a este standard torna‐se extremamente simples implementar o desenho dos processos de negócio de um modo mais próximo aos seus executantes. A plataforma suporta todos os elementos BPMN a que estamos habituados desde as swimlanes (representam a responsabilidade de uma tarefa) até aos gateways (que representam os diferentes tipos de paralelismo, saídas exclusivas, etc). O desenho vai sendo sempre acompanhado pela plataforma (neste caso em JDeveloper) que avisa sobre eventuais problemas que existam no fluxo. Um dos exemplos mais básicos é a obrigatoriedade da existência de uma saída por omissão sempre que exista um fluxo condicionado por um gateway. Do que verifiquei apenas o suporte a pools (piscinas que agregam swimlanes ‐ representam departamentos ou empresas) ainda não é feito. Apesar de este não ser um elemento essencial, está previsto, no roadmap do fabricante, o suporte em próximas versões.
Fluxo do processo em BPMN 2.0
Sem usar o BPA e para responder a necessidades de composição de processos directamente por utilizadores de negócio, foi incorporada a aplicação Process Composer, web based, que permite iniciar o desenho de processos de negócio ou mesmo compor os processos com outros artefactos anteriormente criados como sejam os sub‐processos. Apesar de ser ambiente web, existe a facilidade do uso de uma toolbox e está também disponível o arrastamento dos artefactos. BPM Process Composer
Simulação
É neste ponto, e no suporte ao desenho do processo, que mais se nota o trabalho visivel de integração entre o produto que evoluiu do BEA Aqualogic com a plataforma SOA Suite. Com esta versão é possível fazer as simulações necessárias à validação do processo de negócio mesmo dentro do JDeveloper, dispondo o utilizador das funcionalidades que advém da plataforma integrada. Um dos pontos mais interessantes é a capacidade de, em tempo de simulação, verificarmos, através dos valores e de cores, os estrangulamentos (bottlenecks) que acontecem no processo e, ao mesmo tempo, podermos acrescentar recursos (apenas com um clique) verificando automaticamente o novo comportamento. Na simulação podem‐se fazer, entre outros, análises de custos (processo e tarefas) e verificação da cadência das execuções dos processos. Com esta capacidade será possível, junto com os utilizadores de negócio, fazer vários cenários e verificar a análise de impacto das mudanças necessárias.
Workspace
O workspace é a nova lista de tarefas do utilizador que adiciona à anterior os módulos de colaboração e de medição de performance. O utilizador poderá verificar graficamente como estão os seus indicadores, nomeadamente a quantidade de tarefas em estado aberto. Business Process Workspace
Regras de Negócio
Na mesma lógica de serviços e reutilização, existem as regras de negócio que podem ser incorporadas nos processos para decisões. As regras estão igualmente presentes no encaminhamento, delegação e escalonamento de mensagens a enviar aos participantes nos processos. É um dos componentes que mais deverá ser usado pois permite abstrair e desagregar as regras de negócio da lógica do fluxo. A adição de uma regra de negócio faz‐se arrastando o componente da toolbox para o ponto do processo. Aplicando a mesma lógica de serviço pretende‐se que as regras sejam reutilizadas globalmente, permitindo assim ter um ponto único de alteração do algoritmo ou dos valores usados em condições. Ligado à regra é também possível ter as tabelas de decisão o que facilita a implementação e manutenção das regras.Composição
Apesar de todas as novidades desta versão da plataforma, é na SCA (Service Component Architecture) que se sente o poder e abertura da plataforma. Ao desenhar uma aplicação, está ao dispor do arquitecto o módulo composite, que mais não é que o local onde se podem montar e agregar os vários módulos construídos. Tomando a premissa desta plataforma, em que tudo pode ser um serviço, verifica‐se que os processos BPMN 2.0 também fazem parte desta composição tanto como consumidores de outros serviços como fornecedor de serviço. É fácil disponibilizar um determinado processo BPMN 2.0 para invocação por outros componentes. Torna‐se também possível a junção das várias possibilidades existentes, nomeadamente a existência de um processo BPMN 2.0 que, por sua vez, tem tarefas humanas, regras, serviços, processos BPEL, etc. A palavra de ordem é mesmo dividir, implementar e compor em aplicação.
Sabendo que provavelmente não existem processos e projectos BPMS sem integrações, o tema da ligação com sistemas externos torna‐se essencial. Após a exposição do serviço e o consequente registo, a utilização far‐se‐á de modo muito fácil. Também o mecanismo de ligação aos dados de entrada dos serviços está bastante facilitando podendo‐se inclusive usar métodos de XPATH mais complexos se tal for necessário.
Indicadores ‐ KPI (key performance indicators)
Um dos componentes essenciais dos BPMS é a existência do BAM (Business activity monitoring) que nos permite, em tempo real, analisar o que está a acontecer nos processos de negócio. O Oracle BAM, segundo a Gartner, é o melhor do mercado na sua categoria estando incorporado na suite.
A medição de indicadores ligada aos metadados já está disponível de raiz, acedendo assim a indicadores dos processos e tarefas para indicar os mais relevantes. Além disso é possível efectuar a medição de dados mais ligados a informação do negócio como por exemplo a verificação de vendas por área geográfica. Para isso é necessário inserir pontos de medição ou configurar nos existentes (por exemplo em tarefas) o que se pretende medir. Posteriormente à definição dos pontos de controlo podem‐se relacionar indicadores de metadados com dados de negócio, de forma a obter indicadores extremamente relevantes para a condução do negócio. Um exemplo poderia ser a análise temporal com conceitos como departamento e produto dos processos de venda por região. Tudo isto em tempo real permitindo aos gestores tomar as decisões atempadas sobre o que se está a passar naquele momento. Poder‐se‐ão definir valores que, caso os indicadores os atinjam, são lançados eventos como por exemplo mails. Estão disponíveis todos os tipo de gráficos, começando pelos de barras, passando pelos de pizza, área, linhas, etc. Além de filtragem por valores ou tipificações, todos eles possibilitam a navegação em modo drill‐down, como seja, em casos comuns, a navegação por ano, trimestre, mês, semana, dia. BAM – Business Activity Monitoring
João Assunção é CTO na Link Consulting e tem mais de 10 anos de experiência na definição de metodologias, arquitectura, implementação e liderança de projectos BPM. Já avaliou várias plataformas de BPM tais como Pegasystems SmartBPM, BEA Aqualogic, Oracle SOA Suite, IBM Websphere, Lombardi TeamWorks, Tibco iProcess, Sun, OpenText, entre outros.