Padrões de Integração de Sistemas

32h a 40h*

Descrição

Este curso explora os 65 padrões de integração de sistemas do catálogo EIP: Enterprise Integration Patterns: designing, building and deploying messaging solutions, de Hohpe/Woolf (2003). O catálogo é uma referência clássica de padrões, boas práticas e estratégias para integração de sistemas, e que é adotado como base dos principais produtos de integração do mercado, como o Apache Camel e o Mule ESB. Este curso apresenta todos os 65 padrões, e explora em maiores detalhes os 20 mais importantes, com demonstrações usando aplicações em Java JMS, Web Services SOAP JAX-WS e Apache Camel. Ao final de cada grupo de padrões são apresentados testes para revisão dos conceitos apresentados, e são propostos exercícios simples em Java que usam os padrões apresentados.

Os padrões são agrupados e apresentados em ordem crescente de complexidade e importância.

Ao final deste curso o aluno terá condições de:

  • identificar os principais padrões de integração, e saber em que grupo buscar uma solução para um determinado problema de integração
  • dentro de um dado grupo de padrões, selecionar quais poderiam ser usados como solução de um problema de integração
  • saber onde procurar no catálogo EIP, estratégias e detalhes de implementação de um dado padrão de integração
  • usar de forma eficiente uma ferramenta de integração de sistemas como o Mule ESB ou Apache Camel, que implementam os padrões EIP, para solucionar um problema de integração
  • analisar um sistema que necessita de integração e propor uma solução baseada em padrões de integração

Programa resumido

  1. Introdução
  2. Estilos de integração
  3. Preparação do ambiente
  4. Mensageria
  5. Comunicação
  6. Qualidade do serviço
  7. Terminais
  8. Requisição e resposta
  9. Arquiteturas e processamento de dados
  10. Monitoração
  11. Transformação
  12. Roteamento
  13. Processamento distribuído

Programa em detalhes

  1. Introdução
    1. Introdução a padrões de integração de sistemas
    2. Padrões de design
    3. Necessidade de integração
    4. Integração vs. Sistemas Distribuídos
    5. Comunicação síncrona e assíncrona
    6. Tecnologias de integração em Java: JMS, EJB, JAX-WS, JAX-RS
    7. Formatos de dados: XML, JSON
  2. Estilos de Integração
    1. Padrão 1: Transferência de arquivos
    2. Exemplos com java.io e java.net
    3. Padrão 2: Banco de dados compartilhado
    4. Exemplos com java.sql, javax.persistence
    5. Padrão 3: RPC
    6. Exemplos com java.rmi, javax.rmi e javax.ejb.
    7. Padrão 4: Mensageria
    8. Exemplos com java.nio
    9. Java Message Service (javax.jms)
    10. Camel, Mule e Spring Integration
  3. Preparação do ambiente
    1. Ferramentas para o Eclipse: STS e JBoss Tools
    2. Instalação e configuração do ActiveMQ
    3. Configuração do Maven
    4. Configuração do Camel
    5. Configuração do Spring Integration
  4. Mensageria
    1. Padrão 5: Mensagem
    2. Padrão 6: Canal
    3. Padrão 7: Terminal
  5. Comunicação
    1. Padrão 8: Canal Ponto-a-Ponto
    2. Padrão 9: Consumidor de Sondagem (Polling Consumer)
    3. Padrão 10: Consumidores Concorrentes (Competing Consumers)
    4. Padrão 11: Canal de Difusão (Publish-Subscribe Channel)
    5. Padrão 12: Consumidor Guiado por Evento (Event-driven Consumer)
    6. Padrão 13: Mensagem-evento
    7. Padrão 14: Despachante de Mensagens
    8. Padrão 15: Consumidor Seletivo
  6. Qualidade do serviço
    1. Padrão 16: Prazo de Validade
    2. Padrão 17: Dead-Letter Queue (DLQ)
    3. Padrão 18: Escuta (Wiretap) e logging
    4. Padrão 19: Entrega Garantida
    5. Padrão 20: Assinante Durável
  7. Terminais
    1. Padrão 21: Adaptador de Canal
    2. Padrão 22: Ponte de Mensageria
    3. Padrão 23: Gateway
    4. Padrão 24: Ativador de Serviço
    5. Padrão 25: Mapeador
  8. Requisição e resposta
    1. Padrão 26: Endereço de Resposta
    2. Padrão 27: Correlation ID
    3. Padrão 28: Mensagem-comando
    4. Padrão 29: Mensagem-documento
    5. Padrão 30: Request-Teply
    6. Padrão 31: Cliente Transacional
  9. Arquiteturas e processamento de dados
    1. Padrão 32: Dutos e Filtros
    2. Padrão 33: Message Bus
    3. Padrão 34: Message Broker
    4. Java 8 streams (java.util.stream)*
  10. Monitoração
    1. Padrão 35: Mensagem-Teste
    2. Padrão 36: Purificador de Canal (Purger)
    3. Padrão 37: Proxy
    4. Padrão 38: Histórico (Message History)
    5. Padrão 39: Repositório (Message Store)
  11. Transformação
    1. Padrão 40: Tradutor
    2. Padrão 41: Envelope
    3. Padrão 42: Filtro de Conteúdo
    4. Padrão 43: Enriquecedor de Conteúdo (Content Enricher)
    5. Padrão 44: Recibo (Claim Check)
    6. Padrão 45: Canonical Data Model
    7. Transformação de XML (DOM, SAX, XPath e XSLT)*
    8. Transformações Map-Reduce*
  12. Roteamento
    1. Padrão 46: Roteador
    2. Padrão 47: Filtro de Conteúdo (Content Filter)
    3. Padrão 48: Indicador de Formato
    4. Padrão 49: Content-Based Router (CBR)
    5. Padrão 50: Datatype Channel
    6. Padrão 51: Invalid Message Channel
    7. Padrão 52: Normalizer
    8. Padrão 53: Roteador Dinâmico
    9. Padrão 54: Desvio (Detour)
    10. Padrão 55: Lista de Receptores (Recipient List)
    11. Padrão 56: Lista de Circulação (Routing Slip)
    12. Padrão 57: Barramento de Controle (Control Bus)
    13. Padrão 58: Process Manager
  13. Processamento distribuído
    1. Padrão 59: Divisor (Splitter)
    2. Padrão 60: Agregador
    3. Padrão 61: Sequencia de Mensagens
    4. Padrão 62: Resequenciador
    5. Padrão 63: Receptor Idempotente
    6. Padrão 64: Processador de Mensagens Compostas
    7. Padrão 65: Espalha-Recolhe (Scatter-Gather)