Download - Apache Camel
![Page 1: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/1.jpg)
PTJUG – Apache Camel
11º Encontro – 3 Julho de 2013
![Page 2: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/2.jpg)
Sobre mim
Tiago Salvado
Programador (Java, Informix, Oracle) – MoreData www.moredata.pt
E-mail [email protected]
Linkedin http://pt.linkedin.com/in/tiagofpsalvado/
![Page 3: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/3.jpg)
Apache Camel
Conceitos Camel & Java Demonstração Referências
![Page 4: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/4.jpg)
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
![Page 5: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/5.jpg)
Conceitos – Geral
![Page 6: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/6.jpg)
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
![Page 7: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/7.jpg)
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
![Page 8: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/8.jpg)
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
![Page 9: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/9.jpg)
Conceitos – Enterprise Integration Patterns
![Page 10: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/10.jpg)
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”)
![Page 11: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/11.jpg)
Camel & Java – Camel Context
Responsável por gerir todos os componentes associados ao Camel
Interface org.apache.camel.CamelContext
![Page 12: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/12.jpg)
Camel & Java - Message
Entidades utilizadas para comunicar entre sistemas
Interface org.apache.camel.Message
![Page 13: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/13.jpg)
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
![Page 14: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/14.jpg)
Camel & Java - Exchange
![Page 15: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/15.jpg)
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;
![Page 16: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/16.jpg)
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;
![Page 17: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/17.jpg)
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
![Page 18: Apache Camel](https://reader036.vdocuments.com.br/reader036/viewer/2022081821/55587435d8b42aaa7e8b531a/html5/thumbnails/18.jpg)
Referências
Livro Camel in Action (CLAUS IBSEN, JONATHAN ANSTEY)
WebSite http://camel.apache.org