Apache Camel

2,100 views

Published on

Apresentação de Tiago Salvado - 11º encontro PT.JUG.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,100
On SlideShare
0
From Embeds
0
Number of Embeds
1,156
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Apache Camel

  1. 1. PTJUG – Apache Camel 11º Encontro – 3 Julho de 2013
  2. 2. Sobre mim  Tiago Salvado  Programador (Java, Informix, Oracle) – MoreData  www.moredata.pt  E-mail  tiagosalvado10@gmail.com  Linkedin  http://pt.linkedin.com/in/tiagofpsalvado/
  3. 3. Apache Camel  Conceitos  Camel & Java  Demonstração  Referências
  4. 4. Conceitos - O que é?  Framework open-source para integração de sistemas  A integração é feita através da construção de rotas, definindo a origem das mensagens, o seu processamento e o seu destino  Oferece abstracção dos sistemas a integrar bem como dos tipos e formatos das mensagens transaccionadas  Suporta mais de 150 protocolos e tipos de dados
  5. 5. Conceitos – Geral
  6. 6. Conceitos – Rota  Uma rota permite mover uma mensagem entre uma origem e um destino, efectuando processamento intermédio, de acordo com a sua configuração  A origem e destino da rota são designados endpoints  A configuração de uma rota é feita utilizando:  Enterprise Integration Patterns  Domain-specific language
  7. 7. Conceitos - Endpoint  Abstracção utilizada pelo Camel para aceder aos pontos dos quais irá receber e enviar mensagens  Diversos protocolos suportados  file, sftp, smtp, gmail, jms, http...  Configuração através de URIs
  8. 8. Conceitos – Enterprise Integration Patterns  Os EIP's disponibilizam  Soluções para problemas existentes na área da integração  Indicam a melhor solução quando há mais do que uma  Conjunto de boas práticas  Leitura  http://camel.apache.org/enterprise-integration-patterns.html  http://www.enterpriseintegrationpatterns.com  http://www.eaipatterns.com/toc.html
  9. 9. Conceitos – Enterprise Integration Patterns
  10. 10. Conceitos – Domain-specific language  O Camel permite a criação de rotas disponibilizando DSLs para várias linguagens de programação como o Java, Scala, Groovy mas também em XML (Spring DSL)  Fluent Java API  Java DSL  from("ftp://md.pt/X?username=a&password=b")”).to(”file:data/orders”)  from(”file:inbox”) .split(body(String.class).tokenize(”n”)).to(”jms:queue:new.orders”)
  11. 11. Camel & Java – Camel Context  Responsável por gerir todos os componentes associados ao Camel  Interface  org.apache.camel.CamelContext
  12. 12. Camel & Java - Message  Entidades utilizadas para comunicar entre sistemas  Interface  org.apache.camel.Message
  13. 13. Camel & Java - Exchange  Contem a mensagem e o seu estado durante o ”percurso” efectuado pela rota  Este objecto está disponível em cada fase de processamento da rota, permitindo aceder a alterações ou decisões efectuadas anteriormente  Interface  org.apache.camel.Exchange
  14. 14. Camel & Java - Exchange
  15. 15. Camel & Java - Route  Classes abstracta para criação de rotas  org.apache.camel.builder.RouteBuilder  Método a implementar que conterá a configuração da rota  public abstract void configure() throws Exception;
  16. 16. Camel & Java - Processor  Permite efectuar processamento intermédio sob a mensagem transaccionada  Interface  org.apache.camel.Processor  Método a implementar  void process(Exchange exchange) throws Exception;
  17. 17. Demonstração  JDK  Eclipse Maven  camel-archetype-java  Apache Camel  Aplicação simples que espera ficheiros XML correspondentes a viagens e que filtra e organiza as mesmas por destino
  18. 18. Referências  Livro  Camel in Action (CLAUS IBSEN, JONATHAN ANSTEY)  WebSite  http://camel.apache.org

×