NodeJs ¿porque usarlo?

July 13, 2017 | Author: Anonymous | Category: NodeJS
Share Embed


Short Description

NodeJs ¿porque usarlo? Ventajas, Desventajas, Comparación by rodo_vera_1....

Description

NODE.JS Por Rodolfo Vera

Justificación • Node.js es la tecnología mas reciente en Silicon Valley. • Actualmente utilizada por Microsoft, VMWare, Ebay, Yahoo, y muchas otras empresas de tecnología. • 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 cómo hacerlo

Problema • La web se ha vuelto más 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 comunicación en tiempo real entre usuarios, cliente y servidores a través de la web. • Y algo más importante, esta comunicación en tiempo real debe ocurrir a gran escala, soportando cientos, miles, y hasta millones de usuarios.

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

1

Alternativa de Solución: 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 ejecución del lado del servidor que compila y ejecuta javascript rápidamente – Es código 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 programación totalmente, tan capaz como cualquier otro lenguaje tradicional como C++, Ruby o Java. • Además JS tiene la ventaja de poseer un excelente modelo de eventos, ideal para la programación asíncrona. • Javascript también es un lenguaje omnipresente, conocido por millones de desarrolladores. Esto reduce la curva de aprendizaje de Node.js, ya que la mayoría de los desarrolladores no tendrán que aprender un nuevo lenguaje para empezar a construir aplicaciones usando Node.js.

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, 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:

Solución con Node.js

Módulos Externos Por ejemplo: • Socket.io (envío y recepción de sockets, 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)

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 - Apache generalemente usa PHP, lo cual es muy fácil para principiantes y está construído para la Web. Node js no fué construído originalemnte para ella. • Apache y PHP son antiguos y estables. Hay mucho soporte. Node Js es relativamente nuevo y no está diseñado específicamente 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) están construídos en PHP. Muy útiles para el desarrollo y organización de código. Node Js tiene Express, socket, jade, etc. Pero son nuevos y no hay mucho soporte.

Servidor: Apache o Node.js?

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

Servidor: Apache o Node.js? • PHP no soporta web sockets nativamente. Hay que implementar librerías, pero un número decente de conexiones web sockets en tiempo real, se comerá todos los recursos del servidor.   • NodeJs es el candidato perfecto para la comunicación en tiempo real cominado con Socket.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.

Bibliografía • 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

View more...

Comments

Copyright © 2017 DATENPDF Inc.