Integração de Sistemas
utilizando
Apache Camel
Felipe Archangelo
Pedro Oliveira
Gabriel Nagib
P&D E-Commerce (Gateway)
Ago...
 Introdução à Integração de Sistemas
 Projeto Rotterdam
 Introdução ao Apache Camel
 Apache Camel na Prática
 Cases R...
Arquitetura Monolítica
Introdução à Integração de Sistemas
3
Sistema
Introdução à Integração de Sistemas
4
Arquitetura Monolítica
Introdução à Integração de Sistemas
5
Arquitetura Composta (Componentizada)
Introdução à Integração de Sistemas
6
Soluções de Integração
1. Banco de Dados Compartilhado
 Muito comum no SAP – inclus...
Introdução à Integração de Sistemas
7
Soluções de Integração
3. RPC – Remote Procedure Calls
 RMI
 JNI
 WS
 Synch
4. M...
Introdução à Integração de Sistemas
8
Enterprise Application Integration (EAI)
 Interoperabilidade
 Integração de dados
...
Introdução à Integração de Sistemas
9
Evolução da Programação  Design Patterns
 Creational (Factory, Builder, etc)
 Str...
Projeto Rotterdam – Fase I
10
Motivação
Meios
Projeto Rotterdam – Fase I
11
DEPOIS
ANTES
Projeto Rotterdam – Fase I
12
DEPOIS
ANTES
(escopo PCI)
Projeto Rotterdam – Fase I
13
DEPOIS
ANTES
(mesma interface de integração com o cliente)
Projeto Rotterdam – Fase I
14
Desafio Adicional: diferentes tecnologias de
publicação de Web Services
utilizadas pelo BPag
Projeto Rotterdam – Fase I
15
Requisitos Funcionais
 PCI-compliance
 Roteamento de requisições HTTP
 Transformação de r...
16
Concise
Application
Message
Exchange
Language
Introdução ao Apache Camel
17
Concise
Application
Message
Exchange
Language
Introdução ao Apache Camel
O que é?
 Framework Open Source de Integração...
Introdução ao Apache Camel
18
Figure 1: High level view of Camel's architecture (from Camel in Action).
Arquitetura do Fra...
19
A Camel can travel for
great distances without
water; similarly a Camel
does not require bucket
loads of XML as you can...
Apache Camel na Prática
20
Endpoints
 Análogos ao padrão Message Endpoint
 Podem ser Producer ou Consumer
 Normalmente ...
21
Roteamento e Mediação usando Apache Camel
CamelContext
 Contém as configurações de Rotas e Definição de Endpoints
 En...
Componentes Suportados?
.
“A Camel can carry 4 times the load of other beasts of burden”
Apache Camel na Prática
22
http:/...
Case #1: Transformação de requisições HTTP
(Rotterdam)
23
Case #1: Transformação de requisições HTTP
(Rotterdam)
24
Utilização do EAI Pattern “Message Transformer” – Content Enrich...
Case #2: Roteamento de requisições HTTP
(Rotterdam)
25
Emaranhado de integrações HTTP
Como garantir fail-over em todo o fl...
Case #2: Roteamento de requisições HTTP
(Rotterdam)
26
Utilização do EAI Pattern “Message Router”
(egw-router)
Quem já está usando – Jacareí
Consumo de arquivo
27
• Processamento de arquivo EDI
• Cada registro do arquivo é transforma...
Quem já está usando – Jacareí
Job schedulado
28
• Job roda 2x por dia
• Diversos registros do banco de dados são transform...
Dúvidas ?
29
Referências e material de apoio
30
 Apache Camel
http://camel.apache.org/
 Enterprise Application Patterns
http://www.ea...
Próximos SlideShares
Carregando em…5
×

Integração de Sistemas utilizando Apache Camel

443 visualizações

Publicada em

