motor de regras
@porcelli


#TDC2010
   #DROOLS
WTF?
EXPERT?
?
COMO
FUNCIONA...
VISÃO GERAL
             Inference Engine
                  (ReteOO)


Production       Pattern        Working
 Memory          Matcher        Memory
   (rules)                       (facts)




                  Agenda
FACT: POJO
    	   public static class Message {
    	   	
    	   	   public static final int HELLO = 0;
    	   	   public static final int GOODBYE = 1;

    	   	   private String message;

    	   	   private int status;

    	   	   public String getMessage() {
    	   	   	   return this.message;
    	   	   }

    	   	   public void setMessage(String message) {
    	   	   	   this.message = message;
    	   	   }

    	   	   public int getStatus() {
    	   	   	   return this.status;
    	   	   }

    	   	   public void setStatus(int status) {
    	   	   	   this.status = status;
    	   	   }
    	   	
    	   }
RULE: DSL

 rule "Hello World"
 	 when
 	 	 m : Message( status == Message.HELLO, myMessage : message )
 	 then
 	 	 System.out.println( myMessage );
 end
ALGORÍTIMO
VANTAGENS
FACILIDADE DE
ENTENDIMENTO
MANUTENÇÃO MAIS
     FÁCIL
FLEXIBILIDADE
MENOR IMPEDÂNCIA
  NA DEFINIÇÃO
   DE REGRAS
GESTÃO
QUANDO NÃO USAR
PROJETO
    [PEQUENO]
SEM MUITAS REGRAS
REGRAS QUE
DIFICILMENTE MUDAM
FALTA DE EXPERIÊNCIA
       COM A
    TECNOLOGIA
DISVANTAGENS?
DIFICULDADES...
PENSAR DIFERENTE!
DEBUGGING
MEMÓRIA
DEMO!
OPS... JÁ IA ME
ESQUECENDO...
PERFORMANCE!
QUER SABER MAIS?
QUER SABER MAIS?
QUER SABER MAIS?
Perguntas?
Obrigado


alexandre.porcelli@gmail.com

github.com/porcelli

linkedin.com/in/alexandreporcelli

@porcelli

porcelli.com.br

Motor de Regras @ TDC2010