Iasapoa eca eda

18
Guilherme Elias @guilhermelias h/ps://github.com/gelias h/p://codingbyexample.org h/p://br.linkedin.com/in/guilhermeeilas

Transcript of Iasapoa eca eda

Page 1: Iasapoa eca eda

Guilherme  Elias  @guilhermelias  

h/ps://github.com/gelias  h/p://codingbyexample.org  

h/p://br.linkedin.com/in/guilhermeeilas  

Page 2: Iasapoa eca eda

•  O que é?

  Padrão de desenvolvimento de software :-)

•  Serve para?

  Detecção de eventos (sensor - trigger);   Monitoramento de eventos (monitor);

EDA  -­‐  Event-­‐driven  Architecture    

Page 3: Iasapoa eca eda

• 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    

Page 4: Iasapoa eca eda

• 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  

Page 5: Iasapoa eca eda

• ECA – Event Condition Action

•  Condition :

EDA  -­‐  Event-­‐driven  Architecture    

Page 6: Iasapoa eca eda

• ECA – Event Condition Action

•  Action :

  Realização de uma operação;

  Atualização de um estado;

EDA  -­‐  Event-­‐driven  Architecture    

Page 7: Iasapoa eca eda

• ECA – Event Condition Action

EDA  -­‐  Event-­‐driven  Architecture    

Simples   Complexa  

Page 8: Iasapoa eca eda

•  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    

Page 9: Iasapoa eca eda

•  Considere …

  Prover modelagens reusáveis!

  Visar sempre o baixo acoplamento!

  Apenas repassar informações/dados do contexto atual;

  Dependencias;

EDA  -­‐  Event-­‐driven  Architecture    

Page 10: Iasapoa eca eda

•  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  

Page 11: Iasapoa eca eda

•  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    

Page 12: Iasapoa eca eda

•  Camadas de um estrutura EDA

III. Event Processing Engine

  Onde é IDENTIFICADA e EXECUTADA a “reação”;

EDA  -­‐  Event-­‐driven  Architecture    

Page 13: Iasapoa eca eda

•  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    

Page 14: Iasapoa eca eda

•  Modularidade / Componentização

  Responsabilidades bem distribuidas;

  Baixo Acoplamento;

EDA  -­‐  Event-­‐driven  Architecture    

Page 15: Iasapoa eca eda

EDA  -­‐  Event-­‐driven  Architecture    

h/p://marFnfowler.com/arFcles/lmax.html  

Page 16: Iasapoa eca eda

•  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    

Page 17: Iasapoa eca eda

•  Ferramentas de mercado

  Drools http://www.jboss.org/drools/

  Outras open source http://java-source.net/open-source/rule-engines

EDA  -­‐  Event-­‐driven  Architecture    

Page 18: Iasapoa eca eda

  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