Twitter, Apache Camel e Enterprise Integration Patterns
Upcoming SlideShare
Loading in...5
×
 

Twitter, Apache Camel e Enterprise Integration Patterns

on

  • 802 views

#TDC2012 edição Floripa

#TDC2012 edição Floripa

Statistics

Views

Total Views
802
Views on SlideShare
800
Embed Views
2

Actions

Likes
1
Downloads
7
Comments
0

2 Embeds 2

http://www.linkedin.com 1
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Twitter, Apache Camel e Enterprise Integration Patterns Twitter, Apache Camel e Enterprise Integration Patterns Presentation Transcript

  • Apache Camel, Twitter eEnterprise Integration Patterns @brunoborge 05/07/201 #TDC201
  • Agenda ● O que é o Camel (resumo) ● Enterprise Integration Patterns ● Scala DSL ● Camel Twitter ● Idéia ● Tentativa #1 ● Reboot ● Demo ● Camel CDI
  • O que é? Framework de Integração Implementação de EIPs View slide
  • EIP ?!?! ● Por que precisamos de Integração? ● Por que é tão difícil? ● Arquiteturas de Mensagens Assíncronas ● Como os padrões podem ajudar? View slide
  • Apache Camel: resumão ● Endpoints ● Consumers ● Producers ● Processors
  • Apache Camel Filtrar Mensagens MQ B MQ A
  • Apache Camel Filtrar Mensagens MQ B MQ A From MQ A Filtrar To MQ B
  • Apache Camel Filtrar Mensagens MQ B MQ A from(mqA) filter() to(mqB)
  • Scala DSL "direct:a" when(_.in == "<hello/>") to("direct:b") "direct:b" ==> { when(_.in == "<hallo/>") { 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 Expressões ● Uma penca de componentes ● JMS, 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)
  • Apache Camel ● Muito mais padrõeswww.eaipatterns.comcamel.apache.org
  • Camel Twitter: a ideia inicial– Março 2009 http://blog.brunoborges.com.br/2009/03/leverage-eip-with-apache-camel-and.html
  • Camel Twitter: proposto para a ASF em2009 ● CAMEL-1520 ● https://issues.apache.org/jira/browse/CAMEL-1520 ● Apresentei no BarCamp da ApacheCon NA 2009 ● Conversas com committers do Camel na ApacheCon, me induziram a tentar fazer um componente mais abrangente p/ outras redes sociais ● Desafio: mesmo formato Endpoint URI e features de diferentes Redes Sociais (“social data providers”). Oferecer Facebook, Twitter, LinkedIn, Foursquare, e (o já morto) Google Buzz
  • Camel Social: tentativa mal sucedida ● Iniciado en 2010 ● Objetivo ● O objetivo do componente Camel Social era obter dados sociais de diferentes redes de uma forma padronizada para serem processados através de uma rota do Apache Camel ● Problema ● Dados Sociais são difíceis de serem padronizados ● Apesar de o Spring Social fazer um bom trabalho, não é uma API só para todas as redes ● http://code.google.com/p/camel-social ● Died in 2010
  • Camel Twitter: obrigado GitHub! ● Maio 2011 – Projeto reiniciado no GitHub ● http://github.com/brunoborges/camel-twitter ● Colaboração do Brett Meyer, o cara que finalizou o serviço ● @brettemeyer ● Foco somente no Twitter ● Brett adicionou suporte também para a API de Streaming do Twitter ● E muito mais
  • Twitter
  • Twitter
  • Twitter
  • Camel Twitter ● Features ● Enviar e ler DMs ● Tuitar (óbvio!) ● Pesquisar ● REST ou Streaming ● Timeline ● Home * a partir da versão 2.10.0 ● Mentions ● Public ● Retweets for me ● User timeline
  • Camel Twitter "jms:queue:tweetingQueue0" to """twitter://timeline/user?Criar um consumerKey=[s]& consumerSecret=[s]&Status Update accessToken=[s]& accessTokenSecret=[s]""" "jms:queue:tweetingQueue1" to "twitter://timeline/user”Ler uma "twitter://timeline/home?type=polling&delay=5" ==> {Timeline to("log:homeTweets") } "direct:doSearch" to "twitter://search?keywords=TDC2012"Fazer buscas "direct:doSearch" ==> {fixas ou setHeader("CamelTwitterKeywords", "TDC2012")dinâmicas to("twitter://search") }
  • Camel CDI Java EE 6 * a partir da versão 2.10.0
  • Camel CDI ● Features ● Permite usar o contexto CDI para injeção de dependências ● Não é mais necessário usar o Spring (exceto se quiser usar o XML DSL) ● Não é mais necessário usar um módulo Web (WAR) para inicializar o contexto do Camel (independente se usa ou não, Spring) ● Inicialização com @Singleton @Startup ● Ainda em “beta”, apesar de estar no 2.10.0
  • Obrigado Bruno Borges bruno.borges@oracle.com brunoborges.com @brunoborges