You are on page 1of 13

NODE.

JS
Por Rodolfo Vera

y muchas otras empresas de tecnología.js: – aplicaciones “en tiempo real” o “altamente escalables”. Yahoo. Ebay. • Actualmente utilizada por Microsoft. • Se escucha sobre Node.Justificación • Node. para qué?) – en qué momento usarlo ni cómo hacerlo .js es la tecnología mas reciente en Silicon Valley. VMWare. – es Javascript para el lado del servidor (por qué?.

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

mantenible. lo cual puede ser lento e ineficiente. los servidores deben tener la capacidad de enviar datos a los clientes. • HTTP no fue construido para un gran número de clientes tratando de conectarse simultáneamente a un servidor.Solución • Lo que necesitamos es una comunicación en tiempo real entre clientes y servidores. • Para habilitar la comunicación en tiempo real escalable. y usable desde una perspectiva de desarrollo de software . • También necesitamos estar seguros que el envío de datos trabaje de una forma escalable. en lugar del pesado modelo de petición-respuesta de HTTP.

y se ejecuta en Mac OS X. Node ejecuta javascript utilizando el motor V8 1.js • ¿Qué és? – es un entorno Javascript del lado del servidor. Windows y Linux desarrollado por Google para uso de su navegador Chrome .  – Esto permite a Node proporcionarr un entorno de ejecución del lado del servidor que compila y ejecuta javascript rápidamente – Es código abierto. basado en eventos.1 Alternativa de Solución: Node.

ideal para la programación asíncrona. ya que la mayoría de los desarrolladores no tendrán que aprender un nuevo lenguaje para empezar a construir aplicaciones usando Node. • Además JS tiene la ventaja de poseer un excelente modelo de eventos. tan capaz como cualquier otro lenguaje tradicional como C++. .Node usa JS • JS actualmente es un lenguaje de programación totalmente.js. Esto reduce la curva de aprendizaje de Node. Ruby o Java.js. conocido por millones de desarrolladores. • Javascript también es un lenguaje omnipresente.

js por lo siguiente: . se opta por node.Problema de conexión (memoria) con programación Asíncrona Actual • El enfoque tradicional para generar código asíncrono es engorroso y crea un espacio en memoria no trivial para un gran número de clientes(cada cliente genera un hilo. • Para evitar esta ineficiencia. así como la dificultad conocida de las aplicaciones basadas en hilos. y el uso de memoria de cada uno se suma). (programming threaded applications).

js .Solución con Node.

TCP) • Express (gestiona el servidor mas simple) • Jade (Mejorar sintáxis de HTML) • MongoDB (Base de Datos orientada a documentos(no registros)) • Node-static (Servidores para archivos estáticos) .io (envío y recepción de sockets.Módulos Externos Por ejemplo: • Socket.

Laravel.) y Frameworks de desarrollo (Yii. depende del caso en el que se quiera usar .Servidor: Apache o Node. Pero son nuevos y no hay mucho soporte. Node js no fué construído originalemnte para ella.js • Famosos cms(Sistema Gestor de Contenidos) (Wordpress.Apache generalemente usa PHP. Code Ignitor. • Apache y PHP son antiguos y estables. Web apps basadas en http son un uso de Node. Cake PHP) están construídos en PHP. lo cual es muy fácil para principiantes y está construído para la Web. Node Js tiene Express. Hay mucho soporte. etc. jade. Muy útiles para el desarrollo y organización de código. . Joomla etc. Drupal. socket. Node Js es relativamente nuevo y no está diseñado específicamente para desarrollo de aplicaciones Web.js? Lo mas importante de entender es que ninguno es mejor que otro.

es decir. • Apache  no bloquea peticiones cuando tiene una petición de CPU intensivo. Usualmente se delega esta responsabilidad a otro proceso en Nodejs. entonces… =/ . Node Js maneja múltiples peticiones usando un sólo hilo. lo cuál significa que si el proceso espera por la entrada/salida. cada petición es manejada por hilos o procesos separados (dependiendo de la configuración). todo el hilo es bloqueado. Cada instancia nodejs se ejecuta en un hilo y debido a su naturaleza asíncrona. así que si un problema ocurre. NodeJs bloquea está petición intensiva CPU hasta que termine.Servidor: Apache o Node. . Node JS tiene I/O asincronas. • Apache está basado en hilos. sólo el hilo en particular será el que caiga (“crash”) y no los demás. puede manejar muchas mas peticiones que Apache.js? • Apache está basado en hilos.

pero un número decente de conexiones web sockets en tiempo real.IO  para obtener un buen servidor escalable junto con una comunicación de regreso (servidor->envía) . De peso liviano y puede incrementarse por que todo corre en un sólo hilo.   • NodeJs es el candidato perfecto para la comunicación en tiempo real cominado con Socket.Servidor: Apache o Node.js? • PHP no soporta web sockets nativamente. se comerá todos los recursos del servidor. Hay que implementar librerías. .

http://www.com/What-are-thepros-and-cons-of-Node-js-versusApache-web-server . http://mocionsoft.quora.org/ • “¿Porque Node.com/blog/porqueusamos-node-js/ • “Node.js Vs Apache”.js?”.Bibliografía • http://nodejs.