SlideShare uma empresa Scribd logo
Event Aggregator Fábio Silva  Luís Ferreira Tiago Sá Departamento de Informática Universidade do Minho
Agenda Introdução Objectivos Características AMQP Persistência de dados Arquitectura do sistema Eventos Estado actual Conclusão 08/15/10 Event Aggregator
Introdução Sistema de  disseminação de eventos , escalável e fiável. Eventos  simples , gerados por produtores, Eventos  complexos , resultantes da agregação da informação original Caso de estudo: Transacções da bolsa de valores 08/15/10 Event Aggregator
Introdução - Objectivos Sistema distribuído que permita a disseminação, agregação e processamento de  eventos  de forma fiável e escalável. Calcular funções sobre séries temporais, e permitir especificar a geração e subscrição de eventos complexos, função da  informação calculada . Possível armazenar informação histórica sobre eventos, num sistema de armazenamento de dados distribuído. Tolerância a faltas por replicação, distribuindo os dados por vários nós. 08/15/10 Event Aggregator
Introdução - Características Utilizar como sistema de  messaging  de base o AMQP. Utilizar uma  key-value store  distribuída para armazenamento persistente de informação. Disponibilizar funcionalidade de agregação e processamento de séries temporais (e.g. contar, soma, mínimo, máximo e médias móveis). Permitir subscrever eventos complexos, em função da informação calculada. 08/15/10 Event Aggregator
AMQP AMQP Advanced Message Queuing Protocol Protocolo aberto de  messaging Especificações de infra-estrutura de messaging, para conectar aplicações Independente da plataforma Protocolo em desenvolvimento – versão 1.0 em progresso. 08/15/10 Event Aggregator
AMQP – Produtos AMQP Infrastructure – installable on the latest 3 versions of Fedora Linux OpenAMQ, by iMatix Qpid, by Apache Pouca documentação, implementação em Java não suporta broker federation RabbitMQ  by Rabbit Technologies Boa documentação, comunidade activa Sistema completo, múltiplos bokers Red Hat Enterprise MRG, by Red Hat 08/15/10 Event Aggregator
Persistência de dados –  Key-value store MongoDB, CouchDB e Cassandra; Nenhuma delas tem noção da localização dos dados; Não é bom para OLAP (On-line A nalytical Processing); Riak e  Hadoop: Riak oferece funcionalidades de MapReduce ; A função de Map é executada no vnode(s) responsável pela chave; 08/15/10 Event Aggregator
Persistência de dados –  Key-value store Estrutura 08/15/10 Event Aggregator <Bucket Name> <key> <value> <key> <value> ... <Bucket Name> <key> <value> <key> <value> ...
Arquitectura do Sistema 08/15/10 Event Aggregator
Arquitectura do Sistema Brokers do RabbitMQ a correr em modo cluster; Nodos da cloud do sistema são elementos da key-value store distibuída, Riak; Um conjunto de clientes do sistema para subscrever, desubscrever e processar eventos agregados; Cada cliente deverá conter uma fila única no RabbitMQ; Existe uma fila do sistema, que os broker escutam concurrentemente, para processar subscrições e fim de subscrições; Cada mensagem publicada é enviada para o cluster de RabbitMQ e guardada no Riak. 08/15/10 Event Aggregator
Organisação Broker RabbitMQ Broker RabbitMQ Exchange:Clientes Filas de clientes Fila do Sistema 08/15/10 Event Aggregator
Processo de Agregação de eventos Cliente subscreve um evento agregado; Um dos agregadores recebe o pedido; Verifica se o pedido já está a ser processado para algum cliente; Caso exista:  junta a subscrição à sua fila de cliente; Caso não exista: cria um alarme no broker com a frequência do evento; Quando o alarme é acionado, verifica a lista de eventos que podem ser processados. Efectua a sua agregação, publicando os eventos no Riak e nos brokers do RabitMQ. 08/15/10 Event Aggregator
Modelo de dados XRaw &quot;AAAA/MM/DD/clientIdCounter&quot; : &quot;Valor” XDailyMaximum &quot;AAAA/MM/DD&quot; : &quot;MáximoDiário” XDailyMinimum &quot;AAAA/MM/DD&quot; : &quot;MínimoDiário” XDailyAverage &quot;AAAA/MM/DD&quot; : &quot;MédiaDiária” Xmonthly &quot;AAAA/MM/Maximum&quot; : &quot;Valor&quot; 08/15/10 Event Aggregator
Eventos Existem dois tipos de eventos - simples e agregados Eventos simples, são compostos por: nome da acção | data | tipo | modo | valor Evento agregado: calculado a partir de vários eventos simples tipos disponibilizados: máximo, mínimo , média, contar e somar Granularidade: dia Podem ser pedidos através de intervalos 08/15/10 Event Aggregator
Estado actual Subscrição simples  Publicação e difusão simples Unsubscribe simples Protótipo de um cliente Prototipo de um agregador Cálculo de estatísticas na key-store 08/15/10 Event Aggregator
Conclusões e trabalho futuro Nesta fase inicial, foi direccionado o esforço para a recolha de requisitos e análise das ferramentas disponíveis. Quem atende o pedido inicial do cliente? Qual a identidade do serviço? Tolerância a faltas: No caso de um broker falhar, os restantes seguram as mensagens em cache até este acordar, ou descartam? 08/15/10 Event Aggregator

