apache camel

18
PTJUG – Apache Camel 11º Encontro – 3 Julho de 2013

Upload: ptjug

Post on 17-May-2015

1.644 views

Category:

Technology


2 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Apache Camel

PTJUG – Apache Camel

11º Encontro – 3 Julho de 2013

Page 2: Apache Camel

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

Apache Camel

Conceitos Camel & Java Demonstração Referências

Page 4: Apache Camel

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

Conceitos – Geral

Page 6: Apache Camel

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

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

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

Conceitos – Enterprise Integration Patterns

Page 10: Apache Camel

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

Camel & Java – Camel Context

Responsável por gerir todos os componentes associados ao Camel

Interface org.apache.camel.CamelContext

Page 12: Apache Camel

Camel & Java - Message

Entidades utilizadas para comunicar entre sistemas

Interface org.apache.camel.Message

Page 13: Apache Camel

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

Camel & Java - Exchange

Page 15: Apache Camel

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

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

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

Referências

Livro Camel in Action (CLAUS IBSEN, JONATHAN ANSTEY)

WebSite http://camel.apache.org