Download - Iasapoa eca eda
Guilherme Elias @guilhermelias
h/ps://github.com/gelias h/p://codingbyexample.org
h/p://br.linkedin.com/in/guilhermeeilas
• O que é?
Padrão de desenvolvimento de software :-)
• Serve para?
Detecção de eventos (sensor - trigger); Monitoramento de eventos (monitor);
EDA -‐ Event-‐driven Architecture
• ECA – Event Condition Action
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
EDA -‐ Event-‐driven Architecture
• ECA – Event Condition Action
• Event :
… computacionalmente representa algo que ocorreu.
… simplesmente uma troca de estado.
EDA -‐ Event-‐driven Architecture
h/p://en.wikipedia.org/wiki/Event
h/p://en.wikipedia.org/wiki/Event_driven_architecture
• ECA – Event Condition Action
• Condition :
EDA -‐ Event-‐driven Architecture
• ECA – Event Condition Action
• Action :
Realização de uma operação;
Atualização de um estado;
EDA -‐ Event-‐driven Architecture
• ECA – Event Condition Action
EDA -‐ Event-‐driven Architecture
Simples Complexa
• 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
EDA -‐ Event-‐driven Architecture
• Considere …
Prover modelagens reusáveis!
Visar sempre o baixo acoplamento!
Apenas repassar informações/dados do contexto atual;
Dependencias;
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)
EDA -‐ Event-‐driven Architecture
h/p://www.w3schools.com
• Considere …
Prover facilitadores para a criação do “contexto”;
Quanto menos verboso melhor (JSON)
Estruturar de forma que seja possível pesquisar;
EDA -‐ Event-‐driven Architecture
• Camadas de um estrutura EDA
III. Event Processing Engine
Onde é IDENTIFICADA e EXECUTADA a “reação”;
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;
EDA -‐ Event-‐driven Architecture
• Modularidade / Componentização
Responsabilidades bem distribuidas;
Baixo Acoplamento;
EDA -‐ Event-‐driven Architecture
EDA -‐ Event-‐driven Architecture
h/p://marFnfowler.com/arFcles/lmax.html
• Onde pode ser útil
Regras de Negócio (BPM) Sistemas de alerta/monitoramento Automação de tarefas operacionais
… onde consiga se criar um regra!
EDA -‐ Event-‐driven Architecture
• Ferramentas de mercado
Drools http://www.jboss.org/drools/
Outras open source http://java-source.net/open-source/rule-engines
EDA -‐ Event-‐driven Architecture
Event-driven Architecture http://en.wikipedia.org/wiki/Event-driven_architecture
Artigos: http://www.di.unipi.it/~brogi/papers/JELIA06.pdf http://www.ibm.com/developerworks/websphere/library/techarticles/0810_mcginnes/0810_mcginnes.html http://dl.dropbox.com/u/20315902/EventDrivenArchitectureOverview_ElementalLinks_Feb2011.pdf
Event Sourcing: http://martinfowler.com/eaaDev/EventSourcing.html
ECA Rules http://en.wikipedia.org/wiki/Event_Condition_Action
Business Process Management http://en.wikipedia.org/wiki/Rule_engine http://en.wikipedia.org/wiki/Business_process_management
Referências e Links