motor de regras
@porcelli


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


Production       Pattern        Working
 Memory    ...
FACT: POJO
    	   public static class Message {
    	   	
    	   	   public static final int HELLO = 0;
    	   	   publ...
RULE: DSL

 rule "Hello World"
 	 when
 	 	 m : Message( status == Message.HELLO, myMessage : message )
 	 then
 	 	 Syste...
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
Motor de Regras @ TDC2010
Upcoming SlideShare
Loading in …5
×

Motor de Regras @ TDC2010

950 views
871 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
950
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide



































  • Motor de Regras @ TDC2010

    1. 1. motor de regras
    2. 2. @porcelli #TDC2010 #DROOLS
    3. 3. WTF?
    4. 4. EXPERT?
    5. 5. ?
    6. 6. COMO FUNCIONA...
    7. 7. VISÃO GERAL Inference Engine (ReteOO) Production Pattern Working Memory Matcher Memory (rules) (facts) Agenda
    8. 8. 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; } }
    9. 9. RULE: DSL rule "Hello World" when m : Message( status == Message.HELLO, myMessage : message ) then System.out.println( myMessage ); end
    10. 10. ALGORÍTIMO
    11. 11. VANTAGENS
    12. 12. FACILIDADE DE ENTENDIMENTO
    13. 13. MANUTENÇÃO MAIS FÁCIL
    14. 14. FLEXIBILIDADE
    15. 15. MENOR IMPEDÂNCIA NA DEFINIÇÃO DE REGRAS
    16. 16. GESTÃO
    17. 17. QUANDO NÃO USAR
    18. 18. PROJETO [PEQUENO] SEM MUITAS REGRAS
    19. 19. REGRAS QUE DIFICILMENTE MUDAM
    20. 20. FALTA DE EXPERIÊNCIA COM A TECNOLOGIA
    21. 21. DISVANTAGENS?
    22. 22. DIFICULDADES...
    23. 23. PENSAR DIFERENTE!
    24. 24. DEBUGGING
    25. 25. MEMÓRIA
    26. 26. DEMO!
    27. 27. OPS... JÁ IA ME ESQUECENDO...
    28. 28. PERFORMANCE!
    29. 29. QUER SABER MAIS?
    30. 30. QUER SABER MAIS?
    31. 31. QUER SABER MAIS?
    32. 32. Perguntas?
    33. 33. Obrigado alexandre.porcelli@gmail.com github.com/porcelli linkedin.com/in/alexandreporcelli @porcelli porcelli.com.br

    ×