Iasapoa eca eda

18
Aprendizados de uma arquitetura Aprendizados de uma arquitetura dirigida a eventos (EDA/ECA) dirigida a eventos (EDA/ECA) Do conceito ao multiplataforma Do conceito ao multiplataforma Guilherme Elias @guilhermelias https://github.com/gelias http://codingbyexample.org http://br.linkedin.com/in/guilhermeeilas

Transcript of Iasapoa eca eda

Page 1: Iasapoa eca eda

Aprendizados de uma arquitetura Aprendizados de uma arquitetura dirigida a eventos (EDA/ECA)dirigida a eventos (EDA/ECA)

……Do conceito ao multiplataformaDo conceito ao multiplataforma

Guilherme Elias@guilhermelias

https://github.com/geliashttp://codingbyexample.org

http://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 sinistroCondiçã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 helpdeskAçã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

http://en.wikipedia.org/wiki/Event

http://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

http://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

http://martinfowler.com/articles/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

Droolshttp://www.jboss.org/drools/

Outras open sourcehttp://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