sexta-feira, 26 de junho de 2009

Complex Event Processing Blog

Segue abaixo o link para um blog super interessante que fala exclusivamente sobre CEP e ESP, mantido principalmente pelo pessoal da Progress. Lá existem cases super interessantes do produto Progress Apama.

http://complexevents.com/

Boa Leitura!

sexta-feira, 19 de junho de 2009

Decisions no jBPM 4

Um dos recursos mais explorados em todo processo de negócio são as decisões. Decisões ou Exclusives no jargão do BPMN, são elementos de modelagem para realizar a transição entre atividades de forma condicional, ou seja, um mecanismo de modelar um fluxo de uma interação onde não é previamente conhecido o caminho que será tomado, várias possibilidades podem estar presentes.

Neste post, irei mostrar três forma diferentes de se trabalhar com decisions no jBPM 4. As três formas possíveis são:
  1. Usando Condições
  2. Usando Expressões
  3. Usando Handlers
Vamos começar então com um exemplo de decisions usando condições. Usando condições, é a forma mais simples de se trabalhar com decisions no jBPM 4, pois você coloca toda a lógica de avaliação da condição dentro do processo, em especial, dentro das declaração dos transitions. Desta forma, cada transition é responsável por saber qual caminho tomar, uma estratégia interessante se você tem um número de transições finitas e simples. Considere o seguinte processo de negócio:



A definição do processo usando condições seria assim:


Como segundo exemplo, agora considerando a estratégia de expressões, considere o seguinte processo de negócio:


A definição do processo usando condições seria assim:



Finalmente, considere este último processo de negócio, que faz uso do recurso de decisions baseado em handlers customizados:



A definição do processo usando condições seria assim:


Neste caso especial, é necessário que você escreve um handler especial para manipular a lógica sobre a decisão. Segue o exemplo criado para o processo descrito acima:


Seja qual opção for, para que as lógicas de decisão funcionem, é necessário enviar para a instância do processo, uma ou mais variáveis de contexto que sinalizam o fluxo a ser seguido. No jBPM 4, a forma mais simples (e recomendável) de se enviar variáveis para o processo é quando sua instância é criada, por exemplo:

sexta-feira, 12 de junho de 2009

jBPM 4: Primeiros Passos!

No jBPM 4, poucas coisas estruturais mudaram da versão 3.2.X para a versão mais nova. Usuários experientes do jBPM poderão iniciar rapidamente no jBPM 4 apenas seguindo as instruções do novo User Guide e o Developers Guide, mas usuários que não experimentaram o framework a fundo, ou usaram-no mas de uma forma apenas superficial ou apenas em nível de prova de conceito, podem sentir mais dificuldade em entender certas coisas.

Neste post, irei mostrar com dar os primeiros passos no jBPM 4, a mais nova versão do framework de BPM mais popular do mercado. Através deste post, usuários iniciantes do jBPM poderão avaliar as novas funcionalidades da solução assim como os recursos exclusivos da versão 4.0. Neste exemplo passo a passo, irei considerar que você pelo menos fez o download da ultima versão do jBPM, e que configurou o designer visual de acordo com as instruções do user-guide.

1) Inicie um projeto Java no seu ambiente Eclipse

Para começar o exemplo, você deverá criar um projeto Java novo no ambiente Eclipse em que você configurou o designer visual do jBPM. Depois de criar o projeto, é interessante que você configure adequadamente o classpath do projeto com as bibliotecas do jBPM. Para isso, crie uma User Library contendo os seguintes arquivos JAR:
  • $JBPM_HOME/jbpm.jar
  • $JBPM_HOME/lib/*.jar
Feito isso, configure no seu projeto essa user library e passe para etapa de configuração dos arquivos de configuração do jBPM.

2) Crie os arquivos de configuração do jBPM

Para que você possa executar o jBPM, é necessário que alguns arquivos de configuração sejam criados. Tal como a versão anterior, você ainda pode executar processos do jBPM tanto da
forma "unmanaged" ou seja, sem estar com o contexto de persistência ligado, ou da forma "managed" que determinada o uso de Hibernate para a persistência dos grafos dos processos.

Entretanto, na versão 4, o jBPM solicita que pelos menos os arquivos estejam presentes no classpath para fins de debugging do ambiente, uma vez que agora questões de infra-estrutura JEE estão separadas da máquina de processos, caracterĩstica básica do PVM (Process Virtual Machine). Neste caso, dependendo da factory em execução que você use, os recursos serão carregados ou não junto com o contexto do jBPM.


Você precisará criar apenas dois arquivos XML no root do classpath de seu projeto: O arquivo de configuração geral que determina quais recursos você irá usar, e o arquivo de configuração do Hibernate. Vamos começar pelo arquivo de configuração do jBPM. Crie um arquivo chamado jbpm.cfg.xml no raiz do classpath contendo a seguinte declaração:


Agora crie outro arquivo XML chamado jbpm.hibernate.cfg.xml e edite-o conforme mostrado abaixo:


Repare que, o arquivo que contêm a definição do Hibernate na verdade define uma conexão com o servidor HSQLDB. Caso você queria testar o jBPM em outro servidor de banco de dados, edite-o apropriadamente não esquecendo de colocar os conectores do JDBC no classpath do projeto.

3) Crie um processo novo usando o designer visual.

Crie um processo simples usando o designer visual novo contendo apenas dois estados, como mostrado na figura abaixo:


A listagem abaixo mostra a declaração do processo na notação do jPDL. Repare que além da definição dos processos, foi configurado também um modelo de eventos do jBPM, para que possamos monitorar a execução do grafo do processo no estilo "imprima-cada-passo-executado".


4) Crie uma classe Java para monitorar as atividades do processo


5) Crie uma classe Java que inicia e executa o processo usando a PVM


Em próximos posts, irei mostrar como usar os recursos do novo console, a integração com o JBoss Application Server e os recursos de BAM e BI encontrados na nova versão.