1. Guilherme
Elias
@guilhermelias
h/ps://github.com/gelias
h/p://codingbyexample.org
h/p://br.linkedin.com/in/guilhermeeilas
2. EDA
-‐
Event-‐driven
Architecture
• O que é?
Padrão de desenvolvimento de
software :-)
• Serve para?
Detecção de eventos (sensor - trigger);
Monitoramento de eventos (monitor);
3. EDA
-‐
Event-‐driven
Architecture
• CA – Event Condition Action
E
Nada mais do que um “regra”!
Ex.: Sinistro ocorrido!
Evento: Após o reconhecimento de um sinistro
Condição: Caso o prejuízo presente 90% do valor do bem
Ação: Inicia processo de ressarcimento do bem!
Evento: Após finalizar atendimento via helpdesk
Ação: Enviar SMS solicitando nota para o atendimento
4. EDA
-‐
Event-‐driven
Architecture
• CA – Event Condition Action
E
• Event :
… computacionalmente representa algo que ocorreu.
h/p://en.wikipedia.org/wiki/Event
… simplesmente uma troca de estado.
h/p://en.wikipedia.org/wiki/Event_driven_architecture
8. EDA
-‐
Event-‐driven
Architecture
• Camadas de um estrutura EDA
I. Event Generator
Criação/Instalação de sensores;
… onMouseClick (listener)
… após criar uma ordem de compra
… após realizar baixa no estoque
9. EDA
-‐
Event-‐driven
Architecture
• Considere …
Prover modelagens reusáveis!
Visar sempre o baixo acoplamento!
Apenas repassar informações/dados do
contexto atual;
Dependencias;
10. EDA
-‐
Event-‐driven
Architecture
• Camadas de um estrutura EDA
II. Event Channel
Mecanismo de tráfego de informações;
- XML
- JSON
- CSV
- RDF (Resource Description Framework)
h/p://www.w3schools.com
11. EDA
-‐
Event-‐driven
Architecture
• Considere …
Prover facilitadores para a criação do
“contexto”;
Quanto menos verboso melhor (JSON)
Estruturar de forma que seja possível
pesquisar;
12. EDA
-‐
Event-‐driven
Architecture
• Camadas de um estrutura EDA
III. Event Processing Engine
Onde é IDENTIFICADA e EXECUTADA a
“reação”;
13. EDA
-‐
Event-‐driven
Architecture
• Considere …
Deve possuir custo de processamento
baixissimo;
Basicamente um interpretador;
Um mesmo evento pode executar ações
totalmente distintas;
Deve conseguir executar eventos de
forma assíncrona;
Deve trafegar apenas informações
necessárias;
14. EDA
-‐
Event-‐driven
Architecture
• Modularidade / Componentização
Responsabilidades bem distribuidas;
Baixo Acoplamento;
16. EDA
-‐
Event-‐driven
Architecture
• Onde pode ser útil
Regras de Negócio (BPM)
Sistemas de alerta/monitoramento
Automação de tarefas operacionais
… onde consiga se criar um regra!
17. EDA
-‐
Event-‐driven
Architecture
• Ferramentas de mercado
Drools
http://www.jboss.org/drools/
Outras open source
http://java-source.net/open-source/rule-engines