Você está na página 1de 10

CENTRO UNIVERSITÁRIO UNIVEL

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

MODELO DE RELATÓRIO
LABORATÓRIO DE PADRÕES
ARQUITETURAIS

Tiago Picolo dos Santos


Nícolas Afonso Bertaglia Comissio

Cascavel
01/09/2022
CENTRO UNIVERSITÁRIO UNIVEL
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

MODELO DE RELATÓRIO
LABORATÓRIO DE PADRÕES ARQUITETURAIS

Tiago Picolo dos Santos


Nícolas Afonso Bertaglia Comissio

Relatório apresentado como


requisito parcial para obten-
ção de nota na disciplina "Ar-
quitetura de Software e Pa-
drões de Projetos" ministrada
pelo Prof. Me. Ederson Sch-
meing.

Cascavel
01/09/2022
Sumário

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 MATERIAL E MÉTODOS . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 RESULTADOS E DISCUSSÃO . . . . . . . . . . . . . . . . . . . . . 5
3.1 Microsserviços . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Publish/Subscribe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

4 CONCLUSÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3

1 Introdução

Um dos exemplos apresentados que pode ser executado logo após os estudos do
Capitulo 7 do livro "Engenharia de Software Moderna"como um exemplo pratico de
microsserviços é uma "Micro-Livraria", com varios tipos de tecnologias usadas sendo
entre elas Node.js, REST, gRPC e Docker, também explicando a arquitetura dos quatro
microsserviços existentes neste exemplo, neste exemplo também é dito sobre os protoco-
los de comunicação utilizados contendo um exemplo de arquivo .proto para facilitar o
entendimento dos exercicios praticos.

1.1 Objetivos
4

2 Material e métodos

2.1 Material
Para a realização deste trabalho foram usados os computadores pessoais dos alunos
para a execução dos roteiros. Contudo é possível que seja utilizado qualquer máquina com
o sistema operacional Windows ou Linux instalado para a realização desta atividade.
As especificações do computador utilizado pelo aluno Nicolas foram: Processador
Intel i7-4700MQ, 16GB de memória RAM e sistema operacional Windows 64 bits. Porém
conforme o roteiro da aula, foi criado uma VM utilizando o sistema operacional Ubuntu
para a execução do programa de containers Docker e com isso foi clonado o repositório do
git para a máquina assim ele rodaria de forma local no sistema.
As especificações do computador utilizado pelo aluno Tiago foram: Processador
Intel Xeon E5-2640 v3, 16GB de memória RAM e um sistema operacional Winsdows 10
64 bits, para a execução do roterio foi utilizado todas as ferramentas pelo Windows e
utilizado os programas instruídos pelo roteiro.

2.2 Métodos
Exemplo de citação indireta (SANTOS, 2021)
citar()
5

3 Resultados e discussão

3.1 Microsserviços
Para executar com sucesso os processos deste capítulo, Microsserviços, primeiro
de tudo foi lido os paragrafos que explicaram sobre que se tratavam e quais são as forma
que interagem com tudo dentro do sistema de microsserviços, logo após foi solicitado a
instação de alguns programas para a execução do roteiro que seriam, Git, Node.js e o
Docker, além d euoutro programa utilizado para a execução dos codigos o PowerShell que
ja vem pré-instalado no Windows.
A arquitetura possui quatro microsserviços, o microsserviço responsavel pela in-
terface com o usuario (front-end), um microsserviço responsavel por funcionar entre as
comunicações do front-end e o back-end dos processos, o microsserviço responsavel pelo
calculo do frete disponivel no sistema e o microsserviço responavel pelo controle de estoque
da livraria, estes processos vão ser implementados em JavaScript usando o programa ja
instalado anteriormente Node.js para a execução ded todos os serviços em back-end.
O exemplo utilizado para essa parte do roteiro foi uma loja online de Disco de Vinil
que vai ter como função tratar o CEP fornecido pelo cliente e informar uma taxa de entrega,
além de deixar o cliente realizar a compra para fazer todo o processo para a subtração
de estoque e estes processos passam por uma API REST que deixa o front-end agir e
enviar uma chamada remota para um controlador que manda as informações baseadas em
gRPC para os devidos microsserviços. Foi optado por se eusar o metodo gRPC por conta
de ele ter um desempenho superior ao REST, além de um cliente poder chamar funções
implementadas em outros processos de forma aberta.
Quando se utiliza o gRPC também é trabalho com arquivos .proto que ficam em
cada microserviço que define a assinatura de funções que o disponibilizam para outros
microsserviços. Nesse mesmo arquivo, também declaramos os tipos de entrada e saída
dessas funções. Em gRPC, as mensagens são formadas por um conjunto de campos. Todo
campo possui um nome e um tipo. Os arquivos .proto são usados para gerar stubs, que nada
mais são do que proxies que incluem informações sobre comunicação de rede, incluindo
passagem de mensagens, protocolos, etc.

