Arquitetura
Histórico de Revisão:
Data | Versão | Descrição | Autor |
---|---|---|---|
05/09/2019 | 0.1 | Criação do documento, adição dos tópicos | Alan Lima |
17/11/2019 | 0.2 | Revisão e atualização do documento | Shayane Alcantara |
Introdução
Este documento tem como objetivo mostrar uma visão geral sobre a arquitetura e ferramentas utilizadas pelo grupo no projeto QRComer.
Visão Geral
O presente documento faz o detalhamento e descrição de características da arquitetura escolhidas pela equipe. Estaremos descrevendo o padrão de arquitetura de Microserviços e APIs Rest, assim como detalhando o funcionamento da comunicação entre os microserviços.
Arquitetura de Microserviços
Arquitetura orientada a micro serviços foi adotada para este projeto devido a suas vantagens em relação a estrutura monolítica, dentre elas estão:
- Disponibilização de novos processos ou serviços sem impacto nos processos e serviços existentes.
- Alterações em processos e serviços sem a necessidade de parada de todo o sistema.
- Otimização da utilização da infraestrutura de nuvem.
- Redução da complexidade de manutenção.
Padrão de Arquitetura REST
O termo foi definido no ano 2000, na tese de doutorado de Roy Fielding e é a sigla para Representational State Transfer: é um design de arquitetura construído para servir aplicações em rede.
Conceitualmente falando, o modelo REST representa nada mais que uma possibilidade para a criação de web services, cujas principais diferenças em relação ao modelo tradicional (SOAP) estão na utilização semântica dos métodos HTTP (GET, POST, PUT e DELETE), na leveza dos pacotes de dados transmitidos na rede e na simplicidade, fazendo desnecessária a criação de camadas intermediárias (Ex.: Envelope SOAP) para encapsular os dados.
Características de uma requisição REST:
- O método HTTP é utilizado para determinar a operação a ser realizada em um determinado recurso. Em geral, utiliza-se o GET para recuperar, POST para criar, PUT para alterar e DELETE para apagar;
- O recurso, por sua vez, é indicado na URL da requisição; Parâmetros podem ser passados na própria URL e/ou no corpo na requisição;
- Os tipos de dados utilizados na requisição e na resposta devem ser acordados entre o servidor e o(s) cliente(s). JSON e XML estão entre os tipos mais utilizados.
Arquitetura dos Serviços
Visão Geral
Microserviços e camadas
A arquitetura e sua versão atual está particionada em:
1 - Front-End (User)
- Esta fronteira é responsável por permitir a interação do usuário com sistema, é por ela que são feitos os pedidos nos restaurantes cadastrados.
2 - Front-End (Restaurant)
- Esta fronteira é responsável por permitir o cadastro dos restaurantes por parte dos donos de estabelecimentos que irão fazer uso do sistema, assim como os seus respectivos cardápios, valores, etc.
3 - Gateway
- Responsável por realizar a comunicação entre os micro serviços e o Front-End. Ele irá controlar todo o fluxo de dados e dimensionar para seus respectivos locais de persistência.
4 - Restaurant e Order
- Micro serviços responsáveis pela função de DW (Data warehouse), depósito onde se é persistido e mantido os dados relevantes para o sistema. Através de uma API, disponibilizam os dados para a o gateway.