Event Driven Architecture & Complex Event Processing António Cruz, Software Architect
Agenda <ul><li>Orientação a Serviços </li></ul><ul><li>Orientação a Eventos </li></ul><ul><li>Benefícios e Problemas </li>...
Orientação a Serviços
Benefícios <ul><li>Agilidade e flexibilidade dos processos de negócio  através da composição de unidades funcionais reutil...
Problemas <ul><li>O padrão de Request-Reply não é adequado a cenários que requerem: </li></ul><ul><ul><li>Informação em  t...
Orientação a Eventos
Orientação a Eventos <ul><li>Um evento é uma  alteração significativa de estado  para o negócio: </li></ul><ul><ul><li>Pas...
Orientação a Eventos <ul><li>Características: </li></ul><ul><ul><li>Foca no  comportamento dos processos de negócio </li><...
Publish-Subscribe Tópico Produtor Consumidor Mensagem A Produtor Mensagem B Consumidor Mensagem B Mensagem A Mensagem B Me...
Ponto-a-Ponto Queue Produtor Consumidor Mensagem A Produtor Mensagem B Consumidor Mensagem A Mensagem B
DEMO Consumo de Tópicos de Eventos
Estilos de Processamento de Eventos <ul><li>São normalmente usados em conjunto: </li></ul><ul><ul><li>Simple Event Process...
Benefícios <ul><li>Extreme decoupling  - os produtores não precisam de conhecer os consumidores e vice-versa </li></ul><ul...
Problemas <ul><li>As mensagens podem  não ser entregues  ou não serem  entregues  na mesma ordem  em que foram publicadas ...
Event-Driven SOA <ul><li>A ocorrência de um evento pode despoletar a invocação de um ou mais serviços </li></ul><ul><ul><l...
#3 - Notificação de Ponto de Encomenda
EDA complementa SOA
CEP - Complex Event Processing <ul><li>Um evento complexo  é o resultado de uma inferência sobre uma agregação  de outros ...
Práticas Recomendadas <ul><li>Identificar bem as necessidades do negócio e um  projecto-piloto com valor , mas que não sej...
Conclusões (I) <ul><li>As notificações assíncronas de eventos  não são um substituto  para as comunicações síncronas basea...
Conclusões (II) <ul><li>SOA não é um produto  nem uma questão essencialmente técnica. É algo que nós fazemos,  é um estilo...
Referências <ul><li>SOA Design Patterns –  Thomas Erl </li></ul><ul><li>The Power Of Events –  David Luckam </li></ul><ul>...
Upcoming SlideShare
Loading in …5
×

Event Driven Architecture &amp; Complex Event Processing

1,103 views
1,009 views

Published on

Presented to The Portuguese Group of Software Architects in 2009-04-14