Mais conteúdo relacionado

PPTX
Coisas interessantes para saber quando começar a processar dados em streaming
PPTX
TDC2018SP | Trilha BigData - O que nao te falam sobre ir de uma pipeline de d...
PPTX
ชีวิตส่วนพระองค์1
PPTX
Una sociable manera para bajar de peso
PPT
Cosa 2010 acq.cat hauser
PDF
Boletin nº 3 pp
PPTX
PPTX
Leadership in manufacturing technology students
Coisas interessantes para saber quando começar a processar dados em streaming
TDC2018SP | Trilha BigData - O que nao te falam sobre ir de uma pipeline de d...
ชีวิตส่วนพระองค์1
Una sociable manera para bajar de peso
Cosa 2010 acq.cat hauser
Boletin nº 3 pp
Leadership in manufacturing technology students

Semelhante a Event Aggregator (13)

PPTX
Architecting For Resilience
PPTX
TDC2018FLN | Trilha Arquitetura - Architecting for Resilience
PDF
Desenvolvimento com arquitetura baseada em eventos
PPTX
TDC2013 Escalando Aplicações Java com In Memory Datagrids
PDF
Projetando uma Arquitetura Expressiva
PPTX
Mule soft meetup poa-30-jul-2021-v1
PDF
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
PDF
Tecnologias para mineração de dados nas nuvens
PPTX
Kafka ppt
PPTX
Kafka ppt
PDF
Events, event driven architecture and async api, what the fork-
PDF
Experiência da SulAmerica com Kafka -
PPT
Monitoracao Inteligente na Globo.com
Architecting For Resilience
TDC2018FLN | Trilha Arquitetura - Architecting for Resilience
Desenvolvimento com arquitetura baseada em eventos
TDC2013 Escalando Aplicações Java com In Memory Datagrids
Projetando uma Arquitetura Expressiva
Mule soft meetup poa-30-jul-2021-v1
Case RDStation: Construindo DataLakes com Apache Hadoop em cloud agnóstica
Tecnologias para mineração de dados nas nuvens
Kafka ppt
Kafka ppt
Events, event driven architecture and async api, what the fork-
Experiência da SulAmerica com Kafka -
Monitoracao Inteligente na Globo.com
Anúncio

Último (8)

PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Mecânico de Manutenção de Equipamentos.pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Mecânico de Manutenção de Equipamentos.pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Arquitetura de computadores - Memórias Secundárias
Manejo integrado de pragas na cultura do algodão
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Viasol Energia Solar -Soluções para geração e economia de energia
Anúncio

