Sie sind auf Seite 1von 13

NODE.

JS
Por Rodolfo Vera

Justificacin
Node.js es la tecnologa mas reciente en
Silicon Valley.
Actualmente utilizada por Microsoft,
VMWare, Ebay, Yahoo, y muchas otras
empresas de tecnologa.
Se escucha sobre Node.js:
aplicaciones en tiempo real o altamente
escalables.
es Javascript para el lado del servidor (por
qu?, para qu?)
en qu momento usarlo ni cmo hacerlo

Problema
La web se ha vuelto ms interactiva. Los
usuarios de todo el mundo quieren interactuar
con otros usuarios, y quieren hacerlo en tiempo
real.
Por ejemplo, chatear, jugar, actualizar redes
sociales, son actividades que requieren de una
comunicacin en tiempo real entre usuarios,
cliente y servidores a travs de la web.
Y algo ms importante, esta comunicacin en
tiempo real debe ocurrir a gran escala,
soportando cientos, miles, y hasta millones de
usuarios.

Solucin
Lo que necesitamos es una comunicacin en
tiempo real entre clientes y servidores.
HTTP no fue construido para un gran nmero de
clientes tratando de conectarse simultneamente
a un servidor, lo cual puede ser lento e ineficiente.
Para habilitar la comunicacin en tiempo real
escalable, los servidores deben tener la capacidad
de enviar datos a los clientes, en lugar del pesado
modelo de peticin-respuesta de HTTP.
Tambin necesitamos estar seguros que el envo
de datos trabaje de una forma escalable,
mantenible, y usable desde una perspectiva de
desarrollo de software

Alternativa de Solucin:
Node.js
Qu s?
es un entorno Javascript del lado del
servidor, basado en eventos. Node
ejecuta javascript utilizando el motor V8 1,
Esto permite a Node proporcionarr un
entorno de ejecucin del lado del servidor
que
compila
y
ejecuta
javascript
rpidamente
Es cdigo abierto, y se ejecuta en Mac OS
X, Windows y Linux
desarrollado por Google para uso de su navegador Chrome

Node usa JS
JS actualmente es un lenguaje de programacin
totalmente, tan capaz como cualquier otro
lenguaje tradicional como C++, Ruby o Java.
Adems JS tiene la ventaja de poseer un
excelente modelo de eventos, ideal para la
programacin asncrona.
Javascript tambin es un lenguaje omnipresente,
conocido por millones de desarrolladores. Esto
reduce la curva de aprendizaje de Node.js, ya
que la mayora de los desarrolladores no tendrn
que aprender un nuevo lenguaje para empezar a
construir aplicaciones usando Node.js.

Problema de conexin (memoria)


con programacin Asncrona Actual
El enfoque tradicional para generar cdigo
asncrono es engorroso y crea un espacio
en memoria no trivial para un gran nmero
de clientes(cada cliente genera un hilo, y
el uso de memoria de cada uno se suma).
Para evitar esta ineficiencia, as como la
dificultad conocida de las aplicaciones
basadas en hilos, (programming threaded
applications), se opta por node.js por lo
siguiente:

Solucin con Node.js

Mdulos Externos
Por ejemplo:
Socket.io (envo y recepcin de
sockets, TCP)
Express (gestiona el servidor mas
simple)
Jade (Mejorar sintxis de HTML)
MongoDB (Base de Datos orientada a
documentos(no registros))
Node-static (Servidores para archivos
estticos)

Servidor: Apache o Node.js?

Lo mas importante de entender es que ninguno es mejor


que otro, depende del caso en el que se quiera usar
- Apachegeneralemente usa PHP, lo cual es muy fcil para
principiantes y est construdo para la Web. Node jsno
fu construdo originalemnte para ella.
Apache y PHPson antiguos y estables. Hay mucho
soporte.Node Jses relativamente nuevo y no est
diseado especficamente para desarrollo de aplicaciones
Web. Web apps basadas en http son un uso de Node.js
Famosos cms(Sistema Gestor de Contenidos) (Wordpress,
Drupal, Joomla etc.) y Frameworks de desarrollo (Yii,
Laravel, Code Ignitor, Cake PHP) estn construdos en
PHP. Muy tiles para el desarrollo y organizacin de
cdigo.Node Jstiene Express, socket, jade, etc. Pero son
nuevos y no hay mucho soporte.

Servidor: Apache o Node.js?

Apacheest basado en hilos, es decir, cada peticin es


manejada por hilos o procesos separados (dependiendo
de la configuracin), lo cul significa que si el proceso
espera por la entrada/salida, todo el hilo es
bloqueado.Node JStiene I/O asincronas. Cada
instancia nodejs se ejecuta en un hilo y debido a su
naturaleza asncrona, puede manejar muchas mas
peticiones que Apache.
Apacheest basado en hilos, as que si un problema
ocurre, slo el hilo en particular ser el que caiga
(crash) y no los dems.Node Jsmaneja mltiples
peticiones usando un slo hilo, entonces =/ .
Apache no bloquea peticiones cuando tiene una
peticin de CPU intensivo. NodeJsbloquea est peticin
intensiva CPU hasta que termine. Usualmente se delega
esta responsabilidad a otro proceso en Nodejs.

Servidor: Apache o Node.js?


PHPno soporta web sockets nativamente.
Hay que implementar libreras, pero un
nmero decente de conexiones web sockets
en tiempo real, se comer todos los
recursos del servidor.
NodeJses el candidato perfecto para la
comunicacin en tiempo real cominado
con Socket.IO para obtener un buen
servidor escalable junto con una
comunicacin de regreso (servidor->enva) .
De peso liviano y puede incrementarse por
que todo corre en un slo hilo.

Bibliografa
http://nodejs.org/
Porque Node.js?,
http://mocionsoft.com/blog/porqueusamos-node-js/
Node.js Vs Apache,
http://www.quora.com/What-are-thepros-and-cons-of-Node-js-versusApache-web-server

Das könnte Ihnen auch gefallen