Apresentação na academia UOL sobre Integração de Sistemas utilizando Apache Camel.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
443
No SlideShare
0
A partir de incorporações
0
Número de incorporações
15
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Integração de Sistemas utilizando Apache Camel

  1. 1. Integração de Sistemas utilizando Apache Camel Felipe Archangelo Pedro Oliveira Gabriel Nagib P&D E-Commerce (Gateway) Agosto/2013
  2. 2.  Introdução à Integração de Sistemas  Projeto Rotterdam  Introdução ao Apache Camel  Apache Camel na Prática  Cases Rotterdam  Quem já está usando Agenda 2
  3. 3. Arquitetura Monolítica Introdução à Integração de Sistemas 3 Sistema
  4. 4. Introdução à Integração de Sistemas 4 Arquitetura Monolítica
  5. 5. Introdução à Integração de Sistemas 5 Arquitetura Composta (Componentizada)
  6. 6. Introdução à Integração de Sistemas 6 Soluções de Integração 1. Banco de Dados Compartilhado  Muito comum no SAP – inclusive no UOL  Asynch 2. Transferência de Arquivos  FTP, NFS  EDI, TXT posicional, XML  Instituições bancárias/Adquirentes  Asynch
  7. 7. Introdução à Integração de Sistemas 7 Soluções de Integração 3. RPC – Remote Procedure Calls  RMI  JNI  WS  Synch 4. Messageria  JMS  Asynch
  8. 8. Introdução à Integração de Sistemas 8 Enterprise Application Integration (EAI)  Interoperabilidade  Integração de dados  Desacoplamento, estabilidade, escalabilidade  Tolerância a falhas  Eliminação de gargalos
  9. 9. Introdução à Integração de Sistemas 9 Evolução da Programação  Design Patterns  Creational (Factory, Builder, etc)  Structural (Adapter, Facade, etc)  Behavorial (Strategy, Iterator, etc) Evolução da Integração  EAI Patterns  Endpoint (Gateway, Dispatcher, Consumer, etc)  Message (Command Msg, Event Msg, etc)  Channel (Point-to-Point, Publish-Subscribe, etc)  Routing (Filter, Splitter, Aggregator, etc)  Transformation (Content-Enricher, Normalizer, etc)
  10. 10. Projeto Rotterdam – Fase I 10 Motivação Meios
  11. 11. Projeto Rotterdam – Fase I 11 DEPOIS ANTES
  12. 12. Projeto Rotterdam – Fase I 12 DEPOIS ANTES (escopo PCI)
  13. 13. Projeto Rotterdam – Fase I 13 DEPOIS ANTES (mesma interface de integração com o cliente)
  14. 14. Projeto Rotterdam – Fase I 14 Desafio Adicional: diferentes tecnologias de publicação de Web Services utilizadas pelo BPag
  15. 15. Projeto Rotterdam – Fase I 15 Requisitos Funcionais  PCI-compliance  Roteamento de requisições HTTP  Transformação de requisições HTTP  Transparente para o usuário (manter interfaces de entrada)  Fail-over de transações  Suporte a múltiplas tecnologias de publicação de WebServices (Axis, CXF, Spring-WS, etc)  Integração com Jacareí e DF Requisitos Não-Funcionais  Suporte a carga (pelo menos 3 transações/segundo)  Mínimo esforço de mudança possível
  16. 16. 16 Concise Application Message Exchange Language Introdução ao Apache Camel
  17. 17. 17 Concise Application Message Exchange Language Introdução ao Apache Camel O que é?  Framework Open Source de Integração Baseado em EAI Patterns  API Única Independente do Componente (CXF, ActiveMQ, MINA)  Suporte a Vários Tipos de Transporte (HTTP, JMS, NIO) Por que optamos pelo uso do Camel?  Java Based Fluent API (Menos Config. XML)  Integração com Spring sem Remendos  Facilidade para Lidar com Payloads Diferentes  Suporte a Testes Unitários
  18. 18. Introdução ao Apache Camel 18 Figure 1: High level view of Camel's architecture (from Camel in Action). Arquitetura do Framework
  19. 19. 19 A Camel can travel for great distances without water; similarly a Camel does not require bucket loads of XML as you can use a pure Java DSL Apache Camel na Prática Routes  RouteBuilder - Classes utilizada para criação de rotas utilizando a DSL  SpringRouteBuilder - Integração com Spring  Invocadas pelo CamelContext durante o load da aplicação
  20. 20. Apache Camel na Prática 20 Endpoints  Análogos ao padrão Message Endpoint  Podem ser Producer ou Consumer  Normalmente criados pelos componentes do Camel  Referenciados com Camel DSL via URIs
  21. 21. 21 Roteamento e Mediação usando Apache Camel CamelContext  Contém as configurações de Rotas e Definição de Endpoints  Encapsula o Registry (uso de Spring facultativo )  Mesmo contexto do Spring pode ter diversos CamelContexts  O “context-scan” do Camel funciona como o “component-scan” do Spring
  22. 22. Componentes Suportados? . “A Camel can carry 4 times the load of other beasts of burden” Apache Camel na Prática 22 http://camel.apache.org/components.html
  23. 23. Case #1: Transformação de requisições HTTP (Rotterdam) 23
  24. 24. Case #1: Transformação de requisições HTTP (Rotterdam) 24 Utilização do EAI Pattern “Message Transformer” – Content Enricher (egw-proxy-pci-in)
  25. 25. Case #2: Roteamento de requisições HTTP (Rotterdam) 25 Emaranhado de integrações HTTP Como garantir fail-over em todo o fluxo?
  26. 26. Case #2: Roteamento de requisições HTTP (Rotterdam) 26 Utilização do EAI Pattern “Message Router” (egw-router)
  27. 27. Quem já está usando – Jacareí Consumo de arquivo 27 • Processamento de arquivo EDI • Cada registro do arquivo é transformado em uma mensagem JMS
  28. 28. Quem já está usando – Jacareí Job schedulado 28 • Job roda 2x por dia • Diversos registros do banco de dados são transformados em um arquivo de remessa, que é transferido para a instituição financeira
  29. 29. Dúvidas ? 29
  30. 30. Referências e material de apoio 30  Apache Camel http://camel.apache.org/  Enterprise Application Patterns http://www.eaipatterns.com/ http://books.google.com.br/books/about/Enterprise_Integration_Patterns.html?id=qqB7nrr na_sC&redir_esc=y  Camel Dev – Avoiding Anti-Patterns http://makingdevsimple.blogspot.com.br/2012/08/apache-camel-antipatterns.html

×