3.2 Publish/Subscribe
Para a execução desse capítulo, Publish/Subscribe, primeiramente foi lido a sessão
de explicação sobre o que é essa arquitetura e quais as suas principais possibilidades no dia
Capítulo 3. Resultados e discussão 6

a dia, apos isso foi executada a instalação dos programas solicitados pelo roteiro o Docker,
junto ao sistema Linux (Ubuntu) no computador. Porém como para a realização desse
guia foi utilizado o sistema operacional windows, foi preferido a instalação da WSL, o que
nada mais é do que um subsistema do Windows para o Linux para a maior conveniência
do usuário, através da wsl é possível rodar um sistema operacional como Ubuntu dentro
do Windows, como se fosse uma VM (Máquina Virtual).
Outro programa utilizado e instalado na própria Microsoft Store, foi o Terminal
para melhor controle dos comandos que seriam utilizados dentro da atividade.

A arquitetura Publish/Subscribe pode ser encarada como um sistema de envio e


recebimento de mensagem, um sistema mensageiro por assim dizer. Onde ele envia uma
mensagem através de uma fila e o recebe através de outra (no caso desse exemplo foi
utilizado o RabbitMQ). O RabbitMQ é um gerenciador de filas onde pode-se ver o número
de mensagens em cada fila e as API’s conectadas a elas.
O exemplo utilizado na atividade foi uma loja virtual de vinil que tinha que
implantar seu sistema de pós-vendas, portanto a arquitetura Pub/Sub é a mais recomendada
para o processo. Nela existem dois principais pontos quando a compra for efetuada com
sucesso:

• A notificação que o pedido foi aprovado.

• Notificação para a equipe que cuida das entregas.

E caso o pedido seja recusado por algum erro, é necessário que:

• O sistema informa o cliente sobre a falha ocorrida.


Capítulo 3. Resultados e discussão 7

Após a instalação dos programas solicitados pelo roteiro, a aplicação do passo a


passo foi seguida de forma ininterrupta e fácil. Sendo muito intuitivo todo o guia.
O primeiro passo consiste na execução e inicialização do RabbitMQ através do
docker e terminal, após isso era solicitado para entrar no localhost para que a interface
gráfica do sistema pudesse ser visualizada e manipulada. Após isso era pedido para que
entrássemos na aba Queue (fila) e criássemos um evento que representasse o pedido, que
foi feito através do arquivo JSON deixado no roteiro. Fazendo isso era possível simular
um pedido de compra ao sistema de mensagens na qual informa se o evento tinha sido
realizado com sucesso ou não.
O segundo passo era criação de uma segunda fila para que o processamento dos
pedidos fossem atendidos. Isso foi feito de forma parecida que a adição da primeira Queue,
pois no guia todas as filas já haviam sido implementadas fazendo que todo o processo
do roteiro se tornasse simples e de fácil compreensão. Essa fila foi adicionada através do
comando (docker-compose up -d –build order-service) executado no terminal e
também através de outro comando é possível analisar os logs para consultar se o serviço
foi realizado com sucesso. Foi também necessário a criação de uma fila contato para que
pudesse ser enviado um email para o cliente informando o status da compra, porém não
foi criado realmente um sistema que fizesse isso, apenas um que simulava esse processo,
mas foi deixado um guia caso fosse da vontade do usuário, que criava serviço de envio de
email que realmente funcionasse.
O último serviço de filas que foi adicionado foi a que ficou responsável pelo envio da
mercadoria. Ele encaminha a mensagem do pedido para o departamento de despacho, que
é responsável por mandar a mercadoria do galpão de estoque para a casa do cliente. Para
a adição dessa fila foi necessário executar essa linha de comando no terminal (docker-
compose up -d –build shipping-service), após isso era necessário apenas checar o log
para saber se a mensagem foi recebida com sucesso.
8

4 Conclusões

Em relação ao roteiro de Microsserviços tende a se concluir que além de funda-


mentais para o desenvolvimento para um roteiro dessa forma, vem a ser Indispensáveis
no desenvolvimento de tal ferramenta, podendo ser "criada"em diversas linguagens mas
deixando a gRPC ou o REST em relação a linguagem para definição de interfaces e deixar
sempre um protocolo para troca de mensagens entre aplicações clientes e servidoras.
Sobre o roteiro da arquitetura Pub/Sub pode-se concluir a importância desse tipo
de arquitetura de "mensageira"no mundo de mercado de trabalho pois ela é utilizada de
forma ampla seja ela utilizando brokers como o RabbitMQ ou outros como o Apache
Kafka e Redis. O passo a passo do roteiro foi muito simples de ser executado e de fácil
compressão, o maior desafio encontrado foi a parte de instalação dos programas solicitados
para a execução do roteiro.
9

Referências

SANTOS, T. P. dos. Inteligência Artificial: uma abordagem de Aprendizado de Máquina


(2a edição). [S.l.: s.n.], 2021. ISBN 9788521637493. Citado na página 4.

Você também pode gostar