Archive for May 12th, 2008

Em ambientes de integração, onde falamos de milhares de transações por dia ou por hora, minuto etc, é muito importante atentar para as atividades que acontecem e com isto tomamos alguma ação, para isto damos o nome de “evento”.

CEP vem de (Complex Event Processing) e ESP (Event Stream Processing), ok, siglas bonitas, para quando preciso usar CEP?

  • Imagine processar milhões de verificações por dados de objetos e com base nissso tomar algumas decisões, seja para monitoração ou gerar eventos que executem outras atividades.
  • CEP e ESP estão focados em processamento de grandes volumes.
  • É fácil confundir CEP com RulesEngines, mas uma coisa é o Pattern Matcher e outra coisa é o processamento de grandes volumes de informações de objetos, ainda que numa janela de tempo, onde alguns Garbage Collectors tenham sido executados.
  • Como os produtos de CEP têm implementações de Pattern Matching não tão poderosas, a idéia é juntar o poder de do Drools (Engine Rules) e CEP.

Vamos imaginar um cenário de atividades de transito, como um evento : “O veículo mudou de jurisdição”, quais os fatores estão envolvidos?

  1. Exemplo, meu carro é licenciado no Detran-Rio Grande do Sul (claro que este processo é apenas de exemplo)
  1. O Detran-SP envia todas as multas aplicadas no estado de SP para um broker do Denatran (por exemplo um ESB ou um SCA)
  2. O Denatram envia num mês milhões de transações enviando todas as multas para as jurisdições regionais
  3. O Detran-RS recebe um grande lote de notificações
  4. Dessas notificações que foram processadas, por hipótese (claro :) ), há várias infrações do meu veículo num periodo de 2 anos.
  5. Podemos chegar a conclusão que este veículo pode ter mudado de jurisdição e uma notificação via e-mail poderia ser enviado para o proprietário.

A grande questão acima, não é a apenas a regra, mas o volume de transações, sendo assim, o uso de CEP aliado a um ESB, é algo que particularmente me chama a atenção, um barramento de serviços aliado a algo além de um simples BAM.

O Drools em suas próximas versões estará suportando CEP, nosso amigo brasileiro Edson Tirelli entre as muitas coisas, está trabalhando exatamente nestes aspectos no momento, tive acesso a um trunk que já contempla algumas coisas relacionadas a CEP já no Drools.

Se você tiver um maior interesse, recomendo utilizar a mesma implementação que tenho usado para estudo, que é o Esper, que inclusive tem uma versão a Java, e uma .net.

Bons estudos

E