Divirta-se com Apache Camel, Twitter e Enterprise Integration Patterns

download Divirta-se com Apache Camel, Twitter e Enterprise Integration Patterns

If you can't read please download the document

Transcript of Divirta-se com Apache Camel, Twitter e Enterprise Integration Patterns

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

Twitter

Twitter

Twitter

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 [email protected]
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