Enviado por Do utilizador7063

Projeto TCC - Estudos

Propaganda
RAPHAEL VASCONCELLOS GUIMARÃES 1
ARQUITETURA DE SERVIÇOS WEB DE ALTO DESEMPENHO COM
NODE.JS E MONGODB
Projeto de Trabalho de Conclusão de Curso, da
Faculdade de Ciências Exatas e Tecnológicas do
Centro Universitário Newton Paiva, do Curso de
Bacharelado em Sistemas de Informação, sob a
orientação do professor Tarley Lana.
BELO HORIZONTE
2019/2
1
Aluno do curso de Sistemas de Informação no Centro Universitário Newton Paiva ([email protected]).
SUMÁRIO
1.
INTRODUÇÃO .................................................................................................................... 2
2.
OBJETIVO ............................................................................................................................ 3
3.
JUSTIFICATIVA .................................................................................................................. 4
4.
ORGANIZAÇÃO DO ARTIGO ........................................................................................... 5
5.
METODOLOGIA ................................................................................................................. 6
6.
CRONOGRAMA .................................................................................................................. 7
REFERÊNCIAS ............................................................................................................................ 8
2
1. INTRODUÇÃO
Escrever introdução para entendimento de todos (até leigos no assunto)
Para comparar as arquiteturas os seguintes aspectos foram avaliados, números de
requisições, números de requisições com erro, tempo de resposta médio, vazão,
requisições por tempo, uso de memória e CPU.
MongoDB é um banco de dados orientado a documentos que provê alta performance,
alta disponibilidade e fácil escalabilidade”(MongoDB Manual, 2013). Seus dados são
representados através de JSON (JavaScript Object Notation). Em comparação aos
SGBDR (Sistema Gerenciador de Banco de DadOS Relacional) algumas analogias
podem ser feitas: uma tabela pode ser comparada com uma coleção e um documento
pode ser comparado a uma linha de dados
3
2. OBJETIVO
O objetivo principal é a especificação de uma arquitetura de servidores web de alto
desempenho utilizando Node.JS e banco de dados MongoDB de modo a extrair o
máximo de capacidade de um hardware para determinado serviço, podendo ter
escalabilidade se necessário.
4
3. JUSTIFICATIVA
O teste de desempenho consiste em avaliar os seguintes aspectos: números de
requisições, números de requisições com erro, tempo de resposta médio, vazão,
requisições por tempo, uso de memória e CPU.
O teste de desempenho é fundamental para definir a capacidade do servidor e aplicação,
bem como definir os limites do sistema de acordo com o hardware disponível, “O
objetico é duplo: entender como o sistema responde a carregamento (isto é, números de
usuários, número de transações ou volume de dados), e coletar métricas que vão levar a
modificações de projeto para melhorar o desempenho”.(PRESSMAN, 2006)
O Node.JS é um servidor para a internet desenvolvido para ser escalável. De acordo
com seu fabricante (NODE.JS, 2013) ö uso de I/O não bloqueante é o que torna leve e
eficiente”. Apesar de suportar diversos protocolos o mesmo é bastante utilizado para a
construção de aplicações web, tendo como característica o suporte ao protocolo HTTP e
WebSockets.
5
4. ORGANIZAÇÃO DO ARTIGO
6
5. METODOLOGIA
Teste de desempenho
O teste de desempenho é uma classe de testes implementada e executada para
caracterizar e avaliar o desempenho relacionado a características do objetivo do teste,
como perfis de andamento, fluxo de execução, tempo de resposta, confiabilidade e
limites operacionais. Vários tipos de testes de desempenho, cada um concentrado em
um objetivo do teste diferente, são implementados durante todo o ciclo de vida de
desenvolvimento do software (SCLC). Nas iterações de arquitetura, os testes de
desempenho baseiam-se na identificação e na eliminação de gargalos de desempenho
relacionados à arquitetura. Nas iterações de construção, outros tipos de testes de
desempenho são implementados e executados para ajustar o software e o ambiente
(otimizando o tempo de resposta e os recursos) e para verificar se a aceitabilidade dos
aplicativos e so sistema consegue lidar com condições de alta carga e stress, como um
grande número de transações, clientes e/ou volumes de dados.
O teste de desempenho abrange os seguintes tipos de teste:
Teste de avaliação de desempenho, teste de contenção, teste de carga e teste de stress.
Para que possa ser realizado testes de desempenho de uma arquitetura de serviços web é
imprescindível que exista um software a ser testado. Para testar a arquitetura proposta
será utilizado uma aplicação de contagem de votos, uma urna que simulará uma eleição
eleitoral. Tem como objetivo simular um serviço básico, com um banco de dados não
relacional simples.
A execução de testes de desempenho requer a utilização de ferramentas para este
propósito. Para a execução dos testes foi escolhido a ferramenta JMeter, que é opensource, 100% desenvolvida em Java, projetada para a execução de testes funcionais e
medição de desempenho” (Apache JMeter, 2014)
7
6. CRONOGRAMA
Item
Descrição
01
Entrega do documento de aceite ao professor orientador.
02
Entrega do projeto do artigo
Entrega da primeira versão artigo por e-mail seguindo o
03
arquivo modelo.
04
Entrega da segunda versão artigo
05
Entrega da versão final do artigo
Data
8
REFERÊNCIAS
http://www.funpar.ufpr.br:8080/rup/process/workflow/test/co_perfo.html
http://www.ceavi.udesc.br/arquivos/id_submenu/787/ricardo_schroeder_versao_final_.p
df
https://www.devmedia.com.br/testes-de-desempenho-carga-e-stress/26546
Colocar as referencias !!
Download