View
1.085
Download
3
Category
Preview:
Citation preview
Apache Camel, Twitter e Enterprise Integration Patterns
@brunoborges
05/07/2012
#TDC2012
Agenda
O que o Camel (resumo)
Enterprise Integration Patterns
Scala DSL
Camel TwitterDemo
Camel CDIDemo
O que ?Framework de IntegraoImplementao de EIPs
Por que precisamos de Integrao?
Por que to difcil?
Arquiteturas de Mensagens Assncronas
Como os padres podem ajudar?
EIP ?!?!
Aplicacoes isoladasUsuarios querem acesso a todas as funcoes e dados. Nao importa onde estejam. Requer aplicacoes integradas.Nao existe receita de bolo para integrar aplicacoes, nem a solucao ideal. Se a arquitetura escolhida foi boa ou nao, s com o tempo pra saber.Solucoes de fornecedores sao metodologias e praticas voltadas a produtos.Arquiteturas de mensagens assincronas mostram ser a melhor opcao por desacoplar diferentes sistemas.Padroes de integracao sao voltados a problemas especificos de design. Criados a partir de solucoes que se repetiram e mostraram ter resultado positivo
Apache Camel: resumo
EndpointsConsumers
Producers
Processors
Apache Camel
MQ AMQ BFiltrar Mensagens
Apache Camel
MQ AMQ BFiltrar MensagensFrom MQ AFiltrarTo MQ B
Apache Camel
MQ AMQ BFiltrar
Mensagensfrom(mqA)filter()to(mqB)
Scala DSL
"direct:a" when(_.in == "") to("direct:b")
"direct:b" ==> { when(_.in == "") { to ("mock:c") } otherwise { to ("mock:e") } to ("mock:d")}
Apache Camel
Enterprise Integration Patterns
Roteamento de Mensagens
DSLs: java, xml, scala
Endpoints
URIs
Predicados e Expresses
Uma penca de componentesJMS, HTTP, MINA, JDBC, FTP, WebService, EJB, Hibernate/JPA, IRC, JCR, AS/400, LDAP, Mail, Nagios, POP, Impressoras, Quartz, Restlet, RMI, RSS, Scalate, XMPP... (como falei: uma penca)
Integrado com Spring
Java Embedded, OSGi ServiceMix, JBoss ESB
Apache Camel
Muito
mais padres
www.eaipatterns.com
camel.apache.org
Camel Twitter
FeaturesEnviar e ler DMs
Tuitar (bvio!)
Pesquisar REST ou Streaming
TimelineHome
Mentions
Public
Retweets for me
User timeline
* a partir da verso 2.10.0
Camel Twitter
"jms:queue:tweetingQueue0" to """twitter://timeline/user? consumerKey=[s]& consumerSecret=[s]& accessToken=[s]& accessTokenSecret=[s]"""
"jms:queue:tweetingQueue1" to "twitter://timeline/user "twitter://timeline/home?type=polling&delay=5" ==> { to("log:homeTweets") }"direct:doSearch" to "twitter://search?keywords=TDC2012"
"direct:doSearch" ==> { setHeader("CamelTwitterKeywords", "TDC2012") to("twitter://search")}Criar um Status Update
Ler uma Timeline
Fazer buscas fixas ou dinmicas
Camel CDI
* a partir da verso 2.10.0
Java EE 6
Camel CDI
FeaturesPermite usar o contexto CDI para injeo de dependncias
No mais necessrio usar o Spring (exceto se quiser usar o XML DSL)
No mais necessrio usar um mdulo Web (WAR) para inicializar o contexto do Camel (independente se usa ou no, Spring)
Inicializao com @Singleton @Startup
Ainda em beta, apesar de estar no 2.10.0
Obrigado
Bruno Borgesbruno.borges@oracle.com
brunoborges.com@brunoborges
We Develop!
InovaoProcesso gilTecnologiaInternetComputao AvanadaRede SociaisCloud Computingwww.wdev.com.br
Mobilidade
7/5/12
Click to edit the title text format
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline Level
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline Level
Recommended