O documento apresenta conceitos sobre o framework Apache Camel, incluindo uma breve introdução sobre o orador, definição de Camel como um framework para integração de sistemas através da construção de rotas, e descrição dos principais componentes como rotas, endpoints e padrões de integração empresarial. O documento também inclui uma demonstração prática de uma aplicação Camel.
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
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. 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. 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
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. Camel & Java – Camel Context
Responsável por gerir todos os componentes associados ao
Camel
Interface
org.apache.camel.CamelContext
12. Camel & Java - Message
Entidades utilizadas para comunicar entre sistemas
Interface
org.apache.camel.Message
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
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. 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. 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