O Que é O Node.js
Exames: O Que é O Node.js. Pesquise 862.000+ trabalhos acadêmicosPor: wellviana123 • 8/6/2014 • 2.893 Palavras (12 Páginas) • 373 Visualizações
O que exatamente é o Node.js?
Um servidor pronto para codificar
O Node é um interpretador JavaScript do lado do servidor que altera a
noção de como um servidor deveria funcionar. Seu objetivo é possibilitar
que um programador crie aplicativos altamente escaláveis e escreva
código que manipule dezenas de milhares de conexões simultâneas em
uma, e somente uma, máquina física.
5 Comentários:
Michael Abernethy, Freelance Programmer, Freelancer
24/Jun/2013
•
Índice
Introdução
Se você ouviu do Node, ou leu artigos que proclamam como ele é maravilhoso, poderá
estar pensando: "Afinal, o que é Node.js?". Apesar de não ser para todos, o Node
pode ser a escolha certa para algumas pessoas.
Este artigo buscará responder o que é o Node.js resumindo o problema que ele pode
resolver, como ele funciona, como executar um aplicativo simples e, finalmente,
quando o Node é e quando não é uma boa solução. Ele não abordará como escrever
um aplicativo Node complicado nem será um tutorial completo sobre Node. A leitura
deste artigo o ajudará a decidir se você deverá buscar aprender Node para usar em
seu próprio negócio.
Que problema o Node soluciona?
O objetivo declarado do Node é "fornecer uma maneira fácil de criar programas de
rede escaláveis". Qual é o problema com os programas de servidor atuais? Vamos
fazer as contas. Em linguagens como JavaTM e PHP, cada conexão inicia um novo
encadeamento que, potencialmente, é acompanhado de 2 MB de memória. Em um
sistema que tenha 8 GB de RAM, isto define o número máximo teórico de conexões
simultâneas em cerca de 4.000 usuários. À medida que sua base de clientes cresce,
você deseja que seu aplicativo da Web suporte mais usuários e, portanto, será
necessário adicionar mais servidores. É claro, isso se soma a custos de negócios,
especificamente custos de servidor, custos de tráfego e custos de mão de obra.
Adicione a esses custos o problema técnico potencial de que um usuário poderá usar
diferentes servidores para cada solicitação, de forma que quaisquer recursos
compartilhados deverão ser compartilhados por todos os servidores. Por exemplo, no
Java, variáveis estáticas e caches precisam ser compartilhados entre as JVMs em
cada servidor. Este é o gargalo de toda a arquitetura de aplicativos da web, o número
máximo de conexões simultâneas que um servidor pode tratar.
O Node soluciona o problema mudando a forma como uma conexão é feita no
servidor. Em vez de iniciar um novo encadeamento do SO para cada conexão (e
alocar a memória correspondente com ele), cada conexão cria um processo, que não
requer que o bloco de memória o acompanhe. O Node alega que nunca ocorrerá um
impasse de bloqueios, pois não são permitidos bloqueios e ele não bloqueia
diretamente para realizar chamadas de E/S. O Node também alega que um servidor
que o execute pode suportar dezenas de milhares de conexões simultâneas. De fato,
o Node altera o panorama do servidor ao mudar o gargalo do sistema inteiro do
número máximo de conexões para a capacidade de tráfego de um único sistema.
Portanto, agora que você tem um programa que pode tratar dezenas de milhares de
conexões simultâneas, o que você pode de fato criar com o Node? Seria ótimo se
você tivesse um aplicativo da Web que exigisse tantas conexões. Este é um daqueles
problemas do tipo "se você tem esse problema, ele não é um problema". Antes de
chegarmos a isso, vejamos como o Node funciona e como foi projetado para ser
executado.
Voltar para parte superior
O que o Node definitivamente não é
Sim, o Node é um programa de servidor. No entanto, ele definitivamente não é como o
Apache ou o Tomcat. Esses servidores são produtos de servidor independentes,
prontos para instalar e implementar aplicativos instantaneamente. Você poderá ter um
servidor em execução em um minuto com esses produtos. O Node definitivamente não
é isso. O Apache pode adicionar um módulo PHP para permitir que os
desenvolvedores criem páginas da Web dinâmicas, e os programadores usando
Tomcat podem implementar JSPs para criar páginas da Web dinâmicas. O Node
definitivamente não é isso.
Neste momento inicial da vida do Node (atualmente na versão 0.4.6), ele não é um
programa de servidor pronto para ser executado, onde você espera instalá-lo, colocar
seus arquivos dentro dele e ter um servidor da Web totalmente funcional. Ele ainda
requer uma quantidade de trabalho não trivial para obter
...