GoConqr has a new look! Let us know what you think.

Mind map

Integração entre sistemas

Felipe da Cunha Portuguese

Mapa mental sobre Integração entre sistemas: abordagens de integração, APIs Restful e frameworks

Mapa mental: Integração entre sistemas

Map content

Integração entre sistemas

  1. em ambientes corporativos, aplicações raramente vivem isoladas

  2. aplicações que se integram a outras, fazem via rede, e portanto devem lidar com desafios como:

    • redes não são totalmente confiáveis
    • redes são lentas
    • nem sempre duas aplicações que precisam ser integradas utilizam a mesma tecnologia
    • mudanças nas aplicações são inevitáveis (e constantes)
  3. Abordagens para integração de sistemas

    • Aplicações podem se integrar de quatro maneiras
      • Transferências de arquivos
        • Uma aplicação gera um arquivo e transfere uma cópia desse arquivo para outra aplicação
        • Ex: sistemas bancários ainda utilizam integração por troca de arquivo
        • Vantagens: simples de implementar, tecnologias distintas podem ser utilizadas nas duas aplicações envolvidas
        • Desvantagens: o formato de arquivo deve ser acordado e implementado nas duas aplicações, acontece em lotes e janelas em horários especificos, não de forma online, tratamentos de erros são difíceis e demorados
      • Banco de dados
        • Uma aplicação modifica dados em um banco de dados que é acessado pela outra aplicação
        • casos de uso: sistemas de um mesmo fornecedor
        • vantagens: dispensa a etapa intermediária de geração e transferência de arquivos
        • desvantagens: por utilizar um mesmo banco, a aplicação integrada pode impactar na outra; necessário lidar com deadlock
      • Invocação remota de funcionalidade (RPC)
        • Uma aplicação expõe uma funcionalidade para ser acessada remotamente por outra aplicação
        • Ex: apps para celular normalmente acessam dados via chamadas RestAPI
        • vantagens: integração online; tecnologias distintas podem ser utilizadas nas duas aplicações envolvidas
        • desvantagens: necessita de cuidados especiais com a segurança
      • Mensageria
        • Uma aplicação publica uma mensagem em um canal, e essa é consumida por outra aplicação
        • Ex: o sistema bancário de TED utiliza integrações via mensageria
        • vantagens: tecnologias distintas podem ser utilizadas nas duas aplicações envolvidas; integrações assíncronas são mais eficientes; não exigem o bloqueio do produtor até o consumidor por uma resposta
        • desvantagens: desenvolver aplicações com integração assíncrona requer novos desafios técnicos
  4. Tipos de Integração via Invocação Remota

    • SOAP (Simple Object Access Protocol, em português Protocolo Simples de Acesso a Objetos)
    • Java RMI / EJB Remoto
    • API Rest - Representational state transfer
    • API GraphQL
    • RPC / gRPC
  5. O que é API Restful?

    • API - Application Programming Interface
    • API Rest - Representational state transfer
    • Até o meio de 2021, a Akamai afirma que 83% do tráfego da internet é composto de chamadas à APIs
      • Recursos e URIs
        • Recursos
        • Identificando recursos na URI
        • Estrutura de uma URI: protocolo://dominio/versão/recurso/{id do recurso}
        • Exemplos de URIs: http://api.com/v1/clientes/ (URI que identifica todos os clientes)
        • http://api.com/v1/clientes/2566516516 (URI que identifica um cliente especifico)
          • Métodos HTTP
            • GET, POST, PUT, PATCH, DELETE
            • Crud - Create (POST), Read (GET), UPDATE e DELETE
            • Códigos de Retorno
              • 2xx - Classe 200 (sucesso)
              • 4xx - Classe 400 (erro na requisição)
              • 5xx - Classe 500 (erro no servidor)
                • Cabeçalhos HTTP
                  • Cabeçalhos de requisição. Ex: Accept: application/json
                  • Cabeçalhos de resposta. Ex: Content-type: application/json
                  • Parâmetros de Consulta
                    • Parâmetros de consulta. Ex: http://api.com/v1/clientes?nome=Joao&pagina=1
                    • Relações com sub-recursos. Ex: http://api.com/v1/pedidos/1254/?produto=sabonete
                    • Formato JSON
                      • Json é uma sigla para Javascript Object Notation
                      • simples de escrever e interpretar, inclusive por humanos
                      • utiliza pares de nomes (chave) e valor para os campos
                      • os campos podem ser do tipos string, número, bool (true/false), array ou object
                      • strings, incluindo o nome de um campo, são delimitadas por aspas
                      • arrays (listas) de campos do mesmo tipo são delimitadas por colchetes
                      • objetos são delimitados por chaves
                      • não permite comentários
                      • Open API Specification
                        • OAS - é uma especificação para descrever APIs Restful independente da tecnologia utilizada para criar o API
                        • utiliza um arquivo no formato YAML para descrever todos os detalhes de um conjunto de APIs
                        • há ferramentas para gerar a documentação dos APIs a partir da especificação OAS
                        • ver https://swagger.io/ para um editor de arquivos
                        • Formato YAML
                          • Yaml é uma sigla para YAML Ain't Markup Language
                          • corresponde ao JSON, mas ainda mais simples
                          • a hierarquia dos campos é indicada pela indentação
                          • um item de mapeamento utiliza um nome e valor separados por dois-pontos (:)
                          • Enviando uma requisição
                            • Via navegador
                            • Via CLI (curl, wget, Invoke-WebRequest
                            • Via Postman
                            • ver https://github.com/aldebap/cursoIntegracao APIs
  6. Frameworks para a criação de APIs

    • Javascript: Node.js + Express = minimalista, eficiente e não opinativo
    • Java: Spring MVC + Spring Boot = endpoints criado com anotações do Spring MVC
    • Golang: Gorrila Mux (simplifica a criação das rotas / endpoints
    • Python: Flask = permite utilizar rotas a partir do OAS
    • C#: ASP.NET core = Open Source e multiplataforma
  7. Framework para consumo de APIs

    • Javascript: Axios = baseado em promises, pode ser utilizado em clientes e servidores (Node.js)
    • Javascript: jQuery = framework antigo mas ainda relevante

Information

Description
Mind Map on Integração entre sistemas, created by Felipe da Cunha on 28/04/2025.
Created by
Felipe da Cunha
Views
0
Rating

More on Integração de sistemas e arquitetura orientada a eventos

Feedback

What is it about?

What do you think of the new look?

How do you like it?