8. Arquitetura do Sistema ‐ Modelo Cliente Servidor - lucassilvahub/conexaopet GitHub Wiki

Diagrama da Arquitetura Cliente/Servidor

WhatsApp Image 2024-11-13 at 21 47 44

Conexão Pet - Arquitetura e Tecnologias

Este documento descreve a arquitetura do projeto Conexão Pet, destacando as tecnologias utilizadas para garantir escalabilidade, segurança e eficiência no sistema.

Sumário


Arquitetura

1. Cliente e Front-End

  • A interação do usuário com o sistema começa no aplicativo móvel, onde o cliente (usuário final) acessa o Front-End para realizar ações, como login e navegação.
  • O front-end será desenvolvido em React, uma biblioteca JavaScript popular para construir interfaces de usuário dinâmicas e responsivas.

2. Autenticação e Segurança

  • Para garantir a segurança das informações, o sistema utiliza Keycloak para autenticação, implementando o protocolo OAuth2 e usando tokens JWT (JSON Web Tokens) para validar sessões de maneira segura.
  • Dados sensíveis, como informações de pagamento, serão protegidos com criptografia antes de serem armazenados ou transmitidos, garantindo a privacidade dos dados do usuário.

3. Balanceador de Carga

  • O sistema conta com um Load Balancer (Balanceador de Carga) para distribuir as requisições entre diferentes servidores.
  • O balanceador escolhe um dos servidores disponíveis para processar cada requisição, otimizando o uso dos recursos e permitindo escalabilidade. Os servidores utilizados serão Amazon EC2, que oferecem infraestrutura robusta e adaptável.

Tecnologias Utilizadas

  • Front-End: React
  • Autenticação: Keycloak (OAuth2 e JWT)
  • Servidores: Amazon EC2
  • Balanceamento de Carga: Load Balancer
  • Back-End: Node.js
  • Banco de Dados:
    • PostgreSQL: Para armazenamento seguro de dados de autenticação
    • MongoDB: Banco de dados NoSQL para dados em tempo real
    • Redis: Cache para acesso rápido a informações frequentes

Segurança

  • *Autenticação: Utilização do *Keycloak para autenticação segura, baseada em OAuth2 e tokens JWT.
  • Criptografia de Dados: Dados sensíveis, como informações de pagamento, são criptografados para garantir a segurança e a privacidade das informações dos usuários.

Back-End e Armazenamento

  • *Back-End: O back-end será desenvolvido em *Node.js, permitindo o processamento eficiente de requisições e respostas.
  • *Servidores Amazon EC2: Múltiplos servidores na *Amazon EC2 localizados no Brasil são usados para garantir baixa latência e melhor desempenho.
  • Banco de Dados:
    • PostgreSQL: Armazena informações de autenticação de usuários.
    • MongoDB: Utilizado para o armazenamento de dados em tempo real, proporcionando flexibilidade e alta velocidade.
    • Redis: Usado para cache, armazenando informações frequentemente acessadas para melhorar o desempenho do sistema.