Integração de Sistemas utilizando Apache Camel

469 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
469
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

×