Published in: Business, Economy & Finance
1 Comment
1 Like
Statistics
Notes
  • Olá António Cruz,

    Este semestre eu começarei a fazer um trabalho de conclusão de curso para a faculdade, e o meu tema escolhido foi 'Arquitetura orientada a eventos'. Eu gostaria de entrar em contato com você, para obter algumas informações e trocar algumas ideias.

    Você pode me passar algum sit epessoal que tem algum contato seu?

    ou me seguir no twitter: http://twitter.com/guireisc .

    Obrigado!!

    Atenciosamente

    Guilherme Reis
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
1,103
On SlideShare
0
From Embeds
0
Number of Embeds
46
Actions
Shares
0
Downloads
0
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Event Driven Architecture &amp; Complex Event Processing

  1. 1. Event Driven Architecture & Complex Event Processing António Cruz, Software Architect
  2. 2. Agenda <ul><li>Orientação a Serviços </li></ul><ul><li>Orientação a Eventos </li></ul><ul><li>Benefícios e Problemas </li></ul><ul><li>Casos de Estudo </li></ul><ul><li>Conclusões </li></ul>
  3. 3. Orientação a Serviços
  4. 4. Benefícios <ul><li>Agilidade e flexibilidade dos processos de negócio através da composição de unidades funcionais reutilizáveis e interoperáveis, taxonomizadas num catálogo pesquisável </li></ul><ul><li>Contribui para reduzir os custos , minimizar a redundância , optimizar a segurança , melhorar a satisfação dos clientes , etc. </li></ul><ul><li>Pode revelar-se uma vantagem estratégica </li></ul>
  5. 5. Problemas <ul><li>O padrão de Request-Reply não é adequado a cenários que requerem: </li></ul><ul><ul><li>Informação em tempo real </li></ul></ul><ul><ul><li>Transmissão de centenas de milhar ou milhões de notificações por segundo </li></ul></ul><ul><ul><li>Que os produtores desconheçam os consumidores </li></ul></ul>
  6. 6. Orientação a Eventos
  7. 7. Orientação a Eventos <ul><li>Um evento é uma alteração significativa de estado para o negócio: </li></ul><ul><ul><li>Passagem do minuto 49 para o minuto 50 </li></ul></ul><ul><ul><li>Bilhete que passa de Disponível para Vendido </li></ul></ul><ul><ul><li>Compra a Crédito cujo valor ultrapassa 1500€ . </li></ul></ul>
  8. 8. Orientação a Eventos <ul><li>Características: </li></ul><ul><ul><li>Foca no comportamento dos processos de negócio </li></ul></ul><ul><ul><li>Ajusta-se à natureza de muitos aspectos do mundo real </li></ul></ul><ul><ul><li>Baseia-se no padrão pub-sub: os eventos são propagados </li></ul></ul><ul><ul><li>A comunicação é assíncrona </li></ul></ul><ul><ul><li>A granularidade dos eventos é fina </li></ul></ul>
  9. 9. Publish-Subscribe Tópico Produtor Consumidor Mensagem A Produtor Mensagem B Consumidor Mensagem B Mensagem A Mensagem B Mensagem A
  10. 10. Ponto-a-Ponto Queue Produtor Consumidor Mensagem A Produtor Mensagem B Consumidor Mensagem A Mensagem B
  11. 11. DEMO Consumo de Tópicos de Eventos
  12. 12. Estilos de Processamento de Eventos <ul><li>São normalmente usados em conjunto: </li></ul><ul><ul><li>Simple Event Processing (um evento notável) </li></ul></ul><ul><ul><li>Stream Event Processing (vários eventos, notáveis e ordinários) </li></ul></ul><ul><ul><li>CEP - Complex Event Processing (são feitas correlações entre vários eventos notáveis e ordinários, em diferentes alturas no tempo e pontos do sistema, com vista à identificação de padrões que por sua vez vão gerar novos eventos) </li></ul></ul>
  13. 13. Benefícios <ul><li>Extreme decoupling - os produtores não precisam de conhecer os consumidores e vice-versa </li></ul><ul><li>Escalabilidade – A paralelização das entregas apresenta geralmente maior desempenho do que a arquitectura síncrona baseada no pedido-resposta </li></ul>
  14. 14. Problemas <ul><li>As mensagens podem não ser entregues ou não serem entregues na mesma ordem em que foram publicadas </li></ul><ul><li>A extreme decoupling pode trazer problemas à SOA governance </li></ul><ul><ul><li>O padrão pub-sub só por si não pressupôe a implementação de mecanismos de segurança </li></ul></ul><ul><ul><li>É difícil fazer tracing das mensagens </li></ul></ul><ul><li>Podemos perder a escalabilidade em instalações com milhares de agentes </li></ul><ul><li>Requer a instalação e uso de middleware específico </li></ul>
  15. 15. Event-Driven SOA <ul><li>A ocorrência de um evento pode despoletar a invocação de um ou mais serviços </li></ul><ul><ul><li>Os eventos despoletam serviços </li></ul></ul><ul><li>Esses serviços podem desempenhar funções de negócio simples ou processos de negócio complexos </li></ul><ul><li>A invocação dos serviços pode provocar a ocorrência de novos eventos </li></ul><ul><ul><li>Os serviços despoletam eventos </li></ul></ul>
  16. 16. #3 - Notificação de Ponto de Encomenda
  17. 17. EDA complementa SOA
  18. 18. CEP - Complex Event Processing <ul><li>Um evento complexo é o resultado de uma inferência sobre uma agregação de outros eventos </li></ul><ul><li>Os membros podem ocorrer em alturas distintas e em componentes diferentes do sistema: </li></ul><ul><ul><li>Detecção de uma tentativa de intrusão na rede </li></ul></ul><ul><ul><li>Decisão de encaminhamento de uma mensagem com base no conteúdo de mensagens anteriores </li></ul></ul><ul><ul><li>Transportes, RFIDs e BAM são áreas emergentes </li></ul></ul><ul><ul><li>Poupança de energia (edifícios com sensores, etc.) </li></ul></ul><ul><li>Pode ser usado para evitar a recepção de múltiplas mensagens </li></ul>
  19. 19. Práticas Recomendadas <ul><li>Identificar bem as necessidades do negócio e um projecto-piloto com valor , mas que não seja crítico </li></ul><ul><li>Perseguir sempre o Time-to-Value . Não basta dizer “ trust me ”, é preciso mostrar resultados </li></ul><ul><li>Evitar “ter uma ou várias soluções à procura de um problema” </li></ul><ul><li>Elaborar schemas para todas as transferências de dados : serviços, mensagens de notificação, transferências de dados, etc. </li></ul><ul><li>Suportar o versionamento das mensagens </li></ul><ul><ul><li>Uma alternativa é criar um novo tópico de subscrição </li></ul></ul><ul><li>Comunicar. Formar. Delegar. Cooperar . </li></ul>
  20. 20. Conclusões (I) <ul><li>As notificações assíncronas de eventos não são um substituto para as comunicações síncronas baseadas em pedidos-respostas </li></ul><ul><li>SOA e EDA (aka “ Advanced SOA” ) são formas complementares de desenho da arquitectura que possibilita que a empresa tenha maior agilidade face à mudança constante de estados do negócio </li></ul>
  21. 21. Conclusões (II) <ul><li>SOA não é um produto nem uma questão essencialmente técnica. É algo que nós fazemos, é um estilo de desenho </li></ul><ul><li>O middleware (ex. ESB) é apenas uma ferramenta para um fim e não o fim em si mesmo </li></ul><ul><li>Em conjunto, a Orientação a Serviços e Eventos viabilizam empresas em tempo-real e são a fundação para o context-aware computing </li></ul>
  22. 22. Referências <ul><li>SOA Design Patterns – Thomas Erl </li></ul><ul><li>The Power Of Events – David Luckam </li></ul><ul><li>The Architecture Journal #17 </li></ul><ul><li>Sapo Bus – codeplex.com/SapoBus </li></ul><ul><li>Sapo Broker – softwarelivre.sapo.pt/broker </li></ul><ul><li>MS PubSub – www.codeplex.com/PubSub </li></ul>

×