Event Aggregator

  • 1. Event Aggregator Fábio Silva Luís Ferreira Tiago Sá Departamento de Informática Universidade do Minho
  • 2. Agenda Introdução Objectivos Características AMQP Persistência de dados Arquitectura do sistema Eventos Estado actual Conclusão 08/15/10 Event Aggregator
  • 3. Introdução Sistema de disseminação de eventos , escalável e fiável. Eventos simples , gerados por produtores, Eventos complexos , resultantes da agregação da informação original Caso de estudo: Transacções da bolsa de valores 08/15/10 Event Aggregator
  • 4. Introdução - Objectivos Sistema distribuído que permita a disseminação, agregação e processamento de eventos de forma fiável e escalável. Calcular funções sobre séries temporais, e permitir especificar a geração e subscrição de eventos complexos, função da informação calculada . Possível armazenar informação histórica sobre eventos, num sistema de armazenamento de dados distribuído. Tolerância a faltas por replicação, distribuindo os dados por vários nós. 08/15/10 Event Aggregator
  • 5. Introdução - Características Utilizar como sistema de messaging de base o AMQP. Utilizar uma key-value store distribuída para armazenamento persistente de informação. Disponibilizar funcionalidade de agregação e processamento de séries temporais (e.g. contar, soma, mínimo, máximo e médias móveis). Permitir subscrever eventos complexos, em função da informação calculada. 08/15/10 Event Aggregator
  • 6. AMQP AMQP Advanced Message Queuing Protocol Protocolo aberto de messaging Especificações de infra-estrutura de messaging, para conectar aplicações Independente da plataforma Protocolo em desenvolvimento – versão 1.0 em progresso. 08/15/10 Event Aggregator
  • 7. AMQP – Produtos AMQP Infrastructure – installable on the latest 3 versions of Fedora Linux OpenAMQ, by iMatix Qpid, by Apache Pouca documentação, implementação em Java não suporta broker federation RabbitMQ by Rabbit Technologies Boa documentação, comunidade activa Sistema completo, múltiplos bokers Red Hat Enterprise MRG, by Red Hat 08/15/10 Event Aggregator
  • 8. Persistência de dados – Key-value store MongoDB, CouchDB e Cassandra; Nenhuma delas tem noção da localização dos dados; Não é bom para OLAP (On-line A nalytical Processing); Riak e Hadoop: Riak oferece funcionalidades de MapReduce ; A função de Map é executada no vnode(s) responsável pela chave; 08/15/10 Event Aggregator
  • 9. Persistência de dados – Key-value store Estrutura 08/15/10 Event Aggregator <Bucket Name> <key> <value> <key> <value> ... <Bucket Name> <key> <value> <key> <value> ...
  • 10. Arquitectura do Sistema 08/15/10 Event Aggregator
  • 11. Arquitectura do Sistema Brokers do RabbitMQ a correr em modo cluster; Nodos da cloud do sistema são elementos da key-value store distibuída, Riak; Um conjunto de clientes do sistema para subscrever, desubscrever e processar eventos agregados; Cada cliente deverá conter uma fila única no RabbitMQ; Existe uma fila do sistema, que os broker escutam concurrentemente, para processar subscrições e fim de subscrições; Cada mensagem publicada é enviada para o cluster de RabbitMQ e guardada no Riak. 08/15/10 Event Aggregator
  • 12. Organisação Broker RabbitMQ Broker RabbitMQ Exchange:Clientes Filas de clientes Fila do Sistema 08/15/10 Event Aggregator
  • 13. Processo de Agregação de eventos Cliente subscreve um evento agregado; Um dos agregadores recebe o pedido; Verifica se o pedido já está a ser processado para algum cliente; Caso exista: junta a subscrição à sua fila de cliente; Caso não exista: cria um alarme no broker com a frequência do evento; Quando o alarme é acionado, verifica a lista de eventos que podem ser processados. Efectua a sua agregação, publicando os eventos no Riak e nos brokers do RabitMQ. 08/15/10 Event Aggregator
  • 14. Modelo de dados XRaw &quot;AAAA/MM/DD/clientIdCounter&quot; : &quot;Valor” XDailyMaximum &quot;AAAA/MM/DD&quot; : &quot;MáximoDiário” XDailyMinimum &quot;AAAA/MM/DD&quot; : &quot;MínimoDiário” XDailyAverage &quot;AAAA/MM/DD&quot; : &quot;MédiaDiária” Xmonthly &quot;AAAA/MM/Maximum&quot; : &quot;Valor&quot; 08/15/10 Event Aggregator
  • 15. Eventos Existem dois tipos de eventos - simples e agregados Eventos simples, são compostos por: nome da acção | data | tipo | modo | valor Evento agregado: calculado a partir de vários eventos simples tipos disponibilizados: máximo, mínimo , média, contar e somar Granularidade: dia Podem ser pedidos através de intervalos 08/15/10 Event Aggregator
  • 16. Estado actual Subscrição simples Publicação e difusão simples Unsubscribe simples Protótipo de um cliente Prototipo de um agregador Cálculo de estatísticas na key-store 08/15/10 Event Aggregator
  • 17. Conclusões e trabalho futuro Nesta fase inicial, foi direccionado o esforço para a recolha de requisitos e análise das ferramentas disponíveis. Quem atende o pedido inicial do cliente? Qual a identidade do serviço? Tolerância a faltas: No caso de um broker falhar, os restantes seguram as mensagens em cache até este acordar, ou descartam? 08/15/10 Event Aggregator

Notas do Editor

  • #4: Como exemplo, se tivermos transações em bolsa, podemos estar interessados em saber qual o volume numa dada acção ou conjunto de acções num determinado intervalo temporal (e.g. hora, dia, mês). Para evitar a enorme duplicação de esforço caso cada cliente final tenha que fazer os cálculos, é interessante esta informação ser computada de uma forma distribuída e disponibilizada pelo sistema.
  • #9: Hadoop não tem suporte pra Mac OS  MongoDB - replicação no estilo Master/Slave CouchDB - é necessária uma cópia total ou parcial em cada nó que a use Cassandra - Não tem noção da localização dos nodos, o que traria problemas de latência nos cálculos
  • #15: clientIdCounter é controlado pelo agregador Além destes há um bucket de controlo para usernames e passes replicado por varios nós (default=3)
  • #16: ou entao o maximo do dia X ao dia Y tipo -&gt; nenhum, diario, mensal e anual modo -&gt; o tipo de agregação (maximo, minimo, media, …)