3. Event-driven architecture
Mudança significativa de estado
●
minuto 49->50 !!
●
Alguns exemplos
●
mudança de temperatura de x->y
●
email que passa de recebido->apagado
●
bilhete que passa de disponível->vendido
●
4. Características de EDA
Os eventos são propagados
●
Os eventos são ”pontuais”
●
A comunicação é assíncrona
●
A granularidade dos eventos é baixa
●
Os eventos são processados
●
5. Importância de EDA
O produtor desconhece por completo o
●
consumidor
A ”informação de estado” é reduzida ou
●
mesmo completamente eliminada
Complementa SOA uma vez que os
●
serviços podem ser iniciados como
resposta a eventos
6. Message-oriented middleware
Infraestrutura que permite a troca de
●
mensagens em sistemas distríbuidos
Fornece ”queueing” e ”handling” de mensagens
●
Bastante usado em soluções de integração
●
entre sistemas díspares
Exemplos:
●
IBM MQSeries
●
TIBCO
●
ActiveMQ
●
Sapo-Broker :-)
●
8. Publish-Subscribe
Baseado em Tópicos
●
Produtores e Consumidores
●
O produtor desconhece os consumidores
●
As mensagens são entregues a todos os
●
subscritores
10. Vantagens de Pub-Sub
Ideal para publicar eventos de negócio
●
apenas os interessados recebem as mensagens
●
”Observer pattern” distríbuida
●
Promove ”Event Driven Architechture”
●
12. Point-to-Point
Baseado em Queues
●
Mensagens são enviadas para Queues
●
Entregues uma e apenas uma vez
●
Entregue apenas a um consumidor
●
Retenção de mensagens em Queue
●
Independência temporal
●
As mensagens são guardadas até serem consumidas
●
ou expiradas
14. Vantagens de P2P
Ideal para ”load-balancing” de
●
consumidores
Monitorizar Queues é fácil
●
Tamanho e ”throughput”
●
Re-entrega de mensagens
●
As falhas parciais são bem toleradas
●
por exemplo falhas devido a manutenção
●
16. Sapo-Broker
Rápido e altamente escalável
●
rede distribuída de ”brokers” que agem como um
●
só
Polivalente
●
Livrarias para C, PHP, Perl, Python e .NET
●
Fácil de usar
●
a configuração necessária é reduzida
●
Aberto
●
Código livre: GPL
●
17. Sapo-Broker: Juicy bits
Wildcard Subscriptions
●
”/foo/>”. Tudo o que está abaixo de ”foo”
●
”/foo/#/bar”. Match com ”/foo/x/bar” e ”/foo/y/bar”
●
Queues Virtuais
●
Queues que são populadas por tópicos
●
HTTP Endpoint
●
Mensagens com Prioridade
●
19. Se só se lembrarem de uma coisa!
Como é que eu vivia sem isto?!
20. Pesquisas de texto livre com Solr
”And Now for Something
Completely Different”
21. Lucene
<http://lucene.apache.org>
Livraria para pesquisa de texto livre com
●
elevada “performance”.
Foco: Indexação + Pesquisa de Documentos
●
“Documento” é apenas uma lista de tuplos nome+valor
●
Não fornece “crawlers” nem extracção de
●
texto
Análise de texto flexível (tokenizers +
●
token filters)
100% Java, sem dependências externas, sem
●
ficheiros de configuração
22. Solr
<http://lucene.apache.org/solr/>
Servidor de pesquisa baseado em Lucene
●
Interface XML/HTTP, JSON
●
Pesquisa facetada (contagem por categoria)
●
”Schema” flexível que permite definir campos
●
e tipos de dados
Hit Highlighting
●
Arquitectura extensível
●
Interface Web para administração
●
Java5, basta colocar um ficheiro WAR no
●
servidor
25. Eliminar documentos
Apagar por ID, mais eficiente
<delete>
<id>05591</id>
<id>32552</id>
</delete>
Apagar por Query
<delete>
<query>category:supervillain</query>
</delete>
26. Aplicar as alterações
<commit />
<optimize />
Todas as alterações visíveis apenas
●
depois de emitir <commit />
<optimize /> semelhante ao ”commit”
●
mas rearranja os ficheiros em disco
para permitir maior velocidade de
pesquisa
27. Sintaxe de pesquisa
carro vermelho
●
carro OR vermelho
●
por omissão o operador usado é o OR
●
+carro +vermelho -marca:ferrari
●
carro AND vermelho NOT marca:ferrari
●
tipo:desportivo^10 description:desportivo
●
description:”carro curvas”~100
●
28. Sintaxe de pesquisa (cont.)
releaseDate:[2000 TO 2007]
●
Pesquisa com wildcards: sup?r, su*r, super*
●
carro~
●
”Fuzzy search”: Distância de Levenshtein
●
Semelhança mínima: carro~0.7
●
*:*
●
30. Se só se lembrarem de uma coisa!
Rápido
●
Poderoso e configurável
●
Excelente relevância de resultados de
●
pesquisa
Produto com maturidade
●
Características semelhantes a produtos que
●
custam muito $$$
Comunidade fantástica
●
Programadores de Lucene, peritos em IR
●
Consultadoria á borla: soluções e
●
problemas são partilhados
31. Help me!
WWW
●
<http://trac.softwarelivre.sapo.pt/broker>
●
<http://lucene.apache.org/solr>
●
<http://wiki.apache.org/solr>
●
Luis Neves
●
email: <luis.neves@co.sapo.pt>
●
xmpp: <lfs_neves@sapo.pt>
●