Bacharelado em Sistemas de Informação

Utilizando JavaScript no servidor para construir aplicações de alta concorrência na internet com Node.Js

Aluno: Lucas Simon Rodrigues Magalhães

Orientador: João Caram

Javascript no servidor?

Em referência ao titulo o javascript conhecido pelos desenvolvedores nos browsers para iteragir com elementos html na DOM foi portado para o servidor.

Sim. Existe o Node.Js

O NodeJS utiliza o JavaScript para os desenvolvedores criarem aplicações web.

O que é o Node.Js

De acordo com a sua descrição no site, o Node.Js é uma plataforma de desenvolvimento orientada a eventos não bloqueantes projetada para construir aplicações de rede rápidas e escaláveis, utilizando o Javascript como linguagem.

Aplicações de rede:

  • API's
  • Servidor HTTP
  • Servidores de jogos
  • Stream de audio e video
  • Aplicações em tempo real
  • Sistemas embarcados

Quem criou o Node.Js?

Ryan Dhal

Ryan Dhal

O problema de alta concorrencia na web

O número de internautas segundo pesquisa do IBGE (2012) de 2005 a 2011 cresceu 143.8% e o de pessoas com celular, 107.2%.

Precocupações

Usuários, escalabilidade e desempenho

E os sistemas de desenvolvimento tradicionais?

  • Java, PHP, .NET, Python são bloqueantes
  • Consumo de memória acima 2MB em cada thread
  • Autalização de Hardware?
  • Escalonamento horizontal? $$$$

Mas o que o Node.Js faz de diferente?

  • Operações não bloqueantes
  • Javascript assíncrono e chamadas de retorno
  • Execução em thread única e ciclo de eventos

O ecossistema Node.Js

 

Mas com isso tudo o Node.js, resolve o que?

Operações não bloqueantes com Javascript assíncrono e chamadas de retorno

Operações que demandam tempo;

Execução em thread única e ciclo de eventos

Quantidade de conexões simultâneas;

Suporte a websockets

conexões persistentes;

E ....

Em suma o Node.Js resolve problemas de grandes quantidades de conexões de rede no servidor.

Dúvido Lucas!

Eu também!

Por isso...

Neste trabalho procura-se demonstrar a capacidade da plataforma Node.Js com foco em desempenho e capacidade de receber uma carga elevada de usuários.

Como demonstrar isso. Ta doido?

Primeiro demonstrar a capacidade do ambiente Node.Js de processar e responder milhares de requisições comparando-o com um ambiente Python.

Ahn e o que mais?

Criar dois protótipos como API Restful provendo uma operação básica. Get contatos

Como fazer isso?

  1. Estudo do ambiente Node.Js
  2. Levantamento de requisitos
  3. Criar dois aplicativos em diferentes paradigmas
  4. Especificar testes e comparar resultados

Continuo duvidando. Quero ver os testes!

To Be continued ...

O que já está feito

  • Referencial teorico
  • Aplicações construidas e hospedadas
  • Testes com a ferramenta loader.io
  • Parte da seção de prototipos
  • Parte da seção de testes
  • Conclusão e trabalhos futuros

O que falta fazer

  • Correção gramatical
  • Melhorar o referencial teorico
  • Completar a seção de prototipos
  • Completar a seção de testes com os testes clientes por teste e segundo
  • Latex

THE END

BY Lucas Simon

Monografia 2014

By Lucas Simon Rodrigues Magalhaes

Monografia 2014

Apresentação para o bacharelado em sistemas de informação da PUC Minas 2014

  • 1,462