8. Arquitetura do Sistema ‐ Modelo Cliente Servidor - lucassilvahub/conexaopet GitHub Wiki
Diagrama da Arquitetura Cliente/Servidor
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.